diff --git a/modules/account/view/move_line_tree_move.xml b/modules/account/view/move_line_tree_move.xml
index 1dc8d95..ab5ec6e 100755
--- a/modules/account/view/move_line_tree_move.xml
+++ b/modules/account/view/move_line_tree_move.xml
@@ -4,6 +4,7 @@ this repository contains the full copyright notices and license terms. -->
+
@@ -12,6 +13,5 @@ this repository contains the full copyright notices and license terms. -->
-
diff --git a/modules/account_invoice/invoice_ict.fodt b/modules/account_invoice/invoice_ict.fodt
index c596d44..71c60fe 100644
--- a/modules/account_invoice/invoice_ict.fodt
+++ b/modules/account_invoice/invoice_ict.fodt
@@ -1,773 +1,785 @@
-
+
+
-
+
Provisional Sale
willen
2018-12-09T16:20:00
- 2026-03-23T20:46:35.300000000
+ 2026-03-26T18:22:40.515000000
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
+ PT2H56M5S
+ 2
+
+
+
+
+ 33995
+ 0
+ 27264
+ 13187
+ true
+ false
+
+
+ view2
+ 9206
+ 42071
+ 0
+ 33995
+ 27263
+ 47181
+ 0
+ 0
+ false
+ 160
+ 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
+ 139317
+ 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
@@ -3148,19 +3160,16 @@
R57yT152pXiKBRQLKBZQLKBYQLGAYgHFAooFFAsoFlAsoFhAscB/vQX+D/7u9z9ziytTAAAA
AElFTkSuQmCC
-
-
-
-
-
-
-
-
-
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAAqoAAAAnCAIAAABIVv0SAAAAAXNSR0IArs4c6QAAAAlwSFlz
+
+
+
+
+
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAAqoAAAAnCAIAAABIVv0SAAAAAXNSR0IArs4c6QAAAAlwSFlz
AAAOwwAADsMBx2+oZAAAge9JREFUeF7tvQeYHNW1LXwqdHXO05NHM8oSkkgOGDDGGGxMMjnn
nCyCAZFBRuScETlnEMlgMjbYmCwQymly7Byrq7q66l/7VM9o4OL3vff+j3e5WO320Jqprjpx
h7XX3kewLIv94F9oojmukeLoZ8H+MNaDsQ8Cqwr0a/sCadx37VuN/azyz7jA8c3L/puHBG2y
@@ -3779,355 +3788,288 @@
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.report_address.splitlines()">
-
-
- <line>
-
-
- </for>
-
-
-
-
-
-
-
-
-
-
-
-
-
- <format_date(invoice.invoice_date or today, invoice.party.lang)>
-
-
-
-
-
-
-
-
-
-
- Provisional Sale
-
-
-
-
- <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
-
-
- <format_date(invoice.report_bl_date, invoice.party.lang) if invoice.report_bl_date else ''>
- <invoice.report_loading_port>
-
-
-
-
- Port of discharge
-
-
- <invoice.report_discharge_port>
-
-
-
-
-
-
-
-
-
- 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
- <invoice.report_incoterm>
-
- ALL DETAILS AND SPECIFICATIONS AS PER
- BENEFICIARY’S
-
- PROFORMA INVOICE NO. <invoice.report_proforma_invoice_number> DATED <format_date(invoice.report_proforma_invoice_date, invoice.party.lang) if invoice.report_proforma_invoice_date else ''>.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 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
-
-
- <invoice.report_si_number>
-
- <invoice.report_controller_name>
-
-
-
-
-
-
-
-
-
-
-
-
- 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
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <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)>
+
+
+
+
+
+
+
+
+
+ Provisional Sale
+
+
+
+ <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
+
+
+ <format_date(invoice.report_bl_date, invoice.party.lang) if invoice.report_bl_date else ''>
+ <invoice.report_loading_port>
+
+
+
+
+ Port of discharge
+
+
+ <invoice.report_discharge_port>
+
+
+
+
+
+
+
+
+
+ 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
+ <invoice.report_incoterm>
+ ALL DETAILS AND SPECIFICATIONS AS PER BENEFICIARY’S
+ PROFORMA INVOICE NO. <invoice.report_proforma_invoice_number>DATED <format_date(invoice.report_proforma_invoice_date, invoice.party.lang) if invoice.report_proforma_invoice_date else ''>.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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
+
+
+ <invoice.report_si_number>
+
+ <invoice.report_controller_name>
+
+
+
+
+
+
+
+
+
+
+
+
+ Payment
+
+
+ <if test="invoice.report_payment_description">
+ <for each="description in invoice.report_payment_description.splitlines()">
+ <description>
+ </for>
+ </if>
+
+
+ ICT TRADING S.A.
+
+
+
+
+ <invoice.report_trader_initial>/ <invoice.report_operator_initial>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/purchase_trade/invoice.py b/modules/purchase_trade/invoice.py
index 48de10d..e629b2e 100644
--- a/modules/purchase_trade/invoice.py
+++ b/modules/purchase_trade/invoice.py
@@ -58,6 +58,20 @@ class Invoice(metaclass=PoolMeta):
return sale.report_shipment
return self.description or ''
+ @property
+ def report_trader_initial(self):
+ sale = self._get_report_sale()
+ if sale and sale.trader:
+ return self.trader.initial
+ return ''
+
+ @property
+ def report_operator_initial(self):
+ sale = self._get_report_sale()
+ if sale and sale.operator:
+ return self.operator.initial
+ return ''
+
@property
def report_product_description(self):
line = self._get_report_sale_line()