From 213d1e1e3a18e32e8f59db545553afc9e9116669 Mon Sep 17 00:00:00 2001 From: vrenaville Date: Thu, 6 Jul 2017 15:36:27 +0200 Subject: [PATCH 1/4] [ADD] analytic for write-off on mass reconcile --- .../i18n/account_easy_reconcile.pot | 13 +++++++++++++ account_mass_reconcile/i18n/fr.po | 13 +++++++++++++ .../models/base_reconciliation.py | 12 ++++++++---- account_mass_reconcile/models/mass_reconcile.py | 4 ++++ account_mass_reconcile/views/mass_reconcile.xml | 1 + 5 files changed, 39 insertions(+), 4 deletions(-) diff --git a/account_mass_reconcile/i18n/account_easy_reconcile.pot b/account_mass_reconcile/i18n/account_easy_reconcile.pot index 4c7c81dc..5408c37a 100644 --- a/account_mass_reconcile/i18n/account_easy_reconcile.pot +++ b/account_mass_reconcile/i18n/account_easy_reconcile.pot @@ -600,3 +600,16 @@ msgstr "mass.reconcile.advanced" #: model:ir.model,name:account_mass_reconcile.model_mass_reconcile_advanced_ref msgid "mass.reconcile.advanced.ref" msgstr "mass.reconcile.advanced.ref" + +#. module: account_mass_reconcile +#: model:ir.model.fields,field_description:account_mass_reconcile.field_account_mass_reconcile_method_analytic_account_id +#: model:ir.model.fields,field_description:account_mass_reconcile.field_mass_reconcile_advanced_analytic_account_id +#: model:ir.model.fields,field_description:account_mass_reconcile.field_mass_reconcile_advanced_ref_analytic_account_id +#: model:ir.model.fields,field_description:account_mass_reconcile.field_mass_reconcile_base_analytic_account_id +#: model:ir.model.fields,field_description:account_mass_reconcile.field_mass_reconcile_options_analytic_account_id +#: model:ir.model.fields,field_description:account_mass_reconcile.field_mass_reconcile_simple_analytic_account_id +#: model:ir.model.fields,field_description:account_mass_reconcile.field_mass_reconcile_simple_name_analytic_account_id +#: model:ir.model.fields,field_description:account_mass_reconcile.field_mass_reconcile_simple_partner_analytic_account_id +#: model:ir.model.fields,field_description:account_mass_reconcile.field_mass_reconcile_simple_reference_analytic_account_id +msgid "Analytic account for write-off" +msgstr "" diff --git a/account_mass_reconcile/i18n/fr.po b/account_mass_reconcile/i18n/fr.po index e40125d0..99887e64 100644 --- a/account_mass_reconcile/i18n/fr.po +++ b/account_mass_reconcile/i18n/fr.po @@ -679,3 +679,16 @@ msgstr "" #: model:ir.model,name:account_mass_reconcile.model_account_mass_reconcile_method msgid "reconcile method for account_mass_reconcile" msgstr "Méthode de lettrage" + +#. module: account_mass_reconcile +#: model:ir.model.fields,field_description:account_mass_reconcile.field_account_mass_reconcile_method_analytic_account_id +#: model:ir.model.fields,field_description:account_mass_reconcile.field_mass_reconcile_advanced_analytic_account_id +#: model:ir.model.fields,field_description:account_mass_reconcile.field_mass_reconcile_advanced_ref_analytic_account_id +#: model:ir.model.fields,field_description:account_mass_reconcile.field_mass_reconcile_base_analytic_account_id +#: model:ir.model.fields,field_description:account_mass_reconcile.field_mass_reconcile_options_analytic_account_id +#: model:ir.model.fields,field_description:account_mass_reconcile.field_mass_reconcile_simple_analytic_account_id +#: model:ir.model.fields,field_description:account_mass_reconcile.field_mass_reconcile_simple_name_analytic_account_id +#: model:ir.model.fields,field_description:account_mass_reconcile.field_mass_reconcile_simple_partner_analytic_account_id +#: model:ir.model.fields,field_description:account_mass_reconcile.field_mass_reconcile_simple_reference_analytic_account_id +msgid "Analytic account for write-off" +msgstr "Compte analytique pour les écritures d'écart" diff --git a/account_mass_reconcile/models/base_reconciliation.py b/account_mass_reconcile/models/base_reconciliation.py index 66a367b4..b8809ce8 100644 --- a/account_mass_reconcile/models/base_reconciliation.py +++ b/account_mass_reconcile/models/base_reconciliation.py @@ -159,10 +159,14 @@ class MassReconcileBase(models.AbstractModel): else: writeoff_account = self.account_lost_id line_rs = ml_obj.browse(line_ids) - line_rs.reconcile( - writeoff_acc_id=writeoff_account, - writeoff_journal_id=self.journal_id - ) + ctx = dict(self._context) + if self.analytic_account_id: + ctx.update( + {'analytic_id': self.analytic_account_id.id}) + line_rs.with_context(ctx).reconcile( + writeoff_acc_id=writeoff_account, + writeoff_journal_id=self.journal_id + ) return True, True elif allow_partial: # We need to give a writeoff_acc_id diff --git a/account_mass_reconcile/models/mass_reconcile.py b/account_mass_reconcile/models/mass_reconcile.py index 42e1c53b..0dcedd91 100644 --- a/account_mass_reconcile/models/mass_reconcile.py +++ b/account_mass_reconcile/models/mass_reconcile.py @@ -48,6 +48,8 @@ class MassReconcileOptions(models.AbstractModel): expense_exchange_account_id = fields.Many2one('account.account', string='Loss Exchange ' 'Rate Account') + analytic_account_id = fields.Many2one( + 'account.analytic.account', string='Analytic account for write-off') class AccountMassReconcileMethod(models.Model): @@ -149,6 +151,8 @@ class AccountMassReconcile(models.Model): 'write_off': rec_method.write_off, 'account_lost_id': (rec_method.account_lost_id.id), 'account_profit_id': (rec_method.account_profit_id.id), + 'analytic_account_id': ( + rec_method.analytic_account_id.id), 'income_exchange_account_id': (rec_method.income_exchange_account_id.id), 'expense_exchange_account_id': diff --git a/account_mass_reconcile/views/mass_reconcile.xml b/account_mass_reconcile/views/mass_reconcile.xml index e299b4b2..0af1afe6 100644 --- a/account_mass_reconcile/views/mass_reconcile.xml +++ b/account_mass_reconcile/views/mass_reconcile.xml @@ -127,6 +127,7 @@ The lines should have the partner, the credit entry ref. is matched vs the debit + From 1a0f2ac87755df17dd67f823f5893de5896f3c68 Mon Sep 17 00:00:00 2001 From: vrenaville Date: Thu, 6 Jul 2017 15:37:59 +0200 Subject: [PATCH 2/4] [Fix] remove required --- account_mass_reconcile/views/mass_reconcile.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/account_mass_reconcile/views/mass_reconcile.xml b/account_mass_reconcile/views/mass_reconcile.xml index 0af1afe6..4279e450 100644 --- a/account_mass_reconcile/views/mass_reconcile.xml +++ b/account_mass_reconcile/views/mass_reconcile.xml @@ -127,7 +127,7 @@ The lines should have the partner, the credit entry ref. is matched vs the debit - + From 41f0f342279e78fbe6bd87fe57edd9f41ef825e8 Mon Sep 17 00:00:00 2001 From: vrenaville Date: Mon, 10 Jul 2017 13:54:03 +0200 Subject: [PATCH 3/4] [IMP] better use of with_context --- account_mass_reconcile/models/base_reconciliation.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/account_mass_reconcile/models/base_reconciliation.py b/account_mass_reconcile/models/base_reconciliation.py index b8809ce8..5692845b 100644 --- a/account_mass_reconcile/models/base_reconciliation.py +++ b/account_mass_reconcile/models/base_reconciliation.py @@ -159,11 +159,10 @@ class MassReconcileBase(models.AbstractModel): else: writeoff_account = self.account_lost_id line_rs = ml_obj.browse(line_ids) - ctx = dict(self._context) if self.analytic_account_id: - ctx.update( - {'analytic_id': self.analytic_account_id.id}) - line_rs.with_context(ctx).reconcile( + line_rs = line_rs.with_context( + analytic_id=self.analytic_account_id.id) + line_rs.reconcile( writeoff_acc_id=writeoff_account, writeoff_journal_id=self.journal_id ) From c0ead058839367d90d8f48cd3fa44bbbbd8bc288 Mon Sep 17 00:00:00 2001 From: vrenaville Date: Tue, 11 Jul 2017 14:28:53 +0200 Subject: [PATCH 4/4] [IMP] fix indent --- account_mass_reconcile/models/base_reconciliation.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/account_mass_reconcile/models/base_reconciliation.py b/account_mass_reconcile/models/base_reconciliation.py index 5692845b..f7b76248 100644 --- a/account_mass_reconcile/models/base_reconciliation.py +++ b/account_mass_reconcile/models/base_reconciliation.py @@ -161,11 +161,11 @@ class MassReconcileBase(models.AbstractModel): line_rs = ml_obj.browse(line_ids) if self.analytic_account_id: line_rs = line_rs.with_context( - analytic_id=self.analytic_account_id.id) + analytic_id=self.analytic_account_id.id) line_rs.reconcile( - writeoff_acc_id=writeoff_account, - writeoff_journal_id=self.journal_id - ) + writeoff_acc_id=writeoff_account, + writeoff_journal_id=self.journal_id + ) return True, True elif allow_partial: # We need to give a writeoff_acc_id