From 58471c38cbc42096cd207a4c5ed6230334eb68f9 Mon Sep 17 00:00:00 2001 From: mreficent Date: Tue, 27 Jun 2017 19:33:51 +0200 Subject: [PATCH 01/13] [MIG] account_mass_reconcile_by_purchase_line: Migration to 9.0 --- .../README.rst | 65 ++++++++++++++++++ .../__init__.py | 6 ++ .../__openerp__.py | 22 ++++++ .../models/__init__.py | 6 ++ .../models/base_reconciliation.py | 19 +++++ .../models/mass_reconcile.py | 18 +++++ .../static/description/icon.png | Bin 0 -> 9455 bytes .../views/mass_reconcile.xml | 18 +++++ .../wizards/__init__.py | 5 ++ .../wizards/advanced_reconciliation.py | 32 +++++++++ 10 files changed, 191 insertions(+) create mode 100644 account_mass_reconcile_by_purchase_line/README.rst create mode 100644 account_mass_reconcile_by_purchase_line/__init__.py create mode 100644 account_mass_reconcile_by_purchase_line/__openerp__.py create mode 100644 account_mass_reconcile_by_purchase_line/models/__init__.py create mode 100644 account_mass_reconcile_by_purchase_line/models/base_reconciliation.py create mode 100644 account_mass_reconcile_by_purchase_line/models/mass_reconcile.py create mode 100644 account_mass_reconcile_by_purchase_line/static/description/icon.png create mode 100644 account_mass_reconcile_by_purchase_line/views/mass_reconcile.xml create mode 100644 account_mass_reconcile_by_purchase_line/wizards/__init__.py create mode 100644 account_mass_reconcile_by_purchase_line/wizards/advanced_reconciliation.py diff --git a/account_mass_reconcile_by_purchase_line/README.rst b/account_mass_reconcile_by_purchase_line/README.rst new file mode 100644 index 00000000..65449897 --- /dev/null +++ b/account_mass_reconcile_by_purchase_line/README.rst @@ -0,0 +1,65 @@ +.. image:: https://img.shields.io/badge/license-AGPLv3-blue.svg + :target: https://www.gnu.org/licenses/agpl.html + :alt: License: AGPL-3 + +======================================= +Account Mass Reconcile by Purchase Line +======================================= + +This module extends the functionality of acccount_mass_reconcile and +allow an user to reconcile debits and credits of an Account +using the PO Line, Product and Partner as key fields. This type of +reconciliation is to be used in the context of the Perpetual Inventory +accounting system, with the accrual account '*Goods Received Not Invoiced*'. + + +Usage +===== + +To use this module, you need to: + +* Go to 'Accounting / Adviser / Mass Automatic Reconcile'. + +* Create a new reconciliation profile, and select a new configuration entry + with type 'Advanced. Partner, product, purchase order line.'. + +.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas + :alt: Try me on Runbot + :target: https://runbot.odoo-community.org/runbot/98/9.0 + +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. + +Credits +======= + +Images +------ + +* Odoo Community Association: `Icon `_. + +Contributors +------------ + +* Jordi Ballester Alomar +* Miquel Raïch + +Maintainer +---------- + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +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. + +To contribute to this module, please visit https://odoo-community.org. \ No newline at end of file diff --git a/account_mass_reconcile_by_purchase_line/__init__.py b/account_mass_reconcile_by_purchase_line/__init__.py new file mode 100644 index 00000000..09cfd859 --- /dev/null +++ b/account_mass_reconcile_by_purchase_line/__init__.py @@ -0,0 +1,6 @@ +# -*- coding: utf-8 -*- +# © 2015-17 Eficent Business and IT Consulting Services S.L. (www.eficent.com) +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +from . import models +from . import wizards diff --git a/account_mass_reconcile_by_purchase_line/__openerp__.py b/account_mass_reconcile_by_purchase_line/__openerp__.py new file mode 100644 index 00000000..9bf7a07f --- /dev/null +++ b/account_mass_reconcile_by_purchase_line/__openerp__.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +# © 2015-17 Eficent Business and IT Consulting Services S.L. (www.eficent.com) +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +{ + "name": "Account Mass Reconcile by Purchase Line", + "summary": "Allows to reconcile based on the PO line", + "version": "9.0.1.0.0", + "author": "Eficent, " + "Odoo Community Association (OCA)", + "website": "https://github.com/OCA/bank-statement-reconcile", + "category": "Finance", + "depends": ["account_mass_reconcile", + "account_move_line_purchase_info" + ], + "license": "AGPL-3", + "data": [ + "views/mass_reconcile.xml", + ], + "installable": True, + "auto_install": False, +} diff --git a/account_mass_reconcile_by_purchase_line/models/__init__.py b/account_mass_reconcile_by_purchase_line/models/__init__.py new file mode 100644 index 00000000..f4d36637 --- /dev/null +++ b/account_mass_reconcile_by_purchase_line/models/__init__.py @@ -0,0 +1,6 @@ +# -*- coding: utf-8 -*- +# © 2015-17 Eficent Business and IT Consulting Services S.L. (www.eficent.com) +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +from . import mass_reconcile +from . import base_reconciliation diff --git a/account_mass_reconcile_by_purchase_line/models/base_reconciliation.py b/account_mass_reconcile_by_purchase_line/models/base_reconciliation.py new file mode 100644 index 00000000..09861e45 --- /dev/null +++ b/account_mass_reconcile_by_purchase_line/models/base_reconciliation.py @@ -0,0 +1,19 @@ +# -*- coding: utf-8 -*- +# © 2015-17 Eficent Business and IT Consulting Services S.L. (www.eficent.com) +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +from openerp import api, models + + +class MassReconcileBase(models.AbstractModel): + _inherit = 'mass.reconcile.base' + + @api.model + def _base_columns(self): + """ Mandatory columns for move lines queries + An extra column aliased as ``key`` should be defined + in each query.""" + aml_cols = super(MassReconcileBase, self)._base_columns() + aml_cols.append('account_move_line.purchase_line_id') + aml_cols.append('account_move_line.product_id') + return aml_cols diff --git a/account_mass_reconcile_by_purchase_line/models/mass_reconcile.py b/account_mass_reconcile_by_purchase_line/models/mass_reconcile.py new file mode 100644 index 00000000..5ae3f691 --- /dev/null +++ b/account_mass_reconcile_by_purchase_line/models/mass_reconcile.py @@ -0,0 +1,18 @@ +# -*- coding: utf-8 -*- +# © 2015-17 Eficent Business and IT Consulting Services S.L. (www.eficent.com) +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +from openerp import api, models + + +class AccountMassReconcileMethod(models.Model): + _inherit = 'account.mass.reconcile.method' + + @api.model + def _get_all_rec_method(self): + methods = super(AccountMassReconcileMethod, self)._get_all_rec_method() + methods += [ + ('mass.reconcile.advanced.by.purchase.line', + 'Advanced. Partner, product, purchase order line.'), + ] + return methods diff --git a/account_mass_reconcile_by_purchase_line/static/description/icon.png b/account_mass_reconcile_by_purchase_line/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_mass_reconcile_by_purchase_line/views/mass_reconcile.xml b/account_mass_reconcile_by_purchase_line/views/mass_reconcile.xml new file mode 100644 index 00000000..374a692a --- /dev/null +++ b/account_mass_reconcile_by_purchase_line/views/mass_reconcile.xml @@ -0,0 +1,18 @@ + + + + account.mass.reconcile.form + 20 + account.mass.reconcile + + + + + + + + + + diff --git a/account_mass_reconcile_by_purchase_line/wizards/__init__.py b/account_mass_reconcile_by_purchase_line/wizards/__init__.py new file mode 100644 index 00000000..141fb706 --- /dev/null +++ b/account_mass_reconcile_by_purchase_line/wizards/__init__.py @@ -0,0 +1,5 @@ +# -*- coding: utf-8 -*- +# © 2015-17 Eficent Business and IT Consulting Services S.L. (www.eficent.com) +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +from . import advanced_reconciliation diff --git a/account_mass_reconcile_by_purchase_line/wizards/advanced_reconciliation.py b/account_mass_reconcile_by_purchase_line/wizards/advanced_reconciliation.py new file mode 100644 index 00000000..13b0e634 --- /dev/null +++ b/account_mass_reconcile_by_purchase_line/wizards/advanced_reconciliation.py @@ -0,0 +1,32 @@ +# -*- coding: utf-8 -*- +# © 2015-17 Eficent Business and IT Consulting Services S.L. (www.eficent.com) +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +from openerp import api, models + + +class MassReconcileAdvancedByPurchaseLine(models.TransientModel): + _name = 'mass.reconcile.advanced.by.purchase.line' + _inherit = 'mass.reconcile.advanced' + + @api.multi + def _skip_line(self, move_line): + """ + When True is returned on some conditions, the credit move line + will be skipped for reconciliation. Can be inherited to + skip on some conditions. ie: ref or partner_id is empty. + """ + return not (move_line.get('partner_id') and move_line.get( + 'product_id') and move_line.get('purchase_line_id')) + + @api.multi + def _matchers(self, move_line): + return (('partner_id', move_line['partner_id']), + ('product_id', move_line['product_id']), + ('purchase_line_id', move_line['purchase_line_id'])) + + @api.multi + def _opposite_matchers(self, move_line): + yield ('partner_id', move_line['partner_id']) + yield ('product_id', move_line['product_id']) + yield ('purchase_line_id', move_line['purchase_line_id']) From ef74ec084cec11bcee2a70f2d024612a8289e165 Mon Sep 17 00:00:00 2001 From: lreficent Date: Fri, 1 Sep 2017 11:47:39 +0200 Subject: [PATCH 02/13] [9.0] account_mass_reconcile_by_purchase_line: do not consider partner. --- .../models/mass_reconcile.py | 2 +- .../wizards/advanced_reconciliation.py | 8 +++----- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/account_mass_reconcile_by_purchase_line/models/mass_reconcile.py b/account_mass_reconcile_by_purchase_line/models/mass_reconcile.py index 5ae3f691..21dbdcc0 100644 --- a/account_mass_reconcile_by_purchase_line/models/mass_reconcile.py +++ b/account_mass_reconcile_by_purchase_line/models/mass_reconcile.py @@ -13,6 +13,6 @@ class AccountMassReconcileMethod(models.Model): methods = super(AccountMassReconcileMethod, self)._get_all_rec_method() methods += [ ('mass.reconcile.advanced.by.purchase.line', - 'Advanced. Partner, product, purchase order line.'), + 'Advanced. Product, purchase order line.'), ] return methods diff --git a/account_mass_reconcile_by_purchase_line/wizards/advanced_reconciliation.py b/account_mass_reconcile_by_purchase_line/wizards/advanced_reconciliation.py index 13b0e634..1a602849 100644 --- a/account_mass_reconcile_by_purchase_line/wizards/advanced_reconciliation.py +++ b/account_mass_reconcile_by_purchase_line/wizards/advanced_reconciliation.py @@ -16,17 +16,15 @@ class MassReconcileAdvancedByPurchaseLine(models.TransientModel): will be skipped for reconciliation. Can be inherited to skip on some conditions. ie: ref or partner_id is empty. """ - return not (move_line.get('partner_id') and move_line.get( - 'product_id') and move_line.get('purchase_line_id')) + return not (move_line.get('product_id') and + move_line.get('purchase_line_id')) @api.multi def _matchers(self, move_line): - return (('partner_id', move_line['partner_id']), - ('product_id', move_line['product_id']), + return (('product_id', move_line['product_id']), ('purchase_line_id', move_line['purchase_line_id'])) @api.multi def _opposite_matchers(self, move_line): - yield ('partner_id', move_line['partner_id']) yield ('product_id', move_line['product_id']) yield ('purchase_line_id', move_line['purchase_line_id']) From cd65aeb8d6dbd693ebcb8adfa030f012dbccd874 Mon Sep 17 00:00:00 2001 From: Lois Rilo Date: Fri, 1 Sep 2017 18:35:48 +0200 Subject: [PATCH 03/13] Update README --- account_mass_reconcile_by_purchase_line/README.rst | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/account_mass_reconcile_by_purchase_line/README.rst b/account_mass_reconcile_by_purchase_line/README.rst index 65449897..ad78d7a3 100644 --- a/account_mass_reconcile_by_purchase_line/README.rst +++ b/account_mass_reconcile_by_purchase_line/README.rst @@ -8,11 +8,10 @@ Account Mass Reconcile by Purchase Line This module extends the functionality of acccount_mass_reconcile and allow an user to reconcile debits and credits of an Account -using the PO Line, Product and Partner as key fields. This type of +using the PO Line and Product as key fields. This type of reconciliation is to be used in the context of the Perpetual Inventory accounting system, with the accrual account '*Goods Received Not Invoiced*'. - Usage ===== @@ -21,7 +20,7 @@ To use this module, you need to: * Go to 'Accounting / Adviser / Mass Automatic Reconcile'. * Create a new reconciliation profile, and select a new configuration entry - with type 'Advanced. Partner, product, purchase order line.'. + with type 'Advanced. Product, purchase order line.'. .. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas :alt: Try me on Runbot @@ -48,6 +47,7 @@ Contributors * Jordi Ballester Alomar * Miquel Raïch +* Lois Rilo Maintainer ---------- @@ -62,4 +62,4 @@ 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. -To contribute to this module, please visit https://odoo-community.org. \ No newline at end of file +To contribute to this module, please visit https://odoo-community.org. From 8352dac6c98bfe732a3aec272eecbf4624488306 Mon Sep 17 00:00:00 2001 From: mreficent Date: Fri, 15 Sep 2017 11:36:04 +0200 Subject: [PATCH 04/13] [MIG] account_mass_reconcile_by_purchase_line: Migration to 10.0 --- account_mass_reconcile_by_purchase_line/README.rst | 2 +- .../{__openerp__.py => __manifest__.py} | 2 +- .../models/base_reconciliation.py | 2 +- .../models/mass_reconcile.py | 2 +- .../views/mass_reconcile.xml | 4 ++-- .../wizards/advanced_reconciliation.py | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) rename account_mass_reconcile_by_purchase_line/{__openerp__.py => __manifest__.py} (96%) diff --git a/account_mass_reconcile_by_purchase_line/README.rst b/account_mass_reconcile_by_purchase_line/README.rst index ad78d7a3..2554bb51 100644 --- a/account_mass_reconcile_by_purchase_line/README.rst +++ b/account_mass_reconcile_by_purchase_line/README.rst @@ -24,7 +24,7 @@ To use this module, you need to: .. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas :alt: Try me on Runbot - :target: https://runbot.odoo-community.org/runbot/98/9.0 + :target: https://runbot.odoo-community.org/runbot/98/10.0 Bug Tracker =========== diff --git a/account_mass_reconcile_by_purchase_line/__openerp__.py b/account_mass_reconcile_by_purchase_line/__manifest__.py similarity index 96% rename from account_mass_reconcile_by_purchase_line/__openerp__.py rename to account_mass_reconcile_by_purchase_line/__manifest__.py index 9bf7a07f..99350968 100644 --- a/account_mass_reconcile_by_purchase_line/__openerp__.py +++ b/account_mass_reconcile_by_purchase_line/__manifest__.py @@ -5,7 +5,7 @@ { "name": "Account Mass Reconcile by Purchase Line", "summary": "Allows to reconcile based on the PO line", - "version": "9.0.1.0.0", + "version": "10.0.1.0.0", "author": "Eficent, " "Odoo Community Association (OCA)", "website": "https://github.com/OCA/bank-statement-reconcile", diff --git a/account_mass_reconcile_by_purchase_line/models/base_reconciliation.py b/account_mass_reconcile_by_purchase_line/models/base_reconciliation.py index 09861e45..5de2ba08 100644 --- a/account_mass_reconcile_by_purchase_line/models/base_reconciliation.py +++ b/account_mass_reconcile_by_purchase_line/models/base_reconciliation.py @@ -2,7 +2,7 @@ # © 2015-17 Eficent Business and IT Consulting Services S.L. (www.eficent.com) # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). -from openerp import api, models +from odoo import api, models class MassReconcileBase(models.AbstractModel): diff --git a/account_mass_reconcile_by_purchase_line/models/mass_reconcile.py b/account_mass_reconcile_by_purchase_line/models/mass_reconcile.py index 21dbdcc0..e85c9980 100644 --- a/account_mass_reconcile_by_purchase_line/models/mass_reconcile.py +++ b/account_mass_reconcile_by_purchase_line/models/mass_reconcile.py @@ -2,7 +2,7 @@ # © 2015-17 Eficent Business and IT Consulting Services S.L. (www.eficent.com) # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). -from openerp import api, models +from odoo import api, models class AccountMassReconcileMethod(models.Model): diff --git a/account_mass_reconcile_by_purchase_line/views/mass_reconcile.xml b/account_mass_reconcile_by_purchase_line/views/mass_reconcile.xml index 374a692a..c1347cfe 100644 --- a/account_mass_reconcile_by_purchase_line/views/mass_reconcile.xml +++ b/account_mass_reconcile_by_purchase_line/views/mass_reconcile.xml @@ -1,5 +1,5 @@ - + account.mass.reconcile.form 20 @@ -15,4 +15,4 @@ The lines should have the same partner, product and PO lines to be reconciled." - + diff --git a/account_mass_reconcile_by_purchase_line/wizards/advanced_reconciliation.py b/account_mass_reconcile_by_purchase_line/wizards/advanced_reconciliation.py index 1a602849..1db5bc6f 100644 --- a/account_mass_reconcile_by_purchase_line/wizards/advanced_reconciliation.py +++ b/account_mass_reconcile_by_purchase_line/wizards/advanced_reconciliation.py @@ -2,7 +2,7 @@ # © 2015-17 Eficent Business and IT Consulting Services S.L. (www.eficent.com) # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). -from openerp import api, models +from odoo import api, models class MassReconcileAdvancedByPurchaseLine(models.TransientModel): From 78067b795b2e0abef3988a07d14b9ca850afdb15 Mon Sep 17 00:00:00 2001 From: mreficent Date: Mon, 6 Nov 2017 18:23:44 +0100 Subject: [PATCH 05/13] [FIX] mass_reconcile_purchase_by_purchase_line --- .../models/__init__.py | 2 +- ...reconciliation.py => base_advanced_reconciliation.py} | 9 ++++----- 2 files changed, 5 insertions(+), 6 deletions(-) rename account_mass_reconcile_by_purchase_line/models/{base_reconciliation.py => base_advanced_reconciliation.py} (71%) diff --git a/account_mass_reconcile_by_purchase_line/models/__init__.py b/account_mass_reconcile_by_purchase_line/models/__init__.py index f4d36637..98605de2 100644 --- a/account_mass_reconcile_by_purchase_line/models/__init__.py +++ b/account_mass_reconcile_by_purchase_line/models/__init__.py @@ -3,4 +3,4 @@ # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). from . import mass_reconcile -from . import base_reconciliation +from . import base_advanced_reconciliation diff --git a/account_mass_reconcile_by_purchase_line/models/base_reconciliation.py b/account_mass_reconcile_by_purchase_line/models/base_advanced_reconciliation.py similarity index 71% rename from account_mass_reconcile_by_purchase_line/models/base_reconciliation.py rename to account_mass_reconcile_by_purchase_line/models/base_advanced_reconciliation.py index 5de2ba08..16c2b189 100644 --- a/account_mass_reconcile_by_purchase_line/models/base_reconciliation.py +++ b/account_mass_reconcile_by_purchase_line/models/base_advanced_reconciliation.py @@ -2,18 +2,17 @@ # © 2015-17 Eficent Business and IT Consulting Services S.L. (www.eficent.com) # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). -from odoo import api, models +from odoo import models -class MassReconcileBase(models.AbstractModel): - _inherit = 'mass.reconcile.base' +class MassReconcileAdvanced(models.AbstractModel): + _inherit = 'mass.reconcile.advanced' - @api.model def _base_columns(self): """ Mandatory columns for move lines queries An extra column aliased as ``key`` should be defined in each query.""" - aml_cols = super(MassReconcileBase, self)._base_columns() + aml_cols = super(MassReconcileAdvanced, self)._base_columns() aml_cols.append('account_move_line.purchase_line_id') aml_cols.append('account_move_line.product_id') return aml_cols From b055ded10b1643c2066778417557be26c79dbc74 Mon Sep 17 00:00:00 2001 From: oca-travis Date: Thu, 12 Jul 2018 17:06:20 +0000 Subject: [PATCH 06/13] [UPD] Update account_mass_reconcile_by_purchase_line.pot --- ...ccount_mass_reconcile_by_purchase_line.pot | 75 +++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 account_mass_reconcile_by_purchase_line/i18n/account_mass_reconcile_by_purchase_line.pot diff --git a/account_mass_reconcile_by_purchase_line/i18n/account_mass_reconcile_by_purchase_line.pot b/account_mass_reconcile_by_purchase_line/i18n/account_mass_reconcile_by_purchase_line.pot new file mode 100644 index 00000000..b2a0c75a --- /dev/null +++ b/account_mass_reconcile_by_purchase_line/i18n/account_mass_reconcile_by_purchase_line.pot @@ -0,0 +1,75 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_mass_reconcile_by_purchase_line +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.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_mass_reconcile_by_purchase_line +#: model:ir.ui.view,arch_db:account_mass_reconcile_by_purchase_line.account_mass_reconcile_form +msgid "Advanced. Purchase Order Line" +msgstr "" + +#. module: account_mass_reconcile_by_purchase_line +#: model:ir.model.fields,field_description:account_mass_reconcile_by_purchase_line.field_mass_reconcile_advanced_by_purchase_line_create_uid +msgid "Created by" +msgstr "" + +#. module: account_mass_reconcile_by_purchase_line +#: model:ir.model.fields,field_description:account_mass_reconcile_by_purchase_line.field_mass_reconcile_advanced_by_purchase_line_create_date +msgid "Created on" +msgstr "" + +#. module: account_mass_reconcile_by_purchase_line +#: model:ir.model.fields,field_description:account_mass_reconcile_by_purchase_line.field_mass_reconcile_advanced_by_purchase_line_display_name +msgid "Display Name" +msgstr "" + +#. module: account_mass_reconcile_by_purchase_line +#: model:ir.model.fields,field_description:account_mass_reconcile_by_purchase_line.field_mass_reconcile_advanced_by_purchase_line_id +msgid "ID" +msgstr "" + +#. module: account_mass_reconcile_by_purchase_line +#: model:ir.model.fields,field_description:account_mass_reconcile_by_purchase_line.field_mass_reconcile_advanced_by_purchase_line___last_update +msgid "Last Modified on" +msgstr "" + +#. module: account_mass_reconcile_by_purchase_line +#: model:ir.model.fields,field_description:account_mass_reconcile_by_purchase_line.field_mass_reconcile_advanced_by_purchase_line_write_uid +msgid "Last Updated by" +msgstr "" + +#. module: account_mass_reconcile_by_purchase_line +#: model:ir.model.fields,field_description:account_mass_reconcile_by_purchase_line.field_mass_reconcile_advanced_by_purchase_line_write_date +msgid "Last Updated on" +msgstr "" + +#. module: account_mass_reconcile_by_purchase_line +#: model:ir.ui.view,arch_db:account_mass_reconcile_by_purchase_line.account_mass_reconcile_form +msgid "Match multiple debit vs multiple credit entries. Allow partial reconciliation. The lines should have the same partner, product and PO lines to be reconciled." +msgstr "" + +#. module: account_mass_reconcile_by_purchase_line +#: model:ir.model,name:account_mass_reconcile_by_purchase_line.model_mass_reconcile_advanced +msgid "mass.reconcile.advanced" +msgstr "" + +#. module: account_mass_reconcile_by_purchase_line +#: model:ir.model,name:account_mass_reconcile_by_purchase_line.model_mass_reconcile_advanced_by_purchase_line +msgid "mass.reconcile.advanced.by.purchase.line" +msgstr "" + +#. module: account_mass_reconcile_by_purchase_line +#: model:ir.model,name:account_mass_reconcile_by_purchase_line.model_account_mass_reconcile_method +msgid "reconcile method for account_mass_reconcile" +msgstr "" + From f57f4c519a9bbb3d380ee086c9b2ec5a098bbeb2 Mon Sep 17 00:00:00 2001 From: Jordi Ballester Alomar Date: Thu, 12 Jul 2018 20:28:05 +0200 Subject: [PATCH 07/13] [MIG] account_mass_reconcile_by_purchase_line: Migration to 11.0 --- .../README.rst | 2 +- .../__init__.py | 5 ---- .../__manifest__.py | 5 ++-- .../models/__init__.py | 5 +--- .../models/base_advanced_reconciliation.py | 29 +++++++++++------- .../models/mass_reconcile.py | 8 ++--- .../models/simple_reconciliation.py | 12 ++++++++ .../wizards/__init__.py | 5 ---- .../wizards/advanced_reconciliation.py | 30 ------------------- 9 files changed, 39 insertions(+), 62 deletions(-) create mode 100644 account_mass_reconcile_by_purchase_line/models/simple_reconciliation.py delete mode 100644 account_mass_reconcile_by_purchase_line/wizards/__init__.py delete mode 100644 account_mass_reconcile_by_purchase_line/wizards/advanced_reconciliation.py diff --git a/account_mass_reconcile_by_purchase_line/README.rst b/account_mass_reconcile_by_purchase_line/README.rst index 2554bb51..c8aad386 100644 --- a/account_mass_reconcile_by_purchase_line/README.rst +++ b/account_mass_reconcile_by_purchase_line/README.rst @@ -24,7 +24,7 @@ To use this module, you need to: .. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas :alt: Try me on Runbot - :target: https://runbot.odoo-community.org/runbot/98/10.0 + :target: https://runbot.odoo-community.org/runbot/98/11.0 Bug Tracker =========== diff --git a/account_mass_reconcile_by_purchase_line/__init__.py b/account_mass_reconcile_by_purchase_line/__init__.py index 09cfd859..0650744f 100644 --- a/account_mass_reconcile_by_purchase_line/__init__.py +++ b/account_mass_reconcile_by_purchase_line/__init__.py @@ -1,6 +1 @@ -# -*- coding: utf-8 -*- -# © 2015-17 Eficent Business and IT Consulting Services S.L. (www.eficent.com) -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). - from . import models -from . import wizards diff --git a/account_mass_reconcile_by_purchase_line/__manifest__.py b/account_mass_reconcile_by_purchase_line/__manifest__.py index 99350968..418ae681 100644 --- a/account_mass_reconcile_by_purchase_line/__manifest__.py +++ b/account_mass_reconcile_by_purchase_line/__manifest__.py @@ -1,11 +1,10 @@ -# -*- coding: utf-8 -*- -# © 2015-17 Eficent Business and IT Consulting Services S.L. (www.eficent.com) +# © 2015-18 Eficent Business and IT Consulting Services S.L. (www.eficent.com) # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). { "name": "Account Mass Reconcile by Purchase Line", "summary": "Allows to reconcile based on the PO line", - "version": "10.0.1.0.0", + "version": "11.0.1.0.0", "author": "Eficent, " "Odoo Community Association (OCA)", "website": "https://github.com/OCA/bank-statement-reconcile", diff --git a/account_mass_reconcile_by_purchase_line/models/__init__.py b/account_mass_reconcile_by_purchase_line/models/__init__.py index 98605de2..8b08acfb 100644 --- a/account_mass_reconcile_by_purchase_line/models/__init__.py +++ b/account_mass_reconcile_by_purchase_line/models/__init__.py @@ -1,6 +1,3 @@ -# -*- coding: utf-8 -*- -# © 2015-17 Eficent Business and IT Consulting Services S.L. (www.eficent.com) -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). - from . import mass_reconcile from . import base_advanced_reconciliation +from . import simple_reconciliation diff --git a/account_mass_reconcile_by_purchase_line/models/base_advanced_reconciliation.py b/account_mass_reconcile_by_purchase_line/models/base_advanced_reconciliation.py index 16c2b189..053358f0 100644 --- a/account_mass_reconcile_by_purchase_line/models/base_advanced_reconciliation.py +++ b/account_mass_reconcile_by_purchase_line/models/base_advanced_reconciliation.py @@ -1,5 +1,4 @@ -# -*- coding: utf-8 -*- -# © 2015-17 Eficent Business and IT Consulting Services S.L. (www.eficent.com) +# © 2015-18 Eficent Business and IT Consulting Services S.L. (www.eficent.com) # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). from odoo import models @@ -8,11 +7,21 @@ from odoo import models class MassReconcileAdvanced(models.AbstractModel): _inherit = 'mass.reconcile.advanced' - def _base_columns(self): - """ Mandatory columns for move lines queries - An extra column aliased as ``key`` should be defined - in each query.""" - aml_cols = super(MassReconcileAdvanced, self)._base_columns() - aml_cols.append('account_move_line.purchase_line_id') - aml_cols.append('account_move_line.product_id') - return aml_cols + def _skip_line(self, move_line): + """ + When True is returned on some conditions, the credit move line + will be skipped for reconciliation. Can be inherited to + skip on some conditions. ie: ref or partner_id is empty. + """ + return not (move_line.get('product_id') and + move_line.get('purchase_line_id')) + + @staticmethod + def _matchers(move_line): + return (('product_id', move_line['product_id']), + ('purchase_line_id', move_line['purchase_line_id'])) + + @staticmethod + def _opposite_matchers(move_line): + yield ('product_id', move_line['product_id']) + yield ('purchase_line_id', move_line['purchase_line_id']) diff --git a/account_mass_reconcile_by_purchase_line/models/mass_reconcile.py b/account_mass_reconcile_by_purchase_line/models/mass_reconcile.py index e85c9980..91df430f 100644 --- a/account_mass_reconcile_by_purchase_line/models/mass_reconcile.py +++ b/account_mass_reconcile_by_purchase_line/models/mass_reconcile.py @@ -1,5 +1,4 @@ -# -*- coding: utf-8 -*- -# © 2015-17 Eficent Business and IT Consulting Services S.L. (www.eficent.com) +# © 2015-18 Eficent Business and IT Consulting Services S.L. (www.eficent.com) # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). from odoo import api, models @@ -9,8 +8,9 @@ class AccountMassReconcileMethod(models.Model): _inherit = 'account.mass.reconcile.method' @api.model - def _get_all_rec_method(self): - methods = super(AccountMassReconcileMethod, self)._get_all_rec_method() + def _get_reconcilation_methods(self): + methods = super(AccountMassReconcileMethod, + self)._get_reconcilation_methods() methods += [ ('mass.reconcile.advanced.by.purchase.line', 'Advanced. Product, purchase order line.'), diff --git a/account_mass_reconcile_by_purchase_line/models/simple_reconciliation.py b/account_mass_reconcile_by_purchase_line/models/simple_reconciliation.py new file mode 100644 index 00000000..2d5de51c --- /dev/null +++ b/account_mass_reconcile_by_purchase_line/models/simple_reconciliation.py @@ -0,0 +1,12 @@ +# Copyright 2012-2016 Camptocamp SA +# Copyright 2010 Sébastien Beau +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import models, api + + +class MassReconcileAdvancedByPurchaseLineName(models.TransientModel): + _name = 'mass.reconcile.advanced.by.purchase.line' + _inherit = 'mass.reconcile.simple' + + _key_field = 'purchase_line_id' diff --git a/account_mass_reconcile_by_purchase_line/wizards/__init__.py b/account_mass_reconcile_by_purchase_line/wizards/__init__.py deleted file mode 100644 index 141fb706..00000000 --- a/account_mass_reconcile_by_purchase_line/wizards/__init__.py +++ /dev/null @@ -1,5 +0,0 @@ -# -*- coding: utf-8 -*- -# © 2015-17 Eficent Business and IT Consulting Services S.L. (www.eficent.com) -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). - -from . import advanced_reconciliation diff --git a/account_mass_reconcile_by_purchase_line/wizards/advanced_reconciliation.py b/account_mass_reconcile_by_purchase_line/wizards/advanced_reconciliation.py deleted file mode 100644 index 1db5bc6f..00000000 --- a/account_mass_reconcile_by_purchase_line/wizards/advanced_reconciliation.py +++ /dev/null @@ -1,30 +0,0 @@ -# -*- coding: utf-8 -*- -# © 2015-17 Eficent Business and IT Consulting Services S.L. (www.eficent.com) -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). - -from odoo import api, models - - -class MassReconcileAdvancedByPurchaseLine(models.TransientModel): - _name = 'mass.reconcile.advanced.by.purchase.line' - _inherit = 'mass.reconcile.advanced' - - @api.multi - def _skip_line(self, move_line): - """ - When True is returned on some conditions, the credit move line - will be skipped for reconciliation. Can be inherited to - skip on some conditions. ie: ref or partner_id is empty. - """ - return not (move_line.get('product_id') and - move_line.get('purchase_line_id')) - - @api.multi - def _matchers(self, move_line): - return (('product_id', move_line['product_id']), - ('purchase_line_id', move_line['purchase_line_id'])) - - @api.multi - def _opposite_matchers(self, move_line): - yield ('product_id', move_line['product_id']) - yield ('purchase_line_id', move_line['purchase_line_id']) From 69e2e569a648f75cf40b4f0fa1519612fb9c7268 Mon Sep 17 00:00:00 2001 From: mreficent Date: Fri, 13 Jul 2018 12:37:18 +0200 Subject: [PATCH 08/13] [FIX] Finish the migration to v11 --- .../README.rst | 10 +++---- .../models/__init__.py | 2 +- .../models/advanced_reconciliation.py | 29 +++++++++++++++++++ .../models/base_advanced_reconciliation.py | 26 ++++++----------- .../models/mass_reconcile.py | 11 +++---- .../models/simple_reconciliation.py | 12 -------- 6 files changed, 50 insertions(+), 40 deletions(-) create mode 100644 account_mass_reconcile_by_purchase_line/models/advanced_reconciliation.py delete mode 100644 account_mass_reconcile_by_purchase_line/models/simple_reconciliation.py diff --git a/account_mass_reconcile_by_purchase_line/README.rst b/account_mass_reconcile_by_purchase_line/README.rst index c8aad386..7205c756 100644 --- a/account_mass_reconcile_by_purchase_line/README.rst +++ b/account_mass_reconcile_by_purchase_line/README.rst @@ -1,12 +1,12 @@ -.. image:: https://img.shields.io/badge/license-AGPLv3-blue.svg - :target: https://www.gnu.org/licenses/agpl.html +.. image:: https://img.shields.io/badge/license-AGPL--3-blue.png + :target: https://www.gnu.org/licenses/agpl :alt: License: AGPL-3 ======================================= Account Mass Reconcile by Purchase Line ======================================= -This module extends the functionality of acccount_mass_reconcile and +This module extends the functionality of account_mass_reconcile and allow an user to reconcile debits and credits of an Account using the PO Line and Product as key fields. This type of reconciliation is to be used in the context of the Perpetual Inventory @@ -20,7 +20,7 @@ To use this module, you need to: * Go to 'Accounting / Adviser / Mass Automatic Reconcile'. * Create a new reconciliation profile, and select a new configuration entry - with type 'Advanced. Product, purchase order line.'. + with type 'Advanced. Product, purchase order line'. .. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas :alt: Try me on Runbot @@ -40,7 +40,7 @@ Credits Images ------ -* Odoo Community Association: `Icon `_. +* Odoo Community Association: `Icon `_. Contributors ------------ diff --git a/account_mass_reconcile_by_purchase_line/models/__init__.py b/account_mass_reconcile_by_purchase_line/models/__init__.py index 8b08acfb..fbcdbc24 100644 --- a/account_mass_reconcile_by_purchase_line/models/__init__.py +++ b/account_mass_reconcile_by_purchase_line/models/__init__.py @@ -1,3 +1,3 @@ from . import mass_reconcile from . import base_advanced_reconciliation -from . import simple_reconciliation +from . import advanced_reconciliation diff --git a/account_mass_reconcile_by_purchase_line/models/advanced_reconciliation.py b/account_mass_reconcile_by_purchase_line/models/advanced_reconciliation.py new file mode 100644 index 00000000..769f05ea --- /dev/null +++ b/account_mass_reconcile_by_purchase_line/models/advanced_reconciliation.py @@ -0,0 +1,29 @@ +# © 2015-18 Eficent Business and IT Consulting Services S.L. (www.eficent.com) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import models + + +class MassReconcileAdvancedByPurchaseLine(models.TransientModel): + _name = 'mass.reconcile.advanced.by.purchase.line' + _inherit = 'mass.reconcile.advanced' + + @staticmethod + def _skip_line(move_line): + """ + When True is returned on some conditions, the credit move line + will be skipped for reconciliation. Can be inherited to + skip on some conditions. ie: ref or partner_id is empty. + """ + return not (move_line.get('product_id') and + move_line.get('purchase_line_id')) + + @staticmethod + def _matchers(move_line): + return (('product_id', move_line['product_id']), + ('purchase_line_id', move_line['purchase_line_id'])) + + @staticmethod + def _opposite_matchers(move_line): + yield ('product_id', move_line['product_id']) + yield ('purchase_line_id', move_line['purchase_line_id']) diff --git a/account_mass_reconcile_by_purchase_line/models/base_advanced_reconciliation.py b/account_mass_reconcile_by_purchase_line/models/base_advanced_reconciliation.py index 053358f0..13acfded 100644 --- a/account_mass_reconcile_by_purchase_line/models/base_advanced_reconciliation.py +++ b/account_mass_reconcile_by_purchase_line/models/base_advanced_reconciliation.py @@ -7,21 +7,13 @@ from odoo import models class MassReconcileAdvanced(models.AbstractModel): _inherit = 'mass.reconcile.advanced' - def _skip_line(self, move_line): - """ - When True is returned on some conditions, the credit move line - will be skipped for reconciliation. Can be inherited to - skip on some conditions. ie: ref or partner_id is empty. - """ - return not (move_line.get('product_id') and - move_line.get('purchase_line_id')) - @staticmethod - def _matchers(move_line): - return (('product_id', move_line['product_id']), - ('purchase_line_id', move_line['purchase_line_id'])) - - @staticmethod - def _opposite_matchers(move_line): - yield ('product_id', move_line['product_id']) - yield ('purchase_line_id', move_line['purchase_line_id']) + def _base_columns(): + """ Mandatory columns for move lines queries + An extra column aliased as ``key`` should be defined + in each query.""" + aml_cols = super(MassReconcileAdvanced, MassReconcileAdvanced).\ + _base_columns() + aml_cols.append('account_move_line.purchase_line_id') + aml_cols.append('account_move_line.product_id') + return aml_cols diff --git a/account_mass_reconcile_by_purchase_line/models/mass_reconcile.py b/account_mass_reconcile_by_purchase_line/models/mass_reconcile.py index 91df430f..e11eb7a5 100644 --- a/account_mass_reconcile_by_purchase_line/models/mass_reconcile.py +++ b/account_mass_reconcile_by_purchase_line/models/mass_reconcile.py @@ -1,16 +1,17 @@ # © 2015-18 Eficent Business and IT Consulting Services S.L. (www.eficent.com) # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). -from odoo import api, models +from odoo import models class AccountMassReconcileMethod(models.Model): _inherit = 'account.mass.reconcile.method' - @api.model - def _get_reconcilation_methods(self): - methods = super(AccountMassReconcileMethod, - self)._get_reconcilation_methods() + @staticmethod + def _get_reconcilation_methods(): + methods = super( + AccountMassReconcileMethod, AccountMassReconcileMethod).\ + _get_reconcilation_methods() methods += [ ('mass.reconcile.advanced.by.purchase.line', 'Advanced. Product, purchase order line.'), diff --git a/account_mass_reconcile_by_purchase_line/models/simple_reconciliation.py b/account_mass_reconcile_by_purchase_line/models/simple_reconciliation.py deleted file mode 100644 index 2d5de51c..00000000 --- a/account_mass_reconcile_by_purchase_line/models/simple_reconciliation.py +++ /dev/null @@ -1,12 +0,0 @@ -# Copyright 2012-2016 Camptocamp SA -# Copyright 2010 Sébastien Beau -# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). - -from odoo import models, api - - -class MassReconcileAdvancedByPurchaseLineName(models.TransientModel): - _name = 'mass.reconcile.advanced.by.purchase.line' - _inherit = 'mass.reconcile.simple' - - _key_field = 'purchase_line_id' From 5b690068db1327dd8ca23ca56e494d80d2170f70 Mon Sep 17 00:00:00 2001 From: mreficent Date: Fri, 15 Sep 2017 11:18:50 +0200 Subject: [PATCH 09/13] [FIX] Readme display --- account_mass_reconcile/README.rst | 46 +++++++++--------- account_mass_reconcile/__manifest__.py | 2 +- .../static/description/icon.png | Bin 0 -> 9455 bytes .../views/mass_reconcile.xml | 3 +- 4 files changed, 26 insertions(+), 25 deletions(-) create mode 100644 account_mass_reconcile/static/description/icon.png diff --git a/account_mass_reconcile/README.rst b/account_mass_reconcile/README.rst index 3f3f077d..3e74b07c 100644 --- a/account_mass_reconcile/README.rst +++ b/account_mass_reconcile/README.rst @@ -1,38 +1,35 @@ -.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg - :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html - :alt: License: AGPL-3 +.. image:: https://img.shields.io/badge/license-AGPL--3-blue.png + :target: https://www.gnu.org/licenses/agpl + :alt: License: AGPL-3 -============== -Mass Reconcile -============== +====================== +Account Mass Reconcile +====================== This is a shared work between Akretion and Camptocamp in order to provide: -- reconciliation facilities for big volume of transactions -- setup different profiles of reconciliation by account -- each profile can use many methods of reconciliation -- this module is also a base to create others -reconciliation methods which can plug in the profiles -- a profile a reconciliation can be run manually -or by a cron -- monitoring of reconciliation runs with an history -which keep track of the reconciled Journal items + +- Reconciliation facilities for big volume of transactions. +- Setup different profiles of reconciliation by account. +- Each profile can use many methods of reconciliation. +- This module is also a base to create others + reconciliation methods which can plug in the profiles. +- A profile a reconciliation can be run manually + or by a cron. +- Monitoring of reconciliation runs with an history + which keep track of the reconciled Journal items. 2 simple reconciliation methods are integrated in this module, the simple reconciliations works on 2 lines (1 debit / 1 credit) and do not allow -partial reconcilation, they also match on 1 key, +partial reconciliation, they also match on 1 key, partner or Journal item name. -This module combines both the ``account_easy_reconcile`` -and the``account_advanced_reconcile`` modules -from previous versions. - Usage ===== -Go to 'Invoicing/Periodic Processing/Reconciliation/Mass Automatic Reconcile' to start a -new mass reconcile. +Go to 'Invoicing / Adviser / Mass Automatic Reconcile' to start a new mass +reconcile. .. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas :alt: Try me on Runbot @@ -50,6 +47,11 @@ If you spotted it first, help us smashing it by providing a detailed and welcome Credits ======= +Images +------ + +* Odoo Community Association: `Icon `_. + Contributors ------------ * Sébastien Beau diff --git a/account_mass_reconcile/__manifest__.py b/account_mass_reconcile/__manifest__.py index 0598772e..1c1fd407 100644 --- a/account_mass_reconcile/__manifest__.py +++ b/account_mass_reconcile/__manifest__.py @@ -3,7 +3,7 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). { - "name": "Mass Reconcile", + "name": "Account Mass Reconcile", "version": "11.0.1.0.0", "depends": [ "account_invoicing", diff --git a/account_mass_reconcile/static/description/icon.png b/account_mass_reconcile/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_mass_reconcile/views/mass_reconcile.xml b/account_mass_reconcile/views/mass_reconcile.xml index cb404bb2..0a9d1f53 100644 --- a/account_mass_reconcile/views/mass_reconcile.xml +++ b/account_mass_reconcile/views/mass_reconcile.xml @@ -58,9 +58,8 @@ The lines should have the same amount (with the write-off) and the same referenc - From 673d1e3b92a6e25e83b6a98ef33cf3a8979e3674 Mon Sep 17 00:00:00 2001 From: mreficent Date: Fri, 13 Jul 2018 12:57:07 +0200 Subject: [PATCH 10/13] [ADD] oca_dependencies --- oca_dependencies.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 oca_dependencies.txt diff --git a/oca_dependencies.txt b/oca_dependencies.txt new file mode 100644 index 00000000..626b4c89 --- /dev/null +++ b/oca_dependencies.txt @@ -0,0 +1 @@ +account-financial-tools From 3172d42f8f3ac63ec960d24ec2ed86c975be0893 Mon Sep 17 00:00:00 2001 From: mreficent Date: Wed, 25 Jul 2018 12:58:12 +0200 Subject: [PATCH 11/13] [FIX] Super call on static methods --- account_mass_reconcile/models/base_reconciliation.py | 5 ++++- .../models/base_advanced_reconciliation.py | 9 ++------- .../models/mass_reconcile.py | 7 ++----- 3 files changed, 8 insertions(+), 13 deletions(-) diff --git a/account_mass_reconcile/models/base_reconciliation.py b/account_mass_reconcile/models/base_reconciliation.py index fe394f1c..2826a8e0 100644 --- a/account_mass_reconcile/models/base_reconciliation.py +++ b/account_mass_reconcile/models/base_reconciliation.py @@ -60,8 +60,11 @@ class MassReconcileBase(models.AbstractModel): ) return ["account_move_line.{}".format(col) for col in aml_cols] + def _selection_columns(self): + return self._base_columns() + def _select_query(self, *args, **kwargs): - return "SELECT %s" % ', '.join(self._base_columns()) + return "SELECT %s" % ', '.join(self._selection_columns()) def _from_query(self, *args, **kwargs): return ("FROM account_move_line ") diff --git a/account_mass_reconcile_by_purchase_line/models/base_advanced_reconciliation.py b/account_mass_reconcile_by_purchase_line/models/base_advanced_reconciliation.py index 13acfded..9c9d46e4 100644 --- a/account_mass_reconcile_by_purchase_line/models/base_advanced_reconciliation.py +++ b/account_mass_reconcile_by_purchase_line/models/base_advanced_reconciliation.py @@ -7,13 +7,8 @@ from odoo import models class MassReconcileAdvanced(models.AbstractModel): _inherit = 'mass.reconcile.advanced' - @staticmethod - def _base_columns(): - """ Mandatory columns for move lines queries - An extra column aliased as ``key`` should be defined - in each query.""" - aml_cols = super(MassReconcileAdvanced, MassReconcileAdvanced).\ - _base_columns() + def _selection_columns(self): + aml_cols = super(MassReconcileAdvanced, self)._selection_columns() aml_cols.append('account_move_line.purchase_line_id') aml_cols.append('account_move_line.product_id') return aml_cols diff --git a/account_mass_reconcile_by_purchase_line/models/mass_reconcile.py b/account_mass_reconcile_by_purchase_line/models/mass_reconcile.py index e11eb7a5..145ce52b 100644 --- a/account_mass_reconcile_by_purchase_line/models/mass_reconcile.py +++ b/account_mass_reconcile_by_purchase_line/models/mass_reconcile.py @@ -7,11 +7,8 @@ from odoo import models class AccountMassReconcileMethod(models.Model): _inherit = 'account.mass.reconcile.method' - @staticmethod - def _get_reconcilation_methods(): - methods = super( - AccountMassReconcileMethod, AccountMassReconcileMethod).\ - _get_reconcilation_methods() + def _selection_name(self): + methods = super(AccountMassReconcileMethod, self)._selection_name() methods += [ ('mass.reconcile.advanced.by.purchase.line', 'Advanced. Product, purchase order line.'), From c21ec21947b9de8815a7fdf2b1f66c1e111f15f4 Mon Sep 17 00:00:00 2001 From: mreficent Date: Wed, 25 Jul 2018 14:41:32 +0200 Subject: [PATCH 12/13] [FIX] Deprecated icon on some buttons --- account_mass_reconcile/views/mass_reconcile.xml | 8 ++++---- .../views/mass_reconcile_history_view.xml | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/account_mass_reconcile/views/mass_reconcile.xml b/account_mass_reconcile/views/mass_reconcile.xml index 0a9d1f53..0a5ebf4a 100644 --- a/account_mass_reconcile/views/mass_reconcile.xml +++ b/account_mass_reconcile/views/mass_reconcile.xml @@ -10,7 +10,7 @@
@@ -25,7 +25,7 @@ -