diff --git a/modules/account_invoice/invoice_ict.fodt b/modules/account_invoice/invoice_ict.fodt index 96a70e7..00ad8e9 100644 --- a/modules/account_invoice/invoice_ict.fodt +++ b/modules/account_invoice/invoice_ict.fodt @@ -1,762 +1,773 @@ - - + - Invoice nowillen2018-12-09T16:20:002026-03-23T20:46:35.3000000002007-08-28T18:19:00LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265PT22M49S1 - - - 9172 - 0 - 43623 - 21098 - true - false - - - view2 - 19516 - 16919 - 0 - 9172 - 43621 - 30268 - 0 - 0 - false - 100 - false - false - true - true - false - false - - - - - true - - true - false - false - false - true - 1 - true - false - false - true - - false - - false - false - false - - 0 - false - true - true - false - false - false - - 0 - - true - high-resolution - false - false - true - false - true - false - false - true - true - false - true - false - false - true - false - true - false - false - false - false - false - false - false - true - false - false - false - 84841 - 84510 - false - false - false - true - true - false - true - true - false - true - true - false - false - false - false - false - false - true - false - false - false - false - false - false - false - 0 - false - true - false - false - 0 - true - false - true - true - true - true - false - false - false - false - false - true - - false - true - false - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - iVBORw0KGgoAAAANSUhEUgAABZ4AAAC9CAIAAAC8iP/2AAAAAXNSR0IArs4c6QAAAAlwSFlz + + Invoice no + willen + 2018-12-09T16:20:00 + 2026-03-23T20:46:35.300000000 + 2007-08-28T18:19:00 + LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 + PT22M49S + 1 + + + + + 9172 + 0 + 43623 + 21098 + true + false + + + view2 + 19516 + 16919 + 0 + 9172 + 43621 + 30268 + 0 + 0 + false + 100 + false + false + true + true + false + false + + + + + true + + true + false + false + false + true + 1 + true + false + false + true + + false + + false + false + false + + 0 + false + true + true + false + false + false + + 0 + + true + high-resolution + false + false + true + false + true + false + false + true + true + false + true + false + false + true + false + true + false + false + false + false + false + false + false + true + false + false + false + 84841 + 84510 + false + false + false + true + true + false + true + true + false + true + true + false + false + false + false + false + false + true + false + false + false + false + false + false + false + 0 + false + true + false + false + 0 + true + false + true + true + true + true + false + false + false + false + false + true + + false + true + false + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + iVBORw0KGgoAAAANSUhEUgAABZ4AAAC9CAIAAAC8iP/2AAAAAXNSR0IArs4c6QAAAAlwSFlz AAAOxAAADsMB2mqY3AAA/7VJREFUeF7svQeAHMd1Jlyduydu3kUmQRLMIimJVBaVbStYWc6y JdvncLZOtuxzOMmSreAsZ9/9tmVZsiVZWbKtnLMVSDGDAAkSGZsndw7/96p6ZmcXu8AsuAAW ZDWbg5nZnu6qr6q663313veULMtY/yY+9b5T0qU/9r9f9ht12adTf8hwwqWz82Pxc5Up+be9 @@ -3137,16 +3148,19 @@ R57yT152pXiKBRQLKBZQLKBYQLGAYgHFAooFFAsoFlAsoFhAscB/vQX+D/7u9z9ziytTAAAA AElFTkSuQmCC - - - - - - - - - - iVBORw0KGgoAAAANSUhEUgAAAqoAAAAnCAIAAABIVv0SAAAAAXNSR0IArs4c6QAAAAlwSFlz + + + + + + + + + + + + + iVBORw0KGgoAAAANSUhEUgAAAqoAAAAnCAIAAABIVv0SAAAAAXNSR0IArs4c6QAAAAlwSFlz AAAOwwAADsMBx2+oZAAAge9JREFUeF7tvQeYHNW1LXwqdHXO05NHM8oSkkgOGDDGGGxMMjnn nCyCAZFBRuScETlnEMlgMjbYmCwQymly7Byrq7q66l/7VM9o4OL3vff+j3e5WO320Jqprjpx h7XX3kewLIv94F9oojmukeLoZ8H+MNaDsQ8Cqwr0a/sCadx37VuN/azyz7jA8c3L/puHBG2y @@ -3765,288 +3779,355 @@ bhQRP/q1tVH9/1immJB/G+gbLak7vmf/xQLYuLd/LBO/sR//0SPw3Wb9f1Xz9oYf//uxb45a EGPhwg2Iwn/00P74O///ATDZnzJDhxbZAAAAAElFTkSuQmCC - - - - - - - - - - - - - - - - - - <replace text:p=\'set_lang(invoice.party.lang)\'> - <replace text:p=\'invoice.set_lang(invoice.party.lang)\'> - - - - - <for each='line in invoice.invoice_address.full_address.split('\n')"> - <line> - </for> - - - - - - - - - - <format_date(invoice.invoice_date or today, invoice.party.lang)> - - - - - - - - - - Invoice N° - - - - <invoice.number> - - - - - Contract N° - - - <invoice.origins or ''> - - - - - - - - - - Name of the vessel - - - <invoice.description or ''> - - - - - N° of Bill of Lading - - - <invoice.reference or ''> - - - - - Shipped on board date - Port of loading - - - 14.06.2025 - SANTOS, BRAZIL - - - - - Port of discharge - - - PORT QASIM, PAKISTAN - - - - - - - - - - Goods description - - - QUANTITY: 2,253,035 LBS (1,021.970 MTS) - OF BRAZILIAN GINNED COTTON BCI CROP 2024 - AT THE RATE OF USC 74.15 PER LB - H.S CODE 5201.0090 - CFR PORT QASIM, PAKISTAN - ALL DETAILS AND SPECIFICATIONS AS PER BENEFICIARY’S - PROFORMA INVOICE NO. 1411-1 DATED 20-05-2025. - - - - - - - - - - - - - - - - BALES - - - Gross KGS - - - NET KGS - - - - - - - - - - - <format_number(invoice.lines[0].quantity, invoice.party.lang) if invoice.lines else ''> - - - <invoice.lines[0].gross_weight if (invoice.lines and hasattr(invoice.lines[0], \'gross_weight\')) else ''> - - - <format_number_symbol(invoice.lines[0].quantity, invoice.party.lang, invoice.lines[0].unit) if (invoice.lines and invoice.lines[0].unit) else (format_number(invoice.lines[0].quantity, invoice.party.lang) if invoice.lines else '')> - - - - - - - - - - - - - - - - - - - - - Equivalent to LBS - - - <format_number(invoice.lines[0].quantity * 2.20462, invoice.party.lang) if invoice.lines else ''> - - - - - - - - - - - - - At <format_currency(invoice.lines[0].unit_price, invoice.party.lang, invoice.currency, digits=invoice.lines[0].__class__.unit_price.digits[1]) if invoice.lines else \'\'>PER LB - - FREIGHT VALUE: <invoice.currency.symbol if invoice.currency else 'USD'><format_number(invoice.freight_amount, invoice.party.lang) if hasattr(invoice, \'freight_amount\') else \'\'> - - WE CERTIFY THAT THE MERCHANDISE IS OF BRAZIL ORIGIN - L/C NUMBER <invoice.reference or ''> - IMPORTER H.S. CODE NOS. <invoice.party_tax_identifier.type_string if invoice.party_tax_identifier else \'5201.0090\'> - IMPORTER’S NTN <invoice.party_tax_identifier.code if invoice.party_tax_identifier else \'\'> - - - - <invoice.currency.symbol if invoice.currency else 'USD'><format_currency(invoice.total_amount, invoice.party.lang, invoice.currency)> - - - - - - - - - - - NET LANDED WEIGHTS, ACTUAL TARE, NO FRANCHISE - - - - - - <for each='tax in invoice.taxes'> - V.A.T. <tax.description or \'\'>RATE - </for> - - - - - - - - - - S/I - - Controller Name - - - S/BR/55 - - INTERTEK - - - - - - - - - - - - - Payment - - - <if test=\'invoice.payment_term and invoice.payment_term.description\'> - <for each=\'description in (invoice.payment_term.description or \'\').split(chr(10))\'> - <description> - </for> - </if> - - - ICT TRADING S.A. - - - - - SB/DR - - - - - - - - - - - - - - - - - - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + <replace text:p=\'set_lang(invoice.party.lang)\'> + + + <replace text:p=\'invoice.set_lang(invoice.party.lang)\'> + + + + + + + <for each="line in invoice.report_address.splitlines()"> + + + <line> + + + </for> + + + + + + + + + + + + + + <format_date(invoice.invoice_date or today, invoice.party.lang)> + + + + + + + + + + + Invoice N° + + + + + <invoice.number> + + + + + + Contract N° + + + + <invoice.report_contract_number> + + + + + + + + + + + Name of the vessel + + + + <invoice.report_shipment or ''> + + + + + + N° of Bill of Lading + + + + <invoice.reference or ''> + + + + + + Shipped on board date + Port of loading + + + 14.06.2025 + SANTOS, BRAZIL + + + + + Port of discharge + + + PORT QASIM, PAKISTAN + + + + + + + + + + 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 ''> MTS) + <invoice.report_product_description> CROP <invoice.report_crop_name> + <invoice.report_attributes_name> + H.S CODE 5201.0090 + CFR PORT QASIM, PAKISTAN + + ALL DETAILS AND SPECIFICATIONS AS PER + BENEFICIARY’S + + PROFORMA INVOICE NO. 1411-1 DATED 20-05-2025. + + + + + + + + + + + + + + + + + BALES + + + + Gross KGS + + + + NET KGS + + + + + + + + + + + + + + <invoice.report_nb_bale> + + + + + <format_number(invoice.report_gross, invoice.party.lang) if invoice.report_gross != '' else ''> + + + + + <format_number(invoice.report_net, invoice.party.lang) if invoice.report_net != '' else ''> + + + + + + + + + + + + + + + + + + + + + + Equivalent to LBS + + + + <format_number(invoice.report_lbs, invoice.party.lang) if invoice.report_lbs != '' else ''> + + + + + + + + + + + + + + At <format_currency(invoice.lines[0].unit_price, invoice.party.lang, invoice.currency, digits=invoice.lines[0].__class__.unit_price.digits[1]) if invoice.lines else \'\'>PER LB + + FREIGHT VALUE: <invoice.currency.symbol if invoice.currency else 'USD'><format_number(invoice.freight_amount, invoice.party.lang) if hasattr(invoice, \'freight_amount\') else \'\'> + + + WE CERTIFY THAT THE MERCHANDISE IS OF BRAZIL ORIGIN + L/C NUMBER <invoice.reference or ''> + IMPORTER H.S. CODE NOS. <invoice.party_tax_identifier.type_string if invoice.party_tax_identifier else \'5201.0090\'> + IMPORTER’S NTN <invoice.party_tax_identifier.code if invoice.party_tax_identifier else \'\'> + + + + + <invoice.currency.symbol if invoice.currency else 'USD'> + + <format_currency(invoice.total_amount, invoice.party.lang, invoice.currency)> + + + + + + + + + + + + NET LANDED WEIGHTS, ACTUAL TARE, NO FRANCHISE + + + + + + + <for each="tax in invoice.taxes"> + + V.A.T. <tax.description or \'\'>RATE + + </for> + + + + + + + + + + + S/I + + Controller Name + + + S/BR/55 + + INTERTEK + + + + + + + + + + + + + Payment + + + + <if test="invoice.report_payment_description"> + + + <for each="description in invoice.report_payment_description.splitlines()"> + + + <description> + + + </for> + + + </if> + + + + + + + + + + + + + ICT TRADING S.A. + + + + + SB/DR + + + + + + + + + + + + + + + + + + diff --git a/modules/purchase_trade/__init__.py b/modules/purchase_trade/__init__.py index 20ad0af..b3f3591 100755 --- a/modules/purchase_trade/__init__.py +++ b/modules/purchase_trade/__init__.py @@ -30,9 +30,10 @@ from . import ( valuation, dimension, weight_report, - backtoback, - service, -) + backtoback, + service, + invoice, +) def register(): Pool.register( @@ -74,8 +75,8 @@ def register(): dashboard.Incoming, dashboard.BotAction, dashboard.News, - dashboard.Demos, - party.Party, + dashboard.Demos, + party.Party, party.PartyExecution, party.PartyExecutionSla, party.PartyExecutionPlace, @@ -177,12 +178,15 @@ def register(): purchase.PenaltyRule, purchase.PenaltyRuleTier, purchase.ConcentrateTerm, - backtoback.Backtoback, - dimension.AnalyticDimension, - dimension.AnalyticDimensionValue, - dimension.AnalyticDimensionAssignment, - weight_report.WeightReport, - module='purchase', type_='model') + backtoback.Backtoback, + dimension.AnalyticDimension, + dimension.AnalyticDimensionValue, + dimension.AnalyticDimensionAssignment, + weight_report.WeightReport, + module='purchase', type_='model') + Pool.register( + invoice.Invoice, + module='account_invoice', type_='model') Pool.register( forex.Forex, forex.ForexCoverFees, diff --git a/modules/purchase_trade/invoice.py b/modules/purchase_trade/invoice.py new file mode 100644 index 0000000..bf4b5ff --- /dev/null +++ b/modules/purchase_trade/invoice.py @@ -0,0 +1,113 @@ +from decimal import Decimal + +from trytond.pool import PoolMeta + + +class Invoice(metaclass=PoolMeta): + __name__ = 'account.invoice' + + def _get_report_sale(self): + sales = list(self.sales or []) + return sales[0] if sales else None + + def _get_report_sale_line(self): + sale = self._get_report_sale() + if sale and sale.lines: + return sale.lines[0] + + @property + def report_address(self): + sale = self._get_report_sale() + if sale and sale.report_address: + return sale.report_address + if self.invoice_address and self.invoice_address.full_address: + return self.invoice_address.full_address + return '' + + @property + def report_contract_number(self): + sale = self._get_report_sale() + if sale and sale.full_number: + return sale.full_number + return self.origins or '' + + @property + def report_shipment(self): + sale = self._get_report_sale() + if sale and sale.report_shipment: + return sale.report_shipment + return self.description or '' + + @property + def report_product_description(self): + line = self._get_report_sale_line() + if line and line.product: + return line.product.description or '' + return '' + + @property + def report_crop_name(self): + sale = self._get_report_sale() + if sale and sale.crop: + return sale.crop.name or '' + return '' + + @property + def report_attributes_name(self): + line = self._get_report_sale_line() + if line: + return line.attributes_name or '' + return '' + + @property + def report_price(self): + sale = self._get_report_sale() + if sale and sale.report_price: + return sale.report_price + return '' + + @property + def report_payment_date(self): + sale = self._get_report_sale() + if sale and sale.report_payment_date: + return sale.report_payment_date + return '' + + @property + def report_payment_description(self): + sale = self._get_report_sale() + if sale and sale.payment_term: + return sale.payment_term.description or '' + if self.payment_term: + return self.payment_term.description or '' + return '' + + @property + def report_nb_bale(self): + sale = self._get_report_sale() + if sale and sale.report_nb_bale: + return sale.report_nb_bale + return '' + + @property + def report_gross(self): + sale = self._get_report_sale() + if sale and sale.report_gross != '': + return sale.report_gross + return '' + + @property + def report_net(self): + sale = self._get_report_sale() + if sale and sale.report_net != '': + return sale.report_net + if self.lines: + return self.lines[0].quantity + return '' + + @property + def report_lbs(self): + net = self.report_net + if net == '': + return '' + return Decimal(net) * Decimal('2.20462') diff --git a/modules/purchase_trade/tryton.cfg b/modules/purchase_trade/tryton.cfg index 6a141bf..8a488e2 100755 --- a/modules/purchase_trade/tryton.cfg +++ b/modules/purchase_trade/tryton.cfg @@ -1,11 +1,12 @@ [tryton] version=7.2.7 -depends: - ir - purchase - sale - stock - res +depends: + ir + purchase + sale + account_invoice + stock + res lot document_incoming incoterm @@ -32,4 +33,4 @@ xml: valuation.xml weight_report.xml dimension.xml - backtoback.xml \ No newline at end of file + backtoback.xml diff --git a/modules/sale/sale_ict.fodt b/modules/sale/sale_ict.fodt index 01bd958..d944063 100644 --- a/modules/sale/sale_ict.fodt +++ b/modules/sale/sale_ict.fodt @@ -1,912 +1,928 @@ - - + - LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265Invoice nowillen2026-02-26T13:52:00Z2026-03-09T20:26:38.5930000002025-12-17T14:25:00Z39PT5H4M10S - - - 36941 - 0 - 24236 - 11721 - true - false - - - view2 - 14600 - 46249 - 0 - 36941 - 24234 - 48660 - 0 - 0 - false - 180 - false - false - false - false - false - false - - - - - true - - true - false - false - false - true - 1 - true - false - false - true - - false - - false - false - false - - 0 - false - true - true - false - false - false - - 0 - - true - high-resolution - false - false - false - false - true - false - false - true - false - false - true - true - false - true - false - false - true - true - false - false - false - false - false - false - false - false - false - 3002665 - 1846560 - false - false - false - false - false - false - true - true - false - true - true - false - false - false - false - false - true - false - true - false - false - false - false - false - false - 0 - true - false - false - true - 0 - true - false - true - true - true - true - false - false - false - false - false - true - - false - true - false - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - iVBORw0KGgoAAAANSUhEUgAABZ4AAAC9CAIAAAC8iP/2AAAAAXNSR0IArs4c6QAAAAlwSFlz + + LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 + Invoice no + + + willen + 2026-02-26T13:52:00Z + 2026-03-09T20:26:38.593000000 + 2025-12-17T14:25:00Z + 39 + PT5H4M10S + + + + + + 36941 + 0 + 24236 + 11721 + true + false + + + view2 + 14600 + 46249 + 0 + 36941 + 24234 + 48660 + 0 + 0 + false + 180 + false + false + false + false + false + false + + + + + true + + true + false + false + false + true + 1 + true + false + false + true + + false + + false + false + false + + 0 + false + true + true + false + false + false + + 0 + + true + high-resolution + false + false + false + false + true + false + false + true + false + false + true + true + false + true + false + false + true + true + false + false + false + false + false + false + false + false + false + 3002665 + 1846560 + false + false + false + false + false + false + true + true + false + true + true + false + false + false + false + false + true + false + true + false + false + false + false + false + false + 0 + true + false + false + true + 0 + true + false + true + true + true + true + false + false + false + false + false + true + + false + true + false + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + iVBORw0KGgoAAAANSUhEUgAABZ4AAAC9CAIAAAC8iP/2AAAAAXNSR0IArs4c6QAAAAlwSFlz AAAOxAAADsMB2mqY3AAA/7VJREFUeF7svQeAHMd1Jlyduydu3kUmQRLMIimJVBaVbStYWc6y JdvncLZOtuxzOMmSreAsZ9/9tmVZsiVZWbKtnLMVSDGDAAkSGZsndw7/96p6ZmcXu8AsuAAW ZDWbg5nZnu6qr6q663313veULMtY/yY+9b5T0qU/9r9f9ht12adTf8hwwqWz82Pxc5Up+be9 @@ -3287,13 +3303,20 @@ R57yT152pXiKBRQLKBZQLKBYQLGAYgHFAooFFAsoFlAsoFhAscB/vQX+D/7u9z9ziytTAAAA AElFTkSuQmCC - - - - - - - iVBORw0KGgoAAAANSUhEUgAAAqoAAAAnCAIAAABIVv0SAAAAAXNSR0IArs4c6QAAAAlwSFlz + + + + + + + + + + + + + + iVBORw0KGgoAAAANSUhEUgAAAqoAAAAnCAIAAABIVv0SAAAAAXNSR0IArs4c6QAAAAlwSFlz AAAOwwAADsMBx2+oZAAAge9JREFUeF7tvQeYHNW1LXwqdHXO05NHM8oSkkgOGDDGGGxMMjnn nCyCAZFBRuScETlnEMlgMjbYmCwQymly7Byrq7q66l/7VM9o4OL3vff+j3e5WO320Jqprjpx h7XX3kewLIv94F9oojmukeLoZ8H+MNaDsQ8Cqwr0a/sCadx37VuN/azyz7jA8c3L/puHBG2y @@ -3912,242 +3935,458 @@ bhQRP/q1tVH9/1immJB/G+gbLak7vmf/xQLYuLd/LBO/sR//0SPw3Wb9f1Xz9oYf//uxb45a EGPhwg2Iwn/00P74O///ATDZnzJDhxbZAAAAAElFTkSuQmCC - - - - - - - - - - - - - - - <for each="sale in records"> - - - - - - <for each="line in sale.report_address.splitlines()"> - <line> - </for> - - - - - - - - - - Sale Contract : <sale.full_number>DATE: <format_date(sale.sale_date, sale.party.lang)> - - - - - - - - - - - Buyers - - - <sale.party.rec_name> - ADDRESS:<sale.report_address> - - - - - - Sellers - - - ICT TRADING S.A. - VIA MAGAZZINI GENERALI, 3 - 6828 BALERNA, SWITZERLAND - - - - - - Agents - - - <for each="line in sale.report_agent.splitlines()"> - <line> - </for> - - - - - - - - - - - - - Growth - - - - - <sale.lines[0].product.description if sale.lines and sale.lines[0].product else ''>CROP <sale.crop.name> - - - - - Quality - - - - <sale.lines[0].attributes_name> - - - - - 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>) - <sale.report_nb_bale> - - - - - - - - - - - - Price - - - <sale.lines[0].linked_currency.rec_name.upper() if sale.lines[0].linked_currency else sale.currency.rec_name.upper()><sale.lines[0].linked_price if sale.lines[0].linked_price else sale.lines[0].unit_price>PER <sale.lines[0].linked_unit.rec_name.upper() if sale.lines[0].linked_unit else sale.lines[0].unit.rec_name.upper()>(<sale.report_price>) <sale.lines[0].get_pricing_text> - - - - - - - - - - - - <if test="sale.lines[0].pricing_rule"> - - - - - - - - Fixation - - - <for each="line in sale.lines[0].pricing_rule.splitlines()"> - <line> - </for> - - - - - - </if> - - - - - - - - Shipment - - - <sale.lines[0].del_period.description if sale.lines[0].del_period else ''> - - - - - - - - - - - - - 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 ''> - - - - - 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 ''> - - - - - Arbitration & Rules - - - <if test="sale.association"> - <for each="line in sale.association.rule.splitlines()"> - <line> - </for> - </if> - - - - - - - - - - - - THE SELLERS - - - - THE BUYERS - - - - - ICT TRADING SA - - - - - - - - <sale.party.rec_name> - - - - <sale.trader.initial if sale.trader else ''>/<sale.operator.initial if sale.operator else ''> - - </for> - - + + + + + + + + + + + + + + + + + + + <for each="sale in records"> + + + + + + + + <for each="line in sale.report_address.splitlines()"> + + + <line> + + + </for> + + + + + + + + + + + + + Sale Contract : + + + + <sale.full_number> + + + + + + DATE: + + + + <format_date(sale.sale_date, sale.party.lang)> + + + + + + + + + + + + + + + + Buyers + + + + + + <sale.party.rec_name> + + ADDRESS:<sale.report_address> + + + + + + Sellers + + + ICT TRADING S.A. + VIA MAGAZZINI GENERALI, 3 + 6828 BALERNA, SWITZERLAND + + + + + + Agents + + + + <for each="line in sale.report_agent.splitlines()"> + + + <line> + + + </for> + + + + + + + + + + + + + + Growth + + + + + + <sale.lines[0].product.description if sale.lines and sale.lines[0].product else ''> + + CROP + + <sale.crop.name> + + + + + + + Quality + + + + + <sale.lines[0].attributes_name> + + + + + + 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>) + + <sale.report_nb_bale> + + + + + + + + + + + + + Price + + + + <sale.lines[0].linked_currency.rec_name.upper() if sale.lines[0].linked_currency else sale.currency.rec_name.upper()> + + <sale.lines[0].linked_price if sale.lines[0].linked_price else sale.lines[0].unit_price> + + + + PER + + <sale.lines[0].linked_unit.rec_name.upper() if sale.lines[0].linked_unit else sale.lines[0].unit.rec_name.upper()> + + + + + ( + + <sale.report_price> + + ) + + <sale.lines[0].get_pricing_text> + + + + + + + + + + + + + + + + + <if test="sale.lines[0].pricing_rule"> + + + + + + + + + + + + + Fixation + + + + + + <for each="line in sale.lines[0].pricing_rule.splitlines()"> + + + <line> + + + </for> + + + + + + + + + + </if> + + + + + + + + + + + + + Shipment + + + + + + + + <sale.lines[0].del_period.description if sale.lines[0].del_period else ''> + + + + + + + + + + + + + + + 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 ''> + + + + + 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 ''> + + + + + + + Arbitration & Rules + + + + + + <if test="sale.association"> + + + + + + + <for each="line in sale.association.rule.splitlines()"> + + + + + + + <line> + + + + + + + </for> + + + + + + + </if> + + + + + + + + + + + + + + + + + + + + + THE SELLERS + + + + + + + + THE BUYERS + + + + + + + ICT TRADING SA + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <sale.party.rec_name> + + + + + + + + + + <sale.trader.initial if sale.trader else ''> + + + + / + + + + <sale.operator.initial if sale.operator else ''> + + + + + + + + + + </for> + + + \ No newline at end of file