From 38013a545b025a13ac45c6f9f281be70c0685c38 Mon Sep 17 00:00:00 2001 From: mreficent Date: Fri, 13 Jul 2018 12:37:18 +0200 Subject: [PATCH] [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'