changeset 20bdecddb038 in modules/carrier_percentage:6.2
details: 
https://hg.tryton.org/modules/carrier_percentage?cmd=changeset&node=20bdecddb038
description:
        Do not compute price if no currency is set

        issue11684
        review435831003
        (grafted from 04a83e8ba9b4b224ab362a589f23dd7526e323dd)
diffstat:

 carrier.py |  8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

diffs (30 lines):

diff -r 6a8837bb9d39 -r 20bdecddb038 carrier.py
--- a/carrier.py        Mon Nov 01 17:36:03 2021 +0100
+++ b/carrier.py        Sun Sep 25 20:21:45 2022 +0200
@@ -28,8 +28,6 @@
         Currency = Pool().get('currency.currency')
 
         price = amount * self.percentage / Decimal(100)
-        if not currency_id:
-            return price, currency_id
         currency = Currency(currency_id)
         return currency.round(price), currency_id
 
@@ -38,7 +36,8 @@
         if self.carrier_cost_method == 'percentage':
             amount = Transaction().context.get('amount', Decimal(0))
             currency_id = Transaction().context.get('currency', currency_id)
-            return self.compute_percentage(amount, currency_id)
+            if currency_id is not None:
+                return self.compute_percentage(amount, currency_id)
         return price, currency_id
 
     def get_purchase_price(self):
@@ -46,5 +45,6 @@
         if self.carrier_cost_method == 'percentage':
             amount = Transaction().context.get('amount', Decimal(0))
             currency_id = Transaction().context.get('currency', currency_id)
-            return self.compute_percentage(amount, currency_id)
+            if currency_id is not None:
+                return self.compute_percentage(amount, currency_id)
         return price, currency_id

Reply via email to