summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Degueldre <sad@odoo.com>2019-09-17 12:45:11 +0000
committerfw-bot <otis@odoo.com>2019-09-24 15:50:04 +0000
commitdd627b9698d18fe8a0bbf56e07edcc30f8af0117 (patch)
treeb82c2211c1388d137985cb0124d768cedcd2403d
parent3371bfabd520182643e9a14d4e89c7850e3617c0 (diff)
[FIX] account_analytic_default: fix ocr not using default analytic account
PURPOSE: Default analytic account should be used wherever possible. This wasn't the case because the module didn't implement a default_get and only filled the fields on product_id change, which isn't set by the OCR task-2067097 opw-2068110 closes odoo/odoo#37389 X-original-commit: 2c450015154f8ba2384fb1f0ad1d4075785009c0 Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
-rw-r--r--addons/account_analytic_default/models/account_analytic_default.py22
1 files changed, 22 insertions, 0 deletions
diff --git a/addons/account_analytic_default/models/account_analytic_default.py b/addons/account_analytic_default/models/account_analytic_default.py
index 707e9920ac0..8f6fb108ca3 100644
--- a/addons/account_analytic_default/models/account_analytic_default.py
+++ b/addons/account_analytic_default/models/account_analytic_default.py
@@ -63,6 +63,28 @@ class AccountAnalyticDefault(models.Model):
class AccountInvoiceLine(models.Model):
_inherit = "account.invoice.line"
+ @api.model
+ def default_get(self, fields_list):
+ defaults = super(AccountInvoiceLine, self).default_get(fields_list)
+ if set(['account_analytic_id', 'analytic_tag_ids']) & set(fields_list):
+ rec = self.env['account.analytic.default'].account_get(
+ self.product_id.id,
+ self.invoice_id.commercial_partner_id.id,
+ self.invoice_id.user_id.id or self.env.uid,
+ fields.Date.today(),
+ company_id=self.company_id.id
+ )
+ if rec:
+ if 'account_analytic_id' in fields_list:
+ defaults.update({
+ 'account_analytic_id': rec.analytic_id.id,
+ })
+ if 'analytic_tag_ids' in fields_list:
+ defaults.update({
+ 'analytic_tag_ids': rec.analytic_tag_ids.ids,
+ })
+ return defaults
+
@api.onchange('product_id')
def _onchange_product_id(self):
res = super(AccountInvoiceLine, self)._onchange_product_id()