From faa336e075f6efae0ee5b37392a0066b97b7aed1 Mon Sep 17 00:00:00 2001
From: Iryna Vyshnevska
Date: Thu, 18 Jul 2019 16:50:59 +0300
Subject: [PATCH 01/18] [12.0][ADD] create addon:
account_reconcile_restrict_partner_mismatch
---
.../README.rst | 0
.../__init__.py | 2 +
.../__manifest__.py | 19 +
.../models/__init__.py | 1 +
.../models/account_move_line.py | 29 ++
.../readme/DESCRIPTION.rst | 10 +
.../report/__init__.py | 1 +
.../report/account_move_lines_report.xml | 61 +++
.../report/report_reconciled_lines.py | 65 +++
.../security/ir.model.access.csv | 2 +
.../static/description/icon.png | Bin 0 -> 9455 bytes
.../static/description/index.html | 419 ++++++++++++++++++
.../tests/__init__.py | 1 +
.../tests/test_reconciliation.py | 104 +++++
14 files changed, 714 insertions(+)
create mode 100644 account_reconcile_restrict_partner_mismatch/README.rst
create mode 100755 account_reconcile_restrict_partner_mismatch/__init__.py
create mode 100644 account_reconcile_restrict_partner_mismatch/__manifest__.py
create mode 100755 account_reconcile_restrict_partner_mismatch/models/__init__.py
create mode 100644 account_reconcile_restrict_partner_mismatch/models/account_move_line.py
create mode 100644 account_reconcile_restrict_partner_mismatch/readme/DESCRIPTION.rst
create mode 100644 account_reconcile_restrict_partner_mismatch/report/__init__.py
create mode 100644 account_reconcile_restrict_partner_mismatch/report/account_move_lines_report.xml
create mode 100644 account_reconcile_restrict_partner_mismatch/report/report_reconciled_lines.py
create mode 100644 account_reconcile_restrict_partner_mismatch/security/ir.model.access.csv
create mode 100644 account_reconcile_restrict_partner_mismatch/static/description/icon.png
create mode 100644 account_reconcile_restrict_partner_mismatch/static/description/index.html
create mode 100644 account_reconcile_restrict_partner_mismatch/tests/__init__.py
create mode 100644 account_reconcile_restrict_partner_mismatch/tests/test_reconciliation.py
diff --git a/account_reconcile_restrict_partner_mismatch/README.rst b/account_reconcile_restrict_partner_mismatch/README.rst
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/account_reconcile_restrict_partner_mismatch/__init__.py b/account_reconcile_restrict_partner_mismatch/__init__.py
new file mode 100755
index 0000000000..bf588bc8b8
--- /dev/null
+++ b/account_reconcile_restrict_partner_mismatch/__init__.py
@@ -0,0 +1,2 @@
+from . import models
+from . import report
diff --git a/account_reconcile_restrict_partner_mismatch/__manifest__.py b/account_reconcile_restrict_partner_mismatch/__manifest__.py
new file mode 100644
index 0000000000..a9e05f0638
--- /dev/null
+++ b/account_reconcile_restrict_partner_mismatch/__manifest__.py
@@ -0,0 +1,19 @@
+# Copyright 2019 Camptocamp SA
+# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
+
+{
+ 'name': 'Reconcile restrict partner mismatch',
+ 'summary': 'Restrict reconciliation on receivable '
+ 'and payable accounts to the same partner',
+ 'version': '12.0.1.0.0',
+ 'depends': ['account'],
+ 'author': 'Camptocamp, Odoo Community Association (OCA)',
+ 'website': 'http://www.github.com/OCA/account-reconcile',
+ 'category': 'Finance',
+ 'license': 'AGPL-3',
+ 'data': [
+ 'report/account_move_lines_report.xml',
+ 'security/ir.model.access.csv',
+ ],
+ 'installable': True,
+}
diff --git a/account_reconcile_restrict_partner_mismatch/models/__init__.py b/account_reconcile_restrict_partner_mismatch/models/__init__.py
new file mode 100755
index 0000000000..8795b3bea6
--- /dev/null
+++ b/account_reconcile_restrict_partner_mismatch/models/__init__.py
@@ -0,0 +1 @@
+from . import account_move_line
diff --git a/account_reconcile_restrict_partner_mismatch/models/account_move_line.py b/account_reconcile_restrict_partner_mismatch/models/account_move_line.py
new file mode 100644
index 0000000000..8ab5f13e85
--- /dev/null
+++ b/account_reconcile_restrict_partner_mismatch/models/account_move_line.py
@@ -0,0 +1,29 @@
+# Copyright 2019 Camptocamp SA
+# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
+
+from odoo import api, models, _
+from odoo.exceptions import UserError
+from odoo.tools import config
+
+
+class AccountMoveLine(models.Model):
+ _inherit = "account.move.line"
+
+ @api.multi
+ def reconcile(self, writeoff_acc_id=False, writeoff_journal_id=False):
+ if (config['test_enable']
+ and not self.env.context.get('test_partner_mismatch')):
+ return super().reconcile(writeoff_acc_id, writeoff_journal_id)
+
+ # to be consistent with parent method
+ if not self:
+ return True
+ partners = set()
+ for line in self:
+ if line.account_id.internal_type in ('receivable', 'payable'):
+ partners.add(line.partner_id.id)
+ if len(partners) > 1:
+ raise UserError(_('The partner has to be the same on all'
+ ' lines for receivable and payable accounts!'))
+ return super().reconcile(
+ writeoff_acc_id, writeoff_journal_id)
diff --git a/account_reconcile_restrict_partner_mismatch/readme/DESCRIPTION.rst b/account_reconcile_restrict_partner_mismatch/readme/DESCRIPTION.rst
new file mode 100644
index 0000000000..a546b3fa4d
--- /dev/null
+++ b/account_reconcile_restrict_partner_mismatch/readme/DESCRIPTION.rst
@@ -0,0 +1,10 @@
+This module restricts reconciliation between journal items when:
+
+ - both items have different partners
+ - one item is with partner and the other without it
+
+This rule applies only for journal items using receivable and payable account type.
+
+As at the moment of installation some journal items could have been reconciled
+using different partners, you can detect them in menu Accounting > Adviser >
+Reconciled items with partner mismatch.
diff --git a/account_reconcile_restrict_partner_mismatch/report/__init__.py b/account_reconcile_restrict_partner_mismatch/report/__init__.py
new file mode 100644
index 0000000000..f32b29ee8d
--- /dev/null
+++ b/account_reconcile_restrict_partner_mismatch/report/__init__.py
@@ -0,0 +1 @@
+from . import report_reconciled_lines
diff --git a/account_reconcile_restrict_partner_mismatch/report/account_move_lines_report.xml b/account_reconcile_restrict_partner_mismatch/report/account_move_lines_report.xml
new file mode 100644
index 0000000000..14b7276f1b
--- /dev/null
+++ b/account_reconcile_restrict_partner_mismatch/report/account_move_lines_report.xml
@@ -0,0 +1,61 @@
+
+
+
+ Reconciled items with partner mismatch
+ account.reconcile.partner.mismatch.report
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ account.reconcile.partner.mismatch.report.form
+ account.reconcile.partner.mismatch.report
+
+
+
+
+
+
+ Reconciled items with partner mismatch
+ account.reconcile.partner.mismatch.report
+ tree,form
+
+
+
+
diff --git a/account_reconcile_restrict_partner_mismatch/report/report_reconciled_lines.py b/account_reconcile_restrict_partner_mismatch/report/report_reconciled_lines.py
new file mode 100644
index 0000000000..ac2cfc576c
--- /dev/null
+++ b/account_reconcile_restrict_partner_mismatch/report/report_reconciled_lines.py
@@ -0,0 +1,65 @@
+# Copyright 2019 Camptocamp SA
+# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
+
+
+from odoo import api, fields, models, tools
+
+
+class AccountReconcilePartnerMismatchReport(models.Model):
+ _name = 'account.reconcile.partner.mismatch.report'
+ _auto = False
+
+ partial_reconcile_id = fields.Many2one(
+ 'account.partial.reconcile',
+ string="Partial Reconcile"
+ )
+ full_reconcile_id = fields.Many2one('account.full.reconcile')
+ account_id = fields.Many2one(
+ 'account.account',
+ string="Account"
+ )
+ account_type_id = fields.Many2one(
+ 'account.account.type',
+ string="Account type",
+ )
+ debit_move_id = fields.Many2one('account.move.line', string="Debit move")
+ debit_amount = fields.Float("Debit amount")
+ debit_partner_id = fields.Many2one('res.partner', string="Debit partner")
+ credit_move_id = fields.Many2one('account.move.line', string="Credit move")
+ credit_amount = fields.Float("Credit amount")
+ credit_partner_id = fields.Many2one('res.partner', string="Credit partner")
+
+ @api.model_cr
+ def init(self):
+ """Select lines which violate defined rules"""
+ tools.drop_view_if_exists(self.env.cr, self._table)
+ self._cr.execute(
+ """CREATE OR REPLACE VIEW %s AS (
+ SELECT pr.id id
+ , pr.id partial_reconcile_id
+ , pr.full_reconcile_id
+ , pr.debit_move_id
+ , daml.debit debit_amount
+ , aat.id account_type_id
+ , daml.partner_id debit_partner_id
+ , daml.account_id account_id
+ , pr.credit_move_id
+ , caml.credit credit_amount
+ , caml.partner_id credit_partner_id
+ FROM account_partial_reconcile pr
+ LEFT JOIN account_move_line daml
+ ON daml.id = pr.debit_move_id
+ LEFT JOIN account_move_line caml
+ ON caml.id = pr.credit_move_id
+ LEFT JOIN account_account_type aat
+ ON daml.user_type_id = aat.id
+ WHERE aat.type in ('receivable', 'payable')
+ AND (daml.partner_id <> caml.partner_id
+ OR (daml.partner_id IS NULL
+ AND caml.partner_id IS NOT NULL)
+ OR (caml.partner_id IS NULL
+ AND daml.partner_id IS NOT NULL))
+ )
+ """
+ % self._table
+ )
diff --git a/account_reconcile_restrict_partner_mismatch/security/ir.model.access.csv b/account_reconcile_restrict_partner_mismatch/security/ir.model.access.csv
new file mode 100644
index 0000000000..8dea174ac2
--- /dev/null
+++ b/account_reconcile_restrict_partner_mismatch/security/ir.model.access.csv
@@ -0,0 +1,2 @@
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+access_account_reconcile_partner_mismatch_report,access_account_reconcile_partner_mismatch_report,model_account_reconcile_partner_mismatch_report,account.group_account_user,1,0,0,0
diff --git a/account_reconcile_restrict_partner_mismatch/static/description/icon.png b/account_reconcile_restrict_partner_mismatch/static/description/icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..3a0328b516c4980e8e44cdb63fd945757ddd132d
GIT binary patch
literal 9455
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
z
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
Xviia!U7SGha1wx#SCgwmn*{w2TRX*I
literal 0
HcmV?d00001
diff --git a/account_reconcile_restrict_partner_mismatch/static/description/index.html b/account_reconcile_restrict_partner_mismatch/static/description/index.html
new file mode 100644
index 0000000000..876a1f6cb3
--- /dev/null
+++ b/account_reconcile_restrict_partner_mismatch/static/description/index.html
@@ -0,0 +1,419 @@
+
+
+
+
+
+
+Account Set Reconcilable
+
+
+
+
+
Account Set Reconcilable
+
+
+
![Try me on Runbot](https://img.shields.io/badge/runbot-Try%20me-875A7B.png)
+
Allows to set as reconcilable a non reconcilable account that already have journal items.
+
Table of contents
+
+
+
+
Bugs are tracked on GitHub Issues.
+In case of trouble, please check there if your issue has already been reported.
+If you spotted it first, help us smashing it by providing a detailed and welcomed
+feedback.
+
Do not contact contributors directly about support or help with technical issues.
+
+
+
+
+
+
+
+
This module is maintained by the OCA.
+
![Odoo Community Association](https://odoo-community.org/logo.png)
+
OCA, or the Odoo Community Association, is a nonprofit organization whose
+mission is to support the collaborative development of Odoo features and
+promote its widespread use.
+
This module is part of the OCA/account-reconcile project on GitHub.
+
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
+
+
+
+
+
diff --git a/account_reconcile_restrict_partner_mismatch/tests/__init__.py b/account_reconcile_restrict_partner_mismatch/tests/__init__.py
new file mode 100644
index 0000000000..5eaab0190a
--- /dev/null
+++ b/account_reconcile_restrict_partner_mismatch/tests/__init__.py
@@ -0,0 +1 @@
+from . import test_reconciliation
diff --git a/account_reconcile_restrict_partner_mismatch/tests/test_reconciliation.py b/account_reconcile_restrict_partner_mismatch/tests/test_reconciliation.py
new file mode 100644
index 0000000000..a21c6af9e5
--- /dev/null
+++ b/account_reconcile_restrict_partner_mismatch/tests/test_reconciliation.py
@@ -0,0 +1,104 @@
+# Copyright 2019 Camptocamp SA
+# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
+
+from odoo.addons.account.tests.account_test_classes import AccountingTestCase
+from odoo.exceptions import UserError
+
+
+class TestReconciliation(AccountingTestCase):
+
+ def setUp(self):
+ super().setUp()
+ self.env = self.env(context=dict(
+ self.env.context, tracking_disable=True,
+ test_partner_mismatch=True)
+ )
+
+ self.partner = self.env.ref("base.res_partner_2")
+ self.partner_id = self.partner.id
+ rec_type = self.env['account.account'].search([
+ ('user_type_id', '=',
+ self.env.ref('account.data_account_type_receivable').id)
+ ], limit=1)
+ pay_type = self.env['account.account'].search([
+ ('user_type_id', '=',
+ self.env.ref('account.data_account_type_payable').id)
+ ], limit=1)
+ self.account_rcv = (self.partner.property_account_receivable_id
+ or rec_type)
+ self.account_rsa = self.partner.property_account_payable_id or pay_type
+
+ self.bank_journal = self.env['account.journal']. \
+ create({'name': 'Bank', 'type': 'bank', 'code': 'BNK67'})
+ self.aml = self.init_moves()
+ self.wizard = self.env['account.move.line.reconcile.writeoff']. \
+ with_context(active_ids=[x.id for x in self.aml]).create({
+ 'journal_id': self.bank_journal.id,
+ 'writeoff_acc_id': self.account_rsa.id
+ })
+
+ def create_move(self, name, amount):
+ debit_line_vals = {
+ 'name': name,
+ 'debit': amount > 0 and amount or 0.0,
+ 'credit': amount < 0 and -amount or 0.0,
+ 'account_id': self.account_rcv.id,
+ }
+ credit_line_vals = debit_line_vals.copy()
+ credit_line_vals['debit'] = debit_line_vals['credit']
+ credit_line_vals['credit'] = debit_line_vals['debit']
+ credit_line_vals['account_id'] = self.account_rsa.id
+ vals = {
+ 'journal_id': self.bank_journal.id,
+ 'line_ids': [(0, 0, debit_line_vals), (0, 0, credit_line_vals)]
+ }
+ return self.env['account.move'].create(vals).id
+
+ def init_moves(self):
+ move_list_vals = [
+ ('1', -1.83),
+ ('2', 728.35),
+ ('3', -4.46),
+ ('4', 0.32),
+ ('5', 14.72),
+ ('6', -737.10),
+ ]
+ move_ids = []
+ for name, amount in move_list_vals:
+ move_ids.append(self.create_move(name, amount))
+ aml_recs = self.env['account.move.line'].search([
+ ('move_id', 'in', move_ids),
+ ('account_id', '=', self.account_rcv.id)
+ ])
+ return aml_recs
+
+ def test_reconcile_no_partner(self):
+ self.wizard.trans_rec_reconcile()
+ self.assertTrue(all(self.aml.mapped('reconciled')))
+
+ def test_reconcile_partner_mismatch(self):
+ self.aml[0].partner_id = self.partner.id
+ with self.assertRaises(UserError):
+ self.wizard.trans_rec_reconcile()
+ # all lines with same partner allowed
+ self.aml.write({'partner_id': self.partner.id})
+ self.wizard.trans_rec_reconcile()
+ self.assertTrue(all(self.aml.mapped('reconciled')))
+
+ def test_reconcile_accounts_excluded(self):
+ self.aml[0].partner_id = self.partner.id
+ with self.assertRaises(UserError):
+ self.wizard.trans_rec_reconcile()
+ # reconciliation forbiden only for certain types of accounts
+ account = self.env['account.account'].search([
+ ('user_type_id.type', '=', 'other')
+ ], limit=1)
+ account.reconcile = True
+ self.aml[0].account_id = account.id
+ with self.assertRaises(UserError):
+ self.wizard.trans_rec_reconcile()
+ # reconciliation for different partners allowed
+ # for not forbidden types
+ self.aml.write({'account_id': account.id})
+ self.wizard.trans_rec_reconcile()
+ self.assertTrue(all(self.aml.mapped('reconciled')))
From 068f60ab4e1b33d35685dcc01b9173144634c5ec Mon Sep 17 00:00:00 2001
From: Iryna Vyshnevska
Date: Thu, 18 Jul 2019 18:10:43 +0300
Subject: [PATCH 02/18] [MIG][12.0] adapt tests to v12
---
.../README.rst | 77 +++++++++++++
...nt_reconcile_restrict_partner_mismatch.pot | 104 ++++++++++++++++++
.../static/description/index.html | 39 ++++---
.../tests/test_reconciliation.py | 17 +--
4 files changed, 208 insertions(+), 29 deletions(-)
create mode 100644 account_reconcile_restrict_partner_mismatch/i18n/account_reconcile_restrict_partner_mismatch.pot
diff --git a/account_reconcile_restrict_partner_mismatch/README.rst b/account_reconcile_restrict_partner_mismatch/README.rst
index e69de29bb2..8abb6497fc 100644
--- a/account_reconcile_restrict_partner_mismatch/README.rst
+++ b/account_reconcile_restrict_partner_mismatch/README.rst
@@ -0,0 +1,77 @@
+===================================
+Reconcile restrict partner mismatch
+===================================
+
+.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ !! This file is generated by oca-gen-addon-readme !!
+ !! changes will be overwritten. !!
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
+ :target: https://odoo-community.org/page/development-status
+ :alt: Beta
+.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
+ :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
+ :alt: License: AGPL-3
+.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Faccount--reconcile-lightgray.png?logo=github
+ :target: https://github.com/OCA/account-reconcile/tree/12.0/account_reconcile_restrict_partner_mismatch
+ :alt: OCA/account-reconcile
+.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
+ :target: https://translation.odoo-community.org/projects/account-reconcile-12-0/account-reconcile-12-0-account_reconcile_restrict_partner_mismatch
+ :alt: Translate me on Weblate
+.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
+ :target: https://runbot.odoo-community.org/runbot/98/12.0
+ :alt: Try me on Runbot
+
+|badge1| |badge2| |badge3| |badge4| |badge5|
+
+This module restricts reconciliation between journal items when:
+
+ - both items have different partners
+ - one item is with partner and the other without it
+
+This rule applies only for journal items using receivable and payable account type.
+
+As at the moment of installation some journal items could have been reconciled
+using different partners, you can detect them in menu Accounting > Adviser >
+Reconciled items with partner mismatch.
+
+**Table of contents**
+
+.. contents::
+ :local:
+
+Bug Tracker
+===========
+
+Bugs are tracked on `GitHub Issues `_.
+In case of trouble, please check there if your issue has already been reported.
+If you spotted it first, help us smashing it by providing a detailed and welcomed
+`feedback `_.
+
+Do not contact contributors directly about support or help with technical issues.
+
+Credits
+=======
+
+Authors
+~~~~~~~
+
+* Camptocamp
+
+Maintainers
+~~~~~~~~~~~
+
+This module is maintained by the OCA.
+
+.. image:: https://odoo-community.org/logo.png
+ :alt: Odoo Community Association
+ :target: https://odoo-community.org
+
+OCA, or the Odoo Community Association, is a nonprofit organization whose
+mission is to support the collaborative development of Odoo features and
+promote its widespread use.
+
+This module is part of the `OCA/account-reconcile `_ project on GitHub.
+
+You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/account_reconcile_restrict_partner_mismatch/i18n/account_reconcile_restrict_partner_mismatch.pot b/account_reconcile_restrict_partner_mismatch/i18n/account_reconcile_restrict_partner_mismatch.pot
new file mode 100644
index 0000000000..9a97f57378
--- /dev/null
+++ b/account_reconcile_restrict_partner_mismatch/i18n/account_reconcile_restrict_partner_mismatch.pot
@@ -0,0 +1,104 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * account_reconcile_restrict_partner_mismatch
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 12.0\n"
+"Report-Msgid-Bugs-To: \n"
+"Last-Translator: <>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: \n"
+
+#. module: account_reconcile_restrict_partner_mismatch
+#: model:ir.model.fields,field_description:account_reconcile_restrict_partner_mismatch.field_account_reconcile_partner_mismatch_report__account_id
+msgid "Account"
+msgstr ""
+
+#. module: account_reconcile_restrict_partner_mismatch
+#: model:ir.model.fields,field_description:account_reconcile_restrict_partner_mismatch.field_account_reconcile_partner_mismatch_report__account_type_id
+msgid "Account type"
+msgstr ""
+
+#. module: account_reconcile_restrict_partner_mismatch
+#: model:ir.model.fields,field_description:account_reconcile_restrict_partner_mismatch.field_account_reconcile_partner_mismatch_report__credit_amount
+msgid "Credit amount"
+msgstr ""
+
+#. module: account_reconcile_restrict_partner_mismatch
+#: model:ir.model.fields,field_description:account_reconcile_restrict_partner_mismatch.field_account_reconcile_partner_mismatch_report__credit_move_id
+msgid "Credit move"
+msgstr ""
+
+#. module: account_reconcile_restrict_partner_mismatch
+#: model:ir.model.fields,field_description:account_reconcile_restrict_partner_mismatch.field_account_reconcile_partner_mismatch_report__credit_partner_id
+msgid "Credit partner"
+msgstr ""
+
+#. module: account_reconcile_restrict_partner_mismatch
+#: model:ir.model.fields,field_description:account_reconcile_restrict_partner_mismatch.field_account_reconcile_partner_mismatch_report__debit_amount
+msgid "Debit amount"
+msgstr ""
+
+#. module: account_reconcile_restrict_partner_mismatch
+#: model:ir.model.fields,field_description:account_reconcile_restrict_partner_mismatch.field_account_reconcile_partner_mismatch_report__debit_move_id
+msgid "Debit move"
+msgstr ""
+
+#. module: account_reconcile_restrict_partner_mismatch
+#: model:ir.model.fields,field_description:account_reconcile_restrict_partner_mismatch.field_account_reconcile_partner_mismatch_report__debit_partner_id
+msgid "Debit partner"
+msgstr ""
+
+#. module: account_reconcile_restrict_partner_mismatch
+#: model:ir.model.fields,field_description:account_reconcile_restrict_partner_mismatch.field_account_reconcile_partner_mismatch_report__display_name
+msgid "Display Name"
+msgstr ""
+
+#. module: account_reconcile_restrict_partner_mismatch
+#: model:ir.model.fields,field_description:account_reconcile_restrict_partner_mismatch.field_account_reconcile_partner_mismatch_report__full_reconcile_id
+msgid "Full Reconcile"
+msgstr ""
+
+#. module: account_reconcile_restrict_partner_mismatch
+#: model:ir.model.fields,field_description:account_reconcile_restrict_partner_mismatch.field_account_reconcile_partner_mismatch_report__id
+msgid "ID"
+msgstr ""
+
+#. module: account_reconcile_restrict_partner_mismatch
+#: model:ir.model,name:account_reconcile_restrict_partner_mismatch.model_account_move_line
+msgid "Journal Item"
+msgstr ""
+
+#. module: account_reconcile_restrict_partner_mismatch
+#: model:ir.model.fields,field_description:account_reconcile_restrict_partner_mismatch.field_account_reconcile_partner_mismatch_report____last_update
+msgid "Last Modified on"
+msgstr ""
+
+#. module: account_reconcile_restrict_partner_mismatch
+#: model:ir.model.fields,field_description:account_reconcile_restrict_partner_mismatch.field_account_reconcile_partner_mismatch_report__partial_reconcile_id
+msgid "Partial Reconcile"
+msgstr ""
+
+#. module: account_reconcile_restrict_partner_mismatch
+#: model:ir.actions.act_window,name:account_reconcile_restrict_partner_mismatch.action_account_reconcile_partner_mismatch_report
+#: model:ir.ui.menu,name:account_reconcile_restrict_partner_mismatch.menu_account_reconcile_partner_mismatch_report
+#: model_terms:ir.ui.view,arch_db:account_reconcile_restrict_partner_mismatch.account_reconcile_partner_mismatch_report_view_form
+#: model_terms:ir.ui.view,arch_db:account_reconcile_restrict_partner_mismatch.view_account_move_reconciled_report_tree
+msgid "Reconciled items with partner mismatch"
+msgstr ""
+
+#. module: account_reconcile_restrict_partner_mismatch
+#: code:addons/account_reconcile_restrict_partner_mismatch/models/account_move_line.py:26
+#, python-format
+msgid "The partner has to be the same on all lines for receivable and payable accounts!"
+msgstr ""
+
+#. module: account_reconcile_restrict_partner_mismatch
+#: model:ir.model,name:account_reconcile_restrict_partner_mismatch.model_account_reconcile_partner_mismatch_report
+msgid "account.reconcile.partner.mismatch.report"
+msgstr ""
+
diff --git a/account_reconcile_restrict_partner_mismatch/static/description/index.html b/account_reconcile_restrict_partner_mismatch/static/description/index.html
index 876a1f6cb3..aa278bcf27 100644
--- a/account_reconcile_restrict_partner_mismatch/static/description/index.html
+++ b/account_reconcile_restrict_partner_mismatch/static/description/index.html
@@ -3,8 +3,8 @@
-
-Account Set Reconcilable
+
+Reconcile restrict partner mismatch
-
-
Account Set Reconcilable
+
+
Reconcile restrict partner mismatch
-
![Try me on Runbot](https://img.shields.io/badge/runbot-Try%20me-875A7B.png)
-
Allows to set as reconcilable a non reconcilable account that already have journal items.
+
![Try me on Runbot](https://img.shields.io/badge/runbot-Try%20me-875A7B.png)
+
This module restricts reconciliation between journal items when:
+
+
+- both items have different partners
+- one item is with partner and the other without it
+
+
+
This rule applies only for journal items using receivable and payable account type.
+
As at the moment of installation some journal items could have been reconciled
+using different partners, you can detect them in menu Accounting > Adviser >
+Reconciled items with partner mismatch.
Table of contents
@@ -386,7 +395,7 @@
Bugs are tracked on GitHub Issues.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed and welcomed
-feedback.
+
feedback.
Do not contact contributors directly about support or help with technical issues.
@@ -394,23 +403,17 @@
-
-
+
This module is maintained by the OCA.
OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.
-
This module is part of the OCA/account-reconcile project on GitHub.
+
This module is part of the OCA/account-reconcile project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/account_reconcile_restrict_partner_mismatch/tests/test_reconciliation.py b/account_reconcile_restrict_partner_mismatch/tests/test_reconciliation.py
index a21c6af9e5..13be44556d 100644
--- a/account_reconcile_restrict_partner_mismatch/tests/test_reconciliation.py
+++ b/account_reconcile_restrict_partner_mismatch/tests/test_reconciliation.py
@@ -31,11 +31,6 @@ def setUp(self):
self.bank_journal = self.env['account.journal']. \
create({'name': 'Bank', 'type': 'bank', 'code': 'BNK67'})
self.aml = self.init_moves()
- self.wizard = self.env['account.move.line.reconcile.writeoff']. \
- with_context(active_ids=[x.id for x in self.aml]).create({
- 'journal_id': self.bank_journal.id,
- 'writeoff_acc_id': self.account_rsa.id
- })
def create_move(self, name, amount):
debit_line_vals = {
@@ -73,22 +68,22 @@ def init_moves(self):
return aml_recs
def test_reconcile_no_partner(self):
- self.wizard.trans_rec_reconcile()
+ self.aml.reconcile()
self.assertTrue(all(self.aml.mapped('reconciled')))
def test_reconcile_partner_mismatch(self):
self.aml[0].partner_id = self.partner.id
with self.assertRaises(UserError):
- self.wizard.trans_rec_reconcile()
+ self.aml.reconcile()
# all lines with same partner allowed
self.aml.write({'partner_id': self.partner.id})
- self.wizard.trans_rec_reconcile()
+ self.aml.reconcile()
self.assertTrue(all(self.aml.mapped('reconciled')))
def test_reconcile_accounts_excluded(self):
self.aml[0].partner_id = self.partner.id
with self.assertRaises(UserError):
- self.wizard.trans_rec_reconcile()
+ self.aml.reconcile()
# reconciliation forbiden only for certain types of accounts
account = self.env['account.account'].search([
('user_type_id.type', '=', 'other')
@@ -96,9 +91,9 @@ def test_reconcile_accounts_excluded(self):
account.reconcile = True
self.aml[0].account_id = account.id
with self.assertRaises(UserError):
- self.wizard.trans_rec_reconcile()
+ self.aml.reconcile()
# reconciliation for different partners allowed
# for not forbidden types
self.aml.write({'account_id': account.id})
- self.wizard.trans_rec_reconcile()
+ self.aml.reconcile()
self.assertTrue(all(self.aml.mapped('reconciled')))
From 53994e6799411c67a935ff1dec5a28fec73305e0 Mon Sep 17 00:00:00 2001
From: mreficent
Date: Fri, 2 Aug 2019 14:46:42 +0200
Subject: [PATCH 03/18] [FIX] Add description to a model
---
.../account_reconcile_restrict_partner_mismatch.pot | 10 +++++-----
.../report/report_reconciled_lines.py | 1 +
2 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/account_reconcile_restrict_partner_mismatch/i18n/account_reconcile_restrict_partner_mismatch.pot b/account_reconcile_restrict_partner_mismatch/i18n/account_reconcile_restrict_partner_mismatch.pot
index 9a97f57378..8958863273 100644
--- a/account_reconcile_restrict_partner_mismatch/i18n/account_reconcile_restrict_partner_mismatch.pot
+++ b/account_reconcile_restrict_partner_mismatch/i18n/account_reconcile_restrict_partner_mismatch.pot
@@ -18,6 +18,11 @@ msgstr ""
msgid "Account"
msgstr ""
+#. module: account_reconcile_restrict_partner_mismatch
+#: model:ir.model,name:account_reconcile_restrict_partner_mismatch.model_account_reconcile_partner_mismatch_report
+msgid "Account Reconcile Partner Mismatch Report"
+msgstr ""
+
#. module: account_reconcile_restrict_partner_mismatch
#: model:ir.model.fields,field_description:account_reconcile_restrict_partner_mismatch.field_account_reconcile_partner_mismatch_report__account_type_id
msgid "Account type"
@@ -97,8 +102,3 @@ msgstr ""
msgid "The partner has to be the same on all lines for receivable and payable accounts!"
msgstr ""
-#. module: account_reconcile_restrict_partner_mismatch
-#: model:ir.model,name:account_reconcile_restrict_partner_mismatch.model_account_reconcile_partner_mismatch_report
-msgid "account.reconcile.partner.mismatch.report"
-msgstr ""
-
diff --git a/account_reconcile_restrict_partner_mismatch/report/report_reconciled_lines.py b/account_reconcile_restrict_partner_mismatch/report/report_reconciled_lines.py
index ac2cfc576c..994264ac10 100644
--- a/account_reconcile_restrict_partner_mismatch/report/report_reconciled_lines.py
+++ b/account_reconcile_restrict_partner_mismatch/report/report_reconciled_lines.py
@@ -7,6 +7,7 @@
class AccountReconcilePartnerMismatchReport(models.Model):
_name = 'account.reconcile.partner.mismatch.report'
+ _description = 'Account Reconcile Partner Mismatch Report'
_auto = False
partial_reconcile_id = fields.Many2one(
From f10db7f4b7f8602c2381998fbb255a4189648cdf Mon Sep 17 00:00:00 2001
From: ernestotejeda
Date: Mon, 25 Nov 2019 15:07:08 -0500
Subject: [PATCH 04/18] [IMP] account_reconcile_restrict_partner_mismatch:
black, isort
---
.../__manifest__.py | 25 ++---
.../models/account_move_line.py | 18 ++--
.../report/account_move_lines_report.xml | 2 +-
.../report/report_reconciled_lines.py | 27 ++---
.../tests/test_reconciliation.py | 102 ++++++++++--------
5 files changed, 89 insertions(+), 85 deletions(-)
diff --git a/account_reconcile_restrict_partner_mismatch/__manifest__.py b/account_reconcile_restrict_partner_mismatch/__manifest__.py
index a9e05f0638..92fb86196d 100644
--- a/account_reconcile_restrict_partner_mismatch/__manifest__.py
+++ b/account_reconcile_restrict_partner_mismatch/__manifest__.py
@@ -2,18 +2,15 @@
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
{
- 'name': 'Reconcile restrict partner mismatch',
- 'summary': 'Restrict reconciliation on receivable '
- 'and payable accounts to the same partner',
- 'version': '12.0.1.0.0',
- 'depends': ['account'],
- 'author': 'Camptocamp, Odoo Community Association (OCA)',
- 'website': 'http://www.github.com/OCA/account-reconcile',
- 'category': 'Finance',
- 'license': 'AGPL-3',
- 'data': [
- 'report/account_move_lines_report.xml',
- 'security/ir.model.access.csv',
- ],
- 'installable': True,
+ "name": "Reconcile restrict partner mismatch",
+ "summary": "Restrict reconciliation on receivable "
+ "and payable accounts to the same partner",
+ "version": "12.0.1.0.0",
+ "depends": ["account"],
+ "author": "Camptocamp, Odoo Community Association (OCA)",
+ "website": "http://www.github.com/OCA/account-reconcile",
+ "category": "Finance",
+ "license": "AGPL-3",
+ "data": ["report/account_move_lines_report.xml", "security/ir.model.access.csv"],
+ "installable": True,
}
diff --git a/account_reconcile_restrict_partner_mismatch/models/account_move_line.py b/account_reconcile_restrict_partner_mismatch/models/account_move_line.py
index 8ab5f13e85..9cd800fe4b 100644
--- a/account_reconcile_restrict_partner_mismatch/models/account_move_line.py
+++ b/account_reconcile_restrict_partner_mismatch/models/account_move_line.py
@@ -1,7 +1,7 @@
# Copyright 2019 Camptocamp SA
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
-from odoo import api, models, _
+from odoo import _, api, models
from odoo.exceptions import UserError
from odoo.tools import config
@@ -11,8 +11,7 @@ class AccountMoveLine(models.Model):
@api.multi
def reconcile(self, writeoff_acc_id=False, writeoff_journal_id=False):
- if (config['test_enable']
- and not self.env.context.get('test_partner_mismatch')):
+ if config["test_enable"] and not self.env.context.get("test_partner_mismatch"):
return super().reconcile(writeoff_acc_id, writeoff_journal_id)
# to be consistent with parent method
@@ -20,10 +19,13 @@ def reconcile(self, writeoff_acc_id=False, writeoff_journal_id=False):
return True
partners = set()
for line in self:
- if line.account_id.internal_type in ('receivable', 'payable'):
+ if line.account_id.internal_type in ("receivable", "payable"):
partners.add(line.partner_id.id)
if len(partners) > 1:
- raise UserError(_('The partner has to be the same on all'
- ' lines for receivable and payable accounts!'))
- return super().reconcile(
- writeoff_acc_id, writeoff_journal_id)
+ raise UserError(
+ _(
+ "The partner has to be the same on all"
+ " lines for receivable and payable accounts!"
+ )
+ )
+ return super().reconcile(writeoff_acc_id, writeoff_journal_id)
diff --git a/account_reconcile_restrict_partner_mismatch/report/account_move_lines_report.xml b/account_reconcile_restrict_partner_mismatch/report/account_move_lines_report.xml
index 14b7276f1b..91aef71409 100644
--- a/account_reconcile_restrict_partner_mismatch/report/account_move_lines_report.xml
+++ b/account_reconcile_restrict_partner_mismatch/report/account_move_lines_report.xml
@@ -5,7 +5,7 @@
account.reconcile.partner.mismatch.report
-
diff --git a/account_reconcile_restrict_partner_mismatch/report/report_reconciled_lines.py b/account_reconcile_restrict_partner_mismatch/report/report_reconciled_lines.py
index 994264ac10..06e0e86b49 100644
--- a/account_reconcile_restrict_partner_mismatch/report/report_reconciled_lines.py
+++ b/account_reconcile_restrict_partner_mismatch/report/report_reconciled_lines.py
@@ -6,29 +6,22 @@
class AccountReconcilePartnerMismatchReport(models.Model):
- _name = 'account.reconcile.partner.mismatch.report'
- _description = 'Account Reconcile Partner Mismatch Report'
+ _name = "account.reconcile.partner.mismatch.report"
+ _description = "Account Reconcile Partner Mismatch Report"
_auto = False
partial_reconcile_id = fields.Many2one(
- 'account.partial.reconcile',
- string="Partial Reconcile"
+ "account.partial.reconcile", string="Partial Reconcile"
)
- full_reconcile_id = fields.Many2one('account.full.reconcile')
- account_id = fields.Many2one(
- 'account.account',
- string="Account"
- )
- account_type_id = fields.Many2one(
- 'account.account.type',
- string="Account type",
- )
- debit_move_id = fields.Many2one('account.move.line', string="Debit move")
+ full_reconcile_id = fields.Many2one("account.full.reconcile")
+ account_id = fields.Many2one("account.account", string="Account")
+ account_type_id = fields.Many2one("account.account.type", string="Account type")
+ debit_move_id = fields.Many2one("account.move.line", string="Debit move")
debit_amount = fields.Float("Debit amount")
- debit_partner_id = fields.Many2one('res.partner', string="Debit partner")
- credit_move_id = fields.Many2one('account.move.line', string="Credit move")
+ debit_partner_id = fields.Many2one("res.partner", string="Debit partner")
+ credit_move_id = fields.Many2one("account.move.line", string="Credit move")
credit_amount = fields.Float("Credit amount")
- credit_partner_id = fields.Many2one('res.partner', string="Credit partner")
+ credit_partner_id = fields.Many2one("res.partner", string="Credit partner")
@api.model_cr
def init(self):
diff --git a/account_reconcile_restrict_partner_mismatch/tests/test_reconciliation.py b/account_reconcile_restrict_partner_mismatch/tests/test_reconciliation.py
index 13be44556d..5711a68783 100644
--- a/account_reconcile_restrict_partner_mismatch/tests/test_reconciliation.py
+++ b/account_reconcile_restrict_partner_mismatch/tests/test_reconciliation.py
@@ -1,99 +1,111 @@
# Copyright 2019 Camptocamp SA
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
-from odoo.addons.account.tests.account_test_classes import AccountingTestCase
from odoo.exceptions import UserError
+from odoo.addons.account.tests.account_test_classes import AccountingTestCase
-class TestReconciliation(AccountingTestCase):
+class TestReconciliation(AccountingTestCase):
def setUp(self):
super().setUp()
- self.env = self.env(context=dict(
- self.env.context, tracking_disable=True,
- test_partner_mismatch=True)
+ self.env = self.env(
+ context=dict(
+ self.env.context, tracking_disable=True, test_partner_mismatch=True
+ )
)
self.partner = self.env.ref("base.res_partner_2")
self.partner_id = self.partner.id
- rec_type = self.env['account.account'].search([
- ('user_type_id', '=',
- self.env.ref('account.data_account_type_receivable').id)
- ], limit=1)
- pay_type = self.env['account.account'].search([
- ('user_type_id', '=',
- self.env.ref('account.data_account_type_payable').id)
- ], limit=1)
- self.account_rcv = (self.partner.property_account_receivable_id
- or rec_type)
+ rec_type = self.env["account.account"].search(
+ [
+ (
+ "user_type_id",
+ "=",
+ self.env.ref("account.data_account_type_receivable").id,
+ )
+ ],
+ limit=1,
+ )
+ pay_type = self.env["account.account"].search(
+ [
+ (
+ "user_type_id",
+ "=",
+ self.env.ref("account.data_account_type_payable").id,
+ )
+ ],
+ limit=1,
+ )
+ self.account_rcv = self.partner.property_account_receivable_id or rec_type
self.account_rsa = self.partner.property_account_payable_id or pay_type
- self.bank_journal = self.env['account.journal']. \
- create({'name': 'Bank', 'type': 'bank', 'code': 'BNK67'})
+ self.bank_journal = self.env["account.journal"].create(
+ {"name": "Bank", "type": "bank", "code": "BNK67"}
+ )
self.aml = self.init_moves()
def create_move(self, name, amount):
debit_line_vals = {
- 'name': name,
- 'debit': amount > 0 and amount or 0.0,
- 'credit': amount < 0 and -amount or 0.0,
- 'account_id': self.account_rcv.id,
+ "name": name,
+ "debit": amount > 0 and amount or 0.0,
+ "credit": amount < 0 and -amount or 0.0,
+ "account_id": self.account_rcv.id,
}
credit_line_vals = debit_line_vals.copy()
- credit_line_vals['debit'] = debit_line_vals['credit']
- credit_line_vals['credit'] = debit_line_vals['debit']
- credit_line_vals['account_id'] = self.account_rsa.id
+ credit_line_vals["debit"] = debit_line_vals["credit"]
+ credit_line_vals["credit"] = debit_line_vals["debit"]
+ credit_line_vals["account_id"] = self.account_rsa.id
vals = {
- 'journal_id': self.bank_journal.id,
- 'line_ids': [(0, 0, debit_line_vals), (0, 0, credit_line_vals)]
+ "journal_id": self.bank_journal.id,
+ "line_ids": [(0, 0, debit_line_vals), (0, 0, credit_line_vals)],
}
- return self.env['account.move'].create(vals).id
+ return self.env["account.move"].create(vals).id
def init_moves(self):
move_list_vals = [
- ('1', -1.83),
- ('2', 728.35),
- ('3', -4.46),
- ('4', 0.32),
- ('5', 14.72),
- ('6', -737.10),
+ ("1", -1.83),
+ ("2", 728.35),
+ ("3", -4.46),
+ ("4", 0.32),
+ ("5", 14.72),
+ ("6", -737.10),
]
move_ids = []
for name, amount in move_list_vals:
move_ids.append(self.create_move(name, amount))
- aml_recs = self.env['account.move.line'].search([
- ('move_id', 'in', move_ids),
- ('account_id', '=', self.account_rcv.id)
- ])
+ aml_recs = self.env["account.move.line"].search(
+ [("move_id", "in", move_ids), ("account_id", "=", self.account_rcv.id)]
+ )
return aml_recs
def test_reconcile_no_partner(self):
self.aml.reconcile()
- self.assertTrue(all(self.aml.mapped('reconciled')))
+ self.assertTrue(all(self.aml.mapped("reconciled")))
def test_reconcile_partner_mismatch(self):
self.aml[0].partner_id = self.partner.id
with self.assertRaises(UserError):
self.aml.reconcile()
# all lines with same partner allowed
- self.aml.write({'partner_id': self.partner.id})
+ self.aml.write({"partner_id": self.partner.id})
self.aml.reconcile()
- self.assertTrue(all(self.aml.mapped('reconciled')))
+ self.assertTrue(all(self.aml.mapped("reconciled")))
def test_reconcile_accounts_excluded(self):
self.aml[0].partner_id = self.partner.id
with self.assertRaises(UserError):
self.aml.reconcile()
# reconciliation forbiden only for certain types of accounts
- account = self.env['account.account'].search([
- ('user_type_id.type', '=', 'other')
- ], limit=1)
+ account = self.env["account.account"].search(
+ [("user_type_id.type", "=", "other")], limit=1
+ )
account.reconcile = True
self.aml[0].account_id = account.id
with self.assertRaises(UserError):
self.aml.reconcile()
# reconciliation for different partners allowed
# for not forbidden types
- self.aml.write({'account_id': account.id})
+ self.aml.write({"account_id": account.id})
self.aml.reconcile()
- self.assertTrue(all(self.aml.mapped('reconciled')))
+ self.assertTrue(all(self.aml.mapped("reconciled")))
From 09307acabd05c09546e5f11db78c6d961730e0eb Mon Sep 17 00:00:00 2001
From: ernestotejeda
Date: Tue, 26 Nov 2019 11:37:54 -0500
Subject: [PATCH 05/18] [MIG] account_reconcile_restrict_partner_mismatch:
Migration to 13.0
---
.../README.rst | 17 ++-
.../__init__.py | 0
.../__manifest__.py | 2 +-
...nt_reconcile_restrict_partner_mismatch.pot | 13 +-
.../models/__init__.py | 0
.../models/account_move_line.py | 3 +-
.../readme/CONTRIBUTORS.rst | 3 +
.../report/account_move_lines_report.xml | 123 ++++++++++--------
.../report/report_reconciled_lines.py | 7 +-
.../static/description/index.html | 20 ++-
.../tests/test_reconciliation.py | 95 +++++++-------
11 files changed, 161 insertions(+), 122 deletions(-)
mode change 100755 => 100644 account_reconcile_restrict_partner_mismatch/__init__.py
mode change 100755 => 100644 account_reconcile_restrict_partner_mismatch/models/__init__.py
create mode 100644 account_reconcile_restrict_partner_mismatch/readme/CONTRIBUTORS.rst
diff --git a/account_reconcile_restrict_partner_mismatch/README.rst b/account_reconcile_restrict_partner_mismatch/README.rst
index 8abb6497fc..145d112ac9 100644
--- a/account_reconcile_restrict_partner_mismatch/README.rst
+++ b/account_reconcile_restrict_partner_mismatch/README.rst
@@ -14,13 +14,13 @@ Reconcile restrict partner mismatch
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Faccount--reconcile-lightgray.png?logo=github
- :target: https://github.com/OCA/account-reconcile/tree/12.0/account_reconcile_restrict_partner_mismatch
+ :target: https://github.com/OCA/account-reconcile/tree/13.0/account_reconcile_restrict_partner_mismatch
:alt: OCA/account-reconcile
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
- :target: https://translation.odoo-community.org/projects/account-reconcile-12-0/account-reconcile-12-0-account_reconcile_restrict_partner_mismatch
+ :target: https://translation.odoo-community.org/projects/account-reconcile-13-0/account-reconcile-13-0-account_reconcile_restrict_partner_mismatch
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
- :target: https://runbot.odoo-community.org/runbot/98/12.0
+ :target: https://runbot.odoo-community.org/runbot/98/13.0
:alt: Try me on Runbot
|badge1| |badge2| |badge3| |badge4| |badge5|
@@ -47,7 +47,7 @@ Bug Tracker
Bugs are tracked on `GitHub Issues `_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed and welcomed
-`feedback `_.
+`feedback `_.
Do not contact contributors directly about support or help with technical issues.
@@ -59,6 +59,13 @@ Authors
* Camptocamp
+Contributors
+~~~~~~~~~~~~
+
+* `Tecnativa `_:
+
+ * Ernesto Tejeda
+
Maintainers
~~~~~~~~~~~
@@ -72,6 +79,6 @@ OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.
-This module is part of the `OCA/account-reconcile `_ project on GitHub.
+This module is part of the `OCA/account-reconcile `_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/account_reconcile_restrict_partner_mismatch/__init__.py b/account_reconcile_restrict_partner_mismatch/__init__.py
old mode 100755
new mode 100644
diff --git a/account_reconcile_restrict_partner_mismatch/__manifest__.py b/account_reconcile_restrict_partner_mismatch/__manifest__.py
index 92fb86196d..694d288e96 100644
--- a/account_reconcile_restrict_partner_mismatch/__manifest__.py
+++ b/account_reconcile_restrict_partner_mismatch/__manifest__.py
@@ -5,7 +5,7 @@
"name": "Reconcile restrict partner mismatch",
"summary": "Restrict reconciliation on receivable "
"and payable accounts to the same partner",
- "version": "12.0.1.0.0",
+ "version": "13.0.1.0.0",
"depends": ["account"],
"author": "Camptocamp, Odoo Community Association (OCA)",
"website": "http://www.github.com/OCA/account-reconcile",
diff --git a/account_reconcile_restrict_partner_mismatch/i18n/account_reconcile_restrict_partner_mismatch.pot b/account_reconcile_restrict_partner_mismatch/i18n/account_reconcile_restrict_partner_mismatch.pot
index 8958863273..b3d9f2afea 100644
--- a/account_reconcile_restrict_partner_mismatch/i18n/account_reconcile_restrict_partner_mismatch.pot
+++ b/account_reconcile_restrict_partner_mismatch/i18n/account_reconcile_restrict_partner_mismatch.pot
@@ -1,12 +1,12 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
-# * account_reconcile_restrict_partner_mismatch
+# * account_reconcile_restrict_partner_mismatch
#
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 12.0\n"
+"Project-Id-Version: Odoo Server 13.0\n"
"Report-Msgid-Bugs-To: \n"
-"Last-Translator: <>\n"
+"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -97,8 +97,9 @@ msgid "Reconciled items with partner mismatch"
msgstr ""
#. module: account_reconcile_restrict_partner_mismatch
-#: code:addons/account_reconcile_restrict_partner_mismatch/models/account_move_line.py:26
+#: code:addons/account_reconcile_restrict_partner_mismatch/models/account_move_line.py:0
#, python-format
-msgid "The partner has to be the same on all lines for receivable and payable accounts!"
+msgid ""
+"The partner has to be the same on all lines for receivable and payable "
+"accounts!"
msgstr ""
-
diff --git a/account_reconcile_restrict_partner_mismatch/models/__init__.py b/account_reconcile_restrict_partner_mismatch/models/__init__.py
old mode 100755
new mode 100644
diff --git a/account_reconcile_restrict_partner_mismatch/models/account_move_line.py b/account_reconcile_restrict_partner_mismatch/models/account_move_line.py
index 9cd800fe4b..adafe6e47e 100644
--- a/account_reconcile_restrict_partner_mismatch/models/account_move_line.py
+++ b/account_reconcile_restrict_partner_mismatch/models/account_move_line.py
@@ -1,7 +1,7 @@
# Copyright 2019 Camptocamp SA
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
-from odoo import _, api, models
+from odoo import _, models
from odoo.exceptions import UserError
from odoo.tools import config
@@ -9,7 +9,6 @@
class AccountMoveLine(models.Model):
_inherit = "account.move.line"
- @api.multi
def reconcile(self, writeoff_acc_id=False, writeoff_journal_id=False):
if config["test_enable"] and not self.env.context.get("test_partner_mismatch"):
return super().reconcile(writeoff_acc_id, writeoff_journal_id)
diff --git a/account_reconcile_restrict_partner_mismatch/readme/CONTRIBUTORS.rst b/account_reconcile_restrict_partner_mismatch/readme/CONTRIBUTORS.rst
new file mode 100644
index 0000000000..0b6bee443f
--- /dev/null
+++ b/account_reconcile_restrict_partner_mismatch/readme/CONTRIBUTORS.rst
@@ -0,0 +1,3 @@
+* `Tecnativa `_:
+
+ * Ernesto Tejeda
diff --git a/account_reconcile_restrict_partner_mismatch/report/account_move_lines_report.xml b/account_reconcile_restrict_partner_mismatch/report/account_move_lines_report.xml
index 91aef71409..ee82bcc824 100644
--- a/account_reconcile_restrict_partner_mismatch/report/account_move_lines_report.xml
+++ b/account_reconcile_restrict_partner_mismatch/report/account_move_lines_report.xml
@@ -1,61 +1,74 @@
-
+
-
- Reconciled items with partner mismatch
- account.reconcile.partner.mismatch.report
-
-
+
+ Reconciled items with partner mismatch
+ account.reconcile.partner.mismatch.report
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- account.reconcile.partner.mismatch.report.form
- account.reconcile.partner.mismatch.report
-
-
+
+
+
+ account.reconcile.partner.mismatch.report.form
+ account.reconcile.partner.mismatch.report
+
+
-
-
-
-
- Reconciled items with partner mismatch
- account.reconcile.partner.mismatch.report
- tree,form
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+ Reconciled items with partner mismatch
+ account.reconcile.partner.mismatch.report
+ tree,form
+
+
diff --git a/account_reconcile_restrict_partner_mismatch/report/report_reconciled_lines.py b/account_reconcile_restrict_partner_mismatch/report/report_reconciled_lines.py
index 06e0e86b49..a1ceeab401 100644
--- a/account_reconcile_restrict_partner_mismatch/report/report_reconciled_lines.py
+++ b/account_reconcile_restrict_partner_mismatch/report/report_reconciled_lines.py
@@ -2,7 +2,7 @@
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
-from odoo import api, fields, models, tools
+from odoo import fields, models, tools
class AccountReconcilePartnerMismatchReport(models.Model):
@@ -23,7 +23,6 @@ class AccountReconcilePartnerMismatchReport(models.Model):
credit_amount = fields.Float("Credit amount")
credit_partner_id = fields.Many2one("res.partner", string="Credit partner")
- @api.model_cr
def init(self):
"""Select lines which violate defined rules"""
tools.drop_view_if_exists(self.env.cr, self._table)
@@ -45,8 +44,10 @@ def init(self):
ON daml.id = pr.debit_move_id
LEFT JOIN account_move_line caml
ON caml.id = pr.credit_move_id
+ LEFT JOIN account_account aa
+ ON daml.account_id = aa.id
LEFT JOIN account_account_type aat
- ON daml.user_type_id = aat.id
+ ON aa.user_type_id = aat.id
WHERE aat.type in ('receivable', 'payable')
AND (daml.partner_id <> caml.partner_id
OR (daml.partner_id IS NULL
diff --git a/account_reconcile_restrict_partner_mismatch/static/description/index.html b/account_reconcile_restrict_partner_mismatch/static/description/index.html
index aa278bcf27..3ddd6fd3fa 100644
--- a/account_reconcile_restrict_partner_mismatch/static/description/index.html
+++ b/account_reconcile_restrict_partner_mismatch/static/description/index.html
@@ -367,7 +367,7 @@ Reconcile restrict partner mismatch
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
-
![Try me on Runbot](https://img.shields.io/badge/runbot-Try%20me-875A7B.png)
+
![Try me on Runbot](https://img.shields.io/badge/runbot-Try%20me-875A7B.png)
This module restricts reconciliation between journal items when:
@@ -395,7 +396,7 @@
Bugs are tracked on GitHub Issues.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed and welcomed
-feedback.
+feedback.
Do not contact contributors directly about support or help with technical issues.
@@ -406,14 +407,23 @@
Camptocamp
+
-
+
This module is maintained by the OCA.
OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.
-
This module is part of the OCA/account-reconcile project on GitHub.
+
This module is part of the OCA/account-reconcile project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/account_reconcile_restrict_partner_mismatch/tests/test_reconciliation.py b/account_reconcile_restrict_partner_mismatch/tests/test_reconciliation.py
index 5711a68783..6f1e61f175 100644
--- a/account_reconcile_restrict_partner_mismatch/tests/test_reconciliation.py
+++ b/account_reconcile_restrict_partner_mismatch/tests/test_reconciliation.py
@@ -2,67 +2,66 @@
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
from odoo.exceptions import UserError
+from odoo.tests.common import SavepointCase
-from odoo.addons.account.tests.account_test_classes import AccountingTestCase
-
-class TestReconciliation(AccountingTestCase):
- def setUp(self):
- super().setUp()
- self.env = self.env(
+class TestReconciliation(SavepointCase):
+ @classmethod
+ def setUpClass(cls):
+ super().setUpClass()
+ cls.env = cls.env(
context=dict(
- self.env.context, tracking_disable=True, test_partner_mismatch=True
+ cls.env.context, tracking_disable=True, test_partner_mismatch=True
)
)
-
- self.partner = self.env.ref("base.res_partner_2")
- self.partner_id = self.partner.id
- rec_type = self.env["account.account"].search(
- [
- (
- "user_type_id",
- "=",
- self.env.ref("account.data_account_type_receivable").id,
- )
- ],
- limit=1,
+ cls.partner = cls.env.ref("base.res_partner_2")
+ cls.partner_id = cls.partner.id
+ cls.account_rcv = cls.env["account.account"].create(
+ {
+ "code": "RA1000",
+ "name": "Test Receivable Account",
+ "user_type_id": cls.env.ref("account.data_account_type_receivable").id,
+ "reconcile": True,
+ }
)
- pay_type = self.env["account.account"].search(
- [
- (
- "user_type_id",
- "=",
- self.env.ref("account.data_account_type_payable").id,
- )
- ],
- limit=1,
+ cls.account_rsa = cls.env["account.account"].create(
+ {
+ "code": "PA1000",
+ "name": "Test Payable Account",
+ "user_type_id": cls.env.ref("account.data_account_type_payable").id,
+ "reconcile": True,
+ }
)
- self.account_rcv = self.partner.property_account_receivable_id or rec_type
- self.account_rsa = self.partner.property_account_payable_id or pay_type
-
- self.bank_journal = self.env["account.journal"].create(
+ cls.bank_journal = cls.env["account.journal"].create(
{"name": "Bank", "type": "bank", "code": "BNK67"}
)
- self.aml = self.init_moves()
+ cls.aml = cls.init_moves()
- def create_move(self, name, amount):
+ @classmethod
+ def create_move(cls, name, amount):
debit_line_vals = {
"name": name,
"debit": amount > 0 and amount or 0.0,
"credit": amount < 0 and -amount or 0.0,
- "account_id": self.account_rcv.id,
+ "account_id": cls.account_rcv.id,
}
credit_line_vals = debit_line_vals.copy()
credit_line_vals["debit"] = debit_line_vals["credit"]
credit_line_vals["credit"] = debit_line_vals["debit"]
- credit_line_vals["account_id"] = self.account_rsa.id
+ credit_line_vals["account_id"] = cls.account_rsa.id
vals = {
- "journal_id": self.bank_journal.id,
+ "journal_id": cls.bank_journal.id,
"line_ids": [(0, 0, debit_line_vals), (0, 0, credit_line_vals)],
}
- return self.env["account.move"].create(vals).id
+ return (
+ cls.env["account.move"]
+ .with_context(default_journal_id=cls.bank_journal.id)
+ .create(vals)
+ .id
+ )
- def init_moves(self):
+ @classmethod
+ def init_moves(cls):
move_list_vals = [
("1", -1.83),
("2", 728.35),
@@ -73,9 +72,9 @@ def init_moves(self):
]
move_ids = []
for name, amount in move_list_vals:
- move_ids.append(self.create_move(name, amount))
- aml_recs = self.env["account.move.line"].search(
- [("move_id", "in", move_ids), ("account_id", "=", self.account_rcv.id)]
+ move_ids.append(cls.create_move(name, amount))
+ aml_recs = cls.env["account.move.line"].search(
+ [("move_id", "in", move_ids), ("account_id", "=", cls.account_rcv.id)]
)
return aml_recs
@@ -97,10 +96,16 @@ def test_reconcile_accounts_excluded(self):
with self.assertRaises(UserError):
self.aml.reconcile()
# reconciliation forbiden only for certain types of accounts
- account = self.env["account.account"].search(
- [("user_type_id.type", "=", "other")], limit=1
+ account = self.env["account.account"].create(
+ {
+ "code": "CAA1000",
+ "name": "Test Current Assets Account",
+ "user_type_id": self.env.ref(
+ "account.data_account_type_current_assets"
+ ).id,
+ "reconcile": True,
+ }
)
- account.reconcile = True
self.aml[0].account_id = account.id
with self.assertRaises(UserError):
self.aml.reconcile()
From f8b29ef636efcd8c156c211cd86a64ef619cff06 Mon Sep 17 00:00:00 2001
From: mreficent
Date: Wed, 29 Jan 2020 13:04:41 +0100
Subject: [PATCH 06/18] [IMP] account_partner_reconcile: black, isort, prettier
---
account_reconcile_restrict_partner_mismatch/__init__.py | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/account_reconcile_restrict_partner_mismatch/__init__.py b/account_reconcile_restrict_partner_mismatch/__init__.py
index bf588bc8b8..51d8f52af0 100644
--- a/account_reconcile_restrict_partner_mismatch/__init__.py
+++ b/account_reconcile_restrict_partner_mismatch/__init__.py
@@ -1,2 +1 @@
-from . import models
-from . import report
+from . import models, report
From 74119d3f926977f4fc2bb3277b1c8a97a21a41fe Mon Sep 17 00:00:00 2001
From: nguyenhk
Date: Wed, 29 Sep 2021 16:59:33 +0700
Subject: [PATCH 07/18] [IMP] account_reconcile_restrict_partner_mismatch:
black, isort, prettier
---
account_reconcile_restrict_partner_mismatch/__manifest__.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/account_reconcile_restrict_partner_mismatch/__manifest__.py b/account_reconcile_restrict_partner_mismatch/__manifest__.py
index 694d288e96..c24f65f882 100644
--- a/account_reconcile_restrict_partner_mismatch/__manifest__.py
+++ b/account_reconcile_restrict_partner_mismatch/__manifest__.py
@@ -8,7 +8,7 @@
"version": "13.0.1.0.0",
"depends": ["account"],
"author": "Camptocamp, Odoo Community Association (OCA)",
- "website": "http://www.github.com/OCA/account-reconcile",
+ "website": "https://github.com/OCA/account-reconcile",
"category": "Finance",
"license": "AGPL-3",
"data": ["report/account_move_lines_report.xml", "security/ir.model.access.csv"],
From 9f3ecfd9e1d3c4c5e9c0e18561088614e6cb6499 Mon Sep 17 00:00:00 2001
From: nguyenhk
Date: Wed, 6 Oct 2021 08:32:00 +0700
Subject: [PATCH 08/18] [MIG] account_reconcile_restrict_partner_mismatch:
Migration to 14.0
---
.../README.rst | 18 ++++++++++-----
.../__manifest__.py | 2 +-
...nt_reconcile_restrict_partner_mismatch.pot | 5 +++-
.../models/account_move_line.py | 6 ++---
.../readme/CONTRIBUTORS.rst | 3 ++-
.../readme/CREDITS.rst | 1 +
.../static/description/index.html | 23 +++++++++++--------
.../tests/test_reconciliation.py | 3 +++
8 files changed, 40 insertions(+), 21 deletions(-)
create mode 100644 account_reconcile_restrict_partner_mismatch/readme/CREDITS.rst
diff --git a/account_reconcile_restrict_partner_mismatch/README.rst b/account_reconcile_restrict_partner_mismatch/README.rst
index 145d112ac9..e9952f88f6 100644
--- a/account_reconcile_restrict_partner_mismatch/README.rst
+++ b/account_reconcile_restrict_partner_mismatch/README.rst
@@ -14,13 +14,13 @@ Reconcile restrict partner mismatch
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Faccount--reconcile-lightgray.png?logo=github
- :target: https://github.com/OCA/account-reconcile/tree/13.0/account_reconcile_restrict_partner_mismatch
+ :target: https://github.com/OCA/account-reconcile/tree/14.0/account_reconcile_restrict_partner_mismatch
:alt: OCA/account-reconcile
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
- :target: https://translation.odoo-community.org/projects/account-reconcile-13-0/account-reconcile-13-0-account_reconcile_restrict_partner_mismatch
+ :target: https://translation.odoo-community.org/projects/account-reconcile-14-0/account-reconcile-14-0-account_reconcile_restrict_partner_mismatch
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
- :target: https://runbot.odoo-community.org/runbot/98/13.0
+ :target: https://runbot.odoo-community.org/runbot/98/14.0
:alt: Try me on Runbot
|badge1| |badge2| |badge3| |badge4| |badge5|
@@ -47,7 +47,7 @@ Bug Tracker
Bugs are tracked on `GitHub Issues `_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed and welcomed
-`feedback `_.
+`feedback `_.
Do not contact contributors directly about support or help with technical issues.
@@ -63,8 +63,14 @@ Contributors
~~~~~~~~~~~~
* `Tecnativa `_:
-
* Ernesto Tejeda
+* `Trobz `_:
+ * Nguyen Ho
+
+Other credits
+~~~~~~~~~~~~~
+
+The migration of this module from 13.0 to 14.0 was financially supported by Camptocamp
Maintainers
~~~~~~~~~~~
@@ -79,6 +85,6 @@ OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.
-This module is part of the `OCA/account-reconcile `_ project on GitHub.
+This module is part of the `OCA/account-reconcile `_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/account_reconcile_restrict_partner_mismatch/__manifest__.py b/account_reconcile_restrict_partner_mismatch/__manifest__.py
index c24f65f882..3d2ab09231 100644
--- a/account_reconcile_restrict_partner_mismatch/__manifest__.py
+++ b/account_reconcile_restrict_partner_mismatch/__manifest__.py
@@ -5,7 +5,7 @@
"name": "Reconcile restrict partner mismatch",
"summary": "Restrict reconciliation on receivable "
"and payable accounts to the same partner",
- "version": "13.0.1.0.0",
+ "version": "14.0.1.0.0",
"depends": ["account"],
"author": "Camptocamp, Odoo Community Association (OCA)",
"website": "https://github.com/OCA/account-reconcile",
diff --git a/account_reconcile_restrict_partner_mismatch/i18n/account_reconcile_restrict_partner_mismatch.pot b/account_reconcile_restrict_partner_mismatch/i18n/account_reconcile_restrict_partner_mismatch.pot
index b3d9f2afea..ca4f4954b0 100644
--- a/account_reconcile_restrict_partner_mismatch/i18n/account_reconcile_restrict_partner_mismatch.pot
+++ b/account_reconcile_restrict_partner_mismatch/i18n/account_reconcile_restrict_partner_mismatch.pot
@@ -4,7 +4,7 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 13.0\n"
+"Project-Id-Version: Odoo Server 14.0\n"
"Report-Msgid-Bugs-To: \n"
"Last-Translator: \n"
"Language-Team: \n"
@@ -59,6 +59,7 @@ msgid "Debit partner"
msgstr ""
#. module: account_reconcile_restrict_partner_mismatch
+#: model:ir.model.fields,field_description:account_reconcile_restrict_partner_mismatch.field_account_move_line__display_name
#: model:ir.model.fields,field_description:account_reconcile_restrict_partner_mismatch.field_account_reconcile_partner_mismatch_report__display_name
msgid "Display Name"
msgstr ""
@@ -69,6 +70,7 @@ msgid "Full Reconcile"
msgstr ""
#. module: account_reconcile_restrict_partner_mismatch
+#: model:ir.model.fields,field_description:account_reconcile_restrict_partner_mismatch.field_account_move_line__id
#: model:ir.model.fields,field_description:account_reconcile_restrict_partner_mismatch.field_account_reconcile_partner_mismatch_report__id
msgid "ID"
msgstr ""
@@ -79,6 +81,7 @@ msgid "Journal Item"
msgstr ""
#. module: account_reconcile_restrict_partner_mismatch
+#: model:ir.model.fields,field_description:account_reconcile_restrict_partner_mismatch.field_account_move_line____last_update
#: model:ir.model.fields,field_description:account_reconcile_restrict_partner_mismatch.field_account_reconcile_partner_mismatch_report____last_update
msgid "Last Modified on"
msgstr ""
diff --git a/account_reconcile_restrict_partner_mismatch/models/account_move_line.py b/account_reconcile_restrict_partner_mismatch/models/account_move_line.py
index adafe6e47e..2835a2a82f 100644
--- a/account_reconcile_restrict_partner_mismatch/models/account_move_line.py
+++ b/account_reconcile_restrict_partner_mismatch/models/account_move_line.py
@@ -9,9 +9,9 @@
class AccountMoveLine(models.Model):
_inherit = "account.move.line"
- def reconcile(self, writeoff_acc_id=False, writeoff_journal_id=False):
+ def reconcile(self):
if config["test_enable"] and not self.env.context.get("test_partner_mismatch"):
- return super().reconcile(writeoff_acc_id, writeoff_journal_id)
+ return super().reconcile()
# to be consistent with parent method
if not self:
@@ -27,4 +27,4 @@ def reconcile(self, writeoff_acc_id=False, writeoff_journal_id=False):
" lines for receivable and payable accounts!"
)
)
- return super().reconcile(writeoff_acc_id, writeoff_journal_id)
+ return super().reconcile()
diff --git a/account_reconcile_restrict_partner_mismatch/readme/CONTRIBUTORS.rst b/account_reconcile_restrict_partner_mismatch/readme/CONTRIBUTORS.rst
index 0b6bee443f..85d7402df8 100644
--- a/account_reconcile_restrict_partner_mismatch/readme/CONTRIBUTORS.rst
+++ b/account_reconcile_restrict_partner_mismatch/readme/CONTRIBUTORS.rst
@@ -1,3 +1,4 @@
* `Tecnativa `_:
-
* Ernesto Tejeda
+* `Trobz `_:
+ * Nguyen Ho
diff --git a/account_reconcile_restrict_partner_mismatch/readme/CREDITS.rst b/account_reconcile_restrict_partner_mismatch/readme/CREDITS.rst
new file mode 100644
index 0000000000..f37ebe7570
--- /dev/null
+++ b/account_reconcile_restrict_partner_mismatch/readme/CREDITS.rst
@@ -0,0 +1 @@
+The migration of this module from 13.0 to 14.0 was financially supported by Camptocamp
diff --git a/account_reconcile_restrict_partner_mismatch/static/description/index.html b/account_reconcile_restrict_partner_mismatch/static/description/index.html
index 3ddd6fd3fa..9def080dee 100644
--- a/account_reconcile_restrict_partner_mismatch/static/description/index.html
+++ b/account_reconcile_restrict_partner_mismatch/static/description/index.html
@@ -367,7 +367,7 @@ Reconcile restrict partner mismatch
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
-
![Try me on Runbot](https://img.shields.io/badge/runbot-Try%20me-875A7B.png)
+
![Try me on Runbot](https://img.shields.io/badge/runbot-Try%20me-875A7B.png)
This module restricts reconciliation between journal items when:
@@ -386,7 +386,8 @@ Reconcile restrict partner mismatch
- Credits
@@ -396,7 +397,7 @@
Bugs are tracked on GitHub Issues.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed and welcomed
-feedback.
+feedback.
Do not contact contributors directly about support or help with technical issues.
@@ -410,20 +411,24 @@
+
+
+
The migration of this module from 13.0 to 14.0 was financially supported by Camptocamp
+
-
+
This module is maintained by the OCA.
OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.
-
This module is part of the OCA/account-reconcile project on GitHub.
+
This module is part of the OCA/account-reconcile project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/account_reconcile_restrict_partner_mismatch/tests/test_reconciliation.py b/account_reconcile_restrict_partner_mismatch/tests/test_reconciliation.py
index 6f1e61f175..9ded5b956e 100644
--- a/account_reconcile_restrict_partner_mismatch/tests/test_reconciliation.py
+++ b/account_reconcile_restrict_partner_mismatch/tests/test_reconciliation.py
@@ -79,6 +79,7 @@ def init_moves(cls):
return aml_recs
def test_reconcile_no_partner(self):
+ self.aml.move_id.action_post()
self.aml.reconcile()
self.assertTrue(all(self.aml.mapped("reconciled")))
@@ -88,6 +89,7 @@ def test_reconcile_partner_mismatch(self):
self.aml.reconcile()
# all lines with same partner allowed
self.aml.write({"partner_id": self.partner.id})
+ self.aml.move_id.action_post()
self.aml.reconcile()
self.assertTrue(all(self.aml.mapped("reconciled")))
@@ -112,5 +114,6 @@ def test_reconcile_accounts_excluded(self):
# reconciliation for different partners allowed
# for not forbidden types
self.aml.write({"account_id": account.id})
+ self.aml.move_id.action_post()
self.aml.reconcile()
self.assertTrue(all(self.aml.mapped("reconciled")))
From b3385693434d2451b9ad7a2fb5bc20256221a02a Mon Sep 17 00:00:00 2001
From: Ignacio Buioli
Date: Sun, 14 Nov 2021 23:06:09 +0000
Subject: [PATCH 09/18] Added translation using Weblate (Spanish (Argentina))
---
.../i18n/es_AR.po | 113 ++++++++++++++++++
1 file changed, 113 insertions(+)
create mode 100644 account_reconcile_restrict_partner_mismatch/i18n/es_AR.po
diff --git a/account_reconcile_restrict_partner_mismatch/i18n/es_AR.po b/account_reconcile_restrict_partner_mismatch/i18n/es_AR.po
new file mode 100644
index 0000000000..ec28c98765
--- /dev/null
+++ b/account_reconcile_restrict_partner_mismatch/i18n/es_AR.po
@@ -0,0 +1,113 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * account_reconcile_restrict_partner_mismatch
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 14.0\n"
+"Report-Msgid-Bugs-To: \n"
+"PO-Revision-Date: 2021-11-15 01:36+0000\n"
+"Last-Translator: Ignacio Buioli \n"
+"Language-Team: none\n"
+"Language: es_AR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 4.3.2\n"
+
+#. module: account_reconcile_restrict_partner_mismatch
+#: model:ir.model.fields,field_description:account_reconcile_restrict_partner_mismatch.field_account_reconcile_partner_mismatch_report__account_id
+msgid "Account"
+msgstr "Cuenta"
+
+#. module: account_reconcile_restrict_partner_mismatch
+#: model:ir.model,name:account_reconcile_restrict_partner_mismatch.model_account_reconcile_partner_mismatch_report
+msgid "Account Reconcile Partner Mismatch Report"
+msgstr "Informe de Discrepancias de Contactos en la Conciliación de Cuentas"
+
+#. module: account_reconcile_restrict_partner_mismatch
+#: model:ir.model.fields,field_description:account_reconcile_restrict_partner_mismatch.field_account_reconcile_partner_mismatch_report__account_type_id
+msgid "Account type"
+msgstr "Tipo de Cuenta"
+
+#. module: account_reconcile_restrict_partner_mismatch
+#: model:ir.model.fields,field_description:account_reconcile_restrict_partner_mismatch.field_account_reconcile_partner_mismatch_report__credit_amount
+msgid "Credit amount"
+msgstr "Monto de crédito"
+
+#. module: account_reconcile_restrict_partner_mismatch
+#: model:ir.model.fields,field_description:account_reconcile_restrict_partner_mismatch.field_account_reconcile_partner_mismatch_report__credit_move_id
+msgid "Credit move"
+msgstr "Movimiento de crédito"
+
+#. module: account_reconcile_restrict_partner_mismatch
+#: model:ir.model.fields,field_description:account_reconcile_restrict_partner_mismatch.field_account_reconcile_partner_mismatch_report__credit_partner_id
+msgid "Credit partner"
+msgstr "Crédito del contacto"
+
+#. module: account_reconcile_restrict_partner_mismatch
+#: model:ir.model.fields,field_description:account_reconcile_restrict_partner_mismatch.field_account_reconcile_partner_mismatch_report__debit_amount
+msgid "Debit amount"
+msgstr "Monto de débito"
+
+#. module: account_reconcile_restrict_partner_mismatch
+#: model:ir.model.fields,field_description:account_reconcile_restrict_partner_mismatch.field_account_reconcile_partner_mismatch_report__debit_move_id
+msgid "Debit move"
+msgstr "Movimiento de débito"
+
+#. module: account_reconcile_restrict_partner_mismatch
+#: model:ir.model.fields,field_description:account_reconcile_restrict_partner_mismatch.field_account_reconcile_partner_mismatch_report__debit_partner_id
+msgid "Debit partner"
+msgstr "Débito del contacto"
+
+#. module: account_reconcile_restrict_partner_mismatch
+#: model:ir.model.fields,field_description:account_reconcile_restrict_partner_mismatch.field_account_move_line__display_name
+#: model:ir.model.fields,field_description:account_reconcile_restrict_partner_mismatch.field_account_reconcile_partner_mismatch_report__display_name
+msgid "Display Name"
+msgstr "Mostrar Nombre"
+
+#. module: account_reconcile_restrict_partner_mismatch
+#: model:ir.model.fields,field_description:account_reconcile_restrict_partner_mismatch.field_account_reconcile_partner_mismatch_report__full_reconcile_id
+msgid "Full Reconcile"
+msgstr "Conciliación Total"
+
+#. module: account_reconcile_restrict_partner_mismatch
+#: model:ir.model.fields,field_description:account_reconcile_restrict_partner_mismatch.field_account_move_line__id
+#: model:ir.model.fields,field_description:account_reconcile_restrict_partner_mismatch.field_account_reconcile_partner_mismatch_report__id
+msgid "ID"
+msgstr "ID"
+
+#. module: account_reconcile_restrict_partner_mismatch
+#: model:ir.model,name:account_reconcile_restrict_partner_mismatch.model_account_move_line
+msgid "Journal Item"
+msgstr "Apunte Contable"
+
+#. module: account_reconcile_restrict_partner_mismatch
+#: model:ir.model.fields,field_description:account_reconcile_restrict_partner_mismatch.field_account_move_line____last_update
+#: model:ir.model.fields,field_description:account_reconcile_restrict_partner_mismatch.field_account_reconcile_partner_mismatch_report____last_update
+msgid "Last Modified on"
+msgstr "Última modificación en"
+
+#. module: account_reconcile_restrict_partner_mismatch
+#: model:ir.model.fields,field_description:account_reconcile_restrict_partner_mismatch.field_account_reconcile_partner_mismatch_report__partial_reconcile_id
+msgid "Partial Reconcile"
+msgstr "Conciliación Parcial"
+
+#. module: account_reconcile_restrict_partner_mismatch
+#: model:ir.actions.act_window,name:account_reconcile_restrict_partner_mismatch.action_account_reconcile_partner_mismatch_report
+#: model:ir.ui.menu,name:account_reconcile_restrict_partner_mismatch.menu_account_reconcile_partner_mismatch_report
+#: model_terms:ir.ui.view,arch_db:account_reconcile_restrict_partner_mismatch.account_reconcile_partner_mismatch_report_view_form
+#: model_terms:ir.ui.view,arch_db:account_reconcile_restrict_partner_mismatch.view_account_move_reconciled_report_tree
+msgid "Reconciled items with partner mismatch"
+msgstr "Elementos conciliados con discrepancia del contacto"
+
+#. module: account_reconcile_restrict_partner_mismatch
+#: code:addons/account_reconcile_restrict_partner_mismatch/models/account_move_line.py:0
+#, python-format
+msgid ""
+"The partner has to be the same on all lines for receivable and payable "
+"accounts!"
+msgstr ""
+"¡El contacto tiene que ser el mismo en todas las líneas para cuentas por "
+"cobrar y por pagar!"
From fb3c30726e2664ebbc79333df2a54a5a002d8711 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Dept=2E=20T=C3=A9cnico?=
Date: Tue, 12 Apr 2022 15:56:29 +0000
Subject: [PATCH 10/18] Added translation using Weblate (Spanish)
---
.../i18n/es.po | 114 ++++++++++++++++++
1 file changed, 114 insertions(+)
create mode 100644 account_reconcile_restrict_partner_mismatch/i18n/es.po
diff --git a/account_reconcile_restrict_partner_mismatch/i18n/es.po b/account_reconcile_restrict_partner_mismatch/i18n/es.po
new file mode 100644
index 0000000000..89d38f7fa9
--- /dev/null
+++ b/account_reconcile_restrict_partner_mismatch/i18n/es.po
@@ -0,0 +1,114 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * account_reconcile_restrict_partner_mismatch
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 14.0\n"
+"Report-Msgid-Bugs-To: \n"
+"PO-Revision-Date: 2022-08-04 18:06+0000\n"
+"Last-Translator: Luis D. Lafaurie \n"
+"Language-Team: none\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 4.3.2\n"
+
+#. module: account_reconcile_restrict_partner_mismatch
+#: model:ir.model.fields,field_description:account_reconcile_restrict_partner_mismatch.field_account_reconcile_partner_mismatch_report__account_id
+msgid "Account"
+msgstr "Cuenta"
+
+#. module: account_reconcile_restrict_partner_mismatch
+#: model:ir.model,name:account_reconcile_restrict_partner_mismatch.model_account_reconcile_partner_mismatch_report
+msgid "Account Reconcile Partner Mismatch Report"
+msgstr ""
+"Informe sobre la falta de coincidencia de cuentas conciliadas de los socios"
+
+#. module: account_reconcile_restrict_partner_mismatch
+#: model:ir.model.fields,field_description:account_reconcile_restrict_partner_mismatch.field_account_reconcile_partner_mismatch_report__account_type_id
+msgid "Account type"
+msgstr "Tipo de cuenta"
+
+#. module: account_reconcile_restrict_partner_mismatch
+#: model:ir.model.fields,field_description:account_reconcile_restrict_partner_mismatch.field_account_reconcile_partner_mismatch_report__credit_amount
+msgid "Credit amount"
+msgstr "Importe del crédito"
+
+#. module: account_reconcile_restrict_partner_mismatch
+#: model:ir.model.fields,field_description:account_reconcile_restrict_partner_mismatch.field_account_reconcile_partner_mismatch_report__credit_move_id
+msgid "Credit move"
+msgstr "Movimiento del crédito"
+
+#. module: account_reconcile_restrict_partner_mismatch
+#: model:ir.model.fields,field_description:account_reconcile_restrict_partner_mismatch.field_account_reconcile_partner_mismatch_report__credit_partner_id
+msgid "Credit partner"
+msgstr "Socio del crédito"
+
+#. module: account_reconcile_restrict_partner_mismatch
+#: model:ir.model.fields,field_description:account_reconcile_restrict_partner_mismatch.field_account_reconcile_partner_mismatch_report__debit_amount
+msgid "Debit amount"
+msgstr "Importe de débito"
+
+#. module: account_reconcile_restrict_partner_mismatch
+#: model:ir.model.fields,field_description:account_reconcile_restrict_partner_mismatch.field_account_reconcile_partner_mismatch_report__debit_move_id
+msgid "Debit move"
+msgstr "Movimiento de débito"
+
+#. module: account_reconcile_restrict_partner_mismatch
+#: model:ir.model.fields,field_description:account_reconcile_restrict_partner_mismatch.field_account_reconcile_partner_mismatch_report__debit_partner_id
+msgid "Debit partner"
+msgstr "Socio de débito"
+
+#. module: account_reconcile_restrict_partner_mismatch
+#: model:ir.model.fields,field_description:account_reconcile_restrict_partner_mismatch.field_account_move_line__display_name
+#: model:ir.model.fields,field_description:account_reconcile_restrict_partner_mismatch.field_account_reconcile_partner_mismatch_report__display_name
+msgid "Display Name"
+msgstr "Nombre de la pantalla"
+
+#. module: account_reconcile_restrict_partner_mismatch
+#: model:ir.model.fields,field_description:account_reconcile_restrict_partner_mismatch.field_account_reconcile_partner_mismatch_report__full_reconcile_id
+msgid "Full Reconcile"
+msgstr "Conciliación completa"
+
+#. module: account_reconcile_restrict_partner_mismatch
+#: model:ir.model.fields,field_description:account_reconcile_restrict_partner_mismatch.field_account_move_line__id
+#: model:ir.model.fields,field_description:account_reconcile_restrict_partner_mismatch.field_account_reconcile_partner_mismatch_report__id
+msgid "ID"
+msgstr "Identificación"
+
+#. module: account_reconcile_restrict_partner_mismatch
+#: model:ir.model,name:account_reconcile_restrict_partner_mismatch.model_account_move_line
+msgid "Journal Item"
+msgstr "Artículo del diario"
+
+#. module: account_reconcile_restrict_partner_mismatch
+#: model:ir.model.fields,field_description:account_reconcile_restrict_partner_mismatch.field_account_move_line____last_update
+#: model:ir.model.fields,field_description:account_reconcile_restrict_partner_mismatch.field_account_reconcile_partner_mismatch_report____last_update
+msgid "Last Modified on"
+msgstr "Ultima modificación en"
+
+#. module: account_reconcile_restrict_partner_mismatch
+#: model:ir.model.fields,field_description:account_reconcile_restrict_partner_mismatch.field_account_reconcile_partner_mismatch_report__partial_reconcile_id
+msgid "Partial Reconcile"
+msgstr "Conciliación parcial"
+
+#. module: account_reconcile_restrict_partner_mismatch
+#: model:ir.actions.act_window,name:account_reconcile_restrict_partner_mismatch.action_account_reconcile_partner_mismatch_report
+#: model:ir.ui.menu,name:account_reconcile_restrict_partner_mismatch.menu_account_reconcile_partner_mismatch_report
+#: model_terms:ir.ui.view,arch_db:account_reconcile_restrict_partner_mismatch.account_reconcile_partner_mismatch_report_view_form
+#: model_terms:ir.ui.view,arch_db:account_reconcile_restrict_partner_mismatch.view_account_move_reconciled_report_tree
+msgid "Reconciled items with partner mismatch"
+msgstr "Artículos conciliados sin coincidencia de socio"
+
+#. module: account_reconcile_restrict_partner_mismatch
+#: code:addons/account_reconcile_restrict_partner_mismatch/models/account_move_line.py:0
+#, python-format
+msgid ""
+"The partner has to be the same on all lines for receivable and payable "
+"accounts!"
+msgstr ""
+"¡El socio tiene que ser el mismo en todas las líneas de cuentas por cobrar y "
+"por pagar!"
From dd54e1cd2a3018ea25ee26ef0df5db66b4d25437 Mon Sep 17 00:00:00 2001
From: kaynnan
Date: Fri, 7 Jul 2023 10:58:44 -0300
Subject: [PATCH 11/18] [MIG] account_reconcile_restrict_partner_mismatch:
Migration to 15.0
---
.../__manifest__.py | 2 +-
.../report/account_move_lines_report.xml | 7 +------
.../tests/test_reconciliation.py | 4 ++--
3 files changed, 4 insertions(+), 9 deletions(-)
diff --git a/account_reconcile_restrict_partner_mismatch/__manifest__.py b/account_reconcile_restrict_partner_mismatch/__manifest__.py
index 3d2ab09231..449d49c6d9 100644
--- a/account_reconcile_restrict_partner_mismatch/__manifest__.py
+++ b/account_reconcile_restrict_partner_mismatch/__manifest__.py
@@ -5,7 +5,7 @@
"name": "Reconcile restrict partner mismatch",
"summary": "Restrict reconciliation on receivable "
"and payable accounts to the same partner",
- "version": "14.0.1.0.0",
+ "version": "15.0.1.0.0",
"depends": ["account"],
"author": "Camptocamp, Odoo Community Association (OCA)",
"website": "https://github.com/OCA/account-reconcile",
diff --git a/account_reconcile_restrict_partner_mismatch/report/account_move_lines_report.xml b/account_reconcile_restrict_partner_mismatch/report/account_move_lines_report.xml
index ee82bcc824..a464bed195 100644
--- a/account_reconcile_restrict_partner_mismatch/report/account_move_lines_report.xml
+++ b/account_reconcile_restrict_partner_mismatch/report/account_move_lines_report.xml
@@ -4,12 +4,7 @@
Reconciled items with partner mismatch
account.reconcile.partner.mismatch.report
-
+
diff --git a/account_reconcile_restrict_partner_mismatch/tests/test_reconciliation.py b/account_reconcile_restrict_partner_mismatch/tests/test_reconciliation.py
index 9ded5b956e..d45d1d15a3 100644
--- a/account_reconcile_restrict_partner_mismatch/tests/test_reconciliation.py
+++ b/account_reconcile_restrict_partner_mismatch/tests/test_reconciliation.py
@@ -2,10 +2,10 @@
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
from odoo.exceptions import UserError
-from odoo.tests.common import SavepointCase
+from odoo.tests.common import TransactionCase
-class TestReconciliation(SavepointCase):
+class TestReconciliation(TransactionCase):
@classmethod
def setUpClass(cls):
super().setUpClass()
From f81640debce361a165238ba4b228d2c610eb63ee Mon Sep 17 00:00:00 2001
From: sbejaoui
Date: Fri, 29 Sep 2023 15:23:09 +0200
Subject: [PATCH 12/18] [16.0][MIG] account_reconcile_restrict_partner_mismatch
---
.../README.rst | 25 +++++++++++--------
.../__manifest__.py | 2 +-
...nt_reconcile_restrict_partner_mismatch.pot | 2 +-
.../i18n/es.po | 2 +-
.../i18n/es_AR.po | 2 +-
.../models/account_move_line.py | 5 +++-
.../readme/CONTRIBUTORS.rst | 2 ++
.../report/account_move_lines_report.xml | 4 +--
.../report/report_reconciled_lines.py | 10 ++++----
.../static/description/index.html | 14 +++++++----
.../tests/test_reconciliation.py | 8 +++---
11 files changed, 44 insertions(+), 32 deletions(-)
diff --git a/account_reconcile_restrict_partner_mismatch/README.rst b/account_reconcile_restrict_partner_mismatch/README.rst
index e9952f88f6..6c31f83af4 100644
--- a/account_reconcile_restrict_partner_mismatch/README.rst
+++ b/account_reconcile_restrict_partner_mismatch/README.rst
@@ -2,10 +2,13 @@
Reconcile restrict partner mismatch
===================================
-.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+..
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ !! source digest: sha256:e643e776a13ac74578f05aa23fc0328120234f43ff74182e837e0d18e2f357ae
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
:target: https://odoo-community.org/page/development-status
@@ -14,16 +17,16 @@ Reconcile restrict partner mismatch
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Faccount--reconcile-lightgray.png?logo=github
- :target: https://github.com/OCA/account-reconcile/tree/14.0/account_reconcile_restrict_partner_mismatch
+ :target: https://github.com/OCA/account-reconcile/tree/16.0/account_reconcile_restrict_partner_mismatch
:alt: OCA/account-reconcile
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
- :target: https://translation.odoo-community.org/projects/account-reconcile-14-0/account-reconcile-14-0-account_reconcile_restrict_partner_mismatch
+ :target: https://translation.odoo-community.org/projects/account-reconcile-16-0/account-reconcile-16-0-account_reconcile_restrict_partner_mismatch
:alt: Translate me on Weblate
-.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
- :target: https://runbot.odoo-community.org/runbot/98/14.0
- :alt: Try me on Runbot
+.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
+ :target: https://runboat.odoo-community.org/builds?repo=OCA/account-reconcile&target_branch=16.0
+ :alt: Try me on Runboat
-|badge1| |badge2| |badge3| |badge4| |badge5|
+|badge1| |badge2| |badge3| |badge4| |badge5|
This module restricts reconciliation between journal items when:
@@ -46,8 +49,8 @@ Bug Tracker
Bugs are tracked on `GitHub Issues `_.
In case of trouble, please check there if your issue has already been reported.
-If you spotted it first, help us smashing it by providing a detailed and welcomed
-`feedback `_.
+If you spotted it first, help us to smash it by providing a detailed and welcomed
+`feedback `_.
Do not contact contributors directly about support or help with technical issues.
@@ -66,6 +69,8 @@ Contributors
* Ernesto Tejeda
* `Trobz `_:
* Nguyen Ho
+* `ACSONE SA `_:
+ * Souheil Bejaoui
Other credits
~~~~~~~~~~~~~
@@ -85,6 +90,6 @@ OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.
-This module is part of the `OCA/account-reconcile `_ project on GitHub.
+This module is part of the `OCA/account-reconcile `_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/account_reconcile_restrict_partner_mismatch/__manifest__.py b/account_reconcile_restrict_partner_mismatch/__manifest__.py
index 449d49c6d9..c8a6481a6e 100644
--- a/account_reconcile_restrict_partner_mismatch/__manifest__.py
+++ b/account_reconcile_restrict_partner_mismatch/__manifest__.py
@@ -5,7 +5,7 @@
"name": "Reconcile restrict partner mismatch",
"summary": "Restrict reconciliation on receivable "
"and payable accounts to the same partner",
- "version": "15.0.1.0.0",
+ "version": "16.0.1.0.0",
"depends": ["account"],
"author": "Camptocamp, Odoo Community Association (OCA)",
"website": "https://github.com/OCA/account-reconcile",
diff --git a/account_reconcile_restrict_partner_mismatch/i18n/account_reconcile_restrict_partner_mismatch.pot b/account_reconcile_restrict_partner_mismatch/i18n/account_reconcile_restrict_partner_mismatch.pot
index ca4f4954b0..a170765b2e 100644
--- a/account_reconcile_restrict_partner_mismatch/i18n/account_reconcile_restrict_partner_mismatch.pot
+++ b/account_reconcile_restrict_partner_mismatch/i18n/account_reconcile_restrict_partner_mismatch.pot
@@ -24,7 +24,7 @@ msgid "Account Reconcile Partner Mismatch Report"
msgstr ""
#. module: account_reconcile_restrict_partner_mismatch
-#: model:ir.model.fields,field_description:account_reconcile_restrict_partner_mismatch.field_account_reconcile_partner_mismatch_report__account_type_id
+#: model:ir.model.fields,field_description:account_reconcile_restrict_partner_mismatch.field_account_reconcile_partner_mismatch_report__account_type
msgid "Account type"
msgstr ""
diff --git a/account_reconcile_restrict_partner_mismatch/i18n/es.po b/account_reconcile_restrict_partner_mismatch/i18n/es.po
index 89d38f7fa9..9c6b7e9b82 100644
--- a/account_reconcile_restrict_partner_mismatch/i18n/es.po
+++ b/account_reconcile_restrict_partner_mismatch/i18n/es.po
@@ -28,7 +28,7 @@ msgstr ""
"Informe sobre la falta de coincidencia de cuentas conciliadas de los socios"
#. module: account_reconcile_restrict_partner_mismatch
-#: model:ir.model.fields,field_description:account_reconcile_restrict_partner_mismatch.field_account_reconcile_partner_mismatch_report__account_type_id
+#: model:ir.model.fields,field_description:account_reconcile_restrict_partner_mismatch.field_account_reconcile_partner_mismatch_report__account_type
msgid "Account type"
msgstr "Tipo de cuenta"
diff --git a/account_reconcile_restrict_partner_mismatch/i18n/es_AR.po b/account_reconcile_restrict_partner_mismatch/i18n/es_AR.po
index ec28c98765..9af7491dbc 100644
--- a/account_reconcile_restrict_partner_mismatch/i18n/es_AR.po
+++ b/account_reconcile_restrict_partner_mismatch/i18n/es_AR.po
@@ -27,7 +27,7 @@ msgid "Account Reconcile Partner Mismatch Report"
msgstr "Informe de Discrepancias de Contactos en la Conciliación de Cuentas"
#. module: account_reconcile_restrict_partner_mismatch
-#: model:ir.model.fields,field_description:account_reconcile_restrict_partner_mismatch.field_account_reconcile_partner_mismatch_report__account_type_id
+#: model:ir.model.fields,field_description:account_reconcile_restrict_partner_mismatch.field_account_reconcile_partner_mismatch_report__account_type
msgid "Account type"
msgstr "Tipo de Cuenta"
diff --git a/account_reconcile_restrict_partner_mismatch/models/account_move_line.py b/account_reconcile_restrict_partner_mismatch/models/account_move_line.py
index 2835a2a82f..8f7b7b7b54 100644
--- a/account_reconcile_restrict_partner_mismatch/models/account_move_line.py
+++ b/account_reconcile_restrict_partner_mismatch/models/account_move_line.py
@@ -18,7 +18,10 @@ def reconcile(self):
return True
partners = set()
for line in self:
- if line.account_id.internal_type in ("receivable", "payable"):
+ if line.account_id.account_type in (
+ "asset_receivable",
+ "liability_payable",
+ ):
partners.add(line.partner_id.id)
if len(partners) > 1:
raise UserError(
diff --git a/account_reconcile_restrict_partner_mismatch/readme/CONTRIBUTORS.rst b/account_reconcile_restrict_partner_mismatch/readme/CONTRIBUTORS.rst
index 85d7402df8..c2b261b8ac 100644
--- a/account_reconcile_restrict_partner_mismatch/readme/CONTRIBUTORS.rst
+++ b/account_reconcile_restrict_partner_mismatch/readme/CONTRIBUTORS.rst
@@ -2,3 +2,5 @@
* Ernesto Tejeda
* `Trobz `_:
* Nguyen Ho
+* `ACSONE SA `_:
+ * Souheil Bejaoui
diff --git a/account_reconcile_restrict_partner_mismatch/report/account_move_lines_report.xml b/account_reconcile_restrict_partner_mismatch/report/account_move_lines_report.xml
index a464bed195..c5930500e3 100644
--- a/account_reconcile_restrict_partner_mismatch/report/account_move_lines_report.xml
+++ b/account_reconcile_restrict_partner_mismatch/report/account_move_lines_report.xml
@@ -15,7 +15,7 @@
-
+
@@ -42,7 +42,7 @@
-
+
diff --git a/account_reconcile_restrict_partner_mismatch/report/report_reconciled_lines.py b/account_reconcile_restrict_partner_mismatch/report/report_reconciled_lines.py
index a1ceeab401..e98ca0eac0 100644
--- a/account_reconcile_restrict_partner_mismatch/report/report_reconciled_lines.py
+++ b/account_reconcile_restrict_partner_mismatch/report/report_reconciled_lines.py
@@ -15,7 +15,9 @@ class AccountReconcilePartnerMismatchReport(models.Model):
)
full_reconcile_id = fields.Many2one("account.full.reconcile")
account_id = fields.Many2one("account.account", string="Account")
- account_type_id = fields.Many2one("account.account.type", string="Account type")
+ account_type = fields.Selection(
+ selection=[("asset_receivable", "Receivable"), ("liability_payable", "Payable")]
+ )
debit_move_id = fields.Many2one("account.move.line", string="Debit move")
debit_amount = fields.Float("Debit amount")
debit_partner_id = fields.Many2one("res.partner", string="Debit partner")
@@ -33,7 +35,7 @@ def init(self):
, pr.full_reconcile_id
, pr.debit_move_id
, daml.debit debit_amount
- , aat.id account_type_id
+ , aa.account_type
, daml.partner_id debit_partner_id
, daml.account_id account_id
, pr.credit_move_id
@@ -46,9 +48,7 @@ def init(self):
ON caml.id = pr.credit_move_id
LEFT JOIN account_account aa
ON daml.account_id = aa.id
- LEFT JOIN account_account_type aat
- ON aa.user_type_id = aat.id
- WHERE aat.type in ('receivable', 'payable')
+ WHERE aa.account_type IN ('asset_receivable', 'liability_payable')
AND (daml.partner_id <> caml.partner_id
OR (daml.partner_id IS NULL
AND caml.partner_id IS NOT NULL)
diff --git a/account_reconcile_restrict_partner_mismatch/static/description/index.html b/account_reconcile_restrict_partner_mismatch/static/description/index.html
index 9def080dee..25713b75df 100644
--- a/account_reconcile_restrict_partner_mismatch/static/description/index.html
+++ b/account_reconcile_restrict_partner_mismatch/static/description/index.html
@@ -3,7 +3,7 @@
-
+
Reconcile restrict partner mismatch