From 213d1e1e3a18e32e8f59db545553afc9e9116669 Mon Sep 17 00:00:00 2001 From: vrenaville Date: Thu, 6 Jul 2017 15:36:27 +0200 Subject: [PATCH] [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 +