[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) <nim@odoo.com>
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user