From 5fccb75fde67b03d25610578388ef5cc8a79be82 Mon Sep 17 00:00:00 2001 From: Nicolas Martinelli Date: Wed, 29 May 2019 12:49:24 +0000 Subject: [PATCH] [FIX] account_analytic_default: default based on user - Create an Analytic Distribution for: Product A Current user (e.g. Mitchell Admin) - Sell the product in the POS, request an invoice The analytic account defined is not used. This is due to the invoice created as SUPERUSER. We should first take into account the user on the invoice, then the current user. opw-2003935 closes odoo/odoo#33758 Signed-off-by: Nicolas Martinelli (nim) --- .../models/account_analytic_default.py | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/addons/account_analytic_default/models/account_analytic_default.py b/addons/account_analytic_default/models/account_analytic_default.py index 8a19f54c2a1..34052a51560 100644 --- a/addons/account_analytic_default/models/account_analytic_default.py +++ b/addons/account_analytic_default/models/account_analytic_default.py @@ -66,8 +66,13 @@ class AccountInvoiceLine(models.Model): @api.onchange('product_id') def _onchange_product_id(self): res = super(AccountInvoiceLine, self)._onchange_product_id() - rec = self.env['account.analytic.default'].account_get(self.product_id.id, self.invoice_id.commercial_partner_id.id, self.env.uid, - fields.Date.today(), company_id=self.company_id.id) + 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 + ) self.account_analytic_id = rec.analytic_id.id self.analytic_tag_ids = rec.analytic_tag_ids.ids return res @@ -75,8 +80,12 @@ class AccountInvoiceLine(models.Model): def _set_additional_fields(self, invoice): if not self.account_analytic_id or not self.analytic_tag_ids: rec = self.env['account.analytic.default'].account_get( - self.product_id.id, self.invoice_id.commercial_partner_id.id, self.env.uid, - fields.Date.today(), company_id=invoice.company_id.id) + 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=invoice.company_id.id + ) if rec: if self.account_analytic_id: self.account_analytic_id = rec.analytic_id.id