diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py index abbc4a3..1b880ab 100755 --- a/modules/purchase_trade/purchase.py +++ b/modules/purchase_trade/purchase.py @@ -23,6 +23,7 @@ import json import jwt from collections import defaultdict from trytond.exceptions import UserWarning, UserError +from trytond.modules.purchase_trade.numbers_to_words import quantity_to_words, amount_to_currency_words, format_date_en logger = logging.getLogger(__name__) @@ -291,6 +292,78 @@ class Purchase(metaclass=PoolMeta): def get_company_info(self,name): return (self.company.party.name == 'MELYA') + @property + def report_terms(self): + if self.lines: + return self.lines[0].note + else: + return '' + + @property + def report_qt(self): + if self.lines: + return quantity_to_words(self.lines[0].quantity) + else: + return '' + + @property + def report_price(self): + if self.lines: + if self.lines[0].price_type == 'fixed': + 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() + else: + return '' + + @property + def report_delivery(self): + del_date = 'PROMPT' + if self.lc_date: + return format_date_en(self.lc_date) + if self.lines: + if self.lines[0].estimated_date: + delivery_date = [dd.estimated_date for dd in self.lines[0].estimated_date if dd.trigger=='deldate'] + if delivery_date: + del_date = delivery_date[0] + if del_date: + del_date = format_date_en(del_date) + return del_date + + @property + def report_payment_date(self): + if self.lines: + Date = Pool().get('ir.date') + payment_date = self.lines[0].sale.payment_term.lines[0].get_date(Date.today(),self.lines[0]) + if payment_date: + payment_date = format_date_en(payment_date) + return payment_date + + @property + def report_shipment(self): + if self.lines: + if len(self.lines[0].lots)>1: + shipment = self.lines[0].lots[1].lot_shipment_in + lot = self.lines[0].lots[1].lot_name + if shipment: + info = 'B/L ' + shipment.bl_number + if shipment.container and shipment.container[0].container_no: + id = 1 + for cont in shipment.container: + if id == 1: + info += ' Container(s)' + if cont.container_no: + info += ' ' + cont.container_no + else: + info += ' unnamed' + id += 1 + info += ' (LOT ' + lot + ')' + if shipment.note: + info += ' ' + shipment.note + return info + else: + return '' + @classmethod def default_viewer(cls): country_start = "Zobiland" diff --git a/modules/purchase_trade/sale.py b/modules/purchase_trade/sale.py index d2573df..3ff6da3 100755 --- a/modules/purchase_trade/sale.py +++ b/modules/purchase_trade/sale.py @@ -291,6 +291,8 @@ class Sale(metaclass=PoolMeta): @property def report_delivery(self): del_date = 'PROMPT' + if self.lc_date: + return format_date_en(self.lc_date) if self.lines: if self.lines[0].estimated_date: delivery_date = [dd.estimated_date for dd in self.lines[0].estimated_date if dd.trigger=='deldate'] diff --git a/modules/sale/sale_ict.fodt b/modules/sale/sale_ict.fodt index ed9ab3c..f17b928 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-09T15:48:56.8340000002025-12-17T14:25:00Z24PT3H45M18S + LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265Invoice nowillen2026-02-26T13:52:00Z2026-03-09T16:07:48.8700000002025-12-17T14:25:00Z25PT3H47M29S - 41065 + 39742 0 24236 11721 @@ -13,12 +13,12 @@ view2 - 7491 - 47879 + 11423 + 46249 0 - 41065 + 39742 24234 - 52784 + 51461 0 0 false @@ -91,7 +91,7 @@ false false false - 2443797 + 2494704 1846560 false false @@ -162,7 +162,7 @@ - + @@ -663,14 +663,8 @@ - - - - - - - - + + @@ -679,7 +673,7 @@ - + @@ -688,15 +682,33 @@ + - + + + + + + + + + + + + + + + + + + - + - + @@ -705,32 +717,15 @@ - - - - - - - - - - - - - - - - - - - - - + + + + @@ -794,6 +789,9 @@ + + + @@ -3845,7 +3843,7 @@ <for each="sale in records"> - + @@ -3925,7 +3923,7 @@ - <sale.lines[0].attributes_name> + <sale.lines[0].attributes_name> @@ -3960,7 +3958,7 @@ - Shipment + Shipment @@ -3981,7 +3979,7 @@ - <sale.incoterm.code if sale.incoterm else ''><sale.incoterm_location.party_name if sale.incoterm_location 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 ''> @@ -3989,8 +3987,8 @@ 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 ''> @@ -3998,40 +3996,40 @@ Arbitration & Rules - <sale.association.rule if sale.association else ''> + <sale.association.rule if sale.association else ''> - + - THE SELLERS + THE SELLERS - THE BUYERS + THE BUYERS 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 ''> - + <sale.trader.initial if sale.trader else ''>/<sale.operator.initial if sale.operator else ''> + </for>