diff --git a/addons/purchase/models/stock.py b/addons/purchase/models/stock.py
index 6d06186b87d487b750b9b81ddd0c35fa5c7e5f7f..b038850676764aab4541f5ab33501fa7ee3fbab9 100644
--- a/addons/purchase/models/stock.py
+++ b/addons/purchase/models/stock.py
@@ -56,12 +56,11 @@ class StockMove(models.Model):
         self.ensure_one()
 
         rslt = super(StockMove, self)._generate_valuation_lines_data(partner_id, qty, debit_value, credit_value, debit_account_id, credit_account_id)
-
         if self.purchase_line_id:
             purchase_currency = self.purchase_line_id.currency_id
             if purchase_currency != self.company_id.currency_id:
                 purchase_price_unit = self.purchase_line_id.price_unit
-                currency_move_valuation = purchase_currency.round(purchase_price_unit * qty)
+                currency_move_valuation = purchase_currency.round(purchase_price_unit * abs(qty))
                 rslt['credit_line_vals']['amount_currency'] = rslt['credit_line_vals']['credit'] and -currency_move_valuation or currency_move_valuation
                 rslt['credit_line_vals']['currency_id'] = purchase_currency.id
                 rslt['debit_line_vals']['amount_currency'] = rslt['debit_line_vals']['credit'] and -currency_move_valuation or currency_move_valuation