diff --git a/modules/account_invoice/invoice_ict.fodt b/modules/account_invoice/invoice_ict.fodt
index 96c8262..136a646 100644
--- a/modules/account_invoice/invoice_ict.fodt
+++ b/modules/account_invoice/invoice_ict.fodt
@@ -3930,7 +3930,7 @@
Goods description
- QUANTITY: <format_number(invoice.report_lbs, invoice.party.lang) if invoice.report_lbs != '' else ''>LBS (<format_number(invoice.report_net, invoice.party.lang) if invoice.report_net != '' else ''> <invoice.report_weight_unit_upper>)
+ QUANTITY: <invoice.report_lbs_display>LBS (<invoice.report_net_display> <invoice.report_weight_unit_upper>)
<invoice.report_description_upper or invoice.report_product_description><' CROP ' + invoice.report_crop_name if invoice.report_crop_name else ''>
<invoice.report_attributes_name>
@@ -3974,10 +3974,10 @@
<invoice.report_nb_bale>
- <format_number(invoice.report_gross, invoice.party.lang) if invoice.report_gross != '' else ''>
+ <invoice.report_gross_display>
- <format_number(invoice.report_net, invoice.party.lang) if invoice.report_net != '' else ''>
+ <invoice.report_net_display>
@@ -4001,7 +4001,7 @@
Equivalent to LBS
- <format_number(invoice.report_lbs, invoice.party.lang) if invoice.report_lbs != '' else ''>
+ <invoice.report_lbs_display>
diff --git a/modules/account_invoice/invoice_ict_final.fodt b/modules/account_invoice/invoice_ict_final.fodt
index 4bcf3b3..59068cb 100644
--- a/modules/account_invoice/invoice_ict_final.fodt
+++ b/modules/account_invoice/invoice_ict_final.fodt
@@ -3916,7 +3916,7 @@
Goods description
- QUANTITY: <format_number(invoice.report_lbs, invoice.party.lang) if invoice.report_lbs != '' else ''>LBS (<format_number(invoice.report_net, invoice.party.lang) if invoice.report_net != '' else ''> <invoice.report_weight_unit_upper>)
+ QUANTITY: <invoice.report_lbs_display>LBS (<invoice.report_net_display> <invoice.report_weight_unit_upper>)
<invoice.report_description_upper or invoice.report_product_description><' CROP ' + invoice.report_crop_name if invoice.report_crop_name else ''>
<invoice.report_attributes_name>
@@ -3959,10 +3959,10 @@
<invoice.report_cndn_nb_bale>
- <format_number(invoice.report_gross, invoice.party.lang) if invoice.report_gross != '' else ''>
+ <invoice.report_gross_display>
- <format_number(invoice.report_net, invoice.party.lang) if invoice.report_net != '' else ''>
+ <invoice.report_net_display>
@@ -3986,7 +3986,7 @@
Equivalent to LBS
- <format_number(invoice.report_lbs, invoice.party.lang) if invoice.report_lbs != '' else ''>
+ <invoice.report_lbs_display>
diff --git a/modules/purchase_trade/invoice.py b/modules/purchase_trade/invoice.py
index 7e3f505..90a7f16 100644
--- a/modules/purchase_trade/invoice.py
+++ b/modules/purchase_trade/invoice.py
@@ -26,6 +26,11 @@ class Invoice(metaclass=PoolMeta):
text += '.0'
return text or '0'
+ @classmethod
+ def _format_report_quantity_display(cls, value):
+ return cls._format_report_number(
+ value, digits='0.01', strip_trailing_zeros=False)
+
def _get_report_invoice_line(self):
for line in self.lines or []:
if getattr(line, 'type', None) == 'line':
@@ -658,15 +663,14 @@ class Invoice(metaclass=PoolMeta):
quantity, _ = self._get_report_invoice_line_weights(line)
if quantity == '':
continue
- quantity_text = self._format_report_number(
- quantity, keep_trailing_decimal=True)
+ quantity_text = self._format_report_quantity_display(quantity)
unit = self._get_report_invoice_line_unit(line)
unit_name = unit.rec_name.upper() if unit and unit.rec_name else ''
lbs = self._convert_report_quantity_to_lbs(quantity, unit)
parts = [quantity_text, unit_name]
if lbs != '':
parts.append(
- f"({self._format_report_number(lbs, digits='0.01')} LBS)")
+ f"({self._format_report_quantity_display(lbs)} LBS)")
detail = ' '.join(part for part in parts if part)
if detail:
details.append(detail)
@@ -856,6 +860,27 @@ class Invoice(metaclass=PoolMeta):
return 'Unchanged'
return nb_bale
+ @property
+ def report_net_display(self):
+ net = self.report_net
+ if net == '':
+ return ''
+ return self._format_report_quantity_display(net)
+
+ @property
+ def report_gross_display(self):
+ gross = self.report_gross
+ if gross == '':
+ return ''
+ return self._format_report_quantity_display(gross)
+
+ @property
+ def report_lbs_display(self):
+ lbs = self.report_lbs
+ if lbs == '':
+ return ''
+ return self._format_report_quantity_display(lbs)
+
@property
def report_gross(self):
if self.lines:
diff --git a/modules/purchase_trade/tests/test_module.py b/modules/purchase_trade/tests/test_module.py
index c999692..5c7f2c6 100644
--- a/modules/purchase_trade/tests/test_module.py
+++ b/modules/purchase_trade/tests/test_module.py
@@ -1130,7 +1130,7 @@ class PurchaseTradeTestCase(ModuleTestCase):
self.assertEqual(invoice.report_weight_unit_upper, 'LBS')
self.assertEqual(
invoice.report_quantity_lines,
- '950.0 LBS (950.00 LBS)')
+ '950.00 LBS (950.00 LBS)')
def test_invoice_report_lbs_converts_kilogram_to_lbs(self):
'invoice lbs helper converts kilogram quantities with the proper uom ratio'
@@ -1159,7 +1159,9 @@ class PurchaseTradeTestCase(ModuleTestCase):
self.assertEqual(invoice.report_lbs, Decimal('2204608.98'))
self.assertEqual(
invoice.report_quantity_lines,
- '999995.0 KILOGRAM (2204608.98 LBS)')
+ '999995.00 KILOGRAM (2204608.98 LBS)')
+ self.assertEqual(invoice.report_net_display, '999995.00')
+ self.assertEqual(invoice.report_lbs_display, '2204608.98')
def test_invoice_report_weights_keep_line_sign_with_lot_hist_values(self):
'invoice lot hist values keep the invoice line sign for final notes'