Impacted versions:
9.0

Steps to reproduce:
- Create a product with costing method set to average
- Create a purchase order for the product in a foreign currency, and validate
- Change the exchange rate for the currency in question
- Receive the product

Current behavior:
- Stock quants get the correct cost behind the scene (PO value at current rate)
- Accounting journals get the correct value
- Stock move price unit has been updated to the correct value
- **Average cost on product file is the PO value at old rate**

Expected behavior:
- Average should have been updated in line with the new rate

Video/Screenshot link (optional):

_inherit = "account.invoice.line"
    def _get_anglo_saxon_price_unit(self):
        self.ensure_one()
        return self.product_id.standard_price
    def _get_price(self, cr, uid, inv, company_currency, i_line, price_unit):
        cur_obj = self.pool.get('res.currency')
        if inv.currency_id.id != company_currency:
            price = cur_obj.compute(cr, uid, company_currency, inv.currency_id.id, price_unit * i_line.quantity, context={'date': inv.date_invoice})
        else:
            price = price_unit * i_line.quantity
        return round(price, inv.currency_id.decimal_places)
    def get_invoice_line_account(self, type, product, fpos, company):
        if company.anglo_saxon_accounting and type in ('in_invoice', 'in_refund') and product and product.type in ('consu', 'product'):
            accounts = product.product_tmpl_id.get_product_accounts(fiscal_pos=fpos)
            if type == 'in_invoice':
                return accounts['stock_input']
            return accounts['stock_output']
        return super(account_invoice_line, self).get_invoice_line_account(type, product, fpos, company)
class account_invoice(osv.osv):