[FIX] account: fpo map account is not used
Before this commit, the fiscal position is not used to determine account. closes odoo/odoo#135559 X-original-commit: 57f71fa2666af591a8d3d28af65fcfab8a7d3785 Signed-off-by: Cedric Snauwaert <csn@odoo.com> Co-authored-by: Miquel Raïch <miquel.raich@forgeflow.com>
This commit is contained in:
committed by
csnauwaert
co-authored by
Miquel Raïch
parent
b9c0d9f780
commit
eee455e799
@@ -105,6 +105,13 @@ class AccruedExpenseRevenue(models.TransientModel):
|
||||
},
|
||||
})
|
||||
|
||||
def _get_computed_account(self, order, product, is_purchase):
|
||||
accounts = product.with_company(order.company_id).product_tmpl_id.get_product_accounts(fiscal_pos=order.fiscal_position_id)
|
||||
if is_purchase:
|
||||
return accounts['expense']
|
||||
else:
|
||||
return accounts['income']
|
||||
|
||||
def _compute_move_vals(self):
|
||||
def _get_aml_vals(order, balance, amount_currency, account_id, label="", analytic_distribution=None):
|
||||
if not is_purchase:
|
||||
@@ -147,10 +154,7 @@ class AccruedExpenseRevenue(models.TransientModel):
|
||||
if len(orders) == 1 and self.amount and order.order_line:
|
||||
total_balance = self.amount
|
||||
order_line = order.order_line[0]
|
||||
if is_purchase:
|
||||
account = order_line.product_id.property_account_expense_id or order_line.product_id.categ_id.property_account_expense_categ_id
|
||||
else:
|
||||
account = order_line.product_id.property_account_income_id or order_line.product_id.categ_id.property_account_income_categ_id
|
||||
account = self._get_computed_account(order, order_line.product_id, is_purchase)
|
||||
distribution = order_line.analytic_distribution if order_line.analytic_distribution else {}
|
||||
if not is_purchase and order.analytic_account_id:
|
||||
analytic_account_id = str(order.analytic_account_id.id)
|
||||
@@ -181,13 +185,13 @@ class AccruedExpenseRevenue(models.TransientModel):
|
||||
)
|
||||
for order_line in lines:
|
||||
if is_purchase:
|
||||
account = order_line.product_id.property_account_expense_id or order_line.product_id.categ_id.property_account_expense_categ_id
|
||||
account = self._get_computed_account(order, order_line.product_id, is_purchase)
|
||||
amount = self.company_id.currency_id.round(order_line.qty_to_invoice * order_line.price_unit / rate)
|
||||
amount_currency = order_line.currency_id.round(order_line.qty_to_invoice * order_line.price_unit)
|
||||
fnames = ['qty_to_invoice', 'qty_received', 'qty_invoiced', 'invoice_lines']
|
||||
label = _('%s - %s; %s Billed, %s Received at %s each', order.name, _ellipsis(order_line.name, 20), order_line.qty_invoiced, order_line.qty_received, formatLang(self.env, order_line.price_unit, currency_obj=order.currency_id))
|
||||
else:
|
||||
account = order_line.product_id.property_account_income_id or order_line.product_id.categ_id.property_account_income_categ_id
|
||||
account = self._get_computed_account(order, order_line.product_id, is_purchase)
|
||||
amount = self.company_id.currency_id.round(order_line.untaxed_amount_to_invoice / rate)
|
||||
amount_currency = order_line.untaxed_amount_to_invoice
|
||||
fnames = ['qty_to_invoice', 'untaxed_amount_to_invoice', 'qty_invoiced', 'qty_delivered', 'invoice_lines']
|
||||
|
||||
Reference in New Issue
Block a user