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

"""
        Accounting Valuation Entries
        quants: browse record list of Quants to create accounting valuation entries for. Unempty and all quants are supposed to have the same location id (thay already moved in)
        move: Move to use. browse record
        """
        if context is None:
            context = {}
        location_obj = self.pool.get('stock.location')
        location_from = move.location_id
        location_to = quants[0].location_id
        company_from = location_obj._location_owner(cr, uid, location_from, context=context)
        company_to = location_obj._location_owner(cr, uid, location_to, context=context)
        if move.product_id.valuation != 'real_time':
            return False
        for q in quants: