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):