From 64929f8574f2986901f104cc0b75d7c5e4078c35 Mon Sep 17 00:00:00 2001 From: Guewen Baconnier Date: Thu, 16 Jan 2014 15:12:55 +0100 Subject: [PATCH] add a reconcile rule matching a transaction_ref vs a reference --- .../advanced_reconciliation.py | 22 +++++++++++++++++++ .../easy_reconcile.py | 2 ++ .../easy_reconcile_view.xml | 7 +++++- 3 files changed, 30 insertions(+), 1 deletion(-) diff --git a/account_advanced_reconcile_transaction_ref/advanced_reconciliation.py b/account_advanced_reconcile_transaction_ref/advanced_reconciliation.py index 50687d9c..62288f2b 100644 --- a/account_advanced_reconcile_transaction_ref/advanced_reconciliation.py +++ b/account_advanced_reconcile_transaction_ref/advanced_reconciliation.py @@ -41,3 +41,25 @@ class easy_reconcile_advanced_transaction_ref(orm.TransientModel): def _opposite_matchers(self, cr, uid, rec, move_line, context=None): yield ('partner_id', move_line['partner_id']) yield ('ref', (move_line['transaction_ref'] or '').lower().strip()) + + +class easy_reconcile_advanced_transaction_ref_vs_ref(orm.TransientModel): + + _name = 'easy.reconcile.advanced.trans_ref_vs_ref' + _inherit = 'easy.reconcile.advanced' + + def _skip_line(self, cr, uid, rec, move_line, context=None): + """ + 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('ref') and move_line.get('partner_id')) + + def _matchers(self, cr, uid, rec, move_line, context=None): + return (('partner_id', move_line['partner_id']), + ('ref', move_line['transaction_ref'].lower().strip())) + + def _opposite_matchers(self, cr, uid, rec, move_line, context=None): + yield ('partner_id', move_line['partner_id']) + yield ('ref', (move_line['ref'] or '').lower().strip()) diff --git a/account_advanced_reconcile_transaction_ref/easy_reconcile.py b/account_advanced_reconcile_transaction_ref/easy_reconcile.py index a4cf11ab..d13c62ff 100644 --- a/account_advanced_reconcile_transaction_ref/easy_reconcile.py +++ b/account_advanced_reconcile_transaction_ref/easy_reconcile.py @@ -32,6 +32,8 @@ class account_easy_reconcile_method(orm.Model): methods += [ ('easy.reconcile.advanced.transaction_ref', 'Advanced. Partner and Transaction Ref.'), + ('easy.reconcile.advanced.transaction_ref_vs_ref', + 'Advanced. Partner and Transaction Ref. vs Ref.'), ] return methods diff --git a/account_advanced_reconcile_transaction_ref/easy_reconcile_view.xml b/account_advanced_reconcile_transaction_ref/easy_reconcile_view.xml index b341e7b8..4770424f 100644 --- a/account_advanced_reconcile_transaction_ref/easy_reconcile_view.xml +++ b/account_advanced_reconcile_transaction_ref/easy_reconcile_view.xml @@ -10,7 +10,12 @@ + + +