diff options
| author | Samuel Degueldre <sad@odoo.com> | 2019-09-17 12:45:11 +0000 |
|---|---|---|
| committer | fw-bot <otis@odoo.com> | 2019-09-24 15:50:04 +0000 |
| commit | dd627b9698d18fe8a0bbf56e07edcc30f8af0117 (patch) | |
| tree | b82c2211c1388d137985cb0124d768cedcd2403d | |
| parent | 3371bfabd520182643e9a14d4e89c7850e3617c0 (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.py | 22 |
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() |
