[FIX] purchase: anglosaxon valuation: Use invoice_date when date is not set on invoices
This commit is contained in:
@@ -52,7 +52,7 @@ class AccountInvoice(models.Model):
|
||||
'uom_id': line.product_uom.id,
|
||||
'product_id': line.product_id.id,
|
||||
'account_id': invoice_line.with_context({'journal_id': self.journal_id.id, 'type': 'in_invoice'})._default_account(),
|
||||
'price_unit': line.order_id.currency_id.with_context(date=self.date).compute(line.price_unit, self.currency_id, round=False),
|
||||
'price_unit': line.order_id.currency_id.with_context(date=self.date or self.date_invoice).compute(line.price_unit, self.currency_id, round=False),
|
||||
'quantity': qty,
|
||||
'discount': 0.0,
|
||||
'account_analytic_id': line.account_analytic_id.id,
|
||||
@@ -99,7 +99,7 @@ class AccountInvoice(models.Model):
|
||||
def _onchange_currency_id(self):
|
||||
if self.currency_id:
|
||||
for line in self.invoice_line_ids.filtered(lambda r: r.purchase_line_id):
|
||||
line.price_unit = line.purchase_id.currency_id.with_context(date=self.date).compute(line.purchase_line_id.price_unit, self.currency_id, round=False)
|
||||
line.price_unit = line.purchase_id.currency_id.with_context(date=self.date or self.date_invoice).compute(line.purchase_line_id.price_unit, self.currency_id, round=False)
|
||||
|
||||
@api.onchange('invoice_line_ids')
|
||||
def _onchange_origin(self):
|
||||
@@ -170,7 +170,7 @@ class AccountInvoice(models.Model):
|
||||
if i_line.product_id.cost_method != 'standard' and i_line.purchase_line_id:
|
||||
po_currency = i_line.purchase_id.currency_id
|
||||
#for average/fifo/lifo costing method, fetch real cost price from incomming moves
|
||||
valuation_price_unit = po_currency.with_context(date=inv.date).compute(i_line.purchase_line_id.product_uom._compute_price(i_line.purchase_line_id.price_unit, i_line.uom_id), inv.currency_id, round=False)
|
||||
valuation_price_unit = po_currency.with_context(date=inv.date or inv.date_invoice).compute(i_line.purchase_line_id.product_uom._compute_price(i_line.purchase_line_id.price_unit, i_line.uom_id), inv.currency_id, round=False)
|
||||
stock_move_obj = self.env['stock.move']
|
||||
valuation_stock_move = stock_move_obj.search([
|
||||
('purchase_line_id', '=', i_line.purchase_line_id.id),
|
||||
@@ -196,7 +196,7 @@ class AccountInvoice(models.Model):
|
||||
|
||||
elif i_line.product_id.cost_method == 'fifo':
|
||||
# In this condition, we have a real price-valuated product which has not yet been received
|
||||
valuation_price_unit = po_currency.with_context(date=inv.date).compute(i_line.purchase_line_id.price_unit, inv.currency_id, round=False)
|
||||
valuation_price_unit = po_currency.with_context(date=inv.date or inv.date_invoice).compute(i_line.purchase_line_id.price_unit, inv.currency_id, round=False)
|
||||
|
||||
interim_account_price = valuation_price_unit * line_quantity
|
||||
invoice_cur_prec = inv.currency_id.decimal_places
|
||||
|
||||
Reference in New Issue
Block a user