From 412a750dccf9daac18f07c43fbd4bf4953ca38fb Mon Sep 17 00:00:00 2001
From: inso <insomniak.fr@gmaiL.com>
Date: Sat, 11 Feb 2017 10:53:20 +0100
Subject: [PATCH] Fix display issue with base one in transfer dialog

---
 src/sakia/gui/dialogs/transfer/controller.py |  5 ++++-
 src/sakia/gui/dialogs/transfer/model.py      | 10 ++++++++--
 2 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/src/sakia/gui/dialogs/transfer/controller.py b/src/sakia/gui/dialogs/transfer/controller.py
index 18b6f17b..0b9000bb 100644
--- a/src/sakia/gui/dialogs/transfer/controller.py
+++ b/src/sakia/gui/dialogs/transfer/controller.py
@@ -94,7 +94,10 @@ class TransferController(QObject):
         dialog.refresh()
 
         current_base = dialog.model.current_base()
-        current_base_amount = resent_transfer.amount / pow(10, resent_transfer.amount_base - current_base)
+        if current_base > 1:
+            current_base_amount = resent_transfer.amount / pow(10, resent_transfer.amount_base - current_base)
+        else:
+            current_base_amount = resent_transfer.amount
 
         relative = dialog.model.quant_to_rel(current_base_amount / 100)
         dialog.view.set_spinboxes_parameters(current_base_amount / 100, relative)
diff --git a/src/sakia/gui/dialogs/transfer/model.py b/src/sakia/gui/dialogs/transfer/model.py
index 90e01526..c9856536 100644
--- a/src/sakia/gui/dialogs/transfer/model.py
+++ b/src/sakia/gui/dialogs/transfer/model.py
@@ -33,7 +33,10 @@ class TransferModel(QObject):
         :rtype: int
         """
         dividend, base = self._blockchain_processor.last_ud(self.connection.currency)
-        amount = rel_value * dividend
+        if base > 1:
+            amount = rel_value * dividend
+        else:
+            amount = rel_value * dividend * 10**base
         # amount is rounded to the nearest power of 10 depending of last ud base
         # rounded = int(pow(10, base) * round(float(amount) / pow(10, base)))
         return int(amount) / 100
@@ -45,7 +48,10 @@ class TransferModel(QObject):
         :rtype: float
         """
         dividend, base = self._blockchain_processor.last_ud(self.connection.currency)
-        relative = amount * 100 / dividend
+        if base > 1:
+            relative = amount * 100 / dividend
+        else:
+            relative = amount * 100 / (dividend * 10**base)
         return relative
 
     def wallet_value(self):
-- 
GitLab