From c2671d34b8304f39e265a62fc0d01a47fb86bc48 Mon Sep 17 00:00:00 2001 From: jbeficent Date: Tue, 26 Jan 2016 22:06:50 +0100 Subject: [PATCH 1/6] [ADD] [account_advanced_reconcile_transaction_by_purchase_line] --- .../__init__.py | 23 +++++++++ .../__openerp__.py | 40 +++++++++++++++ .../advanced_reconciliation.py | 49 +++++++++++++++++++ .../base_advanced_reconciliation.py | 37 ++++++++++++++ .../easy_reconcile.py | 36 ++++++++++++++ .../easy_reconcile_view.xml | 25 ++++++++++ 6 files changed, 210 insertions(+) create mode 100644 account_advanced_reconcile_transaction_by_purchase_line/__init__.py create mode 100644 account_advanced_reconcile_transaction_by_purchase_line/__openerp__.py create mode 100644 account_advanced_reconcile_transaction_by_purchase_line/advanced_reconciliation.py create mode 100644 account_advanced_reconcile_transaction_by_purchase_line/base_advanced_reconciliation.py create mode 100644 account_advanced_reconcile_transaction_by_purchase_line/easy_reconcile.py create mode 100644 account_advanced_reconcile_transaction_by_purchase_line/easy_reconcile_view.xml diff --git a/account_advanced_reconcile_transaction_by_purchase_line/__init__.py b/account_advanced_reconcile_transaction_by_purchase_line/__init__.py new file mode 100644 index 00000000..e19ad65a --- /dev/null +++ b/account_advanced_reconcile_transaction_by_purchase_line/__init__.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# Author: Romain Deheele. Copyright Camptocamp SA +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## + +from . import easy_reconcile +from . import base_advanced_reconciliation +from . import advanced_reconciliation diff --git a/account_advanced_reconcile_transaction_by_purchase_line/__openerp__.py b/account_advanced_reconcile_transaction_by_purchase_line/__openerp__.py new file mode 100644 index 00000000..b9d10e92 --- /dev/null +++ b/account_advanced_reconcile_transaction_by_purchase_line/__openerp__.py @@ -0,0 +1,40 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# Author: Romain Deheele. Copyright Camptocamp SA +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## + +{'name': 'Advanced Reconcile Transaction by Purchase Line', + 'description': """ +Advanced reconciliation method for the module account_advanced_reconcile +======================================================================== +Reconcile rules with transaction_ref + +""", + 'version': '1.0.1', + 'author': "Camptocamp,Odoo Community Association (OCA)", + 'category': 'Finance', + 'website': 'http://www.camptocamp.com', + 'depends': ['account_advanced_reconcile', + 'account_move_line_purchase_info'], + 'data': ['easy_reconcile_view.xml'], + 'demo': [], + 'test': [], # To be ported or migrate to unit tests or scenarios + 'auto_install': False, + 'installable': True, + 'images': [] + } diff --git a/account_advanced_reconcile_transaction_by_purchase_line/advanced_reconciliation.py b/account_advanced_reconcile_transaction_by_purchase_line/advanced_reconciliation.py new file mode 100644 index 00000000..6c74cb9e --- /dev/null +++ b/account_advanced_reconcile_transaction_by_purchase_line/advanced_reconciliation.py @@ -0,0 +1,49 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# Author: Romain Deheele. Copyright Camptocamp SA +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## + +from openerp import models, api + + +class EasyReconcileAdvancedTransactionByPurchaseLine(models.TransientModel): + + _name = 'easy.reconcile.advanced.by.purchase.line' + _inherit = 'easy.reconcile.advanced' + + @api.model + 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.model + 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.model + 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'])) diff --git a/account_advanced_reconcile_transaction_by_purchase_line/base_advanced_reconciliation.py b/account_advanced_reconcile_transaction_by_purchase_line/base_advanced_reconciliation.py new file mode 100644 index 00000000..74502d31 --- /dev/null +++ b/account_advanced_reconcile_transaction_by_purchase_line/base_advanced_reconciliation.py @@ -0,0 +1,37 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# Author: Romain Deheele +# Copyright 2013 Camptocamp SA +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## + +from openerp import models, api + + +class EasyReconcileAdvanced(models.AbstractModel): + + _inherit = 'easy.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(EasyReconcileAdvanced, 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_advanced_reconcile_transaction_by_purchase_line/easy_reconcile.py b/account_advanced_reconcile_transaction_by_purchase_line/easy_reconcile.py new file mode 100644 index 00000000..8267d441 --- /dev/null +++ b/account_advanced_reconcile_transaction_by_purchase_line/easy_reconcile.py @@ -0,0 +1,36 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# Author: Romain Deheele +# Copyright 2013 Camptocamp SA +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## +from openerp import models, api + + +class AccountEasyReconcileMethod(models.Model): + + _inherit = 'account.easy.reconcile.method' + + @api.model + def _get_all_rec_method(self): + methods = super(AccountEasyReconcileMethod, self).\ + _get_all_rec_method() + methods += [ + ('easy.reconcile.advanced.by.purchase.line', + 'Advanced. GR/IR Key as partner, product, purchase order line.'), + ] + return methods diff --git a/account_advanced_reconcile_transaction_by_purchase_line/easy_reconcile_view.xml b/account_advanced_reconcile_transaction_by_purchase_line/easy_reconcile_view.xml new file mode 100644 index 00000000..cc042047 --- /dev/null +++ b/account_advanced_reconcile_transaction_by_purchase_line/easy_reconcile_view.xml @@ -0,0 +1,25 @@ + + + + + account.easy.reconcile.form + account.easy.reconcile + + + + + + + + + + + + + + From d7bfce6fe5259f9f4d2645fc3118e1b93e3a69fb Mon Sep 17 00:00:00 2001 From: jbeficent Date: Tue, 26 Jan 2016 22:19:35 +0100 Subject: [PATCH 2/6] improved with OCA guidelines --- .../README.rst | 67 +++++++++++++++++++ .../__init__.py | 25 ++----- .../__openerp__.py | 57 ++++++---------- .../base_advanced_reconciliation.py | 37 ---------- .../easy_reconcile.py | 36 ---------- .../models/__init__.py | 6 ++ .../models/base_advanced_reconciliation.py | 20 ++++++ .../models/easy_reconcile.py | 20 ++++++ .../{ => views}/easy_reconcile_view.xml | 0 .../wizards/__init__.py | 5 ++ .../{ => wizards}/advanced_reconciliation.py | 22 +----- 11 files changed, 144 insertions(+), 151 deletions(-) create mode 100644 account_advanced_reconcile_transaction_by_purchase_line/README.rst delete mode 100644 account_advanced_reconcile_transaction_by_purchase_line/base_advanced_reconciliation.py delete mode 100644 account_advanced_reconcile_transaction_by_purchase_line/easy_reconcile.py create mode 100644 account_advanced_reconcile_transaction_by_purchase_line/models/__init__.py create mode 100644 account_advanced_reconcile_transaction_by_purchase_line/models/base_advanced_reconciliation.py create mode 100644 account_advanced_reconcile_transaction_by_purchase_line/models/easy_reconcile.py rename account_advanced_reconcile_transaction_by_purchase_line/{ => views}/easy_reconcile_view.xml (100%) create mode 100644 account_advanced_reconcile_transaction_by_purchase_line/wizards/__init__.py rename account_advanced_reconcile_transaction_by_purchase_line/{ => wizards}/advanced_reconciliation.py (52%) diff --git a/account_advanced_reconcile_transaction_by_purchase_line/README.rst b/account_advanced_reconcile_transaction_by_purchase_line/README.rst new file mode 100644 index 00000000..fa5b8110 --- /dev/null +++ b/account_advanced_reconcile_transaction_by_purchase_line/README.rst @@ -0,0 +1,67 @@ +.. image:: https://img.shields.io/badge/license-AGPLv3-blue.svg + :target: https://www.gnu.org/licenses/agpl.html + :alt: License: AGPL-3 + +======================================================= +Account Advanced Reconcile Transaction by Purchase Line +======================================================= + +This module will allow a 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 +===== + +* Go to 'Invoicing / Periodic Processing / Reconciliation / Easy Automatic + Reconciliation'. + +* Create a new reconciliation profile, and select a new configuration entry + with type 'Advanced. GR/IR Key as 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/8.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 + +Maintainer +---------- + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: http://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 http://odoo-community.org. \ No newline at end of file diff --git a/account_advanced_reconcile_transaction_by_purchase_line/__init__.py b/account_advanced_reconcile_transaction_by_purchase_line/__init__.py index e19ad65a..c3085bd2 100644 --- a/account_advanced_reconcile_transaction_by_purchase_line/__init__.py +++ b/account_advanced_reconcile_transaction_by_purchase_line/__init__.py @@ -1,23 +1,6 @@ # -*- coding: utf-8 -*- -############################################################################## -# -# Author: Romain Deheele. Copyright Camptocamp SA -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## +# © 2015 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 easy_reconcile -from . import base_advanced_reconciliation -from . import advanced_reconciliation +from . import models +from . import wizards diff --git a/account_advanced_reconcile_transaction_by_purchase_line/__openerp__.py b/account_advanced_reconcile_transaction_by_purchase_line/__openerp__.py index b9d10e92..7e5c4f2f 100644 --- a/account_advanced_reconcile_transaction_by_purchase_line/__openerp__.py +++ b/account_advanced_reconcile_transaction_by_purchase_line/__openerp__.py @@ -1,40 +1,21 @@ # -*- coding: utf-8 -*- -############################################################################## -# -# Author: Romain Deheele. Copyright Camptocamp SA -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## +# © 2015 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': 'Advanced Reconcile Transaction by Purchase Line', - 'description': """ -Advanced reconciliation method for the module account_advanced_reconcile -======================================================================== -Reconcile rules with transaction_ref - -""", - 'version': '1.0.1', - 'author': "Camptocamp,Odoo Community Association (OCA)", - 'category': 'Finance', - 'website': 'http://www.camptocamp.com', - 'depends': ['account_advanced_reconcile', - 'account_move_line_purchase_info'], - 'data': ['easy_reconcile_view.xml'], - 'demo': [], - 'test': [], # To be ported or migrate to unit tests or scenarios - 'auto_install': False, - 'installable': True, - 'images': [] - } +{ + "name": "Account Advanced Reconcile Transaction by Purchase Line", + "summary": "Allows to reconcile based on the PO line", + "version": "8.0.1.0.0", + "author": "Eficent Business and IT Consulting Services S.L., " + "Odoo Community Association (OCA)", + "website": "http://www.eficent.com", + "category": "Generic", + "depends": ["account_advanced_reconcile", + "account_move_line_purchase_info" + ], + "license": "AGPL-3", + "data": [ + "views/easy_reconcile_view.xml", + ], + 'installable': True, +} diff --git a/account_advanced_reconcile_transaction_by_purchase_line/base_advanced_reconciliation.py b/account_advanced_reconcile_transaction_by_purchase_line/base_advanced_reconciliation.py deleted file mode 100644 index 74502d31..00000000 --- a/account_advanced_reconcile_transaction_by_purchase_line/base_advanced_reconciliation.py +++ /dev/null @@ -1,37 +0,0 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# Author: Romain Deheele -# Copyright 2013 Camptocamp SA -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## - -from openerp import models, api - - -class EasyReconcileAdvanced(models.AbstractModel): - - _inherit = 'easy.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(EasyReconcileAdvanced, 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_advanced_reconcile_transaction_by_purchase_line/easy_reconcile.py b/account_advanced_reconcile_transaction_by_purchase_line/easy_reconcile.py deleted file mode 100644 index 8267d441..00000000 --- a/account_advanced_reconcile_transaction_by_purchase_line/easy_reconcile.py +++ /dev/null @@ -1,36 +0,0 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# Author: Romain Deheele -# Copyright 2013 Camptocamp SA -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## -from openerp import models, api - - -class AccountEasyReconcileMethod(models.Model): - - _inherit = 'account.easy.reconcile.method' - - @api.model - def _get_all_rec_method(self): - methods = super(AccountEasyReconcileMethod, self).\ - _get_all_rec_method() - methods += [ - ('easy.reconcile.advanced.by.purchase.line', - 'Advanced. GR/IR Key as partner, product, purchase order line.'), - ] - return methods diff --git a/account_advanced_reconcile_transaction_by_purchase_line/models/__init__.py b/account_advanced_reconcile_transaction_by_purchase_line/models/__init__.py new file mode 100644 index 00000000..83a65fd0 --- /dev/null +++ b/account_advanced_reconcile_transaction_by_purchase_line/models/__init__.py @@ -0,0 +1,6 @@ +# -*- coding: utf-8 -*- +# © 2015 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 easy_reconcile +from . import base_advanced_reconciliation diff --git a/account_advanced_reconcile_transaction_by_purchase_line/models/base_advanced_reconciliation.py b/account_advanced_reconcile_transaction_by_purchase_line/models/base_advanced_reconciliation.py new file mode 100644 index 00000000..8da51d24 --- /dev/null +++ b/account_advanced_reconcile_transaction_by_purchase_line/models/base_advanced_reconciliation.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# © 2015 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 models, api + + +class EasyReconcileAdvanced(models.AbstractModel): + + _inherit = 'easy.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(EasyReconcileAdvanced, 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_advanced_reconcile_transaction_by_purchase_line/models/easy_reconcile.py b/account_advanced_reconcile_transaction_by_purchase_line/models/easy_reconcile.py new file mode 100644 index 00000000..edb445bc --- /dev/null +++ b/account_advanced_reconcile_transaction_by_purchase_line/models/easy_reconcile.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# © 2015 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 models, api + + +class AccountEasyReconcileMethod(models.Model): + + _inherit = 'account.easy.reconcile.method' + + @api.model + def _get_all_rec_method(self): + methods = super(AccountEasyReconcileMethod, self).\ + _get_all_rec_method() + methods += [ + ('easy.reconcile.advanced.by.purchase.line', + 'Advanced. GR/IR Key as partner, product, purchase order line.'), + ] + return methods diff --git a/account_advanced_reconcile_transaction_by_purchase_line/easy_reconcile_view.xml b/account_advanced_reconcile_transaction_by_purchase_line/views/easy_reconcile_view.xml similarity index 100% rename from account_advanced_reconcile_transaction_by_purchase_line/easy_reconcile_view.xml rename to account_advanced_reconcile_transaction_by_purchase_line/views/easy_reconcile_view.xml diff --git a/account_advanced_reconcile_transaction_by_purchase_line/wizards/__init__.py b/account_advanced_reconcile_transaction_by_purchase_line/wizards/__init__.py new file mode 100644 index 00000000..79933302 --- /dev/null +++ b/account_advanced_reconcile_transaction_by_purchase_line/wizards/__init__.py @@ -0,0 +1,5 @@ +# -*- coding: utf-8 -*- +# © 2015 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_advanced_reconcile_transaction_by_purchase_line/advanced_reconciliation.py b/account_advanced_reconcile_transaction_by_purchase_line/wizards/advanced_reconciliation.py similarity index 52% rename from account_advanced_reconcile_transaction_by_purchase_line/advanced_reconciliation.py rename to account_advanced_reconcile_transaction_by_purchase_line/wizards/advanced_reconciliation.py index 6c74cb9e..1525d472 100644 --- a/account_advanced_reconcile_transaction_by_purchase_line/advanced_reconciliation.py +++ b/account_advanced_reconcile_transaction_by_purchase_line/wizards/advanced_reconciliation.py @@ -1,22 +1,6 @@ # -*- coding: utf-8 -*- -############################################################################## -# -# Author: Romain Deheele. Copyright Camptocamp SA -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## +# © 2015 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 models, api @@ -34,7 +18,7 @@ class EasyReconcileAdvancedTransactionByPurchaseLine(models.TransientModel): 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') + 'product_id') and move_line.get('purchase_line_id') @api.model def _matchers(self, move_line): From 3566d5c11940d84c41046f4cce98ea1fd72fd949 Mon Sep 17 00:00:00 2001 From: mreficent Date: Tue, 27 Jun 2017 19:33:51 +0200 Subject: [PATCH 3/6] [MIG] account_mass_reconcile_by_purchase_line: Migration to 9.0 --- .../__openerp__.py | 21 ----------- .../models/__init__.py | 6 ---- .../models/easy_reconcile.py | 20 ----------- .../views/easy_reconcile_view.xml | 25 ------------- .../wizards/advanced_reconciliation.py | 33 ----------------- .../views/mass_reconcile.xml | 3 +- .../README.rst | 34 +++++++++--------- .../__init__.py | 2 +- .../__openerp__.py | 22 ++++++++++++ .../models/__init__.py | 6 ++++ .../models/base_reconciliation.py | 11 +++--- .../models/mass_reconcile.py | 18 ++++++++++ .../static/description/icon.png | Bin 0 -> 9455 bytes .../views/mass_reconcile.xml | 18 ++++++++++ .../wizards/__init__.py | 2 +- .../wizards/advanced_reconciliation.py | 32 +++++++++++++++++ oca_dependencies.txt | 1 + 17 files changed, 121 insertions(+), 133 deletions(-) delete mode 100644 account_advanced_reconcile_transaction_by_purchase_line/__openerp__.py delete mode 100644 account_advanced_reconcile_transaction_by_purchase_line/models/__init__.py delete mode 100644 account_advanced_reconcile_transaction_by_purchase_line/models/easy_reconcile.py delete mode 100644 account_advanced_reconcile_transaction_by_purchase_line/views/easy_reconcile_view.xml delete mode 100644 account_advanced_reconcile_transaction_by_purchase_line/wizards/advanced_reconciliation.py rename {account_advanced_reconcile_transaction_by_purchase_line => account_mass_reconcile_by_purchase_line}/README.rst (54%) rename {account_advanced_reconcile_transaction_by_purchase_line => account_mass_reconcile_by_purchase_line}/__init__.py (63%) create mode 100644 account_mass_reconcile_by_purchase_line/__openerp__.py create mode 100644 account_mass_reconcile_by_purchase_line/models/__init__.py rename account_advanced_reconcile_transaction_by_purchase_line/models/base_advanced_reconciliation.py => account_mass_reconcile_by_purchase_line/models/base_reconciliation.py (60%) 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 rename {account_advanced_reconcile_transaction_by_purchase_line => account_mass_reconcile_by_purchase_line}/wizards/__init__.py (62%) create mode 100644 account_mass_reconcile_by_purchase_line/wizards/advanced_reconciliation.py diff --git a/account_advanced_reconcile_transaction_by_purchase_line/__openerp__.py b/account_advanced_reconcile_transaction_by_purchase_line/__openerp__.py deleted file mode 100644 index 7e5c4f2f..00000000 --- a/account_advanced_reconcile_transaction_by_purchase_line/__openerp__.py +++ /dev/null @@ -1,21 +0,0 @@ -# -*- coding: utf-8 -*- -# © 2015 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 Advanced Reconcile Transaction by Purchase Line", - "summary": "Allows to reconcile based on the PO line", - "version": "8.0.1.0.0", - "author": "Eficent Business and IT Consulting Services S.L., " - "Odoo Community Association (OCA)", - "website": "http://www.eficent.com", - "category": "Generic", - "depends": ["account_advanced_reconcile", - "account_move_line_purchase_info" - ], - "license": "AGPL-3", - "data": [ - "views/easy_reconcile_view.xml", - ], - 'installable': True, -} diff --git a/account_advanced_reconcile_transaction_by_purchase_line/models/__init__.py b/account_advanced_reconcile_transaction_by_purchase_line/models/__init__.py deleted file mode 100644 index 83a65fd0..00000000 --- a/account_advanced_reconcile_transaction_by_purchase_line/models/__init__.py +++ /dev/null @@ -1,6 +0,0 @@ -# -*- coding: utf-8 -*- -# © 2015 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 easy_reconcile -from . import base_advanced_reconciliation diff --git a/account_advanced_reconcile_transaction_by_purchase_line/models/easy_reconcile.py b/account_advanced_reconcile_transaction_by_purchase_line/models/easy_reconcile.py deleted file mode 100644 index edb445bc..00000000 --- a/account_advanced_reconcile_transaction_by_purchase_line/models/easy_reconcile.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -# © 2015 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 models, api - - -class AccountEasyReconcileMethod(models.Model): - - _inherit = 'account.easy.reconcile.method' - - @api.model - def _get_all_rec_method(self): - methods = super(AccountEasyReconcileMethod, self).\ - _get_all_rec_method() - methods += [ - ('easy.reconcile.advanced.by.purchase.line', - 'Advanced. GR/IR Key as partner, product, purchase order line.'), - ] - return methods diff --git a/account_advanced_reconcile_transaction_by_purchase_line/views/easy_reconcile_view.xml b/account_advanced_reconcile_transaction_by_purchase_line/views/easy_reconcile_view.xml deleted file mode 100644 index cc042047..00000000 --- a/account_advanced_reconcile_transaction_by_purchase_line/views/easy_reconcile_view.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - account.easy.reconcile.form - account.easy.reconcile - - - - - - - - - - - - - - diff --git a/account_advanced_reconcile_transaction_by_purchase_line/wizards/advanced_reconciliation.py b/account_advanced_reconcile_transaction_by_purchase_line/wizards/advanced_reconciliation.py deleted file mode 100644 index 1525d472..00000000 --- a/account_advanced_reconcile_transaction_by_purchase_line/wizards/advanced_reconciliation.py +++ /dev/null @@ -1,33 +0,0 @@ -# -*- coding: utf-8 -*- -# © 2015 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 models, api - - -class EasyReconcileAdvancedTransactionByPurchaseLine(models.TransientModel): - - _name = 'easy.reconcile.advanced.by.purchase.line' - _inherit = 'easy.reconcile.advanced' - - @api.model - 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.model - 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.model - 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'])) diff --git a/account_mass_reconcile/views/mass_reconcile.xml b/account_mass_reconcile/views/mass_reconcile.xml index e299b4b2..6867feda 100644 --- a/account_mass_reconcile/views/mass_reconcile.xml +++ b/account_mass_reconcile/views/mass_reconcile.xml @@ -60,9 +60,8 @@ The lines should have the same amount (with the write-off) and the same referenc - diff --git a/account_advanced_reconcile_transaction_by_purchase_line/README.rst b/account_mass_reconcile_by_purchase_line/README.rst similarity index 54% rename from account_advanced_reconcile_transaction_by_purchase_line/README.rst rename to account_mass_reconcile_by_purchase_line/README.rst index fa5b8110..65449897 100644 --- a/account_advanced_reconcile_transaction_by_purchase_line/README.rst +++ b/account_mass_reconcile_by_purchase_line/README.rst @@ -2,41 +2,38 @@ :target: https://www.gnu.org/licenses/agpl.html :alt: License: AGPL-3 -======================================================= -Account Advanced Reconcile Transaction by Purchase Line -======================================================= +======================================= +Account Mass Reconcile by Purchase Line +======================================= -This module will allow a user to reconcile debits and credits of an Account +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'. +accounting system, with the accrual account '*Goods Received Not Invoiced*'. Usage ===== -* Go to 'Invoicing / Periodic Processing / Reconciliation / Easy Automatic - Reconciliation'. +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. GR/IR Key as partner, product, purchase order line.'. + 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/8.0 + :target: https://runbot.odoo-community.org/runbot/98/9.0 Bug Tracker =========== Bugs are tracked on `GitHub Issues -`_. In case of trouble, please +`_. 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 -`_. +help us smashing it by providing a detailed and welcomed feedback. Credits ======= @@ -50,13 +47,14 @@ Contributors ------------ * Jordi Ballester Alomar +* Miquel Raïch Maintainer ---------- .. image:: https://odoo-community.org/logo.png :alt: Odoo Community Association - :target: http://odoo-community.org + :target: https://odoo-community.org This module is maintained by the OCA. @@ -64,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 http://odoo-community.org. \ No newline at end of file +To contribute to this module, please visit https://odoo-community.org. \ No newline at end of file diff --git a/account_advanced_reconcile_transaction_by_purchase_line/__init__.py b/account_mass_reconcile_by_purchase_line/__init__.py similarity index 63% rename from account_advanced_reconcile_transaction_by_purchase_line/__init__.py rename to account_mass_reconcile_by_purchase_line/__init__.py index c3085bd2..09cfd859 100644 --- a/account_advanced_reconcile_transaction_by_purchase_line/__init__.py +++ b/account_mass_reconcile_by_purchase_line/__init__.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# © 2015 Eficent Business and IT Consulting Services S.L. (www.eficent.com) +# © 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 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_advanced_reconcile_transaction_by_purchase_line/models/base_advanced_reconciliation.py b/account_mass_reconcile_by_purchase_line/models/base_reconciliation.py similarity index 60% rename from account_advanced_reconcile_transaction_by_purchase_line/models/base_advanced_reconciliation.py rename to account_mass_reconcile_by_purchase_line/models/base_reconciliation.py index 8da51d24..09861e45 100644 --- a/account_advanced_reconcile_transaction_by_purchase_line/models/base_advanced_reconciliation.py +++ b/account_mass_reconcile_by_purchase_line/models/base_reconciliation.py @@ -1,20 +1,19 @@ # -*- coding: utf-8 -*- -# © 2015 Eficent Business and IT Consulting Services S.L. (www.eficent.com) +# © 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 models, api +from openerp import api, models -class EasyReconcileAdvanced(models.AbstractModel): - - _inherit = 'easy.reconcile.advanced' +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(EasyReconcileAdvanced, self)._base_columns() + 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_advanced_reconcile_transaction_by_purchase_line/wizards/__init__.py b/account_mass_reconcile_by_purchase_line/wizards/__init__.py similarity index 62% rename from account_advanced_reconcile_transaction_by_purchase_line/wizards/__init__.py rename to account_mass_reconcile_by_purchase_line/wizards/__init__.py index 79933302..141fb706 100644 --- a/account_advanced_reconcile_transaction_by_purchase_line/wizards/__init__.py +++ b/account_mass_reconcile_by_purchase_line/wizards/__init__.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# © 2015 Eficent Business and IT Consulting Services S.L. (www.eficent.com) +# © 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']) diff --git a/oca_dependencies.txt b/oca_dependencies.txt index 34f82ae9..9a273770 100644 --- a/oca_dependencies.txt +++ b/oca_dependencies.txt @@ -1 +1,2 @@ +account-financial-tools bank-payment From 91a1aafd849d7a34da8d13dab42409c6950cc14e Mon Sep 17 00:00:00 2001 From: mreficent Date: Thu, 17 Aug 2017 10:44:32 +0200 Subject: [PATCH 4/6] [FIX] Allowing extensions of _base_columns --- account_mass_reconcile/README.rst | 6 +++--- account_mass_reconcile/__openerp__.py | 2 +- .../models/base_reconciliation.py | 5 ++++- .../static/description/icon.png | Bin 0 -> 9455 bytes 4 files changed, 8 insertions(+), 5 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 9b18fdab..654d6653 100644 --- a/account_mass_reconcile/README.rst +++ b/account_mass_reconcile/README.rst @@ -2,9 +2,9 @@ :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 -============== -Mass Reconcile -============== +====================== +Account Mass Reconcile +====================== This is a shared work between Akretion and Camptocamp in order to provide: diff --git a/account_mass_reconcile/__openerp__.py b/account_mass_reconcile/__openerp__.py index 598548bf..e4d6e6fe 100644 --- a/account_mass_reconcile/__openerp__.py +++ b/account_mass_reconcile/__openerp__.py @@ -4,7 +4,7 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). { - "name": "Mass Reconcile", + "name": "Account Mass Reconcile", "version": "9.0.1.0.0", "depends": ["account", "account_full_reconcile"], "author": "Akretion,Camptocamp,Odoo Community Association (OCA)", diff --git a/account_mass_reconcile/models/base_reconciliation.py b/account_mass_reconcile/models/base_reconciliation.py index 66a367b4..7e07e328 100644 --- a/account_mass_reconcile/models/base_reconciliation.py +++ b/account_mass_reconcile/models/base_reconciliation.py @@ -1,6 +1,7 @@ # -*- coding: utf-8 -*- # © 2012-2016 Camptocamp SA (Guewen Baconnier, Damien Crier, Matthieu Dietrich) # © 2010 Sébastien Beau +# © 2017 Eficent Business and IT Consulting Services S.L. (www.eficent.com) # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). from openerp import models, api, fields @@ -44,6 +45,7 @@ class MassReconcileBase(models.AbstractModel): """ raise NotImplementedError + @api.model def _base_columns(self): """ Mandatory columns for move lines queries An extra column aliased as ``key`` should be defined @@ -63,7 +65,8 @@ class MassReconcileBase(models.AbstractModel): @api.multi def _select(self, *args, **kwargs): - return "SELECT %s" % ', '.join(self._base_columns()) + return "SELECT %s" % ', '.join( + self.env["mass.reconcile.base"]._base_columns()) @api.multi def _from(self, *args, **kwargs): 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 zcmW++2RxMjAAjx~&dlBk9S+%}OXg)AGE&Cb*&}d0jUxM@u(PQx^-s)697TX`ehR4?GS^qbkof1cslKgkU)h65qZ9Oc=ml_0temigYLJfnz{IDzUf>bGs4N!v3=Z3jMq&A#7%rM5eQ#dc?k~! zVpnB`o+K7|Al`Q_U;eD$B zfJtP*jH`siUq~{KE)`jP2|#TUEFGRryE2`i0**z#*^6~AI|YzIWy$Cu#CSLW3q=GA z6`?GZymC;dCPk~rBS%eCb`5OLr;RUZ;D`}um=H)BfVIq%7VhiMr)_#G0N#zrNH|__ zc+blN2UAB0=617@>_u;MPHN;P;N#YoE=)R#i$k_`UAA>WWCcEVMh~L_ zj--gtp&|K1#58Yz*AHCTMziU1Jzt_jG0I@qAOHsk$2}yTmVkBp_eHuY$A9)>P6o~I z%aQ?!(GqeQ-Y+b0I(m9pwgi(IIZZzsbMv+9w{PFtd_<_(LA~0H(xz{=FhLB@(1&qHA5EJw1>>=%q2f&^X>IQ{!GJ4e9U z&KlB)z(84HmNgm2hg2C0>WM{E(DdPr+EeU_N@57;PC2&DmGFW_9kP&%?X4}+xWi)( z;)z%wI5>D4a*5XwD)P--sPkoY(a~WBw;E~AW`Yue4kFa^LM3X`8x|}ZUeMnqr}>kH zG%WWW>3ml$Yez?i%)2pbKPI7?5o?hydokgQyZsNEr{a|mLdt;X2TX(#B1j35xPnPW z*bMSSOauW>o;*=kO8ojw91VX!qoOQb)zHJ!odWB}d+*K?#sY_jqPdg{Sm2HdYzdEx zOGVPhVRTGPtv0o}RfVP;Nd(|CB)I;*t&QO8h zFfekr30S!-LHmV_Su-W+rEwYXJ^;6&3|L$mMC8*bQptyOo9;>Qb9Q9`ySe3%V$A*9 zeKEe+b0{#KWGp$F+tga)0RtI)nhMa-K@JS}2krK~n8vJ=Ngm?R!9G<~RyuU0d?nz# z-5EK$o(!F?hmX*2Yt6+coY`6jGbb7tF#6nHA zuKk=GGJ;ZwON1iAfG$E#Y7MnZVmrY|j0eVI(DN_MNFJmyZ|;w4tf@=CCDZ#5N_0K= z$;R~bbk?}TpfDjfB&aiQ$VA}s?P}xPERJG{kxk5~R`iRS(SK5d+Xs9swCozZISbnS zk!)I0>t=A<-^z(cmSFz3=jZ23u13X><0b)P)^1T_))Kr`e!-pb#q&J*Q`p+B6la%C zuVl&0duN<;uOsB3%T9Fp8t{ED108<+W(nOZd?gDnfNBC3>M8WE61$So|P zVvqH0SNtDTcsUdzaMDpT=Ty0pDHHNL@Z0w$Y`XO z2M-_r1S+GaH%pz#Uy0*w$Vdl=X=rQXEzO}d6J^R6zjM1u&c9vYLvLp?W7w(?np9x1 zE_0JSAJCPB%i7p*Wvg)pn5T`8k3-uR?*NT|J`eS#_#54p>!p(mLDvmc-3o0mX*mp_ zN*AeS<>#^-{S%W<*mz^!X$w_2dHWpcJ6^j64qFBft-o}o_Vx80o0>}Du;>kLts;$8 zC`7q$QI(dKYG`Wa8#wl@V4jVWBRGQ@1dr-hstpQL)Tl+aqVpGpbSfN>5i&QMXfiZ> zaA?T1VGe?rpQ@;+pkrVdd{klI&jVS@I5_iz!=UMpTsa~mBga?1r}aRBm1WS;TT*s0f0lY=JBl66Upy)-k4J}lh=P^8(SXk~0xW=T9v*B|gzIhN z>qsO7dFd~mgxAy4V?&)=5ieYq?zi?ZEoj)&2o)RLy=@hbCRcfT5jigwtQGE{L*8<@Yd{zg;CsL5mvzfDY}P-wos_6PfprFVaeqNE%h zKZhLtcQld;ZD+>=nqN~>GvROfueSzJD&BE*}XfU|H&(FssBqY=hPCt`d zH?@s2>I(|;fcW&YM6#V#!kUIP8$Nkdh0A(bEVj``-AAyYgwY~jB zT|I7Bf@%;7aL7Wf4dZ%VqF$eiaC38OV6oy3Z#TER2G+fOCd9Iaoy6aLYbPTN{XRPz z;U!V|vBf%H!}52L2gH_+j;`bTcQRXB+y9onc^wLm5wi3-Be}U>k_u>2Eg$=k!(l@I zcCg+flakT2Nej3i0yn+g+}%NYb?ta;R?(g5SnwsQ49U8Wng8d|{B+lyRcEDvR3+`O{zfmrmvFrL6acVP%yG98X zo&+VBg@px@i)%o?dG(`T;n*$S5*rnyiR#=wW}}GsAcfyQpE|>a{=$Hjg=-*_K;UtD z#z-)AXwSRY?OPefw^iI+ z)AXz#PfEjlwTes|_{sB?4(O@fg0AJ^g8gP}ex9Ucf*@_^J(s_5jJV}c)s$`Myn|Kd z$6>}#q^n{4vN@+Os$m7KV+`}c%4)4pv@06af4-x5#wj!KKb%caK{A&Y#Rfs z-po?Dcb1({W=6FKIUirH&(yg=*6aLCekcKwyfK^JN5{wcA3nhO(o}SK#!CINhI`-I z1)6&n7O&ZmyFMuNwvEic#IiOAwNkR=u5it{B9n2sAJV5pNhar=j5`*N!Na;c7g!l$ z3aYBqUkqqTJ=Re-;)s!EOeij=7SQZ3Hq}ZRds%IM*PtM$wV z@;rlc*NRK7i3y5BETSKuumEN`Xu_8GP1Ri=OKQ$@I^ko8>H6)4rjiG5{VBM>B|%`&&s^)jS|-_95&yc=GqjNo{zFkw%%HHhS~e=s zD#sfS+-?*t|J!+ozP6KvtOl!R)@@-z24}`9{QaVLD^9VCSR2b`b!KC#o;Ki<+wXB6 zx3&O0LOWcg4&rv4QG0)4yb}7BFSEg~=IR5#ZRj8kg}dS7_V&^%#Do==#`u zpy6{ox?jWuR(;pg+f@mT>#HGWHAJRRDDDv~@(IDw&R>9643kK#HN`!1vBJHnC+RM&yIh8{gG2q zA%e*U3|N0XSRa~oX-3EAneep)@{h2vvd3Xvy$7og(sayr@95+e6~Xvi1tUqnIxoIH zVWo*OwYElb#uyW{Imam6f2rGbjR!Y3`#gPqkv57dB6K^wRGxc9B(t|aYDGS=m$&S!NmCtrMMaUg(c zc2qC=2Z`EEFMW-me5B)24AqF*bV5Dr-M5ig(l-WPS%CgaPzs6p_gnCIvTJ=Y<6!gT zVt@AfYCzjjsMEGi=rDQHo0yc;HqoRNnNFeWZgcm?f;cp(6CNylj36DoL(?TS7eU#+ z7&mfr#y))+CJOXQKUMZ7QIdS9@#-}7y2K1{8)cCt0~-X0O!O?Qx#E4Og+;A2SjalQ zs7r?qn0H044=sDN$SRG$arw~n=+T_DNdSrarmu)V6@|?1-ZB#hRn`uilTGPJ@fqEy zGt(f0B+^JDP&f=r{#Y_wi#AVDf-y!RIXU^0jXsFpf>=Ji*TeqSY!H~AMbJdCGLhC) zn7Rx+sXw6uYj;WRYrLd^5IZq@6JI1C^YkgnedZEYy<&4(z%Q$5yv#Boo{AH8n$a zhb4Y3PWdr269&?V%uI$xMcUrMzl=;w<_nm*qr=c3Rl@i5wWB;e-`t7D&c-mcQl7x! zZWB`UGcw=Y2=}~wzrfLx=uet<;m3~=8I~ZRuzvMQUQdr+yTV|ATf1Uuomr__nDf=X zZ3WYJtHp_ri(}SQAPjv+Y+0=fH4krOP@S&=zZ-t1jW1o@}z;xk8 z(Nz1co&El^HK^NrhVHa-_;&88vTU>_J33=%{if;BEY*J#1n59=07jrGQ#IP>@u#3A z;!q+E1Rj3ZJ+!4bq9F8PXJ@yMgZL;>&gYA0%_Kbi8?S=XGM~dnQZQ!yBSgcZhY96H zrWnU;k)qy`rX&&xlDyA%(a1Hhi5CWkmg(`Gb%m(HKi-7Z!LKGRP_B8@`7&hdDy5n= z`OIxqxiVfX@OX1p(mQu>0Ai*v_cTMiw4qRt3~NBvr9oBy0)r>w3p~V0SCm=An6@3n)>@z!|o-$HvDK z|3D2ZMJkLE5loMKl6R^ez@Zz%S$&mbeoqH5`Bb){Ei21q&VP)hWS2tjShfFtGE+$z zzCR$P#uktu+#!w)cX!lWN1XU%K-r=s{|j?)Akf@q#3b#{6cZCuJ~gCxuMXRmI$nGtnH+-h z+GEi!*X=AP<|fG`1>MBdTb?28JYc=fGvAi2I<$B(rs$;eoJCyR6_bc~p!XR@O-+sD z=eH`-ye})I5ic1eL~TDmtfJ|8`0VJ*Yr=hNCd)G1p2MMz4C3^Mj?7;!w|Ly%JqmuW zlIEW^Ft%z?*|fpXda>Jr^1noFZEwFgVV%|*XhH@acv8rdGxeEX{M$(vG{Zw+x(ei@ zmfXb22}8-?Fi`vo-YVrTH*C?a8%M=Hv9MqVH7H^J$KsD?>!SFZ;ZsvnHr_gn=7acz z#W?0eCdVhVMWN12VV^$>WlQ?f;P^{(&pYTops|btm6aj>_Uz+hqpGwB)vWp0Cf5y< zft8-je~nn?W11plq}N)4A{l8I7$!ks_x$PXW-2XaRFswX_BnF{R#6YIwMhAgd5F9X zGmwdadS6(a^fjHtXg8=l?Rc0Sm%hk6E9!5cLVloEy4eh(=FwgP`)~I^5~pBEWo+F6 zSf2ncyMurJN91#cJTy_u8Y}@%!bq1RkGC~-bV@SXRd4F{R-*V`bS+6;W5vZ(&+I<9$;-V|eNfLa5n-6% z2(}&uGRF;p92eS*sE*oR$@pexaqr*meB)VhmIg@h{uzkk$9~qh#cHhw#>O%)b@+(| z^IQgqzuj~Sk(J;swEM-3TrJAPCq9k^^^`q{IItKBRXYe}e0Tdr=Huf7da3$l4PdpwWDop%^}n;dD#K4s#DYA8SHZ z&1!riV4W4R7R#C))JH1~axJ)RYnM$$lIR%6fIVA@zV{XVyx}C+a-Dt8Y9M)^KU0+H zR4IUb2CJ{Hg>CuaXtD50jB(_Tcx=Z$^WYu2u5kubqmwp%drJ6 z?Fo40g!Qd<-l=TQxqHEOuPX0;^z7iX?Ke^a%XT<13TA^5`4Xcw6D@Ur&VT&CUe0d} z1GjOVF1^L@>O)l@?bD~$wzgf(nxX1OGD8fEV?TdJcZc2KoUe|oP1#=$$7ee|xbY)A zDZq+cuTpc(fFdj^=!;{k03C69lMQ(|>uhRfRu%+!k&YOi-3|1QKB z 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 Xviia!U7SGha1wx#SCgwmn*{w2TRX*I literal 0 HcmV?d00001 From 7ba8a857601d19d1e5f545a190611f03fac6efe8 Mon Sep 17 00:00:00 2001 From: lreficent Date: Fri, 1 Sep 2017 11:47:39 +0200 Subject: [PATCH 5/6] [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 ef6b4f61c6a45835701014fed889d95b97d74227 Mon Sep 17 00:00:00 2001 From: Lois Rilo Date: Fri, 1 Sep 2017 18:35:48 +0200 Subject: [PATCH 6/6] 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.