From df0cff2628f08b4180f4bfb142b9e95c95bfd234 Mon Sep 17 00:00:00 2001 From: David Tran Date: Sun, 18 Aug 2019 05:47:11 +0000 Subject: [PATCH] [IMP] sale: split _create_analytic_account() for potential inheritance analytic account data preparation is now a hook method This allows to modify the creation method without unecessary updates closes odoo/odoo#35784 Signed-off-by: Martin Trigaux (mat) --- addons/sale/models/sale.py | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/addons/sale/models/sale.py b/addons/sale/models/sale.py index a6cc73b6c93..2b6571a1c69 100644 --- a/addons/sale/models/sale.py +++ b/addons/sale/models/sale.py @@ -693,18 +693,28 @@ class SaleOrder(models.Model): def _get_forbidden_state_confirm(self): return {'done', 'cancel'} + + def _prepare_analytic_account_data(self, prefix=None): + """ + Prepare method for analytic account data + + :param prefix: The prefix of the to-be-created analytic account name + :type prefix: string + :return: dictionary of value for new analytic account creation + """ + name = self.name + if prefix: + name = prefix + ": " + self.name + return { + 'name': name, + 'code': self.client_order_ref, + 'company_id': self.company_id.id, + 'partner_id': self.partner_id.id + } def _create_analytic_account(self, prefix=None): for order in self: - name = order.name - if prefix: - name = prefix + ": " + order.name - analytic = self.env['account.analytic.account'].create({ - 'name': name, - 'code': order.client_order_ref, - 'company_id': order.company_id.id, - 'partner_id': order.partner_id.id - }) + analytic = self.env['account.analytic.account'].create(order._prepare_analytic_account_data(prefix)) order.analytic_account_id = analytic def _amount_by_group(self):