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):

addons/stock_account/stock_account.py
_inherit = "stock.move"
    def action_done(self, cr, uid, ids, context=None):
        self.product_price_update_before_done(cr, uid, ids, context=context)
        res = super(stock_move, self).action_done(cr, uid, ids, context=context)
        self.product_price_update_after_done(cr, uid, ids, context=context)
        return res
    def _store_average_cost_price(self, cr, uid, move, context=None):
        ''' move is a browe record '''
        product_obj = self.pool.get('product.product')
        if any([q.qty <= 0 for q in move.quant_ids]) or move.product_qty == 0:
            
            return
        #Note: here we can't store a quant.cost directly as we may have moved out 2 units (1 unit to 5€ and 1 unit to 7€) and in case of a product return of 1 unit, we can't know which of the 2 costs has to be used (5€ or 7€?). So at that time, thanks to the average valuation price we are storing we will valuate it at 6€
        average_valuation_price = 0.0
        for q in move.quant_ids:
            average_valuation_price += q.qty * q.cost
        average_valuation_price = average_valuation_price / move.product_qty
        # Write th
        ctx = dict(context or {}, force_company=move.company_id.id)
        product_obj.write(cr, SUPERUSER_ID, [move.product_id.id], {'standard_price': average_valuation_price}, context=ctx)
        self.write(cr, uid, [move.id], {'price_unit': average_valuation_price}, context=context)
    def product_price_update_before_done(self, cr, uid, ids, context=None):