From 1dc69008d86f6a3cdfa99c983e23c720dfc71691 Mon Sep 17 00:00:00 2001 From: laurentbarontini Date: Mon, 9 Mar 2026 17:50:26 +0100 Subject: [PATCH] 09.03.26 --- modules/purchase_trade/purchase.py | 2 +- modules/purchase_trade/sale.py | 26 +- .../purchase_trade/view/sale_line_form.xml | 4 + modules/sale/sale_ict.fodt | 314 ++++++++++-------- 4 files changed, 203 insertions(+), 143 deletions(-) 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