diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index 14e670c..f17ec74 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -312,7 +312,7 @@ class Purchase(metaclass=PoolMeta):
if self.lines[0].price_type == 'priced':
return amount_to_currency_words(self.lines[0].unit_price)
elif self.lines[0].price_type == 'basis':
- return amount_to_currency_words(self.lines[0].unit_price) + ' ' + self.lines[0].get_pricing_text()
+ return amount_to_currency_words(self.lines[0].unit_price)
else:
return ''
diff --git a/modules/purchase_trade/sale.py b/modules/purchase_trade/sale.py
index b18ca45..e9327bf 100755
--- a/modules/purchase_trade/sale.py
+++ b/modules/purchase_trade/sale.py
@@ -278,6 +278,22 @@ class Sale(metaclass=PoolMeta):
else:
return ''
+ @property
+ def get_pricing_text(self):
+ pricing_text = ''
+ if self.price_components:
+ for pc in self.price_components:
+ if pc.price_index:
+ pricing_text += ' ' + pc.price_index.description
+ return pricing_text
+
+ @property
+ def report_fixing_rule(self):
+ pricing_rule = ''
+ if self.lines:
+ pricing_rule = self.lines[0].pricing_rule
+ return pricing_rule
+
@property
def report_price(self):
if self.lines:
@@ -539,6 +555,8 @@ class SaleLine(metaclass=PoolMeta):
fields.Char("Attributes Name"),
'on_change_with_attributes_name'
)
+
+ pricing_rule = fields.Text("Pricing description")
@fields.depends('product')
def on_change_with_attribute_set(self, name=None):
@@ -585,14 +603,6 @@ class SaleLine(metaclass=PoolMeta):
LotQt = Pool().get('lot.qt')
return LotQt.search([('lot_s','=',self.lots[0].id),('lot_p','>',0)])
- def get_pricing_text(self):
- pricing_text = ''
- if self.price_components:
- for pc in self.price_components:
- if pc.price_index:
- pricing_text += ' ' + pc.price_index.description
- return pricing_text
-
def get_date(self,trigger_event):
trigger_date = None
if self.estimated_date:
diff --git a/modules/purchase_trade/view/sale_line_form.xml b/modules/purchase_trade/view/sale_line_form.xml
index 922dc9a..4f02e6d 100755
--- a/modules/purchase_trade/view/sale_line_form.xml
+++ b/modules/purchase_trade/view/sale_line_form.xml
@@ -76,6 +76,10 @@ this repository contains the full copyright notices and license terms. -->
+
+
+
+
diff --git a/modules/sale/sale_ict.fodt b/modules/sale/sale_ict.fodt
index 7194a9a..93d210f 100644
--- a/modules/sale/sale_ict.fodt
+++ b/modules/sale/sale_ict.fodt
@@ -1,10 +1,10 @@
- LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265Invoice nowillen2026-02-26T13:52:00Z2026-03-09T16:51:17.3460000002025-12-17T14:25:00Z27PT4H22M40S
+ LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265Invoice nowillen2026-02-26T13:52:00Z2026-03-09T17:49:58.1650000002025-12-17T14:25:00Z31PT4H41M1S
- 42088
+ 42430
0
24236
11721
@@ -13,12 +13,12 @@
view2
- 7491
- 49431
+ 10089
+ 44309
0
- 42088
+ 42430
24234
- 53807
+ 54150
0
0
false
@@ -91,7 +91,7 @@
false
false
false
- 2574500
+ 2733061
1846560
false
false
@@ -506,15 +506,18 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
@@ -523,11 +526,11 @@
-
+
-
+
@@ -536,10 +539,10 @@
-
+
-
+
@@ -555,11 +558,11 @@
-
+
-
+
@@ -567,7 +570,7 @@
-
+
@@ -579,20 +582,11 @@
-
-
-
-
-
-
-
-
-
-
+
@@ -604,7 +598,7 @@
-
+
@@ -613,7 +607,7 @@
-
+
@@ -622,12 +616,21 @@
-
+
-
+
+
+
+
+
+
+
+
+
+
@@ -636,13 +639,13 @@
-
+
-
+
-
+
@@ -651,10 +654,10 @@
-
+
-
+
@@ -663,21 +666,12 @@
-
+
-
+
-
-
-
-
-
-
-
-
-
@@ -685,7 +679,7 @@
-
+
@@ -694,6 +688,7 @@
+
@@ -702,16 +697,24 @@
+
+
+
+
+
+
+
+
-
+
-
+
-
+
@@ -720,14 +723,32 @@
-
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -766,39 +787,42 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
+
+
+
@@ -3851,8 +3875,8 @@
- <for each="sale in records">
-
+ <for each="sale in records">
+
@@ -3864,7 +3888,7 @@
-
+
@@ -3874,34 +3898,34 @@
-
+
- Buyers
+ Buyers
<sale.party.rec_name>
ADDRESS:<sale.report_address>
-
+
- Sellers
+ Sellers
- ICT TRADING S.A.
- VIA MAGAZZINI GENERALI, 3
+ ICT TRADING S.A.
+ VIA MAGAZZINI GENERALI, 3
6828 BALERNA, SWITZERLAND
- Agents
+ Agents
<for each="line in sale.report_agent.splitlines()">
@@ -3910,140 +3934,162 @@
-
-
+
+
-
- Growth
-
+
+ Growth
+
-
- <sale.lines[0].product.description if sale.lines and sale.lines[0].product else ''>CROP <sale.crop.name>
+
+ <sale.lines[0].product.description if sale.lines and sale.lines[0].product else ''>CROP <sale.crop.name>
- Quality
-
+ Quality
+
- <sale.lines[0].attributes_name>
+ <sale.lines[0].attributes_name>
- Quantity
-
+ Quantity
+
- ABOUT <sum(line.quantity for line in sale.lines)><sale.lines[0].unit.rec_name.upper() if sale.lines and sale.lines[0].unit else ''>(<sale.report_qt>)
+ ABOUT <sum(line.quantity for line in sale.lines)><sale.lines[0].unit.rec_name.upper() if sale.lines and sale.lines[0].unit else ''>(<sale.report_qt>)
-
+
- Price
+ Price
- <format_currency(sale.lines[0].unit_price, sale.party.lang, sale.currency) if sale.lines else ''>(<sale.report_price>)
+ <format_currency(sale.lines[0].unit_price, sale.party.lang, sale.currency) if sale.lines else ''>(<sale.report_price>) <sale.lines[0].get_pricing_text>
-
-
+
+
-
- Shipment
+ <if test="sale.lines[0].report_fixing_rule">
-
- <sale.lines[0].del_period.description if sale.lines[0].del_period else ''>
+
+
+
+
+
+ Fixation
+
+
+ <sale.lines[0].report_fixing_rule>
+
+
+
+
+ </if>
+
+
+
+
+
+
+
+ Shipment
+
+
+ <sale.lines[0].del_period.description if sale.lines[0].del_period else ''>
-
-
-
+
+
+
-
- Terms
+
+ Terms
-
- <sale.incoterm.code if sale.incoterm else ''><sale.incoterm_location.party_name if sale.incoterm_location else ''><sale.wb.description if sale.wb else ''>
+
+ <sale.incoterm.code if sale.incoterm else ''><sale.incoterm_location.party_name if sale.incoterm_location else ''>, <sale.wb.description if sale.wb else ''>
- Payment
+ Payment
- <sale.payment_term.rec_name if sale.payment_term else '100% CASH AGAINST DOCUMENTS'>
- BEFORE <sale.report_payment_date><sale.payment_term.description if sale.payment_term else ''>
+ <sale.payment_term.rec_name if sale.payment_term else '100% CASH AGAINST DOCUMENTS'>
+ BEFORE <sale.report_payment_date><sale.payment_term.description if sale.payment_term else ''>
- Arbitration & Rules
+ Arbitration & Rules
- <if test="sale.association">
- <for each="line in sale.association.rule.splitlines()">
- <line>
- </for>
- </if>
+ <if test="sale.association">
+ <for each="line in sale.association.rule.splitlines()">
+ <line>
+ </for>
+ </if>
-
+
-
- THE SELLERS
+
+ THE SELLERS
-
- THE BUYERS
+
+ THE BUYERS
- ICT TRADING SA
-
-
-
-
-
+ ICT TRADING SA
+
+
+
+
+
- <sale.party.rec_name>
+ <sale.party.rec_name>
- <sale.trader.initial if sale.trader else ''>/<sale.operator.initial if sale.operator else ''>
-
- </for>
+ <sale.trader.initial if sale.trader else ''>/<sale.operator.initial if sale.operator else ''>
+
+ </for>
\ No newline at end of file