From 18c3cf21c638010f4c8968151e86dd6ef203372f Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sat, 17 Jan 2026 09:36:45 +0100
Subject: [PATCH 001/618] 17.01.26
---
modules/purchase_trade/fee.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index 2eb09c8..ea66da6 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -370,8 +370,8 @@ class Fee(ModelSQL,ModelView):
#if reception of moves done we need to generate accrual for fee
StockMove = Pool().get('stock.move')
feelots = FeeLots.search(['fee','=',record.id])
- for lot in feelots:
- move = lot.get_received_move()
+ for fl in feelots:
+ move = fl.lot.get_received_move()
if move:
Warning = Pool().get('res.user.warning')
warning_name = Warning.format("Lot ever received", [])
From 8e38ceb13e3817ba9858894b5badc3619e9b76c4 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sat, 17 Jan 2026 09:47:06 +0100
Subject: [PATCH 002/618] 17.01.26
---
modules/purchase_trade/fee.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index ea66da6..bc7e87a 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -376,7 +376,7 @@ class Fee(ModelSQL,ModelView):
Warning = Pool().get('res.user.warning')
warning_name = Warning.format("Lot ever received", [])
if Warning.check(warning_name):
- raise Warning(warning_name,
+ raise UserWarning(warning_name,
"By clicking yes, an accrual for this fee will be created")
AccountMove = Pool().get('account.move')
account_move = move._get_account_stock_move_fee(record.id)
From b43db20bc4c23d9cc9dea4fa61a477245fa0282a Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sat, 17 Jan 2026 09:53:19 +0100
Subject: [PATCH 003/618] 17.01.26
---
modules/purchase_trade/lot.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/purchase_trade/lot.py b/modules/purchase_trade/lot.py
index ee7bac2..c35d076 100755
--- a/modules/purchase_trade/lot.py
+++ b/modules/purchase_trade/lot.py
@@ -583,7 +583,7 @@ class Lot(metaclass=PoolMeta):
lm = sorted(self.lot_move, key=lambda x: x.sequence, reverse=True)
for m in lm:
if m.move.from_location.type == 'supplier' and m.move.state == 'done':
- return m
+ return m.move
return None
def GetShipment(self,type):
From 9b887a6b4c0b25f4e6a75536078dcbbb21138f40 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sat, 17 Jan 2026 09:59:48 +0100
Subject: [PATCH 004/618] 17.01.26
---
modules/purchase_trade/fee.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index bc7e87a..0bb54b2 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -379,7 +379,7 @@ class Fee(ModelSQL,ModelView):
raise UserWarning(warning_name,
"By clicking yes, an accrual for this fee will be created")
AccountMove = Pool().get('account.move')
- account_move = move._get_account_stock_move_fee(record.id)
+ account_move = move._get_account_stock_move_fee(record)
AccountMove.save([account_move])
return records
From b38f7553a6c68aebbe4484a0e433282bc6b3aa3d Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sat, 17 Jan 2026 14:03:45 +0100
Subject: [PATCH 005/618] 17.01.26
---
modules/purchase/purchase.py | 142 +++++++++++++++++------------------
1 file changed, 71 insertions(+), 71 deletions(-)
diff --git a/modules/purchase/purchase.py b/modules/purchase/purchase.py
index 078bd72..ca5acbb 100755
--- a/modules/purchase/purchase.py
+++ b/modules/purchase/purchase.py
@@ -1857,77 +1857,77 @@ class Line(sequence_ordered(), ModelSQL, ModelView):
else:
lots_to_invoice = self.lots
for l in lots_to_invoice:
- #if l.lot_type == 'physic':
- invoice_line = InvoiceLine()
- invoice_line.type = self.type
- invoice_line.currency = self.currency
- invoice_line.company = self.company
- invoice_line.description = self.description
- invoice_line.note = self.note
- invoice_line.origin = self
- qt, gross_qt = l.get_hist_quantity(0)
- quantity = float(qt)
- quantity = Uom.compute_qty(l.lot_unit_line, quantity, self.unit)
- if self.unit:
- quantity = self.unit.round(quantity)
- invoice_line.unit_price = l.get_lot_price()
- invoice_line.product = l.lot_product
- invoice_line.quantity = quantity
- if not invoice_line.quantity:
- return []
- invoice_line.unit = self.unit
- invoice_line.taxes = self.taxes
- if self.company.purchase_taxes_expense:
- invoice_line.taxes_deductible_rate = 0
- elif self.product:
- invoice_line.taxes_deductible_rate = (
- self.product.supplier_taxes_deductible_rate_used)
- invoice_line.invoice_type = 'in'
- if self.product:
- invoice_line.account = self.product.account_stock_in_used
- if not invoice_line.account:
- raise AccountError(
- gettext('purchase'
- '.msg_purchase_product_missing_account_expense',
- purchase=self.purchase.rec_name,
- product=self.product.rec_name))
- else:
- invoice_line.account = account_config.get_multivalue(
- 'default_category_account_expense', company=self.company.id)
- if not invoice_line.account:
- raise AccountError(
- gettext('purchase'
- '.msg_purchase_missing_account_expense',
- purchase=self.purchase.rec_name))
- if action == 'prov':
- invoice_line.description = 'Pro forma'
- elif action == 'final':
- invoice_line.description = 'Final'
- elif action == 'service':
- invoice_line.description = 'Service'
- #invoice_line.stock_moves = self._get_invoice_line_moves()
- #invoice_line.stock_moves = [l.get_current_supplier_move()]
- invoice_line.lot = l.id
- if self.product.type == 'service':
- invoice_line.unit_price = self.unit_price
- invoice_line.product = self.product
- invoice_line.stock_moves = []
- Fee = Pool().get('fee.fee')
- fee = Fee.search(['purchase','=',self.purchase.id])
- if fee:
- invoice_line.fee = fee[0]
- lines.append(invoice_line)
- logger.info("GETINVLINE:%s",self.product.type)
- logger.info("GETINVLINE2:%s",l.invoice_line_prov)
- if l.invoice_line_prov and self.product.type != 'service':
- invoice_line_, = InvoiceLine.copy([l.invoice_line_prov], default={
- 'invoice': None,
- 'quantity': -l.invoice_line_prov.quantity,
- 'unit_price': l.invoice_line_prov.unit_price,
- 'party': l.invoice_line_prov.invoice.party,
- 'origin': str(self),
- })
- lines.append(invoice_line_)
+ if l.lot_type == 'physic':
+ invoice_line = InvoiceLine()
+ invoice_line.type = self.type
+ invoice_line.currency = self.currency
+ invoice_line.company = self.company
+ invoice_line.description = self.description
+ invoice_line.note = self.note
+ invoice_line.origin = self
+ qt, gross_qt = l.get_hist_quantity(0)
+ quantity = float(qt)
+ quantity = Uom.compute_qty(l.lot_unit_line, quantity, self.unit)
+ if self.unit:
+ quantity = self.unit.round(quantity)
+ invoice_line.unit_price = l.get_lot_price()
+ invoice_line.product = l.lot_product
+ invoice_line.quantity = quantity
+ if not invoice_line.quantity:
+ return []
+ invoice_line.unit = self.unit
+ invoice_line.taxes = self.taxes
+ if self.company.purchase_taxes_expense:
+ invoice_line.taxes_deductible_rate = 0
+ elif self.product:
+ invoice_line.taxes_deductible_rate = (
+ self.product.supplier_taxes_deductible_rate_used)
+ invoice_line.invoice_type = 'in'
+ if self.product:
+ invoice_line.account = self.product.account_stock_in_used
+ if not invoice_line.account:
+ raise AccountError(
+ gettext('purchase'
+ '.msg_purchase_product_missing_account_expense',
+ purchase=self.purchase.rec_name,
+ product=self.product.rec_name))
+ else:
+ invoice_line.account = account_config.get_multivalue(
+ 'default_category_account_expense', company=self.company.id)
+ if not invoice_line.account:
+ raise AccountError(
+ gettext('purchase'
+ '.msg_purchase_missing_account_expense',
+ purchase=self.purchase.rec_name))
+ if action == 'prov':
+ invoice_line.description = 'Pro forma'
+ elif action == 'final':
+ invoice_line.description = 'Final'
+ elif action == 'service':
+ invoice_line.description = 'Service'
+ #invoice_line.stock_moves = self._get_invoice_line_moves()
+ #invoice_line.stock_moves = [l.get_current_supplier_move()]
+ invoice_line.lot = l.id
+ if self.product.type == 'service':
+ invoice_line.unit_price = self.unit_price
+ invoice_line.product = self.product
+ invoice_line.stock_moves = []
+ Fee = Pool().get('fee.fee')
+ fee = Fee.search(['purchase','=',self.purchase.id])
+ if fee:
+ invoice_line.fee = fee[0]
+ lines.append(invoice_line)
+ logger.info("GETINVLINE:%s",self.product.type)
+ logger.info("GETINVLINE2:%s",l.invoice_line_prov)
+ if l.invoice_line_prov and self.product.type != 'service':
+ invoice_line_, = InvoiceLine.copy([l.invoice_line_prov], default={
+ 'invoice': None,
+ 'quantity': -l.invoice_line_prov.quantity,
+ 'unit_price': l.invoice_line_prov.unit_price,
+ 'party': l.invoice_line_prov.invoice.party,
+ 'origin': str(self),
+ })
+ lines.append(invoice_line_)
return lines
def _get_invoice_line_quantity(self):
From 39c9d83f1be9fcef9017cc75c446b8c4d2fb2fd8 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sat, 17 Jan 2026 14:12:11 +0100
Subject: [PATCH 006/618] 17.01.26
---
modules/purchase/purchase.py | 1 +
1 file changed, 1 insertion(+)
diff --git a/modules/purchase/purchase.py b/modules/purchase/purchase.py
index ca5acbb..ec2fadb 100755
--- a/modules/purchase/purchase.py
+++ b/modules/purchase/purchase.py
@@ -1873,6 +1873,7 @@ class Line(sequence_ordered(), ModelSQL, ModelView):
invoice_line.unit_price = l.get_lot_price()
invoice_line.product = l.lot_product
invoice_line.quantity = quantity
+ logger.info("GETINVOICELINE_QT:%s",quantity)
if not invoice_line.quantity:
return []
invoice_line.unit = self.unit
From 5d7d0ffe5b155c578d4fbb1d9acc547df924db0f Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sat, 17 Jan 2026 16:54:51 +0100
Subject: [PATCH 007/618] 17.01.26
---
modules/purchase_trade/fee.py | 76 ++++++++++++++++++-----------------
1 file changed, 39 insertions(+), 37 deletions(-)
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index 0bb54b2..ebceaa1 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -174,7 +174,7 @@ class Fee(ModelSQL,ModelView):
return round(self.price / self.quantity,4)
elif self.mode == 'perqt':
return self.price
- elif self.mode == 'pprice':
+ elif self.mode == 'pprice' or self.mode == 'pcost':
if self.line and self.price:
return round(self.price * Decimal(self.line.unit_price) / 100,4)
if self.sale_line and self.price:
@@ -297,46 +297,48 @@ class Fee(ModelSQL,ModelView):
@classmethod
def create(cls, vlist):
vlist = [x.copy() for x in vlist]
- records = super(Fee, cls).create(vlist)
+ fees = super(Fee, cls).create(vlist)
qt_sh = Decimal(0)
qt_line = Decimal(0)
unit = None
- for record in records:
+ for fee in fees:
FeeLots = Pool().get('fee.lots')
Lots = Pool().get('lot.lot')
LotQt = Pool().get('lot.qt')
- if record.line:
- for l in record.line.lots:
+ if fee.line:
+ for l in fee.line.lots:
#if l.lot_type == 'physic':
fl = FeeLots()
- fl.fee = record.id
+ fl.fee = fee.id
fl.lot = l.id
fl.line = l.line.id
FeeLots.save([fl])
qt_line += l.get_current_quantity_converted()
unit = l.line.unit
- if record.sale_line:
- for l in record.sale_line.lots:
+ if fee.sale_line:
+ for l in fee.sale_line.lots:
#if l.lot_type == 'physic':
fl = FeeLots()
- fl.fee = record.id
+ fl.fee = fee.id
fl.lot = l.id
fl.sale_line = l.sale_line.id
FeeLots.save([fl])
- if record.shipment_in:
- if record.shipment_in.state == 'draft'or record.shipment_in.state == 'started':
- lots = Lots.search(['lot_shipment_in','=',record.shipment_in.id])
+ qt_line += l.get_current_quantity_converted()
+ unit = l.line.unit
+ if fee.shipment_in:
+ if fee.shipment_in.state == 'draft'or fee.shipment_in.state == 'started':
+ lots = Lots.search(['lot_shipment_in','=',fee.shipment_in.id])
if lots:
for l in lots:
#if l.lot_type == 'physic':
fl = FeeLots()
- fl.fee = record.id
+ fl.fee = fee.id
fl.lot = l.id
FeeLots.save([fl])
qt_sh += l.get_current_quantity_converted()
unit = l.line.unit
else:
- lqts = LotQt.search(['lot_shipment_in','=',record.shipment_in.id])
+ lqts = LotQt.search(['lot_shipment_in','=',fee.shipment_in.id])
if lqts:
for l in lqts:
qt_sh += l.lot_p.get_current_quantity_converted()
@@ -344,45 +346,45 @@ class Fee(ModelSQL,ModelView):
else:
raise UserError("You cannot add fee on received shipment!")
- type = record.type
+ type = fee.type
if type == 'ordered':
Purchase = Pool().get('purchase.purchase')
PurchaseLine = Pool().get('purchase.line')
pl = PurchaseLine()
- pl.product = record.product
- if record.line:
+ pl.product = fee.product
+ if fee.line or fee.sale_line:
pl.quantity = round(qt_line,5)
- if record.shipment_in:
+ if fee.shipment_in:
pl.quantity = round(qt_sh,5)
logger.info("CREATE_PURHCASE_FOR_FEE_QT:%s",pl.quantity)
pl.unit = unit
- pl.fee_ = record.id
- if record.price:
- pl.unit_price = round(Decimal(record.price),4)
+ pl.fee_ = fee.id
+ if fee.price:
+ pl.unit_price = round(Decimal(fee.get_price_per_qt()),4)
p = Purchase()
p.lines = [pl]
- p.party = record.supplier
+ p.party = fee.supplier
if p.party.addresses:
p.invoice_address = p.party.addresses[0]
- p.currency = record.currency
+ p.currency = fee.currency
p.line_type = 'service'
Purchase.save([p])
#if reception of moves done we need to generate accrual for fee
- StockMove = Pool().get('stock.move')
- feelots = FeeLots.search(['fee','=',record.id])
- for fl in feelots:
- move = fl.lot.get_received_move()
- if move:
- Warning = Pool().get('res.user.warning')
- warning_name = Warning.format("Lot ever received", [])
- if Warning.check(warning_name):
- raise UserWarning(warning_name,
- "By clicking yes, an accrual for this fee will be created")
- AccountMove = Pool().get('account.move')
- account_move = move._get_account_stock_move_fee(record)
- AccountMove.save([account_move])
+ if not fee.sale_line:
+ feelots = FeeLots.search(['fee','=',fee.id])
+ for fl in feelots:
+ move = fl.lot.get_received_move()
+ if move:
+ Warning = Pool().get('res.user.warning')
+ warning_name = Warning.format("Lot ever received", [])
+ if Warning.check(warning_name):
+ raise UserWarning(warning_name,
+ "By clicking yes, an accrual for this fee will be created")
+ AccountMove = Pool().get('account.move')
+ account_move = move._get_account_stock_move_fee(fee)
+ AccountMove.save([account_move])
- return records
+ return fees
class FeeLots(ModelSQL,ModelView):
From e8453c76a7b7c03c9a99bf884c6a419c43b8c1c6 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sat, 17 Jan 2026 17:00:35 +0100
Subject: [PATCH 008/618] 17.01.26
---
modules/purchase_trade/fee.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index ebceaa1..3115aa7 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -324,7 +324,7 @@ class Fee(ModelSQL,ModelView):
fl.sale_line = l.sale_line.id
FeeLots.save([fl])
qt_line += l.get_current_quantity_converted()
- unit = l.line.unit
+ unit = l.sale_line.unit
if fee.shipment_in:
if fee.shipment_in.state == 'draft'or fee.shipment_in.state == 'started':
lots = Lots.search(['lot_shipment_in','=',fee.shipment_in.id])
From 0047e6e879ec537855f36c1dcdf176a6a4626f08 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sat, 17 Jan 2026 17:36:39 +0100
Subject: [PATCH 009/618] 17.01.26
---
modules/purchase_trade/fee.py | 37 ++++++++++++++++++-----------------
1 file changed, 19 insertions(+), 18 deletions(-)
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index 3115aa7..621f83f 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -307,30 +307,29 @@ class Fee(ModelSQL,ModelView):
LotQt = Pool().get('lot.qt')
if fee.line:
for l in fee.line.lots:
- #if l.lot_type == 'physic':
- fl = FeeLots()
- fl.fee = fee.id
- fl.lot = l.id
- fl.line = l.line.id
- FeeLots.save([fl])
- qt_line += l.get_current_quantity_converted()
- unit = l.line.unit
+ if (l.lot_type == 'virtual' and len(fee.line.lots)==1) or (l.lot_type == 'physic' and len(fee.line.lots)>1):
+ fl = FeeLots()
+ fl.fee = fee.id
+ fl.lot = l.id
+ fl.line = l.line.id
+ FeeLots.save([fl])
+ qt_line += l.get_current_quantity_converted()
+ unit = l.line.unit
if fee.sale_line:
for l in fee.sale_line.lots:
- #if l.lot_type == 'physic':
- fl = FeeLots()
- fl.fee = fee.id
- fl.lot = l.id
- fl.sale_line = l.sale_line.id
- FeeLots.save([fl])
- qt_line += l.get_current_quantity_converted()
- unit = l.sale_line.unit
+ if (l.lot_type == 'virtual' and len(fee.sale_line.lots)==1) or (l.lot_type == 'physic' and len(fee.sale_line.lots)>1):
+ fl = FeeLots()
+ fl.fee = fee.id
+ fl.lot = l.id
+ fl.sale_line = l.sale_line.id
+ FeeLots.save([fl])
+ qt_line += l.get_current_quantity_converted()
+ unit = l.sale_line.unit
if fee.shipment_in:
if fee.shipment_in.state == 'draft'or fee.shipment_in.state == 'started':
lots = Lots.search(['lot_shipment_in','=',fee.shipment_in.id])
if lots:
for l in lots:
- #if l.lot_type == 'physic':
fl = FeeLots()
fl.fee = fee.id
fl.lot = l.id
@@ -360,7 +359,9 @@ class Fee(ModelSQL,ModelView):
pl.unit = unit
pl.fee_ = fee.id
if fee.price:
- pl.unit_price = round(Decimal(fee.get_price_per_qt()),4)
+ fee_price = fee.get_price_per_qt()
+ logger.info("GET_FEE_PRICE_PER_QT:%s",fee_price)
+ pl.unit_price = round(Decimal(fee_price),4)
p = Purchase()
p.lines = [pl]
p.party = fee.supplier
From 2f1adffba3a0929e19e918e06d9697e2bdb08146 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sat, 17 Jan 2026 17:44:01 +0100
Subject: [PATCH 010/618] 17.01.26
---
modules/purchase_trade/fee.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index 621f83f..7e81746 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -277,8 +277,8 @@ class Fee(ModelSQL,ModelView):
logger.info("ADJUST_PURCHASE_VALUES:%s",self)
if self.type == 'ordered' and self.state == 'not invoiced' and self.purchase:
logger.info("ADJUST_PURCHASE_VALUES_QT:%s",self.purchase.lines[0].quantity)
- if self.price != self.purchase.lines[0].unit_price:
- self.purchase.lines[0].unit_price = self.price
+ if self.get_price_per_qt() != self.purchase.lines[0].unit_price:
+ self.purchase.lines[0].unit_price = self.get_price_per_qt()
if self.quantity != self.purchase.lines[0].quantity:
self.purchase.lines[0].quantity = self.quantity
if self.product != self.purchase.lines[0].product:
From b4f794c2759479fc248d3ed9ea91910801efaac8 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sat, 17 Jan 2026 17:55:07 +0100
Subject: [PATCH 011/618] 17.01.26
---
modules/purchase/purchase.py | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/modules/purchase/purchase.py b/modules/purchase/purchase.py
index ec2fadb..4e12f26 100755
--- a/modules/purchase/purchase.py
+++ b/modules/purchase/purchase.py
@@ -1885,7 +1885,10 @@ class Line(sequence_ordered(), ModelSQL, ModelView):
self.product.supplier_taxes_deductible_rate_used)
invoice_line.invoice_type = 'in'
if self.product:
- invoice_line.account = self.product.account_stock_in_used
+ if self.product.type == 'service' and not self.product.landed_cost:
+ invoice_line.account = self.product.account_expense_used
+ else:
+ invoice_line.account = self.product.account_stock_in_used
if not invoice_line.account:
raise AccountError(
gettext('purchase'
From 7571a1cb807c31e86219830b327b768c0112de22 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sat, 17 Jan 2026 18:15:29 +0100
Subject: [PATCH 012/618] 17.01.26
---
modules/account_invoice/invoice.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/account_invoice/invoice.py b/modules/account_invoice/invoice.py
index bc51487..cf68c2f 100755
--- a/modules/account_invoice/invoice.py
+++ b/modules/account_invoice/invoice.py
@@ -2031,7 +2031,7 @@ class Invoice(Workflow, ModelSQL, ModelView, TaxableMixin, InvoiceReportMixin):
var_qt = sum([i.quantity for i in gl])
logger.info("LOT_TO_PROCESS:%s",lot)
logger.info("FEE_TO_PROCESS:%s",gl[0].fee)
- if lot:
+ if (lot and not gl[0].fee) or (gl[0].fee and gl[0].product.landed_cost):
adjust_move_lines = []
mov = None
if self.type == 'in':
From 2ebbe334bf079dffdcdb415c73030147f83adb32 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 18 Jan 2026 10:06:48 +0100
Subject: [PATCH 013/618] 18.01.26
---
modules/purchase/purchase.py | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/modules/purchase/purchase.py b/modules/purchase/purchase.py
index 4e12f26..7600fea 100755
--- a/modules/purchase/purchase.py
+++ b/modules/purchase/purchase.py
@@ -1005,6 +1005,11 @@ class Purchase(
for purchase in purchases:
logger.info("PROCESS_INVOICE:%s",action)
invoice = purchase.create_invoice(lots,action)
+ #check if forex
+ forex_rate = invoice.get_forex()
+ if forex_rate:
+ invoice.selection_rate = 'forex'
+
if action == 'prov':
invoice.reference = 'Provisional'
elif action == 'service':
From 97b8632b74fab5df88ea4bfdd90bce3e5b0dc927 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 18 Jan 2026 10:18:57 +0100
Subject: [PATCH 014/618] 18.01.26
---
modules/purchase/purchase.py | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/modules/purchase/purchase.py b/modules/purchase/purchase.py
index 7600fea..0b2edae 100755
--- a/modules/purchase/purchase.py
+++ b/modules/purchase/purchase.py
@@ -1005,11 +1005,6 @@ class Purchase(
for purchase in purchases:
logger.info("PROCESS_INVOICE:%s",action)
invoice = purchase.create_invoice(lots,action)
- #check if forex
- forex_rate = invoice.get_forex()
- if forex_rate:
- invoice.selection_rate = 'forex'
-
if action == 'prov':
invoice.reference = 'Provisional'
elif action == 'service':
@@ -1027,7 +1022,13 @@ class Purchase(
Invoice = pool.get('account.invoice')
Invoice.save(invoices.values())
-
+ for inv in invoices:
+ #check if forex
+ forex_rate = inv.get_forex()
+ if forex_rate:
+ inv.selection_rate = 'forex'
+ Invoice.save([inv])
+
for purchase, invoice in invoices.items():
purchase.copy_resources_to(invoice)
if len(invoices)==1:
From a31e51152b8d873b53b72ad660446c77c0831622 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 18 Jan 2026 10:27:55 +0100
Subject: [PATCH 015/618] 18.01.26
---
modules/purchase/purchase.py | 13 ++++++-------
1 file changed, 6 insertions(+), 7 deletions(-)
diff --git a/modules/purchase/purchase.py b/modules/purchase/purchase.py
index 0b2edae..bd7c51b 100755
--- a/modules/purchase/purchase.py
+++ b/modules/purchase/purchase.py
@@ -1021,15 +1021,14 @@ class Purchase(
pool = Pool()
Invoice = pool.get('account.invoice')
- Invoice.save(invoices.values())
- for inv in invoices:
- #check if forex
- forex_rate = inv.get_forex()
- if forex_rate:
- inv.selection_rate = 'forex'
- Invoice.save([inv])
+ Invoice.save(invoices.values())
for purchase, invoice in invoices.items():
+ #check if forex
+ forex_rate = invoice.get_forex()
+ if forex_rate:
+ invoice.selection_rate = 'forex'
+ Invoice.save([invoice])
purchase.copy_resources_to(invoice)
if len(invoices)==1:
if prepayment:
From db7288c70920d79b12a6a6d9821db8d03fbb1633 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 18 Jan 2026 10:51:40 +0100
Subject: [PATCH 016/618] 18.01.26
---
modules/purchase/purchase.py | 1 +
1 file changed, 1 insertion(+)
diff --git a/modules/purchase/purchase.py b/modules/purchase/purchase.py
index bd7c51b..68d560e 100755
--- a/modules/purchase/purchase.py
+++ b/modules/purchase/purchase.py
@@ -1028,6 +1028,7 @@ class Purchase(
forex_rate = invoice.get_forex()
if forex_rate:
invoice.selection_rate = 'forex'
+ invoice.on_change_with_rate()
Invoice.save([invoice])
purchase.copy_resources_to(invoice)
if len(invoices)==1:
From 11f33236cfc934649f24aa57da6f6c136852b31c Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 18 Jan 2026 11:05:00 +0100
Subject: [PATCH 017/618] 18.01.26
---
modules/purchase/purchase.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/purchase/purchase.py b/modules/purchase/purchase.py
index 68d560e..00b8180 100755
--- a/modules/purchase/purchase.py
+++ b/modules/purchase/purchase.py
@@ -1028,7 +1028,7 @@ class Purchase(
forex_rate = invoice.get_forex()
if forex_rate:
invoice.selection_rate = 'forex'
- invoice.on_change_with_rate()
+ invoice.rate = invoice.on_change_with_rate()
Invoice.save([invoice])
purchase.copy_resources_to(invoice)
if len(invoices)==1:
From 0d3bfda08c77f52e59d60c88c11c9b19b337205c Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 18 Jan 2026 12:07:27 +0100
Subject: [PATCH 018/618] 18.01.26
---
modules/account_invoice/view/invoice_form.xml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/modules/account_invoice/view/invoice_form.xml b/modules/account_invoice/view/invoice_form.xml
index efa4392..9e900c2 100755
--- a/modules/account_invoice/view/invoice_form.xml
+++ b/modules/account_invoice/view/invoice_form.xml
@@ -92,8 +92,8 @@ this repository contains the full copyright notices and license terms. -->
-
-
+
From 6b2d5aebf88797fae5d09be30a4b479b461d2ab8 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 18 Jan 2026 20:02:49 +0100
Subject: [PATCH 019/618] 18.01.26
---
modules/automation/__init__.py | 3 +-
modules/automation/freight_booking.py | 43 +++++++++++++++++++
modules/automation/freight_booking.xml | 25 +++++++++++
modules/automation/tryton.cfg | 3 +-
.../view/freight_booking_info_tree.xml | 12 ++++++
5 files changed, 84 insertions(+), 2 deletions(-)
create mode 100644 modules/automation/freight_booking.py
create mode 100644 modules/automation/freight_booking.xml
create mode 100644 modules/automation/view/freight_booking_info_tree.xml
diff --git a/modules/automation/__init__.py b/modules/automation/__init__.py
index 120ea0b..5944d8f 100644
--- a/modules/automation/__init__.py
+++ b/modules/automation/__init__.py
@@ -1,8 +1,9 @@
from trytond.pool import Pool
-from . import automation,rules #, document
+from . import automation,rules,freight_booking #, document
def register():
Pool.register(
automation.AutomationDocument,
rules.AutomationRuleSet,
+ freight_booking.FreightBookingInfo,
module='automation', type_='model')
\ No newline at end of file
diff --git a/modules/automation/freight_booking.py b/modules/automation/freight_booking.py
new file mode 100644
index 0000000..370b837
--- /dev/null
+++ b/modules/automation/freight_booking.py
@@ -0,0 +1,43 @@
+from trytond.model import ModelSQL, ModelView, fields
+
+class FreightBookingInfo(ModelSQL, ModelView):
+ "Freight Booking"
+ __name__ = 'freight.booking'
+
+ booking_number = fields.Char("Booking Number")
+ agent = fields.Char("Agent")
+ customer = fields.Char("Customer")
+ origin = fields.Char("Origin")
+ destination = fields.Char("Destination")
+ etd = fields.Date("ETD")
+ eta = fields.Date("ETA")
+ carrier = fields.Char("Carrier")
+ vessel = fields.Char("Vessel")
+ container_count = fields.Integer("Containers")
+ gross_weight = fields.Float("Gross Weight")
+
+ @classmethod
+ def table_query(cls):
+ return (
+ 'SELECT '
+ ' ROW_NUMBER() OVER () AS id, '
+ ' booking_number, '
+ ' agent, '
+ ' customer, '
+ ' origin, '
+ ' destination, '
+ ' etd, '
+ ' eta, '
+ ' carrier, '
+ ' vessel, '
+ ' container_count, '
+ ' gross_weight '
+ 'FROM public.freight_booking_info'
+ )
+
+ @classmethod
+ def __setup__(cls):
+ super().__setup__()
+ cls._order = [
+ ('etd', 'DESC'),
+ ]
diff --git a/modules/automation/freight_booking.xml b/modules/automation/freight_booking.xml
new file mode 100644
index 0000000..8df89fb
--- /dev/null
+++ b/modules/automation/freight_booking.xml
@@ -0,0 +1,25 @@
+
+
+
+ freight.booking
+ tree
+ freight_booking_info_tree
+
+
+ Freight Bookings
+ freight.booking
+
+
+
+
+
+
+
+
+
+
diff --git a/modules/automation/tryton.cfg b/modules/automation/tryton.cfg
index 5e6faab..0ddc3cc 100644
--- a/modules/automation/tryton.cfg
+++ b/modules/automation/tryton.cfg
@@ -5,4 +5,5 @@ depends:
res
document_incoming
xml:
- automation.xml
\ No newline at end of file
+ automation.xml
+ freight_booking.xml
\ No newline at end of file
diff --git a/modules/automation/view/freight_booking_info_tree.xml b/modules/automation/view/freight_booking_info_tree.xml
new file mode 100644
index 0000000..24a9d77
--- /dev/null
+++ b/modules/automation/view/freight_booking_info_tree.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
From 178fb25a2fd3f932f892677d9048fee4b3dcb18a Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 18 Jan 2026 20:52:20 +0100
Subject: [PATCH 020/618] 18.01.26
---
modules/automation/freight_booking.py | 37 +++++++++++--------
.../view/freight_booking_info_tree.xml | 1 +
2 files changed, 23 insertions(+), 15 deletions(-)
diff --git a/modules/automation/freight_booking.py b/modules/automation/freight_booking.py
index 370b837..d9b17db 100644
--- a/modules/automation/freight_booking.py
+++ b/modules/automation/freight_booking.py
@@ -1,4 +1,7 @@
from trytond.model import ModelSQL, ModelView, fields
+from sql import Table
+from sql.functions import CurrentTimestamp
+from sql import Column, Literal
class FreightBookingInfo(ModelSQL, ModelView):
"Freight Booking"
@@ -18,21 +21,25 @@ class FreightBookingInfo(ModelSQL, ModelView):
@classmethod
def table_query(cls):
- return (
- 'SELECT '
- ' ROW_NUMBER() OVER () AS id, '
- ' booking_number, '
- ' agent, '
- ' customer, '
- ' origin, '
- ' destination, '
- ' etd, '
- ' eta, '
- ' carrier, '
- ' vessel, '
- ' container_count, '
- ' gross_weight '
- 'FROM public.freight_booking_info'
+ t = Table('freight_booking_info')
+
+ return t.select(
+ Literal(0).as_('create_uid'),
+ CurrentTimestamp().as_('create_date'),
+ Literal(None).as_('write_uid'),
+ Literal(None).as_('write_date'),
+ t.booking_number.as_('id'),
+ t.booking_number,
+ t.agent,
+ t.customer,
+ t.origin,
+ t.destination,
+ t.etd,
+ t.eta,
+ t.carrier,
+ t.vessel,
+ t.container_count,
+ t.gross_weight
)
@classmethod
diff --git a/modules/automation/view/freight_booking_info_tree.xml b/modules/automation/view/freight_booking_info_tree.xml
index 24a9d77..c9ad5df 100644
--- a/modules/automation/view/freight_booking_info_tree.xml
+++ b/modules/automation/view/freight_booking_info_tree.xml
@@ -7,6 +7,7 @@
+
\ No newline at end of file
From 3820f001828848e7227c2c53471e90580cb41b87 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 18 Jan 2026 21:07:55 +0100
Subject: [PATCH 021/618] 18.01.26
---
modules/automation/freight_booking.py | 30 +++++++++----------
.../view/freight_booking_info_tree.xml | 6 ++--
2 files changed, 18 insertions(+), 18 deletions(-)
diff --git a/modules/automation/freight_booking.py b/modules/automation/freight_booking.py
index d9b17db..a2e86dc 100644
--- a/modules/automation/freight_booking.py
+++ b/modules/automation/freight_booking.py
@@ -9,15 +9,15 @@ class FreightBookingInfo(ModelSQL, ModelView):
booking_number = fields.Char("Booking Number")
agent = fields.Char("Agent")
- customer = fields.Char("Customer")
+ controller = fields.Char("Customer")
origin = fields.Char("Origin")
destination = fields.Char("Destination")
etd = fields.Date("ETD")
- eta = fields.Date("ETA")
+ bl_date = fields.Date("ETA")
carrier = fields.Char("Carrier")
vessel = fields.Char("Vessel")
container_count = fields.Integer("Containers")
- gross_weight = fields.Float("Gross Weight")
+ quantity = fields.Float("Gross Weight")
@classmethod
def table_query(cls):
@@ -28,18 +28,18 @@ class FreightBookingInfo(ModelSQL, ModelView):
CurrentTimestamp().as_('create_date'),
Literal(None).as_('write_uid'),
Literal(None).as_('write_date'),
- t.booking_number.as_('id'),
- t.booking_number,
- t.agent,
- t.customer,
- t.origin,
- t.destination,
- t.etd,
- t.eta,
- t.carrier,
- t.vessel,
- t.container_count,
- t.gross_weight
+ t.FintradeBookingKey.as_('id'),
+ t.ShippingInstructionNumber.as_('booking_number'),
+ t.BookingAgent.as_('agent'),
+ t.ExpectedController.as_('controller'),
+ t.Loading.as_('origin'),
+ t.Destination.as_('destination'),
+ t.ETD_Date.as_('etd'),
+ t.BL_date.as_('bl_date'),
+ t.Carrier.as_('carrier'),
+ t.Vessel.as_('vessel'),
+ t.NumberOfContainers.as_('container_count'),
+ t.ShippingInstructionQuantity.as_('quantity')
)
@classmethod
diff --git a/modules/automation/view/freight_booking_info_tree.xml b/modules/automation/view/freight_booking_info_tree.xml
index c9ad5df..af17ef3 100644
--- a/modules/automation/view/freight_booking_info_tree.xml
+++ b/modules/automation/view/freight_booking_info_tree.xml
@@ -1,13 +1,13 @@
-
+
-
+
-
+
\ No newline at end of file
From b55c1e3c8fce6df849cafd10a64ea0ee8f3af5cb Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 18 Jan 2026 21:12:27 +0100
Subject: [PATCH 022/618] 18.01.26
---
modules/automation/freight_booking.py | 6 ++++--
modules/automation/view/freight_booking_info_tree.xml | 1 +
2 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/modules/automation/freight_booking.py b/modules/automation/freight_booking.py
index a2e86dc..fd78d29 100644
--- a/modules/automation/freight_booking.py
+++ b/modules/automation/freight_booking.py
@@ -13,7 +13,8 @@ class FreightBookingInfo(ModelSQL, ModelView):
origin = fields.Char("Origin")
destination = fields.Char("Destination")
etd = fields.Date("ETD")
- bl_date = fields.Date("ETA")
+ bl_date = fields.Date("BL date")
+ bl_number = fields.Char("BL Nb")
carrier = fields.Char("Carrier")
vessel = fields.Char("Vessel")
container_count = fields.Integer("Containers")
@@ -35,7 +36,8 @@ class FreightBookingInfo(ModelSQL, ModelView):
t.Loading.as_('origin'),
t.Destination.as_('destination'),
t.ETD_Date.as_('etd'),
- t.BL_date.as_('bl_date'),
+ t.BL_Date.as_('bl_date'),
+ t.BL_Number.as_('bl_number'),
t.Carrier.as_('carrier'),
t.Vessel.as_('vessel'),
t.NumberOfContainers.as_('container_count'),
diff --git a/modules/automation/view/freight_booking_info_tree.xml b/modules/automation/view/freight_booking_info_tree.xml
index af17ef3..34467a3 100644
--- a/modules/automation/view/freight_booking_info_tree.xml
+++ b/modules/automation/view/freight_booking_info_tree.xml
@@ -6,6 +6,7 @@
+
From e8693387039bf69dcdbee2a9b217a6dbc0acb34f Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 18 Jan 2026 21:22:41 +0100
Subject: [PATCH 023/618] 18.01.26
---
modules/automation/freight_booking.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/automation/freight_booking.py b/modules/automation/freight_booking.py
index fd78d29..cd89e4f 100644
--- a/modules/automation/freight_booking.py
+++ b/modules/automation/freight_booking.py
@@ -29,7 +29,7 @@ class FreightBookingInfo(ModelSQL, ModelView):
CurrentTimestamp().as_('create_date'),
Literal(None).as_('write_uid'),
Literal(None).as_('write_date'),
- t.FintradeBookingKey.as_('id'),
+ t.id.as_('id'),
t.ShippingInstructionNumber.as_('booking_number'),
t.BookingAgent.as_('agent'),
t.ExpectedController.as_('controller'),
From 661d38404a914056443b8e52503a4b5205314d18 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 18 Jan 2026 21:28:40 +0100
Subject: [PATCH 024/618] 18.01.26
---
modules/automation/freight_booking.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/automation/freight_booking.py b/modules/automation/freight_booking.py
index cd89e4f..080eb4f 100644
--- a/modules/automation/freight_booking.py
+++ b/modules/automation/freight_booking.py
@@ -29,7 +29,7 @@ class FreightBookingInfo(ModelSQL, ModelView):
CurrentTimestamp().as_('create_date'),
Literal(None).as_('write_uid'),
Literal(None).as_('write_date'),
- t.id.as_('id'),
+ (t.FintradeBookingKey+t.ShippingInstructionNumber).as_('id'),
t.ShippingInstructionNumber.as_('booking_number'),
t.BookingAgent.as_('agent'),
t.ExpectedController.as_('controller'),
From 49731501d6795bbae811c49b119a334e128f0e79 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 18 Jan 2026 22:00:54 +0100
Subject: [PATCH 025/618] 18.01.26
---
modules/automation/freight_booking.py | 26 +++++++++++++-------------
1 file changed, 13 insertions(+), 13 deletions(-)
diff --git a/modules/automation/freight_booking.py b/modules/automation/freight_booking.py
index 080eb4f..83a86de 100644
--- a/modules/automation/freight_booking.py
+++ b/modules/automation/freight_booking.py
@@ -29,19 +29,19 @@ class FreightBookingInfo(ModelSQL, ModelView):
CurrentTimestamp().as_('create_date'),
Literal(None).as_('write_uid'),
Literal(None).as_('write_date'),
- (t.FintradeBookingKey+t.ShippingInstructionNumber).as_('id'),
- t.ShippingInstructionNumber.as_('booking_number'),
- t.BookingAgent.as_('agent'),
- t.ExpectedController.as_('controller'),
- t.Loading.as_('origin'),
- t.Destination.as_('destination'),
- t.ETD_Date.as_('etd'),
- t.BL_Date.as_('bl_date'),
- t.BL_Number.as_('bl_number'),
- t.Carrier.as_('carrier'),
- t.Vessel.as_('vessel'),
- t.NumberOfContainers.as_('container_count'),
- t.ShippingInstructionQuantity.as_('quantity')
+ Column('FintradeBookingKey', t).as_('id'),
+ Column('ShippingInstructionNumber', t).as_('booking_number'),
+ Column('BookingAgent', t).as_('agent'),
+ Column('ExpectedController', t).as_('controller'),
+ Column('Loading', t).as_('origin'),
+ Column('Destination', t).as_('destination'),
+ Column('ETD_Date', t).as_('etd'),
+ Column('BL_Date', t).as_('bl_date'),
+ Column('BL_Number', t).as_('bl_number'),
+ Column('Carrier', t).as_('carrier'),
+ Column('Vessel', t).as_('vessel'),
+ Column('NumberOfContainers', t).as_('container_count'),
+ Column('ShippingInstructionQuantity', t).as_('quantity'),
)
@classmethod
From 336c2415b334feb9dc9732dc866c79b032741998 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 18 Jan 2026 22:08:41 +0100
Subject: [PATCH 026/618] 18.01.26
---
modules/automation/freight_booking.py | 26 +++++++++++++-------------
1 file changed, 13 insertions(+), 13 deletions(-)
diff --git a/modules/automation/freight_booking.py b/modules/automation/freight_booking.py
index 83a86de..c291967 100644
--- a/modules/automation/freight_booking.py
+++ b/modules/automation/freight_booking.py
@@ -29,19 +29,19 @@ class FreightBookingInfo(ModelSQL, ModelView):
CurrentTimestamp().as_('create_date'),
Literal(None).as_('write_uid'),
Literal(None).as_('write_date'),
- Column('FintradeBookingKey', t).as_('id'),
- Column('ShippingInstructionNumber', t).as_('booking_number'),
- Column('BookingAgent', t).as_('agent'),
- Column('ExpectedController', t).as_('controller'),
- Column('Loading', t).as_('origin'),
- Column('Destination', t).as_('destination'),
- Column('ETD_Date', t).as_('etd'),
- Column('BL_Date', t).as_('bl_date'),
- Column('BL_Number', t).as_('bl_number'),
- Column('Carrier', t).as_('carrier'),
- Column('Vessel', t).as_('vessel'),
- Column('NumberOfContainers', t).as_('container_count'),
- Column('ShippingInstructionQuantity', t).as_('quantity'),
+ Column(t, 'FintradeBookingKey').as_('id'),
+ Column(t, 'ShippingInstructionNumber').as_('booking_number'),
+ Column(t, 'BookingAgent').as_('agent'),
+ Column(t, 'ExpectedController').as_('controller'),
+ Column(t, 'Loading').as_('origin'),
+ Column(t, 'Destination').as_('destination'),
+ Column(t, 'ETD_Date').as_('etd'),
+ Column(t, 'BL_Date').as_('bl_date'),
+ Column(t, 'BL_Number').as_('bl_number'),
+ Column(t, 'Carrier').as_('carrier'),
+ Column(t, 'Vessel').as_('vessel'),
+ Column(t, 'NumberOfContainers').as_('container_count'),
+ Column(t, 'ShippingInstructionQuantity').as_('quantity'),
)
@classmethod
From 9daa701a284d3c80e3d1ab9d52616de4f03c8190 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 18 Jan 2026 22:23:09 +0100
Subject: [PATCH 027/618] 18.01.26
---
modules/automation/freight_booking.py | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/modules/automation/freight_booking.py b/modules/automation/freight_booking.py
index c291967..0d20691 100644
--- a/modules/automation/freight_booking.py
+++ b/modules/automation/freight_booking.py
@@ -2,6 +2,8 @@ from trytond.model import ModelSQL, ModelView, fields
from sql import Table
from sql.functions import CurrentTimestamp
from sql import Column, Literal
+import logging
+logger = logging.getLogger(__name__)
class FreightBookingInfo(ModelSQL, ModelView):
"Freight Booking"
@@ -23,8 +25,8 @@ class FreightBookingInfo(ModelSQL, ModelView):
@classmethod
def table_query(cls):
t = Table('freight_booking_info')
-
- return t.select(
+
+ query = t.select(
Literal(0).as_('create_uid'),
CurrentTimestamp().as_('create_date'),
Literal(None).as_('write_uid'),
@@ -43,6 +45,8 @@ class FreightBookingInfo(ModelSQL, ModelView):
Column(t, 'NumberOfContainers').as_('container_count'),
Column(t, 'ShippingInstructionQuantity').as_('quantity'),
)
+ logger.info("*****QUERY*****:%s",query)
+ return query
@classmethod
def __setup__(cls):
From 8ae4aeb3e8aeb71ddc59803436251e755d5361f0 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 18 Jan 2026 23:00:29 +0100
Subject: [PATCH 028/618] 18.01.26
---
modules/automation/freight_booking.py | 4 ++--
modules/automation/view/freight_booking_info_tree.xml | 1 -
2 files changed, 2 insertions(+), 3 deletions(-)
diff --git a/modules/automation/freight_booking.py b/modules/automation/freight_booking.py
index 0d20691..e058950 100644
--- a/modules/automation/freight_booking.py
+++ b/modules/automation/freight_booking.py
@@ -27,7 +27,7 @@ class FreightBookingInfo(ModelSQL, ModelView):
t = Table('freight_booking_info')
query = t.select(
- Literal(0).as_('create_uid'),
+ Literal(None).as_('create_uid'),
CurrentTimestamp().as_('create_date'),
Literal(None).as_('write_uid'),
Literal(None).as_('write_date'),
@@ -45,7 +45,7 @@ class FreightBookingInfo(ModelSQL, ModelView):
Column(t, 'NumberOfContainers').as_('container_count'),
Column(t, 'ShippingInstructionQuantity').as_('quantity'),
)
- logger.info("*****QUERY*****:%s",query)
+ #logger.info("*****QUERY*****:%s",query)
return query
@classmethod
diff --git a/modules/automation/view/freight_booking_info_tree.xml b/modules/automation/view/freight_booking_info_tree.xml
index 34467a3..544f055 100644
--- a/modules/automation/view/freight_booking_info_tree.xml
+++ b/modules/automation/view/freight_booking_info_tree.xml
@@ -10,5 +10,4 @@
-
\ No newline at end of file
From 24c11860617030e705ade96bcc8e8fb35047cfbe Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 18 Jan 2026 23:30:49 +0100
Subject: [PATCH 029/618] 18.01.26
---
modules/automation/freight_booking.py | 2 +-
modules/automation/freight_booking.xml | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/modules/automation/freight_booking.py b/modules/automation/freight_booking.py
index e058950..42a83b2 100644
--- a/modules/automation/freight_booking.py
+++ b/modules/automation/freight_booking.py
@@ -7,7 +7,7 @@ logger = logging.getLogger(__name__)
class FreightBookingInfo(ModelSQL, ModelView):
"Freight Booking"
- __name__ = 'freight.booking'
+ __name__ = 'freight.booking.info'
booking_number = fields.Char("Booking Number")
agent = fields.Char("Agent")
diff --git a/modules/automation/freight_booking.xml b/modules/automation/freight_booking.xml
index 8df89fb..480e761 100644
--- a/modules/automation/freight_booking.xml
+++ b/modules/automation/freight_booking.xml
@@ -1,13 +1,13 @@
- freight.booking
+ freight.booking.info
tree
freight_booking_info_tree
Freight Bookings
- freight.booking
+ freight.booking.info
From 5c1ca6a89568104470d0fa23cc6736fdf44fd61b Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 18 Jan 2026 23:55:08 +0100
Subject: [PATCH 030/618] 18.01.26
---
modules/automation/freight_booking.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/modules/automation/freight_booking.py b/modules/automation/freight_booking.py
index 42a83b2..b28a658 100644
--- a/modules/automation/freight_booking.py
+++ b/modules/automation/freight_booking.py
@@ -9,7 +9,7 @@ class FreightBookingInfo(ModelSQL, ModelView):
"Freight Booking"
__name__ = 'freight.booking.info'
- booking_number = fields.Char("Booking Number")
+ booking_number = fields.Integer("Booking Number")
agent = fields.Char("Agent")
controller = fields.Char("Customer")
origin = fields.Char("Origin")
@@ -19,7 +19,7 @@ class FreightBookingInfo(ModelSQL, ModelView):
bl_number = fields.Char("BL Nb")
carrier = fields.Char("Carrier")
vessel = fields.Char("Vessel")
- container_count = fields.Integer("Containers")
+ container_count = fields.Float("Containers")
quantity = fields.Float("Gross Weight")
@classmethod
From c39bb1d6d1192afd3d394e320f8fafbc68a1d0d5 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 18 Jan 2026 23:59:24 +0100
Subject: [PATCH 031/618] 18.01.26
---
modules/automation/freight_booking.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/modules/automation/freight_booking.py b/modules/automation/freight_booking.py
index b28a658..9119aeb 100644
--- a/modules/automation/freight_booking.py
+++ b/modules/automation/freight_booking.py
@@ -14,8 +14,8 @@ class FreightBookingInfo(ModelSQL, ModelView):
controller = fields.Char("Customer")
origin = fields.Char("Origin")
destination = fields.Char("Destination")
- etd = fields.Date("ETD")
- bl_date = fields.Date("BL date")
+ etd = fields.Integer("ETD")
+ bl_date = fields.Integer("BL date")
bl_number = fields.Char("BL Nb")
carrier = fields.Char("Carrier")
vessel = fields.Char("Vessel")
From a479dc718be8c0601883216977faa9d400113ef7 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 20 Jan 2026 11:04:53 +0100
Subject: [PATCH 032/618] 20.01.26
---
modules/automation/__init__.py | 3 +-
modules/automation/cron.py | 118 ++++++++++++++++++++++++++++++++
modules/automation/cron.xml | 37 ++++++++++
modules/automation/tryton.cfg | 3 +-
modules/purchase_trade/party.py | 13 ++++
modules/purchase_trade/stock.py | 23 ++++---
modules/stock/vessel.py | 13 ++++
7 files changed, 199 insertions(+), 11 deletions(-)
create mode 100644 modules/automation/cron.py
create mode 100644 modules/automation/cron.xml
diff --git a/modules/automation/__init__.py b/modules/automation/__init__.py
index 5944d8f..a934ce9 100644
--- a/modules/automation/__init__.py
+++ b/modules/automation/__init__.py
@@ -1,9 +1,10 @@
from trytond.pool import Pool
-from . import automation,rules,freight_booking #, document
+from . import automation,rules,freight_booking,cron #, document
def register():
Pool.register(
automation.AutomationDocument,
rules.AutomationRuleSet,
freight_booking.FreightBookingInfo,
+ cron.Cron,
module='automation', type_='model')
\ No newline at end of file
diff --git a/modules/automation/cron.py b/modules/automation/cron.py
new file mode 100644
index 0000000..9031582
--- /dev/null
+++ b/modules/automation/cron.py
@@ -0,0 +1,118 @@
+import requests
+from decimal import getcontext, Decimal, ROUND_HALF_UP
+from datetime import datetime
+from trytond.model import fields
+from trytond.model import (ModelSQL, ModelView)
+from trytond.pool import Pool, PoolMeta
+from trytond.transaction import Transaction
+import logging
+from sql import Table
+logger = logging.getLogger(__name__)
+
+class Cron(metaclass=PoolMeta):
+ __name__ = 'ir.cron'
+
+ @classmethod
+ def __setup__(cls):
+ super().__setup__()
+ cls.method.selection.append(
+ ('automation.cron|update_shipment', "Update Shipment from freight booking info"))
+
+class PriceCron(ModelSQL, ModelView):
+ "Price Cron"
+ __name__ = 'automation.cron'
+
+ frequency = fields.Selection([
+ ('daily', "Daily"),
+ ('weekly', "Weekly"),
+ ('monthly', "Monthly"),
+ ], "Frequency", required=True,
+ help="How frequently rates must be updated.")
+
+ last_update = fields.Date("Last Update", required=True)
+
+ @classmethod
+ def __setup__(cls):
+ super().__setup__()
+ cls._buttons.update({
+ 'run': {},
+ })
+
+ @classmethod
+ def default_frequency(cls):
+ return 'daily'
+
+ @classmethod
+ def default_last_update(cls):
+ pool = Pool()
+ Date = pool.get('ir.date')
+ return Date.today()
+
+ @classmethod
+ @ModelView.button
+ def run(cls, crons):
+ cls.update_forex(crons)
+
+ @classmethod
+ def update_shipment(cls):
+ t = Table('freight_booking_info')
+ cursor = Transaction().connection.cursor()
+
+ cursor.execute(*t.select(
+ t.ShippingInstructionNumber,
+ t.ShippingInstructionDate,
+ t.ShippingInstructionQuantity,
+ t.ShippingInstructionQuantityUnit,
+ t.NumberOfContainers,
+ t.ContainerType,
+ t.Loading,
+ t.Destination,
+ t.BookingAgent,
+ t.Carrier,
+ t.Vessel,
+ t.BL_Number,
+ t.ETD_Date,
+ t.BL_Date,
+ t.ExpectedController,
+ t.Comments,
+ t.FintradeBookingKey,
+ ))
+
+ for row in cursor.fetchall():
+ (
+ si_number,
+ si_date,
+ si_quantity,
+ si_unit,
+ container_number,
+ container_type,
+ loading,
+ destination,
+ agent,
+ carrier,
+ vessel,
+ bl_number,
+ etd_date,
+ bl_date,
+ controller,
+ comments,
+ fintrade_booking_key,
+ ) = row
+ logger.info("ROW_FROM_CRON:%s",row)
+ Location = Pool().get('stock.location')
+ Vessel = Pool().get('stock.vessel')
+ Party = Pool().get('party.party')
+ ShipmentIn = Pool().get('stock.shipment.in')
+ shipment = ShipmentIn.search(['reference','=',si_number])
+ if not shipment:
+ sh = ShipmentIn()
+ sh.reference = si_number
+ sh.from_location = Location.getLocationByName(loading,'supplier')
+ sh.to_location = Location.getLocationByName(destination,'customer')
+ sh.carrier = Party.getPartyByName(carrier)
+ sh.vessel = Vessel.getVesselByName(vessel)
+ sh.bl_number = bl_number
+ sh.bl_date = bl_date
+ sh.etd = etd_date
+ ShipmentIn.save([sh])
+ logger.info("SHIPMENT_CREATED:%s",sh)
diff --git a/modules/automation/cron.xml b/modules/automation/cron.xml
new file mode 100644
index 0000000..ef872b9
--- /dev/null
+++ b/modules/automation/cron.xml
@@ -0,0 +1,37 @@
+
+
+
+
+ automation.cron
+ tree
+ cron_list
+
+
+
+ automation.cron
+ form
+ cron_form
+
+
+
+ Update shipment from freight booking
+ automation.cron
+
+
+
+
+
+
+
+
+
+
+
+
+
+ automation.cron|update_shipment
+
+ days
+
+
+
diff --git a/modules/automation/tryton.cfg b/modules/automation/tryton.cfg
index 0ddc3cc..c8027fb 100644
--- a/modules/automation/tryton.cfg
+++ b/modules/automation/tryton.cfg
@@ -6,4 +6,5 @@ depends:
document_incoming
xml:
automation.xml
- freight_booking.xml
\ No newline at end of file
+ freight_booking.xml
+ cron.xml
\ No newline at end of file
diff --git a/modules/purchase_trade/party.py b/modules/purchase_trade/party.py
index dcebfda..331c78a 100755
--- a/modules/purchase_trade/party.py
+++ b/modules/purchase_trade/party.py
@@ -22,3 +22,16 @@ class Party(metaclass=PoolMeta):
wb = fields.Many2One('purchase.weight.basis',"Weight basis")
association = fields.Many2One('purchase.association',"Association")
execution = fields.One2Many('party.execution','party',"")
+
+ @classmethod
+ def getPartyByName(cls, party, category=None):
+ party = party.upper()
+ p = cls.search([('name', '=', party)], limit=1)
+ if p:
+ return p[0].id
+ else:
+ p = cls()
+ p.name = party
+ cls.save([p])
+ return p.id
+
\ No newline at end of file
diff --git a/modules/purchase_trade/stock.py b/modules/purchase_trade/stock.py
index 6183c3a..c519abe 100755
--- a/modules/purchase_trade/stock.py
+++ b/modules/purchase_trade/stock.py
@@ -24,16 +24,21 @@ class Location(metaclass=PoolMeta):
__name__ = 'stock.location'
@classmethod
- def get_transit_id(cls):
- transit = cls.search([('name', '=', 'Transit')], limit=1)
- if transit:
- return transit[0].id
+ def getLocationByName(cls, location, type):
+ location = location.upper()
+ loc = cls.search([('name', '=', location),('type', '=', type)], limit=1)
+ if loc:
+ return loc[0].id
else:
- transit = cls()
- transit.name = 'Transit'
- transit.type = 'storage'
- cls.save([transit])
- return transit.id
+ loc = cls()
+ loc.name = location
+ loc.type = type
+ cls.save([loc])
+ return loc.id
+
+ @classmethod
+ def get_transit_id(cls):
+ return cls.getLocationByName('TRANSIT','storage')
def is_transit(self):
if self.name == 'Transit':
diff --git a/modules/stock/vessel.py b/modules/stock/vessel.py
index 3f0cdd2..07e595e 100755
--- a/modules/stock/vessel.py
+++ b/modules/stock/vessel.py
@@ -93,6 +93,19 @@ class Vessel(
#logger.info("GET_INFO:%s",aux)
return inf
+ @classmethod
+ def getVesselByName(cls, vessel, imo=None):
+ vessel = vessel.upper()
+ v = cls.search([('vessel_name', '=', vessel)], limit=1)
+ if v:
+ return v[0].id
+ else:
+ v = cls()
+ v.vessel_name = vessel
+ v.vessel_imo = imo
+ cls.save([v])
+ return v.id
+
@classmethod
def remover(cls,tr = ""):
char_to_keep = list("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ ")
From 5df6378e80878aae0ab6dd46b414bca4157576fd Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 20 Jan 2026 11:14:09 +0100
Subject: [PATCH 033/618] 20.01.26
---
modules/automation/__init__.py | 1 +
modules/automation/cron.py | 6 +++---
2 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/modules/automation/__init__.py b/modules/automation/__init__.py
index a934ce9..58b9658 100644
--- a/modules/automation/__init__.py
+++ b/modules/automation/__init__.py
@@ -7,4 +7,5 @@ def register():
rules.AutomationRuleSet,
freight_booking.FreightBookingInfo,
cron.Cron,
+ cron.AutomationCron,
module='automation', type_='model')
\ No newline at end of file
diff --git a/modules/automation/cron.py b/modules/automation/cron.py
index 9031582..59e2e2e 100644
--- a/modules/automation/cron.py
+++ b/modules/automation/cron.py
@@ -18,8 +18,8 @@ class Cron(metaclass=PoolMeta):
cls.method.selection.append(
('automation.cron|update_shipment', "Update Shipment from freight booking info"))
-class PriceCron(ModelSQL, ModelView):
- "Price Cron"
+class AutomationCron(ModelSQL, ModelView):
+ "Automation Cron"
__name__ = 'automation.cron'
frequency = fields.Selection([
@@ -51,7 +51,7 @@ class PriceCron(ModelSQL, ModelView):
@classmethod
@ModelView.button
def run(cls, crons):
- cls.update_forex(crons)
+ cls.update_shipment(crons)
@classmethod
def update_shipment(cls):
From 51a512e5682cdd5a5db093c1680013338192dacf Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 20 Jan 2026 11:25:29 +0100
Subject: [PATCH 034/618] 20.01.26
---
modules/automation/cron.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/automation/cron.py b/modules/automation/cron.py
index 59e2e2e..d10d95c 100644
--- a/modules/automation/cron.py
+++ b/modules/automation/cron.py
@@ -100,7 +100,7 @@ class AutomationCron(ModelSQL, ModelView):
) = row
logger.info("ROW_FROM_CRON:%s",row)
Location = Pool().get('stock.location')
- Vessel = Pool().get('stock.vessel')
+ Vessel = Pool().get('trade.vessel')
Party = Pool().get('party.party')
ShipmentIn = Pool().get('stock.shipment.in')
shipment = ShipmentIn.search(['reference','=',si_number])
From da530a221187023b8dd3e981a4f25e595351707e Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 20 Jan 2026 11:30:53 +0100
Subject: [PATCH 035/618] 20.01.26
---
modules/automation/cron.py | 1 +
1 file changed, 1 insertion(+)
diff --git a/modules/automation/cron.py b/modules/automation/cron.py
index d10d95c..6d786da 100644
--- a/modules/automation/cron.py
+++ b/modules/automation/cron.py
@@ -111,6 +111,7 @@ class AutomationCron(ModelSQL, ModelView):
sh.to_location = Location.getLocationByName(destination,'customer')
sh.carrier = Party.getPartyByName(carrier)
sh.vessel = Vessel.getVesselByName(vessel)
+ sh.cargo_mode = 'bulk'
sh.bl_number = bl_number
sh.bl_date = bl_date
sh.etd = etd_date
From a1100193451f9e902881a581e9ed52fe40c29030 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 20 Jan 2026 11:40:44 +0100
Subject: [PATCH 036/618] 20.01.26
---
modules/automation/cron.py | 1 +
1 file changed, 1 insertion(+)
diff --git a/modules/automation/cron.py b/modules/automation/cron.py
index 6d786da..e95a8f4 100644
--- a/modules/automation/cron.py
+++ b/modules/automation/cron.py
@@ -110,6 +110,7 @@ class AutomationCron(ModelSQL, ModelView):
sh.from_location = Location.getLocationByName(loading,'supplier')
sh.to_location = Location.getLocationByName(destination,'customer')
sh.carrier = Party.getPartyByName(carrier)
+ sh.supplier = Party.getPartyByName(agent)
sh.vessel = Vessel.getVesselByName(vessel)
sh.cargo_mode = 'bulk'
sh.bl_number = bl_number
From 6d75b4660ed28b59951d07cc7c17a8af25e0c871 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 20 Jan 2026 11:56:38 +0100
Subject: [PATCH 037/618] 20.01.26
---
modules/stock/shipment.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/modules/stock/shipment.py b/modules/stock/shipment.py
index a0caca9..2b90476 100755
--- a/modules/stock/shipment.py
+++ b/modules/stock/shipment.py
@@ -344,7 +344,7 @@ class ShipmentIn(
},
help="Where the stock is received.")
warehouse_input = fields.Many2One(
- 'stock.location', "Warehouse Input", required=True,
+ 'stock.location', "Warehouse Input", required=False,
domain=[
['OR',
('type', '=', 'storage'),
@@ -358,7 +358,7 @@ class ShipmentIn(
'readonly': Eval('state') != 'draft',
})
warehouse_storage = fields.Many2One(
- 'stock.location', "Warehouse Storage", required=True,
+ 'stock.location', "Warehouse Storage", required=False,
domain=[
('type', 'in', ['storage', 'view']),
If(Eval('state') == 'draft',
From 437904bcd8dd8cb8b377c23e45d333b44a155391 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 20 Jan 2026 13:08:52 +0100
Subject: [PATCH 038/618] 20.01.26
---
modules/purchase_trade/party.py | 4 ++--
modules/purchase_trade/stock.py | 2 +-
modules/stock/vessel.py | 4 ++--
3 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/modules/purchase_trade/party.py b/modules/purchase_trade/party.py
index 331c78a..d0e7d71 100755
--- a/modules/purchase_trade/party.py
+++ b/modules/purchase_trade/party.py
@@ -28,10 +28,10 @@ class Party(metaclass=PoolMeta):
party = party.upper()
p = cls.search([('name', '=', party)], limit=1)
if p:
- return p[0].id
+ return p[0]
else:
p = cls()
p.name = party
cls.save([p])
- return p.id
+ return p
\ No newline at end of file
diff --git a/modules/purchase_trade/stock.py b/modules/purchase_trade/stock.py
index c519abe..4b56865 100755
--- a/modules/purchase_trade/stock.py
+++ b/modules/purchase_trade/stock.py
@@ -34,7 +34,7 @@ class Location(metaclass=PoolMeta):
loc.name = location
loc.type = type
cls.save([loc])
- return loc.id
+ return loc
@classmethod
def get_transit_id(cls):
diff --git a/modules/stock/vessel.py b/modules/stock/vessel.py
index 07e595e..4a5fc0c 100755
--- a/modules/stock/vessel.py
+++ b/modules/stock/vessel.py
@@ -98,13 +98,13 @@ class Vessel(
vessel = vessel.upper()
v = cls.search([('vessel_name', '=', vessel)], limit=1)
if v:
- return v[0].id
+ return v[0]
else:
v = cls()
v.vessel_name = vessel
v.vessel_imo = imo
cls.save([v])
- return v.id
+ return v
@classmethod
def remover(cls,tr = ""):
From 327de18f1add5278fd76fd131955e40d362811f6 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 20 Jan 2026 14:50:32 +0100
Subject: [PATCH 039/618] 20.01.26
---
modules/purchase_trade/party.py | 2 ++
1 file changed, 2 insertions(+)
diff --git a/modules/purchase_trade/party.py b/modules/purchase_trade/party.py
index d0e7d71..08fab37 100755
--- a/modules/purchase_trade/party.py
+++ b/modules/purchase_trade/party.py
@@ -2,6 +2,7 @@ from trytond.model import ModelSQL, ModelView, fields
from trytond.pool import PoolMeta
from trytond.exceptions import UserError
from trytond.modules.purchase_trade.purchase import (TRIGGERS)
+from trytond.transaction import Transaction
__all__ = ['Party']
__metaclass__ = PoolMeta
@@ -33,5 +34,6 @@ class Party(metaclass=PoolMeta):
p = cls()
p.name = party
cls.save([p])
+ Transaction().connection.flush()
return p
\ No newline at end of file
From 117c33a2ea7934f7f5f0f3a9bde65afa4f6438bb Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 20 Jan 2026 14:55:04 +0100
Subject: [PATCH 040/618] 20.01.26
---
modules/automation/cron.py | 126 +++++++++++++++++---------------
modules/purchase_trade/party.py | 1 -
2 files changed, 69 insertions(+), 58 deletions(-)
diff --git a/modules/automation/cron.py b/modules/automation/cron.py
index e95a8f4..263fba4 100644
--- a/modules/automation/cron.py
+++ b/modules/automation/cron.py
@@ -1,60 +1,38 @@
-import requests
-from decimal import getcontext, Decimal, ROUND_HALF_UP
-from datetime import datetime
-from trytond.model import fields
-from trytond.model import (ModelSQL, ModelView)
+from trytond.model import ModelSQL, ModelView, fields
from trytond.pool import Pool, PoolMeta
from trytond.transaction import Transaction
import logging
from sql import Table
+
logger = logging.getLogger(__name__)
-class Cron(metaclass=PoolMeta):
- __name__ = 'ir.cron'
-
- @classmethod
- def __setup__(cls):
- super().__setup__()
- cls.method.selection.append(
- ('automation.cron|update_shipment', "Update Shipment from freight booking info"))
-
class AutomationCron(ModelSQL, ModelView):
"Automation Cron"
__name__ = 'automation.cron'
frequency = fields.Selection([
- ('daily', "Daily"),
- ('weekly', "Weekly"),
- ('monthly', "Monthly"),
- ], "Frequency", required=True,
- help="How frequently rates must be updated.")
-
+ ('daily', "Daily"),
+ ('weekly', "Weekly"),
+ ('monthly', "Monthly"),
+ ], "Frequency", required=True,
+ help="How frequently rates must be updated.")
+
last_update = fields.Date("Last Update", required=True)
@classmethod
- def __setup__(cls):
- super().__setup__()
- cls._buttons.update({
- 'run': {},
- })
-
- @classmethod
- def default_frequency(cls):
- return 'daily'
-
- @classmethod
- def default_last_update(cls):
- pool = Pool()
- Date = pool.get('ir.date')
- return Date.today()
-
- @classmethod
- @ModelView.button
def run(cls, crons):
- cls.update_shipment(crons)
+ cls.update_shipment()
@classmethod
def update_shipment(cls):
+ # Objets Tryton
+ PoolObj = Pool()
+ ShipmentIn = PoolObj.get('stock.shipment.in')
+ Party = PoolObj.get('party.party')
+ Vessel = PoolObj.get('trade.vessel')
+ Location = PoolObj.get('stock.location')
+
+ # Table externe
t = Table('freight_booking_info')
cursor = Transaction().connection.cursor()
@@ -86,11 +64,11 @@ class AutomationCron(ModelSQL, ModelView):
si_unit,
container_number,
container_type,
- loading,
- destination,
- agent,
- carrier,
- vessel,
+ loading_name,
+ destination_name,
+ agent_name,
+ carrier_name,
+ vessel_name,
bl_number,
etd_date,
bl_date,
@@ -98,23 +76,57 @@ class AutomationCron(ModelSQL, ModelView):
comments,
fintrade_booking_key,
) = row
- logger.info("ROW_FROM_CRON:%s",row)
- Location = Pool().get('stock.location')
- Vessel = Pool().get('trade.vessel')
- Party = Pool().get('party.party')
- ShipmentIn = Pool().get('stock.shipment.in')
- shipment = ShipmentIn.search(['reference','=',si_number])
- if not shipment:
+
+ logger.info("ROW_FROM_CRON: %s", row)
+
+ # ----- Récupération / création des recordsets -----
+ def get_or_create_party(name):
+ name = name.upper()
+ p = Party.search([('name', '=', name)], limit=1)
+ if p:
+ return p[0]
+ new_p = Party()
+ new_p.name = name
+ Party.save([new_p])
+ return new_p
+
+ def get_or_create_vessel(name, imo=None):
+ name = name.upper()
+ v = Vessel.search([('vessel_name', '=', name)], limit=1)
+ if v:
+ return v[0]
+ new_v = Vessel()
+ new_v.vessel_name = name
+ new_v.vessel_imo = imo
+ Vessel.save([new_v])
+ return new_v
+
+ def get_or_create_location(name, type_):
+ name = name.upper()
+ loc = Location.search([('name', '=', name), ('type', '=', type_)], limit=1)
+ if loc:
+ return loc[0]
+ new_loc = Location()
+ new_loc.name = name
+ new_loc.type = type_
+ Location.save([new_loc])
+ return new_loc
+
+ # ----- Vérification si le Shipment existe -----
+ shipment = ShipmentIn.search([('reference','=',si_number)], limit=1)
+ if shipment:
+ sh = shipment[0]
+ else:
sh = ShipmentIn()
sh.reference = si_number
- sh.from_location = Location.getLocationByName(loading,'supplier')
- sh.to_location = Location.getLocationByName(destination,'customer')
- sh.carrier = Party.getPartyByName(carrier)
- sh.supplier = Party.getPartyByName(agent)
- sh.vessel = Vessel.getVesselByName(vessel)
+ sh.from_location = get_or_create_location(loading_name, 'supplier')
+ sh.to_location = get_or_create_location(destination_name, 'customer')
+ sh.carrier = get_or_create_party(carrier_name)
+ sh.supplier = get_or_create_party(agent_name)
+ sh.vessel = get_or_create_vessel(vessel_name)
sh.cargo_mode = 'bulk'
sh.bl_number = bl_number
sh.bl_date = bl_date
sh.etd = etd_date
ShipmentIn.save([sh])
- logger.info("SHIPMENT_CREATED:%s",sh)
+ logger.info("SHIPMENT_CREATED: %s", sh)
diff --git a/modules/purchase_trade/party.py b/modules/purchase_trade/party.py
index 08fab37..fde79b8 100755
--- a/modules/purchase_trade/party.py
+++ b/modules/purchase_trade/party.py
@@ -34,6 +34,5 @@ class Party(metaclass=PoolMeta):
p = cls()
p.name = party
cls.save([p])
- Transaction().connection.flush()
return p
\ No newline at end of file
From c5fbd3e5285c4dd595f73f22b513b912288abbb7 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 20 Jan 2026 14:57:16 +0100
Subject: [PATCH 041/618] 20.01.26
---
modules/automation/cron.py | 16 ++++++++++++++--
1 file changed, 14 insertions(+), 2 deletions(-)
diff --git a/modules/automation/cron.py b/modules/automation/cron.py
index 263fba4..e954fd6 100644
--- a/modules/automation/cron.py
+++ b/modules/automation/cron.py
@@ -1,11 +1,23 @@
-from trytond.model import ModelSQL, ModelView, fields
+import requests
+from decimal import getcontext, Decimal, ROUND_HALF_UP
+from datetime import datetime
+from trytond.model import fields
+from trytond.model import (ModelSQL, ModelView)
from trytond.pool import Pool, PoolMeta
from trytond.transaction import Transaction
import logging
from sql import Table
-
logger = logging.getLogger(__name__)
+class Cron(metaclass=PoolMeta):
+ __name__ = 'ir.cron'
+
+ @classmethod
+ def __setup__(cls):
+ super().__setup__()
+ cls.method.selection.append(
+ ('automation.cron|update_shipment', "Update Shipment from freight booking info"))
+
class AutomationCron(ModelSQL, ModelView):
"Automation Cron"
__name__ = 'automation.cron'
From c5053638dfcf4f89e6e8d1ff43584e97eb3fd5e7 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 20 Jan 2026 15:25:15 +0100
Subject: [PATCH 042/618] 20.01.26
---
modules/automation/cron.py | 150 ++++++++++++++++++++++++-------------
1 file changed, 99 insertions(+), 51 deletions(-)
diff --git a/modules/automation/cron.py b/modules/automation/cron.py
index e954fd6..fbe68bd 100644
--- a/modules/automation/cron.py
+++ b/modules/automation/cron.py
@@ -2,11 +2,12 @@ import requests
from decimal import getcontext, Decimal, ROUND_HALF_UP
from datetime import datetime
from trytond.model import fields
-from trytond.model import (ModelSQL, ModelView)
+from trytond.model import ModelSQL, ModelView
from trytond.pool import Pool, PoolMeta
from trytond.transaction import Transaction
import logging
from sql import Table
+
logger = logging.getLogger(__name__)
class Cron(metaclass=PoolMeta):
@@ -16,7 +17,8 @@ class Cron(metaclass=PoolMeta):
def __setup__(cls):
super().__setup__()
cls.method.selection.append(
- ('automation.cron|update_shipment', "Update Shipment from freight booking info"))
+ ('automation.cron|update_shipment', "Update Shipment from freight booking info")
+ )
class AutomationCron(ModelSQL, ModelView):
"Automation Cron"
@@ -37,7 +39,6 @@ class AutomationCron(ModelSQL, ModelView):
@classmethod
def update_shipment(cls):
- # Objets Tryton
PoolObj = Pool()
ShipmentIn = PoolObj.get('stock.shipment.in')
Party = PoolObj.get('party.party')
@@ -47,7 +48,6 @@ class AutomationCron(ModelSQL, ModelView):
# Table externe
t = Table('freight_booking_info')
cursor = Transaction().connection.cursor()
-
cursor.execute(*t.select(
t.ShippingInstructionNumber,
t.ShippingInstructionDate,
@@ -68,77 +68,125 @@ class AutomationCron(ModelSQL, ModelView):
t.FintradeBookingKey,
))
- for row in cursor.fetchall():
+ # On prépare deux listes pour la sauvegarde en batch
+ parties_to_save = []
+ vessels_to_save = []
+ locations_to_save = []
+
+ # Dictionnaires pour éviter de recréer plusieurs fois le même objet
+ parties_cache = {}
+ vessels_cache = {}
+ locations_cache = {}
+
+ rows = cursor.fetchall()
+ for row in rows:
(
- si_number,
- si_date,
- si_quantity,
- si_unit,
- container_number,
- container_type,
- loading_name,
- destination_name,
- agent_name,
- carrier_name,
- vessel_name,
- bl_number,
- etd_date,
- bl_date,
- controller,
- comments,
- fintrade_booking_key,
+ si_number, si_date, si_quantity, si_unit,
+ container_number, container_type,
+ loading_name, destination_name,
+ agent_name, carrier_name,
+ vessel_name, bl_number,
+ etd_date, bl_date, controller,
+ comments, fintrade_booking_key
) = row
logger.info("ROW_FROM_CRON: %s", row)
- # ----- Récupération / création des recordsets -----
+ # ----- Fonctions pour créer ou récupérer les objets en mémoire -----
def get_or_create_party(name):
- name = name.upper()
- p = Party.search([('name', '=', name)], limit=1)
- if p:
- return p[0]
+ name_upper = name.upper()
+ if name_upper in parties_cache:
+ return parties_cache[name_upper]
+ existing = Party.search([('name', '=', name_upper)], limit=1)
+ if existing:
+ parties_cache[name_upper] = existing[0]
+ return existing[0]
new_p = Party()
- new_p.name = name
- Party.save([new_p])
+ new_p.name = name_upper
+ parties_cache[name_upper] = new_p
+ parties_to_save.append(new_p)
return new_p
def get_or_create_vessel(name, imo=None):
- name = name.upper()
- v = Vessel.search([('vessel_name', '=', name)], limit=1)
- if v:
- return v[0]
+ name_upper = name.upper()
+ if name_upper in vessels_cache:
+ return vessels_cache[name_upper]
+ existing = Vessel.search([('vessel_name', '=', name_upper)], limit=1)
+ if existing:
+ vessels_cache[name_upper] = existing[0]
+ return existing[0]
new_v = Vessel()
- new_v.vessel_name = name
+ new_v.vessel_name = name_upper
new_v.vessel_imo = imo
- Vessel.save([new_v])
+ vessels_cache[name_upper] = new_v
+ vessels_to_save.append(new_v)
return new_v
def get_or_create_location(name, type_):
- name = name.upper()
- loc = Location.search([('name', '=', name), ('type', '=', type_)], limit=1)
- if loc:
- return loc[0]
+ key = f"{name.upper()}_{type_}"
+ if key in locations_cache:
+ return locations_cache[key]
+ existing = Location.search([('name', '=', name.upper()), ('type', '=', type_)], limit=1)
+ if existing:
+ locations_cache[key] = existing[0]
+ return existing[0]
new_loc = Location()
- new_loc.name = name
+ new_loc.name = name.upper()
new_loc.type = type_
- Location.save([new_loc])
+ locations_cache[key] = new_loc
+ locations_to_save.append(new_loc)
return new_loc
- # ----- Vérification si le Shipment existe -----
- shipment = ShipmentIn.search([('reference','=',si_number)], limit=1)
+ # ----- Récupération ou création des objets -----
+ carrier = get_or_create_party(carrier_name)
+ agent = get_or_create_party(agent_name)
+ vessel = get_or_create_vessel(vessel_name)
+ loc_from = get_or_create_location(loading_name, 'supplier')
+ loc_to = get_or_create_location(destination_name, 'customer')
+
+ # Stocke toutes les infos du shipment pour la deuxième étape
+ row_dict = {
+ 'si_number': si_number,
+ 'bl_number': bl_number,
+ 'bl_date': bl_date,
+ 'etd_date': etd_date,
+ 'carrier': carrier,
+ 'agent': agent,
+ 'vessel': vessel,
+ 'from_location': loc_from,
+ 'to_location': loc_to
+ }
+ row._shipment_data = row_dict # on attache les infos au row temporairement
+
+ # ----- Étape 1 : sauvegarde des objets de référence -----
+ if parties_to_save:
+ Party.save(parties_to_save)
+ if vessels_to_save:
+ Vessel.save(vessels_to_save)
+ if locations_to_save:
+ Location.save(locations_to_save)
+
+ # Commit pour garantir que tous les IDs sont corrects
+ Transaction().commit()
+
+ # ----- Étape 2 : création des shipments -----
+ for row in rows:
+ data = row._shipment_data
+ si_number = data['si_number']
+ shipment = ShipmentIn.search([('reference', '=', si_number)], limit=1)
if shipment:
sh = shipment[0]
else:
sh = ShipmentIn()
sh.reference = si_number
- sh.from_location = get_or_create_location(loading_name, 'supplier')
- sh.to_location = get_or_create_location(destination_name, 'customer')
- sh.carrier = get_or_create_party(carrier_name)
- sh.supplier = get_or_create_party(agent_name)
- sh.vessel = get_or_create_vessel(vessel_name)
+ sh.from_location = data['from_location']
+ sh.to_location = data['to_location']
+ sh.carrier = data['carrier']
+ sh.supplier = data['agent']
+ sh.vessel = data['vessel']
sh.cargo_mode = 'bulk'
- sh.bl_number = bl_number
- sh.bl_date = bl_date
- sh.etd = etd_date
+ sh.bl_number = data['bl_number']
+ sh.bl_date = data['bl_date']
+ sh.etd = data['etd_date']
ShipmentIn.save([sh])
logger.info("SHIPMENT_CREATED: %s", sh)
From fcf61605d617065d9ed9fee5ac71743f6b9d8011 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 20 Jan 2026 15:30:40 +0100
Subject: [PATCH 043/618] 20.01.26
---
modules/automation/cron.py | 18 ++++++++----------
1 file changed, 8 insertions(+), 10 deletions(-)
diff --git a/modules/automation/cron.py b/modules/automation/cron.py
index fbe68bd..ba45125 100644
--- a/modules/automation/cron.py
+++ b/modules/automation/cron.py
@@ -68,12 +68,12 @@ class AutomationCron(ModelSQL, ModelView):
t.FintradeBookingKey,
))
- # On prépare deux listes pour la sauvegarde en batch
+ # Préparer les listes pour la sauvegarde et les données du shipment
parties_to_save = []
vessels_to_save = []
locations_to_save = []
+ shipments_data = [] # <-- nouvelle liste
- # Dictionnaires pour éviter de recréer plusieurs fois le même objet
parties_cache = {}
vessels_cache = {}
locations_cache = {}
@@ -92,7 +92,7 @@ class AutomationCron(ModelSQL, ModelView):
logger.info("ROW_FROM_CRON: %s", row)
- # ----- Fonctions pour créer ou récupérer les objets en mémoire -----
+ # ----- Fonctions pour créer ou récupérer les objets -----
def get_or_create_party(name):
name_upper = name.upper()
if name_upper in parties_cache:
@@ -144,8 +144,8 @@ class AutomationCron(ModelSQL, ModelView):
loc_from = get_or_create_location(loading_name, 'supplier')
loc_to = get_or_create_location(destination_name, 'customer')
- # Stocke toutes les infos du shipment pour la deuxième étape
- row_dict = {
+ # Stocker les données pour la deuxième étape
+ shipments_data.append({
'si_number': si_number,
'bl_number': bl_number,
'bl_date': bl_date,
@@ -154,9 +154,8 @@ class AutomationCron(ModelSQL, ModelView):
'agent': agent,
'vessel': vessel,
'from_location': loc_from,
- 'to_location': loc_to
- }
- row._shipment_data = row_dict # on attache les infos au row temporairement
+ 'to_location': loc_to,
+ })
# ----- Étape 1 : sauvegarde des objets de référence -----
if parties_to_save:
@@ -170,8 +169,7 @@ class AutomationCron(ModelSQL, ModelView):
Transaction().commit()
# ----- Étape 2 : création des shipments -----
- for row in rows:
- data = row._shipment_data
+ for data in shipments_data:
si_number = data['si_number']
shipment = ShipmentIn.search([('reference', '=', si_number)], limit=1)
if shipment:
From b43ab082b4af0849236f11eead74e6bc7643047e Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 20 Jan 2026 15:36:55 +0100
Subject: [PATCH 044/618] 20.01.26
---
modules/automation/cron.py | 37 ++++++++++++++++++++-----------------
1 file changed, 20 insertions(+), 17 deletions(-)
diff --git a/modules/automation/cron.py b/modules/automation/cron.py
index ba45125..2a6627f 100644
--- a/modules/automation/cron.py
+++ b/modules/automation/cron.py
@@ -101,11 +101,12 @@ class AutomationCron(ModelSQL, ModelView):
if existing:
parties_cache[name_upper] = existing[0]
return existing[0]
- new_p = Party()
- new_p.name = name_upper
- parties_cache[name_upper] = new_p
- parties_to_save.append(new_p)
- return new_p
+ if name:
+ new_p = Party()
+ new_p.name = name_upper
+ parties_cache[name_upper] = new_p
+ parties_to_save.append(new_p)
+ return new_p
def get_or_create_vessel(name, imo=None):
name_upper = name.upper()
@@ -115,12 +116,13 @@ class AutomationCron(ModelSQL, ModelView):
if existing:
vessels_cache[name_upper] = existing[0]
return existing[0]
- new_v = Vessel()
- new_v.vessel_name = name_upper
- new_v.vessel_imo = imo
- vessels_cache[name_upper] = new_v
- vessels_to_save.append(new_v)
- return new_v
+ if name:
+ new_v = Vessel()
+ new_v.vessel_name = name_upper
+ new_v.vessel_imo = imo
+ vessels_cache[name_upper] = new_v
+ vessels_to_save.append(new_v)
+ return new_v
def get_or_create_location(name, type_):
key = f"{name.upper()}_{type_}"
@@ -130,12 +132,13 @@ class AutomationCron(ModelSQL, ModelView):
if existing:
locations_cache[key] = existing[0]
return existing[0]
- new_loc = Location()
- new_loc.name = name.upper()
- new_loc.type = type_
- locations_cache[key] = new_loc
- locations_to_save.append(new_loc)
- return new_loc
+ if name:
+ new_loc = Location()
+ new_loc.name = name.upper()
+ new_loc.type = type_
+ locations_cache[key] = new_loc
+ locations_to_save.append(new_loc)
+ return new_loc
# ----- Récupération ou création des objets -----
carrier = get_or_create_party(carrier_name)
From 0fc80958afa00410b8687bfe5f744406287268ee Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 20 Jan 2026 16:06:15 +0100
Subject: [PATCH 045/618] 20.01.26
---
modules/automation/freight_booking.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/modules/automation/freight_booking.py b/modules/automation/freight_booking.py
index 9119aeb..b28a658 100644
--- a/modules/automation/freight_booking.py
+++ b/modules/automation/freight_booking.py
@@ -14,8 +14,8 @@ class FreightBookingInfo(ModelSQL, ModelView):
controller = fields.Char("Customer")
origin = fields.Char("Origin")
destination = fields.Char("Destination")
- etd = fields.Integer("ETD")
- bl_date = fields.Integer("BL date")
+ etd = fields.Date("ETD")
+ bl_date = fields.Date("BL date")
bl_number = fields.Char("BL Nb")
carrier = fields.Char("Carrier")
vessel = fields.Char("Vessel")
From e5e76e2dcb334fb2836930237b8ad5226986d5d5 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 20 Jan 2026 16:13:52 +0100
Subject: [PATCH 046/618] 20.01.26
---
modules/automation/cron.py | 300 +++++++++++++++++++++++--------------
1 file changed, 188 insertions(+), 112 deletions(-)
diff --git a/modules/automation/cron.py b/modules/automation/cron.py
index 2a6627f..7975506 100644
--- a/modules/automation/cron.py
+++ b/modules/automation/cron.py
@@ -68,126 +68,202 @@ class AutomationCron(ModelSQL, ModelView):
t.FintradeBookingKey,
))
- # Préparer les listes pour la sauvegarde et les données du shipment
- parties_to_save = []
- vessels_to_save = []
- locations_to_save = []
- shipments_data = [] # <-- nouvelle liste
+ # ---- PREMIÈRE TRANSACTION : Création des objets de référence ----
+ with Transaction().new_transaction() as trans1:
+ try:
+ parties_to_save = []
+ vessels_to_save = []
+ locations_to_save = []
+
+ parties_cache = {}
+ vessels_cache = {}
+ locations_cache = {}
+
+ # Collecter les données des objets de référence
+ rows = cursor.fetchall()
+ for row in rows:
+ (
+ si_number, si_date, si_quantity, si_unit,
+ container_number, container_type,
+ loading_name, destination_name,
+ agent_name, carrier_name,
+ vessel_name, bl_number,
+ etd_date, bl_date, controller,
+ comments, fintrade_booking_key
+ ) = row
- parties_cache = {}
- vessels_cache = {}
- locations_cache = {}
+ # Fonction pour obtenir ou créer un Party
+ def get_or_create_party(name):
+ if not name:
+ return None
+ name_upper = name.upper()
+ if name_upper in parties_cache:
+ return parties_cache[name_upper]
+
+ # Chercher d'abord dans la base
+ existing = Party.search([('name', '=', name_upper)], limit=1)
+ if existing:
+ parties_cache[name_upper] = existing[0]
+ return existing[0]
+
+ # Créer un nouveau
+ new_p = Party()
+ new_p.name = name_upper
+ parties_cache[name_upper] = new_p
+ parties_to_save.append(new_p)
+ return new_p
- rows = cursor.fetchall()
- for row in rows:
- (
- si_number, si_date, si_quantity, si_unit,
- container_number, container_type,
- loading_name, destination_name,
- agent_name, carrier_name,
- vessel_name, bl_number,
- etd_date, bl_date, controller,
- comments, fintrade_booking_key
- ) = row
+ # Fonction pour obtenir ou créer un Vessel
+ def get_or_create_vessel(name):
+ if not name:
+ return None
+ name_upper = name.upper()
+ if name_upper in vessels_cache:
+ return vessels_cache[name_upper]
+
+ existing = Vessel.search([('vessel_name', '=', name_upper)], limit=1)
+ if existing:
+ vessels_cache[name_upper] = existing[0]
+ return existing[0]
+
+ new_v = Vessel()
+ new_v.vessel_name = name_upper
+ vessels_cache[name_upper] = new_v
+ vessels_to_save.append(new_v)
+ return new_v
- logger.info("ROW_FROM_CRON: %s", row)
+ # Fonction pour obtenir ou créer une Location
+ def get_or_create_location(name, type_):
+ if not name:
+ return None
+ key = f"{name.upper()}_{type_}"
+ if key in locations_cache:
+ return locations_cache[key]
+
+ existing = Location.search([
+ ('name', '=', name.upper()),
+ ('type', '=', type_)
+ ], limit=1)
+
+ if existing:
+ locations_cache[key] = existing[0]
+ return existing[0]
+
+ new_loc = Location()
+ new_loc.name = name.upper()
+ new_loc.type = type_
+ locations_cache[key] = new_loc
+ locations_to_save.append(new_loc)
+ return new_loc
- # ----- Fonctions pour créer ou récupérer les objets -----
- def get_or_create_party(name):
- name_upper = name.upper()
- if name_upper in parties_cache:
- return parties_cache[name_upper]
- existing = Party.search([('name', '=', name_upper)], limit=1)
- if existing:
- parties_cache[name_upper] = existing[0]
- return existing[0]
- if name:
- new_p = Party()
- new_p.name = name_upper
- parties_cache[name_upper] = new_p
- parties_to_save.append(new_p)
- return new_p
+ # Collecter les objets à créer
+ _ = get_or_create_party(carrier_name)
+ _ = get_or_create_party(agent_name)
+ _ = get_or_create_vessel(vessel_name)
+ _ = get_or_create_location(loading_name, 'supplier')
+ _ = get_or_create_location(destination_name, 'customer')
- def get_or_create_vessel(name, imo=None):
- name_upper = name.upper()
- if name_upper in vessels_cache:
- return vessels_cache[name_upper]
- existing = Vessel.search([('vessel_name', '=', name_upper)], limit=1)
- if existing:
- vessels_cache[name_upper] = existing[0]
- return existing[0]
- if name:
- new_v = Vessel()
- new_v.vessel_name = name_upper
- new_v.vessel_imo = imo
- vessels_cache[name_upper] = new_v
- vessels_to_save.append(new_v)
- return new_v
+ # Sauvegarder tous les objets de référence
+ if parties_to_save:
+ Party.save(parties_to_save)
+ if vessels_to_save:
+ Vessel.save(vessels_to_save)
+ if locations_to_save:
+ Location.save(locations_to_save)
+
+ trans1.commit()
+ logger.info("Première transaction commitée : objets de référence créés")
+
+ except Exception as e:
+ trans1.rollback()
+ logger.error(f"Erreur dans la première transaction : {e}")
+ raise
- def get_or_create_location(name, type_):
- key = f"{name.upper()}_{type_}"
- if key in locations_cache:
- return locations_cache[key]
- existing = Location.search([('name', '=', name.upper()), ('type', '=', type_)], limit=1)
- if existing:
- locations_cache[key] = existing[0]
- return existing[0]
- if name:
- new_loc = Location()
- new_loc.name = name.upper()
- new_loc.type = type_
- locations_cache[key] = new_loc
- locations_to_save.append(new_loc)
- return new_loc
+ # ---- DEUXIÈME TRANSACTION : Création des shipments ----
+ with Transaction().new_transaction() as trans2:
+ try:
+ # Recréer les curseurs après la nouvelle transaction
+ cursor2 = Transaction().connection.cursor()
+ cursor2.execute(*t.select(
+ t.ShippingInstructionNumber,
+ t.ShippingInstructionDate,
+ t.ShippingInstructionQuantity,
+ t.ShippingInstructionQuantityUnit,
+ t.NumberOfContainers,
+ t.ContainerType,
+ t.Loading,
+ t.Destination,
+ t.BookingAgent,
+ t.Carrier,
+ t.Vessel,
+ t.BL_Number,
+ t.ETD_Date,
+ t.BL_Date,
+ t.ExpectedController,
+ t.Comments,
+ t.FintradeBookingKey,
+ ))
- # ----- Récupération ou création des objets -----
- carrier = get_or_create_party(carrier_name)
- agent = get_or_create_party(agent_name)
- vessel = get_or_create_vessel(vessel_name)
- loc_from = get_or_create_location(loading_name, 'supplier')
- loc_to = get_or_create_location(destination_name, 'customer')
+ rows2 = cursor2.fetchall()
+ shipments_to_save = []
+
+ for row in rows2:
+ (
+ si_number, si_date, si_quantity, si_unit,
+ container_number, container_type,
+ loading_name, destination_name,
+ agent_name, carrier_name,
+ vessel_name, bl_number,
+ etd_date, bl_date, controller,
+ comments, fintrade_booking_key
+ ) = row
- # Stocker les données pour la deuxième étape
- shipments_data.append({
- 'si_number': si_number,
- 'bl_number': bl_number,
- 'bl_date': bl_date,
- 'etd_date': etd_date,
- 'carrier': carrier,
- 'agent': agent,
- 'vessel': vessel,
- 'from_location': loc_from,
- 'to_location': loc_to,
- })
+ # Vérifier si le shipment existe déjà
+ existing_shipment = ShipmentIn.search([
+ ('reference', '=', si_number)
+ ], limit=1)
+
+ if existing_shipment:
+ logger.info(f"Shipment existe déjà : {si_number}")
+ continue
- # ----- Étape 1 : sauvegarde des objets de référence -----
- if parties_to_save:
- Party.save(parties_to_save)
- if vessels_to_save:
- Vessel.save(vessels_to_save)
- if locations_to_save:
- Location.save(locations_to_save)
+ # Récupérer les objets (maintenant ils existent dans la base)
+ carrier = Party.search([('name', '=', carrier_name.upper())], limit=1) if carrier_name else None
+ agent = Party.search([('name', '=', agent_name.upper())], limit=1) if agent_name else None
+ vessel = Vessel.search([('vessel_name', '=', vessel_name.upper())], limit=1) if vessel_name else None
+ loc_from = Location.search([
+ ('name', '=', loading_name.upper()),
+ ('type', '=', 'supplier')
+ ], limit=1) if loading_name else None
+ loc_to = Location.search([
+ ('name', '=', destination_name.upper()),
+ ('type', '=', 'customer')
+ ], limit=1) if destination_name else None
- # Commit pour garantir que tous les IDs sont corrects
- Transaction().commit()
+ # Créer le shipment
+ shipment = ShipmentIn()
+ shipment.reference = si_number
+ shipment.from_location = loc_from[0] if loc_from else None
+ shipment.to_location = loc_to[0] if loc_to else None
+ shipment.carrier = carrier[0] if carrier else None
+ shipment.supplier = agent[0] if agent else None
+ shipment.vessel = vessel[0] if vessel else None
+ shipment.cargo_mode = 'bulk'
+ shipment.bl_number = bl_number
+ shipment.bl_date = bl_date
+ shipment.etd = etd_date
+
+ shipments_to_save.append(shipment)
+ logger.info(f"Shipment préparé : {si_number}")
- # ----- Étape 2 : création des shipments -----
- for data in shipments_data:
- si_number = data['si_number']
- shipment = ShipmentIn.search([('reference', '=', si_number)], limit=1)
- if shipment:
- sh = shipment[0]
- else:
- sh = ShipmentIn()
- sh.reference = si_number
- sh.from_location = data['from_location']
- sh.to_location = data['to_location']
- sh.carrier = data['carrier']
- sh.supplier = data['agent']
- sh.vessel = data['vessel']
- sh.cargo_mode = 'bulk'
- sh.bl_number = data['bl_number']
- sh.bl_date = data['bl_date']
- sh.etd = data['etd_date']
- ShipmentIn.save([sh])
- logger.info("SHIPMENT_CREATED: %s", sh)
+ # Sauvegarder tous les shipments
+ if shipments_to_save:
+ ShipmentIn.save(shipments_to_save)
+ logger.info(f"{len(shipments_to_save)} shipments créés")
+
+ trans2.commit()
+
+ except Exception as e:
+ trans2.rollback()
+ logger.error(f"Erreur dans la deuxième transaction : {e}")
+ raise
\ No newline at end of file
From 797783b59e46917f3eae4e22cec9d9312f17e626 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 20 Jan 2026 16:42:52 +0100
Subject: [PATCH 047/618] 20.01.26
---
modules/automation/cron.py | 253 ++++++++++++++++++++++++++-----------
1 file changed, 177 insertions(+), 76 deletions(-)
diff --git a/modules/automation/cron.py b/modules/automation/cron.py
index 7975506..4cf4657 100644
--- a/modules/automation/cron.py
+++ b/modules/automation/cron.py
@@ -7,6 +7,7 @@ from trytond.pool import Pool, PoolMeta
from trytond.transaction import Transaction
import logging
from sql import Table
+import traceback
logger = logging.getLogger(__name__)
@@ -68,9 +69,14 @@ class AutomationCron(ModelSQL, ModelView):
t.FintradeBookingKey,
))
+ rows = cursor.fetchall()
+ logger.info(f"Nombre total de lignes à traiter : {len(rows)}")
+
# ---- PREMIÈRE TRANSACTION : Création des objets de référence ----
with Transaction().new_transaction() as trans1:
try:
+ logger.info("Début de la création des objets de référence...")
+
parties_to_save = []
vessels_to_save = []
locations_to_save = []
@@ -80,7 +86,6 @@ class AutomationCron(ModelSQL, ModelView):
locations_cache = {}
# Collecter les données des objets de référence
- rows = cursor.fetchall()
for row in rows:
(
si_number, si_date, si_quantity, si_unit,
@@ -96,7 +101,7 @@ class AutomationCron(ModelSQL, ModelView):
def get_or_create_party(name):
if not name:
return None
- name_upper = name.upper()
+ name_upper = str(name).strip().upper()
if name_upper in parties_cache:
return parties_cache[name_upper]
@@ -117,7 +122,7 @@ class AutomationCron(ModelSQL, ModelView):
def get_or_create_vessel(name):
if not name:
return None
- name_upper = name.upper()
+ name_upper = str(name).strip().upper()
if name_upper in vessels_cache:
return vessels_cache[name_upper]
@@ -136,12 +141,13 @@ class AutomationCron(ModelSQL, ModelView):
def get_or_create_location(name, type_):
if not name:
return None
- key = f"{name.upper()}_{type_}"
+ name_upper = str(name).strip().upper()
+ key = f"{name_upper}_{type_}"
if key in locations_cache:
return locations_cache[key]
existing = Location.search([
- ('name', '=', name.upper()),
+ ('name', '=', name_upper),
('type', '=', type_)
], limit=1)
@@ -150,7 +156,7 @@ class AutomationCron(ModelSQL, ModelView):
return existing[0]
new_loc = Location()
- new_loc.name = name.upper()
+ new_loc.name = name_upper
new_loc.type = type_
locations_cache[key] = new_loc
locations_to_save.append(new_loc)
@@ -165,10 +171,15 @@ class AutomationCron(ModelSQL, ModelView):
# Sauvegarder tous les objets de référence
if parties_to_save:
+ logger.info(f"Création de {len(parties_to_save)} parties...")
Party.save(parties_to_save)
+
if vessels_to_save:
+ logger.info(f"Création de {len(vessels_to_save)} vessels...")
Vessel.save(vessels_to_save)
+
if locations_to_save:
+ logger.info(f"Création de {len(locations_to_save)} locations...")
Location.save(locations_to_save)
trans1.commit()
@@ -176,94 +187,184 @@ class AutomationCron(ModelSQL, ModelView):
except Exception as e:
trans1.rollback()
- logger.error(f"Erreur dans la première transaction : {e}")
+ logger.error(f"Erreur dans la création des objets de référence : {e}")
+ logger.error(traceback.format_exc())
raise
- # ---- DEUXIÈME TRANSACTION : Création des shipments ----
- with Transaction().new_transaction() as trans2:
+ # ---- TRANSACTIONS INDIVIDUELLES pour chaque shipment ----
+ successful_shipments = 0
+ failed_shipments = []
+
+ # Recréer le curseur après la nouvelle transaction
+ cursor2 = Transaction().connection.cursor()
+ cursor2.execute(*t.select(
+ t.ShippingInstructionNumber,
+ t.ShippingInstructionDate,
+ t.ShippingInstructionQuantity,
+ t.ShippingInstructionQuantityUnit,
+ t.NumberOfContainers,
+ t.ContainerType,
+ t.Loading,
+ t.Destination,
+ t.BookingAgent,
+ t.Carrier,
+ t.Vessel,
+ t.BL_Number,
+ t.ETD_Date,
+ t.BL_Date,
+ t.ExpectedController,
+ t.Comments,
+ t.FintradeBookingKey,
+ ))
+
+ rows2 = cursor2.fetchall()
+
+ for i, row in enumerate(rows2, 1):
+ (
+ si_number, si_date, si_quantity, si_unit,
+ container_number, container_type,
+ loading_name, destination_name,
+ agent_name, carrier_name,
+ vessel_name, bl_number,
+ etd_date, bl_date, controller,
+ comments, fintrade_booking_key
+ ) = row
+
+ logger.info(f"Traitement shipment {i}/{len(rows2)} : SI {si_number}")
+
+ # ---- TRANSACTION INDIVIDUELLE pour ce shipment ----
try:
- # Recréer les curseurs après la nouvelle transaction
- cursor2 = Transaction().connection.cursor()
- cursor2.execute(*t.select(
- t.ShippingInstructionNumber,
- t.ShippingInstructionDate,
- t.ShippingInstructionQuantity,
- t.ShippingInstructionQuantityUnit,
- t.NumberOfContainers,
- t.ContainerType,
- t.Loading,
- t.Destination,
- t.BookingAgent,
- t.Carrier,
- t.Vessel,
- t.BL_Number,
- t.ETD_Date,
- t.BL_Date,
- t.ExpectedController,
- t.Comments,
- t.FintradeBookingKey,
- ))
-
- rows2 = cursor2.fetchall()
- shipments_to_save = []
-
- for row in rows2:
- (
- si_number, si_date, si_quantity, si_unit,
- container_number, container_type,
- loading_name, destination_name,
- agent_name, carrier_name,
- vessel_name, bl_number,
- etd_date, bl_date, controller,
- comments, fintrade_booking_key
- ) = row
-
+ with Transaction().new_transaction() as trans_shipment:
+ logger.info(f"Début transaction pour SI {si_number}")
+
# Vérifier si le shipment existe déjà
existing_shipment = ShipmentIn.search([
('reference', '=', si_number)
], limit=1)
if existing_shipment:
- logger.info(f"Shipment existe déjà : {si_number}")
+ logger.info(f"Shipment {si_number} existe déjà, ignoré")
+ trans_shipment.commit()
continue
# Récupérer les objets (maintenant ils existent dans la base)
- carrier = Party.search([('name', '=', carrier_name.upper())], limit=1) if carrier_name else None
- agent = Party.search([('name', '=', agent_name.upper())], limit=1) if agent_name else None
- vessel = Vessel.search([('vessel_name', '=', vessel_name.upper())], limit=1) if vessel_name else None
- loc_from = Location.search([
- ('name', '=', loading_name.upper()),
- ('type', '=', 'supplier')
- ], limit=1) if loading_name else None
- loc_to = Location.search([
- ('name', '=', destination_name.upper()),
- ('type', '=', 'customer')
- ], limit=1) if destination_name else None
-
+ carrier = None
+ if carrier_name:
+ carrier_list = Party.search([('name', '=', str(carrier_name).strip().upper())], limit=1)
+ if carrier_list:
+ carrier = carrier_list[0]
+ logger.info(f"Carrier trouvé pour {si_number}: {carrier.name}")
+ else:
+ logger.warning(f"Carrier NON TROUVÉ pour {si_number}: '{carrier_name}'")
+
+ agent = None
+ if agent_name:
+ agent_list = Party.search([('name', '=', str(agent_name).strip().upper())], limit=1)
+ if agent_list:
+ agent = agent_list[0]
+
+ vessel = None
+ if vessel_name:
+ vessel_list = Vessel.search([('vessel_name', '=', str(vessel_name).strip().upper())], limit=1)
+ if vessel_list:
+ vessel = vessel_list[0]
+
+ loc_from = None
+ if loading_name:
+ loc_from_list = Location.search([
+ ('name', '=', str(loading_name).strip().upper()),
+ ('type', '=', 'supplier')
+ ], limit=1)
+ if loc_from_list:
+ loc_from = loc_from_list[0]
+
+ loc_to = None
+ if destination_name:
+ loc_to_list = Location.search([
+ ('name', '=', str(destination_name).strip().upper()),
+ ('type', '=', 'customer')
+ ], limit=1)
+ if loc_to_list:
+ loc_to = loc_to_list[0]
+
+ # Vérification critique du carrier
+ if not carrier:
+ error_msg = f"ERREUR CRITIQUE: Carrier manquant pour SI {si_number} (valeur: '{carrier_name}')"
+ logger.error(error_msg)
+ raise ValueError(error_msg)
+
# Créer le shipment
shipment = ShipmentIn()
shipment.reference = si_number
- shipment.from_location = loc_from[0] if loc_from else None
- shipment.to_location = loc_to[0] if loc_to else None
- shipment.carrier = carrier[0] if carrier else None
- shipment.supplier = agent[0] if agent else None
- shipment.vessel = vessel[0] if vessel else None
+ shipment.from_location = loc_from
+ shipment.to_location = loc_to
+ shipment.carrier = carrier
+ shipment.supplier = agent
+ shipment.vessel = vessel
shipment.cargo_mode = 'bulk'
shipment.bl_number = bl_number
shipment.bl_date = bl_date
shipment.etd = etd_date
- shipments_to_save.append(shipment)
- logger.info(f"Shipment préparé : {si_number}")
-
- # Sauvegarder tous les shipments
- if shipments_to_save:
- ShipmentIn.save(shipments_to_save)
- logger.info(f"{len(shipments_to_save)} shipments créés")
-
- trans2.commit()
-
+ # Sauvegarder ce shipment uniquement
+ ShipmentIn.save([shipment])
+
+ trans_shipment.commit()
+ successful_shipments += 1
+ logger.info(f"✓ Shipment {si_number} créé avec succès")
+
except Exception as e:
- trans2.rollback()
- logger.error(f"Erreur dans la deuxième transaction : {e}")
- raise
\ No newline at end of file
+ # Cette transaction échoue mais les autres continuent
+ error_details = {
+ 'si_number': si_number,
+ 'carrier_name': carrier_name,
+ 'error': str(e),
+ 'traceback': traceback.format_exc()
+ }
+ failed_shipments.append(error_details)
+
+ logger.error(f"✗ ERREUR pour shipment {si_number}: {e}")
+ logger.error(f" Carrier: '{carrier_name}'")
+ logger.error(f" Agent: '{agent_name}'")
+ logger.error(f" Vessel: '{vessel_name}'")
+ logger.error(" Traceback complet:")
+ for line in traceback.format_exc().split('\n'):
+ if line.strip():
+ logger.error(f" {line}")
+
+ # ---- RÉSUMÉ FINAL ----
+ logger.info("=" * 60)
+ logger.info("RÉSUMÉ DE L'EXÉCUTION")
+ logger.info("=" * 60)
+ logger.info(f"Total de shipments à traiter : {len(rows2)}")
+ logger.info(f"Shipments créés avec succès : {successful_shipments}")
+ logger.info(f"Shipments en échec : {len(failed_shipments)}")
+
+ if failed_shipments:
+ logger.info("\nDétail des échecs :")
+ for i, error in enumerate(failed_shipments, 1):
+ logger.info(f" {i}. SI {error['si_number']}:")
+ logger.info(f" Carrier: '{error['carrier_name']}'")
+ logger.info(f" Erreur: {error['error']}")
+
+ # Log supplémentaire pour debug
+ logger.info("\nAnalyse des carriers problématiques :")
+ problematic_carriers = {}
+ for error in failed_shipments:
+ carrier = error['carrier_name']
+ if carrier in problematic_carriers:
+ problematic_carriers[carrier] += 1
+ else:
+ problematic_carriers[carrier] = 1
+
+ for carrier, count in problematic_carriers.items():
+ logger.info(f" Carrier '{carrier}' : {count} échec(s)")
+
+ # Vérifier si ce carrier existe dans la base
+ existing = Party.search([('name', '=', str(carrier).strip().upper())], limit=1)
+ if existing:
+ logger.info(f" → EXISTE DANS LA BASE (ID: {existing[0].id})")
+ else:
+ logger.info(f" → N'EXISTE PAS DANS LA BASE")
+
+ logger.info("=" * 60)
\ No newline at end of file
From 17233d8dedcf1f4a8f01ab88b3d88bbc9e0583ad Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 20 Jan 2026 17:02:55 +0100
Subject: [PATCH 048/618] 20.01.26
---
modules/automation/cron.py | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/modules/automation/cron.py b/modules/automation/cron.py
index 4cf4657..19be474 100644
--- a/modules/automation/cron.py
+++ b/modules/automation/cron.py
@@ -258,10 +258,10 @@ class AutomationCron(ModelSQL, ModelView):
logger.warning(f"Carrier NON TROUVÉ pour {si_number}: '{carrier_name}'")
agent = None
- if agent_name:
- agent_list = Party.search([('name', '=', str(agent_name).strip().upper())], limit=1)
- if agent_list:
- agent = agent_list[0]
+
+ agent_list = Party.search([('name', '=', str(agent_name or 'TBN').strip().upper())], limit=1)
+ if agent_list:
+ agent = agent_list[0]
vessel = None
if vessel_name:
From aeadca6f600d754118e504a647931bc5a488ad0d Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 20 Jan 2026 17:12:07 +0100
Subject: [PATCH 049/618] 20.01.26
---
modules/automation/cron.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/automation/cron.py b/modules/automation/cron.py
index 19be474..68989e2 100644
--- a/modules/automation/cron.py
+++ b/modules/automation/cron.py
@@ -298,7 +298,7 @@ class AutomationCron(ModelSQL, ModelView):
shipment.reference = si_number
shipment.from_location = loc_from
shipment.to_location = loc_to
- shipment.carrier = carrier
+ shipment.carrier = None #carrier
shipment.supplier = agent
shipment.vessel = vessel
shipment.cargo_mode = 'bulk'
From a9d1fe7baf7be207595cdc5e5af42693f8f5fa30 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 20 Jan 2026 17:30:13 +0100
Subject: [PATCH 050/618] 20.01.26
---
modules/stock/vessel.py | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/modules/stock/vessel.py b/modules/stock/vessel.py
index 4a5fc0c..cc559e1 100755
--- a/modules/stock/vessel.py
+++ b/modules/stock/vessel.py
@@ -52,6 +52,10 @@ class Vessel(
vessel_info = fields.Function(fields.Text("Position"),'get_info')
image = fields.Binary("Vessel position",readonly=True)
+ @classmethod
+ def default_vessel_imo(cls):
+ return '9900459'
+
def get_info(self,name=None):
hdr = {
'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11',
@@ -60,6 +64,8 @@ class Vessel(
'Accept-Encoding': 'none',
'Accept-Language': 'en-US,en;q=0.8',
'Connection': 'keep-alive'}
+ if not self.vessel_imo:
+ return
url = r'https://www.vesselfinder.com/en/vessels/VOS-TRAVELLER-IMO-' + self.vessel_imo
req = urllib.request.Request(url, None, hdr)
try:
From ddf023f0784c2ee1cc8fe1bee98c67288f753605 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 20 Jan 2026 18:59:40 +0100
Subject: [PATCH 051/618] 20.01.26
---
modules/purchase_trade/__init__.py | 2 +
modules/purchase_trade/tryton.cfg | 3 +-
.../view/weight_report_form.xml | 104 +++++++++++++
.../view/weight_report_list.xml | 17 +++
modules/purchase_trade/weight_report.py | 65 ++++++++
modules/purchase_trade/weight_report.xml | 140 ++++++++++++++++++
6 files changed, 330 insertions(+), 1 deletion(-)
create mode 100644 modules/purchase_trade/view/weight_report_form.xml
create mode 100644 modules/purchase_trade/view/weight_report_list.xml
create mode 100644 modules/purchase_trade/weight_report.py
create mode 100644 modules/purchase_trade/weight_report.xml
diff --git a/modules/purchase_trade/__init__.py b/modules/purchase_trade/__init__.py
index 7407785..9039887 100755
--- a/modules/purchase_trade/__init__.py
+++ b/modules/purchase_trade/__init__.py
@@ -28,6 +28,7 @@ from . import (
open_position,
credit_risk,
valuation,
+ weight_report,
)
def register():
@@ -159,6 +160,7 @@ def register():
purchase.DocTemplate,
purchase.DocTypeTemplate,
purchase.Mtm,
+ weight_report.WeightReport,
module='purchase', type_='model')
Pool.register(
forex.Forex,
diff --git a/modules/purchase_trade/tryton.cfg b/modules/purchase_trade/tryton.cfg
index 015d586..5686126 100755
--- a/modules/purchase_trade/tryton.cfg
+++ b/modules/purchase_trade/tryton.cfg
@@ -29,4 +29,5 @@ xml:
forex.xml
global_reporting.xml
derivative.xml
- valuation.xml
\ No newline at end of file
+ valuation.xml
+ weight_report.xml
\ No newline at end of file
diff --git a/modules/purchase_trade/view/weight_report_form.xml b/modules/purchase_trade/view/weight_report_form.xml
new file mode 100644
index 0000000..177dada
--- /dev/null
+++ b/modules/purchase_trade/view/weight_report_form.xml
@@ -0,0 +1,104 @@
+
+
\ No newline at end of file
diff --git a/modules/purchase_trade/view/weight_report_list.xml b/modules/purchase_trade/view/weight_report_list.xml
new file mode 100644
index 0000000..21552db
--- /dev/null
+++ b/modules/purchase_trade/view/weight_report_list.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/purchase_trade/weight_report.py b/modules/purchase_trade/weight_report.py
new file mode 100644
index 0000000..d3380a2
--- /dev/null
+++ b/modules/purchase_trade/weight_report.py
@@ -0,0 +1,65 @@
+from trytond.model import ModelSQL, ModelView, fields
+from trytond.pool import Pool
+import datetime
+
+class WeightReport(ModelSQL, ModelView):
+ 'Weight Report'
+ __name__ = 'weight.report'
+
+ # Identification
+ lab = fields.Char('Laboratory', required=True)
+
+ # Report Information
+ reference = fields.Char('Reference')
+ file_no = fields.Char('File Number')
+ report_date = fields.Date('Report Date')
+
+ # Contract Information
+ contract_no = fields.Char('Contract Number')
+ invoice_no = fields.Char('Invoice Number')
+ lc_no = fields.Char('LC Number')
+ origin = fields.Char('Origin')
+ commodity = fields.Char('Commodity')
+
+ # Parties Information
+ seller = fields.Many2One('party.party','Seller', required=True)
+ buyer = fields.Many2One('party.party','Buyer', required=True)
+ carrier = fields.Many2One('party.party','Carrier')
+
+ # Shipment Information
+ vessel = fields.Many2One('trade.vessel','Vessel')
+ bl_no = fields.Char('B/L Number')
+ bl_date = fields.Date('B/L Date')
+ port_loading = fields.Many2One('stock.location','Port of Loading')
+ port_destination = fields.Many2One('stock.location','Port of Destination')
+ arrival_date = fields.Date('Arrival Date')
+ weighing_place = fields.Char('Weighing Place')
+ weighing_method = fields.Char('Weighing Method')
+ bales = fields.Integer('Number of Bales')
+
+ # Weights Information
+ gross_landed_kg = fields.Numeric('Gross Landed (kg)', digits=(16, 2))
+ tare_kg = fields.Numeric('Tare Weight (kg)', digits=(16, 2))
+ net_landed_kg = fields.Numeric('Net Landed (kg)', digits=(16, 2))
+ invoice_net_kg = fields.Numeric('Invoice Net (kg)', digits=(16, 2))
+ gain_loss_kg = fields.Numeric('Gain/Loss (kg)', digits=(16, 2))
+ gain_loss_percent = fields.Numeric('Gain/Loss (%)', digits=(16, 2))
+
+ @classmethod
+ def __setup__(cls):
+ super().__setup__()
+ cls._order = [('created_date', 'DESC')]
+ # cls._buttons.update({
+ # 'import_json': {},
+ # 'export_json': {},
+ # })
+
+ # @classmethod
+ # @ModelView.button_action('weight_report.act_import_json')
+ # def import_json(cls, reports):
+ # pass
+
+ # @classmethod
+ # @ModelView.button_action('weight_report.act_export_json')
+ # def export_json(cls, reports):
+ # pass
\ No newline at end of file
diff --git a/modules/purchase_trade/weight_report.xml b/modules/purchase_trade/weight_report.xml
new file mode 100644
index 0000000..0ce5856
--- /dev/null
+++ b/modules/purchase_trade/weight_report.xml
@@ -0,0 +1,140 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ weight.report
+ form
+ weight_report_form
+
+
+
+ weight.report
+ tree
+ weight_report_list
+
+
+
+
+ Weight Reports
+ weight.report
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
From 0e007afed366731862ab92cfcb5cb8755331d5d9 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 20 Jan 2026 19:02:44 +0100
Subject: [PATCH 052/618] 20.01.26
---
modules/purchase_trade/view/weight_report_form.xml | 11 -----------
1 file changed, 11 deletions(-)
diff --git a/modules/purchase_trade/view/weight_report_form.xml b/modules/purchase_trade/view/weight_report_form.xml
index 177dada..bd27496 100644
--- a/modules/purchase_trade/view/weight_report_form.xml
+++ b/modules/purchase_trade/view/weight_report_form.xml
@@ -14,17 +14,6 @@
-
-
-
-
-
-
-
-
-
-
-
From 227eb3cf4661d36f28620c7d3843618c841f4cc9 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 20 Jan 2026 19:04:54 +0100
Subject: [PATCH 053/618] 20.01.26
---
modules/purchase_trade/view/weight_report_form.xml | 8 --------
1 file changed, 8 deletions(-)
diff --git a/modules/purchase_trade/view/weight_report_form.xml b/modules/purchase_trade/view/weight_report_form.xml
index bd27496..4a8ca94 100644
--- a/modules/purchase_trade/view/weight_report_form.xml
+++ b/modules/purchase_trade/view/weight_report_form.xml
@@ -14,8 +14,6 @@
-
-
@@ -30,8 +28,6 @@
-
-
@@ -43,8 +39,6 @@
-
-
@@ -68,8 +62,6 @@
-
-
From 42fb2e0d22616dbc2d53c73a43c62e2c79fe66e3 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 20 Jan 2026 19:06:46 +0100
Subject: [PATCH 054/618] 20.01.26
---
modules/purchase_trade/weight_report.xml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/modules/purchase_trade/weight_report.xml b/modules/purchase_trade/weight_report.xml
index 0ce5856..fc2464f 100644
--- a/modules/purchase_trade/weight_report.xml
+++ b/modules/purchase_trade/weight_report.xml
@@ -120,8 +120,8 @@
+ id="menu_weight"/>
+
Date: Tue, 20 Jan 2026 19:08:19 +0100
Subject: [PATCH 055/618] 20.01.26
---
modules/purchase_trade/weight_report.xml | 1 -
1 file changed, 1 deletion(-)
diff --git a/modules/purchase_trade/weight_report.xml b/modules/purchase_trade/weight_report.xml
index fc2464f..4f3d960 100644
--- a/modules/purchase_trade/weight_report.xml
+++ b/modules/purchase_trade/weight_report.xml
@@ -42,7 +42,6 @@
Weight Reports
weight.report
-
From 044096c8d71b617981e5f1dc3e9ae0e88a28ce42 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 20 Jan 2026 19:11:43 +0100
Subject: [PATCH 056/618] 20.01.26
---
modules/purchase_trade/weight_report.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/purchase_trade/weight_report.py b/modules/purchase_trade/weight_report.py
index d3380a2..20aa2df 100644
--- a/modules/purchase_trade/weight_report.py
+++ b/modules/purchase_trade/weight_report.py
@@ -48,7 +48,7 @@ class WeightReport(ModelSQL, ModelView):
@classmethod
def __setup__(cls):
super().__setup__()
- cls._order = [('created_date', 'DESC')]
+ cls._order = [('report_date', 'DESC')]
# cls._buttons.update({
# 'import_json': {},
# 'export_json': {},
From 72fc0c54319ac71ba9d096659cc93e086a5d3659 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 20 Jan 2026 19:15:22 +0100
Subject: [PATCH 057/618] 20.01.26
---
modules/purchase_trade/weight_report.py | 47 ++++++++++++++++++++++++-
1 file changed, 46 insertions(+), 1 deletion(-)
diff --git a/modules/purchase_trade/weight_report.py b/modules/purchase_trade/weight_report.py
index 20aa2df..e7920ef 100644
--- a/modules/purchase_trade/weight_report.py
+++ b/modules/purchase_trade/weight_report.py
@@ -62,4 +62,49 @@ class WeightReport(ModelSQL, ModelView):
# @classmethod
# @ModelView.button_action('weight_report.act_export_json')
# def export_json(cls, reports):
- # pass
\ No newline at end of file
+ # pass
+
+ # @classmethod
+ # def create_from_json(cls, json_data):
+ # """Crée un rapport à partir de données JSON"""
+ # report = cls()
+
+ # # Mapping des données JSON vers les champs du modèle
+ # report.lab = json_data.get('lab', '')
+ # report_data = json_data.get('report', {})
+ # report.reference = report_data.get('reference', '')
+ # report.file_no = report_data.get('file_no', '')
+ # report.report_date = report_data.get('date', '')
+
+ # contract_data = json_data.get('contract', {})
+ # report.contract_no = contract_data.get('contract_no', '')
+ # report.invoice_no = contract_data.get('invoice_no', '')
+ # report.lc_no = contract_data.get('lc_no', '')
+ # report.origin = contract_data.get('origin', '')
+ # report.commodity = contract_data.get('commodity', '')
+
+ # parties_data = json_data.get('parties', {})
+ # report.seller = parties_data.get('seller', '')
+ # report.buyer = parties_data.get('buyer', '')
+ # report.carrier = parties_data.get('carrier', '')
+
+ # shipment_data = json_data.get('shipment', {})
+ # report.vessel = shipment_data.get('vessel', '')
+ # report.bl_no = shipment_data.get('bl_no', '')
+ # report.bl_date = shipment_data.get('bl_date', '')
+ # report.port_loading = shipment_data.get('port_loading', '')
+ # report.port_destination = shipment_data.get('port_destination', '')
+ # report.arrival_date = shipment_data.get('arrival_date', '')
+ # report.weighing_place = shipment_data.get('weighing_place', '')
+ # report.weighing_method = shipment_data.get('weighing_method', '')
+ # report.bales = shipment_data.get('bales', 0)
+
+ # weights_data = json_data.get('weights', {})
+ # report.gross_landed_kg = weights_data.get('gross_landed_kg', 0)
+ # report.tare_kg = weights_data.get('tare_kg', 0)
+ # report.net_landed_kg = weights_data.get('net_landed_kg', 0)
+ # report.invoice_net_kg = weights_data.get('invoice_net_kg', 0)
+ # report.gain_loss_kg = weights_data.get('gain_loss_kg', 0)
+ # report.gain_loss_percent = weights_data.get('gain_loss_percent', 0)
+
+ # return report
\ No newline at end of file
From d9ab3cfe4718cc32fcad09d9f863f921041d8ba9 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 20 Jan 2026 19:36:31 +0100
Subject: [PATCH 058/618] 20.01.26
---
modules/purchase_trade/weight_report.py | 148 +++++++++++++++++-------
1 file changed, 109 insertions(+), 39 deletions(-)
diff --git a/modules/purchase_trade/weight_report.py b/modules/purchase_trade/weight_report.py
index e7920ef..95ffeaa 100644
--- a/modules/purchase_trade/weight_report.py
+++ b/modules/purchase_trade/weight_report.py
@@ -1,6 +1,7 @@
from trytond.model import ModelSQL, ModelView, fields
from trytond.pool import Pool
-import datetime
+from decimal import Decimal
+from datetime import datetime as dt
class WeightReport(ModelSQL, ModelView):
'Weight Report'
@@ -64,47 +65,116 @@ class WeightReport(ModelSQL, ModelView):
# def export_json(cls, reports):
# pass
- # @classmethod
- # def create_from_json(cls, json_data):
- # """Crée un rapport à partir de données JSON"""
- # report = cls()
+ @classmethod
+ def create_from_json(cls, json_data):
+ """Crée un rapport à partir de données JSON"""
+ pool = Pool()
+ Party = pool.get('party.party')
+ Vessel = pool.get('trade.vessel')
+ Location = pool.get('stock.location')
- # # Mapping des données JSON vers les champs du modèle
- # report.lab = json_data.get('lab', '')
- # report_data = json_data.get('report', {})
- # report.reference = report_data.get('reference', '')
- # report.file_no = report_data.get('file_no', '')
- # report.report_date = report_data.get('date', '')
+ # Préparer les données
+ report = {}
- # contract_data = json_data.get('contract', {})
- # report.contract_no = contract_data.get('contract_no', '')
- # report.invoice_no = contract_data.get('invoice_no', '')
- # report.lc_no = contract_data.get('lc_no', '')
- # report.origin = contract_data.get('origin', '')
- # report.commodity = contract_data.get('commodity', '')
+ # 1. Identification (champs simples)
+ report['lab'] = json_data.get('lab', '')
- # parties_data = json_data.get('parties', {})
- # report.seller = parties_data.get('seller', '')
- # report.buyer = parties_data.get('buyer', '')
- # report.carrier = parties_data.get('carrier', '')
+ # 2. Report Information
+ report_data = json_data.get('report', {})
+ report['reference'] = report_data.get('reference', '')
+ report['file_no'] = report_data.get('file_no', '')
- # shipment_data = json_data.get('shipment', {})
- # report.vessel = shipment_data.get('vessel', '')
- # report.bl_no = shipment_data.get('bl_no', '')
- # report.bl_date = shipment_data.get('bl_date', '')
- # report.port_loading = shipment_data.get('port_loading', '')
- # report.port_destination = shipment_data.get('port_destination', '')
- # report.arrival_date = shipment_data.get('arrival_date', '')
- # report.weighing_place = shipment_data.get('weighing_place', '')
- # report.weighing_method = shipment_data.get('weighing_method', '')
- # report.bales = shipment_data.get('bales', 0)
+ # Conversion de la date (format: "28 October 2025")
+ date_str = report_data.get('date', '')
+ if date_str:
+ try:
+ report['report_date'] = dt.strptime(date_str, '%d %B %Y').date()
+ except:
+ report['report_date'] = None
- # weights_data = json_data.get('weights', {})
- # report.gross_landed_kg = weights_data.get('gross_landed_kg', 0)
- # report.tare_kg = weights_data.get('tare_kg', 0)
- # report.net_landed_kg = weights_data.get('net_landed_kg', 0)
- # report.invoice_net_kg = weights_data.get('invoice_net_kg', 0)
- # report.gain_loss_kg = weights_data.get('gain_loss_kg', 0)
- # report.gain_loss_percent = weights_data.get('gain_loss_percent', 0)
+ # 3. Contract Information
+ contract_data = json_data.get('contract', {})
+ report['contract_no'] = contract_data.get('contract_no', '')
+ report['invoice_no'] = contract_data.get('invoice_no', '')
+ report['lc_no'] = contract_data.get('lc_no', '')
+ report['origin'] = contract_data.get('origin', '')
+ report['commodity'] = contract_data.get('commodity', '')
- # return report
\ No newline at end of file
+ # 4. Parties Information (Many2One)
+ parties_data = json_data.get('parties', {})
+
+ # Recherche ou création des parties
+ seller_name = parties_data.get('seller', '')
+ if seller_name:
+ seller = Party.find_or_create_by_name(seller_name)
+ report['seller'] = seller.id if seller else None
+
+ buyer_name = parties_data.get('buyer', '')
+ if buyer_name:
+ buyer = Party.find_or_create_by_name(buyer_name)
+ report['buyer'] = buyer.id if buyer else None
+
+ carrier_name = parties_data.get('carrier', '')
+ if carrier_name:
+ carrier = Party.find_or_create_by_name(carrier_name)
+ report['carrier'] = carrier.id if carrier else None
+
+ # 5. Shipment Information
+ shipment_data = json_data.get('shipment', {})
+
+ # Recherche du navire par nom
+ vessel_name = shipment_data.get('vessel', '')
+ if vessel_name:
+ vessel = Vessel.search([('vessel_name', '=', vessel_name)], limit=1)
+ report['vessel'] = vessel[0].id if vessel else None
+
+ report['bl_no'] = shipment_data.get('bl_no', '')
+
+ # Conversion de la date B/L (format: "16-Aug-2025")
+ bl_date_str = shipment_data.get('bl_date', '')
+ if bl_date_str:
+ try:
+ report['bl_date'] = dt.strptime(bl_date_str, '%d-%b-%Y').date()
+ except:
+ report['bl_date'] = None
+
+ # Ports (Many2One - nécessite recherche par nom)
+ port_loading_name = shipment_data.get('port_loading', '')
+ if port_loading_name:
+ port_loading = Location.search([
+ ('name', '=', port_loading_name),
+ ('type', '=', 'storage')
+ ], limit=1)
+ report['port_loading'] = port_loading[0].id if port_loading else None
+
+ port_destination_name = shipment_data.get('port_destination', '')
+ if port_destination_name:
+ port_destination = Location.search([
+ ('name', '=', port_destination_name),
+ ('type', '=', 'storage')
+ ], limit=1)
+ report['port_destination'] = port_destination[0].id if port_destination else None
+
+ # Conversion de la date d'arrivée (format: "20-Oct-2025")
+ arrival_date_str = shipment_data.get('arrival_date', '')
+ if arrival_date_str:
+ try:
+ report['arrival_date'] = dt.strptime(arrival_date_str, '%d-%b-%Y').date()
+ except:
+ report['arrival_date'] = None
+
+ report['weighing_place'] = shipment_data.get('weighing_place', '')
+ report['weighing_method'] = shipment_data.get('weighing_method', '')
+ report['bales'] = int(shipment_data.get('bales', 0) or 0)
+
+ # 6. Weights Information
+ weights_data = json_data.get('weights', {})
+ report['gross_landed_kg'] = Decimal(weights_data.get('gross_landed_kg', 0) or 0)
+ report['tare_kg'] = Decimal(weights_data.get('tare_kg', 0) or 0)
+ report['net_landed_kg'] = Decimal(weights_data.get('net_landed_kg', 0) or 0)
+ report['invoice_net_kg'] = Decimal(weights_data.get('invoice_net_kg', 0) or 0)
+ report['gain_loss_kg'] = Decimal(weights_data.get('gain_loss_kg', 0) or 0)
+ report['gain_loss_percent'] = Decimal(weights_data.get('gain_loss_percent', 0) or 0)
+
+ # 7. Création du rapport
+ return cls.create([report])[0]
\ No newline at end of file
From ecdc4b283d61f00ee7e6d55afc1b5ca48bbe429c Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 20 Jan 2026 19:46:48 +0100
Subject: [PATCH 059/618] 20.01.26
---
modules/document_incoming_wr/document.py | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/modules/document_incoming_wr/document.py b/modules/document_incoming_wr/document.py
index 7a056b1..0f95deb 100644
--- a/modules/document_incoming_wr/document.py
+++ b/modules/document_incoming_wr/document.py
@@ -28,10 +28,7 @@ class Incoming(metaclass=PoolMeta):
return super()._get_results() | {'automation.document'}
def _process_weight_report(self):
- pool = Pool()
- WR = pool.get('automation.document')
- # Configuration = pool.get('document.incoming.configuration')
- # config = Configuration(1)
+ WR = Pool().get('automation.document')
wr = WR()
wr.document = self.id
wr.type = 'weight_report'
@@ -39,6 +36,10 @@ class Incoming(metaclass=PoolMeta):
WR.save([wr])
WR.run_ocr([wr])
WR.run_metadata([wr])
+
+ WeightReport = Pool().get('weight.report')
+ WeightReport.create_from_json(wr.metadata_json)
+
return wr
# @property
From 8a54b6fcbcd969d4a009019dbcf61998537e406a Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 20 Jan 2026 20:13:08 +0100
Subject: [PATCH 060/618] 20.01.26
---
modules/document_incoming_wr/document.py | 26 +++++++++++++++++++++++-
1 file changed, 25 insertions(+), 1 deletion(-)
diff --git a/modules/document_incoming_wr/document.py b/modules/document_incoming_wr/document.py
index 0f95deb..9e907f0 100644
--- a/modules/document_incoming_wr/document.py
+++ b/modules/document_incoming_wr/document.py
@@ -6,6 +6,7 @@ from trytond.model import fields
from trytond.modules.document_incoming.exceptions import (
DocumentIncomingProcessError)
from trytond.pool import Pool, PoolMeta
+import json
class IncomingConfiguration(metaclass=PoolMeta):
@@ -37,8 +38,31 @@ class Incoming(metaclass=PoolMeta):
WR.run_ocr([wr])
WR.run_metadata([wr])
+ metadata = wr.metadata_json
+
+ # DEBUG: Vérifiez le type et contenu
+ print(f"Type de metadata: {type(metadata)}")
+ print(f"Contenu de metadata: {metadata}")
+
+ # Si c'est une chaîne, parsez-la
+ if isinstance(metadata, str):
+ try:
+ metadata = json.loads(metadata)
+ except json.JSONDecodeError as e:
+ raise DocumentIncomingProcessError(
+ gettext('document_incoming.msg_invalid_json',
+ document=self.rec_name,
+ error=str(e)))
+
+ # Maintenant metadata devrait être un dict
+ if not isinstance(metadata, dict):
+ raise DocumentIncomingProcessError(
+ gettext('document_incoming.msg_no_metadata',
+ document=self.rec_name))
+
+ # Créez le rapport - CORRECT, pas besoin de save() supplémentaire
WeightReport = Pool().get('weight.report')
- WeightReport.create_from_json(wr.metadata_json)
+ WeightReport.create_from_json(metadata)
return wr
From fcb6377b210fa8403188cf5416d6c8de38693b49 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 20 Jan 2026 20:19:56 +0100
Subject: [PATCH 061/618] 20.01.26
---
modules/purchase_trade/weight_report.py | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/modules/purchase_trade/weight_report.py b/modules/purchase_trade/weight_report.py
index 95ffeaa..68b6faa 100644
--- a/modules/purchase_trade/weight_report.py
+++ b/modules/purchase_trade/weight_report.py
@@ -106,17 +106,17 @@ class WeightReport(ModelSQL, ModelView):
# Recherche ou création des parties
seller_name = parties_data.get('seller', '')
if seller_name:
- seller = Party.find_or_create_by_name(seller_name)
+ seller = Party.getPartyByName(seller_name)
report['seller'] = seller.id if seller else None
buyer_name = parties_data.get('buyer', '')
if buyer_name:
- buyer = Party.find_or_create_by_name(buyer_name)
+ buyer = Party.getPartyByName(buyer_name)
report['buyer'] = buyer.id if buyer else None
carrier_name = parties_data.get('carrier', '')
if carrier_name:
- carrier = Party.find_or_create_by_name(carrier_name)
+ carrier = Party.getPartyByName(carrier_name)
report['carrier'] = carrier.id if carrier else None
# 5. Shipment Information
@@ -143,7 +143,7 @@ class WeightReport(ModelSQL, ModelView):
if port_loading_name:
port_loading = Location.search([
('name', '=', port_loading_name),
- ('type', '=', 'storage')
+ ('type', '=', 'supplier')
], limit=1)
report['port_loading'] = port_loading[0].id if port_loading else None
@@ -151,7 +151,7 @@ class WeightReport(ModelSQL, ModelView):
if port_destination_name:
port_destination = Location.search([
('name', '=', port_destination_name),
- ('type', '=', 'storage')
+ ('type', '=', 'customer')
], limit=1)
report['port_destination'] = port_destination[0].id if port_destination else None
From 8cc19b67f97255ae9bcd2d7da32c44af0289983c Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 20 Jan 2026 20:31:49 +0100
Subject: [PATCH 062/618] 20.01.26
---
modules/automation/automation.py | 34 ++++++++++++++++--------
modules/document_incoming_wr/document.py | 26 ------------------
2 files changed, 23 insertions(+), 37 deletions(-)
diff --git a/modules/automation/automation.py b/modules/automation/automation.py
index 38250d1..e447504 100644
--- a/modules/automation/automation.py
+++ b/modules/automation/automation.py
@@ -1,4 +1,5 @@
from trytond.model import ModelSQL, ModelView, fields, Workflow
+from trytond.pool import Pool, PoolMeta
from trytond.pyson import Eval
from trytond.wizard import Button
import requests
@@ -185,17 +186,28 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
def run_pipeline(cls, docs):
for doc in docs:
try:
- if cls.rule_set.ocr_required:
- cls.run_ocr([doc])
- if cls.rule_set.structure_required and doc.state != "error":
- cls.run_structure([doc])
- if cls.rule_set.table_required and doc.state != "error":
- cls.run_tables([doc])
- if cls.rule_set.metadata_required and doc.state != "error":
- cls.run_metadata([doc])
- if doc.state != "error":
- doc.state = "validated"
- doc.notes = (doc.notes or "") + "Pipeline completed\n"
+ metadata = cls.metadata_json
+
+ if isinstance(metadata, str):
+ metadata = json.loads(metadata)
+
+ if not isinstance(metadata, dict):
+ logger.info("NOT A JSON STRUCTURE:%s",metadata)
+
+ WeightReport = Pool().get('weight.report')
+ WeightReport.create_from_json(metadata)
+
+ # if cls.rule_set.ocr_required:
+ # cls.run_ocr([doc])
+ # if cls.rule_set.structure_required and doc.state != "error":
+ # cls.run_structure([doc])
+ # if cls.rule_set.table_required and doc.state != "error":
+ # cls.run_tables([doc])
+ # if cls.rule_set.metadata_required and doc.state != "error":
+ # cls.run_metadata([doc])
+ # if doc.state != "error":
+ # doc.state = "validated"
+ # doc.notes = (doc.notes or "") + "Pipeline completed\n"
except Exception as e:
doc.state = "error"
doc.notes = (doc.notes or "") + f"Pipeline error: {e}\n"
diff --git a/modules/document_incoming_wr/document.py b/modules/document_incoming_wr/document.py
index 9e907f0..b559dcf 100644
--- a/modules/document_incoming_wr/document.py
+++ b/modules/document_incoming_wr/document.py
@@ -38,32 +38,6 @@ class Incoming(metaclass=PoolMeta):
WR.run_ocr([wr])
WR.run_metadata([wr])
- metadata = wr.metadata_json
-
- # DEBUG: Vérifiez le type et contenu
- print(f"Type de metadata: {type(metadata)}")
- print(f"Contenu de metadata: {metadata}")
-
- # Si c'est une chaîne, parsez-la
- if isinstance(metadata, str):
- try:
- metadata = json.loads(metadata)
- except json.JSONDecodeError as e:
- raise DocumentIncomingProcessError(
- gettext('document_incoming.msg_invalid_json',
- document=self.rec_name,
- error=str(e)))
-
- # Maintenant metadata devrait être un dict
- if not isinstance(metadata, dict):
- raise DocumentIncomingProcessError(
- gettext('document_incoming.msg_no_metadata',
- document=self.rec_name))
-
- # Créez le rapport - CORRECT, pas besoin de save() supplémentaire
- WeightReport = Pool().get('weight.report')
- WeightReport.create_from_json(metadata)
-
return wr
# @property
From 000547ae21b8c838bde9aff27cca048f3ec8b587 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 20 Jan 2026 20:42:59 +0100
Subject: [PATCH 063/618] 20.01.26
---
modules/automation/automation.py | 10 +++-------
1 file changed, 3 insertions(+), 7 deletions(-)
diff --git a/modules/automation/automation.py b/modules/automation/automation.py
index e447504..5eda7aa 100644
--- a/modules/automation/automation.py
+++ b/modules/automation/automation.py
@@ -186,13 +186,9 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
def run_pipeline(cls, docs):
for doc in docs:
try:
- metadata = cls.metadata_json
-
- if isinstance(metadata, str):
- metadata = json.loads(metadata)
-
- if not isinstance(metadata, dict):
- logger.info("NOT A JSON STRUCTURE:%s",metadata)
+ logger.info("DATA_TYPE:%s",type(cls.metadata_json))
+ metadata = json.loads(cls.metadata_json)
+ logger.info("JSON STRUCTURE:%s",metadata)
WeightReport = Pool().get('weight.report')
WeightReport.create_from_json(metadata)
From e2b0695cb80cdbc02b9dc73d93a5c33526f66360 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 20 Jan 2026 20:48:21 +0100
Subject: [PATCH 064/618] 20.01.26
---
modules/automation/automation.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/automation/automation.py b/modules/automation/automation.py
index 5eda7aa..e8be285 100644
--- a/modules/automation/automation.py
+++ b/modules/automation/automation.py
@@ -187,7 +187,7 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
for doc in docs:
try:
logger.info("DATA_TYPE:%s",type(cls.metadata_json))
- metadata = json.loads(cls.metadata_json)
+ metadata = json.loads(str(cls.metadata_json))
logger.info("JSON STRUCTURE:%s",metadata)
WeightReport = Pool().get('weight.report')
From b966366bc4c8e62fc1d7d15a85735fc592f31e25 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 20 Jan 2026 20:53:34 +0100
Subject: [PATCH 065/618] 20.01.26
---
modules/automation/automation.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/modules/automation/automation.py b/modules/automation/automation.py
index e8be285..2048bca 100644
--- a/modules/automation/automation.py
+++ b/modules/automation/automation.py
@@ -186,8 +186,8 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
def run_pipeline(cls, docs):
for doc in docs:
try:
- logger.info("DATA_TYPE:%s",type(cls.metadata_json))
- metadata = json.loads(str(cls.metadata_json))
+ logger.info("DATA_TYPE:%s",type(doc.metadata_json))
+ metadata = json.loads(str(doc.metadata_json))
logger.info("JSON STRUCTURE:%s",metadata)
WeightReport = Pool().get('weight.report')
From 2269fc7709481c564208f18b3d201ef356194b62 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 20 Jan 2026 20:59:36 +0100
Subject: [PATCH 066/618] 20.01.26
---
modules/purchase_trade/weight_report.py | 23 ++++++++++++++++-------
1 file changed, 16 insertions(+), 7 deletions(-)
diff --git a/modules/purchase_trade/weight_report.py b/modules/purchase_trade/weight_report.py
index 68b6faa..697688a 100644
--- a/modules/purchase_trade/weight_report.py
+++ b/modules/purchase_trade/weight_report.py
@@ -1,6 +1,6 @@
from trytond.model import ModelSQL, ModelView, fields
from trytond.pool import Pool
-from decimal import Decimal
+from decimal import Decimal, ROUND_HALF_UP
from datetime import datetime as dt
class WeightReport(ModelSQL, ModelView):
@@ -169,12 +169,21 @@ class WeightReport(ModelSQL, ModelView):
# 6. Weights Information
weights_data = json_data.get('weights', {})
- report['gross_landed_kg'] = Decimal(weights_data.get('gross_landed_kg', 0) or 0)
- report['tare_kg'] = Decimal(weights_data.get('tare_kg', 0) or 0)
- report['net_landed_kg'] = Decimal(weights_data.get('net_landed_kg', 0) or 0)
- report['invoice_net_kg'] = Decimal(weights_data.get('invoice_net_kg', 0) or 0)
- report['gain_loss_kg'] = Decimal(weights_data.get('gain_loss_kg', 0) or 0)
- report['gain_loss_percent'] = Decimal(weights_data.get('gain_loss_percent', 0) or 0)
+
+ gross = Decimal(str(weights_data.get('gross_landed_kg', 0) or 0))
+ tare = Decimal(str(weights_data.get('tare_kg', 0) or 0))
+ net = Decimal(str(weights_data.get('net_landed_kg', 0) or 0))
+ invoice = Decimal(str(weights_data.get('invoice_net_kg', 0) or 0))
+ gain_loss = Decimal(str(weights_data.get('gain_loss_kg', 0) or 0))
+ gain_loss_percent = Decimal(str(weights_data.get('gain_loss_percent', 0) or 0))
+ # Arrondir à 2 décimales
+ report['gross_landed_kg'] = gross.quantize(Decimal('0.01'), rounding=ROUND_HALF_UP)
+ report['tare_kg'] = tare.quantize(Decimal('0.01'), rounding=ROUND_HALF_UP)
+ report['net_landed_kg'] = net.quantize(Decimal('0.01'), rounding=ROUND_HALF_UP)
+ report['invoice_net_kg'] = invoice.quantize(Decimal('0.01'), rounding=ROUND_HALF_UP)
+ report['gain_loss_kg'] = gain_loss.quantize(Decimal('0.01'), rounding=ROUND_HALF_UP)
+ report['gain_loss_percent'] = gain_loss_percent.quantize(Decimal('0.01'), rounding=ROUND_HALF_UP)
+
# 7. Création du rapport
return cls.create([report])[0]
\ No newline at end of file
From 5e9141f03a65a8055bc4256e8388b7668c7b16e6 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 20 Jan 2026 21:30:14 +0100
Subject: [PATCH 067/618] 20.01.26
---
modules/automation/automation.xml | 2 +-
modules/purchase_trade/__init__.py | 1 +
modules/purchase_trade/stock.py | 7 +++++++
modules/purchase_trade/stock.xml | 6 ++++++
modules/purchase_trade/view/shipment_in_form.xml | 5 +++++
modules/purchase_trade/view/shipment_wr_tree.xml | 3 +++
6 files changed, 23 insertions(+), 1 deletion(-)
create mode 100644 modules/purchase_trade/view/shipment_wr_tree.xml
diff --git a/modules/automation/automation.xml b/modules/automation/automation.xml
index 828fea6..5bfbc7e 100644
--- a/modules/automation/automation.xml
+++ b/modules/automation/automation.xml
@@ -75,7 +75,7 @@
automation.document
run_pipeline
- Run Full Pipeline
+ Create Weight Report
automation.document
diff --git a/modules/purchase_trade/__init__.py b/modules/purchase_trade/__init__.py
index 9039887..99e5b2a 100755
--- a/modules/purchase_trade/__init__.py
+++ b/modules/purchase_trade/__init__.py
@@ -116,6 +116,7 @@ def register():
stock.Location,
stock.InvoiceLine,
stock.ShipmentIn,
+ stock.ShipmentWR,
stock.ShipmentInternal,
stock.ShipmentOut,
stock.StatementOfFacts,
diff --git a/modules/purchase_trade/stock.py b/modules/purchase_trade/stock.py
index 4b56865..d0dd7be 100755
--- a/modules/purchase_trade/stock.py
+++ b/modules/purchase_trade/stock.py
@@ -361,6 +361,12 @@ class ShipmentContainer(ModelSQL, ModelView):
seal_no = fields.Char('Seal Number')
is_reefer = fields.Boolean('Reefer')
+class ShipmentWR(ModelSQL,ModelView):
+ "Shipment WR"
+ __name__ = "shipment.wr"
+ shipment_in = fields.Many2One('stock.shipment.in',"Shipment In")
+ wr = fields.Many2One('weight.report',"WR")
+
class ShipmentIn(metaclass=PoolMeta):
__name__ = 'stock.shipment.in'
@@ -413,6 +419,7 @@ class ShipmentIn(metaclass=PoolMeta):
'shipment',
'Container'
)
+ shipment_wr = fields.One2Many('shipment.wr','shipment_in',"WR")
@classmethod
def __setup__(cls):
diff --git a/modules/purchase_trade/stock.xml b/modules/purchase_trade/stock.xml
index 5e424b7..9c58f3c 100755
--- a/modules/purchase_trade/stock.xml
+++ b/modules/purchase_trade/stock.xml
@@ -38,6 +38,12 @@ this repository contains the full copyright notices and license terms. -->
stock.shipment.container
tree
shipment_container_tree
+
+
+
+ shipment.wr
+ tree
+ shipment_wr_tree
diff --git a/modules/purchase_trade/view/shipment_in_form.xml b/modules/purchase_trade/view/shipment_in_form.xml
index 4591e2e..0a3ff41 100755
--- a/modules/purchase_trade/view/shipment_in_form.xml
+++ b/modules/purchase_trade/view/shipment_in_form.xml
@@ -109,4 +109,9 @@ this repository contains the full copyright notices and license terms. -->
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/purchase_trade/view/shipment_wr_tree.xml b/modules/purchase_trade/view/shipment_wr_tree.xml
new file mode 100644
index 0000000..18ef220
--- /dev/null
+++ b/modules/purchase_trade/view/shipment_wr_tree.xml
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
From 08581f24eaf7138f752761cafface6c6f7e8c590 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 20 Jan 2026 21:35:00 +0100
Subject: [PATCH 068/618] 20.01.26
---
modules/automation/automation.py | 2 ++
modules/purchase_trade/view/shipment_in_form.xml | 2 +-
2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/modules/automation/automation.py b/modules/automation/automation.py
index 2048bca..6767fb9 100644
--- a/modules/automation/automation.py
+++ b/modules/automation/automation.py
@@ -193,6 +193,8 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
WeightReport = Pool().get('weight.report')
WeightReport.create_from_json(metadata)
+
+
# if cls.rule_set.ocr_required:
# cls.run_ocr([doc])
# if cls.rule_set.structure_required and doc.state != "error":
diff --git a/modules/purchase_trade/view/shipment_in_form.xml b/modules/purchase_trade/view/shipment_in_form.xml
index 0a3ff41..5b89679 100755
--- a/modules/purchase_trade/view/shipment_in_form.xml
+++ b/modules/purchase_trade/view/shipment_in_form.xml
@@ -111,7 +111,7 @@ this repository contains the full copyright notices and license terms. -->
-
+
\ No newline at end of file
From 5b962eeb1df3dfa5130a14134ab4153965a5c287 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 20 Jan 2026 21:38:23 +0100
Subject: [PATCH 069/618] 20.01.26
---
modules/purchase_trade/view/shipment_wr_tree.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/purchase_trade/view/shipment_wr_tree.xml b/modules/purchase_trade/view/shipment_wr_tree.xml
index 18ef220..fddc94b 100644
--- a/modules/purchase_trade/view/shipment_wr_tree.xml
+++ b/modules/purchase_trade/view/shipment_wr_tree.xml
@@ -1,3 +1,3 @@
-
+
\ No newline at end of file
From e7ff1fd56cb51279b432d607c60d6b666081ede5 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 20 Jan 2026 21:56:09 +0100
Subject: [PATCH 070/618] 20.01.26
---
modules/automation/automation.py | 12 ++++++++++--
modules/purchase_trade/weight_report.py | 7 ++++++-
2 files changed, 16 insertions(+), 3 deletions(-)
diff --git a/modules/automation/automation.py b/modules/automation/automation.py
index 6767fb9..ebbe5a7 100644
--- a/modules/automation/automation.py
+++ b/modules/automation/automation.py
@@ -191,9 +191,17 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
logger.info("JSON STRUCTURE:%s",metadata)
WeightReport = Pool().get('weight.report')
- WeightReport.create_from_json(metadata)
-
+ wr = WeightReport.create_from_json(metadata)
+ ShipmentIn = Pool().get('stock.shipment.in')
+ ShipmentWR = Pool().get('shipment.wr')
+ sh = ShipmentIn.search([('bl_number','ilike',wr.bl_no)])
+ if sh:
+ swr = ShipmentWR()
+ swr.shipment_in = sh[0]
+ swr.wr = wr
+ ShipmentWR.save([swr])
+ doc.notes = (doc.notes or "") + f"Shipment found: {sh.number}\n"
# if cls.rule_set.ocr_required:
# cls.run_ocr([doc])
diff --git a/modules/purchase_trade/weight_report.py b/modules/purchase_trade/weight_report.py
index 697688a..59882b5 100644
--- a/modules/purchase_trade/weight_report.py
+++ b/modules/purchase_trade/weight_report.py
@@ -6,7 +6,7 @@ from datetime import datetime as dt
class WeightReport(ModelSQL, ModelView):
'Weight Report'
__name__ = 'weight.report'
-
+ _rec_name = 'reference'
# Identification
lab = fields.Char('Laboratory', required=True)
@@ -55,6 +55,11 @@ class WeightReport(ModelSQL, ModelView):
# 'export_json': {},
# })
+ def get_rec_name(self, name):
+ items = [self.lab]
+ if self.reference:
+ items.append('[%s]' % self.reference)
+ return ' '.join(items)
# @classmethod
# @ModelView.button_action('weight_report.act_import_json')
# def import_json(cls, reports):
From fffbb9708ad00560b7560356f1f31021178f8122 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 20 Jan 2026 22:14:35 +0100
Subject: [PATCH 071/618] 20.01.26
---
modules/automation/automation.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/modules/automation/automation.py b/modules/automation/automation.py
index ebbe5a7..936f57b 100644
--- a/modules/automation/automation.py
+++ b/modules/automation/automation.py
@@ -201,9 +201,9 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
swr.shipment_in = sh[0]
swr.wr = wr
ShipmentWR.save([swr])
- doc.notes = (doc.notes or "") + f"Shipment found: {sh.number}\n"
+ doc.notes = (doc.notes or "") + f"Shipment found: {sh[0].number}\n"
- # if cls.rule_set.ocr_required:
+ # if cls.rule_set.ocr_required:[]
# cls.run_ocr([doc])
# if cls.rule_set.structure_required and doc.state != "error":
# cls.run_structure([doc])
From 23d9d88492fdbda433b3e65f5dd0a60107f0c777 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Thu, 22 Jan 2026 13:55:09 +0100
Subject: [PATCH 072/618] 22.01.26
---
modules/purchase_trade/lot.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/purchase_trade/lot.py b/modules/purchase_trade/lot.py
index c35d076..d0a2fa6 100755
--- a/modules/purchase_trade/lot.py
+++ b/modules/purchase_trade/lot.py
@@ -3385,7 +3385,7 @@ class ContractDetail(ModelView):
if lqt and lqt.lot_p and getattr(lqt.lot_p.line.purchase, 'crop', None):
return lqt.lot_p.line.purchase.crop.id
if lqt and lqt.lot_s and getattr(lqt.lot_s.sale_line.sale, 'crop', None):
- return lqt.lot_s.line.sale.crop.id
+ return lqt.lot_s.sale_line.sale.crop.id
@classmethod
def default_currency(cls):
From ef27c020e0df6823a527fe13a2fac12407fbf9c2 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 25 Jan 2026 14:41:47 +0100
Subject: [PATCH 073/618] 25.01.26
---
modules/automation/freight_booking.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/automation/freight_booking.py b/modules/automation/freight_booking.py
index b28a658..79f12df 100644
--- a/modules/automation/freight_booking.py
+++ b/modules/automation/freight_booking.py
@@ -9,7 +9,7 @@ class FreightBookingInfo(ModelSQL, ModelView):
"Freight Booking"
__name__ = 'freight.booking.info'
- booking_number = fields.Integer("Booking Number")
+ booking_number = fields.Char("Booking Number")
agent = fields.Char("Agent")
controller = fields.Char("Customer")
origin = fields.Char("Origin")
From 4c70f0bc5f875232f4892bf1d81e9871bef30e39 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 26 Jan 2026 12:42:49 +0100
Subject: [PATCH 074/618] 26.01.26
---
modules/automation/automation.py | 31 ++++
modules/purchase_trade/__init__.py | 1 +
modules/purchase_trade/lot.py | 245 +++++++++++++++--------------
modules/purchase_trade/service.py | 215 +++++++++++++++++++++++++
4 files changed, 372 insertions(+), 120 deletions(-)
create mode 100644 modules/purchase_trade/service.py
diff --git a/modules/automation/automation.py b/modules/automation/automation.py
index 936f57b..dbb7db1 100644
--- a/modules/automation/automation.py
+++ b/modules/automation/automation.py
@@ -2,6 +2,8 @@ from trytond.model import ModelSQL, ModelView, fields, Workflow
from trytond.pool import Pool, PoolMeta
from trytond.pyson import Eval
from trytond.wizard import Button
+from trytond.transaction import Transaction
+from sql import Table
import requests
import io
import logging
@@ -203,6 +205,35 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
ShipmentWR.save([swr])
doc.notes = (doc.notes or "") + f"Shipment found: {sh[0].number}\n"
+ t = Table('freight_booking_lots')
+ cursor = Transaction().connection.cursor()
+ cursor.execute(*t.select(
+ t.BOOKING_NUMBER,
+ t.LOT_NUMBER,
+ t.LOT_NBR_BALES,
+ t.LOT_GROSS_WEIGHT,
+ t.LOT_NET_WEIGHT,
+ t.LOT_UOM,
+ t.LOT_QUALITY,
+ t.CUSTOMER,
+ t.SELL_PRICE_CURRENCY,
+ t.SELL_PRICE_UNIT,
+ t.SALE_INVOICE,
+ t.SELL_INV_AMOUNT,
+ t.SALE_INVOICE_DATE,
+ t.SELL_PREMIUM,
+ t.SALE_CONTRACT,
+ where=(t.BOOKING_NUMBER == sh[0].bl_number)
+ ))
+
+ rows = cursor.fetchall()
+ if rows:
+ #Purchase & Sale creation
+ Purchase = Pool().get('purchase.purchase')
+ PurchaseLine = Pool().get('purchase.line')
+ for row in rows:
+ #Lots creation
+ pass
# if cls.rule_set.ocr_required:[]
# cls.run_ocr([doc])
# if cls.rule_set.structure_required and doc.state != "error":
diff --git a/modules/purchase_trade/__init__.py b/modules/purchase_trade/__init__.py
index 99e5b2a..22f4c31 100755
--- a/modules/purchase_trade/__init__.py
+++ b/modules/purchase_trade/__init__.py
@@ -29,6 +29,7 @@ from . import (
credit_risk,
valuation,
weight_report,
+ service,
)
def register():
diff --git a/modules/purchase_trade/lot.py b/modules/purchase_trade/lot.py
index d0a2fa6..526417e 100755
--- a/modules/purchase_trade/lot.py
+++ b/modules/purchase_trade/lot.py
@@ -20,6 +20,7 @@ import datetime
import json
import logging
from trytond.exceptions import UserWarning, UserError
+from purchase_trade.service import ContractFactory
logger = logging.getLogger(__name__)
@@ -3142,127 +3143,131 @@ class CreateContracts(Wizard):
}
def transition_creating(self):
- SaleLine = Pool().get('sale.line')
- Sale = Pool().get('sale.sale')
- PurchaseLine = Pool().get('purchase.line')
- Purchase = Pool().get('purchase.purchase')
- LotQt = Pool().get('lot.qt')
- LotQtHist = Pool().get('lot.qt.hist')
- LotQtType = Pool().get('lot.qt.type')
- Lot = Pool().get('lot.lot')
- Date = Pool().get('ir.date')
- self.sale_lines = []
- type = self.ct.type
- base_contract = self.ct.lot.sale_line.sale if type == 'Purchase' else self.ct.lot.line.purchase
- for c in self.ct.contracts:
- contract = Purchase() if type == 'Purchase' else Sale()
- contract_line = PurchaseLine() if type == 'Purchase' else SaleLine()
- parts = c.currency_unit.split("_")
- if int(parts[0]) != 0:
- contract.currency = int(parts[0])
- else:
- contract.currency = 1
- contract.party = c.party
- contract.crop = c.crop
- contract.tol_min = c.tol_min
- contract.tol_max = c.tol_max
- if type == 'Purchase':
- contract.purchase_date = Date.today()
- else:
- contract.sale_date = Date.today()
- contract.reference = c.reference
- if base_contract.from_location and base_contract.to_location:
- if type == 'Purchase':
- contract.to_location = base_contract.from_location
- else:
- contract.from_location = base_contract.to_location
- if base_contract.from_location.type == 'supplier' and base_contract.to_location.type == 'customer':
- contract.from_location = base_contract.from_location
- contract.to_location = base_contract.to_location
- if c.party.wb:
- contract.wb = c.party.wb
- if c.party.association:
- contract.association = c.party.association
- if type == 'Purchase':
- if c.party.supplier_payment_term:
- contract.payment_term = c.party.supplier_payment_term
- else:
- if c.party.customer_payment_term:
- contract.payment_term = c.party.customer_payment_term
- contract.incoterm = c.incoterm
- if c.party.addresses:
- contract.invoice_address = c.party.addresses[0]
- if type == 'Sale':
- contract.shipment_address = c.party.addresses[0]
- contract.__class__.save([contract])
- contract_line.quantity = c.quantity
- contract_line.quantity_theorical = c.quantity
- contract_line.product = self.ct.product
- contract_line.price_type = c.price_type
- contract_line.unit = self.ct.unit
- if type == 'Purchase':
- contract_line.purchase = contract.id
- else:
- contract_line.sale = contract.id
- contract_line.created_by_code = self.ct.matched
- contract_line.premium = Decimal(0)
- if int(parts[0]) == 0:
- contract_line.enable_linked_currency = True
- contract_line.linked_currency = 1
- contract_line.linked_unit = int(parts[1])
- contract_line.linked_price = c.price
- contract_line.unit_price = contract_line.get_price_linked_currency()
- else:
- contract_line.unit_price = c.price if c.price else Decimal(0)
- contract_line.del_period = c.del_period
- contract_line.from_del = c.from_del
- contract_line.to_del = c.to_del
- contract_line.__class__.save([contract_line])
- logger.info("CREATE_ID:%s",contract.id)
- logger.info("CREATE_LINE_ID:%s",contract_line.id)
- if self.ct.matched:
- lot = Lot()
- if type == 'Purchase':
- lot.line = contract_line.id
- else:
- lot.sale_line = contract_line.id
- lot.lot_qt = None
- lot.lot_unit = None
- lot.lot_unit_line = contract_line.unit
- lot.lot_quantity = round(contract_line.quantity,5)
- lot.lot_gross_quantity = None
- lot.lot_status = 'forecast'
- lot.lot_type = 'virtual'
- lot.lot_product = contract_line.product
- lqtt = LotQtType.search([('sequence','=',1)])
- if lqtt:
- lqh = LotQtHist()
- lqh.quantity_type = lqtt[0]
- lqh.quantity = round(lot.lot_quantity,5)
- lqh.gross_quantity = round(lot.lot_quantity,5)
- lot.lot_hist = [lqh]
- Lot.save([lot])
- vlot = self.ct.lot
- shipment_origin = None
- if self.ct.shipment_in:
- shipment_origin = 'stock.shipment.in,' + str(self.ct.shipment_in.id)
- elif self.ct.shipment_internal:
- shipment_origin = 'stock.shipment.internal,' + str(self.ct.shipment_internal.id)
- elif self.ct.shipment_out:
- shipment_origin = 'stock.shipment.out,' + str(self.ct.shipment_out.id)
-
- qt = c.quantity
- if type == 'Purchase':
- if not lot.updateVirtualPart(qt,shipment_origin,vlot):
- lot.createVirtualPart(qt,shipment_origin,vlot)
- #Decrease forecasted virtual part non matched
- lot.updateVirtualPart(-qt,shipment_origin,vlot,'only sale')
- else:
- if not vlot.updateVirtualPart(qt,shipment_origin,lot):
- vlot.createVirtualPart(qt,shipment_origin,lot)
- #Decrease forecasted virtual part non matched
- vlot.updateVirtualPart(-qt,shipment_origin,None)
+ ContractFactory.create_contracts(
+ self.ct.contracts,
+ type_=self.ct.type,
+ ct=self.ct,
+ )
+ # SaleLine = Pool().get('sale.line')
+ # Sale = Pool().get('sale.sale')
+ # PurchaseLine = Pool().get('purchase.line')
+ # Purchase = Pool().get('purchase.purchase')
+ # LotQt = Pool().get('lot.qt')
+ # LotQtHist = Pool().get('lot.qt.hist')
+ # LotQtType = Pool().get('lot.qt.type')
+ # Lot = Pool().get('lot.lot')
+ # Date = Pool().get('ir.date')
+ # self.sale_lines = []
+ # type = self.ct.type
+ # base_contract = self.ct.lot.sale_line.sale if type == 'Purchase' else self.ct.lot.line.purchase
+ # for c in self.ct.contracts:
+ # contract = Purchase() if type == 'Purchase' else Sale()
+ # contract_line = PurchaseLine() if type == 'Purchase' else SaleLine()
+ # parts = c.currency_unit.split("_")
+ # if int(parts[0]) != 0:
+ # contract.currency = int(parts[0])
+ # else:
+ # contract.currency = 1
+ # contract.party = c.party
+ # contract.crop = c.crop
+ # contract.tol_min = c.tol_min
+ # contract.tol_max = c.tol_max
+ # if type == 'Purchase':
+ # contract.purchase_date = Date.today()
+ # else:
+ # contract.sale_date = Date.today()
+ # contract.reference = c.reference
+ # if base_contract.from_location and base_contract.to_location:
+ # if type == 'Purchase':
+ # contract.to_location = base_contract.from_location
+ # else:
+ # contract.from_location = base_contract.to_location
+ # if base_contract.from_location.type == 'supplier' and base_contract.to_location.type == 'customer':
+ # contract.from_location = base_contract.from_location
+ # contract.to_location = base_contract.to_location
+ # if c.party.wb:
+ # contract.wb = c.party.wb
+ # if c.party.association:
+ # contract.association = c.party.association
+ # if type == 'Purchase':
+ # if c.party.supplier_payment_term:
+ # contract.payment_term = c.party.supplier_payment_term
+ # else:
+ # if c.party.customer_payment_term:
+ # contract.payment_term = c.party.customer_payment_term
+ # contract.incoterm = c.incoterm
+ # if c.party.addresses:
+ # contract.invoice_address = c.party.addresses[0]
+ # if type == 'Sale':
+ # contract.shipment_address = c.party.addresses[0]
+ # contract.__class__.save([contract])
+ # contract_line.quantity = c.quantity
+ # contract_line.quantity_theorical = c.quantity
+ # contract_line.product = self.ct.product
+ # contract_line.price_type = c.price_type
+ # contract_line.unit = self.ct.unit
+ # if type == 'Purchase':
+ # contract_line.purchase = contract.id
+ # else:
+ # contract_line.sale = contract.id
+ # contract_line.created_by_code = self.ct.matched
+ # contract_line.premium = Decimal(0)
+ # if int(parts[0]) == 0:
+ # contract_line.enable_linked_currency = True
+ # contract_line.linked_currency = 1
+ # contract_line.linked_unit = int(parts[1])
+ # contract_line.linked_price = c.price
+ # contract_line.unit_price = contract_line.get_price_linked_currency()
+ # else:
+ # contract_line.unit_price = c.price if c.price else Decimal(0)
+ # contract_line.del_period = c.del_period
+ # contract_line.from_del = c.from_del
+ # contract_line.to_del = c.to_del
+ # contract_line.__class__.save([contract_line])
+ # logger.info("CREATE_ID:%s",contract.id)
+ # logger.info("CREATE_LINE_ID:%s",contract_line.id)
+ # if self.ct.matched:
+ # lot = Lot()
+ # if type == 'Purchase':
+ # lot.line = contract_line.id
+ # else:
+ # lot.sale_line = contract_line.id
+ # lot.lot_qt = None
+ # lot.lot_unit = None
+ # lot.lot_unit_line = contract_line.unit
+ # lot.lot_quantity = round(contract_line.quantity,5)
+ # lot.lot_gross_quantity = None
+ # lot.lot_status = 'forecast'
+ # lot.lot_type = 'virtual'
+ # lot.lot_product = contract_line.product
+ # lqtt = LotQtType.search([('sequence','=',1)])
+ # if lqtt:
+ # lqh = LotQtHist()
+ # lqh.quantity_type = lqtt[0]
+ # lqh.quantity = round(lot.lot_quantity,5)
+ # lqh.gross_quantity = round(lot.lot_quantity,5)
+ # lot.lot_hist = [lqh]
+ # Lot.save([lot])
+ # vlot = self.ct.lot
+ # shipment_origin = None
+ # if self.ct.shipment_in:
+ # shipment_origin = 'stock.shipment.in,' + str(self.ct.shipment_in.id)
+ # elif self.ct.shipment_internal:
+ # shipment_origin = 'stock.shipment.internal,' + str(self.ct.shipment_internal.id)
+ # elif self.ct.shipment_out:
+ # shipment_origin = 'stock.shipment.out,' + str(self.ct.shipment_out.id)
+ # qt = c.quantity
+ # if type == 'Purchase':
+ # if not lot.updateVirtualPart(qt,shipment_origin,vlot):
+ # lot.createVirtualPart(qt,shipment_origin,vlot)
+ # #Decrease forecasted virtual part non matched
+ # lot.updateVirtualPart(-qt,shipment_origin,vlot,'only sale')
+ # else:
+ # if not vlot.updateVirtualPart(qt,shipment_origin,lot):
+ # vlot.createVirtualPart(qt,shipment_origin,lot)
+ # #Decrease forecasted virtual part non matched
+ # vlot.updateVirtualPart(-qt,shipment_origin,None)
return 'end'
diff --git a/modules/purchase_trade/service.py b/modules/purchase_trade/service.py
new file mode 100644
index 0000000..0159e12
--- /dev/null
+++ b/modules/purchase_trade/service.py
@@ -0,0 +1,215 @@
+# -*- coding: utf-8 -*-
+from decimal import Decimal
+import logging
+
+from trytond.pool import Pool
+from trytond.transaction import Transaction
+
+logger = logging.getLogger(__name__)
+
+
+class ContractFactory:
+ """
+ Factory métier pour créer des Purchase depuis Sale
+ ou des Sale depuis Purchase.
+
+ Compatible :
+ - Wizard (n contrats)
+ - Appel direct depuis un modèle (1 contrat)
+ """
+
+ @classmethod
+ def create_contracts(cls, contracts, *, type_, ct):
+ """
+ :param contracts: iterable de contracts (wizard lines)
+ :param type_: 'Purchase' ou 'Sale'
+ :param ct: objet contenant le contexte (lot, product, unit, matched...)
+ :return: liste des contracts créés
+ """
+ pool = Pool()
+
+ Sale = pool.get('sale.sale')
+ Purchase = pool.get('purchase.purchase')
+ SaleLine = pool.get('sale.line')
+ PurchaseLine = pool.get('purchase.line')
+ Date = pool.get('ir.date')
+
+ created = []
+
+ base_contract = (
+ ct.lot.sale_line.sale
+ if type_ == 'Purchase'
+ else ct.lot.line.purchase
+ )
+
+ for c in contracts:
+ contract = Purchase() if type_ == 'Purchase' else Sale()
+ line = PurchaseLine() if type_ == 'Purchase' else SaleLine()
+
+ # ---------- CONTRACT ----------
+ parts = c.currency_unit.split("_")
+ contract.currency = int(parts[0]) or 1
+ contract.party = c.party
+ contract.crop = c.crop
+ contract.tol_min = c.tol_min
+ contract.tol_max = c.tol_max
+ contract.reference = c.reference
+
+ if type_ == 'Purchase':
+ contract.purchase_date = Date.today()
+ else:
+ contract.sale_date = Date.today()
+
+ cls._apply_locations(contract, base_contract, type_)
+ cls._apply_party_data(contract, c.party, type_)
+ cls._apply_payment_term(contract, c.party, type_)
+
+ contract.incoterm = c.incoterm
+
+ if c.party.addresses:
+ contract.invoice_address = c.party.addresses[0]
+ if type_ == 'Sale':
+ contract.shipment_address = c.party.addresses[0]
+
+ contract.save()
+
+ # ---------- LINE ----------
+ line.quantity = c.quantity
+ line.quantity_theorical = c.quantity
+ line.product = ct.product
+ line.unit = ct.unit
+ line.price_type = c.price_type
+ line.created_by_code = ct.matched
+ line.premium = Decimal(0)
+
+ if type_ == 'Purchase':
+ line.purchase = contract.id
+ else:
+ line.sale = contract.id
+
+ cls._apply_price(line, c, parts)
+
+ line.del_period = c.del_period
+ line.from_del = c.from_del
+ line.to_del = c.to_del
+
+ line.save()
+
+ logger.info("CREATE_ID:%s", contract.id)
+ logger.info("CREATE_LINE_ID:%s", line.id)
+
+ if ct.matched:
+ cls._create_lot(line, c, ct, type_)
+
+ created.append(contract)
+
+ return created
+
+ # -------------------------------------------------------------------------
+ # Helpers
+ # -------------------------------------------------------------------------
+
+ @staticmethod
+ def _apply_locations(contract, base, type_):
+ if not (base.from_location and base.to_location):
+ return
+
+ if type_ == 'Purchase':
+ contract.to_location = base.from_location
+ else:
+ contract.from_location = base.to_location
+
+ if (base.from_location.type == 'supplier'
+ and base.to_location.type == 'customer'):
+ contract.from_location = base.from_location
+ contract.to_location = base.to_location
+
+ @staticmethod
+ def _apply_party_data(contract, party, type_):
+ if party.wb:
+ contract.wb = party.wb
+ if party.association:
+ contract.association = party.association
+
+ @staticmethod
+ def _apply_payment_term(contract, party, type_):
+ if type_ == 'Purchase' and party.supplier_payment_term:
+ contract.payment_term = party.supplier_payment_term
+ elif type_ == 'Sale' and party.customer_payment_term:
+ contract.payment_term = party.customer_payment_term
+
+ @staticmethod
+ def _apply_price(line, c, parts):
+ if int(parts[0]) == 0:
+ line.enable_linked_currency = True
+ line.linked_currency = 1
+ line.linked_unit = int(parts[1])
+ line.linked_price = c.price
+ line.unit_price = line.get_price_linked_currency()
+ else:
+ line.unit_price = c.price if c.price else Decimal(0)
+
+ # -------------------------------------------------------------------------
+ # LOT / MATCHING (repris tel quel du wizard)
+ # -------------------------------------------------------------------------
+
+ @classmethod
+ def _create_lot(cls, line, c, ct, type_):
+ pool = Pool()
+ Lot = pool.get('lot.lot')
+ LotQtHist = pool.get('lot.qt.hist')
+ LotQtType = pool.get('lot.qt.type')
+
+ lot = Lot()
+
+ if type_ == 'Purchase':
+ lot.line = line.id
+ else:
+ lot.sale_line = line.id
+
+ lot.lot_qt = None
+ lot.lot_unit = None
+ lot.lot_unit_line = line.unit
+ lot.lot_quantity = round(line.quantity, 5)
+ lot.lot_gross_quantity = None
+ lot.lot_status = 'forecast'
+ lot.lot_type = 'virtual'
+ lot.lot_product = line.product
+
+ lqtt = LotQtType.search([('sequence', '=', 1)])
+ if lqtt:
+ lqh = LotQtHist()
+ lqh.quantity_type = lqtt[0]
+ lqh.quantity = round(lot.lot_quantity, 5)
+ lqh.gross_quantity = round(lot.lot_quantity, 5)
+ lot.lot_hist = [lqh]
+
+ lot.save()
+
+ vlot = ct.lot
+ shipment_origin = cls._get_shipment_origin(ct)
+
+ qt = c.quantity
+
+ if type_ == 'Purchase':
+ if not lot.updateVirtualPart(qt, shipment_origin, vlot):
+ lot.createVirtualPart(qt, shipment_origin, vlot)
+
+ # Decrease forecasted virtual part non matched
+ lot.updateVirtualPart(-qt, shipment_origin, vlot, 'only sale')
+ else:
+ if not vlot.updateVirtualPart(qt, shipment_origin, lot):
+ vlot.createVirtualPart(qt, shipment_origin, lot)
+
+ # Decrease forecasted virtual part non matched
+ vlot.updateVirtualPart(-qt, shipment_origin, None)
+
+ @staticmethod
+ def _get_shipment_origin(ct):
+ if ct.shipment_in:
+ return 'stock.shipment.in,%s' % ct.shipment_in.id
+ if ct.shipment_internal:
+ return 'stock.shipment.internal,%s' % ct.shipment_internal.id
+ if ct.shipment_out:
+ return 'stock.shipment.out,%s' % ct.shipment_out.id
+ return None
From fbfc9433019aad0e5c8b9c7d1f79b3b1bd7fa0e9 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 26 Jan 2026 13:16:42 +0100
Subject: [PATCH 075/618] 26.01.26
---
modules/purchase_trade/lot.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/purchase_trade/lot.py b/modules/purchase_trade/lot.py
index 526417e..c990eb4 100755
--- a/modules/purchase_trade/lot.py
+++ b/modules/purchase_trade/lot.py
@@ -20,7 +20,7 @@ import datetime
import json
import logging
from trytond.exceptions import UserWarning, UserError
-from purchase_trade.service import ContractFactory
+from trytond.modules.purchase_trade.service import ContractFactory
logger = logging.getLogger(__name__)
From 757b9f724d6af0692d303f2700854a4df6480d25 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 26 Jan 2026 17:32:33 +0100
Subject: [PATCH 076/618] 26.01.26
---
modules/automation/automation.py | 111 +++++++++++++++++++++++++++++--
modules/currency/currency.py | 7 ++
modules/product/product.py | 20 ++++++
modules/product/uom.py | 7 ++
modules/purchase_trade/lot.py | 8 +--
5 files changed, 145 insertions(+), 8 deletions(-)
diff --git a/modules/automation/automation.py b/modules/automation/automation.py
index dbb7db1..54cc348 100644
--- a/modules/automation/automation.py
+++ b/modules/automation/automation.py
@@ -4,10 +4,12 @@ from trytond.pyson import Eval
from trytond.wizard import Button
from trytond.transaction import Transaction
from sql import Table
+from decimal import getcontext, Decimal, ROUND_HALF_UP
import requests
import io
import logging
import json
+from trytond.modules.purchase_trade.service import ContractFactory
logger = logging.getLogger(__name__)
@@ -218,22 +220,123 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
t.CUSTOMER,
t.SELL_PRICE_CURRENCY,
t.SELL_PRICE_UNIT,
+ t.SELL_PRICE,
t.SALE_INVOICE,
t.SELL_INV_AMOUNT,
t.SALE_INVOICE_DATE,
t.SELL_PREMIUM,
t.SALE_CONTRACT,
+ t.DECLARATION_KEY,
where=(t.BOOKING_NUMBER == sh[0].bl_number)
))
rows = cursor.fetchall()
if rows:
- #Purchase & Sale creation
- Purchase = Pool().get('purchase.purchase')
- PurchaseLine = Pool().get('purchase.line')
for row in rows:
+ #Purchase & Sale creation
+ LotQt = Pool().get('lot.qt')
+ LotAdd = Pool().get('lot.add.line')
+ Currency = Pool().get('currency.currency')
+ Product = Pool().get('product.product')
+ Party = Pool().get('party.party')
+ Uom = Pool().get('product.uom')
+ Sale = Pool().get('sale.sale')
+ SaleLine = Pool().get('sale.line')
+
+ dec_key = str(rows[0][16]).strip()
+ lot_unit = str(rows[0][5]).strip().lower()
+ product = str(rows[0][6]).strip().upper()
+ lot_net_weight = Decimal(rows[0][4])
+ lot_gross_weight = Decimal(rows[0][3])
+ lot_bales = int(rows[0][2])
+ lot_number = rows[0][1]
+ customer = str(rows[0][7]).strip().upper()
+ sell_price_currency = str(rows[0][8]).strip().upper()
+ sell_price_unit = str(rows[0][9]).strip().lower()
+ sell_price = Decimal(rows[0][10])
+ premium = Decimal(rows[0][14])
+ reference = Decimal(rows[0][15])
+
+ declaration = SaleLine.search(['note','=',dec_key])
+ if declaration:
+ sale_line = declaration[0]
+ logger.info("WITH_DEC:%s",sale_line)
+ vlot = sale_line.lots[0]
+ lqt = LotQt.search([('lot_s','=',vlot.id)])
+ lqt.lot_p.updateVirtualPart(lot_net_weight,sh,lqt.lot_s)
+ logger.info("WITH_DEC_LOT_NET:%s",lot_net_weight)
+ else:
+ sale = Sale()
+ sale_line = SaleLine()
+ sale.party = Party.getPartyByName(customer)
+ sale.reference = reference
+ if sale.party.addresses:
+ sale.invoice_address = sale.party.addresses[0]
+ sale.shipment_address = sale.party.addresses[0]
+
+ if sell_price_currency == 'USC':
+ sale.currency = Currency.get_by_name('USD')
+ sale_line.enable_linked_currency = True
+ sale_line.linked_currency = 1
+ sale_line.linked_unit = Uom.get_by_name(sell_price_unit)
+ sale_line.linked_price = sell_price
+ sale_line.unit_price = sale_line.get_price_linked_currency()
+ else:
+ sale.currency = Currency.get_by_name(sell_price_currency)
+ sale_line.unit_price = sell_price
+ sale_line.unit = Uom.get_by_name(sell_price_unit)
+ sale_line.premium = premium
+ Sale.save([sale])
+ sale_line.sale = sale.id
+ sale_line.quantity = lot_net_weight
+ sale_line.quantity_theorical = lot_net_weight
+ sale_line.product = Product.get_by_name('BRAZIL COTTON')
+ sale_line.unit = Uom.get_id_by_name(lot_unit)
+ sale_line.price_type = 'priced'
+ sale_line.created_by_code = False
+ sale_line.note = dec_key
+ SaleLine.save([sale_line])
+
+ ContractStart = Pool().get('contracts.start')
+ ContractDetail = Pool().get('contract.detail')
+ ct = ContractStart()
+ d = ContractDetail()
+ ct.type = 'Purchase'
+ ct.matched = True
+ ct.shipment_in = sh
+ ct.lot = sale_line.lots[0]
+ d.party = Party.getPartyByName('FAIRCOT')
+ if sale_line.enable_linked_currency:
+ d.currency_unit = str(sale_line.linked_currency.id) + '_' + str(sale_line.linked_unit.id)
+ else:
+ d.currency_unit = str(sale.currency.id) + '_' + str(sale_line.unit.id)
+ d.quantity = sale_line.quantity
+ d.unit = sale_line.unit
+ d.price = sale_line.unit_price
+ d.price_type = 'priced'
+ ct.contracts = [d]
+ ContractFactory.create_contracts(
+ ct.contracts,
+ type_=ct.type,
+ ct=ct,
+ )
+
#Lots creation
- pass
+ vlot = sale_line.lots[0]
+ lqt = LotQt.search([('lot_s','=',vlot.id)])
+ if lqt and vlot.lot_quantity > 0:
+ lqt = lqt[0]
+ l = LotAdd()
+ l.lot_qt = lot_bales
+ l.lot_unit = Uom.get_by_name('bale')
+ l.lot_unit_line = lot_unit
+ l.lot_quantity = lot_net_weight
+ l.lot_gross_quantity = lot_gross_weight
+ l.lot_premium = premium
+ LotQt.add_physical_lots(lqt,[l])
+
+
+
# if cls.rule_set.ocr_required:[]
# cls.run_ocr([doc])
# if cls.rule_set.structure_required and doc.state != "error":
diff --git a/modules/currency/currency.py b/modules/currency/currency.py
index b317374..b809e48 100755
--- a/modules/currency/currency.py
+++ b/modules/currency/currency.py
@@ -137,6 +137,13 @@ class Currency(
closer = date
return res
+ @classmethod
+ def get_by_name(cls, name):
+ currencies = cls.search([('symbol', '=', name)], limit=1)
+ if not currencies:
+ return None
+ return currencies[0]
+
@staticmethod
def _get_rate(currencies, tdate=None):
'''
diff --git a/modules/product/product.py b/modules/product/product.py
index 20c9e58..95c4a4a 100755
--- a/modules/product/product.py
+++ b/modules/product/product.py
@@ -609,6 +609,26 @@ class Product(
('template.code', operator, code_value, *extra),
]
+ @classmethod
+ def get_by_name(cls, name, type_='goods'):
+ pool = Pool()
+ Template = pool.get('product.template')
+ Uom = pool.get('product.uom')
+
+ templates = Template.search([('name', '=', name)], limit=1)
+ if templates:
+ return templates[0].products[0]
+
+ unit_uom, = Uom.search([('name', '=', 'Mt')], limit=1)
+
+ template, = Template.create([{
+ 'name': name,
+ 'type': type_,
+ 'default_uom': unit_uom.id,
+ 'cost_price_method': 'fixed',
+ }])
+ return template.products[0]
+
@staticmethod
def get_price_uom(products, name):
Uom = Pool().get('product.uom')
diff --git a/modules/product/uom.py b/modules/product/uom.py
index 5c7eff5..f9a7245 100755
--- a/modules/product/uom.py
+++ b/modules/product/uom.py
@@ -92,6 +92,13 @@ class Uom(SymbolMixin, DigitsMixin, DeactivableMixin, ModelSQL, ModelView):
def default_digits():
return 2
+ @classmethod
+ def get_by_name(cls, name):
+ uom = cls.search([('symbol', '=', name)], limit=1)
+ if not uom:
+ return None
+ return uom[0]
+
@fields.depends('factor')
def on_change_factor(self):
if (self.factor or 0.0) == 0.0:
diff --git a/modules/purchase_trade/lot.py b/modules/purchase_trade/lot.py
index c990eb4..2d7df38 100755
--- a/modules/purchase_trade/lot.py
+++ b/modules/purchase_trade/lot.py
@@ -3144,10 +3144,10 @@ class CreateContracts(Wizard):
def transition_creating(self):
ContractFactory.create_contracts(
- self.ct.contracts,
- type_=self.ct.type,
- ct=self.ct,
- )
+ self.ct.contracts,
+ type_=self.ct.type,
+ ct=self.ct,
+ )
# SaleLine = Pool().get('sale.line')
# Sale = Pool().get('sale.sale')
# PurchaseLine = Pool().get('purchase.line')
From 985f4dc19d8e6bbc7b860c700f620f99834216df Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 26 Jan 2026 20:48:41 +0100
Subject: [PATCH 077/618] 26.01.26
---
modules/automation/automation.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/modules/automation/automation.py b/modules/automation/automation.py
index 54cc348..40fdebc 100644
--- a/modules/automation/automation.py
+++ b/modules/automation/automation.py
@@ -225,8 +225,8 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
t.SELL_INV_AMOUNT,
t.SALE_INVOICE_DATE,
t.SELL_PREMIUM,
- t.SALE_CONTRACT,
- t.DECLARATION_KEY,
+ t.SALE_CONTRACT_NUMBER,
+ t.SALE_DECLARATION_KEY,
where=(t.BOOKING_NUMBER == sh[0].bl_number)
))
From 58b360ed6c113976c4c4485ef7e498358402c476 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 26 Jan 2026 21:00:36 +0100
Subject: [PATCH 078/618] 26.01.26
---
modules/automation/automation.py | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/modules/automation/automation.py b/modules/automation/automation.py
index 40fdebc..b451c71 100644
--- a/modules/automation/automation.py
+++ b/modules/automation/automation.py
@@ -206,10 +206,10 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
swr.wr = wr
ShipmentWR.save([swr])
doc.notes = (doc.notes or "") + f"Shipment found: {sh[0].number}\n"
-
+ logger.info("BL_NUMBER:%s",sh[0].bl_number)
t = Table('freight_booking_lots')
cursor = Transaction().connection.cursor()
- cursor.execute(*t.select(
+ query = t.select(
t.BOOKING_NUMBER,
t.LOT_NUMBER,
t.LOT_NBR_BALES,
@@ -228,9 +228,12 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
t.SALE_CONTRACT_NUMBER,
t.SALE_DECLARATION_KEY,
where=(t.BOOKING_NUMBER == sh[0].bl_number)
- ))
+ )
+ cursor.execute(*query)
+ logger.info("QUERY:%s",*query)
rows = cursor.fetchall()
+ logger.info("ROWS:%s",rows)
if rows:
for row in rows:
#Purchase & Sale creation
From e2fc7178c4cda3c7cc14994bc8b8c877d4a84998 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 26 Jan 2026 21:06:23 +0100
Subject: [PATCH 079/618] 26.01.26
---
modules/automation/automation.py | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/modules/automation/automation.py b/modules/automation/automation.py
index b451c71..3cc8e95 100644
--- a/modules/automation/automation.py
+++ b/modules/automation/automation.py
@@ -227,11 +227,11 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
t.SELL_PREMIUM,
t.SALE_CONTRACT_NUMBER,
t.SALE_DECLARATION_KEY,
- where=(t.BOOKING_NUMBER == sh[0].bl_number)
+ # where=(t.BOOKING_NUMBER == sh[0].bl_number)
)
-
- cursor.execute(*query)
logger.info("QUERY:%s",*query)
+ cursor.execute(*query)
+
rows = cursor.fetchall()
logger.info("ROWS:%s",rows)
if rows:
From 72b1d4ffcd801bedcc06c37988e47111447d161c Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 26 Jan 2026 21:14:21 +0100
Subject: [PATCH 080/618] 26.01.26
---
modules/automation/automation.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/automation/automation.py b/modules/automation/automation.py
index 3cc8e95..83b5f8c 100644
--- a/modules/automation/automation.py
+++ b/modules/automation/automation.py
@@ -227,7 +227,7 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
t.SELL_PREMIUM,
t.SALE_CONTRACT_NUMBER,
t.SALE_DECLARATION_KEY,
- # where=(t.BOOKING_NUMBER == sh[0].bl_number)
+ where=(t.BOOKING_NUMBER == int(sh[0].bl_number))
)
logger.info("QUERY:%s",*query)
cursor.execute(*query)
From 210adad3f69217f0a29113611a9f859f370292b8 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 26 Jan 2026 21:18:51 +0100
Subject: [PATCH 081/618] 26.01.26
---
modules/automation/automation.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/automation/automation.py b/modules/automation/automation.py
index 83b5f8c..d99065e 100644
--- a/modules/automation/automation.py
+++ b/modules/automation/automation.py
@@ -227,7 +227,7 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
t.SELL_PREMIUM,
t.SALE_CONTRACT_NUMBER,
t.SALE_DECLARATION_KEY,
- where=(t.BOOKING_NUMBER == int(sh[0].bl_number))
+ where=(t.BOOKING_NUMBER == int(sh[0].reference))
)
logger.info("QUERY:%s",*query)
cursor.execute(*query)
From e71c6b14d0aa5a160acbbbff9605239b29c6fcdb Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 26 Jan 2026 21:26:39 +0100
Subject: [PATCH 082/618] 26.01.26
---
modules/automation/automation.py | 2 --
1 file changed, 2 deletions(-)
diff --git a/modules/automation/automation.py b/modules/automation/automation.py
index d99065e..aa5471c 100644
--- a/modules/automation/automation.py
+++ b/modules/automation/automation.py
@@ -229,9 +229,7 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
t.SALE_DECLARATION_KEY,
where=(t.BOOKING_NUMBER == int(sh[0].reference))
)
- logger.info("QUERY:%s",*query)
cursor.execute(*query)
-
rows = cursor.fetchall()
logger.info("ROWS:%s",rows)
if rows:
From 765d526c169a8aa181378836e27fb1564c8aaf10 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 26 Jan 2026 21:31:31 +0100
Subject: [PATCH 083/618] 26.01.26
---
modules/automation/automation.py | 27 ++++++++++++++-------------
1 file changed, 14 insertions(+), 13 deletions(-)
diff --git a/modules/automation/automation.py b/modules/automation/automation.py
index aa5471c..3dbaa3c 100644
--- a/modules/automation/automation.py
+++ b/modules/automation/automation.py
@@ -234,6 +234,7 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
logger.info("ROWS:%s",rows)
if rows:
for row in rows:
+ logger.info("ROW:%s",row)
#Purchase & Sale creation
LotQt = Pool().get('lot.qt')
LotAdd = Pool().get('lot.add.line')
@@ -244,19 +245,19 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
Sale = Pool().get('sale.sale')
SaleLine = Pool().get('sale.line')
- dec_key = str(rows[0][16]).strip()
- lot_unit = str(rows[0][5]).strip().lower()
- product = str(rows[0][6]).strip().upper()
- lot_net_weight = Decimal(rows[0][4])
- lot_gross_weight = Decimal(rows[0][3])
- lot_bales = int(rows[0][2])
- lot_number = rows[0][1]
- customer = str(rows[0][7]).strip().upper()
- sell_price_currency = str(rows[0][8]).strip().upper()
- sell_price_unit = str(rows[0][9]).strip().lower()
- sell_price = Decimal(rows[0][10])
- premium = Decimal(rows[0][14])
- reference = Decimal(rows[0][15])
+ dec_key = str(row[16]).strip()
+ lot_unit = str(row[5]).strip().lower()
+ product = str(row[6]).strip().upper()
+ lot_net_weight = Decimal(row[4])
+ lot_gross_weight = Decimal(row[3])
+ lot_bales = int(row[2])
+ lot_number = row[1]
+ customer = str(row[7]).strip().upper()
+ sell_price_currency = str(row[8]).strip().upper()
+ sell_price_unit = str(row[9]).strip().lower()
+ sell_price = Decimal(row[10])
+ premium = Decimal(row[14])
+ reference = Decimal(row[15])
declaration = SaleLine.search(['note','=',dec_key])
if declaration:
From 017eb92c6a9b0ffd4a6330eae01d2e2deabd1945 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 26 Jan 2026 21:43:41 +0100
Subject: [PATCH 084/618] 26.01.26
---
modules/automation/automation.py | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/modules/automation/automation.py b/modules/automation/automation.py
index 3dbaa3c..1a69536 100644
--- a/modules/automation/automation.py
+++ b/modules/automation/automation.py
@@ -258,7 +258,7 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
sell_price = Decimal(row[10])
premium = Decimal(row[14])
reference = Decimal(row[15])
-
+ logger.info("DECLARATION_KEY:%s",dec_key)
declaration = SaleLine.search(['note','=',dec_key])
if declaration:
sale_line = declaration[0]
@@ -271,6 +271,7 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
sale = Sale()
sale_line = SaleLine()
sale.party = Party.getPartyByName(customer)
+ logger.info("SALE_PARTY:%s",sale.party)
sale.reference = reference
if sale.party.addresses:
sale.invoice_address = sale.party.addresses[0]
@@ -293,6 +294,7 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
sale_line.quantity = lot_net_weight
sale_line.quantity_theorical = lot_net_weight
sale_line.product = Product.get_by_name('BRAZIL COTTON')
+ logger.info("PRODUCT:%s",sale_line.product)
sale_line.unit = Uom.get_id_by_name(lot_unit)
sale_line.price_type = 'priced'
sale_line.created_by_code = False
@@ -351,6 +353,13 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
# doc.state = "validated"
# doc.notes = (doc.notes or "") + "Pipeline completed\n"
except Exception as e:
+ logger.exception("PIPELINE FAILED") # 👈 TRACE COMPLETE
doc.state = "error"
doc.notes = (doc.notes or "") + f"Pipeline error: {e}\n"
+ doc.save()
+ raise
+
+ # except Exception as e:
+ # doc.state = "error"
+ # doc.notes = (doc.notes or "") + f"Pipeline error: {e}\n"
doc.save()
\ No newline at end of file
From f94f8d3abe0f25424fa10f13453665a577688afb Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 26 Jan 2026 21:50:32 +0100
Subject: [PATCH 085/618] 26.01.26
---
modules/automation/automation.py | 1 +
1 file changed, 1 insertion(+)
diff --git a/modules/automation/automation.py b/modules/automation/automation.py
index 1a69536..d9c35a0 100644
--- a/modules/automation/automation.py
+++ b/modules/automation/automation.py
@@ -273,6 +273,7 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
sale.party = Party.getPartyByName(customer)
logger.info("SALE_PARTY:%s",sale.party)
sale.reference = reference
+ sale.company = 6
if sale.party.addresses:
sale.invoice_address = sale.party.addresses[0]
sale.shipment_address = sale.party.addresses[0]
From db207f4995cf4b1c7f5f34154cfc84e0e4ebd369 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 26 Jan 2026 22:05:58 +0100
Subject: [PATCH 086/618] 26.01.26
---
modules/automation/automation.py | 2 +-
modules/purchase_trade/party.py | 14 ++++++++++----
2 files changed, 11 insertions(+), 5 deletions(-)
diff --git a/modules/automation/automation.py b/modules/automation/automation.py
index d9c35a0..47ec9dd 100644
--- a/modules/automation/automation.py
+++ b/modules/automation/automation.py
@@ -270,7 +270,7 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
else:
sale = Sale()
sale_line = SaleLine()
- sale.party = Party.getPartyByName(customer)
+ sale.party = Party.getPartyByName(customer,'CLIENT')
logger.info("SALE_PARTY:%s",sale.party)
sale.reference = reference
sale.company = 6
diff --git a/modules/purchase_trade/party.py b/modules/purchase_trade/party.py
index fde79b8..d612244 100755
--- a/modules/purchase_trade/party.py
+++ b/modules/purchase_trade/party.py
@@ -1,12 +1,9 @@
from trytond.model import ModelSQL, ModelView, fields
-from trytond.pool import PoolMeta
+from trytond.pool import PoolMeta, Pool
from trytond.exceptions import UserError
from trytond.modules.purchase_trade.purchase import (TRIGGERS)
from trytond.transaction import Transaction
-__all__ = ['Party']
-__metaclass__ = PoolMeta
-
class PartyExecution(ModelSQL,ModelView):
"Party Execution"
__name__ = 'party.execution'
@@ -34,5 +31,14 @@ class Party(metaclass=PoolMeta):
p = cls()
p.name = party
cls.save([p])
+ if category:
+ Category = Pool().get('party.category')
+ cat = Category.search(['name','=',category])
+ if cat:
+ PartyCategory = Pool().get('party.party-party.category')
+ pc = PartyCategory()
+ pc.party = p.id
+ pc.category = cat[0].id
+ PartyCategory.save([pc])
return p
\ No newline at end of file
From ece0e55f982b19677eab6428d5729ece115abf27 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 26 Jan 2026 22:09:09 +0100
Subject: [PATCH 087/618] 26.01.26
---
modules/automation/automation.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/automation/automation.py b/modules/automation/automation.py
index 47ec9dd..c2ac7b5 100644
--- a/modules/automation/automation.py
+++ b/modules/automation/automation.py
@@ -296,7 +296,7 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
sale_line.quantity_theorical = lot_net_weight
sale_line.product = Product.get_by_name('BRAZIL COTTON')
logger.info("PRODUCT:%s",sale_line.product)
- sale_line.unit = Uom.get_id_by_name(lot_unit)
+ sale_line.unit = Uom.get_by_name(lot_unit)
sale_line.price_type = 'priced'
sale_line.created_by_code = False
sale_line.note = dec_key
From f96e73d7b9810c08db81f6f743d21c925e9cae34 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 26 Jan 2026 22:15:30 +0100
Subject: [PATCH 088/618] 26.01.26
---
modules/automation/automation.py | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/modules/automation/automation.py b/modules/automation/automation.py
index c2ac7b5..443225d 100644
--- a/modules/automation/automation.py
+++ b/modules/automation/automation.py
@@ -283,17 +283,17 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
sale_line.enable_linked_currency = True
sale_line.linked_currency = 1
sale_line.linked_unit = Uom.get_by_name(sell_price_unit)
- sale_line.linked_price = sell_price
+ sale_line.linked_price = round(sell_price,4)
sale_line.unit_price = sale_line.get_price_linked_currency()
else:
sale.currency = Currency.get_by_name(sell_price_currency)
- sale_line.unit_price = sell_price
+ sale_line.unit_price = round(sell_price,4)
sale_line.unit = Uom.get_by_name(sell_price_unit)
sale_line.premium = premium
Sale.save([sale])
sale_line.sale = sale.id
- sale_line.quantity = lot_net_weight
- sale_line.quantity_theorical = lot_net_weight
+ sale_line.quantity = round(lot_net_weight,5)
+ sale_line.quantity_theorical = round(lot_net_weight,5)
sale_line.product = Product.get_by_name('BRAZIL COTTON')
logger.info("PRODUCT:%s",sale_line.product)
sale_line.unit = Uom.get_by_name(lot_unit)
@@ -335,8 +335,8 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
l.lot_qt = lot_bales
l.lot_unit = Uom.get_by_name('bale')
l.lot_unit_line = lot_unit
- l.lot_quantity = lot_net_weight
- l.lot_gross_quantity = lot_gross_weight
+ l.lot_quantity = round(lot_net_weight,5)
+ l.lot_gross_quantity = round(lot_gross_weight,5)
l.lot_premium = premium
LotQt.add_physical_lots(lqt,[l])
From 2248f49f9dc69cab688e7b9bed52e590cac2aee2 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 26 Jan 2026 22:18:39 +0100
Subject: [PATCH 089/618] 26.01.26
---
modules/automation/automation.py | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/modules/automation/automation.py b/modules/automation/automation.py
index 443225d..4b3731c 100644
--- a/modules/automation/automation.py
+++ b/modules/automation/automation.py
@@ -292,8 +292,8 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
sale_line.premium = premium
Sale.save([sale])
sale_line.sale = sale.id
- sale_line.quantity = round(lot_net_weight,5)
- sale_line.quantity_theorical = round(lot_net_weight,5)
+ sale_line.quantity = round(lot_net_weight,2)
+ sale_line.quantity_theorical = round(lot_net_weight,2)
sale_line.product = Product.get_by_name('BRAZIL COTTON')
logger.info("PRODUCT:%s",sale_line.product)
sale_line.unit = Uom.get_by_name(lot_unit)
@@ -335,8 +335,8 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
l.lot_qt = lot_bales
l.lot_unit = Uom.get_by_name('bale')
l.lot_unit_line = lot_unit
- l.lot_quantity = round(lot_net_weight,5)
- l.lot_gross_quantity = round(lot_gross_weight,5)
+ l.lot_quantity = round(lot_net_weight,2)
+ l.lot_gross_quantity = round(lot_gross_weight,2)
l.lot_premium = premium
LotQt.add_physical_lots(lqt,[l])
From a3b7d11ae3a0148167a27983813e77a742e91676 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 26 Jan 2026 22:23:08 +0100
Subject: [PATCH 090/618] 26.01.26
---
modules/automation/automation.py | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/modules/automation/automation.py b/modules/automation/automation.py
index 4b3731c..da45a96 100644
--- a/modules/automation/automation.py
+++ b/modules/automation/automation.py
@@ -319,6 +319,10 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
d.unit = sale_line.unit
d.price = sale_line.unit_price
d.price_type = 'priced'
+ d.crop = None
+ d.tol_min = 0
+ d.tol_max = 0
+ d.incoterm = None
ct.contracts = [d]
ContractFactory.create_contracts(
ct.contracts,
From e9e57803aeb3138f5793d7f9c917b4166dfb75ee Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 26 Jan 2026 22:29:04 +0100
Subject: [PATCH 091/618] 26.01.26
---
modules/automation/automation.py | 1 +
1 file changed, 1 insertion(+)
diff --git a/modules/automation/automation.py b/modules/automation/automation.py
index da45a96..ebd3eee 100644
--- a/modules/automation/automation.py
+++ b/modules/automation/automation.py
@@ -323,6 +323,7 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
d.tol_min = 0
d.tol_max = 0
d.incoterm = None
+ d.reference = str(sale.id)
ct.contracts = [d]
ContractFactory.create_contracts(
ct.contracts,
From 9a974365a78ba8c863eed25e2cdb63ab77bfb1e5 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 26 Jan 2026 22:32:59 +0100
Subject: [PATCH 092/618] 26.01.26
---
modules/purchase_trade/service.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/purchase_trade/service.py b/modules/purchase_trade/service.py
index 0159e12..c58867f 100644
--- a/modules/purchase_trade/service.py
+++ b/modules/purchase_trade/service.py
@@ -54,7 +54,7 @@ class ContractFactory:
contract.tol_min = c.tol_min
contract.tol_max = c.tol_max
contract.reference = c.reference
-
+ contract.company = 6
if type_ == 'Purchase':
contract.purchase_date = Date.today()
else:
From 0dae857364c06b6bfed8e4a1fa4441944a1ae06e Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 26 Jan 2026 22:38:27 +0100
Subject: [PATCH 093/618] 26.01.26
---
modules/automation/automation.py | 2 ++
1 file changed, 2 insertions(+)
diff --git a/modules/automation/automation.py b/modules/automation/automation.py
index ebd3eee..5f9a1e3 100644
--- a/modules/automation/automation.py
+++ b/modules/automation/automation.py
@@ -310,6 +310,8 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
ct.matched = True
ct.shipment_in = sh
ct.lot = sale_line.lots[0]
+ ct.product = sale_line.product
+ ct.unit = sale_line.unit
d.party = Party.getPartyByName('FAIRCOT')
if sale_line.enable_linked_currency:
d.currency_unit = str(sale_line.linked_currency.id) + '_' + str(sale_line.linked_unit.id)
From 6d82621a34490a6a64754e6f1fe4190f22de0a6b Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 26 Jan 2026 22:41:31 +0100
Subject: [PATCH 094/618] 26.01.26
---
modules/automation/automation.py | 3 +++
1 file changed, 3 insertions(+)
diff --git a/modules/automation/automation.py b/modules/automation/automation.py
index 5f9a1e3..4601771 100644
--- a/modules/automation/automation.py
+++ b/modules/automation/automation.py
@@ -326,6 +326,9 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
d.tol_max = 0
d.incoterm = None
d.reference = str(sale.id)
+ d.del_period = None
+ d.from_del = None
+ d.to_del = None
ct.contracts = [d]
ContractFactory.create_contracts(
ct.contracts,
From 02320ce9c862d0242755af30c0ca3132f8ae5bd8 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 26 Jan 2026 22:45:26 +0100
Subject: [PATCH 095/618] 26.01.26
---
modules/automation/automation.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/automation/automation.py b/modules/automation/automation.py
index 4601771..d495b58 100644
--- a/modules/automation/automation.py
+++ b/modules/automation/automation.py
@@ -308,7 +308,7 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
d = ContractDetail()
ct.type = 'Purchase'
ct.matched = True
- ct.shipment_in = sh
+ ct.shipment_in = sh[0]
ct.lot = sale_line.lots[0]
ct.product = sale_line.product
ct.unit = sale_line.unit
From 0cb824076b8af5d2784720bdcf1e110bf73685c7 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 26 Jan 2026 22:51:59 +0100
Subject: [PATCH 096/618] 26.01.26
---
modules/automation/automation.py | 24 ++++++++++++------------
1 file changed, 12 insertions(+), 12 deletions(-)
diff --git a/modules/automation/automation.py b/modules/automation/automation.py
index d495b58..2c7fc8e 100644
--- a/modules/automation/automation.py
+++ b/modules/automation/automation.py
@@ -337,18 +337,18 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
)
#Lots creation
- vlot = sale_line.lots[0]
- lqt = LotQt.search([('lot_s','=',vlot.id)])
- if lqt and vlot.lot_quantity > 0:
- lqt = lqt[0]
- l = LotAdd()
- l.lot_qt = lot_bales
- l.lot_unit = Uom.get_by_name('bale')
- l.lot_unit_line = lot_unit
- l.lot_quantity = round(lot_net_weight,2)
- l.lot_gross_quantity = round(lot_gross_weight,2)
- l.lot_premium = premium
- LotQt.add_physical_lots(lqt,[l])
+ # vlot = sale_line.lots[0]
+ # lqt = LotQt.search([('lot_s','=',vlot.id)])
+ # if lqt and vlot.lot_quantity > 0:
+ # lqt = lqt[0]
+ # l = LotAdd()
+ # l.lot_qt = lot_bales
+ # l.lot_unit = Uom.get_by_name('bale')
+ # l.lot_unit_line = lot_unit
+ # l.lot_quantity = round(lot_net_weight,2)
+ # l.lot_gross_quantity = round(lot_gross_weight,2)
+ # l.lot_premium = premium
+ # LotQt.add_physical_lots(lqt,[l])
From 9b324ca7cd701aad2ded9523e472642644648c9d Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 26 Jan 2026 22:57:35 +0100
Subject: [PATCH 097/618] 26.01.26
---
modules/automation/automation.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/automation/automation.py b/modules/automation/automation.py
index 2c7fc8e..5386343 100644
--- a/modules/automation/automation.py
+++ b/modules/automation/automation.py
@@ -265,7 +265,7 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
logger.info("WITH_DEC:%s",sale_line)
vlot = sale_line.lots[0]
lqt = LotQt.search([('lot_s','=',vlot.id)])
- lqt.lot_p.updateVirtualPart(lot_net_weight,sh,lqt.lot_s)
+ lqt.lot_s.updateVirtualPart(lot_net_weight,sh,lqt.lot_s,'only sale')
logger.info("WITH_DEC_LOT_NET:%s",lot_net_weight)
else:
sale = Sale()
From e0c7480dd22eca52a8db5dfdcfbfdcb0c084e497 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 26 Jan 2026 23:01:04 +0100
Subject: [PATCH 098/618] 26.01.26
---
modules/automation/automation.py | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/modules/automation/automation.py b/modules/automation/automation.py
index 5386343..9cdea10 100644
--- a/modules/automation/automation.py
+++ b/modules/automation/automation.py
@@ -265,7 +265,8 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
logger.info("WITH_DEC:%s",sale_line)
vlot = sale_line.lots[0]
lqt = LotQt.search([('lot_s','=',vlot.id)])
- lqt.lot_s.updateVirtualPart(lot_net_weight,sh,lqt.lot_s,'only sale')
+ if lqt:
+ lqt[0].lot_s.updateVirtualPart(lot_net_weight,sh,lqt.lot_s,'only sale')
logger.info("WITH_DEC_LOT_NET:%s",lot_net_weight)
else:
sale = Sale()
From ba0dd0e0fbf7490478e5a2564bbc1ad904ab30f7 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 26 Jan 2026 23:03:52 +0100
Subject: [PATCH 099/618] 26.01.26
---
modules/automation/automation.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/automation/automation.py b/modules/automation/automation.py
index 9cdea10..cfde99b 100644
--- a/modules/automation/automation.py
+++ b/modules/automation/automation.py
@@ -266,7 +266,7 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
vlot = sale_line.lots[0]
lqt = LotQt.search([('lot_s','=',vlot.id)])
if lqt:
- lqt[0].lot_s.updateVirtualPart(lot_net_weight,sh,lqt.lot_s,'only sale')
+ lqt[0].lot_s.updateVirtualPart(round(lot_net_weight,2),sh,lqt[0].lot_s,'only sale')
logger.info("WITH_DEC_LOT_NET:%s",lot_net_weight)
else:
sale = Sale()
From bf7de1e5d185da20739ace89d7a477d150c8d780 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 26 Jan 2026 23:06:55 +0100
Subject: [PATCH 100/618] 26.01.26
---
modules/automation/automation.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/automation/automation.py b/modules/automation/automation.py
index cfde99b..3fdf9de 100644
--- a/modules/automation/automation.py
+++ b/modules/automation/automation.py
@@ -266,7 +266,7 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
vlot = sale_line.lots[0]
lqt = LotQt.search([('lot_s','=',vlot.id)])
if lqt:
- lqt[0].lot_s.updateVirtualPart(round(lot_net_weight,2),sh,lqt[0].lot_s,'only sale')
+ lqt[0].lot_s.updateVirtualPart(round(lot_net_weight,2),sh[0],lqt[0].lot_s,'only sale')
logger.info("WITH_DEC_LOT_NET:%s",lot_net_weight)
else:
sale = Sale()
From 842a2b1da6c9f35df6d9a86a815b394e6a82c456 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 27 Jan 2026 10:28:36 +0100
Subject: [PATCH 101/618] 27.01.27
---
modules/purchase_trade/valuation.py | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/modules/purchase_trade/valuation.py b/modules/purchase_trade/valuation.py
index 1c76b56..faea6ec 100644
--- a/modules/purchase_trade/valuation.py
+++ b/modules/purchase_trade/valuation.py
@@ -100,7 +100,7 @@ class ValuationBase(ModelSQL):
values['state'] = f"part. fixed {round(pc.fixed_qt / Decimal(base) * 100, 0)}%"
if pc.price and pc.ratio:
- amount = round(pc.price * qty * Decimal(sign) * pc.ratio / 100, 4)
+ amount = round(pc.price * qty * Decimal(sign) * pc.ratio / 100, 2)
base_amount = amount
currency = sale_line.sale.currency.id if sale_line else line.purchase.currency.id
rate = Decimal(1)
@@ -109,14 +109,14 @@ class ValuationBase(ModelSQL):
base_amount = Currency.compute(currency,amount, line.purchase.company.currency)
rate = round(amount / base_amount,6)
last_price = pc.get_last_price()
- mtm = round(Decimal(last_price) * qty * Decimal(sign), 4) if last_price else Decimal(0)
+ mtm = round(Decimal(last_price) * qty * Decimal(sign), 2) if last_price else Decimal(0)
values.update({
'quantity': round(qty, 5),
'amount': amount,
'base_amount': base_amount,
'rate': rate,
- 'mtm': round(amount - (mtm * pc.ratio / 100), 4),
+ 'mtm': round(amount - (mtm * pc.ratio / 100), 2),
'unit': sale_line.unit.id if sale_line else line.unit.id,
'currency': currency,
})
@@ -135,7 +135,7 @@ class ValuationBase(ModelSQL):
)
qty = lot.get_current_quantity_converted()
- amount = round(price * qty * Decimal(sign), 4)
+ amount = round(price * qty * Decimal(sign), 2)
base_amount = amount
currency = sale_line.sale.currency.id if sale_line else line.purchase.currency.id
company_currency = sale_line.sale.company.currency if sale_line else line.purchase.company.currency
@@ -318,8 +318,8 @@ class ValuationBase(ModelSQL):
'product': d.product.id,
'state': 'fixed',
'quantity': round(d.quantity, 5),
- 'amount': round(price * d.quantity * Decimal(-1), 4),
- 'mtm': round((price * d.quantity * Decimal(-1)) - (mtm * d.quantity * Decimal(-1)), 4),
+ 'amount': round(price * d.quantity * Decimal(-1), 2),
+ 'mtm': round((price * d.quantity * Decimal(-1)) - (mtm * d.quantity * Decimal(-1)), 2),
'unit': line.unit.id,
'currency': line.purchase.currency.id,
})
From 870f2e93f40ea23d977690f080a3fd76d39d7047 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 27 Jan 2026 16:45:55 +0100
Subject: [PATCH 102/618] 27.01.26
---
modules/automation/automation.py | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/modules/automation/automation.py b/modules/automation/automation.py
index 3fdf9de..55d1f9d 100644
--- a/modules/automation/automation.py
+++ b/modules/automation/automation.py
@@ -244,11 +244,11 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
Uom = Pool().get('product.uom')
Sale = Pool().get('sale.sale')
SaleLine = Pool().get('sale.line')
-
dec_key = str(row[16]).strip()
lot_unit = str(row[5]).strip().lower()
product = str(row[6]).strip().upper()
lot_net_weight = Decimal(row[4])
+ logger.info("LOT_NET_WEIGHT:%s",lot_net_weight)
lot_gross_weight = Decimal(row[3])
lot_bales = int(row[2])
lot_number = row[1]
@@ -265,9 +265,9 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
logger.info("WITH_DEC:%s",sale_line)
vlot = sale_line.lots[0]
lqt = LotQt.search([('lot_s','=',vlot.id)])
- if lqt:
- lqt[0].lot_s.updateVirtualPart(round(lot_net_weight,2),sh[0],lqt[0].lot_s,'only sale')
- logger.info("WITH_DEC_LOT_NET:%s",lot_net_weight)
+ if lqt and lqt[0].lot_p:
+ logger.info("VLOT_P:%s",lqt[0].lot_p)
+ lqt[0].lot_p.updateVirtualPart(round(lot_net_weight,2),sh[0],lqt[0].lot_s)
else:
sale = Sale()
sale_line = SaleLine()
From 71a58814b41b3176900e7d48bbafd0d8ae98beca Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 27 Jan 2026 17:05:39 +0100
Subject: [PATCH 103/618] 27.01.26
---
modules/automation/automation.py | 149 ++++++++++++++++---------------
1 file changed, 78 insertions(+), 71 deletions(-)
diff --git a/modules/automation/automation.py b/modules/automation/automation.py
index 55d1f9d..c2fd261 100644
--- a/modules/automation/automation.py
+++ b/modules/automation/automation.py
@@ -261,81 +261,88 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
logger.info("DECLARATION_KEY:%s",dec_key)
declaration = SaleLine.search(['note','=',dec_key])
if declaration:
- sale_line = declaration[0]
- logger.info("WITH_DEC:%s",sale_line)
- vlot = sale_line.lots[0]
- lqt = LotQt.search([('lot_s','=',vlot.id)])
- if lqt and lqt[0].lot_p:
- logger.info("VLOT_P:%s",lqt[0].lot_p)
- lqt[0].lot_p.updateVirtualPart(round(lot_net_weight,2),sh[0],lqt[0].lot_s)
+ with Transaction().new_transaction() as trans1:
+ sale_line = declaration[0]
+ logger.info("WITH_DEC:%s",sale_line)
+ vlot = sale_line.lots[0]
+ lqt = LotQt.search([('lot_s','=',vlot.id)])
+ if lqt and lqt[0].lot_p:
+ logger.info("VLOT_P:%s",lqt[0].lot_p)
+ lqt[0].lot_p.updateVirtualPart(round(lot_net_weight,2),sh[0],lqt[0].lot_s)
+ trans1.commit()
+
else:
sale = Sale()
sale_line = SaleLine()
- sale.party = Party.getPartyByName(customer,'CLIENT')
- logger.info("SALE_PARTY:%s",sale.party)
- sale.reference = reference
- sale.company = 6
- if sale.party.addresses:
- sale.invoice_address = sale.party.addresses[0]
- sale.shipment_address = sale.party.addresses[0]
-
- if sell_price_currency == 'USC':
- sale.currency = Currency.get_by_name('USD')
- sale_line.enable_linked_currency = True
- sale_line.linked_currency = 1
- sale_line.linked_unit = Uom.get_by_name(sell_price_unit)
- sale_line.linked_price = round(sell_price,4)
- sale_line.unit_price = sale_line.get_price_linked_currency()
- else:
- sale.currency = Currency.get_by_name(sell_price_currency)
- sale_line.unit_price = round(sell_price,4)
- sale_line.unit = Uom.get_by_name(sell_price_unit)
- sale_line.premium = premium
- Sale.save([sale])
- sale_line.sale = sale.id
- sale_line.quantity = round(lot_net_weight,2)
- sale_line.quantity_theorical = round(lot_net_weight,2)
- sale_line.product = Product.get_by_name('BRAZIL COTTON')
- logger.info("PRODUCT:%s",sale_line.product)
- sale_line.unit = Uom.get_by_name(lot_unit)
- sale_line.price_type = 'priced'
- sale_line.created_by_code = False
- sale_line.note = dec_key
- SaleLine.save([sale_line])
+ with Transaction().new_transaction() as trans1:
+ sale.party = Party.getPartyByName(customer,'CLIENT')
+ logger.info("SALE_PARTY:%s",sale.party)
+ sale.reference = reference
+ sale.company = 6
+ if sale.party.addresses:
+ sale.invoice_address = sale.party.addresses[0]
+ sale.shipment_address = sale.party.addresses[0]
+
+ if sell_price_currency == 'USC':
+ sale.currency = Currency.get_by_name('USD')
+ sale_line.enable_linked_currency = True
+ sale_line.linked_currency = 1
+ sale_line.linked_unit = Uom.get_by_name(sell_price_unit)
+ sale_line.linked_price = round(sell_price,4)
+ sale_line.unit_price = sale_line.get_price_linked_currency()
+ else:
+ sale.currency = Currency.get_by_name(sell_price_currency)
+ sale_line.unit_price = round(sell_price,4)
+ sale_line.unit = Uom.get_by_name(sell_price_unit)
+ sale_line.premium = premium
+ Sale.save([sale])
+ sale_line.sale = sale.id
+ sale_line.quantity = round(lot_net_weight,2)
+ sale_line.quantity_theorical = round(lot_net_weight,2)
+ sale_line.product = Product.get_by_name('BRAZIL COTTON')
+ logger.info("PRODUCT:%s",sale_line.product)
+ sale_line.unit = Uom.get_by_name(lot_unit)
+ sale_line.price_type = 'priced'
+ sale_line.created_by_code = False
+ sale_line.note = dec_key
+ SaleLine.save([sale_line])
+ trans1.commit()
- ContractStart = Pool().get('contracts.start')
- ContractDetail = Pool().get('contract.detail')
- ct = ContractStart()
- d = ContractDetail()
- ct.type = 'Purchase'
- ct.matched = True
- ct.shipment_in = sh[0]
- ct.lot = sale_line.lots[0]
- ct.product = sale_line.product
- ct.unit = sale_line.unit
- d.party = Party.getPartyByName('FAIRCOT')
- if sale_line.enable_linked_currency:
- d.currency_unit = str(sale_line.linked_currency.id) + '_' + str(sale_line.linked_unit.id)
- else:
- d.currency_unit = str(sale.currency.id) + '_' + str(sale_line.unit.id)
- d.quantity = sale_line.quantity
- d.unit = sale_line.unit
- d.price = sale_line.unit_price
- d.price_type = 'priced'
- d.crop = None
- d.tol_min = 0
- d.tol_max = 0
- d.incoterm = None
- d.reference = str(sale.id)
- d.del_period = None
- d.from_del = None
- d.to_del = None
- ct.contracts = [d]
- ContractFactory.create_contracts(
- ct.contracts,
- type_=ct.type,
- ct=ct,
- )
+ with Transaction().new_transaction() as trans2:
+ ContractStart = Pool().get('contracts.start')
+ ContractDetail = Pool().get('contract.detail')
+ ct = ContractStart()
+ d = ContractDetail()
+ ct.type = 'Purchase'
+ ct.matched = True
+ ct.shipment_in = sh[0]
+ ct.lot = sale_line.lots[0]
+ ct.product = sale_line.product
+ ct.unit = sale_line.unit
+ d.party = Party.getPartyByName('FAIRCOT')
+ if sale_line.enable_linked_currency:
+ d.currency_unit = str(sale_line.linked_currency.id) + '_' + str(sale_line.linked_unit.id)
+ else:
+ d.currency_unit = str(sale.currency.id) + '_' + str(sale_line.unit.id)
+ d.quantity = sale_line.quantity
+ d.unit = sale_line.unit
+ d.price = sale_line.unit_price
+ d.price_type = 'priced'
+ d.crop = None
+ d.tol_min = 0
+ d.tol_max = 0
+ d.incoterm = None
+ d.reference = str(sale.id)
+ d.del_period = None
+ d.from_del = None
+ d.to_del = None
+ ct.contracts = [d]
+ ContractFactory.create_contracts(
+ ct.contracts,
+ type_=ct.type,
+ ct=ct,
+ )
+ trans2.commit()
#Lots creation
# vlot = sale_line.lots[0]
From 408c5d82e46e47578f72de617384cfefe5f5bb15 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 27 Jan 2026 17:26:42 +0100
Subject: [PATCH 104/618] 27.01.26
---
modules/automation/automation.py | 150 +++++++++++++++----------------
1 file changed, 72 insertions(+), 78 deletions(-)
diff --git a/modules/automation/automation.py b/modules/automation/automation.py
index c2fd261..6a74566 100644
--- a/modules/automation/automation.py
+++ b/modules/automation/automation.py
@@ -261,88 +261,82 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
logger.info("DECLARATION_KEY:%s",dec_key)
declaration = SaleLine.search(['note','=',dec_key])
if declaration:
- with Transaction().new_transaction() as trans1:
- sale_line = declaration[0]
- logger.info("WITH_DEC:%s",sale_line)
- vlot = sale_line.lots[0]
- lqt = LotQt.search([('lot_s','=',vlot.id)])
- if lqt and lqt[0].lot_p:
- logger.info("VLOT_P:%s",lqt[0].lot_p)
- lqt[0].lot_p.updateVirtualPart(round(lot_net_weight,2),sh[0],lqt[0].lot_s)
- trans1.commit()
-
+ continue
+ sale_line = declaration[0]
+ logger.info("WITH_DEC:%s",sale_line)
+ vlot = sale_line.lots[0]
+ lqt = LotQt.search([('lot_s','=',vlot.id)])
+ if lqt and lqt[0].lot_p:
+ logger.info("VLOT_P:%s",lqt[0].lot_p)
+ lqt[0].lot_p.updateVirtualPart(round(lot_net_weight,2),sh[0],lqt[0].lot_s)
else:
sale = Sale()
sale_line = SaleLine()
- with Transaction().new_transaction() as trans1:
- sale.party = Party.getPartyByName(customer,'CLIENT')
- logger.info("SALE_PARTY:%s",sale.party)
- sale.reference = reference
- sale.company = 6
- if sale.party.addresses:
- sale.invoice_address = sale.party.addresses[0]
- sale.shipment_address = sale.party.addresses[0]
-
- if sell_price_currency == 'USC':
- sale.currency = Currency.get_by_name('USD')
- sale_line.enable_linked_currency = True
- sale_line.linked_currency = 1
- sale_line.linked_unit = Uom.get_by_name(sell_price_unit)
- sale_line.linked_price = round(sell_price,4)
- sale_line.unit_price = sale_line.get_price_linked_currency()
- else:
- sale.currency = Currency.get_by_name(sell_price_currency)
- sale_line.unit_price = round(sell_price,4)
- sale_line.unit = Uom.get_by_name(sell_price_unit)
- sale_line.premium = premium
- Sale.save([sale])
- sale_line.sale = sale.id
- sale_line.quantity = round(lot_net_weight,2)
- sale_line.quantity_theorical = round(lot_net_weight,2)
- sale_line.product = Product.get_by_name('BRAZIL COTTON')
- logger.info("PRODUCT:%s",sale_line.product)
- sale_line.unit = Uom.get_by_name(lot_unit)
- sale_line.price_type = 'priced'
- sale_line.created_by_code = False
- sale_line.note = dec_key
- SaleLine.save([sale_line])
- trans1.commit()
+ sale.party = Party.getPartyByName(customer,'CLIENT')
+ logger.info("SALE_PARTY:%s",sale.party)
+ sale.reference = reference
+ sale.company = 6
+ if sale.party.addresses:
+ sale.invoice_address = sale.party.addresses[0]
+ sale.shipment_address = sale.party.addresses[0]
+
+ if sell_price_currency == 'USC':
+ sale.currency = Currency.get_by_name('USD')
+ sale_line.enable_linked_currency = True
+ sale_line.linked_currency = 1
+ sale_line.linked_unit = Uom.get_by_name(sell_price_unit)
+ sale_line.linked_price = round(sell_price,4)
+ sale_line.unit_price = sale_line.get_price_linked_currency()
+ else:
+ sale.currency = Currency.get_by_name(sell_price_currency)
+ sale_line.unit_price = round(sell_price,4)
+ sale_line.unit = Uom.get_by_name(sell_price_unit)
+ sale_line.premium = premium
+ Sale.save([sale])
+ sale_line.sale = sale.id
+ sale_line.quantity = round(lot_net_weight,2)
+ sale_line.quantity_theorical = round(lot_net_weight,2)
+ sale_line.product = Product.get_by_name('BRAZIL COTTON')
+ logger.info("PRODUCT:%s",sale_line.product)
+ sale_line.unit = Uom.get_by_name(lot_unit)
+ sale_line.price_type = 'priced'
+ sale_line.created_by_code = False
+ sale_line.note = dec_key
+ SaleLine.save([sale_line])
- with Transaction().new_transaction() as trans2:
- ContractStart = Pool().get('contracts.start')
- ContractDetail = Pool().get('contract.detail')
- ct = ContractStart()
- d = ContractDetail()
- ct.type = 'Purchase'
- ct.matched = True
- ct.shipment_in = sh[0]
- ct.lot = sale_line.lots[0]
- ct.product = sale_line.product
- ct.unit = sale_line.unit
- d.party = Party.getPartyByName('FAIRCOT')
- if sale_line.enable_linked_currency:
- d.currency_unit = str(sale_line.linked_currency.id) + '_' + str(sale_line.linked_unit.id)
- else:
- d.currency_unit = str(sale.currency.id) + '_' + str(sale_line.unit.id)
- d.quantity = sale_line.quantity
- d.unit = sale_line.unit
- d.price = sale_line.unit_price
- d.price_type = 'priced'
- d.crop = None
- d.tol_min = 0
- d.tol_max = 0
- d.incoterm = None
- d.reference = str(sale.id)
- d.del_period = None
- d.from_del = None
- d.to_del = None
- ct.contracts = [d]
- ContractFactory.create_contracts(
- ct.contracts,
- type_=ct.type,
- ct=ct,
- )
- trans2.commit()
+ ContractStart = Pool().get('contracts.start')
+ ContractDetail = Pool().get('contract.detail')
+ ct = ContractStart()
+ d = ContractDetail()
+ ct.type = 'Purchase'
+ ct.matched = True
+ ct.shipment_in = sh[0]
+ ct.lot = sale_line.lots[0]
+ ct.product = sale_line.product
+ ct.unit = sale_line.unit
+ d.party = Party.getPartyByName('FAIRCOT')
+ if sale_line.enable_linked_currency:
+ d.currency_unit = str(sale_line.linked_currency.id) + '_' + str(sale_line.linked_unit.id)
+ else:
+ d.currency_unit = str(sale.currency.id) + '_' + str(sale_line.unit.id)
+ d.quantity = sale_line.quantity
+ d.unit = sale_line.unit
+ d.price = sale_line.unit_price
+ d.price_type = 'priced'
+ d.crop = None
+ d.tol_min = 0
+ d.tol_max = 0
+ d.incoterm = None
+ d.reference = str(sale.id)
+ d.del_period = None
+ d.from_del = None
+ d.to_del = None
+ ct.contracts = [d]
+ ContractFactory.create_contracts(
+ ct.contracts,
+ type_=ct.type,
+ ct=ct,
+ )
#Lots creation
# vlot = sale_line.lots[0]
From 1339f5125658d72996fbaf55b6c40cf6b03294a9 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 27 Jan 2026 17:47:37 +0100
Subject: [PATCH 105/618] 27.01.26
---
modules/automation/automation.py | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/modules/automation/automation.py b/modules/automation/automation.py
index 6a74566..1033482 100644
--- a/modules/automation/automation.py
+++ b/modules/automation/automation.py
@@ -304,6 +304,13 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
sale_line.note = dec_key
SaleLine.save([sale_line])
+ #need to link the virtual part to the shipment
+ lqt = LotQt.search([('lot_s','=',sale_line.lots[0])])
+ if lqt:
+ lqt[0].lot_shipment_in = sh[0]
+ LotQt.save([lqt])
+ logger.info("SALE_LINKED_TO_SHIPMENT:%s",sh[0])
+
ContractStart = Pool().get('contracts.start')
ContractDetail = Pool().get('contract.detail')
ct = ContractStart()
From 4c3056326b50380868565f43bdb15593e42381d4 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 27 Jan 2026 17:56:54 +0100
Subject: [PATCH 106/618] 27.01.26
---
modules/automation/automation.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/automation/automation.py b/modules/automation/automation.py
index 1033482..8f71b64 100644
--- a/modules/automation/automation.py
+++ b/modules/automation/automation.py
@@ -308,7 +308,7 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
lqt = LotQt.search([('lot_s','=',sale_line.lots[0])])
if lqt:
lqt[0].lot_shipment_in = sh[0]
- LotQt.save([lqt])
+ LotQt.save(lqt)
logger.info("SALE_LINKED_TO_SHIPMENT:%s",sh[0])
ContractStart = Pool().get('contracts.start')
From f3102ee83583827eee3d5eeab6a55eda6473f542 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 27 Jan 2026 18:00:46 +0100
Subject: [PATCH 107/618] 27.01.26
---
modules/automation/automation.py | 1 -
1 file changed, 1 deletion(-)
diff --git a/modules/automation/automation.py b/modules/automation/automation.py
index 8f71b64..657c697 100644
--- a/modules/automation/automation.py
+++ b/modules/automation/automation.py
@@ -261,7 +261,6 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
logger.info("DECLARATION_KEY:%s",dec_key)
declaration = SaleLine.search(['note','=',dec_key])
if declaration:
- continue
sale_line = declaration[0]
logger.info("WITH_DEC:%s",sale_line)
vlot = sale_line.lots[0]
From 509dcac22e5a239114cfc1961c611203e337903d Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 27 Jan 2026 18:07:41 +0100
Subject: [PATCH 108/618] 27.01.26
---
modules/automation/automation.py | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/modules/automation/automation.py b/modules/automation/automation.py
index 657c697..ffd4ccc 100644
--- a/modules/automation/automation.py
+++ b/modules/automation/automation.py
@@ -265,6 +265,10 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
logger.info("WITH_DEC:%s",sale_line)
vlot = sale_line.lots[0]
lqt = LotQt.search([('lot_s','=',vlot.id)])
+ if lqt:
+ lqt[0].lot_quantity += round(lot_net_weight,2)
+ logger.info("QUANTITY_UPDATED:%s",lqt[0].lot_quantity)
+ LotQt.save(lqt)
if lqt and lqt[0].lot_p:
logger.info("VLOT_P:%s",lqt[0].lot_p)
lqt[0].lot_p.updateVirtualPart(round(lot_net_weight,2),sh[0],lqt[0].lot_s)
From 9db6d2cb45abc541b6413b70eaab023cc799f4eb Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 27 Jan 2026 18:13:12 +0100
Subject: [PATCH 109/618] 27.01.26
---
modules/automation/automation.py | 10 ++++------
1 file changed, 4 insertions(+), 6 deletions(-)
diff --git a/modules/automation/automation.py b/modules/automation/automation.py
index ffd4ccc..3fbd568 100644
--- a/modules/automation/automation.py
+++ b/modules/automation/automation.py
@@ -266,12 +266,10 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
vlot = sale_line.lots[0]
lqt = LotQt.search([('lot_s','=',vlot.id)])
if lqt:
- lqt[0].lot_quantity += round(lot_net_weight,2)
- logger.info("QUANTITY_UPDATED:%s",lqt[0].lot_quantity)
- LotQt.save(lqt)
- if lqt and lqt[0].lot_p:
- logger.info("VLOT_P:%s",lqt[0].lot_p)
- lqt[0].lot_p.updateVirtualPart(round(lot_net_weight,2),sh[0],lqt[0].lot_s)
+ for lq in lqt:
+ if lq.lot_p:
+ logger.info("VLOT_P:%s",lq.lot_p)
+ lq.lot_p.updateVirtualPart(round(lot_net_weight,2),sh[0],lq.lot_s)
else:
sale = Sale()
sale_line = SaleLine()
From aa10a58b606ccb4729d45d94c23f67126cf95aa6 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 27 Jan 2026 18:21:00 +0100
Subject: [PATCH 110/618] 27.01.26
---
modules/automation/automation.py | 25 +++++++++++++------------
1 file changed, 13 insertions(+), 12 deletions(-)
diff --git a/modules/automation/automation.py b/modules/automation/automation.py
index 3fbd568..7c1eb73 100644
--- a/modules/automation/automation.py
+++ b/modules/automation/automation.py
@@ -347,18 +347,19 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
)
#Lots creation
- # vlot = sale_line.lots[0]
- # lqt = LotQt.search([('lot_s','=',vlot.id)])
- # if lqt and vlot.lot_quantity > 0:
- # lqt = lqt[0]
- # l = LotAdd()
- # l.lot_qt = lot_bales
- # l.lot_unit = Uom.get_by_name('bale')
- # l.lot_unit_line = lot_unit
- # l.lot_quantity = round(lot_net_weight,2)
- # l.lot_gross_quantity = round(lot_gross_weight,2)
- # l.lot_premium = premium
- # LotQt.add_physical_lots(lqt,[l])
+ vlot = sale_line.lots[0]
+ lqt = LotQt.search([('lot_s','=',vlot.id),('lot_p','>',0)])
+ if lqt and vlot.lot_quantity > 0:
+ lqt = lqt[0]
+ l = LotAdd()
+ l.lot_qt = lot_bales
+ l.lot_unit = Uom.get_by_name('bale')
+ l.lot_unit_line = lot_unit
+ l.lot_quantity = round(lot_net_weight,2)
+ l.lot_gross_quantity = round(lot_gross_weight,2)
+ l.lot_premium = premium
+ logger.info("ADD_LOT:%s",l)
+ LotQt.add_physical_lots(lqt,[l])
From 38469325178042ab6de60d61ba863eb59daa011d Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 27 Jan 2026 18:29:50 +0100
Subject: [PATCH 111/618] 27.01.26
---
modules/automation/automation.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/modules/automation/automation.py b/modules/automation/automation.py
index 7c1eb73..3368847 100644
--- a/modules/automation/automation.py
+++ b/modules/automation/automation.py
@@ -250,7 +250,7 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
lot_net_weight = Decimal(row[4])
logger.info("LOT_NET_WEIGHT:%s",lot_net_weight)
lot_gross_weight = Decimal(row[3])
- lot_bales = int(row[2])
+ lot_bales = Decimal(row[2])
lot_number = row[1]
customer = str(row[7]).strip().upper()
sell_price_currency = str(row[8]).strip().upper()
@@ -354,7 +354,7 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
l = LotAdd()
l.lot_qt = lot_bales
l.lot_unit = Uom.get_by_name('bale')
- l.lot_unit_line = lot_unit
+ l.lot_unit_line = Uom.get_by_name(lot_unit)
l.lot_quantity = round(lot_net_weight,2)
l.lot_gross_quantity = round(lot_gross_weight,2)
l.lot_premium = premium
From 431062f1236cd7c5248dfbadabefb98a317cd3a1 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 27 Jan 2026 18:45:09 +0100
Subject: [PATCH 112/618] 27.01.26
---
modules/automation/automation.py | 3 +++
1 file changed, 3 insertions(+)
diff --git a/modules/automation/automation.py b/modules/automation/automation.py
index 3368847..1ce42e7 100644
--- a/modules/automation/automation.py
+++ b/modules/automation/automation.py
@@ -237,6 +237,7 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
logger.info("ROW:%s",row)
#Purchase & Sale creation
LotQt = Pool().get('lot.qt')
+ Lot = Pool().get('lot.lot')
LotAdd = Pool().get('lot.add.line')
Currency = Pool().get('currency.currency')
Product = Pool().get('product.product')
@@ -270,6 +271,8 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
if lq.lot_p:
logger.info("VLOT_P:%s",lq.lot_p)
lq.lot_p.updateVirtualPart(round(lot_net_weight,2),sh[0],lq.lot_s)
+ vlot.set_current_quantity(round(lot_net_weight,2),round(lot_gross_weight,2),1)
+ Lot.save([vlot])
else:
sale = Sale()
sale_line = SaleLine()
From 73e46b399b834d82870efb551fc91b663fbabac4 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 27 Jan 2026 18:54:53 +0100
Subject: [PATCH 113/618] 27.01.26
---
modules/automation/automation.py | 2 ++
1 file changed, 2 insertions(+)
diff --git a/modules/automation/automation.py b/modules/automation/automation.py
index 1ce42e7..49b99ac 100644
--- a/modules/automation/automation.py
+++ b/modules/automation/automation.py
@@ -270,6 +270,8 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
for lq in lqt:
if lq.lot_p:
logger.info("VLOT_P:%s",lq.lot_p)
+ sale_line.theorical_quantity += round(lot_net_weight,2)
+ SaleLine.save([sale_line])
lq.lot_p.updateVirtualPart(round(lot_net_weight,2),sh[0],lq.lot_s)
vlot.set_current_quantity(round(lot_net_weight,2),round(lot_gross_weight,2),1)
Lot.save([vlot])
From da1b2688622842c924a4959c351f791f1fb7b330 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 27 Jan 2026 19:05:30 +0100
Subject: [PATCH 114/618] 27.01.26
---
modules/automation/automation.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/automation/automation.py b/modules/automation/automation.py
index 49b99ac..38cdb2f 100644
--- a/modules/automation/automation.py
+++ b/modules/automation/automation.py
@@ -270,7 +270,7 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
for lq in lqt:
if lq.lot_p:
logger.info("VLOT_P:%s",lq.lot_p)
- sale_line.theorical_quantity += round(lot_net_weight,2)
+ sale_line.quantity_theorical += round(lot_net_weight,2)
SaleLine.save([sale_line])
lq.lot_p.updateVirtualPart(round(lot_net_weight,2),sh[0],lq.lot_s)
vlot.set_current_quantity(round(lot_net_weight,2),round(lot_gross_weight,2),1)
From 50da3d7a68904b54c846685311ca232eec4c6010 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 27 Jan 2026 20:31:34 +0100
Subject: [PATCH 115/618] 27.01.26
---
modules/automation/automation.py | 35 +++++++++++++++++++++++++++++++-
1 file changed, 34 insertions(+), 1 deletion(-)
diff --git a/modules/automation/automation.py b/modules/automation/automation.py
index 38cdb2f..802fc2f 100644
--- a/modules/automation/automation.py
+++ b/modules/automation/automation.py
@@ -182,6 +182,39 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
logger.error("Metadata processing error: %s", e)
doc.save()
+
+ def create_weight_report(self):
+ wr_payload = {
+ "chunk_key": 4660139,
+ "gross_weight": 50000,
+ "net_weight": 49500,
+ "tare_total": 500,
+ "bags": 100,
+ "surveyor_code": 1424,
+ "place_key": 100086,
+ "report_date": 20260126
+ }
+
+ response = requests.post(
+ "http://automation-service:8006/weight-report",
+ json=wr_payload, # 👈 ICI la correction
+ timeout=10
+ )
+
+ response.raise_for_status()
+ data = response.json()
+
+ # Exemple de data retournée :
+ # {
+ # "success": true,
+ # "weight_report_key": 123456789
+ # }
+
+ self.notes = (
+ f"WR creation success: {data.get('success')}\n"
+ f"WEIGHT_REPORT_KEY: {data.get('weight_report_key')}"
+ )
+
# -------------------------------------------------------
# FULL PIPELINE
# -------------------------------------------------------
@@ -366,7 +399,7 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
logger.info("ADD_LOT:%s",l)
LotQt.add_physical_lots(lqt,[l])
-
+ doc.create_weight_report()
# if cls.rule_set.ocr_required:[]
# cls.run_ocr([doc])
From 7c845d0f9a2e0dc628a327ad42347221206e79bb Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 27 Jan 2026 20:36:18 +0100
Subject: [PATCH 116/618] 27.01.26
---
modules/automation/automation.py | 2 ++
1 file changed, 2 insertions(+)
diff --git a/modules/automation/automation.py b/modules/automation/automation.py
index 802fc2f..5adbe11 100644
--- a/modules/automation/automation.py
+++ b/modules/automation/automation.py
@@ -223,6 +223,8 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
def run_pipeline(cls, docs):
for doc in docs:
try:
+ doc.create_weight_report()
+ break
logger.info("DATA_TYPE:%s",type(doc.metadata_json))
metadata = json.loads(str(doc.metadata_json))
logger.info("JSON STRUCTURE:%s",metadata)
From fabc380784d5da4d9526f032eb9c28fecb1d6cb5 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 27 Jan 2026 22:42:31 +0100
Subject: [PATCH 117/618] 27.01.26
---
modules/automation/automation.py | 52 +++++++++++++++-----------------
modules/purchase_trade/lot.py | 3 ++
2 files changed, 28 insertions(+), 27 deletions(-)
diff --git a/modules/automation/automation.py b/modules/automation/automation.py
index 5adbe11..0be1f3c 100644
--- a/modules/automation/automation.py
+++ b/modules/automation/automation.py
@@ -183,17 +183,7 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
doc.save()
- def create_weight_report(self):
- wr_payload = {
- "chunk_key": 4660139,
- "gross_weight": 50000,
- "net_weight": 49500,
- "tare_total": 500,
- "bags": 100,
- "surveyor_code": 1424,
- "place_key": 100086,
- "report_date": 20260126
- }
+ def create_weight_report(self,wr_payload):
response = requests.post(
"http://automation-service:8006/weight-report",
@@ -202,18 +192,7 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
)
response.raise_for_status()
- data = response.json()
-
- # Exemple de data retournée :
- # {
- # "success": true,
- # "weight_report_key": 123456789
- # }
-
- self.notes = (
- f"WR creation success: {data.get('success')}\n"
- f"WEIGHT_REPORT_KEY: {data.get('weight_report_key')}"
- )
+ return response.json()
# -------------------------------------------------------
# FULL PIPELINE
@@ -223,8 +202,6 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
def run_pipeline(cls, docs):
for doc in docs:
try:
- doc.create_weight_report()
- break
logger.info("DATA_TYPE:%s",type(doc.metadata_json))
metadata = json.loads(str(doc.metadata_json))
logger.info("JSON STRUCTURE:%s",metadata)
@@ -262,12 +239,14 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
t.SELL_PREMIUM,
t.SALE_CONTRACT_NUMBER,
t.SALE_DECLARATION_KEY,
+ t.SHIPMENT_CHUNK_KEY,
where=(t.BOOKING_NUMBER == int(sh[0].reference))
)
cursor.execute(*query)
rows = cursor.fetchall()
logger.info("ROWS:%s",rows)
if rows:
+ sale_line = None
for row in rows:
logger.info("ROW:%s",row)
#Purchase & Sale creation
@@ -281,6 +260,8 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
Sale = Pool().get('sale.sale')
SaleLine = Pool().get('sale.line')
dec_key = str(row[16]).strip()
+ chunk_key = str(row[17]).strip()
+ doc.notes = (doc.notes or "") + f"Lots found: {chunk_key}\n"
lot_unit = str(row[5]).strip().lower()
product = str(row[6]).strip().upper()
lot_net_weight = Decimal(row[4])
@@ -398,10 +379,27 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
l.lot_quantity = round(lot_net_weight,2)
l.lot_gross_quantity = round(lot_gross_weight,2)
l.lot_premium = premium
+ l.lot_chunk_key = int(chunk_key)
logger.info("ADD_LOT:%s",l)
LotQt.add_physical_lots(lqt,[l])
-
- doc.create_weight_report()
+ if sale_line:
+ logger.info("CREATE_FINTRADE_WR_FOR_SL:%s",sale_line)
+ weight_total = sum([l.lot_quantity for l in sale_line.lots if l.lot_type == 'physic'])
+ factor = weight_total / wr.net_landed_kg if wr.net_landed_kg else 1
+ for lot in sale_line.lots:
+ wr_payload = {
+ "chunk_key": lot.lot_chunk_key,
+ "gross_weight": round(lot.lot_gross_quantity / factor,5),
+ "net_weight": round(lot.lot_quantity / factor,5),
+ "tare_total": round(wr.tare_kg * (lot.lot_quantity / weight_total),5) ,
+ "bags": int(wr.bales * (lot.lot_quantity / weight_total)),
+ "surveyor_code": 231,
+ "place_key": 0,
+ "report_date": 20260127
+ }
+ data = doc.create_weight_report(wr_payload)
+ doc.notes = (doc.notes or "") + f"WR created in Fintrade: {data.get('success')}\n"
+ doc.notes = (doc.notes or "") + f"WR key: {data.get('weight_report_key')}\n"
# if cls.rule_set.ocr_required:[]
# cls.run_ocr([doc])
diff --git a/modules/purchase_trade/lot.py b/modules/purchase_trade/lot.py
index 2d7df38..7832209 100755
--- a/modules/purchase_trade/lot.py
+++ b/modules/purchase_trade/lot.py
@@ -59,6 +59,7 @@ class Lot(metaclass=PoolMeta):
delta_pr = fields.Numeric("Delta Pr")
delta_amt = fields.Numeric("Delta Amt")
warrant_nb = fields.Char("Warrant Nb")
+ lot_chunk_key = fields.Integer("Chunk key")
#fees = fields.Many2Many('fee.lots', 'lot', 'fee',"Fees")
dashboard = fields.Many2One('purchase.dashboard',"Dashboard")
pivot = fields.Function(
@@ -1096,6 +1097,7 @@ class LotQt(
newlot.lot_shipment_internal = self.lot_shipment_internal
newlot.lot_shipment_out = self.lot_shipment_out
newlot.lot_product = self.lot_p.line.product
+ newlot.lot_chunk_key = l.lot_chunk_key
if self.lot_s:
newlot.sale_line = self.lot_s.sale_line if self.lot_s.sale_line else None
newlot.lot_type = 'physic'
@@ -2456,6 +2458,7 @@ class LotAddLine(ModelView):
lot_gross_quantity = fields.Numeric("Gross weight")
lot_unit_line = fields.Many2One('product.uom', "Unit",required=True)
lot_premium = fields.Numeric("Premium")
+ lot_chunk_key = fields.Integer("Chunk key")
# @fields.depends('lot_qt')
# def on_change_with_lot_quantity(self):
From f6fe3fb2bd6de726b8b20d4b79646f5a382ca66a Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 27 Jan 2026 22:50:34 +0100
Subject: [PATCH 118/618] 27.01.26
---
modules/automation/automation.py | 27 ++++++++++++++-------------
1 file changed, 14 insertions(+), 13 deletions(-)
diff --git a/modules/automation/automation.py b/modules/automation/automation.py
index 0be1f3c..b3ae75c 100644
--- a/modules/automation/automation.py
+++ b/modules/automation/automation.py
@@ -387,19 +387,20 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
weight_total = sum([l.lot_quantity for l in sale_line.lots if l.lot_type == 'physic'])
factor = weight_total / wr.net_landed_kg if wr.net_landed_kg else 1
for lot in sale_line.lots:
- wr_payload = {
- "chunk_key": lot.lot_chunk_key,
- "gross_weight": round(lot.lot_gross_quantity / factor,5),
- "net_weight": round(lot.lot_quantity / factor,5),
- "tare_total": round(wr.tare_kg * (lot.lot_quantity / weight_total),5) ,
- "bags": int(wr.bales * (lot.lot_quantity / weight_total)),
- "surveyor_code": 231,
- "place_key": 0,
- "report_date": 20260127
- }
- data = doc.create_weight_report(wr_payload)
- doc.notes = (doc.notes or "") + f"WR created in Fintrade: {data.get('success')}\n"
- doc.notes = (doc.notes or "") + f"WR key: {data.get('weight_report_key')}\n"
+ if lot.lot_type == 'physic':
+ wr_payload = {
+ "chunk_key": lot.lot_chunk_key,
+ "gross_weight": round(lot.lot_gross_quantity / factor,5),
+ "net_weight": round(lot.lot_quantity / factor,5),
+ "tare_total": round(wr.tare_kg * (lot.lot_quantity / weight_total),5) ,
+ "bags": int(wr.bales * (lot.lot_quantity / weight_total)),
+ "surveyor_code": 231,
+ "place_key": 0,
+ "report_date": 20260127
+ }
+ data = doc.create_weight_report(wr_payload)
+ doc.notes = (doc.notes or "") + f"WR created in Fintrade: {data.get('success')}\n"
+ doc.notes = (doc.notes or "") + f"WR key: {data.get('weight_report_key')}\n"
# if cls.rule_set.ocr_required:[]
# cls.run_ocr([doc])
From 47ce23f4e867ed5f2b9a0dc9b485a2e5d47a26c0 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 27 Jan 2026 22:56:39 +0100
Subject: [PATCH 119/618] 27.01.26
---
modules/automation/automation.py | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/modules/automation/automation.py b/modules/automation/automation.py
index b3ae75c..bf3e7a7 100644
--- a/modules/automation/automation.py
+++ b/modules/automation/automation.py
@@ -390,9 +390,9 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
if lot.lot_type == 'physic':
wr_payload = {
"chunk_key": lot.lot_chunk_key,
- "gross_weight": round(lot.lot_gross_quantity / factor,5),
- "net_weight": round(lot.lot_quantity / factor,5),
- "tare_total": round(wr.tare_kg * (lot.lot_quantity / weight_total),5) ,
+ "gross_weight": float(round(lot.lot_gross_quantity / factor,5)),
+ "net_weight": float(round(lot.lot_quantity / factor,5)),
+ "tare_total": float(round(wr.tare_kg * (lot.lot_quantity / weight_total),5)) ,
"bags": int(wr.bales * (lot.lot_quantity / weight_total)),
"surveyor_code": 231,
"place_key": 0,
From aa69b8157e1730ac3056a3c1768d70fc90584129 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 27 Jan 2026 23:03:54 +0100
Subject: [PATCH 120/618] 27.01.26
---
modules/automation/automation.py | 1 +
1 file changed, 1 insertion(+)
diff --git a/modules/automation/automation.py b/modules/automation/automation.py
index bf3e7a7..4e22383 100644
--- a/modules/automation/automation.py
+++ b/modules/automation/automation.py
@@ -398,6 +398,7 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
"place_key": 0,
"report_date": 20260127
}
+ logger.info("PAYLOAD:%s",wr_payload)
data = doc.create_weight_report(wr_payload)
doc.notes = (doc.notes or "") + f"WR created in Fintrade: {data.get('success')}\n"
doc.notes = (doc.notes or "") + f"WR key: {data.get('weight_report_key')}\n"
From 0678263f3e137bbefffe5794c8a6717c436a81bd Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 27 Jan 2026 23:15:45 +0100
Subject: [PATCH 121/618] 27.01.26
---
modules/automation/automation.py | 2 +-
modules/purchase_trade/view/lot_tree_sequence5.xml | 1 +
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/modules/automation/automation.py b/modules/automation/automation.py
index 4e22383..c3d2d48 100644
--- a/modules/automation/automation.py
+++ b/modules/automation/automation.py
@@ -380,7 +380,7 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
l.lot_gross_quantity = round(lot_gross_weight,2)
l.lot_premium = premium
l.lot_chunk_key = int(chunk_key)
- logger.info("ADD_LOT:%s",l)
+ logger.info("ADD_LOT:%s",int(chunk_key))
LotQt.add_physical_lots(lqt,[l])
if sale_line:
logger.info("CREATE_FINTRADE_WR_FOR_SL:%s",sale_line)
diff --git a/modules/purchase_trade/view/lot_tree_sequence5.xml b/modules/purchase_trade/view/lot_tree_sequence5.xml
index 7f8d697..35d9101 100755
--- a/modules/purchase_trade/view/lot_tree_sequence5.xml
+++ b/modules/purchase_trade/view/lot_tree_sequence5.xml
@@ -6,4 +6,5 @@
+
From cdcefe6fbc5370b9d256fd02cd6078dec5afbf09 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Wed, 28 Jan 2026 11:33:18 +0100
Subject: [PATCH 122/618] 28.01.26
---
modules/account_stock_continental/product.py | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/modules/account_stock_continental/product.py b/modules/account_stock_continental/product.py
index 5cb9002..f502649 100755
--- a/modules/account_stock_continental/product.py
+++ b/modules/account_stock_continental/product.py
@@ -16,11 +16,11 @@ account_names = [
class Category(metaclass=PoolMeta):
__name__ = 'product.category'
account_stock = fields.MultiValue(fields.Many2One(
- 'account.account', "Account Stock",
+ 'account.account', "Account Stock/Cost Income",
domain=[
('closed', '!=', True),
- ('type.stock', '=', True),
- ('type.statement', '=', 'balance'),
+ # ('type.stock', '=', True),
+ # ('type.statement', '=', 'balance'),
('company', '=', Eval('context', {}).get('company', -1)),
],
states={
@@ -29,7 +29,7 @@ class Category(metaclass=PoolMeta):
| ~Eval('accounting', False)),
}))
account_stock_in = fields.MultiValue(fields.Many2One(
- 'account.account', "Account Stock IN",
+ 'account.account', "Account Stock IN/Cost liability",
domain=[
('closed', '!=', True),
('type.stock', '=', True),
@@ -41,7 +41,7 @@ class Category(metaclass=PoolMeta):
| ~Eval('accounting', False)),
}))
account_stock_out = fields.MultiValue(fields.Many2One(
- 'account.account', "Account Stock OUT",
+ 'account.account', "Account Stock OUT/Cost liability",
domain=[
('closed', '!=', True),
('type.stock', '=', True),
From 5e8917430b5d0cd7a5b3665a4fbc17375d39dc71 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Wed, 28 Jan 2026 11:46:00 +0100
Subject: [PATCH 123/618] 28.01.26
---
modules/account_stock_continental/product.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/modules/account_stock_continental/product.py b/modules/account_stock_continental/product.py
index f502649..5ffeb5c 100755
--- a/modules/account_stock_continental/product.py
+++ b/modules/account_stock_continental/product.py
@@ -103,8 +103,8 @@ class CategoryAccount(metaclass=PoolMeta):
'account.account', "Account Stock",
domain=[
('closed', '!=', True),
- ('type.stock', '=', True),
- ('type.statement', '=', 'balance'),
+ # ('type.stock', '=', True),
+ # ('type.statement', '=', 'balance'),
('company', '=', Eval('company', -1)),
])
account_stock_in = fields.Many2One(
From 42652d0fcb4dbbffe056a86c7a09cc343989f9f7 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Wed, 28 Jan 2026 15:39:15 +0100
Subject: [PATCH 124/618] 28.01.26
---
modules/purchase_trade/fee.py | 113 +++++++++++++++++++++++++++++++---
1 file changed, 105 insertions(+), 8 deletions(-)
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index 7e81746..37cfeaa 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -18,6 +18,7 @@ import datetime
import logging
from collections import defaultdict
from trytond.exceptions import UserWarning, UserError
+from trytond.modules.account.exceptions import PeriodNotFoundError
logger = logging.getLogger(__name__)
@@ -374,19 +375,115 @@ class Fee(ModelSQL,ModelView):
if not fee.sale_line:
feelots = FeeLots.search(['fee','=',fee.id])
for fl in feelots:
- move = fl.lot.get_received_move()
- if move:
- Warning = Pool().get('res.user.warning')
- warning_name = Warning.format("Lot ever received", [])
- if Warning.check(warning_name):
- raise UserWarning(warning_name,
- "By clicking yes, an accrual for this fee will be created")
+ if fee.product.landed_cost:
+ move = fl.lot.get_received_move()
+ if move:
+ Warning = Pool().get('res.user.warning')
+ warning_name = Warning.format("Lot ever received", [])
+ if Warning.check(warning_name):
+ raise UserWarning(warning_name,
+ "By clicking yes, an accrual for this fee will be created")
+ AccountMove = Pool().get('account.move')
+ account_move = move._get_account_stock_move_fee(fee)
+ AccountMove.save([account_move])
+ else:
AccountMove = Pool().get('account.move')
- account_move = move._get_account_stock_move_fee(fee)
+ account_move = fee._get_account_move_fee(fl.lot)
AccountMove.save([account_move])
return fees
+ def _get_account_move_fee(self,lot):
+ pool = Pool()
+ AccountMove = pool.get('account.move')
+ Date = pool.get('ir.date')
+ Period = pool.get('account.period')
+ AccountConfiguration = pool.get('account.configuration')
+
+ if self.product.type != 'service':
+ return
+
+ if self.product.landed_cost:
+ return
+
+ today = Date.today()
+ company = lot.line.purchase.company if lot.line else lot.sale_line.sale.company
+ for date in [today]:
+ try:
+ period = Period.find(company, date=date, test_state=False)
+ except PeriodNotFoundError:
+ if date < today:
+ return
+ continue
+ break
+ else:
+ return
+
+ if period.state != 'open':
+ date = today
+ period = Period.find(company, date=date)
+
+ AccountMoveLine = pool.get('account.move.line')
+ Currency = pool.get('currency.currency')
+ move_line = AccountMoveLine()
+ move_line.lot = lot
+ move_line.fee = self
+ move_line.origin = self
+ move_line_ = AccountMoveLine()
+ move_line_.lot = lot
+ move_line_.fee = self
+ move_line_.origin = self
+ amount = self.amount
+
+ if self.currency != company.currency:
+ with Transaction().set_context(date=today):
+ amount_converted = amount
+ amount = Currency.compute(self.currency,
+ amount, company.currency)
+ move_line.second_currency = self.currency
+
+ if self.p_r == 'pay':
+ move_line.debit = amount
+ move_line.credit = Decimal(0)
+ move_line.account = self.product.account_stock_used
+ if hasattr(move_line, 'second_currency') and move_line.second_currency:
+ move_line.amount_second_currency = amount_converted
+ move_line_.debit = Decimal(0)
+ move_line_.credit = amount
+ move_line_.account = self.product.account_stock_in_used
+ if hasattr(move_line_, 'second_currency') and move_line_.second_currency:
+ move_line_.amount_second_currency = -amount_converted
+ else:
+ move_line.debit = Decimal(0)
+ move_line.credit = amount
+ move_line.account = self.product.account_stock_used
+ if hasattr(move_line, 'second_currency') and move_line.second_currency:
+ move_line.amount_second_currency = -amount_converted
+ move_line_.debit = amount
+ move_line_.credit = Decimal(0)
+ move_line_.account = self.product.account_stock_in_used
+ if hasattr(move_line_, 'second_currency') and move_line_.second_currency:
+ move_line_.amount_second_currency = amount_converted
+
+ logger.info("FEE_MOVELINES_1:%s",move_line)
+ logger.info("FEE_MOVELINES_2:%s",move_line_)
+
+
+ account_configuration = AccountConfiguration(1)
+ journal = account_configuration.get_multivalue(
+ 'expense', company=company.id)
+
+ description = None
+ description = 'Fee not inventoried'
+ return AccountMove(
+ journal=journal,
+ period=period,
+ date=date,
+ origin=self,
+ description=description,
+ lines=[move_line,move_line_],
+ )
+
class FeeLots(ModelSQL,ModelView):
"Fee lots"
From 6085879d6f5768cf63a00c8e1f9a4b6ca012e84d Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Wed, 28 Jan 2026 15:51:43 +0100
Subject: [PATCH 125/618] 28.01.26
---
modules/purchase_trade/fee.py | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index 37cfeaa..a4d6c75 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -468,10 +468,10 @@ class Fee(ModelSQL,ModelView):
logger.info("FEE_MOVELINES_1:%s",move_line)
logger.info("FEE_MOVELINES_2:%s",move_line_)
-
- account_configuration = AccountConfiguration(1)
- journal = account_configuration.get_multivalue(
- 'expense', company=company.id)
+ AccountJournal = Pool().get('account.journal')
+ journal = AccountJournal.search(['type','=','expense'])
+ if journal:
+ journal = journal[0]
description = None
description = 'Fee not inventoried'
From 016b92e5aa4e340cf548c210d27fda04f0634903 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Wed, 28 Jan 2026 15:55:04 +0100
Subject: [PATCH 126/618] 28.01.26
---
modules/purchase_trade/fee.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index a4d6c75..ca5f1e2 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -428,11 +428,11 @@ class Fee(ModelSQL,ModelView):
move_line = AccountMoveLine()
move_line.lot = lot
move_line.fee = self
- move_line.origin = self
+ move_line.origin = None
move_line_ = AccountMoveLine()
move_line_.lot = lot
move_line_.fee = self
- move_line_.origin = self
+ move_line_.origin = None
amount = self.amount
if self.currency != company.currency:
From a76b8798ae76a77d7bb9deb54592d1b41fb3db70 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Wed, 28 Jan 2026 15:57:49 +0100
Subject: [PATCH 127/618] 28.01.26
---
modules/purchase_trade/fee.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index ca5f1e2..632d0c6 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -479,7 +479,7 @@ class Fee(ModelSQL,ModelView):
journal=journal,
period=period,
date=date,
- origin=self,
+ origin=None,
description=description,
lines=[move_line,move_line_],
)
From 7155708d4b858a7cc47ba765faa34b7359505304 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Wed, 28 Jan 2026 16:52:54 +0100
Subject: [PATCH 128/618] 28.01.26
---
modules/purchase_trade/fee.py | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index 632d0c6..687862f 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -352,17 +352,18 @@ class Fee(ModelSQL,ModelView):
PurchaseLine = Pool().get('purchase.line')
pl = PurchaseLine()
pl.product = fee.product
- if fee.line or fee.sale_line:
- pl.quantity = round(qt_line,5)
- if fee.shipment_in:
- pl.quantity = round(qt_sh,5)
+ # if fee.line or fee.sale_line:
+ # pl.quantity = round(qt_line,5)
+ # if fee.shipment_in:
+ # pl.quantity = round(qt_sh,5)
+ pl.quantity = 1
logger.info("CREATE_PURHCASE_FOR_FEE_QT:%s",pl.quantity)
pl.unit = unit
pl.fee_ = fee.id
if fee.price:
fee_price = fee.get_price_per_qt()
logger.info("GET_FEE_PRICE_PER_QT:%s",fee_price)
- pl.unit_price = round(Decimal(fee_price),4)
+ pl.unit_price = round(Decimal(fee.amount),4)
p = Purchase()
p.lines = [pl]
p.party = fee.supplier
From 9447a685f2df99cf3efbba7a03bc2fd6778107c1 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Thu, 29 Jan 2026 10:31:42 +0100
Subject: [PATCH 129/618] 29.01.26
---
modules/account_stock_anglo_saxon/invoice.py | 10 ++++++++++
modules/purchase_trade/fee.py | 14 +++++++-------
2 files changed, 17 insertions(+), 7 deletions(-)
diff --git a/modules/account_stock_anglo_saxon/invoice.py b/modules/account_stock_anglo_saxon/invoice.py
index 8cf55a0..fbdc3f0 100755
--- a/modules/account_stock_anglo_saxon/invoice.py
+++ b/modules/account_stock_anglo_saxon/invoice.py
@@ -177,4 +177,14 @@ class InvoiceLine(metaclass=PoolMeta):
anglo_saxon_move_lines = self._get_anglo_saxon_move_lines(
cost, type_)
result.extend(anglo_saxon_move_lines)
+ #Fee inventoried delivery management
+ if self.lot:
+ FeeLots = Pool().get('fee.lots')
+ fees = FeeLots.search(['lot','=',self.lot.id])
+ for fl in fees:
+ if fl.fee.type == 'ordered' and fl.fee.product.template.landed_cost:
+ AccountMove = Pool().get('account.move')
+ account_move = fl.fee._get_account_move_fee(fl.lot,'out')
+ AccountMove.save([account_move])
+
return result
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index 687862f..7d938af 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -195,7 +195,7 @@ class Fee(ModelSQL,ModelView):
def get_landed_status(self,name):
if self.product:
- return self.product.landed_cost
+ return self.product.template.landed_cost
def get_quantity(self,name=None):
qt = self.get_fee_lots_qt()
@@ -376,7 +376,7 @@ class Fee(ModelSQL,ModelView):
if not fee.sale_line:
feelots = FeeLots.search(['fee','=',fee.id])
for fl in feelots:
- if fee.product.landed_cost:
+ if fee.product.template.landed_cost:
move = fl.lot.get_received_move()
if move:
Warning = Pool().get('res.user.warning')
@@ -394,7 +394,7 @@ class Fee(ModelSQL,ModelView):
return fees
- def _get_account_move_fee(self,lot):
+ def _get_account_move_fee(self,lot,in_out='in'):
pool = Pool()
AccountMove = pool.get('account.move')
Date = pool.get('ir.date')
@@ -404,7 +404,7 @@ class Fee(ModelSQL,ModelView):
if self.product.type != 'service':
return
- if self.product.landed_cost:
+ if self.product.template.landed_cost:
return
today = Date.today()
@@ -451,7 +451,7 @@ class Fee(ModelSQL,ModelView):
move_line.amount_second_currency = amount_converted
move_line_.debit = Decimal(0)
move_line_.credit = amount
- move_line_.account = self.product.account_stock_in_used
+ move_line_.account = self.product.account_stock_in_used if in_out == 'in' else self.product.account_stock_out_used
if hasattr(move_line_, 'second_currency') and move_line_.second_currency:
move_line_.amount_second_currency = -amount_converted
else:
@@ -462,7 +462,7 @@ class Fee(ModelSQL,ModelView):
move_line.amount_second_currency = -amount_converted
move_line_.debit = amount
move_line_.credit = Decimal(0)
- move_line_.account = self.product.account_stock_in_used
+ move_line_.account = self.product.account_stock_in_used if in_out == 'in' else self.product.account_stock_out_used
if hasattr(move_line_, 'second_currency') and move_line_.second_currency:
move_line_.amount_second_currency = amount_converted
@@ -475,7 +475,7 @@ class Fee(ModelSQL,ModelView):
journal = journal[0]
description = None
- description = 'Fee not inventoried'
+ description = 'Fee'
return AccountMove(
journal=journal,
period=period,
From 1e23528258c66548e94e7b7fe1e3ff8a2f8d9897 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Thu, 29 Jan 2026 11:06:23 +0100
Subject: [PATCH 130/618] 29.01.26
---
modules/purchase_trade/fee.py | 3 ---
1 file changed, 3 deletions(-)
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index 7d938af..fb20857 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -404,9 +404,6 @@ class Fee(ModelSQL,ModelView):
if self.product.type != 'service':
return
- if self.product.template.landed_cost:
- return
-
today = Date.today()
company = lot.line.purchase.company if lot.line else lot.sale_line.sale.company
for date in [today]:
From 8edd5ea90161030d26fc6c9eec2cf9ce6dcb5339 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Thu, 29 Jan 2026 11:26:21 +0100
Subject: [PATCH 131/618] 29.01.26
---
modules/account_stock_anglo_saxon/invoice.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/account_stock_anglo_saxon/invoice.py b/modules/account_stock_anglo_saxon/invoice.py
index fbdc3f0..c75283f 100755
--- a/modules/account_stock_anglo_saxon/invoice.py
+++ b/modules/account_stock_anglo_saxon/invoice.py
@@ -178,7 +178,7 @@ class InvoiceLine(metaclass=PoolMeta):
cost, type_)
result.extend(anglo_saxon_move_lines)
#Fee inventoried delivery management
- if self.lot:
+ if self.lot and type_ != 'in_supplier':
FeeLots = Pool().get('fee.lots')
fees = FeeLots.search(['lot','=',self.lot.id])
for fl in fees:
From 94f15d66da7ec72594ddb409c96c3c33a855b8f4 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Thu, 29 Jan 2026 12:39:47 +0100
Subject: [PATCH 132/618] 29.01.26
---
modules/purchase_trade/dashboard.py | 1 +
1 file changed, 1 insertion(+)
diff --git a/modules/purchase_trade/dashboard.py b/modules/purchase_trade/dashboard.py
index d79bd81..1a8b9e2 100755
--- a/modules/purchase_trade/dashboard.py
+++ b/modules/purchase_trade/dashboard.py
@@ -717,6 +717,7 @@ class BotWizard(Wizard):
l.lot_quantity = l.lot_qt
l.lot_gross_quantity = l.lot_qt
l.lot_premium = Decimal(0)
+ l.lot_chunk_key = None
lot_id = LotQt.add_physical_lots(lqt,[l])
d.action_return = 'lot.lot,' + str(lot_id) + ',' + str(lot_id)
Dashboard.save([d])
From 2b3cf5c09526f0ec4d8b9f90ec4a9041c38ee175 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Thu, 29 Jan 2026 13:17:11 +0100
Subject: [PATCH 133/618] 29.01.26
---
modules/purchase/purchase.py | 2 +-
modules/purchase_trade/fee.py | 8 ++++----
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/modules/purchase/purchase.py b/modules/purchase/purchase.py
index 00b8180..6f442ac 100755
--- a/modules/purchase/purchase.py
+++ b/modules/purchase/purchase.py
@@ -1892,7 +1892,7 @@ class Line(sequence_ordered(), ModelSQL, ModelView):
invoice_line.invoice_type = 'in'
if self.product:
if self.product.type == 'service' and not self.product.landed_cost:
- invoice_line.account = self.product.account_expense_used
+ invoice_line.account = self.product.account_stock_in_used
else:
invoice_line.account = self.product.account_stock_in_used
if not invoice_line.account:
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index fb20857..90b3d76 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -278,10 +278,10 @@ class Fee(ModelSQL,ModelView):
logger.info("ADJUST_PURCHASE_VALUES:%s",self)
if self.type == 'ordered' and self.state == 'not invoiced' and self.purchase:
logger.info("ADJUST_PURCHASE_VALUES_QT:%s",self.purchase.lines[0].quantity)
- if self.get_price_per_qt() != self.purchase.lines[0].unit_price:
- self.purchase.lines[0].unit_price = self.get_price_per_qt()
- if self.quantity != self.purchase.lines[0].quantity:
- self.purchase.lines[0].quantity = self.quantity
+ if self.amount != self.purchase.lines[0].unit_price:
+ self.purchase.lines[0].unit_price = self.amount
+ # if self.quantity != self.purchase.lines[0].quantity:
+ # self.purchase.lines[0].quantity = self.quantity
if self.product != self.purchase.lines[0].product:
self.purchase.lines[0].product = self.product
PurchaseLine.save([self.purchase.lines[0]])
From 8cc0bffcae41e814b7348858f2540e98d4ddd375 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Thu, 29 Jan 2026 14:05:17 +0100
Subject: [PATCH 134/618] 29.01.26
---
modules/purchase/purchase.py | 2 ++
1 file changed, 2 insertions(+)
diff --git a/modules/purchase/purchase.py b/modules/purchase/purchase.py
index 6f442ac..99cc600 100755
--- a/modules/purchase/purchase.py
+++ b/modules/purchase/purchase.py
@@ -1891,6 +1891,8 @@ class Line(sequence_ordered(), ModelSQL, ModelView):
self.product.supplier_taxes_deductible_rate_used)
invoice_line.invoice_type = 'in'
if self.product:
+ if self.product.type == 'service':
+ quantity = 1
if self.product.type == 'service' and not self.product.landed_cost:
invoice_line.account = self.product.account_stock_in_used
else:
From 744e147a1a0bb79c3202725bcd118953ed866a46 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Thu, 29 Jan 2026 17:23:40 +0100
Subject: [PATCH 135/618] 29.01.26
---
modules/purchase_trade/fee.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index 90b3d76..73cdab2 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -448,7 +448,7 @@ class Fee(ModelSQL,ModelView):
move_line.amount_second_currency = amount_converted
move_line_.debit = Decimal(0)
move_line_.credit = amount
- move_line_.account = self.product.account_stock_in_used if in_out == 'in' else self.product.account_stock_out_used
+ move_line_.account = self.product.account_stock_in_used if in_out == 'in' else self.product.account_cogs_used
if hasattr(move_line_, 'second_currency') and move_line_.second_currency:
move_line_.amount_second_currency = -amount_converted
else:
@@ -459,7 +459,7 @@ class Fee(ModelSQL,ModelView):
move_line.amount_second_currency = -amount_converted
move_line_.debit = amount
move_line_.credit = Decimal(0)
- move_line_.account = self.product.account_stock_in_used if in_out == 'in' else self.product.account_stock_out_used
+ move_line_.account = self.product.account_stock_in_used if in_out == 'in' else self.product.account_cogs_used
if hasattr(move_line_, 'second_currency') and move_line_.second_currency:
move_line_.amount_second_currency = amount_converted
From b51ee12331c0501f284e8eb8d41eb734d38ed51e Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Thu, 29 Jan 2026 17:49:20 +0100
Subject: [PATCH 136/618] 29.01.26
---
modules/purchase/purchase.py | 3 +--
modules/purchase_trade/fee.py | 8 ++++----
2 files changed, 5 insertions(+), 6 deletions(-)
diff --git a/modules/purchase/purchase.py b/modules/purchase/purchase.py
index 99cc600..a29be71 100755
--- a/modules/purchase/purchase.py
+++ b/modules/purchase/purchase.py
@@ -1891,8 +1891,6 @@ class Line(sequence_ordered(), ModelSQL, ModelView):
self.product.supplier_taxes_deductible_rate_used)
invoice_line.invoice_type = 'in'
if self.product:
- if self.product.type == 'service':
- quantity = 1
if self.product.type == 'service' and not self.product.landed_cost:
invoice_line.account = self.product.account_stock_in_used
else:
@@ -1922,6 +1920,7 @@ class Line(sequence_ordered(), ModelSQL, ModelView):
invoice_line.lot = l.id
if self.product.type == 'service':
invoice_line.unit_price = self.unit_price
+ invoice_line.quantity = 1
invoice_line.product = self.product
invoice_line.stock_moves = []
Fee = Pool().get('fee.fee')
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index 73cdab2..051138f 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -443,23 +443,23 @@ class Fee(ModelSQL,ModelView):
if self.p_r == 'pay':
move_line.debit = amount
move_line.credit = Decimal(0)
- move_line.account = self.product.account_stock_used
+ move_line.account = self.product.account_stock_used if in_out == 'in' else self.product.account_cogs_used
if hasattr(move_line, 'second_currency') and move_line.second_currency:
move_line.amount_second_currency = amount_converted
move_line_.debit = Decimal(0)
move_line_.credit = amount
- move_line_.account = self.product.account_stock_in_used if in_out == 'in' else self.product.account_cogs_used
+ move_line_.account = self.product.account_stock_in_used if in_out == 'in' else self.product.account_stock_out_used
if hasattr(move_line_, 'second_currency') and move_line_.second_currency:
move_line_.amount_second_currency = -amount_converted
else:
move_line.debit = Decimal(0)
move_line.credit = amount
- move_line.account = self.product.account_stock_used
+ move_line.account = self.product.account_stock_used if in_out == 'in' else self.product.account_cogs_used
if hasattr(move_line, 'second_currency') and move_line.second_currency:
move_line.amount_second_currency = -amount_converted
move_line_.debit = amount
move_line_.credit = Decimal(0)
- move_line_.account = self.product.account_stock_in_used if in_out == 'in' else self.product.account_cogs_used
+ move_line_.account = self.product.account_stock_in_used if in_out == 'in' else self.product.account_stock_out_used
if hasattr(move_line_, 'second_currency') and move_line_.second_currency:
move_line_.amount_second_currency = amount_converted
From 3eedc0b30ebef2f7d8c3ef1a16539a49547fdf02 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Fri, 30 Jan 2026 06:31:16 +0100
Subject: [PATCH 137/618] 30.01.26
---
modules/purchase/purchase.py | 3 ++-
modules/purchase_trade/fee.py | 28 ++++++++++++++++++----------
2 files changed, 20 insertions(+), 11 deletions(-)
diff --git a/modules/purchase/purchase.py b/modules/purchase/purchase.py
index a29be71..9ba426a 100755
--- a/modules/purchase/purchase.py
+++ b/modules/purchase/purchase.py
@@ -1920,13 +1920,14 @@ class Line(sequence_ordered(), ModelSQL, ModelView):
invoice_line.lot = l.id
if self.product.type == 'service':
invoice_line.unit_price = self.unit_price
- invoice_line.quantity = 1
invoice_line.product = self.product
invoice_line.stock_moves = []
Fee = Pool().get('fee.fee')
fee = Fee.search(['purchase','=',self.purchase.id])
if fee:
invoice_line.fee = fee[0]
+ if fee[0].mode == 'lumpsum':
+ invoice_line.quantity = 1
lines.append(invoice_line)
logger.info("GETINVLINE:%s",self.product.type)
logger.info("GETINVLINE2:%s",l.invoice_line_prov)
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index 051138f..47c4348 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -278,10 +278,16 @@ class Fee(ModelSQL,ModelView):
logger.info("ADJUST_PURCHASE_VALUES:%s",self)
if self.type == 'ordered' and self.state == 'not invoiced' and self.purchase:
logger.info("ADJUST_PURCHASE_VALUES_QT:%s",self.purchase.lines[0].quantity)
- if self.amount != self.purchase.lines[0].unit_price:
- self.purchase.lines[0].unit_price = self.amount
- # if self.quantity != self.purchase.lines[0].quantity:
- # self.purchase.lines[0].quantity = self.quantity
+ if self.mode == 'lumpsum':
+ if self.amount != self.purchase.lines[0].unit_price:
+ self.purchase.lines[0].unit_price = self.amount
+ # if self.quantity != self.purchase.lines[0].quantity:
+ # self.purchase.lines[0].quantity = self.quantity
+ else:
+ if self.get_price_per_qt() != self.purchase.lines[0].unit_price:
+ self.purchase.lines[0].unit_price = self.get_price_per_qt()
+ if self.quantity != self.purchase.lines[0].quantity:
+ self.purchase.lines[0].quantity = self.quantity
if self.product != self.purchase.lines[0].product:
self.purchase.lines[0].product = self.product
PurchaseLine.save([self.purchase.lines[0]])
@@ -352,18 +358,20 @@ class Fee(ModelSQL,ModelView):
PurchaseLine = Pool().get('purchase.line')
pl = PurchaseLine()
pl.product = fee.product
- # if fee.line or fee.sale_line:
- # pl.quantity = round(qt_line,5)
- # if fee.shipment_in:
- # pl.quantity = round(qt_sh,5)
- pl.quantity = 1
+ if fee.line or fee.sale_line:
+ pl.quantity = round(qt_line,5)
+ if fee.shipment_in:
+ pl.quantity = round(qt_sh,5)
logger.info("CREATE_PURHCASE_FOR_FEE_QT:%s",pl.quantity)
pl.unit = unit
pl.fee_ = fee.id
if fee.price:
fee_price = fee.get_price_per_qt()
logger.info("GET_FEE_PRICE_PER_QT:%s",fee_price)
- pl.unit_price = round(Decimal(fee.amount),4)
+ pl.unit_price = round(Decimal(fee_price),4)
+ if fee.mode == 'lumpsum':
+ pl.quantity = 1
+ pl.unit_price = round(Decimal(fee.amount),4)
p = Purchase()
p.lines = [pl]
p.party = fee.supplier
From d9cb2b7961c93a94213747850f5d5b86a6eabaa7 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Fri, 30 Jan 2026 07:27:45 +0100
Subject: [PATCH 138/618] 30.01.26
---
modules/account_invoice/invoice.py | 3 +++
modules/purchase_trade/fee.py | 21 +++++++++++++++++++--
2 files changed, 22 insertions(+), 2 deletions(-)
diff --git a/modules/account_invoice/invoice.py b/modules/account_invoice/invoice.py
index cf68c2f..07c491f 100755
--- a/modules/account_invoice/invoice.py
+++ b/modules/account_invoice/invoice.py
@@ -2031,6 +2031,9 @@ class Invoice(Workflow, ModelSQL, ModelView, TaxableMixin, InvoiceReportMixin):
var_qt = sum([i.quantity for i in gl])
logger.info("LOT_TO_PROCESS:%s",lot)
logger.info("FEE_TO_PROCESS:%s",gl[0].fee)
+ if (gl[0].fee and not gl[0].product.landed_cost):
+ account_move = gl[0].fee._get_account_move_fee(lot,'in',gl[0].fee.get_non_cog(lot))
+ Move.save([account_move])
if (lot and not gl[0].fee) or (gl[0].fee and gl[0].product.landed_cost):
adjust_move_lines = []
mov = None
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index 47c4348..5235b7b 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -120,6 +120,23 @@ class Fee(ModelSQL,ModelView):
if ml:
return round(Decimal(sum([e.credit-e.debit for e in ml if e.description != 'Delivery fee'])),2)
+ def get_non_cog(self,lot):
+ MoveLine = Pool().get('account.move.line')
+ Currency = Pool().get('currency.currency')
+ Date = Pool().get('ir.date')
+ AccountConfiguration = Pool().get('account.configuration')
+ account_configuration = AccountConfiguration(1)
+ Uom = Pool().get('product.uom')
+ ml = MoveLine.search([
+ ('lot', '=', lot.id),
+ ('fee', '=', self.id),
+ ('account', '=', self.product.account_stock_in_used.id),
+ ])
+
+ logger.info("GET_COG_FEE:%s",ml)
+ if ml:
+ return round(Decimal(sum([e.credit-e.debit for e in ml])),2)
+
@classmethod
def __setup__(cls):
super().__setup__()
@@ -402,7 +419,7 @@ class Fee(ModelSQL,ModelView):
return fees
- def _get_account_move_fee(self,lot,in_out='in'):
+ def _get_account_move_fee(self,lot,in_out='in',amt = None):
pool = Pool()
AccountMove = pool.get('account.move')
Date = pool.get('ir.date')
@@ -439,7 +456,7 @@ class Fee(ModelSQL,ModelView):
move_line_.lot = lot
move_line_.fee = self
move_line_.origin = None
- amount = self.amount
+ amount = amt if amt else self.amount
if self.currency != company.currency:
with Transaction().set_context(date=today):
From d0db0abdd4c41a784dafcdc32bf3662c2823b962 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Fri, 30 Jan 2026 07:47:15 +0100
Subject: [PATCH 139/618] 30.01.26
---
modules/account_invoice/invoice.py | 3 ++-
modules/purchase_trade/fee.py | 2 +-
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/modules/account_invoice/invoice.py b/modules/account_invoice/invoice.py
index 07c491f..f79d867 100755
--- a/modules/account_invoice/invoice.py
+++ b/modules/account_invoice/invoice.py
@@ -2032,7 +2032,8 @@ class Invoice(Workflow, ModelSQL, ModelView, TaxableMixin, InvoiceReportMixin):
logger.info("LOT_TO_PROCESS:%s",lot)
logger.info("FEE_TO_PROCESS:%s",gl[0].fee)
if (gl[0].fee and not gl[0].product.landed_cost):
- account_move = gl[0].fee._get_account_move_fee(lot,'in',gl[0].fee.get_non_cog(lot))
+ diff = gl[0].fee - gl[0].fee.get_non_cog(lot)
+ account_move = gl[0].fee._get_account_move_fee(lot,'in',diff)
Move.save([account_move])
if (lot and not gl[0].fee) or (gl[0].fee and gl[0].product.landed_cost):
adjust_move_lines = []
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index 5235b7b..4d09e81 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -133,7 +133,7 @@ class Fee(ModelSQL,ModelView):
('account', '=', self.product.account_stock_in_used.id),
])
- logger.info("GET_COG_FEE:%s",ml)
+ logger.info("GET_NON_COG_FEE:%s",ml)
if ml:
return round(Decimal(sum([e.credit-e.debit for e in ml])),2)
From 9a66952f50ee4a855a949c50153b3a464816381f Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Fri, 30 Jan 2026 08:07:41 +0100
Subject: [PATCH 140/618] 30.01.26
---
modules/account_invoice/invoice.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/account_invoice/invoice.py b/modules/account_invoice/invoice.py
index f79d867..1d709cf 100755
--- a/modules/account_invoice/invoice.py
+++ b/modules/account_invoice/invoice.py
@@ -2032,7 +2032,7 @@ class Invoice(Workflow, ModelSQL, ModelView, TaxableMixin, InvoiceReportMixin):
logger.info("LOT_TO_PROCESS:%s",lot)
logger.info("FEE_TO_PROCESS:%s",gl[0].fee)
if (gl[0].fee and not gl[0].product.landed_cost):
- diff = gl[0].fee - gl[0].fee.get_non_cog(lot)
+ diff = gl[0].fee.amount - gl[0].fee.get_non_cog(lot)
account_move = gl[0].fee._get_account_move_fee(lot,'in',diff)
Move.save([account_move])
if (lot and not gl[0].fee) or (gl[0].fee and gl[0].product.landed_cost):
From 88eb890c46b08a543382508c3267b930047930e0 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 1 Feb 2026 17:55:54 +0100
Subject: [PATCH 141/618] 01.02.26
---
modules/purchase_trade/dashboard.py | 40 ++++++++++++++++++-
modules/purchase_trade/global_reporting.py | 3 +-
modules/purchase_trade/stock.py | 6 +++
.../view/gr_configuration_form.xml | 2 +
.../purchase_trade/view/shipment_in_form.xml | 15 +++++++
5 files changed, 64 insertions(+), 2 deletions(-)
diff --git a/modules/purchase_trade/dashboard.py b/modules/purchase_trade/dashboard.py
index 1a8b9e2..c754531 100755
--- a/modules/purchase_trade/dashboard.py
+++ b/modules/purchase_trade/dashboard.py
@@ -235,8 +235,46 @@ class Dashboard(ModelSQL, ModelView):
return round(1/f1,6), round(1/f2,6) if f2 else None, round(1/f3,6) if f3 else None, round(1/f4,6) if f4 else None, round(1/f5,6) if f5 else None, d1, d2, d3, d4, d5
def get_tremor(self,name):
+ Date = Pool().get('ir.date')
Configuration = Pool().get('gr.configuration')
config = Configuration.search(['id','>',0])[0]
+ Shipment = Pool().get('stock.shipment.in')
+ Fee = Pool().get('fee.fee')
+ WR = Pool().get('weight.report')
+ if config.automation:
+ shipment = Shipment.search([('state','!=','received')])
+ shipment_trend = [sh for sh in shipment if sh.create_date == Date.today()]
+ controller = Shipment.search([('controller','!=',None)])
+ controller_trend = [co for co in controller if co.create_date == Date.today()]
+ instruction = Shipment.search([('send_instruction','=',True)])
+ instruction_trend = [si for si in instruction if si.create_date == Date.today()]
+ wr = WR.search([('id','>',0)])
+ wr_trend = [w for w in wr if w.create_date == Date.today()]
+ so = Fee.search(['id','=',25])
+ so_trend = [s for s in so if s.create_date == Date.today()]
+ return (
+ config.dashboard +
+ "/dashboard/index.html?shipment="
+ + str(len(shipment))
+ + "&shipment_trend="
+ + str(len(shipment_trend))
+ + "&controller="
+ + str(len(controller))
+ + "&controller_trend="
+ + str(len(controller_trend))
+ + "&instruction="
+ + str(len(instruction))
+ + "&instruction_trend="
+ + str(len(instruction_trend))
+ + "&wr="
+ + str(len(wr))
+ + "&wr_trend="
+ + str(len(wr_trend))
+ + "&so="
+ + str(len(so))
+ + "&so_trend="
+ + str(len(so_trend)))
+
f1,f2,f3,f4,f5,d1,d2,d3,d4,d5 = self.get_last_five_fx_rates()
Valuation = Pool().get('valuation.valuation')
total_t, total_t1, variation = Valuation.get_totals()
@@ -271,7 +309,7 @@ class Dashboard(ModelSQL, ModelView):
val_s = len(val)
conf = Sale.search(['state','=','confirmed'])
conf_s = len(conf)
- Shipment = Pool().get('stock.shipment.in')
+
draft = Shipment.search(['state','=','draft'])
shipment_d = len(draft)
val = Shipment.search(['state','=','started'])
diff --git a/modules/purchase_trade/global_reporting.py b/modules/purchase_trade/global_reporting.py
index fa5c188..ba3a291 100644
--- a/modules/purchase_trade/global_reporting.py
+++ b/modules/purchase_trade/global_reporting.py
@@ -16,4 +16,5 @@ class GRConfiguration(ModelSingleton, ModelSQL, ModelView):
dark = fields.Boolean("Dark mode")
pnl_id = fields.Integer("Pnl ID")
forex_id = fields.Integer("Forex ID")
- payload = fields.Char("Metabase payload")
\ No newline at end of file
+ payload = fields.Char("Metabase payload")
+ automation = fields.Boolean("Automation")
\ No newline at end of file
diff --git a/modules/purchase_trade/stock.py b/modules/purchase_trade/stock.py
index d0dd7be..68d1d59 100755
--- a/modules/purchase_trade/stock.py
+++ b/modules/purchase_trade/stock.py
@@ -420,6 +420,12 @@ class ShipmentIn(metaclass=PoolMeta):
'Container'
)
shipment_wr = fields.One2Many('shipment.wr','shipment_in',"WR")
+ controller = fields.Many2One('party.party',"Controller")
+ send_instruction = fields.Boolean("Send instruction")
+ instructions = fields.Text("Instructions")
+ add_bl = fields.Boolean("Add BL")
+ add_invoice = fields.Boolean("Add invoice")
+ returned_id = fields.Char("Returned ID")
@classmethod
def __setup__(cls):
diff --git a/modules/purchase_trade/view/gr_configuration_form.xml b/modules/purchase_trade/view/gr_configuration_form.xml
index 4d154c7..99bfd47 100644
--- a/modules/purchase_trade/view/gr_configuration_form.xml
+++ b/modules/purchase_trade/view/gr_configuration_form.xml
@@ -11,4 +11,6 @@
+
+
\ No newline at end of file
diff --git a/modules/purchase_trade/view/shipment_in_form.xml b/modules/purchase_trade/view/shipment_in_form.xml
index 5b89679..51a570b 100755
--- a/modules/purchase_trade/view/shipment_in_form.xml
+++ b/modules/purchase_trade/view/shipment_in_form.xml
@@ -111,6 +111,21 @@ this repository contains the full copyright notices and license terms. -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
From 4513ce8ac74e8b089bc80893a7a407f21f45a9f0 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 1 Feb 2026 18:03:12 +0100
Subject: [PATCH 142/618] 01.02.26
---
modules/purchase_trade/view/shipment_in_form.xml | 1 +
1 file changed, 1 insertion(+)
diff --git a/modules/purchase_trade/view/shipment_in_form.xml b/modules/purchase_trade/view/shipment_in_form.xml
index 51a570b..0160134 100755
--- a/modules/purchase_trade/view/shipment_in_form.xml
+++ b/modules/purchase_trade/view/shipment_in_form.xml
@@ -118,6 +118,7 @@ this repository contains the full copyright notices and license terms. -->
+
From f5d6d4ef5549f8164bfa99c6c28b7c4fbd960059 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 1 Feb 2026 20:58:57 +0100
Subject: [PATCH 143/618] 01.02.26
---
modules/automation/automation.py | 1 +
modules/document_incoming/inbound_email.py | 46 ++++++++++++++++++++--
modules/document_incoming_wr/document.py | 11 ++++++
3 files changed, 55 insertions(+), 3 deletions(-)
diff --git a/modules/automation/automation.py b/modules/automation/automation.py
index c3d2d48..8958b7a 100644
--- a/modules/automation/automation.py
+++ b/modules/automation/automation.py
@@ -22,6 +22,7 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
('invoice', 'Invoice'),
('statement_of_facts', 'Statement of Facts'),
('weight_report', 'Weight Report'),
+ ('controller', 'Controller'),
('bol', 'Bill of Lading'),
('controller_invoice', 'Controller Invoice'),
], 'Type')
diff --git a/modules/document_incoming/inbound_email.py b/modules/document_incoming/inbound_email.py
index 682facd..9c96175 100755
--- a/modules/document_incoming/inbound_email.py
+++ b/modules/document_incoming/inbound_email.py
@@ -46,11 +46,51 @@ class Rule(metaclass=PoolMeta):
DocumentIncoming = pool.get('document.incoming')
return DocumentIncoming.fields_get(['type'])['type']['selection']
+ # def run(self, email_):
+ # pool = Pool()
+ # DocumentIncoming = pool.get('document.incoming')
+ # super().run(email_)
+ # if (self.action == 'document.incoming|from_inbound_email'
+ # and self.document_incoming_process):
+ # document = email_.result
+ # DocumentIncoming.process([document], with_children=True)
+
def run(self, email_):
pool = Pool()
DocumentIncoming = pool.get('document.incoming')
super().run(email_)
- if (self.action == 'document.incoming|from_inbound_email'
- and self.document_incoming_process):
- document = email_.result
+
+ if self.action != 'document.incoming|from_inbound_email':
+ return
+
+ data = email_.as_dict()
+ attachments = data.get('attachments') or []
+
+ # 👉 S'il y avait des pièces jointes, le module standard a déjà créé les documents
+ if attachments:
+ if self.document_incoming_process and email_.result:
+ DocumentIncoming.process([email_.result], with_children=True)
+ return
+
+ # 🚨 Aucune pièce jointe → on crée un document depuis le corps du mail
+ body = data.get('text') or data.get('html')
+ if not body:
+ return # rien à créer
+
+ filename = (data.get('subject') or "email").strip()
+ filename = f"{filename}.txt"
+
+ document, = DocumentIncoming.create([{
+ 'type': self.document_incoming_type,
+ 'company': self.document_incoming_company.id
+ if self.document_incoming_company else None,
+ 'filename': filename,
+ 'data': body.encode('utf-8'),
+ 'mime_type': 'text/plain',
+ 'source': 'email',
+ }])
+
+ email_.result = document
+
+ if self.document_incoming_process:
DocumentIncoming.process([document], with_children=True)
diff --git a/modules/document_incoming_wr/document.py b/modules/document_incoming_wr/document.py
index b559dcf..513bf75 100644
--- a/modules/document_incoming_wr/document.py
+++ b/modules/document_incoming_wr/document.py
@@ -23,6 +23,8 @@ class Incoming(metaclass=PoolMeta):
super().__setup__()
cls.type.selection.append(
('weight_report', "Weight Report"))
+ cls.type.selection.append(
+ ('controller', "Controller"))
@classmethod
def _get_results(cls):
@@ -39,6 +41,15 @@ class Incoming(metaclass=PoolMeta):
WR.run_metadata([wr])
return wr
+
+ def _process_controller(self):
+ WR = Pool().get('automation.document')
+ wr = WR()
+ wr.document = self.id
+ wr.type = 'controller'
+ wr.state = 'draft'
+ WR.save([wr])
+ return wr
# @property
# def supplier_invoice_company(self):
From 62c2080feeb4486ea8cb4324feb5607acdbe6232 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 1 Feb 2026 21:36:39 +0100
Subject: [PATCH 144/618] 01.02.26
---
modules/document_incoming/document.py | 1 +
1 file changed, 1 insertion(+)
diff --git a/modules/document_incoming/document.py b/modules/document_incoming/document.py
index f4a6768..9e68d3a 100755
--- a/modules/document_incoming/document.py
+++ b/modules/document_incoming/document.py
@@ -183,6 +183,7 @@ class Incoming(DeactivableMixin, Workflow, ModelSQL, ModelView):
def from_inbound_email(cls, email_, rule):
message = email_.as_dict()
active = not message.get('attachments')
+ active = True
data = message.get('text', message.get('html'))
if isinstance(data, str):
data = data.encode()
From 7b669a27a850295409a69fa8089b63bf82fc74b6 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 2 Feb 2026 08:42:48 +0100
Subject: [PATCH 145/618] 02.02.26
---
modules/document_incoming/document.py | 30 +++++++++++++++++-----
modules/document_incoming/inbound_email.py | 7 +++--
modules/inbound_email/inbound_email.py | 4 +++
3 files changed, 33 insertions(+), 8 deletions(-)
diff --git a/modules/document_incoming/document.py b/modules/document_incoming/document.py
index 9e68d3a..f2a7dbc 100755
--- a/modules/document_incoming/document.py
+++ b/modules/document_incoming/document.py
@@ -17,6 +17,8 @@ from trytond.transaction import Transaction
from trytond.wizard import Button, StateTransition, StateView, Wizard
from .exceptions import DocumentIncomingSplitError
+import logging
+logger = logging.getLogger(__name__)
if config.getboolean('document_incoming', 'filestore', default=True):
file_id = 'file_id'
@@ -182,11 +184,17 @@ class Incoming(DeactivableMixin, Workflow, ModelSQL, ModelView):
@classmethod
def from_inbound_email(cls, email_, rule):
message = email_.as_dict()
- active = not message.get('attachments')
- active = True
+ attachments = message.get('attachments')
+ active = False
data = message.get('text', message.get('html'))
+ logger.info("DATA_FROM_INBOUND_MAIL:%s",data)
if isinstance(data, str):
data = data.encode()
+ body = message.get('text') or message.get('html') or ''
+ if isinstance(body, str):
+ body_bytes = body.encode('utf-8')
+ else:
+ body_bytes = body
document = cls(
active=active,
name=message.get('subject', 'No Subject'),
@@ -196,13 +204,23 @@ class Incoming(DeactivableMixin, Workflow, ModelSQL, ModelView):
source='inbound_email',
)
children = []
- for attachment in message.get('attachments', []):
+ if attachments:
+ for attachment in attachments:
+ child = cls(
+ name=attachment['filename'] or 'data.bin',
+ company=rule.document_incoming_company,
+ data=attachment['data'],
+ type=rule.document_incoming_type,
+ source='inbound_email')
+ children.append(child)
+ else:
child = cls(
- name=attachment['filename'] or 'data.bin',
+ name='mail.txt',
company=rule.document_incoming_company,
- data=attachment['data'],
+ data=body_bytes,
type=rule.document_incoming_type,
- source='inbound_email')
+ source='inbound_email',
+ )
children.append(child)
document.children = children
document.save()
diff --git a/modules/document_incoming/inbound_email.py b/modules/document_incoming/inbound_email.py
index 9c96175..60ade78 100755
--- a/modules/document_incoming/inbound_email.py
+++ b/modules/document_incoming/inbound_email.py
@@ -4,7 +4,8 @@
from trytond.model import fields
from trytond.pool import Pool, PoolMeta
from trytond.pyson import Eval
-
+import logging
+logger = logging.getLogger(__name__)
class Rule(metaclass=PoolMeta):
__name__ = 'inbound.email.rule'
@@ -64,6 +65,8 @@ class Rule(metaclass=PoolMeta):
return
data = email_.as_dict()
+ body = data.get('text') or data.get('html')
+ logger.info("BODY:%s",body)
attachments = data.get('attachments') or []
# 👉 S'il y avait des pièces jointes, le module standard a déjà créé les documents
@@ -73,7 +76,7 @@ class Rule(metaclass=PoolMeta):
return
# 🚨 Aucune pièce jointe → on crée un document depuis le corps du mail
- body = data.get('text') or data.get('html')
+
if not body:
return # rien à créer
diff --git a/modules/inbound_email/inbound_email.py b/modules/inbound_email/inbound_email.py
index 6600971..ae44e5a 100755
--- a/modules/inbound_email/inbound_email.py
+++ b/modules/inbound_email/inbound_email.py
@@ -17,6 +17,9 @@ from trytond.pyson import Eval
from trytond.transaction import Transaction
from trytond.url import http_host
+import logging
+logger = logging.getLogger(__name__)
+
if config.getboolean('inbound_email', 'filestore', default=True):
file_id = 'data_id'
store_prefix = config.get('inbound_email', 'store_prefix', default=None)
@@ -74,6 +77,7 @@ class Inbox(ModelSQL, ModelView):
assert email_.inbox == self
for rule in self.rules:
if rule.match(email_.as_dict()):
+ logger.info("RULE_MATCHED:%s",rule)
email_.rule = rule
rule.run(email_)
return
From 64806b143b78bcc0b7103c0893a5fdd3898d6aff Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 2 Feb 2026 08:44:09 +0100
Subject: [PATCH 146/618] 02.02.26
---
modules/document_incoming/inbound_email.py | 50 ++--------------------
1 file changed, 4 insertions(+), 46 deletions(-)
diff --git a/modules/document_incoming/inbound_email.py b/modules/document_incoming/inbound_email.py
index 60ade78..4aed774 100755
--- a/modules/document_incoming/inbound_email.py
+++ b/modules/document_incoming/inbound_email.py
@@ -47,53 +47,11 @@ class Rule(metaclass=PoolMeta):
DocumentIncoming = pool.get('document.incoming')
return DocumentIncoming.fields_get(['type'])['type']['selection']
- # def run(self, email_):
- # pool = Pool()
- # DocumentIncoming = pool.get('document.incoming')
- # super().run(email_)
- # if (self.action == 'document.incoming|from_inbound_email'
- # and self.document_incoming_process):
- # document = email_.result
- # DocumentIncoming.process([document], with_children=True)
-
def run(self, email_):
pool = Pool()
DocumentIncoming = pool.get('document.incoming')
super().run(email_)
-
- if self.action != 'document.incoming|from_inbound_email':
- return
-
- data = email_.as_dict()
- body = data.get('text') or data.get('html')
- logger.info("BODY:%s",body)
- attachments = data.get('attachments') or []
-
- # 👉 S'il y avait des pièces jointes, le module standard a déjà créé les documents
- if attachments:
- if self.document_incoming_process and email_.result:
- DocumentIncoming.process([email_.result], with_children=True)
- return
-
- # 🚨 Aucune pièce jointe → on crée un document depuis le corps du mail
-
- if not body:
- return # rien à créer
-
- filename = (data.get('subject') or "email").strip()
- filename = f"{filename}.txt"
-
- document, = DocumentIncoming.create([{
- 'type': self.document_incoming_type,
- 'company': self.document_incoming_company.id
- if self.document_incoming_company else None,
- 'filename': filename,
- 'data': body.encode('utf-8'),
- 'mime_type': 'text/plain',
- 'source': 'email',
- }])
-
- email_.result = document
-
- if self.document_incoming_process:
- DocumentIncoming.process([document], with_children=True)
+ if (self.action == 'document.incoming|from_inbound_email'
+ and self.document_incoming_process):
+ document = email_.result
+ DocumentIncoming.process([document], with_children=True)
\ No newline at end of file
From 7d89418874fad465059d37aa2e8d32e08f6b759f Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 2 Feb 2026 10:42:08 +0100
Subject: [PATCH 147/618] 02.02.26
---
modules/automation/automation.py | 204 ++----------------
modules/automation/cron.py | 3 +-
modules/document_incoming/document.py | 2 +-
modules/document_incoming_wr/document.py | 3 +
modules/purchase_trade/party.py | 7 +
modules/purchase_trade/stock.py | 178 +++++++++++++++
.../purchase_trade/view/party_exec_tree.xml | 1 +
7 files changed, 213 insertions(+), 185 deletions(-)
diff --git a/modules/automation/automation.py b/modules/automation/automation.py
index 8958b7a..9c1618b 100644
--- a/modules/automation/automation.py
+++ b/modules/automation/automation.py
@@ -220,189 +220,27 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
ShipmentWR.save([swr])
doc.notes = (doc.notes or "") + f"Shipment found: {sh[0].number}\n"
logger.info("BL_NUMBER:%s",sh[0].bl_number)
- t = Table('freight_booking_lots')
- cursor = Transaction().connection.cursor()
- query = t.select(
- t.BOOKING_NUMBER,
- t.LOT_NUMBER,
- t.LOT_NBR_BALES,
- t.LOT_GROSS_WEIGHT,
- t.LOT_NET_WEIGHT,
- t.LOT_UOM,
- t.LOT_QUALITY,
- t.CUSTOMER,
- t.SELL_PRICE_CURRENCY,
- t.SELL_PRICE_UNIT,
- t.SELL_PRICE,
- t.SALE_INVOICE,
- t.SELL_INV_AMOUNT,
- t.SALE_INVOICE_DATE,
- t.SELL_PREMIUM,
- t.SALE_CONTRACT_NUMBER,
- t.SALE_DECLARATION_KEY,
- t.SHIPMENT_CHUNK_KEY,
- where=(t.BOOKING_NUMBER == int(sh[0].reference))
- )
- cursor.execute(*query)
- rows = cursor.fetchall()
- logger.info("ROWS:%s",rows)
- if rows:
- sale_line = None
- for row in rows:
- logger.info("ROW:%s",row)
- #Purchase & Sale creation
- LotQt = Pool().get('lot.qt')
- Lot = Pool().get('lot.lot')
- LotAdd = Pool().get('lot.add.line')
- Currency = Pool().get('currency.currency')
- Product = Pool().get('product.product')
- Party = Pool().get('party.party')
- Uom = Pool().get('product.uom')
- Sale = Pool().get('sale.sale')
- SaleLine = Pool().get('sale.line')
- dec_key = str(row[16]).strip()
- chunk_key = str(row[17]).strip()
- doc.notes = (doc.notes or "") + f"Lots found: {chunk_key}\n"
- lot_unit = str(row[5]).strip().lower()
- product = str(row[6]).strip().upper()
- lot_net_weight = Decimal(row[4])
- logger.info("LOT_NET_WEIGHT:%s",lot_net_weight)
- lot_gross_weight = Decimal(row[3])
- lot_bales = Decimal(row[2])
- lot_number = row[1]
- customer = str(row[7]).strip().upper()
- sell_price_currency = str(row[8]).strip().upper()
- sell_price_unit = str(row[9]).strip().lower()
- sell_price = Decimal(row[10])
- premium = Decimal(row[14])
- reference = Decimal(row[15])
- logger.info("DECLARATION_KEY:%s",dec_key)
- declaration = SaleLine.search(['note','=',dec_key])
- if declaration:
- sale_line = declaration[0]
- logger.info("WITH_DEC:%s",sale_line)
- vlot = sale_line.lots[0]
- lqt = LotQt.search([('lot_s','=',vlot.id)])
- if lqt:
- for lq in lqt:
- if lq.lot_p:
- logger.info("VLOT_P:%s",lq.lot_p)
- sale_line.quantity_theorical += round(lot_net_weight,2)
- SaleLine.save([sale_line])
- lq.lot_p.updateVirtualPart(round(lot_net_weight,2),sh[0],lq.lot_s)
- vlot.set_current_quantity(round(lot_net_weight,2),round(lot_gross_weight,2),1)
- Lot.save([vlot])
- else:
- sale = Sale()
- sale_line = SaleLine()
- sale.party = Party.getPartyByName(customer,'CLIENT')
- logger.info("SALE_PARTY:%s",sale.party)
- sale.reference = reference
- sale.company = 6
- if sale.party.addresses:
- sale.invoice_address = sale.party.addresses[0]
- sale.shipment_address = sale.party.addresses[0]
-
- if sell_price_currency == 'USC':
- sale.currency = Currency.get_by_name('USD')
- sale_line.enable_linked_currency = True
- sale_line.linked_currency = 1
- sale_line.linked_unit = Uom.get_by_name(sell_price_unit)
- sale_line.linked_price = round(sell_price,4)
- sale_line.unit_price = sale_line.get_price_linked_currency()
- else:
- sale.currency = Currency.get_by_name(sell_price_currency)
- sale_line.unit_price = round(sell_price,4)
- sale_line.unit = Uom.get_by_name(sell_price_unit)
- sale_line.premium = premium
- Sale.save([sale])
- sale_line.sale = sale.id
- sale_line.quantity = round(lot_net_weight,2)
- sale_line.quantity_theorical = round(lot_net_weight,2)
- sale_line.product = Product.get_by_name('BRAZIL COTTON')
- logger.info("PRODUCT:%s",sale_line.product)
- sale_line.unit = Uom.get_by_name(lot_unit)
- sale_line.price_type = 'priced'
- sale_line.created_by_code = False
- sale_line.note = dec_key
- SaleLine.save([sale_line])
-
- #need to link the virtual part to the shipment
- lqt = LotQt.search([('lot_s','=',sale_line.lots[0])])
- if lqt:
- lqt[0].lot_shipment_in = sh[0]
- LotQt.save(lqt)
- logger.info("SALE_LINKED_TO_SHIPMENT:%s",sh[0])
-
- ContractStart = Pool().get('contracts.start')
- ContractDetail = Pool().get('contract.detail')
- ct = ContractStart()
- d = ContractDetail()
- ct.type = 'Purchase'
- ct.matched = True
- ct.shipment_in = sh[0]
- ct.lot = sale_line.lots[0]
- ct.product = sale_line.product
- ct.unit = sale_line.unit
- d.party = Party.getPartyByName('FAIRCOT')
- if sale_line.enable_linked_currency:
- d.currency_unit = str(sale_line.linked_currency.id) + '_' + str(sale_line.linked_unit.id)
- else:
- d.currency_unit = str(sale.currency.id) + '_' + str(sale_line.unit.id)
- d.quantity = sale_line.quantity
- d.unit = sale_line.unit
- d.price = sale_line.unit_price
- d.price_type = 'priced'
- d.crop = None
- d.tol_min = 0
- d.tol_max = 0
- d.incoterm = None
- d.reference = str(sale.id)
- d.del_period = None
- d.from_del = None
- d.to_del = None
- ct.contracts = [d]
- ContractFactory.create_contracts(
- ct.contracts,
- type_=ct.type,
- ct=ct,
- )
-
- #Lots creation
- vlot = sale_line.lots[0]
- lqt = LotQt.search([('lot_s','=',vlot.id),('lot_p','>',0)])
- if lqt and vlot.lot_quantity > 0:
- lqt = lqt[0]
- l = LotAdd()
- l.lot_qt = lot_bales
- l.lot_unit = Uom.get_by_name('bale')
- l.lot_unit_line = Uom.get_by_name(lot_unit)
- l.lot_quantity = round(lot_net_weight,2)
- l.lot_gross_quantity = round(lot_gross_weight,2)
- l.lot_premium = premium
- l.lot_chunk_key = int(chunk_key)
- logger.info("ADD_LOT:%s",int(chunk_key))
- LotQt.add_physical_lots(lqt,[l])
- if sale_line:
- logger.info("CREATE_FINTRADE_WR_FOR_SL:%s",sale_line)
- weight_total = sum([l.lot_quantity for l in sale_line.lots if l.lot_type == 'physic'])
- factor = weight_total / wr.net_landed_kg if wr.net_landed_kg else 1
- for lot in sale_line.lots:
- if lot.lot_type == 'physic':
- wr_payload = {
- "chunk_key": lot.lot_chunk_key,
- "gross_weight": float(round(lot.lot_gross_quantity / factor,5)),
- "net_weight": float(round(lot.lot_quantity / factor,5)),
- "tare_total": float(round(wr.tare_kg * (lot.lot_quantity / weight_total),5)) ,
- "bags": int(wr.bales * (lot.lot_quantity / weight_total)),
- "surveyor_code": 231,
- "place_key": 0,
- "report_date": 20260127
- }
- logger.info("PAYLOAD:%s",wr_payload)
- data = doc.create_weight_report(wr_payload)
- doc.notes = (doc.notes or "") + f"WR created in Fintrade: {data.get('success')}\n"
- doc.notes = (doc.notes or "") + f"WR key: {data.get('weight_report_key')}\n"
+ sale_line = sh[0]._create_lots_from_fintrade()
+ if sale_line:
+ logger.info("CREATE_FINTRADE_WR_FOR_SL:%s",sale_line)
+ weight_total = sum([l.lot_quantity for l in sale_line.lots if l.lot_type == 'physic'])
+ factor = weight_total / wr.net_landed_kg if wr.net_landed_kg else 1
+ for lot in sale_line.lots:
+ if lot.lot_type == 'physic':
+ wr_payload = {
+ "chunk_key": lot.lot_chunk_key,
+ "gross_weight": float(round(lot.lot_gross_quantity / factor,5)),
+ "net_weight": float(round(lot.lot_quantity / factor,5)),
+ "tare_total": float(round(wr.tare_kg * (lot.lot_quantity / weight_total),5)) ,
+ "bags": int(wr.bales * (lot.lot_quantity / weight_total)),
+ "surveyor_code": 231,
+ "place_key": 0,
+ "report_date": 20260127
+ }
+ logger.info("PAYLOAD:%s",wr_payload)
+ data = doc.create_weight_report(wr_payload)
+ doc.notes = (doc.notes or "") + f"WR created in Fintrade: {data.get('success')}\n"
+ doc.notes = (doc.notes or "") + f"WR key: {data.get('weight_report_key')}\n"
# if cls.rule_set.ocr_required:[]
# cls.run_ocr([doc])
diff --git a/modules/automation/cron.py b/modules/automation/cron.py
index 68989e2..83eee17 100644
--- a/modules/automation/cron.py
+++ b/modules/automation/cron.py
@@ -308,7 +308,8 @@ class AutomationCron(ModelSQL, ModelView):
# Sauvegarder ce shipment uniquement
ShipmentIn.save([shipment])
-
+ shipment._create_lots_from_fintrade()
+ shipment.get_controller()
trans_shipment.commit()
successful_shipments += 1
logger.info(f"✓ Shipment {si_number} créé avec succès")
diff --git a/modules/document_incoming/document.py b/modules/document_incoming/document.py
index f2a7dbc..a1a819f 100755
--- a/modules/document_incoming/document.py
+++ b/modules/document_incoming/document.py
@@ -215,7 +215,7 @@ class Incoming(DeactivableMixin, Workflow, ModelSQL, ModelView):
children.append(child)
else:
child = cls(
- name='mail.txt',
+ name='mail_' + message.get('subject', 'No Subject') + '.txt',
company=rule.document_incoming_company,
data=body_bytes,
type=rule.document_incoming_type,
diff --git a/modules/document_incoming_wr/document.py b/modules/document_incoming_wr/document.py
index 513bf75..d466eec 100644
--- a/modules/document_incoming_wr/document.py
+++ b/modules/document_incoming_wr/document.py
@@ -49,6 +49,9 @@ class Incoming(metaclass=PoolMeta):
wr.type = 'controller'
wr.state = 'draft'
WR.save([wr])
+ WR.run_ocr([wr])
+ WR.run_metadata([wr])
+
return wr
# @property
diff --git a/modules/purchase_trade/party.py b/modules/purchase_trade/party.py
index d612244..8a6b6a1 100755
--- a/modules/purchase_trade/party.py
+++ b/modules/purchase_trade/party.py
@@ -11,6 +11,10 @@ class PartyExecution(ModelSQL,ModelView):
party = fields.Many2One('party.party',"Party")
area = fields.Many2One('country.region',"Area")
percent = fields.Numeric("% targeted")
+ achieved_percent = fields.Function(fields.Numeric("% achieved"),'get_percent')
+
+ def get_percent(self,name):
+ return 2
class Party(metaclass=PoolMeta):
__name__ = 'party.party'
@@ -21,6 +25,9 @@ class Party(metaclass=PoolMeta):
association = fields.Many2One('purchase.association',"Association")
execution = fields.One2Many('party.execution','party',"")
+ def IsAvailableForControl(self,sh):
+ return True
+
@classmethod
def getPartyByName(cls, party, category=None):
party = party.upper()
diff --git a/modules/purchase_trade/stock.py b/modules/purchase_trade/stock.py
index 68d1d59..c6b9f8e 100755
--- a/modules/purchase_trade/stock.py
+++ b/modules/purchase_trade/stock.py
@@ -16,6 +16,7 @@ from itertools import chain, groupby
from operator import itemgetter
import datetime
from collections import defaultdict
+from sql import Table
import logging
logger = logging.getLogger(__name__)
@@ -444,6 +445,183 @@ class ShipmentIn(metaclass=PoolMeta):
else:
return str(self.id)
+ def get_controller(self):
+ ControllerCategory = Pool().get('party.category')
+ PartyCategory = Pool().get('party.party-party.category')
+ cc = ControllerCategory.search(['name','=','CONTROLLER'])
+ if cc:
+ cc = cc[0]
+ controllers = PartyCategory.search(['category','=',cc.id])
+ for c in controllers:
+ if c.party.IsAvailableForControl(self):
+ return c.party
+
+ def _create_lots_from_fintrade(self):
+ t = Table('freight_booking_lots')
+ cursor = Transaction().connection.cursor()
+ query = t.select(
+ t.BOOKING_NUMBER,
+ t.LOT_NUMBER,
+ t.LOT_NBR_BALES,
+ t.LOT_GROSS_WEIGHT,
+ t.LOT_NET_WEIGHT,
+ t.LOT_UOM,
+ t.LOT_QUALITY,
+ t.CUSTOMER,
+ t.SELL_PRICE_CURRENCY,
+ t.SELL_PRICE_UNIT,
+ t.SELL_PRICE,
+ t.SALE_INVOICE,
+ t.SELL_INV_AMOUNT,
+ t.SALE_INVOICE_DATE,
+ t.SELL_PREMIUM,
+ t.SALE_CONTRACT_NUMBER,
+ t.SALE_DECLARATION_KEY,
+ t.SHIPMENT_CHUNK_KEY,
+ where=(t.BOOKING_NUMBER == int(self.reference))
+ )
+ cursor.execute(*query)
+ rows = cursor.fetchall()
+ logger.info("ROWS:%s",rows)
+ if rows:
+ sale_line = None
+ for row in rows:
+ logger.info("ROW:%s",row)
+ #Purchase & Sale creation
+ LotQt = Pool().get('lot.qt')
+ Lot = Pool().get('lot.lot')
+ LotAdd = Pool().get('lot.add.line')
+ Currency = Pool().get('currency.currency')
+ Product = Pool().get('product.product')
+ Party = Pool().get('party.party')
+ Uom = Pool().get('product.uom')
+ Sale = Pool().get('sale.sale')
+ SaleLine = Pool().get('sale.line')
+ dec_key = str(row[16]).strip()
+ chunk_key = str(row[17]).strip()
+ lot_unit = str(row[5]).strip().lower()
+ product = str(row[6]).strip().upper()
+ lot_net_weight = Decimal(row[4])
+ logger.info("LOT_NET_WEIGHT:%s",lot_net_weight)
+ lot_gross_weight = Decimal(row[3])
+ lot_bales = Decimal(row[2])
+ lot_number = row[1]
+ customer = str(row[7]).strip().upper()
+ sell_price_currency = str(row[8]).strip().upper()
+ sell_price_unit = str(row[9]).strip().lower()
+ sell_price = Decimal(row[10])
+ premium = Decimal(row[14])
+ reference = Decimal(row[15])
+ logger.info("DECLARATION_KEY:%s",dec_key)
+ declaration = SaleLine.search(['note','=',dec_key])
+ if declaration:
+ sale_line = declaration[0]
+ logger.info("WITH_DEC:%s",sale_line)
+ vlot = sale_line.lots[0]
+ lqt = LotQt.search([('lot_s','=',vlot.id)])
+ if lqt:
+ for lq in lqt:
+ if lq.lot_p:
+ logger.info("VLOT_P:%s",lq.lot_p)
+ sale_line.quantity_theorical += round(lot_net_weight,2)
+ SaleLine.save([sale_line])
+ lq.lot_p.updateVirtualPart(round(lot_net_weight,2),self,lq.lot_s)
+ vlot.set_current_quantity(round(lot_net_weight,2),round(lot_gross_weight,2),1)
+ Lot.save([vlot])
+ else:
+ sale = Sale()
+ sale_line = SaleLine()
+ sale.party = Party.getPartyByName(customer,'CLIENT')
+ logger.info("SALE_PARTY:%s",sale.party)
+ sale.reference = reference
+ sale.company = 6
+ if sale.party.addresses:
+ sale.invoice_address = sale.party.addresses[0]
+ sale.shipment_address = sale.party.addresses[0]
+
+ if sell_price_currency == 'USC':
+ sale.currency = Currency.get_by_name('USD')
+ sale_line.enable_linked_currency = True
+ sale_line.linked_currency = 1
+ sale_line.linked_unit = Uom.get_by_name(sell_price_unit)
+ sale_line.linked_price = round(sell_price,4)
+ sale_line.unit_price = sale_line.get_price_linked_currency()
+ else:
+ sale.currency = Currency.get_by_name(sell_price_currency)
+ sale_line.unit_price = round(sell_price,4)
+ sale_line.unit = Uom.get_by_name(sell_price_unit)
+ sale_line.premium = premium
+ Sale.save([sale])
+ sale_line.sale = sale.id
+ sale_line.quantity = round(lot_net_weight,2)
+ sale_line.quantity_theorical = round(lot_net_weight,2)
+ sale_line.product = Product.get_by_name('BRAZIL COTTON')
+ logger.info("PRODUCT:%s",sale_line.product)
+ sale_line.unit = Uom.get_by_name(lot_unit)
+ sale_line.price_type = 'priced'
+ sale_line.created_by_code = False
+ sale_line.note = dec_key
+ SaleLine.save([sale_line])
+
+ #need to link the virtual part to the shipment
+ lqt = LotQt.search([('lot_s','=',sale_line.lots[0])])
+ if lqt:
+ lqt[0].lot_shipment_in = self
+ LotQt.save(lqt)
+ logger.info("SALE_LINKED_TO_SHIPMENT:%s",self)
+
+ ContractStart = Pool().get('contracts.start')
+ ContractDetail = Pool().get('contract.detail')
+ ct = ContractStart()
+ d = ContractDetail()
+ ct.type = 'Purchase'
+ ct.matched = True
+ ct.shipment_in = self
+ ct.lot = sale_line.lots[0]
+ ct.product = sale_line.product
+ ct.unit = sale_line.unit
+ d.party = Party.getPartyByName('FAIRCOT')
+ if sale_line.enable_linked_currency:
+ d.currency_unit = str(sale_line.linked_currency.id) + '_' + str(sale_line.linked_unit.id)
+ else:
+ d.currency_unit = str(sale.currency.id) + '_' + str(sale_line.unit.id)
+ d.quantity = sale_line.quantity
+ d.unit = sale_line.unit
+ d.price = sale_line.unit_price
+ d.price_type = 'priced'
+ d.crop = None
+ d.tol_min = 0
+ d.tol_max = 0
+ d.incoterm = None
+ d.reference = str(sale.id)
+ d.del_period = None
+ d.from_del = None
+ d.to_del = None
+ ct.contracts = [d]
+ ContractFactory.create_contracts(
+ ct.contracts,
+ type_=ct.type,
+ ct=ct,
+ )
+
+ #Lots creation
+ vlot = sale_line.lots[0]
+ lqt = LotQt.search([('lot_s','=',vlot.id),('lot_p','>',0)])
+ if lqt and vlot.lot_quantity > 0:
+ lqt = lqt[0]
+ l = LotAdd()
+ l.lot_qt = lot_bales
+ l.lot_unit = Uom.get_by_name('bale')
+ l.lot_unit_line = Uom.get_by_name(lot_unit)
+ l.lot_quantity = round(lot_net_weight,2)
+ l.lot_gross_quantity = round(lot_gross_weight,2)
+ l.lot_premium = premium
+ l.lot_chunk_key = int(chunk_key)
+ logger.info("ADD_LOT:%s",int(chunk_key))
+ LotQt.add_physical_lots(lqt,[l])
+
+ return sale_line
+
@classmethod
@ModelView.button
def compute(cls, shipments):
diff --git a/modules/purchase_trade/view/party_exec_tree.xml b/modules/purchase_trade/view/party_exec_tree.xml
index 96981a3..86531ff 100644
--- a/modules/purchase_trade/view/party_exec_tree.xml
+++ b/modules/purchase_trade/view/party_exec_tree.xml
@@ -1,4 +1,5 @@
+
\ No newline at end of file
From 747c2e4a0edb2ebf1132fb7f8adbc2b4dffb03d7 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 2 Feb 2026 12:08:46 +0100
Subject: [PATCH 148/618] 02.02.26
---
modules/automation/automation.py | 1 -
modules/purchase_trade/lot.py | 2 ++
modules/purchase_trade/stock.py | 5 +++++
modules/purchase_trade/view/contract_detail_tree.xml | 2 ++
4 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/modules/automation/automation.py b/modules/automation/automation.py
index 9c1618b..7fd2bed 100644
--- a/modules/automation/automation.py
+++ b/modules/automation/automation.py
@@ -9,7 +9,6 @@ import requests
import io
import logging
import json
-from trytond.modules.purchase_trade.service import ContractFactory
logger = logging.getLogger(__name__)
diff --git a/modules/purchase_trade/lot.py b/modules/purchase_trade/lot.py
index 7832209..5e3bc5e 100755
--- a/modules/purchase_trade/lot.py
+++ b/modules/purchase_trade/lot.py
@@ -3337,6 +3337,8 @@ class ContractDetail(ModelView):
], 'Price type')
currency_unit = fields.Selection('get_currency_unit',string="Curr/Unit")
reference = fields.Char("Reference")
+ from_location = fields.Many2One('stock.location',"From location")
+ to_location = fields.Many2One('stock.location',"To location")
@classmethod
def default_category(cls):
diff --git a/modules/purchase_trade/stock.py b/modules/purchase_trade/stock.py
index c6b9f8e..5acba90 100755
--- a/modules/purchase_trade/stock.py
+++ b/modules/purchase_trade/stock.py
@@ -17,6 +17,7 @@ from operator import itemgetter
import datetime
from collections import defaultdict
from sql import Table
+from trytond.modules.purchase_trade.service import ContractFactory
import logging
logger = logging.getLogger(__name__)
@@ -534,6 +535,8 @@ class ShipmentIn(metaclass=PoolMeta):
sale.party = Party.getPartyByName(customer,'CLIENT')
logger.info("SALE_PARTY:%s",sale.party)
sale.reference = reference
+ sale.from_location = self.from_location
+ sale.to_location = self.to_location
sale.company = 6
if sale.party.addresses:
sale.invoice_address = sale.party.addresses[0]
@@ -594,6 +597,8 @@ class ShipmentIn(metaclass=PoolMeta):
d.tol_max = 0
d.incoterm = None
d.reference = str(sale.id)
+ d.from_location = sale.from_location
+ d.to_location = sale.to_location
d.del_period = None
d.from_del = None
d.to_del = None
diff --git a/modules/purchase_trade/view/contract_detail_tree.xml b/modules/purchase_trade/view/contract_detail_tree.xml
index 547e0ce..af70bb1 100755
--- a/modules/purchase_trade/view/contract_detail_tree.xml
+++ b/modules/purchase_trade/view/contract_detail_tree.xml
@@ -14,5 +14,7 @@
+
+
From 703c7e46faf49a32524bb2b413b11d577cb5cc47 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 2 Feb 2026 12:26:58 +0100
Subject: [PATCH 149/618] 02.02.26
---
modules/purchase/purchase.py | 12 +++++++-----
1 file changed, 7 insertions(+), 5 deletions(-)
diff --git a/modules/purchase/purchase.py b/modules/purchase/purchase.py
index 9ba426a..96fe5af 100755
--- a/modules/purchase/purchase.py
+++ b/modules/purchase/purchase.py
@@ -2058,11 +2058,13 @@ class Line(sequence_ordered(), ModelSQL, ModelView):
to_location = self.purchase.to_location
move.from_location = from_location
-
- if to_location.type != 'customer':
- move.to_location = Location.get_transit_id()
- else:
- move.to_location = to_location
+ logger.info("FROM_LOCATION:%s",self.purchase.from_location)
+ logger.info("TO_LOCATION:%s",self.purchase.to_location)
+ if to_location:
+ if to_location.type != 'customer':
+ move.to_location = Location.get_transit_id()
+ else:
+ move.to_location = to_location
unit_price = l.get_lot_price()
# if l.invoice_line_prov != None :
From 86ac172cfd571c0c2c30838980bee405f34e6517 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 2 Feb 2026 12:33:54 +0100
Subject: [PATCH 150/618] 02.02.26
---
modules/purchase_trade/service.py | 2 ++
1 file changed, 2 insertions(+)
diff --git a/modules/purchase_trade/service.py b/modules/purchase_trade/service.py
index c58867f..6bfa9e3 100644
--- a/modules/purchase_trade/service.py
+++ b/modules/purchase_trade/service.py
@@ -54,6 +54,8 @@ class ContractFactory:
contract.tol_min = c.tol_min
contract.tol_max = c.tol_max
contract.reference = c.reference
+ contract.from_location = c.from_location
+ contract.to_location = c.to_location
contract.company = 6
if type_ == 'Purchase':
contract.purchase_date = Date.today()
From d73816285e985d87d85b3108a1e981030fe286e6 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 2 Feb 2026 12:50:57 +0100
Subject: [PATCH 151/618] 02.02.26
---
modules/automation/cron.py | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/modules/automation/cron.py b/modules/automation/cron.py
index 83eee17..04c64b4 100644
--- a/modules/automation/cron.py
+++ b/modules/automation/cron.py
@@ -309,7 +309,8 @@ class AutomationCron(ModelSQL, ModelView):
# Sauvegarder ce shipment uniquement
ShipmentIn.save([shipment])
shipment._create_lots_from_fintrade()
- shipment.get_controller()
+ shipment.controller = shipment.get_controller()
+ ShipmentIn.save([shipment])
trans_shipment.commit()
successful_shipments += 1
logger.info(f"✓ Shipment {si_number} créé avec succès")
From 318f9e5564e2a50446a8f0625a43388c9875d455 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 2 Feb 2026 15:16:37 +0100
Subject: [PATCH 152/618] 02.02.26
---
modules/purchase_trade/stock.py | 49 ++++++++++++++++++-
.../purchase_trade/view/shipment_in_form.xml | 6 ++-
2 files changed, 52 insertions(+), 3 deletions(-)
diff --git a/modules/purchase_trade/stock.py b/modules/purchase_trade/stock.py
index 5acba90..8702198 100755
--- a/modules/purchase_trade/stock.py
+++ b/modules/purchase_trade/stock.py
@@ -18,8 +18,12 @@ import datetime
from collections import defaultdict
from sql import Table
from trytond.modules.purchase_trade.service import ContractFactory
-
+import requests
+import io
+import base64
import logging
+import json
+
logger = logging.getLogger(__name__)
class Location(metaclass=PoolMeta):
@@ -428,12 +432,14 @@ class ShipmentIn(metaclass=PoolMeta):
add_bl = fields.Boolean("Add BL")
add_invoice = fields.Boolean("Add invoice")
returned_id = fields.Char("Returned ID")
+ result = fields.Char("Result",readonly=True)
@classmethod
def __setup__(cls):
super().__setup__()
cls._buttons.update({
'compute': {},
+ 'send': {},
})
def get_vessel_type(self,name=None):
@@ -627,6 +633,47 @@ class ShipmentIn(metaclass=PoolMeta):
return sale_line
+ @classmethod
+ @ModelView.button
+ def send(cls, shipments):
+ Date = Pool().get('ir.date')
+ for sh in shipments:
+ sh.result = "Email not sent"
+ if sh.controller:
+ Contact = Pool().get('party.contact.mechanism')
+ contact = Contact.search(['party','=',sh.controller.id])
+ if contact:
+ # f = open("/tmp/instruction.pdf", "rb")
+ # encoded = base64.b64encode(f.read()).decode()
+ payload = {
+ "to": [contact[0].value],
+ "subject": "Request for control",
+ "body": sh.instructions,
+ # "attachments": [
+ # {
+ # "filename": "instruction.pdf",
+ # "content": encoded,
+ # "content_type": "application/pdf"
+ # }
+ # ],
+ "meta": {
+ "shipment": sh.bl_number,
+ "controller": sh.controller.id
+ }
+ }
+
+ response = requests.post(
+ "http://automation-service:8006/mail",
+ json=payload,
+ timeout=10
+ )
+
+ response.raise_for_status()
+ data = response.json()
+ logger.info("SEND_FROM_SHIPMENT:%s",data)
+ sh.result = "Email sent on " + Date.today()
+ sh.save()
+
@classmethod
@ModelView.button
def compute(cls, shipments):
diff --git a/modules/purchase_trade/view/shipment_in_form.xml b/modules/purchase_trade/view/shipment_in_form.xml
index 0160134..c210ba8 100755
--- a/modules/purchase_trade/view/shipment_in_form.xml
+++ b/modules/purchase_trade/view/shipment_in_form.xml
@@ -113,8 +113,10 @@ this repository contains the full copyright notices and license terms. -->
-
-
+
+
+
+
From 70a0a417873f9af8c973816518eec264b344c182 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 2 Feb 2026 15:26:05 +0100
Subject: [PATCH 153/618] 02.02.26
---
modules/purchase_trade/stock.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/purchase_trade/stock.py b/modules/purchase_trade/stock.py
index 8702198..c5d4f6b 100755
--- a/modules/purchase_trade/stock.py
+++ b/modules/purchase_trade/stock.py
@@ -640,7 +640,7 @@ class ShipmentIn(metaclass=PoolMeta):
for sh in shipments:
sh.result = "Email not sent"
if sh.controller:
- Contact = Pool().get('party.contact.mechanism')
+ Contact = Pool().get('party.contact_mechanism')
contact = Contact.search(['party','=',sh.controller.id])
if contact:
# f = open("/tmp/instruction.pdf", "rb")
From 38a903469c5f1f92538e88c61352c8aadc0832ef Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 2 Feb 2026 15:59:20 +0100
Subject: [PATCH 154/618] 02.02.26
---
modules/automation/cron.py | 1 +
modules/purchase_trade/stock.py | 23 ++++++++++++++++++-
.../purchase_trade/view/shipment_in_form.xml | 13 +++++------
3 files changed, 29 insertions(+), 8 deletions(-)
diff --git a/modules/automation/cron.py b/modules/automation/cron.py
index 04c64b4..0f321bc 100644
--- a/modules/automation/cron.py
+++ b/modules/automation/cron.py
@@ -310,6 +310,7 @@ class AutomationCron(ModelSQL, ModelView):
ShipmentIn.save([shipment])
shipment._create_lots_from_fintrade()
shipment.controller = shipment.get_controller()
+ shipment.instructions = shipment.get_instructions()
ShipmentIn.save([shipment])
trans_shipment.commit()
successful_shipments += 1
diff --git a/modules/purchase_trade/stock.py b/modules/purchase_trade/stock.py
index c5d4f6b..b7bac3f 100755
--- a/modules/purchase_trade/stock.py
+++ b/modules/purchase_trade/stock.py
@@ -463,6 +463,26 @@ class ShipmentIn(metaclass=PoolMeta):
if c.party.IsAvailableForControl(self):
return c.party
+ def get_instructions(self):
+ lines = [
+ "Hi,",
+ "",
+ "Please find details below for the requested control",
+ f"BL number: {self.bl_number}",
+ ""
+ ]
+
+ if self.incoming_moves:
+ for m in self.incoming_moves:
+ if m.lot:
+ lines.append(
+ f"Lot nb: {m.lot.lot_number} | "
+ f"Net Qt: {m.lot.get_current_quantity()} {m.lot.lot_unit.symbol} | "
+ f"Gross Qt: {m.lot.get_current_gross_quantity()} {m.lot.lot_unit.symbol}"
+ )
+
+ return "\n".join(lines)
+
def _create_lots_from_fintrade(self):
t = Table('freight_booking_lots')
cursor = Transaction().connection.cursor()
@@ -671,7 +691,8 @@ class ShipmentIn(metaclass=PoolMeta):
response.raise_for_status()
data = response.json()
logger.info("SEND_FROM_SHIPMENT:%s",data)
- sh.result = "Email sent on " + Date.today()
+ now = datetime.datetime.now()
+ sh.result = f"Email sent on {now.strftime('%d/%m/%Y %H:%M')}"
sh.save()
@classmethod
diff --git a/modules/purchase_trade/view/shipment_in_form.xml b/modules/purchase_trade/view/shipment_in_form.xml
index c210ba8..4791ecf 100755
--- a/modules/purchase_trade/view/shipment_in_form.xml
+++ b/modules/purchase_trade/view/shipment_in_form.xml
@@ -113,19 +113,18 @@ this repository contains the full copyright notices and license terms. -->
-
+
-
-
-
-
-
-
+
+
+
+
+
From 40025169d4d8a20fc112d4044ff09565e91d8c66 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 2 Feb 2026 16:04:07 +0100
Subject: [PATCH 155/618] 02.02.26
---
modules/purchase_trade/valuation.py | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/modules/purchase_trade/valuation.py b/modules/purchase_trade/valuation.py
index faea6ec..c5e7be5 100644
--- a/modules/purchase_trade/valuation.py
+++ b/modules/purchase_trade/valuation.py
@@ -331,7 +331,8 @@ class ValuationBase(ModelSQL):
Date = Pool().get('ir.date')
Valuation = Pool().get('valuation.valuation')
ValuationLine = Pool().get('valuation.valuation.line')
-
+ if not line:
+ pass
Valuation.delete(Valuation.search([
('line', '=', line.id),
('date', '=', Date.today()),
From 10aaff4cc892174781a8e037e103173a589035c4 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 2 Feb 2026 16:08:35 +0100
Subject: [PATCH 156/618] 02.02.26
---
modules/purchase_trade/stock.py | 2 +-
modules/purchase_trade/valuation.py | 2 --
2 files changed, 1 insertion(+), 3 deletions(-)
diff --git a/modules/purchase_trade/stock.py b/modules/purchase_trade/stock.py
index b7bac3f..8372fd7 100755
--- a/modules/purchase_trade/stock.py
+++ b/modules/purchase_trade/stock.py
@@ -856,7 +856,7 @@ class ShipmentIn(metaclass=PoolMeta):
#update line valuation
Pnl = Pool().get('valuation.valuation')
for lot in lots:
- Pnl.generate(lot.line)
+ Pnl.generate(lot.line if lot.line else lot.sale_line)
if sh.sof:
for sof in sh.sof:
if sof.chart:
diff --git a/modules/purchase_trade/valuation.py b/modules/purchase_trade/valuation.py
index c5e7be5..35f4184 100644
--- a/modules/purchase_trade/valuation.py
+++ b/modules/purchase_trade/valuation.py
@@ -331,8 +331,6 @@ class ValuationBase(ModelSQL):
Date = Pool().get('ir.date')
Valuation = Pool().get('valuation.valuation')
ValuationLine = Pool().get('valuation.valuation.line')
- if not line:
- pass
Valuation.delete(Valuation.search([
('line', '=', line.id),
('date', '=', Date.today()),
From 5b32a402a6c37cdc042b3eea40b527c4ef1e3e8f Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 2 Feb 2026 16:23:27 +0100
Subject: [PATCH 157/618] 02.02.26
---
modules/purchase_trade/lot.py | 2 +-
modules/purchase_trade/sale.py | 2 +-
modules/purchase_trade/stock.py | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/modules/purchase_trade/lot.py b/modules/purchase_trade/lot.py
index 5e3bc5e..98c27bb 100755
--- a/modules/purchase_trade/lot.py
+++ b/modules/purchase_trade/lot.py
@@ -48,7 +48,7 @@ class LotMove(ModelSQL,ModelView):
class Lot(metaclass=PoolMeta):
__name__ = 'lot.lot'
- line = fields.Many2One('purchase.line',"Purchase")
+ line = fields.Many2One('purchase.line',"Purchase",ondelete='CASCADE')
move = fields.Function(fields.Many2One('stock.move',"Move"),'get_current_move')
lot_move = fields.One2Many('lot.move','lot',"Move")
invoice_line = fields.Many2One('account.invoice.line',"Purch.Invoice line")
diff --git a/modules/purchase_trade/sale.py b/modules/purchase_trade/sale.py
index 9926d2c..b616122 100755
--- a/modules/purchase_trade/sale.py
+++ b/modules/purchase_trade/sale.py
@@ -172,7 +172,7 @@ class Summary(ModelSQL,ModelView):
class Lot(metaclass=PoolMeta):
__name__ = 'lot.lot'
- sale_line = fields.Many2One('sale.line',"Sale")
+ sale_line = fields.Many2One('sale.line',"Sale",ondelete='CASCADE')
lot_quantity_sale = fields.Function(fields.Numeric("Net weight",digits='lot_unit'),'get_qt')
lot_gross_quantity_sale = fields.Function(fields.Numeric("Gross weight",digits='lot_unit'),'get_gross_qt')
diff --git a/modules/purchase_trade/stock.py b/modules/purchase_trade/stock.py
index 8372fd7..28e6d08 100755
--- a/modules/purchase_trade/stock.py
+++ b/modules/purchase_trade/stock.py
@@ -476,7 +476,7 @@ class ShipmentIn(metaclass=PoolMeta):
for m in self.incoming_moves:
if m.lot:
lines.append(
- f"Lot nb: {m.lot.lot_number} | "
+ f"Lot nb: {m.lot.lot_name} | "
f"Net Qt: {m.lot.get_current_quantity()} {m.lot.lot_unit.symbol} | "
f"Gross Qt: {m.lot.get_current_gross_quantity()} {m.lot.lot_unit.symbol}"
)
From 2ba836c28481b5661fc42d68f433688589d94026 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 2 Feb 2026 16:42:57 +0100
Subject: [PATCH 158/618] 02.02.26
---
modules/automation/automation.py | 37 ++++++++++---------
modules/document_incoming_wr/document.py | 2 +-
.../purchase_trade/view/shipment_in_form.xml | 12 +++---
3 files changed, 28 insertions(+), 23 deletions(-)
diff --git a/modules/automation/automation.py b/modules/automation/automation.py
index 7fd2bed..272798e 100644
--- a/modules/automation/automation.py
+++ b/modules/automation/automation.py
@@ -62,25 +62,28 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
def run_ocr(cls, docs):
for doc in docs:
try:
- # Décoder le fichier depuis le champ Binary
- file_data = doc.document.data or b""
- logger.info(f"File size: {len(file_data)} bytes")
- logger.info(f"First 20 bytes: {file_data[:20]}")
- logger.info(f"Last 20 bytes: {file_data[-20:]}")
+ if doc.type == 'weight_report':
+ # Décoder le fichier depuis le champ Binary
+ file_data = doc.document.data or b""
+ logger.info(f"File size: {len(file_data)} bytes")
+ logger.info(f"First 20 bytes: {file_data[:20]}")
+ logger.info(f"Last 20 bytes: {file_data[-20:]}")
- file_name = doc.document.name or "document"
+ file_name = doc.document.name or "document"
- # Envoyer le fichier au service OCR
- response = requests.post(
- "http://automation-service:8006/ocr",
- files={"file": (file_name, io.BytesIO(file_data))}
- )
- response.raise_for_status()
- data = response.json()
- logger.info("RUN_OCR_RESPONSE:%s",data)
- doc.ocr_text = data.get("ocr_text", "")
- doc.state = "ocr_done"
- doc.notes = (doc.notes or "") + "OCR done\n"
+ # Envoyer le fichier au service OCR
+ response = requests.post(
+ "http://automation-service:8006/ocr",
+ files={"file": (file_name, io.BytesIO(file_data))}
+ )
+ response.raise_for_status()
+ data = response.json()
+ logger.info("RUN_OCR_RESPONSE:%s",data)
+ doc.ocr_text = data.get("ocr_text", "")
+ doc.state = "ocr_done"
+ doc.notes = (doc.notes or "") + "OCR done\n"
+ else:
+ doc.ocr_text = (file_data or b'').decode('utf-8', errors='replace')
except Exception as e:
doc.state = "error"
diff --git a/modules/document_incoming_wr/document.py b/modules/document_incoming_wr/document.py
index d466eec..5ede120 100644
--- a/modules/document_incoming_wr/document.py
+++ b/modules/document_incoming_wr/document.py
@@ -50,7 +50,7 @@ class Incoming(metaclass=PoolMeta):
wr.state = 'draft'
WR.save([wr])
WR.run_ocr([wr])
- WR.run_metadata([wr])
+ # WR.run_metadata([wr])
return wr
diff --git a/modules/purchase_trade/view/shipment_in_form.xml b/modules/purchase_trade/view/shipment_in_form.xml
index 4791ecf..897381c 100755
--- a/modules/purchase_trade/view/shipment_in_form.xml
+++ b/modules/purchase_trade/view/shipment_in_form.xml
@@ -115,15 +115,17 @@ this repository contains the full copyright notices and license terms. -->
-
-
+
+
+
+
+
+
-
-
-
+
From 6c570acfe6ba08ee6a7016d7ba2bb32712344d27 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 2 Feb 2026 16:49:23 +0100
Subject: [PATCH 159/618] 02.02.26
---
modules/automation/automation.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/automation/automation.py b/modules/automation/automation.py
index 272798e..b562550 100644
--- a/modules/automation/automation.py
+++ b/modules/automation/automation.py
@@ -83,7 +83,7 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
doc.state = "ocr_done"
doc.notes = (doc.notes or "") + "OCR done\n"
else:
- doc.ocr_text = (file_data or b'').decode('utf-8', errors='replace')
+ doc.ocr_text = (doc.document.data or b"").decode('utf-8', errors='replace')
except Exception as e:
doc.state = "error"
From f7d6ed00fd392063619d68e156ff9d680fce361a Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 2 Feb 2026 17:02:14 +0100
Subject: [PATCH 160/618] 02.02.26
---
modules/automation/automation.py | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/modules/automation/automation.py b/modules/automation/automation.py
index b562550..a7da6bc 100644
--- a/modules/automation/automation.py
+++ b/modules/automation/automation.py
@@ -9,6 +9,7 @@ import requests
import io
import logging
import json
+import re
logger = logging.getLogger(__name__)
@@ -84,6 +85,18 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
doc.notes = (doc.notes or "") + "OCR done\n"
else:
doc.ocr_text = (doc.document.data or b"").decode('utf-8', errors='replace')
+ match = re.search(r"\bID\s*:\s*(\d+)", doc.ocr_text)
+ if match:
+ request_id = match.group(1)
+ match = re.search(r"\bBL\s*number\s*:\s*([A-Za-z0-9_-]+)", doc.ocr_text, re.IGNORECASE)
+ if match:
+ bl_number = match.group(1)
+ ShipmentIn = Pool().get('stock.shipment.in')
+ sh = ShipmentIn.search(['bl_number','=',bl_number])
+ if sh:
+ sh[0].returned_id = request_id
+ ShipmentIn.save(sh)
+ doc.notes = (doc.notes or "") + "Id returned: " + request_id
except Exception as e:
doc.state = "error"
From 313d574a08562b33138a74ce6ddad6ab7d09c508 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 2 Feb 2026 17:05:27 +0100
Subject: [PATCH 161/618] 02.02.26
---
modules/purchase_trade/view/shipment_in_form.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/purchase_trade/view/shipment_in_form.xml b/modules/purchase_trade/view/shipment_in_form.xml
index 897381c..1538031 100755
--- a/modules/purchase_trade/view/shipment_in_form.xml
+++ b/modules/purchase_trade/view/shipment_in_form.xml
@@ -125,7 +125,7 @@ this repository contains the full copyright notices and license terms. -->
-
+
From 8fddb599ef17e95cde5700c8604efaf71375382a Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 2 Feb 2026 17:10:30 +0100
Subject: [PATCH 162/618] 02.02.26
---
modules/purchase_trade/view/shipment_in_form.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/purchase_trade/view/shipment_in_form.xml b/modules/purchase_trade/view/shipment_in_form.xml
index 1538031..1e0e20f 100755
--- a/modules/purchase_trade/view/shipment_in_form.xml
+++ b/modules/purchase_trade/view/shipment_in_form.xml
@@ -125,7 +125,7 @@ this repository contains the full copyright notices and license terms. -->
-
+
From 7f7b1039450ec8104c44c58a2dd7f16921d95266 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 2 Feb 2026 17:17:49 +0100
Subject: [PATCH 163/618] 02.02.26
---
modules/purchase_trade/view/shipment_in_form.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/purchase_trade/view/shipment_in_form.xml b/modules/purchase_trade/view/shipment_in_form.xml
index 1e0e20f..8c2a3d9 100755
--- a/modules/purchase_trade/view/shipment_in_form.xml
+++ b/modules/purchase_trade/view/shipment_in_form.xml
@@ -125,7 +125,7 @@ this repository contains the full copyright notices and license terms. -->
-
+
From a4f0a0846924f91bc215131f6fd6e84c8723c2fe Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 2 Feb 2026 17:27:14 +0100
Subject: [PATCH 164/618] 02.02.26
---
modules/automation/cron.py | 2 +-
modules/purchase_trade/stock.py | 53 ++++++++++++++-----
.../purchase_trade/view/shipment_in_form.xml | 2 +-
3 files changed, 43 insertions(+), 14 deletions(-)
diff --git a/modules/automation/cron.py b/modules/automation/cron.py
index 0f321bc..1c5c491 100644
--- a/modules/automation/cron.py
+++ b/modules/automation/cron.py
@@ -310,7 +310,7 @@ class AutomationCron(ModelSQL, ModelView):
ShipmentIn.save([shipment])
shipment._create_lots_from_fintrade()
shipment.controller = shipment.get_controller()
- shipment.instructions = shipment.get_instructions()
+ shipment.instructions = shipment.get_instructions_html()
ShipmentIn.save([shipment])
trans_shipment.commit()
successful_shipments += 1
diff --git a/modules/purchase_trade/stock.py b/modules/purchase_trade/stock.py
index 28e6d08..f379cca 100755
--- a/modules/purchase_trade/stock.py
+++ b/modules/purchase_trade/stock.py
@@ -23,6 +23,9 @@ import io
import base64
import logging
import json
+import re
+import html
+
logger = logging.getLogger(__name__)
@@ -462,26 +465,46 @@ class ShipmentIn(metaclass=PoolMeta):
for c in controllers:
if c.party.IsAvailableForControl(self):
return c.party
-
- def get_instructions(self):
+
+ def get_instructions_html(self):
lines = [
- "Hi,",
- "",
- "Please find details below for the requested control",
- f"BL number: {self.bl_number}",
- ""
+ "Hi,
",
+ "Please find details below for the requested control
",
+ f"BL number: {self.bl_number}
",
]
if self.incoming_moves:
for m in self.incoming_moves:
if m.lot:
lines.append(
- f"Lot nb: {m.lot.lot_name} | "
- f"Net Qt: {m.lot.get_current_quantity()} {m.lot.lot_unit.symbol} | "
- f"Gross Qt: {m.lot.get_current_gross_quantity()} {m.lot.lot_unit.symbol}"
+ ""
+ f"Lot nb: {m.lot.lot_name} | "
+ f"Net Qt: {m.lot.get_current_quantity()} {m.lot.lot_unit.symbol} | "
+ f"Gross Qt: {m.lot.get_current_gross_quantity()} {m.lot.lot_unit.symbol}"
+ "
"
)
- return "\n".join(lines)
+ return "".join(lines)
+
+ # def get_instructions(self):
+ # lines = [
+ # "Hi,",
+ # "",
+ # "Please find details below for the requested control",
+ # f"BL number: {self.bl_number}",
+ # ""
+ # ]
+
+ # if self.incoming_moves:
+ # for m in self.incoming_moves:
+ # if m.lot:
+ # lines.append(
+ # f"Lot nb: {m.lot.lot_name} | "
+ # f"Net Qt: {m.lot.get_current_quantity()} {m.lot.lot_unit.symbol} | "
+ # f"Gross Qt: {m.lot.get_current_gross_quantity()} {m.lot.lot_unit.symbol}"
+ # )
+
+ # return "\n".join(lines)
def _create_lots_from_fintrade(self):
t = Table('freight_booking_lots')
@@ -653,6 +676,12 @@ class ShipmentIn(metaclass=PoolMeta):
return sale_line
+ def html_to_text(self,html_content):
+ text = re.sub(r" ", "\n", html_content, flags=re.IGNORECASE)
+ text = re.sub(r"
", "\n\n", text, flags=re.IGNORECASE)
+ text = re.sub(r"<[^>]+>", "", text)
+ return html.unescape(text).strip()
+
@classmethod
@ModelView.button
def send(cls, shipments):
@@ -668,7 +697,7 @@ class ShipmentIn(metaclass=PoolMeta):
payload = {
"to": [contact[0].value],
"subject": "Request for control",
- "body": sh.instructions,
+ "body": sh.html_to_text(sh.instructions),
# "attachments": [
# {
# "filename": "instruction.pdf",
diff --git a/modules/purchase_trade/view/shipment_in_form.xml b/modules/purchase_trade/view/shipment_in_form.xml
index 8c2a3d9..1e0e20f 100755
--- a/modules/purchase_trade/view/shipment_in_form.xml
+++ b/modules/purchase_trade/view/shipment_in_form.xml
@@ -125,7 +125,7 @@ this repository contains the full copyright notices and license terms. -->
-
+
From 33eeabf5e12b678e0cf39b5c414e27c1912918d5 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 2 Feb 2026 17:33:40 +0100
Subject: [PATCH 165/618] 02.02.26
---
modules/purchase_trade/stock.py | 4 ++--
modules/purchase_trade/view/shipment_in_form.xml | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/modules/purchase_trade/stock.py b/modules/purchase_trade/stock.py
index f379cca..6d70b8d 100755
--- a/modules/purchase_trade/stock.py
+++ b/modules/purchase_trade/stock.py
@@ -479,8 +479,8 @@ class ShipmentIn(metaclass=PoolMeta):
lines.append(
""
f"Lot nb: {m.lot.lot_name} | "
- f"Net Qt: {m.lot.get_current_quantity()} {m.lot.lot_unit.symbol} | "
- f"Gross Qt: {m.lot.get_current_gross_quantity()} {m.lot.lot_unit.symbol}"
+ f"Net Qt: {m.lot.get_current_quantity()} {m.lot.lot_unit_line.symbol} | "
+ f"Gross Qt: {m.lot.get_current_gross_quantity()} {m.lot.lot_unit_line.symbol}"
"
"
)
diff --git a/modules/purchase_trade/view/shipment_in_form.xml b/modules/purchase_trade/view/shipment_in_form.xml
index 1e0e20f..f06f627 100755
--- a/modules/purchase_trade/view/shipment_in_form.xml
+++ b/modules/purchase_trade/view/shipment_in_form.xml
@@ -125,7 +125,7 @@ this repository contains the full copyright notices and license terms. -->
-
+
From 68e0000afc82c9c7a5ca0500fe633e83fe44ad4f Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 2 Feb 2026 17:44:47 +0100
Subject: [PATCH 166/618] 02.02.26
---
modules/automation/cron.py | 2 +-
modules/purchase_trade/stock.py | 72 ++++++++++++++++-----------------
2 files changed, 37 insertions(+), 37 deletions(-)
diff --git a/modules/automation/cron.py b/modules/automation/cron.py
index 1c5c491..0f321bc 100644
--- a/modules/automation/cron.py
+++ b/modules/automation/cron.py
@@ -310,7 +310,7 @@ class AutomationCron(ModelSQL, ModelView):
ShipmentIn.save([shipment])
shipment._create_lots_from_fintrade()
shipment.controller = shipment.get_controller()
- shipment.instructions = shipment.get_instructions_html()
+ shipment.instructions = shipment.get_instructions()
ShipmentIn.save([shipment])
trans_shipment.commit()
successful_shipments += 1
diff --git a/modules/purchase_trade/stock.py b/modules/purchase_trade/stock.py
index 6d70b8d..22f2b0f 100755
--- a/modules/purchase_trade/stock.py
+++ b/modules/purchase_trade/stock.py
@@ -466,45 +466,45 @@ class ShipmentIn(metaclass=PoolMeta):
if c.party.IsAvailableForControl(self):
return c.party
- def get_instructions_html(self):
- lines = [
- "Hi,
",
- "Please find details below for the requested control
",
- f"BL number: {self.bl_number}
",
- ]
-
- if self.incoming_moves:
- for m in self.incoming_moves:
- if m.lot:
- lines.append(
- ""
- f"Lot nb: {m.lot.lot_name} | "
- f"Net Qt: {m.lot.get_current_quantity()} {m.lot.lot_unit_line.symbol} | "
- f"Gross Qt: {m.lot.get_current_gross_quantity()} {m.lot.lot_unit_line.symbol}"
- "
"
- )
-
- return "".join(lines)
-
- # def get_instructions(self):
+ # def get_instructions_html(self):
# lines = [
- # "Hi,",
- # "",
- # "Please find details below for the requested control",
- # f"BL number: {self.bl_number}",
- # ""
+ # "Hi,
",
+ # "Please find details below for the requested control
",
+ # f"BL number: {self.bl_number}
",
# ]
# if self.incoming_moves:
# for m in self.incoming_moves:
# if m.lot:
# lines.append(
- # f"Lot nb: {m.lot.lot_name} | "
- # f"Net Qt: {m.lot.get_current_quantity()} {m.lot.lot_unit.symbol} | "
- # f"Gross Qt: {m.lot.get_current_gross_quantity()} {m.lot.lot_unit.symbol}"
+ # ""
+ # f"Lot nb: {m.lot.lot_name} | "
+ # f"Net Qt: {m.lot.get_current_quantity()} {m.lot.lot_unit_line.symbol} | "
+ # f"Gross Qt: {m.lot.get_current_gross_quantity()} {m.lot.lot_unit_line.symbol}"
+ # "
"
# )
- # return "\n".join(lines)
+ # return "".join(lines)
+
+ def get_instructions(self):
+ lines = [
+ "Hi,",
+ "",
+ "Please find details below for the requested control",
+ f"BL number: {self.bl_number}",
+ ""
+ ]
+
+ if self.incoming_moves:
+ for m in self.incoming_moves:
+ if m.lot:
+ lines.append(
+ f"Lot nb: {m.lot.lot_name} | "
+ f"Net Qt: {m.lot.get_current_quantity()} {m.lot.lot_unit.symbol} | "
+ f"Gross Qt: {m.lot.get_current_gross_quantity()} {m.lot.lot_unit.symbol}"
+ )
+
+ return "\n".join(lines)
def _create_lots_from_fintrade(self):
t = Table('freight_booking_lots')
@@ -676,11 +676,11 @@ class ShipmentIn(metaclass=PoolMeta):
return sale_line
- def html_to_text(self,html_content):
- text = re.sub(r" ", "\n", html_content, flags=re.IGNORECASE)
- text = re.sub(r"", "\n\n", text, flags=re.IGNORECASE)
- text = re.sub(r"<[^>]+>", "", text)
- return html.unescape(text).strip()
+ # def html_to_text(self,html_content):
+ # text = re.sub(r" ", "\n", html_content, flags=re.IGNORECASE)
+ # text = re.sub(r"", "\n\n", text, flags=re.IGNORECASE)
+ # text = re.sub(r"<[^>]+>", "", text)
+ # return html.unescape(text).strip()
@classmethod
@ModelView.button
@@ -697,7 +697,7 @@ class ShipmentIn(metaclass=PoolMeta):
payload = {
"to": [contact[0].value],
"subject": "Request for control",
- "body": sh.html_to_text(sh.instructions),
+ "body": sh.instructions,
# "attachments": [
# {
# "filename": "instruction.pdf",
From 84b70b73c532b0d7af23b049c7885da129b6e559 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 2 Feb 2026 17:51:26 +0100
Subject: [PATCH 167/618] 02.02.26
---
modules/automation/cron.py | 2 +-
modules/purchase_trade/stock.py | 72 ++++++++++++++++-----------------
2 files changed, 37 insertions(+), 37 deletions(-)
diff --git a/modules/automation/cron.py b/modules/automation/cron.py
index 0f321bc..1c5c491 100644
--- a/modules/automation/cron.py
+++ b/modules/automation/cron.py
@@ -310,7 +310,7 @@ class AutomationCron(ModelSQL, ModelView):
ShipmentIn.save([shipment])
shipment._create_lots_from_fintrade()
shipment.controller = shipment.get_controller()
- shipment.instructions = shipment.get_instructions()
+ shipment.instructions = shipment.get_instructions_html()
ShipmentIn.save([shipment])
trans_shipment.commit()
successful_shipments += 1
diff --git a/modules/purchase_trade/stock.py b/modules/purchase_trade/stock.py
index 22f2b0f..6d70b8d 100755
--- a/modules/purchase_trade/stock.py
+++ b/modules/purchase_trade/stock.py
@@ -466,45 +466,45 @@ class ShipmentIn(metaclass=PoolMeta):
if c.party.IsAvailableForControl(self):
return c.party
- # def get_instructions_html(self):
- # lines = [
- # "Hi,
",
- # "Please find details below for the requested control
",
- # f"BL number: {self.bl_number}
",
- # ]
-
- # if self.incoming_moves:
- # for m in self.incoming_moves:
- # if m.lot:
- # lines.append(
- # ""
- # f"Lot nb: {m.lot.lot_name} | "
- # f"Net Qt: {m.lot.get_current_quantity()} {m.lot.lot_unit_line.symbol} | "
- # f"Gross Qt: {m.lot.get_current_gross_quantity()} {m.lot.lot_unit_line.symbol}"
- # "
"
- # )
-
- # return "".join(lines)
-
- def get_instructions(self):
+ def get_instructions_html(self):
lines = [
- "Hi,",
- "",
- "Please find details below for the requested control",
- f"BL number: {self.bl_number}",
- ""
+ "Hi,
",
+ "Please find details below for the requested control
",
+ f"BL number: {self.bl_number}
",
]
if self.incoming_moves:
for m in self.incoming_moves:
if m.lot:
lines.append(
- f"Lot nb: {m.lot.lot_name} | "
- f"Net Qt: {m.lot.get_current_quantity()} {m.lot.lot_unit.symbol} | "
- f"Gross Qt: {m.lot.get_current_gross_quantity()} {m.lot.lot_unit.symbol}"
+ ""
+ f"Lot nb: {m.lot.lot_name} | "
+ f"Net Qt: {m.lot.get_current_quantity()} {m.lot.lot_unit_line.symbol} | "
+ f"Gross Qt: {m.lot.get_current_gross_quantity()} {m.lot.lot_unit_line.symbol}"
+ "
"
)
- return "\n".join(lines)
+ return "".join(lines)
+
+ # def get_instructions(self):
+ # lines = [
+ # "Hi,",
+ # "",
+ # "Please find details below for the requested control",
+ # f"BL number: {self.bl_number}",
+ # ""
+ # ]
+
+ # if self.incoming_moves:
+ # for m in self.incoming_moves:
+ # if m.lot:
+ # lines.append(
+ # f"Lot nb: {m.lot.lot_name} | "
+ # f"Net Qt: {m.lot.get_current_quantity()} {m.lot.lot_unit.symbol} | "
+ # f"Gross Qt: {m.lot.get_current_gross_quantity()} {m.lot.lot_unit.symbol}"
+ # )
+
+ # return "\n".join(lines)
def _create_lots_from_fintrade(self):
t = Table('freight_booking_lots')
@@ -676,11 +676,11 @@ class ShipmentIn(metaclass=PoolMeta):
return sale_line
- # def html_to_text(self,html_content):
- # text = re.sub(r" ", "\n", html_content, flags=re.IGNORECASE)
- # text = re.sub(r"", "\n\n", text, flags=re.IGNORECASE)
- # text = re.sub(r"<[^>]+>", "", text)
- # return html.unescape(text).strip()
+ def html_to_text(self,html_content):
+ text = re.sub(r" ", "\n", html_content, flags=re.IGNORECASE)
+ text = re.sub(r"", "\n\n", text, flags=re.IGNORECASE)
+ text = re.sub(r"<[^>]+>", "", text)
+ return html.unescape(text).strip()
@classmethod
@ModelView.button
@@ -697,7 +697,7 @@ class ShipmentIn(metaclass=PoolMeta):
payload = {
"to": [contact[0].value],
"subject": "Request for control",
- "body": sh.instructions,
+ "body": sh.html_to_text(sh.instructions),
# "attachments": [
# {
# "filename": "instruction.pdf",
From 350e41714f549f9b52fda53be12921649c6d41e7 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 2 Feb 2026 17:56:51 +0100
Subject: [PATCH 168/618] 02.02.26
---
modules/purchase_trade/view/shipment_in_form.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/purchase_trade/view/shipment_in_form.xml b/modules/purchase_trade/view/shipment_in_form.xml
index f06f627..599f398 100755
--- a/modules/purchase_trade/view/shipment_in_form.xml
+++ b/modules/purchase_trade/view/shipment_in_form.xml
@@ -125,7 +125,7 @@ this repository contains the full copyright notices and license terms. -->
-
+
From 28789200c34fc5ee9f54ca173825f8f8558b90a4 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 2 Feb 2026 18:25:39 +0100
Subject: [PATCH 169/618] 02.02.26
---
modules/automation/automation.py | 9 ++++-----
modules/purchase_trade/view/shipment_in_form.xml | 2 +-
2 files changed, 5 insertions(+), 6 deletions(-)
diff --git a/modules/automation/automation.py b/modules/automation/automation.py
index a7da6bc..870eda5 100644
--- a/modules/automation/automation.py
+++ b/modules/automation/automation.py
@@ -235,12 +235,11 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
ShipmentWR.save([swr])
doc.notes = (doc.notes or "") + f"Shipment found: {sh[0].number}\n"
logger.info("BL_NUMBER:%s",sh[0].bl_number)
- sale_line = sh[0]._create_lots_from_fintrade()
- if sale_line:
- logger.info("CREATE_FINTRADE_WR_FOR_SL:%s",sale_line)
- weight_total = sum([l.lot_quantity for l in sale_line.lots if l.lot_type == 'physic'])
+ if sh[0].incoming_moves:
+ weight_total = sum([m.lot.lot_quantity for m in sh[0].incoming_moves if m.lot.lot_type == 'physic'])
factor = weight_total / wr.net_landed_kg if wr.net_landed_kg else 1
- for lot in sale_line.lots:
+ for move in sh[0].incoming_moves:
+ lot = move.lot
if lot.lot_type == 'physic':
wr_payload = {
"chunk_key": lot.lot_chunk_key,
diff --git a/modules/purchase_trade/view/shipment_in_form.xml b/modules/purchase_trade/view/shipment_in_form.xml
index 599f398..6116510 100755
--- a/modules/purchase_trade/view/shipment_in_form.xml
+++ b/modules/purchase_trade/view/shipment_in_form.xml
@@ -125,7 +125,7 @@ this repository contains the full copyright notices and license terms. -->
-
+
From 0a4176555176092b77b57965eedc1ac22a92fb33 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 2 Feb 2026 19:27:23 +0100
Subject: [PATCH 170/618] 02.02.26
---
modules/purchase_trade/dashboard.py | 17 +++++++++++++++--
1 file changed, 15 insertions(+), 2 deletions(-)
diff --git a/modules/purchase_trade/dashboard.py b/modules/purchase_trade/dashboard.py
index c754531..34b9996 100755
--- a/modules/purchase_trade/dashboard.py
+++ b/modules/purchase_trade/dashboard.py
@@ -239,6 +239,7 @@ class Dashboard(ModelSQL, ModelView):
Configuration = Pool().get('gr.configuration')
config = Configuration.search(['id','>',0])[0]
Shipment = Pool().get('stock.shipment.in')
+ DocumentIncoming = Pool().get('document.incoming')
Fee = Pool().get('fee.fee')
WR = Pool().get('weight.report')
if config.automation:
@@ -246,12 +247,16 @@ class Dashboard(ModelSQL, ModelView):
shipment_trend = [sh for sh in shipment if sh.create_date == Date.today()]
controller = Shipment.search([('controller','!=',None)])
controller_trend = [co for co in controller if co.create_date == Date.today()]
- instruction = Shipment.search([('send_instruction','=',True)])
+ instruction = Shipment.search([('result','!=',None)])
instruction_trend = [si for si in instruction if si.create_date == Date.today()]
+ id_received = Shipment.search([('returned_id','!=',None)])
+ id_received_trend = [i for i in id_received if i.create_date == Date.today()]
wr = WR.search([('id','>',0)])
wr_trend = [w for w in wr if w.create_date == Date.today()]
so = Fee.search(['id','=',25])
so_trend = [s for s in so if s.create_date == Date.today()]
+ di = DocumentIncoming.search(['id','>',0])
+ di_trend = [d for d in di if d.create_date == Date.today()]
return (
config.dashboard +
"/dashboard/index.html?shipment="
@@ -273,7 +278,15 @@ class Dashboard(ModelSQL, ModelView):
+ "&so="
+ str(len(so))
+ "&so_trend="
- + str(len(so_trend)))
+ + str(len(so_trend))
+ + "&di="
+ + str(len(di))
+ + "&di_trend="
+ + str(len(di_trend))
+ + "&id_received="
+ + str(len(id_received))
+ + "&id_received_trend="
+ + str(len(id_received_trend)))
f1,f2,f3,f4,f5,d1,d2,d3,d4,d5 = self.get_last_five_fx_rates()
Valuation = Pool().get('valuation.valuation')
From f4a53f27051085a7be55497e16c763d83fa6622a Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 3 Feb 2026 12:19:44 +0100
Subject: [PATCH 171/618] 03.02.26
---
modules/automation/cron.py | 4 +-
modules/purchase_trade/stock.py | 71 +++++++++++++++++++++++----------
2 files changed, 53 insertions(+), 22 deletions(-)
diff --git a/modules/automation/cron.py b/modules/automation/cron.py
index 1c5c491..6a623d4 100644
--- a/modules/automation/cron.py
+++ b/modules/automation/cron.py
@@ -308,9 +308,9 @@ class AutomationCron(ModelSQL, ModelView):
# Sauvegarder ce shipment uniquement
ShipmentIn.save([shipment])
- shipment._create_lots_from_fintrade()
+ inv_date,inv_nb = shipment._create_lots_from_fintrade()
shipment.controller = shipment.get_controller()
- shipment.instructions = shipment.get_instructions_html()
+ shipment.instructions = shipment.get_instructions_html(inv_date,inv_nb)
ShipmentIn.save([shipment])
trans_shipment.commit()
successful_shipments += 1
diff --git a/modules/purchase_trade/stock.py b/modules/purchase_trade/stock.py
index 6d70b8d..1302cf4 100755
--- a/modules/purchase_trade/stock.py
+++ b/modules/purchase_trade/stock.py
@@ -466,23 +466,41 @@ class ShipmentIn(metaclass=PoolMeta):
if c.party.IsAvailableForControl(self):
return c.party
- def get_instructions_html(self):
+ def get_instructions_html(self,inv_date,inv_nb):
+ vessel = self.vessel.vessel_name if self.vessel else ""
lines = [
"Hi,
",
"Please find details below for the requested control
",
f"BL number: {self.bl_number}
",
+ f"ETA: {self.eta}
",
+ f"Vessel: {vessel}
",
]
if self.incoming_moves:
- for m in self.incoming_moves:
- if m.lot:
- lines.append(
- ""
- f"Lot nb: {m.lot.lot_name} | "
- f"Net Qt: {m.lot.get_current_quantity()} {m.lot.lot_unit_line.symbol} | "
- f"Gross Qt: {m.lot.get_current_gross_quantity()} {m.lot.lot_unit_line.symbol}"
- "
"
- )
+ tot_net = sum([m.lot.get_current_quantity() for m in self.incoming_moves])
+ tot_gross = sum([m.lot.get_current_gross_quantity() for m in self.incoming_moves])
+ tot_bale = sum([m.lot.lot_qt for m in self.incoming_moves])
+ customer = self.incoming_moves[0].lot.sale_line.sale.party.name if self.incoming_moves[0].lot.sale_line else ""
+ unit = self.incoming_moves[0].lot.lot_unit_line.symbol
+ lines.append(""
+ f"Customer: {customer}"
+ "
"
+ )
+ lines.append(""
+ f"Invoice Nb: {inv_nb}"
+ "
"
+ )
+ lines.append(""
+ f"Invoice Date: {inv_date}"
+ "
"
+ )
+ lines.append(
+ ""
+ f"Nb Bales: {tot_bale} | "
+ f"Net Qt: {tot_net} {unit} | "
+ f"Gross Qt: {tot_gross} {unit}"
+ "
"
+ )
return "".join(lines)
@@ -533,6 +551,8 @@ class ShipmentIn(metaclass=PoolMeta):
cursor.execute(*query)
rows = cursor.fetchall()
logger.info("ROWS:%s",rows)
+ inv_date = None
+ inv_nb = None
if rows:
sale_line = None
for row in rows:
@@ -559,6 +579,8 @@ class ShipmentIn(metaclass=PoolMeta):
customer = str(row[7]).strip().upper()
sell_price_currency = str(row[8]).strip().upper()
sell_price_unit = str(row[9]).strip().lower()
+ inv_date = str(row[13]).strip()
+ inv_nb = str(row[11]).strip()
sell_price = Decimal(row[10])
premium = Decimal(row[14])
reference = Decimal(row[15])
@@ -674,7 +696,7 @@ class ShipmentIn(metaclass=PoolMeta):
logger.info("ADD_LOT:%s",int(chunk_key))
LotQt.add_physical_lots(lqt,[l])
- return sale_line
+ return inv_date,inv_nb
def html_to_text(self,html_content):
text = re.sub(r" ", "\n", html_content, flags=re.IGNORECASE)
@@ -686,25 +708,34 @@ class ShipmentIn(metaclass=PoolMeta):
@ModelView.button
def send(cls, shipments):
Date = Pool().get('ir.date')
+ Attachment = Pool().get('ir.attachment')
+
for sh in shipments:
sh.result = "Email not sent"
+ attachment = None
+ if sh.add_bl:
+ attachments = Attachment.search([
+ ('res_model', '=', 'stock.shipment.in'),
+ ('res_id', '=', sh.id),
+ ])
+ if attachments:
+ attachment = attachments[0]
+
if sh.controller:
Contact = Pool().get('party.contact_mechanism')
contact = Contact.search(['party','=',sh.controller.id])
if contact:
- # f = open("/tmp/instruction.pdf", "rb")
- # encoded = base64.b64encode(f.read()).decode()
payload = {
"to": [contact[0].value],
"subject": "Request for control",
"body": sh.html_to_text(sh.instructions),
- # "attachments": [
- # {
- # "filename": "instruction.pdf",
- # "content": encoded,
- # "content_type": "application/pdf"
- # }
- # ],
+ "attachments": [
+ {
+ "filename": attachment.name,
+ "content": attachment.data,
+ "content_type": "application/pdf"
+ }
+ ],
"meta": {
"shipment": sh.bl_number,
"controller": sh.controller.id
From 43312ba412e0ea5edab75f9020664d0e45cf7226 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 3 Feb 2026 13:49:05 +0100
Subject: [PATCH 172/618] 03.02.26
---
modules/purchase_trade/stock.py | 23 ++++++++++-------------
1 file changed, 10 insertions(+), 13 deletions(-)
diff --git a/modules/purchase_trade/stock.py b/modules/purchase_trade/stock.py
index 1302cf4..ec94e37 100755
--- a/modules/purchase_trade/stock.py
+++ b/modules/purchase_trade/stock.py
@@ -471,10 +471,14 @@ class ShipmentIn(metaclass=PoolMeta):
lines = [
"Hi,
",
"Please find details below for the requested control
",
- f"BL number: {self.bl_number}
",
- f"ETA: {self.eta}
",
- f"Vessel: {vessel}
",
]
+ lines.append(
+ ""
+ f"BL number: {self.bl_number} | "
+ f"Vessel: {vessel} | "
+ f"ETA: {self.eta}"
+ "
"
+ )
if self.incoming_moves:
tot_net = sum([m.lot.get_current_quantity() for m in self.incoming_moves])
@@ -483,14 +487,8 @@ class ShipmentIn(metaclass=PoolMeta):
customer = self.incoming_moves[0].lot.sale_line.sale.party.name if self.incoming_moves[0].lot.sale_line else ""
unit = self.incoming_moves[0].lot.lot_unit_line.symbol
lines.append(""
- f"Customer: {customer}"
- "
"
- )
- lines.append(""
- f"Invoice Nb: {inv_nb}"
- "
"
- )
- lines.append(""
+ f"Customer: {customer} | "
+ f"Invoice Nb: {inv_nb} | "
f"Invoice Date: {inv_date}"
"
"
)
@@ -715,8 +713,7 @@ class ShipmentIn(metaclass=PoolMeta):
attachment = None
if sh.add_bl:
attachments = Attachment.search([
- ('res_model', '=', 'stock.shipment.in'),
- ('res_id', '=', sh.id),
+ ('resource', '=', 'stock.shipment.in,' + str(sh.id)),
])
if attachments:
attachment = attachments[0]
From 403db5133eb5ff10f300da5355ec033a17adab66 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 3 Feb 2026 13:58:00 +0100
Subject: [PATCH 173/618] 03.02.26
---
modules/purchase_trade/stock.py | 21 +++++++++++----------
1 file changed, 11 insertions(+), 10 deletions(-)
diff --git a/modules/purchase_trade/stock.py b/modules/purchase_trade/stock.py
index ec94e37..44d08b0 100755
--- a/modules/purchase_trade/stock.py
+++ b/modules/purchase_trade/stock.py
@@ -710,14 +710,21 @@ class ShipmentIn(metaclass=PoolMeta):
for sh in shipments:
sh.result = "Email not sent"
- attachment = None
+ attachment = []
if sh.add_bl:
attachments = Attachment.search([
('resource', '=', 'stock.shipment.in,' + str(sh.id)),
])
if attachments:
- attachment = attachments[0]
-
+ content_b64 = base64.b64encode(attachments[0].data).decode('ascii')
+ attachment = [
+ {
+ "filename": attachments[0].name,
+ "content": content_b64,
+ "content_type": attachments[0].mimetype or "application/pdf"
+ }
+ ]
+
if sh.controller:
Contact = Pool().get('party.contact_mechanism')
contact = Contact.search(['party','=',sh.controller.id])
@@ -726,13 +733,7 @@ class ShipmentIn(metaclass=PoolMeta):
"to": [contact[0].value],
"subject": "Request for control",
"body": sh.html_to_text(sh.instructions),
- "attachments": [
- {
- "filename": attachment.name,
- "content": attachment.data,
- "content_type": "application/pdf"
- }
- ],
+ "attachments": attachment,
"meta": {
"shipment": sh.bl_number,
"controller": sh.controller.id
From 16df1c99a619880db8c566ebe1a7a9dd0d282945 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 3 Feb 2026 14:03:46 +0100
Subject: [PATCH 174/618] 03.02.26
---
modules/purchase_trade/stock.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/purchase_trade/stock.py b/modules/purchase_trade/stock.py
index 44d08b0..8e87369 100755
--- a/modules/purchase_trade/stock.py
+++ b/modules/purchase_trade/stock.py
@@ -721,7 +721,7 @@ class ShipmentIn(metaclass=PoolMeta):
{
"filename": attachments[0].name,
"content": content_b64,
- "content_type": attachments[0].mimetype or "application/pdf"
+ "content_type": "application/pdf"
}
]
From 272875eb69bcbef8f9dd83e5826241fbbd8ae0b3 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 3 Feb 2026 14:30:36 +0100
Subject: [PATCH 175/618] 03.02.26
---
modules/purchase_trade/__init__.py | 2 +
modules/purchase_trade/lot.py | 128 ------------------
modules/purchase_trade/party.py | 38 ++++++
modules/purchase_trade/party.xml | 17 ++-
.../view/party_exec_place_tree.xml | 5 +
.../view/party_exec_sla_tree.xml | 6 +
6 files changed, 67 insertions(+), 129 deletions(-)
create mode 100644 modules/purchase_trade/view/party_exec_place_tree.xml
create mode 100644 modules/purchase_trade/view/party_exec_sla_tree.xml
diff --git a/modules/purchase_trade/__init__.py b/modules/purchase_trade/__init__.py
index 22f4c31..bd8fbc9 100755
--- a/modules/purchase_trade/__init__.py
+++ b/modules/purchase_trade/__init__.py
@@ -75,6 +75,8 @@ def register():
dashboard.Demos,
party.Party,
party.PartyExecution,
+ party.PartyExecutionSla,
+ party.PartyExecutionPlace,
payment_term.PaymentTerm,
payment_term.PaymentTermLine,
purchase.Purchase,
diff --git a/modules/purchase_trade/lot.py b/modules/purchase_trade/lot.py
index 98c27bb..5397335 100755
--- a/modules/purchase_trade/lot.py
+++ b/modules/purchase_trade/lot.py
@@ -3151,135 +3151,8 @@ class CreateContracts(Wizard):
type_=self.ct.type,
ct=self.ct,
)
- # SaleLine = Pool().get('sale.line')
- # Sale = Pool().get('sale.sale')
- # PurchaseLine = Pool().get('purchase.line')
- # Purchase = Pool().get('purchase.purchase')
- # LotQt = Pool().get('lot.qt')
- # LotQtHist = Pool().get('lot.qt.hist')
- # LotQtType = Pool().get('lot.qt.type')
- # Lot = Pool().get('lot.lot')
- # Date = Pool().get('ir.date')
- # self.sale_lines = []
- # type = self.ct.type
- # base_contract = self.ct.lot.sale_line.sale if type == 'Purchase' else self.ct.lot.line.purchase
- # for c in self.ct.contracts:
- # contract = Purchase() if type == 'Purchase' else Sale()
- # contract_line = PurchaseLine() if type == 'Purchase' else SaleLine()
- # parts = c.currency_unit.split("_")
- # if int(parts[0]) != 0:
- # contract.currency = int(parts[0])
- # else:
- # contract.currency = 1
- # contract.party = c.party
- # contract.crop = c.crop
- # contract.tol_min = c.tol_min
- # contract.tol_max = c.tol_max
- # if type == 'Purchase':
- # contract.purchase_date = Date.today()
- # else:
- # contract.sale_date = Date.today()
- # contract.reference = c.reference
- # if base_contract.from_location and base_contract.to_location:
- # if type == 'Purchase':
- # contract.to_location = base_contract.from_location
- # else:
- # contract.from_location = base_contract.to_location
- # if base_contract.from_location.type == 'supplier' and base_contract.to_location.type == 'customer':
- # contract.from_location = base_contract.from_location
- # contract.to_location = base_contract.to_location
- # if c.party.wb:
- # contract.wb = c.party.wb
- # if c.party.association:
- # contract.association = c.party.association
- # if type == 'Purchase':
- # if c.party.supplier_payment_term:
- # contract.payment_term = c.party.supplier_payment_term
- # else:
- # if c.party.customer_payment_term:
- # contract.payment_term = c.party.customer_payment_term
- # contract.incoterm = c.incoterm
- # if c.party.addresses:
- # contract.invoice_address = c.party.addresses[0]
- # if type == 'Sale':
- # contract.shipment_address = c.party.addresses[0]
- # contract.__class__.save([contract])
- # contract_line.quantity = c.quantity
- # contract_line.quantity_theorical = c.quantity
- # contract_line.product = self.ct.product
- # contract_line.price_type = c.price_type
- # contract_line.unit = self.ct.unit
- # if type == 'Purchase':
- # contract_line.purchase = contract.id
- # else:
- # contract_line.sale = contract.id
- # contract_line.created_by_code = self.ct.matched
- # contract_line.premium = Decimal(0)
- # if int(parts[0]) == 0:
- # contract_line.enable_linked_currency = True
- # contract_line.linked_currency = 1
- # contract_line.linked_unit = int(parts[1])
- # contract_line.linked_price = c.price
- # contract_line.unit_price = contract_line.get_price_linked_currency()
- # else:
- # contract_line.unit_price = c.price if c.price else Decimal(0)
- # contract_line.del_period = c.del_period
- # contract_line.from_del = c.from_del
- # contract_line.to_del = c.to_del
- # contract_line.__class__.save([contract_line])
- # logger.info("CREATE_ID:%s",contract.id)
- # logger.info("CREATE_LINE_ID:%s",contract_line.id)
- # if self.ct.matched:
- # lot = Lot()
- # if type == 'Purchase':
- # lot.line = contract_line.id
- # else:
- # lot.sale_line = contract_line.id
- # lot.lot_qt = None
- # lot.lot_unit = None
- # lot.lot_unit_line = contract_line.unit
- # lot.lot_quantity = round(contract_line.quantity,5)
- # lot.lot_gross_quantity = None
- # lot.lot_status = 'forecast'
- # lot.lot_type = 'virtual'
- # lot.lot_product = contract_line.product
- # lqtt = LotQtType.search([('sequence','=',1)])
- # if lqtt:
- # lqh = LotQtHist()
- # lqh.quantity_type = lqtt[0]
- # lqh.quantity = round(lot.lot_quantity,5)
- # lqh.gross_quantity = round(lot.lot_quantity,5)
- # lot.lot_hist = [lqh]
- # Lot.save([lot])
- # vlot = self.ct.lot
- # shipment_origin = None
- # if self.ct.shipment_in:
- # shipment_origin = 'stock.shipment.in,' + str(self.ct.shipment_in.id)
- # elif self.ct.shipment_internal:
- # shipment_origin = 'stock.shipment.internal,' + str(self.ct.shipment_internal.id)
- # elif self.ct.shipment_out:
- # shipment_origin = 'stock.shipment.out,' + str(self.ct.shipment_out.id)
-
- # qt = c.quantity
- # if type == 'Purchase':
- # if not lot.updateVirtualPart(qt,shipment_origin,vlot):
- # lot.createVirtualPart(qt,shipment_origin,vlot)
- # #Decrease forecasted virtual part non matched
- # lot.updateVirtualPart(-qt,shipment_origin,vlot,'only sale')
- # else:
- # if not vlot.updateVirtualPart(qt,shipment_origin,lot):
- # vlot.createVirtualPart(qt,shipment_origin,lot)
- # #Decrease forecasted virtual part non matched
- # vlot.updateVirtualPart(-qt,shipment_origin,None)
-
return 'end'
- # def do_matching(self, action):
- # return action, {
- # 'ids': self.sale_lines,
- # 'model': str(self.ct.lot.id),
- # }
-
def end(self):
return 'reload'
@@ -3309,7 +3182,6 @@ class ContractsStart(ModelView):
def default_matched(cls):
return True
-
class ContractDetail(ModelView):
"Contract Detail"
diff --git a/modules/purchase_trade/party.py b/modules/purchase_trade/party.py
index 8a6b6a1..1e72807 100755
--- a/modules/purchase_trade/party.py
+++ b/modules/purchase_trade/party.py
@@ -16,6 +16,43 @@ class PartyExecution(ModelSQL,ModelView):
def get_percent(self,name):
return 2
+class PartyExecutionSla(ModelSQL,ModelView):
+ "Party Execution Sla"
+ __name__ = 'party.execution.sla'
+
+ party = fields.Many2One('party.party',"Party")
+ reference = fields.Char("Reference")
+ product = fields.Many2One('product.product',"Product")
+ date_from = fields.Date("From")
+ date_to = fields.Date("To")
+ places = fields.One2Many('party.execution.place','pes',"")
+
+class PartyExecutionPlace(ModelSQL,ModelView):
+ "Party Sla Place"
+ __name__ = 'party.execution.place'
+
+ pes = fields.Many2One('party.execution.sla',"Sla")
+ location = fields.Many2One('stock.location',"Location")
+ cost = fields.Numeric("Cost",digits=(16,4))
+ currency_unit = fields.Selection('get_currency_unit',string="Curr/Unit")
+
+ @staticmethod
+ def get_currency_unit():
+ Currency = Pool().get('currency.currency')
+ Uom = Pool().get('product.uom')
+
+ result = []
+ currencies = Currency.search([('concatenate','=',True)])
+ units = Uom.search([('concatenate','=',True)])
+ result.append(("0_5","USC/lb"))
+ result.append(("0_37","USC/mt"))
+ for c in currencies:
+ for u in units:
+ key = "%s_%s" % (c.id, u.id)
+ value = "%s / %s" % (c.name, u.symbol or u.name)
+ result.append((key, value))
+ return result
+
class Party(metaclass=PoolMeta):
__name__ = 'party.party'
@@ -24,6 +61,7 @@ class Party(metaclass=PoolMeta):
wb = fields.Many2One('purchase.weight.basis',"Weight basis")
association = fields.Many2One('purchase.association',"Association")
execution = fields.One2Many('party.execution','party',"")
+ sla = fields.One2Many('party.execution.sla','party', "Sla")
def IsAvailableForControl(self,sh):
return True
diff --git a/modules/purchase_trade/party.xml b/modules/purchase_trade/party.xml
index d576412..6cd1fa3 100755
--- a/modules/purchase_trade/party.xml
+++ b/modules/purchase_trade/party.xml
@@ -5,10 +5,25 @@
party_form
-
+
party.execution
tree
party_exec_tree
+
+ party.execution.sla
+ form
+ party_exec_sla_form
+
+
+ party.execution.sla
+ tree
+ party_exec_sla_tree
+
+
+ party.execution.place
+ tree
+ party_exec_place_tree
+
\ No newline at end of file
diff --git a/modules/purchase_trade/view/party_exec_place_tree.xml b/modules/purchase_trade/view/party_exec_place_tree.xml
new file mode 100644
index 0000000..399f3cc
--- /dev/null
+++ b/modules/purchase_trade/view/party_exec_place_tree.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/purchase_trade/view/party_exec_sla_tree.xml b/modules/purchase_trade/view/party_exec_sla_tree.xml
new file mode 100644
index 0000000..cd1db01
--- /dev/null
+++ b/modules/purchase_trade/view/party_exec_sla_tree.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
From fe7c10d5274b1d430287d76bc5acf51419d7e8a7 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 3 Feb 2026 14:33:40 +0100
Subject: [PATCH 176/618] 03.02.26
---
modules/purchase_trade/view/party_form.xml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/modules/purchase_trade/view/party_form.xml b/modules/purchase_trade/view/party_form.xml
index 4a052a6..be03e3f 100755
--- a/modules/purchase_trade/view/party_form.xml
+++ b/modules/purchase_trade/view/party_form.xml
@@ -13,6 +13,8 @@
+
+
From 7bc3e350bab59229299190a080063527e8ab9493 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 3 Feb 2026 15:06:27 +0100
Subject: [PATCH 177/618] 03.02.26
---
modules/purchase_trade/view/party_exec_sla_form.xml | 12 ++++++++++++
1 file changed, 12 insertions(+)
create mode 100644 modules/purchase_trade/view/party_exec_sla_form.xml
diff --git a/modules/purchase_trade/view/party_exec_sla_form.xml b/modules/purchase_trade/view/party_exec_sla_form.xml
new file mode 100644
index 0000000..0eb0655
--- /dev/null
+++ b/modules/purchase_trade/view/party_exec_sla_form.xml
@@ -0,0 +1,12 @@
+
\ No newline at end of file
From 39e59b5b8b6be9a497f2bfcbadfdcf71e686951d Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 3 Feb 2026 15:09:24 +0100
Subject: [PATCH 178/618] 03.02.26
---
modules/purchase_trade/view/party_exec_sla_form.xml | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/modules/purchase_trade/view/party_exec_sla_form.xml b/modules/purchase_trade/view/party_exec_sla_form.xml
index 0eb0655..617e137 100644
--- a/modules/purchase_trade/view/party_exec_sla_form.xml
+++ b/modules/purchase_trade/view/party_exec_sla_form.xml
@@ -1,12 +1,13 @@
-
\ No newline at end of file
From 99d895c95198d086238d6210c956e555afa493be Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 3 Feb 2026 15:43:38 +0100
Subject: [PATCH 179/618] 03.02.26
---
modules/automation/cron.py | 1 +
modules/purchase_trade/party.py | 8 ++++++++
modules/purchase_trade/stock.py | 14 ++++++++++++++
3 files changed, 23 insertions(+)
diff --git a/modules/automation/cron.py b/modules/automation/cron.py
index 6a623d4..2b69000 100644
--- a/modules/automation/cron.py
+++ b/modules/automation/cron.py
@@ -310,6 +310,7 @@ class AutomationCron(ModelSQL, ModelView):
ShipmentIn.save([shipment])
inv_date,inv_nb = shipment._create_lots_from_fintrade()
shipment.controller = shipment.get_controller()
+ shipment.create_fee(shipment.controller)
shipment.instructions = shipment.get_instructions_html(inv_date,inv_nb)
ShipmentIn.save([shipment])
trans_shipment.commit()
diff --git a/modules/purchase_trade/party.py b/modules/purchase_trade/party.py
index 1e72807..a3acde4 100755
--- a/modules/purchase_trade/party.py
+++ b/modules/purchase_trade/party.py
@@ -66,6 +66,14 @@ class Party(metaclass=PoolMeta):
def IsAvailableForControl(self,sh):
return True
+ def get_sla_cost(self,location):
+ if self.sla:
+ for sla in self.sla:
+ SlaPlace = Pool().get('party.execution.place')
+ sp = SlaPlace.search([('pes','=', sla.id),('location','=',location)])
+ if sp:
+ return round(((sp[0].cost / 100) * 2204,62262),4)
+
@classmethod
def getPartyByName(cls, party, category=None):
party = party.upper()
diff --git a/modules/purchase_trade/stock.py b/modules/purchase_trade/stock.py
index 8e87369..915572e 100755
--- a/modules/purchase_trade/stock.py
+++ b/modules/purchase_trade/stock.py
@@ -455,6 +455,20 @@ class ShipmentIn(metaclass=PoolMeta):
else:
return str(self.id)
+ def create_fee(self,controller):
+ Fee = Pool().get('fee.fee')
+ Product = Pool().get('product.product')
+ fee = Fee()
+ fee.shipment_in = self.id
+ fee.supplier = controller
+ fee.type = 'budgeted'
+ fee.p_r = 'pay'
+ fee.mode = 'perqt'
+ fee.currency = 1
+ fee.product = Product.get_by_name('Reweighing')
+ fee.price = controller.get_sla_cost(self.to_location)
+ Fee.save([fee])
+
def get_controller(self):
ControllerCategory = Pool().get('party.category')
PartyCategory = Pool().get('party.party-party.category')
From 44fc7dc855fb0d874d53384c3436b7676ee6c048 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 3 Feb 2026 15:53:32 +0100
Subject: [PATCH 180/618] 03.02.26
---
modules/purchase_trade/party.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/purchase_trade/party.py b/modules/purchase_trade/party.py
index a3acde4..12b583d 100755
--- a/modules/purchase_trade/party.py
+++ b/modules/purchase_trade/party.py
@@ -72,7 +72,7 @@ class Party(metaclass=PoolMeta):
SlaPlace = Pool().get('party.execution.place')
sp = SlaPlace.search([('pes','=', sla.id),('location','=',location)])
if sp:
- return round(((sp[0].cost / 100) * 2204,62262),4)
+ return round(((sp[0].cost / 100) * 2204.62262),4)
@classmethod
def getPartyByName(cls, party, category=None):
From f391e17fb64bd36c72d1f9e55bfc6a3067ab58ef Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 3 Feb 2026 15:57:12 +0100
Subject: [PATCH 181/618] 03.02.26
---
modules/purchase_trade/party.py | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/modules/purchase_trade/party.py b/modules/purchase_trade/party.py
index 12b583d..33f7356 100755
--- a/modules/purchase_trade/party.py
+++ b/modules/purchase_trade/party.py
@@ -3,6 +3,7 @@ from trytond.pool import PoolMeta, Pool
from trytond.exceptions import UserError
from trytond.modules.purchase_trade.purchase import (TRIGGERS)
from trytond.transaction import Transaction
+from decimal import getcontext, Decimal, ROUND_HALF_UP
class PartyExecution(ModelSQL,ModelView):
"Party Execution"
@@ -72,7 +73,7 @@ class Party(metaclass=PoolMeta):
SlaPlace = Pool().get('party.execution.place')
sp = SlaPlace.search([('pes','=', sla.id),('location','=',location)])
if sp:
- return round(((sp[0].cost / 100) * 2204.62262),4)
+ return round(((sp[0].cost / Decimal(100)) * Decimal(2204.62262)),4)
@classmethod
def getPartyByName(cls, party, category=None):
From 65c0053df439ddecaf40277b7dcbe66d2483673b Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 3 Feb 2026 16:01:54 +0100
Subject: [PATCH 182/618] 03.02.26
---
modules/purchase_trade/party.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/purchase_trade/party.py b/modules/purchase_trade/party.py
index 33f7356..f12f404 100755
--- a/modules/purchase_trade/party.py
+++ b/modules/purchase_trade/party.py
@@ -73,7 +73,7 @@ class Party(metaclass=PoolMeta):
SlaPlace = Pool().get('party.execution.place')
sp = SlaPlace.search([('pes','=', sla.id),('location','=',location)])
if sp:
- return round(((sp[0].cost / Decimal(100)) * Decimal(2204.62262)),4)
+ return round(((sp[0].cost / Decimal(100)) * Decimal(2.2046)),4)
@classmethod
def getPartyByName(cls, party, category=None):
From 24843ab72d3a83eef1780a1cf4f2aca659b15780 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 3 Feb 2026 19:33:01 +0100
Subject: [PATCH 183/618] 03.02.26
---
modules/automation/automation.py | 2 +-
modules/automation/cron.py | 3 ++-
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/modules/automation/automation.py b/modules/automation/automation.py
index 870eda5..3390b47 100644
--- a/modules/automation/automation.py
+++ b/modules/automation/automation.py
@@ -246,7 +246,7 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
"gross_weight": float(round(lot.lot_gross_quantity / factor,5)),
"net_weight": float(round(lot.lot_quantity / factor,5)),
"tare_total": float(round(wr.tare_kg * (lot.lot_quantity / weight_total),5)) ,
- "bags": int(wr.bales * (lot.lot_quantity / weight_total)),
+ "bags": int(lot.lot_qt),
"surveyor_code": 231,
"place_key": 0,
"report_date": 20260127
diff --git a/modules/automation/cron.py b/modules/automation/cron.py
index 2b69000..a9e4f5a 100644
--- a/modules/automation/cron.py
+++ b/modules/automation/cron.py
@@ -1,6 +1,6 @@
import requests
from decimal import getcontext, Decimal, ROUND_HALF_UP
-from datetime import datetime
+from datetime import datetime, timedelta
from trytond.model import fields
from trytond.model import ModelSQL, ModelView
from trytond.pool import Pool, PoolMeta
@@ -305,6 +305,7 @@ class AutomationCron(ModelSQL, ModelView):
shipment.bl_number = bl_number
shipment.bl_date = bl_date
shipment.etd = etd_date
+ shipment.eta = bl_date + timedelta(days=20)
# Sauvegarder ce shipment uniquement
ShipmentIn.save([shipment])
From 011af03e8a6b60f4a8196e4e974330c092a10e27 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 3 Feb 2026 20:18:55 +0100
Subject: [PATCH 184/618] 03.02.26
---
modules/automation/cron.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/automation/cron.py b/modules/automation/cron.py
index a9e4f5a..813660f 100644
--- a/modules/automation/cron.py
+++ b/modules/automation/cron.py
@@ -305,7 +305,7 @@ class AutomationCron(ModelSQL, ModelView):
shipment.bl_number = bl_number
shipment.bl_date = bl_date
shipment.etd = etd_date
- shipment.eta = bl_date + timedelta(days=20)
+ shipment.eta = shipment.bl_date + timedelta(days=20)
# Sauvegarder ce shipment uniquement
ShipmentIn.save([shipment])
From eef972c6796f20cb2ac42f6cb5fe0882edd3df95 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 3 Feb 2026 20:26:05 +0100
Subject: [PATCH 185/618] 03.02.26
---
modules/automation/cron.py | 2 +-
modules/purchase_trade/stock.py | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/modules/automation/cron.py b/modules/automation/cron.py
index 813660f..ffeb303 100644
--- a/modules/automation/cron.py
+++ b/modules/automation/cron.py
@@ -305,7 +305,7 @@ class AutomationCron(ModelSQL, ModelView):
shipment.bl_number = bl_number
shipment.bl_date = bl_date
shipment.etd = etd_date
- shipment.eta = shipment.bl_date + timedelta(days=20)
+ shipment.etad = shipment.bl_date + timedelta(days=20)
# Sauvegarder ce shipment uniquement
ShipmentIn.save([shipment])
diff --git a/modules/purchase_trade/stock.py b/modules/purchase_trade/stock.py
index 915572e..98e505b 100755
--- a/modules/purchase_trade/stock.py
+++ b/modules/purchase_trade/stock.py
@@ -490,7 +490,7 @@ class ShipmentIn(metaclass=PoolMeta):
""
f"BL number: {self.bl_number} | "
f"Vessel: {vessel} | "
- f"ETA: {self.eta}"
+ f"ETA: {self.etad}"
"
"
)
From 1ebbb874eff8cb8974c650d70491638e1e204046 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Wed, 4 Feb 2026 15:00:37 +0100
Subject: [PATCH 186/618] 04.02.26
---
modules/purchase_trade/fee.py | 22 ++++++++++++++++---
.../purchase_trade/view/fee_tree_sequence.xml | 5 +++--
.../view/fee_tree_sequence2.xml | 5 +++--
3 files changed, 25 insertions(+), 7 deletions(-)
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index 4d09e81..685993a 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -57,10 +57,19 @@ class Fee(ModelSQL,ModelView):
('perqt', 'Per qt'),
('pprice', '% price'),
('pcost', '% cost price'),
+ ('ppack', 'Per packing'),
], 'Mode', required=True)
+
inherit_qt = fields.Boolean("Inh Qt")
quantity = fields.Function(fields.Numeric("Qt",digits='unit'),'get_quantity')
- unit = fields.Function(fields.Many2One('product.uom',"Unit"),'get_unit')
+ unit = fields.Many2One('product.uom',"Unit",domain=[
+ If(Eval('mode') == 'ppack',
+ ('category', '=', 8),
+ ()),
+ ],
+ states={
+ 'readonly': Eval('mode') != 'ppack',
+ })
inherit_shipment = fields.Boolean("Inh Sh",states={
'invisible': (Eval('shipment_in')),
})
@@ -81,9 +90,16 @@ class Fee(ModelSQL,ModelView):
weight_type = fields.Selection([
('net', 'Net'),
- ('brut', 'Brut'),
+ ('brut', 'Gross'),
], string='W. type')
+ @fields.depends('mode')
+ def on_change_with_unit(self, name=None):
+ if self.mode != 'ppack':
+ return self.get_unit()
+ else:
+ return self.unit
+
def get_lots(self, name):
logger.info("GET_LOTS_LINE:%s",self.line)
logger.info("GET_LOTS_SHIPMENT_IN:%s",self.shipment_in)
@@ -155,7 +171,7 @@ class Fee(ModelSQL,ModelView):
def default_p_r(cls):
return 'pay'
- def get_unit(self, name):
+ def get_unit(self, name=None):
Lot = Pool().get('lot.lot')
if self.lots:
if self.lots[0].line:
diff --git a/modules/purchase_trade/view/fee_tree_sequence.xml b/modules/purchase_trade/view/fee_tree_sequence.xml
index 21bf150..fd14898 100755
--- a/modules/purchase_trade/view/fee_tree_sequence.xml
+++ b/modules/purchase_trade/view/fee_tree_sequence.xml
@@ -5,11 +5,12 @@ this repository contains the full copyright notices and license terms. -->
-
-
+
+
+
diff --git a/modules/purchase_trade/view/fee_tree_sequence2.xml b/modules/purchase_trade/view/fee_tree_sequence2.xml
index e408451..37a6e86 100755
--- a/modules/purchase_trade/view/fee_tree_sequence2.xml
+++ b/modules/purchase_trade/view/fee_tree_sequence2.xml
@@ -5,11 +5,12 @@ this repository contains the full copyright notices and license terms. -->
-
-
+
+
+
From 240f35af264979d826ecfc552751aef6a6c5dc3c Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Wed, 4 Feb 2026 15:18:06 +0100
Subject: [PATCH 187/618] 04.02.26
---
modules/purchase_trade/fee.py | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index 685993a..2521bf5 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -172,12 +172,13 @@ class Fee(ModelSQL,ModelView):
return 'pay'
def get_unit(self, name=None):
- Lot = Pool().get('lot.lot')
- if self.lots:
- if self.lots[0].line:
- return self.lots[0].line.unit
- if self.lots[0].sale_line:
- return self.lots[0].sale_line.unit
+ FeeLots = Pool().get('fee.lots')
+ fl = FeeLots.search(['fee','=',self.id])
+ if fl:
+ if fl[0].lot.line:
+ return fl[0].lot.line.unit
+ if fl[0].lot.sale_line:
+ return fl[0].lot.sale_line.unit
@classmethod
@ModelView.button
From 71716c1ad5bac4fba2fc5c44fdde85cc935ade97 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Wed, 4 Feb 2026 15:40:30 +0100
Subject: [PATCH 188/618] 04.02.26
---
modules/purchase_trade/fee.py | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index 2521bf5..b605db0 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -93,10 +93,18 @@ class Fee(ModelSQL,ModelView):
('brut', 'Gross'),
], string='W. type')
- @fields.depends('mode')
+ @fields.depends('mode','_parent_line.lots','_parent_sale_line.lots')
def on_change_with_unit(self, name=None):
if self.mode != 'ppack':
- return self.get_unit()
+ line = self.line
+ if not line:
+ line = self.sale_line
+ if line:
+ if line.lots:
+ if len(line.lots) == 1:
+ return line.lots[0].lot_unit_line
+ else:
+ return line.lots[1].lot_unit_line
else:
return self.unit
From 2ebad01847a247ddbb4700cb46a9ebf4bf2ca703 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Wed, 4 Feb 2026 18:02:09 +0100
Subject: [PATCH 189/618] 04.02.26
---
modules/lot/lot.py | 12 +++---
modules/purchase/purchase.py | 10 +++++
modules/purchase_trade/fee.py | 43 ++++++++++++++++---
.../purchase_trade/view/fee_tree_sequence.xml | 2 +
.../view/fee_tree_sequence2.xml | 2 +
5 files changed, 56 insertions(+), 13 deletions(-)
diff --git a/modules/lot/lot.py b/modules/lot/lot.py
index 02a4e17..907461e 100755
--- a/modules/lot/lot.py
+++ b/modules/lot/lot.py
@@ -502,21 +502,21 @@ class Lot(ModelSQL, ModelView):
physic_sum += round(Decimal(Uom.compute_qty(Uom(l.lot_unit_line),float(l.get_current_quantity()),l.line.unit)),5)
return line.quantity_theorical - physic_sum
- def get_current_quantity(self,name=None):
+ def get_current_quantity(self,seq=0,name=None):
# if self.lot_type == 'physic':
- qt, gross_qt = self.get_hist_quantity(0)
+ qt, gross_qt = self.get_hist_quantity(seq)
return qt
# else:
# return self.get_virtual_diff()
- def get_current_quantity_converted(self,name=None):
+ def get_current_quantity_converted(self,seq=0,name=None):
Uom = Pool().get('product.uom')
unit = self.line.unit if self.line else self.sale_line.unit
- return round(Decimal(Uom.compute_qty(self.lot_unit_line, float(self.get_current_quantity()), unit)),5)
+ return round(Decimal(Uom.compute_qty(self.lot_unit_line, float(self.get_current_quantity(seq)), unit)),5)
- def get_current_gross_quantity(self,name=None):
+ def get_current_gross_quantity(self,seq=0,name=None):
if self.lot_type == 'physic':
- qt, gross_qt = self.get_hist_quantity(0)
+ qt, gross_qt = self.get_hist_quantity(seq)
return gross_qt
else:
return None
diff --git a/modules/purchase/purchase.py b/modules/purchase/purchase.py
index 96fe5af..b742b7a 100755
--- a/modules/purchase/purchase.py
+++ b/modules/purchase/purchase.py
@@ -1928,6 +1928,16 @@ class Line(sequence_ordered(), ModelSQL, ModelView):
invoice_line.fee = fee[0]
if fee[0].mode == 'lumpsum':
invoice_line.quantity = 1
+ elif fee[0].mode == 'ppack':
+ invoice_line.quantity = fee[0].quantity
+ else:
+ seq = 0
+ LotQtType = Pool().get('lot.qt.type')
+ lqt = LotQtType.search([('name','=','BL')])
+ if lqt:
+ seq = lqt[0].sequence
+ invoice_line.quantity = fee[0].get_fee_lots_qt(seq)
+
lines.append(invoice_line)
logger.info("GETINVLINE:%s",self.product.type)
logger.info("GETINVLINE2:%s",l.invoice_line_prov)
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index b605db0..1b4b070 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -59,9 +59,9 @@ class Fee(ModelSQL,ModelView):
('pcost', '% cost price'),
('ppack', 'Per packing'),
], 'Mode', required=True)
-
- inherit_qt = fields.Boolean("Inh Qt")
- quantity = fields.Function(fields.Numeric("Qt",digits='unit'),'get_quantity')
+ auto_calculation = fields.Boolean("Auto Calc.",states={'readonly': (Eval('mode') != 'ppack')})
+ inherit_qt = fields.Boolean("Inh Qt",states={'readonly': Eval('mode') != 'ppack'})
+ quantity = fields.Numeric("Qt",digits='unit',states={'readonly': (Eval('mode') != 'ppack') | Bool(Eval('auto_calculation'))})
unit = fields.Many2One('product.uom',"Unit",domain=[
If(Eval('mode') == 'ppack',
('category', '=', 8),
@@ -74,7 +74,7 @@ class Fee(ModelSQL,ModelView):
'invisible': (Eval('shipment_in')),
})
purchase = fields.Many2One('purchase.purchase',"Purchase", ondelete='CASCADE')
-
+ qt_state = fields.Many2One('lot.qt.type',"Qt State")
amount = fields.Function(fields.Numeric("Amount", digits='currency'),'get_amount')
fee_lots = fields.Function(fields.Many2Many('lot.lot', None, None, "Lots"),'get_lots')#, searcher='search_lots')
lots = fields.Many2Many('fee.lots', 'fee', 'lot',"Lots",domain=[('id', 'in', Eval('fee_lots',-1))] )
@@ -93,6 +93,33 @@ class Fee(ModelSQL,ModelView):
('brut', 'Gross'),
], string='W. type')
+ @classmethod
+ def default_qt_state(cls):
+ LotQtType = Pool().get('lot.qt.type')
+ lqt = LotQtType.search([('name','=','BL')])
+ if lqt:
+ return lqt[0].id
+
+ @fields.depends('auto_calculation','mode','_parent_line.lots','_parent_sale_line.lots','_parent_shipment_in.id')
+ def on_change_with_quantity(self, name=None):
+ qt = None
+ line = self.line
+ if not line:
+ line = self.sale_line
+ if line:
+ if line.lots:
+ qt = sum([e.get_current_quantity_converted() for e in line.lots])
+ if not qt:
+ LotQt = Pool().get('lot.qt')
+ lqts = LotQt.search(['lot_shipment_in','=',self.shipment_in.id])
+ if lqts:
+ qt = Decimal(lqts[0].lot_quantity)
+ if self.mode != 'ppack':
+ return qt
+ else:
+ if self.auto_calculation:
+ return Decimal(int(qt/self.unit.factor))
+
@fields.depends('mode','_parent_line.lots','_parent_sale_line.lots')
def on_change_with_unit(self, name=None):
if self.mode != 'ppack':
@@ -217,6 +244,8 @@ class Fee(ModelSQL,ModelView):
return round(self.price / self.quantity,4)
elif self.mode == 'perqt':
return self.price
+ elif self.mode == 'ppack':
+ return self.price / self.unit.factor * self.get_unit().factor
elif self.mode == 'pprice' or self.mode == 'pcost':
if self.line and self.price:
return round(self.price * Decimal(self.line.unit_price) / 100,4)
@@ -238,7 +267,7 @@ class Fee(ModelSQL,ModelView):
def get_landed_status(self,name):
if self.product:
return self.product.template.landed_cost
-
+
def get_quantity(self,name=None):
qt = self.get_fee_lots_qt()
if qt:
@@ -305,12 +334,12 @@ class Fee(ModelSQL,ModelView):
return super().copy(fees, default=default)
- def get_fee_lots_qt(self):
+ def get_fee_lots_qt(self,seq=0):
qt = Decimal(0)
FeeLots = Pool().get('fee.lots')
fee_lots = FeeLots.search([('fee', '=', self.id)])
if fee_lots:
- qt = sum([e.lot.get_current_quantity_converted() for e in fee_lots])
+ qt = sum([e.lot.get_current_quantity_converted(seq) for e in fee_lots])
logger.info("GET_FEE_LOTS_QT:%s",qt)
return qt
diff --git a/modules/purchase_trade/view/fee_tree_sequence.xml b/modules/purchase_trade/view/fee_tree_sequence.xml
index fd14898..aadd0d8 100755
--- a/modules/purchase_trade/view/fee_tree_sequence.xml
+++ b/modules/purchase_trade/view/fee_tree_sequence.xml
@@ -7,12 +7,14 @@ this repository contains the full copyright notices and license terms. -->
+
+
diff --git a/modules/purchase_trade/view/fee_tree_sequence2.xml b/modules/purchase_trade/view/fee_tree_sequence2.xml
index 37a6e86..8b01586 100755
--- a/modules/purchase_trade/view/fee_tree_sequence2.xml
+++ b/modules/purchase_trade/view/fee_tree_sequence2.xml
@@ -7,12 +7,14 @@ this repository contains the full copyright notices and license terms. -->
+
+
From a9d6f8fa5861ec1467e9d67768f002eb674b98e7 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Wed, 4 Feb 2026 18:18:50 +0100
Subject: [PATCH 190/618] 04.02.26
---
modules/purchase_trade/view/fee_tree_sequence.xml | 2 +-
modules/purchase_trade/view/fee_tree_sequence2.xml | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/modules/purchase_trade/view/fee_tree_sequence.xml b/modules/purchase_trade/view/fee_tree_sequence.xml
index aadd0d8..3cea91b 100755
--- a/modules/purchase_trade/view/fee_tree_sequence.xml
+++ b/modules/purchase_trade/view/fee_tree_sequence.xml
@@ -14,7 +14,7 @@ this repository contains the full copyright notices and license terms. -->
-
+
diff --git a/modules/purchase_trade/view/fee_tree_sequence2.xml b/modules/purchase_trade/view/fee_tree_sequence2.xml
index 8b01586..dfc8904 100755
--- a/modules/purchase_trade/view/fee_tree_sequence2.xml
+++ b/modules/purchase_trade/view/fee_tree_sequence2.xml
@@ -14,7 +14,7 @@ this repository contains the full copyright notices and license terms. -->
-
+
From a0ed097b6cf6ee144a8e6d9e65a9913347444442 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Wed, 4 Feb 2026 18:34:16 +0100
Subject: [PATCH 191/618] 04.02.26
---
modules/purchase_trade/fee.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index 1b4b070..6a14d1a 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -100,7 +100,7 @@ class Fee(ModelSQL,ModelView):
if lqt:
return lqt[0].id
- @fields.depends('auto_calculation','mode','_parent_line.lots','_parent_sale_line.lots','_parent_shipment_in.id')
+ @fields.depends('auto_calculation','mode','_parent_line.unit','_parent_line.lots','_parent_sale_line.unit','_parent_sale_line.lots','_parent_shipment_in.id')
def on_change_with_quantity(self, name=None):
qt = None
line = self.line
From 3a79652c59e3f50b040046da6c36b8b1c7b40a07 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Wed, 4 Feb 2026 18:40:28 +0100
Subject: [PATCH 192/618] 04.02.26
---
modules/purchase_trade/fee.py | 4 ++--
modules/purchase_trade/view/fee_tree_sequence.xml | 4 ++--
modules/purchase_trade/view/fee_tree_sequence2.xml | 4 ++--
3 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index 6a14d1a..45f129a 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -59,7 +59,7 @@ class Fee(ModelSQL,ModelView):
('pcost', '% cost price'),
('ppack', 'Per packing'),
], 'Mode', required=True)
- auto_calculation = fields.Boolean("Auto Calc.",states={'readonly': (Eval('mode') != 'ppack')})
+ auto_calculation = fields.Boolean("Auto",states={'readonly': (Eval('mode') != 'ppack')})
inherit_qt = fields.Boolean("Inh Qt",states={'readonly': Eval('mode') != 'ppack'})
quantity = fields.Numeric("Qt",digits='unit',states={'readonly': (Eval('mode') != 'ppack') | Bool(Eval('auto_calculation'))})
unit = fields.Many2One('product.uom',"Unit",domain=[
@@ -118,7 +118,7 @@ class Fee(ModelSQL,ModelView):
return qt
else:
if self.auto_calculation:
- return Decimal(int(qt/self.unit.factor))
+ return Decimal(int(qt/Decimal(self.unit.factor)))
@fields.depends('mode','_parent_line.lots','_parent_sale_line.lots')
def on_change_with_unit(self, name=None):
diff --git a/modules/purchase_trade/view/fee_tree_sequence.xml b/modules/purchase_trade/view/fee_tree_sequence.xml
index 3cea91b..0e84426 100755
--- a/modules/purchase_trade/view/fee_tree_sequence.xml
+++ b/modules/purchase_trade/view/fee_tree_sequence.xml
@@ -7,12 +7,12 @@ this repository contains the full copyright notices and license terms. -->
-
+
-
+
diff --git a/modules/purchase_trade/view/fee_tree_sequence2.xml b/modules/purchase_trade/view/fee_tree_sequence2.xml
index dfc8904..fff37c4 100755
--- a/modules/purchase_trade/view/fee_tree_sequence2.xml
+++ b/modules/purchase_trade/view/fee_tree_sequence2.xml
@@ -7,12 +7,12 @@ this repository contains the full copyright notices and license terms. -->
-
+
-
+
From 0a88b261608f22c8edb1a413e90044750efe4290 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Wed, 4 Feb 2026 21:06:10 +0100
Subject: [PATCH 193/618] 04.02.26
---
modules/lot/lot.py | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/modules/lot/lot.py b/modules/lot/lot.py
index 907461e..043ac27 100755
--- a/modules/lot/lot.py
+++ b/modules/lot/lot.py
@@ -477,15 +477,16 @@ class Lot(ModelSQL, ModelView):
else:
return str(self.line.currency.symbol) + "/" + str(self.line.unit.symbol)
- def get_hist_quantity(self,seq):
+ def get_hist_quantity(self,state_id=0):
qt = Decimal(0)
gross_qt = Decimal(0)
if self.lot_state:
if self.lot_hist:
- if seq != 0:
- st = seq
+ if state_id != 0:
+ st = state_id
else:
st = self.lot_state.id
+ logger.info("GET_HIST_QT:%s",st)
lot = [e for e in self.lot_hist if e.quantity_type.id == st][0]
qt = round(lot.quantity,5)
gross_qt = round(lot.gross_quantity,5)
@@ -502,21 +503,21 @@ class Lot(ModelSQL, ModelView):
physic_sum += round(Decimal(Uom.compute_qty(Uom(l.lot_unit_line),float(l.get_current_quantity()),l.line.unit)),5)
return line.quantity_theorical - physic_sum
- def get_current_quantity(self,seq=0,name=None):
+ def get_current_quantity(self,state_id=0,name=None):
# if self.lot_type == 'physic':
- qt, gross_qt = self.get_hist_quantity(seq)
+ qt, gross_qt = self.get_hist_quantity(state_id)
return qt
# else:
# return self.get_virtual_diff()
- def get_current_quantity_converted(self,seq=0,name=None):
+ def get_current_quantity_converted(self,state_id=0,name=None):
Uom = Pool().get('product.uom')
unit = self.line.unit if self.line else self.sale_line.unit
- return round(Decimal(Uom.compute_qty(self.lot_unit_line, float(self.get_current_quantity(seq)), unit)),5)
+ return round(Decimal(Uom.compute_qty(self.lot_unit_line, float(self.get_current_quantity(state_id)), unit)),5)
- def get_current_gross_quantity(self,seq=0,name=None):
+ def get_current_gross_quantity(self,state_id=0,name=None):
if self.lot_type == 'physic':
- qt, gross_qt = self.get_hist_quantity(seq)
+ qt, gross_qt = self.get_hist_quantity(state_id)
return gross_qt
else:
return None
From a69a9dcb575ad565524a721b126453749ae4948b Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Wed, 4 Feb 2026 21:20:34 +0100
Subject: [PATCH 194/618] 04.02.26
---
modules/lot/lot.py | 11 ++++++-----
modules/purchase/purchase.py | 6 +++---
modules/purchase_trade/fee.py | 4 ++--
3 files changed, 11 insertions(+), 10 deletions(-)
diff --git a/modules/lot/lot.py b/modules/lot/lot.py
index 043ac27..60858b9 100755
--- a/modules/lot/lot.py
+++ b/modules/lot/lot.py
@@ -503,9 +503,9 @@ class Lot(ModelSQL, ModelView):
physic_sum += round(Decimal(Uom.compute_qty(Uom(l.lot_unit_line),float(l.get_current_quantity()),l.line.unit)),5)
return line.quantity_theorical - physic_sum
- def get_current_quantity(self,state_id=0,name=None):
+ def get_current_quantity(self,name=None):
# if self.lot_type == 'physic':
- qt, gross_qt = self.get_hist_quantity(state_id)
+ qt, gross_qt = self.get_hist_quantity()
return qt
# else:
# return self.get_virtual_diff()
@@ -513,11 +513,12 @@ class Lot(ModelSQL, ModelView):
def get_current_quantity_converted(self,state_id=0,name=None):
Uom = Pool().get('product.uom')
unit = self.line.unit if self.line else self.sale_line.unit
- return round(Decimal(Uom.compute_qty(self.lot_unit_line, float(self.get_current_quantity(state_id)), unit)),5)
+ qt, gross_qt = self.get_hist_quantity(state_id)
+ return round(Decimal(Uom.compute_qty(self.lot_unit_line, float(qt), unit)),5)
- def get_current_gross_quantity(self,state_id=0,name=None):
+ def get_current_gross_quantity(self,name=None):
if self.lot_type == 'physic':
- qt, gross_qt = self.get_hist_quantity(state_id)
+ qt, gross_qt = self.get_hist_quantity()
return gross_qt
else:
return None
diff --git a/modules/purchase/purchase.py b/modules/purchase/purchase.py
index b742b7a..57ab2fd 100755
--- a/modules/purchase/purchase.py
+++ b/modules/purchase/purchase.py
@@ -1931,12 +1931,12 @@ class Line(sequence_ordered(), ModelSQL, ModelView):
elif fee[0].mode == 'ppack':
invoice_line.quantity = fee[0].quantity
else:
- seq = 0
+ state_id = 0
LotQtType = Pool().get('lot.qt.type')
lqt = LotQtType.search([('name','=','BL')])
if lqt:
- seq = lqt[0].sequence
- invoice_line.quantity = fee[0].get_fee_lots_qt(seq)
+ state_id = lqt[0].id
+ invoice_line.quantity = fee[0].get_fee_lots_qt(state_id)
lines.append(invoice_line)
logger.info("GETINVLINE:%s",self.product.type)
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index 45f129a..3f89cd0 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -334,12 +334,12 @@ class Fee(ModelSQL,ModelView):
return super().copy(fees, default=default)
- def get_fee_lots_qt(self,seq=0):
+ def get_fee_lots_qt(self,state_id=0):
qt = Decimal(0)
FeeLots = Pool().get('fee.lots')
fee_lots = FeeLots.search([('fee', '=', self.id)])
if fee_lots:
- qt = sum([e.lot.get_current_quantity_converted(seq) for e in fee_lots])
+ qt = sum([e.lot.get_current_quantity_converted(state_id) for e in fee_lots])
logger.info("GET_FEE_LOTS_QT:%s",qt)
return qt
From b03a97d02d3afcff9c5d3e9ee16467509cf73c3a Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Wed, 4 Feb 2026 21:34:46 +0100
Subject: [PATCH 195/618] 04.02.26
---
modules/purchase_trade/fee.py | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index 3f89cd0..4b4beb7 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -100,7 +100,7 @@ class Fee(ModelSQL,ModelView):
if lqt:
return lqt[0].id
- @fields.depends('auto_calculation','mode','_parent_line.unit','_parent_line.lots','_parent_sale_line.unit','_parent_sale_line.lots','_parent_shipment_in.id')
+ @fields.depends('unit','auto_calculation','mode','_parent_line.unit','_parent_line.lots','_parent_sale_line.unit','_parent_sale_line.lots','_parent_shipment_in.id')
def on_change_with_quantity(self, name=None):
qt = None
line = self.line
@@ -108,7 +108,7 @@ class Fee(ModelSQL,ModelView):
line = self.sale_line
if line:
if line.lots:
- qt = sum([e.get_current_quantity_converted() for e in line.lots])
+ qt = sum([e.get_current_quantity() for e in line.lots])
if not qt:
LotQt = Pool().get('lot.qt')
lqts = LotQt.search(['lot_shipment_in','=',self.shipment_in.id])
@@ -119,7 +119,7 @@ class Fee(ModelSQL,ModelView):
else:
if self.auto_calculation:
return Decimal(int(qt/Decimal(self.unit.factor)))
-
+
@fields.depends('mode','_parent_line.lots','_parent_sale_line.lots')
def on_change_with_unit(self, name=None):
if self.mode != 'ppack':
@@ -133,7 +133,7 @@ class Fee(ModelSQL,ModelView):
else:
return line.lots[1].lot_unit_line
else:
- return self.unit
+ return None
def get_lots(self, name):
logger.info("GET_LOTS_LINE:%s",self.line)
From aaf4a264a12f7161abec3ff669a633b073776e71 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Wed, 4 Feb 2026 21:43:53 +0100
Subject: [PATCH 196/618] 04.02.26
---
modules/purchase_trade/fee.py | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index 4b4beb7..d55784c 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -245,7 +245,9 @@ class Fee(ModelSQL,ModelView):
elif self.mode == 'perqt':
return self.price
elif self.mode == 'ppack':
- return self.price / self.unit.factor * self.get_unit().factor
+ unit = self.get_unit()
+ if unit and self.unit:
+ return self.price / self.unit.factor * unit.factor
elif self.mode == 'pprice' or self.mode == 'pcost':
if self.line and self.price:
return round(self.price * Decimal(self.line.unit_price) / 100,4)
@@ -285,6 +287,8 @@ class Fee(ModelSQL,ModelView):
# sign = -1
if self.mode == 'lumpsum':
return self.price * sign
+ elif self.mode == 'ppack':
+ return round(self.price * self.quantity,2)
elif self.mode == 'perqt':
if self.shipment_in:
StockMove = Pool().get('stock.move')
From 91f85ea7c10c673589ea2d75e1dc95f693ce8a9f Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Thu, 5 Feb 2026 16:48:16 +0100
Subject: [PATCH 197/618] 05.02.26
---
modules/purchase_trade/fee.py | 3 +++
1 file changed, 3 insertions(+)
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index d55784c..c0164ce 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -109,11 +109,14 @@ class Fee(ModelSQL,ModelView):
if line:
if line.lots:
qt = sum([e.get_current_quantity() for e in line.lots])
+ logger.info("ON_CHANGE_WITH_QT0:%s",qt)
if not qt:
+ logger.info("ON_CHANGE_WITH_QT1:%s",qt)
LotQt = Pool().get('lot.qt')
lqts = LotQt.search(['lot_shipment_in','=',self.shipment_in.id])
if lqts:
qt = Decimal(lqts[0].lot_quantity)
+ logger.info("ON_CHANGE_WITH_QT2:%s",qt)
if self.mode != 'ppack':
return qt
else:
From 00a6a5debe41a5a057072c5ea8afa15035b315da Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Thu, 5 Feb 2026 17:06:00 +0100
Subject: [PATCH 198/618] 05.02.26
---
modules/purchase_trade/fee.py | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index c0164ce..2b197fe 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -6,7 +6,7 @@ from trytond.pyson import Bool, Eval, Id, If
from trytond.model import (ModelSQL, ModelView)
from trytond.tools import is_full_text, lstrip_wildcard
from trytond.transaction import Transaction, inactive_records
-from decimal import getcontext, Decimal, ROUND_HALF_UP
+from decimal import getcontext, Decimal, ROUND_UP, ROUND_HALF_UP
from sql.aggregate import Count, Max, Min, Sum, Avg, BoolOr
from sql.conditionals import Case
from sql import Column, Literal
@@ -103,12 +103,14 @@ class Fee(ModelSQL,ModelView):
@fields.depends('unit','auto_calculation','mode','_parent_line.unit','_parent_line.lots','_parent_sale_line.unit','_parent_sale_line.lots','_parent_shipment_in.id')
def on_change_with_quantity(self, name=None):
qt = None
+ unit = None
line = self.line
if not line:
line = self.sale_line
if line:
if line.lots:
qt = sum([e.get_current_quantity() for e in line.lots])
+ unit = line.lots[0].lot_unit_line
logger.info("ON_CHANGE_WITH_QT0:%s",qt)
if not qt:
logger.info("ON_CHANGE_WITH_QT1:%s",qt)
@@ -116,12 +118,13 @@ class Fee(ModelSQL,ModelView):
lqts = LotQt.search(['lot_shipment_in','=',self.shipment_in.id])
if lqts:
qt = Decimal(lqts[0].lot_quantity)
+ unit = lqts[0].lot_unit
logger.info("ON_CHANGE_WITH_QT2:%s",qt)
if self.mode != 'ppack':
return qt
else:
if self.auto_calculation:
- return Decimal(int(qt/Decimal(self.unit.factor)))
+ return (qt * unit.factor / Decimal(self.unit.factor)).to_integral_value(rounding=ROUND_UP)
@fields.depends('mode','_parent_line.lots','_parent_sale_line.lots')
def on_change_with_unit(self, name=None):
From 181217e755b42c6375f4a52edeb264266c48670e Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Thu, 5 Feb 2026 17:09:54 +0100
Subject: [PATCH 199/618] 05.02.26
---
modules/purchase_trade/fee.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index 2b197fe..d46284b 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -124,7 +124,7 @@ class Fee(ModelSQL,ModelView):
return qt
else:
if self.auto_calculation:
- return (qt * unit.factor / Decimal(self.unit.factor)).to_integral_value(rounding=ROUND_UP)
+ return (qt * Decimal(unit.factor) / Decimal(self.unit.factor)).to_integral_value(rounding=ROUND_UP)
@fields.depends('mode','_parent_line.lots','_parent_sale_line.lots')
def on_change_with_unit(self, name=None):
From c6f963b6be0938372f77eb7f80624fc66db7050a Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Thu, 5 Feb 2026 18:04:07 +0100
Subject: [PATCH 200/618] 05.02.26
---
modules/purchase_trade/fee.py | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index d46284b..82d9a14 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -100,11 +100,12 @@ class Fee(ModelSQL,ModelView):
if lqt:
return lqt[0].id
- @fields.depends('unit','auto_calculation','mode','_parent_line.unit','_parent_line.lots','_parent_sale_line.unit','_parent_sale_line.lots','_parent_shipment_in.id')
+ @fields.depends('unit','auto_calculation','mode','_parent_line','_parent_sale_line','_parent_line.unit','_parent_line.lots','_parent_sale_line.unit','_parent_sale_line.lots','_parent_shipment_in.id')
def on_change_with_quantity(self, name=None):
qt = None
unit = None
line = self.line
+ logger.info("ON_CHANGE_WITH_LINE:%s",line)
if not line:
line = self.sale_line
if line:
From 7b94c56e7c38f5d187a545a403b116cb03de3fc2 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Thu, 5 Feb 2026 18:13:10 +0100
Subject: [PATCH 201/618] 05.02.26
---
modules/purchase_trade/fee.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index 82d9a14..ac47466 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -100,7 +100,7 @@ class Fee(ModelSQL,ModelView):
if lqt:
return lqt[0].id
- @fields.depends('unit','auto_calculation','mode','_parent_line','_parent_sale_line','_parent_line.unit','_parent_line.lots','_parent_sale_line.unit','_parent_sale_line.lots','_parent_shipment_in.id')
+ @fields.depends('unit','auto_calculation','mode','_parent_line.unit','_parent_line.lots','_parent_sale_line.unit','_parent_sale_line.lots','_parent_shipment_in.id')
def on_change_with_quantity(self, name=None):
qt = None
unit = None
From 86b8d3e2509aadec94f9e2cba8990d513a2ed26a Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Thu, 5 Feb 2026 18:19:09 +0100
Subject: [PATCH 202/618] 05.02.26
---
modules/purchase_trade/fee.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index ac47466..050b693 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -100,7 +100,7 @@ class Fee(ModelSQL,ModelView):
if lqt:
return lqt[0].id
- @fields.depends('unit','auto_calculation','mode','_parent_line.unit','_parent_line.lots','_parent_sale_line.unit','_parent_sale_line.lots','_parent_shipment_in.id')
+ @fields.depends('line','sale_line','unit','auto_calculation','mode','_parent_line.unit','_parent_line.lots','_parent_sale_line.unit','_parent_sale_line.lots','_parent_shipment_in.id')
def on_change_with_quantity(self, name=None):
qt = None
unit = None
From 6c4ded50d0da0f7f8af679aff2e2eadfd171ff78 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Thu, 5 Feb 2026 19:19:45 +0100
Subject: [PATCH 203/618] 05.02.26
---
modules/purchase_trade/fee.py | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index 050b693..99bf636 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -100,7 +100,7 @@ class Fee(ModelSQL,ModelView):
if lqt:
return lqt[0].id
- @fields.depends('line','sale_line','unit','auto_calculation','mode','_parent_line.unit','_parent_line.lots','_parent_sale_line.unit','_parent_sale_line.lots','_parent_shipment_in.id')
+ @fields.depends('unit','auto_calculation','mode','_parent_line.unit','_parent_line.lots','_parent_sale_line.unit','_parent_sale_line.lots','_parent_shipment_in.id')
def on_change_with_quantity(self, name=None):
qt = None
unit = None
@@ -113,6 +113,13 @@ class Fee(ModelSQL,ModelView):
qt = sum([e.get_current_quantity() for e in line.lots])
unit = line.lots[0].lot_unit_line
logger.info("ON_CHANGE_WITH_QT0:%s",qt)
+ logger.info("ON_CHANGE_WITH_SHIPMENT_IN:%s",self.shipment_in)
+ if self.shipment_in:
+ Lot = Pool().get('lot.lot')
+ lots = Lot.search([('lot_shipment_in','=',self.shipment_in.id)])
+ logger.info("ON_CHANGE_WITH_LOTS:%s",lots)
+ if lots:
+ qt = sum([e.get_current_quantity() for e in lots])
if not qt:
logger.info("ON_CHANGE_WITH_QT1:%s",qt)
LotQt = Pool().get('lot.qt')
From c1ca8c707ce3c1f57b737d937cf6da897cdbb089 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Thu, 5 Feb 2026 19:29:06 +0100
Subject: [PATCH 204/618] 05.02.26
---
modules/purchase_trade/fee.py | 1 +
1 file changed, 1 insertion(+)
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index 99bf636..31c8cb0 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -120,6 +120,7 @@ class Fee(ModelSQL,ModelView):
logger.info("ON_CHANGE_WITH_LOTS:%s",lots)
if lots:
qt = sum([e.get_current_quantity() for e in lots])
+ unit = lots[0].lot_unit_line
if not qt:
logger.info("ON_CHANGE_WITH_QT1:%s",qt)
LotQt = Pool().get('lot.qt')
From 9235c22e041dea4f094646060a089e63f52ad62c Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Thu, 5 Feb 2026 19:36:55 +0100
Subject: [PATCH 205/618] 05.02.26
---
modules/purchase_trade/fee.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index 31c8cb0..44914cd 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -262,7 +262,7 @@ class Fee(ModelSQL,ModelView):
elif self.mode == 'ppack':
unit = self.get_unit()
if unit and self.unit:
- return self.price / self.unit.factor * unit.factor
+ return self.price / Decimal(self.unit.factor) * Decimal(unit.factor)
elif self.mode == 'pprice' or self.mode == 'pcost':
if self.line and self.price:
return round(self.price * Decimal(self.line.unit_price) / 100,4)
From d213328fd9603d83ab314ab410bdd9798e0be491 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Thu, 5 Feb 2026 19:40:38 +0100
Subject: [PATCH 206/618] 05.02.26
---
modules/purchase_trade/fee.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index 44914cd..c7a3b03 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -262,7 +262,7 @@ class Fee(ModelSQL,ModelView):
elif self.mode == 'ppack':
unit = self.get_unit()
if unit and self.unit:
- return self.price / Decimal(self.unit.factor) * Decimal(unit.factor)
+ return round(self.price / Decimal(self.unit.factor) * Decimal(unit.factor),4)
elif self.mode == 'pprice' or self.mode == 'pcost':
if self.line and self.price:
return round(self.price * Decimal(self.line.unit_price) / 100,4)
From 05d5d85beef3840375b40f6bb0e0a8eea90d545a Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Thu, 5 Feb 2026 19:46:23 +0100
Subject: [PATCH 207/618] 05.02.26
---
modules/purchase_trade/valuation.py | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/modules/purchase_trade/valuation.py b/modules/purchase_trade/valuation.py
index 35f4184..6ea8df4 100644
--- a/modules/purchase_trade/valuation.py
+++ b/modules/purchase_trade/valuation.py
@@ -43,14 +43,14 @@ class ValuationBase(ModelSQL):
counterparty = fields.Many2One('party.party',"Counterparty")
product = fields.Many2One('product.product',"Product")
state = fields.Char("State")
- price = fields.Numeric("Price",digits='unit')
+ price = fields.Numeric("Price",digits=(16,4))
currency = fields.Many2One('currency.currency',"Cur")
- quantity = fields.Numeric("Quantity",digits='unit')
+ quantity = fields.Numeric("Quantity",digits=(16,5))
unit = fields.Many2One('product.uom',"Unit")
- amount = fields.Numeric("Amount",digits='unit')
- mtm = fields.Numeric("Mtm",digits='unit')
+ amount = fields.Numeric("Amount",digits=(16,2))
+ mtm = fields.Numeric("Mtm",digits=(16,2))
lot = fields.Many2One('lot.lot',"Lot")
- base_amount = fields.Numeric("Base Amount",digits='unit')
+ base_amount = fields.Numeric("Base Amount",digits=(16,2))
rate = fields.Numeric("Rate", digits=(16,6))
@classmethod
From cd0c068b3f3a92314fe42c76ca8bdb20a85dae47 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Thu, 5 Feb 2026 19:54:14 +0100
Subject: [PATCH 208/618] 05.02.26
---
modules/purchase_trade/valuation.py | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/modules/purchase_trade/valuation.py b/modules/purchase_trade/valuation.py
index 6ea8df4..7cc4e64 100644
--- a/modules/purchase_trade/valuation.py
+++ b/modules/purchase_trade/valuation.py
@@ -260,14 +260,17 @@ class ValuationBase(ModelSQL):
fees = [e.fee for e in fl]
for sf in cls.group_fees_by_type_supplier(line, fees):
-
- price = Decimal(sf.get_price_per_qt())
+ sign = -1 if sf.p_r == 'pay' else 1
+ if sf.mode == 'ppack':
+ price = sf.price
+ amount = sf.amount
+ else:
+ price = Decimal(sf.get_price_per_qt())
+ amount = round(price * lot.get_current_quantity_converted() * sign, 2)
if sf.currency != line.purchase.currency:
with Transaction().set_context(date=Date.today()):
price = Currency.compute(sf.currency, price, line.purchase.currency)
- sign = -1 if sf.p_r == 'pay' else 1
-
fee_lines.append({
'lot': lot.id,
'sale': lot.sale_line.sale.id if lot.sale_line else None,
@@ -285,7 +288,7 @@ class ValuationBase(ModelSQL):
'product': sf.product.id,
'state': sf.type,
'quantity': round(lot.get_current_quantity_converted(), 5),
- 'amount': round(price * lot.get_current_quantity_converted() * sign, 2),
+ 'amount': amount,
'mtm': Decimal(0),
'unit': sf.unit.id if sf.unit else line.unit.id,
'currency': sf.currency.id,
From 03c7f4145788714e2f1590d59c5fe4c4dfd18db9 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sat, 7 Feb 2026 16:07:54 +0100
Subject: [PATCH 209/618] 07.02.26
---
modules/purchase_trade/__init__.py | 5 +
modules/purchase_trade/icons/tradon-mtm.svg | 13 ++
modules/purchase_trade/pricing.py | 213 +++++++++++++++++-
modules/purchase_trade/pricing.xml | 84 +++++++
modules/purchase_trade/purchase.py | 8 +-
modules/purchase_trade/sale.py | 8 +-
.../purchase_trade/view/mtm_scenario_tree.xml | 6 +
.../purchase_trade/view/mtm_strategy_form.xml | 10 +
.../purchase_trade/view/mtm_strategy_tree.xml | 5 +
.../purchase_trade/view/price_matrix_form.xml | 18 ++
.../view/price_matrix_line_tree.xml | 7 +
.../purchase_trade/view/price_matrix_tree.xml | 9 +
12 files changed, 370 insertions(+), 16 deletions(-)
create mode 100644 modules/purchase_trade/icons/tradon-mtm.svg
create mode 100644 modules/purchase_trade/view/mtm_scenario_tree.xml
create mode 100644 modules/purchase_trade/view/mtm_strategy_form.xml
create mode 100644 modules/purchase_trade/view/mtm_strategy_tree.xml
create mode 100644 modules/purchase_trade/view/price_matrix_form.xml
create mode 100644 modules/purchase_trade/view/price_matrix_line_tree.xml
create mode 100644 modules/purchase_trade/view/price_matrix_tree.xml
diff --git a/modules/purchase_trade/__init__.py b/modules/purchase_trade/__init__.py
index bd8fbc9..85b32de 100755
--- a/modules/purchase_trade/__init__.py
+++ b/modules/purchase_trade/__init__.py
@@ -172,6 +172,11 @@ def register():
forex.ForexCategory,
pricing.Component,
pricing.Mtm,
+ pricing.MtmStrategy,
+ pricing.MtmScenario,
+ pricing.MtmSnapshot,
+ pricing.PriceMatrix,
+ pricing.PriceMatrixLine,
pricing.Estimated,
pricing.Pricing,
pricing.Period,
diff --git a/modules/purchase_trade/icons/tradon-mtm.svg b/modules/purchase_trade/icons/tradon-mtm.svg
new file mode 100644
index 0000000..c5c7214
--- /dev/null
+++ b/modules/purchase_trade/icons/tradon-mtm.svg
@@ -0,0 +1,13 @@
+
+
+
+
\ No newline at end of file
diff --git a/modules/purchase_trade/pricing.py b/modules/purchase_trade/pricing.py
index a346d2d..a5d911e 100755
--- a/modules/purchase_trade/pricing.py
+++ b/modules/purchase_trade/pricing.py
@@ -50,8 +50,6 @@ DAYS = [
('sunday', 'Sunday'),
]
-
-
class Estimated(ModelSQL, ModelView):
"Estimated date"
__name__ = 'pricing.estimated'
@@ -59,21 +57,212 @@ class Estimated(ModelSQL, ModelView):
trigger = fields.Selection(TRIGGERS,"Trigger")
estimated_date = fields.Date("Estimated date")
+class MtmScenario(ModelSQL, ModelView):
+ "MtM Scenario"
+ __name__ = 'mtm.scenario'
+
+ name = fields.Char("Scenario", required=True)
+ valuation_date = fields.Date("Valuation Date", required=True)
+ use_last_price = fields.Boolean("Use Last Available Price")
+ calendar = fields.Many2One(
+ 'price.calendar', "Calendar"
+ )
+
+class MtmStrategy(ModelSQL, ModelView):
+ "Mark to Market Strategy"
+ __name__ = 'mtm.strategy'
+
+ name = fields.Char("Name", required=True)
+ active = fields.Boolean("Active", select=True)
+
+ scenario = fields.Many2One(
+ 'mtm.scenario', "Scenario", required=True
+ )
+
+ currency = fields.Many2One(
+ 'currency.currency', "Valuation Currency"
+ )
+
+ components = fields.One2Many(
+ 'mtm.component', 'strategy', "Components"
+ )
+
+ def compute_mtm(self):
+ pool = Pool()
+ Currency = pool.get('currency.currency')
+ total = Decimal(0)
+
+ scenario = self.scenario
+ dt = scenario.valuation_date
+
+ for comp in self.components:
+ value = Decimal(0)
+
+ if comp.price_source_type == 'curve' and comp.price_curve:
+ value = Decimal(
+ comp.price_curve.get_price(
+ dt,
+ self.purchase_line.unit,
+ self.currency,
+ last=scenario.use_last_price
+ )
+ )
+
+ elif comp.price_source_type == 'matrix' and comp.price_matrix:
+ value = self._get_matrix_price(comp, dt)
+
+ if comp.ratio:
+ value *= Decimal(comp.ratio)
+
+ total += value
+
+ return total
+
+ def _get_matrix_price(self, comp, dt):
+ MatrixLine = Pool().get('price.matrix.line')
+
+ domain = [
+ ('matrix', '=', comp.price_matrix.id),
+ ]
+
+ if self.purchase_line:
+ domain += [
+ ('origin', '=', self.purchase_line.from_location),
+ ('destination', '=', self.purchase_line.to_location),
+ ]
+
+ lines = MatrixLine.search(domain)
+ if lines:
+ return Decimal(lines[0].price_value)
+
+ return Decimal(0)
+
+ def run_daily_mtm():
+ Strategy = Pool().get('mtm.strategy')
+ Snapshot = Pool().get('mtm.snapshot')
+
+ for strat in Strategy.search([('active', '=', True)]):
+ amount = strat.compute_mtm()
+ Snapshot.create([{
+ 'strategy': strat.id,
+ 'valuation_date': strat.scenario.valuation_date,
+ 'amount': amount,
+ 'currency': strat.currency.id,
+ }])
+
class Mtm(ModelSQL, ModelView):
- "Mtm"
+ "MtM Component"
__name__ = 'mtm.component'
- fix_type = fields.Many2One('price.fixtype',"Fixation type")
- ratio = fields.Numeric("%")
- price_index = fields.Many2One('price.price',"Curve")
- currency = fields.Function(fields.Many2One('currency.currency',"Curr."),'get_cur')
+ strategy = fields.Many2One(
+ 'mtm.strategy', "Strategy",
+ required=True, ondelete='CASCADE'
+ )
- def get_cur(self,name):
+ name = fields.Char("Component", required=True)
+
+ component_type = fields.Selection([
+ ('commodity', 'Commodity'),
+ ('freight', 'Freight'),
+ ('quality', 'Quality'),
+ ('fx', 'FX'),
+ ('storage', 'Storage'),
+ ('other', 'Other'),
+ ], "Type", required=True)
+
+ fix_type = fields.Many2One('price.fixtype', "Fixation Type")
+
+ price_source_type = fields.Selection([
+ ('curve', 'Curve'),
+ ('matrix', 'Matrix'),
+ ('manual', 'Manual'),
+ ], "Price Source", required=True)
+
+ price_index = fields.Many2One('price.price', "Price Curve")
+ price_matrix = fields.Many2One('price.matrix', "Price Matrix")
+
+ ratio = fields.Numeric("Ratio / %", digits=(16, 6))
+
+ manual_price = fields.Numeric(
+ "Manual Price",
+ digits=(16, 6),
+ help="Price set manually if price_source_type is 'manual'"
+ )
+
+ currency = fields.Many2One('currency.currency', "Currency")
+
+ def get_cur(self, name=None):
if self.price_index:
- PI = Pool().get('price.price')
- pi = PI(self.price_index)
- return pi.price_currency
-
+ return self.price_index.price_currency
+ if self.price_matrix:
+ return self.price_matrix.currency
+ return None
+
+ @fields.depends('price_index','price_matrix')
+ def on_change_with_currency(self):
+ return self.get_cur()
+
+class PriceMatrix(ModelSQL, ModelView):
+ "Price Matrix"
+ __name__ = 'price.matrix'
+
+ name = fields.Char("Name", required=True)
+
+ matrix_type = fields.Selection([
+ ('freight', 'Freight'),
+ ('location', 'Location Spread'),
+ ('quality', 'Quality'),
+ ('storage', 'Storage'),
+ ('other', 'Other'),
+ ], "Matrix Type", required=True)
+
+ unit = fields.Many2One('product.uom', "Unit")
+ currency = fields.Many2One('currency.currency', "Currency")
+
+ calendar = fields.Many2One(
+ 'price.calendar', "Calendar"
+ )
+
+ valid_from = fields.Date("Valid From")
+ valid_to = fields.Date("Valid To")
+
+ lines = fields.One2Many(
+ 'price.matrix.line', 'matrix', "Lines"
+ )
+
+class PriceMatrixLine(ModelSQL, ModelView):
+ "Price Matrix Line"
+ __name__ = 'price.matrix.line'
+
+ matrix = fields.Many2One(
+ 'price.matrix', "Matrix",
+ required=True, ondelete='CASCADE'
+ )
+
+ origin = fields.Many2One('stock.location', "Origin")
+ destination = fields.Many2One('stock.location', "Destination")
+
+ product = fields.Many2One('product.product', "Product")
+ quality = fields.Many2One('product.quality', "Quality")
+
+ price_value = fields.Numeric("Price", digits=(16, 6))
+
+class MtmSnapshot(ModelSQL, ModelView):
+ "MtM Snapshot"
+ __name__ = 'mtm.snapshot'
+
+ strategy = fields.Many2One(
+ 'mtm.strategy', "Strategy",
+ required=True, ondelete='CASCADE'
+ )
+
+ valuation_date = fields.Date("Valuation Date", required=True)
+
+ amount = fields.Numeric("MtM Amount", digits=(16, 6))
+ currency = fields.Many2One('currency.currency', "Currency")
+
+ created_at = fields.DateTime("Created At")
+
class Component(ModelSQL, ModelView):
"Component"
__name__ = 'pricing.component'
diff --git a/modules/purchase_trade/pricing.xml b/modules/purchase_trade/pricing.xml
index 6fbb83d..890c7b2 100755
--- a/modules/purchase_trade/pricing.xml
+++ b/modules/purchase_trade/pricing.xml
@@ -3,6 +3,11 @@
this repository contains the full copyright notices and license terms. -->
+
+ tradon-mtm
+ icons/tradon-mtm.svg
+
+
sale.pricing.summary
tree
@@ -104,5 +109,84 @@ this repository contains the full copyright notices and license terms. -->
form
period_form
+
+
+ mtm.scenario
+ form
+ mtm_scenario_form
+
+
+ mtm.scenario
+ tree
+ mtm_scenario_tree
+
+
+ mtm.strategy
+ form
+ mtm_strategy_form
+
+
+ mtm.strategy
+ tree
+ mtm_strategy_tree
+
+
+ price.matrix
+ form
+ price_matrix_form
+
+
+ price.matrix
+ tree
+ price_matrix_tree
+
+
+
+
+
+ Strategy
+ mtm.strategy
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index c3d046a..0054eb4 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -64,7 +64,7 @@ class DocTypeTemplate(ModelSQL):
class Mtm(metaclass=PoolMeta):
"Mtm"
__name__ = 'mtm.component'
- line = fields.Many2One('purchase.line')
+ line = fields.Many2One('purchase.line',"Line",ondelete='CASCADE')
class Estimated(metaclass=PoolMeta):
"Estimated date"
@@ -422,7 +422,11 @@ class Line(metaclass=PoolMeta):
purchase_line = fields.Many2One('purchase.line',"Lines")
fees = fields.One2Many('fee.fee', 'line', 'Fees')#, filter=[('product.type', '=', 'service')])
derivatives = fields.One2Many('derivative.derivative','line',"Derivatives")
- mtm = fields.One2Many('mtm.component','line',"Mtm")
+ # mtm = fields.One2Many('mtm.component','line',"Mtm")
+ mtm = fields.One2Many(
+ 'mtm.strategy', 'line',
+ "MtM Strategies"
+ )
tol_min = fields.Numeric("Tol - in %",states={
'readonly': (Eval('inherit_tol')),
})
diff --git a/modules/purchase_trade/sale.py b/modules/purchase_trade/sale.py
index b616122..6ab4ad4 100755
--- a/modules/purchase_trade/sale.py
+++ b/modules/purchase_trade/sale.py
@@ -55,7 +55,7 @@ class OpenPosition(metaclass=PoolMeta):
class Mtm(metaclass=PoolMeta):
"Mtm"
__name__ = 'mtm.component'
- sale_line = fields.Many2One('sale.line',"Line")
+ sale_line = fields.Many2One('sale.line',"Line",ondelete='CASCADE')
class Component(metaclass=PoolMeta):
"Component"
@@ -363,7 +363,11 @@ class SaleLine(metaclass=PoolMeta):
from_del = fields.Date("From")
to_del = fields.Date("To")
price_components = fields.One2Many('pricing.component','sale_line',"Components")
- mtm = fields.One2Many('mtm.component','sale_line',"Mtm")
+ # mtm = fields.One2Many('mtm.component','sale_line',"Mtm")
+ mtm = fields.One2Many(
+ 'mtm.strategy', 'sale_line',
+ "MtM Strategies"
+ )
derivatives = fields.One2Many('derivative.derivative','sale_line',"Derivatives")
price_pricing = fields.One2Many('pricing.pricing','sale_line',"Pricing")
price_summary = fields.One2Many('sale.pricing.summary','sale_line',"Summary")
diff --git a/modules/purchase_trade/view/mtm_scenario_tree.xml b/modules/purchase_trade/view/mtm_scenario_tree.xml
new file mode 100644
index 0000000..4a3bf12
--- /dev/null
+++ b/modules/purchase_trade/view/mtm_scenario_tree.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/purchase_trade/view/mtm_strategy_form.xml b/modules/purchase_trade/view/mtm_strategy_form.xml
new file mode 100644
index 0000000..061d23a
--- /dev/null
+++ b/modules/purchase_trade/view/mtm_strategy_form.xml
@@ -0,0 +1,10 @@
+
\ No newline at end of file
diff --git a/modules/purchase_trade/view/mtm_strategy_tree.xml b/modules/purchase_trade/view/mtm_strategy_tree.xml
new file mode 100644
index 0000000..baabb46
--- /dev/null
+++ b/modules/purchase_trade/view/mtm_strategy_tree.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/purchase_trade/view/price_matrix_form.xml b/modules/purchase_trade/view/price_matrix_form.xml
new file mode 100644
index 0000000..ef115bd
--- /dev/null
+++ b/modules/purchase_trade/view/price_matrix_form.xml
@@ -0,0 +1,18 @@
+
\ No newline at end of file
diff --git a/modules/purchase_trade/view/price_matrix_line_tree.xml b/modules/purchase_trade/view/price_matrix_line_tree.xml
new file mode 100644
index 0000000..e94e62a
--- /dev/null
+++ b/modules/purchase_trade/view/price_matrix_line_tree.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/purchase_trade/view/price_matrix_tree.xml b/modules/purchase_trade/view/price_matrix_tree.xml
new file mode 100644
index 0000000..c8f4488
--- /dev/null
+++ b/modules/purchase_trade/view/price_matrix_tree.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
From 95589bcf734535b327f665ae6052a9cc89b06719 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sat, 7 Feb 2026 16:10:00 +0100
Subject: [PATCH 210/618] 07.02.26
---
modules/purchase_trade/pricing.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/purchase_trade/pricing.py b/modules/purchase_trade/pricing.py
index a5d911e..d804a46 100755
--- a/modules/purchase_trade/pricing.py
+++ b/modules/purchase_trade/pricing.py
@@ -73,7 +73,7 @@ class MtmStrategy(ModelSQL, ModelView):
__name__ = 'mtm.strategy'
name = fields.Char("Name", required=True)
- active = fields.Boolean("Active", select=True)
+ active = fields.Boolean("Active")
scenario = fields.Many2One(
'mtm.scenario', "Scenario", required=True
From b0e19226ebc13ae96be8b54dd5ff696c5fc94943 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sat, 7 Feb 2026 16:13:36 +0100
Subject: [PATCH 211/618] 07.02.26
---
modules/purchase_trade/pricing.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/purchase_trade/pricing.py b/modules/purchase_trade/pricing.py
index d804a46..33e3c76 100755
--- a/modules/purchase_trade/pricing.py
+++ b/modules/purchase_trade/pricing.py
@@ -243,7 +243,7 @@ class PriceMatrixLine(ModelSQL, ModelView):
destination = fields.Many2One('stock.location', "Destination")
product = fields.Many2One('product.product', "Product")
- quality = fields.Many2One('product.quality', "Quality")
+ quality = fields.Many2One('product.category', "Quality")
price_value = fields.Numeric("Price", digits=(16, 6))
From 0f3497e8674eedbf9ec62174bcd6271bb2baf6ff Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sat, 7 Feb 2026 16:23:58 +0100
Subject: [PATCH 212/618] 07.02.26
---
modules/purchase_trade/purchase.py | 6 +++---
modules/purchase_trade/sale.py | 6 +++---
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index 0054eb4..47f14c4 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -61,9 +61,9 @@ class DocTypeTemplate(ModelSQL):
template = fields.Many2One('doc.template')
type = fields.Many2One('document.type')
-class Mtm(metaclass=PoolMeta):
- "Mtm"
- __name__ = 'mtm.component'
+class MtmStrategy(metaclass=PoolMeta):
+ "Mtm Strategy"
+ __name__ = 'mtm.strategy'
line = fields.Many2One('purchase.line',"Line",ondelete='CASCADE')
class Estimated(metaclass=PoolMeta):
diff --git a/modules/purchase_trade/sale.py b/modules/purchase_trade/sale.py
index 6ab4ad4..ba5fa32 100755
--- a/modules/purchase_trade/sale.py
+++ b/modules/purchase_trade/sale.py
@@ -52,9 +52,9 @@ class OpenPosition(metaclass=PoolMeta):
sale_line = fields.Many2One('sale.line',"Sale Line")
client = fields.Many2One('party.party',"Client")
-class Mtm(metaclass=PoolMeta):
- "Mtm"
- __name__ = 'mtm.component'
+class MtmStrategy(metaclass=PoolMeta):
+ "Mtm Strategy"
+ __name__ = 'mtm.strategy'
sale_line = fields.Many2One('sale.line',"Line",ondelete='CASCADE')
class Component(metaclass=PoolMeta):
From 45ab8e8904ed23159c5897c64ee2cbd84c066fc9 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sat, 7 Feb 2026 16:25:37 +0100
Subject: [PATCH 213/618] 07.02.26
---
modules/purchase_trade/__init__.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/modules/purchase_trade/__init__.py b/modules/purchase_trade/__init__.py
index 85b32de..13a1881 100755
--- a/modules/purchase_trade/__init__.py
+++ b/modules/purchase_trade/__init__.py
@@ -163,7 +163,7 @@ def register():
purchase.ContractDocumentType,
purchase.DocTemplate,
purchase.DocTypeTemplate,
- purchase.Mtm,
+ purchase.MtmStrategy,
weight_report.WeightReport,
module='purchase', type_='model')
Pool.register(
@@ -204,7 +204,7 @@ def register():
forex.SForex,
forex.ForexCoverPhysicalSale,
sale.ContractDocumentType,
- sale.Mtm,
+ sale.MtmStrategy,
sale.OpenPosition,
module='sale', type_='model')
Pool.register(
From d47c2cb5fb9a7605e0dcb23d2423458d8ad85525 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sat, 7 Feb 2026 16:28:00 +0100
Subject: [PATCH 214/618] 07.02.26
---
modules/purchase_trade/pricing.xml | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/modules/purchase_trade/pricing.xml b/modules/purchase_trade/pricing.xml
index 890c7b2..cea8f9d 100755
--- a/modules/purchase_trade/pricing.xml
+++ b/modules/purchase_trade/pricing.xml
@@ -165,15 +165,15 @@ this repository contains the full copyright notices and license terms. -->
Strategy
mtm.strategy
-
+
-
+
-
+
-
+
Date: Sat, 7 Feb 2026 16:32:12 +0100
Subject: [PATCH 215/618] 07.02.26
---
modules/purchase_trade/icons/tradon-mtm.svg | 17 ++++++++++-------
modules/purchase_trade/icons/tradon-mtm_.svg | 13 +++++++++++++
2 files changed, 23 insertions(+), 7 deletions(-)
create mode 100644 modules/purchase_trade/icons/tradon-mtm_.svg
diff --git a/modules/purchase_trade/icons/tradon-mtm.svg b/modules/purchase_trade/icons/tradon-mtm.svg
index c5c7214..128ee7a 100644
--- a/modules/purchase_trade/icons/tradon-mtm.svg
+++ b/modules/purchase_trade/icons/tradon-mtm.svg
@@ -1,13 +1,16 @@
+ "/>
\ No newline at end of file
diff --git a/modules/purchase_trade/icons/tradon-mtm_.svg b/modules/purchase_trade/icons/tradon-mtm_.svg
new file mode 100644
index 0000000..c5c7214
--- /dev/null
+++ b/modules/purchase_trade/icons/tradon-mtm_.svg
@@ -0,0 +1,13 @@
+
+
+
+
\ No newline at end of file
From a35e304561372a5afe928bc11f9c3a1c7a7b226c Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sat, 7 Feb 2026 16:39:34 +0100
Subject: [PATCH 216/618] 07.02.26
---
modules/purchase_trade/pricing.xml | 10 +++++-----
modules/purchase_trade/view/mtm_scenario_form.xml | 10 ++++++++++
2 files changed, 15 insertions(+), 5 deletions(-)
create mode 100644 modules/purchase_trade/view/mtm_scenario_form.xml
diff --git a/modules/purchase_trade/pricing.xml b/modules/purchase_trade/pricing.xml
index cea8f9d..ec6f73c 100755
--- a/modules/purchase_trade/pricing.xml
+++ b/modules/purchase_trade/pricing.xml
@@ -140,15 +140,15 @@ this repository contains the full copyright notices and license terms. -->
tree
price_matrix_tree
+
+ price.matrix.line
+ tree
+ price_matrix_line_tree
+
-
tree
price_matrix_tree
-
+
price.matrix.line
tree
price_matrix_line_tree
From 1b92b1d207c977f2fecc43645f4a27e73022dff2 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sat, 7 Feb 2026 17:08:29 +0100
Subject: [PATCH 218/618] 07.02.26
---
modules/purchase_trade/__init__.py | 2 --
modules/purchase_trade/pricing.py | 7 +++++++
modules/purchase_trade/purchase.py | 11 +----------
modules/purchase_trade/sale.py | 11 +----------
4 files changed, 9 insertions(+), 22 deletions(-)
diff --git a/modules/purchase_trade/__init__.py b/modules/purchase_trade/__init__.py
index 13a1881..9152f17 100755
--- a/modules/purchase_trade/__init__.py
+++ b/modules/purchase_trade/__init__.py
@@ -163,7 +163,6 @@ def register():
purchase.ContractDocumentType,
purchase.DocTemplate,
purchase.DocTypeTemplate,
- purchase.MtmStrategy,
weight_report.WeightReport,
module='purchase', type_='model')
Pool.register(
@@ -204,7 +203,6 @@ def register():
forex.SForex,
forex.ForexCoverPhysicalSale,
sale.ContractDocumentType,
- sale.MtmStrategy,
sale.OpenPosition,
module='sale', type_='model')
Pool.register(
diff --git a/modules/purchase_trade/pricing.py b/modules/purchase_trade/pricing.py
index 33e3c76..1910436 100755
--- a/modules/purchase_trade/pricing.py
+++ b/modules/purchase_trade/pricing.py
@@ -50,6 +50,13 @@ DAYS = [
('sunday', 'Sunday'),
]
+class ContractStrategy(ModelSQL):
+ "Contract - Document Type"
+ __name__ = 'contract.strategy'
+ line = fields.Many2One('purchase.line', 'Purchase Line')
+ sale_line = fields.Many2One('sale.line', 'Sale Line')
+ strategy = fields.Many2One('mtm.strategy', "Strategy")
+
class Estimated(ModelSQL, ModelView):
"Estimated date"
__name__ = 'pricing.estimated'
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index 47f14c4..845374f 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -61,11 +61,6 @@ class DocTypeTemplate(ModelSQL):
template = fields.Many2One('doc.template')
type = fields.Many2One('document.type')
-class MtmStrategy(metaclass=PoolMeta):
- "Mtm Strategy"
- __name__ = 'mtm.strategy'
- line = fields.Many2One('purchase.line',"Line",ondelete='CASCADE')
-
class Estimated(metaclass=PoolMeta):
"Estimated date"
__name__ = 'pricing.estimated'
@@ -422,11 +417,7 @@ class Line(metaclass=PoolMeta):
purchase_line = fields.Many2One('purchase.line',"Lines")
fees = fields.One2Many('fee.fee', 'line', 'Fees')#, filter=[('product.type', '=', 'service')])
derivatives = fields.One2Many('derivative.derivative','line',"Derivatives")
- # mtm = fields.One2Many('mtm.component','line',"Mtm")
- mtm = fields.One2Many(
- 'mtm.strategy', 'line',
- "MtM Strategies"
- )
+ mtm = fields.Many2Many('contract.strategy', 'line', 'strategy', 'Mtm Strategy')
tol_min = fields.Numeric("Tol - in %",states={
'readonly': (Eval('inherit_tol')),
})
diff --git a/modules/purchase_trade/sale.py b/modules/purchase_trade/sale.py
index ba5fa32..34a62cc 100755
--- a/modules/purchase_trade/sale.py
+++ b/modules/purchase_trade/sale.py
@@ -52,11 +52,6 @@ class OpenPosition(metaclass=PoolMeta):
sale_line = fields.Many2One('sale.line',"Sale Line")
client = fields.Many2One('party.party',"Client")
-class MtmStrategy(metaclass=PoolMeta):
- "Mtm Strategy"
- __name__ = 'mtm.strategy'
- sale_line = fields.Many2One('sale.line',"Line",ondelete='CASCADE')
-
class Component(metaclass=PoolMeta):
"Component"
__name__ = 'pricing.component'
@@ -363,11 +358,7 @@ class SaleLine(metaclass=PoolMeta):
from_del = fields.Date("From")
to_del = fields.Date("To")
price_components = fields.One2Many('pricing.component','sale_line',"Components")
- # mtm = fields.One2Many('mtm.component','sale_line',"Mtm")
- mtm = fields.One2Many(
- 'mtm.strategy', 'sale_line',
- "MtM Strategies"
- )
+ mtm = fields.Many2Many('contract.strategy', 'sale_line', 'strategy', 'Mtm Strategy')
derivatives = fields.One2Many('derivative.derivative','sale_line',"Derivatives")
price_pricing = fields.One2Many('pricing.pricing','sale_line',"Pricing")
price_summary = fields.One2Many('sale.pricing.summary','sale_line',"Summary")
From 5255959614f04f15fec70e5c7a106f779843b4c2 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sat, 7 Feb 2026 17:11:13 +0100
Subject: [PATCH 219/618] 07.02.26
---
modules/purchase_trade/__init__.py | 1 +
1 file changed, 1 insertion(+)
diff --git a/modules/purchase_trade/__init__.py b/modules/purchase_trade/__init__.py
index 9152f17..ddb2a70 100755
--- a/modules/purchase_trade/__init__.py
+++ b/modules/purchase_trade/__init__.py
@@ -174,6 +174,7 @@ def register():
pricing.MtmStrategy,
pricing.MtmScenario,
pricing.MtmSnapshot,
+ pricing.ContractStrategy,
pricing.PriceMatrix,
pricing.PriceMatrixLine,
pricing.Estimated,
From 9095f3b470cc9190de487134df833bdc977c8724 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sat, 7 Feb 2026 19:18:42 +0100
Subject: [PATCH 220/618] 07.02.26
---
modules/purchase_trade/__init__.py | 3 ++-
modules/purchase_trade/pricing.py | 7 -------
modules/purchase_trade/purchase.py | 8 +++++++-
modules/purchase_trade/sale.py | 8 +++++++-
4 files changed, 16 insertions(+), 10 deletions(-)
diff --git a/modules/purchase_trade/__init__.py b/modules/purchase_trade/__init__.py
index ddb2a70..b2fa644 100755
--- a/modules/purchase_trade/__init__.py
+++ b/modules/purchase_trade/__init__.py
@@ -163,6 +163,7 @@ def register():
purchase.ContractDocumentType,
purchase.DocTemplate,
purchase.DocTypeTemplate,
+ purchase.PurchaseStrategy,
weight_report.WeightReport,
module='purchase', type_='model')
Pool.register(
@@ -174,7 +175,6 @@ def register():
pricing.MtmStrategy,
pricing.MtmScenario,
pricing.MtmSnapshot,
- pricing.ContractStrategy,
pricing.PriceMatrix,
pricing.PriceMatrixLine,
pricing.Estimated,
@@ -204,6 +204,7 @@ def register():
forex.SForex,
forex.ForexCoverPhysicalSale,
sale.ContractDocumentType,
+ sale.SaleStrategy,
sale.OpenPosition,
module='sale', type_='model')
Pool.register(
diff --git a/modules/purchase_trade/pricing.py b/modules/purchase_trade/pricing.py
index 1910436..33e3c76 100755
--- a/modules/purchase_trade/pricing.py
+++ b/modules/purchase_trade/pricing.py
@@ -50,13 +50,6 @@ DAYS = [
('sunday', 'Sunday'),
]
-class ContractStrategy(ModelSQL):
- "Contract - Document Type"
- __name__ = 'contract.strategy'
- line = fields.Many2One('purchase.line', 'Purchase Line')
- sale_line = fields.Many2One('sale.line', 'Sale Line')
- strategy = fields.Many2One('mtm.strategy', "Strategy")
-
class Estimated(ModelSQL, ModelView):
"Estimated date"
__name__ = 'pricing.estimated'
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index 845374f..1901858 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -61,6 +61,12 @@ class DocTypeTemplate(ModelSQL):
template = fields.Many2One('doc.template')
type = fields.Many2One('document.type')
+class PurchaseStrategy(ModelSQL):
+ "Purchase - Document Type"
+ __name__ = 'purchase.strategy'
+ line = fields.Many2One('purchase.line', 'Purchase Line')
+ strategy = fields.Many2One('mtm.strategy', "Strategy")
+
class Estimated(metaclass=PoolMeta):
"Estimated date"
__name__ = 'pricing.estimated'
@@ -417,7 +423,7 @@ class Line(metaclass=PoolMeta):
purchase_line = fields.Many2One('purchase.line',"Lines")
fees = fields.One2Many('fee.fee', 'line', 'Fees')#, filter=[('product.type', '=', 'service')])
derivatives = fields.One2Many('derivative.derivative','line',"Derivatives")
- mtm = fields.Many2Many('contract.strategy', 'line', 'strategy', 'Mtm Strategy')
+ mtm = fields.Many2Many('purchase.strategy', 'line', 'strategy', 'Mtm Strategy')
tol_min = fields.Numeric("Tol - in %",states={
'readonly': (Eval('inherit_tol')),
})
diff --git a/modules/purchase_trade/sale.py b/modules/purchase_trade/sale.py
index 34a62cc..3b021cb 100755
--- a/modules/purchase_trade/sale.py
+++ b/modules/purchase_trade/sale.py
@@ -52,6 +52,12 @@ class OpenPosition(metaclass=PoolMeta):
sale_line = fields.Many2One('sale.line',"Sale Line")
client = fields.Many2One('party.party',"Client")
+class SaleStrategy(ModelSQL):
+ "Sale - Document Type"
+ __name__ = 'sale.strategy'
+ sale_line = fields.Many2One('sale.line', 'Sale Line')
+ strategy = fields.Many2One('mtm.strategy', "Strategy")
+
class Component(metaclass=PoolMeta):
"Component"
__name__ = 'pricing.component'
@@ -358,7 +364,7 @@ class SaleLine(metaclass=PoolMeta):
from_del = fields.Date("From")
to_del = fields.Date("To")
price_components = fields.One2Many('pricing.component','sale_line',"Components")
- mtm = fields.Many2Many('contract.strategy', 'sale_line', 'strategy', 'Mtm Strategy')
+ mtm = fields.Many2Many('sale.strategy', 'sale_line', 'strategy', 'Mtm Strategy')
derivatives = fields.One2Many('derivative.derivative','sale_line',"Derivatives")
price_pricing = fields.One2Many('pricing.pricing','sale_line',"Pricing")
price_summary = fields.One2Many('sale.pricing.summary','sale_line',"Summary")
From 34166dedc66f8bcb5cb92572b585af308e3716ec Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sat, 7 Feb 2026 19:31:54 +0100
Subject: [PATCH 221/618] 07.02.26
---
modules/purchase_trade/pricing.py | 4 ++++
modules/purchase_trade/purchase.py | 2 +-
modules/purchase_trade/view/mtm_strategy_form.xml | 2 ++
3 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/modules/purchase_trade/pricing.py b/modules/purchase_trade/pricing.py
index 33e3c76..6bc1231 100755
--- a/modules/purchase_trade/pricing.py
+++ b/modules/purchase_trade/pricing.py
@@ -87,6 +87,10 @@ class MtmStrategy(ModelSQL, ModelView):
'mtm.component', 'strategy', "Components"
)
+ @classmethod
+ def default_active(cls):
+ return True
+
def compute_mtm(self):
pool = Pool()
Currency = pool.get('currency.currency')
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index 1901858..fe05f6c 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -380,7 +380,7 @@ class Purchase(metaclass=PoolMeta):
if line.quantity_theorical:
OpenPosition = Pool().get('open.position')
- OpenPosition.create_from_purchase_line(line)
+ # OpenPosition.create_from_purchase_line(line)
#line unit_price calculation
if line.price_type == 'basis' and line.lots: #line.price_pricing and line.price_components and
diff --git a/modules/purchase_trade/view/mtm_strategy_form.xml b/modules/purchase_trade/view/mtm_strategy_form.xml
index 061d23a..712f4e9 100644
--- a/modules/purchase_trade/view/mtm_strategy_form.xml
+++ b/modules/purchase_trade/view/mtm_strategy_form.xml
@@ -5,6 +5,8 @@
+
+
\ No newline at end of file
From c1a4b442a3f2070dfb11a767adc985829b43391d Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sat, 7 Feb 2026 20:21:51 +0100
Subject: [PATCH 222/618] 07.02.26
---
modules/purchase_trade/__init__.py | 4 +
modules/purchase_trade/dimension.py | 79 +++++++++++++++++++
modules/purchase_trade/dimension.xml | 34 ++++++++
modules/purchase_trade/purchase.py | 5 ++
modules/purchase_trade/tryton.cfg | 3 +-
.../view/dimension_ass_form.xml | 6 ++
.../view/dimension_ass_tree.xml | 4 +
.../purchase_trade/view/dimension_form.xml | 8 ++
.../purchase_trade/view/dimension_tree.xml | 5 ++
.../view/dimension_value_form.xml | 14 ++++
.../view/dimension_value_tree.xml | 7 ++
modules/purchase_trade/view/purchase_form.xml | 3 +
12 files changed, 171 insertions(+), 1 deletion(-)
create mode 100644 modules/purchase_trade/dimension.py
create mode 100644 modules/purchase_trade/dimension.xml
create mode 100644 modules/purchase_trade/view/dimension_ass_form.xml
create mode 100644 modules/purchase_trade/view/dimension_ass_tree.xml
create mode 100644 modules/purchase_trade/view/dimension_form.xml
create mode 100644 modules/purchase_trade/view/dimension_tree.xml
create mode 100644 modules/purchase_trade/view/dimension_value_form.xml
create mode 100644 modules/purchase_trade/view/dimension_value_tree.xml
diff --git a/modules/purchase_trade/__init__.py b/modules/purchase_trade/__init__.py
index b2fa644..3ef10bb 100755
--- a/modules/purchase_trade/__init__.py
+++ b/modules/purchase_trade/__init__.py
@@ -28,6 +28,7 @@ from . import (
open_position,
credit_risk,
valuation,
+ dimension,
weight_report,
service,
)
@@ -164,6 +165,9 @@ def register():
purchase.DocTemplate,
purchase.DocTypeTemplate,
purchase.PurchaseStrategy,
+ dimension.AnalyticDimension,
+ dimension.AnalyticDimensionValue,
+ dimension.AnalyticDimensionAssignment,
weight_report.WeightReport,
module='purchase', type_='model')
Pool.register(
diff --git a/modules/purchase_trade/dimension.py b/modules/purchase_trade/dimension.py
new file mode 100644
index 0000000..ab3745c
--- /dev/null
+++ b/modules/purchase_trade/dimension.py
@@ -0,0 +1,79 @@
+from trytond.model import fields
+from trytond.pool import Pool, PoolMeta
+from trytond.pyson import Bool, Eval, Id
+from trytond.model import (ModelSQL, ModelView)
+from trytond.tools import is_full_text, lstrip_wildcard
+from trytond.transaction import Transaction, inactive_records
+from decimal import getcontext, Decimal, ROUND_HALF_UP
+from sql.aggregate import Count, Max, Min, Sum, Avg, BoolOr
+from sql.conditionals import Case
+from sql import Column, Literal
+from sql.functions import CurrentTimestamp, DateTrunc
+from trytond.wizard import Button, StateTransition, StateView, Wizard
+import datetime
+import logging
+
+class AnalyticDimension(ModelSQL, ModelView):
+ 'Analytic Dimension'
+ __name__ = 'analytic.dimension'
+
+ name = fields.Char('Name', required=True)
+ code = fields.Char('Code', required=True)
+ active = fields.Boolean('Active')
+
+class AnalyticDimensionValue(ModelSQL, ModelView):
+ 'Analytic Dimension Value'
+ __name__ = 'analytic.dimension.value'
+
+ dimension = fields.Many2One(
+ 'analytic.dimension',
+ 'Dimension',
+ required=True,
+ ondelete='CASCADE'
+ )
+
+ name = fields.Char('Name', required=True)
+ code = fields.Char('Code')
+
+ parent = fields.Many2One(
+ 'analytic.dimension.value',
+ 'Parent',
+ domain=[
+ ('dimension', '=', Eval('dimension')),
+ ],
+ depends=['dimension']
+ )
+
+ children = fields.One2Many(
+ 'analytic.dimension.value',
+ 'parent',
+ 'Children'
+ )
+
+ active = fields.Boolean('Active')
+
+class AnalyticDimensionAssignment(ModelSQL, ModelView):
+ 'Analytic Dimension Assignment'
+ __name__ = 'analytic.dimension.assignment'
+
+ dimension = fields.Many2One(
+ 'analytic.dimension',
+ 'Dimension',
+ required=True
+ )
+
+ value = fields.Many2One(
+ 'analytic.dimension.value',
+ 'Value',
+ required=True,
+ domain=[
+ ('dimension', '=', Eval('dimension')),
+ ],
+ depends=['dimension']
+ )
+
+ purchase = fields.Many2One(
+ 'purchase.purchase',
+ 'Purchase',
+ ondelete='CASCADE'
+ )
\ No newline at end of file
diff --git a/modules/purchase_trade/dimension.xml b/modules/purchase_trade/dimension.xml
new file mode 100644
index 0000000..bd896cf
--- /dev/null
+++ b/modules/purchase_trade/dimension.xml
@@ -0,0 +1,34 @@
+
+
+
+ analytic.dimension
+ form
+ dimension_form
+
+
+ analytic.dimension
+ tree
+ dimension_tree
+
+
+ analytic.dimension.value
+ form
+ dimension_value_form
+
+
+ analytic.dimension.value
+ tree
+ dimension_value_tree
+
+
+ analytic.dimension.assignment
+ form
+ dimension_ass_form
+
+
+ analytic.dimension.assignment
+ tree
+ dimension_ass_tree
+
+
+
\ No newline at end of file
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index fe05f6c..228e79c 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -269,6 +269,11 @@ class Purchase(metaclass=PoolMeta):
doc_template = fields.Many2One('doc.template',"Template")
required_documents = fields.Many2Many(
'contract.document.type', 'purchase', 'doc_type', 'Required Documents')
+ analytic_dimensions = fields.One2Many(
+ 'analytic.dimension.assignment',
+ 'purchase',
+ 'Analytic Dimensions'
+ )
@classmethod
def default_viewer(cls):
diff --git a/modules/purchase_trade/tryton.cfg b/modules/purchase_trade/tryton.cfg
index 5686126..16a1f53 100755
--- a/modules/purchase_trade/tryton.cfg
+++ b/modules/purchase_trade/tryton.cfg
@@ -30,4 +30,5 @@ xml:
global_reporting.xml
derivative.xml
valuation.xml
- weight_report.xml
\ No newline at end of file
+ weight_report.xml
+ dimension.xml
\ No newline at end of file
diff --git a/modules/purchase_trade/view/dimension_ass_form.xml b/modules/purchase_trade/view/dimension_ass_form.xml
new file mode 100644
index 0000000..6e5983a
--- /dev/null
+++ b/modules/purchase_trade/view/dimension_ass_form.xml
@@ -0,0 +1,6 @@
+
\ No newline at end of file
diff --git a/modules/purchase_trade/view/dimension_ass_tree.xml b/modules/purchase_trade/view/dimension_ass_tree.xml
new file mode 100644
index 0000000..1185564
--- /dev/null
+++ b/modules/purchase_trade/view/dimension_ass_tree.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/modules/purchase_trade/view/dimension_form.xml b/modules/purchase_trade/view/dimension_form.xml
new file mode 100644
index 0000000..67f1cca
--- /dev/null
+++ b/modules/purchase_trade/view/dimension_form.xml
@@ -0,0 +1,8 @@
+
\ No newline at end of file
diff --git a/modules/purchase_trade/view/dimension_tree.xml b/modules/purchase_trade/view/dimension_tree.xml
new file mode 100644
index 0000000..18c2825
--- /dev/null
+++ b/modules/purchase_trade/view/dimension_tree.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/purchase_trade/view/dimension_value_form.xml b/modules/purchase_trade/view/dimension_value_form.xml
new file mode 100644
index 0000000..08de0df
--- /dev/null
+++ b/modules/purchase_trade/view/dimension_value_form.xml
@@ -0,0 +1,14 @@
+
\ No newline at end of file
diff --git a/modules/purchase_trade/view/dimension_value_tree.xml b/modules/purchase_trade/view/dimension_value_tree.xml
new file mode 100644
index 0000000..1dbc391
--- /dev/null
+++ b/modules/purchase_trade/view/dimension_value_tree.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/purchase_trade/view/purchase_form.xml b/modules/purchase_trade/view/purchase_form.xml
index e7d8110..c72de46 100755
--- a/modules/purchase_trade/view/purchase_form.xml
+++ b/modules/purchase_trade/view/purchase_form.xml
@@ -59,5 +59,8 @@ this repository contains the full copyright notices and license terms. -->
+
+
+
\ No newline at end of file
From a09a88ff5fb8e9883de59b314e24c05e48eef064 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 8 Feb 2026 08:52:30 +0100
Subject: [PATCH 223/618] 08.02.26
---
modules/purchase_trade/__init__.py | 3 +
modules/purchase_trade/backtoback.py | 22 ++++++
modules/purchase_trade/backtoback.xml | 54 ++++++++++++++
modules/purchase_trade/icons/tradon-btb.svg | 14 ++++
modules/purchase_trade/sale.py | 6 ++
modules/purchase_trade/sale.xml | 6 ++
modules/purchase_trade/tryton.cfg | 3 +-
modules/purchase_trade/view/btb_form.xml | 10 +++
modules/purchase_trade/view/btb_tree.xml | 5 ++
.../purchase_trade/view/purchase_btb_form.xml | 70 ++++++++++++++++++
modules/purchase_trade/view/sale_btb_form.xml | 73 +++++++++++++++++++
11 files changed, 265 insertions(+), 1 deletion(-)
create mode 100644 modules/purchase_trade/backtoback.py
create mode 100644 modules/purchase_trade/backtoback.xml
create mode 100644 modules/purchase_trade/icons/tradon-btb.svg
create mode 100644 modules/purchase_trade/view/btb_form.xml
create mode 100644 modules/purchase_trade/view/btb_tree.xml
create mode 100644 modules/purchase_trade/view/purchase_btb_form.xml
create mode 100644 modules/purchase_trade/view/sale_btb_form.xml
diff --git a/modules/purchase_trade/__init__.py b/modules/purchase_trade/__init__.py
index 3ef10bb..499ce9d 100755
--- a/modules/purchase_trade/__init__.py
+++ b/modules/purchase_trade/__init__.py
@@ -30,6 +30,7 @@ from . import (
valuation,
dimension,
weight_report,
+ backtoback,
service,
)
@@ -165,6 +166,7 @@ def register():
purchase.DocTemplate,
purchase.DocTypeTemplate,
purchase.PurchaseStrategy,
+ backtoback.Backtoback,
dimension.AnalyticDimension,
dimension.AnalyticDimensionValue,
dimension.AnalyticDimensionAssignment,
@@ -210,6 +212,7 @@ def register():
sale.ContractDocumentType,
sale.SaleStrategy,
sale.OpenPosition,
+ sale.Backtoback,
module='sale', type_='model')
Pool.register(
lot.LotShipping,
diff --git a/modules/purchase_trade/backtoback.py b/modules/purchase_trade/backtoback.py
new file mode 100644
index 0000000..baf25d3
--- /dev/null
+++ b/modules/purchase_trade/backtoback.py
@@ -0,0 +1,22 @@
+from trytond.model import fields
+from trytond.pool import Pool, PoolMeta
+from trytond.pyson import Bool, Eval, Id
+from trytond.model import (ModelSQL, ModelView)
+from trytond.tools import is_full_text, lstrip_wildcard
+from trytond.transaction import Transaction, inactive_records
+from decimal import getcontext, Decimal, ROUND_HALF_UP
+from sql.aggregate import Count, Max, Min, Sum, Avg, BoolOr
+from sql.conditionals import Case
+from sql import Column, Literal
+from sql.functions import CurrentTimestamp, DateTrunc
+from trytond.wizard import Button, StateTransition, StateView, Wizard
+import datetime
+import logging
+
+class Backtoback(ModelSQL, ModelView):
+ 'Back To Back'
+ __name__ = 'back.to.back'
+
+ reference = fields.Char("Reference")
+ purchase = fields.One2Many('purchase.purchase', "Purchase")
+
\ No newline at end of file
diff --git a/modules/purchase_trade/backtoback.xml b/modules/purchase_trade/backtoback.xml
new file mode 100644
index 0000000..0facbc1
--- /dev/null
+++ b/modules/purchase_trade/backtoback.xml
@@ -0,0 +1,54 @@
+
+
+
+ tradon-btb
+ icons/tradon-btb.svg
+
+
+
+ back.to.back
+ form
+ btb_form
+
+
+
+ purchase.purchase
+ form
+ purchase_btb_form
+
+
+
+ back.to.back
+ tree
+ btb_tree
+
+
+
+ Back to back
+ back.to.back
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/purchase_trade/icons/tradon-btb.svg b/modules/purchase_trade/icons/tradon-btb.svg
new file mode 100644
index 0000000..779a456
--- /dev/null
+++ b/modules/purchase_trade/icons/tradon-btb.svg
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/modules/purchase_trade/sale.py b/modules/purchase_trade/sale.py
index 3b021cb..0537520 100755
--- a/modules/purchase_trade/sale.py
+++ b/modules/purchase_trade/sale.py
@@ -45,6 +45,12 @@ class FeeLots(metaclass=PoolMeta):
sale_line = fields.Many2One('sale.line',"Line")
+class Backtoback(metaclass=PoolMeta):
+ 'Back To Back'
+ __name__ = 'back.to.back'
+
+ sale = fields.One2Many('sale.sale', "Sale")
+
class OpenPosition(metaclass=PoolMeta):
"Open position"
__name__ = 'open.position'
diff --git a/modules/purchase_trade/sale.xml b/modules/purchase_trade/sale.xml
index f598208..a164d93 100755
--- a/modules/purchase_trade/sale.xml
+++ b/modules/purchase_trade/sale.xml
@@ -52,5 +52,11 @@ this repository contains the full copyright notices and license terms. -->
sale.sale,-1
+
+
+ sale.sale
+ form
+ sale_btb_form
+
\ No newline at end of file
diff --git a/modules/purchase_trade/tryton.cfg b/modules/purchase_trade/tryton.cfg
index 16a1f53..6a141bf 100755
--- a/modules/purchase_trade/tryton.cfg
+++ b/modules/purchase_trade/tryton.cfg
@@ -31,4 +31,5 @@ xml:
derivative.xml
valuation.xml
weight_report.xml
- dimension.xml
\ No newline at end of file
+ dimension.xml
+ backtoback.xml
\ No newline at end of file
diff --git a/modules/purchase_trade/view/btb_form.xml b/modules/purchase_trade/view/btb_form.xml
new file mode 100644
index 0000000..c84b09e
--- /dev/null
+++ b/modules/purchase_trade/view/btb_form.xml
@@ -0,0 +1,10 @@
+
\ No newline at end of file
diff --git a/modules/purchase_trade/view/btb_tree.xml b/modules/purchase_trade/view/btb_tree.xml
new file mode 100644
index 0000000..160e282
--- /dev/null
+++ b/modules/purchase_trade/view/btb_tree.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/purchase_trade/view/purchase_btb_form.xml b/modules/purchase_trade/view/purchase_btb_form.xml
new file mode 100644
index 0000000..286f506
--- /dev/null
+++ b/modules/purchase_trade/view/purchase_btb_form.xml
@@ -0,0 +1,70 @@
+
+
+
diff --git a/modules/purchase_trade/view/sale_btb_form.xml b/modules/purchase_trade/view/sale_btb_form.xml
new file mode 100644
index 0000000..fc9b3fa
--- /dev/null
+++ b/modules/purchase_trade/view/sale_btb_form.xml
@@ -0,0 +1,73 @@
+
+
+
From e57019b39cf54487785fd63029d5b1aa2d82527d Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 8 Feb 2026 08:58:03 +0100
Subject: [PATCH 224/618] 08.02.26
---
modules/purchase_trade/backtoback.py | 2 +-
modules/purchase_trade/purchase.py | 1 +
modules/purchase_trade/sale.py | 3 ++-
3 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/modules/purchase_trade/backtoback.py b/modules/purchase_trade/backtoback.py
index baf25d3..c4f0c30 100644
--- a/modules/purchase_trade/backtoback.py
+++ b/modules/purchase_trade/backtoback.py
@@ -18,5 +18,5 @@ class Backtoback(ModelSQL, ModelView):
__name__ = 'back.to.back'
reference = fields.Char("Reference")
- purchase = fields.One2Many('purchase.purchase', "Purchase")
+ purchase = fields.One2Many('purchase.purchase','btb', "Purchase")
\ No newline at end of file
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index 228e79c..74d9f8c 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -247,6 +247,7 @@ class PurchaseCrop(ModelSQL,ModelView):
class Purchase(metaclass=PoolMeta):
__name__ = 'purchase.purchase'
+ btb = fields.Many2One('back.to.back',"Back to back")
from_location = fields.Many2One('stock.location', 'From location',domain=[('type', "!=", 'customer')])
to_location = fields.Many2One('stock.location', 'To location',domain=[('type', "!=", 'supplier')])
shipment_in = fields.Many2One('stock.shipment.in','Purchases')
diff --git a/modules/purchase_trade/sale.py b/modules/purchase_trade/sale.py
index 0537520..8bfcb44 100755
--- a/modules/purchase_trade/sale.py
+++ b/modules/purchase_trade/sale.py
@@ -49,7 +49,7 @@ class Backtoback(metaclass=PoolMeta):
'Back To Back'
__name__ = 'back.to.back'
- sale = fields.One2Many('sale.sale', "Sale")
+ sale = fields.One2Many('sale.sale','btb', "Sale")
class OpenPosition(metaclass=PoolMeta):
"Open position"
@@ -210,6 +210,7 @@ class Lot(metaclass=PoolMeta):
class Sale(metaclass=PoolMeta):
__name__ = 'sale.sale'
+ btb = fields.Many2One('back.to.back',"Back to back")
from_location = fields.Many2One('stock.location', 'From location',domain=[('type', "!=", 'customer')])
to_location = fields.Many2One('stock.location', 'To location',domain=[('type', "!=", 'supplier')])
shipment_out = fields.Many2One('stock.shipment.out','Sales')
From b7927b787def4a4fba90b6d5ebca7ed7b87c583c Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 8 Feb 2026 09:00:54 +0100
Subject: [PATCH 225/618] 08.02.26
---
modules/purchase_trade/view/btb_form.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/purchase_trade/view/btb_form.xml b/modules/purchase_trade/view/btb_form.xml
index c84b09e..6bea69c 100644
--- a/modules/purchase_trade/view/btb_form.xml
+++ b/modules/purchase_trade/view/btb_form.xml
@@ -6,5 +6,5 @@
-
+
\ No newline at end of file
From 1d653b2756b5dea80c79aee2af6080e24196da6c Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 8 Feb 2026 09:04:04 +0100
Subject: [PATCH 226/618] 08.02.26
---
modules/purchase_trade/view/sale_btb_form.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/purchase_trade/view/sale_btb_form.xml b/modules/purchase_trade/view/sale_btb_form.xml
index fc9b3fa..014513b 100644
--- a/modules/purchase_trade/view/sale_btb_form.xml
+++ b/modules/purchase_trade/view/sale_btb_form.xml
@@ -24,7 +24,7 @@ this repository contains the full copyright notices and license terms. -->
-
+
From 762cfc66c17b9554bc9737de6a5f1de0a2cfbce6 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 8 Feb 2026 09:05:47 +0100
Subject: [PATCH 227/618] 08.02.26
---
modules/purchase_trade/view/purchase_btb_form.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/purchase_trade/view/purchase_btb_form.xml b/modules/purchase_trade/view/purchase_btb_form.xml
index 286f506..2f653d0 100644
--- a/modules/purchase_trade/view/purchase_btb_form.xml
+++ b/modules/purchase_trade/view/purchase_btb_form.xml
@@ -22,7 +22,7 @@ this repository contains the full copyright notices and license terms. -->
-
+
From cb6c1819f4c033df5498ba71a3fb682360441a38 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 8 Feb 2026 09:09:03 +0100
Subject: [PATCH 228/618] 08.02.26
---
modules/purchase_trade/view/btb_form.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/purchase_trade/view/btb_form.xml b/modules/purchase_trade/view/btb_form.xml
index 6bea69c..c84b09e 100644
--- a/modules/purchase_trade/view/btb_form.xml
+++ b/modules/purchase_trade/view/btb_form.xml
@@ -6,5 +6,5 @@
-
+
\ No newline at end of file
From 8c033f4eabd422f9f9136a1d99ac848ec8e567bb Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 8 Feb 2026 09:14:52 +0100
Subject: [PATCH 229/618] 08.02.26
---
modules/purchase_trade/view/btb_form.xml | 9 ++++-----
modules/purchase_trade/view/purchase_btb_form.xml | 9 ++++-----
modules/purchase_trade/view/sale_btb_form.xml | 8 ++++----
3 files changed, 12 insertions(+), 14 deletions(-)
diff --git a/modules/purchase_trade/view/btb_form.xml b/modules/purchase_trade/view/btb_form.xml
index c84b09e..a9f4d92 100644
--- a/modules/purchase_trade/view/btb_form.xml
+++ b/modules/purchase_trade/view/btb_form.xml
@@ -1,10 +1,9 @@
-
\ No newline at end of file
diff --git a/modules/purchase_trade/view/purchase_btb_form.xml b/modules/purchase_trade/view/purchase_btb_form.xml
index 2f653d0..ee2ba23 100644
--- a/modules/purchase_trade/view/purchase_btb_form.xml
+++ b/modules/purchase_trade/view/purchase_btb_form.xml
@@ -28,7 +28,7 @@ this repository contains the full copyright notices and license terms. -->
-
+
-
+ -->
-
+
@@ -65,6 +64,6 @@ this repository contains the full copyright notices and license terms. -->
-
+ -->
diff --git a/modules/purchase_trade/view/sale_btb_form.xml b/modules/purchase_trade/view/sale_btb_form.xml
index 014513b..5f48876 100644
--- a/modules/purchase_trade/view/sale_btb_form.xml
+++ b/modules/purchase_trade/view/sale_btb_form.xml
@@ -30,7 +30,7 @@ this repository contains the full copyright notices and license terms. -->
-
+
-
+ -->
-
+
-
+ -->
From d22610abb332e5553ca1283b3e9823e6cbcf3519 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 8 Feb 2026 09:18:35 +0100
Subject: [PATCH 230/618] 08.02.26
---
modules/purchase_trade/view/btb_form.xml | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/modules/purchase_trade/view/btb_form.xml b/modules/purchase_trade/view/btb_form.xml
index a9f4d92..6dd2617 100644
--- a/modules/purchase_trade/view/btb_form.xml
+++ b/modules/purchase_trade/view/btb_form.xml
@@ -1,9 +1,9 @@
-
\ No newline at end of file
From e009a9e1e368c60d7e2b488a797b00e5589c3f83 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 8 Feb 2026 09:22:43 +0100
Subject: [PATCH 231/618] 08.02.26
---
modules/purchase_trade/view/purchase_btb_form.xml | 6 +++---
modules/purchase_trade/view/sale_btb_form.xml | 6 +++---
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/modules/purchase_trade/view/purchase_btb_form.xml b/modules/purchase_trade/view/purchase_btb_form.xml
index ee2ba23..02bf32d 100644
--- a/modules/purchase_trade/view/purchase_btb_form.xml
+++ b/modules/purchase_trade/view/purchase_btb_form.xml
@@ -1,7 +1,7 @@
-
diff --git a/modules/purchase_trade/view/sale_btb_form.xml b/modules/purchase_trade/view/sale_btb_form.xml
index 5f48876..bb3f1a8 100644
--- a/modules/purchase_trade/view/sale_btb_form.xml
+++ b/modules/purchase_trade/view/sale_btb_form.xml
@@ -1,7 +1,7 @@
-
From 06d40ddbae61ecd6cbb5819734126825e112c901 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 8 Feb 2026 09:25:34 +0100
Subject: [PATCH 232/618] 08.02.26
---
modules/purchase_trade/view/purchase_btb_form.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/purchase_trade/view/purchase_btb_form.xml b/modules/purchase_trade/view/purchase_btb_form.xml
index 02bf32d..9d2187d 100644
--- a/modules/purchase_trade/view/purchase_btb_form.xml
+++ b/modules/purchase_trade/view/purchase_btb_form.xml
@@ -1,7 +1,7 @@
-
-
+
+
@@ -65,5 +65,5 @@ this repository contains the full copyright notices and license terms. -->
-->
-
+
diff --git a/modules/purchase_trade/view/sale_btb_form.xml b/modules/purchase_trade/view/sale_btb_form.xml
index dd0521f..acf6754 100644
--- a/modules/purchase_trade/view/sale_btb_form.xml
+++ b/modules/purchase_trade/view/sale_btb_form.xml
@@ -1,8 +1,8 @@
-
-
+
+
@@ -69,5 +69,5 @@ this repository contains the full copyright notices and license terms. -->
-->
-
+
From 1a2d59530325abfce8387409db2ecbca3529ca20 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 8 Feb 2026 09:40:37 +0100
Subject: [PATCH 237/618] 08.02.26
---
modules/purchase_trade/view/btb_form.xml | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/modules/purchase_trade/view/btb_form.xml b/modules/purchase_trade/view/btb_form.xml
index 600c929..24a8a62 100644
--- a/modules/purchase_trade/view/btb_form.xml
+++ b/modules/purchase_trade/view/btb_form.xml
@@ -1,9 +1,9 @@
-
+
-
-
-
-
+
+
+
+
\ No newline at end of file
From 225df5c6da5eb73380bcba760cd97def6e0ea1f2 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 8 Feb 2026 10:08:37 +0100
Subject: [PATCH 238/618] 08.02.26
---
modules/purchase_trade/view/purchase_btb_form.xml | 10 +++++-----
modules/purchase_trade/view/sale_btb_form.xml | 10 +++++-----
2 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/modules/purchase_trade/view/purchase_btb_form.xml b/modules/purchase_trade/view/purchase_btb_form.xml
index b8db5e4..a3ec8e8 100644
--- a/modules/purchase_trade/view/purchase_btb_form.xml
+++ b/modules/purchase_trade/view/purchase_btb_form.xml
@@ -24,11 +24,11 @@ this repository contains the full copyright notices and license terms. -->
-
-
+ -->
- -->
+
-
-
+ -->
- -->
+
-->
-
+
+
-->
-
+
+
-->
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/modules/purchase_trade/view/sale_btb_form.xml b/modules/purchase_trade/view/sale_btb_form.xml
index c19740d..0890e90 100644
--- a/modules/purchase_trade/view/sale_btb_form.xml
+++ b/modules/purchase_trade/view/sale_btb_form.xml
@@ -28,8 +28,8 @@ this repository contains the full copyright notices and license terms. -->
-->
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
From 319599444423528d436d52763315f976615523e2 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 8 Feb 2026 10:42:18 +0100
Subject: [PATCH 241/618] 08.02.26
---
.../purchase_trade/view/purchase_btb_form.xml | 43 +------------
.../view/purchase_line_btb_form.xml | 60 +++++++++----------
modules/purchase_trade/view/sale_btb_form.xml | 47 ++-------------
.../view/sale_line_btb_form.xml | 52 +++++++---------
4 files changed, 57 insertions(+), 145 deletions(-)
diff --git a/modules/purchase_trade/view/purchase_btb_form.xml b/modules/purchase_trade/view/purchase_btb_form.xml
index ad2e6bb..c38979d 100644
--- a/modules/purchase_trade/view/purchase_btb_form.xml
+++ b/modules/purchase_trade/view/purchase_btb_form.xml
@@ -24,46 +24,7 @@ this repository contains the full copyright notices and license terms. -->
-
-
-
-
-
-
-
+
+
diff --git a/modules/purchase_trade/view/purchase_line_btb_form.xml b/modules/purchase_trade/view/purchase_line_btb_form.xml
index 1284c25..32d26bc 100644
--- a/modules/purchase_trade/view/purchase_line_btb_form.xml
+++ b/modules/purchase_trade/view/purchase_line_btb_form.xml
@@ -4,35 +4,33 @@ this repository contains the full copyright notices and license terms. -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/modules/purchase_trade/view/sale_btb_form.xml b/modules/purchase_trade/view/sale_btb_form.xml
index 0890e90..62ba6fe 100644
--- a/modules/purchase_trade/view/sale_btb_form.xml
+++ b/modules/purchase_trade/view/sale_btb_form.xml
@@ -26,48 +26,9 @@ this repository contains the full copyright notices and license terms. -->
-
-
-
-
-
-
-
+
+
+
+
diff --git a/modules/purchase_trade/view/sale_line_btb_form.xml b/modules/purchase_trade/view/sale_line_btb_form.xml
index becf4d0..bb4fb04 100644
--- a/modules/purchase_trade/view/sale_line_btb_form.xml
+++ b/modules/purchase_trade/view/sale_line_btb_form.xml
@@ -4,34 +4,26 @@ this repository contains the full copyright notices and license terms. -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
From 6a0acb1c203c8050eae62acf293dd8e0168202dd Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 8 Feb 2026 10:58:08 +0100
Subject: [PATCH 242/618] 08.02.26
---
modules/purchase_trade/view/purchase_btb_form.xml | 2 +-
modules/purchase_trade/view/purchase_line_btb_form.xml | 4 ++--
modules/purchase_trade/view/sale_btb_form.xml | 2 +-
3 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/modules/purchase_trade/view/purchase_btb_form.xml b/modules/purchase_trade/view/purchase_btb_form.xml
index c38979d..7485948 100644
--- a/modules/purchase_trade/view/purchase_btb_form.xml
+++ b/modules/purchase_trade/view/purchase_btb_form.xml
@@ -25,6 +25,6 @@ this repository contains the full copyright notices and license terms. -->
-->
-
+
diff --git a/modules/purchase_trade/view/purchase_line_btb_form.xml b/modules/purchase_trade/view/purchase_line_btb_form.xml
index 32d26bc..813c30e 100644
--- a/modules/purchase_trade/view/purchase_line_btb_form.xml
+++ b/modules/purchase_trade/view/purchase_line_btb_form.xml
@@ -1,7 +1,7 @@
-
+
@@ -32,5 +32,5 @@ this repository contains the full copyright notices and license terms. -->
-
+
diff --git a/modules/purchase_trade/view/sale_btb_form.xml b/modules/purchase_trade/view/sale_btb_form.xml
index 62ba6fe..63ab38b 100644
--- a/modules/purchase_trade/view/sale_btb_form.xml
+++ b/modules/purchase_trade/view/sale_btb_form.xml
@@ -27,7 +27,7 @@ this repository contains the full copyright notices and license terms. -->
-->
-
+
From 3da61070eb2cf573b2b14d63602801fde1c9b686 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 8 Feb 2026 15:11:53 +0100
Subject: [PATCH 243/618] 08.02.26
---
modules/purchase_trade/view/purchase_line_btb_form.xml | 4 ----
modules/purchase_trade/view/sale_line_btb_form.xml | 4 ----
2 files changed, 8 deletions(-)
diff --git a/modules/purchase_trade/view/purchase_line_btb_form.xml b/modules/purchase_trade/view/purchase_line_btb_form.xml
index 813c30e..b915bc5 100644
--- a/modules/purchase_trade/view/purchase_line_btb_form.xml
+++ b/modules/purchase_trade/view/purchase_line_btb_form.xml
@@ -2,13 +2,9 @@
-
-
-
-
diff --git a/modules/purchase_trade/view/sale_line_btb_form.xml b/modules/purchase_trade/view/sale_line_btb_form.xml
index bb4fb04..4e21533 100644
--- a/modules/purchase_trade/view/sale_line_btb_form.xml
+++ b/modules/purchase_trade/view/sale_line_btb_form.xml
@@ -2,8 +2,6 @@
-
-
@@ -24,6 +22,4 @@ this repository contains the full copyright notices and license terms. -->
-
-
From 03d923441e4c349918d77082c42255720ed4fe7f Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 8 Feb 2026 16:55:56 +0100
Subject: [PATCH 244/618] 08.02.26
---
modules/purchase_trade/__init__.py | 1 +
modules/purchase_trade/purchase.py | 11 +++++++++++
modules/purchase_trade/sale.py | 21 +++++++++++++++++++++
modules/purchase_trade/view/sale_form.xml | 3 +++
4 files changed, 36 insertions(+)
diff --git a/modules/purchase_trade/__init__.py b/modules/purchase_trade/__init__.py
index 499ce9d..1716b9c 100755
--- a/modules/purchase_trade/__init__.py
+++ b/modules/purchase_trade/__init__.py
@@ -213,6 +213,7 @@ def register():
sale.SaleStrategy,
sale.OpenPosition,
sale.Backtoback,
+ sale.AnalyticDimensionAssignment,
module='sale', type_='model')
Pool.register(
lot.LotShipping,
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index 74d9f8c..b0b2fc6 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -254,6 +254,8 @@ class Purchase(metaclass=PoolMeta):
broker = fields.Many2One('party.party',"Broker",domain=[('categories.parent', 'child_of', [4])])
tol_min = fields.Numeric("Tol - in %")
tol_max = fields.Numeric("Tol + in %")
+ tol_min_qt = fields.Numeric("Tol -")
+ tol_max_qt = fields.Numeric("Tol +")
certif = fields.Many2One('purchase.certification',"Certification")
wb = fields.Many2One('purchase.weight.basis',"Weight basis")
association = fields.Many2One('purchase.association',"Association")
@@ -275,6 +277,9 @@ class Purchase(metaclass=PoolMeta):
'purchase',
'Analytic Dimensions'
)
+ trader = fields.Many2One('party.party',"Trader")
+ operator = fields.Many2One('party.party',"Operator")
+ our_reference = fields.Char("Our Reference")
@classmethod
def default_viewer(cls):
@@ -436,6 +441,12 @@ class Line(metaclass=PoolMeta):
tol_max = fields.Numeric("Tol + in %",states={
'readonly': (Eval('inherit_tol')),
})
+ tol_min_qt = fields.Numeric("Tol -",states={
+ 'readonly': (Eval('inherit_tol')),
+ })
+ tol_max_qt = fields.Numeric("Tol +",states={
+ 'readonly': (Eval('inherit_tol')),
+ })
inherit_tol = fields.Boolean("Inherit tolerance")
tol_min_v = fields.Function(fields.Numeric("Qt min"),'get_tol_min')
tol_max_v = fields.Function(fields.Numeric("Qt max"),'get_tol_max')
diff --git a/modules/purchase_trade/sale.py b/modules/purchase_trade/sale.py
index 8bfcb44..891495b 100755
--- a/modules/purchase_trade/sale.py
+++ b/modules/purchase_trade/sale.py
@@ -32,6 +32,11 @@ class ContractDocumentType(metaclass=PoolMeta):
# lc_in = fields.Many2One('lc.letter.incoming', 'LC in')
sale = fields.Many2One('sale.sale', "Sale")
+class AnalyticDimensionAssignment(metaclass=PoolMeta):
+ 'Analytic Dimension Assignment'
+ __name__ = 'analytic.dimension.assignment'
+ sale = fields.Many2One('sale.sale', "Sale")
+
class Estimated(metaclass=PoolMeta):
"Estimated date"
__name__ = 'pricing.estimated'
@@ -221,6 +226,8 @@ class Sale(metaclass=PoolMeta):
broker = fields.Many2One('party.party',"Broker",domain=[('categories.parent', 'child_of', [4])])
tol_min = fields.Numeric("Tol - in %")
tol_max = fields.Numeric("Tol + in %")
+ tol_min_qt = fields.Numeric("Tol -")
+ tol_max_qt = fields.Numeric("Tol +")
# certification = fields.Selection([
# (None, ''),
# ('bci', 'BCI'),
@@ -238,6 +245,14 @@ class Sale(metaclass=PoolMeta):
doc_template = fields.Many2One('doc.template',"Template")
required_documents = fields.Many2Many(
'contract.document.type', 'sale', 'doc_type', 'Required Documents')
+ analytic_dimensions = fields.One2Many(
+ 'analytic.dimension.assignment',
+ 'sale',
+ 'Analytic Dimensions'
+ )
+ trader = fields.Many2One('party.party',"Trader")
+ operator = fields.Many2One('party.party',"Operator")
+ our_reference = fields.Char("Our Reference")
@classmethod
def default_viewer(cls):
@@ -382,6 +397,12 @@ class SaleLine(metaclass=PoolMeta):
tol_max = fields.Numeric("Tol + in %",states={
'readonly': (Eval('inherit_tol')),
})
+ tol_min_qt = fields.Numeric("Tol -",states={
+ 'readonly': (Eval('inherit_tol')),
+ })
+ tol_max_qt = fields.Numeric("Tol +",states={
+ 'readonly': (Eval('inherit_tol')),
+ })
inherit_tol = fields.Boolean("Inherit tolerance")
tol_min_v = fields.Function(fields.Numeric("Qt min"),'get_tol_min')
tol_max_v = fields.Function(fields.Numeric("Qt max"),'get_tol_max')
diff --git a/modules/purchase_trade/view/sale_form.xml b/modules/purchase_trade/view/sale_form.xml
index e1bc040..934ef71 100755
--- a/modules/purchase_trade/view/sale_form.xml
+++ b/modules/purchase_trade/view/sale_form.xml
@@ -50,6 +50,9 @@ this repository contains the full copyright notices and license terms. -->
+
+
+
From 175b10e59d9ce76a8ed88c322f7230e59c2258e0 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 8 Feb 2026 18:05:29 +0100
Subject: [PATCH 245/618] 08.02.26
---
modules/purchase/view/purchase_line_form.xml | 9 +++++++--
modules/purchase_trade/purchase.py | 10 ++++++++++
modules/purchase_trade/sale.py | 12 +++++++++++-
modules/purchase_trade/view/purchase_form.xml | 7 +++++++
modules/purchase_trade/view/purchase_line_form.xml | 6 ++++++
modules/purchase_trade/view/sale_form.xml | 9 ++++++++-
modules/purchase_trade/view/sale_line_form.xml | 6 ++++++
modules/sale/view/sale_line_form.xml | 3 +++
8 files changed, 58 insertions(+), 4 deletions(-)
diff --git a/modules/purchase/view/purchase_line_form.xml b/modules/purchase/view/purchase_line_form.xml
index 99c1085..b659fda 100755
--- a/modules/purchase/view/purchase_line_form.xml
+++ b/modules/purchase/view/purchase_line_form.xml
@@ -16,13 +16,18 @@ this repository contains the full copyright notices and license terms. -->
+
+
+
+
+
+
+
-
-
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index b0b2fc6..f436c86 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -425,6 +425,16 @@ class Line(metaclass=PoolMeta):
del_period = fields.Many2One('product.month',"Delivery Period")
from_del = fields.Date("From")
to_del = fields.Date("To")
+ period_at = fields.Selection([
+ (None, ''),
+ ('laycan', 'Laycan'),
+ ('loading', 'Loading'),
+ ('discharge', 'Discharge'),
+ ('crossing_border', 'Crossing Border'),
+ ('title_transfer', 'Title transfer'),
+ ('arrival', 'Arrival'),
+ ],"Period at")
+ concentration = fields.Numeric("Concentration")
price_components = fields.One2Many('pricing.component','line',"Components")
price_pricing = fields.One2Many('pricing.pricing','line',"Pricing")
price_summary = fields.One2Many('purchase.pricing.summary','line',"Summary")
diff --git a/modules/purchase_trade/sale.py b/modules/purchase_trade/sale.py
index 891495b..8e5ab80 100755
--- a/modules/purchase_trade/sale.py
+++ b/modules/purchase_trade/sale.py
@@ -36,7 +36,7 @@ class AnalyticDimensionAssignment(metaclass=PoolMeta):
'Analytic Dimension Assignment'
__name__ = 'analytic.dimension.assignment'
sale = fields.Many2One('sale.sale', "Sale")
-
+
class Estimated(metaclass=PoolMeta):
"Estimated date"
__name__ = 'pricing.estimated'
@@ -385,6 +385,16 @@ class SaleLine(metaclass=PoolMeta):
}),'get_progress')
from_del = fields.Date("From")
to_del = fields.Date("To")
+ period_at = fields.Selection([
+ (None, ''),
+ ('laycan', 'Laycan'),
+ ('loading', 'Loading'),
+ ('discharge', 'Discharge'),
+ ('crossing_border', 'Crossing Border'),
+ ('title_transfer', 'Title transfer'),
+ ('arrival', 'Arrival'),
+ ],"Period at")
+ concentration = fields.Numeric("Concentration")
price_components = fields.One2Many('pricing.component','sale_line',"Components")
mtm = fields.Many2Many('sale.strategy', 'sale_line', 'strategy', 'Mtm Strategy')
derivatives = fields.One2Many('derivative.derivative','sale_line',"Derivatives")
diff --git a/modules/purchase_trade/view/purchase_form.xml b/modules/purchase_trade/view/purchase_form.xml
index c72de46..286af0f 100755
--- a/modules/purchase_trade/view/purchase_form.xml
+++ b/modules/purchase_trade/view/purchase_form.xml
@@ -8,6 +8,13 @@ this repository contains the full copyright notices and license terms. -->
+
+
+
+
+
+
+
diff --git a/modules/purchase_trade/view/purchase_line_form.xml b/modules/purchase_trade/view/purchase_line_form.xml
index 4cc7904..e25f779 100755
--- a/modules/purchase_trade/view/purchase_line_form.xml
+++ b/modules/purchase_trade/view/purchase_line_form.xml
@@ -41,6 +41,12 @@ this repository contains the full copyright notices and license terms. -->
+
+
+
+
+
+
diff --git a/modules/purchase_trade/view/sale_form.xml b/modules/purchase_trade/view/sale_form.xml
index 934ef71..0da6a76 100755
--- a/modules/purchase_trade/view/sale_form.xml
+++ b/modules/purchase_trade/view/sale_form.xml
@@ -7,7 +7,14 @@ this repository contains the full copyright notices and license terms. -->
-
+
+
+
+
+
+
+
+
diff --git a/modules/purchase_trade/view/sale_line_form.xml b/modules/purchase_trade/view/sale_line_form.xml
index c3e5bab..4016a39 100755
--- a/modules/purchase_trade/view/sale_line_form.xml
+++ b/modules/purchase_trade/view/sale_line_form.xml
@@ -41,6 +41,12 @@ this repository contains the full copyright notices and license terms. -->
+
+
+
+
+
+
diff --git a/modules/sale/view/sale_line_form.xml b/modules/sale/view/sale_line_form.xml
index 66f8af3..66afbf8 100755
--- a/modules/sale/view/sale_line_form.xml
+++ b/modules/sale/view/sale_line_form.xml
@@ -13,9 +13,12 @@ this repository contains the full copyright notices and license terms. -->
+
+
+
From 720ad804a406a04b87896ed2c931930636a3826f Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 8 Feb 2026 18:10:36 +0100
Subject: [PATCH 246/618] 08.02.26
---
modules/purchase/view/purchase_line_form.xml | 1 +
modules/sale/view/sale_line_form.xml | 1 +
2 files changed, 2 insertions(+)
diff --git a/modules/purchase/view/purchase_line_form.xml b/modules/purchase/view/purchase_line_form.xml
index b659fda..5d80677 100755
--- a/modules/purchase/view/purchase_line_form.xml
+++ b/modules/purchase/view/purchase_line_form.xml
@@ -16,6 +16,7 @@ this repository contains the full copyright notices and license terms. -->
+
diff --git a/modules/sale/view/sale_line_form.xml b/modules/sale/view/sale_line_form.xml
index 66afbf8..26c4fcc 100755
--- a/modules/sale/view/sale_line_form.xml
+++ b/modules/sale/view/sale_line_form.xml
@@ -13,6 +13,7 @@ this repository contains the full copyright notices and license terms. -->
+
From 0a04774fac7c18c4f6398ea7bda15db172810ab2 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 8 Feb 2026 19:15:12 +0100
Subject: [PATCH 247/618] 08.02.26
---
modules/purchase_trade/pricing.py | 14 +++++++++++++-
.../view/component_tree_sequence.xml | 2 ++
2 files changed, 15 insertions(+), 1 deletion(-)
diff --git a/modules/purchase_trade/pricing.py b/modules/purchase_trade/pricing.py
index 6bc1231..4eb3aad 100755
--- a/modules/purchase_trade/pricing.py
+++ b/modules/purchase_trade/pricing.py
@@ -84,7 +84,7 @@ class MtmStrategy(ModelSQL, ModelView):
)
components = fields.One2Many(
- 'mtm.component', 'strategy', "Components"
+ 'pricing.component', 'strategy', "Components"
)
@classmethod
@@ -271,9 +271,21 @@ class Component(ModelSQL, ModelView):
"Component"
__name__ = 'pricing.component'
+ strategy = fields.Many2One(
+ 'mtm.strategy', "Strategy",
+ required=False, ondelete='CASCADE'
+ )
+
+ price_source_type = fields.Selection([
+ ('curve', 'Curve'),
+ ('matrix', 'Matrix'),
+ # ('manual', 'Manual'),
+ ], "Price Source", required=True)
+
fix_type = fields.Many2One('price.fixtype',"Fixation type")
ratio = fields.Numeric("%")
price_index = fields.Many2One('price.price',"Curve")
+ price_matrix = fields.Many2One('price.matrix', "Price Matrix")
currency = fields.Function(fields.Many2One('currency.currency',"Curr."),'get_cur')
auto = fields.Boolean("Auto")
fallback = fields.Boolean("Fallback")
diff --git a/modules/purchase_trade/view/component_tree_sequence.xml b/modules/purchase_trade/view/component_tree_sequence.xml
index 864c4cc..e489eb0 100755
--- a/modules/purchase_trade/view/component_tree_sequence.xml
+++ b/modules/purchase_trade/view/component_tree_sequence.xml
@@ -1,7 +1,9 @@
+
+
From 1e7cd1c7bea5fc182635dfd379e85813ad803f03 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 8 Feb 2026 19:19:57 +0100
Subject: [PATCH 248/618] 08.02.26
---
modules/purchase_trade/view/component_tree_sequence2.xml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/modules/purchase_trade/view/component_tree_sequence2.xml b/modules/purchase_trade/view/component_tree_sequence2.xml
index f1bdde4..81330fc 100755
--- a/modules/purchase_trade/view/component_tree_sequence2.xml
+++ b/modules/purchase_trade/view/component_tree_sequence2.xml
@@ -1,7 +1,9 @@
+
+
From 14dd557e586f14dd21a0ca116338d7dae92aa72c Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 8 Feb 2026 19:24:31 +0100
Subject: [PATCH 249/618] 08.02.26
---
modules/purchase_trade/view/component_tree.xml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/modules/purchase_trade/view/component_tree.xml b/modules/purchase_trade/view/component_tree.xml
index cd27b3e..73f98c1 100755
--- a/modules/purchase_trade/view/component_tree.xml
+++ b/modules/purchase_trade/view/component_tree.xml
@@ -1,7 +1,9 @@
+
+
From b5b2f1c36258f030dac08d79ecf49dbbf213fd6e Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 8 Feb 2026 21:25:22 +0100
Subject: [PATCH 250/618] 08.02.26
---
modules/purchase_trade/valuation.py | 140 +++++++++++++-----
.../view/valuation_context_form.xml | 2 +
.../view/valuation_tree_sequence3.xml | 3 +-
.../view/valuation_tree_sequence4.xml | 3 +-
4 files changed, 109 insertions(+), 39 deletions(-)
diff --git a/modules/purchase_trade/valuation.py b/modules/purchase_trade/valuation.py
index 7cc4e64..9fa16ad 100644
--- a/modules/purchase_trade/valuation.py
+++ b/modules/purchase_trade/valuation.py
@@ -49,6 +49,7 @@ class ValuationBase(ModelSQL):
unit = fields.Many2One('product.uom',"Unit")
amount = fields.Numeric("Amount",digits=(16,2))
mtm = fields.Numeric("Mtm",digits=(16,2))
+ strategy = fields.Many2One('mtm.strategy',"Strategy")
lot = fields.Many2One('lot.lot',"Lot")
base_amount = fields.Numeric("Base Amount",digits=(16,2))
rate = fields.Numeric("Rate", digits=(16,6))
@@ -109,14 +110,13 @@ class ValuationBase(ModelSQL):
base_amount = Currency.compute(currency,amount, line.purchase.company.currency)
rate = round(amount / base_amount,6)
last_price = pc.get_last_price()
- mtm = round(Decimal(last_price) * qty * Decimal(sign), 2) if last_price else Decimal(0)
-
+ # mtm = round(Decimal(last_price) * qty * Decimal(sign), 2) if last_price else Decimal(0)
values.update({
'quantity': round(qty, 5),
'amount': amount,
'base_amount': base_amount,
'rate': rate,
- 'mtm': round(amount - (mtm * pc.ratio / 100), 2),
+ 'mtm': None #round(amount - (mtm * pc.ratio / 100), 2),
'unit': sale_line.unit.id if sale_line else line.unit.id,
'currency': currency,
})
@@ -177,12 +177,19 @@ class ValuationBase(ModelSQL):
if line.price_type == 'basis':
for pc in line.price_summary or []:
values = cls._build_basis_pnl(line=line, lot=lot, sale_line=None, pc=pc, sign=-1)
- if values:
- price_lines.append(values)
+ if line.mtm:
+ for strat in line.mtm:
+ values['mtm'] = line.get_mtm(values['qty'])
+ values['strategy'] = strat.name
+
+ if values:
+ price_lines.append(values)
+ else:
+ if values:
+ price_lines.append(values)
elif line.price_type in ('priced', 'efp') and lot.lot_price:
- price_lines.append(
- cls._build_simple_pnl(
+ values = cls._build_simple_pnl(
line=line,
lot=lot,
sale_line=None,
@@ -191,7 +198,16 @@ class ValuationBase(ModelSQL):
sign=-1,
pnl_type=f'pur. {line.price_type}'
)
- )
+ if line.mtm:
+ for strat in line.mtm:
+ values['mtm'] = line.get_mtm(values['qty'])
+ values['strategy'] = strat.name
+
+ if values:
+ price_lines.append(values)
+ else:
+ if values:
+ price_lines.append(values)
sale_lots = [lot] if lot.sale_line else [
lqt.lot_s for lqt in LotQt.search([
@@ -209,12 +225,19 @@ class ValuationBase(ModelSQL):
if sl_line.price_type == 'basis':
for pc in sl_line.price_summary or []:
values = cls._build_basis_pnl(line=line, lot=sl, sale_line=sl_line, pc=pc, sign=+1)
- if values:
- price_lines.append(values)
+ if sl_line.mtm:
+ for strat in line.mtm:
+ values['mtm'] = sl_line.get_mtm(values['qty'])
+ values['strategy'] = strat.name
+
+ if values:
+ price_lines.append(values)
+ else:
+ if values:
+ price_lines.append(values)
elif sl_line.price_type in ('priced', 'efp'):
- price_lines.append(
- cls._build_simple_pnl(
+ values = cls._build_simple_pnl(
line=line,
lot=sl,
sale_line=sl_line,
@@ -223,7 +246,16 @@ class ValuationBase(ModelSQL):
sign=+1,
pnl_type=f'sale {sl_line.price_type}'
)
- )
+ if sl_line.mtm:
+ for strat in sl_line.mtm:
+ values['mtm'] = sl_line.get_mtm(values['qty'])
+ values['strategy'] = strat.name
+
+ if values:
+ price_lines.append(values)
+ else:
+ if values:
+ price_lines.append(values)
return price_lines
@@ -270,29 +302,56 @@ class ValuationBase(ModelSQL):
if sf.currency != line.purchase.currency:
with Transaction().set_context(date=Date.today()):
price = Currency.compute(sf.currency, price, line.purchase.currency)
-
- fee_lines.append({
- 'lot': lot.id,
- 'sale': lot.sale_line.sale.id if lot.sale_line else None,
- 'purchase': line.purchase.id,
- 'line': line.id,
- 'type': (
- 'shipment fee' if sf.shipment_in
- else 'sale fee' if sf.sale_line
- else 'pur. fee'
- ),
- 'date': Date.today(),
- 'price': price,
- 'counterparty': sf.supplier.id,
- 'reference': f"{sf.product.name}/{'Physic' if lot.lot_type == 'physic' else 'Open'}",
- 'product': sf.product.id,
- 'state': sf.type,
- 'quantity': round(lot.get_current_quantity_converted(), 5),
- 'amount': amount,
- 'mtm': Decimal(0),
- 'unit': sf.unit.id if sf.unit else line.unit.id,
- 'currency': sf.currency.id,
- })
+ if line.mtm:
+ for strat in line.mtm:
+ qty = round(lot.get_current_quantity_converted(), 5)
+ fee_lines.append({
+ 'lot': lot.id,
+ 'sale': lot.sale_line.sale.id if lot.sale_line else None,
+ 'purchase': line.purchase.id,
+ 'line': line.id,
+ 'type': (
+ 'shipment fee' if sf.shipment_in
+ else 'sale fee' if sf.sale_line
+ else 'pur. fee'
+ ),
+ 'date': Date.today(),
+ 'price': price,
+ 'counterparty': sf.supplier.id,
+ 'reference': f"{sf.product.name}/{'Physic' if lot.lot_type == 'physic' else 'Open'}",
+ 'product': sf.product.id,
+ 'state': sf.type,
+ 'quantity': qty,
+ 'amount': amount,
+ 'mtm': strat.get_mtm(qty),
+ 'strategy': strat,
+ 'unit': sf.unit.id if sf.unit else line.unit.id,
+ 'currency': sf.currency.id,
+ })
+ else:
+ fee_lines.append({
+ 'lot': lot.id,
+ 'sale': lot.sale_line.sale.id if lot.sale_line else None,
+ 'purchase': line.purchase.id,
+ 'line': line.id,
+ 'type': (
+ 'shipment fee' if sf.shipment_in
+ else 'sale fee' if sf.sale_line
+ else 'pur. fee'
+ ),
+ 'date': Date.today(),
+ 'price': price,
+ 'counterparty': sf.supplier.id,
+ 'reference': f"{sf.product.name}/{'Physic' if lot.lot_type == 'physic' else 'Open'}",
+ 'product': sf.product.id,
+ 'state': sf.type,
+ 'quantity': qty,
+ 'amount': amount,
+ 'mtm': Decimal(0),
+ 'strategy': None,
+ 'unit': sf.unit.id if sf.unit else line.unit.id,
+ 'currency': sf.currency.id,
+ })
return fee_lines
@@ -427,6 +486,7 @@ class ValuationDyn(ModelSQL,ModelView):
r_base_amount = fields.Numeric("Base Amount",digits='r_unit')
r_rate = fields.Numeric("Rate",digits=(16,6))
r_mtm = fields.Numeric("Mtm",digits='r_unit')
+ r_strategy = fields.Many2One('mtm.strategy',"Strategy")
r_lot = fields.Many2One('lot.lot',"Lot")
@classmethod
@@ -459,6 +519,7 @@ class ValuationDyn(ModelSQL,ModelView):
Sum(val.base_amount).as_('r_base_amount'),
Sum(val.rate).as_('r_rate'),
Sum(val.mtm).as_('r_mtm'),
+ Max(val.strategy).as_('r_strategy'),
Max(val.lot).as_('r_lot'),
where=wh,
group_by=[val.type,val.counterparty,val.state])
@@ -475,8 +536,11 @@ class ValuationReport(ValuationBase, ModelView):
val = Valuation.__table__()
context = Transaction().context
valuation_date = context.get('valuation_date')
+ strategy = context.get('strategy')
wh = (val.date == valuation_date)
-
+ if strategy:
+ wh &= (val.strategy == strategy)
+
query = val.select(
Literal(0).as_('create_uid'),
CurrentTimestamp().as_('create_date'),
@@ -501,6 +565,7 @@ class ValuationReport(ValuationBase, ModelView):
val.base_amount.as_('base_amount'),
val.rate.as_('rate'),
val.mtm.as_('mtm'),
+ val.strategy.as_('strategy'),
val.lot.as_('lot'),
where=wh)
@@ -522,6 +587,7 @@ class ValuationReportContext(ModelView):
('fixed', 'Fixed'),
('hedged', 'Hedged')
], 'State')
+ strategy = fields.Many2One('mtm.strategy')
@classmethod
def default_valuation_date(cls):
diff --git a/modules/purchase_trade/view/valuation_context_form.xml b/modules/purchase_trade/view/valuation_context_form.xml
index 8ec7022..c467180 100644
--- a/modules/purchase_trade/view/valuation_context_form.xml
+++ b/modules/purchase_trade/view/valuation_context_form.xml
@@ -13,4 +13,6 @@
+
+
diff --git a/modules/purchase_trade/view/valuation_tree_sequence3.xml b/modules/purchase_trade/view/valuation_tree_sequence3.xml
index db10d31..0d64ced 100755
--- a/modules/purchase_trade/view/valuation_tree_sequence3.xml
+++ b/modules/purchase_trade/view/valuation_tree_sequence3.xml
@@ -10,5 +10,6 @@ this repository contains the full copyright notices and license terms. -->
-
+
+
\ No newline at end of file
diff --git a/modules/purchase_trade/view/valuation_tree_sequence4.xml b/modules/purchase_trade/view/valuation_tree_sequence4.xml
index b5e12d0..213d1ea 100755
--- a/modules/purchase_trade/view/valuation_tree_sequence4.xml
+++ b/modules/purchase_trade/view/valuation_tree_sequence4.xml
@@ -10,6 +10,7 @@ this repository contains the full copyright notices and license terms. -->
-
+
+
From 0cd9d63b155f5b072b0bd6f747add7b50b7d79f7 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 8 Feb 2026 21:28:17 +0100
Subject: [PATCH 251/618] 08.02.26
---
modules/purchase_trade/valuation.py | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/modules/purchase_trade/valuation.py b/modules/purchase_trade/valuation.py
index 9fa16ad..7e18b55 100644
--- a/modules/purchase_trade/valuation.py
+++ b/modules/purchase_trade/valuation.py
@@ -116,7 +116,7 @@ class ValuationBase(ModelSQL):
'amount': amount,
'base_amount': base_amount,
'rate': rate,
- 'mtm': None #round(amount - (mtm * pc.ratio / 100), 2),
+ 'mtm': None, #round(amount - (mtm * pc.ratio / 100), 2),
'unit': sale_line.unit.id if sale_line else line.unit.id,
'currency': currency,
})
@@ -180,7 +180,7 @@ class ValuationBase(ModelSQL):
if line.mtm:
for strat in line.mtm:
values['mtm'] = line.get_mtm(values['qty'])
- values['strategy'] = strat.name
+ values['strategy'] = strat
if values:
price_lines.append(values)
@@ -201,7 +201,7 @@ class ValuationBase(ModelSQL):
if line.mtm:
for strat in line.mtm:
values['mtm'] = line.get_mtm(values['qty'])
- values['strategy'] = strat.name
+ values['strategy'] = strat
if values:
price_lines.append(values)
@@ -228,7 +228,7 @@ class ValuationBase(ModelSQL):
if sl_line.mtm:
for strat in line.mtm:
values['mtm'] = sl_line.get_mtm(values['qty'])
- values['strategy'] = strat.name
+ values['strategy'] = strat
if values:
price_lines.append(values)
@@ -249,7 +249,7 @@ class ValuationBase(ModelSQL):
if sl_line.mtm:
for strat in sl_line.mtm:
values['mtm'] = sl_line.get_mtm(values['qty'])
- values['strategy'] = strat.name
+ values['strategy'] = strat
if values:
price_lines.append(values)
From 04179fde778b9bc05003f67d5700badc3eaf8900 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 8 Feb 2026 21:36:01 +0100
Subject: [PATCH 252/618] 08.02.26
---
modules/purchase_trade/view/valuation_tree_sequence4.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/purchase_trade/view/valuation_tree_sequence4.xml b/modules/purchase_trade/view/valuation_tree_sequence4.xml
index 213d1ea..1580a59 100755
--- a/modules/purchase_trade/view/valuation_tree_sequence4.xml
+++ b/modules/purchase_trade/view/valuation_tree_sequence4.xml
@@ -10,7 +10,7 @@ this repository contains the full copyright notices and license terms. -->
-
+
From df5ef074ad5ffba7351c4bb2e0e3171f1423de49 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 8 Feb 2026 21:51:04 +0100
Subject: [PATCH 253/618] 08.02.26
---
modules/purchase_trade/pricing.py | 56 ++++++++++++++---------------
modules/purchase_trade/purchase.py | 7 +---
modules/purchase_trade/valuation.py | 8 ++---
3 files changed, 33 insertions(+), 38 deletions(-)
diff --git a/modules/purchase_trade/pricing.py b/modules/purchase_trade/pricing.py
index 4eb3aad..375565c 100755
--- a/modules/purchase_trade/pricing.py
+++ b/modules/purchase_trade/pricing.py
@@ -91,7 +91,7 @@ class MtmStrategy(ModelSQL, ModelView):
def default_active(cls):
return True
- def compute_mtm(self):
+ def get_mtm(self,qty):
pool = Pool()
Currency = pool.get('currency.currency')
total = Decimal(0)
@@ -104,7 +104,7 @@ class MtmStrategy(ModelSQL, ModelView):
if comp.price_source_type == 'curve' and comp.price_curve:
value = Decimal(
- comp.price_curve.get_price(
+ comp.price_index.get_price(
dt,
self.purchase_line.unit,
self.currency,
@@ -118,41 +118,41 @@ class MtmStrategy(ModelSQL, ModelView):
if comp.ratio:
value *= Decimal(comp.ratio)
- total += value
+ total += value * qty
return total
- def _get_matrix_price(self, comp, dt):
- MatrixLine = Pool().get('price.matrix.line')
+ def _get_matrix_price(self, comp, dt):
+ MatrixLine = Pool().get('price.matrix.line')
- domain = [
- ('matrix', '=', comp.price_matrix.id),
+ domain = [
+ ('matrix', '=', comp.price_matrix.id),
+ ]
+
+ if self.purchase_line:
+ domain += [
+ ('origin', '=', self.purchase_line.from_location),
+ ('destination', '=', self.purchase_line.to_location),
]
- if self.purchase_line:
- domain += [
- ('origin', '=', self.purchase_line.from_location),
- ('destination', '=', self.purchase_line.to_location),
- ]
+ lines = MatrixLine.search(domain)
+ if lines:
+ return Decimal(lines[0].price_value)
- lines = MatrixLine.search(domain)
- if lines:
- return Decimal(lines[0].price_value)
-
- return Decimal(0)
+ return Decimal(0)
- def run_daily_mtm():
- Strategy = Pool().get('mtm.strategy')
- Snapshot = Pool().get('mtm.snapshot')
+ def run_daily_mtm():
+ Strategy = Pool().get('mtm.strategy')
+ Snapshot = Pool().get('mtm.snapshot')
- for strat in Strategy.search([('active', '=', True)]):
- amount = strat.compute_mtm()
- Snapshot.create([{
- 'strategy': strat.id,
- 'valuation_date': strat.scenario.valuation_date,
- 'amount': amount,
- 'currency': strat.currency.id,
- }])
+ for strat in Strategy.search([('active', '=', True)]):
+ amount = strat.compute_mtm()
+ Snapshot.create([{
+ 'strategy': strat.id,
+ 'valuation_date': strat.scenario.valuation_date,
+ 'amount': amount,
+ 'currency': strat.currency.id,
+ }])
class Mtm(ModelSQL, ModelView):
"MtM Component"
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index f436c86..8c36e06 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -526,12 +526,7 @@ class Line(metaclass=PoolMeta):
def getVirtualLot(self):
if self.lots:
- return [l for l in self.lots if l.lot_type=='virtual'][0]
-
- # @fields.depends('quantity','quantity_theorical')
- # def on_change_quantity(self):
- # if not self.quantity_theorical:
- # self.quantity_theorical = self.quantity
+ return [l for l in self.lots if l.lot_type=='virtual'][0]
def get_basis_price(self):
price = Decimal(0)
diff --git a/modules/purchase_trade/valuation.py b/modules/purchase_trade/valuation.py
index 7e18b55..801b588 100644
--- a/modules/purchase_trade/valuation.py
+++ b/modules/purchase_trade/valuation.py
@@ -179,7 +179,7 @@ class ValuationBase(ModelSQL):
values = cls._build_basis_pnl(line=line, lot=lot, sale_line=None, pc=pc, sign=-1)
if line.mtm:
for strat in line.mtm:
- values['mtm'] = line.get_mtm(values['qty'])
+ values['mtm'] = strat.get_mtm(values['qty'])
values['strategy'] = strat
if values:
@@ -200,7 +200,7 @@ class ValuationBase(ModelSQL):
)
if line.mtm:
for strat in line.mtm:
- values['mtm'] = line.get_mtm(values['qty'])
+ values['mtm'] = strat.get_mtm(values['qty'])
values['strategy'] = strat
if values:
@@ -227,7 +227,7 @@ class ValuationBase(ModelSQL):
values = cls._build_basis_pnl(line=line, lot=sl, sale_line=sl_line, pc=pc, sign=+1)
if sl_line.mtm:
for strat in line.mtm:
- values['mtm'] = sl_line.get_mtm(values['qty'])
+ values['mtm'] = strat.get_mtm(values['qty'])
values['strategy'] = strat
if values:
@@ -248,7 +248,7 @@ class ValuationBase(ModelSQL):
)
if sl_line.mtm:
for strat in sl_line.mtm:
- values['mtm'] = sl_line.get_mtm(values['qty'])
+ values['mtm'] = strat.get_mtm(values['qty'])
values['strategy'] = strat
if values:
From c02d7212bb9c0ac80cee92d248d9c27a42b75e5f Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 8 Feb 2026 21:54:51 +0100
Subject: [PATCH 254/618] 08.02.26
---
modules/purchase_trade/valuation.py | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/modules/purchase_trade/valuation.py b/modules/purchase_trade/valuation.py
index 801b588..e767c80 100644
--- a/modules/purchase_trade/valuation.py
+++ b/modules/purchase_trade/valuation.py
@@ -179,7 +179,7 @@ class ValuationBase(ModelSQL):
values = cls._build_basis_pnl(line=line, lot=lot, sale_line=None, pc=pc, sign=-1)
if line.mtm:
for strat in line.mtm:
- values['mtm'] = strat.get_mtm(values['qty'])
+ values['mtm'] = strat.get_mtm(values['quantity'])
values['strategy'] = strat
if values:
@@ -200,7 +200,7 @@ class ValuationBase(ModelSQL):
)
if line.mtm:
for strat in line.mtm:
- values['mtm'] = strat.get_mtm(values['qty'])
+ values['mtm'] = strat.get_mtm(values['quantity'])
values['strategy'] = strat
if values:
@@ -227,7 +227,7 @@ class ValuationBase(ModelSQL):
values = cls._build_basis_pnl(line=line, lot=sl, sale_line=sl_line, pc=pc, sign=+1)
if sl_line.mtm:
for strat in line.mtm:
- values['mtm'] = strat.get_mtm(values['qty'])
+ values['mtm'] = strat.get_mtm(values['quantity'])
values['strategy'] = strat
if values:
@@ -248,7 +248,7 @@ class ValuationBase(ModelSQL):
)
if sl_line.mtm:
for strat in sl_line.mtm:
- values['mtm'] = strat.get_mtm(values['qty'])
+ values['mtm'] = strat.get_mtm(values['quantity'])
values['strategy'] = strat
if values:
From 231b73322268231eab80b03578a11e3fe0d98ab7 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 8 Feb 2026 22:06:19 +0100
Subject: [PATCH 255/618] 08.02.26
---
modules/purchase_trade/pricing.py | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/modules/purchase_trade/pricing.py b/modules/purchase_trade/pricing.py
index 375565c..c0fb8f8 100755
--- a/modules/purchase_trade/pricing.py
+++ b/modules/purchase_trade/pricing.py
@@ -129,11 +129,11 @@ class MtmStrategy(ModelSQL, ModelView):
('matrix', '=', comp.price_matrix.id),
]
- if self.purchase_line:
- domain += [
- ('origin', '=', self.purchase_line.from_location),
- ('destination', '=', self.purchase_line.to_location),
- ]
+ # if self.purchase_line:
+ # domain += [
+ # ('origin', '=', self.purchase_line.from_location),
+ # ('destination', '=', self.purchase_line.to_location),
+ # ]
lines = MatrixLine.search(domain)
if lines:
From bc5aa573195a2fe801d24d0f9e87b32cc2dc4b45 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 8 Feb 2026 22:18:54 +0100
Subject: [PATCH 256/618] 08.02.26
---
modules/purchase_trade/pricing.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/purchase_trade/pricing.py b/modules/purchase_trade/pricing.py
index c0fb8f8..fe5e5a4 100755
--- a/modules/purchase_trade/pricing.py
+++ b/modules/purchase_trade/pricing.py
@@ -102,7 +102,7 @@ class MtmStrategy(ModelSQL, ModelView):
for comp in self.components:
value = Decimal(0)
- if comp.price_source_type == 'curve' and comp.price_curve:
+ if comp.price_source_type == 'curve' and comp.price_index:
value = Decimal(
comp.price_index.get_price(
dt,
From 0c83fcf35ea6b31750869c29694ad6c2f0198158 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 8 Feb 2026 22:26:24 +0100
Subject: [PATCH 257/618] 08.02.26
---
modules/purchase_trade/pricing.py | 18 +++++++++---------
modules/purchase_trade/valuation.py | 10 +++++-----
2 files changed, 14 insertions(+), 14 deletions(-)
diff --git a/modules/purchase_trade/pricing.py b/modules/purchase_trade/pricing.py
index fe5e5a4..d58c910 100755
--- a/modules/purchase_trade/pricing.py
+++ b/modules/purchase_trade/pricing.py
@@ -91,7 +91,7 @@ class MtmStrategy(ModelSQL, ModelView):
def default_active(cls):
return True
- def get_mtm(self,qty):
+ def get_mtm(self,line,qty):
pool = Pool()
Currency = pool.get('currency.currency')
total = Decimal(0)
@@ -106,14 +106,14 @@ class MtmStrategy(ModelSQL, ModelView):
value = Decimal(
comp.price_index.get_price(
dt,
- self.purchase_line.unit,
+ line.unit,
self.currency,
last=scenario.use_last_price
)
)
elif comp.price_source_type == 'matrix' and comp.price_matrix:
- value = self._get_matrix_price(comp, dt)
+ value = self._get_matrix_price(comp, line, dt)
if comp.ratio:
value *= Decimal(comp.ratio)
@@ -122,18 +122,18 @@ class MtmStrategy(ModelSQL, ModelView):
return total
- def _get_matrix_price(self, comp, dt):
+ def _get_matrix_price(self, comp, line, dt):
MatrixLine = Pool().get('price.matrix.line')
domain = [
('matrix', '=', comp.price_matrix.id),
]
- # if self.purchase_line:
- # domain += [
- # ('origin', '=', self.purchase_line.from_location),
- # ('destination', '=', self.purchase_line.to_location),
- # ]
+ if line:
+ domain += [
+ ('origin', '=', line.purchase.from_location),
+ ('destination', '=', line.purchase.to_location),
+ ]
lines = MatrixLine.search(domain)
if lines:
diff --git a/modules/purchase_trade/valuation.py b/modules/purchase_trade/valuation.py
index e767c80..6a39345 100644
--- a/modules/purchase_trade/valuation.py
+++ b/modules/purchase_trade/valuation.py
@@ -179,7 +179,7 @@ class ValuationBase(ModelSQL):
values = cls._build_basis_pnl(line=line, lot=lot, sale_line=None, pc=pc, sign=-1)
if line.mtm:
for strat in line.mtm:
- values['mtm'] = strat.get_mtm(values['quantity'])
+ values['mtm'] = strat.get_mtm(line,values['quantity'])
values['strategy'] = strat
if values:
@@ -200,7 +200,7 @@ class ValuationBase(ModelSQL):
)
if line.mtm:
for strat in line.mtm:
- values['mtm'] = strat.get_mtm(values['quantity'])
+ values['mtm'] = strat.get_mtm(line,values['quantity'])
values['strategy'] = strat
if values:
@@ -227,7 +227,7 @@ class ValuationBase(ModelSQL):
values = cls._build_basis_pnl(line=line, lot=sl, sale_line=sl_line, pc=pc, sign=+1)
if sl_line.mtm:
for strat in line.mtm:
- values['mtm'] = strat.get_mtm(values['quantity'])
+ values['mtm'] = strat.get_mtm(sl_line,values['quantity'])
values['strategy'] = strat
if values:
@@ -248,7 +248,7 @@ class ValuationBase(ModelSQL):
)
if sl_line.mtm:
for strat in sl_line.mtm:
- values['mtm'] = strat.get_mtm(values['quantity'])
+ values['mtm'] = strat.get_mtm(sl_line,values['quantity'])
values['strategy'] = strat
if values:
@@ -323,7 +323,7 @@ class ValuationBase(ModelSQL):
'state': sf.type,
'quantity': qty,
'amount': amount,
- 'mtm': strat.get_mtm(qty),
+ 'mtm': strat.get_mtm(line,qty),
'strategy': strat,
'unit': sf.unit.id if sf.unit else line.unit.id,
'currency': sf.currency.id,
From 935862a66cc1ddf0662906acd73404e92d4f965a Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 8 Feb 2026 22:31:50 +0100
Subject: [PATCH 258/618] 08.02.26
---
modules/purchase_trade/pricing.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/purchase_trade/pricing.py b/modules/purchase_trade/pricing.py
index d58c910..688b9a7 100755
--- a/modules/purchase_trade/pricing.py
+++ b/modules/purchase_trade/pricing.py
@@ -120,7 +120,7 @@ class MtmStrategy(ModelSQL, ModelView):
total += value * qty
- return total
+ return Decimal(str(total)).quantize(Decimal("0.01"))
def _get_matrix_price(self, comp, line, dt):
MatrixLine = Pool().get('price.matrix.line')
From d007db7a1bf715e68f19c79c9f0357c59d983943 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 8 Feb 2026 22:46:43 +0100
Subject: [PATCH 259/618] 08.02.26
---
modules/purchase_trade/view/valuation_list.xml | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/modules/purchase_trade/view/valuation_list.xml b/modules/purchase_trade/view/valuation_list.xml
index f5bce40..57fc4eb 100644
--- a/modules/purchase_trade/view/valuation_list.xml
+++ b/modules/purchase_trade/view/valuation_list.xml
@@ -11,5 +11,6 @@
-
+
+
\ No newline at end of file
From 5cc66b3a3aa0fb216f9a0330d7cb7dbd0ce97d2b Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 8 Feb 2026 22:49:57 +0100
Subject: [PATCH 260/618] 08.02.26
---
modules/purchase_trade/valuation.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/purchase_trade/valuation.py b/modules/purchase_trade/valuation.py
index 6a39345..a6c996c 100644
--- a/modules/purchase_trade/valuation.py
+++ b/modules/purchase_trade/valuation.py
@@ -587,7 +587,7 @@ class ValuationReportContext(ModelView):
('fixed', 'Fixed'),
('hedged', 'Hedged')
], 'State')
- strategy = fields.Many2One('mtm.strategy')
+ strategy = fields.Many2One('mtm.strategy',"Strategy")
@classmethod
def default_valuation_date(cls):
From 38254fee48d45ccf732eb2f55ccb3264b7112e28 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 9 Feb 2026 14:49:01 +0100
Subject: [PATCH 261/618] 09.02.26
---
modules/purchase_trade/valuation.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/purchase_trade/valuation.py b/modules/purchase_trade/valuation.py
index a6c996c..608351f 100644
--- a/modules/purchase_trade/valuation.py
+++ b/modules/purchase_trade/valuation.py
@@ -303,8 +303,8 @@ class ValuationBase(ModelSQL):
with Transaction().set_context(date=Date.today()):
price = Currency.compute(sf.currency, price, line.purchase.currency)
if line.mtm:
+ qty = round(lot.get_current_quantity_converted(), 5)
for strat in line.mtm:
- qty = round(lot.get_current_quantity_converted(), 5)
fee_lines.append({
'lot': lot.id,
'sale': lot.sale_line.sale.id if lot.sale_line else None,
From a71d6666193a2c50ad976d0ecffe3b0d3392efcb Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 9 Feb 2026 14:50:27 +0100
Subject: [PATCH 262/618] 09.02.26
---
modules/purchase_trade/valuation.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/purchase_trade/valuation.py b/modules/purchase_trade/valuation.py
index 608351f..8da204f 100644
--- a/modules/purchase_trade/valuation.py
+++ b/modules/purchase_trade/valuation.py
@@ -302,8 +302,8 @@ class ValuationBase(ModelSQL):
if sf.currency != line.purchase.currency:
with Transaction().set_context(date=Date.today()):
price = Currency.compute(sf.currency, price, line.purchase.currency)
+ qty = round(lot.get_current_quantity_converted(), 5)
if line.mtm:
- qty = round(lot.get_current_quantity_converted(), 5)
for strat in line.mtm:
fee_lines.append({
'lot': lot.id,
From 2eabfe25876249bc4131de222726e92f6ab97b8d Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 9 Feb 2026 15:13:57 +0100
Subject: [PATCH 263/618] 09.02.26
---
modules/purchase_trade/lot.py | 2 ++
1 file changed, 2 insertions(+)
diff --git a/modules/purchase_trade/lot.py b/modules/purchase_trade/lot.py
index 5397335..ef57c18 100755
--- a/modules/purchase_trade/lot.py
+++ b/modules/purchase_trade/lot.py
@@ -2051,6 +2051,8 @@ class LotShipping(Wizard):
l.updateVirtualPart(-l.get_current_quantity_converted(),shipment_origin,l.getVlot_s())
l.lot_av = 'reserved'
Lot.save([l])
+ l.set_current_quantity(l.lot_quantity,l.lot_gross_quantity,2)
+ Lot.save([l])
else:
lqt = LotQt(r.id - 10000000)
#Increase forecasted virtual part shipped
From e41ad516341a94d4cd42a0f4eaaeba4e92ee9387 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 9 Feb 2026 20:30:56 +0100
Subject: [PATCH 264/618] 09.02.26
---
modules/purchase_trade/fee.py | 2 ++
1 file changed, 2 insertions(+)
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index c7a3b03..cceec93 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -462,6 +462,8 @@ class Fee(ModelSQL,ModelView):
if fee.mode == 'lumpsum':
pl.quantity = 1
pl.unit_price = round(Decimal(fee.amount),4)
+ elif fee.mode == 'ppack':
+ pl.unit_price = fee.price
p = Purchase()
p.lines = [pl]
p.party = fee.supplier
From 91095f28e9d9fc1d9aa603513073a13036ef9746 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 9 Feb 2026 20:55:10 +0100
Subject: [PATCH 265/618] 09.02.26
---
modules/purchase_trade/fee.py | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index cceec93..062ddf4 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -371,8 +371,10 @@ class Fee(ModelSQL,ModelView):
if self.mode == 'lumpsum':
if self.amount != self.purchase.lines[0].unit_price:
self.purchase.lines[0].unit_price = self.amount
- # if self.quantity != self.purchase.lines[0].quantity:
- # self.purchase.lines[0].quantity = self.quantity
+ elif self.mode == 'ppack':
+ if self.amount != self.purchase.lines[0].amount:
+ self.purchase.lines[0].unit_price = self.price
+ self.purchase.lines[0].quantity = self.quantity
else:
if self.get_price_per_qt() != self.purchase.lines[0].unit_price:
self.purchase.lines[0].unit_price = self.get_price_per_qt()
From 1eb86892de6973ea530f98a66cee7c8f70321fbc Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 10 Feb 2026 15:08:45 +0100
Subject: [PATCH 266/618] 10.02.26
---
modules/purchase_trade/view/dashboard_form.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/purchase_trade/view/dashboard_form.xml b/modules/purchase_trade/view/dashboard_form.xml
index a345b43..83baab4 100755
--- a/modules/purchase_trade/view/dashboard_form.xml
+++ b/modules/purchase_trade/view/dashboard_form.xml
@@ -22,7 +22,7 @@
-
+
From e37cd4a1cce0d17aa81f890647c4fb1e52e40439 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Wed, 11 Feb 2026 07:26:48 +0100
Subject: [PATCH 267/618] 11.02.26
---
modules/automation/automation.py | 18 ++++++++++--------
modules/automation/cron.py | 1 +
modules/purchase_trade/party.py | 12 ++++++++++++
modules/purchase_trade/stock.py | 12 ++++++++++++
.../purchase_trade/view/shipment_in_form.xml | 2 ++
.../purchase_trade/view/weight_report_form.xml | 4 +++-
modules/purchase_trade/weight_report.py | 17 +++++++++++------
7 files changed, 51 insertions(+), 15 deletions(-)
diff --git a/modules/automation/automation.py b/modules/automation/automation.py
index 3390b47..f30516e 100644
--- a/modules/automation/automation.py
+++ b/modules/automation/automation.py
@@ -236,20 +236,22 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
doc.notes = (doc.notes or "") + f"Shipment found: {sh[0].number}\n"
logger.info("BL_NUMBER:%s",sh[0].bl_number)
if sh[0].incoming_moves:
- weight_total = sum([m.lot.lot_quantity for m in sh[0].incoming_moves if m.lot.lot_type == 'physic'])
- factor = weight_total / wr.net_landed_kg if wr.net_landed_kg else 1
+ factor_net = wr.net_landed_kg / wr.bales if wr.bales else 1
+ factor_gross = wr.gross_landed_kg / wr.bales if wr.bales else 1
for move in sh[0].incoming_moves:
lot = move.lot
if lot.lot_type == 'physic':
wr_payload = {
"chunk_key": lot.lot_chunk_key,
- "gross_weight": float(round(lot.lot_gross_quantity / factor,5)),
- "net_weight": float(round(lot.lot_quantity / factor,5)),
- "tare_total": float(round(wr.tare_kg * (lot.lot_quantity / weight_total),5)) ,
+ "gross_weight": float(round(lot.lot_qt * factor_gross,5)),
+ "net_weight": float(round(lot.lot_qt * factor_net,5)),
+ "tare_total": float(round(wr.tare_kg * (lot.lot_qt / wr.bales),5)) ,
"bags": int(lot.lot_qt),
- "surveyor_code": 231,
- "place_key": 0,
- "report_date": 20260127
+ "surveyor_code": sh[0].controller.get_alf(),
+ "place_key": sh[0].to_location.get_places(),
+ "report_date": wr.report_date,
+ "weight_date": wr.weight_date,
+ "agent": sh[0].agent.get_alf()
}
logger.info("PAYLOAD:%s",wr_payload)
data = doc.create_weight_report(wr_payload)
diff --git a/modules/automation/cron.py b/modules/automation/cron.py
index ffeb303..78dbfd3 100644
--- a/modules/automation/cron.py
+++ b/modules/automation/cron.py
@@ -300,6 +300,7 @@ class AutomationCron(ModelSQL, ModelView):
shipment.to_location = loc_to
shipment.carrier = None #carrier
shipment.supplier = agent
+ shipment.agent = agent
shipment.vessel = vessel
shipment.cargo_mode = 'bulk'
shipment.bl_number = bl_number
diff --git a/modules/purchase_trade/party.py b/modules/purchase_trade/party.py
index f12f404..f24d28a 100755
--- a/modules/purchase_trade/party.py
+++ b/modules/purchase_trade/party.py
@@ -4,6 +4,7 @@ from trytond.exceptions import UserError
from trytond.modules.purchase_trade.purchase import (TRIGGERS)
from trytond.transaction import Transaction
from decimal import getcontext, Decimal, ROUND_HALF_UP
+from sql import Table
class PartyExecution(ModelSQL,ModelView):
"Party Execution"
@@ -75,6 +76,17 @@ class Party(metaclass=PoolMeta):
if sp:
return round(((sp[0].cost / Decimal(100)) * Decimal(2.2046)),4)
+ def get_alf(self,name):
+ t = Table('alf')
+ cursor = Transaction().connection.cursor()
+ cursor.execute(*t.select(
+ t.ALF_CODE,
+ where=t.SHORT_NAME.ilike(f'%{name}%')
+ ))
+ rows = cursor.fetchall()
+ if rows:
+ return int(rows[0][0])
+
@classmethod
def getPartyByName(cls, party, category=None):
party = party.upper()
diff --git a/modules/purchase_trade/stock.py b/modules/purchase_trade/stock.py
index 98e505b..862d3b7 100755
--- a/modules/purchase_trade/stock.py
+++ b/modules/purchase_trade/stock.py
@@ -32,6 +32,17 @@ logger = logging.getLogger(__name__)
class Location(metaclass=PoolMeta):
__name__ = 'stock.location'
+ def get_places(self,name):
+ t = Table('places')
+ cursor = Transaction().connection.cursor()
+ cursor.execute(*t.select(
+ t.PLACE_KEY,
+ where=t.PLACE_NAME.ilike(f'%{name}%')
+ ))
+ rows = cursor.fetchall()
+ if rows:
+ return int(rows[0][0])
+
@classmethod
def getLocationByName(cls, location, type):
location = location.upper()
@@ -436,6 +447,7 @@ class ShipmentIn(metaclass=PoolMeta):
add_invoice = fields.Boolean("Add invoice")
returned_id = fields.Char("Returned ID")
result = fields.Char("Result",readonly=True)
+ agent = fields.Many2One('party.party',"Booking Agent")
@classmethod
def __setup__(cls):
diff --git a/modules/purchase_trade/view/shipment_in_form.xml b/modules/purchase_trade/view/shipment_in_form.xml
index 6116510..cf4837f 100755
--- a/modules/purchase_trade/view/shipment_in_form.xml
+++ b/modules/purchase_trade/view/shipment_in_form.xml
@@ -89,6 +89,8 @@ this repository contains the full copyright notices and license terms. -->
+
+
diff --git a/modules/purchase_trade/view/weight_report_form.xml b/modules/purchase_trade/view/weight_report_form.xml
index 4a8ca94..84773fb 100644
--- a/modules/purchase_trade/view/weight_report_form.xml
+++ b/modules/purchase_trade/view/weight_report_form.xml
@@ -61,7 +61,6 @@
-
@@ -76,6 +75,9 @@
+
+
+
-
-
+
+
+
+
+
+
From cca82dd9f7ff746c0b7b887b5ad345a57885d878 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 15 Feb 2026 09:40:05 +0100
Subject: [PATCH 299/618] 14.02.26
---
modules/purchase_trade/__init__.py | 1 +
1 file changed, 1 insertion(+)
diff --git a/modules/purchase_trade/__init__.py b/modules/purchase_trade/__init__.py
index 1716b9c..e55d337 100755
--- a/modules/purchase_trade/__init__.py
+++ b/modules/purchase_trade/__init__.py
@@ -199,6 +199,7 @@ def register():
sale.Derivative,
sale.Valuation,
sale.ValuationLine,
+ sale.ValuationDyn,
sale.ValuationReport,
sale.Fee,
sale.Lot,
From 2fc89282b9bd80910ac00fc46955f8c7a8d0cb62 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 15 Feb 2026 10:02:55 +0100
Subject: [PATCH 300/618] 15.02.26
---
modules/purchase_trade/sale.py | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/modules/purchase_trade/sale.py b/modules/purchase_trade/sale.py
index e4655cb..85c7232 100755
--- a/modules/purchase_trade/sale.py
+++ b/modules/purchase_trade/sale.py
@@ -903,11 +903,11 @@ class ValuationDyn(metaclass=PoolMeta):
Max(val.sale).as_('r_sale'),
Max(val.line).as_('r_line'),
Max(val.date).as_('r_date'),
- val.type.as_('r_type'),
+ Literal(None).as_('r_type'),
Max(val.reference).as_('r_reference'),
- val.counterparty.as_('r_counterparty'),
+ Literal(None).as_('r_counterparty'),
Max(val.product).as_('r_product'),
- val.state.as_('r_state'),
+ Literal(None).as_('r_state'),
Avg(val.price).as_('r_price'),
Max(val.currency).as_('r_currency'),
Sum(val.quantity).as_('r_quantity'),
From dda6a63e74b050dda5ff6c4ab74b1fe8a73c55e9 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 15 Feb 2026 10:08:31 +0100
Subject: [PATCH 301/618] 15.02.26
---
modules/purchase_trade/sale.py | 1 +
1 file changed, 1 insertion(+)
diff --git a/modules/purchase_trade/sale.py b/modules/purchase_trade/sale.py
index 85c7232..113cfb8 100755
--- a/modules/purchase_trade/sale.py
+++ b/modules/purchase_trade/sale.py
@@ -913,6 +913,7 @@ class ValuationDyn(metaclass=PoolMeta):
Sum(val.quantity).as_('r_quantity'),
Max(val.unit).as_('r_unit'),
Sum(val.amount).as_('r_amount'),
+ Sum(val.base_amount).as_('r_base_amount'),
Sum(val.mtm).as_('r_mtm'),
Max(val.lot).as_('r_lot'),
where=wh,
From 9b8d372fa683d6af773a10afa8ba3ae9fb4d5def Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 15 Feb 2026 10:13:02 +0100
Subject: [PATCH 302/618] 15.02.26
---
modules/purchase_trade/sale.py | 2 ++
1 file changed, 2 insertions(+)
diff --git a/modules/purchase_trade/sale.py b/modules/purchase_trade/sale.py
index 113cfb8..9db5726 100755
--- a/modules/purchase_trade/sale.py
+++ b/modules/purchase_trade/sale.py
@@ -914,7 +914,9 @@ class ValuationDyn(metaclass=PoolMeta):
Max(val.unit).as_('r_unit'),
Sum(val.amount).as_('r_amount'),
Sum(val.base_amount).as_('r_base_amount'),
+ Sum(val.rate).as_('r_rate'),
Sum(val.mtm).as_('r_mtm'),
+ Max(val.strategy).as_('r_strategy'),
Max(val.lot).as_('r_lot'),
where=wh,
group_by=[val.purchase,val.sale])
From 67d3ce545eb254ceb59ef0858c927293ce83246c Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 15 Feb 2026 10:16:08 +0100
Subject: [PATCH 303/618] 15.02.26
---
modules/purchase_trade/sale.py | 1 +
1 file changed, 1 insertion(+)
diff --git a/modules/purchase_trade/sale.py b/modules/purchase_trade/sale.py
index 9db5726..08999db 100755
--- a/modules/purchase_trade/sale.py
+++ b/modules/purchase_trade/sale.py
@@ -918,6 +918,7 @@ class ValuationDyn(metaclass=PoolMeta):
Sum(val.mtm).as_('r_mtm'),
Max(val.strategy).as_('r_strategy'),
Max(val.lot).as_('r_lot'),
+ Max(val.sale_line).as_('r_sale_line'),
where=wh,
group_by=[val.purchase,val.sale])
From 29ada1899e2897b9719016e08f343d25912ea146 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 15 Feb 2026 11:27:59 +0100
Subject: [PATCH 304/618] 15.02.26
---
modules/purchase_trade/purchase.py | 5 +++++
modules/purchase_trade/valuation.py | 8 +++++---
2 files changed, 10 insertions(+), 3 deletions(-)
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index 8f31407..a821914 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -495,6 +495,11 @@ class Line(metaclass=PoolMeta):
def default_inherit_cer(cls):
return True
+ def get_matched_lines(self):
+ if self.lots:
+ LotQt = Pool().get('lot.qt')
+ return LotQt.search([('lot_p','=',self.lots[0].id),('lot_s','>',0)])
+
def get_date(self,trigger_event):
date = None
if self.estimated_date:
diff --git a/modules/purchase_trade/valuation.py b/modules/purchase_trade/valuation.py
index 14a18fe..3ab5dda 100644
--- a/modules/purchase_trade/valuation.py
+++ b/modules/purchase_trade/valuation.py
@@ -259,7 +259,6 @@ class ValuationBase(ModelSQL):
return price_lines
-
@classmethod
def group_fees_by_type_supplier(cls,line,fees):
grouped = defaultdict(list)
@@ -284,8 +283,11 @@ class ValuationBase(ModelSQL):
Date = Pool().get('ir.date')
Currency = Pool().get('currency.currency')
FeeLots = Pool().get('fee.lots')
-
- for lot in line.lots or []:
+ #if line is matched with sale_line we should add the open sale side
+ sale_lines = line.get_matched_lines()
+ sale_open_lots = [s.lot_s for s in sale_lines]
+ all_lots = (line.lots or []) + sale_open_lots
+ for lot in all_lots:
fl = FeeLots.search([('lot', '=', lot.id)])
if not fl:
continue
From 9565e828505763daf4120278ca84ffb3bfab4c03 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 15 Feb 2026 11:37:46 +0100
Subject: [PATCH 305/618] 15.02.26
---
modules/purchase_trade/valuation.py | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/modules/purchase_trade/valuation.py b/modules/purchase_trade/valuation.py
index 3ab5dda..cf18b52 100644
--- a/modules/purchase_trade/valuation.py
+++ b/modules/purchase_trade/valuation.py
@@ -284,9 +284,9 @@ class ValuationBase(ModelSQL):
Currency = Pool().get('currency.currency')
FeeLots = Pool().get('fee.lots')
#if line is matched with sale_line we should add the open sale side
- sale_lines = line.get_matched_lines()
- sale_open_lots = [s.lot_s for s in sale_lines]
- all_lots = (line.lots or []) + sale_open_lots
+ sale_lines = line.get_matched_lines() or []
+ sale_open_lots = tuple(s.lot_s for s in sale_lines if s.lot_s)
+ all_lots = (line.lots or ()) + sale_open_lots
for lot in all_lots:
fl = FeeLots.search([('lot', '=', lot.id)])
if not fl:
From 4059cd591efc2dc753094d2912bfeca7e022bf3b Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 15 Feb 2026 12:47:07 +0100
Subject: [PATCH 306/618] 15.02.26
---
modules/purchase_trade/fee.py | 41 +++++++
modules/purchase_trade/finance_tools.py | 141 ++++++++++++++++++++++++
2 files changed, 182 insertions(+)
create mode 100644 modules/purchase_trade/finance_tools.py
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index 062ddf4..e56219c 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -19,6 +19,7 @@ import logging
from collections import defaultdict
from trytond.exceptions import UserWarning, UserError
from trytond.modules.account.exceptions import PeriodNotFoundError
+from trytond.modules.purchase_trade.finance_tools import InterestCalculator
logger = logging.getLogger(__name__)
@@ -56,6 +57,7 @@ class Fee(ModelSQL,ModelView):
('lumpsum', 'Lump sum'),
('perqt', 'Per qt'),
('pprice', '% price'),
+ ('rate', '% Mth'),
('pcost', '% cost price'),
('ppack', 'Per packing'),
], 'Mode', required=True)
@@ -93,6 +95,13 @@ class Fee(ModelSQL,ModelView):
('brut', 'Gross'),
], string='W. type')
+ fee_date = fields.Date("Date")
+
+ @classmethod
+ def default_fee_date(cls):
+ Date = Pool().get('ir.date')
+ return Date.today()
+
@classmethod
def default_qt_state(cls):
LotQtType = Pool().get('lot.qt.type')
@@ -295,6 +304,7 @@ class Fee(ModelSQL,ModelView):
return Decimal(lqts[0].lot_quantity)
def get_amount(self,name=None):
+ Date = Pool().get('ir.date')
sign = Decimal(1)
if self.price:
# if self.p_r:
@@ -304,6 +314,37 @@ class Fee(ModelSQL,ModelView):
return self.price * sign
elif self.mode == 'ppack':
return round(self.price * self.quantity,2)
+ elif self.mode == 'rate':
+ #take period with estimated trigger date
+ if self.line:
+ if self.line.purchase.payment_term:
+ est_date = self.line.purchase.payment_term.get_date()
+ beg_date = self.fee_date if self.fee_date else Date.today()
+ factor = InterestCalculator.calculate(
+ start_date=beg_date,
+ end_date=est_date,
+ rate=self.price,
+ rate_type='annual',
+ convention='ACT/360',
+ compounding='simple'
+ )
+
+ return round(factor * self.line.unit_price * (self.quantity if self.quantity else 0) * sign,2)
+ if self.sale_line:
+ if self.sale_line.sale.payment_term:
+ est_date = self.sale_line.sale.payment_term.get_date()
+ beg_date = self.fee_date if self.fee_date else Date.today()
+ factor = InterestCalculator.calculate(
+ start_date=beg_date,
+ end_date=est_date,
+ rate=self.price,
+ rate_type='annual',
+ convention='ACT/360',
+ compounding='simple'
+ )
+
+ return round(factor * self.sale_line.unit_price * (self.quantity if self.quantity else 0) * sign,2)
+
elif self.mode == 'perqt':
if self.shipment_in:
StockMove = Pool().get('stock.move')
diff --git a/modules/purchase_trade/finance_tools.py b/modules/purchase_trade/finance_tools.py
new file mode 100644
index 0000000..ffbcc19
--- /dev/null
+++ b/modules/purchase_trade/finance_tools.py
@@ -0,0 +1,141 @@
+from decimal import Decimal, getcontext
+from datetime import date
+from calendar import isleap
+
+getcontext().prec = 28
+
+
+class DayCount:
+
+ @staticmethod
+ def year_fraction(start_date, end_date, convention):
+ if end_date <= start_date:
+ return Decimal('0')
+
+ if convention == 'ACT/360':
+ return Decimal((end_date - start_date).days) / Decimal(360)
+
+ elif convention in ('ACT/365', 'ACT/365F'):
+ return Decimal((end_date - start_date).days) / Decimal(365)
+
+ elif convention == 'ACT/ACT_ISDA':
+ return DayCount._act_act_isda(start_date, end_date)
+
+ elif convention == '30/360_US':
+ return DayCount._30_360_us(start_date, end_date)
+
+ elif convention == '30E/360':
+ return DayCount._30e_360(start_date, end_date)
+
+ elif convention == '30E/360_ISDA':
+ return DayCount._30e_360_isda(start_date, end_date)
+
+ else:
+ raise ValueError(f"Unsupported convention {convention}")
+
+ # ---------- IMPLEMENTATIONS ----------
+
+ @staticmethod
+ def _act_act_isda(start_date, end_date):
+ total = Decimal('0')
+ current = start_date
+
+ while current < end_date:
+ year_end = date(current.year, 12, 31)
+ period_end = min(year_end.replace(day=31) +
+ (date(current.year + 1, 1, 1) - year_end),
+ end_date)
+
+ days_in_period = (period_end - current).days
+ days_in_year = 366 if isleap(current.year) else 365
+
+ total += Decimal(days_in_period) / Decimal(days_in_year)
+ current = period_end
+
+ return total
+
+ @staticmethod
+ def _30_360_us(d1, d2):
+ d1_day = 30 if d1.day == 31 else d1.day
+ if d1.day in (30, 31) and d2.day == 31:
+ d2_day = 30
+ else:
+ d2_day = d2.day
+
+ days = ((d2.year - d1.year) * 360 +
+ (d2.month - d1.month) * 30 +
+ (d2_day - d1_day))
+
+ return Decimal(days) / Decimal(360)
+
+ @staticmethod
+ def _30e_360(d1, d2):
+ d1_day = min(d1.day, 30)
+ d2_day = min(d2.day, 30)
+
+ days = ((d2.year - d1.year) * 360 +
+ (d2.month - d1.month) * 30 +
+ (d2_day - d1_day))
+
+ return Decimal(days) / Decimal(360)
+
+ @staticmethod
+ def _30e_360_isda(d1, d2):
+ d1_day = 30 if d1.day == 31 else d1.day
+ d2_day = 30 if d2.day == 31 else d2.day
+
+ days = ((d2.year - d1.year) * 360 +
+ (d2.month - d1.month) * 30 +
+ (d2_day - d1_day))
+
+ return Decimal(days) / Decimal(360)
+
+
+class InterestCalculator:
+
+ @staticmethod
+ def calculate(
+ start_date,
+ end_date,
+ rate,
+ rate_type='annual', # 'annual' or 'monthly'
+ convention='ACT/360',
+ compounding='simple', # simple, annual, monthly, continuous
+ ):
+ """
+ Retourne le facteur d'intérêt (pas le montant).
+ """
+
+ if not start_date or not end_date:
+ return Decimal('0')
+
+ if end_date <= start_date:
+ return Decimal('0')
+
+ rate = Decimal(str(rate))
+
+ # Conversion en taux annuel si besoin
+ if rate_type == 'monthly':
+ annual_rate = rate * Decimal(12)
+ else:
+ annual_rate = rate
+
+ yf = DayCount.year_fraction(start_date, end_date, convention)
+
+ if compounding == 'simple':
+ return annual_rate * yf
+
+ elif compounding == 'annual':
+ return (Decimal(1) + annual_rate) ** yf - Decimal(1)
+
+ elif compounding == 'monthly':
+ monthly_rate = annual_rate / Decimal(12)
+ months = yf * Decimal(12)
+ return (Decimal(1) + monthly_rate) ** months - Decimal(1)
+
+ elif compounding == 'continuous':
+ from math import exp
+ return Decimal(exp(float(annual_rate * yf))) - Decimal(1)
+
+ else:
+ raise ValueError("Unsupported compounding mode")
From 479e0d4d5ab105b69807b572683137b1920c497a Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 15 Feb 2026 14:23:33 +0100
Subject: [PATCH 307/618] 15.02.26
---
modules/account_invoice/payment_term.py | 8 ++--
modules/purchase_trade/fee.py | 44 ++++++++++---------
modules/purchase_trade/sale.py | 10 +++--
.../purchase_trade/view/sale_line_form.xml | 6 +--
4 files changed, 35 insertions(+), 33 deletions(-)
diff --git a/modules/account_invoice/payment_term.py b/modules/account_invoice/payment_term.py
index a376774..e4bac01 100755
--- a/modules/account_invoice/payment_term.py
+++ b/modules/account_invoice/payment_term.py
@@ -155,12 +155,10 @@ class PaymentTermLine(sequence_ordered(), ModelSQL, ModelView):
self.ratio = self.round(1 / self.divisor,
self.__class__.ratio.digits[1])
- def get_date(self, date, purchase_line = None):
+ def get_date(self, date, line = None):
#find date based on trigger:
- if purchase_line and self.trigger_event:
- PurchaseLine = Pool().get('purchase.line')
- purchase_line = PurchaseLine(purchase_line)
- trigger_date = purchase_line.get_date(self.trigger_event)
+ if line and self.trigger_event:
+ trigger_date = line.get_date(self.trigger_event)
if trigger_date:
date = trigger_date
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index e56219c..8ca056d 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -57,7 +57,7 @@ class Fee(ModelSQL,ModelView):
('lumpsum', 'Lump sum'),
('perqt', 'Per qt'),
('pprice', '% price'),
- ('rate', '% Mth'),
+ ('rate', '% rate'),
('pcost', '% cost price'),
('ppack', 'Per packing'),
], 'Mode', required=True)
@@ -318,32 +318,34 @@ class Fee(ModelSQL,ModelView):
#take period with estimated trigger date
if self.line:
if self.line.purchase.payment_term:
- est_date = self.line.purchase.payment_term.get_date()
beg_date = self.fee_date if self.fee_date else Date.today()
- factor = InterestCalculator.calculate(
- start_date=beg_date,
- end_date=est_date,
- rate=self.price,
- rate_type='annual',
- convention='ACT/360',
- compounding='simple'
- )
+ est_date = self.line.purchase.payment_term[0].get_date(beg_date)
+ if est_date and beg_date:
+ factor = InterestCalculator.calculate(
+ start_date=beg_date,
+ end_date=est_date,
+ rate=self.price,
+ rate_type='annual',
+ convention='ACT/360',
+ compounding='simple'
+ )
- return round(factor * self.line.unit_price * (self.quantity if self.quantity else 0) * sign,2)
+ return round(factor * self.line.unit_price * (self.quantity if self.quantity else 0) * sign,2)
if self.sale_line:
if self.sale_line.sale.payment_term:
- est_date = self.sale_line.sale.payment_term.get_date()
beg_date = self.fee_date if self.fee_date else Date.today()
- factor = InterestCalculator.calculate(
- start_date=beg_date,
- end_date=est_date,
- rate=self.price,
- rate_type='annual',
- convention='ACT/360',
- compounding='simple'
- )
+ est_date = self.sale_line.sale.payment_term.get_date(beg_date)
+ if est_date and beg_date:
+ factor = InterestCalculator.calculate(
+ start_date=beg_date,
+ end_date=est_date,
+ rate=self.price,
+ rate_type='annual',
+ convention='ACT/360',
+ compounding='simple'
+ )
- return round(factor * self.sale_line.unit_price * (self.quantity if self.quantity else 0) * sign,2)
+ return round(factor * self.sale_line.unit_price * (self.quantity if self.quantity else 0) * sign,2)
elif self.mode == 'perqt':
if self.shipment_in:
diff --git a/modules/purchase_trade/sale.py b/modules/purchase_trade/sale.py
index 08999db..374c298 100755
--- a/modules/purchase_trade/sale.py
+++ b/modules/purchase_trade/sale.py
@@ -460,10 +460,12 @@ class SaleLine(metaclass=PoolMeta):
LotQt = Pool().get('lot.qt')
return LotQt.search([('lot_s','=',self.lots[0].id),('lot_p','>',0)])
- # @fields.depends('quantity')
- # def on_change_with_quantity_theorical(self):
- # if not self.quantity_theorical:
- # return self.quantity
+ def get_date(self,trigger_event):
+ date = None
+ if self.estimated_date:
+ trigger_date = [d.estimated_date for d in self.estimated_date if d.trigger == trigger_event]
+ trigger_date = trigger_date[0] if trigger_date else None
+ return date
def get_tol_min(self,name):
if self.inherit_tol:
diff --git a/modules/purchase_trade/view/sale_line_form.xml b/modules/purchase_trade/view/sale_line_form.xml
index 4016a39..922dc9a 100755
--- a/modules/purchase_trade/view/sale_line_form.xml
+++ b/modules/purchase_trade/view/sale_line_form.xml
@@ -76,10 +76,10 @@ this repository contains the full copyright notices and license terms. -->
-
-
-
+
+
+
\ No newline at end of file
From 10b370f11b3e5565216653e218c0a428bf76735e Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 15 Feb 2026 14:33:14 +0100
Subject: [PATCH 308/618] 15.02.26
---
modules/purchase_trade/fee.py | 2 +-
modules/purchase_trade/financing_tools.py | 259 ++++++++++++++++++++++
2 files changed, 260 insertions(+), 1 deletion(-)
create mode 100644 modules/purchase_trade/financing_tools.py
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index 8ca056d..ffbd2a4 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -334,7 +334,7 @@ class Fee(ModelSQL,ModelView):
if self.sale_line:
if self.sale_line.sale.payment_term:
beg_date = self.fee_date if self.fee_date else Date.today()
- est_date = self.sale_line.sale.payment_term.get_date(beg_date)
+ est_date = self.sale_line.sale.payment_term[0].get_date(beg_date)
if est_date and beg_date:
factor = InterestCalculator.calculate(
start_date=beg_date,
diff --git a/modules/purchase_trade/financing_tools.py b/modules/purchase_trade/financing_tools.py
new file mode 100644
index 0000000..6a7aa5b
--- /dev/null
+++ b/modules/purchase_trade/financing_tools.py
@@ -0,0 +1,259 @@
+from decimal import Decimal, getcontext
+from datetime import datetime, date
+from calendar import isleap
+from typing import Callable, Dict
+import uuid
+
+getcontext().prec = 28
+
+# {
+# "computation_type": "INTEREST_ACCRUAL",
+# "input": {
+# "start_date": "2026-01-01",
+# "end_date": "2026-06-30",
+# "notional": "1000000",
+# "rate": {
+# "value": "0.08",
+# "type": "ANNUAL"
+# },
+# "day_count_convention": "ACT/360",
+# "compounding_method": "SIMPLE"
+# }
+# }
+
+# result = FinancialComputationService.execute(payload)
+# interest = Decimal(result["result"]["interest_amount"])
+# interest = currency.round(interest)
+
+# ============================================================
+# VERSIONING
+# ============================================================
+
+ENGINE_VERSION = "1.0.0"
+
+
+# ============================================================
+# REGISTRY (PLUGIN SYSTEM)
+# ============================================================
+
+DAY_COUNT_REGISTRY: Dict[str, Callable] = {}
+COMPOUNDING_REGISTRY: Dict[str, Callable] = {}
+
+
+def register_day_count(name: str):
+ def decorator(func):
+ DAY_COUNT_REGISTRY[name] = func
+ return func
+ return decorator
+
+
+def register_compounding(name: str):
+ def decorator(func):
+ COMPOUNDING_REGISTRY[name] = func
+ return func
+ return decorator
+
+
+# ============================================================
+# DOMAIN – DAY COUNT CONVENTIONS
+# ============================================================
+
+@register_day_count("ACT/360")
+def act_360(start: date, end: date) -> Decimal:
+ return Decimal((end - start).days) / Decimal(360)
+
+
+@register_day_count("ACT/365F")
+def act_365f(start: date, end: date) -> Decimal:
+ return Decimal((end - start).days) / Decimal(365)
+
+
+@register_day_count("ACT/ACT_ISDA")
+def act_act_isda(start: date, end: date) -> Decimal:
+ total = Decimal("0")
+ current = start
+
+ while current < end:
+ year_end = date(current.year, 12, 31)
+ next_year = date(current.year + 1, 1, 1)
+ period_end = min(next_year, end)
+
+ days = (period_end - current).days
+ year_days = 366 if isleap(current.year) else 365
+
+ total += Decimal(days) / Decimal(year_days)
+ current = period_end
+
+ return total
+
+
+@register_day_count("30E/360")
+def thirty_e_360(start: date, end: date) -> Decimal:
+ d1 = min(start.day, 30)
+ d2 = min(end.day, 30)
+
+ days = (
+ (end.year - start.year) * 360 +
+ (end.month - start.month) * 30 +
+ (d2 - d1)
+ )
+
+ return Decimal(days) / Decimal(360)
+
+
+# ============================================================
+# DOMAIN – COMPOUNDING STRATEGIES
+# ============================================================
+
+@register_compounding("SIMPLE")
+def simple(rate: Decimal, yf: Decimal) -> Decimal:
+ return rate * yf
+
+
+@register_compounding("ANNUAL")
+def annual(rate: Decimal, yf: Decimal) -> Decimal:
+ return (Decimal(1) + rate) ** yf - Decimal(1)
+
+
+@register_compounding("MONTHLY")
+def monthly(rate: Decimal, yf: Decimal) -> Decimal:
+ monthly_rate = rate / Decimal(12)
+ months = yf * Decimal(12)
+ return (Decimal(1) + monthly_rate) ** months - Decimal(1)
+
+
+@register_compounding("CONTINUOUS")
+def continuous(rate: Decimal, yf: Decimal) -> Decimal:
+ from math import exp
+ return Decimal(exp(float(rate * yf))) - Decimal(1)
+
+
+# ============================================================
+# DOMAIN – INTEREST COMPUTATION OBJECT
+# ============================================================
+
+class InterestComputation:
+
+ def __init__(
+ self,
+ start_date: date,
+ end_date: date,
+ notional: Decimal,
+ rate_value: Decimal,
+ rate_type: str,
+ day_count: str,
+ compounding: str,
+ ):
+ self.start_date = start_date
+ self.end_date = end_date
+ self.notional = notional
+ self.rate_value = rate_value
+ self.rate_type = rate_type
+ self.day_count = day_count
+ self.compounding = compounding
+
+ def compute(self):
+
+ if self.end_date <= self.start_date:
+ raise ValueError("end_date must be after start_date")
+
+ if self.day_count not in DAY_COUNT_REGISTRY:
+ raise ValueError("Unsupported day count convention")
+
+ if self.compounding not in COMPOUNDING_REGISTRY:
+ raise ValueError("Unsupported compounding method")
+
+ yf = DAY_COUNT_REGISTRY[self.day_count](
+ self.start_date,
+ self.end_date
+ )
+
+ # Normalize rate to annual
+ if self.rate_type == "MONTHLY":
+ annual_rate = self.rate_value * Decimal(12)
+ else:
+ annual_rate = self.rate_value
+
+ factor = COMPOUNDING_REGISTRY[self.compounding](
+ annual_rate,
+ yf
+ )
+
+ interest_amount = self.notional * factor
+
+ return {
+ "year_fraction": yf,
+ "interest_factor": factor,
+ "interest_amount": interest_amount,
+ }
+
+
+# ============================================================
+# APPLICATION LAYER – JSON SERVICE (Camunda Ready)
+# ============================================================
+
+class FinancialComputationService:
+
+ @staticmethod
+ def execute(payload: dict) -> dict:
+ """
+ Stateless JSON entrypoint.
+ Compatible Camunda / REST / Tryton bridge.
+ """
+
+ try:
+ request_id = str(uuid.uuid4())
+
+ input_data = payload["input"]
+
+ start_date = datetime.strptime(
+ input_data["start_date"], "%Y-%m-%d"
+ ).date()
+
+ end_date = datetime.strptime(
+ input_data["end_date"], "%Y-%m-%d"
+ ).date()
+
+ notional = Decimal(input_data["notional"])
+ rate_value = Decimal(input_data["rate"]["value"])
+ rate_type = input_data["rate"]["type"].upper()
+ day_count = input_data["day_count_convention"]
+ compounding = input_data["compounding_method"]
+
+ computation = InterestComputation(
+ start_date=start_date,
+ end_date=end_date,
+ notional=notional,
+ rate_value=rate_value,
+ rate_type=rate_type,
+ day_count=day_count,
+ compounding=compounding,
+ )
+
+ result = computation.compute()
+
+ return {
+ "metadata": {
+ "engine_version": ENGINE_VERSION,
+ "request_id": request_id,
+ "timestamp": datetime.utcnow().isoformat() + "Z"
+ },
+ "result": {
+ "year_fraction": str(result["year_fraction"]),
+ "interest_factor": str(result["interest_factor"]),
+ "interest_amount": str(result["interest_amount"]),
+ },
+ "explainability": {
+ "formula": "Interest = Notional × Factor",
+ "factor_definition": f"{compounding} compounding applied to annualized rate",
+ "day_count_used": day_count
+ },
+ "status": "SUCCESS"
+ }
+
+ except Exception as e:
+ return {
+ "status": "ERROR",
+ "message": str(e),
+ "engine_version": ENGINE_VERSION
+ }
From 4fb39d564e9ed2d189fbcca9ee5fc68029aca782 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 15 Feb 2026 14:37:04 +0100
Subject: [PATCH 309/618] 15.02.26
---
modules/purchase_trade/fee.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index ffbd2a4..76d8645 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -319,7 +319,7 @@ class Fee(ModelSQL,ModelView):
if self.line:
if self.line.purchase.payment_term:
beg_date = self.fee_date if self.fee_date else Date.today()
- est_date = self.line.purchase.payment_term[0].get_date(beg_date)
+ est_date = self.line.purchase.payment_term.lines[0].get_date(beg_date)
if est_date and beg_date:
factor = InterestCalculator.calculate(
start_date=beg_date,
@@ -334,7 +334,7 @@ class Fee(ModelSQL,ModelView):
if self.sale_line:
if self.sale_line.sale.payment_term:
beg_date = self.fee_date if self.fee_date else Date.today()
- est_date = self.sale_line.sale.payment_term[0].get_date(beg_date)
+ est_date = self.sale_line.sale.payment_term.lines[0].get_date(beg_date)
if est_date and beg_date:
factor = InterestCalculator.calculate(
start_date=beg_date,
From b94d6e911da802ed3d9ab7ccfa6c1c9d461abd3d Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 15 Feb 2026 14:45:31 +0100
Subject: [PATCH 310/618] 15.02.26
---
modules/purchase_trade/fee.py | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index 76d8645..a6842f6 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -335,6 +335,7 @@ class Fee(ModelSQL,ModelView):
if self.sale_line.sale.payment_term:
beg_date = self.fee_date if self.fee_date else Date.today()
est_date = self.sale_line.sale.payment_term.lines[0].get_date(beg_date)
+ logger.info("EST_DATE:%s",est_date)
if est_date and beg_date:
factor = InterestCalculator.calculate(
start_date=beg_date,
@@ -344,7 +345,7 @@ class Fee(ModelSQL,ModelView):
convention='ACT/360',
compounding='simple'
)
-
+ logger.info("FACTOR:%s",factor)
return round(factor * self.sale_line.unit_price * (self.quantity if self.quantity else 0) * sign,2)
elif self.mode == 'perqt':
From d458e9849dfc455dfd2d32f184e757739ddcf435 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 15 Feb 2026 14:54:10 +0100
Subject: [PATCH 311/618] 15.02.26
---
modules/purchase_trade/fee.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index a6842f6..ae6551d 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -319,7 +319,7 @@ class Fee(ModelSQL,ModelView):
if self.line:
if self.line.purchase.payment_term:
beg_date = self.fee_date if self.fee_date else Date.today()
- est_date = self.line.purchase.payment_term.lines[0].get_date(beg_date)
+ est_date = self.line.purchase.payment_term.lines[0].get_date(beg_date,self.line)
if est_date and beg_date:
factor = InterestCalculator.calculate(
start_date=beg_date,
@@ -334,7 +334,7 @@ class Fee(ModelSQL,ModelView):
if self.sale_line:
if self.sale_line.sale.payment_term:
beg_date = self.fee_date if self.fee_date else Date.today()
- est_date = self.sale_line.sale.payment_term.lines[0].get_date(beg_date)
+ est_date = self.sale_line.sale.payment_term.lines[0].get_date(beg_date,self.sale_line)
logger.info("EST_DATE:%s",est_date)
if est_date and beg_date:
factor = InterestCalculator.calculate(
From 35c9731a859089c82e03ab67032f578ab0b2dc47 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 15 Feb 2026 15:02:42 +0100
Subject: [PATCH 312/618] 15.02.26
---
modules/purchase_trade/valuation.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/purchase_trade/valuation.py b/modules/purchase_trade/valuation.py
index cf18b52..4a9ffc3 100644
--- a/modules/purchase_trade/valuation.py
+++ b/modules/purchase_trade/valuation.py
@@ -296,7 +296,7 @@ class ValuationBase(ModelSQL):
for sf in cls.group_fees_by_type_supplier(line, fees):
sign = -1 if sf.p_r == 'pay' else 1
qty = round(lot.get_current_quantity_converted(), 5)
- if sf.mode == 'ppack':
+ if sf.mode == 'ppack' or sf.mode == 'rate':
price = sf.price
amount = sf.amount * sign
elif sf.mode == 'lumpsum':
From 08a66bc21981134c3f580973e51c385d2de5fd35 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 15 Feb 2026 15:20:55 +0100
Subject: [PATCH 313/618] 15.02.26
---
modules/account_invoice/payment_term.py | 1 +
1 file changed, 1 insertion(+)
diff --git a/modules/account_invoice/payment_term.py b/modules/account_invoice/payment_term.py
index e4bac01..7a6face 100755
--- a/modules/account_invoice/payment_term.py
+++ b/modules/account_invoice/payment_term.py
@@ -159,6 +159,7 @@ class PaymentTermLine(sequence_ordered(), ModelSQL, ModelView):
#find date based on trigger:
if line and self.trigger_event:
trigger_date = line.get_date(self.trigger_event)
+ logger.info("DATE_FROM_LINE:%s",trigger_date)
if trigger_date:
date = trigger_date
From d1d37ee4b3e2947ca109d6518ab169c06a477c37 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 15 Feb 2026 15:33:32 +0100
Subject: [PATCH 314/618] 15.02.26
---
modules/account_invoice/payment_term.py | 4 +++-
modules/purchase_trade/fee.py | 4 ++--
2 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/modules/account_invoice/payment_term.py b/modules/account_invoice/payment_term.py
index 7a6face..a5ee538 100755
--- a/modules/account_invoice/payment_term.py
+++ b/modules/account_invoice/payment_term.py
@@ -13,8 +13,10 @@ from trytond.pool import Pool
from trytond.pyson import Eval
from trytond.transaction import Transaction
from trytond.wizard import Button, StateView, Wizard
-
from .exceptions import PaymentTermComputeError, PaymentTermValidationError
+import logging
+
+logger = logging.getLogger(__name__)
class PaymentTerm(DeactivableMixin, ModelSQL, ModelView):
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index ae6551d..8c82553 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -324,7 +324,7 @@ class Fee(ModelSQL,ModelView):
factor = InterestCalculator.calculate(
start_date=beg_date,
end_date=est_date,
- rate=self.price,
+ rate=self.price/100,
rate_type='annual',
convention='ACT/360',
compounding='simple'
@@ -340,7 +340,7 @@ class Fee(ModelSQL,ModelView):
factor = InterestCalculator.calculate(
start_date=beg_date,
end_date=est_date,
- rate=self.price,
+ rate=self.price/100,
rate_type='annual',
convention='ACT/360',
compounding='simple'
From 00cae2f82bec05cdd5b386205e41d061f76acae6 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 15 Feb 2026 15:49:40 +0100
Subject: [PATCH 315/618] 15.02.26
---
modules/purchase_trade/sale.py | 3 +++
1 file changed, 3 insertions(+)
diff --git a/modules/purchase_trade/sale.py b/modules/purchase_trade/sale.py
index 374c298..ab2c598 100755
--- a/modules/purchase_trade/sale.py
+++ b/modules/purchase_trade/sale.py
@@ -463,7 +463,10 @@ class SaleLine(metaclass=PoolMeta):
def get_date(self,trigger_event):
date = None
if self.estimated_date:
+ logger.info("ESTIMATED_DATE:%s",self.estimated_date)
trigger_date = [d.estimated_date for d in self.estimated_date if d.trigger == trigger_event]
+ logger.info("TRIGGER_DATE:%s",trigger_date)
+ logger.info("TRIGGER_EVENT:%s",trigger_event)
trigger_date = trigger_date[0] if trigger_date else None
return date
From 3f54cbef6ad9ec062d827cac27234fd4962f2ffa Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 15 Feb 2026 15:54:44 +0100
Subject: [PATCH 316/618] 15.02.26
---
modules/purchase_trade/purchase.py | 4 ++--
modules/purchase_trade/sale.py | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index a821914..7e51b8d 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -501,11 +501,11 @@ class Line(metaclass=PoolMeta):
return LotQt.search([('lot_p','=',self.lots[0].id),('lot_s','>',0)])
def get_date(self,trigger_event):
- date = None
+ trigger_date = None
if self.estimated_date:
trigger_date = [d.estimated_date for d in self.estimated_date if d.trigger == trigger_event]
trigger_date = trigger_date[0] if trigger_date else None
- return date
+ return trigger_date
def get_tol_min(self,name):
if self.inherit_tol:
diff --git a/modules/purchase_trade/sale.py b/modules/purchase_trade/sale.py
index ab2c598..9d0a31d 100755
--- a/modules/purchase_trade/sale.py
+++ b/modules/purchase_trade/sale.py
@@ -461,14 +461,14 @@ class SaleLine(metaclass=PoolMeta):
return LotQt.search([('lot_s','=',self.lots[0].id),('lot_p','>',0)])
def get_date(self,trigger_event):
- date = None
+ trigger_date = None
if self.estimated_date:
logger.info("ESTIMATED_DATE:%s",self.estimated_date)
trigger_date = [d.estimated_date for d in self.estimated_date if d.trigger == trigger_event]
logger.info("TRIGGER_DATE:%s",trigger_date)
logger.info("TRIGGER_EVENT:%s",trigger_event)
trigger_date = trigger_date[0] if trigger_date else None
- return date
+ return trigger_date
def get_tol_min(self,name):
if self.inherit_tol:
From bb313d29bf33c3ea77f66609f61b6e625bff624a Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 16 Feb 2026 15:46:43 +0100
Subject: [PATCH 317/618] 1602.26
---
modules/account_invoice/invoice.py | 9 ++++++---
modules/account_invoice/payment_term.py | 4 ++--
2 files changed, 8 insertions(+), 5 deletions(-)
diff --git a/modules/account_invoice/invoice.py b/modules/account_invoice/invoice.py
index 1d709cf..a6af844 100755
--- a/modules/account_invoice/invoice.py
+++ b/modules/account_invoice/invoice.py
@@ -1286,9 +1286,12 @@ class Invoice(Workflow, ModelSQL, ModelView, TaxableMixin, InvoiceReportMixin):
remainder = sum(l.debit - l.credit for l in move_lines)
if self.payment_term:
payment_date = self.payment_term_date or self.invoice_date or today
- purchase_line = int(str(self.lines[0].origin).split(",")[1]) if self.lines[0].origin else None
- term_lines = self.payment_term.compute(
- self.total_amount, self.currency, payment_date, purchase_line)
+ model = str(self.lines[0].origin).split(",")[0] if self.lines[0].origin else None
+ if model:
+ Line = Pool().get(model)
+ line = Line(int(str(self.lines[0].origin).split(",")[1]))
+ term_lines = self.payment_term.compute(
+ self.total_amount, self.currency, payment_date, line)
else:
term_lines = [(self.payment_term_date or today, self.total_amount)]
past_payment_term_dates = []
diff --git a/modules/account_invoice/payment_term.py b/modules/account_invoice/payment_term.py
index a5ee538..558f666 100755
--- a/modules/account_invoice/payment_term.py
+++ b/modules/account_invoice/payment_term.py
@@ -48,7 +48,7 @@ class PaymentTerm(DeactivableMixin, ModelSQL, ModelView):
'.msg_payment_term_missing_last_remainder',
payment_term=term.rec_name))
- def compute(self, amount, currency, date, purchase_line = None):
+ def compute(self, amount, currency, date, line = None):
"""Calculate payment terms and return a list of tuples
with (date, amount) for each payment term line.
@@ -61,7 +61,7 @@ class PaymentTerm(DeactivableMixin, ModelSQL, ModelView):
remainder = amount
for line in self.lines:
value = line.get_value(remainder, amount, currency)
- value_date = line.get_date(date, purchase_line)
+ value_date = line.get_date(date, line)
if value is None or not value_date:
continue
if ((remainder - value) * sign) < Decimal(0):
From 0e5c40e9a2a3cddce38d759d9ebfdd1b58be17b3 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 16 Feb 2026 19:55:09 +0100
Subject: [PATCH 318/618] 16.02.26
---
modules/account_invoice/invoice.py | 2 ++
1 file changed, 2 insertions(+)
diff --git a/modules/account_invoice/invoice.py b/modules/account_invoice/invoice.py
index a6af844..6a90680 100755
--- a/modules/account_invoice/invoice.py
+++ b/modules/account_invoice/invoice.py
@@ -1287,9 +1287,11 @@ class Invoice(Workflow, ModelSQL, ModelView, TaxableMixin, InvoiceReportMixin):
if self.payment_term:
payment_date = self.payment_term_date or self.invoice_date or today
model = str(self.lines[0].origin).split(",")[0] if self.lines[0].origin else None
+ logger.info("MODEL:%s",model)
if model:
Line = Pool().get(model)
line = Line(int(str(self.lines[0].origin).split(",")[1]))
+ logger.info("LINE:%s",line)
term_lines = self.payment_term.compute(
self.total_amount, self.currency, payment_date, line)
else:
From 697b53e68a03ce0f8c7bf681c14bca171bfd26fa Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 16 Feb 2026 20:01:57 +0100
Subject: [PATCH 319/618] 16.02.26
---
modules/account_invoice/payment_term.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/modules/account_invoice/payment_term.py b/modules/account_invoice/payment_term.py
index 558f666..255cceb 100755
--- a/modules/account_invoice/payment_term.py
+++ b/modules/account_invoice/payment_term.py
@@ -48,7 +48,7 @@ class PaymentTerm(DeactivableMixin, ModelSQL, ModelView):
'.msg_payment_term_missing_last_remainder',
payment_term=term.rec_name))
- def compute(self, amount, currency, date, line = None):
+ def compute(self, amount, currency, date, line_ = None):
"""Calculate payment terms and return a list of tuples
with (date, amount) for each payment term line.
@@ -61,7 +61,7 @@ class PaymentTerm(DeactivableMixin, ModelSQL, ModelView):
remainder = amount
for line in self.lines:
value = line.get_value(remainder, amount, currency)
- value_date = line.get_date(date, line)
+ value_date = line.get_date(date, line_)
if value is None or not value_date:
continue
if ((remainder - value) * sign) < Decimal(0):
From 0011a7f943e28389f28aeeace52f1dc67bf80c0c Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Wed, 18 Feb 2026 11:03:27 +0100
Subject: [PATCH 320/618] 18.02.26
---
modules/account_stock_anglo_saxon/invoice.py | 9 ++++++++-
modules/purchase_trade/lot.py | 6 ++++++
2 files changed, 14 insertions(+), 1 deletion(-)
diff --git a/modules/account_stock_anglo_saxon/invoice.py b/modules/account_stock_anglo_saxon/invoice.py
index c75283f..7b13138 100755
--- a/modules/account_stock_anglo_saxon/invoice.py
+++ b/modules/account_stock_anglo_saxon/invoice.py
@@ -6,7 +6,7 @@ from decimal import Decimal
from trytond.i18n import gettext
from trytond.pool import Pool, PoolMeta
from trytond.transaction import Transaction
-
+from trytond.exceptions import UserWarning, UserError
from .exceptions import COGSWarning
import logging
@@ -171,12 +171,19 @@ class InvoiceLine(metaclass=PoolMeta):
cost = self.amount
else:
cost = self.lot.get_cog()
+ if not cost or cost == 0:
+ raise UserError('No COG for this invoice, please generate the reception of the goods')
+ if self.amount < 0 :
+ cost *= -1
logger.info("GETMOVELINES_COST:%s",cost)
with Transaction().set_context(
company=self.invoice.company.id, date=accounting_date):
anglo_saxon_move_lines = self._get_anglo_saxon_move_lines(
cost, type_)
+ if type_ == 'in_supplier' and (self.lot.sale_invoice_line_prov or self.sale_invoice_line):
+ anglo_saxon_move_lines_ = self._get_anglo_saxon_move_lines(cost, 'out_customer')
result.extend(anglo_saxon_move_lines)
+ result.extend(anglo_saxon_move_lines_)
#Fee inventoried delivery management
if self.lot and type_ != 'in_supplier':
FeeLots = Pool().get('fee.lots')
diff --git a/modules/purchase_trade/lot.py b/modules/purchase_trade/lot.py
index 111b35f..540fb38 100755
--- a/modules/purchase_trade/lot.py
+++ b/modules/purchase_trade/lot.py
@@ -2022,10 +2022,16 @@ class LotShipping(Wizard):
if shipped_quantity == 0:
shipped_quantity = Decimal(str(r.r_lot_matched)).quantize(Decimal("0.00001"))
if self.ship.shipment == 'in':
+ if not self.ship.shipment_in:
+ UserError("Shipment not known!")
shipment_origin = 'stock.shipment.in,'+str(self.ship.shipment_in.id)
elif self.ship.shipment == 'out':
+ if not self.ship.shipment_out:
+ UserError("Shipment not known!")
shipment_origin = 'stock.shipment.out,'+str(self.ship.shipment_out.id)
elif self.ship.shipment == 'int':
+ if not self.ship.shipment_internal:
+ UserError("Shipment not known!")
shipment_origin = 'stock.shipment.internal,'+str(self.ship.shipment_internal.id)
if r.id < 10000000 :
l = Lot(r.id)
From 191abf022fb22589eb7f326671d201e49ed015ac Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Wed, 18 Feb 2026 12:03:40 +0100
Subject: [PATCH 321/618] 18.02.26
---
modules/account_stock_anglo_saxon/invoice.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/account_stock_anglo_saxon/invoice.py b/modules/account_stock_anglo_saxon/invoice.py
index 7b13138..d774321 100755
--- a/modules/account_stock_anglo_saxon/invoice.py
+++ b/modules/account_stock_anglo_saxon/invoice.py
@@ -180,7 +180,7 @@ class InvoiceLine(metaclass=PoolMeta):
company=self.invoice.company.id, date=accounting_date):
anglo_saxon_move_lines = self._get_anglo_saxon_move_lines(
cost, type_)
- if type_ == 'in_supplier' and (self.lot.sale_invoice_line_prov or self.sale_invoice_line):
+ if type_ == 'in_supplier' and (self.lot.sale_invoice_line_prov or self.lot.sale_invoice_line):
anglo_saxon_move_lines_ = self._get_anglo_saxon_move_lines(cost, 'out_customer')
result.extend(anglo_saxon_move_lines)
result.extend(anglo_saxon_move_lines_)
From cac84abbefb75fdf99d2bef128e5c2a9d31f50e2 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Wed, 18 Feb 2026 12:14:35 +0100
Subject: [PATCH 322/618] 18.02.26
---
modules/account_stock_anglo_saxon/invoice.py | 1 +
1 file changed, 1 insertion(+)
diff --git a/modules/account_stock_anglo_saxon/invoice.py b/modules/account_stock_anglo_saxon/invoice.py
index d774321..01eb200 100755
--- a/modules/account_stock_anglo_saxon/invoice.py
+++ b/modules/account_stock_anglo_saxon/invoice.py
@@ -176,6 +176,7 @@ class InvoiceLine(metaclass=PoolMeta):
if self.amount < 0 :
cost *= -1
logger.info("GETMOVELINES_COST:%s",cost)
+ anglo_saxon_move_lines_ = []
with Transaction().set_context(
company=self.invoice.company.id, date=accounting_date):
anglo_saxon_move_lines = self._get_anglo_saxon_move_lines(
From b2fb1e9c4cbbe09f1081728feade04264a917eb3 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Wed, 18 Feb 2026 13:32:48 +0100
Subject: [PATCH 323/618] 18.02.26
---
modules/account_stock_anglo_saxon/invoice.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/modules/account_stock_anglo_saxon/invoice.py b/modules/account_stock_anglo_saxon/invoice.py
index 01eb200..460cde3 100755
--- a/modules/account_stock_anglo_saxon/invoice.py
+++ b/modules/account_stock_anglo_saxon/invoice.py
@@ -87,8 +87,8 @@ class InvoiceLine(metaclass=PoolMeta):
if move_line.second_currency:
move_line.amount_second_currency = amount
else:
- move_line.debit = Decimal(0)
- move_line.credit = amount_converted
+ move_line.debit = amount_converted
+ move_line.credit = Decimal(0)
move_line.account = self.product.account_stock_out_used
if move_line.second_currency:
move_line.amount_second_currency = -amount
From d81b19bfc61da78a0c0646fda243c00d2f5e0fa5 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Wed, 18 Feb 2026 15:13:50 +0100
Subject: [PATCH 324/618] 18.02.26
---
modules/account_stock_anglo_saxon/invoice.py | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/modules/account_stock_anglo_saxon/invoice.py b/modules/account_stock_anglo_saxon/invoice.py
index 460cde3..4389b4c 100755
--- a/modules/account_stock_anglo_saxon/invoice.py
+++ b/modules/account_stock_anglo_saxon/invoice.py
@@ -74,8 +74,8 @@ class InvoiceLine(metaclass=PoolMeta):
if move_line.second_currency:
move_line.amount_second_currency = amount
else:
- move_line.debit = Decimal(0)
- move_line.credit = -amount_converted
+ move_line.debit = -amount_converted
+ move_line.credit = Decimal(0)
move_line.account = self.product.account_stock_out_used
if move_line.second_currency:
move_line.amount_second_currency = amount
@@ -87,8 +87,8 @@ class InvoiceLine(metaclass=PoolMeta):
if move_line.second_currency:
move_line.amount_second_currency = amount
else:
- move_line.debit = amount_converted
- move_line.credit = Decimal(0)
+ move_line.debit = Decimal(0)
+ move_line.credit = amount_converted
move_line.account = self.product.account_stock_out_used
if move_line.second_currency:
move_line.amount_second_currency = -amount
From d2288e009ff1d19da3233749577837901f3a0e24 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Wed, 18 Feb 2026 16:04:35 +0100
Subject: [PATCH 325/618] 18.02.26
---
modules/account_invoice/invoice.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/modules/account_invoice/invoice.py b/modules/account_invoice/invoice.py
index 6a90680..12fc8fe 100755
--- a/modules/account_invoice/invoice.py
+++ b/modules/account_invoice/invoice.py
@@ -1965,14 +1965,14 @@ class Invoice(Workflow, ModelSQL, ModelView, TaxableMixin, InvoiceReportMixin):
if amount < 0:
move_line.debit = Decimal(0)
move_line.credit = -amount
- move_line.account = gl.product.account_stock_used
+ move_line.account = gl.product.account_stock_used if not (move_line.lot.sale_invoice_line or move_line.lot.sale_invoice_line_prov) else gl.product.account_stock_out_used
move_line_.credit = Decimal(0)
move_line_.debit = -amount
move_line_.account = gl.product.account_stock_in_used
else:
move_line.debit = amount
move_line.credit = Decimal(0)
- move_line.account = gl.product.account_stock_used
+ move_line.account = gl.product.account_stock_used if not (move_line.lot.sale_invoice_line or move_line.lot.sale_invoice_line_prov) else gl.product.account_stock_out_used
move_line_.debit = Decimal(0)
move_line_.credit = amount
move_line_.account = gl.product.account_stock_in_used
From 1cdc54e59ec267afdf0bb67e0df7d5add7f5331d Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Wed, 18 Feb 2026 16:37:20 +0100
Subject: [PATCH 326/618] 18.02.26
---
modules/purchase_trade/lot.py | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/modules/purchase_trade/lot.py b/modules/purchase_trade/lot.py
index 540fb38..56acd7e 100755
--- a/modules/purchase_trade/lot.py
+++ b/modules/purchase_trade/lot.py
@@ -2677,7 +2677,7 @@ class LotInvoice(Wizard):
val['lot_diff_quantity'] = val['lot_quantity'] - Decimal(lot.invoice_line_prov.quantity)
val['lot_diff_price'] = val['lot_price'] - Decimal(lot.invoice_line_prov.unit_price)
val['lot_diff_amount'] = val['lot_amount'] - Decimal(lot.invoice_line_prov.amount)
- val['lot_unit'] = lot.lot_unit_line.id
+ val['lot_unit'] = line.unit.id #lot.lot_unit_line.id
unit = val['lot_unit']
val['lot_currency'] = lot.lot_price_ct_symbol
lot_p.append(val)
@@ -2693,6 +2693,7 @@ class LotInvoice(Wizard):
val_s['lot_diff_price'] = val_s['lot_price'] - Decimal(lot.sale_invoice_line_prov.unit_price)
val_s['lot_diff_amount'] = val_s['lot_amount'] - Decimal(lot.sale_invoice_line_prov.amount)
val_s['lot_currency'] = lot.lot_price_ct_symbol_sale
+ val_s['lot_unit'] = sale_line.unit if sale_line else None
lot_s.append(val_s)
if line:
if line.fees:
From 11cabcee3261cda9d2f77f45b825f71176288933 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Wed, 18 Feb 2026 16:58:53 +0100
Subject: [PATCH 327/618] 18.02.26
---
modules/purchase_trade/lot.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/purchase_trade/lot.py b/modules/purchase_trade/lot.py
index 56acd7e..efb5f9f 100755
--- a/modules/purchase_trade/lot.py
+++ b/modules/purchase_trade/lot.py
@@ -2693,7 +2693,7 @@ class LotInvoice(Wizard):
val_s['lot_diff_price'] = val_s['lot_price'] - Decimal(lot.sale_invoice_line_prov.unit_price)
val_s['lot_diff_amount'] = val_s['lot_amount'] - Decimal(lot.sale_invoice_line_prov.amount)
val_s['lot_currency'] = lot.lot_price_ct_symbol_sale
- val_s['lot_unit'] = sale_line.unit if sale_line else None
+ val_s['lot_unit'] = sale_line.unit.id if sale_line else None
lot_s.append(val_s)
if line:
if line.fees:
From 84fa03bf77fd56c890e44adfc57a05c58da28339 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Thu, 19 Feb 2026 22:19:27 +0100
Subject: [PATCH 328/618] 19.02.26
---
modules/account_stock_anglo_saxon/invoice.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/account_stock_anglo_saxon/invoice.py b/modules/account_stock_anglo_saxon/invoice.py
index 4389b4c..18be9e0 100755
--- a/modules/account_stock_anglo_saxon/invoice.py
+++ b/modules/account_stock_anglo_saxon/invoice.py
@@ -181,7 +181,7 @@ class InvoiceLine(metaclass=PoolMeta):
company=self.invoice.company.id, date=accounting_date):
anglo_saxon_move_lines = self._get_anglo_saxon_move_lines(
cost, type_)
- if type_ == 'in_supplier' and (self.lot.sale_invoice_line_prov or self.lot.sale_invoice_line):
+ if type_ == 'in_supplier' and (self.lot.sale_invoice_line_prov or self.lot.sale_invoice_line) and not self.fee:
anglo_saxon_move_lines_ = self._get_anglo_saxon_move_lines(cost, 'out_customer')
result.extend(anglo_saxon_move_lines)
result.extend(anglo_saxon_move_lines_)
From 6fc0e5982ad7c59f98db7dfd1ac73ffe88f6305b Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Thu, 19 Feb 2026 22:53:36 +0100
Subject: [PATCH 329/618] 19.02.26
---
modules/account_invoice/invoice.py | 2 ++
1 file changed, 2 insertions(+)
diff --git a/modules/account_invoice/invoice.py b/modules/account_invoice/invoice.py
index 12fc8fe..49b924e 100755
--- a/modules/account_invoice/invoice.py
+++ b/modules/account_invoice/invoice.py
@@ -1966,6 +1966,7 @@ class Invoice(Workflow, ModelSQL, ModelView, TaxableMixin, InvoiceReportMixin):
move_line.debit = Decimal(0)
move_line.credit = -amount
move_line.account = gl.product.account_stock_used if not (move_line.lot.sale_invoice_line or move_line.lot.sale_invoice_line_prov) else gl.product.account_stock_out_used
+ move_line.account = gl.product.account_cogs_used if gl.fee else move_line.account
move_line_.credit = Decimal(0)
move_line_.debit = -amount
move_line_.account = gl.product.account_stock_in_used
@@ -1973,6 +1974,7 @@ class Invoice(Workflow, ModelSQL, ModelView, TaxableMixin, InvoiceReportMixin):
move_line.debit = amount
move_line.credit = Decimal(0)
move_line.account = gl.product.account_stock_used if not (move_line.lot.sale_invoice_line or move_line.lot.sale_invoice_line_prov) else gl.product.account_stock_out_used
+ move_line.account = gl.product.account_cogs_used if gl.fee else move_line.account
move_line_.debit = Decimal(0)
move_line_.credit = amount
move_line_.account = gl.product.account_stock_in_used
From c244cf658cff66bcda7322d06693b7ef4e411a14 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 23 Feb 2026 15:33:09 +0100
Subject: [PATCH 330/618] 23.02.26
---
modules/purchase_trade/service.py | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/modules/purchase_trade/service.py b/modules/purchase_trade/service.py
index 6bfa9e3..927fa8d 100644
--- a/modules/purchase_trade/service.py
+++ b/modules/purchase_trade/service.py
@@ -56,7 +56,8 @@ class ContractFactory:
contract.reference = c.reference
contract.from_location = c.from_location
contract.to_location = c.to_location
- contract.company = 6
+ context = Transaction().context
+ contract.company = context.get('company') if context else None
if type_ == 'Purchase':
contract.purchase_date = Date.today()
else:
From a1a13a68466aeb3185281445ddc9b77fd9eac56c Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 24 Feb 2026 19:24:31 +0100
Subject: [PATCH 331/618] 24.02.26
---
modules/purchase_trade/stock.py | 30 ++++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)
diff --git a/modules/purchase_trade/stock.py b/modules/purchase_trade/stock.py
index 95a17a4..61f96a1 100755
--- a/modules/purchase_trade/stock.py
+++ b/modules/purchase_trade/stock.py
@@ -728,6 +728,15 @@ class ShipmentIn(metaclass=PoolMeta):
text = re.sub(r"<[^>]+>", "", text)
return html.unescape(text).strip()
+ def create_service_order(self,so_payload):
+ response = requests.post(
+ "http://automation-service:8006/service-order",
+ json=so_payload,
+ timeout=10
+ )
+ response.raise_for_status()
+ return response.json()
+
@classmethod
@ModelView.button
def send(cls, shipments):
@@ -779,6 +788,27 @@ class ShipmentIn(metaclass=PoolMeta):
sh.result = f"Email sent on {now.strftime('%d/%m/%Y %H:%M')}"
sh.save()
+ if sh.fees:
+ fee = sh.fees[0]
+ so_payload = {
+ "ControllerAlfCode": sh.controller.get_alf(),
+ "CurrKey": '3',
+ "Point1PlaceKey": sh.from_location.get_places(),
+ "Point2PlaceKey": sh.to_location.get_places(),
+ "OrderReference": sh.reference,
+ "FeeTotalCost": fee.amount,
+ "FeeUnitPrice": fee.price,
+ "ContractNumbers": sh.number,
+ "OrderQuantityGW": fee.quantity,
+ "NumberOfPackingBales": 1
+ }
+
+ logger.info("PAYLOAD:%s",so_payload)
+ data = sh.create_service_order(so_payload)
+ logger.info("SO_NUMBER:%s",data.get('service_order_number'))
+ sh.result += f" / SO Nb {data.get('service_order_number')}"
+ sh.save()
+
@classmethod
@ModelView.button
def compute(cls, shipments):
From 56f2c3a4a6269f9742d9d2445525a6158efcf3be Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 24 Feb 2026 19:48:12 +0100
Subject: [PATCH 332/618] 24.02.26
---
modules/purchase_trade/fee.py | 2 +-
modules/purchase_trade/stock.py | 6 +++---
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index 8c82553..6561764 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -109,7 +109,7 @@ class Fee(ModelSQL,ModelView):
if lqt:
return lqt[0].id
- @fields.depends('unit','auto_calculation','mode','_parent_line.unit','_parent_line.lots','_parent_sale_line.unit','_parent_sale_line.lots','_parent_shipment_in.id')
+ @fields.depends('price','unit','auto_calculation','mode','_parent_line.unit','_parent_line.lots','_parent_sale_line.unit','_parent_sale_line.lots','_parent_shipment_in.id')
def on_change_with_quantity(self, name=None):
qt = None
unit = None
diff --git a/modules/purchase_trade/stock.py b/modules/purchase_trade/stock.py
index 61f96a1..f918411 100755
--- a/modules/purchase_trade/stock.py
+++ b/modules/purchase_trade/stock.py
@@ -796,10 +796,10 @@ class ShipmentIn(metaclass=PoolMeta):
"Point1PlaceKey": sh.from_location.get_places(),
"Point2PlaceKey": sh.to_location.get_places(),
"OrderReference": sh.reference,
- "FeeTotalCost": fee.amount,
- "FeeUnitPrice": fee.price,
+ "FeeTotalCost": float(fee.amount),
+ "FeeUnitPrice": float(fee.price),
"ContractNumbers": sh.number,
- "OrderQuantityGW": fee.quantity,
+ "OrderQuantityGW": float(fee.quantity) if fee.quantity else float(1),
"NumberOfPackingBales": 1
}
From 20f2b87d995bf9a0678547e59e1272b9d41acd03 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 24 Feb 2026 20:25:32 +0100
Subject: [PATCH 333/618] 24.02.26
---
modules/purchase_trade/fee.py | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index 6561764..0f45677 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -144,7 +144,7 @@ class Fee(ModelSQL,ModelView):
if self.auto_calculation:
return (qt * Decimal(unit.factor) / Decimal(self.unit.factor)).to_integral_value(rounding=ROUND_UP)
- @fields.depends('mode','_parent_line.lots','_parent_sale_line.lots')
+ @fields.depends('price','mode','_parent_line.lots','_parent_sale_line.lots')
def on_change_with_unit(self, name=None):
if self.mode != 'ppack':
line = self.line
@@ -156,6 +156,12 @@ class Fee(ModelSQL,ModelView):
return line.lots[0].lot_unit_line
else:
return line.lots[1].lot_unit_line
+ if self.shipment_in:
+ Lot = Pool().get('lot.lot')
+ lots = Lot.search([('lot_shipment_in','=',self.shipment_in.id)])
+ logger.info("ON_CHANGE_WITH_UNIT:%s",lots)
+ if lots:
+ return lots[0].lot_unit_line
else:
return None
From 6f0e0d65ee49f2928fd6a586319eba58e622b437 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Thu, 26 Feb 2026 16:28:43 +0100
Subject: [PATCH 334/618] 26.02.26
---
modules/sale/sale.fodt | 6059 ++++++++++++++++++++++++++++++++++-----
modules/sale/sale_.fodt | 891 ++++++
2 files changed, 6251 insertions(+), 699 deletions(-)
create mode 100644 modules/sale/sale_.fodt
diff --git a/modules/sale/sale.fodt b/modules/sale/sale.fodt
index 3f18041..4f67b18 100755
--- a/modules/sale/sale.fodt
+++ b/modules/sale/sale.fodt
@@ -1,142 +1,127 @@
- LibreOffice/7.4.4.2$Linux_X86_64 LibreOffice_project/40$Build-2 2008-06-07T15:28:22 2009-01-10T16:03:33 1 PT0S
+ LibreOffice/24.2.7.2$Linux_X86_64 LibreOffice_project/420$Build-2 Invoice no willen Laurent BARONTINI 2026-02-26T13:52:00Z 2026-02-26T13:52:00Z 2025-12-17T14:25:00Z 2 PT60S
- 22013
+ 0
0
- 48129
- 24026
+ 0
+ 0
true
false
-
-
- view2
- 5225
- 34452
- 0
- 22013
- 48128
- 46038
- 0
- 0
- false
- 100
- false
- false
- false
- false
-
-
- false
- false
- false
- true
- true
- true
+ false
true
true
- false
+
+ false
0
- false
- false
- false
- false
- true
- true
- false
- false
+ false
+ true
+ true
+ false
+ false
+ 0
+ false
false
+ false
+ false
+ false
+ false
+ true
false
- false
+ false
+ true
+ false
true
true
- true
- false
- false
- false
+ false
+ true
+ false
false
- false
- false
- false
- false
+ false
+ false
+ true
true
- false
- false
- true
- false
- false
- false
- true
- 0
- 1
- true
- false
-
+ false
+ false
+ false
+ false
+ false
+ false
high-resolution
- false
-
+ false
+ 1846560
+ false
+ true
+ false
+
- false
- false
true
- false
- false
- true
- true
- false
- true
-
- true
- 1753347
- true
- false
- true
- true
- 0
-
+ false
false
- false
- false
- false
- false
- true
- 0
- false
- false
false
+ true
+ true
+ true
+ false
+ 0
+ true
+ false
+ false
+ true
+ true
+ true
false
true
- false
- false
- false
-
- false
- false
- true
- false
- false
- false
- false
false
- false
- false
+ false
+ false
+ false
+ false
+ false
+ true
+ false
+ false
+
+ true
+ false
+ false
+ 0
false
- false
- 204959
- false
+ true
+
+ false
+ false
+ true
+ true
+ false
+ false
+ true
+ 1
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ true
+ false
+ false
+ false
+ true
+ false
+
+ true
+ 1846560
+ true
false
false
- false
- false
- false
- true
- true
- false
+ false
@@ -145,28 +130,25 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
-
-
-
-
+
+
-
+
-
-
+
+
+
+
@@ -174,414 +156,527 @@
-
-
+
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
+
+
+
+
+
-
-
+
+
+
-
-
-
+
+
+
+
+
+
+
+
-
-
-
+
+
+
-
-
+
+
+
-
-
-
-
-
-
-
-
-
-
+
+
+
-
-
+
+
-
+
-
-
+
+
-
-
+
-
-
+
+
-
-
-
+
+
-
-
+
+
+
-
-
-
+
+
-
-
-
+
+
-
-
-
+
+
-
-
+
+
-
-
+
+
+
+
+
-
+
-
-
+
+
+
+
-
-
+
+
+
+
-
-
+
+
+
+
-
-
+
+
+
+
-
-
+
+
+
+
-
-
+
+
+
+
-
-
+
+
+
+
-
-
+
+
+
+
-
-
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
+
-
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
+
-
-
-
+
-
-
+
+
-
-
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
-
+
+
-
-
+
+
-
-
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
-
-
-
+
+
-
-
-
+
+
-
-
-
+
+
-
-
-
+
+
+
+
+
+
+
+
+
-
+
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
-
-
+
+
-
-
-
-
+
+
+
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
+
+
+
-
-
-
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
-
+
-
+
@@ -589,27 +684,3023 @@
-
+
+
- <if test="company and company.header">
- <for each="line in company.header_used.split('\n')">
- <line>
- </for>
- </if>
- <company.rec_name if company else ''>
+
+ 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
+ jYynoML+HewSRSYBDJmVKCW2FMOy/Oy3pLwBXqKDduqYpUKXRwUnJUSP/EOwv1Ol+5umgqfo
+ 7+i8mjTiBClJALdMEfWbsTwDlC5drjydLzeKaCReLv61sELJxUOM+lI/lC1EB4uqcGxNk0Np
+ xuBSLzIqLnXSytNLr0VvkftMqdn+0DLlqVIeX+WrCceaEg1BHNbvb1TuDWQuqp6ggbhLBJ8r
+ +k/h9+mfsStn6Ippgt+xvwNVWFhcSfCQ3IhiCqX78qNKPxylgSq6E7e4+EGhq4qLyA8qr5yn
+ ucRACiJTPEoF/iPzltqUH7frMBc/H3T1Sl6DV7+iBPJZpRuWfndKHXiXabi/WOKVEpCyq0WU
+ 94oFFAsoFlAsoFhAsYBigf/nFijj8X5AXaY2RMyIvBgtYyqx61ux+vyDOsjkRRla73wRsfTc
+ 6VFanZaxenlhKh+2y/K1fPofbrCLZWlZH650d/lS5LvRf77sOiCOoXqVvtrJqb6/sL9nc3ZG
+ kji9HInTb1xZpQI7jXgI65W3IeU7VsTvlJfVlZeuMNH/Z6/pB8PC77uEZUutWWl9ft0Ke8hv
+ y/XctbT85pUL/12QdLmluCV2ujh/JzMe/V9UNO3vesVO164oZEUr9IfT/7FZdrnmLu1XAmI7
+ dchdsdLOF8YFhVVFU+7cZ2RSj0Jm5BuXq/DvGAd+oQqWsGy3krn6Tyz7yf9RVWWI93uByVIH
+ 2LnqFXbbBcbJNpF77+87fOXNd62UOKk88Cs7gzhtl08q4mhKl6oM0JA7Z38ZZMnYyi7LL1oa
+ 8vItqAq7dnIh+iB7BnGdZDEGkbGoNAAIqNPVhEcAWhZnyN5h4hhRxtK43rml/rj7iU/Fkbt0
+ xfIJ/0N/K7vSUC1/N2zlK9DVhUCpbIeSaOv/UCTKkcRrx9MnV1hA5FXBQ7iKyEXnfj3CJsRu
+ iM9FrEplFxDkDWcQdvrtoA/7Ge3KbiAIiFIDi//pr5x2R/wY/VHF/50x/4c6k53LNaJClPuV
+ GCL9bVt6v1Me3MorK9TG/9Tdle8UCygWUCygWECxgGIBxQKKBRQLKBZQLKBYQLGAYoE/uQX+
+ R57yT152pXiKBRQLKBZQLKBYQLGAYgHFAooFFAsoFlAsoFhAscB/vQX+D/7u9z9ziytTAAAA
+ AElFTkSuQmCC
+
+
+
- <if test="company and company.footer">
- <for each="line in company.footer_used.split('\n')">
- <line>
- </for>
- </if>
+
+
+ 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
+
+
+
-
@@ -617,275 +3708,1845 @@
- <for each="sale in records">
-
- <replace text:p="set_lang(sale.party.lang)">
- <replace text:p="sale.set_lang(sale.party.lang)">
- <for each="line in sale.report_address.splitlines()">
- <line>
- </for>
- <if test="sale.party.tax_identifier">
- <sale.party.tax_identifier.type_string> : <sale.party.tax_identifier.code>
- </if>
- <choose test="">
- <when test="sale.state == 'draft'">
- Draft Sale Order
- </when>
- <when test="sale.state == 'quotation'">
- Quotation N°: <sale.full_number>
- </when>
- <otherwise test="">
- Sale Order N°: <sale.full_number>
- </otherwise>
- </choose>
-
- Description: <sale.description or ''>
- Reference: <sale.reference or ''>
- Date: <format_date(sale.sale_date or today, sale.party.lang)>
- Delivery Address:
- <for each="line in sale.delivery_full_address.splitlines()">
- <line>
- </for>
-
+
+ <for each="sale in records">
+
-
-
-
-
- Description
-
-
- Quantity
-
-
- Unit Price
-
-
- Taxes
-
-
- Amount
-
-
-
-
- <for each="line in sale.lines">
+
+ <for each="line in sale.report_address.splitlines()">
+ <line>
+ </for>
+
-
-
-
-
-
-
-
- <choose test="">
-
-
-
-
-
-
-
-
- <when test="line.type == 'line'">
-
-
-
-
-
-
-
-
- <if test="line.product_name">
- <line.product_name>
- </if>
- <if test="line.description">
- <for each="description in line.description.split('\n')">
- <description>
- </for>
- </if>
-
-
- <format_number_symbol(line.quantity, sale.party.lang, line.unit, digits=line.unit.digits) if line.unit else format_number(line.quantity, sale.party.lang)>
-
-
- <format_currency(line.unit_price, sale.party.lang, sale.currency, digits=line.__class__.unit_price.digits[1])>
-
-
- <for each="tax in line.taxes">
- <tax.description>
- </for>
-
-
- <format_currency(line.amount, sale.party.lang, sale.currency)>
-
-
-
-
- </when>
-
-
-
-
-
-
-
-
- <when test="line.type == 'subtotal'">
-
-
-
-
-
-
-
-
- <for each="description in (line.description or '').split('\n')">
- <description>
- </for>
-
-
-
-
-
- <format_currency(line.amount, sale.party.lang, sale.currency)>
-
-
-
-
- </when>
-
-
-
-
-
-
-
-
-
- <when test="line.type == 'title'">
-
-
-
-
-
-
-
-
- <for each="description in (line.description or '').split('\n')">
- <description>
- </for>
-
-
-
-
-
-
-
-
- </when>
-
-
-
-
-
-
-
-
- <otherwise test="">
-
-
-
-
-
-
-
-
- <for each="description in (line.description or '').split('\n')">
- <description>
- </for>
-
-
-
-
-
-
-
-
- </otherwise>
-
-
-
-
-
-
-
-
- </choose>
-
-
-
-
-
-
-
-
- </for>
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
- Total (excl. taxes):
-
-
- <format_currency(sale.untaxed_amount, sale.party.lang, sale.currency)>
-
-
-
-
- Taxes:
-
-
- <format_currency(sale.tax_amount, sale.party.lang, sale.currency)>
-
-
-
-
- Total:
-
-
- <format_currency(sale.total_amount, sale.party.lang, sale.currency)>
-
-
-
-
+
+ Sale Contract : <sale.full_number> DATE: <format_date(sale.sale_date, sale.party.lang)>
+
- <for each="comment in (sale.comment or '').split('\n')">
- <comment>
- </for>
- </for>
-
+
+
+
+
+
+
+ Buyers
+
+
+ <sale.party.rec_name>
+ ADDRESS:<sale.report_address>
+
+
+
+
+
+ Sellers
+
+
+ ICT TRADING S.A.
+ VIA MAGAZZINI GENERALI, 3
+ 6828 BALERNA, SWITZERLAND
+
+
+
+
+
+ Agents
+
+
+ ALLLUCK COTTON CO. LTD.
+ FALT/RM A 12/F ZJ 300,
+ 300 LOCKHART ROAD, WAN CHAI, HONG KONG
+
+
+
+
+
+
+
+
+
+
+
+ Growth
+
+
+
+
+ <sale.lines[0].product.name if sale.lines and sale.lines[0].product else ''>
+
+
+
+
+ Quality
+
+
+
+ B/L <sale.lines[0].product.code if sale.lines and sale.lines[0].product else ''> <sale.comment or ''>
+
+
+
+
+
+ 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 ''>
+
+
+
+
+
+
+
+
+
+
+ Price
+
+
+ <format_currency(sale.lines[0].unit_price, sale.party.lang, sale.currency) if sale.lines else ''>
+
+
+
+
+
+
+
+
+
+
+
+ Delivery
+
+
+
+ <format_date(sale.delivery_date, sale.party.lang) if sale.delivery_date else 'PROMPT'>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Terms
+
+
+
+ <sale.delivery_full_address or ''>
+
+
+
+
+
+
+
+ CATGO WEIGHTS/QUALITY FINAL
+ 21 DAYS FREE STORAGE FROM DELIVERY ORDER DATE
+ WAREHOSUE EXIT FEES FOR SELLER’S ACCOUNT
+
+
+
+
+
+
+
+
+
+
+
+
+ Payment
+
+
+ <sale.payment_term.rec_name if sale.payment_term else '100% CASH AGAINST DOCUMENTS'>
+ BEFORE 5 TH JANUARY 2026 BY CABLE TRANSFER AT BUYER’S EXPENSES IN SELLER’S FAVOUR.
+
+
+
+
+
+
+
+
+
+
+
+
+ Arbitration & Rules
+
+
+ - ALL DISPUTES RELATING TO THIS CONTRACT WILL BE RESOLVED THROUGH ARBITRATION IN ACCORDANCE WITH THE BYLAWS OF THE INTERNATIONAL COTTON ASSOCIATION, LIMITED. THIS AGREEMENT INCORPORATES THE BYLAWS WHICH SET OUT THE ASSOCIATION’S ARBITRATION PROCEDURE.
+ - EITHER PARTY MUST NOT TAKE ANY LEGAL ACTION OVER A DISPUTE SUITABLE FOR ARBITRATION, OTHER THAN TO OBTAIN SECURITY FOR ANY CLAIM, UNLESS THEY HAVE FIRST OBTAINED AN ARBITRATION AWARD FROM THE INTERNATIONAL COTTON ASSOCIATION, LIMITED AND EXHAUSTED ALL MEANS OF APPEAL ALLOWED BY THE ASSOCIATION’S BYLAWS.
+
+
+
+
+
+
+
+
+
+
+ THE SELLERS
+
+
+
+ THE BUYERS
+
+
+
+
+ ICT TRADING SA
+
+ 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
+
+
+
+
+
+ <sale.party.rec_name>
+
+
+
+ PC/AU/EL
+
+ </for>
+
-
+
\ No newline at end of file
diff --git a/modules/sale/sale_.fodt b/modules/sale/sale_.fodt
new file mode 100644
index 0000000..3f18041
--- /dev/null
+++ b/modules/sale/sale_.fodt
@@ -0,0 +1,891 @@
+
+
+
+ LibreOffice/7.4.4.2$Linux_X86_64 LibreOffice_project/40$Build-2 2008-06-07T15:28:22 2009-01-10T16:03:33 1 PT0S
+
+
+ 22013
+ 0
+ 48129
+ 24026
+ true
+ false
+
+
+ view2
+ 5225
+ 34452
+ 0
+ 22013
+ 48128
+ 46038
+ 0
+ 0
+ false
+ 100
+ false
+ false
+ false
+ false
+
+
+
+
+ false
+ false
+ false
+ true
+ true
+ true
+ true
+ true
+ false
+ 0
+ false
+ false
+ false
+ false
+ true
+ true
+ false
+ false
+ false
+ false
+ false
+ true
+ true
+ true
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ true
+ false
+ false
+ true
+ false
+ false
+ false
+ true
+ 0
+ 1
+ true
+ false
+
+ high-resolution
+ false
+
+
+ false
+ false
+ true
+ false
+ false
+ true
+ true
+ false
+ true
+
+ true
+ 1753347
+
+ true
+ false
+ true
+ true
+ 0
+
+ false
+ false
+ false
+ false
+ false
+ true
+ 0
+ false
+ false
+ false
+ false
+ true
+ false
+ false
+ false
+
+ false
+ false
+ true
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ 204959
+ false
+ false
+ false
+ false
+ false
+ false
+ true
+ true
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <if test="company and company.header">
+ <for each="line in company.header_used.split('\n')">
+ <line>
+ </for>
+ </if>
+ <company.rec_name if company else ''>
+
+
+ <if test="company and company.footer">
+ <for each="line in company.footer_used.split('\n')">
+ <line>
+ </for>
+ </if>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <for each="sale in records">
+
+ <replace text:p="set_lang(sale.party.lang)">
+ <replace text:p="sale.set_lang(sale.party.lang)">
+ <for each="line in sale.report_address.splitlines()">
+ <line>
+ </for>
+ <if test="sale.party.tax_identifier">
+ <sale.party.tax_identifier.type_string> : <sale.party.tax_identifier.code>
+ </if>
+ <choose test="">
+ <when test="sale.state == 'draft'">
+ Draft Sale Order
+ </when>
+ <when test="sale.state == 'quotation'">
+ Quotation N°: <sale.full_number>
+ </when>
+ <otherwise test="">
+ Sale Order N°: <sale.full_number>
+ </otherwise>
+ </choose>
+
+ Description: <sale.description or ''>
+ Reference: <sale.reference or ''>
+ Date: <format_date(sale.sale_date or today, sale.party.lang)>
+ Delivery Address:
+ <for each="line in sale.delivery_full_address.splitlines()">
+ <line>
+ </for>
+
+
+
+
+
+
+
+ Description
+
+
+ Quantity
+
+
+ Unit Price
+
+
+ Taxes
+
+
+ Amount
+
+
+
+
+
+ <for each="line in sale.lines">
+
+
+
+
+
+
+
+
+ <choose test="">
+
+
+
+
+
+
+
+
+ <when test="line.type == 'line'">
+
+
+
+
+
+
+
+
+ <if test="line.product_name">
+ <line.product_name>
+ </if>
+ <if test="line.description">
+ <for each="description in line.description.split('\n')">
+ <description>
+ </for>
+ </if>
+
+
+ <format_number_symbol(line.quantity, sale.party.lang, line.unit, digits=line.unit.digits) if line.unit else format_number(line.quantity, sale.party.lang)>
+
+
+ <format_currency(line.unit_price, sale.party.lang, sale.currency, digits=line.__class__.unit_price.digits[1])>
+
+
+ <for each="tax in line.taxes">
+ <tax.description>
+ </for>
+
+
+ <format_currency(line.amount, sale.party.lang, sale.currency)>
+
+
+
+
+ </when>
+
+
+
+
+
+
+
+
+ <when test="line.type == 'subtotal'">
+
+
+
+
+
+
+
+
+ <for each="description in (line.description or '').split('\n')">
+ <description>
+ </for>
+
+
+
+
+
+ <format_currency(line.amount, sale.party.lang, sale.currency)>
+
+
+
+
+ </when>
+
+
+
+
+
+
+
+
+
+ <when test="line.type == 'title'">
+
+
+
+
+
+
+
+
+ <for each="description in (line.description or '').split('\n')">
+ <description>
+ </for>
+
+
+
+
+
+
+
+
+ </when>
+
+
+
+
+
+
+
+
+ <otherwise test="">
+
+
+
+
+
+
+
+
+ <for each="description in (line.description or '').split('\n')">
+ <description>
+ </for>
+
+
+
+
+
+
+
+
+ </otherwise>
+
+
+
+
+
+
+
+
+ </choose>
+
+
+
+
+
+
+
+
+ </for>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Total (excl. taxes):
+
+
+ <format_currency(sale.untaxed_amount, sale.party.lang, sale.currency)>
+
+
+
+
+ Taxes:
+
+
+ <format_currency(sale.tax_amount, sale.party.lang, sale.currency)>
+
+
+
+
+ Total:
+
+
+ <format_currency(sale.total_amount, sale.party.lang, sale.currency)>
+
+
+
+
+
+
+
+ <for each="comment in (sale.comment or '').split('\n')">
+ <comment>
+ </for>
+ </for>
+
+
+
From 399d9da9e5dd5a3b51bc2d9f0214189851c09b5c Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Thu, 26 Feb 2026 16:38:38 +0100
Subject: [PATCH 335/618] 26.02.26
---
modules/sale/sale.fodt | 575 +++++++++++++++++++++--------------------
1 file changed, 300 insertions(+), 275 deletions(-)
diff --git a/modules/sale/sale.fodt b/modules/sale/sale.fodt
index 4f67b18..9c9b39a 100755
--- a/modules/sale/sale.fodt
+++ b/modules/sale/sale.fodt
@@ -1,127 +1,145 @@
-
- LibreOffice/24.2.7.2$Linux_X86_64 LibreOffice_project/420$Build-2 Invoice no willen Laurent BARONTINI 2026-02-26T13:52:00Z 2026-02-26T13:52:00Z 2025-12-17T14:25:00Z 2 PT60S
+
+ LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 Invoice no willen 2026-02-26T13:52:00Z 2026-02-26T16:37:50.656000000 2025-12-17T14:25:00Z 3 PT4M15S
- 0
+ 35761
0
- 0
- 0
+ 24236
+ 11721
true
false
+
+
+ view2
+ 7430
+ 44697
+ 0
+ 35761
+ 24234
+ 47480
+ 0
+ 0
+ false
+ 180
+ false
+ false
+ false
+ false
+ false
+ false
+
+
- false
- true
- true
-
- false
- 0
- false
- true
- true
- false
- false
- 0
- false
- false
- false
- false
- false
- false
- true
- false
- false
- true
- false
- true
- true
- false
- true
- false
- false
- false
- false
- true
- true
- false
- false
- false
- false
- false
- false
- high-resolution
- false
- 1846560
- false
- true
- false
-
-
- true
-
- false
- false
- false
- true
- true
- true
- false
- 0
- true
- false
- false
- true
- true
- true
- false
- true
- false
- false
- false
- false
- false
- false
true
- false
- false
-
- true
- false
- false
- 0
- false
- true
- false
- false
- true
- true
- false
- false
- true
- 1
- false
- false
- false
- false
- false
+ true
false
- false
- true
- false
- false
- false
- true
- false
+ false
+ false
+ true
+ 1
+ true
+ false
+ false
+ true
+
+ false
- true
- 1846560
+ 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
+ 1920244
+ 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
@@ -133,22 +151,26 @@
+
+
+
+
-
-
+
+
-
+
-
+
@@ -157,72 +179,72 @@
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
+
+
-
-
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -245,54 +267,57 @@
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -300,9 +325,9 @@
-
+
-
+
@@ -323,101 +348,101 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
-
-
+
+
+
@@ -425,12 +450,12 @@
-
-
+
+
-
-
-
+
+
+
@@ -448,21 +473,21 @@
-
-
+
+
-
+
-
-
+
+
@@ -470,21 +495,21 @@
-
-
+
+
-
+
-
-
+
+
@@ -495,39 +520,39 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
+
-
-
+
+
-
-
-
-
-
+
+
+
+
+
@@ -535,8 +560,8 @@
-
-
+
+
@@ -544,8 +569,8 @@
-
-
+
+
@@ -553,8 +578,8 @@
-
-
+
+
@@ -565,8 +590,8 @@
-
-
+
+
@@ -574,8 +599,8 @@
-
-
+
+
@@ -586,8 +611,8 @@
-
-
+
+
@@ -595,8 +620,8 @@
-
-
+
+
@@ -604,16 +629,19 @@
-
-
+
+
-
+
-
+
+
+
+
@@ -659,24 +687,24 @@
-
+
-
-
+
+
-
-
+
+
-
+
-
+
@@ -684,10 +712,10 @@
-
+
-
+
iVBORw0KGgoAAAANSUhEUgAABZ4AAAC9CAIAAAC8iP/2AAAAAXNSR0IArs4c6QAAAAlwSFlz
AAAOxAAADsMB2mqY3AAA/7VJREFUeF7svQeAHMd1Jlyduydu3kUmQRLMIimJVBaVbStYWc6y
JdvncLZOtuxzOMmSreAsZ9/9tmVZsiVZWbKtnLMVSDGDAAkSGZsndw7/96p6ZmcXu8AsuAAW
@@ -3074,7 +3102,7 @@
-
+
iVBORw0KGgoAAAANSUhEUgAAAqoAAAAnCAIAAABIVv0SAAAAAXNSR0IArs4c6QAAAAlwSFlz
AAAOwwAADsMBx2+oZAAAge9JREFUeF7tvQeYHNW1LXwqdHXO05NHM8oSkkgOGDDGGGxMMjnn
nCyCAZFBRuScETlnEMlgMjbYmCwQymly7Byrq7q66l/7VM9o4OL3vff+j3e5WO320Jqprjpx
@@ -3708,16 +3736,15 @@
-
<for each="sale in records">
-
+
<for each="line in sale.report_address.splitlines()">
- <line>
- </for>
+ <line>
+ </for>
@@ -3727,7 +3754,7 @@
- Sale Contract : <sale.full_number> DATE: <format_date(sale.sale_date, sale.party.lang)>
+ Sale Contract : <sale.full_number> DATE: <format_date(sale.sale_date, sale.party.lang)>
@@ -3790,7 +3817,7 @@
- B/L <sale.lines[0].product.code if sale.lines and sale.lines[0].product else ''> <sale.comment or ''>
+ B/L <sale.lines[0].product.code if sale.lines and sale.lines[0].product else ''> <sale.comment or ''>
@@ -3800,7 +3827,7 @@
- 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 ''>
+ 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 ''>
@@ -3830,7 +3857,7 @@
- <format_date(sale.delivery_date, sale.party.lang) if sale.delivery_date else 'PROMPT'>
+ <format_date(sale.sale_date, sale.party.lang) if sale.sale_date else 'PROMPT'>
@@ -3840,7 +3867,6 @@
-
@@ -3874,7 +3900,7 @@
Payment
- <sale.payment_term.rec_name if sale.payment_term else '100% CASH AGAINST DOCUMENTS'>
+ <sale.payment_term.rec_name if sale.payment_term else '100% CASH AGAINST DOCUMENTS'>
BEFORE 5 TH JANUARY 2026 BY CABLE TRANSFER AT BUYER’S EXPENSES IN SELLER’S FAVOUR.
@@ -3913,7 +3939,7 @@
ICT TRADING SA
-
+
iVBORw0KGgoAAAANSUhEUgAAAQ8AAAEJCAIAAAAFFDV0AAAAAXNSR0IArs4c6QAA/8pJREFU
eF7sfQeAXGd19etletned7Wr3VXvsootW+69gk2HQIAkJIEUElJ+SAKBhBJqEhICxEAcsDHF
vcmybFlW72V7r7PT5/X2n++NJBsjxZZtjAx+DPKW2Zk37333u/eee+65tOu6lH84jsMwDL61
@@ -5545,8 +5571,7 @@
PC/AU/EL
-
</for>
-
+
\ No newline at end of file
From a724e0a0868c586622780e7ce28e6c34157889c8 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Thu, 26 Feb 2026 20:21:42 +0100
Subject: [PATCH 336/618] 26.02.26
---
modules/commission/sale.py | 8 ++++++
modules/sale/sale.fodt | 58 +++++++++++++++++++++++---------------
2 files changed, 44 insertions(+), 22 deletions(-)
diff --git a/modules/commission/sale.py b/modules/commission/sale.py
index aac5c98..09fe9c9 100755
--- a/modules/commission/sale.py
+++ b/modules/commission/sale.py
@@ -27,6 +27,14 @@ class Sale(metaclass=PoolMeta):
invoice.save()
return invoice
+ @property
+ def report_agent(self):
+ if self.agent:
+ return self.agent.party.address_get(
+ type='invoice')
+ else:
+ return ''
+
@classmethod
@ModelView.button
@Workflow.transition('quotation')
diff --git a/modules/sale/sale.fodt b/modules/sale/sale.fodt
index 9c9b39a..c0914fb 100755
--- a/modules/sale/sale.fodt
+++ b/modules/sale/sale.fodt
@@ -1,10 +1,10 @@
- LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 Invoice no willen 2026-02-26T13:52:00Z 2026-02-26T16:37:50.656000000 2025-12-17T14:25:00Z 3 PT4M15S
+ LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 Invoice no willen 2026-02-26T13:52:00Z 2026-02-26T20:21:19.619000000 2025-12-17T14:25:00Z 4 PT15M18S
- 35761
+ 43349
0
24236
11721
@@ -13,12 +13,12 @@
view2
- 7430
- 44697
+ 11986
+ 36936
0
- 35761
+ 43349
24234
- 47480
+ 55069
0
0
false
@@ -91,7 +91,7 @@
false
false
false
- 1920244
+ 1972244
1846560
false
false
@@ -161,7 +161,7 @@
-
+
@@ -271,7 +271,7 @@
-
+
@@ -357,19 +357,19 @@
-
+
-
+
-
+
-
+
@@ -414,10 +414,10 @@
-
+
-
+
@@ -641,9 +641,26 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -3737,7 +3754,7 @@
<for each="sale in records">
-
+
@@ -3789,9 +3806,7 @@
Agents
- ALLLUCK COTTON CO. LTD.
- FALT/RM A 12/F ZJ 300,
- 300 LOCKHART ROAD, WAN CHAI, HONG KONG
+ <sale.report_agent>
@@ -3900,8 +3915,7 @@
Payment
- <sale.payment_term.rec_name if sale.payment_term else '100% CASH AGAINST DOCUMENTS'>
- BEFORE 5 TH JANUARY 2026 BY CABLE TRANSFER AT BUYER’S EXPENSES IN SELLER’S FAVOUR.
+ <sale.payment_term.rec_name if sale.payment_term else '100% CASH AGAINST DOCUMENTS'>
From 2c38d2742bcbe4f44e1a69bd83a69f3a1374a6c6 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Thu, 26 Feb 2026 20:32:42 +0100
Subject: [PATCH 337/618] 26.02.26
---
modules/commission/sale.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/modules/commission/sale.py b/modules/commission/sale.py
index 09fe9c9..ef988c1 100755
--- a/modules/commission/sale.py
+++ b/modules/commission/sale.py
@@ -30,8 +30,8 @@ class Sale(metaclass=PoolMeta):
@property
def report_agent(self):
if self.agent:
- return self.agent.party.address_get(
- type='invoice')
+ return (self.agent.party.address_get(
+ type='invoice')).full_address
else:
return ''
From 02993336de63c0593164561cffde1ed8f915dc32 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Thu, 26 Feb 2026 21:32:41 +0100
Subject: [PATCH 338/618] 26.02.26
---
modules/purchase_trade/sale.py | 18 +++
modules/sale/sale.fodt | 275 ++++++++++++++++++---------------
2 files changed, 166 insertions(+), 127 deletions(-)
diff --git a/modules/purchase_trade/sale.py b/modules/purchase_trade/sale.py
index 9d0a31d..4392c9d 100755
--- a/modules/purchase_trade/sale.py
+++ b/modules/purchase_trade/sale.py
@@ -257,6 +257,24 @@ class Sale(metaclass=PoolMeta):
operator = fields.Many2One('party.party',"Operator")
our_reference = fields.Char("Our Reference")
+ @property
+ def report_terms(self):
+ if self.lines:
+ return self.lines[0].note
+ else:
+ return ''
+
+ @property
+ def report_shipment(self):
+ if self.lines:
+ if len(self.lines[0].lots)>1:
+ shipment = self.lines[0].lots[1].lot_shipment_in
+ if shipment:
+ info = 'B/L ' + shipment.bl_number + ' ' + shipment.note
+ return info
+ else:
+ return ''
+
@classmethod
def default_viewer(cls):
country_start = "Zobiland"
diff --git a/modules/sale/sale.fodt b/modules/sale/sale.fodt
index c0914fb..fe65531 100755
--- a/modules/sale/sale.fodt
+++ b/modules/sale/sale.fodt
@@ -1,10 +1,10 @@
- LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 Invoice no willen 2026-02-26T13:52:00Z 2026-02-26T20:21:19.619000000 2025-12-17T14:25:00Z 4 PT15M18S
+ LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 Invoice no willen 2026-02-26T13:52:00Z 2026-02-26T21:20:26.351000000 2025-12-17T14:25:00Z 6 PT26M24S
- 43349
+ 35108
0
24236
11721
@@ -13,12 +13,12 @@
view2
- 11986
- 36936
+ 8565
+ 43921
0
- 43349
+ 35108
24234
- 55069
+ 46828
0
0
false
@@ -91,7 +91,7 @@
false
false
false
- 1972244
+ 2008084
1846560
false
false
@@ -161,7 +161,7 @@
-
+
@@ -479,20 +479,29 @@
-
-
-
-
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -501,11 +510,11 @@
-
+
-
+
@@ -514,10 +523,10 @@
-
+
-
+
@@ -533,11 +542,11 @@
-
+
-
+
@@ -545,7 +554,7 @@
-
+
@@ -557,20 +566,11 @@
-
-
-
-
-
-
-
-
-
-
+
@@ -582,19 +582,19 @@
-
+
-
-
-
-
+
+
+
+
@@ -603,19 +603,19 @@
-
+
-
-
-
-
+
+
+
+
@@ -624,7 +624,7 @@
-
+
@@ -633,15 +633,9 @@
+
-
-
-
-
-
-
-
-
+
@@ -649,17 +643,41 @@
-
+
+
+
+
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -703,6 +721,12 @@
+
+
+
+
+
+
@@ -3753,8 +3777,8 @@
- <for each="sale in records">
-
+ <for each="sale in records">
+
@@ -3766,7 +3790,7 @@
-
+
@@ -3776,184 +3800,181 @@
-
+
- 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
- <sale.report_agent>
+ <sale.report_agent>
-
-
+
+
-
- Growth
-
+
+ Growth
+
-
- <sale.lines[0].product.name if sale.lines and sale.lines[0].product else ''>
+
+ <sale.lines[0].product.name if sale.lines and sale.lines[0].product else ''> CROP <sale.crop.name>
- Quality
-
+ Quality
+
- B/L <sale.lines[0].product.code if sale.lines and sale.lines[0].product else ''> <sale.comment or ''>
-
+ B/L <sale.report_shipment>
- 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 ''>
+ 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 ''>
-
+
- Price
+ Price
- <format_currency(sale.lines[0].unit_price, sale.party.lang, sale.currency) if sale.lines else ''>
+ <format_currency(sale.lines[0].unit_price, sale.party.lang, sale.currency) if sale.lines else ''>
-
-
+
+
-
+
Delivery
-
- <format_date(sale.sale_date, sale.party.lang) if sale.sale_date else 'PROMPT'>
+
+ PROMPT
-
-
-
+
+
+
-
- Terms
+
+ Terms
-
- <sale.delivery_full_address or ''>
+
+ <sale.report_terms>
+
+
+
+
+
+
+
+
+
+
+
+
+
- CATGO WEIGHTS/QUALITY FINAL
- 21 DAYS FREE STORAGE FROM DELIVERY ORDER DATE
- WAREHOSUE EXIT FEES FOR SELLER’S ACCOUNT
+ Payment
+
+
+ <sale.payment_term.rec_name if sale.payment_term else '100% CASH AGAINST DOCUMENTS'>
+
+
+
-
-
-
- Payment
+ Arbitration & Rules
- <sale.payment_term.rec_name if sale.payment_term else '100% CASH AGAINST DOCUMENTS'>
-
-
-
-
-
-
-
-
-
-
-
-
- Arbitration & Rules
-
-
- - ALL DISPUTES RELATING TO THIS CONTRACT WILL BE RESOLVED THROUGH ARBITRATION IN ACCORDANCE WITH THE BYLAWS OF THE INTERNATIONAL COTTON ASSOCIATION, LIMITED. THIS AGREEMENT INCORPORATES THE BYLAWS WHICH SET OUT THE ASSOCIATION’S ARBITRATION PROCEDURE.
- - EITHER PARTY MUST NOT TAKE ANY LEGAL ACTION OVER A DISPUTE SUITABLE FOR ARBITRATION, OTHER THAN TO OBTAIN SECURITY FOR ANY CLAIM, UNLESS THEY HAVE FIRST OBTAINED AN ARBITRATION AWARD FROM THE INTERNATIONAL COTTON ASSOCIATION, LIMITED AND EXHAUSTED ALL MEANS OF APPEAL ALLOWED BY THE ASSOCIATION’S BYLAWS.
+ - ALL DISPUTES RELATING TO THIS CONTRACT WILL BE RESOLVED THROUGH ARBITRATION IN ACCORDANCE WITH THE BYLAWS OF THE INTERNATIONAL COTTON ASSOCIATION, LIMITED. THIS AGREEMENT INCORPORATES THE BYLAWS WHICH SET OUT THE ASSOCIATION’S ARBITRATION PROCEDURE.
+ - EITHER PARTY MUST NOT TAKE ANY LEGAL ACTION OVER A DISPUTE SUITABLE FOR ARBITRATION, OTHER THAN TO OBTAIN SECURITY FOR ANY CLAIM, UNLESS THEY HAVE FIRST OBTAINED AN ARBITRATION AWARD FROM THE INTERNATIONAL COTTON ASSOCIATION, LIMITED AND EXHAUSTED ALL MEANS OF APPEAL ALLOWED BY THE ASSOCIATION’S BYLAWS.
-
+
-
- THE SELLERS
+
+ THE SELLERS
-
- THE BUYERS
+
+ THE BUYERS
- ICT TRADING SA
-
+ ICT TRADING SA
+
iVBORw0KGgoAAAANSUhEUgAAAQ8AAAEJCAIAAAAFFDV0AAAAAXNSR0IArs4c6QAA/8pJREFU
eF7sfQeAXGd19etletned7Wr3VXvsootW+69gk2HQIAkJIEUElJ+SAKBhBJqEhICxEAcsDHF
vcmybFlW72V7r7PT5/X2n++NJBsjxZZtjAx+DPKW2Zk37333u/eee+65tOu6lH84jsMwDL61
@@ -5580,12 +5601,12 @@
- <sale.party.rec_name>
+ <sale.party.rec_name>
PC/AU/EL
- </for>
+ </for>
\ No newline at end of file
From 4eae444c936d4ec8d09abc57ed49d794e40ab7bf Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Fri, 27 Feb 2026 05:48:07 +0100
Subject: [PATCH 339/618] 27.02.26
---
modules/purchase_trade/numbers_to_words.py | 77 +++++++
modules/purchase_trade/sale.py | 21 +-
modules/sale/sale.fodt | 255 +++++++++++----------
3 files changed, 228 insertions(+), 125 deletions(-)
create mode 100644 modules/purchase_trade/numbers_to_words.py
diff --git a/modules/purchase_trade/numbers_to_words.py b/modules/purchase_trade/numbers_to_words.py
new file mode 100644
index 0000000..518c66a
--- /dev/null
+++ b/modules/purchase_trade/numbers_to_words.py
@@ -0,0 +1,77 @@
+from decimal import Decimal, ROUND_HALF_UP
+
+
+UNITS = (
+ "ZERO ONE TWO THREE FOUR FIVE SIX SEVEN EIGHT NINE TEN ELEVEN TWELVE "
+ "THIRTEEN FOURTEEN FIFTEEN SIXTEEN SEVENTEEN EIGHTEEN NINETEEN"
+).split()
+
+TENS = "ZERO TEN TWENTY THIRTY FORTY FIFTY SIXTY SEVENTY EIGHTY NINETY".split()
+
+
+def _under_thousand(n, use_and=True):
+ words = []
+
+ hundreds = n // 100
+ remainder = n % 100
+
+ if hundreds:
+ words.append(UNITS[hundreds])
+ words.append("HUNDRED")
+ if remainder and use_and:
+ words.append("AND")
+
+ if remainder:
+ if remainder < 20:
+ words.append(UNITS[remainder])
+ else:
+ words.append(TENS[remainder // 10])
+ if remainder % 10:
+ words.append(UNITS[remainder % 10])
+
+ return " ".join(words)
+
+
+def number_to_words(n, decimals_mode="digit", use_and=True):
+ """
+ decimals_mode:
+ - "digit" → ONE HUNDRED POINT TWO FIVE
+ - "fraction" → ONE HUNDRED AND 25/100
+ """
+
+ n = Decimal(str(n)).quantize(Decimal("0.01"), rounding=ROUND_HALF_UP)
+
+ integer_part = int(n)
+ decimal_part = int((n - integer_part) * 100)
+
+ if integer_part == 0:
+ words = "ZERO"
+ else:
+ parts = []
+
+ millions = integer_part // 1_000_000
+ thousands = (integer_part // 1_000) % 1_000
+ remainder = integer_part % 1_000
+
+ if millions:
+ parts.append(_under_thousand(millions, use_and))
+ parts.append("MILLION")
+
+ if thousands:
+ parts.append(_under_thousand(thousands, use_and))
+ parts.append("THOUSAND")
+
+ if remainder:
+ parts.append(_under_thousand(remainder, use_and))
+
+ words = " ".join(parts)
+
+ # Gestion décimales
+ if decimal_part:
+ if decimals_mode == "digit":
+ digits = " ".join(UNITS[int(d)] for d in f"{decimal_part:02d}")
+ words = f"{words} POINT {digits}"
+ elif decimals_mode == "fraction":
+ words = f"{words} AND {decimal_part:02d}/100"
+
+ return words.upper()
\ No newline at end of file
diff --git a/modules/purchase_trade/sale.py b/modules/purchase_trade/sale.py
index 4392c9d..8839fd8 100755
--- a/modules/purchase_trade/sale.py
+++ b/modules/purchase_trade/sale.py
@@ -15,6 +15,7 @@ import datetime
import logging
import json
from trytond.exceptions import UserWarning, UserError
+from trytond.modules.purchase_trade.numbers_to_words import number_to_words
logger = logging.getLogger(__name__)
@@ -264,13 +265,31 @@ class Sale(metaclass=PoolMeta):
else:
return ''
+ @property
+ def report_qt(self):
+ if self.lines:
+ return number_to_words(self.lines[0].quantity)
+ else:
+ return ''
+
+ @property
+ def report_price(self):
+ if self.lines:
+ return number_to_words(self.lines[0].unit_price)
+ else:
+ return ''
+
@property
def report_shipment(self):
if self.lines:
if len(self.lines[0].lots)>1:
shipment = self.lines[0].lots[1].lot_shipment_in
if shipment:
- info = 'B/L ' + shipment.bl_number + ' ' + shipment.note
+ info = 'B/L ' + shipment.bl_number
+ if shipment.container and shipment.container[0].container_no:
+ info += ' ' + shipment.container[0].container_no
+ if shipment.note:
+ info += ' ' + shipment.note
return info
else:
return ''
diff --git a/modules/sale/sale.fodt b/modules/sale/sale.fodt
index fe65531..467307f 100755
--- a/modules/sale/sale.fodt
+++ b/modules/sale/sale.fodt
@@ -1,10 +1,10 @@
- LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 Invoice no willen 2026-02-26T13:52:00Z 2026-02-26T21:20:26.351000000 2025-12-17T14:25:00Z 6 PT26M24S
+ LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 Invoice no willen 2026-02-26T13:52:00Z 2026-02-27T05:47:38.343000000 2025-12-17T14:25:00Z 7 PT28M8S
- 35108
+ 40658
0
24236
11721
@@ -13,12 +13,12 @@
view2
- 8565
- 43921
+ 10469
+ 42757
0
- 35108
+ 40658
24234
- 46828
+ 52377
0
0
false
@@ -91,7 +91,7 @@
false
false
false
- 2008084
+ 2082766
1846560
false
false
@@ -161,7 +161,7 @@
-
+
@@ -488,20 +488,29 @@
-
-
-
-
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -510,11 +519,11 @@
-
+
-
+
@@ -523,10 +532,10 @@
-
+
-
+
@@ -542,11 +551,11 @@
-
+
-
+
@@ -554,7 +563,7 @@
-
+
@@ -566,20 +575,11 @@
-
-
-
-
-
-
-
-
-
-
+
@@ -591,9 +591,15 @@
-
+
+
+
+
+
+
+
@@ -603,19 +609,19 @@
-
+
+
+
+
-
-
-
-
+
@@ -624,16 +630,10 @@
-
+
-
-
-
-
-
-
-
+
@@ -642,41 +642,45 @@
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
-
+
@@ -727,6 +731,9 @@
+
+
+
@@ -3777,8 +3784,8 @@
- <for each="sale in records">
-
+ <for each="sale in records">
+
@@ -3790,7 +3797,7 @@
-
+
@@ -3800,181 +3807,181 @@
-
+
- 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
<sale.report_agent>
-
-
+
+
-
- Growth
-
+
+ Growth
+
-
- <sale.lines[0].product.name if sale.lines and sale.lines[0].product else ''> CROP <sale.crop.name>
+
+ <sale.lines[0].product.name if sale.lines and sale.lines[0].product else ''> CROP <sale.crop.name>
- Quality
-
+ Quality
+
- B/L <sale.report_shipment>
+ B/L <sale.report_shipment>
- 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 ''>
+ 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 ''>
+ <format_currency(sale.lines[0].unit_price, sale.party.lang, sale.currency) if sale.lines else ''> ( <sale.report_price> )
-
-
+
+
-
+
Delivery
-
- PROMPT
+
+ PROMPT
-
-
-
+
+
+
-
- Terms
+
+ Terms
-
- <sale.report_terms>
+
+ <sale.report_terms>
-
+
-
+
-
+
-
+
- Payment
+ Payment
- <sale.payment_term.rec_name if sale.payment_term else '100% CASH AGAINST DOCUMENTS'>
+ <sale.payment_term.rec_name if sale.payment_term else '100% CASH AGAINST DOCUMENTS'>
-
+
-
+
- Arbitration & Rules
+ Arbitration & Rules
- - ALL DISPUTES RELATING TO THIS CONTRACT WILL BE RESOLVED THROUGH ARBITRATION IN ACCORDANCE WITH THE BYLAWS OF THE INTERNATIONAL COTTON ASSOCIATION, LIMITED. THIS AGREEMENT INCORPORATES THE BYLAWS WHICH SET OUT THE ASSOCIATION’S ARBITRATION PROCEDURE.
- - EITHER PARTY MUST NOT TAKE ANY LEGAL ACTION OVER A DISPUTE SUITABLE FOR ARBITRATION, OTHER THAN TO OBTAIN SECURITY FOR ANY CLAIM, UNLESS THEY HAVE FIRST OBTAINED AN ARBITRATION AWARD FROM THE INTERNATIONAL COTTON ASSOCIATION, LIMITED AND EXHAUSTED ALL MEANS OF APPEAL ALLOWED BY THE ASSOCIATION’S BYLAWS.
+ - ALL DISPUTES RELATING TO THIS CONTRACT WILL BE RESOLVED THROUGH ARBITRATION IN ACCORDANCE WITH THE BYLAWS OF THE INTERNATIONAL COTTON ASSOCIATION, LIMITED. THIS AGREEMENT INCORPORATES THE BYLAWS WHICH SET OUT THE ASSOCIATION’S ARBITRATION PROCEDURE.
+ - EITHER PARTY MUST NOT TAKE ANY LEGAL ACTION OVER A DISPUTE SUITABLE FOR ARBITRATION, OTHER THAN TO OBTAIN SECURITY FOR ANY CLAIM, UNLESS THEY HAVE FIRST OBTAINED AN ARBITRATION AWARD FROM THE INTERNATIONAL COTTON ASSOCIATION, LIMITED AND EXHAUSTED ALL MEANS OF APPEAL ALLOWED BY THE ASSOCIATION’S BYLAWS.
-
+
-
- THE SELLERS
+
+ THE SELLERS
-
- THE BUYERS
+
+ THE BUYERS
- ICT TRADING SA
-
+ ICT TRADING SA
+
iVBORw0KGgoAAAANSUhEUgAAAQ8AAAEJCAIAAAAFFDV0AAAAAXNSR0IArs4c6QAA/8pJREFU
eF7sfQeAXGd19etletned7Wr3VXvsootW+69gk2HQIAkJIEUElJ+SAKBhBJqEhICxEAcsDHF
vcmybFlW72V7r7PT5/X2n++NJBsjxZZtjAx+DPKW2Zk37333u/eee+65tOu6lH84jsMwDL61
@@ -5601,12 +5608,12 @@
- <sale.party.rec_name>
+ <sale.party.rec_name>
PC/AU/EL
- </for>
+ </for>
\ No newline at end of file
From cd2a82f61ceece53e036413042b721111c61547e Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Fri, 27 Feb 2026 05:56:00 +0100
Subject: [PATCH 340/618] 27.02.26
---
modules/purchase_trade/numbers_to_words.py | 134 +++++++++++++++------
modules/purchase_trade/sale.py | 6 +-
2 files changed, 101 insertions(+), 39 deletions(-)
diff --git a/modules/purchase_trade/numbers_to_words.py b/modules/purchase_trade/numbers_to_words.py
index 518c66a..1637b19 100644
--- a/modules/purchase_trade/numbers_to_words.py
+++ b/modules/purchase_trade/numbers_to_words.py
@@ -9,7 +9,7 @@ UNITS = (
TENS = "ZERO TEN TWENTY THIRTY FORTY FIFTY SIXTY SEVENTY EIGHTY NINETY".split()
-def _under_thousand(n, use_and=True):
+def _under_thousand(n):
words = []
hundreds = n // 100
@@ -18,7 +18,7 @@ def _under_thousand(n, use_and=True):
if hundreds:
words.append(UNITS[hundreds])
words.append("HUNDRED")
- if remainder and use_and:
+ if remainder:
words.append("AND")
if remainder:
@@ -32,46 +32,108 @@ def _under_thousand(n, use_and=True):
return " ".join(words)
-def number_to_words(n, decimals_mode="digit", use_and=True):
+def integer_to_words(n):
+ if n == 0:
+ return "ZERO"
+
+ parts = []
+
+ millions = n // 1_000_000
+ thousands = (n // 1_000) % 1_000
+ remainder = n % 1_000
+
+ if millions:
+ parts.append(_under_thousand(millions))
+ parts.append("MILLION")
+
+ if thousands:
+ parts.append(_under_thousand(thousands))
+ parts.append("THOUSAND")
+
+ if remainder:
+ parts.append(_under_thousand(remainder))
+
+ return " ".join(parts)
+
+
+# ==============================
+# 💰 MONETARY
+# ==============================
+
+def amount_to_currency_words(amount,
+ major_singular="DOLLAR",
+ major_plural="DOLLARS",
+ minor_singular="CENT",
+ minor_plural="CENTS"):
"""
- decimals_mode:
- - "digit" → ONE HUNDRED POINT TWO FIVE
- - "fraction" → ONE HUNDRED AND 25/100
+ Example:
+ 1.20 → ONE DOLLAR AND TWENTY CENTS
+ 2.00 → TWO DOLLARS
"""
- n = Decimal(str(n)).quantize(Decimal("0.01"), rounding=ROUND_HALF_UP)
+ amount = Decimal(str(amount)).quantize(Decimal("0.01"), rounding=ROUND_HALF_UP)
- integer_part = int(n)
- decimal_part = int((n - integer_part) * 100)
+ integer_part = int(amount)
+ decimal_part = int((amount - integer_part) * 100)
- if integer_part == 0:
- words = "ZERO"
+ words = []
+
+ # Major unit
+ major_words = integer_to_words(integer_part)
+ words.append(major_words)
+
+ if integer_part == 1:
+ words.append(major_singular)
else:
- parts = []
+ words.append(major_plural)
- millions = integer_part // 1_000_000
- thousands = (integer_part // 1_000) % 1_000
- remainder = integer_part % 1_000
-
- if millions:
- parts.append(_under_thousand(millions, use_and))
- parts.append("MILLION")
-
- if thousands:
- parts.append(_under_thousand(thousands, use_and))
- parts.append("THOUSAND")
-
- if remainder:
- parts.append(_under_thousand(remainder, use_and))
-
- words = " ".join(parts)
-
- # Gestion décimales
+ # Minor unit
if decimal_part:
- if decimals_mode == "digit":
- digits = " ".join(UNITS[int(d)] for d in f"{decimal_part:02d}")
- words = f"{words} POINT {digits}"
- elif decimals_mode == "fraction":
- words = f"{words} AND {decimal_part:02d}/100"
+ words.append("AND")
+ minor_words = integer_to_words(decimal_part)
+ words.append(minor_words)
- return words.upper()
\ No newline at end of file
+ if decimal_part == 1:
+ words.append(minor_singular)
+ else:
+ words.append(minor_plural)
+
+ return " ".join(words)
+
+
+# ==============================
+# ⚖️ QUANTITY WITH UNIT
+# ==============================
+
+def quantity_to_words(quantity,
+ unit_singular="METRIC TON",
+ unit_plural="METRIC TONS"):
+ """
+ Example:
+ 1 → ONE METRIC TON
+ 23 → TWENTY THREE METRIC TONS
+ 1.5 → ONE POINT FIVE METRIC TONS
+ """
+
+ quantity = Decimal(str(quantity)).normalize()
+
+ if quantity == quantity.to_integral():
+ integer_part = int(quantity)
+ words = integer_to_words(integer_part)
+
+ if integer_part == 1:
+ unit = unit_singular
+ else:
+ unit = unit_plural
+
+ return f"{words} {unit}"
+
+ else:
+ # lecture décimale simple pour quantités
+ integer_part = int(quantity)
+ decimal_str = str(quantity).split(".")[1]
+
+ words = integer_to_words(integer_part)
+ decimal_words = " ".join(UNITS[int(d)] for d in decimal_str)
+
+ return f"{words} POINT {decimal_words} {unit_plural}"
\ No newline at end of file
diff --git a/modules/purchase_trade/sale.py b/modules/purchase_trade/sale.py
index 8839fd8..a03e319 100755
--- a/modules/purchase_trade/sale.py
+++ b/modules/purchase_trade/sale.py
@@ -15,7 +15,7 @@ import datetime
import logging
import json
from trytond.exceptions import UserWarning, UserError
-from trytond.modules.purchase_trade.numbers_to_words import number_to_words
+from trytond.modules.purchase_trade.numbers_to_words import quantity_to_words, amount_to_currency_words
logger = logging.getLogger(__name__)
@@ -268,14 +268,14 @@ class Sale(metaclass=PoolMeta):
@property
def report_qt(self):
if self.lines:
- return number_to_words(self.lines[0].quantity)
+ return quantity_to_words(self.lines[0].quantity)
else:
return ''
@property
def report_price(self):
if self.lines:
- return number_to_words(self.lines[0].unit_price)
+ return amount_to_currency_words(self.lines[0].unit_price)
else:
return ''
From 92210a381a65ff470fe122b237e39c802ee7052c Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Fri, 27 Feb 2026 06:12:39 +0100
Subject: [PATCH 341/618] 27.02.26
---
modules/purchase_trade/purchase.py | 1 +
modules/purchase_trade/sale.py | 20 +++-
modules/sale/sale.fodt | 154 +++++++++++++++--------------
3 files changed, 100 insertions(+), 75 deletions(-)
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index 7e51b8d..4e581e2 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -36,6 +36,7 @@ TRIGGERS = [
('discharge', 'Discharge NOR'),
('arrival', 'Arrival date'),
('delmonth', 'Delivery month'),
+ ('deldate', 'Delivery date'),
]
class DocType(ModelSQL,ModelView):
diff --git a/modules/purchase_trade/sale.py b/modules/purchase_trade/sale.py
index a03e319..1f6ad9a 100755
--- a/modules/purchase_trade/sale.py
+++ b/modules/purchase_trade/sale.py
@@ -278,6 +278,16 @@ class Sale(metaclass=PoolMeta):
return amount_to_currency_words(self.lines[0].unit_price)
else:
return ''
+
+ @property
+ def report_delivery(self):
+ del_date = ''
+ if self.lines:
+ if self.estimated_date:
+ delivery_date = [dd.estimated_date for dd in self.estimated_date if dd.trigger=='deldate']
+ if delivery_date:
+ del_date = delivery_date[0]
+ return del_date
@property
def report_shipment(self):
@@ -287,7 +297,15 @@ class Sale(metaclass=PoolMeta):
if shipment:
info = 'B/L ' + shipment.bl_number
if shipment.container and shipment.container[0].container_no:
- info += ' ' + shipment.container[0].container_no
+ id = 1
+ for cont in shipment.container:
+ if id == 1:
+ info += ' Containers'
+ if cont.container_no:
+ info += ' ' + cont.container_no
+ else:
+ info += ' unnamed'
+ id += 1
if shipment.note:
info += ' ' + shipment.note
return info
diff --git a/modules/sale/sale.fodt b/modules/sale/sale.fodt
index 467307f..34944b3 100755
--- a/modules/sale/sale.fodt
+++ b/modules/sale/sale.fodt
@@ -1,10 +1,10 @@
- LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 Invoice no willen 2026-02-26T13:52:00Z 2026-02-27T05:47:38.343000000 2025-12-17T14:25:00Z 7 PT28M8S
+ LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 Invoice no willen 2026-02-26T13:52:00Z 2026-02-27T06:05:06.484000000 2025-12-17T14:25:00Z 9 PT29M56S
- 40658
+ 37599
0
24236
11721
@@ -13,12 +13,12 @@
view2
- 10469
- 42757
+ 15041
+ 44309
0
- 40658
+ 37599
24234
- 52377
+ 49318
0
0
false
@@ -91,7 +91,7 @@
false
false
false
- 2082766
+ 2091355
1846560
false
false
@@ -161,7 +161,7 @@
-
+
@@ -612,16 +612,16 @@
-
-
-
-
+
+
+
+
@@ -630,10 +630,10 @@
-
+
-
+
@@ -642,16 +642,10 @@
-
+
-
-
-
-
-
-
-
+
@@ -660,27 +654,36 @@
+
-
-
-
-
-
-
-
-
-
-
-
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -734,6 +737,9 @@
+
+
+
@@ -3785,7 +3791,7 @@
<for each="sale in records">
-
+
@@ -3848,9 +3854,9 @@
-
- Growth
-
+
+ Growth
+
@@ -3859,20 +3865,20 @@
- Quality
-
+ Quality
+
- B/L <sale.report_shipment>
+ <sale.report_shipment>
- 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> )
@@ -3883,10 +3889,10 @@
- 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> )
@@ -3897,12 +3903,12 @@
-
+
Delivery
-
- PROMPT
+
+ <sale.report_delivery if sale.report_delivery else 'PROMPT'>
@@ -3914,74 +3920,74 @@
-
- Terms
+
+ Terms
-
+
<sale.report_terms>
-
+
-
+
+
+
+
+
+
-
+ Payment
+
+
+ <sale.payment_term.rec_name if sale.payment_term else '100% CASH AGAINST DOCUMENTS'>
- Payment
+
-
- <sale.payment_term.rec_name if sale.payment_term else '100% CASH AGAINST DOCUMENTS'>
-
-
-
-
-
-
- Arbitration & Rules
+ Arbitration & Rules
- ALL DISPUTES RELATING TO THIS CONTRACT WILL BE RESOLVED THROUGH ARBITRATION IN ACCORDANCE WITH THE BYLAWS OF THE INTERNATIONAL COTTON ASSOCIATION, LIMITED. THIS AGREEMENT INCORPORATES THE BYLAWS WHICH SET OUT THE ASSOCIATION’S ARBITRATION PROCEDURE.
- - EITHER PARTY MUST NOT TAKE ANY LEGAL ACTION OVER A DISPUTE SUITABLE FOR ARBITRATION, OTHER THAN TO OBTAIN SECURITY FOR ANY CLAIM, UNLESS THEY HAVE FIRST OBTAINED AN ARBITRATION AWARD FROM THE INTERNATIONAL COTTON ASSOCIATION, LIMITED AND EXHAUSTED ALL MEANS OF APPEAL ALLOWED BY THE ASSOCIATION’S BYLAWS.
+ - EITHER PARTY MUST NOT TAKE ANY LEGAL ACTION OVER A DISPUTE SUITABLE FOR ARBITRATION, OTHER THAN TO OBTAIN SECURITY FOR ANY CLAIM, UNLESS THEY HAVE FIRST OBTAINED AN ARBITRATION AWARD FROM THE INTERNATIONAL COTTON ASSOCIATION, LIMITED AND EXHAUSTED ALL MEANS OF APPEAL ALLOWED BY THE ASSOCIATION’S BYLAWS.
-
+
-
- THE SELLERS
+
+ THE SELLERS
-
- THE BUYERS
+
+ THE BUYERS
ICT TRADING SA
-
+
iVBORw0KGgoAAAANSUhEUgAAAQ8AAAEJCAIAAAAFFDV0AAAAAXNSR0IArs4c6QAA/8pJREFU
eF7sfQeAXGd19etletned7Wr3VXvsootW+69gk2HQIAkJIEUElJ+SAKBhBJqEhICxEAcsDHF
vcmybFlW72V7r7PT5/X2n++NJBsjxZZtjAx+DPKW2Zk37333u/eee+65tOu6lH84jsMwDL61
@@ -5608,7 +5614,7 @@
- <sale.party.rec_name>
+ <sale.party.rec_name>
From 6fdf5e199490d3080283fb6c65b064ec27cd1b33 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Fri, 27 Feb 2026 06:17:55 +0100
Subject: [PATCH 342/618] 27.02.26
---
modules/purchase_trade/sale.py | 2 +-
modules/sale/sale.fodt | 115 ++++++++++++++++++---------------
2 files changed, 63 insertions(+), 54 deletions(-)
diff --git a/modules/purchase_trade/sale.py b/modules/purchase_trade/sale.py
index 1f6ad9a..b2b90db 100755
--- a/modules/purchase_trade/sale.py
+++ b/modules/purchase_trade/sale.py
@@ -281,7 +281,7 @@ class Sale(metaclass=PoolMeta):
@property
def report_delivery(self):
- del_date = ''
+ del_date = 'PROMPT'
if self.lines:
if self.estimated_date:
delivery_date = [dd.estimated_date for dd in self.estimated_date if dd.trigger=='deldate']
diff --git a/modules/sale/sale.fodt b/modules/sale/sale.fodt
index 34944b3..86ab3db 100755
--- a/modules/sale/sale.fodt
+++ b/modules/sale/sale.fodt
@@ -1,10 +1,10 @@
- LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 Invoice no willen 2026-02-26T13:52:00Z 2026-02-27T06:05:06.484000000 2025-12-17T14:25:00Z 9 PT29M56S
+ LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 Invoice no willen 2026-02-26T13:52:00Z 2026-02-27T06:16:42.332000000 2025-12-17T14:25:00Z 10 PT30M43S
- 37599
+ 37685
0
24236
11721
@@ -13,12 +13,12 @@
view2
- 15041
+ 7430
44309
0
- 37599
+ 37685
24234
- 49318
+ 49405
0
0
false
@@ -91,7 +91,7 @@
false
false
false
- 2091355
+ 2162399
1846560
false
false
@@ -161,7 +161,7 @@
-
+
@@ -636,6 +636,9 @@
+
+
+
@@ -644,17 +647,8 @@
-
-
-
-
-
-
-
-
-
-
+
@@ -663,7 +657,7 @@
-
+
@@ -672,18 +666,33 @@
+
-
+
+
+
+
+
+
+
+
+
-
+
-
-
+
+
+
+
+
+
+
+
-
+
@@ -769,7 +778,7 @@
-
+
iVBORw0KGgoAAAANSUhEUgAABZ4AAAC9CAIAAAC8iP/2AAAAAXNSR0IArs4c6QAAAAlwSFlz
AAAOxAAADsMB2mqY3AAA/7VJREFUeF7svQeAHMd1Jlyduydu3kUmQRLMIimJVBaVbStYWc6y
JdvncLZOtuxzOMmSreAsZ9/9tmVZsiVZWbKtnLMVSDGDAAkSGZsndw7/96p6ZmcXu8AsuAAW
@@ -3156,7 +3165,7 @@
-
+
iVBORw0KGgoAAAANSUhEUgAAAqoAAAAnCAIAAABIVv0SAAAAAXNSR0IArs4c6QAAAAlwSFlz
AAAOwwAADsMBx2+oZAAAge9JREFUeF7tvQeYHNW1LXwqdHXO05NHM8oSkkgOGDDGGGxMMjnn
nCyCAZFBRuScETlnEMlgMjbYmCwQymly7Byrq7q66l/7VM9o4OL3vff+j3e5WO320Jqprjpx
@@ -3791,7 +3800,7 @@
<for each="sale in records">
-
+
@@ -3854,9 +3863,9 @@
-
- Growth
-
+
+ Growth
+
@@ -3865,17 +3874,17 @@
- Quality
-
+ Quality
+
- <sale.report_shipment>
+ <sale.report_shipment>
- 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> )
@@ -3889,7 +3898,7 @@
- Price
+ Price
<format_currency(sale.lines[0].unit_price, sale.party.lang, sale.currency) if sale.lines else ''> ( <sale.report_price> )
@@ -3903,12 +3912,12 @@
-
+
Delivery
- <sale.report_delivery if sale.report_delivery else 'PROMPT'>
+ <sale.report_delivery>
@@ -3920,8 +3929,8 @@
-
- Terms
+
+ Terms
@@ -3930,15 +3939,15 @@
-
+
-
+
-
+
@@ -3946,15 +3955,15 @@
- Payment
+ Payment
- <sale.payment_term.rec_name if sale.payment_term else '100% CASH AGAINST DOCUMENTS'>
+ <sale.payment_term.rec_name if sale.payment_term else '100% CASH AGAINST DOCUMENTS'>
-
+
@@ -3962,7 +3971,7 @@
- Arbitration & Rules
+ Arbitration & Rules
- ALL DISPUTES RELATING TO THIS CONTRACT WILL BE RESOLVED THROUGH ARBITRATION IN ACCORDANCE WITH THE BYLAWS OF THE INTERNATIONAL COTTON ASSOCIATION, LIMITED. THIS AGREEMENT INCORPORATES THE BYLAWS WHICH SET OUT THE ASSOCIATION’S ARBITRATION PROCEDURE.
@@ -3970,24 +3979,24 @@
-
+
-
- THE SELLERS
+
+ THE SELLERS
-
- THE BUYERS
+
+ THE BUYERS
ICT TRADING SA
-
+
iVBORw0KGgoAAAANSUhEUgAAAQ8AAAEJCAIAAAAFFDV0AAAAAXNSR0IArs4c6QAA/8pJREFU
eF7sfQeAXGd19etletned7Wr3VXvsootW+69gk2HQIAkJIEUElJ+SAKBhBJqEhICxEAcsDHF
vcmybFlW72V7r7PT5/X2n++NJBsjxZZtjAx+DPKW2Zk37333u/eee+65tOu6lH84jsMwDL61
@@ -5614,7 +5623,7 @@
- <sale.party.rec_name>
+ <sale.party.rec_name>
From 20c3dacdedefacd3dca418dc04f054924670b0e2 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Fri, 27 Feb 2026 06:24:01 +0100
Subject: [PATCH 343/618] 27.02.26
---
modules/sale/sale.fodt | 50 +++++++++++++++++++++---------------------
1 file changed, 25 insertions(+), 25 deletions(-)
diff --git a/modules/sale/sale.fodt b/modules/sale/sale.fodt
index 86ab3db..07e7c41 100755
--- a/modules/sale/sale.fodt
+++ b/modules/sale/sale.fodt
@@ -1,13 +1,13 @@
- LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 Invoice no willen 2026-02-26T13:52:00Z 2026-02-27T06:16:42.332000000 2025-12-17T14:25:00Z 10 PT30M43S
+ LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 Invoice no willen 2026-02-26T13:52:00Z 2026-02-27T06:23:41.479000000 2025-12-17T14:25:00Z 12 PT32M32S
- 37685
+ 37232
0
24236
- 11721
+ 11770
true
false
@@ -16,9 +16,9 @@
7430
44309
0
- 37685
+ 37232
24234
- 49405
+ 49001
0
0
false
@@ -91,7 +91,7 @@
false
false
false
- 2162399
+ 2293789
1846560
false
false
@@ -675,22 +675,22 @@
+
-
-
-
-
-
-
-
-
+
-
+
+
+
+
+
+
+
@@ -778,7 +778,7 @@
-
+
iVBORw0KGgoAAAANSUhEUgAABZ4AAAC9CAIAAAC8iP/2AAAAAXNSR0IArs4c6QAAAAlwSFlz
AAAOxAAADsMB2mqY3AAA/7VJREFUeF7svQeAHMd1Jlyduydu3kUmQRLMIimJVBaVbStYWc6y
JdvncLZOtuxzOMmSreAsZ9/9tmVZsiVZWbKtnLMVSDGDAAkSGZsndw7/96p6ZmcXu8AsuAAW
@@ -3165,7 +3165,7 @@
-
+
iVBORw0KGgoAAAANSUhEUgAAAqoAAAAnCAIAAABIVv0SAAAAAXNSR0IArs4c6QAAAAlwSFlz
AAAOwwAADsMBx2+oZAAAge9JREFUeF7tvQeYHNW1LXwqdHXO05NHM8oSkkgOGDDGGGxMMjnn
nCyCAZFBRuScETlnEMlgMjbYmCwQymly7Byrq7q66l/7VM9o4OL3vff+j3e5WO320Jqprjpx
@@ -3878,7 +3878,7 @@
- <sale.report_shipment>
+ <sale.report_shipment>
@@ -3942,7 +3942,7 @@
-
+
@@ -3958,7 +3958,7 @@
Payment
- <sale.payment_term.rec_name if sale.payment_term else '100% CASH AGAINST DOCUMENTS'>
+ <sale.payment_term.rec_name if sale.payment_term else '100% CASH AGAINST DOCUMENTS'>
@@ -3979,24 +3979,24 @@
-
+
- THE SELLERS
+ THE SELLERS
- THE BUYERS
+ THE BUYERS
ICT TRADING SA
-
+
iVBORw0KGgoAAAANSUhEUgAAAQ8AAAEJCAIAAAAFFDV0AAAAAXNSR0IArs4c6QAA/8pJREFU
eF7sfQeAXGd19etletned7Wr3VXvsootW+69gk2HQIAkJIEUElJ+SAKBhBJqEhICxEAcsDHF
vcmybFlW72V7r7PT5/X2n++NJBsjxZZtjAx+DPKW2Zk37333u/eee+65tOu6lH84jsMwDL61
@@ -5623,7 +5623,7 @@
- <sale.party.rec_name>
+ <sale.party.rec_name>
From 5f8d081b0e1aa85012e187ee336b40650bccb6d6 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Fri, 27 Feb 2026 06:32:45 +0100
Subject: [PATCH 344/618] 27.02.26
---
modules/purchase_trade/sale.py | 4 ++++
modules/sale/sale.fodt | 14 +++++++-------
2 files changed, 11 insertions(+), 7 deletions(-)
diff --git a/modules/purchase_trade/sale.py b/modules/purchase_trade/sale.py
index b2b90db..95adcac 100755
--- a/modules/purchase_trade/sale.py
+++ b/modules/purchase_trade/sale.py
@@ -279,6 +279,10 @@ class Sale(metaclass=PoolMeta):
else:
return ''
+ @property
+ def report_del(self):
+ return 'PROMPT'
+
@property
def report_delivery(self):
del_date = 'PROMPT'
diff --git a/modules/sale/sale.fodt b/modules/sale/sale.fodt
index 07e7c41..cc68312 100755
--- a/modules/sale/sale.fodt
+++ b/modules/sale/sale.fodt
@@ -1,10 +1,10 @@
- LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 Invoice no willen 2026-02-26T13:52:00Z 2026-02-27T06:23:41.479000000 2025-12-17T14:25:00Z 12 PT32M32S
+ LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 Invoice no willen 2026-02-26T13:52:00Z 2026-02-27T06:32:21.562000000 2025-12-17T14:25:00Z 13 PT32M48S
- 37232
+ 36842
0
24236
11770
@@ -16,9 +16,9 @@
7430
44309
0
- 37232
+ 36842
24234
- 49001
+ 48611
0
0
false
@@ -91,7 +91,7 @@
false
false
false
- 2293789
+ 2353095
1846560
false
false
@@ -161,7 +161,7 @@
-
+
@@ -3917,7 +3917,7 @@
- <sale.report_delivery>
+ <sale.report_del>
From e768fe71a3ced47f43afe4934bc6e4eaa6d88c3e Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Fri, 27 Feb 2026 06:55:07 +0100
Subject: [PATCH 345/618] 27.02.26
---
modules/purchase_trade/sale.py | 16 ++++++++-----
modules/sale/sale.fodt | 42 ++++++++++++++++++++++++----------
2 files changed, 40 insertions(+), 18 deletions(-)
diff --git a/modules/purchase_trade/sale.py b/modules/purchase_trade/sale.py
index 95adcac..8d9a82d 100755
--- a/modules/purchase_trade/sale.py
+++ b/modules/purchase_trade/sale.py
@@ -279,25 +279,28 @@ class Sale(metaclass=PoolMeta):
else:
return ''
- @property
- def report_del(self):
- return 'PROMPT'
-
@property
def report_delivery(self):
del_date = 'PROMPT'
if self.lines:
- if self.estimated_date:
- delivery_date = [dd.estimated_date for dd in self.estimated_date if dd.trigger=='deldate']
+ 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]
return del_date
+
+ @property
+ def report_payment_date(self):
+ if self.lines:
+ Date = Pool().get('ir.date')
+ return self.lines[0].sale.payment_term.lines[0].get_date(Date.today(),self.lines[0])
@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:
@@ -310,6 +313,7 @@ class Sale(metaclass=PoolMeta):
else:
info += ' unnamed'
id += 1
+ info += ' (LOT ' + lot + ')'
if shipment.note:
info += ' ' + shipment.note
return info
diff --git a/modules/sale/sale.fodt b/modules/sale/sale.fodt
index cc68312..edf631c 100755
--- a/modules/sale/sale.fodt
+++ b/modules/sale/sale.fodt
@@ -1,24 +1,24 @@
- LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 Invoice no willen 2026-02-26T13:52:00Z 2026-02-27T06:32:21.562000000 2025-12-17T14:25:00Z 13 PT32M48S
+ LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 Invoice no willen 2026-02-26T13:52:00Z 2026-02-27T06:54:36.785000000 2025-12-17T14:25:00Z 14 PT45M44S
- 36842
+ 44533
0
24236
- 11770
+ 11721
true
false
view2
- 7430
- 44309
+ 12264
+ 46637
0
- 36842
+ 44533
24234
- 48611
+ 56252
0
0
false
@@ -91,7 +91,7 @@
false
false
false
- 2353095
+ 2361083
1846560
false
false
@@ -161,7 +161,7 @@
-
+
@@ -692,7 +692,24 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -3800,7 +3817,7 @@
<for each="sale in records">
-
+
@@ -3917,7 +3934,7 @@
- <sale.report_del>
+ <sale.report_delivery>
@@ -3959,6 +3976,7 @@
<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 ''>
From 6b884af9ccb5c225219d6bfd73c94e5ee59f3f72 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Fri, 27 Feb 2026 07:04:54 +0100
Subject: [PATCH 346/618] 27.02.26
---
modules/purchase_trade/numbers_to_words.py | 15 ++++++++++++++-
modules/purchase_trade/sale.py | 9 +++++++--
2 files changed, 21 insertions(+), 3 deletions(-)
diff --git a/modules/purchase_trade/numbers_to_words.py b/modules/purchase_trade/numbers_to_words.py
index 1637b19..4b90ddc 100644
--- a/modules/purchase_trade/numbers_to_words.py
+++ b/modules/purchase_trade/numbers_to_words.py
@@ -1,5 +1,5 @@
from decimal import Decimal, ROUND_HALF_UP
-
+from datetime import date
UNITS = (
"ZERO ONE TWO THREE FOUR FIVE SIX SEVEN EIGHT NINE TEN ELEVEN TWELVE "
@@ -8,6 +8,19 @@ UNITS = (
TENS = "ZERO TEN TWENTY THIRTY FORTY FIFTY SIXTY SEVENTY EIGHTY NINETY".split()
+def format_date_en(d):
+ if not d:
+ return ''
+
+ day = d.day
+
+ # Gestion des suffixes ordinaux
+ if 10 <= day % 100 <= 20:
+ suffix = 'TH'
+ else:
+ suffix = {1: 'ST', 2: 'ND', 3: 'RD'}.get(day % 10, 'TH')
+
+ return f"{day}{suffix} {d.strftime('%B').upper()} {d.year}"
def _under_thousand(n):
words = []
diff --git a/modules/purchase_trade/sale.py b/modules/purchase_trade/sale.py
index 8d9a82d..c7c2f44 100755
--- a/modules/purchase_trade/sale.py
+++ b/modules/purchase_trade/sale.py
@@ -15,7 +15,7 @@ import datetime
import logging
import json
from trytond.exceptions import UserWarning, UserError
-from trytond.modules.purchase_trade.numbers_to_words import quantity_to_words, amount_to_currency_words
+from trytond.modules.purchase_trade.numbers_to_words import quantity_to_words, amount_to_currency_words, format_date_en
logger = logging.getLogger(__name__)
@@ -287,13 +287,18 @@ class Sale(metaclass=PoolMeta):
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')
- return self.lines[0].sale.payment_term.lines[0].get_date(Date.today(),self.lines[0])
+ 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):
From 8e67c7aecbbd376bdb154efe046c603b340649c0 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Fri, 27 Feb 2026 07:17:24 +0100
Subject: [PATCH 347/618] 27.02.26
---
modules/sale/sale.fodt | 37 +++++++++++++++++--------------------
1 file changed, 17 insertions(+), 20 deletions(-)
diff --git a/modules/sale/sale.fodt b/modules/sale/sale.fodt
index edf631c..bac020c 100755
--- a/modules/sale/sale.fodt
+++ b/modules/sale/sale.fodt
@@ -1,10 +1,10 @@
- LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 Invoice no willen 2026-02-26T13:52:00Z 2026-02-27T06:54:36.785000000 2025-12-17T14:25:00Z 14 PT45M44S
+ LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 Invoice no willen 2026-02-26T13:52:00Z 2026-02-27T07:17:06.129000000 2025-12-17T14:25:00Z 15 PT47M1S
- 44533
+ 30639
0
24236
11721
@@ -13,12 +13,12 @@
view2
- 12264
- 46637
+ 7422
+ 40040
0
- 44533
+ 30639
24234
- 56252
+ 42358
0
0
false
@@ -91,7 +91,7 @@
false
false
false
- 2361083
+ 2371497
1846560
false
false
@@ -161,7 +161,7 @@
-
+
@@ -699,19 +699,14 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
@@ -3817,7 +3812,7 @@
<for each="sale in records">
-
+
@@ -3869,7 +3864,9 @@
Agents
- <sale.report_agent>
+ <for each="line in sale.report_agent.splitlines()">
+ <line>
+ </for>
@@ -3976,7 +3973,7 @@
<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 ''>
+ BEFORE <sale.report_payment_date> <sale.payment_term.description if sale.payment_term else ''>
From b5bc559b1113951be20e98ad26c595ee20d2573d Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Fri, 27 Feb 2026 07:21:16 +0100
Subject: [PATCH 348/618] 27.02.26
---
modules/commission/sale.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/commission/sale.py b/modules/commission/sale.py
index ef988c1..5f3b3cc 100755
--- a/modules/commission/sale.py
+++ b/modules/commission/sale.py
@@ -31,7 +31,7 @@ class Sale(metaclass=PoolMeta):
def report_agent(self):
if self.agent:
return (self.agent.party.address_get(
- type='invoice')).full_address
+ type='delivery')).full_address
else:
return ''
From 1a9114da7e3e6739911814367b5d8fc85f968689 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 2 Mar 2026 10:11:37 +0100
Subject: [PATCH 349/618] 02.03.26
---
modules/document_incoming/document.py | 76 ++++++++++++++++++++++++---
modules/purchase_trade/sale.py | 2 +-
2 files changed, 71 insertions(+), 7 deletions(-)
diff --git a/modules/document_incoming/document.py b/modules/document_incoming/document.py
index a1a819f..07825d1 100755
--- a/modules/document_incoming/document.py
+++ b/modules/document_incoming/document.py
@@ -181,33 +181,97 @@ class Incoming(DeactivableMixin, Workflow, ModelSQL, ModelView):
def _split_mime_types(cls):
return ['application/pdf']
+ # @classmethod
+ # def from_inbound_email(cls, email_, rule):
+ # message = email_.as_dict()
+ # attachments = message.get('attachments')
+ # active = False
+ # data = message.get('text', message.get('html'))
+ # logger.info("DATA_FROM_INBOUND_MAIL:%s",data)
+ # if isinstance(data, str):
+ # data = data.encode()
+ # body = message.get('text') or message.get('html') or ''
+ # if isinstance(body, str):
+ # body_bytes = body.encode('utf-8')
+ # else:
+ # body_bytes = body
+ # document = cls(
+ # active=active,
+ # name=message.get('subject', 'No Subject'),
+ # company=rule.document_incoming_company,
+ # data=data,
+ # type=rule.document_incoming_type if active else None,
+ # source='inbound_email',
+ # )
+ # children = []
+ # if attachments:
+ # for attachment in attachments:
+ # child = cls(
+ # name=attachment['filename'] or 'data.bin',
+ # company=rule.document_incoming_company,
+ # data=attachment['data'],
+ # type=rule.document_incoming_type,
+ # source='inbound_email')
+ # children.append(child)
+ # else:
+ # child = cls(
+ # name='mail_' + message.get('subject', 'No Subject') + '.txt',
+ # company=rule.document_incoming_company,
+ # data=body_bytes,
+ # type=rule.document_incoming_type,
+ # source='inbound_email',
+ # )
+ # children.append(child)
+ # document.children = children
+ # document.save()
+ # return document
@classmethod
def from_inbound_email(cls, email_, rule):
message = email_.as_dict()
+
+ def clean(value):
+ if not value:
+ return value
+ return (
+ value
+ .replace('\n', ' ')
+ .replace('\r', ' ')
+ .replace("'", '')
+ .replace('"', '')
+ .strip()
+ )
+
+ subject = clean(message.get('subject', 'No Subject'))
+
attachments = message.get('attachments')
active = False
data = message.get('text', message.get('html'))
- logger.info("DATA_FROM_INBOUND_MAIL:%s",data)
+ logger.info("DATA_FROM_INBOUND_MAIL:%s", data)
+
if isinstance(data, str):
data = data.encode()
+
body = message.get('text') or message.get('html') or ''
if isinstance(body, str):
body_bytes = body.encode('utf-8')
else:
body_bytes = body
+
document = cls(
active=active,
- name=message.get('subject', 'No Subject'),
+ name=subject,
company=rule.document_incoming_company,
data=data,
type=rule.document_incoming_type if active else None,
source='inbound_email',
- )
+ )
+
children = []
if attachments:
for attachment in attachments:
+ filename = clean(attachment['filename'] or 'data.bin')
child = cls(
- name=attachment['filename'] or 'data.bin',
+ name=filename,
company=rule.document_incoming_company,
data=attachment['data'],
type=rule.document_incoming_type,
@@ -215,13 +279,14 @@ class Incoming(DeactivableMixin, Workflow, ModelSQL, ModelView):
children.append(child)
else:
child = cls(
- name='mail_' + message.get('subject', 'No Subject') + '.txt',
+ name='mail_' + subject + '.txt',
company=rule.document_incoming_company,
data=body_bytes,
type=rule.document_incoming_type,
source='inbound_email',
)
children.append(child)
+
document.children = children
document.save()
return document
@@ -284,7 +349,6 @@ class Incoming(DeactivableMixin, Workflow, ModelSQL, ModelView):
default.setdefault('children')
return super().copy(documents, default=default)
-
def iter_pages(expression, size):
ranges = set()
for pages in expression.split(','):
diff --git a/modules/purchase_trade/sale.py b/modules/purchase_trade/sale.py
index c7c2f44..021121d 100755
--- a/modules/purchase_trade/sale.py
+++ b/modules/purchase_trade/sale.py
@@ -312,7 +312,7 @@ class Sale(metaclass=PoolMeta):
id = 1
for cont in shipment.container:
if id == 1:
- info += ' Containers'
+ info += ' Container(s)'
if cont.container_no:
info += ' ' + cont.container_no
else:
From d9cf6c9a49b8d7d3bb560c12c12bb167d2ccd1b7 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 3 Mar 2026 12:00:35 +0100
Subject: [PATCH 350/618] 03.03.26
---
modules/purchase_trade/party.py | 20 ++++++++++++++++++-
modules/purchase_trade/stock.py | 13 +++++++-----
.../view/party_exec_place_tree.xml | 4 +++-
3 files changed, 30 insertions(+), 7 deletions(-)
diff --git a/modules/purchase_trade/party.py b/modules/purchase_trade/party.py
index 2fbf46f..a8063e5 100755
--- a/modules/purchase_trade/party.py
+++ b/modules/purchase_trade/party.py
@@ -5,6 +5,7 @@ from trytond.modules.purchase_trade.purchase import (TRIGGERS)
from trytond.transaction import Transaction
from decimal import getcontext, Decimal, ROUND_HALF_UP
from sql import Table
+from trytond.pyson import Bool, Eval, Id, If
class PartyExecution(ModelSQL,ModelView):
"Party Execution"
@@ -36,6 +37,23 @@ class PartyExecutionPlace(ModelSQL,ModelView):
pes = fields.Many2One('party.execution.sla',"Sla")
location = fields.Many2One('stock.location',"Location")
cost = fields.Numeric("Cost",digits=(16,4))
+ mode = fields.Selection([
+ ('lumpsum', 'Lump sum'),
+ ('perqt', 'Per qt'),
+ ('pprice', '% price'),
+ ('rate', '% rate'),
+ ('pcost', '% cost price'),
+ ('ppack', 'Per packing'),
+ ], 'Mode', required=True)
+ currency = fields.Many2One('currency.currency',"Currency")
+ unit = fields.Many2One('product.uom',"Unit",domain=[
+ If(Eval('mode') == 'ppack',
+ ('category', '=', 8),
+ ()),
+ ],
+ states={
+ 'readonly': Eval('mode') != 'ppack',
+ })
currency_unit = fields.Selection('get_currency_unit',string="Curr/Unit")
@staticmethod
@@ -74,7 +92,7 @@ class Party(metaclass=PoolMeta):
SlaPlace = Pool().get('party.execution.place')
sp = SlaPlace.search([('pes','=', sla.id),('location','=',location)])
if sp:
- return round(((sp[0].cost / Decimal(100)) * Decimal(2.2046)),4)
+ return round(((sp[0].cost / Decimal(100)) * Decimal(2.2046)),4),sp[0].mode,sp[0].currency,sp[0].unit
def get_alf(self):
if self.name == 'CARGO CONTROL':
diff --git a/modules/purchase_trade/stock.py b/modules/purchase_trade/stock.py
index f918411..37be6a7 100755
--- a/modules/purchase_trade/stock.py
+++ b/modules/purchase_trade/stock.py
@@ -475,11 +475,14 @@ class ShipmentIn(metaclass=PoolMeta):
fee.supplier = controller
fee.type = 'budgeted'
fee.p_r = 'pay'
- fee.mode = 'perqt'
- fee.currency = 1
- fee.product = Product.get_by_name('Reweighing')
- fee.price = controller.get_sla_cost(self.to_location)
- Fee.save([fee])
+ price,mode,curr,unit = controller.get_sla_cost(self.to_location)
+ if price and mode and curr and unit:
+ fee.mode = mode
+ fee.currency = curr
+ fee.unit = unit
+ fee.product = Product.get_by_name('Reweighing')
+ fee.price = price
+ Fee.save([fee])
def get_controller(self):
ControllerCategory = Pool().get('party.category')
diff --git a/modules/purchase_trade/view/party_exec_place_tree.xml b/modules/purchase_trade/view/party_exec_place_tree.xml
index 399f3cc..cdb7b99 100644
--- a/modules/purchase_trade/view/party_exec_place_tree.xml
+++ b/modules/purchase_trade/view/party_exec_place_tree.xml
@@ -1,5 +1,7 @@
+
-
+
+
\ No newline at end of file
From 7f0400400ce17be4d60c3ba62dab710e48119134 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 3 Mar 2026 12:05:07 +0100
Subject: [PATCH 351/618] 03.03.26
---
modules/purchase_trade/view/party_exec_place_tree.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/purchase_trade/view/party_exec_place_tree.xml b/modules/purchase_trade/view/party_exec_place_tree.xml
index cdb7b99..5f48d9c 100644
--- a/modules/purchase_trade/view/party_exec_place_tree.xml
+++ b/modules/purchase_trade/view/party_exec_place_tree.xml
@@ -1,4 +1,4 @@
-
+
From af89743b406a08f0ac614b7803d5780441564284 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 3 Mar 2026 13:23:19 +0100
Subject: [PATCH 352/618] 03.03.26
---
modules/purchase_trade/stock.py | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/modules/purchase_trade/stock.py b/modules/purchase_trade/stock.py
index 37be6a7..a01c771 100755
--- a/modules/purchase_trade/stock.py
+++ b/modules/purchase_trade/stock.py
@@ -480,6 +480,7 @@ class ShipmentIn(metaclass=PoolMeta):
fee.mode = mode
fee.currency = curr
fee.unit = unit
+ fee.quantity = self.get_bales() or 1
fee.product = Product.get_by_name('Reweighing')
fee.price = price
Fee.save([fee])
@@ -859,6 +860,12 @@ class ShipmentIn(metaclass=PoolMeta):
def get_quantity(self,name=None):
if self.incoming_moves:
return sum([(e.quantity if e.quantity else 0) for e in self.incoming_moves])
+
+ def get_bales(self,name=None):
+ Lot = Pool().get('lot.lot')
+ lots = Lot.search(['lot_shipment_in','=',self.id])
+ if lots:
+ return sum([l.lot_qt for l in lots])
def get_unit(self,name=None):
if self.incoming_moves:
From 9dd4543fc18d3b4c9a86850c4b11e1e2cc569b1a Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 3 Mar 2026 13:47:46 +0100
Subject: [PATCH 353/618] 03.03.26
---
modules/purchase_trade/global_reporting.py | 1 +
modules/purchase_trade/purchase.py | 35 +++++++++++++++++++
modules/purchase_trade/purchase.xml | 19 ++++++++++
.../view/gr_configuration_form.xml | 2 ++
.../purchase_trade/view/position_bi_graph.xml | 4 +++
5 files changed, 61 insertions(+)
create mode 100644 modules/purchase_trade/view/position_bi_graph.xml
diff --git a/modules/purchase_trade/global_reporting.py b/modules/purchase_trade/global_reporting.py
index ba3a291..4c08dd9 100644
--- a/modules/purchase_trade/global_reporting.py
+++ b/modules/purchase_trade/global_reporting.py
@@ -15,6 +15,7 @@ class GRConfiguration(ModelSingleton, ModelSQL, ModelView):
dashboard = fields.Char("Dashboard connexion")
dark = fields.Boolean("Dark mode")
pnl_id = fields.Integer("Pnl ID")
+ position_id = fields.Integer("Position ID")
forex_id = fields.Integer("Forex ID")
payload = fields.Char("Metabase payload")
automation = fields.Boolean("Automation")
\ No newline at end of file
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index 4e581e2..828eafd 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -1052,3 +1052,38 @@ class PnlBI(ModelSingleton,ModelSQL, ModelView):
else:
url = f"metabase:{config.bi}/embed/dashboard/{token}#bordered=true&titled=true"
return url
+
+class PositionReport(Wizard):
+ 'Position report'
+ __name__ = 'position.report'
+
+ start = StateAction('purchase_trade.act_position_bi')
+
+ def do_start(self, action):
+ pool = Pool()
+ # action['views'].reverse()
+ return action, {'res_id': [1]}
+
+class PositionBI(ModelSingleton,ModelSQL, ModelView):
+ 'Position BI'
+ __name__ = 'position.bi'
+
+ input = fields.Text("BI")
+ metabase = fields.Function(fields.Text(""),'get_bi')
+
+ def get_bi(self,name=None):
+ Configuration = Pool().get('gr.configuration')
+ config = Configuration.search(['id','>',0])[0]
+
+ payload = {
+ "resource": {"dashboard": config.position_id},
+ "params": {},
+ "exp": datetime.datetime.utcnow() + datetime.timedelta(minutes=30),
+ }
+ token = jwt.encode(payload, config.payload, algorithm="HS256")
+ logger.info("TOKEN:%s",token)
+ if config.dark:
+ url = f"metabase:{config.bi}/embed/dashboard/{token}#theme=night&bordered=true&titled=true"
+ else:
+ url = f"metabase:{config.bi}/embed/dashboard/{token}#bordered=true&titled=true"
+ return url
diff --git a/modules/purchase_trade/purchase.xml b/modules/purchase_trade/purchase.xml
index 6ce8032..531a7dd 100755
--- a/modules/purchase_trade/purchase.xml
+++ b/modules/purchase_trade/purchase.xml
@@ -126,6 +126,25 @@ this repository contains the full copyright notices and license terms. -->
pnl.report
+
+ position.bi
+ form
+ position_bi_graph
+
+
+ Position BI
+ position.bi
+
+
+
+
+
+
+
+ Position report
+ position.report
+
+
mtm.component
form
diff --git a/modules/purchase_trade/view/gr_configuration_form.xml b/modules/purchase_trade/view/gr_configuration_form.xml
index 99bfd47..794a5d0 100644
--- a/modules/purchase_trade/view/gr_configuration_form.xml
+++ b/modules/purchase_trade/view/gr_configuration_form.xml
@@ -9,6 +9,8 @@
+
+
diff --git a/modules/purchase_trade/view/position_bi_graph.xml b/modules/purchase_trade/view/position_bi_graph.xml
new file mode 100644
index 0000000..17796d6
--- /dev/null
+++ b/modules/purchase_trade/view/position_bi_graph.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
From 741389b71cdeb13113b56847d4769ba9eb80c04f Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 3 Mar 2026 13:50:58 +0100
Subject: [PATCH 354/618] 03.03.26
---
modules/purchase_trade/__init__.py | 2 ++
1 file changed, 2 insertions(+)
diff --git a/modules/purchase_trade/__init__.py b/modules/purchase_trade/__init__.py
index e55d337..b16f3c1 100755
--- a/modules/purchase_trade/__init__.py
+++ b/modules/purchase_trade/__init__.py
@@ -117,6 +117,7 @@ def register():
forex.PForex,
forex.ForexBI,
purchase.PnlBI,
+ purchase.PositionBI,
stock.Move,
stock.Location,
stock.InvoiceLine,
@@ -240,6 +241,7 @@ def register():
dashboard.DashboardLoader,
forex.ForexReport,
purchase.PnlReport,
+ purchase.PositionReport,
derivative.DerivativeMatchWizard,
module='purchase', type_='wizard')
Pool.register(
From 62a1bc69f7e3265181d1f61e95873e9ccf09db77 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 3 Mar 2026 13:54:04 +0100
Subject: [PATCH 355/618] 03.03.26
---
modules/purchase_trade/view/position_bi_graph.xml | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/modules/purchase_trade/view/position_bi_graph.xml b/modules/purchase_trade/view/position_bi_graph.xml
index 17796d6..55e3414 100644
--- a/modules/purchase_trade/view/position_bi_graph.xml
+++ b/modules/purchase_trade/view/position_bi_graph.xml
@@ -1,4 +1,5 @@
-
+
+
\ No newline at end of file
From 934f3511f7bc0cb40fe7388f42f61a130fd185c5 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 3 Mar 2026 13:56:57 +0100
Subject: [PATCH 356/618] 03.03.26
---
modules/purchase_trade/purchase.xml | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/modules/purchase_trade/purchase.xml b/modules/purchase_trade/purchase.xml
index 531a7dd..679343a 100755
--- a/modules/purchase_trade/purchase.xml
+++ b/modules/purchase_trade/purchase.xml
@@ -137,7 +137,7 @@ this repository contains the full copyright notices and license terms. -->
-
+
@@ -163,6 +163,13 @@ this repository contains the full copyright notices and license terms. -->
sequence="110"
id="menu_pnl_bi"/>
+
+
Date: Tue, 3 Mar 2026 14:00:05 +0100
Subject: [PATCH 357/618] 03.03.26
---
modules/purchase_trade/view/position_bi_graph.xml | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/modules/purchase_trade/view/position_bi_graph.xml b/modules/purchase_trade/view/position_bi_graph.xml
index 55e3414..17796d6 100644
--- a/modules/purchase_trade/view/position_bi_graph.xml
+++ b/modules/purchase_trade/view/position_bi_graph.xml
@@ -1,5 +1,4 @@
-
-
+
\ No newline at end of file
From d37bad643d07f26e2d0ea72d192d7d8fb3ef2fef Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 3 Mar 2026 16:08:37 +0100
Subject: [PATCH 358/618] 03.03.26
---
modules/purchase_trade/view/position_bi_graph.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/purchase_trade/view/position_bi_graph.xml b/modules/purchase_trade/view/position_bi_graph.xml
index 17796d6..95d73fc 100644
--- a/modules/purchase_trade/view/position_bi_graph.xml
+++ b/modules/purchase_trade/view/position_bi_graph.xml
@@ -1,4 +1,4 @@
-
+
\ No newline at end of file
From 1c288d96460128941174b91ffd3e2cf0cf4d6893 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 3 Mar 2026 16:20:38 +0100
Subject: [PATCH 359/618] 03.03.26
---
modules/purchase_trade/view/position_bi_graph.xml | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/modules/purchase_trade/view/position_bi_graph.xml b/modules/purchase_trade/view/position_bi_graph.xml
index 95d73fc..6604715 100644
--- a/modules/purchase_trade/view/position_bi_graph.xml
+++ b/modules/purchase_trade/view/position_bi_graph.xml
@@ -1,4 +1,5 @@
-
+
+
\ No newline at end of file
From c55338e879632d2363a579236d9ece79ffa54028 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 3 Mar 2026 16:30:37 +0100
Subject: [PATCH 360/618] 03.03.26
---
modules/purchase_trade/view/position_bi_graph.xml | 1 -
1 file changed, 1 deletion(-)
diff --git a/modules/purchase_trade/view/position_bi_graph.xml b/modules/purchase_trade/view/position_bi_graph.xml
index 6604715..17796d6 100644
--- a/modules/purchase_trade/view/position_bi_graph.xml
+++ b/modules/purchase_trade/view/position_bi_graph.xml
@@ -1,5 +1,4 @@
-
\ No newline at end of file
From 4affffaf0a58a1e2e6297c1f96a77d093f0d55b5 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 3 Mar 2026 19:34:31 +0100
Subject: [PATCH 361/618] 03.03.26
---
modules/purchase_trade/party.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/purchase_trade/party.py b/modules/purchase_trade/party.py
index a8063e5..b909820 100755
--- a/modules/purchase_trade/party.py
+++ b/modules/purchase_trade/party.py
@@ -92,7 +92,7 @@ class Party(metaclass=PoolMeta):
SlaPlace = Pool().get('party.execution.place')
sp = SlaPlace.search([('pes','=', sla.id),('location','=',location)])
if sp:
- return round(((sp[0].cost / Decimal(100)) * Decimal(2.2046)),4),sp[0].mode,sp[0].currency,sp[0].unit
+ return sp[0].cost,sp[0].mode,sp[0].currency,sp[0].unit
def get_alf(self):
if self.name == 'CARGO CONTROL':
From e984c026b9c309c544090c888c9032d1d773129f Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 3 Mar 2026 19:48:09 +0100
Subject: [PATCH 362/618] 03.03.26
---
modules/purchase_trade/view/position_bi_graph.xml | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/modules/purchase_trade/view/position_bi_graph.xml b/modules/purchase_trade/view/position_bi_graph.xml
index 17796d6..55e3414 100644
--- a/modules/purchase_trade/view/position_bi_graph.xml
+++ b/modules/purchase_trade/view/position_bi_graph.xml
@@ -1,4 +1,5 @@
-
+
+
\ No newline at end of file
From 4abd9b7e858c62062aa46211e7e34c8772973afd Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 3 Mar 2026 19:49:15 +0100
Subject: [PATCH 363/618] 03.03.26
---
modules/purchase_trade/view/position_bi_graph.xml | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/modules/purchase_trade/view/position_bi_graph.xml b/modules/purchase_trade/view/position_bi_graph.xml
index 55e3414..17796d6 100644
--- a/modules/purchase_trade/view/position_bi_graph.xml
+++ b/modules/purchase_trade/view/position_bi_graph.xml
@@ -1,5 +1,4 @@
-
-
+
\ No newline at end of file
From 7e726010b8b3da005982b6afd8f6eae9f979b37c Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 3 Mar 2026 20:10:02 +0100
Subject: [PATCH 364/618] 03.03.26
---
modules/purchase_trade/stock.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/modules/purchase_trade/stock.py b/modules/purchase_trade/stock.py
index a01c771..85f627d 100755
--- a/modules/purchase_trade/stock.py
+++ b/modules/purchase_trade/stock.py
@@ -803,8 +803,8 @@ class ShipmentIn(metaclass=PoolMeta):
"FeeTotalCost": float(fee.amount),
"FeeUnitPrice": float(fee.price),
"ContractNumbers": sh.number,
- "OrderQuantityGW": float(fee.quantity) if fee.quantity else float(1),
- "NumberOfPackingBales": 1
+ "OrderQuantityGW": float(sh.get_quantity()) if sh.get_quantity() else float(1),
+ "NumberOfPackingBales": int(fee.quantity) if fee.quantity else int(1)
}
logger.info("PAYLOAD:%s",so_payload)
From a0c1408f8efba4b0912cea26e801938c60e9a1b8 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Wed, 4 Mar 2026 16:18:42 +0100
Subject: [PATCH 365/618] 04.03.26
---
modules/purchase_trade/view/position_bi_graph.xml | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/modules/purchase_trade/view/position_bi_graph.xml b/modules/purchase_trade/view/position_bi_graph.xml
index 17796d6..55e3414 100644
--- a/modules/purchase_trade/view/position_bi_graph.xml
+++ b/modules/purchase_trade/view/position_bi_graph.xml
@@ -1,4 +1,5 @@
-
+
+
\ No newline at end of file
From 8eba77b26cf3f20717c5fab2105ef403c6c9fc6e Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Wed, 4 Mar 2026 16:19:40 +0100
Subject: [PATCH 366/618] 04.03.26
---
modules/purchase_trade/view/position_bi_graph.xml | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/modules/purchase_trade/view/position_bi_graph.xml b/modules/purchase_trade/view/position_bi_graph.xml
index 55e3414..17796d6 100644
--- a/modules/purchase_trade/view/position_bi_graph.xml
+++ b/modules/purchase_trade/view/position_bi_graph.xml
@@ -1,5 +1,4 @@
-
-
+
\ No newline at end of file
From 3226f55a7d1ceeed3efa964de450849ef44ff122 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Wed, 4 Mar 2026 16:34:25 +0100
Subject: [PATCH 367/618] 04.03.26
---
modules/sale/sale.py | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/modules/sale/sale.py b/modules/sale/sale.py
index 51ed9f7..e18af02 100755
--- a/modules/sale/sale.py
+++ b/modules/sale/sale.py
@@ -2314,7 +2314,21 @@ class SaleReport(CompanyReport):
context['today'] = Date.today()
return context
+ @classmethod
+ def get_template(cls):
+ Company = Pool().get('company.company')
+ company_id = Transaction().context.get('company')
+ if not company_id:
+ return super().get_template()
+
+ company = Company(company_id)
+
+ if company.party.name == 'MELYA':
+ return 'sale/sale_melya.fodt'
+
+ return super().get_template()
+
class OpenCustomer(Wizard):
'Open Customers'
__name__ = 'sale.open_customer'
From 8a4d730c5a6fa06fba0d727f614c18ceaea61931 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Wed, 4 Mar 2026 16:35:29 +0100
Subject: [PATCH 368/618] 04.03.26
---
modules/sale/sale_melya.fodt | 1570 ++++++++++++++++++++++++++++++++++
1 file changed, 1570 insertions(+)
create mode 100644 modules/sale/sale_melya.fodt
diff --git a/modules/sale/sale_melya.fodt b/modules/sale/sale_melya.fodt
new file mode 100644
index 0000000..b347938
--- /dev/null
+++ b/modules/sale/sale_melya.fodt
@@ -0,0 +1,1570 @@
+
+
+
+ LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 2026-03-04T15:52:51.365000000 PT36M25S 3
+
+
+ 0
+ 0
+ 43623
+ 21098
+ true
+ false
+
+
+ view2
+ 15198
+ 12612
+ 0
+ 0
+ 43621
+ 21096
+ 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
+ true
+ false
+ true
+ false
+ false
+ true
+ true
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ 1876130
+ 1822556
+ false
+ false
+ true
+ false
+ false
+ false
+ true
+ true
+ false
+ true
+ true
+ true
+ false
+ false
+ false
+ false
+ true
+ false
+ true
+ false
+ false
+ false
+ false
+ false
+ false
+ 0
+ true
+ false
+ true
+ false
+ true
+ 0
+ true
+ false
+ true
+ true
+ true
+ true
+ false
+ false
+ false
+ false
+ false
+ true
+
+ false
+ true
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <for each="sale in records">
+
+ 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
+ AAAASUVORK5CYII=
+
+
+ PROFORMA INVOICE
+ Proforma Nr: Date:
+ <sale.full_number> <format_date(sale.sale_date, sale.party.lang)>
+
+
+ Buyer:
+ <sale.party.rec_name>
+ <for each="line in sale.report_address.splitlines()">
+ <line>
+ </for>
+
+
+
+
+
+
+
+
+
+
+
+ Quantity
+
+
+ <sum(line.quantity for line in sale.lines)> <sale.lines[0].unit.rec_name.upper() if sale.lines and sale.lines[0].unit else ''>
+
+
+ SHIPMENTSCHEDULE:
+ TOTAL QUANTITY:
+
+
+ Goods Description
+
+
+ <sale.lines[0].product.name if sale.lines and sale.lines[0].product else ''>
+
+
+
+ <sale.report_shipment>
+
+ <sum(line.quantity for line in sale.lines)>
+
+
+
+ Unit Price
+
+
+ <format_currency(sale.lines[0].unit_price, sale.party.lang, sale.currency) if sale.lines else ''>
+
+
+ TOTAL EUR
+
+
+ Amount
+
+
+ <format_currency(sum(line.quantity * line.unit_price for line in sale.lines), sale.party.lang, sale.currency)>
+
+
+
+
+
+ <format_currency(sum(line.quantity * line.unit_price for line in sale.lines), sale.party.lang, sale.currency)>
+
+
+
+
+
+
+ TOLERANCE: +/- 5 %
+
+ ORIGIN: SPAIN
+
+ TRANSPORTATION BY: VESSEL
+
+ DELIVERY TERMS:<sale.report_delivery>
+
+ PAYMENT TERMS:<sale.payment_term.rec_name if sale.payment_term else '100% CASH AGAINST DOCUMENTS'>
+
+
+
+ DELIVERY IS SUBJECT TO THE DELIVERY BY OUR SUPPLIER.
+
+
+ Signed by :
+ (The Seller)
+ MELYA SA 13 RUE ROBERT CEARD CH-1204 GENEVA SWITZERLAND
+
+
+ </for>
+
+
+
\ No newline at end of file
From 94595346b74b4817d96acfe7143d8b12a643f770 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Wed, 4 Mar 2026 16:54:32 +0100
Subject: [PATCH 369/618] 04.03.26
---
modules/sale/sale.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/modules/sale/sale.py b/modules/sale/sale.py
index e18af02..0abeab0 100755
--- a/modules/sale/sale.py
+++ b/modules/sale/sale.py
@@ -2317,13 +2317,13 @@ class SaleReport(CompanyReport):
@classmethod
def get_template(cls):
Company = Pool().get('company.company')
-
company_id = Transaction().context.get('company')
+ logger.info("GET_TEMPLATE:%s",company_id)
if not company_id:
return super().get_template()
company = Company(company_id)
-
+ logger.info("GET_TEMPLATE_NAME:%s",company.party.name)
if company.party.name == 'MELYA':
return 'sale/sale_melya.fodt'
From 024f8f78bd2c9240aa6aa6b9768a3373e65ba1d8 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Wed, 4 Mar 2026 17:09:32 +0100
Subject: [PATCH 370/618] 04.03.26
---
modules/sale/sale.py | 18 ++++++++----------
1 file changed, 8 insertions(+), 10 deletions(-)
diff --git a/modules/sale/sale.py b/modules/sale/sale.py
index 0abeab0..fc8da93 100755
--- a/modules/sale/sale.py
+++ b/modules/sale/sale.py
@@ -2315,19 +2315,17 @@ class SaleReport(CompanyReport):
return context
@classmethod
- def get_template(cls):
+ def get_report(cls):
Company = Pool().get('company.company')
company_id = Transaction().context.get('company')
- logger.info("GET_TEMPLATE:%s",company_id)
- if not company_id:
- return super().get_template()
+ logger.info("GET_REPORT:%s",company_id)
+ if company_id:
+ company = Company(company_id)
+ logger.info("GET_REPORT_NAME:%s",company.party.name)
+ if company.party.name == 'MELYA':
+ return 'sale/sale_melya.fodt'
- company = Company(company_id)
- logger.info("GET_TEMPLATE_NAME:%s",company.party.name)
- if company.party.name == 'MELYA':
- return 'sale/sale_melya.fodt'
-
- return super().get_template()
+ return super().get_report()
class OpenCustomer(Wizard):
'Open Customers'
From c816ecdbb73fdb21ff6d3ea0d6561c7ae7b10f4a Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Wed, 4 Mar 2026 17:23:14 +0100
Subject: [PATCH 371/618] 04.03.26
---
modules/sale/sale.py | 12 +++++++-----
1 file changed, 7 insertions(+), 5 deletions(-)
diff --git a/modules/sale/sale.py b/modules/sale/sale.py
index fc8da93..e060c29 100755
--- a/modules/sale/sale.py
+++ b/modules/sale/sale.py
@@ -2315,17 +2315,19 @@ class SaleReport(CompanyReport):
return context
@classmethod
- def get_report(cls):
+ def _get_action(cls, data):
+ action = super()._get_action(data)
+
Company = Pool().get('company.company')
company_id = Transaction().context.get('company')
- logger.info("GET_REPORT:%s",company_id)
+ logger.info("GET_ACTION:%s",company_id)
if company_id:
company = Company(company_id)
- logger.info("GET_REPORT_NAME:%s",company.party.name)
+ logger.info("GET_ACTION_NAME:%s",company.party.name)
if company.party.name == 'MELYA':
- return 'sale/sale_melya.fodt'
+ action.report = 'sale/sale_melya.fodt'
- return super().get_report()
+ return action
class OpenCustomer(Wizard):
'Open Customers'
From bab6c14499ec2a59dee3e162f6d1546be1bf14c7 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Wed, 4 Mar 2026 17:32:49 +0100
Subject: [PATCH 372/618] 04.03.26
---
modules/sale/sale.py | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/modules/sale/sale.py b/modules/sale/sale.py
index e060c29..cdbbf18 100755
--- a/modules/sale/sale.py
+++ b/modules/sale/sale.py
@@ -2303,6 +2303,23 @@ class SaleReport(CompanyReport):
with Transaction().set_context(address_with_party=True):
return super(SaleReport, cls).execute(ids, data)
+ @classmethod
+ def execute(cls, ids, data):
+ pool = Pool()
+ Company = pool.get('company.company')
+
+ company_id = Transaction().context.get('company')
+ if company_id:
+ company = Company(company_id)
+ if company.party.name == 'MELYA':
+ data = dict(data)
+ data['action_id'] = None
+
+ with Transaction().set_context(
+ address_with_party=True,
+ report_company=company_id):
+ return super().execute(ids, data)
+
@classmethod
def get_context(cls, records, header, data):
pool = Pool()
From 7909b10636290b071e68671edddaa240956163ad Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Wed, 4 Mar 2026 17:43:53 +0100
Subject: [PATCH 373/618] 04.03.26
---
modules/sale/sale.py | 5 -----
1 file changed, 5 deletions(-)
diff --git a/modules/sale/sale.py b/modules/sale/sale.py
index cdbbf18..ef6f97f 100755
--- a/modules/sale/sale.py
+++ b/modules/sale/sale.py
@@ -2298,11 +2298,6 @@ class SaleLineRecreatedMove(ModelSQL):
class SaleReport(CompanyReport):
__name__ = 'sale.sale'
- @classmethod
- def execute(cls, ids, data):
- with Transaction().set_context(address_with_party=True):
- return super(SaleReport, cls).execute(ids, data)
-
@classmethod
def execute(cls, ids, data):
pool = Pool()
From 7ae145b6c124ccb03fb069cf963c36e4a2d2db09 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Wed, 4 Mar 2026 17:56:58 +0100
Subject: [PATCH 374/618] 04.03.26
---
modules/sale/sale.py | 36 ++++++++++++------------------------
1 file changed, 12 insertions(+), 24 deletions(-)
diff --git a/modules/sale/sale.py b/modules/sale/sale.py
index ef6f97f..68f7267 100755
--- a/modules/sale/sale.py
+++ b/modules/sale/sale.py
@@ -2300,21 +2300,24 @@ class SaleReport(CompanyReport):
@classmethod
def execute(cls, ids, data):
- pool = Pool()
- Company = pool.get('company.company')
+ with Transaction().set_context(address_with_party=True):
+ return super().execute(ids, data)
+ @classmethod
+ def _execute(cls, records, header, data, action):
company_id = Transaction().context.get('company')
+ logger.info("_EXECUTE:%s",company_id)
if company_id:
+ pool = Pool()
+ Company = pool.get('company.company')
company = Company(company_id)
if company.party.name == 'MELYA':
- data = dict(data)
- data['action_id'] = None
+ # Patch l'objet action en mémoire, pas en DB
+ action.report = 'sale/sale_melya.fodt'
+ action.report_content = None # force rechargement depuis fichier
- with Transaction().set_context(
- address_with_party=True,
- report_company=company_id):
- return super().execute(ids, data)
-
+ return super()._execute(records, header, data, action)
+
@classmethod
def get_context(cls, records, header, data):
pool = Pool()
@@ -2326,21 +2329,6 @@ class SaleReport(CompanyReport):
context['today'] = Date.today()
return context
- @classmethod
- def _get_action(cls, data):
- action = super()._get_action(data)
-
- Company = Pool().get('company.company')
- company_id = Transaction().context.get('company')
- logger.info("GET_ACTION:%s",company_id)
- if company_id:
- company = Company(company_id)
- logger.info("GET_ACTION_NAME:%s",company.party.name)
- if company.party.name == 'MELYA':
- action.report = 'sale/sale_melya.fodt'
-
- return action
-
class OpenCustomer(Wizard):
'Open Customers'
__name__ = 'sale.open_customer'
From 5dfd24b5de95792f0cdffabc24c414420c989bd1 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Wed, 4 Mar 2026 18:05:42 +0100
Subject: [PATCH 375/618] 04.03.26
---
modules/sale/sale.py | 15 ---------------
1 file changed, 15 deletions(-)
diff --git a/modules/sale/sale.py b/modules/sale/sale.py
index 68f7267..5bc874e 100755
--- a/modules/sale/sale.py
+++ b/modules/sale/sale.py
@@ -2303,21 +2303,6 @@ class SaleReport(CompanyReport):
with Transaction().set_context(address_with_party=True):
return super().execute(ids, data)
- @classmethod
- def _execute(cls, records, header, data, action):
- company_id = Transaction().context.get('company')
- logger.info("_EXECUTE:%s",company_id)
- if company_id:
- pool = Pool()
- Company = pool.get('company.company')
- company = Company(company_id)
- if company.party.name == 'MELYA':
- # Patch l'objet action en mémoire, pas en DB
- action.report = 'sale/sale_melya.fodt'
- action.report_content = None # force rechargement depuis fichier
-
- return super()._execute(records, header, data, action)
-
@classmethod
def get_context(cls, records, header, data):
pool = Pool()
From ddc2884f618a26e7952b89de7b38572850854412 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Wed, 4 Mar 2026 18:29:56 +0100
Subject: [PATCH 376/618] 04.03.26
---
modules/sale/sale.py | 1 +
1 file changed, 1 insertion(+)
diff --git a/modules/sale/sale.py b/modules/sale/sale.py
index 5bc874e..5d64968 100755
--- a/modules/sale/sale.py
+++ b/modules/sale/sale.py
@@ -2301,6 +2301,7 @@ class SaleReport(CompanyReport):
@classmethod
def execute(cls, ids, data):
with Transaction().set_context(address_with_party=True):
+ logger.info("EXECUTE:%s",data)
return super().execute(ids, data)
@classmethod
From 3319563b220d27e1bd9f8f09efc39126049d9757 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Wed, 4 Mar 2026 18:52:02 +0100
Subject: [PATCH 377/618] 04.06.26
---
modules/sale/sale.fodt | 6658 +++++++---------------------------
modules/sale/sale__.fodt | 5649 ++++++++++++++++++++++++++++
modules/sale/sale_melya.fodt | 1570 --------
3 files changed, 7001 insertions(+), 6876 deletions(-)
create mode 100644 modules/sale/sale__.fodt
delete mode 100644 modules/sale/sale_melya.fodt
diff --git a/modules/sale/sale.fodt b/modules/sale/sale.fodt
index bac020c..f11b731 100755
--- a/modules/sale/sale.fodt
+++ b/modules/sale/sale.fodt
@@ -1,32 +1,32 @@
- LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 Invoice no willen 2026-02-26T13:52:00Z 2026-02-27T07:17:06.129000000 2025-12-17T14:25:00Z 15 PT47M1S
+ LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 2026-03-04T18:50:16.463000000 PT42M34S 4
- 30639
+ 6350
0
- 24236
- 11721
+ 43623
+ 21098
true
false
view2
- 7422
- 40040
+ 3448
+ 12245
0
- 30639
- 24234
- 42358
+ 6350
+ 43621
+ 27446
0
0
false
- 180
+ 100
false
false
- false
- false
+ true
+ true
false
false
@@ -66,13 +66,13 @@
high-resolution
false
false
- false
+ true
false
true
false
false
true
- false
+ true
false
true
true
@@ -91,11 +91,11 @@
false
false
false
- 2371497
- 1846560
+ 1932527
+ 1822556
false
false
- false
+ true
false
false
false
@@ -104,7 +104,7 @@
false
true
true
- false
+ true
false
false
false
@@ -121,6 +121,7 @@
0
true
false
+ true
false
true
0
@@ -148,32 +149,36 @@
-
-
-
+
+
+
+
+
+
+
+
-
-
+
+
+
-
-
+
+
-
+
-
-
-
-
+
+
-
+
@@ -197,85 +202,29 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
-
+
-
+
+
+
@@ -327,9 +276,9 @@
-
+
-
+
@@ -347,3460 +296,421 @@
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
-
+
-
-
-
-
-
-
-
-
-
-
+
+
+
-
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
-
+
-
-
-
-
-
-
+
+
+
-
+
-
-
-
-
-
-
+
+
+
-
+
-
-
-
-
-
-
-
-
-
-
+
+
+
-
+
-
-
-
-
-
-
+
+
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
+
+
+
-
+
-
-
-
-
-
-
+
+
+
-
+
-
-
-
-
-
-
+
+
+
-
+
-
-
-
-
-
-
+
+
+
-
+
-
-
-
-
-
-
+
+
+
-
+
-
-
-
-
-
-
+
+
+
-
+
-
-
-
-
-
-
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 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
- jYynoML+HewSRSYBDJmVKCW2FMOy/Oy3pLwBXqKDduqYpUKXRwUnJUSP/EOwv1Ol+5umgqfo
- 7+i8mjTiBClJALdMEfWbsTwDlC5drjydLzeKaCReLv61sELJxUOM+lI/lC1EB4uqcGxNk0Np
- xuBSLzIqLnXSytNLr0VvkftMqdn+0DLlqVIeX+WrCceaEg1BHNbvb1TuDWQuqp6ggbhLBJ8r
- +k/h9+mfsStn6Ippgt+xvwNVWFhcSfCQ3IhiCqX78qNKPxylgSq6E7e4+EGhq4qLyA8qr5yn
- ucRACiJTPEoF/iPzltqUH7frMBc/H3T1Sl6DV7+iBPJZpRuWfndKHXiXabi/WOKVEpCyq0WU
- 94oFFAsoFlAsoFhAsYBigf/nFijj8X5AXaY2RMyIvBgtYyqx61ux+vyDOsjkRRla73wRsfTc
- 6VFanZaxenlhKh+2y/K1fPofbrCLZWlZH650d/lS5LvRf77sOiCOoXqVvtrJqb6/sL9nc3ZG
- kji9HInTb1xZpQI7jXgI65W3IeU7VsTvlJfVlZeuMNH/Z6/pB8PC77uEZUutWWl9ft0Ke8hv
- y/XctbT85pUL/12QdLmluCV2ujh/JzMe/V9UNO3vesVO164oZEUr9IfT/7FZdrnmLu1XAmI7
- dchdsdLOF8YFhVVFU+7cZ2RSj0Jm5BuXq/DvGAd+oQqWsGy3krn6Tyz7yf9RVWWI93uByVIH
- 2LnqFXbbBcbJNpF77+87fOXNd62UOKk88Cs7gzhtl08q4mhKl6oM0JA7Z38ZZMnYyi7LL1oa
- 8vItqAq7dnIh+iB7BnGdZDEGkbGoNAAIqNPVhEcAWhZnyN5h4hhRxtK43rml/rj7iU/Fkbt0
- xfIJ/0N/K7vSUC1/N2zlK9DVhUCpbIeSaOv/UCTKkcRrx9MnV1hA5FXBQ7iKyEXnfj3CJsRu
- iM9FrEplFxDkDWcQdvrtoA/7Ge3KbiAIiFIDi//pr5x2R/wY/VHF/50x/4c6k53LNaJClPuV
- GCL9bVt6v1Me3MorK9TG/9Tdle8UCygWUCygWECxgGIBxQKKBRQLKBZQLKBYQLGAYoE/uQX+
- R57yT152pXiKBRQLKBZQLKBYQLGAYgHFAooFFAsoFlAsoFhAscB/vQX+D/7u9z9ziytTAAAA
- AElFTkSuQmCC
-
-
-
-
-
-
-
- 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
-
-
-
-
-
@@ -3811,1839 +721,975 @@
- <for each="sale in records">
-
-
-
-
-
- <for each="line in sale.report_address.splitlines()">
- <line>
- </for>
-
+ <for each="sale in records">
+
+ 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
+ AAAASUVORK5CYII=
+
+
+ PROFORMA INVOICE
+ Proforma Nr: Date:
+ <sale.full_number> <format_date(sale.sale_date, sale.party.lang)>
+
+
+ Buyer:
+ <sale.party.rec_name>
+ <for each="line in sale.report_address.splitlines()">
+ <line>
+ </for>
+
+
+
+
+
+
+
+
+
+
+
+ Quantity
+
+
+ <lines[0].quantity> <sale.lines[0].unit.rec_name.upper() if sale.lines and sale.lines[0].unit else ''>
+
+
+ SHIPMENTSCHEDULE:
+ TOTAL QUANTITY:
+
+
+ Goods Description
+
+
+ <sale.lines[0].product.name if sale.lines and sale.lines[0].product else ''>
+
+
+
+ <sale.report_shipment>
+
+ <lines[0].quantity>
+
+
+
+ Unit Price
+
+
+ <format_currency(sale.lines[0].unit_price, sale.party.lang, sale.currency) if sale.lines else ''>
+
+
+ TOTAL EUR
+
+
+ Amount
+
+
+ <format_currency(lines[0].amount, sale.party.lang, sale.currency)>
+
+
+
+
+
+ <format_currency(lines[0].amount, sale.party.lang, sale.currency)>
-
-
-
-
-
- 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.name if sale.lines and sale.lines[0].product else ''> CROP <sale.crop.name>
-
-
-
-
- Quality
-
-
-
- <sale.report_shipment>
-
-
-
-
- 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> )
-
-
-
-
-
-
-
-
-
-
- Price
-
-
- <format_currency(sale.lines[0].unit_price, sale.party.lang, sale.currency) if sale.lines else ''> ( <sale.report_price> )
-
-
-
-
-
-
-
-
-
-
-
- Delivery
-
-
-
- <sale.report_delivery>
-
-
-
-
-
-
-
-
-
-
-
-
- Terms
-
-
-
- <sale.report_terms>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 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
-
-
- - ALL DISPUTES RELATING TO THIS CONTRACT WILL BE RESOLVED THROUGH ARBITRATION IN ACCORDANCE WITH THE BYLAWS OF THE INTERNATIONAL COTTON ASSOCIATION, LIMITED. THIS AGREEMENT INCORPORATES THE BYLAWS WHICH SET OUT THE ASSOCIATION’S ARBITRATION PROCEDURE.
- - EITHER PARTY MUST NOT TAKE ANY LEGAL ACTION OVER A DISPUTE SUITABLE FOR ARBITRATION, OTHER THAN TO OBTAIN SECURITY FOR ANY CLAIM, UNLESS THEY HAVE FIRST OBTAINED AN ARBITRATION AWARD FROM THE INTERNATIONAL COTTON ASSOCIATION, LIMITED AND EXHAUSTED ALL MEANS OF APPEAL ALLOWED BY THE ASSOCIATION’S BYLAWS.
-
-
-
-
-
-
-
-
-
-
- THE SELLERS
-
-
-
- THE BUYERS
-
-
-
-
- ICT TRADING SA
-
- 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
-
-
-
-
-
- <sale.party.rec_name>
-
-
-
- PC/AU/EL
- </for>
+
+
+
+ TOLERANCE: +/- 5 %
+
+ ORIGIN: SPAIN
+
+ TRANSPORTATION BY: VESSEL
+
+ DELIVERY TERMS:<sale.report_delivery>
+
+ PAYMENT TERMS:<sale.payment_term.rec_name if sale.payment_term else '100% CASH AGAINST DOCUMENTS'>
+
+
+
+ DELIVERY IS SUBJECT TO THE DELIVERY BY OUR SUPPLIER.
+
+
+ Signed by :
+ (The Seller)
+ MELYA SA 13 RUE ROBERT CEARD CH-1204 GENEVA SWITZERLAND
+
+ </for>
\ No newline at end of file
diff --git a/modules/sale/sale__.fodt b/modules/sale/sale__.fodt
new file mode 100644
index 0000000..bac020c
--- /dev/null
+++ b/modules/sale/sale__.fodt
@@ -0,0 +1,5649 @@
+
+
+
+ LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 Invoice no willen 2026-02-26T13:52:00Z 2026-02-27T07:17:06.129000000 2025-12-17T14:25:00Z 15 PT47M1S
+
+
+ 30639
+ 0
+ 24236
+ 11721
+ true
+ false
+
+
+ view2
+ 7422
+ 40040
+ 0
+ 30639
+ 24234
+ 42358
+ 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
+ 2371497
+ 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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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
+ jYynoML+HewSRSYBDJmVKCW2FMOy/Oy3pLwBXqKDduqYpUKXRwUnJUSP/EOwv1Ol+5umgqfo
+ 7+i8mjTiBClJALdMEfWbsTwDlC5drjydLzeKaCReLv61sELJxUOM+lI/lC1EB4uqcGxNk0Np
+ xuBSLzIqLnXSytNLr0VvkftMqdn+0DLlqVIeX+WrCceaEg1BHNbvb1TuDWQuqp6ggbhLBJ8r
+ +k/h9+mfsStn6Ippgt+xvwNVWFhcSfCQ3IhiCqX78qNKPxylgSq6E7e4+EGhq4qLyA8qr5yn
+ ucRACiJTPEoF/iPzltqUH7frMBc/H3T1Sl6DV7+iBPJZpRuWfndKHXiXabi/WOKVEpCyq0WU
+ 94oFFAsoFlAsoFhAsYBigf/nFijj8X5AXaY2RMyIvBgtYyqx61ux+vyDOsjkRRla73wRsfTc
+ 6VFanZaxenlhKh+2y/K1fPofbrCLZWlZH650d/lS5LvRf77sOiCOoXqVvtrJqb6/sL9nc3ZG
+ kji9HInTb1xZpQI7jXgI65W3IeU7VsTvlJfVlZeuMNH/Z6/pB8PC77uEZUutWWl9ft0Ke8hv
+ y/XctbT85pUL/12QdLmluCV2ujh/JzMe/V9UNO3vesVO164oZEUr9IfT/7FZdrnmLu1XAmI7
+ dchdsdLOF8YFhVVFU+7cZ2RSj0Jm5BuXq/DvGAd+oQqWsGy3krn6Tyz7yf9RVWWI93uByVIH
+ 2LnqFXbbBcbJNpF77+87fOXNd62UOKk88Cs7gzhtl08q4mhKl6oM0JA7Z38ZZMnYyi7LL1oa
+ 8vItqAq7dnIh+iB7BnGdZDEGkbGoNAAIqNPVhEcAWhZnyN5h4hhRxtK43rml/rj7iU/Fkbt0
+ xfIJ/0N/K7vSUC1/N2zlK9DVhUCpbIeSaOv/UCTKkcRrx9MnV1hA5FXBQ7iKyEXnfj3CJsRu
+ iM9FrEplFxDkDWcQdvrtoA/7Ge3KbiAIiFIDi//pr5x2R/wY/VHF/50x/4c6k53LNaJClPuV
+ GCL9bVt6v1Me3MorK9TG/9Tdle8UCygWUCygWECxgGIBxQKKBRQLKBZQLKBYQLGAYoE/uQX+
+ R57yT152pXiKBRQLKBZQLKBYQLGAYgHFAooFFAsoFlAsoFhAscB/vQX+D/7u9z9ziytTAAAA
+ AElFTkSuQmCC
+
+
+
+
+
+
+
+ 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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <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.name if sale.lines and sale.lines[0].product else ''> CROP <sale.crop.name>
+
+
+
+
+ Quality
+
+
+
+ <sale.report_shipment>
+
+
+
+
+ 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> )
+
+
+
+
+
+
+
+
+
+
+ Price
+
+
+ <format_currency(sale.lines[0].unit_price, sale.party.lang, sale.currency) if sale.lines else ''> ( <sale.report_price> )
+
+
+
+
+
+
+
+
+
+
+
+ Delivery
+
+
+
+ <sale.report_delivery>
+
+
+
+
+
+
+
+
+
+
+
+
+ Terms
+
+
+
+ <sale.report_terms>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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
+
+
+ - ALL DISPUTES RELATING TO THIS CONTRACT WILL BE RESOLVED THROUGH ARBITRATION IN ACCORDANCE WITH THE BYLAWS OF THE INTERNATIONAL COTTON ASSOCIATION, LIMITED. THIS AGREEMENT INCORPORATES THE BYLAWS WHICH SET OUT THE ASSOCIATION’S ARBITRATION PROCEDURE.
+ - EITHER PARTY MUST NOT TAKE ANY LEGAL ACTION OVER A DISPUTE SUITABLE FOR ARBITRATION, OTHER THAN TO OBTAIN SECURITY FOR ANY CLAIM, UNLESS THEY HAVE FIRST OBTAINED AN ARBITRATION AWARD FROM THE INTERNATIONAL COTTON ASSOCIATION, LIMITED AND EXHAUSTED ALL MEANS OF APPEAL ALLOWED BY THE ASSOCIATION’S BYLAWS.
+
+
+
+
+
+
+
+
+
+
+ THE SELLERS
+
+
+
+ THE BUYERS
+
+
+
+
+ ICT TRADING SA
+
+ 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
+
+
+
+
+
+ <sale.party.rec_name>
+
+
+
+ PC/AU/EL
+ </for>
+
+
+
\ No newline at end of file
diff --git a/modules/sale/sale_melya.fodt b/modules/sale/sale_melya.fodt
deleted file mode 100644
index b347938..0000000
--- a/modules/sale/sale_melya.fodt
+++ /dev/null
@@ -1,1570 +0,0 @@
-
-
-
- LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 2026-03-04T15:52:51.365000000 PT36M25S 3
-
-
- 0
- 0
- 43623
- 21098
- true
- false
-
-
- view2
- 15198
- 12612
- 0
- 0
- 43621
- 21096
- 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
- true
- false
- true
- false
- false
- true
- true
- false
- false
- false
- false
- false
- false
- false
- false
- false
- 1876130
- 1822556
- false
- false
- true
- false
- false
- false
- true
- true
- false
- true
- true
- true
- false
- false
- false
- false
- true
- false
- true
- false
- false
- false
- false
- false
- false
- 0
- true
- false
- true
- false
- true
- 0
- true
- false
- true
- true
- true
- true
- false
- false
- false
- false
- false
- true
-
- false
- true
- false
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- <for each="sale in records">
-
- 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
- AAAASUVORK5CYII=
-
-
- PROFORMA INVOICE
- Proforma Nr: Date:
- <sale.full_number> <format_date(sale.sale_date, sale.party.lang)>
-
-
- Buyer:
- <sale.party.rec_name>
- <for each="line in sale.report_address.splitlines()">
- <line>
- </for>
-
-
-
-
-
-
-
-
-
-
-
- Quantity
-
-
- <sum(line.quantity for line in sale.lines)> <sale.lines[0].unit.rec_name.upper() if sale.lines and sale.lines[0].unit else ''>
-
-
- SHIPMENTSCHEDULE:
- TOTAL QUANTITY:
-
-
- Goods Description
-
-
- <sale.lines[0].product.name if sale.lines and sale.lines[0].product else ''>
-
-
-
- <sale.report_shipment>
-
- <sum(line.quantity for line in sale.lines)>
-
-
-
- Unit Price
-
-
- <format_currency(sale.lines[0].unit_price, sale.party.lang, sale.currency) if sale.lines else ''>
-
-
- TOTAL EUR
-
-
- Amount
-
-
- <format_currency(sum(line.quantity * line.unit_price for line in sale.lines), sale.party.lang, sale.currency)>
-
-
-
-
-
- <format_currency(sum(line.quantity * line.unit_price for line in sale.lines), sale.party.lang, sale.currency)>
-
-
-
-
-
-
- TOLERANCE: +/- 5 %
-
- ORIGIN: SPAIN
-
- TRANSPORTATION BY: VESSEL
-
- DELIVERY TERMS:<sale.report_delivery>
-
- PAYMENT TERMS:<sale.payment_term.rec_name if sale.payment_term else '100% CASH AGAINST DOCUMENTS'>
-
-
-
- DELIVERY IS SUBJECT TO THE DELIVERY BY OUR SUPPLIER.
-
-
- Signed by :
- (The Seller)
- MELYA SA 13 RUE ROBERT CEARD CH-1204 GENEVA SWITZERLAND
-
-
- </for>
-
-
-
\ No newline at end of file
From 5b059b70e675730fb794a24cefe00cbb94c423c0 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Wed, 4 Mar 2026 18:59:39 +0100
Subject: [PATCH 378/618] 04.03.26
---
modules/sale/sale.fodt | 262 ++++++++++++++++++++---------------------
1 file changed, 131 insertions(+), 131 deletions(-)
diff --git a/modules/sale/sale.fodt b/modules/sale/sale.fodt
index f11b731..3c7c8b5 100755
--- a/modules/sale/sale.fodt
+++ b/modules/sale/sale.fodt
@@ -1,10 +1,10 @@
- LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 2026-03-04T18:50:16.463000000 PT42M34S 4
+ LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 2026-03-04T18:59:20.319000000 PT44M6S 5
- 6350
+ 3951
0
43623
21098
@@ -13,12 +13,12 @@
view2
- 3448
+ 3080
12245
0
- 6350
+ 3951
43621
- 27446
+ 25047
0
0
false
@@ -91,7 +91,7 @@
false
false
false
- 1932527
+ 2015637
1822556
false
false
@@ -168,7 +168,7 @@
-
+
@@ -218,7 +218,7 @@
-
+
@@ -344,123 +344,127 @@
-
-
-
-
-
+
+
-
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
-
-
-
-
-
-
@@ -469,117 +473,113 @@
-
+
+
+
+
+
+
+
+
+
-
+
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
-
-
+
-
+
+
-
-
-
-
-
-
+
+
+
+
+
+
+
@@ -1613,8 +1613,8 @@
</for>
-
-
+
+
@@ -1622,48 +1622,48 @@
- Quantity
-
-
- <lines[0].quantity> <sale.lines[0].unit.rec_name.upper() if sale.lines and sale.lines[0].unit else ''>
-
-
- SHIPMENTSCHEDULE:
- TOTAL QUANTITY:
+ Quantity
+
+
+ <sale.lines[0].quantity> <sale.lines[0].unit.rec_name.upper() if sale.lines and sale.lines[0].unit else ''>
+
+
+ SHIPMENTSCHEDULE:
+ TOTAL QUANTITY:
- Goods Description
-
-
- <sale.lines[0].product.name if sale.lines and sale.lines[0].product else ''>
-
-
-
- <sale.report_shipment>
-
- <lines[0].quantity>
-
-
-
- Unit Price
-
-
- <format_currency(sale.lines[0].unit_price, sale.party.lang, sale.currency) if sale.lines else ''>
-
+ Goods Description
+
+
+ <sale.lines[0].product.name if sale.lines and sale.lines[0].product else ''>
- TOTAL EUR
+
+
+ <sale.report_shipment>
+
+ <sale.lines[0].quantity>
+
+
+
+ Unit Price
+
+
+ <format_currency(sale.lines[0].unit_price, sale.party.lang, sale.currency) if sale.lines else ''>
+
+
+ TOTAL EUR
Amount
-
- <format_currency(lines[0].amount, sale.party.lang, sale.currency)>
-
-
-
-
-
- <format_currency(lines[0].amount, sale.party.lang, sale.currency)>
+
+ <format_currency(sale.lines[0].amount, sale.party.lang, sale.currency)>
+
+
+
+
+
+ <format_currency(sale.lines[0].amount, sale.party.lang, sale.currency)>
@@ -1688,7 +1688,7 @@
Signed by :
(The Seller)
MELYA SA 13 RUE ROBERT CEARD CH-1204 GENEVA SWITZERLAND
-
+
</for>
From 0841fb460962226511666d2fa241391a80ad45e7 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Thu, 5 Mar 2026 10:13:43 +0100
Subject: [PATCH 379/618] 05.03.26
---
modules/sale/sale.fodt | 95 ++++++++++++++++++++++--------------------
1 file changed, 49 insertions(+), 46 deletions(-)
diff --git a/modules/sale/sale.fodt b/modules/sale/sale.fodt
index 3c7c8b5..18505cf 100755
--- a/modules/sale/sale.fodt
+++ b/modules/sale/sale.fodt
@@ -1,28 +1,28 @@
- LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 2026-03-04T18:59:20.319000000 PT44M6S 5
+ LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 2026-03-05T10:12:30.526000000 PT1H2M14S 6
- 3951
+ 5408
0
- 43623
- 21098
+ 36352
+ 18332
true
false
view2
- 3080
- 12245
+ 13894
+ 19562
0
- 3951
- 43621
- 25047
+ 5408
+ 36350
+ 23738
0
0
false
- 100
+ 120
false
false
true
@@ -91,7 +91,7 @@
false
false
false
- 2015637
+ 2026588
1822556
false
false
@@ -168,7 +168,7 @@
-
+
@@ -306,10 +306,10 @@
-
+
-
+
@@ -473,114 +473,117 @@
-
-
-
-
-
-
-
-
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
@@ -713,7 +716,7 @@
-
+
@@ -1639,7 +1642,7 @@
- <sale.report_shipment>
+ <sale.lines[0].del_period.month_name if sale.lines and sale.lines[0].del_period else ''>
<sale.lines[0].quantity>
@@ -1670,15 +1673,15 @@
- TOLERANCE: +/- 5 %
+ TOLERANCE: +/- <sale.tol_min> %
- ORIGIN: SPAIN
+ ORIGIN:<sale.comment>
TRANSPORTATION BY: VESSEL
- DELIVERY TERMS:<sale.report_delivery>
+ DELIVERY TERMS:<sale.incoterm.name if sale.incoterm else ''>
- PAYMENT TERMS:<sale.payment_term.rec_name if sale.payment_term else '100% CASH AGAINST DOCUMENTS'>
+ PAYMENT TERMS:<sale.report_terms>
@@ -1687,7 +1690,7 @@
Signed by :
(The Seller)
- MELYA SA 13 RUE ROBERT CEARD CH-1204 GENEVA SWITZERLAND
+ MELYA SA 13 RUE ROBERT CEARD CH-1204 GENEVA SWITZERLAND
</for>
From 8d9dd6c275bf49620a66150f05ef5904fd709965 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Thu, 5 Mar 2026 10:21:37 +0100
Subject: [PATCH 380/618] 05.03.26
---
modules/sale/sale.fodt | 449 +++++++++++++++++++++--------------------
1 file changed, 228 insertions(+), 221 deletions(-)
diff --git a/modules/sale/sale.fodt b/modules/sale/sale.fodt
index 18505cf..d46b22c 100755
--- a/modules/sale/sale.fodt
+++ b/modules/sale/sale.fodt
@@ -1,10 +1,10 @@
- LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 2026-03-05T10:12:30.526000000 PT1H2M14S 6
+ LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 2026-03-05T10:21:06.487000000 PT1H4M1S 8
- 5408
+ 8237
0
36352
18332
@@ -13,12 +13,12 @@
view2
- 13894
- 19562
+ 21705
+ 22968
0
- 5408
+ 8237
36350
- 23738
+ 26568
0
0
false
@@ -91,7 +91,7 @@
false
false
false
- 2026588
+ 2103895
1822556
false
false
@@ -168,7 +168,7 @@
-
+
@@ -344,245 +344,249 @@
-
+
+
+
+
-
+
-
+
-
+
-
+
-
+
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
+
-
-
-
-
-
-
-
+
+
-
+
+
+
+
+
+
+
-
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
@@ -621,81 +625,84 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
+
+
+
@@ -716,7 +723,7 @@
-
+
@@ -1606,18 +1613,18 @@
PROFORMA INVOICE
Proforma Nr: Date:
- <sale.full_number> <format_date(sale.sale_date, sale.party.lang)>
+ <sale.full_number> <format_date(sale.sale_date, sale.party.lang)>
Buyer:
- <sale.party.rec_name>
+ <sale.party.rec_name>
<for each="line in sale.report_address.splitlines()">
<line>
</for>
-
-
+
+
@@ -1625,63 +1632,63 @@
- Quantity
-
-
- <sale.lines[0].quantity> <sale.lines[0].unit.rec_name.upper() if sale.lines and sale.lines[0].unit else ''>
-
-
- SHIPMENTSCHEDULE:
- TOTAL QUANTITY:
+ Quantity
+
+
+ <sale.lines[0].quantity> <sale.lines[0].unit.rec_name.upper() if sale.lines and sale.lines[0].unit else ''>
+
+
+ SHIPMENTSCHEDULE:
+ TOTAL QUANTITY:
- Goods Description
-
-
- <sale.lines[0].product.name if sale.lines and sale.lines[0].product else ''>
-
-
-
- <sale.lines[0].del_period.month_name if sale.lines and sale.lines[0].del_period else ''>
-
- <sale.lines[0].quantity>
-
+ Goods Description
+
+
+ <sale.lines[0].product.name if sale.lines and sale.lines[0].product else ''>
+
+
+
+ <sale.lines[0].del_period.month_name if sale.lines and sale.lines[0].del_period else ''>
+
+ <sale.lines[0].quantity> <sale.lines[0].unit.rec_name.upper() if sale.lines and sale.lines[0].unit else ''>
+
- Unit Price
-
-
- <format_currency(sale.lines[0].unit_price, sale.party.lang, sale.currency) if sale.lines else ''>
-
-
- TOTAL EUR
+ Unit Price
+
+
+ <format_currency(sale.lines[0].unit_price, sale.party.lang, sale.currency) if sale.lines else ''>
+
+
+ TOTAL EUR
- Amount
-
-
- <format_currency(sale.lines[0].amount, sale.party.lang, sale.currency)>
-
-
-
-
-
- <format_currency(sale.lines[0].amount, sale.party.lang, sale.currency)>
+ Amount
+
+
+ <format_currency(sale.lines[0].amount, sale.party.lang, sale.currency)>
+
+
+
+
+
+ <format_currency(sale.lines[0].amount, sale.party.lang, sale.currency)>
- TOLERANCE: +/- <sale.tol_min> %
+ TOLERANCE: +/- <sale.tol_min> %
- ORIGIN:<sale.comment>
+ ORIGIN:<sale.comment>
TRANSPORTATION BY: VESSEL
DELIVERY TERMS:<sale.incoterm.name if sale.incoterm else ''>
- PAYMENT TERMS:<sale.report_terms>
+ PAYMENT TERMS:<sale.payment_term.name if sale.payment_term else ''> <sale.payment_term.description if sale.payment_term else ''>
@@ -1690,8 +1697,8 @@
Signed by :
(The Seller)
- MELYA SA 13 RUE ROBERT CEARD CH-1204 GENEVA SWITZERLAND
-
+ MELYA SA 13 RUE ROBERT CEARD CH-1204 GENEVA SWITZERLAND
+
</for>
From ee9866c28eeaae413f5e0ca9bfb0befa07b8b87d Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Thu, 5 Mar 2026 10:37:46 +0100
Subject: [PATCH 381/618] 05.03.26
---
modules/sale/sale.fodt | 453 +++++++++++++++++++++--------------------
1 file changed, 231 insertions(+), 222 deletions(-)
diff --git a/modules/sale/sale.fodt b/modules/sale/sale.fodt
index d46b22c..0be815f 100755
--- a/modules/sale/sale.fodt
+++ b/modules/sale/sale.fodt
@@ -1,24 +1,24 @@
- LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 2026-03-05T10:21:06.487000000 PT1H4M1S 8
+ LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 2026-03-05T10:37:20.729000000 PT1H5M40S 9
- 8237
+ 8116
0
36352
- 18332
+ 17582
true
false
view2
- 21705
- 22968
+ 17976
+ 16621
0
- 8237
+ 8116
36350
- 26568
+ 25696
0
0
false
@@ -91,7 +91,7 @@
false
false
false
- 2103895
+ 2160649
1822556
false
false
@@ -168,7 +168,7 @@
-
+
@@ -347,247 +347,256 @@
-
+
+
+
+
-
+
-
+
-
+
-
+
-
+
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
@@ -1623,8 +1632,8 @@
</for>
-
-
+
+
@@ -1632,48 +1641,48 @@
- Quantity
-
-
- <sale.lines[0].quantity> <sale.lines[0].unit.rec_name.upper() if sale.lines and sale.lines[0].unit else ''>
-
-
- SHIPMENTSCHEDULE:
- TOTAL QUANTITY:
-
-
- Goods Description
-
+ Quantity
- <sale.lines[0].product.name if sale.lines and sale.lines[0].product else ''>
-
+
+ <sale.lines[0].quantity> <sale.lines[0].unit.rec_name.upper() if sale.lines and sale.lines[0].unit else ''>
-
- <sale.lines[0].del_period.month_name if sale.lines and sale.lines[0].del_period else ''>
-
- <sale.lines[0].quantity> <sale.lines[0].unit.rec_name.upper() if sale.lines and sale.lines[0].unit else ''>
-
+
+ SHIPMENTSCHEDULE:
+ TOTAL QUANTITY:
- Unit Price
-
-
- <format_currency(sale.lines[0].unit_price, sale.party.lang, sale.currency) if sale.lines else ''>
-
+ Goods Description
+
+
+ <sale.lines[0].product.name if sale.lines and sale.lines[0].product else ''>
- TOTAL EUR
+
+
+ <sale.lines[0].del_period.month_name if sale.lines and sale.lines[0].del_period else ''>
+
+ <sale.lines[0].quantity> <sale.lines[0].unit.rec_name.upper() if sale.lines and sale.lines[0].unit else ''>
+
+
+
+ Unit Price
+
+
+ <format_currency(sale.lines[0].unit_price, sale.party.lang, sale.currency) if sale.lines else ''>
+
+
+ TOTAL EUR
Amount
-
- <format_currency(sale.lines[0].amount, sale.party.lang, sale.currency)>
-
-
-
-
-
- <format_currency(sale.lines[0].amount, sale.party.lang, sale.currency)>
+
+ <format_currency(sale.lines[0].amount, sale.party.lang, sale.currency)>
+
+
+
+
+
+ <format_currency(sale.lines[0].amount, sale.party.lang, sale.currency)>
@@ -1686,9 +1695,9 @@
TRANSPORTATION BY: VESSEL
- DELIVERY TERMS:<sale.incoterm.name if sale.incoterm else ''>
+ DELIVERY TERMS:<sale.incoterm.name if sale.incoterm else ''> <sale.incoterm_location.party_name if sale.incoterm_location else ''>
- PAYMENT TERMS:<sale.payment_term.name if sale.payment_term else ''> <sale.payment_term.description if sale.payment_term else ''>
+ PAYMENT TERMS:<sale.payment_term.name if sale.payment_term else ''> <sale.payment_term.description if sale.payment_term else ''>
@@ -1697,8 +1706,8 @@
Signed by :
(The Seller)
- MELYA SA 13 RUE ROBERT CEARD CH-1204 GENEVA SWITZERLAND
-
+ MELYA SA 13 RUE ROBERT CEARD CH-1204 GENEVA SWITZERLAND
+
</for>
From 8d557a63a001ac8b62c7120bf1809b911b40be02 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Thu, 5 Mar 2026 10:50:48 +0100
Subject: [PATCH 382/618] 05.03.26
---
modules/purchase_trade/purchase.py | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index 828eafd..1fb361f 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -257,10 +257,10 @@ class Purchase(metaclass=PoolMeta):
tol_max = fields.Numeric("Tol + in %")
tol_min_qt = fields.Numeric("Tol -")
tol_max_qt = fields.Numeric("Tol +")
- certif = fields.Many2One('purchase.certification',"Certification")
+ certif = fields.Many2One('purchase.certification',"Certification",states={'invisible': Eval('company_visible'),})
wb = fields.Many2One('purchase.weight.basis',"Weight basis")
- association = fields.Many2One('purchase.association',"Association")
- crop = fields.Many2One('purchase.crop',"Crop")
+ association = fields.Many2One('purchase.association',"Association",states={'invisible': Eval('company_visible'),})
+ crop = fields.Many2One('purchase.crop',"Crop",states={'invisible': Eval('company_visible'),})
pnl = fields.One2Many('valuation.valuation.dyn', 'r_purchase', 'Pnl',states={'invisible': ~Eval('group_pnl'),})
pnl_ = fields.One2Many('valuation.valuation.line', 'purchase', 'Pnl',states={'invisible': Eval('group_pnl'),})
derivatives = fields.One2Many('derivative.derivative', 'purchase', 'Derivative')
@@ -281,6 +281,10 @@ class Purchase(metaclass=PoolMeta):
trader = fields.Many2One('party.party',"Trader")
operator = fields.Many2One('party.party',"Operator")
our_reference = fields.Char("Our Reference")
+ company_visible = fields.Function(fields.Boolean("Visible"),'get_company_info')
+
+ def get_company_info(self):
+ return (self.company.party.name == 'MELYA')
@classmethod
def default_viewer(cls):
From 3212d551d2d263664af86c0b6eee7e9032c7e8ba Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Thu, 5 Mar 2026 10:54:10 +0100
Subject: [PATCH 383/618] 05.03.26
---
modules/purchase_trade/purchase.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index 1fb361f..03c0993 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -283,7 +283,7 @@ class Purchase(metaclass=PoolMeta):
our_reference = fields.Char("Our Reference")
company_visible = fields.Function(fields.Boolean("Visible"),'get_company_info')
- def get_company_info(self):
+ def get_company_info(self,name):
return (self.company.party.name == 'MELYA')
@classmethod
From e371b116f75f224fb7b2617661b31dd5052d17be Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Thu, 5 Mar 2026 10:58:01 +0100
Subject: [PATCH 384/618] 05.03.26
---
modules/purchase_trade/sale.py | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/modules/purchase_trade/sale.py b/modules/purchase_trade/sale.py
index 021121d..1b77c69 100755
--- a/modules/purchase_trade/sale.py
+++ b/modules/purchase_trade/sale.py
@@ -241,10 +241,10 @@ class Sale(metaclass=PoolMeta):
# ('ncsw', 'NCSW'),
# ('nlw', 'NLW'),
# ], 'Weight basis')
- certif = fields.Many2One('purchase.certification',"Certification")
+ certif = fields.Many2One('purchase.certification',"Certification",states={'invisible': Eval('company_visible'),})
wb = fields.Many2One('purchase.weight.basis',"Weight basis")
- association = fields.Many2One('purchase.association',"Association")
- crop = fields.Many2One('purchase.crop',"Crop")
+ association = fields.Many2One('purchase.association',"Association",states={'invisible': Eval('company_visible'),})
+ crop = fields.Many2One('purchase.crop',"Crop",states={'invisible': Eval('company_visible'),})
viewer = fields.Function(fields.Text(""),'get_viewer')
doc_template = fields.Many2One('doc.template',"Template")
required_documents = fields.Many2Many(
@@ -257,7 +257,11 @@ class Sale(metaclass=PoolMeta):
trader = fields.Many2One('party.party',"Trader")
operator = fields.Many2One('party.party',"Operator")
our_reference = fields.Char("Our Reference")
+ company_visible = fields.Function(fields.Boolean("Visible"),'get_company_info')
+ def get_company_info(self,name):
+ return (self.company.party.name == 'MELYA')
+
@property
def report_terms(self):
if self.lines:
From 8db31ddaf02f40bf5782819e0a98908d357551bc Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Thu, 5 Mar 2026 11:03:44 +0100
Subject: [PATCH 385/618] 05.03.26
---
modules/sale/sale.fodt | 452 ++++++++++++++++++++---------------------
1 file changed, 226 insertions(+), 226 deletions(-)
diff --git a/modules/sale/sale.fodt b/modules/sale/sale.fodt
index 0be815f..04432d8 100755
--- a/modules/sale/sale.fodt
+++ b/modules/sale/sale.fodt
@@ -1,24 +1,24 @@
- LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 2026-03-05T10:37:20.729000000 PT1H5M40S 9
+ LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 2026-03-05T11:03:24.530000000 PT1H6M32S 10
- 8116
+ 0
0
36352
- 17582
+ 18332
true
false
view2
- 17976
- 16621
+ 17179
+ 4613
0
- 8116
+ 0
36350
- 25696
+ 18330
0
0
false
@@ -91,7 +91,7 @@
false
false
false
- 2160649
+ 2274510
1822556
false
false
@@ -168,7 +168,7 @@
-
+
@@ -350,253 +350,253 @@
-
+
+
+
+
-
+
-
+
-
+
-
+
-
+
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
-
-
-
-
-
-
-
-
-
@@ -1622,7 +1622,7 @@
PROFORMA INVOICE
Proforma Nr: Date:
- <sale.full_number> <format_date(sale.sale_date, sale.party.lang)>
+ <sale.full_number> <format_date(sale.sale_date, sale.party.lang) if sale.sale_date else ''>
Buyer:
@@ -1632,8 +1632,8 @@
</for>
-
+
@@ -1641,48 +1641,48 @@
- Quantity
-
-
- <sale.lines[0].quantity> <sale.lines[0].unit.rec_name.upper() if sale.lines and sale.lines[0].unit else ''>
-
-
- SHIPMENTSCHEDULE:
- TOTAL QUANTITY:
-
-
- Goods Description
-
+ Quantity
- <sale.lines[0].product.name if sale.lines and sale.lines[0].product else ''>
+
+ <sale.lines[0].quantity> <sale.lines[0].unit.rec_name.upper() if sale.lines and sale.lines[0].unit else ''>
-
-
- <sale.lines[0].del_period.month_name if sale.lines and sale.lines[0].del_period else ''>
-
- <sale.lines[0].quantity> <sale.lines[0].unit.rec_name.upper() if sale.lines and sale.lines[0].unit else ''>
-
+
+ SHIPMENTSCHEDULE:
+ TOTAL QUANTITY:
- Unit Price
-
-
- <format_currency(sale.lines[0].unit_price, sale.party.lang, sale.currency) if sale.lines else ''>
-
+ Goods Description
+
+
+ <sale.lines[0].product.name if sale.lines and sale.lines[0].product else ''>
+
- TOTAL EUR
+
+ <sale.lines[0].del_period.month_name if sale.lines and sale.lines[0].del_period else ''>
+
+ <sale.lines[0].quantity> <sale.lines[0].unit.rec_name.upper() if sale.lines and sale.lines[0].unit else ''>
+
+
+
+ Unit Price
+
+
+ <format_currency(sale.lines[0].unit_price, sale.party.lang, sale.currency) if sale.lines else ''>
+
+
+ TOTAL EUR
Amount
-
- <format_currency(sale.lines[0].amount, sale.party.lang, sale.currency)>
-
-
-
-
-
- <format_currency(sale.lines[0].amount, sale.party.lang, sale.currency)>
+
+ <format_currency(sale.lines[0].amount, sale.party.lang, sale.currency)>
+
+
+
+
+
+ <format_currency(sale.lines[0].amount, sale.party.lang, sale.currency)>
@@ -1695,7 +1695,7 @@
TRANSPORTATION BY: VESSEL
- DELIVERY TERMS:<sale.incoterm.name if sale.incoterm else ''> <sale.incoterm_location.party_name if sale.incoterm_location else ''>
+ DELIVERY TERMS:<sale.incoterm.name if sale.incoterm else ''> <sale.incoterm_location.party_name if sale.incoterm_location else ''>
PAYMENT TERMS:<sale.payment_term.name if sale.payment_term else ''> <sale.payment_term.description if sale.payment_term else ''>
@@ -1707,7 +1707,7 @@
Signed by :
(The Seller)
MELYA SA 13 RUE ROBERT CEARD CH-1204 GENEVA SWITZERLAND
-
+
</for>
From a577595ee672d9bbad90f9faa9907f3e434d6533 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Thu, 5 Mar 2026 11:24:40 +0100
Subject: [PATCH 386/618] 05.03.26
---
modules/sale/sale.fodt | 89 +++++++++++++++++++++++-------------------
1 file changed, 49 insertions(+), 40 deletions(-)
diff --git a/modules/sale/sale.fodt b/modules/sale/sale.fodt
index 04432d8..02adb2b 100755
--- a/modules/sale/sale.fodt
+++ b/modules/sale/sale.fodt
@@ -1,24 +1,24 @@
- LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 2026-03-05T11:03:24.530000000 PT1H6M32S 10
+ LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 2026-03-05T11:24:21.901000000 PT1H7M37S 11
0
0
36352
- 18332
+ 17582
true
false
view2
- 17179
- 4613
+ 22230
+ 15127
0
0
36350
- 18330
+ 17581
0
0
false
@@ -91,7 +91,7 @@
false
false
false
- 2274510
+ 2386458
1822556
false
false
@@ -168,7 +168,7 @@
-
+
@@ -597,6 +597,12 @@
+
+
+
+
+
+
@@ -670,48 +676,51 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
+
+
+
@@ -1622,7 +1631,7 @@
PROFORMA INVOICE
Proforma Nr: Date:
- <sale.full_number> <format_date(sale.sale_date, sale.party.lang) if sale.sale_date else ''>
+ <sale.full_number> <format_date(sale.sale_date, sale.party.lang) if sale.sale_date else ''>
Buyer:
@@ -1632,8 +1641,8 @@
</for>
-
-
+
+
@@ -1641,8 +1650,8 @@
- Quantity
-
+ Quantity
+
<sale.lines[0].quantity> <sale.lines[0].unit.rec_name.upper() if sale.lines and sale.lines[0].unit else ''>
@@ -1651,31 +1660,31 @@
TOTAL QUANTITY:
- Goods Description
-
-
- <sale.lines[0].product.name if sale.lines and sale.lines[0].product else ''>
+ Goods Description
+
+
+ <sale.lines[0].product.name if sale.lines and sale.lines[0].product else ''>
- <sale.lines[0].del_period.month_name if sale.lines and sale.lines[0].del_period else ''>
+ <sale.lines[0].del_period.month_name if sale.lines and sale.lines[0].del_period else ''>
- <sale.lines[0].quantity> <sale.lines[0].unit.rec_name.upper() if sale.lines and sale.lines[0].unit else ''>
+ <sale.lines[0].quantity> <sale.lines[0].unit.rec_name.upper() if sale.lines and sale.lines[0].unit else ''>
- Unit Price
-
-
+ Unit Price
+
+
<format_currency(sale.lines[0].unit_price, sale.party.lang, sale.currency) if sale.lines else ''>
- TOTAL EUR
+ TOTAL <sale.currency.name>
- Amount
-
-
+ Amount
+
+
<format_currency(sale.lines[0].amount, sale.party.lang, sale.currency)>
@@ -1706,7 +1715,7 @@
Signed by :
(The Seller)
- MELYA SA 13 RUE ROBERT CEARD CH-1204 GENEVA SWITZERLAND
+ MELYA SA 13 RUE ROBERT CEARD CH-1204 GENEVA SWITZERLAND
</for>
From 52418b62444e914a698d8fe6625b21637969b694 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Thu, 5 Mar 2026 12:27:01 +0100
Subject: [PATCH 387/618] 05.03.26
---
modules/sale/sale.fodt | 440 ++++++++++++++++++++---------------------
1 file changed, 220 insertions(+), 220 deletions(-)
diff --git a/modules/sale/sale.fodt b/modules/sale/sale.fodt
index 02adb2b..c2eae4f 100755
--- a/modules/sale/sale.fodt
+++ b/modules/sale/sale.fodt
@@ -1,24 +1,24 @@
- LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 2026-03-05T11:24:21.901000000 PT1H7M37S 11
+ LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 2026-03-05T12:26:41.694000000 PT1H7M51S 12
- 0
+ 8116
0
36352
- 17582
+ 18332
true
false
view2
- 22230
- 15127
+ 13427
+ 22237
0
- 0
+ 8116
36350
- 17581
+ 26446
0
0
false
@@ -91,7 +91,7 @@
false
false
false
- 2386458
+ 2427073
1822556
false
false
@@ -168,7 +168,7 @@
-
+
@@ -375,234 +375,234 @@
+
+
+
+
+
+
-
+
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
+
-
-
-
-
-
-
@@ -1641,8 +1641,8 @@
</for>
-
+
@@ -1650,47 +1650,47 @@
- Quantity
-
-
- <sale.lines[0].quantity> <sale.lines[0].unit.rec_name.upper() if sale.lines and sale.lines[0].unit else ''>
-
-
- SHIPMENTSCHEDULE:
- TOTAL QUANTITY:
-
-
- Goods Description
-
+ Quantity
- <sale.lines[0].product.name if sale.lines and sale.lines[0].product else ''>
+
+ <sale.lines[0].quantity> <sale.lines[0].unit.rec_name.upper() if sale.lines and sale.lines[0].unit else ''>
-
-
- <sale.lines[0].del_period.month_name if sale.lines and sale.lines[0].del_period else ''>
-
- <sale.lines[0].quantity> <sale.lines[0].unit.rec_name.upper() if sale.lines and sale.lines[0].unit else ''>
-
+
+ SHIPMENTSCHEDULE:
+ TOTAL QUANTITY:
- Unit Price
-
-
- <format_currency(sale.lines[0].unit_price, sale.party.lang, sale.currency) if sale.lines else ''>
-
+ Goods Description
+
+
+ <sale.lines[0].product.name if sale.lines and sale.lines[0].product else ''>
+
- TOTAL <sale.currency.name>
+
+ <sale.lines[0].del_period.month_name if sale.lines and sale.lines[0].del_period else ''>
+
+ <sale.lines[0].quantity> <sale.lines[0].unit.rec_name.upper() if sale.lines and sale.lines[0].unit else ''>
+
+
+
+ Unit Price
+
+
+ <format_currency(sale.lines[0].unit_price, sale.party.lang, sale.currency) if sale.lines else ''>
+
+
+ TOTAL <sale.currency.name>
Amount
-
- <format_currency(sale.lines[0].amount, sale.party.lang, sale.currency)>
-
-
-
-
-
+
+ <format_currency(sale.lines[0].amount, sale.party.lang, sale.currency)>
+
+
+
+
+
<format_currency(sale.lines[0].amount, sale.party.lang, sale.currency)>
@@ -1704,7 +1704,7 @@
TRANSPORTATION BY: VESSEL
- DELIVERY TERMS:<sale.incoterm.name if sale.incoterm else ''> <sale.incoterm_location.party_name if sale.incoterm_location else ''>
+ DELIVERY TERMS:<sale.incoterm.code if sale.incoterm else ''> <sale.incoterm_location.party_name if sale.incoterm_location else ''>
PAYMENT TERMS:<sale.payment_term.name if sale.payment_term else ''> <sale.payment_term.description if sale.payment_term else ''>
From 7451e19125298613c4db5b76ce66a376faba9db0 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Thu, 5 Mar 2026 12:30:47 +0100
Subject: [PATCH 388/618] 05.03.26
---
modules/sale/sale.fodt | 22 +++++++++++-----------
1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/modules/sale/sale.fodt b/modules/sale/sale.fodt
index c2eae4f..eaf27ca 100755
--- a/modules/sale/sale.fodt
+++ b/modules/sale/sale.fodt
@@ -1,24 +1,24 @@
- LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 2026-03-05T12:26:41.694000000 PT1H7M51S 12
+ LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 2026-03-05T12:30:27.259000000 PT1H8M7S 13
- 8116
+ 15639
0
36352
- 18332
+ 18404
true
false
view2
13427
- 22237
+ 23333
0
- 8116
+ 15639
36350
- 26446
+ 34041
0
0
false
@@ -91,7 +91,7 @@
false
false
false
- 2427073
+ 2453530
1822556
false
false
@@ -168,7 +168,7 @@
-
+
@@ -1706,7 +1706,7 @@
DELIVERY TERMS:<sale.incoterm.code if sale.incoterm else ''> <sale.incoterm_location.party_name if sale.incoterm_location else ''>
- PAYMENT TERMS:<sale.payment_term.name if sale.payment_term else ''> <sale.payment_term.description if sale.payment_term else ''>
+ PAYMENT TERMS:<sale.payment_term.description if sale.payment_term else ''>
@@ -1715,8 +1715,8 @@
Signed by :
(The Seller)
- MELYA SA 13 RUE ROBERT CEARD CH-1204 GENEVA SWITZERLAND
-
+ MELYA SA 13 RUE ROBERT CEARD CH-1204 GENEVA SWITZERLAND
+
</for>
From ae0817e0ac26f1574db996bd50d22a7fcebbb0c3 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Thu, 5 Mar 2026 15:30:11 +0100
Subject: [PATCH 389/618] 05.03.26
---
modules/purchase/view/purchase_line_form.xml | 3 ++
modules/purchase_trade/purchase.py | 37 ++++++++++++++++++++
2 files changed, 40 insertions(+)
diff --git a/modules/purchase/view/purchase_line_form.xml b/modules/purchase/view/purchase_line_form.xml
index 5d80677..0fab1be 100755
--- a/modules/purchase/view/purchase_line_form.xml
+++ b/modules/purchase/view/purchase_line_form.xml
@@ -19,6 +19,9 @@ this repository contains the full copyright notices and license terms. -->
+
+
+
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index 03c0993..4b3dc27 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -2,6 +2,7 @@
# this repository contains the full copyright notices and license terms.
from functools import wraps
from trytond.model import ModelSingleton, ModelSQL, ModelView, fields
+from trytond.i18n import gettext
from trytond.report import Report
from trytond.pool import Pool, PoolMeta
from trytond.pyson import Bool, Eval, Id, If, PYSONEncoder
@@ -483,6 +484,42 @@ class Line(metaclass=PoolMeta):
})
premium = fields.Numeric("Premium/Discount",digits='unit')
fee_ = fields.Many2One('fee.fee',"Fee")
+
+ attributes = fields.Dict('product.attribute', 'Attributes',
+ domain=[
+ ('sets', '=', Eval('product._parent_template', {}).get('attribute_set',
+ Eval('attribute_set', -1))),
+ ],
+ states={
+ 'readonly': (~Eval('attribute_set')
+ & ~Eval('product._parent_template', {}).get('attribute_set')),
+ },
+ depends={'product.template'},
+ help="Add attributes to the variant.")
+
+ attributes_name = fields.Function(fields.Char(
+ "Attributes Name",
+ states={
+ 'invisible': ~Eval('attribute_set'),
+ }),
+ 'on_change_with_attributes_name')
+
+ @fields.depends('product', 'attributes')
+ def on_change_with_attributes_name(self, name=None):
+ if not self.product.attribute_set or not self.attributes:
+ return
+
+ def key(attribute):
+ return getattr(attribute, 'sequence', attribute.name)
+
+ values = []
+ for attribute in sorted(self.product.attribute_set.attributes, key=key):
+ if attribute.name in self.attributes:
+ value = self.attributes[attribute.name]
+ values.append(gettext('product_attribute.msg_label_value',
+ label=attribute.string,
+ value=attribute.format(value)))
+ return " | ".join(filter(None, values))
@classmethod
def default_price_type(cls):
From 2b956e61421f5488b145aff75534b7b9c332f676 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Thu, 5 Mar 2026 17:53:49 +0100
Subject: [PATCH 390/618] 05.03.26
---
modules/purchase_trade/purchase.py | 75 ++++++++++++++++++++++--------
1 file changed, 55 insertions(+), 20 deletions(-)
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index 4b3dc27..18e949f 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -485,28 +485,26 @@ class Line(metaclass=PoolMeta):
premium = fields.Numeric("Premium/Discount",digits='unit')
fee_ = fields.Many2One('fee.fee',"Fee")
- attributes = fields.Dict('product.attribute', 'Attributes',
+ attributes = fields.Dict(
+ 'product.attribute', 'Attributes',
domain=[
- ('sets', '=', Eval('product._parent_template', {}).get('attribute_set',
- Eval('attribute_set', -1))),
- ],
+ ('sets', '=', Eval('attribute_set')),
+ ],
states={
- 'readonly': (~Eval('attribute_set')
- & ~Eval('product._parent_template', {}).get('attribute_set')),
- },
- depends={'product.template'},
- help="Add attributes to the variant.")
-
- attributes_name = fields.Function(fields.Char(
- "Attributes Name",
- states={
- 'invisible': ~Eval('attribute_set'),
- }),
- 'on_change_with_attributes_name')
+ 'readonly': ~Eval('attribute_set'),
+ },
+ depends=['product', 'attribute_set'],
+ help="Add attributes to the variant."
+ )
+
+ attributes_name = fields.Function(
+ fields.Char("Attributes Name"),
+ 'on_change_with_attributes_name'
+ )
@fields.depends('product', 'attributes')
def on_change_with_attributes_name(self, name=None):
- if not self.product.attribute_set or not self.attributes:
+ if not self.product or not self.product.attribute_set or not self.attributes:
return
def key(attribute):
@@ -516,10 +514,47 @@ class Line(metaclass=PoolMeta):
for attribute in sorted(self.product.attribute_set.attributes, key=key):
if attribute.name in self.attributes:
value = self.attributes[attribute.name]
- values.append(gettext('product_attribute.msg_label_value',
- label=attribute.string,
- value=attribute.format(value)))
+ values.append(gettext(
+ 'product_attribute.msg_label_value',
+ label=attribute.string,
+ value=attribute.format(value)
+ ))
return " | ".join(filter(None, values))
+ # attributes = fields.Dict('product.attribute', 'Attributes',
+ # domain=[
+ # ('sets', '=', Eval('product._parent_template', {}).get('attribute_set',
+ # Eval('attribute_set', -1))),
+ # ],
+ # states={
+ # 'readonly': (~Eval('attribute_set')
+ # & ~Eval('product._parent_template', {}).get('attribute_set')),
+ # },
+ # depends={'product.template'},
+ # help="Add attributes to the variant.")
+
+ # attributes_name = fields.Function(fields.Char(
+ # "Attributes Name",
+ # states={
+ # 'invisible': ~Eval('attribute_set'),
+ # }),
+ # 'on_change_with_attributes_name')
+
+ # @fields.depends('product', 'attributes')
+ # def on_change_with_attributes_name(self, name=None):
+ # if not self.product.attribute_set or not self.attributes:
+ # return
+
+ # def key(attribute):
+ # return getattr(attribute, 'sequence', attribute.name)
+
+ # values = []
+ # for attribute in sorted(self.product.attribute_set.attributes, key=key):
+ # if attribute.name in self.attributes:
+ # value = self.attributes[attribute.name]
+ # values.append(gettext('product_attribute.msg_label_value',
+ # label=attribute.string,
+ # value=attribute.format(value)))
+ # return " | ".join(filter(None, values))
@classmethod
def default_price_type(cls):
From b6c3279917550032b548f5eb9d3f3cae7b2831ba Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Thu, 5 Mar 2026 18:01:05 +0100
Subject: [PATCH 391/618] 05.03.26
---
modules/purchase_trade/purchase.py | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index 18e949f..fafa9e7 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -497,6 +497,16 @@ class Line(metaclass=PoolMeta):
help="Add attributes to the variant."
)
+ attribute_set = fields.Function(
+ fields.Many2One('product.attribute.set', "Attribute Set"),
+ 'on_change_with_attribute_set'
+ )
+
+ @fields.depends('product')
+ def on_change_with_attribute_set(self, name=None):
+ if self.product and self.product.template:
+ return self.product.template.attribute_set.id
+
attributes_name = fields.Function(
fields.Char("Attributes Name"),
'on_change_with_attributes_name'
From 551a040df0400fe12cb2a4ba65584b71c9b1a05d Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Thu, 5 Mar 2026 18:07:54 +0100
Subject: [PATCH 392/618] 05.03.26
---
modules/sale/{sale__.fodt => sale_ict.fodt} | 0
modules/sale/{sale.fodt => sale_melya.fodt} | 0
2 files changed, 0 insertions(+), 0 deletions(-)
rename modules/sale/{sale__.fodt => sale_ict.fodt} (100%)
rename modules/sale/{sale.fodt => sale_melya.fodt} (100%)
mode change 100755 => 100644
diff --git a/modules/sale/sale__.fodt b/modules/sale/sale_ict.fodt
similarity index 100%
rename from modules/sale/sale__.fodt
rename to modules/sale/sale_ict.fodt
diff --git a/modules/sale/sale.fodt b/modules/sale/sale_melya.fodt
old mode 100755
new mode 100644
similarity index 100%
rename from modules/sale/sale.fodt
rename to modules/sale/sale_melya.fodt
From 3b67f3c2517147d663b4b9bf69ea9389f9f1e3e7 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Thu, 5 Mar 2026 18:10:49 +0100
Subject: [PATCH 393/618] 05.03.26
---
modules/purchase_trade/view/position_bi_graph.xml | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/modules/purchase_trade/view/position_bi_graph.xml b/modules/purchase_trade/view/position_bi_graph.xml
index 17796d6..55e3414 100644
--- a/modules/purchase_trade/view/position_bi_graph.xml
+++ b/modules/purchase_trade/view/position_bi_graph.xml
@@ -1,4 +1,5 @@
-
+
+
\ No newline at end of file
From 1a1f675cf69b868861790b53e64fd32518b05fc2 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Thu, 5 Mar 2026 18:12:22 +0100
Subject: [PATCH 394/618] 05.03.26
---
modules/purchase_trade/view/position_bi_graph.xml | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/modules/purchase_trade/view/position_bi_graph.xml b/modules/purchase_trade/view/position_bi_graph.xml
index 55e3414..17796d6 100644
--- a/modules/purchase_trade/view/position_bi_graph.xml
+++ b/modules/purchase_trade/view/position_bi_graph.xml
@@ -1,5 +1,4 @@
-
-
+
\ No newline at end of file
From 12de27d105a9427ea152ad605de17d0e1c3b5ed7 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Thu, 5 Mar 2026 18:16:22 +0100
Subject: [PATCH 395/618] 05.03.26
---
modules/purchase/view/purchase_line_form.xml | 1 -
1 file changed, 1 deletion(-)
diff --git a/modules/purchase/view/purchase_line_form.xml b/modules/purchase/view/purchase_line_form.xml
index 0fab1be..99524c9 100755
--- a/modules/purchase/view/purchase_line_form.xml
+++ b/modules/purchase/view/purchase_line_form.xml
@@ -18,7 +18,6 @@ this repository contains the full copyright notices and license terms. -->
-
From 915fd17d83a70444701712d10a6ecf6178940029 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Thu, 5 Mar 2026 18:38:24 +0100
Subject: [PATCH 396/618] 05.03.26
---
modules/purchase/view/purchase_line_form.xml | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/modules/purchase/view/purchase_line_form.xml b/modules/purchase/view/purchase_line_form.xml
index 99524c9..76bc5d0 100755
--- a/modules/purchase/view/purchase_line_form.xml
+++ b/modules/purchase/view/purchase_line_form.xml
@@ -13,13 +13,14 @@ this repository contains the full copyright notices and license terms. -->
+
+
+
-
-
From 13000f110dcc7a2fe84edd74ca3fe9b0238d00fc Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Thu, 5 Mar 2026 19:25:17 +0100
Subject: [PATCH 397/618] 05.03.26
---
modules/purchase/view/purchase_line_form.xml | 9 +++++---
modules/purchase_trade/purchase.py | 22 +++++++++++++++-----
2 files changed, 23 insertions(+), 8 deletions(-)
diff --git a/modules/purchase/view/purchase_line_form.xml b/modules/purchase/view/purchase_line_form.xml
index 76bc5d0..14df78f 100755
--- a/modules/purchase/view/purchase_line_form.xml
+++ b/modules/purchase/view/purchase_line_form.xml
@@ -13,12 +13,11 @@ this repository contains the full copyright notices and license terms. -->
-
-
-
+
+
@@ -49,6 +48,10 @@ this repository contains the full copyright notices and license terms. -->
+
+
+
+
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index fafa9e7..300e436 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -501,16 +501,28 @@ class Line(metaclass=PoolMeta):
fields.Many2One('product.attribute.set', "Attribute Set"),
'on_change_with_attribute_set'
)
+
+ attributes_name = fields.Function(
+ fields.Char("Attributes Name"),
+ 'on_change_with_attributes_name'
+ )
+
+ att_desc = fields.Function(fields.Char("Attributes"),'get_attributes')
+
+ def get_attributes(self, name):
+ if not self.attributes:
+ return ''
+
+ parts = []
+ for attribute, value in self.attributes.items():
+ parts.append(f"{attribute.name}: {value}")
+
+ return ', '.join(parts)
@fields.depends('product')
def on_change_with_attribute_set(self, name=None):
if self.product and self.product.template:
return self.product.template.attribute_set.id
-
- attributes_name = fields.Function(
- fields.Char("Attributes Name"),
- 'on_change_with_attributes_name'
- )
@fields.depends('product', 'attributes')
def on_change_with_attributes_name(self, name=None):
From 14c2548c169c4efa986353d639ecfefe45491ee2 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Thu, 5 Mar 2026 19:32:55 +0100
Subject: [PATCH 398/618] 05.03.26
---
modules/purchase_trade/purchase.py | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index 300e436..109bff3 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -509,13 +509,16 @@ class Line(metaclass=PoolMeta):
att_desc = fields.Function(fields.Char("Attributes"),'get_attributes')
- def get_attributes(self, name):
+ def get_attributes_string(self, name):
+ Attribute = Pool().get('product.attribute')
+
if not self.attributes:
return ''
parts = []
- for attribute, value in self.attributes.items():
- parts.append(f"{attribute.name}: {value}")
+ for attr_id, value in self.attributes.items():
+ attribute = Attribute(attr_id)
+ parts.append(f"{attribute.string}: {value}")
return ', '.join(parts)
From 62f731530b1dd227ca78694b2c0968eead33ecdb Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Thu, 5 Mar 2026 19:34:46 +0100
Subject: [PATCH 399/618] 05.03.26
---
modules/purchase_trade/purchase.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index 109bff3..bd8d43c 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -509,7 +509,7 @@ class Line(metaclass=PoolMeta):
att_desc = fields.Function(fields.Char("Attributes"),'get_attributes')
- def get_attributes_string(self, name):
+ def get_attributes(self, name):
Attribute = Pool().get('product.attribute')
if not self.attributes:
From 843ade6f3d53e5f637c5a8c808c943667ca3a26d Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Thu, 5 Mar 2026 19:38:03 +0100
Subject: [PATCH 400/618] 05.03.26
---
modules/purchase_trade/purchase.py | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index bd8d43c..0ad160c 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -510,15 +510,12 @@ class Line(metaclass=PoolMeta):
att_desc = fields.Function(fields.Char("Attributes"),'get_attributes')
def get_attributes(self, name):
- Attribute = Pool().get('product.attribute')
-
if not self.attributes:
return ''
parts = []
for attr_id, value in self.attributes.items():
- attribute = Attribute(attr_id)
- parts.append(f"{attribute.string}: {value}")
+ parts.append(f"{attr_id}: {value}")
return ', '.join(parts)
From cdb0bf72543cc6a6ab611e6606bff5285ad36aac Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Thu, 5 Mar 2026 19:49:16 +0100
Subject: [PATCH 401/618] 05.03.26
---
modules/purchase/view/purchase_line_form.xml | 4 ++--
modules/purchase_trade/purchase.py | 12 ------------
2 files changed, 2 insertions(+), 14 deletions(-)
diff --git a/modules/purchase/view/purchase_line_form.xml b/modules/purchase/view/purchase_line_form.xml
index 14df78f..d7e47ac 100755
--- a/modules/purchase/view/purchase_line_form.xml
+++ b/modules/purchase/view/purchase_line_form.xml
@@ -16,8 +16,8 @@ this repository contains the full copyright notices and license terms. -->
-
-
+
+
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index 0ad160c..de81f5b 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -507,18 +507,6 @@ class Line(metaclass=PoolMeta):
'on_change_with_attributes_name'
)
- att_desc = fields.Function(fields.Char("Attributes"),'get_attributes')
-
- def get_attributes(self, name):
- if not self.attributes:
- return ''
-
- parts = []
- for attr_id, value in self.attributes.items():
- parts.append(f"{attr_id}: {value}")
-
- return ', '.join(parts)
-
@fields.depends('product')
def on_change_with_attribute_set(self, name=None):
if self.product and self.product.template:
From a3f15c30e6ed541bf59803075d0bf0f82c9428bd Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Fri, 6 Mar 2026 14:24:18 +0100
Subject: [PATCH 402/618] 06.03.26
---
modules/purchase_trade/purchase.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index de81f5b..4f9cc46 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -509,7 +509,7 @@ class Line(metaclass=PoolMeta):
@fields.depends('product')
def on_change_with_attribute_set(self, name=None):
- if self.product and self.product.template:
+ if self.product and self.product.template and self.product.template.attribute_set:
return self.product.template.attribute_set.id
@fields.depends('product', 'attributes')
From 4e6ddc39c1cf37220c3081ee94f1864d95756538 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 8 Mar 2026 08:53:02 +0100
Subject: [PATCH 403/618] 08.03.26
---
modules/account_itsa/__init__.py | 14 +
modules/account_itsa/account.py | 40 +
modules/account_itsa/account_itsa.xml | 3162 +++++++++++++++++++++++++
modules/account_itsa/tryton.cfg | 10 +
4 files changed, 3226 insertions(+)
create mode 100644 modules/account_itsa/__init__.py
create mode 100644 modules/account_itsa/account.py
create mode 100644 modules/account_itsa/account_itsa.xml
create mode 100644 modules/account_itsa/tryton.cfg
diff --git a/modules/account_itsa/__init__.py b/modules/account_itsa/__init__.py
new file mode 100644
index 0000000..cedf9ce
--- /dev/null
+++ b/modules/account_itsa/__init__.py
@@ -0,0 +1,14 @@
+# This file is part of Tryton. The COPYRIGHT file at the top level of
+# this repository contains the full copyright notices and license terms.
+
+from trytond.pool import Pool
+
+from . import account
+
+def register():
+ Pool.register(
+ account.AccountTemplate,
+ module='account_itsa', type_='model')
+ Pool.register(
+ account.CreateChart,
+ module='account_itsa', type_='wizard')
\ No newline at end of file
diff --git a/modules/account_itsa/account.py b/modules/account_itsa/account.py
new file mode 100644
index 0000000..9ae42bc
--- /dev/null
+++ b/modules/account_itsa/account.py
@@ -0,0 +1,40 @@
+# This file is part of Tryton. The COPYRIGHT file at the top level of
+# this repository contains the full copyright notices and license terms.
+import csv
+from io import BytesIO, TextIOWrapper
+
+from sql import Table
+from sql.aggregate import Sum
+from sql.conditionals import Coalesce
+
+from trytond.config import config
+from trytond.model import ModelStorage, ModelView, fields
+from trytond.pool import Pool, PoolMeta
+from trytond.pyson import Eval
+from trytond.transaction import Transaction
+from trytond.wizard import Button, StateTransition, StateView, Wizard
+
+class AccountTemplate(metaclass=PoolMeta):
+ __name__ = 'account.account.template'
+
+ @classmethod
+ def __register__(cls, module_name):
+ cursor = Transaction().connection.cursor()
+ model_data = Table('ir_model_data')
+ super().__register__(module_name)
+
+class CreateChart(metaclass=PoolMeta):
+ __name__ = 'account.create_chart'
+
+ def default_properties(self, fields):
+ pool = Pool()
+ ModelData = pool.get('ir.model.data')
+ defaults = super().default_properties(fields)
+ # template_id = ModelData.get_id('account_ch.root')
+ # if self.account.account_template.id == template_id:
+ # defaults['account_receivable'] = self.get_account(
+ # 'account_ch.3400')
+ # defaults['account_payable'] = self.get_account(
+ # 'account_ch.6040')
+ return defaults
+
diff --git a/modules/account_itsa/account_itsa.xml b/modules/account_itsa/account_itsa.xml
new file mode 100644
index 0000000..50bcd29
--- /dev/null
+++ b/modules/account_itsa/account_itsa.xml
@@ -0,0 +1,3162 @@
+
+
+
+
+ ITSA accounting plan
+
+
+
+ CURRENT ASSETS
+
+ balance
+
+
+
+ CASH IN HAND
+
+ balance
+
+
+
+ BANKS ACCOUNTS
+
+ balance
+
+
+
+ TIME DEPOSITS
+
+ balance
+
+
+
+ FORWARD EXCH. CONTRACT
+
+ balance
+
+
+
+ FOREX CONTRACT CHF/USD
+
+ balance
+
+
+
+ TRADE A/C RECEIVABLES
+
+ balance
+
+
+
+ CUSTOMERS
+
+ balance
+
+
+
+ COMMISSIONS TO BE RECEIVED
+
+ balance
+
+
+
+ OTHER TRADE DEBTORS
+
+ balance
+
+
+
+ TC TEMPORARY DEBTORS
+
+ balance
+
+
+
+ ADVANCES TO SUPPLIERS
+
+ balance
+
+
+
+ ALLOWANCE DOUBTFUL DEBTS
+
+ balance
+
+
+
+ OTHER DEBTORS
+
+ balance
+
+
+
+ OTHERS
+
+ balance
+
+
+
+ INTERNAL ADVANCE
+
+ balance
+
+
+
+ ACCRUED ASSETS
+
+ balance
+
+
+
+ MERCHANDISE HAND & TRANSIT
+
+ balance
+
+
+
+ PREPAID EXPENSES
+
+ balance
+
+
+
+ INTERNAL TRANSFERS
+
+ balance
+
+
+
+ FIXED ASSETS
+
+ balance
+
+
+
+ LOANS TO RECEIVE
+
+ balance
+
+
+
+ LOANS THIRD PARTY
+
+ balance
+
+
+
+ LOANS GROUP COMPANY
+
+ balance
+
+
+
+ MACHINERY AND EQUIPMENT
+
+ balance
+
+
+
+ FIXTURES
+
+ balance
+
+
+
+ FINANCIAL ASSETS
+
+ balance
+
+
+
+ INVESTMENTS
+
+ balance
+
+
+
+ GUARANTEE/ DEPOSITS
+
+ balance
+
+
+
+ INTANGIBLE ASSETS
+
+ balance
+
+
+
+ CURRENT LIABILITIES
+
+ balance
+
+
+
+ SHORT-TERM BANK LOANS
+
+ balance
+
+
+
+ FORWARD EXCH. CONTRACT
+
+ balance
+
+
+
+ FOREX CONTRACT USD/CHF
+
+ balance
+
+
+
+ FOREX CONTRACT USD/EUR
+
+ balance
+
+
+
+ FOREX CONTRACT EUR/USD
+
+ balance
+
+
+
+ FOREX CONTRACT EUR/CHF
+
+ balance
+
+
+
+ FOREX CONTRACT CHF/USD
+
+ balance
+
+
+
+ TRADE A/C PAYABLE
+
+ balance
+
+
+
+ SUPPLIERS
+
+ balance
+
+
+
+ SHIPOWNERS
+
+ balance
+
+
+
+ COMMISSIONS TRADE
+
+ balance
+
+
+
+ COMMISSIONS BROKER
+
+ balance
+
+
+
+ INTERESTS AND EXPENSES
+
+ balance
+
+
+
+ OTHER TRADE CREDITORS
+
+ balance
+
+
+
+ TD TEMPORARY CREDITORS
+
+ balance
+
+
+
+ ADVANCES FROM CUSTOMERS
+
+ balance
+
+
+
+ OTHER CREDITORS
+
+ balance
+
+
+
+ PROVISIONS FOR CHARGES
+
+ balance
+
+
+
+ ALLOWANCE FOR BAD DEBTS
+
+ balance
+
+
+
+ ALLOWANCE FOR LOSS ON LOANS RECEIVABLE
+
+ balance
+
+
+
+ LONG-TERM LIABILITIES
+
+ balance
+
+
+
+ LONG TERM DEBTS
+
+ balance
+
+
+
+ LONG-TERM LOANS PAYABLE
+
+ balance
+
+
+
+ PROV. LIAB./CHARGES
+
+ balance
+
+
+
+ STOCKHOLDER'S EQUITY
+
+ balance
+
+
+
+ EXCHANGE DIFFERENCE
+
+ off-balance
+
+
+
+ EXPENSES
+
+ off-balance
+
+
+
+ FINANCIAL EXPENSES
+
+ off-balance
+
+
+
+ OTHER EXPENSE
+
+ off-balance
+
+
+
+ EXTRAORDINARY EXPENSES
+
+ off-balance
+
+
+
+ GENERAL OVERHEADS
+
+ off-balance
+
+
+
+ SALARIES
+
+ off-balance
+
+
+
+ TAXES & DUTIES
+
+ off-balance
+
+
+
+ RENT
+
+ off-balance
+
+
+
+ INSURANCE
+
+ off-balance
+
+
+
+ TRAVEL & ENTERTAINMENT
+
+ off-balance
+
+
+
+ COMMUNICATIONS
+
+ off-balance
+
+
+
+ PROFESSIONAL FEES
+
+ off-balance
+
+
+
+ STATIONERY & OFFICE SUPPLIES
+
+ off-balance
+
+
+
+ ADMINISTRATIVE EXPENSES
+
+ off-balance
+
+
+
+ MANAGEMENT FEES
+
+ off-balance
+
+
+
+ CONSULTANTS&AGENTS EXP.
+
+ off-balance
+
+
+
+ CONSULTANTS EXPENSES
+
+ off-balance
+
+
+
+ AGENTS EXPENSES
+
+ off-balance
+
+
+
+ DEPRECIATION&PROVISIONS
+
+ off-balance
+
+
+
+ INCOME
+
+ off-balance
+
+
+
+ FINANCIAL INCOME
+
+ off-balance
+
+
+
+ OTHER INCOME
+
+ off-balance
+
+
+
+ EXTRAORDINARY INCOME
+
+ off-balance
+
+
+
+ OTHER TRADING ITEMS
+
+ off-balance
+
+
+
+ RESULT ON TRANSACTIONS
+
+ off-balance
+
+
+
+ SWISS TRANSACTION
+
+ off-balance
+
+
+
+ INVOICES IN AUD
+
+ off-balance
+
+
+
+ INVOICES IN EURO
+
+ off-balance
+
+
+
+ PROFIT & LOSS ACCOUNT
+
+ off-balance
+
+
+
+ OPENING BALANCE SHEET
+
+ off-balance
+
+
+
+ ITSA Account Chart
+
+
+
+ CURRENT ASSETS
+ 1
+
+
+
+ CASH IN HAND
+ 10
+
+
+
+ BANKS ACCOUNTS
+ 11
+
+
+
+ TIME DEPOSITS
+ 12
+
+
+
+ FORWARD EXCH. CONTRACT
+ 13
+
+
+
+ FOREX CONTRACT CHF/USD
+ 135
+
+
+
+ TRADE A/C RECEIVABLES
+ 14
+
+
+
+ CUSTOMERS
+ 140
+
+
+
+ COMMISSIONS TO BE RECEIVED
+ 142
+
+
+
+ OTHER TRADE DEBTORS
+ 145
+
+
+
+ TC TEMPORARY DEBTORS
+ 147
+
+
+
+ ADVANCES TO SUPPLIERS
+ 148
+
+
+
+ ALLOWANCE DOUBTFUL DEBTS
+ 149
+
+
+
+ OTHER DEBTORS
+ 15
+
+
+
+ OTHERS
+ 150
+
+
+
+ INTERNAL ADVANCE
+ 152
+
+
+
+ ACCRUED ASSETS
+ 16
+
+
+
+ MERCHANDISE HAND & TRANSIT
+ 17
+
+
+
+ PREPAID EXPENSES
+ 18
+
+
+
+ INTERNAL TRANSFERS
+ 19
+
+
+
+ FIXED ASSETS
+ 2
+
+
+
+ LOANS TO RECEIVE
+ 21
+
+
+
+ LOANS THIRD PARTY
+ 210
+
+
+
+ LOANS GROUP COMPANY
+ 211
+
+
+
+ MACHINERY AND EQUIPMENT
+ 22
+
+
+
+ FIXTURES
+ 23
+
+
+
+ FINANCIAL ASSETS
+ 25
+
+
+
+ INVESTMENTS
+ 252
+
+
+
+ GUARANTEE/ DEPOSITS
+ 27
+
+
+
+ INTANGIBLE ASSETS
+ 29
+
+
+
+ CURRENT LIABILITIES
+ 3
+
+
+
+ SHORT-TERM BANK LOANS
+ 31
+
+
+
+ FORWARD EXCH. CONTRACT
+ 33
+
+
+
+ FOREX CONTRACT USD/CHF
+ 330
+
+
+
+ FOREX CONTRACT USD/EUR
+ 331
+
+
+
+ FOREX CONTRACT EUR/USD
+ 332
+
+
+
+ FOREX CONTRACT EUR/CHF
+ 333
+
+
+
+ FOREX CONTRACT CHF/USD
+ 335
+
+
+
+ TRADE A/C PAYABLE
+ 34
+
+
+
+ SUPPLIERS
+ 340
+
+
+
+ SHIPOWNERS
+ 341
+
+
+
+ COMMISSIONS TRADE
+ 342
+
+
+
+ COMMISSIONS BROKER
+ 343
+
+
+
+ INTERESTS AND EXPENSES
+ 344
+
+
+
+ OTHER TRADE CREDITORS
+ 346
+
+
+
+ TD TEMPORARY CREDITORS
+ 348
+
+
+
+ ADVANCES FROM CUSTOMERS
+ 349
+
+
+
+ OTHER CREDITORS
+ 36
+
+
+
+ PROVISIONS FOR CHARGES
+ 38
+
+
+
+ ALLOWANCE FOR BAD DEBTS
+ 384
+
+
+
+ ALLOWANCE FOR LOSS ON LOANS RECEIVABLE
+ 385
+
+
+
+ LONG-TERM LIABILITIES
+ 4
+
+
+
+ LONG TERM DEBTS
+ 40
+
+
+
+ LONG-TERM LOANS PAYABLE
+ 41
+
+
+
+ PROV. LIAB./CHARGES
+ 46
+
+
+
+ STOCKHOLDER'S EQUITY
+ 49
+
+
+
+ EXCHANGE DIFFERENCE
+ 5
+
+
+
+ EXPENSES
+ 7
+
+
+
+ FINANCIAL EXPENSES
+ 70
+
+
+
+ OTHER EXPENSE
+ 72
+
+
+
+ EXTRAORDINARY EXPENSES
+ 73
+
+
+
+ GENERAL OVERHEADS
+ 74
+
+
+
+ SALARIES
+ 740
+
+
+
+ TAXES & DUTIES
+ 741
+
+
+
+ RENT
+ 742
+
+
+
+ INSURANCE
+ 743
+
+
+
+ TRAVEL & ENTERTAINMENT
+ 744
+
+
+
+ COMMUNICATIONS
+ 745
+
+
+
+ PROFESSIONAL FEES
+ 746
+
+
+
+ STATIONERY & OFFICE SUPPLIES
+ 747
+
+
+
+ ADMINISTRATIVE EXPENSES
+ 748
+
+
+
+ MANAGEMENT FEES
+ 749
+
+
+
+ CONSULTANTS&AGENTS EXP.
+ 77
+
+
+
+ CONSULTANTS EXPENSES
+ 770
+
+
+
+ AGENTS EXPENSES
+ 771
+
+
+
+ DEPRECIATION&PROVISIONS
+ 79
+
+
+
+ INCOME
+ 8
+
+
+
+ FINANCIAL INCOME
+ 80
+
+
+
+ OTHER INCOME
+ 82
+
+
+
+ EXTRAORDINARY INCOME
+ 83
+
+
+
+ OTHER TRADING ITEMS
+ 84
+
+
+
+ RESULT ON TRANSACTIONS
+ 85
+
+
+
+ SWISS TRANSACTION
+ 86
+
+
+
+ INVOICES IN AUD
+ 87
+
+
+
+ INVOICES IN EURO
+ 88
+
+
+
+ PROFIT & LOSS ACCOUNT
+ 900
+
+
+
+ OPENING BALANCE SHEET
+ 901
+
+
+
+ PETTY CASH CHF
+ 100000
+
+
+
+
+
+
+ BTM UFJ C/A USD 230367
+ 110230
+
+
+
+
+
+
+ CS-LSNE C/A CHF 203121-41
+ 110300
+
+
+
+
+
+
+ CS-LSNE C/A EUR 203121-42-11
+ 110301
+
+
+
+
+
+
+ CS-LSNE C/A USD 203121-42
+ 110302
+
+
+
+
+
+
+ CS-LSNE C/A USD 203121-42-17 DEPOSIT
+ 110310
+
+
+
+
+
+
+ CS-LSNE 203121-42-35 C/48H USD
+ 110320
+
+
+
+
+
+
+ CS-LSNE C/A CHF 203121-41-1
+ 110350
+
+
+
+
+
+
+ UBS-LSNE C/A CHF 285.017.01 T
+ 112100
+
+
+
+
+
+
+ UBS-LSNE C/A USD 285.017.60 W
+ 112101
+
+
+
+
+
+
+ UBS-LSNE C/A EUR 285.017.61 Q
+ 112102
+
+
+
+
+
+
+ UBS-LSNE C/A CHF RENTAL SURETY SAVINGS ACCOUNT
+ 112110
+
+
+
+
+
+
+ UBS-LSNE C/A CHF 285.017.02 Z SALARY
+ 112150
+
+
+
+
+
+
+ UBS-LSNE C/A USD 285.017.62 Y DEPOSIT CALL
+ 112200
+
+
+
+
+
+
+ C.S. - LSNE TIME DEPOSIT USD
+ 120300
+
+
+
+
+
+
+ SC CAPITAL EUROPE TIME DEPOSIT
+ 120400
+
+
+
+
+
+
+ UBS LSNE TIME DEPOSIT USD
+ 120600
+
+
+
+
+
+
+ SC-MITSUI BANK. TIME DEP. USD
+ 124500
+
+
+
+
+
+
+ FOREX CONTRACT CHF
+ 135000
+
+
+
+
+
+
+ FOREX CONTRACT OVERHEADS F CHF
+ 135001
+
+
+
+
+
+
+ CUSTOMERS
+ 140000
+
+
+
+
+
+
+ COMMISSIONS TO BE RECEIVED
+ 142000
+
+
+
+
+
+
+ OTHER TRADE DEBTORS
+ 145000
+
+
+
+
+
+
+ TC TEMPORARY DEBTORS
+ 147000
+
+
+
+
+
+
+ ADVANCES TO SUPPLIERS
+ 148000
+
+
+
+
+
+
+ OTHERS DEBTORS
+ 150000
+
+
+
+
+
+
+ AFC ''VAT TO BE RECEIVED''
+ 150001
+
+
+
+
+
+
+ AFC " VAT DEDUC PURCH&SERV7.7.0%
+ 150007
+
+
+
+
+
+
+ AFC ''VAT DEDUCTIBLE 3.8%''
+ 150008
+
+
+
+
+
+
+ SPAIN "VAT TO BE RECEIVED"
+ 150012
+
+
+
+
+
+
+ AFC ''VAT DEDUCTIBLE 3.7.0%''
+ 150014
+
+
+
+
+
+
+ AFC ''VAT DEDUCTIBLE 8.1%'' 2024
+ 150015
+
+
+
+
+
+
+ AFC ''VAT DEDUCTIBLE 2,6%''2024
+ 150016
+
+
+
+
+
+
+ VAUDOISE ASSURANCE CHF
+ 150526
+
+
+
+
+
+
+ ACCRUED ASSETS USD
+ 164030
+
+
+
+
+
+
+ SCCEU CAPITAL EUROPE ACCRUED ASSETS OVERHEADS
+ 164040
+
+
+
+
+
+
+ CREDIT SUISSE ACCRUED ASSETS OVERHEADS
+ 164041
+
+
+
+
+
+
+ UBS SA ACCRUED ASSETS OVERHEADS
+ 164042
+
+
+
+
+
+
+ ITC ACCRUED ASSETS OVERHEADS USD
+ 164051
+
+
+
+
+
+
+ PREPAID EXPENSES
+ 180000
+
+
+
+
+
+
+ PREPAID EXPENSES CHF
+ 180000CHF
+
+
+
+
+
+
+ PREPAID EXPENSES EUR
+ 180000EUR
+
+
+
+
+
+
+ PREPAID EXPENSES USD
+ 180000USD
+
+
+
+
+
+
+ PREPAID OVERHEADS
+ 180400
+
+
+
+
+
+
+ PREPAID OVERHEADS CHF
+ 180400CHF
+
+
+
+
+
+
+ PREPAID OVERHEADS EUR
+ 180400EUR
+
+
+
+
+
+
+ PREPAID OVERHEADS USD
+ 180400USD
+
+
+
+
+
+
+ INTERNAL TRANSFERS
+ 190000
+
+
+
+
+
+
+ OFFICE FURNITURE
+ 221000
+
+
+
+
+
+
+ DEPRECIATION OFF. FURNITURE
+ 221100
+
+
+
+
+
+
+ OFFICE EQUIPMENT
+ 222000
+
+
+
+
+
+
+ DEPRECIATION OFF. EQUIPMENT
+ 222100
+
+
+
+
+
+
+ HARDWARE
+ 223000
+
+
+
+
+
+
+ DEPRECIATION HARDWARE
+ 223100
+
+
+
+
+
+
+ SOFTWARE
+ 224000
+
+
+
+
+
+
+ DEPRECIATION SOFTWARE
+ 224100
+
+
+
+
+
+
+ OFFICE FIXTURES
+ 231000
+
+
+
+
+
+
+ DEPRECIATION OFF. FIXTURES
+ 231500
+
+
+
+
+
+
+ INTERACID TRADING SA-SANTIAGO
+ 252050
+
+
+
+
+
+
+ INTERACID CHILE SA-SANTIAGO
+ 252100
+
+
+
+
+
+
+ RESERVE M.C. INTERACID CHILE S.A.
+ 252101
+
+
+
+
+
+
+ AUREX GROUP USD
+ 270400
+
+
+
+
+
+
+ GOLF VUISSENS - SHIROGRAPHIC CREDIT CHF
+ 271100
+
+
+
+
+
+
+ DEPOSIT EN BUDRON H14 (UBS)
+ 272000
+
+
+
+
+
+
+ DEPOSIT BAUMETTES 5 (UBS)
+ 272100
+
+
+
+
+
+
+ GOODWILL SATCO
+ 295000
+
+
+
+
+
+
+ AMORTIZATION GOODWILL SATCO
+ 295100
+
+
+
+
+
+
+ GOODWILL INTERACID TRADING INC
+ 295500
+
+
+
+
+
+
+ AMORTIZATION GOODWILL INTAC
+ 295600
+
+
+
+
+
+
+ GOODWILL INTER-SULPHUR LTD
+ 295800
+
+
+
+
+
+
+ AMORTIZATION GOODWILL ISL
+ 295900
+
+
+
+
+
+
+ FOREX CONTRACT CHF
+ 330000
+
+
+
+
+
+
+ SUPPLIERS
+ 340000
+
+
+
+
+
+
+ SHIPOWNERS
+ 341000
+
+
+
+
+
+
+ COMMISSIONS TRADE
+ 342000
+
+
+
+
+
+
+ COMMISSIONS BROKER
+ 343000
+
+
+
+
+
+
+ CURRENT EXPENSES USD
+ 344030
+
+
+
+
+
+
+ HOPECHEM USD
+ 344031
+
+
+
+
+
+
+ PROVISION CHARTERES INSURANCE USD
+ 344032
+
+
+
+
+
+
+ PROVISION ZURICH INSURANCE USD
+ 344033
+
+
+
+
+
+
+ PROVISION ONEROUS CONTRACTS USD
+ 344035
+
+
+
+
+
+
+ OTHER TRADE CREDITORS
+ 346000
+
+
+
+
+
+
+ TD TEMPORARY CREDITORS
+ 348000
+
+
+
+
+
+
+ ADVANCE FROM DEBTORS
+ 349000
+
+
+
+
+
+
+ OTHER CREDITORS
+ 360000
+
+
+
+
+
+
+ AFC ''VAT PAYABLE ON SALES''
+ 360001
+
+
+
+
+
+
+ AFC "VAT PAYABLE ON SERVICES"
+ 360005
+
+
+
+
+
+
+ OVERHEADS TO BE PAID
+ 360351
+
+
+
+
+
+
+ OVERHEADS TO BE PAID CHF
+ 360351CHF
+
+
+
+
+
+
+ OVERHEADS TO BE PAID EUR
+ 360351EUR
+
+
+
+
+
+
+ OVERHEADS TO BE PAID USD
+ 360351USD
+
+
+
+
+
+
+ ESTIMATED CREDIT LOSS (IFRS9) USD
+ 384000
+
+
+
+
+
+
+ PROVISION FOR TAXES FY21
+ 467300
+
+
+
+
+
+
+ PROVISION FOR TAXES FY22
+ 467400
+
+
+
+
+
+
+ PROVISION FOR TAXES FY23
+ 467500
+
+
+
+
+
+
+ PROVISION FOR TAXES FY24
+ 467600
+
+
+
+
+
+
+ PROVISION FOR TAXES FY25
+ 467700
+
+
+
+
+
+
+ CAPITAL STOCK
+ 490000
+
+
+
+
+
+
+ GENERAL RESERVE
+ 493000
+
+
+
+
+
+
+ PROFIT & LOSS ACCOUNT
+ 495000
+
+
+
+
+
+
+ EXCHANGE DIFFERENCE GENERAL
+ 500000
+
+
+
+
+ EXCHANGE DIFFERENCE CHF
+ 502000
+
+
+
+
+ EXCHANGE DIFFERENCE GBP
+ 504000
+
+
+
+
+ EXCHANGE DIFFERENCE
+ 510000
+
+
+
+
+ EXCHANGE DIFFERENCE AUD
+ 512000
+
+
+
+
+ EXCHANGE DIFFERENCE EUR
+ 514000
+
+
+
+
+ EXCH DIFF CHF/USD TERM CRT
+ 520000
+
+
+
+
+ EXCH DIFF CHF/USD TERM CRT (CHR)
+ 521000
+
+
+
+
+ EXCH DIFF CHF/USD TERM CRT (PR)
+ 522000
+
+
+
+
+ EXCHGE DIFF CHF/USD
+ 550000
+
+
+
+
+ EXCHGE DIFF CHF/EUR
+ 553000
+
+
+
+
+ EXCHGE DIFF SGD/USD
+ 555000
+
+
+
+
+ EXCHGE DIFF GBP/USD
+ 557000
+
+
+
+
+ EXCHGE DIFF JPY/USD
+ 559000
+
+
+
+
+ INTERESTS ON BANK LOANS SWISS
+ 700000
+
+
+
+
+ INTERESTS ON BANK LOANS FOREIGN
+ 700001
+
+
+
+
+ INTERESTS CREDITED ON CONTRACT
+ 700200
+
+
+
+
+ INTERESTS ON BANK C/A SWISS
+ 700300
+
+
+
+
+ INTERESTS ON BANK C/A FOREIGN
+ 700301
+
+
+
+
+ COM. & BK CHARGES SWISS
+ 700500
+
+
+
+
+ COM. & BK CHARGES FOREIGN
+ 700501
+
+
+
+
+ COM. & BK CHGES ON FD FOREIGN
+ 700600
+
+
+
+
+ COM. & BK CHGES ON TD SWISS
+ 700601
+
+
+
+
+ SUNDRY EXPENSES OVERHEADS
+ 720000
+
+
+
+
+ ONEROUS CONTRACT PROV S-ACID USD
+ 720475
+
+
+
+
+ ONEROUS CONTRACT PROV SULPHUR USD
+ 720476
+
+
+
+
+ SUNDRY EXP. S-ACID USD
+ 720500
+
+
+
+
+ BKCH EXP. S-ACID USD
+ 720501
+
+
+
+
+ POSTAGE EXP S-ACID USD
+ 720502
+
+
+
+
+ ESTIMATED CREDIT LOSS (IFRS9) USD
+ 720503
+
+
+
+
+ STUDY & ANALYSIS
+ 720600
+
+
+
+
+ LOSS ON SALE OF FIXED ASSETS
+ 730000
+
+
+
+
+ LOSS ON LIQUID. OF FIX. ASSETS
+ 731000
+
+
+
+
+ PROVISION FOR LOANS LOSSES (FEFERMEX) USD
+ 732000
+
+
+
+
+ OTHER UNORDINARY EXPENSES
+ 735000
+
+
+
+
+ SALARIES
+ 740000
+
+
+
+
+ BONUS
+ 740001
+
+
+
+
+ STAFF COSTS INVOICED
+ 740005
+
+
+
+
+ 13TH SALARIES
+ 740010
+
+
+
+
+ DAILY ALLOWANCE
+ 740015
+
+
+
+
+ MILITARY ALLOWANCE
+ 740016
+
+
+
+
+ MATERNITY/PATERNITY ALLOWANCE
+ 740017
+
+
+
+
+ SOCIAL CHARGES AVS/AC
+ 740020
+
+
+
+
+ SOCIAL CHARGES AVS/AC BONUS
+ 740021
+
+
+
+
+ PENSION FUNDS
+ 740030
+
+
+
+
+ HEALTH & ACCIDENT INSURANCE
+ 740040
+
+
+
+
+ STAFF INVOICE
+ 740050
+
+
+
+
+ EXPATRIATE EXPENSES
+ 740060
+
+
+
+
+ MEAL ALLOWANCE
+ 740070
+
+
+
+
+ STAFF EXPENSES
+ 740080
+
+
+
+
+ CAFETERIA EXPENSES
+ 740090
+
+
+
+
+ TEMPORARY STAFF
+ 740100
+
+
+
+
+ FEDERAL CANTONAL COMMUNAL TAX
+ 741000
+
+
+
+
+ VAT
+ 741500
+
+
+
+
+ RENT OFFICE
+ 742000
+
+
+
+
+ RENT OFFICE CAVE
+ 742001
+
+
+
+
+ RENT GARAGE
+ 742010
+
+
+
+
+ RENT PARKING
+ 742020
+
+
+
+
+ ACCOMODATION CHARGES
+ 742030
+
+
+
+
+ WATER & ELECTRICITY
+ 742050
+
+
+
+
+ INSURANCE PREMIUM
+ 743000
+
+
+
+
+ JEC TRAVEL & ENTERTAINMENT
+ 744100
+
+
+
+
+ JFM TRAVEL & ENTERTAINMENT
+ 744120
+
+
+
+
+ STM TRAVEL & ENTERTAINMENT
+ 744165
+
+
+
+
+ ROT TRAVEL & ENTERTAINMENT
+ 744177
+
+
+
+
+ SHT TRAVEL & ENTERTAINMENT
+ 744179
+
+
+
+
+ SMK TRAVEL & ENTERTAINMENT
+ 744180
+
+
+
+
+ STZ TRAVEL & ENTERTAINMENT
+ 744185
+
+
+
+
+ DAS TRAVEL & ENTERTAINMENT
+ 744186
+
+
+
+
+ SHT TRAVEL & ENTERTAINMENT
+ 744187
+
+
+
+
+ SUMITOMO TRAVEL & ENTERTAINMENT
+ 744190
+
+
+
+
+ SATCO TRAVEL & ENTERTAINMENT
+ 744200
+
+
+
+
+ SUNDRY TRAVEL & ENTERTAINMENT
+ 744270
+
+
+
+
+ TELEPHONE EXPENSES
+ 745000
+
+
+
+
+ VIDEOCONFERENCE FEES
+ 745005
+
+
+
+
+ RADIO/TV FEES
+ 745010
+
+
+
+
+ FAX EXPENSES
+ 745020
+
+
+
+
+ TELEX EXPENSES
+ 745030
+
+
+
+
+ POST EXPENSES
+ 745040
+
+
+
+
+ SPECIAL COURIER EXPENSES
+ 745050
+
+
+
+
+ AUDIT FEES
+ 746000
+
+
+
+
+ LEGAL AND CONSULTANCY FEES
+ 746010
+
+
+
+
+ DIRECTORS FEES
+ 746050
+
+
+
+
+ STATIONERY & OFFICE SUPPLIES
+ 747000
+
+
+
+
+ COMPUTER EXPENSES
+ 747010
+
+
+
+
+ CLOUD EXPENSES
+ 747011
+
+
+
+
+ INTERVENTION/HELPDESK
+ 747012
+
+
+
+
+ INTERNET
+ 747013
+
+
+
+
+ INFOR
+ 747014
+
+
+
+
+ CTRM
+ 747015
+
+
+
+
+ SCSK RPA
+ 747016
+
+
+
+
+ SITE WEB
+ 747017
+
+
+
+
+ GAMMADIA/TIPEE
+ 747018
+
+
+
+
+ SCSK CDM
+ 747019
+
+
+
+
+ PHOTOCOPIER EXPENSES
+ 747020
+
+
+
+
+ MAINTENANCE/REPAIRS EQUIPMENT
+ 747040
+
+
+
+
+ MAINTENANCE/REPAIRS FIXTURES
+ 747050
+
+
+
+
+ CLEANING & DECORATION OFFICES
+ 747070
+
+
+
+
+ ADVERTISING
+ 748000
+
+
+
+
+ PUBLICATION & DOCUMENTATION
+ 748010
+
+
+
+
+ STUDY & ANALYSIS
+ 748015
+
+
+
+
+ CONTRIBUTIONS & SUBSCRIPTIONS
+ 748020
+
+
+
+
+ CONFERENCE & MEETING EXPENSES
+ 748030
+
+
+
+
+ MISSION & ENTERTAINING
+ 748040
+
+
+
+
+ DONATIONS & GIFTS
+ 748060
+
+
+
+
+ LEGAL & DEED COSTS
+ 748070
+
+
+
+
+ MGT - SF SC-EU
+ 749060
+
+
+
+
+ MGT - RISK-M SC-EU
+ 749061
+
+
+
+
+ MGT - SF SC-TOKYO
+ 749070
+
+
+
+
+ ITAP PAYROLL
+ 771200
+
+
+
+
+ ITAP PAYROLL (SGD)
+ 771201
+
+
+
+
+ ITAP CHR SOC/CPF
+ 771202
+
+
+
+
+ ITAP DAS TRAVEL & ENTERTAINMENT
+ 771210
+
+
+
+
+ ITAP SHT TRAVEL & ENTERTAINMENT
+ 771211
+
+
+
+
+ ITAP RENT
+ 771220
+
+
+
+
+ ITAP IT & TELECOM EXP
+ 771221
+
+
+
+
+ ITAP ADMIN EXP
+ 771222
+
+
+
+
+ LOSSES FROM BAD DEBTS
+ 790000
+
+
+
+
+ EXCHANGE LOSSES
+ 790100
+
+
+
+
+ DEPRE. MACHIN.&EQUIP.
+ 791000
+
+
+
+
+ DEPRE. FIXTURES
+ 791100
+
+
+
+
+ AMORTIZATION GOODWILL
+ 792000
+
+
+
+
+ INTERESTS ON BANK C/A SWISS
+ 800000
+
+
+
+
+ INTERESTS ON BANK C/A FOREIGN
+ 800001
+
+
+
+
+ INTERESTS ON TD FOREIGN
+ 800100
+
+
+
+
+ INTERESTS ON TD SWISS
+ 800110
+
+
+
+
+ OTHER INTERESTS - FEFERMEX
+ 800150
+
+
+
+
+ INTERESTS ON LOAN - ITC
+ 800156
+
+
+
+
+ SECURITIES GAINS FOREIGN
+ 800160
+
+
+
+
+ INTERESTS DEBITED ON CONTRACTS
+ 800200
+
+
+
+
+ EXCHANGE PROFIT
+ 800500
+
+
+
+
+ SUNDRY INCOME OVERHEADS
+ 820000
+
+
+
+
+ SATCO SUNDRY INCOME OVERHEADS
+ 820050
+
+
+
+
+ ITC SUNDRY INCOME OVERHEADS
+ 820051
+
+
+
+
+ IAPL SUNDRY INCOME OVERHEADS
+ 820052
+
+
+
+
+ MANAG FEES LEPIDICO USD
+ 820250
+
+
+
+
+ OTHER INTERMARITIME
+ 820300
+
+
+
+
+ THAI COPPER INDUSTRIE
+ 820400
+
+
+
+
+ UBE CHEM ASIA (EX TCL) TANK LENDING INC. USD
+ 820480
+
+
+
+
+ SUNDRY INCOME S-ACID USD
+ 820500
+
+
+
+
+ SUNDRY INCOME SULPHUR USD
+ 820550
+
+
+
+
+ INCOME J-V FITCO
+ 821000
+
+
+
+
+ INCOME LLP ICL-SANTIAGO
+ 821100
+
+
+
+
+ INCOME INVESTMENT IAPL-MELBOUR
+ 821200
+
+
+
+
+ GAIN ON SALE OF INVEST. (IAPL)
+ 821250
+
+
+
+
+ GAIN ON SALE OF INVEST. (SATCO)
+ 821260
+
+
+
+
+ INCOME INVESTMENT ITSA-SANTIAG
+ 821300
+
+
+
+
+ INCOME INVESTMENT SATCO
+ 821400
+
+
+
+
+ GAIN ON SALE OF FIXED ASSETS
+ 830000
+
+
+
+
+ OTHER UNORDINARY INCOME
+ 835000
+
+
+
+
+ PREV. YEAR CONTRACTS ACID-SUL.
+ 8424000
+
+
+
+
+ STOLT CEDAR 01.02.25
+ 8424958
+
+
+
+
+ BLUE ARROW 28.01.25
+ 8424963
+
+
+
+
+ CHEMROAD ROSE 24.02.25
+ 8424965
+
+
+
+
+ CHEM SEA 1 17.03.25
+ 8424968
+
+
+
+
+ PREV. YEAR CONTRACTS SULPHUR
+ 8430000
+
+
+
+
+ ZAO GALAXY 09.04.25
+ 8524970
+
+
+
+
+ STOLT CEDAR 24.04.25
+ 8524971A
+
+
+
+
+ STOLT CEDAR 24.04.25
+ 8524971B
+
+
+
+
+ ASL ORCHID 02.04.25
+ 8524972A
+
+
+
+
+ ASL ORCHID 02.04.25
+ 8524972B
+
+
+
+
+ BOW CONDOR 03.04.25
+ 8524973B
+
+
+
+
+ TABLONES 11.05.25
+ 8524974A
+
+
+
+
+ TABLONES 11.05.25
+ 8524974B
+
+
+
+
+ G SILVER 08.04.25
+ 8524975
+
+
+
+
+ CHEM STAR 1 20.04.25
+ 8524976
+
+
+
+
+ BOW CONDOR 21.04.25
+ 8524977
+
+
+
+
+ EVA FUJI 06.05.25
+ 8524978
+
+
+
+
+ YC PANSY 30.05.25
+ 8524979
+
+
+
+
+ STOLT LERK 04.06.25
+ 8524980A
+
+
+
+
+ STOLT LERK 04.06.25
+ 8524980B
+
+
+
+
+ STOLT LERK 04.06.25
+ 8524980C
+
+
+
+
+ MTM NEWPORT 06.05.25
+ 8524981
+
+
+
+
+ SUNNY ORION 15.05.25
+ 8524982A
+
+
+
+
+ SUNNY ORION 15.05.25
+ 8524982B
+
+
+
+
+ MTM DUBLIN 16.05.25
+ 8524983
+
+
+
+
+ FAIRCHEM PINNACLE 15.06.25
+ 8524984
+
+
+
+
+ FUJI GALAXY 24.06.25
+ 8524985
+
+
+
+
+ STOLT CEDAR 05.07.25
+ 8524986A
+
+
+
+
+ STOLT CEDAR 05.07.25
+ 8524986B
+
+
+
+
+ STOLT CEDAR 05.07.25
+ 8524986C
+
+
+
+
+ GOLDEN HACHI 16.06.25
+ 8524987
+
+
+
+
+ ORCHID SYLT 22.06.25
+ 8524988
+
+
+
+
+ OM SHANGHAI 19.07.25
+ 8524989
+
+
+
+
+ ARGENT DAISY 18.09.25
+ 8524990A
+
+
+
+
+ ARGENT DAISY 18.09.25
+ 8524990B
+
+
+
+
+ YC DAISY 07.07.25
+ 8524991
+
+
+
+
+ CHEM SCEPTRUM 19.07.25
+ 8524992
+
+
+
+
+ JBU OPAL 16.08.25
+ 8524993
+
+
+
+
+ SC CITRINE 25.08.25
+ 8524994
+
+
+
+
+ STOLT SYCAMORE 26.08.25
+ 8524995
+
+
+
+
+ CHEM SCEPTRUM 24.08.25
+ 8524996
+
+
+
+
+ BOW HARMONY 05.09.2025
+ 8524997A
+
+
+
+
+ BOW HARMONY 05.09.2025
+ 8524997B
+
+
+
+
+ SC CHONGQING 24.08.25
+ 8524998
+
+
+
+
+ CHEM SOL 12.09.2025
+ 8524999
+
+
+
+
+ BOW CONDOR 21.08.25
+ 8525000
+
+
+
+
+ STOLT MAPLE 06.10.2025
+ 8525001A
+
+
+
+
+ STOLT MAPLE 06.10.2025
+ 8525001B
+
+
+
+
+ STOLT MAPLE 06.10.2025
+ 8525001C
+
+
+
+
+ STOLT MAPLE 06.10.2025
+ 8525001D
+
+
+
+
+ CHEMROAD QUEST 29.10.25
+ 8525002A
+
+
+
+
+ CHEMROAD QUEST 29.10.25
+ 8525002B
+
+
+
+
+ CHEMSTAR RIVER 03.10.2025
+ 8525003
+
+
+
+
+ XT SEA LION 14.10.25
+ 8525004
+
+
+
+
+ AMELIA 17.10.25
+ 8525005
+
+
+
+
+ XING TONG KAI MING 14.10.25
+ 8525006
+
+
+
+
+ WOOJIN KELLY 03.10.2025
+ 8525007A
+
+
+
+
+ WOOJIN KELLY 03.10.2025
+ 8525007B
+
+
+
+
+ WOOJIN KELLY 03.10.2025
+ 8525007C
+
+
+
+
+ CHEM STELLAR 03.11.25
+ 8525008
+
+
+
+
+ SC CHENGDU 15.11.25
+ 8525009
+
+
+
+
+ CHEM STREAM 18.10.25
+ 8525010
+
+
+
+
+ GOLDEN GATE PARK 16.11.25
+ 8525011A
+
+
+
+
+ GOLDEN GATE PARK 16.11.25
+ 8525011B
+
+
+
+
+ GOLDEN GATE PARK 16.11.25
+ 8525011C
+
+
+
+
+ GOLDEN GATE PARK 16.11.25
+ 8525011D
+
+
+
+
+ GOLDEN GATE PARK 16.11.25
+ 8525011E
+
+
+
+
+ STOLT FOCUS 14.11.25
+ 8525012
+
+
+
+
+ CLAYTON 30.11.25
+ 8525013A
+
+
+
+
+ CLAYTON 30.11.25
+ 8525013B
+
+
+
+
+ FORTE GALAXY 25.11.25
+ 8525014
+
+
+
+
+ ORCHID SYLT 26.11.25
+ 8525015
+
+
+
+
+ CONCON TRADE 13.12.25
+ 8525016
+
+
+
+
+ SAEHAN NURIA 20.12.2025
+ 8525017
+
+
+
+
+ LILA VANCOUVER 28.12.25
+ 8525018
+
+
+
+
+ GOLDEN CREATION 31.12.25
+ 8525019A
+
+
+
+
+ GOLDEN CREATION 31.12.25
+ 8525019B
+
+
+
+
+ SINAR MALAHYATI 29.12.2025
+ 8525022A
+
+
+
+
+ SINAR MALAHYATI 29.12.2025
+ 8525022B
+
+
+
+
+ SINAR MALAHYATI 29.12.2025
+ 8525022C
+
+
+
+
+ ERROR SUSPENS ACCOUNT
+ 9999
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/account_itsa/tryton.cfg b/modules/account_itsa/tryton.cfg
new file mode 100644
index 0000000..5b32053
--- /dev/null
+++ b/modules/account_itsa/tryton.cfg
@@ -0,0 +1,10 @@
+[tryton]
+version=7.2.3
+depends:
+ account
+extras_depend:
+ account_invoice
+xml:
+ account_itsa.xml
+ #tax_ict.xml
+
\ No newline at end of file
From 372d04b30f09c096c0c390ffd51977a41844933c Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 8 Mar 2026 09:09:10 +0100
Subject: [PATCH 404/618] 08.03.26
---
modules/account_itsa/account_itsa.xml | 838 ++++++++++++++++----------
1 file changed, 506 insertions(+), 332 deletions(-)
diff --git a/modules/account_itsa/account_itsa.xml b/modules/account_itsa/account_itsa.xml
index 50bcd29..bb2bcd5 100644
--- a/modules/account_itsa/account_itsa.xml
+++ b/modules/account_itsa/account_itsa.xml
@@ -5,6 +5,180 @@
ITSA accounting plan
+
+ Cash and bank accounts
+
+ balance
+
+
+
+ Trade receivables
+
+ balance
+
+
+
+ Securities / forex contracts
+
+ balance
+
+
+
+ Prepaid expenses
+
+ balance
+
+
+
+ Inventory and stock
+
+ balance
+
+
+
+ Financial fixed assets
+
+ balance
+
+
+
+ Tangible fixed assets
+
+ balance
+
+
+
+ Depreciation / amortization
+
+ balance
+
+
+
+ Intangible assets / goodwill
+
+ balance
+
+
+
+ Trade payables / creditors
+
+ balance
+
+
+
+ Advances from customers
+
+ balance
+
+
+
+ VAT and tax liabilities
+
+ balance
+
+
+
+ Provisions and accrued liabilities
+
+ balance
+
+
+
+ Long-term debt
+
+ balance
+
+
+
+ Long-term provisions
+
+ balance
+
+
+
+ Share capital
+
+ balance
+
+
+
+ Reserves and retained earnings
+
+ balance
+
+
+
+ Financial expenses
+
+ off-balance
+
+
+
+ Financial income
+
+ off-balance
+
+
+
+ Personnel expenses
+
+ off-balance
+
+
+
+ Depreciation expense
+
+ off-balance
+
+
+
+
+
+ Direct taxes
+
+ off-balance
+
+
+
+ Other operating expenses
+
+ off-balance
+
+
+
+ Other operating income
+
+ off-balance
+
+
+
+ Trading / transaction income
+
+ off-balance
+
+
+
+ Exchange differences
+
+ off-balance
+
+
+
+ Profit and loss account
+
+ off-balance
+
+
CURRENT ASSETS
@@ -969,7 +1143,7 @@
PETTY CASH CHF
100000
-
+
@@ -977,7 +1151,7 @@
BTM UFJ C/A USD 230367
110230
-
+
@@ -985,7 +1159,7 @@
CS-LSNE C/A CHF 203121-41
110300
-
+
@@ -993,7 +1167,7 @@
CS-LSNE C/A EUR 203121-42-11
110301
-
+
@@ -1001,7 +1175,7 @@
CS-LSNE C/A USD 203121-42
110302
-
+
@@ -1009,7 +1183,7 @@
CS-LSNE C/A USD 203121-42-17 DEPOSIT
110310
-
+
@@ -1017,7 +1191,7 @@
CS-LSNE 203121-42-35 C/48H USD
110320
-
+
@@ -1025,7 +1199,7 @@
CS-LSNE C/A CHF 203121-41-1
110350
-
+
@@ -1033,7 +1207,7 @@
UBS-LSNE C/A CHF 285.017.01 T
112100
-
+
@@ -1041,7 +1215,7 @@
UBS-LSNE C/A USD 285.017.60 W
112101
-
+
@@ -1049,7 +1223,7 @@
UBS-LSNE C/A EUR 285.017.61 Q
112102
-
+
@@ -1057,7 +1231,7 @@
UBS-LSNE C/A CHF RENTAL SURETY SAVINGS ACCOUNT
112110
-
+
@@ -1065,7 +1239,7 @@
UBS-LSNE C/A CHF 285.017.02 Z SALARY
112150
-
+
@@ -1073,7 +1247,7 @@
UBS-LSNE C/A USD 285.017.62 Y DEPOSIT CALL
112200
-
+
@@ -1081,7 +1255,7 @@
C.S. - LSNE TIME DEPOSIT USD
120300
-
+
@@ -1089,7 +1263,7 @@
SC CAPITAL EUROPE TIME DEPOSIT
120400
-
+
@@ -1097,7 +1271,7 @@
UBS LSNE TIME DEPOSIT USD
120600
-
+
@@ -1105,7 +1279,7 @@
SC-MITSUI BANK. TIME DEP. USD
124500
-
+
@@ -1113,7 +1287,7 @@
FOREX CONTRACT CHF
135000
-
+
@@ -1121,7 +1295,7 @@
FOREX CONTRACT OVERHEADS F CHF
135001
-
+
@@ -1129,7 +1303,7 @@
CUSTOMERS
140000
-
+
@@ -1137,7 +1311,7 @@
COMMISSIONS TO BE RECEIVED
142000
-
+
@@ -1145,7 +1319,7 @@
OTHER TRADE DEBTORS
145000
-
+
@@ -1153,7 +1327,7 @@
TC TEMPORARY DEBTORS
147000
-
+
@@ -1161,7 +1335,7 @@
ADVANCES TO SUPPLIERS
148000
-
+
@@ -1169,7 +1343,7 @@
OTHERS DEBTORS
150000
-
+
@@ -1177,7 +1351,7 @@
AFC ''VAT TO BE RECEIVED''
150001
-
+
@@ -1185,7 +1359,7 @@
AFC " VAT DEDUC PURCH&SERV7.7.0%
150007
-
+
@@ -1193,7 +1367,7 @@
AFC ''VAT DEDUCTIBLE 3.8%''
150008
-
+
@@ -1201,7 +1375,7 @@
SPAIN "VAT TO BE RECEIVED"
150012
-
+
@@ -1209,7 +1383,7 @@
AFC ''VAT DEDUCTIBLE 3.7.0%''
150014
-
+
@@ -1217,7 +1391,7 @@
AFC ''VAT DEDUCTIBLE 8.1%'' 2024
150015
-
+
@@ -1225,7 +1399,7 @@
AFC ''VAT DEDUCTIBLE 2,6%''2024
150016
-
+
@@ -1233,7 +1407,7 @@
VAUDOISE ASSURANCE CHF
150526
-
+
@@ -1241,7 +1415,7 @@
ACCRUED ASSETS USD
164030
-
+
@@ -1249,7 +1423,7 @@
SCCEU CAPITAL EUROPE ACCRUED ASSETS OVERHEADS
164040
-
+
@@ -1257,7 +1431,7 @@
CREDIT SUISSE ACCRUED ASSETS OVERHEADS
164041
-
+
@@ -1265,7 +1439,7 @@
UBS SA ACCRUED ASSETS OVERHEADS
164042
-
+
@@ -1273,7 +1447,7 @@
ITC ACCRUED ASSETS OVERHEADS USD
164051
-
+
@@ -1281,7 +1455,7 @@
PREPAID EXPENSES
180000
-
+
@@ -1289,7 +1463,7 @@
PREPAID EXPENSES CHF
180000CHF
-
+
@@ -1297,7 +1471,7 @@
PREPAID EXPENSES EUR
180000EUR
-
+
@@ -1305,7 +1479,7 @@
PREPAID EXPENSES USD
180000USD
-
+
@@ -1313,7 +1487,7 @@
PREPAID OVERHEADS
180400
-
+
@@ -1321,7 +1495,7 @@
PREPAID OVERHEADS CHF
180400CHF
-
+
@@ -1329,7 +1503,7 @@
PREPAID OVERHEADS EUR
180400EUR
-
+
@@ -1337,7 +1511,7 @@
PREPAID OVERHEADS USD
180400USD
-
+
@@ -1345,7 +1519,7 @@
INTERNAL TRANSFERS
190000
-
+
@@ -1353,7 +1527,7 @@
OFFICE FURNITURE
221000
-
+
@@ -1361,7 +1535,7 @@
DEPRECIATION OFF. FURNITURE
221100
-
+
@@ -1369,7 +1543,7 @@
OFFICE EQUIPMENT
222000
-
+
@@ -1377,7 +1551,7 @@
DEPRECIATION OFF. EQUIPMENT
222100
-
+
@@ -1385,7 +1559,7 @@
HARDWARE
223000
-
+
@@ -1393,7 +1567,7 @@
DEPRECIATION HARDWARE
223100
-
+
@@ -1401,7 +1575,7 @@
SOFTWARE
224000
-
+
@@ -1409,7 +1583,7 @@
DEPRECIATION SOFTWARE
224100
-
+
@@ -1417,7 +1591,7 @@
OFFICE FIXTURES
231000
-
+
@@ -1425,7 +1599,7 @@
DEPRECIATION OFF. FIXTURES
231500
-
+
@@ -1433,7 +1607,7 @@
INTERACID TRADING SA-SANTIAGO
252050
-
+
@@ -1441,7 +1615,7 @@
INTERACID CHILE SA-SANTIAGO
252100
-
+
@@ -1449,7 +1623,7 @@
RESERVE M.C. INTERACID CHILE S.A.
252101
-
+
@@ -1457,7 +1631,7 @@
AUREX GROUP USD
270400
-
+
@@ -1465,7 +1639,7 @@
GOLF VUISSENS - SHIROGRAPHIC CREDIT CHF
271100
-
+
@@ -1473,7 +1647,7 @@
DEPOSIT EN BUDRON H14 (UBS)
272000
-
+
@@ -1481,7 +1655,7 @@
DEPOSIT BAUMETTES 5 (UBS)
272100
-
+
@@ -1489,7 +1663,7 @@
GOODWILL SATCO
295000
-
+
@@ -1497,7 +1671,7 @@
AMORTIZATION GOODWILL SATCO
295100
-
+
@@ -1505,7 +1679,7 @@
GOODWILL INTERACID TRADING INC
295500
-
+
@@ -1513,7 +1687,7 @@
AMORTIZATION GOODWILL INTAC
295600
-
+
@@ -1521,7 +1695,7 @@
GOODWILL INTER-SULPHUR LTD
295800
-
+
@@ -1529,7 +1703,7 @@
AMORTIZATION GOODWILL ISL
295900
-
+
@@ -1537,7 +1711,7 @@
FOREX CONTRACT CHF
330000
-
+
@@ -1545,7 +1719,7 @@
SUPPLIERS
340000
-
+
@@ -1553,7 +1727,7 @@
SHIPOWNERS
341000
-
+
@@ -1561,7 +1735,7 @@
COMMISSIONS TRADE
342000
-
+
@@ -1569,7 +1743,7 @@
COMMISSIONS BROKER
343000
-
+
@@ -1577,7 +1751,7 @@
CURRENT EXPENSES USD
344030
-
+
@@ -1585,7 +1759,7 @@
HOPECHEM USD
344031
-
+
@@ -1593,7 +1767,7 @@
PROVISION CHARTERES INSURANCE USD
344032
-
+
@@ -1601,7 +1775,7 @@
PROVISION ZURICH INSURANCE USD
344033
-
+
@@ -1609,7 +1783,7 @@
PROVISION ONEROUS CONTRACTS USD
344035
-
+
@@ -1617,7 +1791,7 @@
OTHER TRADE CREDITORS
346000
-
+
@@ -1625,7 +1799,7 @@
TD TEMPORARY CREDITORS
348000
-
+
@@ -1633,7 +1807,7 @@
ADVANCE FROM DEBTORS
349000
-
+
@@ -1641,7 +1815,7 @@
OTHER CREDITORS
360000
-
+
@@ -1649,7 +1823,7 @@
AFC ''VAT PAYABLE ON SALES''
360001
-
+
@@ -1657,7 +1831,7 @@
AFC "VAT PAYABLE ON SERVICES"
360005
-
+
@@ -1665,7 +1839,7 @@
OVERHEADS TO BE PAID
360351
-
+
@@ -1673,7 +1847,7 @@
OVERHEADS TO BE PAID CHF
360351CHF
-
+
@@ -1681,7 +1855,7 @@
OVERHEADS TO BE PAID EUR
360351EUR
-
+
@@ -1689,7 +1863,7 @@
OVERHEADS TO BE PAID USD
360351USD
-
+
@@ -1697,7 +1871,7 @@
ESTIMATED CREDIT LOSS (IFRS9) USD
384000
-
+
@@ -1705,7 +1879,7 @@
PROVISION FOR TAXES FY21
467300
-
+
@@ -1713,7 +1887,7 @@
PROVISION FOR TAXES FY22
467400
-
+
@@ -1721,7 +1895,7 @@
PROVISION FOR TAXES FY23
467500
-
+
@@ -1729,7 +1903,7 @@
PROVISION FOR TAXES FY24
467600
-
+
@@ -1737,7 +1911,7 @@
PROVISION FOR TAXES FY25
467700
-
+
@@ -1745,7 +1919,7 @@
CAPITAL STOCK
490000
-
+
@@ -1753,7 +1927,7 @@
GENERAL RESERVE
493000
-
+
@@ -1761,7 +1935,7 @@
PROFIT & LOSS ACCOUNT
495000
-
+
@@ -1769,1393 +1943,1393 @@
EXCHANGE DIFFERENCE GENERAL
500000
-
+
EXCHANGE DIFFERENCE CHF
502000
-
+
EXCHANGE DIFFERENCE GBP
504000
-
+
EXCHANGE DIFFERENCE
510000
-
+
EXCHANGE DIFFERENCE AUD
512000
-
+
EXCHANGE DIFFERENCE EUR
514000
-
+
EXCH DIFF CHF/USD TERM CRT
520000
-
+
EXCH DIFF CHF/USD TERM CRT (CHR)
521000
-
+
EXCH DIFF CHF/USD TERM CRT (PR)
522000
-
+
EXCHGE DIFF CHF/USD
550000
-
+
EXCHGE DIFF CHF/EUR
553000
-
+
EXCHGE DIFF SGD/USD
555000
-
+
EXCHGE DIFF GBP/USD
557000
-
+
EXCHGE DIFF JPY/USD
559000
-
+
INTERESTS ON BANK LOANS SWISS
700000
-
+
INTERESTS ON BANK LOANS FOREIGN
700001
-
+
INTERESTS CREDITED ON CONTRACT
700200
-
+
INTERESTS ON BANK C/A SWISS
700300
-
+
INTERESTS ON BANK C/A FOREIGN
700301
-
+
COM. & BK CHARGES SWISS
700500
-
+
COM. & BK CHARGES FOREIGN
700501
-
+
COM. & BK CHGES ON FD FOREIGN
700600
-
+
COM. & BK CHGES ON TD SWISS
700601
-
+
SUNDRY EXPENSES OVERHEADS
720000
-
+
ONEROUS CONTRACT PROV S-ACID USD
720475
-
+
ONEROUS CONTRACT PROV SULPHUR USD
720476
-
+
SUNDRY EXP. S-ACID USD
720500
-
+
BKCH EXP. S-ACID USD
720501
-
+
POSTAGE EXP S-ACID USD
720502
-
+
ESTIMATED CREDIT LOSS (IFRS9) USD
720503
-
+
STUDY & ANALYSIS
720600
-
+
LOSS ON SALE OF FIXED ASSETS
730000
-
+
LOSS ON LIQUID. OF FIX. ASSETS
731000
-
+
PROVISION FOR LOANS LOSSES (FEFERMEX) USD
732000
-
+
OTHER UNORDINARY EXPENSES
735000
-
+
SALARIES
740000
-
+
BONUS
740001
-
+
STAFF COSTS INVOICED
740005
-
+
13TH SALARIES
740010
-
+
DAILY ALLOWANCE
740015
-
+
MILITARY ALLOWANCE
740016
-
+
MATERNITY/PATERNITY ALLOWANCE
740017
-
+
SOCIAL CHARGES AVS/AC
740020
-
+
SOCIAL CHARGES AVS/AC BONUS
740021
-
+
PENSION FUNDS
740030
-
+
HEALTH & ACCIDENT INSURANCE
740040
-
+
STAFF INVOICE
740050
-
+
EXPATRIATE EXPENSES
740060
-
+
MEAL ALLOWANCE
740070
-
+
STAFF EXPENSES
740080
-
+
CAFETERIA EXPENSES
740090
-
+
TEMPORARY STAFF
740100
-
+
FEDERAL CANTONAL COMMUNAL TAX
741000
-
+
VAT
741500
-
+
RENT OFFICE
742000
-
+
RENT OFFICE CAVE
742001
-
+
RENT GARAGE
742010
-
+
RENT PARKING
742020
-
+
ACCOMODATION CHARGES
742030
-
+
WATER & ELECTRICITY
742050
-
+
INSURANCE PREMIUM
743000
-
+
JEC TRAVEL & ENTERTAINMENT
744100
-
+
JFM TRAVEL & ENTERTAINMENT
744120
-
+
STM TRAVEL & ENTERTAINMENT
744165
-
+
ROT TRAVEL & ENTERTAINMENT
744177
-
+
SHT TRAVEL & ENTERTAINMENT
744179
-
+
SMK TRAVEL & ENTERTAINMENT
744180
-
+
STZ TRAVEL & ENTERTAINMENT
744185
-
+
DAS TRAVEL & ENTERTAINMENT
744186
-
+
SHT TRAVEL & ENTERTAINMENT
744187
-
+
SUMITOMO TRAVEL & ENTERTAINMENT
744190
-
+
SATCO TRAVEL & ENTERTAINMENT
744200
-
+
SUNDRY TRAVEL & ENTERTAINMENT
744270
-
+
TELEPHONE EXPENSES
745000
-
+
VIDEOCONFERENCE FEES
745005
-
+
RADIO/TV FEES
745010
-
+
FAX EXPENSES
745020
-
+
TELEX EXPENSES
745030
-
+
POST EXPENSES
745040
-
+
SPECIAL COURIER EXPENSES
745050
-
+
AUDIT FEES
746000
-
+
LEGAL AND CONSULTANCY FEES
746010
-
+
DIRECTORS FEES
746050
-
+
STATIONERY & OFFICE SUPPLIES
747000
-
+
COMPUTER EXPENSES
747010
-
+
CLOUD EXPENSES
747011
-
+
INTERVENTION/HELPDESK
747012
-
+
INTERNET
747013
-
+
INFOR
747014
-
+
CTRM
747015
-
+
SCSK RPA
747016
-
+
SITE WEB
747017
-
+
GAMMADIA/TIPEE
747018
-
+
SCSK CDM
747019
-
+
PHOTOCOPIER EXPENSES
747020
-
+
MAINTENANCE/REPAIRS EQUIPMENT
747040
-
+
MAINTENANCE/REPAIRS FIXTURES
747050
-
+
CLEANING & DECORATION OFFICES
747070
-
+
ADVERTISING
748000
-
+
PUBLICATION & DOCUMENTATION
748010
-
+
STUDY & ANALYSIS
748015
-
+
CONTRIBUTIONS & SUBSCRIPTIONS
748020
-
+
CONFERENCE & MEETING EXPENSES
748030
-
+
MISSION & ENTERTAINING
748040
-
+
DONATIONS & GIFTS
748060
-
+
LEGAL & DEED COSTS
748070
-
+
MGT - SF SC-EU
749060
-
+
MGT - RISK-M SC-EU
749061
-
+
MGT - SF SC-TOKYO
749070
-
+
ITAP PAYROLL
771200
-
+
ITAP PAYROLL (SGD)
771201
-
+
ITAP CHR SOC/CPF
771202
-
+
ITAP DAS TRAVEL & ENTERTAINMENT
771210
-
+
ITAP SHT TRAVEL & ENTERTAINMENT
771211
-
+
ITAP RENT
771220
-
+
ITAP IT & TELECOM EXP
771221
-
+
ITAP ADMIN EXP
771222
-
+
LOSSES FROM BAD DEBTS
790000
-
+
EXCHANGE LOSSES
790100
-
+
DEPRE. MACHIN.&EQUIP.
791000
-
+
DEPRE. FIXTURES
791100
-
+
AMORTIZATION GOODWILL
792000
-
+
INTERESTS ON BANK C/A SWISS
800000
-
+
INTERESTS ON BANK C/A FOREIGN
800001
-
+
INTERESTS ON TD FOREIGN
800100
-
+
INTERESTS ON TD SWISS
800110
-
+
OTHER INTERESTS - FEFERMEX
800150
-
+
INTERESTS ON LOAN - ITC
800156
-
+
SECURITIES GAINS FOREIGN
800160
-
+
INTERESTS DEBITED ON CONTRACTS
800200
-
+
EXCHANGE PROFIT
800500
-
+
SUNDRY INCOME OVERHEADS
820000
-
+
SATCO SUNDRY INCOME OVERHEADS
820050
-
+
ITC SUNDRY INCOME OVERHEADS
820051
-
+
IAPL SUNDRY INCOME OVERHEADS
820052
-
+
MANAG FEES LEPIDICO USD
820250
-
+
OTHER INTERMARITIME
820300
-
+
THAI COPPER INDUSTRIE
820400
-
+
UBE CHEM ASIA (EX TCL) TANK LENDING INC. USD
820480
-
+
SUNDRY INCOME S-ACID USD
820500
-
+
SUNDRY INCOME SULPHUR USD
820550
-
+
INCOME J-V FITCO
821000
-
+
INCOME LLP ICL-SANTIAGO
821100
-
+
INCOME INVESTMENT IAPL-MELBOUR
821200
-
+
GAIN ON SALE OF INVEST. (IAPL)
821250
-
+
GAIN ON SALE OF INVEST. (SATCO)
821260
-
+
INCOME INVESTMENT ITSA-SANTIAG
821300
-
+
INCOME INVESTMENT SATCO
821400
-
+
GAIN ON SALE OF FIXED ASSETS
830000
-
+
OTHER UNORDINARY INCOME
835000
-
+
PREV. YEAR CONTRACTS ACID-SUL.
8424000
-
+
STOLT CEDAR 01.02.25
8424958
-
+
BLUE ARROW 28.01.25
8424963
-
+
CHEMROAD ROSE 24.02.25
8424965
-
+
CHEM SEA 1 17.03.25
8424968
-
+
PREV. YEAR CONTRACTS SULPHUR
8430000
-
+
ZAO GALAXY 09.04.25
8524970
-
+
STOLT CEDAR 24.04.25
8524971A
-
+
STOLT CEDAR 24.04.25
8524971B
-
+
ASL ORCHID 02.04.25
8524972A
-
+
ASL ORCHID 02.04.25
8524972B
-
+
BOW CONDOR 03.04.25
8524973B
-
+
TABLONES 11.05.25
8524974A
-
+
TABLONES 11.05.25
8524974B
-
+
G SILVER 08.04.25
8524975
-
+
CHEM STAR 1 20.04.25
8524976
-
+
BOW CONDOR 21.04.25
8524977
-
+
EVA FUJI 06.05.25
8524978
-
+
YC PANSY 30.05.25
8524979
-
+
STOLT LERK 04.06.25
8524980A
-
+
STOLT LERK 04.06.25
8524980B
-
+
STOLT LERK 04.06.25
8524980C
-
+
MTM NEWPORT 06.05.25
8524981
-
+
SUNNY ORION 15.05.25
8524982A
-
+
SUNNY ORION 15.05.25
8524982B
-
+
MTM DUBLIN 16.05.25
8524983
-
+
FAIRCHEM PINNACLE 15.06.25
8524984
-
+
FUJI GALAXY 24.06.25
8524985
-
+
STOLT CEDAR 05.07.25
8524986A
-
+
STOLT CEDAR 05.07.25
8524986B
-
+
STOLT CEDAR 05.07.25
8524986C
-
+
GOLDEN HACHI 16.06.25
8524987
-
+
ORCHID SYLT 22.06.25
8524988
-
+
OM SHANGHAI 19.07.25
8524989
-
+
ARGENT DAISY 18.09.25
8524990A
-
+
ARGENT DAISY 18.09.25
8524990B
-
+
YC DAISY 07.07.25
8524991
-
+
CHEM SCEPTRUM 19.07.25
8524992
-
+
JBU OPAL 16.08.25
8524993
-
+
SC CITRINE 25.08.25
8524994
-
+
STOLT SYCAMORE 26.08.25
8524995
-
+
CHEM SCEPTRUM 24.08.25
8524996
-
+
BOW HARMONY 05.09.2025
8524997A
-
+
BOW HARMONY 05.09.2025
8524997B
-
+
SC CHONGQING 24.08.25
8524998
-
+
CHEM SOL 12.09.2025
8524999
-
+
BOW CONDOR 21.08.25
8525000
-
+
STOLT MAPLE 06.10.2025
8525001A
-
+
STOLT MAPLE 06.10.2025
8525001B
-
+
STOLT MAPLE 06.10.2025
8525001C
-
+
STOLT MAPLE 06.10.2025
8525001D
-
+
CHEMROAD QUEST 29.10.25
8525002A
-
+
CHEMROAD QUEST 29.10.25
8525002B
-
+
CHEMSTAR RIVER 03.10.2025
8525003
-
+
XT SEA LION 14.10.25
8525004
-
+
AMELIA 17.10.25
8525005
-
+
XING TONG KAI MING 14.10.25
8525006
-
+
WOOJIN KELLY 03.10.2025
8525007A
-
+
WOOJIN KELLY 03.10.2025
8525007B
-
+
WOOJIN KELLY 03.10.2025
8525007C
-
+
CHEM STELLAR 03.11.25
8525008
-
+
SC CHENGDU 15.11.25
8525009
-
+
CHEM STREAM 18.10.25
8525010
-
+
GOLDEN GATE PARK 16.11.25
8525011A
-
+
GOLDEN GATE PARK 16.11.25
8525011B
-
+
GOLDEN GATE PARK 16.11.25
8525011C
-
+
GOLDEN GATE PARK 16.11.25
8525011D
-
+
GOLDEN GATE PARK 16.11.25
8525011E
-
+
STOLT FOCUS 14.11.25
8525012
-
+
CLAYTON 30.11.25
8525013A
-
+
CLAYTON 30.11.25
8525013B
-
+
FORTE GALAXY 25.11.25
8525014
-
+
ORCHID SYLT 26.11.25
8525015
-
+
CONCON TRADE 13.12.25
8525016
-
+
SAEHAN NURIA 20.12.2025
8525017
-
+
LILA VANCOUVER 28.12.25
8525018
-
+
GOLDEN CREATION 31.12.25
8525019A
-
+
GOLDEN CREATION 31.12.25
8525019B
-
+
SINAR MALAHYATI 29.12.2025
8525022A
-
+
SINAR MALAHYATI 29.12.2025
8525022B
-
+
SINAR MALAHYATI 29.12.2025
8525022C
-
+
ERROR SUSPENS ACCOUNT
9999
-
+
From 83ef3c6ae9271fd3516cf9593c4918578bd979bd Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 9 Mar 2026 15:17:34 +0100
Subject: [PATCH 405/618] 09.03.26
---
modules/product_month/product.py | 1 +
modules/purchase/view/purchase_form.xml | 3 +
modules/purchase_trade/party.py | 1 +
modules/purchase_trade/purchase.py | 39 +-
modules/purchase_trade/sale.py | 60 +-
modules/purchase_trade/view/party_form.xml | 3 +
modules/sale/sale_ict.fodt | 1924 ++------------------
modules/sale/view/sale_form.xml | 3 +
modules/sale/view/sale_line_form.xml | 3 +
9 files changed, 246 insertions(+), 1791 deletions(-)
diff --git a/modules/product_month/product.py b/modules/product_month/product.py
index 3c3baa5..d31c7bf 100755
--- a/modules/product_month/product.py
+++ b/modules/product_month/product.py
@@ -22,6 +22,7 @@ class Month(ModelView, ModelSQL):
is_cotation = fields.Boolean("Cotation month")
beg_date = fields.Date("Date from")
end_date = fields.Date("Date end")
+ description = fields.Char("Description")
class ProductMonth(ModelView, ModelSQL):
"Product month"
diff --git a/modules/purchase/view/purchase_form.xml b/modules/purchase/view/purchase_form.xml
index d8e9960..534e4da 100755
--- a/modules/purchase/view/purchase_form.xml
+++ b/modules/purchase/view/purchase_form.xml
@@ -18,6 +18,9 @@ this repository contains the full copyright notices and license terms. -->
+
+
+
diff --git a/modules/purchase_trade/party.py b/modules/purchase_trade/party.py
index b909820..b7bfc42 100755
--- a/modules/purchase_trade/party.py
+++ b/modules/purchase_trade/party.py
@@ -82,6 +82,7 @@ class Party(metaclass=PoolMeta):
association = fields.Many2One('purchase.association',"Association")
execution = fields.One2Many('party.execution','party',"")
sla = fields.One2Many('party.execution.sla','party', "Sla")
+ initial = fields.Char("Initials")
def IsAvailableForControl(self,sh):
return True
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index 4f9cc46..39254d6 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -235,11 +235,14 @@ class PurchaseCertificationWeightBasis(ModelSQL,ModelView):
__name__ = 'purchase.weight.basis'
name = fields.Char("Name")
qt_type = fields.Many2One('lot.qt.type',"Associated type to final invoice")
+ description = fields.Char("Description")
class PurchaseAssociation(ModelSQL,ModelView):
"Association"
__name__ = 'purchase.association'
name = fields.Char("Name")
+ party = fields.Many2One('party.party',"Party")
+ description = fields.Char("Description")
class PurchaseCrop(ModelSQL,ModelView):
"Crop"
@@ -283,6 +286,7 @@ class Purchase(metaclass=PoolMeta):
operator = fields.Many2One('party.party',"Operator")
our_reference = fields.Char("Our Reference")
company_visible = fields.Function(fields.Boolean("Visible"),'get_company_info')
+ lc_date = fields.Date("LC date")
def get_company_info(self,name):
return (self.company.party.name == 'MELYA')
@@ -530,41 +534,6 @@ class Line(metaclass=PoolMeta):
value=attribute.format(value)
))
return " | ".join(filter(None, values))
- # attributes = fields.Dict('product.attribute', 'Attributes',
- # domain=[
- # ('sets', '=', Eval('product._parent_template', {}).get('attribute_set',
- # Eval('attribute_set', -1))),
- # ],
- # states={
- # 'readonly': (~Eval('attribute_set')
- # & ~Eval('product._parent_template', {}).get('attribute_set')),
- # },
- # depends={'product.template'},
- # help="Add attributes to the variant.")
-
- # attributes_name = fields.Function(fields.Char(
- # "Attributes Name",
- # states={
- # 'invisible': ~Eval('attribute_set'),
- # }),
- # 'on_change_with_attributes_name')
-
- # @fields.depends('product', 'attributes')
- # def on_change_with_attributes_name(self, name=None):
- # if not self.product.attribute_set or not self.attributes:
- # return
-
- # def key(attribute):
- # return getattr(attribute, 'sequence', attribute.name)
-
- # values = []
- # for attribute in sorted(self.product.attribute_set.attributes, key=key):
- # if attribute.name in self.attributes:
- # value = self.attributes[attribute.name]
- # values.append(gettext('product_attribute.msg_label_value',
- # label=attribute.string,
- # value=attribute.format(value)))
- # return " | ".join(filter(None, values))
@classmethod
def default_price_type(cls):
diff --git a/modules/purchase_trade/sale.py b/modules/purchase_trade/sale.py
index 1b77c69..f7e1e7d 100755
--- a/modules/purchase_trade/sale.py
+++ b/modules/purchase_trade/sale.py
@@ -258,6 +258,7 @@ class Sale(metaclass=PoolMeta):
operator = fields.Many2One('party.party',"Operator")
our_reference = fields.Char("Our Reference")
company_visible = fields.Function(fields.Boolean("Visible"),'get_company_info')
+ lc_date = fields.Date("LC date")
def get_company_info(self,name):
return (self.company.party.name == 'MELYA')
@@ -279,7 +280,10 @@ class Sale(metaclass=PoolMeta):
@property
def report_price(self):
if self.lines:
- return amount_to_currency_words(self.lines[0].unit_price)
+ 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 ''
@@ -511,6 +515,52 @@ class SaleLine(metaclass=PoolMeta):
premium = fields.Numeric("Premium/Discount",digits='unit')
fee_ = fields.Many2One('fee.fee',"Fee")
+ attributes = fields.Dict(
+ 'product.attribute', 'Attributes',
+ domain=[
+ ('sets', '=', Eval('attribute_set')),
+ ],
+ states={
+ 'readonly': ~Eval('attribute_set'),
+ },
+ depends=['product', 'attribute_set'],
+ help="Add attributes to the variant."
+ )
+
+ attribute_set = fields.Function(
+ fields.Many2One('product.attribute.set', "Attribute Set"),
+ 'on_change_with_attribute_set'
+ )
+
+ attributes_name = fields.Function(
+ fields.Char("Attributes Name"),
+ 'on_change_with_attributes_name'
+ )
+
+ @fields.depends('product')
+ def on_change_with_attribute_set(self, name=None):
+ if self.product and self.product.template and self.product.template.attribute_set:
+ return self.product.template.attribute_set.id
+
+ @fields.depends('product', 'attributes')
+ def on_change_with_attributes_name(self, name=None):
+ if not self.product or not self.product.attribute_set or not self.attributes:
+ return
+
+ def key(attribute):
+ return getattr(attribute, 'sequence', attribute.name)
+
+ values = []
+ for attribute in sorted(self.product.attribute_set.attributes, key=key):
+ if attribute.name in self.attributes:
+ value = self.attributes[attribute.name]
+ values.append(gettext(
+ 'product_attribute.msg_label_value',
+ label=attribute.string,
+ value=attribute.format(value)
+ ))
+ return " | ".join(filter(None, values))
+
@classmethod
def default_price_type(cls):
return 'priced'
@@ -532,6 +582,14 @@ 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/party_form.xml b/modules/purchase_trade/view/party_form.xml
index be03e3f..7df457d 100755
--- a/modules/purchase_trade/view/party_form.xml
+++ b/modules/purchase_trade/view/party_form.xml
@@ -11,6 +11,9 @@
+
+
+
diff --git a/modules/sale/sale_ict.fodt b/modules/sale/sale_ict.fodt
index bac020c..7dc7a56 100644
--- a/modules/sale/sale_ict.fodt
+++ b/modules/sale/sale_ict.fodt
@@ -1,24 +1,24 @@
- LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 Invoice no willen 2026-02-26T13:52:00Z 2026-02-27T07:17:06.129000000 2025-12-17T14:25:00Z 15 PT47M1S
+ LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 Invoice no willen 2026-02-26T13:52:00Z 2026-03-09T13:18:09.798000000 2025-12-17T14:25:00Z 21 PT1H14M32S
- 30639
+ 46306
0
24236
- 11721
+ 12222
true
false
view2
- 7422
- 40040
+ 6276
+ 55543
0
- 30639
+ 46306
24234
- 42358
+ 58526
0
0
false
@@ -91,7 +91,7 @@
false
false
false
- 2371497
+ 2443797
1846560
false
false
@@ -149,6 +149,7 @@
+
@@ -161,7 +162,7 @@
-
+
@@ -502,15 +503,18 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
@@ -519,11 +523,11 @@
-
+
-
+
@@ -532,10 +536,10 @@
-
+
-
+
@@ -551,11 +555,11 @@
-
+
-
+
@@ -563,7 +567,7 @@
-
+
@@ -575,20 +579,11 @@
-
-
-
-
-
-
-
-
-
-
+
@@ -600,7 +595,7 @@
-
+
@@ -609,7 +604,7 @@
-
+
@@ -618,12 +613,21 @@
-
+
-
+
+
+
+
+
+
+
+
+
+
@@ -632,13 +636,13 @@
-
+
-
+
-
+
@@ -647,17 +651,8 @@
-
-
-
-
-
-
-
-
-
-
+
@@ -666,7 +661,7 @@
-
+
@@ -675,7 +670,7 @@
-
+
@@ -684,15 +679,24 @@
+
-
+
+
+
+
+
+
+
+
+
-
+
-
+
@@ -701,11 +705,31 @@
-
-
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -738,29 +762,38 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
+
+
+
+
+
+
+
+
+
@@ -790,7 +823,7 @@
-
+
iVBORw0KGgoAAAANSUhEUgAABZ4AAAC9CAIAAAC8iP/2AAAAAXNSR0IArs4c6QAAAAlwSFlz
AAAOxAAADsMB2mqY3AAA/7VJREFUeF7svQeAHMd1Jlyduydu3kUmQRLMIimJVBaVbStYWc6y
JdvncLZOtuxzOMmSreAsZ9/9tmVZsiVZWbKtnLMVSDGDAAkSGZsndw7/96p6ZmcXu8AsuAAW
@@ -3177,7 +3210,7 @@
-
+
iVBORw0KGgoAAAANSUhEUgAAAqoAAAAnCAIAAABIVv0SAAAAAXNSR0IArs4c6QAAAAlwSFlz
AAAOwwAADsMBx2+oZAAAge9JREFUeF7tvQeYHNW1LXwqdHXO05NHM8oSkkgOGDDGGGxMMjnn
nCyCAZFBRuScETlnEMlgMjbYmCwQymly7Byrq7q66l/7VM9o4OL3vff+j3e5WO320Jqprjpx
@@ -3811,8 +3844,8 @@
- <for each="sale in records">
-
+ <for each="sale in records">
+
@@ -3824,7 +3857,7 @@
-
+
@@ -3834,1816 +3867,197 @@
-
+
- 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()">
- <line>
- </for>
+ <for each="line in sale.report_agent.splitlines()">
+ <line>
+ </for>
-
-
+
+
-
- Growth
-
+
+ Growth
+
-
- <sale.lines[0].product.name 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.report_shipment>
+ <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> )
-
-
+
+
-
- Delivery
+
+ Shipment
-
- <sale.report_delivery>
+
+ <sale.lines[0].del_period.description if sale.lines[0].del_period else ''>
-
-
-
+
+
+
-
- Terms
+
+ Terms
-
- <sale.report_terms>
+
+ <sale.incoterm.code if sale.incoterm else ''> <sale.incoterm_location.party_name if sale.incoterm_location 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
- ALL DISPUTES RELATING TO THIS CONTRACT WILL BE RESOLVED THROUGH ARBITRATION IN ACCORDANCE WITH THE BYLAWS OF THE INTERNATIONAL COTTON ASSOCIATION, LIMITED. THIS AGREEMENT INCORPORATES THE BYLAWS WHICH SET OUT THE ASSOCIATION’S ARBITRATION PROCEDURE.
- - EITHER PARTY MUST NOT TAKE ANY LEGAL ACTION OVER A DISPUTE SUITABLE FOR ARBITRATION, OTHER THAN TO OBTAIN SECURITY FOR ANY CLAIM, UNLESS THEY HAVE FIRST OBTAINED AN ARBITRATION AWARD FROM THE INTERNATIONAL COTTON ASSOCIATION, LIMITED AND EXHAUSTED ALL MEANS OF APPEAL ALLOWED BY THE ASSOCIATION’S BYLAWS.
+ - EITHER PARTY MUST NOT TAKE ANY LEGAL ACTION OVER A DISPUTE SUITABLE FOR ARBITRATION, OTHER THAN TO OBTAIN SECURITY FOR ANY CLAIM, UNLESS THEY HAVE FIRST OBTAINED AN ARBITRATION AWARD FROM THE INTERNATIONAL COTTON ASSOCIATION, LIMITED AND EXHAUSTED ALL MEANS OF APPEAL ALLOWED BY THE ASSOCIATION’S BYLAWS.
-
+
-
- THE SELLERS
+
+ THE SELLERS
-
- THE BUYERS
+
+ THE BUYERS
- ICT TRADING SA
-
- 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
-
-
-
+ ICT TRADING SA
+
+
+
+
+
- <sale.party.rec_name>
+ <sale.party.rec_name>
- PC/AU/EL
- </for>
+ <sale.trader.initial> / <sale.operator.initial>
+
+ </for>
\ No newline at end of file
diff --git a/modules/sale/view/sale_form.xml b/modules/sale/view/sale_form.xml
index 7b2b453..cdf0f8f 100755
--- a/modules/sale/view/sale_form.xml
+++ b/modules/sale/view/sale_form.xml
@@ -20,6 +20,9 @@ this repository contains the full copyright notices and license terms. -->
+
+
+
diff --git a/modules/sale/view/sale_line_form.xml b/modules/sale/view/sale_line_form.xml
index 26c4fcc..8b118d0 100755
--- a/modules/sale/view/sale_line_form.xml
+++ b/modules/sale/view/sale_line_form.xml
@@ -13,6 +13,9 @@ this repository contains the full copyright notices and license terms. -->
+
+
+
From 7998467adf6097547129bd850fed91959ea6966e Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 9 Mar 2026 15:24:15 +0100
Subject: [PATCH 406/618] 09.03.26
---
modules/sale/sale_ict.fodt | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/modules/sale/sale_ict.fodt b/modules/sale/sale_ict.fodt
index 7dc7a56..48bd63c 100644
--- a/modules/sale/sale_ict.fodt
+++ b/modules/sale/sale_ict.fodt
@@ -1,7 +1,7 @@
- LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 Invoice no willen 2026-02-26T13:52:00Z 2026-03-09T13:18:09.798000000 2025-12-17T14:25:00Z 21 PT1H14M32S
+ LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 Invoice no willen 2026-02-26T13:52:00Z 2026-03-09T15:23:56.053000000 2025-12-17T14:25:00Z 22 PT3H20M18S
46306
@@ -13,7 +13,7 @@
view2
- 6276
+ 8759
55543
0
46306
@@ -4055,7 +4055,7 @@
- <sale.trader.initial> / <sale.operator.initial>
+ <sale.trader.initial if sale.trader else ''> / <sale.operator.initial if sale.operator else ''>
</for>
From 6717feb22da489517d794328445a624fd7ac02ba Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 9 Mar 2026 15:29:29 +0100
Subject: [PATCH 407/618] 09.03.26
---
modules/sale/view/sale_line_form.xml | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/modules/sale/view/sale_line_form.xml b/modules/sale/view/sale_line_form.xml
index 8b118d0..3f02e92 100755
--- a/modules/sale/view/sale_line_form.xml
+++ b/modules/sale/view/sale_line_form.xml
@@ -42,6 +42,10 @@ this repository contains the full copyright notices and license terms. -->
+
+
+
+
From c009b15ed0e561668de127bf448d8d8d61e7c186 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 9 Mar 2026 15:35:27 +0100
Subject: [PATCH 408/618] 09.03.26
---
modules/purchase_trade/sale.py | 1 +
1 file changed, 1 insertion(+)
diff --git a/modules/purchase_trade/sale.py b/modules/purchase_trade/sale.py
index f7e1e7d..d2573df 100755
--- a/modules/purchase_trade/sale.py
+++ b/modules/purchase_trade/sale.py
@@ -4,6 +4,7 @@ from trytond.model import fields
from trytond.pool import Pool, PoolMeta
from trytond.pyson import Bool, Eval, Id, If, PYSONEncoder
from trytond.model import (ModelSQL, ModelView)
+from trytond.i18n import gettext
from trytond.wizard import Button, StateTransition, StateView, Wizard, StateAction
from trytond.transaction import Transaction, inactive_records
from decimal import getcontext, Decimal, ROUND_HALF_UP
From 7cafd8381f552e8a7acef3b3b8aad1163bb8b96f Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 9 Mar 2026 15:49:51 +0100
Subject: [PATCH 409/618] 09.03.26
---
modules/purchase_trade/purchase.py | 2 +-
modules/sale/sale_ict.fodt | 41 ++++++------------------------
2 files changed, 9 insertions(+), 34 deletions(-)
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index 39254d6..abbc4a3 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -242,7 +242,7 @@ class PurchaseAssociation(ModelSQL,ModelView):
__name__ = 'purchase.association'
name = fields.Char("Name")
party = fields.Many2One('party.party',"Party")
- description = fields.Char("Description")
+ rule = fields.Text("Description")
class PurchaseCrop(ModelSQL,ModelView):
"Crop"
diff --git a/modules/sale/sale_ict.fodt b/modules/sale/sale_ict.fodt
index 48bd63c..ed9ab3c 100644
--- a/modules/sale/sale_ict.fodt
+++ b/modules/sale/sale_ict.fodt
@@ -1,24 +1,24 @@
- LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 Invoice no willen 2026-02-26T13:52:00Z 2026-03-09T15:23:56.053000000 2025-12-17T14:25:00Z 22 PT3H20M18S
+ LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 Invoice no willen 2026-02-26T13:52:00Z 2026-03-09T15:48:56.834000000 2025-12-17T14:25:00Z 24 PT3H45M18S
- 46306
+ 41065
0
24236
- 12222
+ 11721
true
false
view2
- 8759
- 55543
+ 7491
+ 47879
0
- 46306
+ 41065
24234
- 58526
+ 52784
0
0
false
@@ -3984,22 +3984,6 @@
<sale.incoterm.code if sale.incoterm else ''> <sale.incoterm_location.party_name if sale.incoterm_location else ''>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Payment
@@ -4009,21 +3993,12 @@
BEFORE <sale.report_payment_date> <sale.payment_term.description if sale.payment_term else ''>
-
-
-
-
-
-
-
-
Arbitration & Rules
- - ALL DISPUTES RELATING TO THIS CONTRACT WILL BE RESOLVED THROUGH ARBITRATION IN ACCORDANCE WITH THE BYLAWS OF THE INTERNATIONAL COTTON ASSOCIATION, LIMITED. THIS AGREEMENT INCORPORATES THE BYLAWS WHICH SET OUT THE ASSOCIATION’S ARBITRATION PROCEDURE.
- - EITHER PARTY MUST NOT TAKE ANY LEGAL ACTION OVER A DISPUTE SUITABLE FOR ARBITRATION, OTHER THAN TO OBTAIN SECURITY FOR ANY CLAIM, UNLESS THEY HAVE FIRST OBTAINED AN ARBITRATION AWARD FROM THE INTERNATIONAL COTTON ASSOCIATION, LIMITED AND EXHAUSTED ALL MEANS OF APPEAL ALLOWED BY THE ASSOCIATION’S BYLAWS.
+ <sale.association.rule if sale.association else ''>
From dd06fc523c5ad2601e2a27471a112c2d49939ae4 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 9 Mar 2026 16:11:42 +0100
Subject: [PATCH 410/618] 09.03.26
---
modules/purchase_trade/purchase.py | 73 ++++++++++++++++++
modules/purchase_trade/sale.py | 2 +
modules/sale/sale_ict.fodt | 116 ++++++++++++++---------------
3 files changed, 132 insertions(+), 59 deletions(-)
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/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 Invoice no willen 2026-02-26T13:52:00Z 2026-03-09T15:48:56.834000000 2025-12-17T14:25:00Z 24 PT3H45M18S
+ LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 Invoice no willen 2026-02-26T13:52:00Z 2026-03-09T16:07:48.870000000 2025-12-17T14:25:00Z 25 PT3H47M29S
- 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>
From 96aab15a7a1e46bb8e1d352d192dd35b5479ac4b Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 9 Mar 2026 16:52:19 +0100
Subject: [PATCH 411/618] 09.03.26
---
modules/purchase_trade/purchase.py | 6 +-
modules/purchase_trade/sale.py | 6 +-
modules/sale/sale_ict.fodt | 133 ++++++++++++++++-------------
3 files changed, 79 insertions(+), 66 deletions(-)
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index 1b880ab..14e670c 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -309,7 +309,7 @@ class Purchase(metaclass=PoolMeta):
@property
def report_price(self):
if self.lines:
- if self.lines[0].price_type == 'fixed':
+ 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()
@@ -319,8 +319,6 @@ class Purchase(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']
@@ -333,6 +331,8 @@ class Purchase(metaclass=PoolMeta):
@property
def report_payment_date(self):
if self.lines:
+ if self.lc_date:
+ return format_date_en(self.lc_date)
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:
diff --git a/modules/purchase_trade/sale.py b/modules/purchase_trade/sale.py
index 3ff6da3..b18ca45 100755
--- a/modules/purchase_trade/sale.py
+++ b/modules/purchase_trade/sale.py
@@ -281,7 +281,7 @@ class Sale(metaclass=PoolMeta):
@property
def report_price(self):
if self.lines:
- if self.lines[0].price_type == 'fixed':
+ 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()
@@ -291,8 +291,6 @@ 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']
@@ -305,6 +303,8 @@ class Sale(metaclass=PoolMeta):
@property
def report_payment_date(self):
if self.lines:
+ if self.lc_date:
+ return format_date_en(self.lc_date)
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:
diff --git a/modules/sale/sale_ict.fodt b/modules/sale/sale_ict.fodt
index f17b928..7194a9a 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/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 Invoice no willen 2026-02-26T13:52:00Z 2026-03-09T16:07:48.870000000 2025-12-17T14:25:00Z 25 PT3H47M29S
+ LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 Invoice no willen 2026-02-26T13:52:00Z 2026-03-09T16:51:17.346000000 2025-12-17T14:25:00Z 27 PT4H22M40S
- 39742
+ 42088
0
24236
11721
@@ -13,12 +13,12 @@
view2
- 11423
- 46249
+ 7491
+ 49431
0
- 39742
+ 42088
24234
- 51461
+ 53807
0
0
false
@@ -91,7 +91,7 @@
false
false
false
- 2494704
+ 2574500
1846560
false
false
@@ -162,7 +162,7 @@
-
+
@@ -666,14 +666,8 @@
-
-
-
-
-
-
-
-
+
+
@@ -682,7 +676,7 @@
-
+
@@ -691,6 +685,7 @@
+
@@ -699,16 +694,24 @@
+
+
+
+
+
+
+
+
-
+
-
+
-
+
@@ -717,14 +720,14 @@
-
+
-
+
-
-
+
+
@@ -751,46 +754,52 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
+
+
+
+
+
+
@@ -3843,7 +3852,7 @@
<for each="sale in records">
-
+
@@ -3914,7 +3923,7 @@
- <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>
@@ -3923,7 +3932,7 @@
- <sale.lines[0].attributes_name>
+ <sale.lines[0].attributes_name>
@@ -3932,7 +3941,7 @@
- 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> )
@@ -3946,7 +3955,7 @@
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> )
@@ -3958,11 +3967,11 @@
- Shipment
+ Shipment
- <sale.lines[0].del_period.description if sale.lines[0].del_period else ''>
+ <sale.lines[0].del_period.description if sale.lines[0].del_period else ''>
@@ -3979,7 +3988,7 @@
- <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 ''>
@@ -3987,8 +3996,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 ''>
@@ -3996,40 +4005,44 @@
Arbitration & Rules
- <sale.association.rule if sale.association else ''>
+ <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
-
-
-
-
-
+
+
+
+
+
- <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>
From 1dc69008d86f6a3cdfa99c983e23c720dfc71691 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 9 Mar 2026 17:50:26 +0100
Subject: [PATCH 412/618] 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/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 Invoice no willen 2026-02-26T13:52:00Z 2026-03-09T16:51:17.346000000 2025-12-17T14:25:00Z 27 PT4H22M40S
+ LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 Invoice no willen 2026-02-26T13:52:00Z 2026-03-09T17:49:58.165000000 2025-12-17T14:25:00Z 31 PT4H41M1S
- 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
From 5f744ec25cb4604675feb0d56b5ac6ad0914d838 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 9 Mar 2026 17:53:54 +0100
Subject: [PATCH 413/618] 09.03.26
---
modules/purchase_trade/sale.py | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/modules/purchase_trade/sale.py b/modules/purchase_trade/sale.py
index e9327bf..b21b9fb 100755
--- a/modules/purchase_trade/sale.py
+++ b/modules/purchase_trade/sale.py
@@ -278,15 +278,6 @@ 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 = ''
@@ -557,6 +548,15 @@ class SaleLine(metaclass=PoolMeta):
)
pricing_rule = fields.Text("Pricing description")
+
+ @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
@fields.depends('product')
def on_change_with_attribute_set(self, name=None):
From f4ae7ebd7c404c01197818434cd50680c9642803 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 9 Mar 2026 17:56:21 +0100
Subject: [PATCH 414/618] 09.03.26
---
modules/purchase_trade/sale.py | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/modules/purchase_trade/sale.py b/modules/purchase_trade/sale.py
index b21b9fb..aea4120 100755
--- a/modules/purchase_trade/sale.py
+++ b/modules/purchase_trade/sale.py
@@ -278,13 +278,6 @@ class Sale(metaclass=PoolMeta):
else:
return ''
- @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:
@@ -549,6 +542,13 @@ class SaleLine(metaclass=PoolMeta):
pricing_rule = fields.Text("Pricing description")
+ @property
+ def report_fixing_rule(self):
+ pricing_rule = ''
+ if self.lines:
+ pricing_rule = self.lines[0].pricing_rule
+ return pricing_rule
+
@property
def get_pricing_text(self):
pricing_text = ''
From e6984e339349d23f3290efe519ef77a36052ad47 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 9 Mar 2026 17:59:26 +0100
Subject: [PATCH 415/618] 09.03.26
---
modules/sale/sale_ict.fodt | 300 +++++++++++++++++++------------------
1 file changed, 153 insertions(+), 147 deletions(-)
diff --git a/modules/sale/sale_ict.fodt b/modules/sale/sale_ict.fodt
index 93d210f..c08d058 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/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 Invoice no willen 2026-02-26T13:52:00Z 2026-03-09T17:49:58.165000000 2025-12-17T14:25:00Z 31 PT4H41M1S
+ LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 Invoice no willen 2026-02-26T13:52:00Z 2026-03-09T17:59:00.179000000 2025-12-17T14:25:00Z 32 PT4H41M34S
- 42430
+ 43723
0
24236
11721
@@ -13,12 +13,12 @@
view2
- 10089
- 44309
+ 3547
+ 44697
0
- 42430
+ 43723
24234
- 54150
+ 55443
0
0
false
@@ -91,7 +91,7 @@
false
false
false
- 2733061
+ 2737201
1846560
false
false
@@ -162,7 +162,7 @@
-
+
@@ -509,15 +509,18 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
@@ -526,11 +529,11 @@
-
+
-
+
@@ -539,10 +542,10 @@
-
+
-
+
@@ -558,11 +561,11 @@
-
+
-
+
@@ -570,7 +573,7 @@
-
+
@@ -582,20 +585,11 @@
-
-
-
-
-
-
-
-
-
-
+
@@ -607,7 +601,7 @@
-
+
@@ -616,7 +610,7 @@
-
+
@@ -625,10 +619,16 @@
-
+
-
+
+
+
+
+
+
+
@@ -637,40 +637,40 @@
-
+
-
+
-
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
-
+
+
+
+
-
+
-
-
-
-
-
+
+
@@ -679,24 +679,13 @@
-
+
-
-
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
+
+
@@ -705,14 +694,24 @@
-
+
-
-
-
+
+
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
@@ -721,31 +720,38 @@
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
+
+
+
+
-
+
-
+
+
+
+
+
+
+
@@ -3875,7 +3881,7 @@
- <for each="sale in records">
+ <for each="sale in records">
@@ -3888,7 +3894,7 @@
-
+
@@ -3898,34 +3904,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()">
@@ -3934,121 +3940,121 @@
-
-
+
+
-
- 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> ) <sale.lines[0].get_pricing_text>
+ <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>
-
-
+
+
- <if test="sale.lines[0].report_fixing_rule">
+ <if test="sale.lines[0].pricing_rule">
-
+
- Fixation
+ Fixation
- <sale.lines[0].report_fixing_rule>
+ <sale.lines[0].report_fixing_rule>
- </if>
+ </if>
-
+
- Shipment
+ Shipment
- <sale.lines[0].del_period.description if sale.lines[0].del_period else ''>
+ <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">
@@ -4059,37 +4065,37 @@
-
+
-
- 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
From d70a784db8eb6fd22bb12a24dcb96d16bc6296f5 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 9 Mar 2026 18:05:08 +0100
Subject: [PATCH 416/618] 09.03.26
---
modules/purchase_trade/sale.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/modules/purchase_trade/sale.py b/modules/purchase_trade/sale.py
index aea4120..a0bc309 100755
--- a/modules/purchase_trade/sale.py
+++ b/modules/purchase_trade/sale.py
@@ -545,8 +545,8 @@ class SaleLine(metaclass=PoolMeta):
@property
def report_fixing_rule(self):
pricing_rule = ''
- if self.lines:
- pricing_rule = self.lines[0].pricing_rule
+ if self.pricing_rule:
+ pricing_rule = self.pricing_rule
return pricing_rule
@property
From cc8540ee9150ca37cf2303056e461c9ab799b7eb Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 9 Mar 2026 18:17:32 +0100
Subject: [PATCH 417/618] 09.03.26
---
modules/purchase_trade/sale.py | 10 +++
modules/sale/sale_ict.fodt | 144 ++++++++++++++++++---------------
2 files changed, 90 insertions(+), 64 deletions(-)
diff --git a/modules/purchase_trade/sale.py b/modules/purchase_trade/sale.py
index a0bc309..c187ceb 100755
--- a/modules/purchase_trade/sale.py
+++ b/modules/purchase_trade/sale.py
@@ -277,6 +277,16 @@ class Sale(metaclass=PoolMeta):
return quantity_to_words(self.lines[0].quantity)
else:
return ''
+
+ @property
+ def report_nb_bale(self):
+ text_bale = 'Nb Bales: '
+ nb_bale = 0
+ if self.lines:
+ for line in self.lines:
+ if line.lots:
+ nb_bale += sum([l.lot_qt for l in line.lots if l.lot_type == 'physic'])
+ return text_bale + str(nb_bale)
@property
def report_price(self):
diff --git a/modules/sale/sale_ict.fodt b/modules/sale/sale_ict.fodt
index c08d058..151d3bb 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/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 Invoice no willen 2026-02-26T13:52:00Z 2026-03-09T17:59:00.179000000 2025-12-17T14:25:00Z 32 PT4H41M34S
+ LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 Invoice no willen 2026-02-26T13:52:00Z 2026-03-09T18:12:30.870000000 2025-12-17T14:25:00Z 34 PT4H45M23S
- 43723
+ 41453
0
24236
11721
@@ -13,12 +13,12 @@
view2
- 3547
- 44697
+ 12876
+ 43533
0
- 43723
+ 41453
24234
- 55443
+ 53172
0
0
false
@@ -91,7 +91,7 @@
false
false
false
- 2737201
+ 2803949
1846560
false
false
@@ -162,7 +162,7 @@
-
+
@@ -667,12 +667,21 @@
-
+
+
+
+
+
+
+
+
+
+
@@ -681,21 +690,12 @@
-
+
-
+
-
-
-
-
-
-
-
-
-
@@ -703,7 +703,7 @@
-
+
@@ -712,6 +712,7 @@
+
@@ -720,16 +721,24 @@
+
+
+
+
+
+
+
+
-
+
-
+
-
+
@@ -738,24 +747,30 @@
-
+
-
+
-
+
+
+
+
-
+
-
+
+
+
+
@@ -3882,7 +3897,7 @@
<for each="sale in records">
-
+
@@ -3947,9 +3962,9 @@
-
- Growth
-
+
+ Growth
+
@@ -3958,20 +3973,20 @@
- 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> ) <sale.report_nb_bale>
@@ -3982,7 +3997,7 @@
- Price
+ 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>
@@ -4004,10 +4019,12 @@
- Fixation
+ Fixation
- <sale.lines[0].report_fixing_rule>
+ <for each="line in sale.lines[0].pricing_rule.splitlines()">
+ <line>
+ </for>
@@ -4020,10 +4037,11 @@
- Shipment
+ Shipment
<sale.lines[0].del_period.description if sale.lines[0].del_period else ''>
+
@@ -4035,26 +4053,24 @@
-
- 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">
@@ -4065,36 +4081,36 @@
-
+
-
- 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>
From 52c58df547725656c7d44dd2a75d2de266a4755b Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 9 Mar 2026 20:01:20 +0100
Subject: [PATCH 418/618] 09.03.26
---
modules/purchase_trade/sale.py | 4 +-
modules/sale/sale_ict.fodt | 361 ++++++++++++++++++---------------
2 files changed, 202 insertions(+), 163 deletions(-)
diff --git a/modules/purchase_trade/sale.py b/modules/purchase_trade/sale.py
index c187ceb..81ef4ad 100755
--- a/modules/purchase_trade/sale.py
+++ b/modules/purchase_trade/sale.py
@@ -280,7 +280,7 @@ class Sale(metaclass=PoolMeta):
@property
def report_nb_bale(self):
- text_bale = 'Nb Bales: '
+ text_bale = 'NB BALES: '
nb_bale = 0
if self.lines:
for line in self.lines:
@@ -561,7 +561,7 @@ class SaleLine(metaclass=PoolMeta):
@property
def get_pricing_text(self):
- pricing_text = ''
+ pricing_text = ' ON '
if self.price_components:
for pc in self.price_components:
if pc.price_index:
diff --git a/modules/sale/sale_ict.fodt b/modules/sale/sale_ict.fodt
index 151d3bb..45db553 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/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 Invoice no willen 2026-02-26T13:52:00Z 2026-03-09T18:12:30.870000000 2025-12-17T14:25:00Z 34 PT4H45M23S
+ LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 Invoice no willen 2026-02-26T13:52:00Z 2026-03-09T20:00:07.415000000 2025-12-17T14:25:00Z 37 PT4H57M49S
- 41453
+ 43789
0
24236
11721
@@ -13,12 +13,12 @@
view2
- 12876
- 43533
+ 10724
+ 45861
0
- 41453
+ 43789
24234
- 53172
+ 55508
0
0
false
@@ -91,7 +91,7 @@
false
false
false
- 2803949
+ 2969915
1846560
false
false
@@ -512,15 +512,18 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
@@ -529,11 +532,11 @@
-
+
-
+
@@ -542,10 +545,10 @@
-
+
-
+
@@ -561,11 +564,11 @@
-
+
-
+
@@ -573,7 +576,7 @@
-
+
@@ -585,20 +588,11 @@
-
-
-
-
-
-
-
-
-
-
+
@@ -610,7 +604,7 @@
-
+
@@ -619,7 +613,7 @@
-
+
@@ -628,7 +622,7 @@
-
+
@@ -637,10 +631,16 @@
-
+
-
+
+
+
+
+
+
+
@@ -649,18 +649,42 @@
-
+
-
+
+
+
+
+
+
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -669,7 +693,7 @@
-
+
@@ -678,34 +702,34 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -714,30 +738,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -745,16 +745,22 @@
-
+
+
+
+
+
+
-
-
+
+
+
-
-
+
+
@@ -763,14 +769,38 @@
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
@@ -846,6 +876,9 @@
+
+
+
@@ -875,7 +908,7 @@
-
+
iVBORw0KGgoAAAANSUhEUgAABZ4AAAC9CAIAAAC8iP/2AAAAAXNSR0IArs4c6QAAAAlwSFlz
AAAOxAAADsMB2mqY3AAA/7VJREFUeF7svQeAHMd1Jlyduydu3kUmQRLMIimJVBaVbStYWc6y
JdvncLZOtuxzOMmSreAsZ9/9tmVZsiVZWbKtnLMVSDGDAAkSGZsndw7/96p6ZmcXu8AsuAAW
@@ -3262,7 +3295,7 @@
-
+
iVBORw0KGgoAAAANSUhEUgAAAqoAAAAnCAIAAABIVv0SAAAAAXNSR0IArs4c6QAAAAlwSFlz
AAAOwwAADsMBx2+oZAAAge9JREFUeF7tvQeYHNW1LXwqdHXO05NHM8oSkkgOGDDGGGxMMjnn
nCyCAZFBRuScETlnEMlgMjbYmCwQymly7Byrq7q66l/7VM9o4OL3vff+j3e5WO320Jqprjpx
@@ -3896,8 +3929,8 @@
- <for each="sale in records">
-
+ <for each="sale in records">
+
@@ -3909,7 +3942,7 @@
-
+
@@ -3919,93 +3952,97 @@
-
+
- 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()">
<line>
</for>
+
-
-
+
+
-
- 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> ) <sale.report_nb_bale>
+ 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
+ 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>
+ <format_currency(sale.lines[0].linked_price, sale.party.lang, sale.lines[0].linked_currency) if sale.lines[0].linked_price else format_currency(sale.lines[0].unit_price, sale.party.lang, sale.currency)> ( <sale.report_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.lines[0].get_pricing_text>
+
-
-
+
+
@@ -4014,17 +4051,18 @@
<if test="sale.lines[0].pricing_rule">
-
+
- Fixation
+ Fixation
- <for each="line in sale.lines[0].pricing_rule.splitlines()">
- <line>
- </for>
+ <for each="line in sale.lines[0].pricing_rule.splitlines()">
+ <line>
+ </for>
+
@@ -4032,45 +4070,45 @@
</if>
-
+
- Shipment
+ Shipment
- <sale.lines[0].del_period.description if sale.lines[0].del_period else ''>
-
+ <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">
@@ -4078,40 +4116,41 @@
<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
From 5235b381c621ab64b8aad90a7fdf26770b379886 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 9 Mar 2026 20:10:53 +0100
Subject: [PATCH 419/618] 09.03.26
---
modules/sale/sale_ict.fodt | 174 ++++++++++++++++++-------------------
1 file changed, 84 insertions(+), 90 deletions(-)
diff --git a/modules/sale/sale_ict.fodt b/modules/sale/sale_ict.fodt
index 45db553..f9d7b32 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/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 Invoice no willen 2026-02-26T13:52:00Z 2026-03-09T20:00:07.415000000 2025-12-17T14:25:00Z 37 PT4H57M49S
+ LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 Invoice no willen 2026-02-26T13:52:00Z 2026-03-09T20:10:32.695000000 2025-12-17T14:25:00Z 38 PT5H2M54S
- 43789
+ 43427
0
24236
11721
@@ -13,12 +13,12 @@
view2
- 10724
- 45861
+ 11536
+ 45473
0
- 43789
+ 43427
24234
- 55508
+ 55146
0
0
false
@@ -91,7 +91,7 @@
false
false
false
- 2969915
+ 2973863
1846560
false
false
@@ -162,7 +162,7 @@
-
+
@@ -700,12 +700,24 @@
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -714,30 +726,12 @@
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -745,8 +739,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -755,14 +767,14 @@
-
+
-
+
-
+
@@ -771,36 +783,18 @@
-
+
-
+
-
-
-
-
-
-
-
-
+
+
-
-
-
-
+
-
-
-
-
-
-
-
-
-
@@ -3930,7 +3924,7 @@
<for each="sale in records">
-
+
@@ -3996,9 +3990,9 @@
-
- Growth
-
+
+ Growth
+
@@ -4007,22 +4001,22 @@
- 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> )
- <sale.report_nb_bale>
-
+ <sale.report_nb_bale>
+
@@ -4033,10 +4027,10 @@
- Price
+ Price
- <format_currency(sale.lines[0].linked_price, sale.party.lang, sale.lines[0].linked_currency) if sale.lines[0].linked_price else format_currency(sale.lines[0].unit_price, sale.party.lang, sale.currency)> ( <sale.report_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.lines[0].get_pricing_text>
+ <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> ( <sale.report_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.lines[0].get_pricing_text>
@@ -4056,7 +4050,7 @@
- Fixation
+ Fixation
<for each="line in sale.lines[0].pricing_rule.splitlines()">
@@ -4075,7 +4069,7 @@
- Shipment
+ Shipment
<sale.lines[0].del_period.description if sale.lines[0].del_period else ''>
@@ -4091,24 +4085,24 @@
- 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">
@@ -4120,36 +4114,36 @@
-
+
-
- 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>
From 265b41b206b1bb2812ddb16c7023ae25b8cf36a7 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 9 Mar 2026 20:15:09 +0100
Subject: [PATCH 420/618] 09.03.26
---
modules/purchase_trade/sale.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/modules/purchase_trade/sale.py b/modules/purchase_trade/sale.py
index 81ef4ad..73e0d35 100755
--- a/modules/purchase_trade/sale.py
+++ b/modules/purchase_trade/sale.py
@@ -561,11 +561,11 @@ class SaleLine(metaclass=PoolMeta):
@property
def get_pricing_text(self):
- pricing_text = ' ON '
+ pricing_text = ''
if self.price_components:
for pc in self.price_components:
if pc.price_index:
- pricing_text += ' ' + pc.price_index.description
+ pricing_text += 'ON ' + pc.price_index.price_desc
return pricing_text
@fields.depends('product')
From 039b278757066d79a2c230316f93c93c6f2a8c7a Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 9 Mar 2026 20:27:08 +0100
Subject: [PATCH 421/618] 09.03.26
---
modules/purchase_trade/sale.py | 5 +-
modules/sale/sale_ict.fodt | 127 +++++++++++++++++----------------
2 files changed, 69 insertions(+), 63 deletions(-)
diff --git a/modules/purchase_trade/sale.py b/modules/purchase_trade/sale.py
index 73e0d35..67740e9 100755
--- a/modules/purchase_trade/sale.py
+++ b/modules/purchase_trade/sale.py
@@ -292,7 +292,10 @@ class Sale(metaclass=PoolMeta):
def report_price(self):
if self.lines:
if self.lines[0].price_type == 'priced':
- return amount_to_currency_words(self.lines[0].unit_price)
+ if self.lines[0].linked_price:
+ return amount_to_currency_words(self.lines[0].linked_price,'USC','USC')
+ else:
+ 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:
diff --git a/modules/sale/sale_ict.fodt b/modules/sale/sale_ict.fodt
index f9d7b32..01bd958 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/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 Invoice no willen 2026-02-26T13:52:00Z 2026-03-09T20:10:32.695000000 2025-12-17T14:25:00Z 38 PT5H2M54S
+ 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
- 43427
+ 36941
0
24236
11721
@@ -13,12 +13,12 @@
view2
- 11536
- 45473
+ 14600
+ 46249
0
- 43427
+ 36941
24234
- 55146
+ 48660
0
0
false
@@ -91,7 +91,7 @@
false
false
false
- 2973863
+ 3002665
1846560
false
false
@@ -162,7 +162,7 @@
-
+
@@ -706,6 +706,9 @@
+
+
+
@@ -714,10 +717,10 @@
-
+
-
+
@@ -726,21 +729,12 @@
-
+
-
+
-
-
-
-
-
-
-
-
-
@@ -748,7 +742,7 @@
-
+
@@ -757,6 +751,7 @@
+
@@ -765,16 +760,24 @@
+
+
+
+
+
+
+
+
-
+
-
+
-
+
@@ -783,16 +786,16 @@
-
+
-
+
-
-
+
+
-
+
@@ -3924,7 +3927,7 @@
<for each="sale in records">
-
+
@@ -3990,9 +3993,9 @@
-
- Growth
-
+
+ Growth
+
@@ -4001,17 +4004,17 @@
- 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> )
@@ -4027,10 +4030,10 @@
- Price
+ 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> ( <sale.report_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.lines[0].get_pricing_text>
+ <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>
@@ -4050,7 +4053,7 @@
- Fixation
+ Fixation
<for each="line in sale.lines[0].pricing_rule.splitlines()">
@@ -4069,7 +4072,7 @@
- Shipment
+ Shipment
<sale.lines[0].del_period.description if sale.lines[0].del_period else ''>
@@ -4085,24 +4088,24 @@
- 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">
@@ -4114,36 +4117,36 @@
-
+
-
- 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>
From 840f03e5d8a25358de2e084c3f95dd625dc0180f Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 9 Mar 2026 20:32:51 +0100
Subject: [PATCH 422/618] 09.03.26
---
modules/purchase_trade/sale.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/purchase_trade/sale.py b/modules/purchase_trade/sale.py
index 67740e9..a7e477e 100755
--- a/modules/purchase_trade/sale.py
+++ b/modules/purchase_trade/sale.py
@@ -286,7 +286,7 @@ class Sale(metaclass=PoolMeta):
for line in self.lines:
if line.lots:
nb_bale += sum([l.lot_qt for l in line.lots if l.lot_type == 'physic'])
- return text_bale + str(nb_bale)
+ return text_bale + str(int(nb_bale))
@property
def report_price(self):
From aff4459942c7497c056911bdbfe81ba097bf7cdc Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 9 Mar 2026 20:35:42 +0100
Subject: [PATCH 423/618] 09.03.26
---
modules/purchase_trade/sale.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/purchase_trade/sale.py b/modules/purchase_trade/sale.py
index a7e477e..c5685e4 100755
--- a/modules/purchase_trade/sale.py
+++ b/modules/purchase_trade/sale.py
@@ -568,7 +568,7 @@ class SaleLine(metaclass=PoolMeta):
if self.price_components:
for pc in self.price_components:
if pc.price_index:
- pricing_text += 'ON ' + pc.price_index.price_desc
+ pricing_text += 'ON ' + pc.price_index.price_desc + ' ' + (pc.price_index.price_period.description if pc.price_index.price_period else '')
return pricing_text
@fields.depends('product')
From d609864822078ff6828a26ac868c3fa4cc0a7b1b Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 10 Mar 2026 12:46:03 +0100
Subject: [PATCH 424/618] 10.03.26
---
modules/purchase_trade/fee.py | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index 0f45677..2e52293 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -102,12 +102,12 @@ class Fee(ModelSQL,ModelView):
Date = Pool().get('ir.date')
return Date.today()
- @classmethod
- def default_qt_state(cls):
- LotQtType = Pool().get('lot.qt.type')
- lqt = LotQtType.search([('name','=','BL')])
- if lqt:
- return lqt[0].id
+ # @classmethod
+ # def default_qt_state(cls):
+ # LotQtType = Pool().get('lot.qt.type')
+ # lqt = LotQtType.search([('name','=','BL')])
+ # if lqt:
+ # return lqt[0].id
@fields.depends('price','unit','auto_calculation','mode','_parent_line.unit','_parent_line.lots','_parent_sale_line.unit','_parent_sale_line.lots','_parent_shipment_in.id')
def on_change_with_quantity(self, name=None):
From 5f49e01495a589acaa336ca0476094400e3810a3 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 10 Mar 2026 12:54:46 +0100
Subject: [PATCH 425/618] 10.03.26
---
modules/purchase_trade/fee.py | 26 +++++++++++++-------------
1 file changed, 13 insertions(+), 13 deletions(-)
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index 2e52293..d8083f9 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -102,14 +102,14 @@ class Fee(ModelSQL,ModelView):
Date = Pool().get('ir.date')
return Date.today()
- # @classmethod
- # def default_qt_state(cls):
- # LotQtType = Pool().get('lot.qt.type')
- # lqt = LotQtType.search([('name','=','BL')])
- # if lqt:
- # return lqt[0].id
+ @classmethod
+ def default_qt_state(cls):
+ LotQtType = Pool().get('lot.qt.type')
+ lqt = LotQtType.search([('name','=','BL')])
+ if lqt:
+ return lqt[0].id
- @fields.depends('price','unit','auto_calculation','mode','_parent_line.unit','_parent_line.lots','_parent_sale_line.unit','_parent_sale_line.lots','_parent_shipment_in.id')
+ @fields.depends('price','unit','auto_calculation','mode','_parent_line.unit','_parent_line.lots','_parent_sale_line.unit','_parent_sale_line.lots','_parent_shipment_in')
def on_change_with_quantity(self, name=None):
qt = None
unit = None
@@ -122,7 +122,6 @@ class Fee(ModelSQL,ModelView):
qt = sum([e.get_current_quantity() for e in line.lots])
unit = line.lots[0].lot_unit_line
logger.info("ON_CHANGE_WITH_QT0:%s",qt)
- logger.info("ON_CHANGE_WITH_SHIPMENT_IN:%s",self.shipment_in)
if self.shipment_in:
Lot = Pool().get('lot.lot')
lots = Lot.search([('lot_shipment_in','=',self.shipment_in.id)])
@@ -133,11 +132,12 @@ class Fee(ModelSQL,ModelView):
if not qt:
logger.info("ON_CHANGE_WITH_QT1:%s",qt)
LotQt = Pool().get('lot.qt')
- lqts = LotQt.search(['lot_shipment_in','=',self.shipment_in.id])
- if lqts:
- qt = Decimal(lqts[0].lot_quantity)
- unit = lqts[0].lot_unit
- logger.info("ON_CHANGE_WITH_QT2:%s",qt)
+ if self.shipment_in:
+ lqts = LotQt.search(['lot_shipment_in','=',self.shipment_in.id])
+ if lqts:
+ qt = Decimal(lqts[0].lot_quantity)
+ unit = lqts[0].lot_unit
+ logger.info("ON_CHANGE_WITH_QT2:%s",qt)
if self.mode != 'ppack':
return qt
else:
From 6d053dfe03fb280bff7f916b37a0577c3aa5199c Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 10 Mar 2026 12:59:07 +0100
Subject: [PATCH 426/618] 10.03.26
---
modules/purchase_trade/fee.py | 68 +++++++++++++++++------------------
1 file changed, 34 insertions(+), 34 deletions(-)
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index d8083f9..a8d89c6 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -109,40 +109,40 @@ class Fee(ModelSQL,ModelView):
if lqt:
return lqt[0].id
- @fields.depends('price','unit','auto_calculation','mode','_parent_line.unit','_parent_line.lots','_parent_sale_line.unit','_parent_sale_line.lots','_parent_shipment_in')
- def on_change_with_quantity(self, name=None):
- qt = None
- unit = None
- line = self.line
- logger.info("ON_CHANGE_WITH_LINE:%s",line)
- if not line:
- line = self.sale_line
- if line:
- if line.lots:
- qt = sum([e.get_current_quantity() for e in line.lots])
- unit = line.lots[0].lot_unit_line
- logger.info("ON_CHANGE_WITH_QT0:%s",qt)
- if self.shipment_in:
- Lot = Pool().get('lot.lot')
- lots = Lot.search([('lot_shipment_in','=',self.shipment_in.id)])
- logger.info("ON_CHANGE_WITH_LOTS:%s",lots)
- if lots:
- qt = sum([e.get_current_quantity() for e in lots])
- unit = lots[0].lot_unit_line
- if not qt:
- logger.info("ON_CHANGE_WITH_QT1:%s",qt)
- LotQt = Pool().get('lot.qt')
- if self.shipment_in:
- lqts = LotQt.search(['lot_shipment_in','=',self.shipment_in.id])
- if lqts:
- qt = Decimal(lqts[0].lot_quantity)
- unit = lqts[0].lot_unit
- logger.info("ON_CHANGE_WITH_QT2:%s",qt)
- if self.mode != 'ppack':
- return qt
- else:
- if self.auto_calculation:
- return (qt * Decimal(unit.factor) / Decimal(self.unit.factor)).to_integral_value(rounding=ROUND_UP)
+ # @fields.depends('price','unit','auto_calculation','mode','_parent_line.unit','_parent_line.lots','_parent_sale_line.unit','_parent_sale_line.lots','_parent_shipment_in')
+ # def on_change_with_quantity(self, name=None):
+ # qt = None
+ # unit = None
+ # line = self.line
+ # logger.info("ON_CHANGE_WITH_LINE:%s",line)
+ # if not line:
+ # line = self.sale_line
+ # if line:
+ # if line.lots:
+ # qt = sum([e.get_current_quantity() for e in line.lots])
+ # unit = line.lots[0].lot_unit_line
+ # logger.info("ON_CHANGE_WITH_QT0:%s",qt)
+ # if self.shipment_in:
+ # Lot = Pool().get('lot.lot')
+ # lots = Lot.search([('lot_shipment_in','=',self.shipment_in.id)])
+ # logger.info("ON_CHANGE_WITH_LOTS:%s",lots)
+ # if lots:
+ # qt = sum([e.get_current_quantity() for e in lots])
+ # unit = lots[0].lot_unit_line
+ # if not qt:
+ # logger.info("ON_CHANGE_WITH_QT1:%s",qt)
+ # LotQt = Pool().get('lot.qt')
+ # if self.shipment_in:
+ # lqts = LotQt.search(['lot_shipment_in','=',self.shipment_in.id])
+ # if lqts:
+ # qt = Decimal(lqts[0].lot_quantity)
+ # unit = lqts[0].lot_unit
+ # logger.info("ON_CHANGE_WITH_QT2:%s",qt)
+ # if self.mode != 'ppack':
+ # return qt
+ # else:
+ # if self.auto_calculation:
+ # return (qt * Decimal(unit.factor) / Decimal(self.unit.factor)).to_integral_value(rounding=ROUND_UP)
@fields.depends('price','mode','_parent_line.lots','_parent_sale_line.lots')
def on_change_with_unit(self, name=None):
From 93acacb9552d14b76c043a1e3423143e9a271c39 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 10 Mar 2026 13:04:13 +0100
Subject: [PATCH 427/618] 10.03.26
---
modules/purchase_trade/fee.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index a8d89c6..f905120 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -144,7 +144,7 @@ class Fee(ModelSQL,ModelView):
# if self.auto_calculation:
# return (qt * Decimal(unit.factor) / Decimal(self.unit.factor)).to_integral_value(rounding=ROUND_UP)
- @fields.depends('price','mode','_parent_line.lots','_parent_sale_line.lots')
+ @fields.depends('price','mode','_parent_line.lots','_parent_sale_line.lots','shipment_in')
def on_change_with_unit(self, name=None):
if self.mode != 'ppack':
line = self.line
From 1de11a846b7530afbd4f6082caff37c5d1de1a86 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 10 Mar 2026 14:29:12 +0100
Subject: [PATCH 428/618] 10.03.26
---
modules/purchase_trade/fee.py | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index f905120..24af301 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -454,16 +454,16 @@ class Fee(ModelSQL,ModelView):
FeeLots = Pool().get('fee.lots')
Lots = Pool().get('lot.lot')
LotQt = Pool().get('lot.qt')
- if fee.line:
- for l in fee.line.lots:
- if (l.lot_type == 'virtual' and len(fee.line.lots)==1) or (l.lot_type == 'physic' and len(fee.line.lots)>1):
- fl = FeeLots()
- fl.fee = fee.id
- fl.lot = l.id
- fl.line = l.line.id
- FeeLots.save([fl])
- qt_line += l.get_current_quantity_converted()
- unit = l.line.unit
+ # if fee.line:
+ # for l in fee.line.lots:
+ # if (l.lot_type == 'virtual' and len(fee.line.lots)==1) or (l.lot_type == 'physic' and len(fee.line.lots)>1):
+ # fl = FeeLots()
+ # fl.fee = fee.id
+ # fl.lot = l.id
+ # fl.line = l.line.id
+ # FeeLots.save([fl])
+ # qt_line += l.get_current_quantity_converted()
+ # unit = l.line.unit
if fee.sale_line:
for l in fee.sale_line.lots:
if (l.lot_type == 'virtual' and len(fee.sale_line.lots)==1) or (l.lot_type == 'physic' and len(fee.sale_line.lots)>1):
From 30ae86a987a518b6be70db975d41a6a81c7ffaa4 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 10 Mar 2026 14:44:16 +0100
Subject: [PATCH 429/618] 10.03.26
---
modules/purchase_trade/fee.py | 58 +++++++++++++++++------------------
1 file changed, 29 insertions(+), 29 deletions(-)
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index 24af301..04fdcf8 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -464,35 +464,35 @@ class Fee(ModelSQL,ModelView):
# FeeLots.save([fl])
# qt_line += l.get_current_quantity_converted()
# unit = l.line.unit
- if fee.sale_line:
- for l in fee.sale_line.lots:
- if (l.lot_type == 'virtual' and len(fee.sale_line.lots)==1) or (l.lot_type == 'physic' and len(fee.sale_line.lots)>1):
- fl = FeeLots()
- fl.fee = fee.id
- fl.lot = l.id
- fl.sale_line = l.sale_line.id
- FeeLots.save([fl])
- qt_line += l.get_current_quantity_converted()
- unit = l.sale_line.unit
- if fee.shipment_in:
- if fee.shipment_in.state == 'draft'or fee.shipment_in.state == 'started':
- lots = Lots.search(['lot_shipment_in','=',fee.shipment_in.id])
- if lots:
- for l in lots:
- fl = FeeLots()
- fl.fee = fee.id
- fl.lot = l.id
- FeeLots.save([fl])
- qt_sh += l.get_current_quantity_converted()
- unit = l.line.unit
- else:
- lqts = LotQt.search(['lot_shipment_in','=',fee.shipment_in.id])
- if lqts:
- for l in lqts:
- qt_sh += l.lot_p.get_current_quantity_converted()
- unit = l.lot_p.line.unit
- else:
- raise UserError("You cannot add fee on received shipment!")
+ # if fee.sale_line:
+ # for l in fee.sale_line.lots:
+ # if (l.lot_type == 'virtual' and len(fee.sale_line.lots)==1) or (l.lot_type == 'physic' and len(fee.sale_line.lots)>1):
+ # fl = FeeLots()
+ # fl.fee = fee.id
+ # fl.lot = l.id
+ # fl.sale_line = l.sale_line.id
+ # FeeLots.save([fl])
+ # qt_line += l.get_current_quantity_converted()
+ # unit = l.sale_line.unit
+ # if fee.shipment_in:
+ # if fee.shipment_in.state == 'draft'or fee.shipment_in.state == 'started':
+ # lots = Lots.search(['lot_shipment_in','=',fee.shipment_in.id])
+ # if lots:
+ # for l in lots:
+ # fl = FeeLots()
+ # fl.fee = fee.id
+ # fl.lot = l.id
+ # FeeLots.save([fl])
+ # qt_sh += l.get_current_quantity_converted()
+ # unit = l.line.unit
+ # else:
+ # lqts = LotQt.search(['lot_shipment_in','=',fee.shipment_in.id])
+ # if lqts:
+ # for l in lqts:
+ # qt_sh += l.lot_p.get_current_quantity_converted()
+ # unit = l.lot_p.line.unit
+ # else:
+ # raise UserError("You cannot add fee on received shipment!")
type = fee.type
if type == 'ordered':
From 814071e4c169911a8cff8f1e0e6e6d3f32d3cf52 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 10 Mar 2026 14:49:10 +0100
Subject: [PATCH 430/618] 10.03.26
---
modules/purchase_trade/fee.py | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index 04fdcf8..f9cfab6 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -355,16 +355,16 @@ class Fee(ModelSQL,ModelView):
return round(factor * self.sale_line.unit_price * (self.quantity if self.quantity else 0) * sign,2)
elif self.mode == 'perqt':
- if self.shipment_in:
- StockMove = Pool().get('stock.move')
- sm = StockMove.search(['shipment','=','stock.shipment.in,'+str(self.shipment_in.id)])
- if sm:
- unique_lots = {e.lot for e in sm if e.lot}
- return round(self.price * Decimal(sum([e.get_current_quantity_converted() for e in unique_lots])) * sign,2)
- LotQt = Pool().get('lot.qt')
- lqts = LotQt.search(['lot_shipment_in','=',self.shipment_in.id])
- if lqts:
- return round(self.price * Decimal(lqts[0].lot_quantity) * sign,2)
+ # if self.shipment_in:
+ # StockMove = Pool().get('stock.move')
+ # sm = StockMove.search(['shipment','=','stock.shipment.in,'+str(self.shipment_in.id)])
+ # if sm:
+ # unique_lots = {e.lot for e in sm if e.lot}
+ # return round(self.price * Decimal(sum([e.get_current_quantity_converted() for e in unique_lots])) * sign,2)
+ # LotQt = Pool().get('lot.qt')
+ # lqts = LotQt.search(['lot_shipment_in','=',self.shipment_in.id])
+ # if lqts:
+ # return round(self.price * Decimal(lqts[0].lot_quantity) * sign,2)
return round((self.quantity if self.quantity else 0) * self.price * sign,2)
elif self.mode == 'pprice':
From c0cffde079c34fef294961d4266ec6813b712157 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 10 Mar 2026 15:01:09 +0100
Subject: [PATCH 431/618] 10.03.26
---
modules/purchase_trade/fee.py | 98 +++++++++++++++++------------------
1 file changed, 49 insertions(+), 49 deletions(-)
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index f9cfab6..f905120 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -355,16 +355,16 @@ class Fee(ModelSQL,ModelView):
return round(factor * self.sale_line.unit_price * (self.quantity if self.quantity else 0) * sign,2)
elif self.mode == 'perqt':
- # if self.shipment_in:
- # StockMove = Pool().get('stock.move')
- # sm = StockMove.search(['shipment','=','stock.shipment.in,'+str(self.shipment_in.id)])
- # if sm:
- # unique_lots = {e.lot for e in sm if e.lot}
- # return round(self.price * Decimal(sum([e.get_current_quantity_converted() for e in unique_lots])) * sign,2)
- # LotQt = Pool().get('lot.qt')
- # lqts = LotQt.search(['lot_shipment_in','=',self.shipment_in.id])
- # if lqts:
- # return round(self.price * Decimal(lqts[0].lot_quantity) * sign,2)
+ if self.shipment_in:
+ StockMove = Pool().get('stock.move')
+ sm = StockMove.search(['shipment','=','stock.shipment.in,'+str(self.shipment_in.id)])
+ if sm:
+ unique_lots = {e.lot for e in sm if e.lot}
+ return round(self.price * Decimal(sum([e.get_current_quantity_converted() for e in unique_lots])) * sign,2)
+ LotQt = Pool().get('lot.qt')
+ lqts = LotQt.search(['lot_shipment_in','=',self.shipment_in.id])
+ if lqts:
+ return round(self.price * Decimal(lqts[0].lot_quantity) * sign,2)
return round((self.quantity if self.quantity else 0) * self.price * sign,2)
elif self.mode == 'pprice':
@@ -454,45 +454,45 @@ class Fee(ModelSQL,ModelView):
FeeLots = Pool().get('fee.lots')
Lots = Pool().get('lot.lot')
LotQt = Pool().get('lot.qt')
- # if fee.line:
- # for l in fee.line.lots:
- # if (l.lot_type == 'virtual' and len(fee.line.lots)==1) or (l.lot_type == 'physic' and len(fee.line.lots)>1):
- # fl = FeeLots()
- # fl.fee = fee.id
- # fl.lot = l.id
- # fl.line = l.line.id
- # FeeLots.save([fl])
- # qt_line += l.get_current_quantity_converted()
- # unit = l.line.unit
- # if fee.sale_line:
- # for l in fee.sale_line.lots:
- # if (l.lot_type == 'virtual' and len(fee.sale_line.lots)==1) or (l.lot_type == 'physic' and len(fee.sale_line.lots)>1):
- # fl = FeeLots()
- # fl.fee = fee.id
- # fl.lot = l.id
- # fl.sale_line = l.sale_line.id
- # FeeLots.save([fl])
- # qt_line += l.get_current_quantity_converted()
- # unit = l.sale_line.unit
- # if fee.shipment_in:
- # if fee.shipment_in.state == 'draft'or fee.shipment_in.state == 'started':
- # lots = Lots.search(['lot_shipment_in','=',fee.shipment_in.id])
- # if lots:
- # for l in lots:
- # fl = FeeLots()
- # fl.fee = fee.id
- # fl.lot = l.id
- # FeeLots.save([fl])
- # qt_sh += l.get_current_quantity_converted()
- # unit = l.line.unit
- # else:
- # lqts = LotQt.search(['lot_shipment_in','=',fee.shipment_in.id])
- # if lqts:
- # for l in lqts:
- # qt_sh += l.lot_p.get_current_quantity_converted()
- # unit = l.lot_p.line.unit
- # else:
- # raise UserError("You cannot add fee on received shipment!")
+ if fee.line:
+ for l in fee.line.lots:
+ if (l.lot_type == 'virtual' and len(fee.line.lots)==1) or (l.lot_type == 'physic' and len(fee.line.lots)>1):
+ fl = FeeLots()
+ fl.fee = fee.id
+ fl.lot = l.id
+ fl.line = l.line.id
+ FeeLots.save([fl])
+ qt_line += l.get_current_quantity_converted()
+ unit = l.line.unit
+ if fee.sale_line:
+ for l in fee.sale_line.lots:
+ if (l.lot_type == 'virtual' and len(fee.sale_line.lots)==1) or (l.lot_type == 'physic' and len(fee.sale_line.lots)>1):
+ fl = FeeLots()
+ fl.fee = fee.id
+ fl.lot = l.id
+ fl.sale_line = l.sale_line.id
+ FeeLots.save([fl])
+ qt_line += l.get_current_quantity_converted()
+ unit = l.sale_line.unit
+ if fee.shipment_in:
+ if fee.shipment_in.state == 'draft'or fee.shipment_in.state == 'started':
+ lots = Lots.search(['lot_shipment_in','=',fee.shipment_in.id])
+ if lots:
+ for l in lots:
+ fl = FeeLots()
+ fl.fee = fee.id
+ fl.lot = l.id
+ FeeLots.save([fl])
+ qt_sh += l.get_current_quantity_converted()
+ unit = l.line.unit
+ else:
+ lqts = LotQt.search(['lot_shipment_in','=',fee.shipment_in.id])
+ if lqts:
+ for l in lqts:
+ qt_sh += l.lot_p.get_current_quantity_converted()
+ unit = l.lot_p.line.unit
+ else:
+ raise UserError("You cannot add fee on received shipment!")
type = fee.type
if type == 'ordered':
From a7846b359cdc7e43756395508a36125491749acb Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 10 Mar 2026 15:21:47 +0100
Subject: [PATCH 432/618] 10.03.26
---
modules/purchase_trade/fee.py | 68 +++++++++++++++++------------------
1 file changed, 34 insertions(+), 34 deletions(-)
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index f905120..e7b5e41 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -109,40 +109,40 @@ class Fee(ModelSQL,ModelView):
if lqt:
return lqt[0].id
- # @fields.depends('price','unit','auto_calculation','mode','_parent_line.unit','_parent_line.lots','_parent_sale_line.unit','_parent_sale_line.lots','_parent_shipment_in')
- # def on_change_with_quantity(self, name=None):
- # qt = None
- # unit = None
- # line = self.line
- # logger.info("ON_CHANGE_WITH_LINE:%s",line)
- # if not line:
- # line = self.sale_line
- # if line:
- # if line.lots:
- # qt = sum([e.get_current_quantity() for e in line.lots])
- # unit = line.lots[0].lot_unit_line
- # logger.info("ON_CHANGE_WITH_QT0:%s",qt)
- # if self.shipment_in:
- # Lot = Pool().get('lot.lot')
- # lots = Lot.search([('lot_shipment_in','=',self.shipment_in.id)])
- # logger.info("ON_CHANGE_WITH_LOTS:%s",lots)
- # if lots:
- # qt = sum([e.get_current_quantity() for e in lots])
- # unit = lots[0].lot_unit_line
- # if not qt:
- # logger.info("ON_CHANGE_WITH_QT1:%s",qt)
- # LotQt = Pool().get('lot.qt')
- # if self.shipment_in:
- # lqts = LotQt.search(['lot_shipment_in','=',self.shipment_in.id])
- # if lqts:
- # qt = Decimal(lqts[0].lot_quantity)
- # unit = lqts[0].lot_unit
- # logger.info("ON_CHANGE_WITH_QT2:%s",qt)
- # if self.mode != 'ppack':
- # return qt
- # else:
- # if self.auto_calculation:
- # return (qt * Decimal(unit.factor) / Decimal(self.unit.factor)).to_integral_value(rounding=ROUND_UP)
+ @fields.depends('price','unit','auto_calculation','mode','_parent_line.unit','_parent_line.lots','_parent_sale_line.unit','_parent_sale_line.lots','_parent_shipment_in')
+ def on_change_with_quantity(self, name=None):
+ qt = None
+ unit = None
+ line = self.line
+ logger.info("ON_CHANGE_WITH_LINE:%s",line)
+ if not line:
+ line = self.sale_line
+ if line:
+ if line.lots:
+ qt = sum([e.get_current_quantity() for e in line.lots])
+ unit = line.lots[0].lot_unit_line
+ logger.info("ON_CHANGE_WITH_QT0:%s",qt)
+ if self.shipment_in:
+ Lot = Pool().get('lot.lot')
+ lots = Lot.search([('lot_shipment_in','=',self.shipment_in.id)])
+ logger.info("ON_CHANGE_WITH_LOTS:%s",lots)
+ if lots:
+ qt = sum([e.get_current_quantity() for e in lots])
+ unit = lots[0].lot_unit_line
+ if not qt:
+ logger.info("ON_CHANGE_WITH_QT1:%s",qt)
+ LotQt = Pool().get('lot.qt')
+ if self.shipment_in:
+ lqts = LotQt.search(['lot_shipment_in','=',self.shipment_in.id])
+ if lqts:
+ qt = Decimal(lqts[0].lot_quantity)
+ unit = lqts[0].lot_unit
+ logger.info("ON_CHANGE_WITH_QT2:%s",qt)
+ if self.mode != 'ppack':
+ return qt
+ else:
+ if self.auto_calculation:
+ return (qt * Decimal(unit.factor) / Decimal(self.unit.factor)).to_integral_value(rounding=ROUND_UP)
@fields.depends('price','mode','_parent_line.lots','_parent_sale_line.lots','shipment_in')
def on_change_with_unit(self, name=None):
From faf5fa605e6eaa2a479a9a30f06bead633206271 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 10 Mar 2026 15:33:22 +0100
Subject: [PATCH 433/618] 10.03.26
---
modules/purchase_trade/fee.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index e7b5e41..e684f89 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -109,7 +109,7 @@ class Fee(ModelSQL,ModelView):
if lqt:
return lqt[0].id
- @fields.depends('price','unit','auto_calculation','mode','_parent_line.unit','_parent_line.lots','_parent_sale_line.unit','_parent_sale_line.lots','_parent_shipment_in')
+ @fields.depends('line','sale_line','shipment_in','lots','price','unit','auto_calculation','mode','_parent_line.unit','_parent_line.lots','_parent_sale_line.unit','_parent_sale_line.lots')
def on_change_with_quantity(self, name=None):
qt = None
unit = None
From dee1896a6cb1de6546c059fcd8abae2dfb6a9d62 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 10 Mar 2026 21:18:19 +0100
Subject: [PATCH 434/618] 10.03.26
---
modules/purchase_trade/stock.py | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/modules/purchase_trade/stock.py b/modules/purchase_trade/stock.py
index 85f627d..c1fe603 100755
--- a/modules/purchase_trade/stock.py
+++ b/modules/purchase_trade/stock.py
@@ -804,7 +804,8 @@ class ShipmentIn(metaclass=PoolMeta):
"FeeUnitPrice": float(fee.price),
"ContractNumbers": sh.number,
"OrderQuantityGW": float(sh.get_quantity()) if sh.get_quantity() else float(1),
- "NumberOfPackingBales": int(fee.quantity) if fee.quantity else int(1)
+ "NumberOfPackingBales": int(fee.quantity) if fee.quantity else int(1),
+ "ChunkKeyList": sh.get_chunk_key()
}
logger.info("PAYLOAD:%s",so_payload)
@@ -857,6 +858,10 @@ class ShipmentIn(metaclass=PoolMeta):
def default_dashboard(cls):
return 1
+ def get_chunk_key(self):
+ keys = [m.lot.lot_chunk_key for m in self.incoming_moves if m.lot]
+ return ",".join(map(str, keys)) if keys else None
+
def get_quantity(self,name=None):
if self.incoming_moves:
return sum([(e.quantity if e.quantity else 0) for e in self.incoming_moves])
From 3e15052520f868c90da33a4d878af17a2a049b01 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Wed, 11 Mar 2026 20:14:47 +0100
Subject: [PATCH 435/618] 11.03.26
---
modules/account_invoice/invoice_melya.fodt | 3061 ++++++++++++++++++++
1 file changed, 3061 insertions(+)
create mode 100644 modules/account_invoice/invoice_melya.fodt
diff --git a/modules/account_invoice/invoice_melya.fodt b/modules/account_invoice/invoice_melya.fodt
new file mode 100644
index 0000000..ab5e855
--- /dev/null
+++ b/modules/account_invoice/invoice_melya.fodt
@@ -0,0 +1,3061 @@
+
+
+
+ LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 Aksel Kamhi Laurent BARONTINI 2026-03-11T17:00:00Z 2026-03-11T17:00:00Z 2025-12-11T15:32:00Z 2 PT0S 0x010100C9130B1D3286474FB2D468C22F52A7B0
+
+
+ 0
+ 0
+ 24236
+ 11770
+ true
+ false
+
+
+ view2
+ 4281
+ 3076
+ 0
+ 0
+ 24234
+ 11769
+ 0
+ 0
+ false
+ 180
+ 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
+ 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
+ 1803951
+ 1803951
+ 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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <for each="invoice in records">
+
+
+
+
+
+
+
+
+ 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
+ fqfuX/yzn330DK0M3s/YN9OyM0sbbbRxdxC4du01M9aJt7zlv7t/1QsWbDaKc471e968bbox
+ f9azLhrV5//Ozzrrc5227eDf856Lx+KNu2SJPSGxUTnppM+NHYiZ/ytf+fbU45WLu0sKvjw/
+ 8pFfT92QuqR85zt/n7E83/e+0h0Ab7fd3uWvf/17F2fxlseW7xlnXDu6vOCap5/+zS7Ptts+
+ YKzvGdQyzebJp5ahL5+CxWR6BvONHRT4tBUUuWwPiW2BsVmnW3laPmIoj7A4Di612I5xyu91
+ x/o/8pHfl223ffnUztzuKXjX1FsP670F9bPCdhDgNxnWR/rqi3/sPoSLp16LbC80sksJduBg
+ GpeWrbY6VNbnNcb+sdbIV372JfLe+MZStt76mKk+2Dcd/AxBvbyxatXl5eijz+v4XgfHehJw
+ HYo6Ld1Y96RQcX16rFOhL942VvaUht9ZHuPiMsjgOn5QYJcP7EY620DbBt7/4VX443n1VHDN
+ ubDMm7ddedCDzm/mVH0l1/JHDXLpqwcF88bu5o9+X9Zu8x3UU55yXnfaevHi+4xyGnfBgvpP
+ 9JRT6kFBrI/TOgYLxnQNv/99KStW7Dn12Oe/jfW7HhTM7c4UuI7qV2x7fJyqsfQ4nxrHDk5W
+ rLCDgk3Kc55z9FguX3duuum2stdeR5e73vXosnr1U8rq1U8qq1f/a7nLXZ5QjjnmjLGcz3zm
+ C8qcOZuXFSt2GdlYy2GHndDtaFeufGTnmz4osHVlQXnTm949I87b++9/U7fDPfPM+lSI9+dJ
+ T3pF929+v/3GL9fEGg4//AldP+9yl7uPYm26ZMlB3WW166//ymjH7vjHf7QnURaWhz/89LED
+ HLtR9Qc/+O3o4IO57Hdgl3qjFpchEftDO22up2xxGdNP7iTtQZcPVLEupHwxLibMOsF2y65s
+ 0RcHyxBrYC2Kn8E4caWgj1PnUJ+10e6x7nvoQ59cVq2y9//bJ4Rtpx53+leUnXe29xnUDyZN
+ v/LY/oHb1E7L17cD1mv2djnC3mHwgbJixYvLs5714rF+KPj4sR+xZp9v+U3nz3/+e9lii8Om
+ Hqm0jzfVJyysPntJkdVspxz/8Ie/z6iDmlwGRFwGMY7I7H06fXGToG8c++AxVmc9KKjXRc0X
+ lx9jsrbF2IbRLh/YRtSeXbdHWrfc8l/KFls8utu4brrpAzssWfKAsmzZk7oDVHs50rx5y7oz
+ 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
+ +yBSvNnujoLn4TLw+Xe/+xtl3jxbJ2ynvqB76VR9CZONj51RWVAe/OD3l+9+d/ppIGrZ/QSn
+ nHL61KUqG896f0R9t8X8cuihjxq9ItmXk8EPCi699FvpevVv/1bPFLzjHeMHBc5/+cvPnFqO
+ 9SyX37th04c85JndtxRizT5v8XZw9KQnPas7WLb+fvvb68fqiOvfUUfZ2SK/72P6/g9bZ770
+ pR+WI444cWq9mFfOOuvzowMvj499UlDrjYqJmvQpqP4oXQV5T8EQxIGmzefjAiHoJ29o5zM+
+ 9embxNbyZe1sZW/ZlC/2wTYe9liNPR9ulwzqQYH9269vNNxxxzPDdXs7SKh3+fvTBjXGpu+b
+ OqtgTwLYtN6nYI/b2PW/rJY+xB/BUUfdMvWOBK/HDlDsHob63oQttzyiO5LnqdWISXJPgmy9
+ MFgf1LKLfLWuUcftjFc218x0WqAutW187XGw6677fPnAB9aV445bV170onXlssvWlRtu+NGM
+ vhh8DD7zmZ+Uq69eVz71qenPEcccxMc+dlPH/8QnPjPGYU0ZVEwfnHfjjf9drrxyXfnkJ787
+ qt/6/pvf/KFceeW1XV2OK66o06uuum5ks9irrvrUDG3TsZ3fddfdWE45ZV15zGPWlaOOsvH7
+ cPn1r/86qGZlv/nmb3c5P/7x9WN3rnN8VZtazKU4Stvwmc98q6vjNa+p64WtI9dee8Po/oZs
+ udu8j7GdObn44nXl6U9fV574xHVlzZp15cYbfyHzWsxVV9Ux//GPfy1P7xu+8IW/dHV9+9s/
+ HMvr9dj0V7/6e7nqquvLc5+7rjzlKTXvpz5VD2JcJ9Yb+201Ww3XXvvJGf/wY71W31e+8udy
+ wQXryr//+7ryhjesKx/5yKdHl0jsXihbny68cF35xS9+J3NFPfqy+vp8UbOFyIk1tOqZ8Z6C
+ KMC2ms9ADtuTQNVHe/T5ChEXNDWpM2n/GK+0aGccNRSHNuvTcce9ofuCYP1ugN1XYP+87eVG
+ dkbAbt6rO147aLDLBPUafj1bYDvlevbAH2V8V3fmwHTsfoO9937UjHysj1PyrrzylrJ48QGj
+ sxD+YqX6sqJ3dS9OeupTPzajr33gGHFsyFH+DJlu1KKeymPj4Fzlj4gbrZiD8X3gep7FGc92
+ QLYxY26PY2x20Eau/954M57qS6tO8jKutdlv1uqc2FffmMdr3Ga3eX74yOddw/n+z97/FTqX
+ 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
+ 25lAy98CByVOFTJ9tgnqE0NXRqUVV5ChGpFPe/THaZz//Oe/XO5yly90/7rrzX8Xdd8k2HXX
+ a7udtB0c2A66vmRobXfTX70R0Hg1ZtWqqzpevXxQzx7YY4r1RUb1UoGjni2wJxHe0V2GsEsN
+ dhlh5cq3TOG07smFHXaw+dPL9tu/smy33SvKdtudWLbb7uSy3XavKttu+9KyYsULu7MbK1a8
+ uGyzTT3LsXz5UWX58md2Zw4OPfR7Xf+y9a4PHNPW+BIq5yTx/39g0nXMYyZpZ7Dx+b8eI6XF
+ 3wE52QZajVXUMLA/bEduxovzzMUafKryKI0h7ZZP1W5gzapGFZv1W2kxNrbjvNIZAqWvtMiL
+ dtbKNuOpn/FaYC7aY7uVO4sjqNOCqic9U2DTVlER8UcawaSRQz7zG0yX8dRiTLS16qfN7R7X
+ x8m0WJPix3arxsj7xjd+U445Zm059tiryrHHXlle+MLLyotedEV52cuuKCeccFl55SsvLiec
+ cGk55ZTLyimnXFJOPXVted3r1pZXv/ry8oY3XFze+MaLy5vetLacdtrF5Z3vvKycccba8oEP
+ rC3ve98l5Zxz1pYPfvDS8sEPri3nn2+4uJx33hXlwgsvLWvWrC1r1lxSLrroyrJmzRXddO3a
+ q7vphRea/apy0UVXdPc3rF17Zbn44mvLxRd/uFx22efKZZd9qVxxxc3lyiv/p1x55XfLlVd+
+ p1x99S/LunW/Lddc85vykY/8uXzpS3+a0fc4/hzfzEY/x5yczKfaVg83qopDbWWLtcUpa1bI
+ 1suWTU2zXMrWB68pi1V2VQPbfWB/3K7GPG6fVDz5LU36GE8/kflpY5tQv5FMm2jVr+zMQ7sC
+ 41kj/T6frU+0Uyfzq/UhgjoZFIftFibJE+f76mfcJPqZfeyggEWzPQliLDVoJzfLSzt1aJ8U
+ 1FO5FDLfkD5liHyb+krvlzIMdje/w55O4N39Dm8719r+NIM/GeBQsR7jU/JYuwJ5bEeo8WLb
+ bZznmGfatCudyI1tFU8buUN0FId5op926vi8j3UrhrHMwVjTjFzqMI59aulTL8ZmPuZVPraV
+ zedpU21yo5185uSUvwdqRp8Cc2f5ldbQOrI41abPbeSonIwhnzUxF3m0Kxt9an4Ij8h8Spd6
+ qp3ZMj36lT36bVmMPX3Qt3Aoqmxub7WjLWooXlaT4kZNZe8DeVlNLWT9UTpxw5pp0EcO7S0O
+ 5xkfdx7k0u7zjKGmstGncm2oX+VUfIUN8av1lTtQxrNm1skpY+mP8Som0yIiJ+O37K0aWj4i
+ 4w2xsU1bq05lG4Isxu2c0s/5FsfXrb7fITWok/FVrX3cFvp0WIviEKrPbEetScaKPOYglzFs
+ qxhlIzKO27Ncbud2qVXLjEcSlaAC/eQO9Q2Bqon6mabyKdtQcHDjCkYua23Vr+I4T61oj/pc
+ 6RWHGso2FComy+MbsQzUUPNcBgoqlvoRsa5Mx3nRp0BtpaV4sU6l1bLFWOpGLteNITnVPNv0
+ 9YF85o710Kf8ZlO/RcaRp/yMG7K+xZghmszNmL52tGX9buWIPqVNnoHrPmNbNjXvvzn6WU+s
+ IdrJ4VTFsK18rCmDGnfGsY8OjiVz0qc0FFgjY/t0zN89kjhpEG0EOWy7bRK7+2wwsx9pjOPC
+ iLqZvtLpg+t6TNy5xHxZv1iT4pA/hENbRDZ+WWyWs8/GMVDcCOWnrc9HvYyX+WKc8kdeH4d8
+ TlV8tA3ZeRFc/1p5GEt7jItT2jg/W0xSZ+ZTNXEa/Vl/CHIil8sp06Ev4w0BtSYB47Ka+nKY
+ z9e31jZFwXWpz50l4xSUltee9WESG3XJIbeVl3zaog7tBDlcD8lnHHnelq85HgrGxWTKFsE4
+ ZR8KFRf1WI/i9/moM9RuUD+YVi7ancuY2FYcxWcu+lp86vblot+mcadF7chR+TM+7S1OrCvW
+ FuezKbWynDblD5Q5VbzyRcT1SI3RkBzkKR3Fo4+crE0d5eNU8SKHuvSRl9la9iE++lk7OapW
+ xvu82mb0Ics7FCqO9SsO+cofY2Od5EU+bZl+1m7lanEUl3k5T3/GoX22oDb9ys4aOe/tGZcP
+ FGJnfN437tEe24ylXourYlp2g/oRtfgtsL5WXdFPMC7jMYZj0henOGwTKoboq8Nt3NGrKeep
+ 3cqtlm0LzEU9cvs4Q3xDdehX80P04u8vxpBHbdqyHKoWcohsOWV10s4DFOZmLGuK+Rmj+FHL
+ bRnIoVaLE/OQQy7tBtUvn2/lIY/xtLXs9JHHPArUsflsnVFxMV7lij7moY0anI+1qViCHLYV
+ Mo6yRTunPq/GUtmyvO4be/rABbKNfBSknysuEyl7hqxo1sEOM4Z1trSplUH1mxto8hT6/Irr
+ +ejPwBzZfGZjm7qZ3qRx0dZqZ7qRx/kW+sZy0twtziTcFkfZW23uaKNGX/8jN2tH7TjNOJxX
+ 7czHjXRE9jskWEfGp37Mn/Fa9uhv6ZBLxFqYgxzaFF/ljdOYL9Megiw3ecrOGhQy3SHzqh3t
+ rJugroqJbaXFvkUufYTSU1A8VdPo5UV9RVNoEv6GgAMyJLdvIGhnTNRRyPzRRg5zRI7SIiIn
+ +yGyHW2c0jZJLYyNttb4ttrUIYdxPt+3wZ+0Xx7jU/aHWn3+zDbEl0HxYz9j/T5lndRRmgYV
+ F/mMU3UoHfqVrvKTG3k+77liTnKJqBGnffGxreazOPepGslzkEs/OeSrWlSb8y1OBuZTUFrM
+ 1YLzuG7RH9vRRj9tyt8C9X3bxP721R31Im/Sejwmxmf9y7Rj/TNeXjQEHADlUzb6yOuzKyjd
+ FtQC4sIYquWYlK/isj5kY0dOZlM++qO2amexCi2fwqS5Ip+gL+NFv1ofGMf1w+dj3REtrcxG
+ f8ZhDYxhXGZrtelr+fs0YrwaR3KG2KMG/TGGUwX6PN7AdSP6qGOIOwf6lC1qZhzmVG3Fj23G
+ UcPAHQp1qdfKR0623DMb/apOBXKVdsvPttL1eer4sqdOVm9LL4PiDslFrtKJ9u5MAZ0KUYR8
+ lYQcggVm/qxNX+anjzy2VUzk2Xipwc9ykEtdZfd5VcckiDUrnajPqQJ9jMnyEKqvap5ays/x
+ Vbw+v+K0uG6LGzufV/UQfeMU80S9mDfWwbrIV3baXLeP06edcdT8ULRiWUeLY4jLjHlifKtm
+ NU9b1qZdzWe6ROZjftqVj5w4z/VCzau221rrO+vJeITSnI3OEB51Y5tjE0EdamUYsg2hjrdp
+ dz1qcvxi3c03GqokFOI8k5PnbZWrhcjlDztq0Zb5lH5fTdE3hMt8jGdMFk+w/0MxSX7GqT4o
+ rWyeoKZacbP4GJdxFJc+BWqruGhTGwVyVBy1FZ+xjMliWYPK41PfOGT9iOjjtvIoO/NkXOaK
+ NVAv8lUs7Znf59nXOGVsBH3M16dDW+SxpshRvyHGZ1xC1UEtB3cyLbR03O+aKibLRZvKo2wK
+ LZ7yuY326KeNdhVPW2yTSwypSflGBwVM7PNqxSFXFamSZTEtbh+ynBuqa4g7Kmqx7XzaWRNj
+ FDIel4X3UfH5g1Jx1PM45zNuCGYTo5D1ixzaFOI4McbbcVkTMS7yyWuNeWaLsUoz5lV1cJ7r
+ YIzL7Cpfy8Y6+rTIifboZ//Zpr4CtalBnTjujKVN5R9qi2BNXG+Yn7YWyB0aF+HrUJ9O5lfc
+ ljbhPsVRNtelrcUnhtaf+bL8MY79ZlshjgW5fTmVhoplbd3LizIRBXYqJmCc6kgGFkl/y6fy
+ KFu0Z/4MzuU0atKu0MfrszOvT+N83w8vs8fl6JwhK57zVVyrDudlfmqq+T79qKXmDbHWbOyY
+ z9E3PsxLkBN5SiOD0mU8/UNiMqiYoVA5lZbyk2fjH9ch+oegtQ4aWrVy20duCyo22olMt5WT
+ 9oyr+pfZoobPe81Z7QpRq68mQtU2BKyPOq16okbmV/bMFmtRHPoUJ9baqiuD6uuMywcMGoIh
+ cUM4LX5sq46QE9u0xx9jpqV0FLIcDvtwUObrQ6yNKzMRc6iVg22FyLF5lTPTYSz9Ckr/joaP
+ YVZT3/iquMym8tCuOC1+ZqefXNqIoRyOC9etPh3GZ8j6TB7trfFQvNa8ilV1sU+Kw3bGa6FV
+ Q8ajr2V3H/Wpl8VndhufuI2l/44C6zZ43tZ2N/aLHG9zGSuOg7+JFjezDfGr5UFbFhsRl4+K
+ aT59kA0MBQ0+MEyg4hSHuchxbYI6ytaHITFD+zgp2O8+xPysI6tN2ZS/j8eVie07Gn39oY/t
+ ofA8Kh/bjFG8LKYPjGOO2ULpeJt2xmSxmW9StOqIPuUnJ9MhdyiG8FlbNk/QxzaR9S9rs64+
+ TModkqfli2jtVAlub4bUQURe3zzzRX/GYS2si+07Cko32lhnhvQ1x+zYbMAilKbblI+cPhvt
+ nBpYk4pT7WinJn1E1MryZ3xqDol3jurDkDoY0/LFOh3xYIH82SBuNFpjQ7T8mS+zD0FfXT42
+ 9LeWRYz1aYxnm3yCOln8pDXR17IP4bTWYRVPnoqhjTEZhzrRzmkfVE6FFifTiHZyFJ8gx3/H
+ rkV9xio/p5HLOGoofdoVWusOc9CvQB1qKC5zKC7R4rR8Efzdxji17VEYfFAQN/R2aoZ8FUO7
+ 8rk/ThlHHhEHIuNkdoUhehx8haxfk2hEcCzYVvMKff5JwD54XUNzRB61MmTjOnQMmGfSmltQ
+ OrSxTa6ab9kyeB72l+DGwudVXNzgZhz2L6s58jhProKKHQIfk0liGO8arjO0lpbP4Jq09+lO
+ CqWlbH1+ta1krT6v+sU4+oZg0ri47G3KdTrTzfpHtHwR2XgQscZJ41WtbqPdMfE9BVEw8ls2
+ tt1Gv+JEZINAvordECg92rydbWyy2luI40Sf0iOP8fS3bEPHc8hGQSFy+rgKKtckOozPaqa9
+ xSE37jCG5OO6Q46Ka80zZ8yVobU81To3G7CWVr/IVXG0k+PTrP6Yf4geOXGnEv2Km8XR16o3
+ yxdtsU1d2lpgf6JN5SGfHPaJ/ujLwN9JjFf2DIobNVhrK06BPNWmjVB+j6PP29GneApRc8ZB
+ QRRTgbTRR44qKuM6uGHqWzjUUTmHwle4LGeE54l1DI0lWDPbk4A6tGXcFpyXbchYL9vU4XwL
+ sQ+tsaVejMvGIatzNmjVl+XPOKxZxbe0FCfjK+3ZQMUP0R5SY8vP8VGc1o6EcZkG+dGW8fvQ
+ +j2RMxSqRqLlG8oxf1Y/0RrfVmzfOKhYpd3ixX7Ql9mG6HJ+EvTF9fkVYs1ZjTYvH0mMhCF+
+ DlBmU/HZPLUJ5sp4CszVN+9t5mLebJ5t+gxcKVvcIWAc61b2DC0OtSJf9UnVkNmzmhWUn3V7
+ m3Vyvg9KM/O37GxTj1PFm7T+FmcSH9vRpnyRw9qHxmd2xra0h9hiPNtu84MMpaG0op7KTQ79
+ jCWHbRVHbhZPPsF46pDH+AxKT7Xd1tLP7BmnxY+5VF7aCaWX5WQM2xkUL9r66nHYet18+sAD
+ 2I6JaCNP+TJe5qONvIyr+Gwru6pJ2VTspMg0yYlT5ZsUUZP9nO089YfkUP80OK/atCu0OJPq
+ tGzKH8GDI8Z6u0+n5WeOPn7GU/VwquJUm4jaLZDDdrRl9Wa5lC3zKQ22aVd+pTMEMaalr2JU
+ bAavj3WynemTqzQMPJCiBmNoJ6I2fXcEVJ3RluVlXeRmcUSmw7bNZ2fColacKrje2JmCLEDZ
+ +5JkdvfFDrlNbdgyfgZqetu0lb7SpE21aVM+xVG2zJ7ZlJ0YwnFeBP2TwOM5zn26zmccNVpj
+ y3YfqKfAsYn1xTjq9GlymvFb9qwuFZvpKD3y+2IVWn1q8YbEqDgVH/uiuNweqDGkT+lEZGM4
+ BOT3tQ2tmltxCrH2Pt24A2r1ORv7SdBXS4ahy4zwmmPcbDW8rfoQ82R+2qJdxbTiIlrbMZv2
+ nikgWIwLxakqTP0AFY/aLV12iG1yWLu1VS3k0e+5WE/00abmHSoffX0aff6M6+1WnzK06m7p
+ KN9QW+aL7awu59g048wGqpaYi/YWf0g72pVN2RUil+MRfxvOVVPyMrAm1hnnqafqyNotu7LF
+ 31dWA+vp02wh43Ncla/PFqG2G61YZVP+OE4+36o9g3OtzqjR0hm6HKg3CVQs87Jmthmf6Tg3
+ q93nMz3q0NYCc0bf2COJQwuIyAbC2nGDQR5zqnjmoj/GKX4fR9nJoc4QvRhDHzW4QjGeXOah
+ /mwR66NPIeO32rE//IGwr/Sp9lA7/ZPaoi5rJ1fFxTZhdo6FimeM8sf5vvWKMX05aGe88kdk
+ fVT+TEfZVQ0KkbMhv6O4TRsC5ncb5+OUfKWlOK1Yxjg304vtuC61eLT1Tfv4jr7xjrVNEhu5
+ WTw5mS9qRBtBPQXyhqDVT/KUdsw940yBKowFbwhMgxss6sc24X5qRj8Rf8iZBv2cjzba2e7D
+ UA1lU36lFznRl23Usn5nKxF5nifjEorLNsF89PfBY/piW373ZWMY/XGdirnZd7ZbUFyl1cfx
+ +dbyzRD74lMDtfp0Y53kxn5EKA3aFDIN1pvVY1DLXMUquF9pqJyRp7ZNqt2Hvv6xD6yVfkL5
+ aGu1fV7lVfOToi92SP+U3+3uI0fVTxtjFCblxPk4prEGA9evGQcFXCB9YILYQWopTtZR5SeX
+ HE4zKD9t1IrTWH+0eTvrd7QxzxBuxmG+/0uwtrjzI49jRM4QtOI8h+JMklvVr2xRaxJ9IqtZ
+ 5cy4ykZfjM3mZ4O+vsc89E0CVecdldvGmhzPF+0ZT81Hm8fRz/YQqPUiA2sbks95aseRIfKd
+ y9zkx3n6FVocjonSVHW1MIQXNVWfhmgQMY4a9MVppsGxUTYuu4juRkOVOCJyXIxJ2BmCPpUv
+ zit9tqMG/YpLkOPz8Qed1ZfZGJNxfF4tnKjBaeRTtw+K7zrK14rj8iHYH/qjhvLTxna0c4z6
+ YiLYD2pxynnalI/o48Q+sR2nikN79Kupgo3JhqxnRMwZx5tjH7mcj4hxGafPNwnUNi+rnTmz
+ /mTxtClfzMOcbLc0lF/ZI58aWYzi2bzq9xBEvb51U3EjsuWotCIn82d9VRrks01fi5dptjQM
+ akwiZhwUKKiEjFF2chSXNoVMZ0hs3wAo9OWbBOzjEF3GcJr1KXIioo0xBOMUJtUkmCNqtH6A
+ ffnoJ5c/IvqJPo7yqT7R7vOtvka06u6LVXCN2cSqdc9s1LP5rO6YX9WgbNRSPLb7wJrUdCjI
+ Z9/UfF/MHQlqe9ttanzZpkZmUxot9HH7/OSoPkXQznYrn8rD+YwfbQ7mni2oxdoc9Kn26EZD
+ BlAoA+Mcrc5mBRt8AxN5caPDPFGD9lYNCsyhdFmbIdasQE2vK4thHfTRxn4OieV8BmoQziF/
+ SGzktvj0RT5rVW3qUUMh+oYsrz5d1kc/dTL0cfr06WN7KGJ/6Isc5W/Fekz0qfEnz6b8HWbz
+ Q9CqsY/Tt3FWOplW1q+IVq5MT42pinU/p+RN4oucOOV2THEyxFyqnWn01aigeMxNG6H4Cl6f
+ GptJEevyeaUrX3PcKjJDjM3iM3uM57yBK/AQHcVhPHkqxqAGjjoqXrVpy3jkKAypK+ZkO3Kj
+ n3r0Kx2lRyifstGvauyLc65qsw/kEcqvbL48uBEnJ8vLdrSzdubJNBmTcaMOebSTn2llUHxl
+ s2n87bd0Wz5H6/ei+sPtDucztGplDRlX2WhXnD4b+0luHxjnbWoxT/RzDFQMbVl7NmhptHwZ
+ z+bZp0yH9jg2nFd8BebOoLZLKlYeFKh5BmbI4qirCsxAXsxB7RaHOoyfja0Pk8aohTRUg7ys
+ TTt9HDfFjVB+2hhHrvIpRI4aq2hv6bGGFi/zGbIaFIb2kTG0RS3Vtinrcp/Zo49xrTxRl/ps
+ Z1BjoPIyhm3GK1umQ1/sl9JXGNpfR58e/WzTFrefrFe1qZXZW7Hkk6ug4hkX7SpecSflEB5D
+ Lm2xTe4k+7CoxzZtGZdQftbe8md2eVCQBZLLNuPJiTb62Fa22GYuBfqcP+QHzf74CpBp0qZ8
+ iue21kaJ7T6QSy3yM3sW5/W4TcUa4s45G/M+jTsC1GZfOK9sqt0ah9h3FXtHgesl5zllzYzh
+ QUNEX/1KN/MZsnWevKzuyM3sbFMn40XEZan8Bv+cPPWVtvLRnnEyfgb2O9oZr9ZZaqn+ZXyF
+ odxW3eRmYKyC0o7T+PuiXt9BQctHXl8dLb3Z/mZj3jgd3WioiN6OCdW8xzCJ0qIt+qhLP7Wj
+ Ly4gpd/SymJaPvLIUWPDGBXLDWWcEjGWY9YXk/lVLNvRRl/2Q4k2m2e95BD0sT2JTSHjtewO
+ cuNU8aKPun2+qO+IG64YTx61FYcbGHLiPJc1tfrs5DCXg/3LdNluQem5PebLOHGqEH0tXoT6
+ TUR4bYxR9XjtcTvEKfsY5/vAGBVHbeVvtVsgt6/dZ2MflN3nI8hXULw45TLNtJSddfC3onIz
+ nr6xbx+wuCyw70dDkMO2sisO6yCH9blN6XLwiGwsIhjvbdpbiPwhOVWsz0c7/WzTRxs3Jhla
+ ekPQilF9U3blp82gxjfyVEwf+sYpq8Xtykce24wjh7Yh86qtEHOz70PiqUWbIf5+WzyOA320
+ KX8fj5xsPtqUvc9HXiuGNvqJyCeXbS7TPrS0FTJubKvfKe2M70Om6aAe2y30aUf4eLVizNfy
+ uw5tMZ42IsZzmcx4JDHOE+T28RlLm0Jfh6jDWjK+8imoPtLuPq6kQ3LRp3SJlr0VNwSMnY2m
+ 2pCosaCuysUx5Tx3GOSpPIrX56etNc3yDUFfXNTPxibyGN/yqd+a4tGf6TmU7qSI+nGZt3LT
+ 11cHdRhPf4sb+bQTrVhly3wtv+JGfqutEH0ZV9kUyIt6vqzJiVxuAzIu/VGXtpZGFkO/8hF9
+ fqWpQD/bysZ2hhlvNOwTUT80ZfPOx4Ekpw9RI4vv83E+42a+lv4QqA1an2ZfrZndYTmzZaLm
+ iVjfEJ7iRFtWD3VULHnKloF+xkZ4feSxTV/Mo/hxI9dXh/liHeS2fEORxdHuubjcsn46l3xC
+ xbX60/JFPXJim76htr6+eAzjWvboV7ysP4x1qBqVLeahtmrTphDX7Wgjj2AM+zIktyHmGpp3
+ yHrN/KxV8RhDLvMZfPxozzR8Xo17n06mqXwzDgrYAXaG7Uw48hUnctnxFn9SsN7ZINZ1R9UX
+ NWL/yVMYwsv67bH0K83IMT9jWjBu9gN0PdpiLG2MbXGoHWvpw5Dlq/wxTvkJ57Mut7eWE5eL
+ ypfZqN/iE4rD+libt2NO5lfzzBV1op2gdgbyshjW7GC/s7qVnZxJEGugT8F5sV7WniHmmTQv
+ dZTmUKg+ZFDrWwsZjzXTn4HrP/VjO87HbVS2rPrqMC5zkaNs9MuDgthuLYjYORXr8Sw0DoZC
+ 5qMWwVpbXOVTNqLV15aPnLgSkB85yk8b+x05DvqUzlCofJPoZNz4o4hjGflZnxQn0/f5uAwy
+ HWq0fMxLTmwzb8az+RaX8FhqRE7f7yjGqT5tSCx5RB9f2frsLR9tfVB6fe0+e/Q7x6dc9s7J
+ tKJ9CIfI8pHHmIyTxTNPC5NwiSx/Zu/jxFoyn0/pz0Be1o52cgysTXFoU+0ZjyRSxJEtmFZM
+ i6NsauWydhxk55AXNWhzvsf4lIPIuBhLO32c57RPh/N9fPqjLbMrXbb7MJSv8pJDft98ny65
+ BrU+RJvyD4HKSy1yCMWPMXG9b2lRg5zoV9yWjTVmUDxqDUGsX9lp6+sjMQmfPI5tnI/cOK/G
+ JUOWL7YNs9GcpGbFoZ+2vnlOCcawTb5h6DjE3NSOHNpZc5+fPoeqk7Y+DfqILI+KVTyzea6x
+ pw9aUDwOiuJErgK1hoL82FH6FFgzY5QeOeQpxMGmjVz6Y94It0U+NRxZjPITrqv8fX1oxdHW
+ AmtX9bY4nE6CVh+H1DFEJ2r1cdQ8wRpacWxnUDxl2xAf62Sb/MzH9hCfWifj+MV58hifcahF
+ KLuyZb9JtiNXQfGjTfU7W48Vl36fb9XUAuNMk7YWYn1Zvayd7SGI2pk9W18Y26rVNTgGKncf
+ GDPj8kFc6UgeYmcnuBKrFUt1NkLZFJSu0iaPNuUnqG3o61tsc5rZXDe2yTG/4vTBNFTNGwLX
+ ijXFfkU/Y9kPVZeyETEPbRw38hQ8TtXsftWm3W3MG/kE42NM5CguOcyXoeWf1EebqkfxhsLj
+ 4rqm1jvGUSOrSy1zxSOGciLP21w/op6qx8HfDrVbfMYovuLRRrvi2DyXkYM19dlb6KuH3CG2
+ DBx7+of4ot+mrT4rHWVraTDW40cfRFIk2uhTHGVze0zsnY62SUE9m8Y3i8WpYZIBok2BPJWz
+ r3+qphY/xige+8v8jOnzD8Vs49QG8P8KQ/pqNrVMDBx36k2CVlymm9WV8aMvcshV9pamgnPj
+ 8uzLyfHMQA3XnXTdYf9oG9qmLUOWg1pRk+0h6OO6vzXe0dbyZzzWPHQnGcEcNm2t87QRFst4
+ r5O54jynjGUez0WdDL7esjaFPq3ZIstt+WacKcjA4tTgZoOZaTiyAlsx7mv5VTzrzkA/27RR
+ s28sWj6lo1Zwcr3N3Flt0UeO4hItH9HKQS3y2I/YnoTDfIynjdotZPkZP0RrtlxC+alNO2No
+ yzCUyxpUHS0bdWjPbMrfx8t2ouxD5NI+pN3qr9sUn/MZyGE7s9HPWmijb6h2Hxjvbd+5xryR
+ Q16MJX8o2Fci8rI8XK+yOMb2tWnLamtxbX7Gy4tmg1Y8E6sp/S1bX9ttDv5YI7hwiKhDjlrR
+ YhztQ3K12oSqif5WO4PxOGaT5mr54jjQ14cW331xquYjP9roJ5Q/2riBGqqv7K14xZ8NhuhM
+ wmG99EUb21mM8ilbbGdQ692QOjhPuG7f75t8ohXX8vWBY6bajHHEbVyLq8aTaPmISfUi38Bl
+ zT4zPgOXlcfE33r0qTZrY47oi/kUV9lavpibU9Ya5+XlA7YzMBntQ+BcLgAFdoZwf5/WEE7k
+ KlumQT7b0cZpZvN25mPsEFjtqv5JwJVYjYnbI6KPmioucqnBGMZSR0H5htYZ/X28IZy+vMqm
+ wL6rONptPq4X9Du4jBWy2AyKGze+XpviDskV46O+4sWp4vShL5a1xvqHxDB+CLJ+ZWMXbfyd
+ k0ftjEvQz3WP/FZsZiOycRwSmy2bIaC+r9stTqu+vlqGjqPC6KCAwbGdJWC7z05/xosd9sHL
+ uNTlYA+JUzy2++zRl3G8H6pOxtGX2Rx9K0lfvNcVbX5/Rh9P5Va8zN43Fllc5Ckf/eT0xZKX
+ Ifo3JI+C0jNwo67Qp6GQcWMfDGqZZWjxMl+2TtGXxau4IeC4xflsbIZgkjjrH7eB5GSIY8S4
+ WD/n45RafbYI5vSYvrgNRUs/+rK+uo219q1r7lf97gOXgWE2OgT7GNcF1Qfn+Lx8JFHZom/S
+ 4qnHopVvQ20xh6pVxRNqIKNuRMtGXdoiv4WMp/rHOLajTfmpoWA8lVvFc1zIUzFZnIO5Fc/b
+ rR8323cUVD0Kkaf4yqbscX1lbvqoRT217iten519U/nZngQea/X25ekD45WP8y1EHTX+fTrs
+ B6c+H/se7WxTj1C5FDIf4zNen5929TtXvmjn/NC6MkwSw9z0k0uO2wjGEhknsysYNz1TQGKc
+ J5dt2rlQycniFcemLb0MzNPKqXicUjeLUfNEyxf14vxsxsDjVb7MTg5ttMf+8gfbp+9QG7mI
+ SXyxrXZ0XifjhoA69DsmXVbU4jiSy35xynlC1adsCi3dDErbdNSyypD1TY0H5w2z1Y9tamR9
+ YDzR8psG87AdNVgDOZlvEsRc9BEZl+0Mqq+EGnP6VD7a2O6D4reWg9uyGhWijs+rPlEzQyuX
+ Y9BBgcLQIhRauVq6rbjMxwHkwJLH+Wiz2pQvA7lsZ3a2Ha2x6YtX/Y/94VShb4xaUHyVU/Fm
+ A2q2dNWGl/GMUbYWZsNvxaiaGU9bBsXty6+WHWM5htHGaUSrX30cpUe+io021joJLMa1ZhPP
+ uDhOmZ4aV86T3/JHTY5VK4Zo1Rw5tCkM1eLvotVX9s155NLm282WdgvM29f2XHG9UjmVTem1
+ YBqDX3M8CbwItXAIVbB3mjGZzXVafoXoy3JOCq6UCszhtWf+PqhxVv1p2aip0OK27Go8VM3K
+ p9p9yOqkDjnZuJC3oYh1sCY1LuS06uK6xBgF5WNOgnUqjehnTAtqfKif9XMSsJ44rq0xni2Y
+ T9mZjz41HozJoJYTbZyPOemnzfnUyPhENj6M86niKxsxhJNB1a5sQ9Cqo2/MWz71+2nlch3X
+ Gj2SSJIT+eNrcWmj3XNlXIUW131Rk52PnEwv2hhP/SFQXGWjL3I4zzY1ZouWFvMSrCn2I/rU
+ SkpdNQbKH9sR5Cl+bMf1mr7MliHqsBbVpr0Pk8SwliExs4HSVbZJocYr2pmD/VU+g/pdKygN
+ Q7aRHqKbcVybOaOftkmR6ffZsriMr0C/aruN45ttJzKt2SLTcTvHJLMZ2AelrTRaoA7bRMs3
+ FPLygRKOHHIZr9DyZ/EqXwvUGRLX4ihfpt/iel2KE/2cV23qUkshy8+2Qh8nO2iMOZVGtGec
+ qNcC8w/Ro1/FcWNOf6YRbfRzPuZVsVm9QxB1fTlxYxt9jKeWsrXsEeQokMfxb3EVFIc2tok4
+ TpP0hcjiZzNOBONbOsrHdYIYUmNmJyIvzk+6rKlDjjro92nsL+NivHO4s49Tzkeb4jJH5st0
+ stqHailbhNkmunzAQob6FLwTjGtpzNZn8MHkysI4tjNQh36308d2H+I40edo+aKfvNj2HOSS
+ 4/NWF1dE6reQrdxsK122ae/zK8R6WjHMofzciLB/Pq+WrdKL7b4xV3VFWwR5Q9pRh3b6h3B8
+ nn5yaFfzRMs3BFl+cmijv4+zIaC2yqfGWXFUrPK3fistjaEYouPbn/hbo79PYwhUfNSN4+Hg
+ 758xfYgxWWxfm7ah42F++ZpjFtVCxvGB4YAx1qFWtEw7xtIe4StNHy/WkfVd5SNX+d0WV+BW
+ nkkxJD5yMj7tjKGfHKKvj8rGuNg2cB3hlPOqbWitk4xhPRlPcdk2tDZk7qct+qgX4flaHPLZ
+ zuKVbUOhxmpInsjhmCgNtmlvjbljCCcDa4yI/WY/yGNMpkU+ffSTm4E8panGiTyD4jGm1VYa
+ nodjoGKJIZwWVB/77D7PfpBDjUn6xRjCtaN/xnsKsgIpFKe+0lM88od2StlUTVHT/dZu/QAZ
+ 17Jn/WFbxQ6F1636Z4i6WT3ui5qKQ03FcXusp087ttU8+YxVmsrGONr6/PFDWdl4u1/FZ7q0
+ c+z68kWez/f1n7Fsqz6wHbk236pR+ZQe7bEWpaFi+hB/6x43SbwjxmbjrWzRp/JnMZFPu89z
+ 3SGXIIdtt2W5h4D9jG0uU7PT1gJ1oz364rSFFoe+rFZVS4tDfoyhDts27atBaWe+DYVrz+rb
+ B+Sy7TZD60ecxdHGeCLqkec1cPDJUVP6M5tr+8Ylq4Ma1HMOa6W/T09tXFr8COP5eHl/1EYz
+ q4W8zB7rUv0lYh1DYiOPmMROm7ezvNHHWKKl0TemyhZ9yt+n2QLXgTgf+0uOykMO/Rky7mz1
+ yO9bHpl2Zo9Q2irO8yhfBudmMS091sX89NNG7WxdiD7Gx2mcV7ndTu2WfVJMohHrV/Ot8WC8
+ 27J+kBs5nGebHMVzDHr6QAmSp6YKmc/t2YrQiqWfPLbpU3Et2xBEXdpt2hpXZWtpRj2CfNUv
+ 1Z7E5nb+2Ftc5cv6QAyN9TytsR4KxrKdgX1lO2rRl20cIlS/o2aGzJ+NV1ajgnNijNKhLaLV
+ L/O1/LRFuxpTtqM96y/XdRWX+YkN9ZPH3LRTL9rVsldtBc/FPLQP1ezzZ2Be2hTX59V6lS3r
+ IZpKR+VQ8V4/c9KWLTOFPo5pje4pYAeZmO0sLrPdEYgbA1VnVqNCq0a3MRfnM04fWKdvqFSe
+ IbqxhiH8SbQjVB6Vs2/Dm/0oqNXSIBjbimEOxnJeafT5WlAxytYHlb/Vn+gjR4HcjN+nz1hu
+ ZDPdIWAsc0cbY/uQracKqt/0q99FjKUtToeAXDUGKleLS96kUBqsJRsXhaHb29n4J+m3Gi9y
+ yCN8f+YcatJGXcXvw5B1Wt5oqECx1g5iaIEEc0RwAPoGLYPiU4sctjPcEX3v0+gbo1Zs5Cge
+ 7YqzIWBu6rdyx1hDaxw2FK7NHKyBceQx3n1xOilUnNqotupUfMYwNs7Hfnk/yVVgvshVeZR/
+ NvD4rA/k9NXMGMaxTR22FYZwIjerRenQlvGGgOPoiJqZ9pC85PTxY0wfl7UbX9kYF30K5EXw
+ t0Id8t1PW8s+Cahh7RkHBSQRfYMWOxc3rozzNuOppTiZnb4WbxJErQyz6V/0e46sHW3UoJ8c
+ tjM72+wTkeVTWkQrtoW+mgxKc2hcHy/WHH/gsT/MH3XpV/kYH22c0u/zLT9tip/1LfrjVzRV
+ fqUZ2yq2ZXN71Ik1kjsEKi7W7vnYH/X7Joea5NPnusyfaSsb/UNsRB9HLUf2QdnZ7tOJbdqJ
+ zE8724T5VV0x1sddaQ21KT36+vJEOzmxrbY98ffNuEEHBcrmoHhMSi7jYtsLVj82ahOZPfPF
+ wcn8qs2ah4AxaqwUl74h7dgnNc9aiFZtjqih9GI+xk3C78PQOMWhjW23cQxpU1Mis/f5FLJc
+ rJNx/I22fmN96yBtfWjFRDt5bBPsQxbb0lE+6qocmS/TUsh8Sod+Zeuzs19ZTAuT8LP1KM5n
+ YzBER6HPT/SNwZD6ohZtLcTlksWq5Zch04g+xaHN2unLi7IiKOI2DrCaV7Y+KJ7ZfDDpZy7m
+ JL8V25qP8FpY09B8rkF/xnVd1ksObVwBqTMU5EedlqayxXifVxuCVmyrreysL4vJ/KqdLT/P
+ FTfKKl7NK763W/aowynnaSNPQcXSznYLSpvz0R+nzEMb2y0M5RHM1+dnf4jMviGI+Ybok9Oq
+ d6hfTRlLDbYJFcsp5xViTCvO/czbilHxtJFHPjm0eZvbIRXHHMToPQVxo0VSZlc7QcVnoe7n
+ xl/loBY5bA/Ry+JiPyIyfgbWq2oZ0qZO9Ct7a57tIb4MiuM2+lzfYMvbTjmrgxObcn1ivLJn
+ uehToF6fnzt2tV6r2KFwTcayP9l8y5b91qg1NJfK4fXTpvjM41DbIaWhbFE3+snNYqKN9oyj
+ fIxReZVWZlN296nxIifq9NXA5UeoGLf3+TI/MZRntbZ+L7RHf5y6luJHnejPuLS10Kqz5XOo
+ 7aXSoK2lb+1Blw+IKMb5yPOFRht1GKe0aKef7ezHwjb5kdfqW2ZvcbK+ZojcobFDOOROEqOg
+ xmmIZtYnLouhPo4XbZmGcWgjlDah+jObNnX4myGf8x7f1yfGt0Aea6RPxSgM4ThvKJdxytYa
+ N8Zl40/tuM2hL4tRNuZgm/GKRxt9mS3GtdYfFatqmMTvnMymfIYhO3Tyh9iGgvlVXrZbdhUf
+ uco3FKpO6o0+iMQpia1Bi/wsEQeO4A+KeuQTLY5ps/7IH5JjKCf2c0jMELBWn/bptzgcb+pv
+ CGajodYPtls+brjdr5Y9OURmp5+8luYQzhC74nDsWjmihvPIpRbjqUEfOT6fLaOWRgvUUMt5
+ NmDd9BNDOH38rB/kZmPmYxGh/LTF7UD0ZejjqTzRrnwbAtfr67vPcx1hmzHUavnY7rNnfrbd
+ ltWaIdNRvmgfe82xzbNN0ZZvqI2IeTmfaQzxDW0rDOUQjGd/+nQVJ8uRgfmGxhGMYTuzMz/5
+ kdfyt6ByqHnqR7v7Wj+2lk+B2qxBtVU858mdTZzbGZvpMDZOFRjbguKy3fJl9Sh7i8M62Cai
+ v8VTIF/lj3Zvcx1kDeSzPuVTmmo+2piXdtahwLxs08Z80c6c8eCYPuoRqg6VixrUU23yWSNj
+ aad/QxH7Q5h/xo2GfYUpzCYm8mPMJEeujB0C48ccKj7rD7n0R5vyKY0MMX5oDGFx/KFEH9tq
+ 2gdqMI79oF/pDAHzcp5TnydaGwMF6rX8CjF3bA+JVTpD7USsoxXD+siL7awfimNorZsxPrNN
+ Cm5bqNm3Lqj+K7R4mb0F1kUNjh39iqfgsdSjLjnkOlj3kDwex7biKUTtWG8rnjauJwRrj7aY
+ U+UnMh9rVroE7RxH+qnp7dHlgxjQWgjWNj8TKsSkyuf21sqj5mkjT3H7fNQhslpbmpmdHPLY
+ H/qUjboKKlZBcTzWfdTKYmgb6qevlTvyuXzoV7YY28rB34XiZGAuTsnLwN9dVoOyZYga1CaP
+ 84yNIFe1GWvzXIaMV7kyTdoYS13maE05rzDEr+phW4H8OM8xjByly/jM17JH/VafaJ8UrfhJ
+ 7KzNp1GfbRUXuUqf243IoUaLQz5tjCFfcall043UDt7n1YpFqGJoY1GRo3xKgzbGZTUrHQXG
+ 9SHWTx85GXzcVT84r8Bll/Fpz/ispWXvaxPZ+CrtTC/Wrfx9iDGZxhAbY2Nd5MW2jwHjWxqE
+ ilV2byubascp9RmT6WcgR8VGG8HYvnmlSTu5ys7tooLSj8s547SQ9SvqtWIIjgPbBm6LlJ6q
+ JeqR67a+nWLm68uRcWPb45Q/cqin7NSZdN7bXD/IVfZWbtWmfajfpvJMgYIqiMXSzrhMT9mp
+ wVxZDH2023y2UCJHacb5+CNSOrSxndmILL8h29Fm8d6mJjkZyIux9LXgXFV/XDbKn4EbHtbD
+ PitfZlfwHJHjB2nk9sXQlkFpq7ihNrdHX2xnMRmvpbUhYB6Cy16NUxavbESLk21LOA6M87Hh
+ GCmug/1im4jaWT5qtWphm7qterK8GSbh9vHpi7Vk8wr0ZbHkMWZSm28j3E4wdrZwrRlPH7Bj
+ s02q4tgR1W7FRzunPt+3YjLGoGK4sWbN5A+xsVbyVR0qH9uRp3xEqw766CfX/eTRN4lupjME
+ Q/nkZHFqY6lAP9vRrsbCMTRfFh/tzMd5ahGxHtqpF30qT2ajNnVoV3H8rfZB1aLmebDhfjUm
+ mb6DMczFedZIRM1oZ56oy5qYm9wsRnE5n3GIIfEKkZfFs62g/B5HXbazsc506fOp6/h6zOXK
+ OGrQTl3Ok8taZ7ynIAbQpuxKlP4sThXap6tsGfij9inzRs2s3uhnbYrLHJlGzEdb1KFd6Skb
+ c1BXwWOGcGinP3LIZ13kKrtqE1lsX5yh1WdC9Y9t+lo1xJoZG+e5XpOvoPyZzTdOGaeFWI/H
+ ml7UjDzGKyhNtonZ1q80fH6oFrmtdUr1o2VT8WwznpzMpvzksaYhPl/2qiba+2wxn2u3/IRz
+ PI7rZYbZclRdsR3r51TxqEEec6kYgvEzDgpagZmPII8dpj22I6JN8Rmj7Iwboqv0WlBcZSPI
+ Ydttyk6+4rF/PuWKqPicV/oOrrDUUnaCdmpGP+thLO3sA/nUoL8VwzodQ3as1FU8anCa2RQi
+ z2tnjNJle2i8iuE8eZmf3MxP+yQ5lS3GcZpB5aI/tuNOM+PQlq13zsu0Yh/YH2VrzRPkZdyW
+ vRU3lKts9GWxiss48sgZgj5u5h9adx+nxe3eU0AjB4NtTlvxyqY0oha58QdAn5pGLdWO9gjl
+ J3eoLuOUjXHUbsF42UaZtuijbRJ/H9gfg9p4sb8ZqMX62FbItDJObNNOjYwTEfuv1uO++Mht
+ tVkL9ZmHPGqxTV4rRuXI8hGtfJPokB9tNlXrJREPnqkTOZkv1koe26155lc25qM9i4l+2jOo
+ WlocctXvgDzaDNkyi3wfV7Xs1Dz7Qr0sT2aj5iTI+udQtca2slFDIa6LNp1xpiBiqCj5rTjl
+ U3GKl9lVPLGhPhs4tTLbtK9u55DHdozhgqIm48hhm8j8mb3PN8RPHqeTwsfQEW3kEip3Fpdx
+ VG739f3AI6KOL3fVH07pV5qxrebZZh1q56XqiGCMiqOG4lOXfnJiW+0UGJtxvM06qUNN2jKQ
+ q7RZg6qvpTtJbF87A3W5fezL5fNcXzjvbdqjbuRmPM73takf7Vx3hsRG/9AYxVV8tpUtahHR
+ P/ZGQ8J82caNQq2kkU8etZQ+c9NPDttZHxQ32lr12JS6rMXbqlb6VAxztsC8LR/9EeyTiqef
+ yDjU6asl63+Mo2Y2z3yckqvGoYVMJ7Znq0ktgr54YBGhYozLuli38rE28lQMbS17nz791Ikc
+ hUl8sa3mY42sh1rkx7biZG2lTz/zKJ3IyeIz/YyreJmP7WjjwQLButmmfjav2pltiL+VJx5M
+ DImJfXI7bcoetVWeFm/GmQJuIBRayaONPMZEOzUYFzd0PCLNasjycZ6I+cmjBtvUUmCcstGv
+ QI63aSen5Wc8uS1fZpsErfrcF0E/YwjncMocjCPIUb+bqBWnWf2MIZ9c8tWU80qb88pPG33k
+ KS75tBF9fKXNdt9yoZ02hcjjRj7TzuJpo47iDgH16GMeNa/iVXu2tWZ8pcUc2Ty5GRSXdcV9
+ DvmxNvroZzuztfxRO8vhNuU3xHWV/Kgz46CAglzp1TyLoS3TJ1eBuZSPmpmG9yU7AqWOqo92
+ 5eN8rCHayFM+zlOf9qGIcWrlVzyfVxtaQmlFnegfMm9gnfQrXysf4zOb6i/13W6fhia3xacv
+ TonYlwhyWtzoV79t5qKdHLajLauFMSq2deDPHDGWOuQrm4pRiDkYS1vmU3oKrbghYA3KzpjI
+ Hxo3hMffLbmqTT65Ks5jVJtayq60VEzGVYjaMYZQurFNRB9/K5FDLYI8m469p4BOCipexh2K
+ SeOYlwOScQnli/3w+YjI5Y6C/haYZ2h85AzhM5b9UDaC/DjPsWe/Ml2LYyw5GVgDc3IDFOts
+ 5WFN0d6y0c+2I8ttBxGZjyCPbYK1xDHxcSEng+LFcVb26FO8aO/zK90sB9cttfyH5FNgziFQ
+ 45xp0B77Sn/GVba+uvv8kZP1xf2KoxD5rsFl51Nl7wPrir6sPvL6wBxZvLK3+Aotbl9+xmfz
+ Bvn0wVDEOLXiK94kuVRtKgc5GZdtQumoDQpjMl/ksO02n1c6bEebTa02n1JX8Zkvi2E8/VGD
+ PqLlVzpx3vvXp6Fsyt6HVly0k9PXVlAcZVPwcaFd2SbxR3Aj7LFDNdRYepv1O1fxaVdtFRNt
+ ihfR+v30QfGpE+ezbRBjiD4/OeSyHW3KR5DjubJ+DmnTrsbGfNGebY/VtsJsXI+pHxH7RK0N
+ wZAxYk7GkMcc1ON8H+K4zvhKYqvtNmVvxahYNVWgL8uj2rRl3MxGe1aTis380aY2jtTglDbO
+ D0WmpX6YjGG+aFea9EeO0lPamV35iKxPrJHcoTkyv8qb6dHG2mKcmpJD0E998gnmop9QG2kF
+ 1uW2qDOUS90YQ79C1I/xSjPTpobiKCgO4xWHYF7GqnoUX3FbnCH6mY1+NU8+bWwzn0IWS/T5
+ VDs7eHEtQvla8d7mNib6OM88imeY8fSBardsPk+b0mIOn7JjjFU1kOOIC4N56FfTTJs1MG6I
+ L05pUyBf5cjaGahJP7kGtWFWXNqI2A+104jtON/KH/lZPtoVFJcHbUTLpzjZvIKqh7FxShvt
+ tCmf4imbyuVQy4pxMZb2IdsC6pOvNBg7KZgr1m9T1W9ui6IGtTI/9WNcjCWXuWNMpkMOoTgt
+ fcLt6ndFHca1QF7MpewtDnVVXIxRbTXN4jNEHnMp3RY8rm8dcnRfSWRChZbPoDbyQ+JYEP1R
+ P65M5LY2BJHLeJ9m8YpLH+0tvkP9MBSo1RfT6kcrnuPQ0lEaahwUv6Wr+Aoxl8/HGLYzW/TR
+ 9n8N5vR2HB9yFGL/1ZhkGlwOGY9QPOZucVVMhr4+KA75bGdQOuQokE+doVAxrId+/lYVR+mx
+ xr64GJ/pUDPyqcG6Y/3kx3y0E87jut36TWV1U2NDoXLEaR8inzrR1qpb5VK2/w/GIKeeOkSP
+ SgAAAABJRU5ErkJggg==
+
+
+
+
+
+
+
+ COMMERCIAL INVOICE
+
+ Invoice Nr: Date:
+
+ <invoice.number> <format_date(invoice.invoice_date, invoice.party.lang) if invoice.invoice_date else ''>
+
+ Order reference:
+ <invoice.reference or ''>
+
+
+
+
+
+
+
+
+
+ Buyer:
+ <invoice.party.rec_name>
+ <'TAX ID: ' + invoice.party.tax_identifier.code if invoice.party.tax_identifier else ''>
+ <for each="line in invoice.report_address.splitlines()"> <line> </for>
+
+
+
+
+
+
+
+
+
+
+
+ Payment terms:
+ <invoice.payment_term.description if invoice.payment_term else ''>
+
+ Bank: UBS SWITZERLAND AG
+ Case Postale
+ CH-1211 Genève 2
+
+ IBAN : CH36 0021 5215 2487 7461 D
+ SwifT Code: UBSWCHZH80A
+
+
+
+
+
+
+
+ Shipment date:
+ <format_date(invoice.invoice_date, invoice.party.lang) if invoice.invoice_date else ''>
+
+
+
+ Transportation:
+ <invoice.incoterm_location.party_name if invoice.incoterm_location else ''>
+
+
+
+
+ Terms of delivery:
+ <invoice.incoterm.code if invoice.incoterm else ''>
+
+
+
+
+ From:
+ <invoice.incoterm_location.name if invoice.incoterm_location else ''>
+
+
+ To:
+ <', '.join(filter(None, [invoice.party.addresses[0].city, invoice.party.addresses[0].country.name if invoice.party.addresses[0].country else ''])) if invoice.party.addresses else ''>
+
+
+ Origin:
+ <invoice.lines[0].product.origin_country.name if invoice.lines and invoice.lines[0].product and invoice.lines[0].product.origin_country else ''>
+
+
+
+
+
+
+
+
+
+
+
+
+ Quantity
+
+
+
+
+
+ Goods Description
+
+
+ Unit Price / mt
+
+
+ US Dollar Amount
+
+
+
+
+ <for each="line in invoice.lines"> <line.quantity> <line.unit.rec_name.upper() if line.unit else ''>
+
+
+
+
+
+ <line.product.name if line.product else ''>
+
+
+
+ <invoice.currency.symbol + ' ' + format_currency(line.unit_price, invoice.party.lang, invoice.currency) if line.unit_price else ''>
+
+
+ <format_currency(line.amount, invoice.party.lang, invoice.currency)> </for>
+
+
+
+
+
+
+
+
+
+ FOB Value in USD
+
+
+ <format_currency(invoice.untaxed_amount, invoice.party.lang, invoice.currency)>
+
+
+
+
+ FREIGHT Value in USD
+
+
+ <format_currency(invoice.freight_amount, invoice.party.lang, invoice.currency) if hasattr(invoice, 'freight_amount') else ''>
+
+
+
+
+ INSURANCE Value in USD
+
+
+ <format_currency(invoice.insurance_amount, invoice.party.lang, invoice.currency) if hasattr(invoice, 'insurance_amount') else ''>
+
+
+
+
+ Total CIF ISKENDERUN Value in USD
+
+
+ <format_currency(invoice.total_amount, invoice.party.lang, invoice.currency)>
+
+
+
+
+
+
+
+
+
+
+
+
+ Net weight: <invoice.total_net_weight or ''>
+ Gross weight: <invoice.total_gross_weight or ''>
+
+ Packaging: <invoice.packaging_description if hasattr(invoice, 'packaging_description') else ''>
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAARwAAAC1CAYAAACNkEByAAAAAXNSR0IArs4c6QAAAARnQU1B
+ AACxjwv8YQUAAAAJcEhZcwAAIdUAACHVAQSctJ0AAHdDSURBVHhe5X13mBTF1jdpyTkusLvs
+ skhUUEAQCWJCUBFUFFSMJBWuooBeIyiCGVQEBMkZJEm6ckFQJCeJgpJzzkGM53tO1ZyZmjNV
+ 1dUzs+B9vz9+z3SdVKequ89U7kx//glgwh9/RNL8Am0QOI/L2dIm/PVXJM2F72Xfi2+Di66X
+ DPpt8t0GL7vRIqPsEkxlteVLPJOuH8TTlgts5YoW0dqMV9ld8s/ECV7QGSUa/ur4OnBZ9dpW
+ cBtPhYsffl5q7q8J3J6LjiprqhMTXGT8gPuvA5dBHziNQ31GOO9KwNUPfk9M8Cqfjs7rzEXG
+ L+Khr/MrWgQDjs6ojhZPqDcz3nn5scdviuoX8VwfPA7UUW1wvg68Tlzy9uJz+JXXwa8Nv/IZ
+ CZMvVNf8HsSKeNkheNnjz3QsMOVlonOovvhq4fAH36tQqiy/1jmro8ULrra5HE9zngrOzyjo
+ 8lPvBfG4jKuvXvfVD3R56Wic7yWTUbhS+cYCP/WFcnh/dffY1YZfqHaNAcclc5uMjRcPmOyb
+ 6Cb4lY8Wseaj6vt5wGxQ7dhsmugqzyajg1/5aPVs8jZerIjWth892z3LCPjNSxfUjAGHYMtE
+ 5dnk/sm4XH6b8jHROfzUte5B5GkOnY6Xru6BcuGpMNm+HLiSeZsQT59s95TLcZqNHi3QXiad
+ UZVG15zG09yGju76EOp0/erroLOpg5ccL39Gw29+fuRtY1Q8zeHFd4EfG35kY4WuPhB+x+Nc
+ YMrr/yLCWjguhXaRySioAcd0bYIfv7msmnbJi8txe9GAP5TR2uR2XEB9ftey2xCLDd19cC2L
+ q5xf2Wj0THImuolvu5ex1LPLu+WSr043oktFhTAZ5LKc5sKLB2z2iWeTiTdc8uIyPO0Fv/Im
+ RGNH9/D4hem50tFihc2mS1ls+jZEq4dw8UsHLz3yySQXi89+EVPAscGmb+MhsGK8ZGx8G88v
+ XG25yKkyLvIZhXjc32gQTb5+5V30vJ4vVz91MjpavGAKGPGAybZaHpOMDr//HklDRAQcBGVC
+ v34yMiGaGxGPfBHxLEe0iGfe0dRlPHRNiIfNeNj4XwA+B7Znwcbzg3jZ8QOXe6gNONHCJUM/
+ UCvNZlvH09Gigc6OjhYNov330Nnw0vfixwI/tk2yJroOXrKx3B+uS2n89crXBWTD1Rb3J95w
+ 9SNeiDnguFaITc7G08nhbzxeVh24LZ1vOpoJXrKYH8/TD+hFiMUGRzxtXQl41bkO6rPFef9X
+ 4VJWerbi9UyIaXH+Atugk+P6PK2DqQB+/YkG3LZX2gRXOQ617LGU1Y+eqb5NINv4a9I10b38
+ Mun9XwOW01R/RNPx/gmgexhtsOE6ZC8ue6lc5aJBRtpGcPs87UW/HPDK24vPb74JaMfLFkJn
+ jwdRzo8HMsquinjmoaunWO276pvkvOgmvg5+ZAlRdanUjPxm6lowzufpeIPbd/WToHu4vOBi
+ m8vwtI7n8vKTjInvxVPt8LK76HmB27wS0JVDR9MhGv/9PHMuMq7wa8uvvArjwr9YjLrAT+X6
+ kYsWaD+ah4Rg0o2332jPq+5Mvnjx/hfg+ozaePFCvOvS1WfMV5W1+eFi00UmXtC2cFwd4HI8
+ baJdbri8pFcC/yRfXOD3wdbR/um43D67tEa9eK5yfu+fC88vRMCxvYw6mh/Equ8FF/so4yKH
+ sN0UG2x1eDnAy6jzQ0eLtrwcOts6Wjxgs2vjxQu6PKgedTydnF942Y0W0foTLYxdKhfo5DmN
+ p73ofmVcgHa4LVNFm+g6qDbpWke7XLjc+dmgq3M/8HMfXFsJJh0XuNo1waSvo7vSLhewrvzW
+ F+lxWkTA4S+MqaCcbpLV0VQ65/O0F90L0erpEKstUx25wKans+uV5nQTPxrE05YK11ZERkL3
+ EnG4yNigls9UVqTHmk8sMPnlBe0YTizw6wivXL/6Nuhs6WhefB3tn4qMegij/Zf7vwo/z0S8
+ 6s2UZzzfm4y+zxEBJ16Oxwruhy7NafGAl03ie8lFC6+b7ZKvi0w84JUP3aOMulcuUPP1qltX
+ XKmyuED1TXftpw50sjqaH2gDjt8HhDvBC+rHVkbCxQ8uY0pzejRQ6810zXGl65PfW87nsl7+
+ 2soab8QzL1uZXBCrvgmm++OSn4tMrAjOUnlltnXrdvj++2Xw3XchYHrhwmWwYMEy+O9/l8Ps
+ 2ctg+vRlMHXqMvjqq2UwceIymDBhOUyYsAzGj18O48atgFGjVsDw4Stg2LBV8OWXK2DQoNUw
+ ZMgPWh942otug6tOPB9KAua9c+cZWLx4GSxevByWLFkJixYth0WLlglgXWIdfvvtMpg/fxnM
+ m7ccZs1aBpMnY70tgxEjlsPQoVhXK2DIkJXQv/9q6N9/HQwYsNxYLpVuCmYuutHCxYaLjB/4
+ vXfxzt9kT/ds/6/Db10jsA48jxildJs2L0GZMqOgTJkRUKbMGEhNHQ+pqRMhNXVC4HoCpKVN
+ grJlZ0HZsl9DWtp0KFt2GqSlTRbp9PRZQRrKly07I4CZkJb2FfTtOyMiXxO4nJrmPBdEo+MK
+ tH3u3J9QvPhDkJo6DsqUGS5+sa6w3GXKjBP1g8D6pHpJS5sNaWlYf1MFsH7T05GG9Yn1+DWU
+ Lz8lIj8bMqKc0dqMVi8aXI68eB7RvJAEbssLfuW9QPZ0ZYglL9SN6FIRg6efeuo5yJPnZsib
+ 91YoVqyzePBTUkaKF6FMmdFQpsxIEZDS0qZASsowSE2dDGlpGIwmBYIUymDAGiVo+HKhDgao
+ lJQRULlyH5GPLm/uH4cq4yLPEY2OK/AgogEDpkNq6leizCkpQ4Jlx8BbpszYQNAeDSkpX4p6
+ kvQRgfqVdZuaOhbS0jBwz4OiRZ+FAgXugyJFmkbkp0NGls9P3eseYBd42f0nw9V3P/VoAq/f
+ aO2o4DZt0OXHadbNmyouXJA4ffpvOHbsHIwevQJeeGEDJCb2gNTUMYFWz1goU2Zo4IUhGgYk
+ DDTyGgORpA2HlJThAblxQue55z729CMjEa+81Zt0/jxA9eo9A4FkFCQnDwy0CLGukIatHgzQ
+ 4yA5GetDthYxCMt6w0A+HpKS3oR+/WbD0qWn4dixC+I+nD4dmbcf2Mpr410uxOKDnxflciOW
+ cv2vQ9vCUaFWDh0bqNK+/noNVK3aPxhEMKDIAILdLfxHHwrJyYMCrR9s2VDrBls6+LKNFF0H
+ lCtT5mU4ffpXYZ/y8HtzVF0TvPjxAubTuzcGGSw/lnUcpKSMEcEEgzS2YDDo4C92r6jlg3zs
+ RsmA9BU0aNBdBJeM8Fut54ywj+Avf0blo0KXh472vwJeh4hoymO6zzr7Juj0TXROC9vawGGi
+ cyxYcCDwEk2E5OQBgcCDAQdbLxiIZGCRLR/8nRToPuC/uOxuUcC6++6u2kqJV4XwQVOS9WPf
+ FRcv/g0pKW8EWjRYB1hWbM3g2A0GG+xOjQ0EW6yDMaIbKrukWB9DoFSph+HXX6U9U7k4vOR4
+ /cZaB7xOOT8e8PLNNV9XuXgh3vn5sWeSNdEzCmp+1haOKmi64SiDLZ/XXpsX6DZhoJFdBhlg
+ 5L+0fJmwO4WtH5mWkF0LOV4xHkqV+hjWrt2RYZUSL7tedpDfqlVXSEmhbhEGGyo71gvRsewY
+ YLAesNUngxDWZcmS78HKlbuDeal52vLnPNO9cwHpxmKDQ2eL+2yCSc5Et8Gvjk3exosWunqK
+ N2x52HgI3XOp01f51oDjBzt2HBatFhrPwRdNXmPAwW4UvliyKyEHQuW/uhzDwQFR/NdHnfHQ
+ suUAuHQpMg8vmAqOdN3LSnSbHk9zmg4os38/QPnyXwTGYmRQlUGGAjGWW7b4cKCdgg/RsYVT
+ rVoX+O23SPvxhEt5/MCPPVN9muixAB/+aGySjtfLx+VN6XgD7XPfXPLkOtHAJR9+L30FHFWR
+ Z3buHED+/M2Cg8UUSORLRi8bTanj4DG1bIYFgxK+eNhCSkoaCIsWbYzIn4P74Aqdno4WLTBI
+ 3HHHG4EggmMyWEbsUlHLBsuOgQeDrOyKyi4UDRRjfY2A116bFnHDMhrxyCseNrwQjxfmSsDL
+ 72jvt4uOTsbUgiXZWAM1gez7CjgEXaVgOn/+e6Bs2dnBf3TsQslfHACVL58c35FTvzRwisEn
+ ORlbR9jlwMHlyXDLLe8bv22T0eBl04HLqOmdOw8FyoiDwKEWDo1z0bS3bOVhfeDaJAxIGGik
+ XlLSZzBt2omIfDIafvNTH1RXXVc5V8TbXjSIpw/xshWLHdLVvesuMOkYA45JQQd66HB9iPpi
+ yX91/MfGFg11J0JjFfQi0suG60xkcBoqbIwYMTcir3hALZtaoaYym+g6XLz4F9Sp8+9A+XCa
+ WwYRWXbsWlIrB+sA6ThzRWtzZJcSW4FJSZ/CggXmgKOj83Jxmg2ucjZE+3D6RbR5RKtHutHq
+ 89aDF6LNJ54gH/z67gVjwIkGpUv3VYIJdqlw8Rq+dHKAlMYzMMDgS0ZdKtkawKCDeignX9L6
+ 9cfA+fN/RuRjuiEmeqzwsqu+3HPm/CRWAuN4Fq4YDpWfpsGxXkKDxDIYUWCirtZYSErqB99/
+ bw44HK5yJvAXiqdNsMmYeCZ6vHG58rHBjw9+ZDn4veN8Hc8m5yLjwsNfNWh5BhxVUUdXIbsI
+ sotEQSQlBdegyOlv+Y+O1/gvLhe70UplauXQVgn8509LmwjvvjtZm5cJJMsjM7fB0yrdxCOb
+ Jv4ff/wNN9zQO1AHFFRpNgoDDQZT7DpSa0YOEsslApjGKXFJxy7V/PknPLuVJl/8Il524oVo
+ /IlG538NtufTBX51/cp7wTPguAIdkzMu05WgM16MzcgXTnYjEHJsh9bgyFkrGXzktHGoGzIa
+ qlQZaC00vwEmWU43pTldBy5DPowa9d/gIHhoZmo0pKcPDS7kQ7oct6LBcyq/nLGSMnKx4Jw5
+ //8GnH8S/DwbXA7/pGjglej8z1AHnpf6Z8d5fuGq7+KnDjb7cQs4iNAAKa0iHg0VK+LCt9eV
+ gCNfKBloxotFb6FFcXKflQxKOKiMXa6h0KbNEGshrhRUn86f/xuuvfa9QCtNdhsxgJQq9RF0
+ 6zZPdLNoHQ7JyHJiC4/WK5EetnoGw9dfy4CTEWWP9mGKl74KXj41zXnRwNUGyeleah0NEa96
+ iKbMrnKEePgaq42w3eJqhXNBHbhcWhq+UDi1jS+MDCSVKnWBV1/dHVhNiy2eIaKrgS0BvMau
+ lRy3wNkbudFTrkuRLySO+6SkDITt209q8/Ty33TtCpMOt/vii4uV1hkF0AnQpcskGDx4BZQr
+ 922gzIMDrSBaaYzbPwYrM3ZYhzhrNwgmTXIfw9HBS1fHV2kU7LzkXMDlya4N3IYJfmRj0dHp
+ qWm/fnM7XBfTthecy8cCXg76dc3DVc7peAqEreCEihXlkRWySzVe/HtXqtRZ2Lv+ehzbwFYN
+ vlC05QHHdeSOcvnvjroYqJCHstT1GAe1a/9H66POVxP8yHqN1xDopqSny7Equb3jcxFICxV6
+ Eg4cuAhDh26Gq65aFGz1UQtPDhZjqw532MvNrHJcBwPTAJgwwbtLFQtcy4ag+jA9B6ot0uEy
+ XN4Gtdx+bHEeB8l4yfJyql0jnT1+rbPhBa7PwcvIW794HU2eXvm6wNVG2AFcrkqkw2kVKlAA
+ kXuH8OybKlVeEbKzZu2AxMSewX9w2QLAgdXBSncKA01ohku+nHKzI255WLJkX0Selwum+kFa
+ 69bTxC5w2p4hA+5E+PDDBeKhGDp0K5QrN1cZOMbWnhwwD02NY93JXfMYeNDexInmFo6JruPp
+ XhQOzj948Dy0a/cCdOjwErRv3w3atesK48ZNjdBTdamOevceAk8//SJ06CDRrt2/InRwceTL
+ L3eHdu1egnbt0H43kY/MKxJt2nSGQ4fC88S6ffnlXtC27UvQtm03+PLL7RH5qFi9+k9o27YL
+ tGnTTcj36DEyzHcuj/jii7FCFvNo0+ZfcObMxSBP/VPC8rRt21WUB+UHDRoVYUuF38Bw9Oh5
+ 6NTpTWjV6nVITOwMBQo0g9KlX4V7730bnnnmDdi587yxDDosWnRK1Kmsj67w44+nfOlzqLr8
+ Wk1HPYbDncN0hQqhFgkCZ5kqVeoWlHnwQRlUaLCUBlVDq47lVDmNY4QWyclVyvXqfeT0j899
+ Q/AbrJOxgVcc0U6dugSpqbhbXo6/UCumVKnn4eDBk0IGWzgYfGU55MpjuceKVlrL5QBSV7YA
+ ceZq9Gipz30xQecj53Oaib9t29+QLVspyJu3AeTJc5NApUpNrd0sxNGjl6B48cZCL2/ehgKZ
+ MuWKkMcXtFy5KpAnT0PIkwfzqB/IR15L3QaQO3ddyJOnLuTIUQl27gz3FVG+/I2QJ089Id++
+ /e8R/nA0b94WcuWqI/IoVKg6HDhwOsI3sv3jj3shR46rhW3Mo2fPnyJkEVgnnTtPgdy50fd6
+ ogw5clSBM2d+18pz2OoTsXDhUsiVqzrkyXMr5M17C+TNezPkzn2DANVb9uzlYdSoyRHPOdnn
+ 6caNnwrUMdZ5HUhNrQKXLv2lledQ+XRNZfDSNQYcLwMqnQpZubJsudDObzyVrnLll4Oye/YA
+ lCjxWiDg0N4p3DmOXYkxgYFV+UKGNndiwEE+/vMPgy++WOIUdLiPXvAjq8rXqPFOYJaJ9o2N
+ hKSkz2Hs2KXBl3PYsK3BVddybEtdg4N6NMg+XBzhQdPno0ZFBhyedoFXd4gD5Sjg4AOdO3cd
+ 8eLnynUdDBy4KkKegL41bfqYCBD4EOfJI4NBpkw5ImRlwLkmGGSyZUuGTJkSAsgBmTLlhMyZ
+ 80LmzHkCyAFbt0bmWaEC5oEB6mZ4+unfg605Xmai47quAgWqBYNI1aqNIuqUnvtate4TB87l
+ y3c7lC/fxPjcoWzt2k8GXn4sO/rTCBYtWmXUUXXVNL9HqJ8///Wi/hH58pWFPn22wJo1AIMG
+ LYISJaoGgtyNkCNHZVi+XLby0A6B54k28+VDXzHgYBC7CfLnbwp79x7V+sTTfkC65Id1DMfE
+ I3DeNdfIVkmoizAJKlZ8PkznlVe+CpwWiP/yCBy7oBksGVjw5QsFHRwLojN2xkGNGt6HdNHD
+ pZZB1TH5bwPXweuNG/dC6dL9AgEDAyNuQp0E5cs/DZcuyQWLKDd06BZxlKpsAck1OCEd6jrS
+ uI5s7WHQwhaOrp/OffEDVz0ZcEoGA478Z70JatR4TAQLnU8XLuDLjC+HDDQUTDCIcPvUwqF/
+ 7JYtH/Ict9HRypfHwFZX2MGAw/k6jB69CnLmvE7oYNkmT/4xIp8uXQYHWnf1oWTJhrB7t757
+ i7Rvv90AOXNeK1ocN9wgAw/WwVVXNQoeLaKDzh5CDRIPPdRVBBoMDDfd1DVY94Tjx8+LLUX5
+ 8jUWexnffPNDo13Ks2vXycHWUcOGb4k6wOuWLfVLUCgvTtfJeMlpz8PhaQ7iq3J4Xa2a+uKM
+ gLJlp4iAo+ru2HEcihfvFmjhyH93mo2SrSOkUTcKWwQ4sErrdXAF7hfiyE7uU0ZCV5GYbtKk
+ V3BRn+wa4W9/GDt2V1AGf2XAwaNUZXnUbqe6uji02x7X4Xxh7FJxms4/V/B7SL/btv0F2bIl
+ ipc5V66aUKHCreKhzJmzOixfvi9CD/HCCz0DraE6kD9/KuTKdX2ghZM9wj8ZcCqLYIOtDR5w
+ XIA2sUuFLzfa6NDBHnDUF/nZZ9+GvHlvE0ExV66rRfeJeAcO/A7FimELAMt7PfTq9WmELcof
+ TzW45pr7At2oa2DmzI2QP38Zkc6VqxYsWrQ6Qs8P6tdvBLlzox/XwYIF30fUI6bHjt0Kr746
+ H3r02Azz5x+LuDfq7+nTlyBnziRRtoIFq8K2beche/YKkCfPDZCQkGYMrGTD7z3iMHapEKaM
+ dUDZ667DLgEeBi7HafAkP2rhqHJDhiwITI3jyyqniOXRmxMDZ+bItTj0UuJLKE8LxOny0XDt
+ te9E/PP79TdaPZRFfP3192KNTWoqLuijrtA4uOWW4RHyOGiMdSHLgt1NOmALA40c95KBCFty
+ crocp89HjpQBx49/LtA1s3k+27b9KbpUuXPXgyxZCsGLL/YOjLfcCkWLlgn290l3375jkC1b
+ CSGfO3cl+OSTL0Sgwq4VBhyeXyjgoM1QwOFl5X5xXmgM52anMRzSO3XqPOTJU0kEnLx568Od
+ dz4Mv//+t2iZXn3164FAVBsaNDC3qJF+5sx5KFAAuzs3wjXXPCZorVqtE0Eid+6acO+9HwXL
+ oNox3QNOa9CgsQhe2MK59tq6cObM32G2eADQ2VB52M3Ll+8OyJ27Ftx11zhBu/feTiIA5ct3
+ N4wcOSlow9QliwVxDTg1a+KLJ3eGyw2JY6FSpReDZ7qQ82fP/gYFC96lzNrgYLE8A0b+w9M2
+ CJq1+RKSk3HsQ54bgzNb7du/FtEE1/mro5l4PG0C5lup0guBVpfsSmHwLF78FZg372yEzeHD
+ dweOUZXrcGiwWC4HwMA8K0CjdTh4vvGgYMDh+btA1bPZIJ5af/hLYzgUcE6exLEEHMTFFsV1
+ sHv34TD5Tp2WBFs0jz02EgYM+AJy5qwmmu484KB8eAvnFhFwkIZ1S0BZNa0rhww4GDRug2ee
+ cQ84iLVrj0HevDeIgIO+9+kzFhYv3hgY27gJcuQoB8eOndHmi0CfGjV6JdCqawCvvPKWoO3a
+ tV8EGxkoroddu34Lq18TdPy33tonAh/WK9Z9WlpTqFixDqxefRDOnNHrmGwh0tJaBbq89WHO
+ nMVCDj/vVKjQQyJI5s1bCy5d+ttqg8OPXDDg8ApxueaoVYuOysQ9QfhPPQ4qVHg2Qgdvyty5
+ JwNdJQwuoWlyWqujdrdoXCM0vjMcypV7H44dc3vAVHBfosHgwbMhKUme04x+0ydfWrUarv3H
+ GTZsm+hShVpuoYFimqELDSDLbSB4JtDQoXKx45XA9u0gxnBy564NWbLkE+Xq2PFt8eUODCJl
+ yzYOyu7ffwny579O0HHgcsWK7dC/Pwac6mL8gcZwqO7xVwacSoGZkpshLa0mtGrVDlq1agsP
+ PdQ+cI2Q1w8++Kj2MDI5aIzjRQ2hXbvfIvg2oB/PPfcm5MqFXbKboHDhppA/f43Ay10XBg2a
+ aH1e9u8/CzlzylZSQkI52LJFDrrixwYKF5ZjJBiwX3rprbD3y2ZTh27dhohZOjmDJ8uaK1cN
+ yJGjIqSlPQOPPvovGDlyHly8+EeErorFizeJrplshVaDY8fkOCMeyp8lS8HgjOCAATMidL3A
+ 44cJYtDYRdALaKNOHWzh4FQ2vURjoGLF0BoMNR/c6FivHm57kBs95QtIh1AhTb58tK5Htmzk
+ rmq55WE4PProMO1DaIKtnDaeChwErFMHd8XLMSU5dY+DvO/CmjXhB8CT3WHDdkF6+jeBcRoK
+ VFgOHLuineK030zurUpK6g9DhuhbONw+58cDoYBzQzDgbN68C7Jnv0q8SDg+MW/eRkHv23es
+ eBnwn7NBg/bCJww4+FLgA4zT4tw+jn1gwJGtAJoax3GiWwK/OIaCNOTfDAkJZbT3WgYcbOHc
+ 5DmGowP6WqXKE4H8sGsm873++tvh4sVIeVVvxIiZ4uXHoHzttU8G/2yQN3XqD6LVhK23AgWa
+ i1a96V5xOqVV+qpVW6BJk0cDY2m1RZdIBkb0GeusHjRq9AIcOiSn+blNRJcunwSXOHzyyZgw
+ ubZtcZBcdm8bNnxKq+8FU74qz9egMafzNAYc9TgGHJOoWPGZiH99ws6df0Hx4i8HF8PJl5dO
+ yEMb2JqhKWPa7IlBCTeJ4njHRNi69XCEXR1slUF8TuN0vO7RY0RgQyqthMYu0RR4/fUfg81+
+ rjNs2A4oV+6/gYBK3+nC1o1s2YQfKI9BCMs/HoYN04/hcPuU5nKxQAYcnBavIwIOdXc6dhwV
+ eDnrQ926XeDsWYCEBByElK2CVas2Cz9kwMG1I3KWivscHnDqQ6lSd0D9+v2hXr3+ULeu/G3Q
+ oD/cfLNE/fqfi2DPyyi7VHKK13WWSgXaw2CAXR8524XBtDwcOnQmQk5NY10UKnRnICjWh6+/
+ nhcWcLC+SpduEQhIdeGjj2Rw5vnrwPMimrT7F/z2258wc+YuePDBjyAhIVmM7+C0OObzzDMf
+ Regidu48AVmzykkADOjr1x8My+vAgeOQNy/ycPC7AsyYYV7+EC0wr7AuFRdwBVXGjTfKaW05
+ WyOv1RaODq1avR14edWuFJ2dI79SKV9CCkTU8sHu1Xi4+eZ3g/lz2xwmGROdAx+iSpXeV7pA
+ spVSrNgLsGuXea/XsGE7RQuH9pNJXZqVkps8JY22PshFkBRwuB/xhGqfrvFXjuEkilYLtXCQ
+ t2zZbsiZE1su9cXsRqtWbwbWiNSBsmWvgd9+k4OaOIYjA059saaGlwPrMj29YqB1cjO0ahUa
+ NFahC+Iqog04qj305bHHXg22qB57LHKig+vPmrVajK3IAFUDypd/ASpX7g6VK78KlSq9BFWq
+ vA4FC2KLQc7yVa5cV2vH5BOHqQ5On/4N+vYdJMZfMOjjPcE/C1UW6/DNN4cEunh1xNgaDoxf
+ ffWb4veaaxA9Ai0caeeOO7oJG34GjXX+cQQDjothk0Gi162LxzB8HegeyTNt+CwVt4PfWypX
+ 7k1lvEYOGksbcpsDbeyUQYa+CoEv5ggxTT5t2jbflWODenPpGm/a22/jHikad8HWHAa+STBw
+ 4OyIMqq2cAxHbm3A1p8cCKexLpryl2XHAIsLIfFbXnIMR/egcd94nlzORZYjFHBkl0rNs3z5
+ hwKL+m4MzkTly1cXtmwJdSnloDGuTbGN4VQOBJyGIuBwH73uJ8pil0p2K7ynxU3A1laHDm8F
+ uhvYSugWDHRcFoH0li27BF5OrAcaW5FdOzkoi7bkqmM5qFwbFixYZ7TpBV13knDmzF9QsKBc
+ S5M9exosWvRThEyFCrcH1tugT9iSk91Y+Sv9DnUp60GhQnXEOeXcjtc98ULELJV60/1UDsrW
+ rUvTvXLHN81SeTUlP/5Yzj7hzAy9jHLWSraWwgeNZQtATqNjUBoNdep8LY725Ha94Fo+lDt6
+ 9CykpsoTDWWQkN2psmX7wpkz5sFK1B0+fI/4RG9oFk7uppetuNDqY/kBPOwq4rT4FzB8eHgL
+ x9VfL9A9ttkLH8PJG9bSOHTomFi3IR9Q+bKVLXtzmD4FHDmGkzsiL+pS4YOuW4fDn0GuT2ka
+ NM6b93bo1EluJTCB9FRb+ALhy9yhQ0/R0qKAo+bFgfvMsmUrG+zGpKc3gPT06yE9vTakp9eC
+ 9PSaIl2u3A1QuDDWgdx+kJ7+oJh65/Y46KXG+sDB3CxZcovV16dOyYDO5Q8dwi4h3o+6Yi3N
+ 2rV/hXXv3ntvhxhzkzOC10Na2jVQrlx9KFu2psBVVzUQaUTBglifODFQD2rWrBW0wfP0C7IR
+ EXBUph+gTr162MKRwUO2SPB4ivCFfzqcOfMrlCyJ08z0ItPeKvr3ly+o7HLQmA6++DSGMhmG
+ DFkSYdcLrtEab16bNu8Guzvym+l47vAAmDRpe0R9qXaRN3z4juA6HHnchtyoSS06OUWOafpg
+ Htr+PMO7VDbbMuBQlyoUcJCHwb148XKBf0icPq4GEyeG7+aXs1TXBQeNeV4y4Mh1OGijVSs5
+ 6KoGBt0vAdMI7FLJoHU7dO16CY4dw1kXXIErf1UcPCh1+B8gBpynn8aFgBhw6omAQ/ZVOcr3
+ kUdeDASRupA/f0n49de/hU0C6SImTJglZpNkULwRdu48YrRNoOcHZa6/vlWwW9awYeMw2wgc
+ 2H7sMexSyZbLVVf9O/iJJSpro0adAmVrAJ07DwrSyVf8xTpAvPDCD8Fxp8KFm4Tlxf2MBtqA
+ YwLPVE3j9a23Dgks0JOzTAhcr6I6zG1Q5U6YsDTwMsotDxRkZPCRn8INBSNsDdB4kdzsWbOm
+ XKBlyof7beNzrFu3C0qWxJ3usosnA99IsY/KyxbeTDktPiM4A8dXUsuy0D403B4xWZwPjQGH
+ 7OjKZcrXRHcB6dJKY3UMR/Vh8eK9wYBSuXLziDxlwKkmXjQcw+F5oL30dGzh4NYGuSmxWLHn
+ oFixF8Vh/CE8DUWLPgNFi3aG2bNXBvPB5wavZQtHBj7ML2fOawLA66qB32shZ84qYtCUBxsE
+ BRzqBlHA4XII7GYkJd0VaN1cD6tXm3dZIx0Huq+77pFAQKgHTZs+Htb60Omo6YED54jZLmxp
+ 4lhRuXLPw+OPvwX/+lcPePTRt+Daax8NbOS8XtyPadNWCBsEHCzGjaQY2PPnbwT79v0V5KF9
+ /qd74gQuiMTWkpx17NnzmzD5WKENODrjOprKQ9x6Kx4khV0pCgQ4aGxv4ZBdbGpWqNAxsDYF
+ gxaNa9DiOpo6l90q2XXDwWS5rgUP8+rWTR43YPNVB1Vevcabgf8WbdvK72XJRY0y4OAq40mT
+ FkXY4kB7w4fvEhtZQ11FOlAdfccy4CwVjVfJ7Q64uHHECP1AtA28dcX5rggt/KsFWbLkj6hX
+ vK5R4xHxor/55mcReWHAwZ3WqJ8pU7YIPr502KWSa0LkoLOE3KpAi9PoOl++JjBz5sKgHfLn
+ qqtCejiYjfnJF5BsoP3aokuRNWvxsMBJwIDTtm2PwEt9gzgig5eX8nz33VGiXLjGKCnpjgh7
+ XAfx3nuDRLDAVkqWLEXg55/lDJEXyIdu3V6HwoVx35fsNlFXVo634DhaLUhKagRffilXDpM+
+ DuDXrdsuOMh/552PROTBgfrPP98ncF+uF12648cvRchFA7St3bzpB1QpiEaNhohNivKfGjdd
+ ThXT4rqbp8OOHUchPX16cOxGrsqdEPheuZwOp02d1BUJfZJmFKSnD4h4AHTgUd3kH9LmzcPT
+ CumcYppFGgXNmvXX/ltyoA0MOHJMCxdEyr1UdDyFbOXIWSuarZIDx6OM0+KXA8eP/w6vv/41
+ vPXWDHjjja+1fqxc+SN8/PEs8WfBecuW7YI+fb6Gzz6bAR9/PD2Cj+kZM+bBlClfBzF5svyd
+ OlVi2rQQb8qUGbB3r+yOqHbmzl0IU6bMhGnTZsPUqfg7E6ZOnRWwgdcItCV5uucDaStWrA/o
+ zoSVKzdGyJDP8+YtCvq3bNmmYNdEleF65879FVa2n38+EiFjAtrD+j148A945ZWxYgd9QkIK
+ ZM9eRgTQwoXrwKxZC+D8eRy/Cr8PuP1k5sw5wXzXrNmi9Y8Dv6I7bdp/4OuvF8L06f+Fkycv
+ OD3rLghr4XBneNoGlG3cGFs4OL5BZ7oMF9PiXnYoAGAF3XBD38BMl+xSya4UvpR03ChNLeMM
+ 1QBlLESOjTRv/pxnfi5AG4hGjdTd7HIvVMmS78LixWvDZLk+AW8UjuHgtDgNpsuWDbZmMADh
+ FhA6I0i2fmgR4JdfhjbS2fJQ+aqcl45NzsUO1RGnqzwVLjJcnqd1UHkmXZsNnY6Oz8FluF0b
+ +J+eF1T/cNwGga1v13xd5HgdIGzdP79AG9oulStUJ/C6SRNcVyK7OvLlxJXGbgGAZA4c+BvK
+ l6cd4ti1kIsAaZwDA5CcqcIXk7ZS0MJAlPsADhyIz2DruHE/iu9DyZaItI+ttpYtezvbR7kR
+ I/ZD2bL/CaygltsbpE0MLHTSn9xXRUEHW3e00tiWF78HNlkOkjXpcLrftF94+W/j6cDrhvM5
+ vOrDBi8dr7JFg3jbixeorDr/fAUcGqjjdATSmzQZLL62EOr6TISKFTsZdUxo0eK5wIsn//mx
+ VYN7i2iRXKhVg3w5tSwDD56zMxxq1342piYg+outrXr1pG3pi8y7VKl3YdWqrVodTiMMH743
+ uExABmS5YFAGyCFiih8HiuVOeQyk8jwcbOFwWxy2fP3A9IB4QadHaf5r0lHlOM8FJj2eNtF5
+ 2g/UGSXO80vXjb/Z3jkOVzlX2OzpeDoaR9jWBhcFkwzS774bA46cpaIjGypUcBvDUW/cqVN4
+ IPsnwXENWm9D1zLA4IuJwQ1bQ/IlpfEVfIHnz1/tmacJqPfBB/MC+WFrA/c/yX1TL788MkKe
+ dDiNMGLEXnHEaGgGDgOOPGxeTv3L6X0av5F59ofBg/0PGl8OqPfTdG9NdB1stnjaBldZV7mM
+ hM4HHc0PYtXnNmz2or1X2haOiyKXxd/mzXEMhw7Wkgv2sEvFWxs2+8Tr1eurwJk5tDhOPR+H
+ BlglTR2IlQEJz6XpYd18ZwOeiVKhwjuBWSPsxmFLaiwkJr4Oe/Z4d3M4RozYDenpswMD6fRV
+ C6wf+clfbJnJMsnyUcvHtHmTw/UhMYHK41fXr7wr4mHX7xhJNPgn+BnNfYsHuN88TeC+aQOO
+ X1ChW7TAgIMrZWV3AYNPxYryMzFcxwu4KRDX8NA0cfj0OAUe2dqhcY9QVwtXLX8JEycujbDr
+ gs6dsQtHYze00HA0dOnyQ1DGtUwoJwPOnIA9uT+MAiW1zmiaXF7j1oYvnANOPOCSj4tMLIjG
+ PulEo8ttcNBzbeK7gOvyNIeJ70rXdcviCZtNta5McsEulZ+K5bKUbtkSZ1xwUBS7DXJfkOug
+ sQ4DBsjvc+PLietsZFDBFgLttcLDudSZMcwbX2I5OFu79tueZeORefv201Cq1AfihadBXBko
+ XoJz5+T5IQiTPQ6UGznyCKSn45nG8vB4udgPWzdyfU9q6gxBwzxpwB3HcDDgcHsmuPoTT/Bn
+ gPM5XGT8gmzabNt4xNfJcBp/Vkxy0YDb4GkvuivfBlM96GS85Ezw3cIxZYT0hx/GdTNy0Ji6
+ PhUqPG3deGYC2sOuWNWqD4ugQt0m2fXAl1IuDCxbdmqghUM02eJBeZw2/+CDwUafOVDuwQeX
+ BAIBbTXAfVuD4YMPdjrb4f8yI0ceEAv/5MmG6CftDZNT4/KYUtmlogCalPSZ2EtFNngeHNE+
+ CF4vkV97qny0Ppns+aWZyuYHOrs2uMqbfDPpm+g6+L13LnIuMiZ59TriPBw/znKZRx7BQWNc
+ uIfBBlsiY0TA4Xpcl9tR6T/+uANKl/4kcOiWPHo01JrBYEBT8TSITIdiyc/KXH99Xzh58o+I
+ cSSeD/6uXHkASpTA76BjK4kW4Y2F2rWHGX30AuY7cuShQGBEv3FaX/omW2lyF3xoCYBsxeHq
+ 4+HD7Qda665NMl5AWZu86QWxwWTPRPcD1V9eF15l8YJOl+fB+SrPxo83THm50intNdtmg0mH
+ 0zEdEXB4mvNMdEw/+igGHPlvja0COUsVmhbXPbTcDgfyK1d+JDAFTi0DfCFxDQ6dlyNnemRX
+ To6ByIFeHKSdAp07DxerMLltnk+zZl8GzqiRNuQs0iAYMuRg1DcE5UeOPBYYTJddQRlocCYK
+ v9aJNFrwRyuacdD4Cxg5UgYcFdy+Dq5yLtDdMy/o8tfRLhdc685FRoWtbvzacoWLXReZaKCz
+ q6PZ4Nml0hk00Z54AoMMfmGSNlxODE6Lo4ztBpmAunj6Gr74MhDQzmp1PY7sasmBWDmORFse
+ MOiUK9cPfv/dfnzFxIlrxOeEZRCT40NYjqZN5SdbdWUmusrjcpgeMeJQIBDL6Xw5m0bbGWSA
+ kQETgfnj98kHic/EqHlw27Y8uYwXotHxcz9N9k30eIBs2+pOBy9Zl3KbbLjo2mRMdjMCLnm5
+ yKiwbm1wBd3Qxx7D8Qc5fiJfJBzD8d7awMHlsXVy332yNUCBRb6kdNRDaNd4qBUR2gyJMvfc
+ g58JlscI8PxwjOn22z8PBAK5HgZbSImJPWDhwshFftxX7i/HyJGHxR4z2ZqhDajY+sJWjxxc
+ l8FGjkvJ9Tr4qV+58M9kX/dCmWQ5XPyOFap9r2v+i8AXz8tHruclbwLXo/qJdz3x8T3Ojzdc
+ /Pfic+j2o7kips2bXPeJJ74MfqqWxlXwK5RcTqfLwflYyKuu6hPYQCmPcpDXFNxoqwAGHvkZ
+ YRqYxV8chMXPgnC7mJ4+fVHgMzRy+lsGtfHw7LPhmw5t/zyqPVUHr0eMOBj4jDEGE5zylvUk
+ Aw2tPpZbHOSYFHa3voRx47xXGqv5cNqVgosvLjLRQu3+8vthgk4G/4gWLlwC58/L3dL8/ut0
+ vGALOC7dduTp/jQvB6guDx78DZYtWxOVH55dKj9o3x5fJNycOCxw4BR2qfRnGqsPgq6COQ3T
+ nTotCKzzkdse5EuKx0bgx/cwWNCgq+xa0XiOnA36CipXnhBhFyvthhtwUBqDJHbBcHAXP9Py
+ OezZc177wPI053E+rjQOHUyGftNB83JWKiVlQGAdjvwyBfqP5+9MmeK+DscmZ+OZoOokJV0f
+ lsbPoKSn4xkrxaBQoZIweXKo3Lz8WL9paelQuHBRKFw4UfwWL54qvhNOcrH6p8N99z0OBQsW
+ DQLzxc9MczkbcOFopkxZYc8et+Mk/ALL4NJaILnGjdtA7twFIE+eopAvX2H46KMREbIZDfRl
+ 0KCDUKBA8YjZZ37vdeUKBhxVWCdo4xG9a1f8d6Z1MrL7gGfccEds4LLq9YkTOIAsWx+hVg12
+ UTBQyK6TbP3QqmTkYxdPfhECuymzZsmvCpDtDz4YKD7JIuVxpggHi8dC794zI3zh0PE4DdOy
+ SyXX2sgxHNr/hUFGrjGiLQ9yJbJsCU2frm/h8Dyihc4O0vDhXrlyF9xxxwOQOXMe8dJRXWzf
+ fkl8efOdd4bAV1/NgFGjpkDu3EXhnXe+1748mC5YsBB07/4OTJw4FSZMmAoffzxEHOrVpo3+
+ rCRug0PHJxq1Epo1+zfce+8zIk/E+PFToVSpq6FmzZvh7NnQeiobZMDJAnv2HIjg+YHOX6yr
+ iRMXQbNmkd9t49i27RJUqnQN1K79iDjmYs6c/TBp0nQoW/YBaNnyuQj5jAT6+sUXGHCKRQQc
+ LsdpCG3A4VDpNhk8GZ5WzMoXZ3TwQ3i8Ocp16ddkn/iffTZXHJwugwqtzKXPtqhbHrA1IVfw
+ hk4HHAG1ag0JNgVPnLgIqamvBeTp+1gjoUSJbuL7Pty/aDF8+D6xtYEGh2m2jXwNdatoT5g8
+ +XDuXP20uI7mwnMB6mP9dO06E7p27QMXLuDJf0WD/CVLNkL79h3h/PnQ1yQHDcKV3fjFhpAd
+ ut9oq2DBgvDtt98F7SPefvsr8UVOfPlR5vDhyPuPNGxNqf7hiXt4ih3ut7OVtXnz1+DZZz8N
+ +oSyGzbgsallYMIE+cE6wvHjf8P27fvh2LE/wmziaX0y4ByEU6f+gG3bdsLBgxeC9tRfPCpi
+ +/Z9sGtXuG20sXevtHvy5F+wbZv8LvuBA/hnNxqaNm0rjj/Fjwlwm4QWLZ6EatVuiwjoP/yw
+ CfLmrQL794doWN4dOw4JX/Balcd7gl/V3LZtF/z88044cyZ0sBbKHTp0SdxvzGfnzvAvqx4+
+ fAF27DgobGLAyZ/fHnBMiOhSqQ7iNS88T6uBpHdv+RlbGgjFVoPLeTiuIDvVqr0a/AKCbBlg
+ dwqBrRNajyM3Rsod5DgIK4+ywNbE++//ICr1nXeWBQZwMQDg7Bfyh0KfPnMi6oF+TWXhdFUH
+ D+CS3ToZ2GQd4S8GGnUQXAYjlMMp8+++C02L6/KwBXGTL5ynQh2kpXyxnrA1otK4T/364be6
+ rtXaVwOOqrNx4ynIlCkf7N37J2zffh4yZcoUfKEImTJlhgkTFgd1xo/fDjlyyO5EjhwlYPr0
+ uWL2Uc0Xy4DAgNOxYyjgIPDlx8PP3333+4Bvf8Fbb82EHDnyQN68aDMf9Oz5efAPCXUx4Awf
+ vgiyZcsLefPmE6cfdu+OX1iV+aLs1q2nICmpKuTPXxTy5CkO1133Kpw9K2dFly6V3bL58zdB
+ 5szZA0EWIG/eApAjR0FISMgHefPmh06dxkXUHdVfqVLV4fXXPwgrI12r9XXixDmoXr0e5M9f
+ WLRAcuUqDvv3Hw/Wz6FDF6Fs2WtFsChUqATkyZMI8+eHJkVq1nwaxo6dDjfddJc46Q+DO9bZ
+ yy9/AFmzYh0Vh+TkcvDllz8LG3R2MvnBfdchIuD4hVr4vn3pDGL5742zPvEMOIS5czeLT+3K
+ lgu9vDSVjWkMOqFNn7QjW9LGwLXXfgFbtx4Xs1Chl12OnVSt+rrxYCNO42mVrvKwhYMfwqPx
+ GbX7JvOnwW45/iR5I2DZsvCAEy1s+pzH0wg8RF3l4e+8ebugZ89+0Lp1VyhUqCLMn788Qg8h
+ A07hsICDXZXy5etDYmK6OAZz9+6/RcDhuhhwpk+X4yfz5x+BHDlKwuzZm+HAgXOwYsVWyJo1
+ F/z4o/4Uu+bNX4VOnT4LBg+UadeuC2TPXhgOHrwo0t27LxBdxhUrtsD+/Sdh48atYoykffu+
+ Qke2cHJAevqtsGnTNti37wjMmLFABJ0PPxwvbOAHAIoVKwf9+g2CI0cuwO7dZ+Dqq1+Gm25q
+ I/JeuVIGrZIlq8KcOT+Ko02QjqcXdu8+FBo1ehT27TsGZ87oP3GDeeCxpN9/r+8G0vOBqF79
+ RujY8UU4ePAsHDlyCd577zMoVaqKmOXFPCtVehgqVWoJBw5cEi3Efv3wBIMGQTu1az8NBQok
+ wn33tYUVK9YJnZYte0L27MVg/vzNoqU3fvwCyJ69lGcLR31W1PsTnKXS3TQOmwzy+vbFgVr6
+ Vji2PkZDpUpdrXoutrkMnpJ/zz09Aps45fS3HBvBaXk5y6QusqNui3yxZcunWjXZKpItJPnC
+ 416mQYNCx2nqfOL1ZZJT8eWXG4IBR/olWzYyLaf3QzNvclwH1x0tXep/Z7oq76LnIkPfpVJl
+ p0/fBh07vgKtW+PB5zVh8GC5XokDgzeO4ZQqVRbS08tDeno5KFo0DapXvw+2bTslZHbujAw4
+ mJcMOPvFda1aTaBLl1FhraDWrbtD+fK3acvQvPkbUKBAGpQtWx7KlasISUlVoESJWuI4TpQ/
+ ffoSZMmSDcaNmxuW57x560Vr5siR30R3Dr+pNWLEijDb9933CNSrd6eQX778LBQrVkMEUXwB
+ 8ffnn/dCliwFxKTD8uVoIxusXr01zE+U7dVrNNx9d9uIe8aROXMBWLcusowqsJ7xK5z79l0Q
+ gRL9wC5TwYJXwezZi4UdrDuqP9T55BPs1spvhiH9+uufhhYt/hU8MhY/h5MlS2GYOnVRmH9P
+ Pz3AcwzHBKcWjlpRNrz2GgYcGkuRA7oVK74Q/JcheHUFKD/bNOEvv+yDMmUwwITW2sgui9zy
+ IIMRnT6IQYjGS6jbgnpyB7qcQRoDdeq8rs0rFqC9wYOXBA7XwnynsC0MGHTkVgr0F2f35LjT
+ l8FZKr8+udSvi13iq10qVZ+uv/nmv5AnTzGtPXwoCxYsIs4ZPnToCBw4cARSUyvBSy+9F3wu
+ du2KDDgIbBlMm7ZHyGFTPl++ayBfvjqQP78EfqwtKekW7fN1771vQufOH8DBg0cF6tW7H3Ln
+ Lg2nT/8p/Dx69IwIaEeOhMbJ0M6mTb9A5sw5YefOvXD+PPqQKThLRV3Odu2ehooV5Sdbnnji
+ NOTMWRLKl68D5crdGPjeE+JB+OmnI7BihQyc3EdMv/NOeMDp2PFlyJULu2VFxUB8kyYPCNns
+ 2UvCpEl7Iu6b+rtli2wJVat2I1SuXA8qV64DlSo1hAoVGsPs2d8LmYMHT8Do0fOgWLESkCNH
+ abj66htFC45sYJdq9uz/BPPYvHkrZMtWGrZv3xuW14IFB0T3Ue1SucIz4KgF9EL16thFwGlr
+ XGUsx3DKl/9c9Fm5rA0u+aHMrbe2Cm5zoKM75YyVPCVQBhi5Z0mO0Ugerd2hlcgYcEqW7A3T
+ p8tPYnj5YaLrgA/We+/JxYlyPAkP86Jzb9CHyZCc3C+44JAGjrF12KPHWl/1Hw1MtilfhNrC
+ oX9J9QVCOv5THjoUaU8GnIKwYEFo0HjBgtWQkFAYDh2SA6zUwlHLKm1mgmnTdgUCTjqMH/81
+ nDr1N5w+rSJ8oJfQvPmb8NxzskuFfDzjKHfuEjB1qhy/OX4cA04m2LHjRFhZ1q//BbJmLQy7
+ d18MdKkywc6d+8PK89hjHaBGjVuE3QEDzkB6+qNw9uzfcP7833Dhwt9w5szfcPTo36K7KAOO
+ HJ9S/UNd3sI5d+4inDhxJojTpy8IeuXKNaF9+5eDcipuu20inDp1SbxjWbIUEq3/ixcl0J9z
+ 5/4WA8UnTvwJOXPmhsqVa4my48HoGzbsFq0v8qd69adh1qxQwPnppx1iLGfz5vBgN2bMPsiX
+ r2j0LRw0ohJ52gWnT+PnRlsqYxG4lwm3GAyAvXtl0zkauwR+wxD4QJQvj1/DlId9yVaCHL+R
+ rYnxgS8/yO6WnM2SK3lD40wYiMZDy5afC/9MrQPuO1U+l+NAmaeewnxwywWtMpbjRjIoyq9R
+ SMjWmvydAI0adY/Ig/un8rlsrKAy4kNH11274uH1jeD8+dCYAv6D4r+w7gHE+ybHcOSLjsCW
+ Q+HCNaBdu1eFzYMH/xIv5Vdf/TeYz/Dh60ULh8ZwnnmmL1SseLs4+hX5mNf993eEbt36Bsut
+ Dno3b/46PP9832DAwd927Z6HcuVuEjMx+O+cmloNatXqKrofZPOuux6B8uWbCz4+X9iluOmm
+ LkG/jh07ByVLlofHH5cB4NSp85CQUABWr94QzOe775bBHXfcJ4KAHMMJDYir9fLee6OhYcNH
+ gwGc8qC6J7nhw2dCgQLJMHduqGuEv++88znkz58uZqmQVqJEeRg2bEbQzoYNu6Bhw7vhl1/+
+ gE2btorB6127QoPdDz7YHRISUoNpbOFgwKF3DbuU+KG/u+9uBb/9JvVOnbogWqj58oV3qdSy
+ qVDvCcKphcNpNBNAfMSqVXsDLQY5gCtbG/hPPh7eemtSsBCqPf7y2KDzA9Gxo2wVyO874Tkz
+ tMYFAx+CulHU1aNB2tDLX7p0H/HdZ56PKU8vqPWDA5ypqbhCWra0aAEgBRdaCS2DpAyCSEe5
+ okX/FQzWfhGt76RH9xWhBpw9ew5BjRo3QPXqj8EbbwyFNm1eF83/Dh1kd5Tniy8t9vfnzw+f
+ pRo79gcx3b5rl/yQ3BtvTIds2YrAE0+0g6ZNO0CtWneI70phwCG79erdATVr3gKffjoCWrV6
+ CpKSroPdu0PTtwSs+2bNXoHnn/8ojIcBoHDhVBg8WK6xOnbsFKSm1oSmTVtBjx5DoWHD+0R3
+ BKesUV6O4WSHFi1egfLlbxBdqYIFU6F27dvhxImzQgaf65de6itaT7iM4Jln3oJ8+crB11/L
+ cY+lS/8QXSre/UC9uXOXQJ48afDccwPgnns+DeOrZUE7nTq9CzlzFoWHHnoWOnX6GK69tgWU
+ Ll0XxoyRi1kRI0dOg0KFSkPr1jhg3gcSEorBu+/ixmW5nODGG2+BEiXqwxtvDIfq1R+Am29+
+ WHykcMiQ/4rgUaMGdqm+Cct/2bIzUKTIdVCr1u3wzDOvQ+XKD4pgnjdvUXFvub8Efk8I1oBj
+ UuI4e/Z3SEpqERyTkLNF8qXCX/ysysaNh7T2dDQOktEFKCx0mTLviRdargEKzfrIazmWRIsD
+ ZauGDvPCg8snQdOmwyPs8rz9gh6CLl0+F/UhVz7TlL0MknIvlVxxLNfe0CAyBh0c85kAffqs
+ dPoetS5vTneFWs/4Ynz22cCgTcLq1b/Bp5/2h6FD5wZbCLo8UX/gwMGwY0eoWyLpf8GXXw6B
+ lSvlp5IR+/dfgs8++wJmzNgm0v37j4Wff5bPDWHOnPXw9tufw8iR4yNaDarf+M2r//5XdkmJ
+ htc4lf7VV7PDbGLLCssyZ85PYfJYLvThzJk/YOvWc/DZZ/3h229lgKM/ULKLsz4oO3LkwuA/
+ P/qDnxweNGheGI108HfTpuPQr99A2Lfvkvb5JlkEtgwHDJgq/Fi06FjYn7iK0aMXw5AhX0fU
+ D15Pm/Yz9Os3ALZtk99hX7lyG3z1lVwGMmnS0uA6IdVX9H3UqO+gT5/BsHEjHhlzDgYOHKpt
+ 0XrBOeCo1yowcjdqhIvnZKuBVs2GWjryDJhKlV6FlSt3G+24gutj+uWX5Vcd6IXFwIJ7kbC7
+ EqIhaLqcxlQmQPHir8DmzeGLtbh9TnPFu+9iYJEBR37MLxRI5AmGNCUvZ6poJTJNjWNgwi0W
+ /frNC/PHyycvGRtPB5JXf3U0rqezoaY5bHSuZ3o5uZyqr6MRnX65XZ0+z4vzVXucx+1SC0aX
+ N5fldnS/PB8OnYzODvG4T8RTA64rUFcbcLgzalSmqHnyJPZBx0GtWvJgLBrspEOwaMxCTgHj
+ kn0cRO4Bb745VTRZ0Q5GSASPxBy8gjgPg17Vqr0C2ypkCya0xoWmnGnLBQZGOS2Nv0888VWE
+ bV7JXlBvFAKb26++igdtyY/cyVafzI/2eIXqi2bPZLeK1hTJ9UOoj9P1/aBNm0mwd69c3Uv1
+ ZfNT5an+cTkVaj3bZHm+Ntl4wHb/VRlOs8FkU0czQVcPJrtcjtPihXjajqctBNrTBhwOFHzq
+ qU6QP/9dol+dI0d5SEr6JLCzmda3yMFX+dLIrot82fDlp6lp+Y+O/9o5clSERo22wKhRR8V6
+ E2xl2Apo4+ELOGbMt4GWDOZDXTo5QCzToVYD8dLTJ8Phw2ettm04efIsLF68HhYv3gCLF2+B
+ KVMOQunSL0HRoh2C599gqwoDMgZAebgX+iJbNUiXB5XNErKyS4jjUEOhbNlZgbU68nxoDFAl
+ S/aCYsWeg4kTj8CSJbtgyZJ1zr7rXgT+wujkuY4JrnJXCn78M5VbR4snbPfDCxntG0KXh0pT
+ nxmdLMI54LRt+++w5j4d9Rna+Yz/2Mij5fuymyC7CrgqWHZ15IuG//g0o4Tfr5oKjzwiV27y
+ vFUfOE0FjgmULYtfecDZMTmGQ2ttcMsDnRUsuy1yOwGeebx5c+SRFSpMDwHqLFmyCZKT8fDz
+ /qLLlJJCXTb5mWLa3iEDMJ1GSAPZsvUn6we7fxiISE9+Jhnl5TgPzcJhXWH55H0oXvyJoO+2
+ MhDfJGOi+0E8bHjBbx6qvB9dU13paDZQdykaXRNU33TlM/nO4SWj43MaT3vREREBRyeMtP79
+ V0P79lugbdst0Lr1Fnj44VXQsuUSaNlyPrRsOQ8efHAePPDALGjR4mto0WIWPPjgf6BFi+lw
+ //3T4IEHZsADD3wDLVsuhFatlsJDD62Chx9eC61bb4InnvgJ2rXbBp98sj3CB7xhuhdeR0P8
+ 8MOWwPfGqWuHL7j8QkKo6xLqtiCtdu3OwcEvXdlNQNmNG3dA06b94M4734Y77+wOjRu/Dk2a
+ vApNmnSHJk3eFOnGjV+DWrXehMTEt5RvlMsFh/Jafi4GWzrFi78M1ar9G+68swfceSfaeg2a
+ NHkFmjTBa7SJebwGjRsj7W247bb2Tj5zGZ52hfpQ6+imtCui1YsnVB9M1/80oG9+/NPJchpP
+ c56NbwLqhO0W1wkgdOMBXIbTdL82cBlTUPFC/frYEpOtgVBLS663UafMaTyndOl+sGbNzgg7
+ HLyc3F9VBqGOS+E1fn6meHHcdIqtFWoFysHrqlW/hN69x8OhQ5HHoPqpQxti1Y8WvM5c/LDJ
+ cF609eNHXifLaTzN4eKn7Zl3rTsTYtXl+rrymK5VRLRwSNikoAPJq+B0nSyncbs6Pv/lOH78
+ PJQtK4+kkONItLYF17/QmTn00mMXcCTUr98jOPVssqvzm/vG6eo1HuuQmjpN7KmSrS05cFyz
+ Zgexuc6rXCa6CSZ5m7/cZy7jCi9dL74O3D8TeD266Jig2nDJ38TndC97Jnq0UO3ZbNt4Ojld
+ GXiaI6YjRlWYMud0LmPSNfFNhaXuFwaOVq3k1go5jkMtCbkmh8ZGQlsixooDuKZMWWL0T83P
+ 5oepnLiArFKlVqLlJb8xLoNew4bd4Ny53yLs8bx5PrHAZIfTdTKu0OnGw7ZXHUUDnS2qCzU/
+ nuY6XvZcaDqeTc4V0diw6bjWhQ7aFg5CZ0hHc0Usun70Ue7Ikb+gfHncs4StCHmEhTqYLGeL
+ aPMmBqQxcNttoc2ELnD1B/HhhyvYgPkEuOGGL+DUKXlMApePJg+S5w+CasOvPRO4TZ4X/zXp
+ Ing3gvO96CaQX9xXnS2etsGPLIdpTNIFseRrQ0bZNcEYcGKFV0H4w2CDqxzdTJR/7jmcmaJd
+ 2XL2R47lUFcLu1X0iWA8Q/g9mDAhfJrZdK2DqTx79pyAxMQ3AmNJOOs0FZKT34clS+TeGy6v
+ 5sXzV8F1XKDT09FCvL9h7dqN0KHDVLExMFu24vDCC7Ng27YjQT/mzDkpJgF0dpo3Xww9evwc
+ QfcCze7gCvbZsxfAwoWhc4F+/fV3WLz4J5g8eSbMmbMIjh4N7ahH4Gzl8uVrYMqU2TBr1new
+ Y8c5Y72dP/87tGkzE3r23BXhgyvQJk46/PDDRmjU6HWxDSQhoSQMHToVdu3Sr64nPRPNFJRU
+ HfXaJK+TtcGPnE2W81X/rF0qr4LYoLPLK0wno4NOTuebGnBwWfrVV38SaOXQwjq5Nii0doim
+ 9OUgbp06Xxrz1flgklXRurWchpdT45jPVzBo0GLPxY7cpqm+dDQOFxkd8FAtDDKdOk2EQ4dO
+ Ctx//0DIl68MHDsmj2AdM2YNJCXpZ8vS0u6E++7Tn2RnA9bNnDnrxLEW+ALfdZdcK4X0p556
+ BQoXrgLNm3eAG2+8W5zUt2WL3AqB/Icf7ixO1mvc+FFxVk6uXKVg+3b90oe33x4NmTPnh5o1
+ f4jgcej0EZhnt27dIWvWrNCnz1Q4fPgk7N17AmrVugdy5y4EP/64J0LHC7pn2wZVXqdLvut4
+ LjCV3QTTs4oI7hY3CXhBp6ejcb5Nhng6OZ7WgWQ++QS/8kBn4qhrXNR9S/J0PeTjAVz9+4c2
+ GXJ7XlDl8HrkyHmQkjIw0IqSn/e966534OLFP6y6pjSn6eQ4zXRtA8rt23caEhLSYeDAKRF7
+ dqpVuxVq1XpSXI8atQZKl348wjamU1PvhPvvH6u1z2kqML/HHusNU6bMgrvvfgiaNpVn2Jw8
+ eRGaNWshTmskX26//RV46ql/C53Vq7dAQkJBWL36jLCD++yee+59qFw5/JAulF24cJM44vOJ
+ J16EevUWevqkQpXFYx6yZy8O//mPbB0TD3+rV68LDzzwVBgNsWcP7huLvDfYUsJf3Gi5Y4e8
+ 1nXzUe7HH+U5yCa/EKirAvlHj4I4zMt0qqVfqGXmdE5DXLEulSu87Oj4RDtzBl+Ol8QLL4+n
+ kCt25ZS4XJEsZ7GQJrcaVK36ktaWX+DDfvXVsitFY0XJyW/CsWPyZVDtR5tHvEF+4O/06Ush
+ f/7K4jgI9aGnhxYHwvEaA06pUo+HBSX8xXRKShO4777h2n9WW5nVF+TBB1tBs2YhHYTqT58+
+ 2+Dmm18UL+Gnn34nDp1SbS9fvkWc7Uv2ENhSS02tC0899QL06vUe1K0bCjg2vzhQtmlTfK4a
+ aPW2bZMtbeLhoXGVKt0JVavWFYd01a9/P2zdKvcXIvAYi/bth0DevBUhJaWxONpzwICRQX08
+ uP7DDwdBvnzXQd26N0HRog3gk0+GBvVz5SoMGzaEPmlz9uyvopW1ZMkq2LfvHNSv/zqkpNSA
+ unVvheLFr4fJk38IK7euDMTjNA4XGYQ24Lgqm2Q5TffAXQ6gHxMmzBQzVti6wFW68ptWtEoa
+ x3jkd9BpEBkHlIcN+zrCDret41M58eFu3hyPQKVFfth66g+TJpn79Dp7fmDS4XSe1gFf3qFD
+ x0OlStdGHKugAss5cuQaSEt7EE6cOA3Hj4eA6ZSU2+D++0dG6HHYfGrZshU0bx6SUX8x/ypV
+ asJzz/UW17lzV4J33ukTJiMP0coprhFYtjfe+ACqVWsiZHr3fg9uvnlhRL40jqSCy6CtEiWS
+ oHXrx4P54bgXTgbguTHY+sEzj5F+7Nif4nS9kSMnBe09+WRfqFatdjAY4qHyN9zwkEij7bFj
+ f4RMmXLDhg2yy/j99yshe/ac4jB0TB88eBKyZcsHc+bI76ddfXVdeOutL4IB+bPPDkNiYlVx
+ ENiTT/aEevWaivuJtqdO3QP581fUlovDJuOX5xRw1DTn6RAvGVVWJ+9Fw2s8+axWrS6BAWQa
+ r8GT9+S2i1BLJzS2U6LEc3D4cOibUKb8dUC5bduOBrZSyM2kuD3hxhsfi7Bjsmmi+5XRwUUP
+ H9h+/TDgVBLypj8MlMMWTtasRaFQoccgd+4GkDPndZAz57VQpEhbyJKlKNx//5igvMkO1YvO
+ t5YtHwq2cEiWfgcMmAk5c6bBrl3HhS84jvLhh6GAQ3LqaYJ9+26BLFlyw+7d8ltT2MJp0EDf
+ pfKi4YtbrBgGnKeCvO3bf4dcuRIFcucuA3XrPiToCxeugEKFUuHCBXksBMqvXXtEHMhOrSA8
+ cGzNmtBxHQg8v2bduo3iukaNO+GFF0LnNiF69RoEVas2EddjxuDnpEMBDM+SnjFjhbiW5xz/
+ GexKffzxAMiatUREmXTlpLy4TDSwDhpfKcTqE6+sH344qOxJovN65ApkuS8MW0Ay+Mizkb+C
+ N94YGGHXBfivVqBAi8AZxrjWZyRUrvwF/PpraNzGtXxcjm48p8cb+MCOHo37wK6POPOE8qZf
+ DDipqU+FdXOIX778XXDvvfKsIQo2W7bsgiJFikLRosWhaNESUKRIcahRo2aEDwRq4XD6hg07
+ IUuWHDBv3haRlq2NlvDaa+EBR55LnF3Q8Dtkycnl4YMPhovjTRGvvdYdGjacDvv3Hw0rw9Ch
+ IPwsUqSY8BV/ixQpAidPyvtILaDSpctCs2ZPBPXIBvKaN+8F9erJYDBv3reQOXMuKFq0VKDs
+ JcUvBiw8eQH18KCujRtDXW6kJSXdFAw4JUs2hIIFE4UfISRCzZrNxPozHELImbMELF++C9au
+ 3Se+UHHokDzgbN++M/Daaz3guuteEucRN2/eDhISrnJ6lvg9jxaor23hqAKc5hdoI152dNcu
+ wOienn53oHUTasnIFohccUzT5TI9HkqUeDX4z8ntmW4Apnv0QPs4LhTavzVmzAKtHS9w+9Eg
+ WhtLl/4MmTLlgv37I8ecFizYAhMnrhLp0aPXQHLykxHlQ7n0dBw0Hi1eTgLPxwsYcO67L7wc
+ S5bgVxESoE+f0JGkGHBGjVoA6emtxRm+RF+wYLcYw8Hrzz4bBYULl4RChfDTv/hbTHxHCr91
+ VahQYThyJDxvsqGmuX+ff35WBLQTJ+T5w2pXrFGjh6FWrTuFb99+uwQKFy4F58/LozoROD5G
+ H/RDYMDZtCn0AUZEqVKyhYP1W7HiTdCr17YgD2l4frI6TtShw3Pw1FNvQL9+E8TphUS/9da2
+ kJZWAQ4elLI4MJ0tW8mI8hB0ZeVwlVFhbOGoQpwXT+jsE40eUC8/XB7kw4f/gKSkTwO72eX4
+ DW30lK0cGXxkFwtnlSbB88+PicjX5ss332yD0qXfVfZwjYJnngmdlsflvUA60ehyG36BL0PF
+ irdCgQKF4cyZ80Fb+D2l7NnzQYcOHwkatnCSk0O71gmYTk9vAi1ayO95xxJw1DGclStxELgg
+ vP32CBFY8KWjLoT8VlV2OHQodBrek092g2uuuVnwL1y4JMaXcEqfxpx69HgXmjadLWi8DF5A
+ +fPnL4lvNLVvHzr3GIFBJimpDNx7b0fhC37JEgPThg0/Cz7SZs1aJD5yh7LUwokMOA2DAeeD
+ DxZCgQKVRICh/GvWbAz33PNw0Pfp009CcnI18YG9VavkbB7qVqnSCJ5++qNgXT3xxPOQkFBO
+ W2b1veM8v1DrBBERcHjaD1RdnhGX5SAZLq/SuQ6HLT+s6GbN3gy0ZuQ0eOiIT2yJyIO5Ql2t
+ 8WIxIC4yM70oaj74ENSr1zPYdcPAlpj4FOzZczJCT6dvo5ngR1bVcdU7cOAM3HFHNyhVqjLc
+ eWc7uO22h8U4xHPPDYSLF+WH2zDgJCXJKXKeDwace+8dHFZ/XI5oOjriwQcfgjvu2CnuH65x
+ KV68FBQsmAZ16jwOdes+CXXrPgG33PJm0EavXpMgd+7yYjq6Tp3bITm5CmzYINfhqPnQb69e
+ H0HDhguDLyL3i/vDgTJLl26FlJRroUyZ68V5zLfc8oRYq/Tyy5/AiRNy6wpi2rRvIUeO/HDv
+ va2hWbOnIDExGaZOnRf0C8eaNm4Mf14SE2XAwWscjL7rrtZQoUJ9MW50zTV3QOPG7cKmx7Ec
+ V11VG9LTa4WVtXfvLyBv3kLiLOg6dVqJAFmsWEXo2XOgtuykx2k2Hq9jHaxdqmhhypDf7Fjh
+ 186JE/gSdA8cdIUzUnTMJ47tIA3X58hul1yoNwZatPgimJcuP6K9+ur8wHlA2J3C/VkDYP58
+ +XkNrhMtdD54pTndxOdyBHwYf/ppH0yatA5mzVoHe/aEulgoi9+cXrduV4Qeptev3w4//7wj
+ Ig8XkD38DvbWrfJwNhxwXbNmncCqVetg9er1getNQT30d+PGfdCvH/q7XnyhgexxHxHYYtuw
+ IXL20CtI6uTWr98GEyeug0WL1sOpU+GfIEagb/gpnTFj1sHkyevg6NGLYXmsXr0Ozp69FHav
+ fvxxG5w9K+UwjWM1Gzb8AgMHYj3s0/q3bdsx+Pnn8HuCeW/efByGDVsH69bJr5X+8ste+Pnn
+ 3WG6OnD7scAz4Jj+3eMFr8KYHhQ/UG9gu3a9A+cKY0sEx23kCYVybAdbJti1GgalS38mptBL
+ l/4EZs26aPwXQGBTHT+HIw9qx8HWSXDjjeGDl6ofscDFhouMH3nk+3kOTPa8bOjuNU9zePFJ
+ RmfbBJOcju7VVdTp6HimaxONpzlMfNd6cJHRydK1ST/uAceUkQ4mWV4A10ryAto4efI8FC3a
+ KXjsKLVk5Kl7OJaDgQenyeUJfPhbt+5Yow84jlC/Praa8PtXcpC4SpUBcOKE/gNtruD17nUj
+ dbKxQvWB+2ODS/46GVMd/5PA/fOqFy5vosdSdp2ejkZ0hM1vv76osl56EWM4Xko2niv8OEgy
+ pkpy0Vdt4HX//nOVNTl0mDl2p7C1Q2M6dPbxGChdui+8/37kWg1M9+uH59zgpkw5O5Wc/AkM
+ HBh5MDv3wS9cdDmf6+jSOj0bvGS9+DpEo+MHVG6vfHjd6OR1tHjCZl9XDhd5Ts8oUF62fMNa
+ ODbBWKCz6TcvVRYDj199Fbj4KT0dj/zEHeR0AqAMQPJaHgYf2m81AtLSesCZM/KrCYTt209A
+ sWJdAuft4KdfhsGdd/YX3S+eJ4H7zNN+EA9dnQ0dzQ90+jaa+quTM8GP7P8KMrJMuj9sBOZp
+ 4hGf00zwko3oUnkpuEBnw1QgnaxK0/WRedovMCBMm7Y5MI6DZ9TQoes4SyVB+59C59gMgzvu
+ +Cz4UiAaN8bd6KFuWPHi/4a9ey9a/ePl5WmbLoffF5TrchrBjw8Imy0bSE/Vd7HlIhMr/NZB
+ vKE+95ejvBkBXR1qu1Q26ORtNF2mXohFV2dHh9Onf4PixXHLA648pi+GylkmGWToG+C4+hjP
+ 1hkiularV8vR/2nTFonzkFNSvgi0isbCO+8sCAsCtvxdfCTEWg//NLiWB+Vc6scPdPZ0NB24
+ HE8TTUf3gmudXA7Y/Fd5NjkTIlo4HNEYjUYnVvi90SiLZ5XgjFRyMgYUGs+RXSvc0CmPs1BX
+ Jo+B22//FPbsuQAlS3YOtIzkyuR69d6AX3+NnAqNFtE8gNHoEHR+q/+ylOYylwOx5huLvpeu
+ ja+rUy8dP4iXHRsoDyqLqUwcJjltC4e/vKbMeFrVNfF01/EAt8fTOjpep6c3FdPksiuFrZup
+ ge7UFEhNpY/6yWNBpdwIKFLk2cCXPCdAWtocSE4eBCtWbIjIi+fnhVhl+cPhF6Sve5BtPBXq
+ vY/Gj2h0THB5Dl3gIm+T8aozP1DzcbFr88sv4mFL28Ix3SgXXM6HLRo/ufwvvxyFMmXklLbs
+ QuGYDHan5PnDdH6OPLoCv+KJiwJl90sGqDHwwgv9jAPFPD8TuJzftCuPwySr1i2tQaJfOiiK
+ 65DeuXMXYd26zUYZG6LR4SAbNltePJVvkuUyOjkdjeimZ4bLkG1uy0/AUW2Y7KnyJtj4Nh4h
+ eOIfZ3jB5LDK57RYgRUcb7tor3lzXAxIGzlp7CZ0LKicHsfNmHLaXHax5MxWyZLPwpEjZ8Ps
+ 8Tw4XGQ4uA5Pxwr1fuJD/vDDj8IjjzwmltA/8kjbwO/j0Lr1Y9Cli/koVsTixashU6ZsEXQT
+ XOUIZ878HvAlfA8XXs+evQ46dfpQHFbF9RBbtuyE1177GB5//Hl45ZU+sGPH/qAu7h8bPPg7
+ 6NTpfXj22Q9g7Ni5Wt+QNnfugkAdUT09CkOHTg+rR1x53K1bH7HCnXR/+eUkdOnyPjz88JPw
+ 2GPPQN++w415LFy4IWD/UWEff3v27B0mN2XKYmjXrju0bt0GevceAEeOnIuwhbvIO3ToDc8+
+ +55Ax47vizK+9daQoMyRI+fh3//+FB599Cl48cV3Yf36g1q/YoXoUmWEYRW8qW/Lz8bjcvxh
+ 0127YP/+01Cq1MuBQWMMMhhYqHUjv/wgFwFSq0YeF4qLBceNkye2cZt+/XCVjaWcHCZ9bMH0
+ 6zcQPv98gECBAknw5JNtoV8/mR41am6Ejmpz6VIMOPJICM7Xgd9LDvWfHOXefHMIZMtWGjJn
+ zh2k4xlE99zzAOTPnyryPnUq/MVDPTyitFSpStC0aWsYPHgWPP74++L84507DwmZzp3fgkKF
+ qsAnnwwQZS1evBy8/nrvCN8wIPfo0R9atOgGc+fi0RN4BArAzz9L3smTv0K7dm9DgQIpkDVr
+ IbGdAfUuXPgNChVKgfr1m8OiRQdhyJCfoHDhJOjceUJYawfzw/Tjj8+ELl0mwMKFuOsdAxBu
+ 2wjJDR48F/LmLQV9+oyDsWN3QqVKN0KrVs9H+Is70uleIrBs1arVgTp17hWyBw8eh8yZs0G9
+ es+I+37XXQ9BgQLJYtuKaofD77OIMhHrcHTXlxPxyNfLhvqA0+9LL/WHtDRs5QwJnHNMX32Q
+ O8mpKyWDEXavRkHt2j3DbNny92r+6nQ4eF4uOjbY9NW8EhPTYezY8JcCgWlOQ+gCDj9XRwUe
+ lfD99/La5BP5M3v2YsiTpwx8880qyJw5R9CHbt0Gw5gxU+Cnn/ZC5sx5IgIOAneT9+o1QpyA
+ h+nffvsLUlMfgXnzfhA2evUaCzt2hL4CMX36z5AnT4GIMiLv4Yf7w7vvyllJlY6yy5btgp49
+ R8D+/SehYMHKcPiw5K1efVTUy+7doUPhZ8xYCZkyZRWtILJFPNwpPnXq98EuLNFJZtiwFTBq
+ 1Lwgbe/e38SO81279PWn2s6TJwVmzlwq0h069IKUlHT49Vd5djSeuX377Q9B3bqNw8rHYePp
+ gPKihWN7GbhRnrbBRVYno6OZYJI10U2YOPGo2B1O59jgNHhoISC2ZoZASgp+60oGGwxEt932
+ aoQdFTYf1AeA82z0WBGN3cTEcjBmTCjgoA18CTp2fBGqVHkA6tV7Gj7+WHazkLdkyWpx2BRe
+ I7p27Qvdu/eMsEvy+NUF3CmN5xaZAhM+o/KM6hvh5ZffgjVrNovWieoTXuN5xbyFQ37QtWr3
+ 2msfh2nT9LvFFy06ANmz5xHnN5MPZKNmzbdE64by5XkQrVCha8Q5O3h94MB5cWzEypXyE0Eo
+ 07nzdMiatUgwDwLyChcuDPPnLwqzp8pQnshDbNmyVwScY8fC5TgGDNgFuXLVgFOnfhd6iYnX
+ w+zZMtBSGSdOXA6pqddG6MYK7aCxCl7IWKALbLHaN+mb6Cbgw5OY+FZw4Z+E3EUuZ62wG4Ut
+ HDoTebw24Kj5qg+hH7jq6Ozr6tgF3BalERhw1BYOnl5YuvT1UKfOLXDs2B/icKlixVJh4cIl
+ Qh5bOJkz5xSy6M8TT3wAzz7bOSK/ixf/EkfAbt68Q7wo+NLhMR/YAuHlQjRp0hYqVWoigtLa
+ tVtEl4rkyFc8wgLPAda1cAg0FnjkyCXInr0grF0b+W15LOvTT38Id9zxXjAPtW7LlasLhQrd
+ BtWqNYMiRWpCrlxXwYYNchc2+YM2ChW6Whw6L23+DV279oRSpWrChx9Og/vvfwMaN75XfLiR
+ l1cGnCLiDOMqVZpCqVK1oVixNFi4MPRJG9TBb3dNnjwNJk+eDomJVWD48MgznFTgt7gSEnLC
+ kCEjhBzWJbawVB283rhxP+TPHzoc3vW5MuVN9GDAMQlmBOKdVzzszZ+PL1YPSEnB7tTAwPYG
+ +sIDnZdDpwPK85Bvu+21CDvx8CXeiNYn1EMkJpYNCzgHD54R5+GePIkB4y9xBMSMGashe/bS
+ IlioLRxuk4C2rrrqKsicOTNkzpxFtErkdWZo1+7diBdg7dr94pS/kyfl9hIMOFmyFIn458ez
+ qPGwclvAQeCm2xw58kKrVr0i/MSD0LF7ki0bfnIm3D7VCXYD8RdfWMR997WBqlVDX4wgORwT
+ ohYHfqTvqac2Q7ZsOaBSpWpQokQ6ZM2aH44ePRX8tj2BWi2UB14/88x/IHv2AiJIUz44PtSg
+ wbtQrVpdyJkzH7Rvj5/MCbel+i5bhvlh/355VCoGefpzULFp037RCsJ8Mdi4BhwvXPaA48fx
+ WH3yk9fSpXgm7puBqW+5XUE9kCs0dkOtnolw223/jrDDQQ8ep7vCr66fMqvyPB/yG6EGHEzv
+ 339EHD9arNjjULhwKyhQ4F4oXPhuSEgoIR52OUuVQ8ia/EHe2rWbxFcyp079RrRw8BqxbVvo
+ fBr8xcHeggXToWPHN2DevO9g/vzvYfjw/0K2bMkwb94CMfZAsrKFk80z4LRv/wIULZqm/UYY
+ 7pHLnbsYjB49K4JHdULBl4BBIVu2RNi3L1yuUKHKIuDg9dSp30KmTAmwc6c8Zxi7kCNHThZl
+ P3gw/KQ/nif+7tp1UJRt8+ZfIvxBHD16HooUqQGTJ6+JsEGylSo1hxo18LM+MihhOTJnzhfM
+ g/DNNzshMbF6RDk5KG9ONyGqaXG/mcSq5wrVPv/1wvLlsoUjx2wwqGBLh3aNy53jaloGnMgW
+ jgmufvgFt6sGEM4zwSaL9MTENBFwSO7gwWOQJ0/5sMFM1Q62cCjgEPiDqwairVuxS5VJu74H
+ 03v2HIL69W+HevVuhnr1GkK9eg2gevV6kDVrcahbt4EISCQvA06CMeBgHm3bvgvlytWBS5fC
+ jxDB6y1bjkKuXFWhe/chYeVSZXbs+AuWLPkxotxZsxaD48fD66Rw4WrBQeMuXUZCtWr9wuxh
+ dyohoQysXx/6Qify8ejS+fPlYDbJY8DBgfItW/bAqVO/isFuPCSe+CjbrFln6N79+7A8yOaK
+ FTsge/ZC4vwm1fcGDR6DJ54I+YV2evT4BCpXrhqmz+2paVee5xiODTbDHH5kvRBPWwScbixR
+ 4vXggVzJyV8GWjkYaHAgObTHSs5cTYJbb33J6ouNl1EwtSgI6BPCS06VVVs4qHfmzAXIly8R
+ Ro6cKXbenz37p/jGUoUKz4h/ThlwEoI2NmzYC+vXy5P/1DohH3btOgpVq94RPKtX5wOvSzwJ
+ LyEhOSJIHTp0XLQCTp+ODDgo9/TTb0Dx4pVg27bzwe4Q6W/fvhdy5coHzzzTTdBpEJvnf+TI
+ H5AzZ2kxSIt0HMy+5543oE6d+8LksL6wS0WDxuPHzxQtww0b5H68c+d+g6FD/wNZshQW35hS
+ fT18+LTIAwe0sY5x79/rr0+GAgWKCr8w0OTPXxw++WSyqDeUWbhwiwj0338vD7jnZe/e/UO4
+ 5po6YcEf6bNnLxNfe1i1aouYQl+9eh/kzp0C48Yt1z4n/F74QXBrg1qpNoMqzyZ3OaGrFL/Y
+ vBmgeHFci0PHUeBWBhyvwRXHSKOvc+KqY3lCIHapLlcdxCsf9T67AqfFR4+eEDaDtGHDdkhI
+ yAupqddAyZJXQenSFeH4cfnPqQYcBH4or2rV64L5q7bJH94C4nyut3btL+I7TpwuA04WbcDp
+ 33+gaIXgGpPk5FRITk6B5OQ0eO01+e2mAgVKQ7ZshSElpQwkJ18FycnpkJJSGY4ckdPFZAeD
+ 6qBBEyB79rxQpsxVUKJEWUhISIK9e+VRqKrvhQpVDX4NAhcWduz4PeTOXQBSUspBYmIpyJEj
+ RRwZijZ5HmPHboaEhARISSkv8ihWLB0OHJB5INat2w5ZsmSHpKSKwt9s2fLCRx8tjqgTxM6d
+ 2DpKgLlz90bw0K+BAydBQkJuSEy8Rnwu+YMPPguWgcu70nRwauHwStT9+kW0empwcbXhIoef
+ ZS1R4rXAdPhQSE7G845xdkoOGOPh6PJoUrnBE9O33ho+hsPz0aU5jWALmiadjIAur02bLoh/
+ dR4UcDXv9OnHYcmSC2EDlWfO/Cl0yB4uhFPP740H8KNuGzdGLkzDweDNmy+IX5WO9bt79++w
+ bt0FWL8ez2GW+PHHC3D4sAwoWA5Mr1kjfxErVlyAX3/VD8IeP/4bzJt3AX755QL89lt4UEJg
+ evdu5IXuL9bhmTOXYPlyqYetFW5X1T93DrtW0tdLl+RYlYoLF3CW8ALMnn0BTp26FNTjz9P5
+ 838KX+gZVH3Fa/QLz1PesOGCaE3xfFzB64BDO2jMHdLJ2NKc7gW/8lw3Fn0Cflw+MfGN4Kl/
+ chpcHqqenDww8G1wnL2Sg8b4+eBbbukSYScevpige1g4X3cdD5jy1dFceBmJaJ9Dv4jVvpe+
+ Vzl091u9T6Z7ZoIuP7JhssXz4uD2oho0VsEz1PFUPqdxey7QFcQPX4e9e+UYjmzh0EwUzlJh
+ AMJfeVQFrsXBweOyZb+GW26JXEZ+ucHz15Wd/9upNJ08l1Ghk+N0k4wXvPS8+FyWwOlc1gs2
+ HV396fKNBfG05QpdGThNx/eyE9Glshn0C65vS3OeDa6yJjkdHffCyFkqWl1Mu8flmA62eNLS
+ pgboOL4zAW6+uWvYuMaVhq5cXohGxwV+7OoCW6ww5c9fAC7LeV4geb96NsS7Pmy+2Xhchtcd
+ 19XxuE5EwDEZsNFscJF3kYlWjhfYhH79ZkJy8heBMRoMNHLsRv2KZuhzwPK4imrV5F4qbksH
+ nU9cV0fzgl95V3C7PK0Df1FcdDhsdWDj2WDS8WOP5Fzl442MypeXi//qZPk1T3OeCu0BXCZD
+ HK6Z6MDleRrBH2CTHIeLDEenTthlou0L4Yv9qMUjx3bkcaRIK1u2v/jqYTT5+YHOvo4WD8TL
+ Ltlxseciw4E6fvKwQafvYpvzeJqDfNZ1Z13y8wPdu6Ojcdjyt/F00MlrA45K0/FdeDrY5G08
+ HWyVx23xNOf98sse8cE7GXAwwOBmTTyUSx5BEdpbRWccy2CEgadKlbsi1oJcDvD8eNoLJnl+
+ 701yrtDp62hEN/E4uJ+cz2W9bHOel31Xmgtf9c0kcyXAfeFpDl5nOnlrl4ob0dFNfC+eX5hs
+ mQqm6piCE04Fzp9/FipWfDdw8BYeQyE/ghdaVYwrjjHoyIHkUDcLp8zlt6jatPlATE9y+/EA
+ r2deXtO1DTY5bt9LniOjZG2Ihx2TDRPdD0zPH0FX55zPaX7hZcPLBy9wXVOZwxb+cUWbE0g3
+ Gb1cMPmmw4ULf8KhQ7/D4cOXYPv2wzBnzgbo0WMalC79YXAzJgIPT5fXtIUB909Ri2ZwIBjh
+ TJY88U/yxkPFikNg1KhFsGrVHnGg15Ejf8OxY3+LNRzcT57m4HyvtA7RyNjuN5fT6XOY+Ca6
+ H6g2XP026XOo5XOxzfk8rcLrnTHpmugcJjkTXQeSjdZXEw9pvlo4OiMIL8e89E08l5utA9fB
+ 9MqV66Bo0eegePEXRYDBb1LRmA2uLqYvcOKWBdmiwUAiT/mTU+F4IBeeh0PHi9IB6/Jb5LK1
+ gyuQp0CJEq9C4cKPQqFCj8PUqXKjHvfRhmjL7RcZkUdG2NThcuRzOfLg4O8bT9vkveBHlo8z
+ +YVJL6KFY1PQ0fzApm/imfyzgctiGgNO2bIzRWDANTQyOGAXapIIPmlp+JUG3DuFdOxWTQoG
+ FloMiJ+TwS804ALA5OQBkJQ0EEqV+ghKlXpf/JYs+Y7YcZ6Y2B1KlHgDSpV6D2bPlqe7cR9t
+ 4PI8HU+4/lmYgL6p/sXDVz82dLIuz4yN5wovGy5+cHkX2Wjq29U2RzR52WQjWjg6QR3NBhd5
+ F5lowCuWXqiDBy/ApEmbYMqUjTBt2iaYMWODwOzZ62Hu3HXw3/+uh/nz18GCBevhu+/WwdKl
+ 62HFivUiUK1atR5WryZsgrVrN8OaNRvF8Qo//ojYIjYnbtiwHzZuPC6Ay+t/+uk3OHPmr6Bf
+ 3NdYwMtJNN21V1Dhdji8+FzWS97LHy5nKpcOtvxt+Zp0OM9mQycfDXRl8Jt28dMEmy7Pxw9Q
+ NyLgxAuxOMah3gAvu158Di95G9/EU+nxunkmWU5X05ynwuSXiW6zFS/o8jbla6ObeLEgFrt+
+ 9PzI6mDTx/rVBXHi6Z4d3T0xwWafkGEBh6C7UTzthXjYMIHb4elooNqw3TA/eZlko3kwuK4O
+ nMfTlwumfG10zuPpaKCz6wqux9M6np/84nHvTQHHFSjv4oc14PjN1AvxtkfIKLsu0FWyzp9Y
+ bqZf+LVPD7dfPYKuDhAu9rxkvPjxBuVny9dU3liQETZVmAKCjhYNXJ/v4HepdEIuTSQTuLyr
+ QzaeC5/DNd94IpqbaNMx+W2ixwNkm+dhe144XGQ4uA5Pu8JLz1QOnlZpOp4XotHRIV52VKg2
+ be+5jsbhIoPQrjQmqAHHL2x2OU+9oZwXK+JtjxCLXb+6Onm1rtR7FO394tDlqfJsfJ0N9MtF
+ R9XVlc8ELxmeN0/b6OSLjsfhJUN+2l5wHVzz9wNuk6cRrvfNRQZtWQMOhx9ZVYf0+EPB0ybo
+ KkLlcZoNJnkT3Qsuel4yXnwvUP2Y7LjQTTIcJMflTfRoYbMTLS8acHs8HS3dFfwexWpPhR9b
+ fmRVea4XMYbDBVwR78pAmOyZ6F7Q6Zn85hVmkuPyGQVb/irPJKOTtcEk4/on4Qqb35zG0yaa
+ K5/qwk/9ucDLhu4e8LQXTPImuknGRd4Gr3rjdGvA4cIcXNYk7/WQmvRc+PzYS5MfOpqNzqFW
+ rAoup9OJB+JpK95Q64bzuMzlxJXI0xW258eVbrPhIqejxQuUJ8/Dd8DR0WKFl00vviqjKySX
+ iYam8nSVadP5pyAjfIyHzXjY+Cci3uXS2dPRdOByrmMzruC2eJoQEXBImL9Q0SAWfZ2uSnO5
+ 1sGL7weqLVsrLpY8SddmXwfU0+nE4gu3wZ8Rlc514gk/9lUfdfWh2iNZXZniAW7bi84Ri4yJ
+ Hg286sdUzwhtwIkFOgf8Ip43ICNgytdE18GPrB9klN0rCfUB9lM+V1mdnI4WD0RrNxq9aHQy
+ EuhP3ANORsAWMU24EpWty1NH84toyo+INu9o9TIS0dTBlShHNH76RUbk4WpTJ+enno0Bx8sI
+ 8VU5rqNzjkO1Y7PFYbPNdXnaFfHIg5fLBp2cjpaRcMlPLZNO3k+ZVRt+dXg+Olo8wO3xNIfO
+ B0rbnilVjtN0dL/g9ayz6ScvLzkd3xhwbNAZ8qpIE7gtnia42EcZkz7CxvOSMdFtiEYnGvB8
+ +ENDdcflvKCT19FM4LJeaT/w0uV1oIOOTzQdzy/Ihsuzq4OrL7ayRpu3H31d3twnug4GHC8l
+ Pw+ti0ys4AXyohNPdx0NbPmoMpymg9dNVfNyydeGWPVVRGPLRceLb5Mh+y75eNnhtFhhs2nj
+ qTI6OZXOf7kcp3FwGZdn03St8zeTzSAXdoWLns6ZeMBm18bzC792opEnHb+6OphsmOgu4PXp
+ 95qD7NlkvKDacLHjIuMHXvZM75uXnk1GLSv/5XKcxuEio5PX6elovrtUOiMEtTJtci58kxxP
+ u/K4nKus6QGJB2KxbfLfT9k4otWLB/z47SrHwfV42pXH4UfWds9VO35sxgKvfHT+ch2e5jT1
+ 2lfAccn8nwI/D3A0iFddmG6MX8TLjgpuk9vVpYnGeVyO02KByU/+Gy386PuRdYXuWfML7hdP
+ m+CSt6stRDDg8NYJv1kuGavyOth40cBmTy2DDjaeX/C64vTLAX7/ON8VfnT9yLroId31OTNB
+ d9952gSdnOnecpDfXnJXCuSX3/p1KY+uzk0QAcckbKLb4KKjk9HROFxkEF6V6sV3has/Olme
+ 5vBzE0me01zhR9cmq3vpbPJcxkvWi3+5YXqO4uEnv/8uNl1kopXn/ujgxUeEdalUo7bC8nQ0
+ cCmAC2K1ofODp1WajqfasfE5zQYuz9Ne0MnzMvDfaKArs84ul9FBZ8sPuC5PxwJdWfivF3Q2
+ TOB8NS8VOj0d3QaTXzxPzjfZsCFiDMfFYROf03W2eNqL7gex5Gf6t9KB63pB5xfClCfJq+Ay
+ fqGz4dd2Rslebnj55rdeOGy60fBUejx8s9mja7956OR1diMCDhf0A50ez1Qnw+V0aRMd07qm
+ POdxcFmTnEmepznPxveCV53xtIlnk3Phu0JnR0fLCLjkw2V42gaTrImug4uslwzxdc+DCq/n
+ 2AtqPpyH4GOFNnmVRtfWhX8mcFmdYS7D+aa0C2w6aiXoaPyXX9toNpjyNfFcoHt4vPzWQSfH
+ HxzOjwdiscvvk6stVzkVunomcHumNKfbYPuDVK9V21yW69n4Npj04mWT29C2cKIBN+wCm2N+
+ 4KIbrwp0RTQ6sYLytL1A/+uw1auOZ7vvJvo/GdxnSnM6B+fTM2J6VtRnievGgrgGHFfHdJXk
+ omuSMdGjBS+Lzr4fvh+YHgAXRJtntOD58XrzA90zoYOah06W07hPpmtd2g9Muia6F7jfJrjI
+ qHLR2DXJc7qLbW3AccnMBLVgnMfhJePFjwV+bevkdTQOLxkT30TPKKgPC8+bp208nnYB11HT
+ nBcvmOya6FyG5KL9g3DJxyTL0y7Q6ajl8IKrHMlyeUprA45N0UYnngvND2LVJ9j8JkT7ACFs
+ tm08HbivfvVddUiG8vOjw69doJN3oal+0i+n6cB9tcnq5FzkTYhFV4XJjqk8Opofvk6Gp208
+ nlYREXBswtEW0K+cC0y+EI/TOFxkogH5xf0zXZugsxEtyAb/5dc6HS9wOZ524fkpp1/fdTK6
+ /LgOpbmcX0Sjb8vfxjPRbLDJcx5Pc6h+mWR9BZzLhX+CDy7Q+UmVreNFA50dHY0QSwtNBxo0
+ VPO05R8tXG26yHn5qqPFA/Gy6+W/SVaXVmk2nu650cnrZth0ciZEBBwvoHGemc4JL6iV4EeP
+ Q/dCcNh40cLFpirDb6iLvirnKq+T5fWj43Mb/wS4+KWT0dH88DMCPE+eNtE4vO6lH5CuzYaN
+ Z4NJz2kdDufxtA46GU7jlecCLx2Vb5PjsjaQnKs811V/ddDx6HtbOh6HKmMqv4sdV/B64Gmi
+ 6fQ4TQdXOZL1I2+DXztefyK2OuLXnG+SM/HiAW7Plne0iDiAy8WwTcbG4zBVsg02HU7naR3P
+ JqPK+smX82x8VxkbuC5Pm2g6uMpxWa7H0zZwWa/64Dye9qJ78aIF2eS//FoHU5ltNnhaB5s+
+ h+o3l+VpVx6X03apbBnbwGX96nPodHU0DlO+Kg2vebB1gc7u5YSpbBwuMjrY9Gw84pMM/WId
+ q/Ws0rm+H7jWAyHW/OIBF59piIDTSZ/TdFDlXHV0+vgbS73p8tYGHJMw0dWK43I8HQ9wm2re
+ nBcLbLb4TTTJ2nhcjtP88F1lud+c7wdcn6eJpqOb5HWw2TBBJ+9Ci6V+/MhzWVMZXWl+YMrL
+ C6ijCzhetmx1GnYeDmfaaDajHF58P3C15SoXq44OfusnHuB5qnQXmg1+5f3Axbbuob/ccPHT
+ VTaW8pjusw6ucjbE4qsO1gO4iMebxCq4vAtseiov3oW9XOB1w9NE43o6xFuOy3rp6XyPJ+Jt
+ 2+SvjmYDf/b86JOsHx1XmMqn8nXXOnjx4wW1LrVdKhdHdDJI4zfKBq/KsyFaPRN4UOX8WOBi
+ z+tB4TSetsHvPeG0eIFs+/HnSsFvPcTyLJO++suvddDxVTs6frwQre2waXFuhKdt0FVYvKDz
+ 7f8iTGU01S1PRwu/dmINGDw/nvYCl+fpeMBm08bzA26H16vpvvuFH30/sjqY9KlsmdRCEbyU
+ dXCV9ZLT8blfNqAcv3EcrraigR/b3E8vXc7naR3iJfO/AK9yePFdYbNj43Hg/fcjfzlA/mSU
+ X9ou1ZUCFjJeBbbp23jxhJqPV7lMdBNM8jq6V2Djab+IVd8EXf35gfo8cZjoOvjxw4v/Twky
+ rj5QHZK8l56XXFwCjsm4DdHocLjacJUjWS5vekh0tIyEa36uctHoqHKuOn5lMxp+feHyPIDH
+ Am7bBV46umc4GphsmOguiEvAyUjwyvN7s3WVo6PFAxll1wV80Jt80fmko0UDl3sRr7y4Hf5c
+ 6GRMNJVu4ruULVqY8rT55EpDuPhu0tXBj6wXIgJOPI17wSUv9cFykY83rkSeXvDySeXrZHU0
+ DpTRPbjq/XCxZ+P5gc6OjhYtdGW1QZX3q+sFr/tHiCVfm10bz2+eXD5DAw7ZstnUPcAE7uw/
+ BSZ/Lyd0PpjqMpZ6JN1YbBBMNnQ+q/L0a5KzIRqdjASvg3j4hza5XT/wq8vzozLoaBwRAccE
+ kwEvmIKOiW6Dl6xrxZlezHhClwdP+wG3x+uP/+pAO9B10OnxPHVyLvm6PIgmedIx5cPTLiB7
+ 0ehGC11eOprKU8vM/eXXPM3tXWmQT5ct4HColcl5XEYFfxg5T6fDwW+QDa5yJvh92WxyJroO
+ fmSjkXfV43w1baob2z3m4Pb9IBbdjIbqG11zmtryi7Us0eq76pFccB1ORoDbNlUMr0jOd4Vf
+ XZM/JhkvWZ2ODjaeCy6nvikouMBF3kXGj5wOqm40duh++n0OdLAFU56PC0w+xXLfooFrHv8P
+ 5U1x7zXctjsAAAAASUVORK5CYII=
+
+
+ A close up of a logo
+
+Description automatically generated
+
+
+ </for>
+
+
+
\ No newline at end of file
From 0fe16df326f10117e181ee25c23f11e4c9ed8d18 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Wed, 11 Mar 2026 20:31:47 +0100
Subject: [PATCH 436/618] 11.03.26
---
modules/account_invoice/invoice_melya.fodt | 99 +++++++++++++---------
1 file changed, 57 insertions(+), 42 deletions(-)
diff --git a/modules/account_invoice/invoice_melya.fodt b/modules/account_invoice/invoice_melya.fodt
index ab5e855..fde256c 100644
--- a/modules/account_invoice/invoice_melya.fodt
+++ b/modules/account_invoice/invoice_melya.fodt
@@ -1,24 +1,24 @@
- LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 Aksel Kamhi Laurent BARONTINI 2026-03-11T17:00:00Z 2026-03-11T17:00:00Z 2025-12-11T15:32:00Z 2 PT0S 0x010100C9130B1D3286474FB2D468C22F52A7B0
+ LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 Aksel Kamhi 2026-03-11T17:00:00Z 2026-03-11T20:31:25.889000000 2025-12-11T15:32:00Z 3 PT3M8S 0x010100C9130B1D3286474FB2D468C22F52A7B0
- 0
+ 46097
0
24236
- 11770
+ 11721
true
false
view2
- 4281
- 3076
+ 13460
+ 40509
0
- 0
+ 46097
24234
- 11769
+ 57817
0
0
false
@@ -91,7 +91,7 @@
false
false
false
- 1803951
+ 1836383
1803951
false
false
@@ -152,21 +152,22 @@
+
-
-
+
+
-
+
-
+
@@ -177,74 +178,85 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -302,8 +314,11 @@
+
+
+
-
+
@@ -333,7 +348,7 @@
-
+
@@ -488,7 +503,7 @@
-
+
@@ -506,7 +521,7 @@
-
+
@@ -2326,9 +2341,9 @@
Buyer:
<invoice.party.rec_name>
<'TAX ID: ' + invoice.party.tax_identifier.code if invoice.party.tax_identifier else ''>
- <for each="line in invoice.report_address.splitlines()"> <line> </for>
-
-
+ <for each="line in invoice.invoice_address.full_address.split('\n')"> <line> </for>
+
+
@@ -2339,7 +2354,7 @@
Payment terms:
- <invoice.payment_term.description if invoice.payment_term else ''>
+ <invoice.payment_term.description if invoice.payment_term else ''>
Bank: UBS SWITZERLAND AG
Case Postale
@@ -2360,7 +2375,7 @@
Transportation:
- <invoice.incoterm_location.party_name if invoice.incoterm_location else ''>
+ <invoice.incoterm_location.party_name if invoice.incoterm_location else ''>
@@ -2408,9 +2423,10 @@
US Dollar Amount
+
- <for each="line in invoice.lines"> <line.quantity> <line.unit.rec_name.upper() if line.unit else ''>
+ <for each="line in invoice.lines"> <line.quantity> <line.unit.rec_name.upper() if line.unit else ''>
@@ -2423,7 +2439,7 @@
<invoice.currency.symbol + ' ' + format_currency(line.unit_price, invoice.party.lang, invoice.currency) if line.unit_price else ''>
- <format_currency(line.amount, invoice.party.lang, invoice.currency)> </for>
+ <format_currency(line.amount, invoice.party.lang, invoice.currency)> </for>
@@ -2460,7 +2476,7 @@
Total CIF ISKENDERUN Value in USD
- <format_currency(invoice.total_amount, invoice.party.lang, invoice.currency)>
+ <format_currency(invoice.total_amount, invoice.party.lang, invoice.currency)>
@@ -2478,7 +2494,7 @@
Packaging: <invoice.packaging_description if hasattr(invoice, 'packaging_description') else ''>
-
+
iVBORw0KGgoAAAANSUhEUgAAARwAAAC1CAYAAACNkEByAAAAAXNSR0IArs4c6QAAAARnQU1B
AACxjwv8YQUAAAAJcEhZcwAAIdUAACHVAQSctJ0AAHdDSURBVHhe5X13mBTF1jdpyTkusLvs
@@ -3054,7 +3070,6 @@
Description automatically generated
-
</for>
From c180e8926fdba230a6c1c0ac372f1ac5ab568b5f Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Wed, 11 Mar 2026 20:51:46 +0100
Subject: [PATCH 437/618] 11.03.26
---
modules/sale/sale.xml | 12 ++
.../sale_final.fodt} | 135 ++++++++----------
2 files changed, 72 insertions(+), 75 deletions(-)
rename modules/{account_invoice/invoice_melya.fodt => sale/sale_final.fodt} (94%)
diff --git a/modules/sale/sale.xml b/modules/sale/sale.xml
index b404b06..17fa372 100755
--- a/modules/sale/sale.xml
+++ b/modules/sale/sale.xml
@@ -410,6 +410,18 @@ this repository contains the full copyright notices and license terms. -->
+
+ Sale (final)
+ sale.sale
+ sale.sale
+ sale/sale_final.fodt
+
+
+ form_print
+ sale.sale,-1
+
+
+
sale.line
form
diff --git a/modules/account_invoice/invoice_melya.fodt b/modules/sale/sale_final.fodt
similarity index 94%
rename from modules/account_invoice/invoice_melya.fodt
rename to modules/sale/sale_final.fodt
index fde256c..15c015e 100644
--- a/modules/account_invoice/invoice_melya.fodt
+++ b/modules/sale/sale_final.fodt
@@ -1,24 +1,24 @@
- LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 Aksel Kamhi 2026-03-11T17:00:00Z 2026-03-11T20:31:25.889000000 2025-12-11T15:32:00Z 3 PT3M8S 0x010100C9130B1D3286474FB2D468C22F52A7B0
+ LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 Aksel Kamhi Laurent BARONTINI 2026-03-11T17:00:00Z 2026-03-11T17:00:00Z 2025-12-11T15:32:00Z 2 PT0S 0x010100C9130B1D3286474FB2D468C22F52A7B0
- 46097
+ 0
0
24236
- 11721
+ 11770
true
false
view2
- 13460
- 40509
+ 4281
+ 3076
0
- 46097
+ 0
24234
- 57817
+ 11769
0
0
false
@@ -91,7 +91,7 @@
false
false
false
- 1836383
+ 1803951
1803951
false
false
@@ -152,22 +152,21 @@
-
-
-
+
+
-
+
-
+
@@ -178,85 +177,74 @@
-
+
-
-
-
-
-
-
-
-
-
-
-
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -314,11 +302,8 @@
-
-
-
-
+
@@ -348,7 +333,7 @@
-
+
@@ -503,7 +488,7 @@
-
+
@@ -521,7 +506,7 @@
-
+
@@ -533,7 +518,7 @@
- <for each="invoice in records">
+ <for each="sale in records">
@@ -2325,10 +2310,10 @@
Invoice Nr: Date:
- <invoice.number> <format_date(invoice.invoice_date, invoice.party.lang) if invoice.invoice_date else ''>
+ <sale.full_number> <format_date(sale.sale_date, sale.party.lang) if sale.sale_date else \'\' >
Order reference:
- <invoice.reference or ''>
+ <sale.reference or \'\' >
@@ -2339,11 +2324,11 @@
Buyer:
- <invoice.party.rec_name>
- <'TAX ID: ' + invoice.party.tax_identifier.code if invoice.party.tax_identifier else ''>
- <for each="line in invoice.invoice_address.full_address.split('\n')"> <line> </for>
-
-
+ <sale.party.rec_name>
+ <'TAX ID: ' + sale.party.tax_identifier.code if sale.party.tax_identifier else \'\' >
+ <for each="line in sale.report_address.splitlines()"> <line> </for>
+
+
@@ -2354,7 +2339,7 @@
Payment terms:
- <invoice.payment_term.description if invoice.payment_term else ''>
+ <sale.payment_term.description if sale.payment_term else \'\' >
Bank: UBS SWITZERLAND AG
Case Postale
@@ -2370,32 +2355,32 @@
Shipment date:
- <format_date(invoice.invoice_date, invoice.party.lang) if invoice.invoice_date else ''>
+ <format_date(sale.sale_date, sale.party.lang) if sale.sale_date else \'\' >
Transportation:
- <invoice.incoterm_location.party_name if invoice.incoterm_location else ''>
+ <sale.incoterm_location.party_name if sale.incoterm_location else \'\' >
Terms of delivery:
- <invoice.incoterm.code if invoice.incoterm else ''>
+ <sale.incoterm.code if sale.incoterm else \'\' >
From:
- <invoice.incoterm_location.name if invoice.incoterm_location else ''>
+ <sale.incoterm_location.name if sale.incoterm_location else \'\' >
To:
- <', '.join(filter(None, [invoice.party.addresses[0].city, invoice.party.addresses[0].country.name if invoice.party.addresses[0].country else ''])) if invoice.party.addresses else ''>
+ <', '.join(filter(None, [sale.party.addresses[0].city, sale.party.addresses[0].country.name if sale.party.addresses[0].country else ''])) if sale.party.addresses else ''>
Origin:
- <invoice.lines[0].product.origin_country.name if invoice.lines and invoice.lines[0].product and invoice.lines[0].product.origin_country else ''>
+ <sale.lines[0].product.origin_country.name if sale.lines and sale.lines[0].product and sale.lines[0].product.origin_country else \'\' >
@@ -2423,23 +2408,22 @@
US Dollar Amount
-
- <for each="line in invoice.lines"> <line.quantity> <line.unit.rec_name.upper() if line.unit else ''>
+ <for each="line in sale.lines"> <line.quantity> <line.unit.rec_name.upper() if line.unit else \'\' >
- <line.product.name if line.product else ''>
+ <line.product.name if line.product else \'\' >
- <invoice.currency.symbol + ' ' + format_currency(line.unit_price, invoice.party.lang, invoice.currency) if line.unit_price else ''>
+ <format_currency(line.unit_price, sale.party.lang, sale.currency) if line.unit_price else \'\' > <sale.currency.name>
- <format_currency(line.amount, invoice.party.lang, invoice.currency)> </for>
+ <format_currency(line.amount, sale.party.lang, sale.currency)> </for>
@@ -2452,7 +2436,7 @@
FOB Value in USD
- <format_currency(invoice.untaxed_amount, invoice.party.lang, invoice.currency)>
+ <format_currency(sale.untaxed_amount, sale.party.lang, sale.currency)>
@@ -2460,7 +2444,7 @@
FREIGHT Value in USD
- <format_currency(invoice.freight_amount, invoice.party.lang, invoice.currency) if hasattr(invoice, 'freight_amount') else ''>
+ <format_currency(sale.freight_amount, sale.party.lang, sale.currency) if hasattr(sale, \'freight_amount\') else \'\' >
@@ -2468,7 +2452,7 @@
INSURANCE Value in USD
- <format_currency(invoice.insurance_amount, invoice.party.lang, invoice.currency) if hasattr(invoice, 'insurance_amount') else ''>
+ <format_currency(sale.insurance_amount, sale.party.lang, sale.currency) if hasattr(sale, \'insurance_amount\') else \'\' >
@@ -2476,7 +2460,7 @@
Total CIF ISKENDERUN Value in USD
- <format_currency(invoice.total_amount, invoice.party.lang, invoice.currency)>
+ <format_currency(sale.total_amount, sale.party.lang, sale.currency)>
@@ -2489,12 +2473,12 @@
- Net weight: <invoice.total_net_weight or ''>
- Gross weight: <invoice.total_gross_weight or ''>
+ Net weight: <sale.total_net_weight or \'\' >
+ Gross weight: <sale.total_gross_weight or \'\' >
- Packaging: <invoice.packaging_description if hasattr(invoice, 'packaging_description') else ''>
-
+ Packaging: <sale.comment or \'\' >
+
iVBORw0KGgoAAAANSUhEUgAAARwAAAC1CAYAAACNkEByAAAAAXNSR0IArs4c6QAAAARnQU1B
AACxjwv8YQUAAAAJcEhZcwAAIdUAACHVAQSctJ0AAHdDSURBVHhe5X13mBTF1jdpyTkusLvs
@@ -3070,6 +3054,7 @@
Description automatically generated
+
</for>
From 6890d0de07418859830177b2cc4dd5a1688aaf7f Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Wed, 11 Mar 2026 20:53:20 +0100
Subject: [PATCH 438/618] 11.03.26
---
modules/sale/sale.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/sale/sale.xml b/modules/sale/sale.xml
index 17fa372..aac96c6 100755
--- a/modules/sale/sale.xml
+++ b/modules/sale/sale.xml
@@ -416,7 +416,7 @@ this repository contains the full copyright notices and license terms. -->
sale.sale
sale/sale_final.fodt
-
+
form_print
sale.sale,-1
From 0b1bb2ffa59a33a1563516f451885e6fbff5840c Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Wed, 11 Mar 2026 21:06:45 +0100
Subject: [PATCH 439/618] 11.03.26
---
modules/sale/sale_final.fodt | 132 +++++++++++++++++++----------------
1 file changed, 73 insertions(+), 59 deletions(-)
diff --git a/modules/sale/sale_final.fodt b/modules/sale/sale_final.fodt
index 15c015e..7103ca3 100644
--- a/modules/sale/sale_final.fodt
+++ b/modules/sale/sale_final.fodt
@@ -1,24 +1,24 @@
- LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 Aksel Kamhi Laurent BARONTINI 2026-03-11T17:00:00Z 2026-03-11T17:00:00Z 2025-12-11T15:32:00Z 2 PT0S 0x010100C9130B1D3286474FB2D468C22F52A7B0
+ LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 Aksel Kamhi 2026-03-11T17:00:00Z 2026-03-11T21:06:24.382000000 2025-12-11T15:32:00Z 3 PT10M19S 0x010100C9130B1D3286474FB2D468C22F52A7B0
- 0
+ 75593
0
24236
- 11770
+ 12222
true
false
view2
- 4281
- 3076
+ 5724
+ 76018
0
- 0
+ 75593
24234
- 11769
+ 87813
0
0
false
@@ -91,7 +91,7 @@
false
false
false
- 1803951
+ 1926905
1803951
false
false
@@ -152,21 +152,22 @@
+
-
-
+
+
-
+
-
+
@@ -177,74 +178,85 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -302,8 +314,11 @@
+
+
+
-
+
@@ -333,7 +348,7 @@
-
+
@@ -488,7 +503,7 @@
-
+
@@ -506,7 +521,7 @@
-
+
@@ -2310,10 +2325,10 @@
Invoice Nr: Date:
- <sale.full_number> <format_date(sale.sale_date, sale.party.lang) if sale.sale_date else \'\' >
+ <sale.full_number> <format_date(sale.sale_date, sale.party.lang) if sale.sale_date else ''>
Order reference:
- <sale.reference or \'\' >
+ <sale.reference or ''>
@@ -2325,10 +2340,10 @@
Buyer:
<sale.party.rec_name>
- <'TAX ID: ' + sale.party.tax_identifier.code if sale.party.tax_identifier else \'\' >
- <for each="line in sale.report_address.splitlines()"> <line> </for>
-
-
+ <'TAX ID: ' + sale.party.tax_identifier.code if sale.party.tax_identifier else ''>
+ <for each="line in sale.report_address.splitlines()"> <line> </for>
+
+
@@ -2339,7 +2354,7 @@
Payment terms:
- <sale.payment_term.description if sale.payment_term else \'\' >
+ <sale.payment_term.description if sale.payment_term else ''>
Bank: UBS SWITZERLAND AG
Case Postale
@@ -2355,24 +2370,24 @@
Shipment date:
- <format_date(sale.sale_date, sale.party.lang) if sale.sale_date else \'\' >
+ <format_date(sale.sale_date, sale.party.lang) if sale.sale_date else ''>
Transportation:
- <sale.incoterm_location.party_name if sale.incoterm_location else \'\' >
+ <sale.incoterm_location.party_name if sale.incoterm_location else ''>
Terms of delivery:
- <sale.incoterm.code if sale.incoterm else \'\' >
+ <sale.incoterm.code if sale.incoterm else ''>
From:
- <sale.incoterm_location.name if sale.incoterm_location else \'\' >
+ <sale.incoterm_location.name if sale.incoterm_location else ''>
To:
@@ -2380,7 +2395,7 @@
Origin:
- <sale.lines[0].product.origin_country.name if sale.lines and sale.lines[0].product and sale.lines[0].product.origin_country else \'\' >
+ <sale.lines[0].product.origin_country.name if sale.lines and sale.lines[0].product and sale.lines[0].product.origin_country else ''>
@@ -2410,20 +2425,20 @@
- <for each="line in sale.lines"> <line.quantity> <line.unit.rec_name.upper() if line.unit else \'\' >
+ <for each="line in sale.lines"> <line.quantity> <line.unit.rec_name.upper() if line.unit else ''>
- <line.product.name if line.product else \'\' >
-
+ <line.product.name if line.product else ''>
+
- <format_currency(line.unit_price, sale.party.lang, sale.currency) if line.unit_price else \'\' > <sale.currency.name>
+ <format_currency(line.unit_price, sale.party.lang, sale.currency) if line.unit_price else ''> <sale.currency.name>
- <format_currency(line.amount, sale.party.lang, sale.currency)> </for>
+ <format_currency(line.amount, sale.party.lang, sale.currency)> </for>
@@ -2436,7 +2451,7 @@
FOB Value in USD
- <format_currency(sale.untaxed_amount, sale.party.lang, sale.currency)>
+
@@ -2444,7 +2459,7 @@
FREIGHT Value in USD
- <format_currency(sale.freight_amount, sale.party.lang, sale.currency) if hasattr(sale, \'freight_amount\') else \'\' >
+
@@ -2452,15 +2467,15 @@
INSURANCE Value in USD
- <format_currency(sale.insurance_amount, sale.party.lang, sale.currency) if hasattr(sale, \'insurance_amount\') else \'\' >
+
- Total CIF ISKENDERUN Value in USD
+ Total CIF Value in USD
- <format_currency(sale.total_amount, sale.party.lang, sale.currency)>
+ <format_currency(sale.lines[0].amount, sale.party.lang, sale.currency)>
@@ -2473,12 +2488,12 @@
- Net weight: <sale.total_net_weight or \'\' >
- Gross weight: <sale.total_gross_weight or \'\' >
+ Net weight: <sale.total_net_weight or ''>
+ Gross weight: <sale.total_gross_weight or ''>
- Packaging: <sale.comment or \'\' >
+ Packaging: <sale.comment or ''>
+
-
iVBORw0KGgoAAAANSUhEUgAAARwAAAC1CAYAAACNkEByAAAAAXNSR0IArs4c6QAAAARnQU1B
AACxjwv8YQUAAAAJcEhZcwAAIdUAACHVAQSctJ0AAHdDSURBVHhe5X13mBTF1jdpyTkusLvs
@@ -3054,7 +3069,6 @@
Description automatically generated
-
</for>
From b23dba865fcc657125304114b537446bfd79edf3 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Wed, 11 Mar 2026 21:14:53 +0100
Subject: [PATCH 440/618] 11.03.26
---
modules/purchase_trade/sale.py | 1 +
modules/purchase_trade/view/sale_form.xml | 3 +++
modules/sale/sale_final.fodt | 22 +++++++++++-----------
3 files changed, 15 insertions(+), 11 deletions(-)
diff --git a/modules/purchase_trade/sale.py b/modules/purchase_trade/sale.py
index c5685e4..23eac5e 100755
--- a/modules/purchase_trade/sale.py
+++ b/modules/purchase_trade/sale.py
@@ -260,6 +260,7 @@ class Sale(metaclass=PoolMeta):
our_reference = fields.Char("Our Reference")
company_visible = fields.Function(fields.Boolean("Visible"),'get_company_info')
lc_date = fields.Date("LC date")
+ origin = fields.Char("Origin")
def get_company_info(self,name):
return (self.company.party.name == 'MELYA')
diff --git a/modules/purchase_trade/view/sale_form.xml b/modules/purchase_trade/view/sale_form.xml
index 291f64a..e21eb08 100755
--- a/modules/purchase_trade/view/sale_form.xml
+++ b/modules/purchase_trade/view/sale_form.xml
@@ -35,6 +35,9 @@ this repository contains the full copyright notices and license terms. -->
+
+
+
diff --git a/modules/sale/sale_final.fodt b/modules/sale/sale_final.fodt
index 7103ca3..f870ea8 100644
--- a/modules/sale/sale_final.fodt
+++ b/modules/sale/sale_final.fodt
@@ -1,24 +1,24 @@
- LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 Aksel Kamhi 2026-03-11T17:00:00Z 2026-03-11T21:06:24.382000000 2025-12-11T15:32:00Z 3 PT10M19S 0x010100C9130B1D3286474FB2D468C22F52A7B0
+ LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 Aksel Kamhi 2026-03-11T17:00:00Z 2026-03-11T21:12:58.888000000 2025-12-11T15:32:00Z 4 PT13M29S 0x010100C9130B1D3286474FB2D468C22F52A7B0
- 75593
+ 46835
0
24236
- 12222
+ 11721
true
false
view2
- 5724
- 76018
+ 13460
+ 52096
0
- 75593
+ 46835
24234
- 87813
+ 58554
0
0
false
@@ -91,7 +91,7 @@
false
false
false
- 1926905
+ 1932100
1803951
false
false
@@ -158,7 +158,7 @@
-
+
@@ -318,7 +318,7 @@
-
+
@@ -2395,7 +2395,7 @@
Origin:
- <sale.lines[0].product.origin_country.name if sale.lines and sale.lines[0].product and sale.lines[0].product.origin_country else ''>
+ <sale.origin>
From 2fba795b11900a1cfc3ac194f407623c94f8528d Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Wed, 11 Mar 2026 21:27:43 +0100
Subject: [PATCH 441/618] 11.03.26
---
modules/lot/lot.py | 6 ++++++
modules/purchase_trade/sale.py | 16 +++++++++++++++-
modules/purchase_trade/view/sale_form.xml | 4 ++--
modules/sale/sale_final.fodt | 22 +++++++++++-----------
4 files changed, 34 insertions(+), 14 deletions(-)
diff --git a/modules/lot/lot.py b/modules/lot/lot.py
index 3453fb9..92ce710 100755
--- a/modules/lot/lot.py
+++ b/modules/lot/lot.py
@@ -515,6 +515,12 @@ class Lot(ModelSQL, ModelView):
unit = self.line.unit if self.line else self.sale_line.unit
qt, gross_qt = self.get_hist_quantity(state_id)
return round(Decimal(Uom.compute_qty(self.lot_unit_line, float(qt), unit)),5)
+
+ def get_current_gross_quantity_converted(self,state_id=0,name=None):
+ Uom = Pool().get('product.uom')
+ unit = self.line.unit if self.line else self.sale_line.unit
+ qt, gross_qt = self.get_hist_quantity(state_id)
+ return round(Decimal(Uom.compute_qty(self.lot_unit_line, float(gross_qt), unit)),5)
def get_current_gross_quantity(self,name=None):
if self.lot_type == 'physic':
diff --git a/modules/purchase_trade/sale.py b/modules/purchase_trade/sale.py
index 23eac5e..61ad850 100755
--- a/modules/purchase_trade/sale.py
+++ b/modules/purchase_trade/sale.py
@@ -260,7 +260,7 @@ class Sale(metaclass=PoolMeta):
our_reference = fields.Char("Our Reference")
company_visible = fields.Function(fields.Boolean("Visible"),'get_company_info')
lc_date = fields.Date("LC date")
- origin = fields.Char("Origin")
+ product_origin = fields.Char("Origin")
def get_company_info(self,name):
return (self.company.party.name == 'MELYA')
@@ -271,6 +271,20 @@ class Sale(metaclass=PoolMeta):
return self.lines[0].note
else:
return ''
+
+ @property
+ def report_gross(self):
+ if self.lines:
+ return sum([l.get_current_gross_quantity_converted() for l in self.lines if l.lot_type == 'physic'])
+ else:
+ return ''
+
+ @property
+ def report_net(self):
+ if self.lines:
+ return sum([l.get_current_quantity_converted() for l in self.lines if l.lot_type == 'physic'])
+ else:
+ return ''
@property
def report_qt(self):
diff --git a/modules/purchase_trade/view/sale_form.xml b/modules/purchase_trade/view/sale_form.xml
index e21eb08..83e64d1 100755
--- a/modules/purchase_trade/view/sale_form.xml
+++ b/modules/purchase_trade/view/sale_form.xml
@@ -36,8 +36,8 @@ this repository contains the full copyright notices and license terms. -->
-
-
+
+
diff --git a/modules/sale/sale_final.fodt b/modules/sale/sale_final.fodt
index f870ea8..e5352dd 100644
--- a/modules/sale/sale_final.fodt
+++ b/modules/sale/sale_final.fodt
@@ -1,24 +1,24 @@
- LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 Aksel Kamhi 2026-03-11T17:00:00Z 2026-03-11T21:12:58.888000000 2025-12-11T15:32:00Z 4 PT13M29S 0x010100C9130B1D3286474FB2D468C22F52A7B0
+ LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 Aksel Kamhi 2026-03-11T17:00:00Z 2026-03-11T21:21:43.308000000 2025-12-11T15:32:00Z 5 PT15M42S 0x010100C9130B1D3286474FB2D468C22F52A7B0
- 46835
+ 68883
0
24236
- 11721
+ 12222
true
false
view2
- 13460
- 52096
+ 6073
+ 75166
0
- 46835
+ 68883
24234
- 58554
+ 81104
0
0
false
@@ -91,7 +91,7 @@
false
false
false
- 1932100
+ 1984380
1803951
false
false
@@ -158,7 +158,7 @@
-
+
@@ -2488,8 +2488,8 @@
- Net weight: <sale.total_net_weight or ''>
- Gross weight: <sale.total_gross_weight or ''>
+ Net weight: <sale.report_net or ''>
+ Gross weight: <sale.report_gross or ''>
Packaging: <sale.comment or ''>
From 4a14a78f78279fb5eb6ca7780fe975516033a651 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Wed, 11 Mar 2026 21:33:42 +0100
Subject: [PATCH 442/618] 11.03.26
---
modules/purchase_trade/sale.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/modules/purchase_trade/sale.py b/modules/purchase_trade/sale.py
index 61ad850..2a1756a 100755
--- a/modules/purchase_trade/sale.py
+++ b/modules/purchase_trade/sale.py
@@ -275,14 +275,14 @@ class Sale(metaclass=PoolMeta):
@property
def report_gross(self):
if self.lines:
- return sum([l.get_current_gross_quantity_converted() for l in self.lines if l.lot_type == 'physic'])
+ return sum([l.get_current_gross_quantity_converted() for l in self.lines[0].lots if l.lot_type == 'physic'])
else:
return ''
@property
def report_net(self):
if self.lines:
- return sum([l.get_current_quantity_converted() for l in self.lines if l.lot_type == 'physic'])
+ return sum([l.get_current_quantity_converted() for l in self.lines[0].lots if l.lot_type == 'physic'])
else:
return ''
From 6d06125360dfa79dcd10bf41001f2f22a3ba0ecf Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Wed, 11 Mar 2026 22:12:38 +0100
Subject: [PATCH 443/618] 11.03.26
---
modules/purchase_trade/sale.py | 19 ++++++++++
modules/sale/sale_final.fodt | 68 ++++++++++++++++++++++++----------
2 files changed, 67 insertions(+), 20 deletions(-)
diff --git a/modules/purchase_trade/sale.py b/modules/purchase_trade/sale.py
index 2a1756a..8b3e35a 100755
--- a/modules/purchase_trade/sale.py
+++ b/modules/purchase_trade/sale.py
@@ -303,6 +303,25 @@ class Sale(metaclass=PoolMeta):
nb_bale += sum([l.lot_qt for l in line.lots if l.lot_type == 'physic'])
return text_bale + str(int(nb_bale))
+ @property
+ def report_deal(self):
+ if self.lines and self.lines[0].lots and len(self.lines[0].lots)>1:
+ return self.lines[0].lots[1].line.purchase.number + ' ' + self.number
+ else:
+ ''
+
+ @property
+ def report_packing(self):
+ nb_packing = 0
+ unit = ''
+ if self.lines:
+ for line in self.lines:
+ if line.lots:
+ nb_packing += sum([l.lot_qt for l in line.lots if l.lot_type == 'physic'])
+ if len(line.lots)>1:
+ unit = line.lots[1].lot_unit_line.name
+ return str(int(nb_packing)) + unit
+
@property
def report_price(self):
if self.lines:
diff --git a/modules/sale/sale_final.fodt b/modules/sale/sale_final.fodt
index e5352dd..1765c88 100644
--- a/modules/sale/sale_final.fodt
+++ b/modules/sale/sale_final.fodt
@@ -1,10 +1,10 @@
- LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 Aksel Kamhi 2026-03-11T17:00:00Z 2026-03-11T21:21:43.308000000 2025-12-11T15:32:00Z 5 PT15M42S 0x010100C9130B1D3286474FB2D468C22F52A7B0
+ LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 Aksel Kamhi 2026-03-11T17:00:00Z 2026-03-11T22:04:57.961000000 2025-12-11T15:32:00Z 10 PT39M17S 0x010100C9130B1D3286474FB2D468C22F52A7B0
- 68883
+ 67929
0
24236
12222
@@ -13,12 +13,12 @@
view2
- 6073
- 75166
+ 5724
+ 73828
0
- 68883
+ 67929
24234
- 81104
+ 80149
0
0
false
@@ -91,7 +91,7 @@
false
false
false
- 1984380
+ 2080548
1803951
false
false
@@ -151,6 +151,7 @@
+
@@ -158,7 +159,7 @@
-
+
@@ -261,6 +262,7 @@
+
@@ -469,9 +471,23 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -497,8 +513,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
@@ -2321,14 +2349,14 @@
- COMMERCIAL INVOICE
+ COMMERCIAL INVOICE
Invoice Nr: Date:
- <sale.full_number> <format_date(sale.sale_date, sale.party.lang) if sale.sale_date else ''>
+ <sale.report_deal> <format_date(sale.sale_date, sale.party.lang) if sale.sale_date else ''>
Order reference:
- <sale.reference or ''>
+ <sale.reference or ''>
@@ -2375,7 +2403,7 @@
Transportation:
- <sale.incoterm_location.party_name if sale.incoterm_location else ''>
+ <sale.report_shipment>
@@ -2387,11 +2415,11 @@
From:
- <sale.incoterm_location.name if sale.incoterm_location else ''>
+ <sale.from_location.name if sale.from_location else ''>
To:
- <', '.join(filter(None, [sale.party.addresses[0].city, sale.party.addresses[0].country.name if sale.party.addresses[0].country else ''])) if sale.party.addresses else ''>
+ <sale.to_location.name if sale.to_location else ''>
Origin:
@@ -2425,20 +2453,20 @@
- <for each="line in sale.lines"> <line.quantity> <line.unit.rec_name.upper() if line.unit else ''>
+ <sale.lines[0].quantity> <sale.lines[0].unit.rec_name.upper() if sale.lines and sale.lines[0].unit else ''>
<line.product.name if line.product else ''>
-
+
- <format_currency(line.unit_price, sale.party.lang, sale.currency) if line.unit_price else ''> <sale.currency.name>
+ <format_currency(sale.lines[0].unit_price, sale.party.lang, sale.currency) if sale.lines else ''>
- <format_currency(line.amount, sale.party.lang, sale.currency)> </for>
+ <format_currency(sale.lines[0].amount, sale.party.lang, sale.currency)>
@@ -2491,7 +2519,7 @@
Net weight: <sale.report_net or ''>
Gross weight: <sale.report_gross or ''>
- Packaging: <sale.comment or ''>
+ Packaging: <sale.report_packing or ''>
From b07ad57a362d7e15651ca90dc73256a966f01d2e Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Wed, 11 Mar 2026 22:17:48 +0100
Subject: [PATCH 444/618] 11.03.26
---
modules/sale/sale_final.fodt | 77 ++++++++++++++++++++----------------
1 file changed, 43 insertions(+), 34 deletions(-)
diff --git a/modules/sale/sale_final.fodt b/modules/sale/sale_final.fodt
index 1765c88..f66147c 100644
--- a/modules/sale/sale_final.fodt
+++ b/modules/sale/sale_final.fodt
@@ -1,24 +1,24 @@
- LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 Aksel Kamhi 2026-03-11T17:00:00Z 2026-03-11T22:04:57.961000000 2025-12-11T15:32:00Z 10 PT39M17S 0x010100C9130B1D3286474FB2D468C22F52A7B0
+ LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 Aksel Kamhi 2026-03-11T17:00:00Z 2026-03-11T22:17:20.799000000 2025-12-11T15:32:00Z 11 PT40M37S 0x010100C9130B1D3286474FB2D468C22F52A7B0
- 67929
+ 68806
0
24236
- 12222
+ 11721
true
false
view2
- 5724
- 73828
+ 5904
+ 53906
0
- 67929
+ 68806
24234
- 80149
+ 80525
0
0
false
@@ -91,7 +91,7 @@
false
false
false
- 2080548
+ 2159149
1803951
false
false
@@ -159,7 +159,7 @@
-
+
@@ -460,33 +460,39 @@
-
-
+
+
-
+
+
+
+
+
+
+
+
+
-
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
@@ -522,9 +528,12 @@
-
+
+
+
+
@@ -2349,14 +2358,14 @@
- COMMERCIAL INVOICE
+ COMMERCIAL INVOICE
Invoice Nr: Date:
-
+
<sale.report_deal> <format_date(sale.sale_date, sale.party.lang) if sale.sale_date else ''>
Order reference:
- <sale.reference or ''>
+ <sale.reference or ''>
@@ -2384,12 +2393,12 @@
Payment terms:
<sale.payment_term.description if sale.payment_term else ''>
- Bank: UBS SWITZERLAND AG
+ Bank: UBS SWITZERLAND AG
Case Postale
CH-1211 Genève 2
- IBAN : CH36 0021 5215 2487 7461 D
- SwifT Code: UBSWCHZH80A
+ IBAN : CH36 0021 5215 2487 7461 D
+ SwifT Code: UBSWCHZH80A
@@ -2419,7 +2428,7 @@
To:
- <sale.to_location.name if sale.to_location else ''>
+ <sale.to_location.name if sale.to_location else ''>
Origin:
@@ -2453,20 +2462,20 @@
- <sale.lines[0].quantity> <sale.lines[0].unit.rec_name.upper() if sale.lines and sale.lines[0].unit else ''>
+ <sale.lines[0].quantity> <sale.lines[0].unit.rec_name.upper() if sale.lines and sale.lines[0].unit else ''>
- <line.product.name if line.product else ''>
+ <sale.lines[0].product.name if sale.lines[0].product else ''>
- <format_currency(sale.lines[0].unit_price, sale.party.lang, sale.currency) if sale.lines else ''>
+ <format_currency(sale.lines[0].unit_price, sale.party.lang, sale.currency) if sale.lines else ''>
- <format_currency(sale.lines[0].amount, sale.party.lang, sale.currency)>
+ <format_currency(sale.lines[0].amount, sale.party.lang, sale.currency)>
From 23c4edfec5c7158f0c5c73c96338dc706ca51104 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Thu, 12 Mar 2026 10:24:34 +0100
Subject: [PATCH 445/618] 12.03.26
---
modules/purchase_trade/sale.py | 9 ++++++++-
modules/purchase_trade/view/sale_line_form.xml | 3 +++
2 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/modules/purchase_trade/sale.py b/modules/purchase_trade/sale.py
index 8b3e35a..278f2c6 100755
--- a/modules/purchase_trade/sale.py
+++ b/modules/purchase_trade/sale.py
@@ -494,7 +494,13 @@ class Sale(metaclass=PoolMeta):
for d in line.derivatives:
line.unit_price = d.price_index.get_price(Date.today(),line.unit,line.currency,True)
Line.save([line])
-
+
+class PriceComposition(ModelSQL,ModelView):
+ __name__ = 'price.composition'
+
+ component = fields.Char("Component")
+ price = fields.Numerci("Price")
+
class SaleLine(metaclass=PoolMeta):
__name__ = 'sale.line'
@@ -588,6 +594,7 @@ class SaleLine(metaclass=PoolMeta):
)
pricing_rule = fields.Text("Pricing description")
+ price_composition = fields.One2Many('price.composition',"Price composition")
@property
def report_fixing_rule(self):
diff --git a/modules/purchase_trade/view/sale_line_form.xml b/modules/purchase_trade/view/sale_line_form.xml
index 4f02e6d..d428f62 100755
--- a/modules/purchase_trade/view/sale_line_form.xml
+++ b/modules/purchase_trade/view/sale_line_form.xml
@@ -53,6 +53,9 @@ this repository contains the full copyright notices and license terms. -->
+
+
+
From 19a4363d1010195b8a14bce8f1e1dac032b0b213 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Thu, 12 Mar 2026 10:46:48 +0100
Subject: [PATCH 446/618] 12.03.26
---
modules/purchase_trade/__init__.py | 1 +
modules/purchase_trade/sale.py | 2 +-
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/modules/purchase_trade/__init__.py b/modules/purchase_trade/__init__.py
index b16f3c1..2649170 100755
--- a/modules/purchase_trade/__init__.py
+++ b/modules/purchase_trade/__init__.py
@@ -216,6 +216,7 @@ def register():
sale.OpenPosition,
sale.Backtoback,
sale.AnalyticDimensionAssignment,
+ sale.PriceComposition,
module='sale', type_='model')
Pool.register(
lot.LotShipping,
diff --git a/modules/purchase_trade/sale.py b/modules/purchase_trade/sale.py
index 278f2c6..ee6b8ca 100755
--- a/modules/purchase_trade/sale.py
+++ b/modules/purchase_trade/sale.py
@@ -499,7 +499,7 @@ class PriceComposition(ModelSQL,ModelView):
__name__ = 'price.composition'
component = fields.Char("Component")
- price = fields.Numerci("Price")
+ price = fields.Numeric("Price")
class SaleLine(metaclass=PoolMeta):
__name__ = 'sale.line'
From e2cb84084457314544e209a95488c13464c56506 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Thu, 12 Mar 2026 10:51:39 +0100
Subject: [PATCH 447/618] 12.03.26
---
modules/purchase_trade/__init__.py | 1 +
modules/purchase_trade/purchase.py | 7 +++++++
modules/purchase_trade/sale.py | 9 ++++-----
3 files changed, 12 insertions(+), 5 deletions(-)
diff --git a/modules/purchase_trade/__init__.py b/modules/purchase_trade/__init__.py
index 2649170..44dac07 100755
--- a/modules/purchase_trade/__init__.py
+++ b/modules/purchase_trade/__init__.py
@@ -167,6 +167,7 @@ def register():
purchase.DocTemplate,
purchase.DocTypeTemplate,
purchase.PurchaseStrategy,
+ purchase.PriceComposition,
backtoback.Backtoback,
dimension.AnalyticDimension,
dimension.AnalyticDimensionValue,
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index f17ec74..4f688a4 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -491,6 +491,13 @@ class Purchase(metaclass=PoolMeta):
logger.info("EFP_PRICE:%s",line.unit_price)
Line.save([line])
+class PriceComposition(ModelSQL,ModelView):
+ __name__ = 'price.composition'
+
+ line = fields.Many2One('purchase.line',"Purchase line")
+ component = fields.Char("Component")
+ price = fields.Numeric("Price")
+
class Line(metaclass=PoolMeta):
__name__ = 'purchase.line'
diff --git a/modules/purchase_trade/sale.py b/modules/purchase_trade/sale.py
index ee6b8ca..541ec7c 100755
--- a/modules/purchase_trade/sale.py
+++ b/modules/purchase_trade/sale.py
@@ -495,12 +495,11 @@ class Sale(metaclass=PoolMeta):
line.unit_price = d.price_index.get_price(Date.today(),line.unit,line.currency,True)
Line.save([line])
-class PriceComposition(ModelSQL,ModelView):
+class PriceComposition(metaclass=PoolMeta):
__name__ = 'price.composition'
- component = fields.Char("Component")
- price = fields.Numeric("Price")
-
+ sale_line = fields.Many2One('sale.line',"Sale line")
+
class SaleLine(metaclass=PoolMeta):
__name__ = 'sale.line'
@@ -594,7 +593,7 @@ class SaleLine(metaclass=PoolMeta):
)
pricing_rule = fields.Text("Pricing description")
- price_composition = fields.One2Many('price.composition',"Price composition")
+ price_composition = fields.One2Many('price.composition','sale_line',"Price composition")
@property
def report_fixing_rule(self):
From 683d3600acf94afaf5a8d6b433bd2aa4f66914ee Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Thu, 12 Mar 2026 10:56:52 +0100
Subject: [PATCH 448/618] 12.03.26
---
modules/purchase_trade/purchase.py | 1 +
1 file changed, 1 insertion(+)
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index 4f688a4..cfddb96 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -492,6 +492,7 @@ class Purchase(metaclass=PoolMeta):
Line.save([line])
class PriceComposition(ModelSQL,ModelView):
+ "Price Composition"
__name__ = 'price.composition'
line = fields.Many2One('purchase.line',"Purchase line")
From 8da50c72c76cc72b7dfd28e1a524b75f3eb91350 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Thu, 12 Mar 2026 11:39:43 +0100
Subject: [PATCH 449/618] 12.03.26
---
modules/purchase_trade/purchase.xml | 6 ++++++
modules/purchase_trade/view/price_composition_tree.xml | 4 ++++
modules/purchase_trade/view/sale_line_form.xml | 2 +-
3 files changed, 11 insertions(+), 1 deletion(-)
create mode 100644 modules/purchase_trade/view/price_composition_tree.xml
diff --git a/modules/purchase_trade/purchase.xml b/modules/purchase_trade/purchase.xml
index 679343a..bd2e24c 100755
--- a/modules/purchase_trade/purchase.xml
+++ b/modules/purchase_trade/purchase.xml
@@ -156,6 +156,12 @@ this repository contains the full copyright notices and license terms. -->
mtm_tree
+
+ price.composition
+ tree
+ price_composition_tree
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/purchase_trade/view/sale_line_form.xml b/modules/purchase_trade/view/sale_line_form.xml
index d428f62..9958482 100755
--- a/modules/purchase_trade/view/sale_line_form.xml
+++ b/modules/purchase_trade/view/sale_line_form.xml
@@ -54,7 +54,7 @@ this repository contains the full copyright notices and license terms. -->
-
+
From 8e8afe39d0033a7f3cf88f30a4dedaca4570600f Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Thu, 12 Mar 2026 14:44:04 +0100
Subject: [PATCH 450/618] 12.03.26
---
modules/sale/sale_final.fodt | 235 +++++++++++++++++++++--------------
1 file changed, 144 insertions(+), 91 deletions(-)
diff --git a/modules/sale/sale_final.fodt b/modules/sale/sale_final.fodt
index f66147c..80fa6af 100644
--- a/modules/sale/sale_final.fodt
+++ b/modules/sale/sale_final.fodt
@@ -1,10 +1,10 @@
- LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 Aksel Kamhi 2026-03-11T17:00:00Z 2026-03-11T22:17:20.799000000 2025-12-11T15:32:00Z 11 PT40M37S 0x010100C9130B1D3286474FB2D468C22F52A7B0
+ LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 Aksel Kamhi 2026-03-11T17:00:00Z 2026-03-12T14:43:31.619000000 2025-12-11T15:32:00Z 13 PT53M10S 0x010100C9130B1D3286474FB2D468C22F52A7B0
- 68806
+ 62883
0
24236
11721
@@ -13,12 +13,12 @@
view2
- 5904
- 53906
+ 10516
+ 68199
0
- 68806
+ 62883
24234
- 80525
+ 74602
0
0
false
@@ -91,7 +91,7 @@
false
false
false
- 2159149
+ 2217081
1803951
false
false
@@ -159,7 +159,7 @@
-
+
@@ -263,6 +263,10 @@
+
+
+
+
@@ -396,22 +400,19 @@
-
+
-
+
-
+
-
+
-
-
-
-
+
@@ -428,6 +429,12 @@
+
+
+
+
+
+
@@ -485,57 +492,93 @@
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -2358,14 +2401,14 @@
- COMMERCIAL INVOICE
+ COMMERCIAL INVOICE
- Invoice Nr: Date:
+ Invoice Nr: Date:
- <sale.report_deal> <format_date(sale.sale_date, sale.party.lang) if sale.sale_date else ''>
+ <sale.report_deal> <format_date(sale.sale_date, sale.party.lang) if sale.sale_date else ''>
- Order reference:
- <sale.reference or ''>
+ Order reference:
+ <sale.reference or ''>
@@ -2375,12 +2418,12 @@
- Buyer:
- <sale.party.rec_name>
- <'TAX ID: ' + sale.party.tax_identifier.code if sale.party.tax_identifier else ''>
- <for each="line in sale.report_address.splitlines()"> <line> </for>
-
-
+ Buyer:
+ <sale.party.rec_name>
+ <'TAX ID: ' + sale.party.tax_identifier.code if sale.party.tax_identifier else ''>
+ <for each="line in sale.report_address.splitlines()"> <line> </for>
+
+
@@ -2390,12 +2433,12 @@
- Payment terms:
- <sale.payment_term.description if sale.payment_term else ''>
+ Payment terms:
+ <sale.payment_term.description if sale.payment_term else ''>
Bank: UBS SWITZERLAND AG
- Case Postale
- CH-1211 Genève 2
+ Case Postale
+ CH-1211 Genève 2
IBAN : CH36 0021 5215 2487 7461 D
SwifT Code: UBSWCHZH80A
@@ -2406,33 +2449,33 @@
- Shipment date:
- <format_date(sale.sale_date, sale.party.lang) if sale.sale_date else ''>
+ Shipment date:
+ <format_date(sale.sale_date, sale.party.lang) if sale.sale_date else ''>
- Transportation:
- <sale.report_shipment>
+ Transportation:
+ <sale.report_shipment>
- Terms of delivery:
- <sale.incoterm.code if sale.incoterm else ''>
+ Terms of delivery:
+ <sale.incoterm.code if sale.incoterm else ''>
- From:
- <sale.from_location.name if sale.from_location else ''>
+ From:
+ <sale.from_location.name if sale.from_location else ''>
- To:
- <sale.to_location.name if sale.to_location else ''>
+ To:
+ <sale.to_location.name if sale.to_location else ''>
- Origin:
- <sale.origin>
+ Origin:
+ <sale.origin>
@@ -2442,40 +2485,33 @@
-
- Quantity
+ Quantity
-
+ Goods Description
- Goods Description
+ Unit Price / mt
- Unit Price / mt
-
-
- US Dollar Amount
+ US Dollar Amount
- <sale.lines[0].quantity> <sale.lines[0].unit.rec_name.upper() if sale.lines and sale.lines[0].unit else ''>
+ <sale.lines[0].quantity> <sale.lines[0].unit.rec_name.upper() if sale.lines and sale.lines[0].unit else ''>
+ <sale.lines[0].product.name if sale.lines[0].product else ''>
- <sale.lines[0].product.name if sale.lines[0].product else ''>
-
+ <format_currency(sale.lines[0].unit_price, sale.party.lang, sale.currency) if sale.lines else ''>
- <format_currency(sale.lines[0].unit_price, sale.party.lang, sale.currency) if sale.lines else ''>
-
-
- <format_currency(sale.lines[0].amount, sale.party.lang, sale.currency)>
+ <format_currency(sale.lines[0].amount, sale.party.lang, sale.currency)>
@@ -2483,17 +2519,10 @@
+
- FOB Value in USD
-
-
-
-
-
-
-
- FREIGHT Value in USD
+ <if test="sale.lines[0].price_composition">
@@ -2501,34 +2530,58 @@
- INSURANCE Value in USD
+ <for each="pc in sale.lines[0].price_composition">
-
+
- Total CIF Value in USD
+ <pc.component> Value in <sale.currency>
- <format_currency(sale.lines[0].amount, sale.party.lang, sale.currency)>
+ <pc.price>
+
+
+
+
+ </for>
+
+
+
+
+
+
+
+ </if>
+
+
+
+
+
+
+
+ Total <sale.incoterm.code if sale.incoterm else ''> Value in <sale.currency>
+
+
+ <format_currency(sale.lines[0].amount, sale.party.lang, sale.currency)>
-
+
- Net weight: <sale.report_net or ''>
- Gross weight: <sale.report_gross or ''>
+ Net weight: <sale.report_net or ''>
+ Gross weight: <sale.report_gross or ''>
- Packaging: <sale.report_packing or ''>
+ Packaging: <sale.report_packing or ''>
From f0c1b8909eb165a5ca3511b377e027250a355580 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Thu, 12 Mar 2026 14:56:09 +0100
Subject: [PATCH 451/618] 12.03.26
---
modules/sale/sale_final.fodt | 157 +++++++++++++++++++----------------
1 file changed, 87 insertions(+), 70 deletions(-)
diff --git a/modules/sale/sale_final.fodt b/modules/sale/sale_final.fodt
index 80fa6af..24272d4 100644
--- a/modules/sale/sale_final.fodt
+++ b/modules/sale/sale_final.fodt
@@ -1,10 +1,10 @@
- LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 Aksel Kamhi 2026-03-11T17:00:00Z 2026-03-12T14:43:31.619000000 2025-12-11T15:32:00Z 13 PT53M10S 0x010100C9130B1D3286474FB2D468C22F52A7B0
+ LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 Aksel Kamhi 2026-03-11T17:00:00Z 2026-03-12T14:55:45.221000000 2025-12-11T15:32:00Z 16 PT58M54S 0x010100C9130B1D3286474FB2D468C22F52A7B0
- 62883
+ 49553
0
24236
11721
@@ -13,12 +13,12 @@
view2
- 10516
- 68199
+ 4461
+ 53765
0
- 62883
+ 49553
24234
- 74602
+ 61272
0
0
false
@@ -91,7 +91,7 @@
false
false
false
- 2217081
+ 2303505
1803951
false
false
@@ -159,7 +159,7 @@
-
+
@@ -470,41 +470,39 @@
-
-
-
+
+
+
-
-
+
+
-
+
+
+
+
+
+
+
+
+
-
+
-
-
-
-
-
-
-
+
-
-
-
-
@@ -513,11 +511,33 @@
-
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -550,33 +570,30 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
@@ -2404,11 +2421,11 @@
COMMERCIAL INVOICE
Invoice Nr: Date:
-
+
<sale.report_deal> <format_date(sale.sale_date, sale.party.lang) if sale.sale_date else ''>
Order reference:
- <sale.reference or ''>
+ <sale.reference or ''>
@@ -2436,12 +2453,12 @@
Payment terms:
<sale.payment_term.description if sale.payment_term else ''>
- Bank: UBS SWITZERLAND AG
+ Bank: UBS SWITZERLAND AG
Case Postale
CH-1211 Genève 2
- IBAN : CH36 0021 5215 2487 7461 D
- SwifT Code: UBSWCHZH80A
+ IBAN : CH36 0021 5215 2487 7461 D
+ SwifT Code: UBSWCHZH80A
@@ -2471,7 +2488,7 @@
To:
- <sale.to_location.name if sale.to_location else ''>
+ <sale.to_location.name if sale.to_location else ''>
Origin:
@@ -2487,31 +2504,31 @@
- Quantity
+ Quantity
- Goods Description
+ Goods Description
- Unit Price / mt
+ Unit Price / mt
- US Dollar Amount
+ US Dollar Amount
- <sale.lines[0].quantity> <sale.lines[0].unit.rec_name.upper() if sale.lines and sale.lines[0].unit else ''>
+ <format_number_symbol(sale.lines[0].quantity, sale.party.lang, sale.lines[0].unit, digits=2)>
- <sale.lines[0].product.name if sale.lines[0].product else ''>
-
+ <sale.lines[0].product.name if sale.lines[0].product else ''>
+
- <format_currency(sale.lines[0].unit_price, sale.party.lang, sale.currency) if sale.lines else ''>
+ <format_currency(sale.lines[0].unit_price, sale.party.lang, sale.currency) if sale.lines else ''>
- <format_currency(sale.lines[0].amount, sale.party.lang, sale.currency)>
+ <format_currency(sale.lines[0].amount, sale.party.lang, sale.currency)>
@@ -2522,7 +2539,7 @@
- <if test="sale.lines[0].price_composition">
+ <if test="sale.lines[0].price_composition">
@@ -2530,7 +2547,7 @@
- <for each="pc in sale.lines[0].price_composition">
+ <for each="pc in sale.lines[0].price_composition">
@@ -2538,10 +2555,10 @@
- <pc.component> Value in <sale.currency>
+ <pc.component> Value in <sale.currency.name>
- <pc.price>
+ <format_currency(pc.price, sale.party.lang, sale.currency)>
@@ -2562,7 +2579,7 @@
- Total <sale.incoterm.code if sale.incoterm else ''> Value in <sale.currency>
+ Total <sale.incoterm.code if sale.incoterm else ''> Value in <sale.currency.name>
<format_currency(sale.lines[0].amount, sale.party.lang, sale.currency)>
@@ -2578,8 +2595,8 @@
- Net weight: <sale.report_net or ''>
- Gross weight: <sale.report_gross or ''>
+ Net weight: <sale.report_net or ''> <sale.lines[0].unit.rec_name.upper() if sale.lines and sale.lines[0].unit else ''>
+ Gross weight: <sale.report_gross or ''> <sale.lines[0].unit.rec_name.upper() if sale.lines and sale.lines[0].unit else ''>
Packaging: <sale.report_packing or ''>
From ad58d40da77ba9e1ca69fc7e288cdae2c49a878a Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Thu, 12 Mar 2026 15:14:03 +0100
Subject: [PATCH 452/618] 12.03.26
---
modules/sale/sale_final.fodt | 226 ++++++++++++++++++-----------------
1 file changed, 115 insertions(+), 111 deletions(-)
diff --git a/modules/sale/sale_final.fodt b/modules/sale/sale_final.fodt
index 24272d4..e6e9b18 100644
--- a/modules/sale/sale_final.fodt
+++ b/modules/sale/sale_final.fodt
@@ -1,10 +1,10 @@
- LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 Aksel Kamhi 2026-03-11T17:00:00Z 2026-03-12T14:55:45.221000000 2025-12-11T15:32:00Z 16 PT58M54S 0x010100C9130B1D3286474FB2D468C22F52A7B0
+ LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 Aksel Kamhi 2026-03-11T17:00:00Z 2026-03-12T15:13:33.798000000 2025-12-11T15:32:00Z 17 PT1H1M46S 0x010100C9130B1D3286474FB2D468C22F52A7B0
- 49553
+ 41102
0
24236
11721
@@ -13,12 +13,12 @@
view2
- 4461
- 53765
+ 13767
+ 48006
0
- 49553
+ 41102
24234
- 61272
+ 52821
0
0
false
@@ -91,7 +91,7 @@
false
false
false
- 2303505
+ 2351756
1803951
false
false
@@ -159,7 +159,7 @@
-
+
@@ -418,13 +418,13 @@
-
+
-
+
@@ -456,84 +456,92 @@
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
+
-
-
+
+
-
-
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
+
@@ -638,7 +646,7 @@
-
+
iVBORw0KGgoAAAANSUhEUgAAAgUAAAE2CAYAAADxmuGTAAAAAXNSR0IArs4c6QAAAARnQU1B
AACxjwv8YQUAAAAJcEhZcwAAIdUAACHVAQSctJ0AAP+lSURBVHhevL132GVFsT08Oc+8E2Ey
w2RABZEsQTKSJCjBRHRMXANwlSQqEocoIkrOYYhDBkWCJEVFgoJKUAQFRBCQJKP296yuXefU
@@ -2418,14 +2426,14 @@
- COMMERCIAL INVOICE
+ COMMERCIAL INVOICE
- Invoice Nr: Date:
-
- <sale.report_deal> <format_date(sale.sale_date, sale.party.lang) if sale.sale_date else ''>
+ Invoice Nr: Date:
+
+ <sale.report_deal> <format_date(sale.sale_date, sale.party.lang) if sale.sale_date else ''>
- Order reference:
- <sale.reference or ''>
+ Order reference:
+ <sale.reference or ''>
@@ -2435,13 +2443,12 @@
- Buyer:
- <sale.party.rec_name>
- <'TAX ID: ' + sale.party.tax_identifier.code if sale.party.tax_identifier else ''>
- <for each="line in sale.report_address.splitlines()"> <line> </for>
-
-
-
+ Buyer:
+ <sale.party.rec_name>
+ <'TAX ID: ' + sale.party.tax_identifier.code if sale.party.tax_identifier else ''>
+ <for each="line in sale.report_address.splitlines()"> <line> </for>
+
+
@@ -2450,49 +2457,47 @@
- Payment terms:
- <sale.payment_term.description if sale.payment_term else ''>
+ Payment terms:
+ <sale.payment_term.description if sale.payment_term else ''>
- Bank: UBS SWITZERLAND AG
- Case Postale
- CH-1211 Genève 2
-
- IBAN : CH36 0021 5215 2487 7461 D
- SwifT Code: UBSWCHZH80A
+ Bank: UBS SWITZERLAND AG
+ Case Postale
+ CH-1211 Genève 2
+ IBAN : CH36 0021 5215 2487 7461 D
+ SwifT Code: UBSWCHZH80A
- Shipment date:
- <format_date(sale.sale_date, sale.party.lang) if sale.sale_date else ''>
+ Shipment date:
+ <format_date(sale.sale_date, sale.party.lang) if sale.sale_date else ''>
- Transportation:
- <sale.report_shipment>
-
+ Transportation:
+ <sale.report_shipment>
- Terms of delivery:
- <sale.incoterm.code if sale.incoterm else ''>
+ Terms of delivery:
+ <sale.incoterm.code if sale.incoterm else ''>
- From:
- <sale.from_location.name if sale.from_location else ''>
+ From:
+ <sale.from_location.name if sale.from_location else ''>
- To:
- <sale.to_location.name if sale.to_location else ''>
+ To:
+ <sale.to_location.name if sale.to_location else ''>
- Origin:
- <sale.origin>
+ Origin:
+ <sale.origin>
@@ -2504,31 +2509,31 @@
- Quantity
+ Quantity
- Goods Description
+ Goods Description
- Unit Price / mt
+ Unit Price / mt
- US Dollar Amount
+ US Dollar Amount
- <format_number_symbol(sale.lines[0].quantity, sale.party.lang, sale.lines[0].unit, digits=2)>
+ <format_number_symbol(sale.lines[0].quantity, sale.party.lang, sale.lines[0].unit, digits=2)>
- <sale.lines[0].product.name if sale.lines[0].product else ''>
-
+ <sale.lines[0].product.name if sale.lines[0].product else ''>
+
- <format_currency(sale.lines[0].unit_price, sale.party.lang, sale.currency) if sale.lines else ''>
+ <format_currency(sale.lines[0].unit_price, sale.party.lang, sale.currency) if sale.lines else ''>
- <format_currency(sale.lines[0].amount, sale.party.lang, sale.currency)>
+ <format_currency(sale.lines[0].amount, sale.party.lang, sale.currency)>
@@ -2536,53 +2541,52 @@
-
- <if test="sale.lines[0].price_composition">
+ <if test="sale.lines[0].price_composition">
-
+
- <for each="pc in sale.lines[0].price_composition">
+ <for each="pc in sale.lines[0].price_composition">
-
+
- <pc.component> Value in <sale.currency.name>
+ <pc.component> Value in <sale.currency.name>
- <format_currency(pc.price, sale.party.lang, sale.currency)>
+ <format_currency(pc.price, sale.party.lang, sale.currency)>
- </for>
+ </for>
-
+
- </if>
+ </if>
-
+
- Total <sale.incoterm.code if sale.incoterm else ''> Value in <sale.currency.name>
+ Total <sale.incoterm.code if sale.incoterm else ''> Value in <sale.currency.name>
- <format_currency(sale.lines[0].amount, sale.party.lang, sale.currency)>
+ <format_currency(sale.lines[0].amount, sale.party.lang, sale.currency)>
@@ -2595,10 +2599,10 @@
- Net weight: <sale.report_net or ''> <sale.lines[0].unit.rec_name.upper() if sale.lines and sale.lines[0].unit else ''>
- Gross weight: <sale.report_gross or ''> <sale.lines[0].unit.rec_name.upper() if sale.lines and sale.lines[0].unit else ''>
+ Net weight: <format_number_symbol(sale.lines[0].report_net, sale.party.lang, sale.lines[0].unit, digits=2)>
+ Gross weight: <format_number_symbol(sale.lines[0].report_gross, sale.party.lang, sale.lines[0].unit, digits=2)>
- Packaging: <sale.report_packing or ''>
+ Packaging: <sale.report_packing or ''>
From 7f6b93094f3d1a9def4b7c17bd9ed7a814205ffb Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Thu, 12 Mar 2026 15:20:29 +0100
Subject: [PATCH 453/618] 12.03.26
---
modules/sale/sale_final.fodt | 70 +++++++++++++++++-------------------
1 file changed, 33 insertions(+), 37 deletions(-)
diff --git a/modules/sale/sale_final.fodt b/modules/sale/sale_final.fodt
index e6e9b18..3d612e0 100644
--- a/modules/sale/sale_final.fodt
+++ b/modules/sale/sale_final.fodt
@@ -1,24 +1,24 @@
- LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 Aksel Kamhi 2026-03-11T17:00:00Z 2026-03-12T15:13:33.798000000 2025-12-11T15:32:00Z 17 PT1H1M46S 0x010100C9130B1D3286474FB2D468C22F52A7B0
+ LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 Aksel Kamhi 2026-03-11T17:00:00Z 2026-03-12T15:19:52.845000000 2025-12-11T15:32:00Z 18 PT1H2M30S 0x010100C9130B1D3286474FB2D468C22F52A7B0
- 41102
+ 66160
0
24236
- 11721
+ 12222
true
false
view2
- 13767
- 48006
+ 6073
+ 69979
0
- 41102
+ 66160
24234
- 52821
+ 78380
0
0
false
@@ -91,7 +91,7 @@
false
false
false
- 2351756
+ 2423496
1803951
false
false
@@ -159,7 +159,7 @@
-
+
@@ -507,46 +507,42 @@
-
+
-
+
+
+
+
+
-
+
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
@@ -2426,10 +2422,10 @@
- COMMERCIAL INVOICE
+ COMMERCIAL INVOICE
Invoice Nr: Date:
-
+
<sale.report_deal> <format_date(sale.sale_date, sale.party.lang) if sale.sale_date else ''>
Order reference:
@@ -2460,12 +2456,12 @@
Payment terms:
<sale.payment_term.description if sale.payment_term else ''>
- Bank: UBS SWITZERLAND AG
+ Bank: UBS SWITZERLAND AG
Case Postale
CH-1211 Genève 2
- IBAN : CH36 0021 5215 2487 7461 D
- SwifT Code: UBSWCHZH80A
+ IBAN : CH36 0021 5215 2487 7461 D
+ SwifT Code: UBSWCHZH80A
@@ -2533,7 +2529,7 @@
<format_currency(sale.lines[0].unit_price, sale.party.lang, sale.currency) if sale.lines else ''>
- <format_currency(sale.lines[0].amount, sale.party.lang, sale.currency)>
+ <format_currency(sale.lines[0].amount, sale.party.lang, sale.currency)>
@@ -2543,7 +2539,7 @@
- <if test="sale.lines[0].price_composition">
+ <if test="sale.lines[0].price_composition">
@@ -2567,7 +2563,7 @@
- </for>
+ </for>
@@ -2575,7 +2571,7 @@
- </if>
+ </if>
@@ -2599,8 +2595,8 @@
- Net weight: <format_number_symbol(sale.lines[0].report_net, sale.party.lang, sale.lines[0].unit, digits=2)>
- Gross weight: <format_number_symbol(sale.lines[0].report_gross, sale.party.lang, sale.lines[0].unit, digits=2)>
+ Net weight: <format_number_symbol(sale.report_net, sale.party.lang, sale.lines[0].unit, digits=2)>
+ Gross weight: <format_number_symbol(sale.report_gross, sale.party.lang, sale.lines[0].unit, digits=2)>
Packaging: <sale.report_packing or ''>
From 0cf03a75b0de68f19e7af046a5f775bd3fccd5de Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Fri, 13 Mar 2026 10:24:54 +0100
Subject: [PATCH 454/618] 13.03.26
---
modules/purchase_trade/fee.py | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index e684f89..80583b6 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -66,12 +66,13 @@ class Fee(ModelSQL,ModelView):
quantity = fields.Numeric("Qt",digits='unit',states={'readonly': (Eval('mode') != 'ppack') | Bool(Eval('auto_calculation'))})
unit = fields.Many2One('product.uom',"Unit",domain=[
If(Eval('mode') == 'ppack',
- ('category', '=', 8),
+ ('category', '=', Eval('packing_category')),
()),
],
states={
- 'readonly': Eval('mode') != 'ppack',
+ 'readonly': (Eval('mode') != 'ppack' | Eval('mode') != 'perqt'),
})
+ packing_category = fields.Function(fields.Integer("Packing Category"),'get_packing_category')
inherit_shipment = fields.Boolean("Inh Sh",states={
'invisible': (Eval('shipment_in')),
})
@@ -109,6 +110,12 @@ class Fee(ModelSQL,ModelView):
if lqt:
return lqt[0].id
+ def get_packing_category(self, name):
+ UnitCategory = Pool().get('product.uom.category')
+ packing = UnitCategory.search(['name','=','Packing'])
+ if packing:
+ return packing[0].id
+
@fields.depends('line','sale_line','shipment_in','lots','price','unit','auto_calculation','mode','_parent_line.unit','_parent_line.lots','_parent_sale_line.unit','_parent_sale_line.lots')
def on_change_with_quantity(self, name=None):
qt = None
From 016112a355c1cac6934552487ed3a2da13e24e22 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Fri, 13 Mar 2026 10:43:58 +0100
Subject: [PATCH 455/618] 13.03.26
---
modules/purchase_trade/fee.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index 80583b6..1bf136f 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -70,7 +70,7 @@ class Fee(ModelSQL,ModelView):
()),
],
states={
- 'readonly': (Eval('mode') != 'ppack' | Eval('mode') != 'perqt'),
+ 'readonly': (Eval('mode') != 'ppack' & Eval('mode') != 'perqt'),
})
packing_category = fields.Function(fields.Integer("Packing Category"),'get_packing_category')
inherit_shipment = fields.Boolean("Inh Sh",states={
From cc5f4da38c3f4287f8b29a9571198552024996c2 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Fri, 13 Mar 2026 14:28:23 +0100
Subject: [PATCH 456/618] 13.03.26
---
modules/purchase_trade/fee.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index 1bf136f..d9d64ec 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -70,7 +70,7 @@ class Fee(ModelSQL,ModelView):
()),
],
states={
- 'readonly': (Eval('mode') != 'ppack' & Eval('mode') != 'perqt'),
+ 'readonly': (Bool(Eval('mode') != 'ppack') & Bool(Eval('mode') != 'perqt')),
})
packing_category = fields.Function(fields.Integer("Packing Category"),'get_packing_category')
inherit_shipment = fields.Boolean("Inh Sh",states={
From b20b0c8df67ad016507ade340232cf3600f6c026 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Fri, 13 Mar 2026 14:47:13 +0100
Subject: [PATCH 457/618] 13.03.26
---
modules/lot/lot.py | 10 ++++++----
modules/purchase_trade/fee.py | 4 ++--
2 files changed, 8 insertions(+), 6 deletions(-)
diff --git a/modules/lot/lot.py b/modules/lot/lot.py
index 92ce710..e192ccc 100755
--- a/modules/lot/lot.py
+++ b/modules/lot/lot.py
@@ -510,15 +510,17 @@ class Lot(ModelSQL, ModelView):
# else:
# return self.get_virtual_diff()
- def get_current_quantity_converted(self,state_id=0,name=None):
+ def get_current_quantity_converted(self,state_id=0,unit=None):
Uom = Pool().get('product.uom')
- unit = self.line.unit if self.line else self.sale_line.unit
+ if not unit:
+ unit = self.line.unit if self.line else self.sale_line.unit
qt, gross_qt = self.get_hist_quantity(state_id)
return round(Decimal(Uom.compute_qty(self.lot_unit_line, float(qt), unit)),5)
- def get_current_gross_quantity_converted(self,state_id=0,name=None):
+ def get_current_gross_quantity_converted(self,state_id=0,unit=None):
Uom = Pool().get('product.uom')
- unit = self.line.unit if self.line else self.sale_line.unit
+ if not unit:
+ unit = self.line.unit if self.line else self.sale_line.unit
qt, gross_qt = self.get_hist_quantity(state_id)
return round(Decimal(Uom.compute_qty(self.lot_unit_line, float(gross_qt), unit)),5)
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index d9d64ec..66a5f6e 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -367,7 +367,7 @@ class Fee(ModelSQL,ModelView):
sm = StockMove.search(['shipment','=','stock.shipment.in,'+str(self.shipment_in.id)])
if sm:
unique_lots = {e.lot for e in sm if e.lot}
- return round(self.price * Decimal(sum([e.get_current_quantity_converted() for e in unique_lots])) * sign,2)
+ return round(self.price * Decimal(sum([e.get_current_quantity_converted(0,self.unit) for e in unique_lots])) * sign,2)
LotQt = Pool().get('lot.qt')
lqts = LotQt.search(['lot_shipment_in','=',self.shipment_in.id])
if lqts:
@@ -415,7 +415,7 @@ class Fee(ModelSQL,ModelView):
FeeLots = Pool().get('fee.lots')
fee_lots = FeeLots.search([('fee', '=', self.id)])
if fee_lots:
- qt = sum([e.lot.get_current_quantity_converted(state_id) for e in fee_lots])
+ qt = sum([e.lot.get_current_quantity_converted(state_id,self.unit) for e in fee_lots])
logger.info("GET_FEE_LOTS_QT:%s",qt)
return qt
From 73fdbe9eba22c7fb43d114afbc1cafb74e098a8e Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Fri, 13 Mar 2026 14:51:55 +0100
Subject: [PATCH 458/618] 13.03.26
---
modules/purchase_trade/fee.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index 66a5f6e..9a91da9 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -153,7 +153,7 @@ class Fee(ModelSQL,ModelView):
@fields.depends('price','mode','_parent_line.lots','_parent_sale_line.lots','shipment_in')
def on_change_with_unit(self, name=None):
- if self.mode != 'ppack':
+ if self.mode != 'ppack' and self.mode != 'perqt':
line = self.line
if not line:
line = self.sale_line
From c3494418743a382f4b24fe2ff6a3985d43cefc68 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Fri, 13 Mar 2026 14:58:00 +0100
Subject: [PATCH 459/618] 13.03.26
---
modules/purchase_trade/fee.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index 9a91da9..216b48f 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -126,7 +126,7 @@ class Fee(ModelSQL,ModelView):
line = self.sale_line
if line:
if line.lots:
- qt = sum([e.get_current_quantity() for e in line.lots])
+ qt = sum([e.get_current_quantity_converted(0,self.unit) for e in line.lots])
unit = line.lots[0].lot_unit_line
logger.info("ON_CHANGE_WITH_QT0:%s",qt)
if self.shipment_in:
@@ -134,7 +134,7 @@ class Fee(ModelSQL,ModelView):
lots = Lot.search([('lot_shipment_in','=',self.shipment_in.id)])
logger.info("ON_CHANGE_WITH_LOTS:%s",lots)
if lots:
- qt = sum([e.get_current_quantity() for e in lots])
+ qt = sum([e.get_current_quantity_converted(0,self.unit) for e in lots])
unit = lots[0].lot_unit_line
if not qt:
logger.info("ON_CHANGE_WITH_QT1:%s",qt)
From b6e85ee7102853c24b5181da2e22c87e2da06354 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 15 Mar 2026 10:58:53 +0100
Subject: [PATCH 460/618] 15.03.26
---
modules/sale/sale_melya.fodt | 126 +++++++++++++++++++++++------------
1 file changed, 82 insertions(+), 44 deletions(-)
diff --git a/modules/sale/sale_melya.fodt b/modules/sale/sale_melya.fodt
index eaf27ca..29c89c1 100644
--- a/modules/sale/sale_melya.fodt
+++ b/modules/sale/sale_melya.fodt
@@ -1,24 +1,24 @@
- LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 2026-03-05T12:30:27.259000000 PT1H8M7S 13
+ LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 2026-03-15T10:58:25.084000000 PT1H20M7S 15
- 15639
+ 12372
0
36352
- 18404
+ 18332
true
false
view2
- 13427
- 23333
+ 9675
+ 18831
0
- 15639
+ 12372
36350
- 34041
+ 30702
0
0
false
@@ -91,7 +91,7 @@
false
false
false
- 2453530
+ 2526101
1822556
false
false
@@ -168,7 +168,7 @@
-
+
@@ -502,38 +502,35 @@
-
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
@@ -563,46 +560,82 @@
+
+
+
+
+
+
-
+
-
+
-
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -741,7 +774,7 @@
-
+
@@ -1631,7 +1664,7 @@
PROFORMA INVOICE
Proforma Nr: Date:
- <sale.full_number> <format_date(sale.sale_date, sale.party.lang) if sale.sale_date else ''>
+ <sale.report_deal> <format_date(sale.sale_date, sale.party.lang) if sale.sale_date else ''>
Buyer:
@@ -1654,9 +1687,10 @@
<sale.lines[0].quantity> <sale.lines[0].unit.rec_name.upper() if sale.lines and sale.lines[0].unit else ''>
-
-
- SHIPMENTSCHEDULE:
+
+ SHIPMENT SCHEDULE:
+
+
TOTAL QUANTITY:
@@ -1664,9 +1698,9 @@
<sale.lines[0].product.name if sale.lines and sale.lines[0].product else ''>
-
-
+
+
<sale.lines[0].del_period.month_name if sale.lines and sale.lines[0].del_period else ''>
<sale.lines[0].quantity> <sale.lines[0].unit.rec_name.upper() if sale.lines and sale.lines[0].unit else ''>
@@ -1677,9 +1711,14 @@
<format_currency(sale.lines[0].unit_price, sale.party.lang, sale.currency) if sale.lines else ''>
-
-
- TOTAL <sale.currency.name>
+
+
+
+
+
+
+
+ TOTAL <sale.currency.name>
Amount
@@ -1691,13 +1730,13 @@
+
+
<format_currency(sale.lines[0].amount, sale.party.lang, sale.currency)>
-
-
TOLERANCE: +/- <sale.tol_min> %
ORIGIN:<sale.comment>
@@ -1709,14 +1748,13 @@
PAYMENT TERMS:<sale.payment_term.description if sale.payment_term else ''>
-
DELIVERY IS SUBJECT TO THE DELIVERY BY OUR SUPPLIER.
Signed by :
(The Seller)
MELYA SA 13 RUE ROBERT CEARD CH-1204 GENEVA SWITZERLAND
-
+
</for>
From 319d8a4afb79464f5a7ce556cc7fa6d57decadff Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 15 Mar 2026 11:28:29 +0100
Subject: [PATCH 461/618] 15.03.26
---
modules/sale/sale_melya.fodt | 682 +++++++++++++++++------------------
1 file changed, 336 insertions(+), 346 deletions(-)
diff --git a/modules/sale/sale_melya.fodt b/modules/sale/sale_melya.fodt
index 29c89c1..c37b474 100644
--- a/modules/sale/sale_melya.fodt
+++ b/modules/sale/sale_melya.fodt
@@ -1,10 +1,10 @@
- LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 2026-03-15T10:58:25.084000000 PT1H20M7S 15
+ LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 2026-03-15T11:27:54.274000000 PT1H28M29S 17
- 12372
+ 2477
0
36352
18332
@@ -14,11 +14,11 @@
view2
9675
- 18831
+ 16999
0
- 12372
+ 2477
36350
- 30702
+ 20807
0
0
false
@@ -91,7 +91,7 @@
false
false
false
- 2526101
+ 2596590
1822556
false
false
@@ -168,7 +168,7 @@
-
+
@@ -312,7 +312,7 @@
-
+
@@ -323,6 +323,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
@@ -359,283 +371,259 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -676,86 +664,95 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
+
+
+
+
+
+
+
+
+
@@ -1664,18 +1661,18 @@
PROFORMA INVOICE
Proforma Nr: Date:
- <sale.report_deal> <format_date(sale.sale_date, sale.party.lang) if sale.sale_date else ''>
+ <sale.report_deal> <format_date(sale.sale_date, sale.party.lang) if sale.sale_date else ''>
Buyer:
- <sale.party.rec_name>
+ <sale.party.rec_name>
<for each="line in sale.report_address.splitlines()">
<line>
</for>
-
-
+
+
@@ -1683,60 +1680,53 @@
- Quantity
-
-
- <sale.lines[0].quantity> <sale.lines[0].unit.rec_name.upper() if sale.lines and sale.lines[0].unit else ''>
-
- SHIPMENT SCHEDULE:
-
-
- TOTAL QUANTITY:
+ Quantity
- Goods Description
-
-
- <sale.lines[0].product.name if sale.lines and sale.lines[0].product else ''>
-
-
-
- <sale.lines[0].del_period.month_name if sale.lines and sale.lines[0].del_period else ''>
-
- <sale.lines[0].quantity> <sale.lines[0].unit.rec_name.upper() if sale.lines and sale.lines[0].unit else ''>
-
+ Goods Description
- Unit Price
-
-
- <format_currency(sale.lines[0].unit_price, sale.party.lang, sale.currency) if sale.lines else ''>
-
-
-
-
-
-
-
- TOTAL <sale.currency.name>
+ Unit Price
- Amount
-
-
- <format_currency(sale.lines[0].amount, sale.party.lang, sale.currency)>
-
-
-
-
-
-
-
- <format_currency(sale.lines[0].amount, sale.party.lang, sale.currency)>
+ Amount
+
+
+
+
+
+
+
+ <sale.lines[0].quantity> <sale.lines[0].unit.rec_name.upper() if sale.lines and sale.lines[0].unit else ''>
+
+
+
+
+
+ <sale.lines[0].product.name if sale.lines and sale.lines[0].product else ''>
+
+
+
+
+
+
+
+
+ <format_currency(sale.lines[0].unit_price, sale.party.lang, sale.currency) if sale.lines else ''>
+
+
+
+
+
+ <format_currency(sale.lines[0].amount, sale.party.lang, sale.currency)>
+
+
+ SHIPMENT SCHEDULE :<sale.lines[0].del_period.month_name if sale.lines and sale.lines[0].del_period else ''>
+
TOLERANCE: +/- <sale.tol_min> %
ORIGIN:<sale.comment>
@@ -1753,8 +1743,8 @@
Signed by :
(The Seller)
- MELYA SA 13 RUE ROBERT CEARD CH-1204 GENEVA SWITZERLAND
-
+ MELYA SA 13 RUE ROBERT CEARD CH-1204 GENEVA SWITZERLAND
+
</for>
From 93f0e6b0afbfbffb4d2acf558e24a525aafaefae Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 15 Mar 2026 11:45:42 +0100
Subject: [PATCH 462/618] 15.03.26
---
modules/purchase/purchase.py | 2 +
modules/purchase_trade/party.py | 1 +
modules/purchase_trade/view/party_form.xml | 3 +
modules/sale/sale.py | 2 +
modules/sale/sale_melya.fodt | 515 +++++++++++----------
5 files changed, 285 insertions(+), 238 deletions(-)
diff --git a/modules/purchase/purchase.py b/modules/purchase/purchase.py
index 57ab2fd..7378967 100755
--- a/modules/purchase/purchase.py
+++ b/modules/purchase/purchase.py
@@ -462,6 +462,8 @@ class Purchase(
self.tol_min = self.party.tol_min
if self.party.tol_max:
self.tol_max = self.party.tol_max
+ if self.party.origin:
+ self.product_origin = self.party.origin
if self.party.wb:
self.wb = self.party.wb
if self.party.association:
diff --git a/modules/purchase_trade/party.py b/modules/purchase_trade/party.py
index b7bfc42..6024a54 100755
--- a/modules/purchase_trade/party.py
+++ b/modules/purchase_trade/party.py
@@ -80,6 +80,7 @@ class Party(metaclass=PoolMeta):
tol_max = fields.Numeric("Tol + in %")
wb = fields.Many2One('purchase.weight.basis',"Weight basis")
association = fields.Many2One('purchase.association',"Association")
+ origin =fields.Char("Origin")
execution = fields.One2Many('party.execution','party',"")
sla = fields.One2Many('party.execution.sla','party', "Sla")
initial = fields.Char("Initials")
diff --git a/modules/purchase_trade/view/party_form.xml b/modules/purchase_trade/view/party_form.xml
index 7df457d..fe7f3a5 100755
--- a/modules/purchase_trade/view/party_form.xml
+++ b/modules/purchase_trade/view/party_form.xml
@@ -12,6 +12,9 @@
+
+
+
diff --git a/modules/sale/sale.py b/modules/sale/sale.py
index 5d64968..440ac1e 100755
--- a/modules/sale/sale.py
+++ b/modules/sale/sale.py
@@ -508,6 +508,8 @@ class Sale(
self.tol_max = self.party.tol_max
if self.party.wb:
self.wb = self.party.wb
+ if self.party.origin:
+ self.product_origin = self.party.origin
if self.party.association:
self.association = self.party.association
if self.party.sale_invoice_method:
diff --git a/modules/sale/sale_melya.fodt b/modules/sale/sale_melya.fodt
index c37b474..379da6f 100644
--- a/modules/sale/sale_melya.fodt
+++ b/modules/sale/sale_melya.fodt
@@ -1,10 +1,10 @@
- LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 2026-03-15T11:27:54.274000000 PT1H28M29S 17
+ LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 2026-03-15T11:45:11.486000000 PT1H33M41S 20
- 2477
+ 6592
0
36352
18332
@@ -13,12 +13,12 @@
view2
- 9675
- 16999
+ 16238
+ 15161
0
- 2477
+ 6592
36350
- 20807
+ 24922
0
0
false
@@ -91,7 +91,7 @@
false
false
false
- 2596590
+ 2838212
1822556
false
false
@@ -324,7 +324,7 @@
-
+
@@ -365,47 +365,44 @@
-
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
+
@@ -414,180 +411,177 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -596,34 +590,58 @@
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
-
-
-
-
@@ -661,98 +679,122 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -1661,18 +1703,18 @@
PROFORMA INVOICE
Proforma Nr: Date:
- <sale.report_deal> <format_date(sale.sale_date, sale.party.lang) if sale.sale_date else ''>
+ <sale.report_deal> <format_date(sale.sale_date, sale.party.lang) if sale.sale_date else ''>
Buyer:
- <sale.party.rec_name>
+ <sale.party.rec_name>
<for each="line in sale.report_address.splitlines()">
<line>
</for>
-
-
+
+
@@ -1680,56 +1722,53 @@
- Quantity
+ Quantity
- Goods Description
+ Goods Description
- Unit Price
+ Unit Price
- Amount
+ Amount
-
-
-
- <sale.lines[0].quantity> <sale.lines[0].unit.rec_name.upper() if sale.lines and sale.lines[0].unit else ''>
+
+
+ <sale.lines[0].quantity> <sale.lines[0].unit.rec_name.upper() if sale.lines and sale.lines[0].unit else ''>
-
-
-
- <sale.lines[0].product.name if sale.lines and sale.lines[0].product else ''>
-
-
-
+
+
+ <sale.lines[0].product.name if sale.lines and sale.lines[0].product else ''>
+
+
-
-
-
- <format_currency(sale.lines[0].unit_price, sale.party.lang, sale.currency) if sale.lines else ''>
+
+
+ <format_currency(sale.lines[0].unit_price, sale.party.lang, sale.currency) if sale.lines else ''>
-
-
-
- <format_currency(sale.lines[0].amount, sale.party.lang, sale.currency)>
+
+
+ <format_currency(sale.lines[0].amount, sale.party.lang, sale.currency)>
+ Total quantity : <sale.lines[0].quantity> <sale.lines[0].unit.rec_name.upper() if sale.lines and sale.lines[0].unit else ''>
+ Total amount: <format_currency(sale.lines[0].amount, sale.party.lang, sale.currency)>
- SHIPMENT SCHEDULE :<sale.lines[0].del_period.month_name if sale.lines and sale.lines[0].del_period else ''>
-
+ SHIPMENT SCHEDULE :<sale.lines[0].del_period.month_name if sale.lines and sale.lines[0].del_period else ''>
+
TOLERANCE: +/- <sale.tol_min> %
- ORIGIN:<sale.comment>
+ ORIGIN:<sale.product_origin>
TRANSPORTATION BY: VESSEL
@@ -1743,8 +1782,8 @@
Signed by :
(The Seller)
- MELYA SA 13 RUE ROBERT CEARD CH-1204 GENEVA SWITZERLAND
-
+ MELYA SA 13 RUE ROBERT CEARD CH-1204 GENEVA SWITZERLAND
+
</for>
From 4695a93e4422c12d5d67b7a311561af320863d62 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 15 Mar 2026 11:48:43 +0100
Subject: [PATCH 463/618] 15.03.26
---
modules/sale/sale_melya.fodt | 330 ++++++++++++++++++-----------------
1 file changed, 167 insertions(+), 163 deletions(-)
diff --git a/modules/sale/sale_melya.fodt b/modules/sale/sale_melya.fodt
index 379da6f..dced8f2 100644
--- a/modules/sale/sale_melya.fodt
+++ b/modules/sale/sale_melya.fodt
@@ -1,10 +1,10 @@
- LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 2026-03-15T11:45:11.486000000 PT1H33M41S 20
+ LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 2026-03-15T11:48:24.378000000 PT1H34M12S 21
- 6592
+ 7412
0
36352
18332
@@ -13,12 +13,12 @@
view2
- 16238
- 15161
+ 9675
+ 19380
0
- 6592
+ 7412
36350
- 24922
+ 25742
0
0
false
@@ -91,7 +91,7 @@
false
false
false
- 2838212
+ 2897627
1822556
false
false
@@ -168,7 +168,7 @@
-
+
@@ -642,6 +642,9 @@
+
+
+
@@ -664,136 +667,133 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -813,7 +813,7 @@
-
+
@@ -1702,19 +1702,19 @@
PROFORMA INVOICE
- Proforma Nr: Date:
- <sale.report_deal> <format_date(sale.sale_date, sale.party.lang) if sale.sale_date else ''>
+ Proforma Nr: Date:
+ <sale.report_deal> <format_date(sale.sale_date, sale.party.lang) if sale.sale_date else ''>
- Buyer:
- <sale.party.rec_name>
+ Buyer:
+ <sale.party.rec_name>
<for each="line in sale.report_address.splitlines()">
<line>
</for>
-
-
+
+
@@ -1722,49 +1722,53 @@
- Quantity
+ Quantity
- Goods Description
+ Goods Description
- Unit Price
+ Unit Price
- Amount
+ Amount
-
-
- <sale.lines[0].quantity> <sale.lines[0].unit.rec_name.upper() if sale.lines and sale.lines[0].unit else ''>
+
+
+ <sale.lines[0].quantity> <sale.lines[0].unit.rec_name.upper() if sale.lines and sale.lines[0].unit else ''>
-
-
- <sale.lines[0].product.name if sale.lines and sale.lines[0].product else ''>
-
-
+
+
+ <sale.lines[0].product.name if sale.lines and sale.lines[0].product else ''>
+
+
-
-
- <format_currency(sale.lines[0].unit_price, sale.party.lang, sale.currency) if sale.lines else ''>
+
+
+ <format_currency(sale.lines[0].unit_price, sale.party.lang, sale.currency) if sale.lines else ''>
-
-
- <format_currency(sale.lines[0].amount, sale.party.lang, sale.currency)>
+
+
+ <format_currency(sale.lines[0].amount, sale.party.lang, sale.currency)>
- Total quantity : <sale.lines[0].quantity> <sale.lines[0].unit.rec_name.upper() if sale.lines and sale.lines[0].unit else ''>
+ Total quantity : <sale.lines[0].quantity> <sale.lines[0].unit.rec_name.upper() if sale.lines and sale.lines[0].unit else ''>
- Total amount: <format_currency(sale.lines[0].amount, sale.party.lang, sale.currency)>
+ Total amount: <format_currency(sale.lines[0].amount, sale.party.lang, sale.currency)>
- SHIPMENT SCHEDULE :<sale.lines[0].del_period.month_name if sale.lines and sale.lines[0].del_period else ''>
+
+
+
+
+ SHIPMENT SCHEDULE :<sale.lines[0].del_period.month_name if sale.lines and sale.lines[0].del_period else ''>
TOLERANCE: +/- <sale.tol_min> %
@@ -1782,9 +1786,9 @@
Signed by :
(The Seller)
- MELYA SA 13 RUE ROBERT CEARD CH-1204 GENEVA SWITZERLAND
+ MELYA SA 13 RUE ROBERT CEARD CH-1204 GENEVA SWITZERLAND
- </for>
+ </for>
\ No newline at end of file
From fd3ce2188a6412861bcd813859aad64d1dd6a5c6 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 15 Mar 2026 11:59:15 +0100
Subject: [PATCH 464/618] 15.03.26
---
modules/sale/sale_melya.fodt | 31 +++++++++++++++++++------------
1 file changed, 19 insertions(+), 12 deletions(-)
diff --git a/modules/sale/sale_melya.fodt b/modules/sale/sale_melya.fodt
index dced8f2..ba23233 100644
--- a/modules/sale/sale_melya.fodt
+++ b/modules/sale/sale_melya.fodt
@@ -1,24 +1,24 @@
- LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 2026-03-15T11:48:24.378000000 PT1H34M12S 21
+ LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 2026-03-15T11:53:39.733000000 PT1H34M23S 22
- 7412
+ 13183
0
36352
- 18332
+ 17582
true
false
view2
- 9675
- 19380
+ 23507
+ 12368
0
- 7412
+ 13183
36350
- 25742
+ 30764
0
0
false
@@ -91,7 +91,7 @@
false
false
false
- 2897627
+ 3007738
1822556
false
false
@@ -168,7 +168,7 @@
-
+
@@ -642,8 +642,11 @@
-
-
+
+
+
+
+
@@ -1738,23 +1741,27 @@
+
<sale.lines[0].quantity> <sale.lines[0].unit.rec_name.upper() if sale.lines and sale.lines[0].unit else ''>
+
<sale.lines[0].product.name if sale.lines and sale.lines[0].product else ''>
-
+
+
<format_currency(sale.lines[0].unit_price, sale.party.lang, sale.currency) if sale.lines else ''>
+
<format_currency(sale.lines[0].amount, sale.party.lang, sale.currency)>
From 1d10591cf6c998536598c13da6b8a7919da3f518 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 15 Mar 2026 12:02:50 +0100
Subject: [PATCH 465/618] 15.03.26
---
modules/sale/sale_melya.fodt | 432 ++++++++++++++++++-----------------
1 file changed, 221 insertions(+), 211 deletions(-)
diff --git a/modules/sale/sale_melya.fodt b/modules/sale/sale_melya.fodt
index ba23233..703ae12 100644
--- a/modules/sale/sale_melya.fodt
+++ b/modules/sale/sale_melya.fodt
@@ -1,24 +1,24 @@
- LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 2026-03-15T11:53:39.733000000 PT1H34M23S 22
+ LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 2026-03-15T12:02:29.091000000 PT1H34M47S 23
- 13183
+ 0
0
36352
- 17582
+ 18404
true
false
view2
- 23507
- 12368
+ 20930
+ 16946
0
- 13183
+ 0
36350
- 30764
+ 18403
0
0
false
@@ -91,7 +91,7 @@
false
false
false
- 3007738
+ 3124462
1822556
false
false
@@ -168,7 +168,7 @@
-
+
@@ -432,222 +432,231 @@
-
+
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
+
-
-
-
-
-
-
-
-
+
+
-
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -1716,8 +1725,8 @@
</for>
-
+
@@ -1725,13 +1734,13 @@
- Quantity
+ Quantity
- Goods Description
+ Goods Description
- Unit Price
+ Unit Price
Amount
@@ -1739,37 +1748,38 @@
-
-
-
- <sale.lines[0].quantity> <sale.lines[0].unit.rec_name.upper() if sale.lines and sale.lines[0].unit else ''>
+
+
+
+ <sale.lines[0].quantity> <sale.lines[0].unit.rec_name.upper() if sale.lines and sale.lines[0].unit else ''>
+
-
-
- <sale.lines[0].product.name if sale.lines and sale.lines[0].product else ''>
-
-
+
+ <sale.lines[0].product.name if sale.lines and sale.lines[0].product else ''>
+
+
-
-
+
+
<format_currency(sale.lines[0].unit_price, sale.party.lang, sale.currency) if sale.lines else ''>
-
-
+
+
<format_currency(sale.lines[0].amount, sale.party.lang, sale.currency)>
- Total quantity : <sale.lines[0].quantity> <sale.lines[0].unit.rec_name.upper() if sale.lines and sale.lines[0].unit else ''>
+
+ Total quantity : <sale.lines[0].quantity> <sale.lines[0].unit.rec_name.upper() if sale.lines and sale.lines[0].unit else ''>
- Total amount: <format_currency(sale.lines[0].amount, sale.party.lang, sale.currency)>
+ Total amount: <format_currency(sale.lines[0].amount, sale.party.lang, sale.currency)>
@@ -1794,8 +1804,8 @@
Signed by :
(The Seller)
MELYA SA 13 RUE ROBERT CEARD CH-1204 GENEVA SWITZERLAND
-
- </for>
+
+ </for>
\ No newline at end of file
From 5b12e5f8db368e50b8f3d460c270714d808094c4 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 15 Mar 2026 13:06:10 +0100
Subject: [PATCH 466/618] 15.03.26
---
modules/sale/bill.fodt | 653 +++++++++++++++++++++++++++++++++++++++++
modules/sale/sale.xml | 12 +
2 files changed, 665 insertions(+)
create mode 100644 modules/sale/bill.fodt
diff --git a/modules/sale/bill.fodt b/modules/sale/bill.fodt
new file mode 100644
index 0000000..eecefb9
--- /dev/null
+++ b/modules/sale/bill.fodt
@@ -0,0 +1,653 @@
+
+
+
+
+ LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265
+ 2026-03-15T13:01:38.668000000 PT10M4S 1
+
+
+ 0
+ 0
+ 31487
+ 15713
+ true
+ false
+
+
+ view2
+ 6627
+ 7108
+ 0
+ 0
+ 31485
+ 15711
+ 0
+ 0
+ false
+ 140
+ 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
+ 1907347
+ 1907347
+ false
+ false
+ false
+ true
+ false
+ false
+ true
+ true
+ false
+ true
+ true
+ false
+ false
+ false
+ false
+ false
+ true
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ true
+ 0
+ true
+ false
+ false
+ true
+ 0
+ true
+ false
+ true
+ true
+ true
+ true
+ false
+ false
+ false
+ false
+ false
+ true
+
+ false
+ true
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <for each="sale in records">
+
+
+
+
+
+ Accepted by:
+
+
+
+
+
+
+
+
+
+
+
+ Per aval:
+
+
+
+
+
+
+
+
+ Geneva, <format_date(sale.sale_date, sale.party.lang)>
+
+
+ For
+
+
+ <format_currency(sale.lines[0].unit_price, sale.party.lang, sale.currency) if sale.lines else ''>
+
+
+
+
+
+
+
+
+ At / on <sale.payment_term.rec_name if sale.payment_term else ''>
+
+
+ for value received, please pay against this sole Bill of Exchange
+
+
+
+ to our order of Melya S.A., Switzerland, the amount of
+
+
+
+
+
+
+
+
+ effective payment to be made in <sale.currency.symbol if sale.currency else ''> only, without deduction for and free of any taxes, impost, levies or duties present or future of any nature under the laws of <sale.party.addresses[0].country.name if sale.party and sale.party.addresses else ''> or any political subdivision thereof or therein.
+
+
+
+
+
+ Payable at
+
+
+ <sale.party.addresses[0].city if sale.party and sale.party.addresses else ''>
+
+
+
+
+
+
+
+
+ Drawn on at
+
+
+ <sale.party.rec_name>
+
+
+
+
+
+
+
+
+
+
+
+
+ No
+
+
+
+
+
+ / Invoice No
+
+
+ <sale.full_number>
+
+
+ / D:
+
+
+ <sale.reference if sale.reference else ''>
+
+
+
+
+
+
+
+
+
+
+
+
+ </for>
+
+
+
\ No newline at end of file
diff --git a/modules/sale/sale.xml b/modules/sale/sale.xml
index aac96c6..032189b 100755
--- a/modules/sale/sale.xml
+++ b/modules/sale/sale.xml
@@ -410,6 +410,18 @@ this repository contains the full copyright notices and license terms. -->
+
+ Bill
+ sale.sale
+ sale.sale
+ sale/bill.fodt
+
+
+ form_print
+ sale.sale,-1
+
+
+
Sale (final)
sale.sale
From eadbbbbbc8be75f93725eee6d872a29a6838950e Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 15 Mar 2026 15:15:22 +0100
Subject: [PATCH 467/618] 15.03.26
---
modules/purchase/view/purchase_form.xml | 6 ------
modules/purchase_trade/view/purchase_form.xml | 9 +++++++++
modules/purchase_trade/view/sale_form.xml | 6 ++++++
modules/sale/view/sale_form.xml | 6 ------
4 files changed, 15 insertions(+), 12 deletions(-)
diff --git a/modules/purchase/view/purchase_form.xml b/modules/purchase/view/purchase_form.xml
index 534e4da..c5c69ee 100755
--- a/modules/purchase/view/purchase_form.xml
+++ b/modules/purchase/view/purchase_form.xml
@@ -17,12 +17,6 @@ this repository contains the full copyright notices and license terms. -->
-
-
-
-
-
-
diff --git a/modules/purchase_trade/view/purchase_form.xml b/modules/purchase_trade/view/purchase_form.xml
index 286af0f..d68642e 100755
--- a/modules/purchase_trade/view/purchase_form.xml
+++ b/modules/purchase_trade/view/purchase_form.xml
@@ -3,9 +3,15 @@
this repository contains the full copyright notices and license terms. -->
+
+
+
+
+
+
@@ -35,6 +41,9 @@ this repository contains the full copyright notices and license terms. -->
+
+
+
diff --git a/modules/purchase_trade/view/sale_form.xml b/modules/purchase_trade/view/sale_form.xml
index 83e64d1..e8bb142 100755
--- a/modules/purchase_trade/view/sale_form.xml
+++ b/modules/purchase_trade/view/sale_form.xml
@@ -3,9 +3,15 @@
this repository contains the full copyright notices and license terms. -->
+
+
+
+
+
+
diff --git a/modules/sale/view/sale_form.xml b/modules/sale/view/sale_form.xml
index cdf0f8f..bd32c5e 100755
--- a/modules/sale/view/sale_form.xml
+++ b/modules/sale/view/sale_form.xml
@@ -19,12 +19,6 @@ this repository contains the full copyright notices and license terms. -->
-
-
-
-
-
-
From 9330662b30a280276cf991c57e60f576f602aed4 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 15 Mar 2026 15:21:23 +0100
Subject: [PATCH 468/618] 15.03.26
---
modules/purchase_trade/view/purchase_form.xml | 2 +-
modules/purchase_trade/view/sale_form.xml | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/modules/purchase_trade/view/purchase_form.xml b/modules/purchase_trade/view/purchase_form.xml
index d68642e..b334e39 100755
--- a/modules/purchase_trade/view/purchase_form.xml
+++ b/modules/purchase_trade/view/purchase_form.xml
@@ -2,7 +2,7 @@
-
+
diff --git a/modules/purchase_trade/view/sale_form.xml b/modules/purchase_trade/view/sale_form.xml
index e8bb142..b27b8bb 100755
--- a/modules/purchase_trade/view/sale_form.xml
+++ b/modules/purchase_trade/view/sale_form.xml
@@ -2,7 +2,7 @@
-
+
From c2adc96fbf4a1b84a8d89c6e003c53cd78af030a Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 15 Mar 2026 15:26:56 +0100
Subject: [PATCH 469/618] 15.03.26
---
modules/purchase_trade/purchase.py | 1 +
1 file changed, 1 insertion(+)
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index cfddb96..18f2510 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -288,6 +288,7 @@ class Purchase(metaclass=PoolMeta):
our_reference = fields.Char("Our Reference")
company_visible = fields.Function(fields.Boolean("Visible"),'get_company_info')
lc_date = fields.Date("LC date")
+ product_origin = fields.Char("Origin")
def get_company_info(self,name):
return (self.company.party.name == 'MELYA')
From 8859ccad1aebe492b2e3c6ee333a7de705226c54 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 15 Mar 2026 15:53:38 +0100
Subject: [PATCH 470/618] 15.03.26
---
modules/purchase_trade/lot.py | 30 ++++++++++++++++++++++++++++--
1 file changed, 28 insertions(+), 2 deletions(-)
diff --git a/modules/purchase_trade/lot.py b/modules/purchase_trade/lot.py
index efb5f9f..9f42325 100755
--- a/modules/purchase_trade/lot.py
+++ b/modules/purchase_trade/lot.py
@@ -2631,6 +2631,17 @@ class LotInvoice(Wizard):
invoicing = StateTransition()
+ message = StateView(
+ 'purchase.create_prepayment.message',
+ 'purchase_trade.create_prepayment_message_form',
+ [
+ Button('OK', 'end', 'tryton-ok'),
+ Button('See Invoice', 'see_invoice', 'tryton-go-next'),
+ ]
+ )
+
+ see_invoice = StateAction('account_invoice.act_invoice_form')
+
def transition_start(self):
return 'inv'
@@ -2775,12 +2786,27 @@ class LotInvoice(Wizard):
continue
lots.append(lot)
+ invoice = None
if self.inv.type == 'purchase':
Purchase._process_invoice([purchase],lots,action,self.inv.pp_pur)
+ invoice = r.r_lot_p.invoice_line if r.r_lot_p.invoice_line else r.r_lot_p.invoice_line_prov
else:
if sale:
- Sale._process_invoice([sale],lots,action,self.inv.pp_sale)
- return 'end'
+ Sale._process_invoice([sale],lots,action,self.inv.pp_sale)
+ invoice = r.r_lot_p.invoice_line if r.r_lot_p.sale_invoice_line else r.r_lot_p.sale_invoice_line_prov
+ self.message.invoice = invoice
+
+ return 'message'
+
+ def default_message(self, fields):
+ return {
+ 'message': 'The invoice has been successfully created.',
+ }
+
+ def do_see_invoice(self, action):
+ action['views'].reverse() # pour ouvrir en form directement
+ logger.info("*************SEE_INVOICE******************:%s",self.message.invoice)
+ return action, {'res_id':self.message.invoice.id}
def end(self):
return 'reload'
From 8398a8c212cccfcc592217cf3ca6506d71303759 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 15 Mar 2026 15:59:16 +0100
Subject: [PATCH 471/618] 15.03.26
---
modules/purchase_trade/lot.py | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/modules/purchase_trade/lot.py b/modules/purchase_trade/lot.py
index 9f42325..ac12a41 100755
--- a/modules/purchase_trade/lot.py
+++ b/modules/purchase_trade/lot.py
@@ -2786,15 +2786,15 @@ class LotInvoice(Wizard):
continue
lots.append(lot)
- invoice = None
+ invoice_line = None
if self.inv.type == 'purchase':
Purchase._process_invoice([purchase],lots,action,self.inv.pp_pur)
- invoice = r.r_lot_p.invoice_line if r.r_lot_p.invoice_line else r.r_lot_p.invoice_line_prov
+ invoice_line = r.r_lot_p.invoice_line if r.r_lot_p.invoice_line else r.r_lot_p.invoice_line_prov
else:
if sale:
Sale._process_invoice([sale],lots,action,self.inv.pp_sale)
- invoice = r.r_lot_p.invoice_line if r.r_lot_p.sale_invoice_line else r.r_lot_p.sale_invoice_line_prov
- self.message.invoice = invoice
+ invoice_line = r.r_lot_p.invoice_line if r.r_lot_p.sale_invoice_line else r.r_lot_p.sale_invoice_line_prov
+ self.message.invoice = invoice_line.invoice
return 'message'
From 2183d8d5a4bf79b4e7669319bf45d001f971f314 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 16 Mar 2026 09:52:15 +0100
Subject: [PATCH 472/618] 16.03.26
---
modules/purchase_trade/sale.py | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/modules/purchase_trade/sale.py b/modules/purchase_trade/sale.py
index 541ec7c..3d022d2 100755
--- a/modules/purchase_trade/sale.py
+++ b/modules/purchase_trade/sale.py
@@ -365,7 +365,13 @@ class Sale(metaclass=PoolMeta):
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
+ info = ''
+ if shipment.bl_number:
+ info += ' B/L ' + shipment.bl_number
+ if shipment.supplier:
+ info += ' BY ' + shipment.supplier.name
+ if shipment.vessel:
+ info += ' (' + shipment.vessel.vessel_name + ')'
if shipment.container and shipment.container[0].container_no:
id = 1
for cont in shipment.container:
@@ -376,7 +382,7 @@ class Sale(metaclass=PoolMeta):
else:
info += ' unnamed'
id += 1
- info += ' (LOT ' + lot + ')'
+ # info += ' (LOT ' + lot + ')'
if shipment.note:
info += ' ' + shipment.note
return info
From 8e7f9648fc5b18f5493f95b0e12941ba7921b323 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 16 Mar 2026 10:06:58 +0100
Subject: [PATCH 473/618] 16.03.26
---
modules/purchase_trade/sale.py | 2 +-
modules/sale/sale_melya.fodt | 92 +++++++++++++++++++---------------
2 files changed, 53 insertions(+), 41 deletions(-)
diff --git a/modules/purchase_trade/sale.py b/modules/purchase_trade/sale.py
index 3d022d2..c29f90c 100755
--- a/modules/purchase_trade/sale.py
+++ b/modules/purchase_trade/sale.py
@@ -319,7 +319,7 @@ class Sale(metaclass=PoolMeta):
if line.lots:
nb_packing += sum([l.lot_qt for l in line.lots if l.lot_type == 'physic'])
if len(line.lots)>1:
- unit = line.lots[1].lot_unit_line.name
+ unit = line.lots[1].lot_unit.name
return str(int(nb_packing)) + unit
@property
diff --git a/modules/sale/sale_melya.fodt b/modules/sale/sale_melya.fodt
index 703ae12..4761c3b 100644
--- a/modules/sale/sale_melya.fodt
+++ b/modules/sale/sale_melya.fodt
@@ -1,24 +1,24 @@
- LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 2026-03-15T12:02:29.091000000 PT1H34M47S 23
+ LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 2026-03-16T10:02:22.847000000 PT1H36M2S 25
0
0
36352
- 18404
+ 18332
true
false
view2
- 20930
- 16946
+ 17179
+ 4613
0
0
36350
- 18403
+ 18330
0
0
false
@@ -91,7 +91,7 @@
false
false
false
- 3124462
+ 3230844
1822556
false
false
@@ -168,7 +168,7 @@
-
+
@@ -567,96 +567,99 @@
+
+
+
-
+
+
+
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
+
-
+
-
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
-
@@ -807,6 +810,15 @@
+
+
+
+
+
+
+
+
+
@@ -1715,7 +1727,7 @@
PROFORMA INVOICE
Proforma Nr: Date:
- <sale.report_deal> <format_date(sale.sale_date, sale.party.lang) if sale.sale_date else ''>
+ <sale.report_deal> <format_date(sale.sale_date, sale.party.lang) if sale.sale_date else ''>
Buyer:
@@ -1776,10 +1788,10 @@
-
- Total quantity : <sale.lines[0].quantity> <sale.lines[0].unit.rec_name.upper() if sale.lines and sale.lines[0].unit else ''>
+
+ Total quantity : <sale.lines[0].quantity> <sale.lines[0].unit.rec_name.upper() if sale.lines and sale.lines[0].unit else ''>
- Total amount: <format_currency(sale.lines[0].amount, sale.party.lang, sale.currency)>
+ Total amount: <format_currency(sale.lines[0].amount, sale.party.lang, sale.currency)>
From b4d09d3a695a9a9760e8a4c627643998511ae756 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 16 Mar 2026 10:23:13 +0100
Subject: [PATCH 474/618] 16.03.26
---
modules/purchase_trade/fee.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index 216b48f..4b13c7c 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -72,7 +72,7 @@ class Fee(ModelSQL,ModelView):
states={
'readonly': (Bool(Eval('mode') != 'ppack') & Bool(Eval('mode') != 'perqt')),
})
- packing_category = fields.Function(fields.Integer("Packing Category"),'get_packing_category')
+ packing_category = fields.Function(fields.Many2One('product.uom.category',"Packing Category"),'get_packing_category')
inherit_shipment = fields.Boolean("Inh Sh",states={
'invisible': (Eval('shipment_in')),
})
From bbd3d30b37cd96513871d6ab13284f829ea8a041 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 16 Mar 2026 10:32:27 +0100
Subject: [PATCH 475/618] 16.03.26
---
modules/purchase_trade/fee.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index 4b13c7c..89daccd 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -66,7 +66,7 @@ class Fee(ModelSQL,ModelView):
quantity = fields.Numeric("Qt",digits='unit',states={'readonly': (Eval('mode') != 'ppack') | Bool(Eval('auto_calculation'))})
unit = fields.Many2One('product.uom',"Unit",domain=[
If(Eval('mode') == 'ppack',
- ('category', '=', Eval('packing_category')),
+ ('category', '=', 8),
()),
],
states={
From c504b4b2d7e1a301f4277677607774daa91ab9fc Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 16 Mar 2026 10:41:50 +0100
Subject: [PATCH 476/618] 16.03.26
---
modules/lot/lot.py | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/modules/lot/lot.py b/modules/lot/lot.py
index e192ccc..606bce4 100755
--- a/modules/lot/lot.py
+++ b/modules/lot/lot.py
@@ -500,7 +500,7 @@ class Lot(ModelSQL, ModelView):
physic_sum = Decimal(0)
for l in line.lots:
if l.lot_type == 'physic' :
- physic_sum += round(Decimal(Uom.compute_qty(Uom(l.lot_unit_line),float(l.get_current_quantity()),l.line.unit)),5)
+ physic_sum += round(Decimal(Uom.compute_qty(Uom(l.lot_unit_line),float(l.get_current_quantity()),l.line.unit, True, 1, 1)),5)
return line.quantity_theorical - physic_sum
def get_current_quantity(self,name=None):
@@ -515,14 +515,14 @@ class Lot(ModelSQL, ModelView):
if not unit:
unit = self.line.unit if self.line else self.sale_line.unit
qt, gross_qt = self.get_hist_quantity(state_id)
- return round(Decimal(Uom.compute_qty(self.lot_unit_line, float(qt), unit)),5)
+ return round(Decimal(Uom.compute_qty(self.lot_unit_line, float(qt), unit, True, 1, 1)),5)
def get_current_gross_quantity_converted(self,state_id=0,unit=None):
Uom = Pool().get('product.uom')
if not unit:
unit = self.line.unit if self.line else self.sale_line.unit
qt, gross_qt = self.get_hist_quantity(state_id)
- return round(Decimal(Uom.compute_qty(self.lot_unit_line, float(gross_qt), unit)),5)
+ return round(Decimal(Uom.compute_qty(self.lot_unit_line, float(gross_qt), unit, True, 1, 1)),5)
def get_current_gross_quantity(self,name=None):
if self.lot_type == 'physic':
From 5fe0be5c590663ab2b1bace90855cea668e2dee8 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 16 Mar 2026 10:48:54 +0100
Subject: [PATCH 477/618] 16.03.26
---
modules/lot/lot.py | 21 ++++++++++++++++++---
1 file changed, 18 insertions(+), 3 deletions(-)
diff --git a/modules/lot/lot.py b/modules/lot/lot.py
index 606bce4..69ae16f 100755
--- a/modules/lot/lot.py
+++ b/modules/lot/lot.py
@@ -500,7 +500,12 @@ class Lot(ModelSQL, ModelView):
physic_sum = Decimal(0)
for l in line.lots:
if l.lot_type == 'physic' :
- physic_sum += round(Decimal(Uom.compute_qty(Uom(l.lot_unit_line),float(l.get_current_quantity()),l.line.unit, True, 1, 1)),5)
+ factor = None
+ rate = None
+ if l.lot_unit_line.category.id != l.line.unit.category.id:
+ factor = 1
+ rate = 1
+ physic_sum += round(Decimal(Uom.compute_qty(Uom(l.lot_unit_line),float(l.get_current_quantity()),l.line.unit, True, factor, rate)),5)
return line.quantity_theorical - physic_sum
def get_current_quantity(self,name=None):
@@ -515,14 +520,24 @@ class Lot(ModelSQL, ModelView):
if not unit:
unit = self.line.unit if self.line else self.sale_line.unit
qt, gross_qt = self.get_hist_quantity(state_id)
- return round(Decimal(Uom.compute_qty(self.lot_unit_line, float(qt), unit, True, 1, 1)),5)
+ factor = None
+ rate = None
+ if self.lot_unit_line.category.id != unit.category.id:
+ factor = 1
+ rate = 1
+ return round(Decimal(Uom.compute_qty(self.lot_unit_line, float(qt), unit, True, factor, rate)),5)
def get_current_gross_quantity_converted(self,state_id=0,unit=None):
Uom = Pool().get('product.uom')
if not unit:
unit = self.line.unit if self.line else self.sale_line.unit
qt, gross_qt = self.get_hist_quantity(state_id)
- return round(Decimal(Uom.compute_qty(self.lot_unit_line, float(gross_qt), unit, True, 1, 1)),5)
+ factor = None
+ rate = None
+ if self.lot_unit_line.category.id != unit.category.id:
+ factor = 1
+ rate = 1
+ return round(Decimal(Uom.compute_qty(self.lot_unit_line, float(gross_qt), unit, True, factor, rate)),5)
def get_current_gross_quantity(self,name=None):
if self.lot_type == 'physic':
From 5cf5ca520a7fcbc292d860d4d429ace25d9087fc Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 16 Mar 2026 10:59:28 +0100
Subject: [PATCH 478/618] 16.03.26
---
modules/purchase_trade/fee.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index 89daccd..5d451e2 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -170,7 +170,7 @@ class Fee(ModelSQL,ModelView):
if lots:
return lots[0].lot_unit_line
else:
- return None
+ return self.unit
def get_lots(self, name):
logger.info("GET_LOTS_LINE:%s",self.line)
From 72b71675ae6552657e195c5c87e0c2ce7ebb1586 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 16 Mar 2026 11:08:47 +0100
Subject: [PATCH 479/618] 16.03.26
---
modules/sale/sale_final.fodt | 18 ++++++++----------
1 file changed, 8 insertions(+), 10 deletions(-)
diff --git a/modules/sale/sale_final.fodt b/modules/sale/sale_final.fodt
index 3d612e0..42b523c 100644
--- a/modules/sale/sale_final.fodt
+++ b/modules/sale/sale_final.fodt
@@ -1,10 +1,10 @@
- LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 Aksel Kamhi 2026-03-11T17:00:00Z 2026-03-12T15:19:52.845000000 2025-12-11T15:32:00Z 18 PT1H2M30S 0x010100C9130B1D3286474FB2D468C22F52A7B0
+ LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 Aksel Kamhi 2026-03-11T17:00:00Z 2026-03-16T11:08:29.173000000 2025-12-11T15:32:00Z 19 PT1H3M1S 0x010100C9130B1D3286474FB2D468C22F52A7B0
- 66160
+ 66520
0
24236
12222
@@ -13,12 +13,12 @@
view2
- 6073
- 69979
+ 9888
+ 70831
0
- 66160
+ 66520
24234
- 78380
+ 78740
0
0
false
@@ -91,7 +91,7 @@
false
false
false
- 2423496
+ 2487280
1803951
false
false
@@ -159,7 +159,7 @@
-
+
@@ -2599,8 +2599,6 @@
Gross weight: <format_number_symbol(sale.report_gross, sale.party.lang, sale.lines[0].unit, digits=2)>
Packaging: <sale.report_packing or ''>
-
-
iVBORw0KGgoAAAANSUhEUgAAARwAAAC1CAYAAACNkEByAAAAAXNSR0IArs4c6QAAAARnQU1B
AACxjwv8YQUAAAAJcEhZcwAAIdUAACHVAQSctJ0AAHdDSURBVHhe5X13mBTF1jdpyTkusLvs
From 13770cc299decc14d5d4c5d721515ca4d26931dd Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 16 Mar 2026 14:15:42 +0100
Subject: [PATCH 480/618] 16.03.26
---
modules/purchase_trade/fee.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index 5d451e2..33a787c 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -66,7 +66,7 @@ class Fee(ModelSQL,ModelView):
quantity = fields.Numeric("Qt",digits='unit',states={'readonly': (Eval('mode') != 'ppack') | Bool(Eval('auto_calculation'))})
unit = fields.Many2One('product.uom',"Unit",domain=[
If(Eval('mode') == 'ppack',
- ('category', '=', 8),
+ ('category', '=', Eval('packing_category')),
()),
],
states={
@@ -114,7 +114,7 @@ class Fee(ModelSQL,ModelView):
UnitCategory = Pool().get('product.uom.category')
packing = UnitCategory.search(['name','=','Packing'])
if packing:
- return packing[0].id
+ return packing[0]
@fields.depends('line','sale_line','shipment_in','lots','price','unit','auto_calculation','mode','_parent_line.unit','_parent_line.lots','_parent_sale_line.unit','_parent_sale_line.lots')
def on_change_with_quantity(self, name=None):
From eac35b849f8e2a2475804e868c737378d1fa501b Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 16 Mar 2026 14:21:41 +0100
Subject: [PATCH 481/618] 16.03.26
---
modules/purchase_trade/view/fee_tree_sequence.xml | 1 +
1 file changed, 1 insertion(+)
diff --git a/modules/purchase_trade/view/fee_tree_sequence.xml b/modules/purchase_trade/view/fee_tree_sequence.xml
index 0e84426..6898350 100755
--- a/modules/purchase_trade/view/fee_tree_sequence.xml
+++ b/modules/purchase_trade/view/fee_tree_sequence.xml
@@ -7,6 +7,7 @@ this repository contains the full copyright notices and license terms. -->
+
From 498da9a7283cec0e457ded2cf3e27c7555e89954 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 16 Mar 2026 14:41:29 +0100
Subject: [PATCH 482/618] 16.03.26
---
modules/purchase_trade/fee.py | 40 +++++++++----------
.../purchase_trade/view/fee_tree_sequence.xml | 1 -
2 files changed, 20 insertions(+), 21 deletions(-)
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index 33a787c..8cfb937 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -151,26 +151,26 @@ class Fee(ModelSQL,ModelView):
if self.auto_calculation:
return (qt * Decimal(unit.factor) / Decimal(self.unit.factor)).to_integral_value(rounding=ROUND_UP)
- @fields.depends('price','mode','_parent_line.lots','_parent_sale_line.lots','shipment_in')
- def on_change_with_unit(self, name=None):
- if self.mode != 'ppack' and self.mode != 'perqt':
- line = self.line
- if not line:
- line = self.sale_line
- if line:
- if line.lots:
- if len(line.lots) == 1:
- return line.lots[0].lot_unit_line
- else:
- return line.lots[1].lot_unit_line
- if self.shipment_in:
- Lot = Pool().get('lot.lot')
- lots = Lot.search([('lot_shipment_in','=',self.shipment_in.id)])
- logger.info("ON_CHANGE_WITH_UNIT:%s",lots)
- if lots:
- return lots[0].lot_unit_line
- else:
- return self.unit
+ # @fields.depends('price','mode','_parent_line.lots','_parent_sale_line.lots','shipment_in')
+ # def on_change_with_unit(self, name=None):
+ # if self.mode != 'ppack' and self.mode != 'perqt':
+ # line = self.line
+ # if not line:
+ # line = self.sale_line
+ # if line:
+ # if line.lots:
+ # if len(line.lots) == 1:
+ # return line.lots[0].lot_unit_line
+ # else:
+ # return line.lots[1].lot_unit_line
+ # if self.shipment_in:
+ # Lot = Pool().get('lot.lot')
+ # lots = Lot.search([('lot_shipment_in','=',self.shipment_in.id)])
+ # logger.info("ON_CHANGE_WITH_UNIT:%s",lots)
+ # if lots:
+ # return lots[0].lot_unit_line
+ # else:
+ # return self.unit
def get_lots(self, name):
logger.info("GET_LOTS_LINE:%s",self.line)
diff --git a/modules/purchase_trade/view/fee_tree_sequence.xml b/modules/purchase_trade/view/fee_tree_sequence.xml
index 6898350..0e84426 100755
--- a/modules/purchase_trade/view/fee_tree_sequence.xml
+++ b/modules/purchase_trade/view/fee_tree_sequence.xml
@@ -7,7 +7,6 @@ this repository contains the full copyright notices and license terms. -->
-
From e78eb80d089d159fa987dd9ade56ec3cc1bbe3c8 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 16 Mar 2026 14:46:11 +0100
Subject: [PATCH 483/618] 16.03.26
---
modules/purchase_trade/fee.py | 44 +++++++++++++++++------------------
1 file changed, 22 insertions(+), 22 deletions(-)
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index 8cfb937..7445af2 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -72,7 +72,7 @@ class Fee(ModelSQL,ModelView):
states={
'readonly': (Bool(Eval('mode') != 'ppack') & Bool(Eval('mode') != 'perqt')),
})
- packing_category = fields.Function(fields.Many2One('product.uom.category',"Packing Category"),'get_packing_category')
+ packing_category = fields.Function(fields.Many2One('product.uom.category',"Packing Category"),'on_change_with_packing_category')
inherit_shipment = fields.Boolean("Inh Sh",states={
'invisible': (Eval('shipment_in')),
})
@@ -110,7 +110,7 @@ class Fee(ModelSQL,ModelView):
if lqt:
return lqt[0].id
- def get_packing_category(self, name):
+ def on_change_with_packing_category(self, name=None):
UnitCategory = Pool().get('product.uom.category')
packing = UnitCategory.search(['name','=','Packing'])
if packing:
@@ -151,26 +151,26 @@ class Fee(ModelSQL,ModelView):
if self.auto_calculation:
return (qt * Decimal(unit.factor) / Decimal(self.unit.factor)).to_integral_value(rounding=ROUND_UP)
- # @fields.depends('price','mode','_parent_line.lots','_parent_sale_line.lots','shipment_in')
- # def on_change_with_unit(self, name=None):
- # if self.mode != 'ppack' and self.mode != 'perqt':
- # line = self.line
- # if not line:
- # line = self.sale_line
- # if line:
- # if line.lots:
- # if len(line.lots) == 1:
- # return line.lots[0].lot_unit_line
- # else:
- # return line.lots[1].lot_unit_line
- # if self.shipment_in:
- # Lot = Pool().get('lot.lot')
- # lots = Lot.search([('lot_shipment_in','=',self.shipment_in.id)])
- # logger.info("ON_CHANGE_WITH_UNIT:%s",lots)
- # if lots:
- # return lots[0].lot_unit_line
- # else:
- # return self.unit
+ @fields.depends('price','mode','_parent_line.lots','_parent_sale_line.lots','shipment_in')
+ def on_change_with_unit(self, name=None):
+ if self.mode != 'ppack' and self.mode != 'perqt':
+ line = self.line
+ if not line:
+ line = self.sale_line
+ if line:
+ if line.lots:
+ if len(line.lots) == 1:
+ return line.lots[0].lot_unit_line
+ else:
+ return line.lots[1].lot_unit_line
+ if self.shipment_in:
+ Lot = Pool().get('lot.lot')
+ lots = Lot.search([('lot_shipment_in','=',self.shipment_in.id)])
+ logger.info("ON_CHANGE_WITH_UNIT:%s",lots)
+ if lots:
+ return lots[0].lot_unit_line
+ else:
+ return self.unit
def get_lots(self, name):
logger.info("GET_LOTS_LINE:%s",self.line)
From 3ad2ae2624b8e94c8de55030124cc2b70f07b9c4 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 16 Mar 2026 15:24:46 +0100
Subject: [PATCH 484/618] 16.03.26
---
modules/purchase_trade/fee.py | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index 7445af2..c186130 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -71,7 +71,8 @@ class Fee(ModelSQL,ModelView):
],
states={
'readonly': (Bool(Eval('mode') != 'ppack') & Bool(Eval('mode') != 'perqt')),
- })
+ }
+ depends=['mode', 'packing_category'],)
packing_category = fields.Function(fields.Many2One('product.uom.category',"Packing Category"),'on_change_with_packing_category')
inherit_shipment = fields.Boolean("Inh Sh",states={
'invisible': (Eval('shipment_in')),
From bbb88dbd2201b2cc6d2016904fb01780f76c788e Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 16 Mar 2026 15:26:08 +0100
Subject: [PATCH 485/618] 16.03.26
---
modules/purchase_trade/fee.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index c186130..77829cd 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -71,8 +71,8 @@ class Fee(ModelSQL,ModelView):
],
states={
'readonly': (Bool(Eval('mode') != 'ppack') & Bool(Eval('mode') != 'perqt')),
- }
- depends=['mode', 'packing_category'],)
+ },
+ depends=['mode', 'packing_category'])
packing_category = fields.Function(fields.Many2One('product.uom.category',"Packing Category"),'on_change_with_packing_category')
inherit_shipment = fields.Boolean("Inh Sh",states={
'invisible': (Eval('shipment_in')),
From 185f26f31be60ac2b60af71aa436739c904ec735 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 16 Mar 2026 15:40:19 +0100
Subject: [PATCH 486/618] 16.03.26
---
modules/purchase_trade/fee.py | 1 +
1 file changed, 1 insertion(+)
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index 77829cd..563c459 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -111,6 +111,7 @@ class Fee(ModelSQL,ModelView):
if lqt:
return lqt[0].id
+ @fields.depends('mode','unit')
def on_change_with_packing_category(self, name=None):
UnitCategory = Pool().get('product.uom.category')
packing = UnitCategory.search(['name','=','Packing'])
From 5bbd68448ad8dd8ac467d25d3e488d5b47436615 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 16 Mar 2026 18:38:15 +0100
Subject: [PATCH 487/618] 16.03.26
---
modules/purchase/purchase.py | 1 +
1 file changed, 1 insertion(+)
diff --git a/modules/purchase/purchase.py b/modules/purchase/purchase.py
index 7378967..a828a2b 100755
--- a/modules/purchase/purchase.py
+++ b/modules/purchase/purchase.py
@@ -1224,6 +1224,7 @@ class Line(sequence_ordered(), ModelSQL, ModelView):
If(Eval('type') != 'line',
('id', '=', None),
()),
+ ('type','=','goods')
],
states={
'invisible': Eval('type') != 'line',
From 07816b9cfe6616f57bad74178bc92694e18ba037 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 16 Mar 2026 19:19:32 +0100
Subject: [PATCH 488/618] 16.03.26
---
modules/purchase/purchase.py | 9 +++++--
modules/purchase_trade/purchase.py | 43 +++++++++++++++++++++++++-----
2 files changed, 43 insertions(+), 9 deletions(-)
diff --git a/modules/purchase/purchase.py b/modules/purchase/purchase.py
index a828a2b..420423a 100755
--- a/modules/purchase/purchase.py
+++ b/modules/purchase/purchase.py
@@ -89,14 +89,14 @@ class Purchase(
number = fields.Char("Number", readonly=True)
reference = fields.Char("Reference")
description = fields.Char('Description', size=None, states=_states)
- purchase_date = fields.Date('Purchase Date',
+ purchase_date = fields.Date('Purchase Date', required=True,
states={
'readonly': ~Eval('state').in_(['draft', 'quotation']),
'required': ~Eval('state').in_(
['draft', 'quotation', 'cancelled']),
})
payment_term = fields.Many2One(
- 'account.invoice.payment_term', "Payment Term", ondelete='RESTRICT',
+ 'account.invoice.payment_term', "Payment Term", required=True, ondelete='RESTRICT',
states={
'readonly': ~Eval('state').in_(['draft', 'quotation']),
})
@@ -389,6 +389,11 @@ class Purchase(
def default_state():
return 'draft'
+ @classmethod
+ def default_purchase_date(cls):
+ Date = Pool().get('ir.date')
+ return Date.today()
+
@classmethod
def default_currency(cls, **pattern):
pool = Pool()
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index 18f2510..9bff4d1 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -254,17 +254,17 @@ class Purchase(metaclass=PoolMeta):
__name__ = 'purchase.purchase'
btb = fields.Many2One('back.to.back',"Back to back")
- from_location = fields.Many2One('stock.location', 'From location',domain=[('type', "!=", 'customer')])
- to_location = fields.Many2One('stock.location', 'To location',domain=[('type', "!=", 'supplier')])
+ from_location = fields.Many2One('stock.location', 'From location', required=True,domain=[('type', "!=", 'customer')])
+ to_location = fields.Many2One('stock.location', 'To location', required=True,domain=[('type', "!=", 'supplier')])
shipment_in = fields.Many2One('stock.shipment.in','Purchases')
broker = fields.Many2One('party.party',"Broker",domain=[('categories.parent', 'child_of', [4])])
- tol_min = fields.Numeric("Tol - in %")
- tol_max = fields.Numeric("Tol + in %")
+ tol_min = fields.Numeric("Tol - in %", required=True)
+ tol_max = fields.Numeric("Tol + in %", required=True)
tol_min_qt = fields.Numeric("Tol -")
tol_max_qt = fields.Numeric("Tol +")
- certif = fields.Many2One('purchase.certification',"Certification",states={'invisible': Eval('company_visible'),})
- wb = fields.Many2One('purchase.weight.basis',"Weight basis")
- association = fields.Many2One('purchase.association',"Association",states={'invisible': Eval('company_visible'),})
+ certif = fields.Many2One('purchase.certification',"Certification", required=True,states={'invisible': Eval('company_visible'),})
+ wb = fields.Many2One('purchase.weight.basis',"Weight basis", required=True)
+ association = fields.Many2One('purchase.association',"Association", required=True,states={'invisible': Eval('company_visible'),})
crop = fields.Many2One('purchase.crop',"Crop",states={'invisible': Eval('company_visible'),})
pnl = fields.One2Many('valuation.valuation.dyn', 'r_purchase', 'Pnl',states={'invisible': ~Eval('group_pnl'),})
pnl_ = fields.One2Many('valuation.valuation.line', 'purchase', 'Pnl',states={'invisible': Eval('group_pnl'),})
@@ -293,6 +293,35 @@ class Purchase(metaclass=PoolMeta):
def get_company_info(self,name):
return (self.company.party.name == 'MELYA')
+ @classmethod
+ def default_wb(cls):
+ WB = Pool().get('purchase.weight.basis')
+ wb = WB.search(['id','>',0])
+ if wb:
+ return wb[0]
+
+ @classmethod
+ def default_certif(cls):
+ Certification = Pool().get('purchase.certification')
+ certification = Certification.search(['id','>',0])
+ if certification:
+ return certification[0]
+
+ @classmethod
+ def default_certif(cls):
+ Association = Pool().get('purchase.association')
+ association = Association.search(['id','>',0])
+ if association:
+ return association[0]
+
+ @classmethod
+ def default_tol_min(cls):
+ return 0
+
+ @classmethod
+ def default_tol_max(cls):
+ return 0
+
@property
def report_terms(self):
if self.lines:
From 3d80a6ba5e565509d3908844e11803794aadd660 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 16 Mar 2026 19:25:56 +0100
Subject: [PATCH 489/618] 16.03.26
---
modules/purchase_trade/purchase.py | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index 9bff4d1..85368a2 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -298,21 +298,21 @@ class Purchase(metaclass=PoolMeta):
WB = Pool().get('purchase.weight.basis')
wb = WB.search(['id','>',0])
if wb:
- return wb[0]
+ return wb[0].id
@classmethod
def default_certif(cls):
Certification = Pool().get('purchase.certification')
certification = Certification.search(['id','>',0])
if certification:
- return certification[0]
+ return certification[0].id
@classmethod
def default_certif(cls):
Association = Pool().get('purchase.association')
association = Association.search(['id','>',0])
if association:
- return association[0]
+ return association[0].id
@classmethod
def default_tol_min(cls):
From 59a6554fa3cc90c49cd434aa44c251d18b342f55 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 16 Mar 2026 19:35:22 +0100
Subject: [PATCH 490/618] 16.03.26
---
modules/incoterm/common.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/incoterm/common.py b/modules/incoterm/common.py
index 17eb2e6..c32adf9 100755
--- a/modules/incoterm/common.py
+++ b/modules/incoterm/common.py
@@ -12,7 +12,7 @@ __all__ = ['IncotermMixin', 'IncotermAvailableMixin']
class IncotermMixin(Model):
incoterm = fields.Many2One(
- 'incoterm.incoterm', lazy_gettext('incoterm.msg_incoterm'),
+ 'incoterm.incoterm', lazy_gettext('incoterm.msg_incoterm'), required=True,
ondelete='RESTRICT')
incoterm_location = fields.Many2One(
'party.address', lazy_gettext('incoterm.msg_incoterm_location'),
From 8881caccd0caf03bad5889a6e0ea9b2cf53343b7 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 16 Mar 2026 19:47:43 +0100
Subject: [PATCH 491/618] 16.03.26
---
modules/purchase_trade/lot.py | 19 ++++++++++---------
modules/purchase_trade/service.py | 1 +
.../view/contract_detail_tree.xml | 1 +
3 files changed, 12 insertions(+), 9 deletions(-)
diff --git a/modules/purchase_trade/lot.py b/modules/purchase_trade/lot.py
index ac12a41..d690810 100755
--- a/modules/purchase_trade/lot.py
+++ b/modules/purchase_trade/lot.py
@@ -3226,28 +3226,29 @@ class ContractDetail(ModelView):
category = fields.Integer("Category")
cd = fields.Many2One('contracts.start',"Contracts")
- party = fields.Many2One('party.party',"Party",domain=[('categories.parent', 'child_of', Eval('category'))],depends=['category'])
- currency = fields.Many2One('currency.currency',"Currency")
- incoterm = fields.Many2One('incoterm.incoterm',"Incoterm")
- quantity = fields.Numeric("Quantity",digits=(1,5))
- unit = fields.Many2One('product.uom',"Unit")
+ party = fields.Many2One('party.party',"Party", required=True,domain=[('categories.parent', 'child_of', Eval('category'))],depends=['category'])
+ currency = fields.Many2One('currency.currency',"Currency", required=True)
+ incoterm = fields.Many2One('incoterm.incoterm',"Incoterm", required=True)
+ quantity = fields.Numeric("Quantity",digits=(1,5), required=True)
+ unit = fields.Many2One('product.uom',"Unit", required=True)
qt_unit = fields.Many2One('product.uom',"Unit")
- tol_min = fields.Numeric("Tol - in %")
- tol_max = fields.Numeric("Tol + in %")
+ tol_min = fields.Numeric("Tol - in %", required=True)
+ tol_max = fields.Numeric("Tol + in %", required=True)
crop = fields.Many2One('purchase.crop',"Crop")
del_period = fields.Many2One('product.month',"Delivery Period")
from_del = fields.Date("From")
to_del = fields.Date("To")
- price = fields.Numeric("Price",digits=(1,4),states={'invisible': Eval('price_type') != 'priced'})
+ price = fields.Numeric("Price", required=True,digits=(1,4),states={'invisible': Eval('price_type') != 'priced'})
price_type = price_type = fields.Selection([
('cash', 'Cash Price'),
('priced', 'Priced'),
('basis', 'Basis'),
- ], 'Price type')
+ ], 'Price type', required=True)
currency_unit = fields.Selection('get_currency_unit',string="Curr/Unit")
reference = fields.Char("Reference")
from_location = fields.Many2One('stock.location',"From location")
to_location = fields.Many2One('stock.location',"To location")
+ payment_term = fields.Many2One('account.invoice.payment_term',"Payment Term", required=True)
@classmethod
def default_category(cls):
diff --git a/modules/purchase_trade/service.py b/modules/purchase_trade/service.py
index 927fa8d..2d9f929 100644
--- a/modules/purchase_trade/service.py
+++ b/modules/purchase_trade/service.py
@@ -53,6 +53,7 @@ class ContractFactory:
contract.crop = c.crop
contract.tol_min = c.tol_min
contract.tol_max = c.tol_max
+ contract.payment_term = c.payment_term
contract.reference = c.reference
contract.from_location = c.from_location
contract.to_location = c.to_location
diff --git a/modules/purchase_trade/view/contract_detail_tree.xml b/modules/purchase_trade/view/contract_detail_tree.xml
index af70bb1..6def8fc 100755
--- a/modules/purchase_trade/view/contract_detail_tree.xml
+++ b/modules/purchase_trade/view/contract_detail_tree.xml
@@ -9,6 +9,7 @@
+
From 1cedd11304adbb0fc1faa53101aaf36ec6efb7ab Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 16 Mar 2026 20:28:10 +0100
Subject: [PATCH 492/618] 16.03.26
---
modules/purchase_trade/purchase.py | 2 +-
modules/purchase_trade/sale.py | 38 +++++++++++++++++++++++-------
modules/sale/sale.py | 9 +++++--
3 files changed, 37 insertions(+), 12 deletions(-)
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index 85368a2..a320c22 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -308,7 +308,7 @@ class Purchase(metaclass=PoolMeta):
return certification[0].id
@classmethod
- def default_certif(cls):
+ def default_association(cls):
Association = Pool().get('purchase.association')
association = Association.search(['id','>',0])
if association:
diff --git a/modules/purchase_trade/sale.py b/modules/purchase_trade/sale.py
index c29f90c..9f004fc 100755
--- a/modules/purchase_trade/sale.py
+++ b/modules/purchase_trade/sale.py
@@ -233,15 +233,6 @@ class Sale(metaclass=PoolMeta):
tol_max = fields.Numeric("Tol + in %")
tol_min_qt = fields.Numeric("Tol -")
tol_max_qt = fields.Numeric("Tol +")
- # certification = fields.Selection([
- # (None, ''),
- # ('bci', 'BCI'),
- # ],"Certification")
- # weight_basis = fields.Selection([
- # (None, ''),
- # ('ncsw', 'NCSW'),
- # ('nlw', 'NLW'),
- # ], 'Weight basis')
certif = fields.Many2One('purchase.certification',"Certification",states={'invisible': Eval('company_visible'),})
wb = fields.Many2One('purchase.weight.basis',"Weight basis")
association = fields.Many2One('purchase.association',"Association",states={'invisible': Eval('company_visible'),})
@@ -265,6 +256,35 @@ class Sale(metaclass=PoolMeta):
def get_company_info(self,name):
return (self.company.party.name == 'MELYA')
+ @classmethod
+ def default_wb(cls):
+ WB = Pool().get('purchase.weight.basis')
+ wb = WB.search(['id','>',0])
+ if wb:
+ return wb[0].id
+
+ @classmethod
+ def default_certif(cls):
+ Certification = Pool().get('purchase.certification')
+ certification = Certification.search(['id','>',0])
+ if certification:
+ return certification[0].id
+
+ @classmethod
+ def default_association(cls):
+ Association = Pool().get('purchase.association')
+ association = Association.search(['id','>',0])
+ if association:
+ return association[0].id
+
+ @classmethod
+ def default_tol_min(cls):
+ return 0
+
+ @classmethod
+ def default_tol_max(cls):
+ return 0
+
@property
def report_terms(self):
if self.lines:
diff --git a/modules/sale/sale.py b/modules/sale/sale.py
index 440ac1e..3e64200 100755
--- a/modules/sale/sale.py
+++ b/modules/sale/sale.py
@@ -92,14 +92,14 @@ class Sale(
states={
'readonly': Eval('state') != 'draft',
})
- sale_date = fields.Date('Sale Date',
+ sale_date = fields.Date('Sale Date', required=True,
states={
'readonly': ~Eval('state').in_(['draft', 'quotation']),
'required': ~Eval('state').in_(
['draft', 'quotation', 'cancelled']),
})
payment_term = fields.Many2One(
- 'account.invoice.payment_term', "Payment Term", ondelete='RESTRICT',
+ 'account.invoice.payment_term', "Payment Term", required=True, ondelete='RESTRICT',
states={
'readonly': Eval('state') != 'draft',
})
@@ -443,6 +443,11 @@ class Sale(
@staticmethod
def default_state():
return 'draft'
+
+ @classmethod
+ def default_sale_date(cls):
+ Date = Pool().get('ir.date')
+ return Date.today()
@classmethod
def default_currency(cls, **pattern):
From 127a38f8579959cca46d123fc055fa5a0aa1a593 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 16 Mar 2026 20:34:16 +0100
Subject: [PATCH 493/618] 16.03.26
---
modules/purchase_trade/sale.py | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/modules/purchase_trade/sale.py b/modules/purchase_trade/sale.py
index 9f004fc..3cb488c 100755
--- a/modules/purchase_trade/sale.py
+++ b/modules/purchase_trade/sale.py
@@ -218,8 +218,8 @@ class Sale(metaclass=PoolMeta):
__name__ = 'sale.sale'
btb = fields.Many2One('back.to.back',"Back to back")
- from_location = fields.Many2One('stock.location', 'From location',domain=[('type', "!=", 'customer')])
- to_location = fields.Many2One('stock.location', 'To location',domain=[('type', "!=", 'supplier')])
+ from_location = fields.Many2One('stock.location', 'From location', required=True,domain=[('type', "!=", 'customer')])
+ to_location = fields.Many2One('stock.location', 'To location', required=True,domain=[('type', "!=", 'supplier')])
shipment_out = fields.Many2One('stock.shipment.out','Sales')
#pnl = fields.One2Many('valuation.valuation', 'sale', 'Pnl')
pnl = fields.One2Many('valuation.valuation.dyn', 'r_sale', 'Pnl',states={'invisible': ~Eval('group_pnl'),})
@@ -229,13 +229,13 @@ class Sale(metaclass=PoolMeta):
#plans = fields.One2Many('workflow.plan','sale',"Execution plans")
forex = fields.One2Many('forex.cover.physical.sale','contract',"Forex",readonly=True)
broker = fields.Many2One('party.party',"Broker",domain=[('categories.parent', 'child_of', [4])])
- tol_min = fields.Numeric("Tol - in %")
- tol_max = fields.Numeric("Tol + in %")
+ tol_min = fields.Numeric("Tol - in %", required=True)
+ tol_max = fields.Numeric("Tol + in %", required=True)
tol_min_qt = fields.Numeric("Tol -")
tol_max_qt = fields.Numeric("Tol +")
- certif = fields.Many2One('purchase.certification',"Certification",states={'invisible': Eval('company_visible'),})
- wb = fields.Many2One('purchase.weight.basis',"Weight basis")
- association = fields.Many2One('purchase.association',"Association",states={'invisible': Eval('company_visible'),})
+ certif = fields.Many2One('purchase.certification',"Certification", required=True,states={'invisible': Eval('company_visible'),})
+ wb = fields.Many2One('purchase.weight.basis',"Weight basis", required=True)
+ association = fields.Many2One('purchase.association',"Association", required=True,states={'invisible': Eval('company_visible'),})
crop = fields.Many2One('purchase.crop',"Crop",states={'invisible': Eval('company_visible'),})
viewer = fields.Function(fields.Text(""),'get_viewer')
doc_template = fields.Many2One('doc.template',"Template")
From eebcf936feca3b92e4891131154de08f38aefe18 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 16 Mar 2026 20:43:05 +0100
Subject: [PATCH 494/618] 16.03.26
---
modules/purchase/purchase.py | 3 ++-
modules/sale/sale.py | 3 ++-
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/modules/purchase/purchase.py b/modules/purchase/purchase.py
index 420423a..87b2c2c 100755
--- a/modules/purchase/purchase.py
+++ b/modules/purchase/purchase.py
@@ -741,6 +741,7 @@ class Purchase(
@classmethod
def copy(cls, purchases, default=None):
+ Date = Pool().get('ir.date')
if default is None:
default = {}
else:
@@ -749,7 +750,7 @@ class Purchase(
default.setdefault('invoice_state', 'none')
default.setdefault('invoices_ignored', None)
default.setdefault('shipment_state', 'none')
- default.setdefault('purchase_date', None)
+ default.setdefault('purchase_date', Date.today())
default.setdefault('quoted_by')
default.setdefault('confirmed_by')
default.setdefault('untaxed_amount_cache')
diff --git a/modules/sale/sale.py b/modules/sale/sale.py
index 3e64200..947b633 100755
--- a/modules/sale/sale.py
+++ b/modules/sale/sale.py
@@ -817,6 +817,7 @@ class Sale(
@classmethod
def copy(cls, sales, default=None):
+ Date = Pool().get('ir.date')
if default is None:
default = {}
else:
@@ -825,7 +826,7 @@ class Sale(
default.setdefault('invoice_state', 'none')
default.setdefault('invoices_ignored', None)
default.setdefault('shipment_state', 'none')
- default.setdefault('sale_date', None)
+ default.setdefault('sale_date', Date.today())
default.setdefault('quoted_by')
default.setdefault('confirmed_by')
default.setdefault('untaxed_amount_cache')
From 32b48cf6d1061e9faf28d5d03d0468f38845fc52 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 16 Mar 2026 21:01:43 +0100
Subject: [PATCH 495/618] 16.03.26
---
modules/incoterm/common.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/incoterm/common.py b/modules/incoterm/common.py
index c32adf9..d63c556 100755
--- a/modules/incoterm/common.py
+++ b/modules/incoterm/common.py
@@ -12,7 +12,7 @@ __all__ = ['IncotermMixin', 'IncotermAvailableMixin']
class IncotermMixin(Model):
incoterm = fields.Many2One(
- 'incoterm.incoterm', lazy_gettext('incoterm.msg_incoterm'), required=True,
+ 'incoterm.incoterm', lazy_gettext('incoterm.msg_incoterm'), required=False,
ondelete='RESTRICT')
incoterm_location = fields.Many2One(
'party.address', lazy_gettext('incoterm.msg_incoterm_location'),
From f32cce61778c7c7455bc856febb2d500fc5e1e96 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 16 Mar 2026 21:33:57 +0100
Subject: [PATCH 496/618] 16.03.26
---
modules/purchase_trade/lot.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/purchase_trade/lot.py b/modules/purchase_trade/lot.py
index d690810..afeb73d 100755
--- a/modules/purchase_trade/lot.py
+++ b/modules/purchase_trade/lot.py
@@ -203,7 +203,7 @@ class Lot(metaclass=PoolMeta):
)
pivot_data['options'] = {
- "rows": ["lot","ct type","event_date","event","move","curr","rate"],
+ "rows": ["lot","ct type","event_date","event","move","Curr","rate"],
"cols": ["account"],
"aggregatorName": "Sum",
"vals": ["amount"]
From c8bbf9a12ea89151ebc4f4c07e4404ef19788275 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 16 Mar 2026 22:04:21 +0100
Subject: [PATCH 497/618] 16.03.26
---
modules/purchase_trade/fee.py | 1 +
1 file changed, 1 insertion(+)
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index 563c459..4c44b85 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -131,6 +131,7 @@ class Fee(ModelSQL,ModelView):
qt = sum([e.get_current_quantity_converted(0,self.unit) for e in line.lots])
unit = line.lots[0].lot_unit_line
logger.info("ON_CHANGE_WITH_QT0:%s",qt)
+ logger.info("ON_CHANGE_WITH_SI:%s",self.shipment_in)
if self.shipment_in:
Lot = Pool().get('lot.lot')
lots = Lot.search([('lot_shipment_in','=',self.shipment_in.id)])
From 410604d89061a8c2d4c29075cc2ffec50956dfa5 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 16 Mar 2026 22:14:30 +0100
Subject: [PATCH 498/618] 16.03.26
---
modules/purchase_trade/fee.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index 4c44b85..88b31ef 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -118,7 +118,7 @@ class Fee(ModelSQL,ModelView):
if packing:
return packing[0]
- @fields.depends('line','sale_line','shipment_in','lots','price','unit','auto_calculation','mode','_parent_line.unit','_parent_line.lots','_parent_sale_line.unit','_parent_sale_line.lots')
+ @fields.depends('line','sale_line','shipment_in','lots','price','unit','auto_calculation','mode','_parent_line.unit','_parent_line.lots','_parent_sale_line.unit','_parent_sale_line.lots','_parent_shipment_in.id')
def on_change_with_quantity(self, name=None):
qt = None
unit = None
From 7ae54f99772451f5904d52d2410e855bfd03ea81 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 16 Mar 2026 22:19:15 +0100
Subject: [PATCH 499/618] 16.03.26
---
modules/purchase/purchase.py | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/modules/purchase/purchase.py b/modules/purchase/purchase.py
index 87b2c2c..9d3899d 100755
--- a/modules/purchase/purchase.py
+++ b/modules/purchase/purchase.py
@@ -1229,8 +1229,7 @@ class Line(sequence_ordered(), ModelSQL, ModelView):
()),
If(Eval('type') != 'line',
('id', '=', None),
- ()),
- ('type','=','goods')
+ ())
],
states={
'invisible': Eval('type') != 'line',
From 3ef819bf86630b6efb3f903edecb11d96ef80ffe Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 16 Mar 2026 22:26:45 +0100
Subject: [PATCH 500/618] 16.03.26
---
modules/purchase_trade/fee.py | 2 ++
1 file changed, 2 insertions(+)
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index 88b31ef..2c59fd5 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -533,6 +533,8 @@ class Fee(ModelSQL,ModelView):
p.invoice_address = p.party.addresses[0]
p.currency = fee.currency
p.line_type = 'service'
+ p.from_location = fee.shipment_in.from_location if fee.shipment_in else (fee.line.purchase.from_location if fee.line else fee.sale_line.sale.from_location)
+ p.to_location = fee.shipment_in.to_location if fee.shipment_in else (fee.line.purchase.to_location if fee.line else fee.sale_line.sale.to_location)
Purchase.save([p])
#if reception of moves done we need to generate accrual for fee
if not fee.sale_line:
From 5bb1618b3080dfa816d8236e138370c988a69928 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 16 Mar 2026 22:35:09 +0100
Subject: [PATCH 501/618] 16.03.26
---
modules/purchase_trade/fee.py | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index 2c59fd5..0af73ce 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -535,6 +535,12 @@ class Fee(ModelSQL,ModelView):
p.line_type = 'service'
p.from_location = fee.shipment_in.from_location if fee.shipment_in else (fee.line.purchase.from_location if fee.line else fee.sale_line.sale.from_location)
p.to_location = fee.shipment_in.to_location if fee.shipment_in else (fee.line.purchase.to_location if fee.line else fee.sale_line.sale.to_location)
+ if fee.shipment_in and fee.shipment_in.lotqt:
+ p.payment_term = fee.shipment_in.lotqt[0].lot_p.line.purchase.payment_term
+ elif fee.line:
+ p.payment_term = fee.line.purchase.payment_term
+ elif fee.sale_line:
+ p.payment_term = fee.sale_line.sale.payment_term
Purchase.save([p])
#if reception of moves done we need to generate accrual for fee
if not fee.sale_line:
From 6b96cdbc88fc40db9366123646b414e87eb99f5f Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 17 Mar 2026 13:58:08 +0100
Subject: [PATCH 502/618] 17.03.26
---
modules/purchase_trade/party.py | 20 +-------------------
1 file changed, 1 insertion(+), 19 deletions(-)
diff --git a/modules/purchase_trade/party.py b/modules/purchase_trade/party.py
index 6024a54..124313a 100755
--- a/modules/purchase_trade/party.py
+++ b/modules/purchase_trade/party.py
@@ -54,25 +54,7 @@ class PartyExecutionPlace(ModelSQL,ModelView):
states={
'readonly': Eval('mode') != 'ppack',
})
- currency_unit = fields.Selection('get_currency_unit',string="Curr/Unit")
-
- @staticmethod
- def get_currency_unit():
- Currency = Pool().get('currency.currency')
- Uom = Pool().get('product.uom')
-
- result = []
- currencies = Currency.search([('concatenate','=',True)])
- units = Uom.search([('concatenate','=',True)])
- result.append(("0_5","USC/lb"))
- result.append(("0_37","USC/mt"))
- for c in currencies:
- for u in units:
- key = "%s_%s" % (c.id, u.id)
- value = "%s / %s" % (c.name, u.symbol or u.name)
- result.append((key, value))
- return result
-
+
class Party(metaclass=PoolMeta):
__name__ = 'party.party'
From a8d37bd7668ecc859ccd441e3af2eb868c1fd0fa Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 17 Mar 2026 14:11:33 +0100
Subject: [PATCH 503/618] 17.03.26
---
modules/automation/cron.py | 1 +
modules/purchase_trade/stock.py | 1 +
modules/purchase_trade/view/shipment_in_form.xml | 2 ++
3 files changed, 4 insertions(+)
diff --git a/modules/automation/cron.py b/modules/automation/cron.py
index 78dbfd3..556f9a1 100644
--- a/modules/automation/cron.py
+++ b/modules/automation/cron.py
@@ -312,6 +312,7 @@ class AutomationCron(ModelSQL, ModelView):
ShipmentIn.save([shipment])
inv_date,inv_nb = shipment._create_lots_from_fintrade()
shipment.controller = shipment.get_controller()
+ shipment.controller_target = controller
shipment.create_fee(shipment.controller)
shipment.instructions = shipment.get_instructions_html(inv_date,inv_nb)
ShipmentIn.save([shipment])
diff --git a/modules/purchase_trade/stock.py b/modules/purchase_trade/stock.py
index c1fe603..f9d8ec7 100755
--- a/modules/purchase_trade/stock.py
+++ b/modules/purchase_trade/stock.py
@@ -441,6 +441,7 @@ class ShipmentIn(metaclass=PoolMeta):
)
shipment_wr = fields.One2Many('shipment.wr','shipment_in',"WR")
controller = fields.Many2One('party.party',"Controller")
+ controller_target = fields.Char("Targeted controller")
send_instruction = fields.Boolean("Send instruction")
instructions = fields.Text("Instructions")
add_bl = fields.Boolean("Add BL")
diff --git a/modules/purchase_trade/view/shipment_in_form.xml b/modules/purchase_trade/view/shipment_in_form.xml
index cf4837f..9c4789d 100755
--- a/modules/purchase_trade/view/shipment_in_form.xml
+++ b/modules/purchase_trade/view/shipment_in_form.xml
@@ -115,6 +115,8 @@ this repository contains the full copyright notices and license terms. -->
+
+
From 7ace327d3fc26a3e6ead9d45eda7056665c1a18b Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 17 Mar 2026 14:36:55 +0100
Subject: [PATCH 504/618] 17.03.26
---
modules/purchase_trade/stock.py | 1 +
1 file changed, 1 insertion(+)
diff --git a/modules/purchase_trade/stock.py b/modules/purchase_trade/stock.py
index f9d8ec7..281379a 100755
--- a/modules/purchase_trade/stock.py
+++ b/modules/purchase_trade/stock.py
@@ -638,6 +638,7 @@ class ShipmentIn(metaclass=PoolMeta):
sale.from_location = self.from_location
sale.to_location = self.to_location
sale.company = 6
+ sale.payment_term = 2
if sale.party.addresses:
sale.invoice_address = sale.party.addresses[0]
sale.shipment_address = sale.party.addresses[0]
From 24c8cd80753a13605f33277eca0e8a07c08fac3f Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 17 Mar 2026 18:16:29 +0100
Subject: [PATCH 505/618] 17.03.26
---
modules/purchase_trade/stock.py | 1 +
1 file changed, 1 insertion(+)
diff --git a/modules/purchase_trade/stock.py b/modules/purchase_trade/stock.py
index 281379a..eff3d9b 100755
--- a/modules/purchase_trade/stock.py
+++ b/modules/purchase_trade/stock.py
@@ -703,6 +703,7 @@ class ShipmentIn(metaclass=PoolMeta):
d.del_period = None
d.from_del = None
d.to_del = None
+ d.payment_term = sale.payment_term
ct.contracts = [d]
ContractFactory.create_contracts(
ct.contracts,
From 01777f15364284e48705154d3fe373649631950c Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 17 Mar 2026 20:04:11 +0100
Subject: [PATCH 506/618] 17.03.26
---
modules/automation/automation.py | 13 +++++++++++++
modules/purchase_trade/stock.py | 2 ++
modules/purchase_trade/view/shipment_in_form.xml | 1 +
3 files changed, 16 insertions(+)
diff --git a/modules/automation/automation.py b/modules/automation/automation.py
index e043633..113e24f 100644
--- a/modules/automation/automation.py
+++ b/modules/automation/automation.py
@@ -98,6 +98,19 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
ShipmentIn.save(sh)
doc.notes = (doc.notes or "") + "Id returned: " + request_id
+ so_payload = {
+ "ServiceOrderKey": sh.service_order_key,
+ "ID_Number": request_id
+ }
+
+ response = requests.post(
+ "http://automation-service:8006/service-order-update",
+ json=so_payload,
+ timeout=10
+ )
+ response.raise_for_status()
+ doc.notes = (doc.notes or "") + "SO updated: " + response.json()
+
except Exception as e:
doc.state = "error"
doc.notes = (doc.notes or "") + f"OCR error: {e}\n"
diff --git a/modules/purchase_trade/stock.py b/modules/purchase_trade/stock.py
index eff3d9b..9607399 100755
--- a/modules/purchase_trade/stock.py
+++ b/modules/purchase_trade/stock.py
@@ -449,6 +449,7 @@ class ShipmentIn(metaclass=PoolMeta):
returned_id = fields.Char("Returned ID")
result = fields.Char("Result",readonly=True)
agent = fields.Many2One('party.party',"Booking Agent")
+ service_order_key = fields.Integer("Service Order Key")
@classmethod
def __setup__(cls):
@@ -815,6 +816,7 @@ class ShipmentIn(metaclass=PoolMeta):
data = sh.create_service_order(so_payload)
logger.info("SO_NUMBER:%s",data.get('service_order_number'))
sh.result += f" / SO Nb {data.get('service_order_number')}"
+ sh.service_order_key = int(data.get('service_order_key'))
sh.save()
@classmethod
diff --git a/modules/purchase_trade/view/shipment_in_form.xml b/modules/purchase_trade/view/shipment_in_form.xml
index 9c4789d..05da436 100755
--- a/modules/purchase_trade/view/shipment_in_form.xml
+++ b/modules/purchase_trade/view/shipment_in_form.xml
@@ -115,6 +115,7 @@ this repository contains the full copyright notices and license terms. -->
+
From 420577cd722b89de7656a8ba64f8a4ab55d6302d Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 17 Mar 2026 20:26:11 +0100
Subject: [PATCH 507/618] 17.03.26
---
modules/automation/automation.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/automation/automation.py b/modules/automation/automation.py
index 113e24f..44f65ca 100644
--- a/modules/automation/automation.py
+++ b/modules/automation/automation.py
@@ -99,7 +99,7 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
doc.notes = (doc.notes or "") + "Id returned: " + request_id
so_payload = {
- "ServiceOrderKey": sh.service_order_key,
+ "ServiceOrderKey": sh[0].service_order_key,
"ID_Number": request_id
}
From 5a52f09f979f9f1fabc3bec1dc8e312cecc5495a Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 17 Mar 2026 20:53:32 +0100
Subject: [PATCH 508/618] 17.03.26
---
modules/automation/automation.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/automation/automation.py b/modules/automation/automation.py
index 44f65ca..58d5b6e 100644
--- a/modules/automation/automation.py
+++ b/modules/automation/automation.py
@@ -109,7 +109,7 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
timeout=10
)
response.raise_for_status()
- doc.notes = (doc.notes or "") + "SO updated: " + response.json()
+ doc.notes = (doc.notes or "") + "SO updated"
except Exception as e:
doc.state = "error"
From f7d87d3a78786ac44180aa678c83d4e97d6eeb52 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 17 Mar 2026 20:55:55 +0100
Subject: [PATCH 509/618] 17.03.26
---
modules/automation/automation.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/automation/automation.py b/modules/automation/automation.py
index 58d5b6e..999dc91 100644
--- a/modules/automation/automation.py
+++ b/modules/automation/automation.py
@@ -109,7 +109,7 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
timeout=10
)
response.raise_for_status()
- doc.notes = (doc.notes or "") + "SO updated"
+ doc.notes = (doc.notes or "") + " SO updated"
except Exception as e:
doc.state = "error"
From 3581b7ea8047e976be03527bf63902c43ccb04df Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Wed, 18 Mar 2026 10:53:29 +0100
Subject: [PATCH 510/618] 18.03.26
---
modules/automation/automation.py | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/modules/automation/automation.py b/modules/automation/automation.py
index 999dc91..f7c2e61 100644
--- a/modules/automation/automation.py
+++ b/modules/automation/automation.py
@@ -264,7 +264,8 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
"place_key": sh[0].to_location.get_places(),
"report_date": int(wr.report_date.strftime("%Y%m%d")),#wr.report_date.isoformat() if wr.report_date else None,
"weight_date": int(wr.weight_date.strftime("%Y%m%d")),#wr.weight_date.isoformat() if wr.weight_date else None,
- "agent": sh[0].agent.get_alf()
+ "agent": sh[0].agent.get_alf(),
+ "forwarder_ref": sh[0].reference
}
logger.info("PAYLOAD:%s",wr_payload)
data = doc.create_weight_report(wr_payload)
From 8c3c224c073bef5710f6315a06ff23420fba9d47 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Wed, 18 Mar 2026 11:06:05 +0100
Subject: [PATCH 511/618] 18.03.26
---
modules/automation/automation.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/automation/automation.py b/modules/automation/automation.py
index f7c2e61..4e98aee 100644
--- a/modules/automation/automation.py
+++ b/modules/automation/automation.py
@@ -265,7 +265,7 @@ class AutomationDocument(ModelSQL, ModelView, Workflow):
"report_date": int(wr.report_date.strftime("%Y%m%d")),#wr.report_date.isoformat() if wr.report_date else None,
"weight_date": int(wr.weight_date.strftime("%Y%m%d")),#wr.weight_date.isoformat() if wr.weight_date else None,
"agent": sh[0].agent.get_alf(),
- "forwarder_ref": sh[0].reference
+ "forwarder_ref": sh[0].returned_id
}
logger.info("PAYLOAD:%s",wr_payload)
data = doc.create_weight_report(wr_payload)
From a41ec4412dd33c4f053fc60e9a0d8c52a3b7018d Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Wed, 18 Mar 2026 18:02:49 +0100
Subject: [PATCH 512/618] 18.03.26
---
modules/purchase_trade/purchase.py | 2 ++
modules/purchase_trade/sale.py | 1 +
modules/purchase_trade/view/purchase_line_form.xml | 2 ++
modules/purchase_trade/view/sale_line_form.xml | 2 ++
4 files changed, 7 insertions(+)
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index a320c22..a5046ed 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -621,6 +621,8 @@ class Line(metaclass=PoolMeta):
fields.Char("Attributes Name"),
'on_change_with_attributes_name'
)
+
+ finished = fields.Boolean("Mark as finished")
@fields.depends('product')
def on_change_with_attribute_set(self, name=None):
diff --git a/modules/purchase_trade/sale.py b/modules/purchase_trade/sale.py
index 3cb488c..2db8cd6 100755
--- a/modules/purchase_trade/sale.py
+++ b/modules/purchase_trade/sale.py
@@ -618,6 +618,7 @@ class SaleLine(metaclass=PoolMeta):
'on_change_with_attributes_name'
)
+ finished = fields.Boolean("Mark as finished")
pricing_rule = fields.Text("Pricing description")
price_composition = fields.One2Many('price.composition','sale_line',"Price composition")
diff --git a/modules/purchase_trade/view/purchase_line_form.xml b/modules/purchase_trade/view/purchase_line_form.xml
index e25f779..871bb2d 100755
--- a/modules/purchase_trade/view/purchase_line_form.xml
+++ b/modules/purchase_trade/view/purchase_line_form.xml
@@ -6,6 +6,8 @@ this repository contains the full copyright notices and license terms. -->
+
+
diff --git a/modules/purchase_trade/view/sale_line_form.xml b/modules/purchase_trade/view/sale_line_form.xml
index 9958482..3b65458 100755
--- a/modules/purchase_trade/view/sale_line_form.xml
+++ b/modules/purchase_trade/view/sale_line_form.xml
@@ -6,6 +6,8 @@ this repository contains the full copyright notices and license terms. -->
+
+
From d6207855a05e287645a7009c3a1922925a4d62ec Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Wed, 18 Mar 2026 18:27:29 +0100
Subject: [PATCH 513/618] 18.03.26
---
modules/purchase_trade/lot.py | 13 +++++++++++--
.../purchase_trade/view/lot_report_context_form.xml | 2 ++
2 files changed, 13 insertions(+), 2 deletions(-)
diff --git a/modules/purchase_trade/lot.py b/modules/purchase_trade/lot.py
index afeb73d..b818cea 100755
--- a/modules/purchase_trade/lot.py
+++ b/modules/purchase_trade/lot.py
@@ -1205,7 +1205,7 @@ class LotQt(
# OpenPosition.create_from_purchase_line(pl)
@classmethod
- def getQuery(cls,purchase=None,sale=None,shipment=None,type=None,state=None,qttype=None,supplier=None,client=None,ps=None,lot_status=None,group=None,product=None,location=None,origin=None):
+ def getQuery(cls,purchase=None,sale=None,shipment=None,type=None,state=None,qttype=None,supplier=None,client=None,ps=None,lot_status=None,group=None,product=None,location=None,origin=None,finished=False):
pool = Pool()
LotQt = pool.get('lot.qt')
lqt = LotQt.__table__()
@@ -1292,6 +1292,8 @@ class LotQt(
wh &= (pu.party == supplier)
if client and sa:
wh &= (sa.party == client)
+ if not finished:
+ wh &= (pl.finished == False)
AvQt = Case(((lqt.lot_p>0) & (lqt.lot_s>0), 0),else_=Case((lqt.lot_p>0,lqt.lot_quantity),else_=-lqt.lot_quantity))
MaQt = Case(((lqt.lot_p>0) & (lqt.lot_s>0), lqt.lot_quantity),else_=0)
@@ -1844,7 +1846,8 @@ class LotReport(
supplier = context.get('supplier')
#asof = context.get('asof')
#todate = context.get('todate')
- query = LotQt.getQuery(purchase,sale,shipment,type,state,None,supplier,None,None,wh,group,product,location,origin)
+ finished = context.get('finished')
+ query = LotQt.getQuery(purchase,sale,shipment,type,state,None,supplier,None,None,wh,group,product,location,origin,finished)
return query
@classmethod
@@ -1934,6 +1937,12 @@ class LotContext(ModelView):
('pnl', 'Pnl'),
],'Mode')
+ finished = fields.Boolean("Display finished")
+
+ @classmethod
+ def default_finished(cls):
+ return False
+
@classmethod
def default_asof(cls):
pool = Pool()
diff --git a/modules/purchase_trade/view/lot_report_context_form.xml b/modules/purchase_trade/view/lot_report_context_form.xml
index e3a30cb..8d51948 100755
--- a/modules/purchase_trade/view/lot_report_context_form.xml
+++ b/modules/purchase_trade/view/lot_report_context_form.xml
@@ -27,4 +27,6 @@
+
+
From 6954044f7e87758a549049a0d934355d4e91df44 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Fri, 20 Mar 2026 09:08:13 +0100
Subject: [PATCH 514/618] 20.03.26
---
modules/purchase_trade/purchase.py | 5 +++++
modules/purchase_trade/sale.py | 4 ++++
modules/purchase_trade/view/position_bi_graph.xml | 3 ++-
3 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index a5046ed..f8848b0 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -623,6 +623,11 @@ class Line(metaclass=PoolMeta):
)
finished = fields.Boolean("Mark as finished")
+
+ @classmethod
+ def default_finished(cls):
+ return False
+
@fields.depends('product')
def on_change_with_attribute_set(self, name=None):
diff --git a/modules/purchase_trade/sale.py b/modules/purchase_trade/sale.py
index 2db8cd6..3e6782d 100755
--- a/modules/purchase_trade/sale.py
+++ b/modules/purchase_trade/sale.py
@@ -622,6 +622,10 @@ class SaleLine(metaclass=PoolMeta):
pricing_rule = fields.Text("Pricing description")
price_composition = fields.One2Many('price.composition','sale_line',"Price composition")
+ @classmethod
+ def default_finished(cls):
+ return False
+
@property
def report_fixing_rule(self):
pricing_rule = ''
diff --git a/modules/purchase_trade/view/position_bi_graph.xml b/modules/purchase_trade/view/position_bi_graph.xml
index 17796d6..6046727 100644
--- a/modules/purchase_trade/view/position_bi_graph.xml
+++ b/modules/purchase_trade/view/position_bi_graph.xml
@@ -1,4 +1,5 @@
-
+
+
\ No newline at end of file
From 6c7947c7c139f6b9ecdc1292c7f784f56ed1dba0 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Fri, 20 Mar 2026 09:11:57 +0100
Subject: [PATCH 515/618] 20.03.26
---
modules/purchase_trade/view/position_bi_graph.xml | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/modules/purchase_trade/view/position_bi_graph.xml b/modules/purchase_trade/view/position_bi_graph.xml
index 6046727..17796d6 100644
--- a/modules/purchase_trade/view/position_bi_graph.xml
+++ b/modules/purchase_trade/view/position_bi_graph.xml
@@ -1,5 +1,4 @@
-
-
+
\ No newline at end of file
From bf6e9f6a78112da1c2f4db304a00430cc22adf24 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Fri, 20 Mar 2026 10:01:22 +0100
Subject: [PATCH 516/618] 20.03.26
---
modules/purchase_trade/__init__.py | 1 +
modules/purchase_trade/purchase.py | 40 +++++++++++++++++++
modules/purchase_trade/purchase.xml | 6 +++
.../view/quality_analysis_tree.xml | 5 +++
4 files changed, 52 insertions(+)
create mode 100644 modules/purchase_trade/view/quality_analysis_tree.xml
diff --git a/modules/purchase_trade/__init__.py b/modules/purchase_trade/__init__.py
index 44dac07..73fe546 100755
--- a/modules/purchase_trade/__init__.py
+++ b/modules/purchase_trade/__init__.py
@@ -168,6 +168,7 @@ def register():
purchase.DocTypeTemplate,
purchase.PurchaseStrategy,
purchase.PriceComposition,
+ purchase.QualityAnalysis,
backtoback.Backtoback,
dimension.AnalyticDimension,
dimension.AnalyticDimensionValue,
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index f8848b0..7a2f4f5 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -528,6 +528,44 @@ class PriceComposition(ModelSQL,ModelView):
line = fields.Many2One('purchase.line',"Purchase line")
component = fields.Char("Component")
price = fields.Numeric("Price")
+
+class QualityAnalysis(ModelSQL,ModelView):
+ __name__ = 'quality.analysis'
+
+ line = fields.Many2One('purchase.line',"Purchase Line")
+ reference = fields.Char("Reference")
+ date = fields.Date("Analysis date")
+ attributes = fields.Dict(
+ 'product.attribute', 'Attributes',
+ domain=[
+ ('sets', '=', Eval('attribute_set')),
+ ],
+ states={
+ 'readonly': ~Eval('attribute_set'),
+ },
+ depends=['product', 'attribute_set'],
+ help="Add attributes to the variant."
+ )
+
+ product = fields.Function(
+ fields.Many2One('product.product', "Product"),
+ 'on_change_with_product'
+ )
+
+ attribute_set = fields.Function(
+ fields.Many2One('product.attribute.set', "Attribute Set"),
+ 'on_change_with_attribute_set'
+ )
+
+ @fields.depends('product')
+ def on_change_with_attribute_set(self, name=None):
+ if self.product and self.product.template and self.product.template.attribute_set:
+ return self.product.template.attribute_set.id
+
+ @fields.depends('line')
+ def on_change_with_product(self, name=None):
+ if self.line:
+ return self.line.product
class Line(metaclass=PoolMeta):
__name__ = 'purchase.line'
@@ -624,6 +662,8 @@ class Line(metaclass=PoolMeta):
finished = fields.Boolean("Mark as finished")
+ quality_analysis = fields.One2Many('quality.analysis','line',"Quality analysis")
+
@classmethod
def default_finished(cls):
return False
diff --git a/modules/purchase_trade/purchase.xml b/modules/purchase_trade/purchase.xml
index bd2e24c..29d5cee 100755
--- a/modules/purchase_trade/purchase.xml
+++ b/modules/purchase_trade/purchase.xml
@@ -162,6 +162,12 @@ this repository contains the full copyright notices and license terms. -->
price_composition_tree
+
+ quality.analysis
+ tree
+ quality_analysis_tree
+
+
+
+
+
+
\ No newline at end of file
From a63a46cc40e935e59c6595247d1ab3fe4833f551 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Fri, 20 Mar 2026 10:05:30 +0100
Subject: [PATCH 517/618] 20.03.26
---
modules/purchase_trade/purchase.py | 1 +
1 file changed, 1 insertion(+)
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index 7a2f4f5..7b663d3 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -530,6 +530,7 @@ class PriceComposition(ModelSQL,ModelView):
price = fields.Numeric("Price")
class QualityAnalysis(ModelSQL,ModelView):
+ "Quality Analysis"
__name__ = 'quality.analysis'
line = fields.Many2One('purchase.line',"Purchase Line")
From 13072de28fc74729b6485cb7b47469b8526a3f2a Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Fri, 20 Mar 2026 10:19:50 +0100
Subject: [PATCH 518/618] 20.03.26
---
modules/purchase_trade/view/purchase_line_form.xml | 3 +++
1 file changed, 3 insertions(+)
diff --git a/modules/purchase_trade/view/purchase_line_form.xml b/modules/purchase_trade/view/purchase_line_form.xml
index 871bb2d..da1d4b5 100755
--- a/modules/purchase_trade/view/purchase_line_form.xml
+++ b/modules/purchase_trade/view/purchase_line_form.xml
@@ -55,6 +55,9 @@ this repository contains the full copyright notices and license terms. -->
+
+
+
From 8c3ba0a23d813b0e7805cb1760f240ecc2e6d5be Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Fri, 20 Mar 2026 10:28:09 +0100
Subject: [PATCH 519/618] 20.03.26
---
modules/purchase_trade/purchase.xml | 5 +++++
modules/purchase_trade/view/purchase_line_form.xml | 2 +-
modules/purchase_trade/view/quality_analysis_form.xml | 8 ++++++++
3 files changed, 14 insertions(+), 1 deletion(-)
create mode 100644 modules/purchase_trade/view/quality_analysis_form.xml
diff --git a/modules/purchase_trade/purchase.xml b/modules/purchase_trade/purchase.xml
index 29d5cee..d692377 100755
--- a/modules/purchase_trade/purchase.xml
+++ b/modules/purchase_trade/purchase.xml
@@ -167,6 +167,11 @@ this repository contains the full copyright notices and license terms. -->
tree
quality_analysis_tree
+
+ quality.analysis
+ form
+ quality_analysis_form
+
-
+
diff --git a/modules/purchase_trade/view/quality_analysis_form.xml b/modules/purchase_trade/view/quality_analysis_form.xml
new file mode 100644
index 0000000..0c4c6b9
--- /dev/null
+++ b/modules/purchase_trade/view/quality_analysis_form.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
From b2e095aad56bd152f7a4e6c4558f082cdcc45d37 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Fri, 20 Mar 2026 10:36:27 +0100
Subject: [PATCH 520/618] 20.03.26
---
modules/purchase_trade/purchase.py | 24 +++++++++++++++++++
.../view/purchase_line_form.xml | 2 +-
.../view/quality_analysis_tree.xml | 2 +-
3 files changed, 26 insertions(+), 2 deletions(-)
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index 7b663d3..72798cd 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -557,6 +557,11 @@ class QualityAnalysis(ModelSQL,ModelView):
fields.Many2One('product.attribute.set', "Attribute Set"),
'on_change_with_attribute_set'
)
+
+ attributes_name = fields.Function(
+ fields.Char("Attributes Name"),
+ 'on_change_with_attributes_name'
+ )
@fields.depends('product')
def on_change_with_attribute_set(self, name=None):
@@ -567,6 +572,25 @@ class QualityAnalysis(ModelSQL,ModelView):
def on_change_with_product(self, name=None):
if self.line:
return self.line.product
+
+ @fields.depends('product', 'attributes')
+ def on_change_with_attributes_name(self, name=None):
+ if not self.product or not self.product.attribute_set or not self.attributes:
+ return
+
+ def key(attribute):
+ return getattr(attribute, 'sequence', attribute.name)
+
+ values = []
+ for attribute in sorted(self.product.attribute_set.attributes, key=key):
+ if attribute.name in self.attributes:
+ value = self.attributes[attribute.name]
+ values.append(gettext(
+ 'product_attribute.msg_label_value',
+ label=attribute.string,
+ value=attribute.format(value)
+ ))
+ return " | ".join(filter(None, values))
class Line(metaclass=PoolMeta):
__name__ = 'purchase.line'
diff --git a/modules/purchase_trade/view/purchase_line_form.xml b/modules/purchase_trade/view/purchase_line_form.xml
index 6a0b82a..8ce4c6c 100755
--- a/modules/purchase_trade/view/purchase_line_form.xml
+++ b/modules/purchase_trade/view/purchase_line_form.xml
@@ -56,7 +56,7 @@ this repository contains the full copyright notices and license terms. -->
-
+
diff --git a/modules/purchase_trade/view/quality_analysis_tree.xml b/modules/purchase_trade/view/quality_analysis_tree.xml
index 8901679..4b6f29b 100644
--- a/modules/purchase_trade/view/quality_analysis_tree.xml
+++ b/modules/purchase_trade/view/quality_analysis_tree.xml
@@ -1,5 +1,5 @@
-
+
\ No newline at end of file
From cabd032bc66b591e3d8f69b49bbc1d94a4e885ba Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Fri, 20 Mar 2026 10:45:34 +0100
Subject: [PATCH 521/618] 20.03.26
---
modules/purchase_trade/purchase.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index 72798cd..64fe6dd 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -559,7 +559,7 @@ class QualityAnalysis(ModelSQL,ModelView):
)
attributes_name = fields.Function(
- fields.Char("Attributes Name"),
+ fields.Char("Details"),
'on_change_with_attributes_name'
)
From 4f6641ceebad2b961208307b3e18a1350540de8d Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Fri, 20 Mar 2026 13:43:47 +0100
Subject: [PATCH 522/618] 20.03.26
---
modules/price/price.py | 19 ++++++++++++++++++-
modules/price/view/product_tree_sequence.xml | 1 +
2 files changed, 19 insertions(+), 1 deletion(-)
diff --git a/modules/price/price.py b/modules/price/price.py
index 2ff92f6..ac764d0 100755
--- a/modules/price/price.py
+++ b/modules/price/price.py
@@ -44,7 +44,7 @@ class Price(
price_composite = fields.One2Many('price.composite','price',"Composites")
price_product = fields.One2Many('price.product', 'price', "Product")
price_ct_size = fields.Numeric("Ct size")
-
+
def get_qt(self,nb_ct,unit):
Uom = Pool().get('product.uom')
return round(Decimal(Uom.compute_qty(self.price_unit, float(self.price_ct_size * nb_ct), unit)),4)
@@ -136,3 +136,20 @@ class Product(ModelSQL,ModelView):
__name__ = 'price.product'
price = fields.Many2One('price.price',"Price index")
product = fields.Many2One('product.product',"Product")
+ attribute = fields.Many2One('product.attribute',"Attribute",domain=[
+ ('sets', '=', Eval('attribute_set')),
+ ],
+ states={
+ 'readonly': ~Eval('attribute_set'),
+ },
+ depends=['product', 'attribute_set'])
+ attribute_set = fields.Function(
+ fields.Many2One('product.attribute.set', "Attribute Set"),
+ 'on_change_with_attribute_set'
+ )
+
+ @fields.depends('product')
+ def on_change_with_attribute_set(self, name=None):
+ if self.product and self.product.template and self.product.template.attribute_set:
+ return self.product.template.attribute_set.id
+
diff --git a/modules/price/view/product_tree_sequence.xml b/modules/price/view/product_tree_sequence.xml
index c95e6ca..ce13a5a 100755
--- a/modules/price/view/product_tree_sequence.xml
+++ b/modules/price/view/product_tree_sequence.xml
@@ -1,4 +1,5 @@
+
From a2e0c36a3c384b50c4a2de1ada13c949573a2697 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Fri, 20 Mar 2026 13:50:31 +0100
Subject: [PATCH 523/618] 20.03.26
---
modules/price/price.py | 24 ++++++++++++++++++++
modules/price/view/product_form.xml | 4 ++--
modules/price/view/product_tree_sequence.xml | 2 +-
3 files changed, 27 insertions(+), 3 deletions(-)
diff --git a/modules/price/price.py b/modules/price/price.py
index ac764d0..2a93fa0 100755
--- a/modules/price/price.py
+++ b/modules/price/price.py
@@ -148,6 +148,30 @@ class Product(ModelSQL,ModelView):
'on_change_with_attribute_set'
)
+ attributes_name = fields.Function(
+ fields.Char("Details"),
+ 'on_change_with_attributes_name'
+ )
+
+ @fields.depends('product', 'attributes')
+ def on_change_with_attributes_name(self, name=None):
+ if not self.product or not self.product.attribute_set or not self.attributes:
+ return
+
+ def key(attribute):
+ return getattr(attribute, 'sequence', attribute.name)
+
+ values = []
+ for attribute in sorted(self.product.attribute_set.attributes, key=key):
+ if attribute.name in self.attributes:
+ value = self.attributes[attribute.name]
+ values.append(gettext(
+ 'product_attribute.msg_label_value',
+ label=attribute.string,
+ value=attribute.format(value)
+ ))
+ return " | ".join(filter(None, values))
+
@fields.depends('product')
def on_change_with_attribute_set(self, name=None):
if self.product and self.product.template and self.product.template.attribute_set:
diff --git a/modules/price/view/product_form.xml b/modules/price/view/product_form.xml
index 62bdb1c..cc86590 100755
--- a/modules/price/view/product_form.xml
+++ b/modules/price/view/product_form.xml
@@ -1,6 +1,6 @@
-
-
+
+
diff --git a/modules/price/view/product_tree_sequence.xml b/modules/price/view/product_tree_sequence.xml
index ce13a5a..1697065 100755
--- a/modules/price/view/product_tree_sequence.xml
+++ b/modules/price/view/product_tree_sequence.xml
@@ -1,5 +1,5 @@
-
+
From 260300681f3bc9d2814544bc5ff03f0bd8cfb237 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Fri, 20 Mar 2026 13:53:10 +0100
Subject: [PATCH 524/618] 20.03.26
---
modules/price/price.py | 2 +-
modules/price/view/product_form.xml | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/modules/price/price.py b/modules/price/price.py
index 2a93fa0..6a7a64f 100755
--- a/modules/price/price.py
+++ b/modules/price/price.py
@@ -136,7 +136,7 @@ class Product(ModelSQL,ModelView):
__name__ = 'price.product'
price = fields.Many2One('price.price',"Price index")
product = fields.Many2One('product.product',"Product")
- attribute = fields.Many2One('product.attribute',"Attribute",domain=[
+ attributes = fields.Many2One('product.attribute',"Attribute",domain=[
('sets', '=', Eval('attribute_set')),
],
states={
diff --git a/modules/price/view/product_form.xml b/modules/price/view/product_form.xml
index cc86590..0cd70be 100755
--- a/modules/price/view/product_form.xml
+++ b/modules/price/view/product_form.xml
@@ -1,6 +1,6 @@
-
-
+
+
From 73eeee0f723b40db71cd29f5879395025500d55b Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Fri, 20 Mar 2026 14:29:46 +0100
Subject: [PATCH 525/618] 20.03.26
---
modules/price/price.py | 2 +-
modules/price/view/product_tree_sequence.xml | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/modules/price/price.py b/modules/price/price.py
index 6a7a64f..1c9b6f2 100755
--- a/modules/price/price.py
+++ b/modules/price/price.py
@@ -149,7 +149,7 @@ class Product(ModelSQL,ModelView):
)
attributes_name = fields.Function(
- fields.Char("Details"),
+ fields.Char("Attribute"),
'on_change_with_attributes_name'
)
diff --git a/modules/price/view/product_tree_sequence.xml b/modules/price/view/product_tree_sequence.xml
index 1697065..9314f98 100755
--- a/modules/price/view/product_tree_sequence.xml
+++ b/modules/price/view/product_tree_sequence.xml
@@ -1,5 +1,5 @@
-
+
From 22c4766e66272558832d9c928b574be869558406 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Fri, 20 Mar 2026 14:36:43 +0100
Subject: [PATCH 526/618] 20.03.26
---
modules/purchase_trade/purchase.py | 2 ++
modules/purchase_trade/view/quality_analysis_form.xml | 2 ++
modules/purchase_trade/view/quality_analysis_tree.xml | 1 +
3 files changed, 5 insertions(+)
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index 64fe6dd..a1097a6 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -563,6 +563,8 @@ class QualityAnalysis(ModelSQL,ModelView):
'on_change_with_attributes_name'
)
+ last_analysis_pricing = fields.Boolean("Used for pricing")
+
@fields.depends('product')
def on_change_with_attribute_set(self, name=None):
if self.product and self.product.template and self.product.template.attribute_set:
diff --git a/modules/purchase_trade/view/quality_analysis_form.xml b/modules/purchase_trade/view/quality_analysis_form.xml
index 0c4c6b9..ed25551 100644
--- a/modules/purchase_trade/view/quality_analysis_form.xml
+++ b/modules/purchase_trade/view/quality_analysis_form.xml
@@ -5,4 +5,6 @@
+
+
\ No newline at end of file
diff --git a/modules/purchase_trade/view/quality_analysis_tree.xml b/modules/purchase_trade/view/quality_analysis_tree.xml
index 4b6f29b..c843e67 100644
--- a/modules/purchase_trade/view/quality_analysis_tree.xml
+++ b/modules/purchase_trade/view/quality_analysis_tree.xml
@@ -2,4 +2,5 @@
+
\ No newline at end of file
From d2a13b3c017c89602e5fde3e0ba8070007e8ee65 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Fri, 20 Mar 2026 14:38:42 +0100
Subject: [PATCH 527/618] 20.03.26
---
modules/price/price.py | 24 ------------------------
1 file changed, 24 deletions(-)
diff --git a/modules/price/price.py b/modules/price/price.py
index 1c9b6f2..029f7ba 100755
--- a/modules/price/price.py
+++ b/modules/price/price.py
@@ -148,30 +148,6 @@ class Product(ModelSQL,ModelView):
'on_change_with_attribute_set'
)
- attributes_name = fields.Function(
- fields.Char("Attribute"),
- 'on_change_with_attributes_name'
- )
-
- @fields.depends('product', 'attributes')
- def on_change_with_attributes_name(self, name=None):
- if not self.product or not self.product.attribute_set or not self.attributes:
- return
-
- def key(attribute):
- return getattr(attribute, 'sequence', attribute.name)
-
- values = []
- for attribute in sorted(self.product.attribute_set.attributes, key=key):
- if attribute.name in self.attributes:
- value = self.attributes[attribute.name]
- values.append(gettext(
- 'product_attribute.msg_label_value',
- label=attribute.string,
- value=attribute.format(value)
- ))
- return " | ".join(filter(None, values))
-
@fields.depends('product')
def on_change_with_attribute_set(self, name=None):
if self.product and self.product.template and self.product.template.attribute_set:
From 93d27059af74c61ae5980cd10a4c39f6b5418b66 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sat, 21 Mar 2026 18:25:30 +0100
Subject: [PATCH 528/618] 21.03.26
---
modules/purchase_trade/__init__.py | 3 +
modules/purchase_trade/purchase.py | 65 ++++++++++++++++++-
modules/purchase_trade/purchase.xml | 21 ++++++
modules/purchase_trade/view/assay_form.xml | 16 +++++
.../purchase_trade/view/assay_line_tree.xml | 8 +++
modules/purchase_trade/view/assay_tree.xml | 8 +++
.../view/purchase_line_form.xml | 4 +-
7 files changed, 122 insertions(+), 3 deletions(-)
create mode 100644 modules/purchase_trade/view/assay_form.xml
create mode 100644 modules/purchase_trade/view/assay_line_tree.xml
create mode 100644 modules/purchase_trade/view/assay_tree.xml
diff --git a/modules/purchase_trade/__init__.py b/modules/purchase_trade/__init__.py
index 73fe546..171353f 100755
--- a/modules/purchase_trade/__init__.py
+++ b/modules/purchase_trade/__init__.py
@@ -169,6 +169,9 @@ def register():
purchase.PurchaseStrategy,
purchase.PriceComposition,
purchase.QualityAnalysis,
+ purchase.Assay,
+ purchase.AssayLine,
+ purchase.AssayElement,
backtoback.Backtoback,
dimension.AnalyticDimension,
dimension.AnalyticDimensionValue,
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index a1097a6..56318b1 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -528,7 +528,69 @@ class PriceComposition(ModelSQL,ModelView):
line = fields.Many2One('purchase.line',"Purchase line")
component = fields.Char("Component")
price = fields.Numeric("Price")
-
+
+class Assay(ModelSQL, ModelView):
+ __name__ = 'assay.assay'
+
+ line = fields.Many2One('purchase.line',"Purchase Line")
+
+ reference = fields.Char("Lab Reference")
+ date = fields.Date("Analysis Date")
+
+ type = fields.Selection([
+ ('provisional', 'Provisional'),
+ ('final', 'Final'),
+ ('umpire', 'Umpire'),
+ ], "Type")
+
+ status = fields.Selection([
+ ('draft', 'Draft'),
+ ('validated', 'Validated'),
+ ], "Status")
+
+ laboratory = fields.Char("Laboratory")
+
+ lines = fields.One2Many(
+ 'assay.line', 'assay', "Assay Lines"
+ )
+
+ document = fields.Binary("Analysis", filename='filename')
+ filename = fields.Char('Analysis')
+
+class AssayLine(ModelSQL, ModelView):
+ __name__ = 'assay.line'
+
+ assay = fields.Many2One('assay.assay', "Assay")
+
+ element = fields.Many2One('assay.element', "Element")
+
+ value = fields.Float("Value")
+
+ unit = fields.Many2One('product.uom', "Unit")
+
+ category = fields.Selection([
+ ('assay', 'Assay'),
+ ('penalty', 'Penalty'),
+ ('moisture', 'Moisture'),
+ ], "Category")
+
+ method = fields.Char("Method")
+
+ is_payable = fields.Boolean("Payable")
+
+class AssayElement(ModelSQL, ModelView):
+ __name__ = 'assay.element'
+
+ name = fields.Char("Code") # Cu, Au, As
+ description = fields.Char("Description")
+
+ default_unit = fields.Many2One('product.uom', "Default Unit")
+
+ type = fields.Selection([
+ ('metal', 'Metal'),
+ ('impurity', 'Impurity'),
+ ])
+
class QualityAnalysis(ModelSQL,ModelView):
"Quality Analysis"
__name__ = 'quality.analysis'
@@ -690,6 +752,7 @@ class Line(metaclass=PoolMeta):
finished = fields.Boolean("Mark as finished")
quality_analysis = fields.One2Many('quality.analysis','line',"Quality analysis")
+ assays = fields.One2Many('assay.assay','line',"Assays")
@classmethod
def default_finished(cls):
diff --git a/modules/purchase_trade/purchase.xml b/modules/purchase_trade/purchase.xml
index d692377..9ff5df5 100755
--- a/modules/purchase_trade/purchase.xml
+++ b/modules/purchase_trade/purchase.xml
@@ -173,6 +173,27 @@ this repository contains the full copyright notices and license terms. -->
quality_analysis_form
+
+ assay.assay
+ tree
+ assay_tree
+
+
+ assay.assay
+ form
+ assay_form
+
+
+ assay.line
+ tree
+ assay_line_tree
+
+
+ assay.element
+ form
+ assay_element_form
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/purchase_trade/view/assay_line_tree.xml b/modules/purchase_trade/view/assay_line_tree.xml
new file mode 100644
index 0000000..a515ff6
--- /dev/null
+++ b/modules/purchase_trade/view/assay_line_tree.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/purchase_trade/view/assay_tree.xml b/modules/purchase_trade/view/assay_tree.xml
new file mode 100644
index 0000000..1bbfac3
--- /dev/null
+++ b/modules/purchase_trade/view/assay_tree.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/purchase_trade/view/purchase_line_form.xml b/modules/purchase_trade/view/purchase_line_form.xml
index 8ce4c6c..754d028 100755
--- a/modules/purchase_trade/view/purchase_line_form.xml
+++ b/modules/purchase_trade/view/purchase_line_form.xml
@@ -55,8 +55,8 @@ this repository contains the full copyright notices and license terms. -->
-
-
+
+
From d827fa61408eaa4f667b8b9137e4baa0b2ec0f67 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sat, 21 Mar 2026 18:31:04 +0100
Subject: [PATCH 529/618] 21.03.26
---
modules/purchase_trade/purchase.py | 2 ++
1 file changed, 2 insertions(+)
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index 56318b1..96b8981 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -530,6 +530,7 @@ class PriceComposition(ModelSQL,ModelView):
price = fields.Numeric("Price")
class Assay(ModelSQL, ModelView):
+ "Assay"
__name__ = 'assay.assay'
line = fields.Many2One('purchase.line',"Purchase Line")
@@ -558,6 +559,7 @@ class Assay(ModelSQL, ModelView):
filename = fields.Char('Analysis')
class AssayLine(ModelSQL, ModelView):
+ "Assay Line"
__name__ = 'assay.line'
assay = fields.Many2One('assay.assay', "Assay")
From 5c516465e2ce1c3225e1cf5d95e8931dc8445b42 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sat, 21 Mar 2026 18:36:48 +0100
Subject: [PATCH 530/618] 21.03.26
---
modules/purchase_trade/purchase.py | 1 +
1 file changed, 1 insertion(+)
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index 96b8981..be305ba 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -581,6 +581,7 @@ class AssayLine(ModelSQL, ModelView):
is_payable = fields.Boolean("Payable")
class AssayElement(ModelSQL, ModelView):
+ "Assay Element"
__name__ = 'assay.element'
name = fields.Char("Code") # Cu, Au, As
From fc52aa8bbba945e596fef4dc0ff8fc7132ac91ea Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sat, 21 Mar 2026 18:48:17 +0100
Subject: [PATCH 531/618] 21.03.26
---
modules/purchase_trade/view/assay_tree.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/purchase_trade/view/assay_tree.xml b/modules/purchase_trade/view/assay_tree.xml
index 1bbfac3..621c570 100644
--- a/modules/purchase_trade/view/assay_tree.xml
+++ b/modules/purchase_trade/view/assay_tree.xml
@@ -4,5 +4,5 @@
-
+
\ No newline at end of file
From 36dc48bee036a1421e580b863ecbe3568530f59b Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sat, 21 Mar 2026 19:10:08 +0100
Subject: [PATCH 532/618] 21.03.26
---
modules/purchase_trade/purchase.py | 144 ++++++++++++++++++++-
modules/purchase_trade/view/assay_form.xml | 4 +-
modules/purchase_trade/view/assay_tree.xml | 2 +-
3 files changed, 145 insertions(+), 5 deletions(-)
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index be305ba..2d09ed0 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -529,6 +529,138 @@ class PriceComposition(ModelSQL,ModelView):
component = fields.Char("Component")
price = fields.Numeric("Price")
+class AssayImporter:
+
+ def __init__(self):
+ pool = Pool()
+ self.AssayLine = pool.get('assay.line')
+ self.Element = pool.get('assay.element')
+ self.Uom = pool.get('product.uom')
+
+ # -----------------------------
+ # PUBLIC ENTRYPOINT
+ # -----------------------------
+ def import_from_json(self, data: dict, assay):
+ self._update_assay(data,assay)
+ lines = self._create_lines(data, assay)
+
+ self.AssayLine.save(lines)
+ return assay
+
+ # -----------------------------
+ # HEADER
+ # -----------------------------
+ def _update_assay(self, data):
+ Party = Pool().get('party.party')
+ metadata = data.get('document_metadata', {})
+
+ assay = self.Assay()
+
+ assay.reference = metadata.get('report_reference')
+ assay.date = self._parse_date(metadata.get('issue_date'))
+ assay.type = self._map_type(metadata.get('status'))
+ assay.status = 'draft'
+ assay.lab = Party.getPartyByName(metadata.get('lab_name'))
+
+ assay.save()
+ return assay
+
+ # -----------------------------
+ # LINES
+ # -----------------------------
+ def _create_lines(self, data, assay):
+ lines = []
+
+ # assays
+ for item in data.get('assays', []):
+ lines.append(self._build_line(item, assay, category='assay'))
+
+ # penalties
+ for item in data.get('penalties', []):
+ lines.append(self._build_line(item, assay, category='penalty'))
+
+ # moisture
+ moisture = data.get('weights_and_moisture', {}).get('moisture')
+ if moisture and moisture.get('value') is not None:
+ lines.append(self._build_line({
+ "element": "H2O",
+ "value": moisture.get('value'),
+ "unit": moisture.get('unit')
+ }, assay, category='moisture'))
+
+ return lines
+
+ # -----------------------------
+ # LINE BUILDER
+ # -----------------------------
+ def _build_line(self, item, assay, category):
+ line = self.AssayLine()
+
+ line.assay = assay
+ line.element = self._get_or_create_element(item.get('element'))
+ line.value = self._safe_float(item.get('value'))
+ line.unit = self._get_uom(item.get('unit'))
+ line.category = category
+
+ line.method = item.get('method')
+ line.is_payable = item.get('is_payable', False)
+
+ return line
+
+ # -----------------------------
+ # HELPERS
+ # -----------------------------
+ def _get_or_create_element(self, code):
+ if not code:
+ return None
+
+ elements = self.Element.search([('name', '=', code)])
+ if elements:
+ return elements[0]
+
+ # auto-create (optionnel mais pratique)
+ element = self.Element()
+ element.name = code
+ element.save()
+ return element
+
+ def _get_uom(self, unit_name):
+ if not unit_name:
+ return None
+
+ uoms = self.Uom.search([('symbol', '=', unit_name)])
+ if uoms:
+ return uoms[0]
+
+ return None # ou lever une erreur selon ton besoin
+
+ def _parse_date(self, date_str):
+ if not date_str:
+ return None
+ try:
+ return datetime.datetime.strptime(date_str, "%Y-%m-%d").date()
+ except Exception:
+ return None
+
+ def _safe_float(self, value):
+ try:
+ return float(value)
+ except Exception:
+ return None
+
+ def _map_type(self, status):
+ if not status:
+ return 'provisional'
+
+ status = status.lower()
+
+ if 'final' in status:
+ return 'final'
+ if 'umpire' in status:
+ return 'umpire'
+
+ return 'provisional'
+
class Assay(ModelSQL, ModelView):
"Assay"
__name__ = 'assay.assay'
@@ -549,7 +681,7 @@ class Assay(ModelSQL, ModelView):
('validated', 'Validated'),
], "Status")
- laboratory = fields.Char("Laboratory")
+ lab = fields.Many2One('party.party',"Laboratory")
lines = fields.One2Many(
'assay.line', 'assay', "Assay Lines"
@@ -973,7 +1105,15 @@ class Line(metaclass=PoolMeta):
f = Fee(line.fee_)
f.purchase = line.purchase
Fee.save([f])
-
+
+ if line.assays:
+ for assay in line.assays:
+ if not assay.lines and assay.document:
+ data = json.load(f)
+ importer = AssayImporter()
+ importer.import_from_json(data,assay)
+ logger.info("Updated assay:%s", assay.id)
+
def check_from_to(self,tr):
if tr.pricing_period:
date_from,date_to, d, include, dates = tr.getDateWithEstTrigger(1)
diff --git a/modules/purchase_trade/view/assay_form.xml b/modules/purchase_trade/view/assay_form.xml
index f9f763f..0208528 100644
--- a/modules/purchase_trade/view/assay_form.xml
+++ b/modules/purchase_trade/view/assay_form.xml
@@ -7,8 +7,8 @@
-
-
+
+
diff --git a/modules/purchase_trade/view/assay_tree.xml b/modules/purchase_trade/view/assay_tree.xml
index 621c570..df9b59b 100644
--- a/modules/purchase_trade/view/assay_tree.xml
+++ b/modules/purchase_trade/view/assay_tree.xml
@@ -3,6 +3,6 @@
-
+
\ No newline at end of file
From 1f4b36633b15b6eb291e642440b63f5cbae9d080 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sat, 21 Mar 2026 19:39:15 +0100
Subject: [PATCH 533/618] 21.03.26
---
modules/purchase_trade/purchase.py | 17 ++++++++++++++---
1 file changed, 14 insertions(+), 3 deletions(-)
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index 2d09ed0..0ce3a43 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -24,6 +24,8 @@ 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
+import requests
+import io
logger = logging.getLogger(__name__)
@@ -550,12 +552,10 @@ class AssayImporter:
# -----------------------------
# HEADER
# -----------------------------
- def _update_assay(self, data):
+ def _update_assay(self, data, assay):
Party = Pool().get('party.party')
metadata = data.get('document_metadata', {})
- assay = self.Assay()
-
assay.reference = metadata.get('report_reference')
assay.date = self._parse_date(metadata.get('issue_date'))
assay.type = self._map_type(metadata.get('status'))
@@ -1109,6 +1109,17 @@ class Line(metaclass=PoolMeta):
if line.assays:
for assay in line.assays:
if not assay.lines and assay.document:
+ file_data = assay.document or b""
+ logger.info(f"File size: {len(file_data)} bytes")
+ file_name = assay.file_name or "document"
+
+ response = requests.post(
+ "http://62.72.36.116:8006/ocr-parse-assay",
+ files={"file": (file_name, io.BytesIO(file_data))}
+ )
+ response.raise_for_status()
+ f = response.json()
+ logger.info("RUN_OCR_RESPONSE:%s",f)
data = json.load(f)
importer = AssayImporter()
importer.import_from_json(data,assay)
From f83c62ffa83ffce5f1381e0986599f26eb021125 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sat, 21 Mar 2026 19:46:50 +0100
Subject: [PATCH 534/618] 21.03.26
---
modules/purchase_trade/purchase.py | 2 ++
1 file changed, 2 insertions(+)
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index 0ce3a43..5afd049 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -671,12 +671,14 @@ class Assay(ModelSQL, ModelView):
date = fields.Date("Analysis Date")
type = fields.Selection([
+ (None, ''),
('provisional', 'Provisional'),
('final', 'Final'),
('umpire', 'Umpire'),
], "Type")
status = fields.Selection([
+ (None, ''),
('draft', 'Draft'),
('validated', 'Validated'),
], "Status")
From 95f5c4af579bf0452b7373b6373bc8b5025a8efa Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sat, 21 Mar 2026 20:00:42 +0100
Subject: [PATCH 535/618] 21.03.26
---
modules/purchase_trade/purchase.py | 9 ++++-----
modules/purchase_trade/view/assay_form.xml | 4 ++--
modules/purchase_trade/view/assay_tree.xml | 1 -
3 files changed, 6 insertions(+), 8 deletions(-)
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index 5afd049..9a971df 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -689,8 +689,7 @@ class Assay(ModelSQL, ModelView):
'assay.line', 'assay', "Assay Lines"
)
- document = fields.Binary("Analysis", filename='filename')
- filename = fields.Char('Analysis')
+ analysis = fields.Many2One('document.incoming',"Analysis")
class AssayLine(ModelSQL, ModelView):
"Assay Line"
@@ -1110,10 +1109,10 @@ class Line(metaclass=PoolMeta):
if line.assays:
for assay in line.assays:
- if not assay.lines and assay.document:
- file_data = assay.document or b""
+ if not assay.lines and assay.analysis:
+ file_data = assay.analysis.data or b""
logger.info(f"File size: {len(file_data)} bytes")
- file_name = assay.file_name or "document"
+ file_name = assay.analysis.name or "document"
response = requests.post(
"http://62.72.36.116:8006/ocr-parse-assay",
diff --git a/modules/purchase_trade/view/assay_form.xml b/modules/purchase_trade/view/assay_form.xml
index 0208528..f29e006 100644
--- a/modules/purchase_trade/view/assay_form.xml
+++ b/modules/purchase_trade/view/assay_form.xml
@@ -9,8 +9,8 @@
-
-
+
+
\ No newline at end of file
diff --git a/modules/purchase_trade/view/assay_tree.xml b/modules/purchase_trade/view/assay_tree.xml
index df9b59b..70a21ca 100644
--- a/modules/purchase_trade/view/assay_tree.xml
+++ b/modules/purchase_trade/view/assay_tree.xml
@@ -4,5 +4,4 @@
-
\ No newline at end of file
From 7c746ad9315bf4e93912154f8ec9f1673a97ee5c Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sat, 21 Mar 2026 20:10:55 +0100
Subject: [PATCH 536/618] 21.03.26
---
modules/purchase_trade/purchase.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index 9a971df..0f3046c 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -1121,7 +1121,7 @@ class Line(metaclass=PoolMeta):
response.raise_for_status()
f = response.json()
logger.info("RUN_OCR_RESPONSE:%s",f)
- data = json.load(f)
+ data = json.load(f.get("parsed_data"))
importer = AssayImporter()
importer.import_from_json(data,assay)
logger.info("Updated assay:%s", assay.id)
From 834ae46a1473b7d1bdf0a42a757c5885d3a7bd8b Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sat, 21 Mar 2026 21:56:40 +0100
Subject: [PATCH 537/618] 21.03.26
---
modules/purchase_trade/purchase.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index 0f3046c..cf055b7 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -1121,7 +1121,7 @@ class Line(metaclass=PoolMeta):
response.raise_for_status()
f = response.json()
logger.info("RUN_OCR_RESPONSE:%s",f)
- data = json.load(f.get("parsed_data"))
+ data = json.load(json.dumps(f.get("parsed_data"), indent=2))
importer = AssayImporter()
importer.import_from_json(data,assay)
logger.info("Updated assay:%s", assay.id)
From eb98ef87bb9df5994f608c2a824f3cf914ba8360 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sat, 21 Mar 2026 22:03:43 +0100
Subject: [PATCH 538/618] 21.03.26
---
modules/purchase_trade/purchase.py | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index cf055b7..440ca8a 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -1120,10 +1120,16 @@ class Line(metaclass=PoolMeta):
)
response.raise_for_status()
f = response.json()
- logger.info("RUN_OCR_RESPONSE:%s",f)
- data = json.load(json.dumps(f.get("parsed_data"), indent=2))
+ logger.info("RUN_OCR_RESPONSE:%s", f)
+
+ parsed_data_str = f.get("parsed_data") # string JSON venant de ton endpoint
+ if parsed_data_str:
+ data = json.loads(parsed_data_str)
+ else:
+ data = {} # fallback si aucune donnée
+
importer = AssayImporter()
- importer.import_from_json(data,assay)
+ importer.import_from_json(data, assay)
logger.info("Updated assay:%s", assay.id)
def check_from_to(self,tr):
From 931b5b9ea27c5e925cfe1974b6ff48101f6fdf0d Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sat, 21 Mar 2026 22:11:23 +0100
Subject: [PATCH 539/618] 21.03.26
---
modules/purchase_trade/purchase.py | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index 440ca8a..493f7ce 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -1124,7 +1124,10 @@ class Line(metaclass=PoolMeta):
parsed_data_str = f.get("parsed_data") # string JSON venant de ton endpoint
if parsed_data_str:
- data = json.loads(parsed_data_str)
+ if isinstance(parsed_data_str, str):
+ data = json.loads(parsed_data_str)
+ else:
+ data = parsed_data_str or {}
else:
data = {} # fallback si aucune donnée
From 7ba170e072c1534eed7e830f9f73af98a73ee4ec Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sat, 21 Mar 2026 22:18:29 +0100
Subject: [PATCH 540/618] 21.03.26
---
modules/purchase_trade/purchase.py | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index 493f7ce..81a355a 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -723,9 +723,10 @@ class AssayElement(ModelSQL, ModelView):
default_unit = fields.Many2One('product.uom', "Default Unit")
type = fields.Selection([
+ (None, ''),
('metal', 'Metal'),
('impurity', 'Impurity'),
- ])
+ ], "Type")
class QualityAnalysis(ModelSQL,ModelView):
"Quality Analysis"
From 8cc091ef5737bd5e5cd860862218133fdb68433a Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 22 Mar 2026 09:15:19 +0100
Subject: [PATCH 541/618] 22.03.26
---
modules/purchase_trade/purchase.py | 28 ++++++++++++++++++++--------
1 file changed, 20 insertions(+), 8 deletions(-)
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index 81a355a..0f16b5d 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -537,7 +537,7 @@ class AssayImporter:
pool = Pool()
self.AssayLine = pool.get('assay.line')
self.Element = pool.get('assay.element')
- self.Uom = pool.get('product.uom')
+ self.Unit = pool.get('assay.unit')
# -----------------------------
# PUBLIC ENTRYPOINT
@@ -599,7 +599,7 @@ class AssayImporter:
line.assay = assay
line.element = self._get_or_create_element(item.get('element'))
line.value = self._safe_float(item.get('value'))
- line.unit = self._get_uom(item.get('unit'))
+ line.unit = self._get_unit(item.get('unit'))
line.category = category
line.method = item.get('method')
@@ -624,13 +624,13 @@ class AssayImporter:
element.save()
return element
- def _get_uom(self, unit_name):
+ def _get_unit(self, unit_name):
if not unit_name:
return None
- uoms = self.Uom.search([('symbol', '=', unit_name)])
- if uoms:
- return uoms[0]
+ units = self.Unit.search([('symbol', '=', unit_name)])
+ if units:
+ return units[0]
return None # ou lever une erreur selon ton besoin
@@ -660,7 +660,19 @@ class AssayImporter:
return 'umpire'
return 'provisional'
-
+
+class AssayUnit(ModelSQL, ModelView):
+ 'Assay Unit'
+ __name__ = 'assay.unit'
+
+ name = fields.Char('Name') # Percent, g/t, ppm
+ symbol = fields.Char('Symbol') # %, g/t, ppm
+ dimension = fields.Selection([
+ ('mass_fraction', 'Mass Fraction'),
+ ('grade', 'Grade'),
+ ('trace', 'Trace'),
+ ])
+
class Assay(ModelSQL, ModelView):
"Assay"
__name__ = 'assay.assay'
@@ -701,7 +713,7 @@ class AssayLine(ModelSQL, ModelView):
value = fields.Float("Value")
- unit = fields.Many2One('product.uom', "Unit")
+ unit = fields.Many2One('assay.unit', "Unit")
category = fields.Selection([
('assay', 'Assay'),
From 5f475d57141410d4acdad4664520a01479522032 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 22 Mar 2026 09:17:30 +0100
Subject: [PATCH 542/618] 22.03.26
---
modules/purchase_trade/__init__.py | 1 +
1 file changed, 1 insertion(+)
diff --git a/modules/purchase_trade/__init__.py b/modules/purchase_trade/__init__.py
index 171353f..30a7040 100755
--- a/modules/purchase_trade/__init__.py
+++ b/modules/purchase_trade/__init__.py
@@ -172,6 +172,7 @@ def register():
purchase.Assay,
purchase.AssayLine,
purchase.AssayElement,
+ purchase.AssayUnit,
backtoback.Backtoback,
dimension.AnalyticDimension,
dimension.AnalyticDimensionValue,
From 85bb272edffe5b5510a22f2684e368522c145aaf Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 22 Mar 2026 09:43:36 +0100
Subject: [PATCH 543/618] 22.03.26
---
modules/purchase_trade/purchase.py | 22 +++++++++++++++++++++-
1 file changed, 21 insertions(+), 1 deletion(-)
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index 0f16b5d..c01f26c 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -635,6 +635,25 @@ class AssayImporter:
return None # ou lever une erreur selon ton besoin
def _parse_date(self, date_str):
+ if not date_str:
+ return None
+
+ formats = [
+ "%Y-%m-%d", # 2025-02-28
+ "%d-%b-%Y", # 28-Feb-2025
+ "%d-%B-%Y", # 28-February-2025
+ "%d/%m/%Y", # 28/02/2025
+ ]
+
+ for fmt in formats:
+ try:
+ return datetime.datetime.strptime(date_str, fmt).date()
+ except Exception:
+ continue
+
+ return None
+
+ def _parse_date_(self, date_str):
if not date_str:
return None
try:
@@ -664,6 +683,7 @@ class AssayImporter:
class AssayUnit(ModelSQL, ModelView):
'Assay Unit'
__name__ = 'assay.unit'
+ _rec_name = 'symbol'
name = fields.Char('Name') # Percent, g/t, ppm
symbol = fields.Char('Symbol') # %, g/t, ppm
@@ -679,7 +699,7 @@ class Assay(ModelSQL, ModelView):
line = fields.Many2One('purchase.line',"Purchase Line")
- reference = fields.Char("Lab Reference")
+ reference = fields.Char("Reference")
date = fields.Date("Analysis Date")
type = fields.Selection([
From d10d805753883b8ad04a5faec39dbb4e51e8b19e Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 22 Mar 2026 11:22:09 +0100
Subject: [PATCH 544/618] 22.03.26
---
modules/purchase_trade/__init__.py | 3 +
modules/purchase_trade/purchase.py | 62 +++++++++++++++++++
modules/purchase_trade/purchase.xml | 11 ++++
.../purchase_trade/view/concentrate_form.xml | 22 +++++++
.../purchase_trade/view/concentrate_tree.xml | 6 ++
.../view/purchase_line_form.xml | 12 +++-
6 files changed, 113 insertions(+), 3 deletions(-)
create mode 100644 modules/purchase_trade/view/concentrate_form.xml
create mode 100644 modules/purchase_trade/view/concentrate_tree.xml
diff --git a/modules/purchase_trade/__init__.py b/modules/purchase_trade/__init__.py
index 30a7040..f7c201e 100755
--- a/modules/purchase_trade/__init__.py
+++ b/modules/purchase_trade/__init__.py
@@ -173,6 +173,9 @@ def register():
purchase.AssayLine,
purchase.AssayElement,
purchase.AssayUnit,
+ purchase.PayableRule,
+ purchase.PenaltyRule,
+ purchase.ConcentrateTerm,
backtoback.Backtoback,
dimension.AnalyticDimension,
dimension.AnalyticDimensionValue,
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index c01f26c..cca9aef 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -760,6 +760,67 @@ class AssayElement(ModelSQL, ModelView):
('impurity', 'Impurity'),
], "Type")
+class PayableRule(ModelSQL, ModelView):
+ "Payable Rule"
+ __name__ = 'payable.rule'
+
+ element = fields.Many2One('assay.element', "Element")
+
+ payable_percent = fields.Numeric("Payable %")
+
+ deduction_value = fields.Numeric("Deduction Value")
+ deduction_unit = fields.Many2One('assay.unit',"Unit")
+
+class PenaltyRule(ModelSQL, ModelView):
+ "Penalty Rule"
+ __name__ = 'penalty.rule'
+
+ element = fields.Many2One('assay.element', "Element")
+
+ threshold = fields.Numeric("Treshold")
+ threshold_unit = fields.Many2One('assay.unit',"Unit")
+
+ step = fields.Numeric("Step")
+ penalty_value = fields.Numeric("Penalty Value")
+ currency = fields.Many2One('currency.currency',"Curr")
+ unit = fields.Many2One('product.uom',"Unit")
+
+class ConcentrateTerm(ModelSQL, ModelView):
+ "Concentrate Term"
+ __name__ = 'concentrate.term'
+
+ line = fields.Many2One(
+ 'purchase.line', "Line",
+ ondelete='CASCADE'
+ )
+
+ element = fields.Many2One('assay.element',"Element")
+
+ component = fields.Many2One(
+ 'pricing.component',
+ "Price Component"
+ )
+
+ manual_price = fields.Numeric(
+ "Manual Price",
+ digits=(16, 6)
+ )
+
+ currency = fields.Many2One('currency.currency',"Curr")
+ unit = fields.Many2One('product.uom',"Unit")
+
+ payable_rule = fields.Many2One(
+ 'payable.rule',"Payable Rule"
+ )
+
+ penalty_rules = fields.Many2One(
+ 'penalty.rule',
+ "Penalties"
+ )
+
+ valid_from = fields.Date("Valid From")
+ valid_to = fields.Date("Valid To")
+
class QualityAnalysis(ModelSQL,ModelView):
"Quality Analysis"
__name__ = 'quality.analysis'
@@ -922,6 +983,7 @@ class Line(metaclass=PoolMeta):
quality_analysis = fields.One2Many('quality.analysis','line',"Quality analysis")
assays = fields.One2Many('assay.assay','line',"Assays")
+ terms = fields.One2Many('concentrate.term','line',"Terms")
@classmethod
def default_finished(cls):
diff --git a/modules/purchase_trade/purchase.xml b/modules/purchase_trade/purchase.xml
index 9ff5df5..2576cbd 100755
--- a/modules/purchase_trade/purchase.xml
+++ b/modules/purchase_trade/purchase.xml
@@ -194,6 +194,17 @@ this repository contains the full copyright notices and license terms. -->
assay_element_form
+
+ concentrate.term
+ tree
+ concentrate_tree
+
+
+ concentrate.term
+ form
+ concentrate_form
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/purchase_trade/view/concentrate_tree.xml b/modules/purchase_trade/view/concentrate_tree.xml
new file mode 100644
index 0000000..be11b80
--- /dev/null
+++ b/modules/purchase_trade/view/concentrate_tree.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/purchase_trade/view/purchase_line_form.xml b/modules/purchase_trade/view/purchase_line_form.xml
index 754d028..2e0ab9f 100755
--- a/modules/purchase_trade/view/purchase_line_form.xml
+++ b/modules/purchase_trade/view/purchase_line_form.xml
@@ -55,9 +55,15 @@ this repository contains the full copyright notices and license terms. -->
-
-
-
+
+
+
+
+
+
+
+
+
From 1326c8df4c3ff7dc13feb82b014f0aa269ca12ae Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 22 Mar 2026 11:27:48 +0100
Subject: [PATCH 545/618] 22.03.26
---
modules/purchase_trade/view/purchase_line_form.xml | 1 +
1 file changed, 1 insertion(+)
diff --git a/modules/purchase_trade/view/purchase_line_form.xml b/modules/purchase_trade/view/purchase_line_form.xml
index 2e0ab9f..8bb5910 100755
--- a/modules/purchase_trade/view/purchase_line_form.xml
+++ b/modules/purchase_trade/view/purchase_line_form.xml
@@ -64,6 +64,7 @@ this repository contains the full copyright notices and license terms. -->
+
From 090b4ea5c626f59ffe7d1c7f75feed103ba0151b Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 22 Mar 2026 14:53:53 +0100
Subject: [PATCH 546/618] 22.03.26
---
modules/purchase_trade/purchase.py | 23 ++++++++++++++++++-
.../view/purchase_line_form.xml | 8 +++++++
2 files changed, 30 insertions(+), 1 deletion(-)
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index cca9aef..57c668b 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -763,7 +763,9 @@ class AssayElement(ModelSQL, ModelView):
class PayableRule(ModelSQL, ModelView):
"Payable Rule"
__name__ = 'payable.rule'
+ _rec_name = 'name'
+ name = fields.Char("Name")
element = fields.Many2One('assay.element', "Element")
payable_percent = fields.Numeric("Payable %")
@@ -774,7 +776,9 @@ class PayableRule(ModelSQL, ModelView):
class PenaltyRule(ModelSQL, ModelView):
"Penalty Rule"
__name__ = 'penalty.rule'
-
+ _rec_name = 'name'
+
+ name = fields.Char("Name")
element = fields.Many2One('assay.element', "Element")
threshold = fields.Numeric("Treshold")
@@ -984,6 +988,14 @@ class Line(metaclass=PoolMeta):
quality_analysis = fields.One2Many('quality.analysis','line',"Quality analysis")
assays = fields.One2Many('assay.assay','line',"Assays")
terms = fields.One2Many('concentrate.term','line',"Terms")
+ term = fields.Many2One('document.incoming',"Contract")
+ update_pricing = fields.Boolean("Update pricing")
+ assay_state = fields.Selection([
+ (None, ''),
+ ('provisional', 'Provisional'),
+ ('final', 'Final'),
+ ('umpire', 'Umpire'),
+ ], "Type")
@classmethod
def default_finished(cls):
@@ -1247,6 +1259,15 @@ class Line(metaclass=PoolMeta):
TR.save([tr])
def check_pricing(self):
+ if self.terms and self.update_pricing:
+ Pricing = Pool().get('pricing.component')
+ pricings = Pricing.search(['line','=',self.id])
+ if pricings:
+ Pricing.delete(pricings)
+ for t in self.terms:
+ pc = Pricing()
+ pc.curve = t.curve
+
if self.price_components:
for pc in self.price_components:
if not pc.auto:
diff --git a/modules/purchase_trade/view/purchase_line_form.xml b/modules/purchase_trade/view/purchase_line_form.xml
index 8bb5910..345ebff 100755
--- a/modules/purchase_trade/view/purchase_line_form.xml
+++ b/modules/purchase_trade/view/purchase_line_form.xml
@@ -61,6 +61,14 @@ this repository contains the full copyright notices and license terms. -->
+
+
+
+
+
+
+
+
From 765d90512da88739e0ad4277ad1612dc438870fd Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 22 Mar 2026 15:02:24 +0100
Subject: [PATCH 547/618] 22.03.26
---
modules/purchase_trade/view/purchase_line_form.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/purchase_trade/view/purchase_line_form.xml b/modules/purchase_trade/view/purchase_line_form.xml
index 345ebff..e527669 100755
--- a/modules/purchase_trade/view/purchase_line_form.xml
+++ b/modules/purchase_trade/view/purchase_line_form.xml
@@ -69,7 +69,7 @@ this repository contains the full copyright notices and license terms. -->
-
+
From 7dba25c6d75fcea11c070faa5f436d80bc42a1f2 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 22 Mar 2026 15:25:08 +0100
Subject: [PATCH 548/618] 22.03.26
---
modules/purchase_trade/purchase.py | 7 +++++++
modules/purchase_trade/purchase.xml | 6 ++++++
.../purchase_trade/view/payable_rule_form.xml | 19 +++++++++++++++++++
3 files changed, 32 insertions(+)
create mode 100644 modules/purchase_trade/view/payable_rule_form.xml
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index 57c668b..6a315a9 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -773,6 +773,13 @@ class PayableRule(ModelSQL, ModelView):
deduction_value = fields.Numeric("Deduction Value")
deduction_unit = fields.Many2One('assay.unit',"Unit")
+ payable_method = fields.Selection([
+ ('percent', 'Fixed %'),
+ ('grade_minus', 'Grade minus deduction'),
+ ('min_of_both', 'Min(% of grade, grade - deduction)'),
+ ], "Method")
+ min_payable = fields.Numeric("Floor (min payable)") # ex: le "min -1" du Cu
+
class PenaltyRule(ModelSQL, ModelView):
"Penalty Rule"
__name__ = 'penalty.rule'
diff --git a/modules/purchase_trade/purchase.xml b/modules/purchase_trade/purchase.xml
index 2576cbd..120f673 100755
--- a/modules/purchase_trade/purchase.xml
+++ b/modules/purchase_trade/purchase.xml
@@ -205,6 +205,12 @@ this repository contains the full copyright notices and license terms. -->
concentrate_form
+
+ payable.rule
+ form
+ payable_rule_form
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
From dfdaf7a1cdee7d58fb556d0275326be89013ee4d Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 22 Mar 2026 17:03:58 +0100
Subject: [PATCH 549/618] 22.03.26
---
modules/purchase_trade/__init__.py | 1 +
modules/purchase_trade/purchase.py | 78 ++++++++++++++++---
modules/purchase_trade/purchase.xml | 16 ++++
.../purchase_trade/view/penalty_rule_form.xml | 8 ++
.../view/penalty_rule_tier_tree.xml | 7 ++
.../purchase_trade/view/penalty_rule_tree.xml | 5 ++
6 files changed, 106 insertions(+), 9 deletions(-)
create mode 100644 modules/purchase_trade/view/penalty_rule_form.xml
create mode 100644 modules/purchase_trade/view/penalty_rule_tier_tree.xml
create mode 100644 modules/purchase_trade/view/penalty_rule_tree.xml
diff --git a/modules/purchase_trade/__init__.py b/modules/purchase_trade/__init__.py
index f7c201e..20ad0af 100755
--- a/modules/purchase_trade/__init__.py
+++ b/modules/purchase_trade/__init__.py
@@ -175,6 +175,7 @@ def register():
purchase.AssayUnit,
purchase.PayableRule,
purchase.PenaltyRule,
+ purchase.PenaltyRuleTier,
purchase.ConcentrateTerm,
backtoback.Backtoback,
dimension.AnalyticDimension,
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index 6a315a9..83d77ee 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -778,23 +778,83 @@ class PayableRule(ModelSQL, ModelView):
('grade_minus', 'Grade minus deduction'),
('min_of_both', 'Min(% of grade, grade - deduction)'),
], "Method")
- min_payable = fields.Numeric("Floor (min payable)") # ex: le "min -1" du Cu
+ min_payable = fields.Numeric("Floor (min payable)")
+
+ def compute_payable_quantity(self, grade):
+ """
+ Retourne la quantité payable dans l'unité du grade.
+ grade : Decimal (ex: Decimal('26.862'))
+ """
+ grade = Decimal(str(grade))
+
+ if self.payable_method == 'percent':
+ result = grade * self.payable_percent / Decimal(100)
+
+ elif self.payable_method == 'grade_minus':
+ result = grade - self.deduction_value
+
+ elif self.payable_method == 'min_of_both':
+ by_percent = grade * self.payable_percent / Decimal(100)
+ by_deduction = grade - self.deduction_value
+ result = min(by_percent, by_deduction)
+
+ if self.min_payable is not None:
+ result = max(result, self.min_payable)
+
+ return result
+
+class PenaltyRuleTier(ModelSQL, ModelView):
+ "Penalty Rule Tier"
+ __name__ = 'penalty.rule.tier'
+ rule = fields.Many2One('penalty.rule', "Rule", ondelete='CASCADE')
+ threshold_from = fields.Numeric("From")
+ threshold_to = fields.Numeric("To") # None = pas de plafond
+ threshold_unit = fields.Many2One('assay.unit', "Unit")
+ deduction_per_unit = fields.Numeric("Deduction / unit")
+ penalty_value = fields.Numeric("Penalty Value (USD/DMT)")
+
+ def compute_tier_penalty(self, grade, dry_weight_dmt):
+ """
+ Retourne la pénalité USD pour ce palier uniquement.
+ grade : Decimal – teneur brute de l'élément
+ dry_weight_dmt: Decimal – poids sec en DMT
+ """
+ grade = Decimal(str(grade))
+ dry_weight_dmt = Decimal(str(dry_weight_dmt))
+
+ # Grade en dessous du seuil bas → ce palier ne s'applique pas
+ if grade <= self.threshold_from:
+ return Decimal(0)
+
+ # Excès au-dessus du seuil bas, plafonné au seuil haut si existant
+ excess_top = grade if self.threshold_to is None else min(grade, self.threshold_to)
+ excess = excess_top - self.threshold_from
+
+ # USD/DMT × DMT
+ return (excess * self.penalty_value * dry_weight_dmt).quantize(Decimal('0.01'))
+
class PenaltyRule(ModelSQL, ModelView):
"Penalty Rule"
__name__ = 'penalty.rule'
- _rec_name = 'name'
-
name = fields.Char("Name")
element = fields.Many2One('assay.element', "Element")
+ tiers = fields.One2Many('penalty.rule.tier', 'rule', "Tiers")
- threshold = fields.Numeric("Treshold")
- threshold_unit = fields.Many2One('assay.unit',"Unit")
+ def compute_penalty(self, grade, dry_weight_dmt):
+ """
+ Retourne la pénalité totale USD en cumulant tous les paliers traversés.
+ grade : Decimal – teneur brute de l'élément
+ dry_weight_dmt: Decimal – poids sec en DMT
+ """
+ grade = Decimal(str(grade))
+ dry_weight_dmt = Decimal(str(dry_weight_dmt))
- step = fields.Numeric("Step")
- penalty_value = fields.Numeric("Penalty Value")
- currency = fields.Many2One('currency.currency',"Curr")
- unit = fields.Many2One('product.uom',"Unit")
+ total = Decimal(0)
+ for tier in self.tiers:
+ total += tier.compute_tier_penalty(grade, dry_weight_dmt)
+
+ return total.quantize(Decimal('0.01'))
class ConcentrateTerm(ModelSQL, ModelView):
"Concentrate Term"
diff --git a/modules/purchase_trade/purchase.xml b/modules/purchase_trade/purchase.xml
index 120f673..5668384 100755
--- a/modules/purchase_trade/purchase.xml
+++ b/modules/purchase_trade/purchase.xml
@@ -211,6 +211,22 @@ this repository contains the full copyright notices and license terms. -->
payable_rule_form
+
+ penalty.rule
+ form
+ penalty_rule_form
+
+
+ penalty.rule
+ tree
+ penalty_rule_tree
+
+
+ penalty.rule.tier
+ tree
+ penalty_rule_tier_tree
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/purchase_trade/view/penalty_rule_tier_tree.xml b/modules/purchase_trade/view/penalty_rule_tier_tree.xml
new file mode 100644
index 0000000..a7c4b86
--- /dev/null
+++ b/modules/purchase_trade/view/penalty_rule_tier_tree.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/purchase_trade/view/penalty_rule_tree.xml b/modules/purchase_trade/view/penalty_rule_tree.xml
new file mode 100644
index 0000000..f0527d3
--- /dev/null
+++ b/modules/purchase_trade/view/penalty_rule_tree.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
From 717b51ad19b4f643265fa0b22891628b8eb9520c Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 22 Mar 2026 18:51:48 +0100
Subject: [PATCH 550/618] 22.03.26
---
modules/purchase_trade/purchase.py | 46 ++++++++++++-------
.../purchase_trade/view/concentrate_tree.xml | 3 ++
2 files changed, 32 insertions(+), 17 deletions(-)
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index 83d77ee..394eae8 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -731,7 +731,7 @@ class AssayLine(ModelSQL, ModelView):
element = fields.Many2One('assay.element', "Element")
- value = fields.Float("Value")
+ value = fields.Numeric("Value")
unit = fields.Many2One('assay.unit', "Unit")
@@ -813,15 +813,14 @@ class PenaltyRuleTier(ModelSQL, ModelView):
deduction_per_unit = fields.Numeric("Deduction / unit")
penalty_value = fields.Numeric("Penalty Value (USD/DMT)")
- def compute_tier_penalty(self, grade, dry_weight_dmt):
+ def compute_tier_penalty(self, grade):
"""
Retourne la pénalité USD pour ce palier uniquement.
grade : Decimal – teneur brute de l'élément
dry_weight_dmt: Decimal – poids sec en DMT
"""
grade = Decimal(str(grade))
- dry_weight_dmt = Decimal(str(dry_weight_dmt))
-
+
# Grade en dessous du seuil bas → ce palier ne s'applique pas
if grade <= self.threshold_from:
return Decimal(0)
@@ -831,7 +830,7 @@ class PenaltyRuleTier(ModelSQL, ModelView):
excess = excess_top - self.threshold_from
# USD/DMT × DMT
- return (excess * self.penalty_value * dry_weight_dmt).quantize(Decimal('0.01'))
+ return (excess * self.penalty_value).quantize(Decimal('0.01'))
class PenaltyRule(ModelSQL, ModelView):
@@ -841,18 +840,17 @@ class PenaltyRule(ModelSQL, ModelView):
element = fields.Many2One('assay.element', "Element")
tiers = fields.One2Many('penalty.rule.tier', 'rule', "Tiers")
- def compute_penalty(self, grade, dry_weight_dmt):
+ def compute_penalty(self, grade):
"""
Retourne la pénalité totale USD en cumulant tous les paliers traversés.
grade : Decimal – teneur brute de l'élément
dry_weight_dmt: Decimal – poids sec en DMT
"""
grade = Decimal(str(grade))
- dry_weight_dmt = Decimal(str(dry_weight_dmt))
-
+
total = Decimal(0)
for tier in self.tiers:
- total += tier.compute_tier_penalty(grade, dry_weight_dmt)
+ total += tier.compute_tier_penalty(grade)
return total.quantize(Decimal('0.01'))
@@ -873,7 +871,7 @@ class ConcentrateTerm(ModelSQL, ModelView):
)
manual_price = fields.Numeric(
- "Manual Price",
+ "Price",
digits=(16, 6)
)
@@ -1325,16 +1323,30 @@ class Line(metaclass=PoolMeta):
TR = Pool().get('pricing.trigger')
TR.save([tr])
+ def get_element_grade(self, state, element):
+ if self.assays:
+ for assay in self.assays:
+ if assay.type == state:
+ for line in assay.lines:
+ if line.element == element:
+ return line.value
+
def check_pricing(self):
if self.terms and self.update_pricing:
- Pricing = Pool().get('pricing.component')
- pricings = Pricing.search(['line','=',self.id])
- if pricings:
- Pricing.delete(pricings)
+ Concentrate = Pool().get('concentrate.term')
for t in self.terms:
- pc = Pricing()
- pc.curve = t.curve
-
+ if not t.component:
+ grade = self.get_element_grade(self.assay_state,t.element)
+ logger.info("GRADE:%s",grade)
+ if grade:
+ cp = [c for c in self.price_summary if c.price_component == t.component]
+ if cp:
+ cp = cp[0]
+ price = cp.get_last_price()
+ logger.info("PRICE:%s",price)
+ t.manual_price = t.payable_rule.compute_payable_quantity(grade) * price / Decimal(100) - t.penalty_rules.compute_penalty(grade,self.quantity)
+ Concentrate.save([t])
+
if self.price_components:
for pc in self.price_components:
if not pc.auto:
diff --git a/modules/purchase_trade/view/concentrate_tree.xml b/modules/purchase_trade/view/concentrate_tree.xml
index be11b80..0cac679 100644
--- a/modules/purchase_trade/view/concentrate_tree.xml
+++ b/modules/purchase_trade/view/concentrate_tree.xml
@@ -3,4 +3,7 @@
+
+
+
\ No newline at end of file
From 0b9c85f5ad110fdc9e2783f24c61a8e3062b2feb Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 22 Mar 2026 18:58:46 +0100
Subject: [PATCH 551/618] 22.03.26
---
modules/purchase_trade/purchase.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index 394eae8..a7f96b5 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -1335,7 +1335,7 @@ class Line(metaclass=PoolMeta):
if self.terms and self.update_pricing:
Concentrate = Pool().get('concentrate.term')
for t in self.terms:
- if not t.component:
+ if t.component:
grade = self.get_element_grade(self.assay_state,t.element)
logger.info("GRADE:%s",grade)
if grade:
@@ -1346,7 +1346,7 @@ class Line(metaclass=PoolMeta):
logger.info("PRICE:%s",price)
t.manual_price = t.payable_rule.compute_payable_quantity(grade) * price / Decimal(100) - t.penalty_rules.compute_penalty(grade,self.quantity)
Concentrate.save([t])
-
+
if self.price_components:
for pc in self.price_components:
if not pc.auto:
From 2fc6fbbd76992adcc64eae86bc7b1e2f0472cc36 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 22 Mar 2026 19:02:53 +0100
Subject: [PATCH 552/618] 22.03.26
---
modules/purchase_trade/purchase.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index a7f96b5..4e6e74f 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -1342,7 +1342,7 @@ class Line(metaclass=PoolMeta):
cp = [c for c in self.price_summary if c.price_component == t.component]
if cp:
cp = cp[0]
- price = cp.get_last_price()
+ price = Decimal(cp.get_last_price())
logger.info("PRICE:%s",price)
t.manual_price = t.payable_rule.compute_payable_quantity(grade) * price / Decimal(100) - t.penalty_rules.compute_penalty(grade,self.quantity)
Concentrate.save([t])
From 234084f07368dfe1774373a92b84e723bf0a2e39 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 22 Mar 2026 19:06:19 +0100
Subject: [PATCH 553/618] 22.03.26
---
modules/purchase_trade/purchase.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index 4e6e74f..a78ac09 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -1344,7 +1344,7 @@ class Line(metaclass=PoolMeta):
cp = cp[0]
price = Decimal(cp.get_last_price())
logger.info("PRICE:%s",price)
- t.manual_price = t.payable_rule.compute_payable_quantity(grade) * price / Decimal(100) - t.penalty_rules.compute_penalty(grade,self.quantity)
+ t.manual_price = t.payable_rule.compute_payable_quantity(grade) * price / Decimal(100) - t.penalty_rules.compute_penalty(grade)
Concentrate.save([t])
if self.price_components:
From 140eae06a0b79d1b352feb8c3fe4097a700fbd4c Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 22 Mar 2026 19:11:12 +0100
Subject: [PATCH 554/618] 22.03.26
---
modules/purchase_trade/purchase.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index a78ac09..6633e65 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -872,7 +872,7 @@ class ConcentrateTerm(ModelSQL, ModelView):
manual_price = fields.Numeric(
"Price",
- digits=(16, 6)
+ digits=(16, 2)
)
currency = fields.Many2One('currency.currency',"Curr")
@@ -1344,7 +1344,7 @@ class Line(metaclass=PoolMeta):
cp = cp[0]
price = Decimal(cp.get_last_price())
logger.info("PRICE:%s",price)
- t.manual_price = t.payable_rule.compute_payable_quantity(grade) * price / Decimal(100) - t.penalty_rules.compute_penalty(grade)
+ t.manual_price = round(t.payable_rule.compute_payable_quantity(grade) * price / Decimal(100) - t.penalty_rules.compute_penalty(grade),2)
Concentrate.save([t])
if self.price_components:
From ed11b23f797441cd576ae025ce5fc621bc35a250 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 22 Mar 2026 20:53:42 +0100
Subject: [PATCH 555/618] 22.03.26
---
modules/purchase_trade/purchase.py | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index 6633e65..5a874bf 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -1438,14 +1438,18 @@ class Line(metaclass=PoolMeta):
p.price_component = pc.id
p.quantity = round(Decimal(pc.quota),5)
price = round(Decimal(self.getnearprice(pl,d,'price')),4)
+ logger.info("PL:%s",pl)
+ logger.info("PRICE:%s",price)
p.settl_price = price
if price > 0:
cumul_qt += pc.quota
p.fixed_qt = round(Decimal(cumul_qt),5)
p.fixed_qt_price = round(Decimal(self.getnearprice(pl,d,'avg')),4)
+ logger.info("PRICE_AVG:%s",p.fixed_qt_price)
#p.fixed_qt_price = p.get_fixed_price()
if p.fixed_qt_price == 0:
p.fixed_qt_price = round(Decimal(self.getnearprice(pl,d,'avg_minus_1')),4)
+ logger.info("PRICE_AVG_MIN:%s",p.fixed_qt_price)
p.unfixed_qt = round(Decimal(self.quantity_theorical) - Decimal(cumul_qt),5)
if p.unfixed_qt < 0.001:
p.unfixed_qt = Decimal(0)
From c655eb4170294a3f2fdf143a396187c071015230 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Sun, 22 Mar 2026 21:10:26 +0100
Subject: [PATCH 556/618] 22.03.26
---
modules/purchase_trade/pricing.py | 3 ++-
modules/purchase_trade/view/trigger_form.xml | 2 ++
modules/purchase_trade/view/trigger_tree.xml | 1 +
3 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/modules/purchase_trade/pricing.py b/modules/purchase_trade/pricing.py
index 688b9a7..2b70a66 100755
--- a/modules/purchase_trade/pricing.py
+++ b/modules/purchase_trade/pricing.py
@@ -399,6 +399,7 @@ class Trigger(ModelSQL,ModelView):
'readonly': Eval('pricing_period') != None,
})
average = fields.Boolean("Avg")
+ last = fields.Boolean("Last")
application_period = fields.Many2One('pricing.period',"Application period")
from_a = fields.Date("From",
states={
@@ -493,7 +494,7 @@ class Trigger(ModelSQL,ModelView):
pi = PI(pc.price_index)
val = {}
val['date'] = current_date
- val['price'] = pi.get_price(current_date,pc.line.unit if pc.line else pc.sale_line.unit,pc.line.currency if pc.line else pc.sale_line.currency)
+ val['price'] = pi.get_price(current_date,pc.line.unit if pc.line else pc.sale_line.unit,pc.line.currency if pc.line else pc.sale_line.currency,self.last)
val['avg'] = val['price']
val['avg_minus_1'] = val['price']
val['isAvg'] = self.average
diff --git a/modules/purchase_trade/view/trigger_form.xml b/modules/purchase_trade/view/trigger_form.xml
index 458ace9..d4e6eb9 100755
--- a/modules/purchase_trade/view/trigger_form.xml
+++ b/modules/purchase_trade/view/trigger_form.xml
@@ -7,6 +7,8 @@
+
+
diff --git a/modules/purchase_trade/view/trigger_tree.xml b/modules/purchase_trade/view/trigger_tree.xml
index 027fbe0..107984c 100755
--- a/modules/purchase_trade/view/trigger_tree.xml
+++ b/modules/purchase_trade/view/trigger_tree.xml
@@ -3,6 +3,7 @@
+
From 36b94b98af1bd5172d5ed3ff8f5672ebab054a38 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 23 Mar 2026 09:10:55 +0100
Subject: [PATCH 557/618] 23.03.26
---
modules/purchase_trade/purchase.py | 21 ++++++++++++++-------
1 file changed, 14 insertions(+), 7 deletions(-)
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index 5a874bf..3921b7a 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -1147,11 +1147,15 @@ class Line(metaclass=PoolMeta):
def get_basis_price(self):
price = Decimal(0)
- for pc in self.price_components:
- PP = Pool().get('purchase.pricing.summary')
- pp = PP.search([('price_component','=',pc.id),('line','=',self.id)])
- if pp:
- price += pp[0].price * (pc.ratio / 100)
+ if self.terms:
+ for t in self.terms:
+ price += t.manual_price
+ else:
+ for pc in self.price_components:
+ PP = Pool().get('purchase.pricing.summary')
+ pp = PP.search([('price_component','=',pc.id),('line','=',self.id)])
+ if pp:
+ price += pp[0].price * (pc.ratio / 100)
return round(price,4)
def get_price(self,lot_premium=0):
@@ -1170,8 +1174,9 @@ class Line(metaclass=PoolMeta):
Date = Pool().get('ir.date')
logger.info("ONCHANGEUNITPRICE:%s",self.unit_price)
if self.price_type == 'basis' and self.lots: #self.price_pricing and self.price_components and
- logger.info("ONCHANGEUNITPRICE_IN:%s",self.get_basis_price())
- return self.get_basis_price()
+ price = self.get_basis_price()
+ logger.info("ONCHANGEUNITPRICE_IN:%s",price)
+ return price
if self.enable_linked_currency and self.linked_price and self.linked_currency and self.price_type == 'priced':
return self.get_price_linked_currency()
if self.price_type == 'efp':
@@ -1345,6 +1350,8 @@ class Line(metaclass=PoolMeta):
price = Decimal(cp.get_last_price())
logger.info("PRICE:%s",price)
t.manual_price = round(t.payable_rule.compute_payable_quantity(grade) * price / Decimal(100) - t.penalty_rules.compute_penalty(grade),2)
+ t.currency = t.component.currency
+ t.unit = self.unit
Concentrate.save([t])
if self.price_components:
From afdbd053756ead8d1fa11b3f5a89b51eba9cdc58 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 23 Mar 2026 09:31:27 +0100
Subject: [PATCH 558/618] 23.03.26
---
modules/purchase_trade/purchase.py | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index 3921b7a..260392c 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -1349,7 +1349,13 @@ class Line(metaclass=PoolMeta):
cp = cp[0]
price = Decimal(cp.get_last_price())
logger.info("PRICE:%s",price)
- t.manual_price = round(t.payable_rule.compute_payable_quantity(grade) * price / Decimal(100) - t.penalty_rules.compute_penalty(grade),2)
+ payable_price = Decimal(0)
+ penalty_price = Decimal(0)
+ if t.payable_rule:
+ payable_price = t.payable_rule.compute_payable_quantity(grade) * price / Decimal(100)
+ if t.penalty_rules:
+ penalty_price = t.penalty_rules.compute_penalty(grade)
+ t.manual_price = round(payable_price - penalty_price,2)
t.currency = t.component.currency
t.unit = self.unit
Concentrate.save([t])
From b5d771341d3718901c2ce3a6b1488997e11ec40e Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 23 Mar 2026 10:10:53 +0100
Subject: [PATCH 559/618] 23.03.26
---
modules/purchase_trade/purchase.py | 39 +++++++++++++------
.../view/penalty_rule_tier_tree.xml | 1 +
2 files changed, 28 insertions(+), 12 deletions(-)
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index 260392c..faa1495 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -812,26 +812,41 @@ class PenaltyRuleTier(ModelSQL, ModelView):
threshold_unit = fields.Many2One('assay.unit', "Unit")
deduction_per_unit = fields.Numeric("Deduction / unit")
penalty_value = fields.Numeric("Penalty Value (USD/DMT)")
+ mode = fields.Selection([
+ ('excess', 'Excess above threshold'),
+ ('full', 'Full grade in tier'),
+ ('min_or_both', 'Min(grade, cap) — full tier amount'),
+ ], "Mode")
+ @classmethod
+ def default_mode(cls):
+ return 'excess'
+
def compute_tier_penalty(self, grade):
- """
- Retourne la pénalité USD pour ce palier uniquement.
- grade : Decimal – teneur brute de l'élément
- dry_weight_dmt: Decimal – poids sec en DMT
- """
grade = Decimal(str(grade))
-
- # Grade en dessous du seuil bas → ce palier ne s'applique pas
+
if grade <= self.threshold_from:
return Decimal(0)
- # Excès au-dessus du seuil bas, plafonné au seuil haut si existant
- excess_top = grade if self.threshold_to is None else min(grade, self.threshold_to)
- excess = excess_top - self.threshold_from
+ if self.mode == 'excess':
+ # Ton comportement actuel : on paye seulement l'excès au-dessus du seuil bas
+ # Ex Codelco : As=0,7% → palier 0,2-0,5% donne 0,3% d'excès
+ excess_top = grade if self.threshold_to is None else min(grade, self.threshold_to)
+ taxable = excess_top - self.threshold_from
- # USD/DMT × DMT
- return (excess * self.penalty_value).quantize(Decimal('0.01'))
+ elif self.mode == 'full':
+ # Pénalité sur toute la teneur dans ce palier dès déclenchement
+ # Ex : As=0,7% → palier 0,5-1,0% donne 0,7% entier (pas 0,2%)
+ taxable = grade if self.threshold_to is None else min(grade, self.threshold_to)
+ elif self.mode == 'min_or_both':
+ # Pénalité sur min(grade, plafond) — utile quand le contrat dit
+ # "si As dépasse X%, pénalité sur la tranche entière jusqu'à Y%"
+ # Ex vente fichier : palier 0,3-0,9%, As=0,6% → taxable = min(0,6%, 0,9%) = 0,6%
+ cap = self.threshold_to if self.threshold_to is not None else grade
+ taxable = min(grade, cap)
+
+ return (taxable * self.penalty_value).quantize(Decimal('0.01'))
class PenaltyRule(ModelSQL, ModelView):
"Penalty Rule"
diff --git a/modules/purchase_trade/view/penalty_rule_tier_tree.xml b/modules/purchase_trade/view/penalty_rule_tier_tree.xml
index a7c4b86..a2079be 100644
--- a/modules/purchase_trade/view/penalty_rule_tier_tree.xml
+++ b/modules/purchase_trade/view/penalty_rule_tier_tree.xml
@@ -1,4 +1,5 @@
+
From 80deac62f88d8bfc1a365dc93afefe569df7c27d Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 23 Mar 2026 10:16:56 +0100
Subject: [PATCH 560/618] 23.03.26
---
modules/purchase_trade/purchase.py | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index faa1495..19a3d89 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -1164,7 +1164,7 @@ class Line(metaclass=PoolMeta):
price = Decimal(0)
if self.terms:
for t in self.terms:
- price += t.manual_price
+ price += (t.manual_price if t.manual_price else Decimal(0))
else:
for pc in self.price_components:
PP = Pool().get('purchase.pricing.summary')
@@ -1466,7 +1466,6 @@ class Line(metaclass=PoolMeta):
p.price_component = pc.id
p.quantity = round(Decimal(pc.quota),5)
price = round(Decimal(self.getnearprice(pl,d,'price')),4)
- logger.info("PL:%s",pl)
logger.info("PRICE:%s",price)
p.settl_price = price
if price > 0:
From f9ee416d99fda542852382d3b8fbbf4c17c16ba9 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 23 Mar 2026 10:36:33 +0100
Subject: [PATCH 561/618] 23.03.26
---
modules/purchase_trade/lot.py | 1 +
1 file changed, 1 insertion(+)
diff --git a/modules/purchase_trade/lot.py b/modules/purchase_trade/lot.py
index b818cea..72a0634 100755
--- a/modules/purchase_trade/lot.py
+++ b/modules/purchase_trade/lot.py
@@ -1294,6 +1294,7 @@ class LotQt(
wh &= (sa.party == client)
if not finished:
wh &= (pl.finished == False)
+ wh &= (sl.finished == False)
AvQt = Case(((lqt.lot_p>0) & (lqt.lot_s>0), 0),else_=Case((lqt.lot_p>0,lqt.lot_quantity),else_=-lqt.lot_quantity))
MaQt = Case(((lqt.lot_p>0) & (lqt.lot_s>0), lqt.lot_quantity),else_=0)
From e6519d30ee4cbb77d87f912e7e09697165c5bc10 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 23 Mar 2026 10:43:02 +0100
Subject: [PATCH 562/618] 23.03.26
---
modules/purchase_trade/lot.py | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/modules/purchase_trade/lot.py b/modules/purchase_trade/lot.py
index 72a0634..964734d 100755
--- a/modules/purchase_trade/lot.py
+++ b/modules/purchase_trade/lot.py
@@ -1253,8 +1253,12 @@ class LotQt(
#wh &= (((lqt.create_date >= asof) & ((lqt.create_date-datetime.timedelta(1)) <= todate)))
if ps == 'P':
wh &= ((lqt.lot_p != None) & (lqt.lot_s == None))
+ if not finished:
+ wh &= (pl.finished == False)
elif ps == 'S':
wh &= (((lqt.lot_s != None) & (lqt.lot_p == None)) | ((lqt.lot_s != None) & (lqt.lot_p != None) & (lp.lot_type == 'virtual')))
+ if not finished:
+ wh &= (sl.finished == False)
if purchase:
wh &= (pu.id == purchase)
if sale:
@@ -1292,9 +1296,6 @@ class LotQt(
wh &= (pu.party == supplier)
if client and sa:
wh &= (sa.party == client)
- if not finished:
- wh &= (pl.finished == False)
- wh &= (sl.finished == False)
AvQt = Case(((lqt.lot_p>0) & (lqt.lot_s>0), 0),else_=Case((lqt.lot_p>0,lqt.lot_quantity),else_=-lqt.lot_quantity))
MaQt = Case(((lqt.lot_p>0) & (lqt.lot_s>0), lqt.lot_quantity),else_=0)
From 175c7a5e305faeba4a2f983e0dbb8c6aee3e540c Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 23 Mar 2026 10:49:36 +0100
Subject: [PATCH 563/618] 23.03.26
---
modules/purchase_trade/purchase.py | 23 ++++++++++++-----------
1 file changed, 12 insertions(+), 11 deletions(-)
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index 19a3d89..508c48f 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -1355,24 +1355,25 @@ class Line(metaclass=PoolMeta):
if self.terms and self.update_pricing:
Concentrate = Pool().get('concentrate.term')
for t in self.terms:
- if t.component:
- grade = self.get_element_grade(self.assay_state,t.element)
- logger.info("GRADE:%s",grade)
- if grade:
+ grade = self.get_element_grade(self.assay_state,t.element)
+ logger.info("GRADE:%s",grade)
+ if grade:
+ payable_price = Decimal(0)
+ penalty_price = Decimal(0)
+ if t.penalty_rules:
+ penalty_price = t.penalty_rules.compute_penalty(grade)
+ if t.component:
cp = [c for c in self.price_summary if c.price_component == t.component]
if cp:
cp = cp[0]
price = Decimal(cp.get_last_price())
logger.info("PRICE:%s",price)
- payable_price = Decimal(0)
- penalty_price = Decimal(0)
if t.payable_rule:
payable_price = t.payable_rule.compute_payable_quantity(grade) * price / Decimal(100)
- if t.penalty_rules:
- penalty_price = t.penalty_rules.compute_penalty(grade)
- t.manual_price = round(payable_price - penalty_price,2)
- t.currency = t.component.currency
- t.unit = self.unit
+
+ t.manual_price = round(payable_price - penalty_price,2)
+ t.currency = self.purchase.currency
+ t.unit = self.unit
Concentrate.save([t])
if self.price_components:
From 062ca103404adf766a065158ae8560412f88f0f1 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 23 Mar 2026 11:13:50 +0100
Subject: [PATCH 564/618] 23.03.26
---
modules/purchase_trade/purchase.py | 10 ----------
1 file changed, 10 deletions(-)
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index 508c48f..08d5e81 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -1402,9 +1402,7 @@ class Line(metaclass=PoolMeta):
apDate = []
apPrice = []
for t in pc.triggers:
- logger.info("CHECK_PRICING:%s",t)
prD, prP = t.getPricingListDates(pc.calendar)
- logger.info("CHECK_PRICING2:%s",prP)
apD, apP = t.getApplicationListDates(pc.calendar)
prDate.extend(prD)
prPrice.extend(prP)
@@ -1461,39 +1459,31 @@ class Line(metaclass=PoolMeta):
break
p = Pricing()
p.line = self.id
- logger.info("GENEDATE:%s",d)
- logger.info("TYPEDATE:%s",type(d))
p.pricing_date = d.date()
p.price_component = pc.id
p.quantity = round(Decimal(pc.quota),5)
price = round(Decimal(self.getnearprice(pl,d,'price')),4)
- logger.info("PRICE:%s",price)
p.settl_price = price
if price > 0:
cumul_qt += pc.quota
p.fixed_qt = round(Decimal(cumul_qt),5)
p.fixed_qt_price = round(Decimal(self.getnearprice(pl,d,'avg')),4)
- logger.info("PRICE_AVG:%s",p.fixed_qt_price)
#p.fixed_qt_price = p.get_fixed_price()
if p.fixed_qt_price == 0:
p.fixed_qt_price = round(Decimal(self.getnearprice(pl,d,'avg_minus_1')),4)
- logger.info("PRICE_AVG_MIN:%s",p.fixed_qt_price)
p.unfixed_qt = round(Decimal(self.quantity_theorical) - Decimal(cumul_qt),5)
if p.unfixed_qt < 0.001:
p.unfixed_qt = Decimal(0)
p.fixed_qt = Decimal(self.quantity_theorical)
if price > 0:
- logger.info("GENERATE_1:%s",price)
p.unfixed_qt_price = price
else:
pr = Decimal(pc.price_index.get_price(p.pricing_date,self.unit,self.purchase.currency,True))
pr = round(pr,4)
- logger.info("GENERATE_2:%s",pr)
p.unfixed_qt_price = pr
p.eod_price = p.get_eod_price_purchase()
if (index == len(dl)-1) or (pc.pricing_date and (index < len(dl)-1 and dl_sorted[index+1].date() > pc.pricing_date)):
p.last = True
- logger.info("GENERATE_3:%s",p.unfixed_qt_price)
Pricing.save([p])
index += 1
From 0e76aa6312bb3e9c2fbeb3fefbf8d22a63f63089 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 23 Mar 2026 11:18:58 +0100
Subject: [PATCH 565/618] 23.03.26
---
modules/price/price.py | 2 --
modules/purchase_trade/pricing.py | 8 --------
2 files changed, 10 deletions(-)
diff --git a/modules/price/price.py b/modules/price/price.py
index 029f7ba..1251a43 100755
--- a/modules/price/price.py
+++ b/modules/price/price.py
@@ -71,7 +71,6 @@ class Price(
def get_price(self,dt,unit,currency,last=False):
price = float(0)
PV = Pool().get('price.price_value')
- logger.info("ASKED_PRICE_FOR:%s",dt)
if self.price_values:
dt = dt.strftime("%Y-%m-%d")
pv = PV.search([('price','=',self.id),('price_date','=',dt)])
@@ -115,7 +114,6 @@ class Calendar(DeactivableMixin,ModelSQL,ModelView,MultiValueMixin):
dt = dt.strftime("%Y-%m-%d")
cl = CL.search([('calendar','=',self.id),('price_date','=',dt)])
if cl:
- #logger.info("ISQUOTE:%s",cl)
return False
else:
return True
diff --git a/modules/purchase_trade/pricing.py b/modules/purchase_trade/pricing.py
index 2b70a66..b4563a7 100755
--- a/modules/purchase_trade/pricing.py
+++ b/modules/purchase_trade/pricing.py
@@ -423,14 +423,11 @@ class Trigger(ModelSQL,ModelView):
pp = PP(self.application_period)
CO = Pool().get('pricing.component')
co = CO(self.component)
- logger.info("DELDATEEST_:%s",co)
if co.line:
d = co.getEstimatedTriggerPurchase(pp.trigger)
else:
d = co.getEstimatedTriggerSale(pp.trigger)
- logger.info("DELDATEEST:%s",d)
date_from,date_to,dates = pp.getDates(d)
- logger.info("DELDATEEST2:%s",dates)
return date_from,date_to,d,pp.include,dates
def getApplicationListDates(self, cal):
@@ -536,8 +533,6 @@ class Period(ModelSQL,ModelView):
date_from = None
date_to = None
dates = []
- logger.info("GETDATES:%s",t)
- logger.info("GETDATES:%s",self.every)
if t:
if self.every:
if t:
@@ -554,21 +549,18 @@ class Period(ModelSQL,ModelView):
while current.month == t.month:
dates.append(datetime.datetime(current.year, current.month, current.day))
current += datetime.timedelta(days=7)
- logger.info("GETDATES:%s",dates)
elif self.nb_quotation > 0:
days_to_add = (weekday_target - t.weekday()) % 7
current = t + datetime.timedelta(days=days_to_add)
while len(dates) < self.nb_quotation:
dates.append(datetime.datetime(current.year, current.month, current.day))
current += datetime.timedelta(days=7)
- logger.info("GETDATES:%s",dates)
elif self.nb_quotation < 0:
days_to_sub = (t.weekday() - weekday_target) % 7
current = t - datetime.timedelta(days=days_to_sub)
while len(dates) < -self.nb_quotation:
dates.append(datetime.datetime(current.year, current.month, current.day))
current -= datetime.timedelta(days=7)
- logger.info("GETDATES:%s",dates)
else:
if self.startday == 'before':
From cb9c868e883889d489d32b4f3f88b62147c67840 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 23 Mar 2026 11:26:23 +0100
Subject: [PATCH 566/618] 23.03.26
---
modules/purchase_trade/purchase.py | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index 08d5e81..5b2d3d6 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -122,11 +122,9 @@ class Component(metaclass=PoolMeta):
if self.line.del_period:
pm = PM(self.line.del_period)
if pm:
- logger.info("DELMONTHDATE:%s",pm.beg_date)
return pm.beg_date
def getEstimatedTriggerPurchase(self,t):
- logger.info("GETTRIGGER:%s",t)
if t == 'delmonth':
return self.getDelMonthDatePurchase()
PE = Pool().get('pricing.estimated')
@@ -187,7 +185,6 @@ class Summary(ModelSQL,ModelView):
if pc.price_index:
PI = Pool().get('price.price')
pi = PI(pc.price_index)
- logger.info("PURCHASECURRENCY:%s",self.line.purchase.currency)
return pi.get_price(Date.today(),self.line.unit,self.line.purchase.currency,True)
@classmethod
@@ -1357,7 +1354,7 @@ class Line(metaclass=PoolMeta):
for t in self.terms:
grade = self.get_element_grade(self.assay_state,t.element)
logger.info("GRADE:%s",grade)
- if grade:
+ if grade != None:
payable_price = Decimal(0)
penalty_price = Decimal(0)
if t.penalty_rules:
From c24de18fcd6d2e0e5526b1668820f514ca93eea7 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 23 Mar 2026 13:49:32 +0100
Subject: [PATCH 567/618] 23.03.26
---
modules/purchase_trade/purchase.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index 5b2d3d6..ae23753 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -212,7 +212,7 @@ class Summary(ModelSQL,ModelView):
Max(pp.fixed_qt+pp.unfixed_qt).as_('quantity'),
Max(pp.fixed_qt).as_('fixed_qt'),
(Min(pp.unfixed_qt)).as_('unfixed_qt'),
- Max(Case((pp.last, pp.eod_price),else_=0)).as_('price'),
+ (Max(Case((pp.last, pp.eod_price),else_=0)) * Max(Case((pc.ratio, pc.ratio / 100),else_=0))).as_('price'),
(Max(pp.fixed_qt)/Max(pp.fixed_qt+pp.unfixed_qt)).as_('progress'),
Max(pc.ratio).as_('ratio'),
#where=wh,
From 15f9f4b7248a6cbb74ae3c18befb163124753fdf Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 23 Mar 2026 14:00:28 +0100
Subject: [PATCH 568/618] 23.03.26
---
modules/purchase_trade/purchase.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index ae23753..0090c56 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -212,7 +212,7 @@ class Summary(ModelSQL,ModelView):
Max(pp.fixed_qt+pp.unfixed_qt).as_('quantity'),
Max(pp.fixed_qt).as_('fixed_qt'),
(Min(pp.unfixed_qt)).as_('unfixed_qt'),
- (Max(Case((pp.last, pp.eod_price),else_=0)) * Max(Case((pc.ratio, pc.ratio / 100),else_=0))).as_('price'),
+ (Max(Case((pp.last, pp.eod_price),else_=0)) * Max(pc.ratio / 100)).as_('price'),
(Max(pp.fixed_qt)/Max(pp.fixed_qt+pp.unfixed_qt)).as_('progress'),
Max(pc.ratio).as_('ratio'),
#where=wh,
From 0e7cabdc002e241291e70666ecd1aadb106fb86e Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 23 Mar 2026 14:13:09 +0100
Subject: [PATCH 569/618] 23.03.26
---
modules/purchase_trade/purchase.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index 0090c56..dafaf88 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -1366,7 +1366,7 @@ class Line(metaclass=PoolMeta):
price = Decimal(cp.get_last_price())
logger.info("PRICE:%s",price)
if t.payable_rule:
- payable_price = t.payable_rule.compute_payable_quantity(grade) * price / Decimal(100)
+ payable_price = t.payable_rule.compute_payable_quantity(grade) * ((Decimal(100) / Decimal(grade)) * price) / Decimal(100)
t.manual_price = round(payable_price - penalty_price,2)
t.currency = self.purchase.currency
From bde600e86ab2fb9c396a4d00615cbedd6dd3f290 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 23 Mar 2026 15:55:39 +0100
Subject: [PATCH 570/618] 23.03.26
---
modules/purchase_trade/pricing.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/purchase_trade/pricing.py b/modules/purchase_trade/pricing.py
index b4563a7..2c6d853 100755
--- a/modules/purchase_trade/pricing.py
+++ b/modules/purchase_trade/pricing.py
@@ -283,7 +283,7 @@ class Component(ModelSQL, ModelView):
], "Price Source", required=True)
fix_type = fields.Many2One('price.fixtype',"Fixation type")
- ratio = fields.Numeric("%")
+ ratio = fields.Numeric("%",digits=(16,5))
price_index = fields.Many2One('price.price',"Curve")
price_matrix = fields.Many2One('price.matrix', "Price Matrix")
currency = fields.Function(fields.Many2One('currency.currency',"Curr."),'get_cur')
From 97dd672e6a7127105f5a363d2f9ea0f8a50cf981 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 23 Mar 2026 16:09:39 +0100
Subject: [PATCH 571/618] 23.03.26
---
modules/purchase_trade/pricing.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/purchase_trade/pricing.py b/modules/purchase_trade/pricing.py
index 2c6d853..a9e8a6e 100755
--- a/modules/purchase_trade/pricing.py
+++ b/modules/purchase_trade/pricing.py
@@ -283,7 +283,7 @@ class Component(ModelSQL, ModelView):
], "Price Source", required=True)
fix_type = fields.Many2One('price.fixtype',"Fixation type")
- ratio = fields.Numeric("%",digits=(16,5))
+ ratio = fields.Numeric("%",digits=(16,7))
price_index = fields.Many2One('price.price',"Curve")
price_matrix = fields.Many2One('price.matrix', "Price Matrix")
currency = fields.Function(fields.Many2One('currency.currency',"Curr."),'get_cur')
From f98b0fd0107942b9e0b3764949d7604877a18a56 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 23 Mar 2026 16:25:22 +0100
Subject: [PATCH 572/618] 23.03.26
---
modules/purchase_trade/purchase.py | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index dafaf88..9066d24 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -1346,6 +1346,8 @@ class Line(metaclass=PoolMeta):
if assay.type == state:
for line in assay.lines:
if line.element == element:
+ if line.unit.symbol == 'g/t':
+ return line.value / Decimal(1000)
return line.value
def check_pricing(self):
@@ -1366,7 +1368,7 @@ class Line(metaclass=PoolMeta):
price = Decimal(cp.get_last_price())
logger.info("PRICE:%s",price)
if t.payable_rule:
- payable_price = t.payable_rule.compute_payable_quantity(grade) * ((Decimal(100) / Decimal(grade)) * price) / Decimal(100)
+ payable_price = t.payable_rule.compute_payable_quantity(grade) * price / Decimal(100)
t.manual_price = round(payable_price - penalty_price,2)
t.currency = self.purchase.currency
From 0392b191c564245eef6913101fdd49d3ad103ddf Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 23 Mar 2026 16:34:28 +0100
Subject: [PATCH 573/618] 23.03.26
---
modules/purchase_trade/purchase.py | 2 --
1 file changed, 2 deletions(-)
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index 9066d24..93c5c2b 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -1346,8 +1346,6 @@ class Line(metaclass=PoolMeta):
if assay.type == state:
for line in assay.lines:
if line.element == element:
- if line.unit.symbol == 'g/t':
- return line.value / Decimal(1000)
return line.value
def check_pricing(self):
From 8bb34aa4fbb89b9c29c6602d1d0ca47e8f723810 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 23 Mar 2026 16:44:46 +0100
Subject: [PATCH 574/618] 23.03.26
---
modules/purchase_trade/purchase.py | 2 ++
1 file changed, 2 insertions(+)
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index 93c5c2b..cc2f537 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -793,6 +793,8 @@ class PayableRule(ModelSQL, ModelView):
elif self.payable_method == 'min_of_both':
by_percent = grade * self.payable_percent / Decimal(100)
by_deduction = grade - self.deduction_value
+ if self.deduction_unit.symbol == 'g/t':
+ result = min(by_percent/Decimal(10000), by_deduction/Decimal(10000))
result = min(by_percent, by_deduction)
if self.min_payable is not None:
From 4e3818d46aefe317f274e12ec62b6d34df5caa8a Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 23 Mar 2026 16:51:32 +0100
Subject: [PATCH 575/618] 23.03.26
---
modules/purchase_trade/purchase.py | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index cc2f537..e79cf8c 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -795,7 +795,8 @@ class PayableRule(ModelSQL, ModelView):
by_deduction = grade - self.deduction_value
if self.deduction_unit.symbol == 'g/t':
result = min(by_percent/Decimal(10000), by_deduction/Decimal(10000))
- result = min(by_percent, by_deduction)
+ else:
+ result = min(by_percent, by_deduction)
if self.min_payable is not None:
result = max(result, self.min_payable)
From 6b841db4ce022c45ea544dc77c2373bf316bd7ae Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 23 Mar 2026 17:09:11 +0100
Subject: [PATCH 576/618] 23.03.26
---
modules/purchase_trade/valuation.py | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/modules/purchase_trade/valuation.py b/modules/purchase_trade/valuation.py
index 4a9ffc3..02d6f26 100644
--- a/modules/purchase_trade/valuation.py
+++ b/modules/purchase_trade/valuation.py
@@ -84,9 +84,15 @@ class ValuationBase(ModelSQL):
qty = lot.get_current_quantity_converted()
+ price = pc.price
+ if line.terms:
+ c = [t for t in line.terms if t.component == pc.id]
+ if c:
+ price = c[0].manual_price
+
values.update({
'reference': f"{pc.get_name()} / {pc.ratio}%",
- 'price': round(pc.price, 4),
+ 'price': round(price, 4),
'counterparty': sale_line.sale.party.id if sale_line else line.purchase.party.id,
'product': sale_line.product.id if sale_line else line.product.id,
})
@@ -101,7 +107,7 @@ class ValuationBase(ModelSQL):
values['state'] = f"part. fixed {round(pc.fixed_qt / Decimal(base) * 100, 0)}%"
if pc.price and pc.ratio:
- amount = round(pc.price * qty * Decimal(sign) * pc.ratio / 100, 2)
+ amount = round(price * qty * Decimal(sign) * pc.ratio / 100, 2)
base_amount = amount
currency = sale_line.sale.currency.id if sale_line else line.purchase.currency.id
rate = Decimal(1)
From 412f8f00e0dc7683b7da0943b643a7300625a1af Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 23 Mar 2026 17:38:04 +0100
Subject: [PATCH 577/618] 23.03.26
---
modules/purchase_trade/valuation.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/purchase_trade/valuation.py b/modules/purchase_trade/valuation.py
index 02d6f26..3583b28 100644
--- a/modules/purchase_trade/valuation.py
+++ b/modules/purchase_trade/valuation.py
@@ -86,7 +86,7 @@ class ValuationBase(ModelSQL):
price = pc.price
if line.terms:
- c = [t for t in line.terms if t.component == pc.id]
+ c = [t for t in line.terms if t.component == pc.price_component.id]
if c:
price = c[0].manual_price
From 353cf17af76b02119ca6942d2c255afa0e4bdad7 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 23 Mar 2026 17:47:36 +0100
Subject: [PATCH 578/618] 23.03.26
---
modules/purchase_trade/valuation.py | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/modules/purchase_trade/valuation.py b/modules/purchase_trade/valuation.py
index 3583b28..ed2fc8d 100644
--- a/modules/purchase_trade/valuation.py
+++ b/modules/purchase_trade/valuation.py
@@ -85,8 +85,10 @@ class ValuationBase(ModelSQL):
qty = lot.get_current_quantity_converted()
price = pc.price
+ logger.info("TERMS:%s",line.terms)
if line.terms:
c = [t for t in line.terms if t.component == pc.price_component.id]
+ logger.info("COMPONENTS:%s",c)
if c:
price = c[0].manual_price
@@ -106,8 +108,8 @@ class ValuationBase(ModelSQL):
base = sale_line.quantity_theorical if sale_line else line.quantity_theorical
values['state'] = f"part. fixed {round(pc.fixed_qt / Decimal(base) * 100, 0)}%"
- if pc.price and pc.ratio:
- amount = round(price * qty * Decimal(sign) * pc.ratio / 100, 2)
+ if price != None:
+ amount = round(price * qty * Decimal(sign), 2)
base_amount = amount
currency = sale_line.sale.currency.id if sale_line else line.purchase.currency.id
rate = Decimal(1)
From 74e4ac0c1b8d194e07ed335b3ec5f5fce8444901 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 23 Mar 2026 17:57:26 +0100
Subject: [PATCH 579/618] 23.03.26
---
modules/purchase_trade/valuation.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/purchase_trade/valuation.py b/modules/purchase_trade/valuation.py
index ed2fc8d..a2a09b8 100644
--- a/modules/purchase_trade/valuation.py
+++ b/modules/purchase_trade/valuation.py
@@ -87,7 +87,7 @@ class ValuationBase(ModelSQL):
price = pc.price
logger.info("TERMS:%s",line.terms)
if line.terms:
- c = [t for t in line.terms if t.component == pc.price_component.id]
+ c = [t for t in line.terms if t.component == pc.price_component]
logger.info("COMPONENTS:%s",c)
if c:
price = c[0].manual_price
From 03997db3e4f9db5112e6a1a9d43ff9583eb8354e Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 23 Mar 2026 18:03:59 +0100
Subject: [PATCH 580/618] 23.03.26
---
modules/purchase_trade/valuation.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/purchase_trade/valuation.py b/modules/purchase_trade/valuation.py
index a2a09b8..3142d05 100644
--- a/modules/purchase_trade/valuation.py
+++ b/modules/purchase_trade/valuation.py
@@ -116,7 +116,7 @@ class ValuationBase(ModelSQL):
if line.purchase.company.currency != currency:
with Transaction().set_context(date=Date.today()):
base_amount = Currency.compute(currency,amount, line.purchase.company.currency)
- rate = round(amount / base_amount,6)
+ rate = round(amount / (base_amount if base_amount else 1),6)
last_price = pc.get_last_price()
# mtm = round(Decimal(last_price) * qty * Decimal(sign), 2) if last_price else Decimal(0)
values.update({
From 5327ca4f21c81552e64fee40c798b37e5350ffe0 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 23 Mar 2026 18:27:54 +0100
Subject: [PATCH 581/618] 23.03.26
---
modules/purchase_trade/purchase.py | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index e79cf8c..d97e269 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -882,9 +882,14 @@ class ConcentrateTerm(ModelSQL, ModelView):
component = fields.Many2One(
'pricing.component',
- "Price Component"
+ "Price Component",
+ domain=[
+ ('id', 'in', Eval('line_component')),
+ ],
+ depends=['line_component']
)
+ line_component = fields.Function(fields.One2Many('pricing.component','',"Component"),'on_change_with_line_component')
manual_price = fields.Numeric(
"Price",
digits=(16, 2)
@@ -904,6 +909,11 @@ class ConcentrateTerm(ModelSQL, ModelView):
valid_from = fields.Date("Valid From")
valid_to = fields.Date("Valid To")
+
+ @fields.depends('component')
+ def on_change_with_line_component(self, name):
+ PC = Pool().get('pricing.component')
+ return PC.search(['line','=',self.line])
class QualityAnalysis(ModelSQL,ModelView):
"Quality Analysis"
From 2262e79361a8fb82a93402bf944ff3f1ade68699 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 23 Mar 2026 20:10:30 +0100
Subject: [PATCH 582/618] 23.03.26
---
modules/account_invoice/invoice_ict.fodt | 4068 ++++++++++++++++++++++
1 file changed, 4068 insertions(+)
create mode 100644 modules/account_invoice/invoice_ict.fodt
diff --git a/modules/account_invoice/invoice_ict.fodt b/modules/account_invoice/invoice_ict.fodt
new file mode 100644
index 0000000..5694243
--- /dev/null
+++ b/modules/account_invoice/invoice_ict.fodt
@@ -0,0 +1,4068 @@
+
+
+
+ Invoice no willen Rizza Deborah 2018-12-09T16:20:00 2025-06-20T10:50:00 2007-08-28T18:19:00 LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265
+
+
+ 0
+ 0
+ 43623
+ 21098
+ true
+ false
+
+
+ view2
+ 11640
+ 3900
+ 0
+ 0
+ 43621
+ 21096
+ 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
+ 84510
+ 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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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
+ jYynoML+HewSRSYBDJmVKCW2FMOy/Oy3pLwBXqKDduqYpUKXRwUnJUSP/EOwv1Ol+5umgqfo
+ 7+i8mjTiBClJALdMEfWbsTwDlC5drjydLzeKaCReLv61sELJxUOM+lI/lC1EB4uqcGxNk0Np
+ xuBSLzIqLnXSytNLr0VvkftMqdn+0DLlqVIeX+WrCceaEg1BHNbvb1TuDWQuqp6ggbhLBJ8r
+ +k/h9+mfsStn6Ippgt+xvwNVWFhcSfCQ3IhiCqX78qNKPxylgSq6E7e4+EGhq4qLyA8qr5yn
+ ucRACiJTPEoF/iPzltqUH7frMBc/H3T1Sl6DV7+iBPJZpRuWfndKHXiXabi/WOKVEpCyq0WU
+ 94oFFAsoFlAsoFhAsYBigf/nFijj8X5AXaY2RMyIvBgtYyqx61ux+vyDOsjkRRla73wRsfTc
+ 6VFanZaxenlhKh+2y/K1fPofbrCLZWlZH650d/lS5LvRf77sOiCOoXqVvtrJqb6/sL9nc3ZG
+ kji9HInTb1xZpQI7jXgI65W3IeU7VsTvlJfVlZeuMNH/Z6/pB8PC77uEZUutWWl9ft0Ke8hv
+ y/XctbT85pUL/12QdLmluCV2ujh/JzMe/V9UNO3vesVO164oZEUr9IfT/7FZdrnmLu1XAmI7
+ dchdsdLOF8YFhVVFU+7cZ2RSj0Jm5BuXq/DvGAd+oQqWsGy3krn6Tyz7yf9RVWWI93uByVIH
+ 2LnqFXbbBcbJNpF77+87fOXNd62UOKk88Cs7gzhtl08q4mhKl6oM0JA7Z38ZZMnYyi7LL1oa
+ 8vItqAq7dnIh+iB7BnGdZDEGkbGoNAAIqNPVhEcAWhZnyN5h4hhRxtK43rml/rj7iU/Fkbt0
+ xfIJ/0N/K7vSUC1/N2zlK9DVhUCpbIeSaOv/UCTKkcRrx9MnV1hA5FXBQ7iKyEXnfj3CJsRu
+ iM9FrEplFxDkDWcQdvrtoA/7Ge3KbiAIiFIDi//pr5x2R/wY/VHF/50x/4c6k53LNaJClPuV
+ GCL9bVt6v1Me3MorK9TG/9Tdle8UCygWUCygWECxgGIBxQKKBRQLKBZQLKBYQLGAYoE/uQX+
+ R57yT152pXiKBRQLKBZQLKBYQLGAYgHFAooFFAsoFlAsoFhAscB/vQX+D/7u9z9ziytTAAAA
+ AElFTkSuQmCC
+
+
+
+
+
+
+
+
+
+
+ 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
+
+
+
+
+
+
+
+
+
+
+
+ <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(chr(10))'>
+ <line>
+ </for>
+
+
+
+
+
+
+
+
+
+ <format_date(invoice.invoice_date or today, invoice.party.lang)>
+
+
+
+
+
+
+
+
+
+ Invoice N°
+
+
+
+ <invoice.number and invoice.number or ''>
+
+
+
+
+ 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
From a94906bb5354dac0cb447a9f62eaae8d01ec3ab0 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Mon, 23 Mar 2026 21:16:51 +0100
Subject: [PATCH 583/618] 23.03.26
---
modules/account/move.py | 2 ++
modules/account/view/move_form.xml | 2 ++
modules/account/view/move_line_form.xml | 2 ++
modules/account/view/move_line_tree_move.xml | 1 +
4 files changed, 7 insertions(+)
diff --git a/modules/account/move.py b/modules/account/move.py
index ab3191e..16fb786 100755
--- a/modules/account/move.py
+++ b/modules/account/move.py
@@ -117,6 +117,7 @@ class Move(DescriptionOriginMixin, ModelSQL, ModelView):
date = fields.Date('Effective Date', required=True, states=_MOVE_STATES)
post_date = fields.Date('Post Date', readonly=True)
description = fields.Char('Description', states=_MOVE_STATES)
+ ext_ref = fields.Char('Ext. Ref')
origin = fields.Reference('Origin', selection='get_origin',
states=_MOVE_STATES)
state = fields.Selection([
@@ -921,6 +922,7 @@ class Line(DescriptionOriginMixin, MoveLineMixin, ModelSQL, ModelView):
fields.Reference("Move Origin", selection='get_move_origin'),
'get_move_field', searcher='search_move_field')
description = fields.Char('Description', states=_states)
+ ext_ref = fields.Char('Ext. Ref')
move_description_used = fields.Function(
fields.Char("Move Description", states=_states),
'get_move_field',
diff --git a/modules/account/view/move_form.xml b/modules/account/view/move_form.xml
index 995b6d5..8a9cd54 100755
--- a/modules/account/view/move_form.xml
+++ b/modules/account/view/move_form.xml
@@ -21,6 +21,8 @@ this repository contains the full copyright notices and license terms. -->
+
+
+
+
diff --git a/modules/account/view/move_line_tree_move.xml b/modules/account/view/move_line_tree_move.xml
index 6390e8e..1dc8d95 100755
--- a/modules/account/view/move_line_tree_move.xml
+++ b/modules/account/view/move_line_tree_move.xml
@@ -12,5 +12,6 @@ this repository contains the full copyright notices and license terms. -->
+
From 51411faff2555fd07fb3cac497537f11c1e798a3 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Tue, 24 Mar 2026 11:49:14 +0100
Subject: [PATCH 584/618] 24.03.26
---
modules/stock/location.py | 2 ++
modules/stock/view/location_form.xml | 2 ++
2 files changed, 4 insertions(+)
diff --git a/modules/stock/location.py b/modules/stock/location.py
index dce94e6..730611b 100755
--- a/modules/stock/location.py
+++ b/modules/stock/location.py
@@ -179,6 +179,8 @@ class Location(DeactivableMixin, tree(), ModelSQL, ModelView):
"Cost Value", digits=price_digits,
help="The value of the stock in the location."),
'get_cost_value')
+
+ country = fields.Many2One('country.country','Country')
@classmethod
def __setup__(cls):
diff --git a/modules/stock/view/location_form.xml b/modules/stock/view/location_form.xml
index bd1d87f..ba6007b 100755
--- a/modules/stock/view/location_form.xml
+++ b/modules/stock/view/location_form.xml
@@ -10,6 +10,8 @@ this repository contains the full copyright notices and license terms. -->
+
+
From 0ac261b67043c170fee85e5bdd055803961135c7 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Wed, 25 Mar 2026 09:59:15 +0100
Subject: [PATCH 585/618] 25.03.26
---
AGENTS.md | 98 +++++
modules/account_invoice/invoice_ict.fodt | 372 +++++++++---------
modules/purchase/AGENTS.md | 105 +++++
.../purchase/docs/business-rules.template.md | 122 ++++++
modules/purchase_trade/purchase.py | 33 +-
5 files changed, 525 insertions(+), 205 deletions(-)
create mode 100644 AGENTS.md
create mode 100644 modules/purchase/AGENTS.md
create mode 100644 modules/purchase/docs/business-rules.template.md
diff --git a/AGENTS.md b/AGENTS.md
new file mode 100644
index 0000000..25138c5
--- /dev/null
+++ b/AGENTS.md
@@ -0,0 +1,98 @@
+# AGENTS.md
+
+Guide rapide pour les agents qui codent dans ce repository.
+
+## 1) Contexte du projet
+
+- Codebase Tryton monolithique (coeur + modules metier).
+- Noyau serveur a la racine: `application.py`, `wsgi.py`, `admin.py`, `worker.py`, `cron.py`.
+- Couches framework importantes:
+ - ORM: `model/`
+ - Meta/systeme (`ir`): `ir/`
+ - Protocoles RPC: `protocols/`
+ - Backend DB: `backend/`
+- Modules metier: `modules//` (~220 modules).
+
+## 2) Regles de travail pour agent
+
+- Ne jamais toucher des fichiers sans rapport avec la demande.
+- Limiter le scope de modif au minimum necessaire.
+- Respecter le style existant du module cible.
+- Ne pas supprimer du code legacy sans verifier les usages.
+- Si comportement incertain: preferer un patch conservateur + test.
+
+## 3) Zones de bruit a ignorer pendant l'exploration
+
+- `.venv/`
+- `__pycache__/`
+- `build/` (quand present dans des sous-modules)
+- Fichiers temporaires editeur (ex: `*.swp`)
+
+## 4) Comment choisir ou coder selon le besoin
+
+- Si bug ORM/champs:
+ - Lire `model/fields/*.py` et les tests `tests/test_field_*.py`.
+- Si bug transaction/DB:
+ - Lire `transaction.py`, `backend/*/database.py`, `tests/test_backend.py`.
+- Si bug API/RPC/HTTP:
+ - Lire `wsgi.py`, `rpc.py`, `protocols/*`, `tests/test_rpc.py`, `tests/test_wsgi.py`.
+- Si bug metier:
+ - Modifier uniquement `modules//` + ses tests.
+
+## 5) Workflow de modification (obligatoire)
+
+1. Identifier le module et le flux impacte.
+2. Localiser un test existant proche du comportement a changer.
+3. Implementer le plus petit patch possible.
+4. Ajouter/adapter les tests au plus pres du changement.
+5. Lancer la validation ciblee (pas toute la suite si inutile).
+6. Donner un resume du risque residuel.
+
+## 6) Checklist avant de rendre une modif
+
+- Le changement est-il limite au domaine demande ?
+- Le comportement existant non cible est-il preserve ?
+- Les droits/regles (`ir.rule`, acces) sont-ils impactes ?
+- Les vues XML et labels sont-ils coherents si un champ change ?
+- Les tests modifies couvrent-ils le bug/la feature ?
+- Le message de commit (si demande) explique clairement le pourquoi ?
+
+## 7) Tests: point de depart pratique
+
+- Suite coeur: `tests/test_tryton.py`
+- Tests coeur par domaine: `tests/test_*.py`
+- Tests module:
+ - `modules//tests/test_module.py`
+ - `modules//tests/test_scenario.py`
+ - `modules//tests/scenario_*.rst`
+
+Quand possible, lancer d'abord la cible minimale:
+
+- fichier de test touche
+- puis fichier voisin de regression
+- puis suite plus large uniquement si necessaire
+
+## 8) Contrat de sortie attendu de l'agent
+
+Toujours fournir:
+
+- Liste des fichiers modifies
+- Resume fonctionnel (ce qui change)
+- Resume technique (pourquoi ce design)
+- Tests executes + resultat
+- Risques residuels et impacts potentiels
+
+## 9) Cas sensibles (demander confirmation humaine)
+
+- Changement schema/structure de donnees
+- Changement de logique de securite/acces
+- Changement de comportement transverse (transaction, pool, RPC, worker)
+- Refactor multi-modules sans ticket explicite
+
+## 10) Raccourci de demarrage pour agent
+
+1. Lire ce fichier.
+2. Lire le(s) fichier(s) touche(s) et leurs tests.
+3. Proposer le patch minimal.
+4. Implementer + tester cible.
+5. Rendre avec le contrat de sortie (section 8).
diff --git a/modules/account_invoice/invoice_ict.fodt b/modules/account_invoice/invoice_ict.fodt
index 5694243..96a70e7 100644
--- a/modules/account_invoice/invoice_ict.fodt
+++ b/modules/account_invoice/invoice_ict.fodt
@@ -1,10 +1,10 @@
- Invoice no willen Rizza Deborah 2018-12-09T16:20:00 2025-06-20T10:50:00 2007-08-28T18:19:00 LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265
+ 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
- 0
+ 9172
0
43623
21098
@@ -13,12 +13,12 @@
view2
- 11640
- 3900
+ 19516
+ 16919
0
- 0
+ 9172
43621
- 21096
+ 30268
0
0
false
@@ -91,7 +91,7 @@
false
false
false
- 84510
+ 84841
84510
false
false
@@ -152,6 +152,7 @@
+
@@ -161,14 +162,14 @@
-
+
-
+
-
+
@@ -285,14 +286,17 @@
+
+
+
-
+
-
+
-
+
@@ -566,6 +570,12 @@
+
+
+
+
+
+
@@ -575,170 +585,138 @@
-
+
-
+
-
+
-
+
-
-
-
-
-
-
-
-
-
+
-
+
-
+
+
+
+
+
+
+
+
+
-
+
-
+
-
+
-
-
-
-
-
-
-
-
-
+
-
+
-
+
-
-
+
+
-
+
+
+
+
+
+
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
-
-
-
-
-
-
-
+
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
+
@@ -3797,8 +3775,6 @@
- <replace text:p=\'set_lang(invoice.party.lang)\'>
- <replace text:p=\'invoice.set_lang(invoice.party.lang)\'>
@@ -3806,23 +3782,25 @@
+ <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(chr(10))'>
- <line>
- </for>
-
+ <for each='line in invoice.invoice_address.full_address.split('\n')">
+ <line>
+ </for>
+
-
+
- <format_date(invoice.invoice_date or today, invoice.party.lang)>
+ <format_date(invoice.invoice_date or today, invoice.party.lang)>
@@ -3831,238 +3809,244 @@
-
- Invoice N°
+
+ Invoice N°
-
- <invoice.number and invoice.number or ''>
+
+ <invoice.number>
- Contract N°
+ Contract N°
- <invoice.origins or ''>
+ <invoice.origins or ''>
-
+
- Name of the vessel
+ Name of the vessel
- <invoice.description or ''>
+ <invoice.description or ''>
- N° of Bill of Lading
+ N° of Bill of Lading
- <invoice.reference or ''>
+ <invoice.reference or ''>
- Shipped on board date
- Port of loading
+ Shipped on board date
+ Port of loading
- 14.06.2025
- SANTOS, BRAZIL
+ 14.06.2025
+ SANTOS, BRAZIL
- Port of discharge
+ Port of discharge
- PORT QASIM, PAKISTAN
+ PORT QASIM, PAKISTAN
-
+
- Goods description
+ 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.
+ 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
+ BALES
- Gross KGS
+ Gross KGS
- NET KGS
+ NET KGS
-
+
-
+
- <format_number(invoice.lines[0].quantity, invoice.party.lang) if invoice.lines else ''>
+ <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 ''>
+ <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 '')>
-
-
-
+ <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 ''>
+
+
+ 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 \'\'>
-
+ 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)>
-
-
+ <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
-
+ NET LANDED WEIGHTS, ACTUAL TARE, NO FRANCHISE
+
- <for each='tax in invoice.taxes'> V.A.T. <tax.description or \'\'> RATE </for>
+ <for each='tax in invoice.taxes'>
+ V.A.T. <tax.description or \'\'> RATE
+ </for>
-
+
- S/I
-
- Controller Name
+ S/I
+
+ Controller Name
- S/BR/55
-
- INTERTEK
+ 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
+ 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
diff --git a/modules/purchase/AGENTS.md b/modules/purchase/AGENTS.md
new file mode 100644
index 0000000..9e0a0a2
--- /dev/null
+++ b/modules/purchase/AGENTS.md
@@ -0,0 +1,105 @@
+# AGENTS.md - Module `purchase`
+
+Ce guide complete le `AGENTS.md` racine.
+Pour ce module, les regles locales ci-dessous priment.
+
+## 1) Perimetre metier
+
+Le module `purchase` gere le cycle d'achat fournisseur:
+
+- commande d'achat (`purchase.purchase`, `purchase.line`)
+- facturation fournisseur (`account.invoice` liee a l'achat)
+- reception/retour de stock (`stock.move`, `stock.shipment.in`, `stock.shipment.in.return`)
+- reporting achats (axes temporels, fournisseur, produit)
+
+## 2) Fichiers pivots
+
+- Logique coeur:
+ - `modules/purchase/purchase.py`
+- Extensions metier connexes:
+ - `modules/purchase/product.py`
+ - `modules/purchase/stock.py`
+ - `modules/purchase/invoice.py`
+ - `modules/purchase/party.py`
+ - `modules/purchase/configuration.py`
+ - `modules/purchase/purchase_reporting.py`
+- Vues et actions:
+ - `modules/purchase/purchase.xml`
+ - `modules/purchase/stock.xml`
+ - `modules/purchase/invoice.xml`
+ - `modules/purchase/purchase_reporting.xml`
+- Manifest et dependances:
+ - `modules/purchase/tryton.cfg`
+- Documentation metier:
+ - `modules/purchase/docs/business-rules.template.md` (template)
+ - `modules/purchase/docs/business-rules.md` (instance a remplir)
+
+## 3) Etats et flux critiques a preserver
+
+Workflow de commande (dans `purchase.py`):
+
+- `draft -> quotation -> confirmed -> processing -> done`
+- transitions de retour existent aussi (`cancelled`, retour a `draft`, etc.)
+
+Invariants importants:
+
+- `invoice_state` et `shipment_state` doivent rester coherents apres `process()`.
+- `process()` orchestre facture + stock + recalcul d'etats, ne pas contourner sans raison.
+- `delete()` exige une commande annulee.
+- Les methodes `create_invoice()` et `create_move()` sont sensibles (gestion `lots` et `action`).
+
+## 4) Couplages a surveiller
+
+- Facture:
+ - `purchase.py` <-> `invoice.py`
+ - gestion des exceptions facture (`purchase_exception_state`)
+- Stock:
+ - `purchase.py` <-> `stock.py`
+ - liens `moves`, expeditions entrantes, retours
+- Produit/fournisseur/prix:
+ - `product.py` impacte prix d'achat, UoM, fournisseurs
+- Tiers:
+ - `party.py` impacte adresses/parametres fournisseur et contraintes d'effacement
+
+## 5) Convention de modification pour ce module
+
+1. Modifier d'abord le coeur minimal dans `purchase.py` ou le fichier specialise adequat.
+2. Mettre a jour XML uniquement si comportement UI/action change.
+3. Si regle metier impactee, mettre a jour `docs/business-rules.md`.
+4. Ajouter un test proche du flux reel (scenario `.rst` prioritaire si possible).
+5. Verifier les impacts transverses facture/stock avant rendu.
+
+## 6) Strategie de test recommandee
+
+Priorite 1 (rapide):
+
+- `modules/purchase/tests/test_module.py`
+
+Priorite 2 (comportement metier):
+
+- `modules/purchase/tests/test_scenario.py`
+- Scenarios cibles selon la modif:
+ - `scenario_purchase.rst`
+ - `scenario_purchase_manual_invoice.rst`
+ - `scenario_purchase_line_cancelled.rst`
+ - `scenario_purchase_line_cancelled_on_shipment.rst`
+ - `scenario_purchase_return_wizard.rst`
+ - `scenario_purchase_reporting.rst`
+
+Si la modif touche prix/UoM/fournisseur:
+
+- ajouter un cas dans `test_module.py` ou un scenario dedie.
+
+## 7) Cas qui exigent validation humaine
+
+- Changement du workflow d'etats
+- Changement des regles de creation facture/mouvement
+- Changement de logique sur retours fournisseur
+- Changement qui altere les ecritures comptables ou le statut de paiement
+
+## 8) Definition of done (module `purchase`)
+
+- Le flux metier cible fonctionne de bout en bout.
+- Les etats `state`, `invoice_state`, `shipment_state` restent coherents.
+- Les tests du module pertinents passent.
+- Le patch est limite aux fichiers necessaires.
diff --git a/modules/purchase/docs/business-rules.template.md b/modules/purchase/docs/business-rules.template.md
new file mode 100644
index 0000000..29f6e8a
--- /dev/null
+++ b/modules/purchase/docs/business-rules.template.md
@@ -0,0 +1,122 @@
+# Business Rules Template - Purchase
+
+Statut: `draft` | `reviewed` | `approved`
+Version: `v0.1`
+Derniere mise a jour: `YYYY-MM-DD`
+Owner metier: `Nom / Equipe`
+Owner technique: `Nom / Equipe`
+
+## 1) Scope
+
+- Domaine: `ex: achats fournisseur`
+- Hors scope: `ex: achats intercompany`
+- Modules impactes:
+ - `purchase`
+ - `stock` (si applicable)
+ - `account_invoice` (si applicable)
+
+## 2) Glossaire
+
+- `Purchase`: commande d'achat fournisseur.
+- `Line`: ligne de commande.
+- `Invoice State`: etat facture calcule.
+- `Shipment State`: etat reception calcule.
+- Ajouter ici les termes metier propres a ton contexte.
+
+## 3) Regles metier (source de verite)
+
+### BR-001 - [Titre court]
+
+- Intent: `Pourquoi cette regle existe`
+- Description:
+ - `Enonce clair et testable`
+- Conditions d'entree:
+ - `Etat`
+ - `Type de ligne (goods/service)`
+ - `Contexte (societe, devise, fournisseur, lot, etc.)`
+- Resultat attendu:
+ - `Etat/valeur/action attendue`
+- Exceptions:
+ - `Cas ou la regle ne s'applique pas`
+- Priorite:
+ - `bloquante | importante | informative`
+- Source:
+ - `Ticket / spec / decision metier`
+
+### BR-002 - [Titre court]
+
+- Intent:
+- Description:
+- Conditions d'entree:
+- Resultat attendu:
+- Exceptions:
+- Priorite:
+- Source:
+
+## 4) Matrice d'etats (optionnel mais recommande)
+
+| Regle | Etat initial | Evenement | Etat attendu | Notes |
+|---|---|---|---|---|
+| BR-001 | `draft` | `quote` | `quotation` | |
+| BR-002 | `quotation` | `confirm` | `confirmed/processing` | |
+
+## 5) Exemples concrets
+
+### Exemple E1 - Cas nominal
+
+- Donnees:
+ - `fournisseur = X`
+ - `produit = Y`
+ - `quantite = 10`
+- Attendu:
+ - `invoice_state = pending`
+ - `shipment_state = waiting`
+
+### Exemple E2 - Cas limite
+
+- Donnees:
+- Attendu:
+
+## 6) Impact code attendu
+
+- Fichiers Python potentiellement concernes:
+ - `modules/purchase/purchase.py`
+ - `modules/purchase/stock.py`
+ - `modules/purchase/invoice.py`
+ - `modules/purchase/product.py`
+- Fichiers XML potentiellement concernes:
+ - `modules/purchase/purchase.xml`
+ - `modules/purchase/stock.xml`
+ - `modules/purchase/invoice.xml`
+
+## 7) Strategie de tests
+
+- Unitaires:
+ - `modules/purchase/tests/test_module.py`
+- Scenarios:
+ - `modules/purchase/tests/scenario_purchase.rst`
+ - `modules/purchase/tests/scenario_purchase_manual_invoice.rst`
+ - `modules/purchase/tests/scenario_purchase_return_wizard.rst`
+
+Pour chaque regle BR-xxx, lister le test associe:
+
+| Regle | Test existant | Nouveau test a ajouter | Statut |
+|---|---|---|---|
+| BR-001 | `...` | `...` | `todo` |
+
+## 8) Compatibilite et migration
+
+- Effet retroactif sur commandes existantes: `oui/non`
+- Migration necessaire: `oui/non`
+- Plan de rollback:
+ - `comment revenir en arriere sans corruption metier`
+
+## 9) Validation
+
+- Valide par metier:
+ - `Nom` - `date`
+- Valide par technique:
+ - `Nom` - `date`
+- Decision finale:
+ - `approved / rejected / needs update`
+
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index d97e269..cea3eea 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -983,7 +983,7 @@ class QualityAnalysis(ModelSQL,ModelView):
class Line(metaclass=PoolMeta):
__name__ = 'purchase.line'
- quantity_theorical = fields.Numeric("Th. quantity", digits='unit', readonly=True)
+ quantity_theorical = fields.Numeric("Th. quantity", digits='unit', readonly=False)
price_type = fields.Selection([
('cash', 'Cash Price'),
('priced', 'Priced'),
@@ -1210,6 +1210,26 @@ class Line(metaclass=PoolMeta):
return round(d.price_index.get_price(Date.today(),self.unit,self.purchase.currency,True),4)
return self.unit_price
+ @classmethod
+ def write(cls, *args):
+ old_values = {}
+
+ for records, values in zip(args[::2], args[1::2]):
+ if 'quantity_theorical' in values:
+ for record in records:
+ old_values[record.id] = record.quantity_theorical
+
+ super().write(*args)
+
+ lines = sum(args[::2], [])
+ for line in lines:
+ if line.id in old_values:
+ old = old_values[line.id]
+ new = line.quantity_theorical
+ delta = Decimal(new) - Decimal(old)
+ if delta > 0:
+ continue
+
@classmethod
def copy(cls, lines, default=None):
if default is None:
@@ -1292,16 +1312,7 @@ class Line(metaclass=PoolMeta):
fl.lot = lot.id
fl.line = line.id
FeeLots.save([fl])
-
- #update inherit fee qt
- # if line.fees:
- # Fee = Pool().get('fee.fee')
- # for f in line.fees:
- # if f.inherit_qt:
- # f.quantity = round(line.quantity_theorical,4)
- # f.unit = line.unit
- # Fee.save([f])
- #check if fee purchase is filled on fee
+
if line.fee_:
if not line.fee_.purchase:
Fee = Pool().get('fee.fee')
From b8ec7a3d2df9b2bdd4d5d13f54309de4c441287b Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Wed, 25 Mar 2026 11:01:26 +0100
Subject: [PATCH 586/618] 25.03.26
---
modules/purchase_trade/purchase.py | 66 +++++++++++++++++++++++++++---
1 file changed, 61 insertions(+), 5 deletions(-)
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index cea3eea..dba26a1 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -983,7 +983,7 @@ class QualityAnalysis(ModelSQL,ModelView):
class Line(metaclass=PoolMeta):
__name__ = 'purchase.line'
- quantity_theorical = fields.Numeric("Th. quantity", digits='unit', readonly=False)
+ quantity_theorical = fields.Numeric("Contractual Qt", digits='unit', readonly=False)
price_type = fields.Selection([
('cash', 'Cash Price'),
('priced', 'Priced'),
@@ -1212,6 +1212,16 @@ class Line(metaclass=PoolMeta):
@classmethod
def write(cls, *args):
+ # Agents:
+ # Ici on gère la variation éventuelle de la théorical quantity après création du contrat
+ # Si delta > 0 on met à jour le lot virtual qui est toujours unique pour une purchase line
+ # mais aussi la table lot_qt dont le lot_p est ce lot virtuel (ajuster lot_quantity)
+ # si il n'existe aucun lot_qt non shippé (tous les lot_shipments à None) et aucun non matché (lot_s à None)
+ # alors il faut créer un nouveau lot_qt non shippé et non matché avec le delta
+ # Si delta négatif alors on decrease si c'est possible le lot_qt non shippé non matché et s'il n'y en a pas on envoie un
+ # message d'erreur 'Please unlink or unmatch lot'
+ Lot = Pool().get('lot.lot')
+ LotQt = Pool().get('lot.qt')
old_values = {}
for records, values in zip(args[::2], args[1::2]):
@@ -1224,11 +1234,57 @@ class Line(metaclass=PoolMeta):
lines = sum(args[::2], [])
for line in lines:
if line.id in old_values:
- old = old_values[line.id]
- new = line.quantity_theorical
- delta = Decimal(new) - Decimal(old)
+ old = Decimal(old_values[line.id] or 0)
+ new = Decimal(line.quantity_theorical or 0)
+ delta = new - old
if delta > 0:
- continue
+ virtual_lots = [lot for lot in (line.lots or []) if lot.lot_type == 'virtual']
+ if not virtual_lots:
+ continue
+ vlot = virtual_lots[0]
+ new_qty = round(Decimal(vlot.get_current_quantity_converted() or 0) + delta, 5)
+ vlot.set_current_quantity(new_qty, new_qty, 1)
+ Lot.save([vlot])
+ lqts = LotQt.search([
+ ('lot_p', '=', vlot.id),
+ ('lot_s', '=', None),
+ ('lot_shipment_in', '=', None),
+ ('lot_shipment_internal', '=', None),
+ ('lot_shipment_out', '=', None),
+ ])
+ if lqts:
+ lqt = lqts[0]
+ lqt.lot_quantity = round(Decimal(lqt.lot_quantity or 0) + delta, 5)
+ LotQt.save([lqt])
+ else:
+ lqt = LotQt()
+ lqt.lot_p = vlot.id
+ lqt.lot_s = None
+ lqt.lot_quantity = round(delta, 5)
+ lqt.lot_unit = line.unit
+ LotQt.save([lqt])
+ elif delta < 0:
+ virtual_lots = [lot for lot in (line.lots or []) if lot.lot_type == 'virtual']
+ if not virtual_lots:
+ continue
+ vlot = virtual_lots[0]
+ decrease = abs(delta)
+ lqts = LotQt.search([
+ ('lot_p', '=', vlot.id),
+ ('lot_s', '=', None),
+ ('lot_shipment_in', '=', None),
+ ('lot_shipment_internal', '=', None),
+ ('lot_shipment_out', '=', None),
+ ])
+ if (not lqts
+ or Decimal(lqts[0].lot_quantity or 0) < decrease):
+ raise UserError("Please unlink or unmatch lot")
+ new_qty = round(Decimal(vlot.get_current_quantity_converted() or 0) - decrease, 5)
+ vlot.set_current_quantity(new_qty, new_qty, 1)
+ Lot.save([vlot])
+ lqt = lqts[0]
+ lqt.lot_quantity = round(Decimal(lqt.lot_quantity or 0) - decrease, 5)
+ LotQt.save([lqt])
@classmethod
def copy(cls, lines, default=None):
From d38d0324d5f3fae56e71bc0795e5e674ec76ac4c Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Wed, 25 Mar 2026 16:49:05 +0100
Subject: [PATCH 587/618] 25.03.26
---
modules/purchase_trade/purchase.py | 2 ++
1 file changed, 2 insertions(+)
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index dba26a1..61933b8 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -1225,6 +1225,7 @@ class Line(metaclass=PoolMeta):
old_values = {}
for records, values in zip(args[::2], args[1::2]):
+ logger.info("***WRITE***:%s",values)
if 'quantity_theorical' in values:
for record in records:
old_values[record.id] = record.quantity_theorical
@@ -1237,6 +1238,7 @@ class Line(metaclass=PoolMeta):
old = Decimal(old_values[line.id] or 0)
new = Decimal(line.quantity_theorical or 0)
delta = new - old
+ logger.info("***WRITE_DELTA***:%s",delta)
if delta > 0:
virtual_lots = [lot for lot in (line.lots or []) if lot.lot_type == 'virtual']
if not virtual_lots:
From 1f49c00cff2fd4e5335ab53be5a3a8b31fdd558e Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Wed, 25 Mar 2026 18:45:54 +0100
Subject: [PATCH 588/618] 25.03.26
---
modules/purchase_trade/docs/business-rules.md | 113 ++++++++++++++++++
modules/purchase_trade/fee.py | 27 +++--
modules/purchase_trade/pricing.py | 1 +
modules/purchase_trade/purchase.py | 2 -
.../purchase_trade/view/estimated_tree.xml | 1 +
5 files changed, 131 insertions(+), 13 deletions(-)
create mode 100644 modules/purchase_trade/docs/business-rules.md
diff --git a/modules/purchase_trade/docs/business-rules.md b/modules/purchase_trade/docs/business-rules.md
new file mode 100644
index 0000000..9540064
--- /dev/null
+++ b/modules/purchase_trade/docs/business-rules.md
@@ -0,0 +1,113 @@
+# Business Rules - Purchase Trade
+
+Statut: `draft`
+Version: `v0.1`
+Derniere mise a jour: `2026-03-25`
+Owner metier: `a completer`
+Owner technique: `a completer`
+
+## 1) Scope
+
+- Domaine: `purchase_trade`
+- Hors scope:
+- Modules impactes:
+ - `purchase_trade`
+ - `lot`
+
+## 2) Glossaire
+
+- `Purchase Line`: ligne d'achat.
+- `quantity_theorical`: quantite theorique contractuelle de la ligne.
+- `Virtual Lot`: lot unique de type `virtual` rattache a une `purchase.line`.
+- `lot.qt`: table des quantites ouvertes, matchées ou shippées par lot.
+- `lot.qt ouvert`: enregistrement `lot.qt` avec `lot_p = virtual lot`, `lot_s = None` et sans shipment.
+
+## 3) Regles metier
+
+### BR-PT-001 - Ajustement de la quantite theorique apres creation du contrat
+
+- Intent: conserver la coherence entre la quantite theorique de la ligne d'achat, le lot virtuel associe et les quantites ouvertes stockees dans `lot.qt`.
+- Description:
+ - Quand `purchase.line.quantity_theorical` est modifiee apres creation du contrat, le systeme doit recalculer le delta entre l'ancienne et la nouvelle valeur.
+ - La regle s'applique au lot unique de type `virtual` rattache a la `purchase.line`.
+- Conditions d'entree:
+ - Une `purchase.line` existe deja.
+ - Son champ `quantity_theorical` est modifie via `write`.
+ - Un lot `virtual` est rattache a la ligne.
+- Resultat attendu:
+ - Si `delta > 0`:
+ - augmenter la quantite courante du lot `virtual` via `set_current_quantity` pour conserver l'historique `lot.qt.hist`
+ - augmenter le `lot.qt` ouvert existant
+ - si aucun `lot.qt` ouvert n'existe, en creer un nouveau avec le delta
+ - Si `delta < 0`:
+ - diminuer le `lot.qt` ouvert uniquement si la quantite ouverte disponible est suffisante
+ - diminuer la quantite courante du lot `virtual` du meme delta
+ - si aucun `lot.qt` ouvert n'existe ou si sa quantite est insuffisante, bloquer avec l'erreur `Please unlink or unmatch lot`
+- Definition du `lot.qt` ouvert:
+ - `lot_p = virtual lot`
+ - `lot_s = None`
+ - `lot_shipment_in = None`
+ - `lot_shipment_internal = None`
+ - `lot_shipment_out = None`
+- Exceptions:
+ - si aucun lot `virtual` n'est trouve sur la ligne, la regle ne fait rien
+- Priorite:
+ - `bloquante`
+- Source:
+ - `Decision metier documentee dans les commentaires de purchase_trade.purchase.Line.write`
+
+## 4) Exemples concrets
+
+### Exemple E1 - Augmentation simple
+
+- Donnees:
+ - `ancienne quantity_theorical = 100`
+ - `nouvelle quantity_theorical = 120`
+ - `lot.qt ouvert = 40`
+- Attendu:
+ - lot `virtual` augmente de `20`
+ - `lot.qt ouvert` passe de `40` a `60`
+
+### Exemple E2 - Augmentation sans lot.qt ouvert
+
+- Donnees:
+ - `ancienne quantity_theorical = 100`
+ - `nouvelle quantity_theorical = 110`
+ - aucun `lot.qt` ouvert
+- Attendu:
+ - lot `virtual` augmente de `10`
+ - creation d'un `lot.qt` ouvert a `10`
+
+### Exemple E3 - Diminution possible
+
+- Donnees:
+ - `ancienne quantity_theorical = 100`
+ - `nouvelle quantity_theorical = 90`
+ - `lot.qt ouvert = 25`
+- Attendu:
+ - lot `virtual` diminue de `10`
+ - `lot.qt ouvert` passe de `25` a `15`
+
+### Exemple E4 - Diminution impossible
+
+- Donnees:
+ - `ancienne quantity_theorical = 100`
+ - `nouvelle quantity_theorical = 80`
+ - `lot.qt ouvert = 5`
+- Attendu:
+ - blocage avec `Please unlink or unmatch lot`
+
+## 5) Impact code attendu
+
+- Fichiers Python concernes:
+ - `modules/purchase_trade/purchase.py`
+ - `modules/purchase_trade/lot.py`
+
+## 6) Strategie de tests
+
+Pour cette regle, couvrir au minimum:
+
+- augmentation avec `lot.qt` ouvert existant
+- augmentation sans `lot.qt` ouvert
+- diminution possible
+- diminution impossible avec erreur
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index 0af73ce..2771185 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -333,20 +333,25 @@ class Fee(ModelSQL,ModelView):
elif self.mode == 'rate':
#take period with estimated trigger date
if self.line:
- if self.line.purchase.payment_term:
+ if self.line.estimated_date:
beg_date = self.fee_date if self.fee_date else Date.today()
- est_date = self.line.purchase.payment_term.lines[0].get_date(beg_date,self.line)
- if est_date and beg_date:
- factor = InterestCalculator.calculate(
- start_date=beg_date,
- end_date=est_date,
- rate=self.price/100,
- rate_type='annual',
- convention='ACT/360',
- compounding='simple'
+ est_lines = [dd for dd in self.line.estimated_date if dd.trigger == 'bldate']
+ est_line = est_lines[0] if est_lines else None
+ if est_line and est_line.estimated_date:
+ est_date = est_line.estimated_date + datetime.timedelta(
+ days=est_line.fin_int_delta or 0
)
+ if est_date and beg_date:
+ factor = InterestCalculator.calculate(
+ start_date=beg_date,
+ end_date=est_date,
+ rate=self.price/100,
+ rate_type='annual',
+ convention='ACT/360',
+ compounding='simple'
+ )
- return round(factor * self.line.unit_price * (self.quantity if self.quantity else 0) * sign,2)
+ return round(factor * self.line.unit_price * (self.quantity if self.quantity else 0) * sign,2)
if self.sale_line:
if self.sale_line.sale.payment_term:
beg_date = self.fee_date if self.fee_date else Date.today()
diff --git a/modules/purchase_trade/pricing.py b/modules/purchase_trade/pricing.py
index a9e8a6e..b4031ea 100755
--- a/modules/purchase_trade/pricing.py
+++ b/modules/purchase_trade/pricing.py
@@ -56,6 +56,7 @@ class Estimated(ModelSQL, ModelView):
trigger = fields.Selection(TRIGGERS,"Trigger")
estimated_date = fields.Date("Estimated date")
+ fin_int_delta = fields.Integer("Financing interests delta")
class MtmScenario(ModelSQL, ModelView):
"MtM Scenario"
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index 61933b8..dba26a1 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -1225,7 +1225,6 @@ class Line(metaclass=PoolMeta):
old_values = {}
for records, values in zip(args[::2], args[1::2]):
- logger.info("***WRITE***:%s",values)
if 'quantity_theorical' in values:
for record in records:
old_values[record.id] = record.quantity_theorical
@@ -1238,7 +1237,6 @@ class Line(metaclass=PoolMeta):
old = Decimal(old_values[line.id] or 0)
new = Decimal(line.quantity_theorical or 0)
delta = new - old
- logger.info("***WRITE_DELTA***:%s",delta)
if delta > 0:
virtual_lots = [lot for lot in (line.lots or []) if lot.lot_type == 'virtual']
if not virtual_lots:
diff --git a/modules/purchase_trade/view/estimated_tree.xml b/modules/purchase_trade/view/estimated_tree.xml
index 330ad54..1344ff8 100755
--- a/modules/purchase_trade/view/estimated_tree.xml
+++ b/modules/purchase_trade/view/estimated_tree.xml
@@ -1,4 +1,5 @@
+
From 357478e74cef4dd36c409df173e82ac13e2c32a6 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Wed, 25 Mar 2026 19:29:32 +0100
Subject: [PATCH 589/618] 25.03.26
---
modules/purchase_trade/purchase.py | 26 +++++++++++++++++++
modules/purchase_trade/view/purchase_form.xml | 6 ++++-
2 files changed, 31 insertions(+), 1 deletion(-)
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index dba26a1..e610c8c 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -253,6 +253,13 @@ class Purchase(metaclass=PoolMeta):
__name__ = 'purchase.purchase'
btb = fields.Many2One('back.to.back',"Back to back")
+ bank_accounts = fields.Function(
+ fields.Many2Many('bank.account', None, None, "Bank Accounts"),
+ 'on_change_with_bank_accounts')
+ bank_account = fields.Many2One(
+ 'bank.account', "Bank Account",
+ domain=[('id', 'in', Eval('bank_accounts', []))],
+ depends=['bank_accounts'])
from_location = fields.Many2One('stock.location', 'From location', required=True,domain=[('type', "!=", 'customer')])
to_location = fields.Many2One('stock.location', 'To location', required=True,domain=[('type', "!=", 'supplier')])
shipment_in = fields.Many2One('stock.shipment.in','Purchases')
@@ -292,6 +299,25 @@ class Purchase(metaclass=PoolMeta):
def get_company_info(self,name):
return (self.company.party.name == 'MELYA')
+ @fields.depends('party', '_parent_party.bank_accounts')
+ def on_change_with_bank_accounts(self, name=None):
+ if self.party and self.party.bank_accounts:
+ return [account.id for account in self.party.bank_accounts]
+ return []
+
+ @fields.depends(
+ 'company', 'party', 'invoice_party', 'payment_term', 'lines',
+ 'bank_account', '_parent_party.bank_accounts')
+ def on_change_party(self):
+ super().on_change_party()
+ if self.party and self.party.bank_accounts:
+ party_bank_accounts = list(self.party.bank_accounts)
+ if (not self.bank_account
+ or self.bank_account not in party_bank_accounts):
+ self.bank_account = party_bank_accounts[0]
+ else:
+ self.bank_account = None
+
@classmethod
def default_wb(cls):
WB = Pool().get('purchase.weight.basis')
diff --git a/modules/purchase_trade/view/purchase_form.xml b/modules/purchase_trade/view/purchase_form.xml
index b334e39..e3d9313 100755
--- a/modules/purchase_trade/view/purchase_form.xml
+++ b/modules/purchase_trade/view/purchase_form.xml
@@ -79,4 +79,8 @@ this repository contains the full copyright notices and license terms. -->
-
\ No newline at end of file
+
+
+
+
+
From b90d65d2457ad283cf28ffaf970e2c7a554bdf91 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Wed, 25 Mar 2026 20:09:51 +0100
Subject: [PATCH 590/618] 25.03.26
---
modules/purchase_trade/sale.py | 50 +++++++++++++++++------
modules/purchase_trade/view/sale_form.xml | 6 ++-
2 files changed, 43 insertions(+), 13 deletions(-)
diff --git a/modules/purchase_trade/sale.py b/modules/purchase_trade/sale.py
index 3e6782d..c6044f9 100755
--- a/modules/purchase_trade/sale.py
+++ b/modules/purchase_trade/sale.py
@@ -214,12 +214,19 @@ class Lot(metaclass=PoolMeta):
if self.sale_line:
return self.sale_line.sale.id
-class Sale(metaclass=PoolMeta):
- __name__ = 'sale.sale'
-
- btb = fields.Many2One('back.to.back',"Back to back")
- from_location = fields.Many2One('stock.location', 'From location', required=True,domain=[('type', "!=", 'customer')])
- to_location = fields.Many2One('stock.location', 'To location', required=True,domain=[('type', "!=", 'supplier')])
+class Sale(metaclass=PoolMeta):
+ __name__ = 'sale.sale'
+
+ btb = fields.Many2One('back.to.back',"Back to back")
+ bank_accounts = fields.Function(
+ fields.Many2Many('bank.account', None, None, "Bank Accounts"),
+ 'on_change_with_bank_accounts')
+ bank_account = fields.Many2One(
+ 'bank.account', "Bank Account",
+ domain=[('id', 'in', Eval('bank_accounts', []))],
+ depends=['bank_accounts'])
+ from_location = fields.Many2One('stock.location', 'From location', required=True,domain=[('type', "!=", 'customer')])
+ to_location = fields.Many2One('stock.location', 'To location', required=True,domain=[('type', "!=", 'supplier')])
shipment_out = fields.Many2One('stock.shipment.out','Sales')
#pnl = fields.One2Many('valuation.valuation', 'sale', 'Pnl')
pnl = fields.One2Many('valuation.valuation.dyn', 'r_sale', 'Pnl',states={'invisible': ~Eval('group_pnl'),})
@@ -253,12 +260,31 @@ class Sale(metaclass=PoolMeta):
lc_date = fields.Date("LC date")
product_origin = fields.Char("Origin")
- def get_company_info(self,name):
- return (self.company.party.name == 'MELYA')
-
- @classmethod
- def default_wb(cls):
- WB = Pool().get('purchase.weight.basis')
+ def get_company_info(self,name):
+ return (self.company.party.name == 'MELYA')
+
+ @fields.depends('party', '_parent_party.bank_accounts')
+ def on_change_with_bank_accounts(self, name=None):
+ if self.party and self.party.bank_accounts:
+ return [account.id for account in self.party.bank_accounts]
+ return []
+
+ @fields.depends(
+ 'company', 'party', 'invoice_party', 'shipment_party', 'warehouse',
+ 'payment_term', 'lines', 'bank_account', '_parent_party.bank_accounts')
+ def on_change_party(self):
+ super().on_change_party()
+ if self.party and self.party.bank_accounts:
+ party_bank_accounts = list(self.party.bank_accounts)
+ if (not self.bank_account
+ or self.bank_account not in party_bank_accounts):
+ self.bank_account = party_bank_accounts[0]
+ else:
+ self.bank_account = None
+
+ @classmethod
+ def default_wb(cls):
+ WB = Pool().get('purchase.weight.basis')
wb = WB.search(['id','>',0])
if wb:
return wb[0].id
diff --git a/modules/purchase_trade/view/sale_form.xml b/modules/purchase_trade/view/sale_form.xml
index b27b8bb..8ec11b5 100755
--- a/modules/purchase_trade/view/sale_form.xml
+++ b/modules/purchase_trade/view/sale_form.xml
@@ -92,4 +92,8 @@ this repository contains the full copyright notices and license terms. -->
-
\ No newline at end of file
+
+
+
+
+
From 10848ed5338a9a8b96a18d069d549d4311697aee Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Wed, 25 Mar 2026 20:17:57 +0100
Subject: [PATCH 591/618] 25.03.26
---
modules/purchase_trade/purchase.py | 50 +++++++++++++++++-------------
modules/purchase_trade/sale.py | 22 ++++++++-----
2 files changed, 44 insertions(+), 28 deletions(-)
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index e610c8c..a8da140 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -296,30 +296,38 @@ class Purchase(metaclass=PoolMeta):
lc_date = fields.Date("LC date")
product_origin = fields.Char("Origin")
- def get_company_info(self,name):
- return (self.company.party.name == 'MELYA')
-
- @fields.depends('party', '_parent_party.bank_accounts')
- def on_change_with_bank_accounts(self, name=None):
- if self.party and self.party.bank_accounts:
- return [account.id for account in self.party.bank_accounts]
- return []
+ def get_company_info(self,name):
+ return (self.company.party.name == 'MELYA')
+
+ def _get_default_bank_account(self):
+ if not self.party or not self.party.bank_accounts:
+ return None
+ party_bank_accounts = list(self.party.bank_accounts)
+ if self.currency:
+ for account in party_bank_accounts:
+ if account.currency == self.currency:
+ return account
+ return party_bank_accounts[0]
+
+ @fields.depends('party', '_parent_party.bank_accounts')
+ def on_change_with_bank_accounts(self, name=None):
+ if self.party and self.party.bank_accounts:
+ return [account.id for account in self.party.bank_accounts]
+ return []
@fields.depends(
'company', 'party', 'invoice_party', 'payment_term', 'lines',
- 'bank_account', '_parent_party.bank_accounts')
- def on_change_party(self):
- super().on_change_party()
- if self.party and self.party.bank_accounts:
- party_bank_accounts = list(self.party.bank_accounts)
- if (not self.bank_account
- or self.bank_account not in party_bank_accounts):
- self.bank_account = party_bank_accounts[0]
- else:
- self.bank_account = None
-
- @classmethod
- def default_wb(cls):
+ 'bank_account', '_parent_party.bank_accounts')
+ def on_change_party(self):
+ super().on_change_party()
+ self.bank_account = self._get_default_bank_account()
+
+ @fields.depends('party', 'currency', '_parent_party.bank_accounts')
+ def on_change_currency(self):
+ self.bank_account = self._get_default_bank_account()
+
+ @classmethod
+ def default_wb(cls):
WB = Pool().get('purchase.weight.basis')
wb = WB.search(['id','>',0])
if wb:
diff --git a/modules/purchase_trade/sale.py b/modules/purchase_trade/sale.py
index c6044f9..8671094 100755
--- a/modules/purchase_trade/sale.py
+++ b/modules/purchase_trade/sale.py
@@ -263,6 +263,16 @@ class Sale(metaclass=PoolMeta):
def get_company_info(self,name):
return (self.company.party.name == 'MELYA')
+ def _get_default_bank_account(self):
+ if not self.party or not self.party.bank_accounts:
+ return None
+ party_bank_accounts = list(self.party.bank_accounts)
+ if self.currency:
+ for account in party_bank_accounts:
+ if account.currency == self.currency:
+ return account
+ return party_bank_accounts[0]
+
@fields.depends('party', '_parent_party.bank_accounts')
def on_change_with_bank_accounts(self, name=None):
if self.party and self.party.bank_accounts:
@@ -274,13 +284,11 @@ class Sale(metaclass=PoolMeta):
'payment_term', 'lines', 'bank_account', '_parent_party.bank_accounts')
def on_change_party(self):
super().on_change_party()
- if self.party and self.party.bank_accounts:
- party_bank_accounts = list(self.party.bank_accounts)
- if (not self.bank_account
- or self.bank_account not in party_bank_accounts):
- self.bank_account = party_bank_accounts[0]
- else:
- self.bank_account = None
+ self.bank_account = self._get_default_bank_account()
+
+ @fields.depends('party', 'currency', '_parent_party.bank_accounts')
+ def on_change_currency(self):
+ self.bank_account = self._get_default_bank_account()
@classmethod
def default_wb(cls):
From 0bcec5d3c41ca11e7b68864df22574d24f1e8628 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Wed, 25 Mar 2026 20:32:07 +0100
Subject: [PATCH 592/618] 25.03.26
---
modules/purchase_trade/purchase.py | 16 ++++++++++------
modules/purchase_trade/sale.py | 16 ++++++++++------
2 files changed, 20 insertions(+), 12 deletions(-)
diff --git a/modules/purchase_trade/purchase.py b/modules/purchase_trade/purchase.py
index a8da140..4b9f9fa 100755
--- a/modules/purchase_trade/purchase.py
+++ b/modules/purchase_trade/purchase.py
@@ -292,12 +292,16 @@ class Purchase(metaclass=PoolMeta):
trader = fields.Many2One('party.party',"Trader")
operator = fields.Many2One('party.party',"Operator")
our_reference = fields.Char("Our Reference")
- company_visible = fields.Function(fields.Boolean("Visible"),'get_company_info')
- lc_date = fields.Date("LC date")
- product_origin = fields.Char("Origin")
-
- def get_company_info(self,name):
- return (self.company.party.name == 'MELYA')
+ company_visible = fields.Function(
+ fields.Boolean("Visible"), 'on_change_with_company_visible')
+ lc_date = fields.Date("LC date")
+ product_origin = fields.Char("Origin")
+
+ @fields.depends('company', '_parent_company.party')
+ def on_change_with_company_visible(self, name=None):
+ return bool(
+ self.company and self.company.party
+ and self.company.party.name == 'MELYA')
def _get_default_bank_account(self):
if not self.party or not self.party.bank_accounts:
diff --git a/modules/purchase_trade/sale.py b/modules/purchase_trade/sale.py
index 8671094..7877f9c 100755
--- a/modules/purchase_trade/sale.py
+++ b/modules/purchase_trade/sale.py
@@ -256,12 +256,16 @@ class Sale(metaclass=PoolMeta):
trader = fields.Many2One('party.party',"Trader")
operator = fields.Many2One('party.party',"Operator")
our_reference = fields.Char("Our Reference")
- company_visible = fields.Function(fields.Boolean("Visible"),'get_company_info')
- lc_date = fields.Date("LC date")
- product_origin = fields.Char("Origin")
-
- def get_company_info(self,name):
- return (self.company.party.name == 'MELYA')
+ company_visible = fields.Function(
+ fields.Boolean("Visible"), 'on_change_with_company_visible')
+ lc_date = fields.Date("LC date")
+ product_origin = fields.Char("Origin")
+
+ @fields.depends('company', '_parent_company.party')
+ def on_change_with_company_visible(self, name=None):
+ return bool(
+ self.company and self.company.party
+ and self.company.party.name == 'MELYA')
def _get_default_bank_account(self):
if not self.party or not self.party.bank_accounts:
From e1488e9677db3da36016fce715cc02397b8560b0 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Thu, 26 Mar 2026 09:25:34 +0100
Subject: [PATCH 593/618] 26.03.26
---
modules/purchase_trade/service.py | 2 ++
1 file changed, 2 insertions(+)
diff --git a/modules/purchase_trade/service.py b/modules/purchase_trade/service.py
index 2d9f929..9fe79c8 100644
--- a/modules/purchase_trade/service.py
+++ b/modules/purchase_trade/service.py
@@ -67,6 +67,8 @@ class ContractFactory:
cls._apply_locations(contract, base_contract, type_)
cls._apply_party_data(contract, c.party, type_)
cls._apply_payment_term(contract, c.party, type_)
+ if type_ == 'Sale':
+ contract.product_origin = getattr(base_contract, 'product_origin', None)
contract.incoterm = c.incoterm
From 90f97daa7f63ca2b79ea8a3eab54e842583adc66 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Thu, 26 Mar 2026 11:13:35 +0100
Subject: [PATCH 594/618] 26.03.26
---
modules/sale/sale_final.fodt | 3250 ++++++++++------------------------
modules/sale/sale_melya.fodt | 182 +-
2 files changed, 978 insertions(+), 2454 deletions(-)
diff --git a/modules/sale/sale_final.fodt b/modules/sale/sale_final.fodt
index 42b523c..98e5711 100644
--- a/modules/sale/sale_final.fodt
+++ b/modules/sale/sale_final.fodt
@@ -1,10 +1,10 @@
- LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 Aksel Kamhi 2026-03-11T17:00:00Z 2026-03-16T11:08:29.173000000 2025-12-11T15:32:00Z 19 PT1H3M1S 0x010100C9130B1D3286474FB2D468C22F52A7B0
+ LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265 Aksel Kamhi 2026-03-11T17:00:00Z 2026-03-26T10:59:25.921000000 2025-12-11T15:32:00Z 20 PT1H6M43S 0x010100C9130B1D3286474FB2D468C22F52A7B0
- 66520
+ 11
0
24236
12222
@@ -13,12 +13,12 @@
view2
- 9888
- 70831
+ 15587
+ 71196
0
- 66520
+ 11
24234
- 78740
+ 12231
0
0
false
@@ -91,7 +91,7 @@
false
false
false
- 2487280
+ 2576397
1803951
false
false
@@ -159,7 +159,7 @@
-
+
@@ -601,7 +601,7 @@
-
+
@@ -642,1782 +642,886 @@
-
- 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
- fqfuX/yzn330DK0M3s/YN9OyM0sbbbRxdxC4du01M9aJt7zlv7t/1QsWbDaKc471e968bbox
- f9azLhrV5//Ozzrrc5227eDf856Lx+KNu2SJPSGxUTnppM+NHYiZ/ytf+fbU45WLu0sKvjw/
- 8pFfT92QuqR85zt/n7E83/e+0h0Ab7fd3uWvf/17F2fxlseW7xlnXDu6vOCap5/+zS7Ptts+
- YKzvGdQyzebJp5ahL5+CxWR6BvONHRT4tBUUuWwPiW2BsVmnW3laPmIoj7A4Di612I5xyu91
- x/o/8pHfl223ffnUztzuKXjX1FsP670F9bPCdhDgNxnWR/rqi3/sPoSLp16LbC80sksJduBg
- GpeWrbY6VNbnNcb+sdbIV372JfLe+MZStt76mKk+2Dcd/AxBvbyxatXl5eijz+v4XgfHehJw
- HYo6Ld1Y96RQcX16rFOhL942VvaUht9ZHuPiMsjgOn5QYJcP7EY620DbBt7/4VX443n1VHDN
- ubDMm7ddedCDzm/mVH0l1/JHDXLpqwcF88bu5o9+X9Zu8x3UU55yXnfaevHi+4xyGnfBgvpP
- 9JRT6kFBrI/TOgYLxnQNv/99KStW7Dn12Oe/jfW7HhTM7c4UuI7qV2x7fJyqsfQ4nxrHDk5W
- rLCDgk3Kc55z9FguX3duuum2stdeR5e73vXosnr1U8rq1U8qq1f/a7nLXZ5QjjnmjLGcz3zm
- C8qcOZuXFSt2GdlYy2GHndDtaFeufGTnmz4osHVlQXnTm949I87b++9/U7fDPfPM+lSI9+dJ
- T3pF929+v/3GL9fEGg4//AldP+9yl7uPYm26ZMlB3WW166//ymjH7vjHf7QnURaWhz/89LED
- HLtR9Qc/+O3o4IO57Hdgl3qjFpchEftDO22up2xxGdNP7iTtQZcPVLEupHwxLibMOsF2y65s
- 0RcHyxBrYC2Kn8E4caWgj1PnUJ+10e6x7nvoQ59cVq2y9//bJ4Rtpx53+leUnXe29xnUDyZN
- v/LY/oHb1E7L17cD1mv2djnC3mHwgbJixYvLs5714rF+KPj4sR+xZp9v+U3nz3/+e9lii8Om
- Hqm0jzfVJyysPntJkdVspxz/8Ie/z6iDmlwGRFwGMY7I7H06fXGToG8c++AxVmc9KKjXRc0X
- lx9jsrbF2IbRLh/YRtSeXbdHWrfc8l/KFls8utu4brrpAzssWfKAsmzZk7oDVHs50rx5y7oz
- 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
- +yBSvNnujoLn4TLw+Xe/+xtl3jxbJ2ynvqB76VR9CZONj51RWVAe/OD3l+9+d/ppIGrZ/QSn
- nHL61KUqG896f0R9t8X8cuihjxq9ItmXk8EPCi699FvpevVv/1bPFLzjHeMHBc5/+cvPnFqO
- 9SyX37th04c85JndtxRizT5v8XZw9KQnPas7WLb+fvvb68fqiOvfUUfZ2SK/72P6/g9bZ770
- pR+WI444cWq9mFfOOuvzowMvj499UlDrjYqJmvQpqP4oXQV5T8EQxIGmzefjAiHoJ29o5zM+
- 9embxNbyZe1sZW/ZlC/2wTYe9liNPR9ulwzqQYH9269vNNxxxzPDdXs7SKh3+fvTBjXGpu+b
- OqtgTwLYtN6nYI/b2PW/rJY+xB/BUUfdMvWOBK/HDlDsHob63oQttzyiO5LnqdWISXJPgmy9
- MFgf1LKLfLWuUcftjFc218x0WqAutW187XGw6677fPnAB9aV445bV170onXlssvWlRtu+NGM
- vhh8DD7zmZ+Uq69eVz71qenPEcccxMc+dlPH/8QnPjPGYU0ZVEwfnHfjjf9drrxyXfnkJ787
- qt/6/pvf/KFceeW1XV2OK66o06uuum5ks9irrvrUDG3TsZ3fddfdWE45ZV15zGPWlaOOsvH7
- cPn1r/86qGZlv/nmb3c5P/7x9WN3rnN8VZtazKU4Stvwmc98q6vjNa+p64WtI9dee8Po/oZs
- udu8j7GdObn44nXl6U9fV574xHVlzZp15cYbfyHzWsxVV9Ux//GPfy1P7xu+8IW/dHV9+9s/
- HMvr9dj0V7/6e7nqquvLc5+7rjzlKTXvpz5VD2JcJ9Yb+201Ww3XXvvJGf/wY71W31e+8udy
- wQXryr//+7ryhjesKx/5yKdHl0jsXihbny68cF35xS9+J3NFPfqy+vp8UbOFyIk1tOqZ8Z6C
- KMC2ms9ADtuTQNVHe/T5ChEXNDWpM2n/GK+0aGccNRSHNuvTcce9ofuCYP1ugN1XYP+87eVG
- dkbAbt6rO147aLDLBPUafj1bYDvlevbAH2V8V3fmwHTsfoO9937UjHysj1PyrrzylrJ48QGj
- sxD+YqX6sqJ3dS9OeupTPzajr33gGHFsyFH+DJlu1KKeymPj4Fzlj4gbrZiD8X3gep7FGc92
- QLYxY26PY2x20Eau/954M57qS6tO8jKutdlv1uqc2FffmMdr3Ga3eX74yOddw/n+z97/FTqX
- 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
- 25lAy98CByVOFTJ9tgnqE0NXRqUVV5ChGpFPe/THaZz//Oe/XO5yly90/7rrzX8Xdd8k2HXX
- a7udtB0c2A66vmRobXfTX70R0Hg1ZtWqqzpevXxQzx7YY4r1RUb1UoGjni2wJxHe0V2GsEsN
- dhlh5cq3TOG07smFHXaw+dPL9tu/smy33SvKdtudWLbb7uSy3XavKttu+9KyYsULu7MbK1a8
- uGyzTT3LsXz5UWX58md2Zw4OPfR7Xf+y9a4PHNPW+BIq5yTx/39g0nXMYyZpZ7Dx+b8eI6XF
- 3wE52QZajVXUMLA/bEduxovzzMUafKryKI0h7ZZP1W5gzapGFZv1W2kxNrbjvNIZAqWvtMiL
- dtbKNuOpn/FaYC7aY7uVO4sjqNOCqic9U2DTVlER8UcawaSRQz7zG0yX8dRiTLS16qfN7R7X
- x8m0WJPix3arxsj7xjd+U445Zm059tiryrHHXlle+MLLyotedEV52cuuKCeccFl55SsvLiec
- cGk55ZTLyimnXFJOPXVted3r1pZXv/ry8oY3XFze+MaLy5vetLacdtrF5Z3vvKycccba8oEP
- rC3ve98l5Zxz1pYPfvDS8sEPri3nn2+4uJx33hXlwgsvLWvWrC1r1lxSLrroyrJmzRXddO3a
- q7vphRea/apy0UVXdPc3rF17Zbn44mvLxRd/uFx22efKZZd9qVxxxc3lyiv/p1x55XfLlVd+
- p1x99S/LunW/Lddc85vykY/8uXzpS3+a0fc4/hzfzEY/x5yczKfaVg83qopDbWWLtcUpa1bI
- 1suWTU2zXMrWB68pi1V2VQPbfWB/3K7GPG6fVDz5LU36GE8/kflpY5tQv5FMm2jVr+zMQ7sC
- 41kj/T6frU+0Uyfzq/UhgjoZFIftFibJE+f76mfcJPqZfeyggEWzPQliLDVoJzfLSzt1aJ8U
- 1FO5FDLfkD5liHyb+krvlzIMdje/w55O4N39Dm8719r+NIM/GeBQsR7jU/JYuwJ5bEeo8WLb
- bZznmGfatCudyI1tFU8buUN0FId5op926vi8j3UrhrHMwVjTjFzqMI59aulTL8ZmPuZVPraV
- zedpU21yo5185uSUvwdqRp8Cc2f5ldbQOrI41abPbeSonIwhnzUxF3m0Kxt9an4Ij8h8Spd6
- qp3ZMj36lT36bVmMPX3Qt3Aoqmxub7WjLWooXlaT4kZNZe8DeVlNLWT9UTpxw5pp0EcO7S0O
- 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
- SgAAAABJRU5ErkJggg==
-
-
-
+
+ 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
+ AAAASUVORK5CYII=
+
+
+
@@ -2599,581 +1703,7 @@
Gross weight: <format_number_symbol(sale.report_gross, sale.party.lang, sale.lines[0].unit, digits=2)>
Packaging: <sale.report_packing or ''>
-
- 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
- 5U1x7zXctjsAAAAASUVORK5CYII=
-
-
- A close up of a logo
-
-Description automatically generated
-
+
</for>
diff --git a/modules/sale/sale_melya.fodt b/modules/sale/sale_melya.fodt
index 4761c3b..ba5b0e1 100644
--- a/modules/sale/sale_melya.fodt
+++ b/modules/sale/sale_melya.fodt
@@ -13,8 +13,8 @@
view2
- 17179
- 4613
+ 9603
+ 3254
0
0
36350
@@ -23,7 +23,7 @@
0
false
120
- false
+ true
false
true
true
@@ -91,7 +91,7 @@
false
false
false
- 3230844
+ 3254328
1822556
false
false
@@ -168,7 +168,7 @@
-
+
@@ -425,155 +425,155 @@
-
-
-
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
+
-
-
+
-
+
-
+
-
+
-
+
-
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
-
-
+
@@ -763,61 +763,55 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
-
-
-
-
-
+
@@ -1727,7 +1721,7 @@
PROFORMA INVOICE
Proforma Nr: Date:
- <sale.report_deal> <format_date(sale.sale_date, sale.party.lang) if sale.sale_date else ''>
+ <sale.report_deal> <format_date(sale.sale_date, sale.party.lang) if sale.sale_date else ''>
Buyer:
@@ -1737,8 +1731,8 @@
</for>
-
-
+
+
@@ -1746,58 +1740,58 @@
- Quantity
+ Quantity
- Goods Description
+ Goods Description
- Unit Price
+ Unit Price
- Amount
+ Amount
-
-
-
- <sale.lines[0].quantity> <sale.lines[0].unit.rec_name.upper() if sale.lines and sale.lines[0].unit else ''>
+
+
+
+ <sale.lines[0].quantity> <sale.lines[0].unit.rec_name.upper() if sale.lines and sale.lines[0].unit else ''>
-
-
-
- <sale.lines[0].product.name if sale.lines and sale.lines[0].product else ''>
-
-
+
+
+
+ <sale.lines[0].product.name if sale.lines and sale.lines[0].product else ''>
+
+
-
-
-
+
+
+
<format_currency(sale.lines[0].unit_price, sale.party.lang, sale.currency) if sale.lines else ''>
-
-
-
+
+
+
<format_currency(sale.lines[0].amount, sale.party.lang, sale.currency)>
-
- Total quantity : <sale.lines[0].quantity> <sale.lines[0].unit.rec_name.upper() if sale.lines and sale.lines[0].unit else ''>
+
+ Total quantity : <sale.lines[0].quantity> <sale.lines[0].unit.rec_name.upper() if sale.lines and sale.lines[0].unit else ''>
- Total amount: <format_currency(sale.lines[0].amount, sale.party.lang, sale.currency)>
+ Total amount: <format_currency(sale.lines[0].amount, sale.party.lang, sale.currency)>
- SHIPMENT SCHEDULE :<sale.lines[0].del_period.month_name if sale.lines and sale.lines[0].del_period else ''>
+ SHIPMENT SCHEDULE :<sale.lines[0].del_period.month_name if sale.lines and sale.lines[0].del_period else ''>
TOLERANCE: +/- <sale.tol_min> %
@@ -1815,7 +1809,7 @@
Signed by :
(The Seller)
- MELYA SA 13 RUE ROBERT CEARD CH-1204 GENEVA SWITZERLAND
+ MELYA SA 13 RUE ROBERT CEARD CH-1204 GENEVA SWITZERLAND
</for>
From 3e646ea03563e4e935f4db39f6d67d6598e8c317 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Thu, 26 Mar 2026 15:16:34 +0100
Subject: [PATCH 595/618] 26.03.26
---
modules/account_invoice/invoice_ict.fodt | 2187 ++++++++++---------
modules/purchase_trade/__init__.py | 26 +-
modules/purchase_trade/invoice.py | 113 +
modules/purchase_trade/tryton.cfg | 15 +-
modules/sale/sale_ict.fodt | 2545 ++++++++++++----------
5 files changed, 2662 insertions(+), 2224 deletions(-)
create mode 100644 modules/purchase_trade/invoice.py
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 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
+
+ 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/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
+
+ 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
From d722b58f4e10b60c4823e3e343c40857e0e4944f Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Thu, 26 Mar 2026 15:20:36 +0100
Subject: [PATCH 596/618] 26.03.26
---
modules/account_invoice/invoice_ict.fodt | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/modules/account_invoice/invoice_ict.fodt b/modules/account_invoice/invoice_ict.fodt
index 00ad8e9..46f4eef 100644
--- a/modules/account_invoice/invoice_ict.fodt
+++ b/modules/account_invoice/invoice_ict.fodt
@@ -3798,10 +3798,10 @@
- <replace text:p=\'set_lang(invoice.party.lang)\'>
+ <replace text:p="set_lang(invoice.party.lang)">
- <replace text:p=\'invoice.set_lang(invoice.party.lang)\'>
+ <replace text:p="invoice.set_lang(invoice.party.lang)">
From f9010ddefdf6b90630d9e7c8c7a1d6a583a1601f Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Thu, 26 Mar 2026 15:23:42 +0100
Subject: [PATCH 597/618] 26.03.26
---
modules/account_invoice/invoice_ict.fodt | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/modules/account_invoice/invoice_ict.fodt b/modules/account_invoice/invoice_ict.fodt
index 46f4eef..6b89804 100644
--- a/modules/account_invoice/invoice_ict.fodt
+++ b/modules/account_invoice/invoice_ict.fodt
@@ -4009,15 +4009,15 @@
- 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
+ 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 \'\'>
+ 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 \'\'>
+ 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 ''>
@@ -4045,7 +4045,7 @@
<for each="tax in invoice.taxes">
- V.A.T. <tax.description or \'\'> RATE
+ V.A.T. <tax.description or ''> RATE
</for>
From 3e5320cf9e6f6b1e3c75455db1770f27e7222188 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Thu, 26 Mar 2026 15:43:45 +0100
Subject: [PATCH 598/618] 26.03.26
---
AGENTS.md | 5 +
modules/account_invoice/invoice_ict.fodt | 18 +--
modules/purchase_trade/docs/template-rules.md | 109 ++++++++++++++++++
modules/purchase_trade/invoice.py | 78 +++++++++++++
4 files changed, 201 insertions(+), 9 deletions(-)
create mode 100644 modules/purchase_trade/docs/template-rules.md
diff --git a/AGENTS.md b/AGENTS.md
index 25138c5..75d3235 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -38,6 +38,11 @@ Guide rapide pour les agents qui codent dans ce repository.
- Lire `wsgi.py`, `rpc.py`, `protocols/*`, `tests/test_rpc.py`, `tests/test_wsgi.py`.
- Si bug metier:
- Modifier uniquement `modules//` + ses tests.
+- Si bug template Relatorio (`.fodt`):
+ - Lire d'abord le template standard voisin du meme domaine (`invoice.fodt`, `sale.fodt`, etc.).
+ - Preferer des proprietes Python simples exposees par le modele plutot que des expressions Genshi complexes dans le template.
+ - Dans les placeholders XML, utiliser `"` et `'` plutot que des antislashs type `\'`.
+ - Si un document facture depend fortement d'une vente/achat, ajouter au besoin un petit pont Python pour exposer des `report_*` stables au template.
## 5) Workflow de modification (obligatoire)
diff --git a/modules/account_invoice/invoice_ict.fodt b/modules/account_invoice/invoice_ict.fodt
index 6b89804..c596d44 100644
--- a/modules/account_invoice/invoice_ict.fodt
+++ b/modules/account_invoice/invoice_ict.fodt
@@ -1,7 +1,7 @@
- Invoice no
+ Provisional Sale
willen
2018-12-09T16:20:00
2026-03-23T20:46:35.300000000
@@ -3839,7 +3839,7 @@
- Invoice N°
+ Provisional Sale
@@ -3889,8 +3889,8 @@
Port of loading
- 14.06.2025
- SANTOS, BRAZIL
+ <format_date(invoice.report_bl_date, invoice.party.lang) if invoice.report_bl_date else ''>
+ <invoice.report_loading_port>
@@ -3898,7 +3898,7 @@
Port of discharge
- PORT QASIM, PAKISTAN
+ <invoice.report_discharge_port>
@@ -3915,12 +3915,12 @@
<invoice.report_product_description> CROP <invoice.report_crop_name>
<invoice.report_attributes_name>
H.S CODE 5201.0090
- CFR PORT QASIM, PAKISTAN
+ <invoice.report_incoterm>
ALL DETAILS AND SPECIFICATIONS AS PER
BENEFICIARY’S
- PROFORMA INVOICE NO. 1411-1 DATED 20-05-2025.
+ 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 ''> .
@@ -4063,9 +4063,9 @@
Controller Name
- S/BR/55
+ <invoice.report_si_number>
- INTERTEK
+ <invoice.report_controller_name>
diff --git a/modules/purchase_trade/docs/template-rules.md b/modules/purchase_trade/docs/template-rules.md
new file mode 100644
index 0000000..885fd88
--- /dev/null
+++ b/modules/purchase_trade/docs/template-rules.md
@@ -0,0 +1,109 @@
+# Template Rules - Purchase Trade
+
+Statut: `draft`
+Version: `v0.1`
+Derniere mise a jour: `2026-03-26`
+
+## 1) Scope
+
+- Domaine: `templates Relatorio .fodt`
+- Modules concernes:
+ - `purchase_trade`
+ - `sale`
+ - `account_invoice`
+
+## 2) Objectif
+
+- Eviter les erreurs de parsing Relatorio/Genshi lors de la generation des documents.
+- Standardiser la maniere d'alimenter les templates metier a partir du code Python.
+
+## 3) Regles pratiques
+
+### TR-001 - Toujours partir du template standard voisin
+
+- Avant de modifier un template metier (`invoice_ict.fodt`, `sale_ict.fodt`, etc.), comparer avec le template standard du module source:
+ - `modules/account_invoice/invoice.fodt`
+ - `modules/sale/sale.fodt`
+- Reprendre en priorite la syntaxe Relatorio deja validee dans ces templates.
+
+### TR-002 - Eviter les expressions Genshi trop complexes dans le `.fodt`
+
+- Preferer des proprietes Python simples exposees par le modele.
+- Le template doit consommer au maximum des champs ou proprietes du type:
+ - `record.report_address`
+ - `record.report_price`
+ - `record.report_payment_date`
+- Si un template a besoin de donnees issues d'un autre modele lie, creer un petit pont Python.
+
+### TR-003 - Regles de syntaxe XML/Relatorio dans les placeholders
+
+- Dans un `text:placeholder`, utiliser:
+ - `"..."` pour les guillemets doubles
+ - `'...'` pour les apostrophes
+- Eviter les formes avec antislashs:
+ - interdit: `\'\'`
+ - interdit: `\'value\'`
+- Exemples corrects:
+ - `<replace text:p="set_lang(invoice.party.lang)">`
+ - `<if test="invoice.report_payment_description">`
+ - `<tax.description or ''>`
+
+### TR-004 - Pour une facture issue d'une vente, preferer un pont `account.invoice -> sale`
+
+- Si le template facture doit reutiliser la logique de la pro forma vente, ne pas dupliquer les calculs directement dans le `.fodt`.
+- Ajouter plutot dans `purchase_trade` une extension `account.invoice` avec des proprietes `report_*` qui relaient vers `invoice.sales[0]`.
+- Exemple de proprietes utiles:
+ - `report_address`
+ - `report_contract_number`
+ - `report_shipment`
+ - `report_product_description`
+ - `report_crop_name`
+ - `report_attributes_name`
+ - `report_price`
+ - `report_payment_date`
+ - `report_nb_bale`
+ - `report_gross`
+ - `report_net`
+ - `report_lbs`
+
+### TR-005 - Reutiliser les proprietes existantes du module `purchase_trade.sale`
+
+- Avant d'ajouter une nouvelle logique pour un template vente ou facture issue d'une vente, verifier si une propriete existe deja sur `sale.sale`.
+- Proprietes deja utiles:
+ - `report_terms`
+ - `report_gross`
+ - `report_net`
+ - `report_qt`
+ - `report_nb_bale`
+ - `report_deal`
+ - `report_packing`
+ - `report_price`
+ - `report_delivery`
+ - `report_payment_date`
+ - `report_shipment`
+
+## 4) Workflow recommande pour corriger un template en erreur
+
+1. Identifier le placeholder exact qui provoque l'erreur Relatorio.
+2. Comparer sa syntaxe avec le template standard equivalent.
+3. Remplacer les guillemets/quotes non valides par `"` / `'`.
+4. Si l'expression devient trop longue, la deplacer dans une propriete Python `report_*`.
+5. Ne modifier que les placeholders necessaires.
+6. Regenerer le document pour verifier la prochaine erreur eventuelle.
+
+## 5) Cas documentes dans ce repo
+
+### Invoice ICT
+
+- Fichier: `modules/account_invoice/invoice_ict.fodt`
+- Strategie retenue:
+ - aligner la syntaxe sur `modules/account_invoice/invoice.fodt`
+ - reutiliser au maximum les proprietes de `sale.sale`
+ - exposer dans `modules/purchase_trade/invoice.py` des proprietes de pont `account.invoice -> sale`
+
+### Sale ICT
+
+- Fichier: `modules/sale/sale_ict.fodt`
+- Usage:
+ - reference principale pour les champs metier proches d'une pro forma / facture commerciale
+ - source de verite pratique pour les placeholders `report_*` issus de `purchase_trade.sale`
diff --git a/modules/purchase_trade/invoice.py b/modules/purchase_trade/invoice.py
index bf4b5ff..48de10d 100644
--- a/modules/purchase_trade/invoice.py
+++ b/modules/purchase_trade/invoice.py
@@ -7,6 +7,8 @@ class Invoice(metaclass=PoolMeta):
__name__ = 'account.invoice'
def _get_report_sale(self):
+ # Bridge invoice templates to the originating sale so FODT files can
+ # reuse stable sale.report_* properties instead of complex expressions.
sales = list(self.sales or [])
return sales[0] if sales else None
@@ -15,6 +17,24 @@ class Invoice(metaclass=PoolMeta):
if sale and sale.lines:
return sale.lines[0]
+ def _get_report_lot(self):
+ line = self._get_report_sale_line()
+ if line and line.lots:
+ for lot in line.lots:
+ if lot.lot_type == 'physic':
+ return lot
+ return line.lots[0]
+
+ def _get_report_shipment(self):
+ lot = self._get_report_lot()
+ if not lot:
+ return None
+ return (
+ getattr(lot, 'lot_shipment_in', None)
+ or getattr(lot, 'lot_shipment_out', None)
+ or getattr(lot, 'lot_shipment_internal', None)
+ )
+
@property
def report_address(self):
sale = self._get_report_sale()
@@ -111,3 +131,61 @@ class Invoice(metaclass=PoolMeta):
if net == '':
return ''
return Decimal(net) * Decimal('2.20462')
+
+ @property
+ def report_bl_date(self):
+ shipment = self._get_report_shipment()
+ if shipment:
+ return shipment.bl_date
+
+ @property
+ def report_loading_port(self):
+ shipment = self._get_report_shipment()
+ if shipment and shipment.from_location:
+ return shipment.from_location.rec_name
+ return ''
+
+ @property
+ def report_discharge_port(self):
+ shipment = self._get_report_shipment()
+ if shipment and shipment.to_location:
+ return shipment.to_location.rec_name
+ return ''
+
+ @property
+ def report_incoterm(self):
+ sale = self._get_report_sale()
+ if not sale:
+ return ''
+ incoterm = sale.incoterm.code if sale.incoterm else ''
+ location = sale.incoterm_location.party_name if sale.incoterm_location else ''
+ if incoterm and location:
+ return f"{incoterm} {location}"
+ return incoterm or location
+
+ @property
+ def report_proforma_invoice_number(self):
+ lot = self._get_report_lot()
+ if lot and lot.sale_invoice_line_prov and lot.sale_invoice_line_prov.invoice:
+ return lot.sale_invoice_line_prov.invoice.number or ''
+ return ''
+
+ @property
+ def report_proforma_invoice_date(self):
+ lot = self._get_report_lot()
+ if lot and lot.sale_invoice_line_prov and lot.sale_invoice_line_prov.invoice:
+ return lot.sale_invoice_line_prov.invoice.invoice_date
+
+ @property
+ def report_controller_name(self):
+ shipment = self._get_report_shipment()
+ if shipment and shipment.controller:
+ return shipment.controller.rec_name
+ return ''
+
+ @property
+ def report_si_number(self):
+ shipment = self._get_report_shipment()
+ if shipment:
+ return shipment.number or ''
+ return ''
From 91acaba3dc0e486472101f38499f3480f75f8056 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Thu, 26 Mar 2026 18:28:43 +0100
Subject: [PATCH 599/618] 26.03.26
---
modules/account/view/move_line_tree_move.xml | 2 +-
modules/account_invoice/invoice_ict.fodt | 2200 +++++++++---------
modules/purchase_trade/invoice.py | 14 +
3 files changed, 1086 insertions(+), 1130 deletions(-)
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()
From 841f7a1c2051957514c01c6d7a0f39d8f5eff65b Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Thu, 26 Mar 2026 19:02:01 +0100
Subject: [PATCH 600/618] 26.03.26
---
modules/account_invoice/invoice_ict.fodt | 6 +-
modules/purchase_trade/invoice.py | 132 +++++++++++++++--------
2 files changed, 92 insertions(+), 46 deletions(-)
diff --git a/modules/account_invoice/invoice_ict.fodt b/modules/account_invoice/invoice_ict.fodt
index 71c60fe..43b1f70 100644
--- a/modules/account_invoice/invoice_ict.fodt
+++ b/modules/account_invoice/invoice_ict.fodt
@@ -2,7 +2,7 @@
- Provisional Sale
+ Provisional Invoice
willen
2018-12-09T16:20:00
2026-03-26T18:22:40.515000000
@@ -3833,7 +3833,7 @@
- Provisional Sale
+ Provisional Invoice
@@ -4072,4 +4072,4 @@
-
\ No newline at end of file
+
diff --git a/modules/purchase_trade/invoice.py b/modules/purchase_trade/invoice.py
index e629b2e..864c2fb 100644
--- a/modules/purchase_trade/invoice.py
+++ b/modules/purchase_trade/invoice.py
@@ -6,19 +6,34 @@ from trytond.pool import PoolMeta
class Invoice(metaclass=PoolMeta):
__name__ = 'account.invoice'
+ def _get_report_purchase(self):
+ purchases = list(self.purchases or [])
+ return purchases[0] if purchases else None
+
def _get_report_sale(self):
# Bridge invoice templates to the originating sale so FODT files can
# reuse stable sale.report_* properties instead of complex expressions.
sales = list(self.sales or [])
return sales[0] if sales else None
+ def _get_report_trade(self):
+ return self._get_report_sale() or self._get_report_purchase()
+
+ def _get_report_purchase_line(self):
+ purchase = self._get_report_purchase()
+ if purchase and purchase.lines:
+ return purchase.lines[0]
+
def _get_report_sale_line(self):
sale = self._get_report_sale()
if sale and sale.lines:
return sale.lines[0]
+ def _get_report_trade_line(self):
+ return self._get_report_sale_line() or self._get_report_purchase_line()
+
def _get_report_lot(self):
- line = self._get_report_sale_line()
+ line = self._get_report_trade_line()
if line and line.lots:
for lot in line.lots:
if lot.lot_type == 'physic':
@@ -37,81 +52,81 @@ class Invoice(metaclass=PoolMeta):
@property
def report_address(self):
- sale = self._get_report_sale()
- if sale and sale.report_address:
- return sale.report_address
+ trade = self._get_report_trade()
+ if trade and trade.report_address:
+ return trade.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
+ trade = self._get_report_trade()
+ if trade and trade.full_number:
+ return trade.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
+ trade = self._get_report_trade()
+ if trade and trade.report_shipment:
+ return trade.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
+ trade = self._get_report_trade()
+ if trade and getattr(trade, 'trader', None):
+ return trade.trader.initial or ''
return ''
-
+
@property
def report_operator_initial(self):
- sale = self._get_report_sale()
- if sale and sale.operator:
- return self.operator.initial
+ trade = self._get_report_trade()
+ if trade and getattr(trade, 'operator', None):
+ return trade.operator.initial or ''
return ''
@property
def report_product_description(self):
- line = self._get_report_sale_line()
+ line = self._get_report_trade_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 ''
+ trade = self._get_report_trade()
+ if trade and getattr(trade, 'crop', None):
+ return trade.crop.name or ''
return ''
@property
def report_attributes_name(self):
- line = self._get_report_sale_line()
+ line = self._get_report_trade_line()
if line:
- return line.attributes_name or ''
+ return getattr(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
+ trade = self._get_report_trade()
+ if trade and trade.report_price:
+ return trade.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
+ trade = self._get_report_trade()
+ if trade and trade.report_payment_date:
+ return trade.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 ''
+ trade = self._get_report_trade()
+ if trade and trade.payment_term:
+ return trade.payment_term.description or ''
if self.payment_term:
return self.payment_term.description or ''
return ''
@@ -121,6 +136,12 @@ class Invoice(metaclass=PoolMeta):
sale = self._get_report_sale()
if sale and sale.report_nb_bale:
return sale.report_nb_bale
+ line = self._get_report_trade_line()
+ if line and line.lots:
+ nb_bale = sum(
+ lot.lot_qt for lot in line.lots if lot.lot_type == 'physic'
+ )
+ return 'NB BALES: ' + str(int(nb_bale))
return ''
@property
@@ -128,13 +149,25 @@ class Invoice(metaclass=PoolMeta):
sale = self._get_report_sale()
if sale and sale.report_gross != '':
return sale.report_gross
+ line = self._get_report_trade_line()
+ if line and line.lots:
+ return sum(
+ lot.get_current_gross_quantity_converted()
+ for lot in line.lots if lot.lot_type == 'physic'
+ )
return ''
@property
def report_net(self):
- sale = self._get_report_sale()
- if sale and sale.report_net != '':
- return sale.report_net
+ trade = self._get_report_trade()
+ if trade and getattr(trade, 'report_net', '') != '':
+ return trade.report_net
+ line = self._get_report_trade_line()
+ if line and line.lots:
+ return sum(
+ lot.get_current_quantity_converted()
+ for lot in line.lots if lot.lot_type == 'physic'
+ )
if self.lines:
return self.lines[0].quantity
return ''
@@ -168,11 +201,14 @@ class Invoice(metaclass=PoolMeta):
@property
def report_incoterm(self):
- sale = self._get_report_sale()
- if not sale:
+ trade = self._get_report_trade()
+ if not trade:
return ''
- incoterm = sale.incoterm.code if sale.incoterm else ''
- location = sale.incoterm_location.party_name if sale.incoterm_location else ''
+ incoterm = trade.incoterm.code if getattr(trade, 'incoterm', None) else ''
+ location = (
+ trade.incoterm_location.party_name
+ if getattr(trade, 'incoterm_location', None) else ''
+ )
if incoterm and location:
return f"{incoterm} {location}"
return incoterm or location
@@ -180,15 +216,25 @@ class Invoice(metaclass=PoolMeta):
@property
def report_proforma_invoice_number(self):
lot = self._get_report_lot()
- if lot and lot.sale_invoice_line_prov and lot.sale_invoice_line_prov.invoice:
- return lot.sale_invoice_line_prov.invoice.number or ''
+ if lot:
+ line = (
+ getattr(lot, 'sale_invoice_line_prov', None)
+ or getattr(lot, 'invoice_line_prov', None)
+ )
+ if line and line.invoice:
+ return line.invoice.number or ''
return ''
@property
def report_proforma_invoice_date(self):
lot = self._get_report_lot()
- if lot and lot.sale_invoice_line_prov and lot.sale_invoice_line_prov.invoice:
- return lot.sale_invoice_line_prov.invoice.invoice_date
+ if lot:
+ line = (
+ getattr(lot, 'sale_invoice_line_prov', None)
+ or getattr(lot, 'invoice_line_prov', None)
+ )
+ if line and line.invoice:
+ return line.invoice.invoice_date
@property
def report_controller_name(self):
From 8b6b93171f6c47e18d9c61ef25baafb9dedf1cd6 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Thu, 26 Mar 2026 19:15:14 +0100
Subject: [PATCH 601/618] 26.03.26
---
modules/purchase_trade/__init__.py | 1 +
modules/purchase_trade/invoice.py | 46 +
modules/purchase_trade/invoice.xml | 17 +
modules/purchase_trade/invoice_ict_final.fodt | 4084 +++++++++++++++++
modules/purchase_trade/tryton.cfg | 9 +-
5 files changed, 4153 insertions(+), 4 deletions(-)
create mode 100644 modules/purchase_trade/invoice.xml
create mode 100644 modules/purchase_trade/invoice_ict_final.fodt
diff --git a/modules/purchase_trade/__init__.py b/modules/purchase_trade/__init__.py
index b3f3591..0919bda 100755
--- a/modules/purchase_trade/__init__.py
+++ b/modules/purchase_trade/__init__.py
@@ -186,6 +186,7 @@ def register():
module='purchase', type_='model')
Pool.register(
invoice.Invoice,
+ invoice.InvoiceLine,
module='account_invoice', type_='model')
Pool.register(
forex.Forex,
diff --git a/modules/purchase_trade/invoice.py b/modules/purchase_trade/invoice.py
index 864c2fb..d9b4116 100644
--- a/modules/purchase_trade/invoice.py
+++ b/modules/purchase_trade/invoice.py
@@ -249,3 +249,49 @@ class Invoice(metaclass=PoolMeta):
if shipment:
return shipment.number or ''
return ''
+
+
+class InvoiceLine(metaclass=PoolMeta):
+ __name__ = 'account.invoice.line'
+
+ def _get_report_trade(self):
+ origin = getattr(self, 'origin', None)
+ if not origin:
+ return None
+ return getattr(origin, 'sale', None) or getattr(origin, 'purchase', None)
+
+ @property
+ def report_product_description(self):
+ if self.product:
+ return self.product.description or ''
+ origin = getattr(self, 'origin', None)
+ if origin and getattr(origin, 'product', None):
+ return origin.product.description or ''
+ return ''
+
+ @property
+ def report_crop_name(self):
+ trade = self._get_report_trade()
+ if trade and getattr(trade, 'crop', None):
+ return trade.crop.name or ''
+ return ''
+
+ @property
+ def report_attributes_name(self):
+ origin = getattr(self, 'origin', None)
+ if origin:
+ return getattr(origin, 'attributes_name', '') or ''
+ return ''
+
+ @property
+ def report_net(self):
+ if self.type == 'line':
+ return self.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/invoice.xml b/modules/purchase_trade/invoice.xml
new file mode 100644
index 0000000..acb7d4a
--- /dev/null
+++ b/modules/purchase_trade/invoice.xml
@@ -0,0 +1,17 @@
+
+
+
+
+ Final Invoice ICT
+ account.invoice
+ account.invoice
+ purchase_trade/invoice_ict_final.fodt
+
+
+
+ form_print
+ account.invoice,-1
+
+
+
+
diff --git a/modules/purchase_trade/invoice_ict_final.fodt b/modules/purchase_trade/invoice_ict_final.fodt
new file mode 100644
index 0000000..ac8a5ea
--- /dev/null
+++ b/modules/purchase_trade/invoice_ict_final.fodt
@@ -0,0 +1,4084 @@
+
+
+
+
+ Final Invoice
+ willen
+ 2018-12-09T16:20:00
+ 2026-03-26T18:22:40.515000000
+ 2007-08-28T18:19:00
+ LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265
+ 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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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
+ jYynoML+HewSRSYBDJmVKCW2FMOy/Oy3pLwBXqKDduqYpUKXRwUnJUSP/EOwv1Ol+5umgqfo
+ 7+i8mjTiBClJALdMEfWbsTwDlC5drjydLzeKaCReLv61sELJxUOM+lI/lC1EB4uqcGxNk0Np
+ xuBSLzIqLnXSytNLr0VvkftMqdn+0DLlqVIeX+WrCceaEg1BHNbvb1TuDWQuqp6ggbhLBJ8r
+ +k/h9+mfsStn6Ippgt+xvwNVWFhcSfCQ3IhiCqX78qNKPxylgSq6E7e4+EGhq4qLyA8qr5yn
+ ucRACiJTPEoF/iPzltqUH7frMBc/H3T1Sl6DV7+iBPJZpRuWfndKHXiXabi/WOKVEpCyq0WU
+ 94oFFAsoFlAsoFhAsYBigf/nFijj8X5AXaY2RMyIvBgtYyqx61ux+vyDOsjkRRla73wRsfTc
+ 6VFanZaxenlhKh+2y/K1fPofbrCLZWlZH650d/lS5LvRf77sOiCOoXqVvtrJqb6/sL9nc3ZG
+ kji9HInTb1xZpQI7jXgI65W3IeU7VsTvlJfVlZeuMNH/Z6/pB8PC77uEZUutWWl9ft0Ke8hv
+ y/XctbT85pUL/12QdLmluCV2ujh/JzMe/V9UNO3vesVO164oZEUr9IfT/7FZdrnmLu1XAmI7
+ dchdsdLOF8YFhVVFU+7cZ2RSj0Jm5BuXq/DvGAd+oQqWsGy3krn6Tyz7yf9RVWWI93uByVIH
+ 2LnqFXbbBcbJNpF77+87fOXNd62UOKk88Cs7gzhtl08q4mhKl6oM0JA7Z38ZZMnYyi7LL1oa
+ 8vItqAq7dnIh+iB7BnGdZDEGkbGoNAAIqNPVhEcAWhZnyN5h4hhRxtK43rml/rj7iU/Fkbt0
+ xfIJ/0N/K7vSUC1/N2zlK9DVhUCpbIeSaOv/UCTKkcRrx9MnV1hA5FXBQ7iKyEXnfj3CJsRu
+ iM9FrEplFxDkDWcQdvrtoA/7Ge3KbiAIiFIDi//pr5x2R/wY/VHF/50x/4c6k53LNaJClPuV
+ GCL9bVt6v1Me3MorK9TG/9Tdle8UCygWUCygWECxgGIBxQKKBRQLKBZQLKBYQLGAYoE/uQX+
+ R57yT152pXiKBRQLKBZQLKBYQLGAYgHFAooFFAsoFlAsoFhAscB/vQX+D/7u9z9ziytTAAAA
+ AElFTkSuQmCC
+
+
+
+
+
+
+
+
+
+
+ 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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <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)>
+
+
+
+
+
+
+
+
+
+ Final Invoice
+
+
+
+ <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
+
+
+ <for each="line in invoice.lines">
+ <if test="line.type == 'line'">
+ LINE <line.sequence> : QUANTITY <format_number(line.report_lbs, invoice.party.lang) if line.report_lbs != '' else ''> LBS (<format_number(line.report_net, invoice.party.lang) if line.report_net != '' else ''> MTS)
+ <line.report_product_description or line.product_name or ''> CROP <line.report_crop_name>
+ <line.report_attributes_name>
+ <if test="line.description">
+ <for each="description in line.description.split('\n')">
+ <description>
+ </for>
+ </if>
+ </if>
+ </for>
+ 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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/modules/purchase_trade/tryton.cfg b/modules/purchase_trade/tryton.cfg
index 8a488e2..cb663bd 100755
--- a/modules/purchase_trade/tryton.cfg
+++ b/modules/purchase_trade/tryton.cfg
@@ -29,8 +29,9 @@ xml:
party.xml
forex.xml
global_reporting.xml
- derivative.xml
- valuation.xml
- weight_report.xml
- dimension.xml
+ derivative.xml
+ valuation.xml
+ weight_report.xml
+ dimension.xml
backtoback.xml
+ invoice.xml
From edca5fed55f8464a882d73742cc483162aa706b5 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Thu, 26 Mar 2026 19:30:48 +0100
Subject: [PATCH 602/618] 26.03.26
---
modules/purchase_trade/invoice.xml | 3 +-
modules/purchase_trade/invoice_ict_final.fodt | 42 +++++++++----------
2 files changed, 20 insertions(+), 25 deletions(-)
diff --git a/modules/purchase_trade/invoice.xml b/modules/purchase_trade/invoice.xml
index acb7d4a..c05edbd 100644
--- a/modules/purchase_trade/invoice.xml
+++ b/modules/purchase_trade/invoice.xml
@@ -2,11 +2,10 @@
- Final Invoice ICT
+ Final Invoice
account.invoice
account.invoice
purchase_trade/invoice_ict_final.fodt
-
form_print
diff --git a/modules/purchase_trade/invoice_ict_final.fodt b/modules/purchase_trade/invoice_ict_final.fodt
index ac8a5ea..a09960a 100644
--- a/modules/purchase_trade/invoice_ict_final.fodt
+++ b/modules/purchase_trade/invoice_ict_final.fodt
@@ -5,16 +5,16 @@
Final Invoice
willen
2018-12-09T16:20:00
- 2026-03-26T18:22:40.515000000
+ 2026-03-26T19:27:43.538000000
2007-08-28T18:19:00
LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265
- PT2H56M5S
- 2
+ PT3H3M36S
+ 4
-
+
- 33995
+ 9878
0
27264
13187
@@ -23,12 +23,12 @@
view2
- 9206
- 42071
+ 10084
+ 15993
0
- 33995
+ 9878
27263
- 47181
+ 23063
0
0
false
@@ -101,7 +101,7 @@
false
false
false
- 139317
+ 248552
84510
false
false
@@ -172,7 +172,7 @@
-
+
@@ -729,14 +729,10 @@
-
-
-
-
-
+
-
+
@@ -3909,9 +3905,9 @@
</if>
</if>
</for>
- H.S CODE 5201.0090
+
<invoice.report_incoterm>
- ALL DETAILS AND SPECIFICATIONS AS PER BENEFICIARY’S
+ ALL DETAILS AND SPECIFICATIONS AS PER BENEFICIARY
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 ''> .
@@ -3988,18 +3984,18 @@
- 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
+ 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 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)>
+ <invoice.currency.symbol if invoice.currency else 'USD'> <format_currency(invoice.total_amount, invoice.party.lang, invoice.currency)>
@@ -4081,4 +4077,4 @@
-
+
\ No newline at end of file
From f0b0666773899c2a5eb0fb1e9d1fac968a79e23f Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Thu, 26 Mar 2026 19:50:27 +0100
Subject: [PATCH 603/618] 26.03.26
---
modules/account_invoice/invoice.xml | 13 ++++++++++
.../invoice_ict_final.fodt | 26 +++++++++----------
modules/purchase_trade/invoice.xml | 16 ------------
modules/purchase_trade/setup.py | 10 +++----
modules/purchase_trade/tryton.cfg | 1 -
5 files changed, 31 insertions(+), 35 deletions(-)
rename modules/{purchase_trade => account_invoice}/invoice_ict_final.fodt (99%)
delete mode 100644 modules/purchase_trade/invoice.xml
diff --git a/modules/account_invoice/invoice.xml b/modules/account_invoice/invoice.xml
index 1f500ef..aeb62c8 100755
--- a/modules/account_invoice/invoice.xml
+++ b/modules/account_invoice/invoice.xml
@@ -318,6 +318,19 @@ this repository contains the full copyright notices and license terms. -->
+
+ Final Invoice
+ account.invoice
+ account.invoice
+ account_invoice/invoice_ict_final.fodt
+
+
+
+ form_print
+ account.invoice,-1
+
+
+
Invoice
diff --git a/modules/purchase_trade/invoice_ict_final.fodt b/modules/account_invoice/invoice_ict_final.fodt
similarity index 99%
rename from modules/purchase_trade/invoice_ict_final.fodt
rename to modules/account_invoice/invoice_ict_final.fodt
index a09960a..7e80ec8 100644
--- a/modules/purchase_trade/invoice_ict_final.fodt
+++ b/modules/account_invoice/invoice_ict_final.fodt
@@ -5,16 +5,16 @@
Final Invoice
willen
2018-12-09T16:20:00
- 2026-03-26T19:27:43.538000000
+ 2026-03-26T19:40:52.573000000
2007-08-28T18:19:00
LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265
- PT3H3M36S
- 4
+ PT3H5M31S
+ 6
-
+
- 9878
+ 7144
0
27264
13187
@@ -23,12 +23,12 @@
view2
- 10084
- 15993
+ 18336
+ 26861
0
- 9878
+ 7144
27263
- 23063
+ 20329
0
0
false
@@ -101,7 +101,7 @@
false
false
false
- 248552
+ 336932
84510
false
false
@@ -172,7 +172,7 @@
-
+
@@ -3991,11 +3991,11 @@
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 ''>
+ IMPORTER 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)>
+ <format_currency(invoice.total_amount, invoice.party.lang, invoice.currency)>
diff --git a/modules/purchase_trade/invoice.xml b/modules/purchase_trade/invoice.xml
deleted file mode 100644
index c05edbd..0000000
--- a/modules/purchase_trade/invoice.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
- Final Invoice
- account.invoice
- account.invoice
- purchase_trade/invoice_ict_final.fodt
-
-
- form_print
- account.invoice,-1
-
-
-
-
diff --git a/modules/purchase_trade/setup.py b/modules/purchase_trade/setup.py
index 60d91b6..58a5ffc 100755
--- a/modules/purchase_trade/setup.py
+++ b/modules/purchase_trade/setup.py
@@ -67,10 +67,10 @@ setup(name=name,
+ ['trytond.modules.purchase_trade.%s' % p
for p in find_packages()]
),
- package_data={
- 'trytond.modules.purchase_trade': (info.get('xml', [])
- + ['tryton.cfg', 'view/*.xml', 'locale/*.po']),
- },
+ package_data={
+ 'trytond.modules.purchase_trade': (info.get('xml', [])
+ + ['tryton.cfg', 'view/*.xml', 'locale/*.po']),
+ },
classifiers=[
'Development Status :: 5 - Production/Stable',
'Environment :: Plugins',
@@ -120,4 +120,4 @@ setup(name=name,
[trytond.modules]
purchase_trade = trytond.modules.purchase_trade
""",
- )
\ No newline at end of file
+ )
diff --git a/modules/purchase_trade/tryton.cfg b/modules/purchase_trade/tryton.cfg
index cb663bd..e125de5 100755
--- a/modules/purchase_trade/tryton.cfg
+++ b/modules/purchase_trade/tryton.cfg
@@ -34,4 +34,3 @@ xml:
weight_report.xml
dimension.xml
backtoback.xml
- invoice.xml
From c06ea3bd9904eb73738f8d8ce6cfe1fa00fe9edb Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Thu, 26 Mar 2026 19:58:14 +0100
Subject: [PATCH 604/618] 26.03.26
---
modules/account_invoice/invoice.py | 16 ++++++++++++++--
1 file changed, 14 insertions(+), 2 deletions(-)
diff --git a/modules/account_invoice/invoice.py b/modules/account_invoice/invoice.py
index 49b924e..7a00e0b 100755
--- a/modules/account_invoice/invoice.py
+++ b/modules/account_invoice/invoice.py
@@ -3695,13 +3695,19 @@ class InvoiceReport(Report):
Invoice = pool.get('account.invoice')
# Re-instantiate because records are TranslateModel
invoice, = Invoice.browse(records)
- if invoice.invoice_report_cache:
+ report_path = cls._get_action_report_path(action)
+ use_cache = (
+ report_path in (None, 'account_invoice/invoice.fodt')
+ and invoice.invoice_report_cache
+ )
+ if use_cache:
return (
invoice.invoice_report_format,
invoice.invoice_report_cache)
else:
result = super()._execute(records, header, data, action)
- if invoice.invoice_report_versioned:
+ if (invoice.invoice_report_versioned
+ and report_path in (None, 'account_invoice/invoice.fodt')):
format_, data = result
if isinstance(data, str):
data = bytes(data, 'utf-8')
@@ -3718,6 +3724,12 @@ class InvoiceReport(Report):
with Transaction().set_context(language=False):
return super().render(*args, **kwargs)
+ @staticmethod
+ def _get_action_report_path(action):
+ if isinstance(action, dict):
+ return action.get('report')
+ return getattr(action, 'report', None)
+
@classmethod
def execute(cls, ids, data):
pool = Pool()
From 51778bda9e494c1f4baa1e64cff07853489062f1 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Thu, 26 Mar 2026 20:09:33 +0100
Subject: [PATCH 605/618] 26.03.26
---
modules/account_invoice/invoice.xml | 7 +------
1 file changed, 1 insertion(+), 6 deletions(-)
diff --git a/modules/account_invoice/invoice.xml b/modules/account_invoice/invoice.xml
index aeb62c8..cc704bc 100755
--- a/modules/account_invoice/invoice.xml
+++ b/modules/account_invoice/invoice.xml
@@ -264,11 +264,6 @@ this repository contains the full copyright notices and license terms. -->
account.invoice.refresh_invoice_report
account.invoice
-
- form_print
- account.invoice,-1
-
-
@@ -293,7 +288,7 @@ this repository contains the full copyright notices and license terms. -->
- Invoice
+ Provisional Invoice
account.invoice
account.invoice
account_invoice/invoice.fodt
From e2bbd0e522e6c7af1c84a5cccc2d6187d59614ae Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Thu, 26 Mar 2026 20:31:45 +0100
Subject: [PATCH 606/618] 26.03.26
---
modules/account_invoice/invoice_ict.fodt | 58 +++++++-------
.../account_invoice/invoice_ict_final.fodt | 77 +++++++++++--------
modules/purchase_trade/invoice.py | 7 ++
3 files changed, 84 insertions(+), 58 deletions(-)
diff --git a/modules/account_invoice/invoice_ict.fodt b/modules/account_invoice/invoice_ict.fodt
index 43b1f70..4a15179 100644
--- a/modules/account_invoice/invoice_ict.fodt
+++ b/modules/account_invoice/invoice_ict.fodt
@@ -5,16 +5,16 @@
Provisional Invoice
willen
2018-12-09T16:20:00
- 2026-03-26T18:22:40.515000000
+ 2026-03-26T20:24:09.299000000
2007-08-28T18:19:00
LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265
- PT2H56M5S
- 2
+ PT3H1M50S
+ 4
-
+
- 33995
+ 22049
0
27264
13187
@@ -23,12 +23,12 @@
view2
- 9206
- 42071
+ 11920
+ 24352
0
- 33995
+ 22049
27263
- 47181
+ 35234
0
0
false
@@ -101,7 +101,7 @@
false
false
false
- 139317
+ 147570
84510
false
false
@@ -172,7 +172,7 @@
-
+
@@ -730,13 +730,21 @@
-
+
-
+
+
+
+
+
+
+
+
+
-
+
@@ -757,6 +765,9 @@
+
+
+
@@ -3863,7 +3874,7 @@
- N° of Bill of Lading
+ N° of Bill of Lading
<invoice.reference or ''>
@@ -3900,16 +3911,11 @@
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
+ ALL DETAILS AND SPECIFICATIONS AS PER BENEFICIARY
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 ''> .
-
-
-
-
-
@@ -3983,10 +3989,8 @@
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
+ WE CERTIFY THAT THE MERCHANDISE IS OF <invoice.report_origin or ''> 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 ''>
@@ -4009,7 +4013,7 @@
<for each="tax in invoice.taxes">
V.A.T. <tax.description or ''> RATE
- </for>
+ </for>
@@ -4072,4 +4076,4 @@
-
+
\ No newline at end of file
diff --git a/modules/account_invoice/invoice_ict_final.fodt b/modules/account_invoice/invoice_ict_final.fodt
index 7e80ec8..0ea65e7 100644
--- a/modules/account_invoice/invoice_ict_final.fodt
+++ b/modules/account_invoice/invoice_ict_final.fodt
@@ -5,16 +5,16 @@
Final Invoice
willen
2018-12-09T16:20:00
- 2026-03-26T19:40:52.573000000
+ 2026-03-26T20:30:59.092000000
2007-08-28T18:19:00
LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265
- PT3H5M31S
- 6
+ PT3H10M1S
+ 8
-
+
- 7144
+ 30868
0
27264
13187
@@ -23,12 +23,12 @@
view2
- 18336
- 26861
+ 5639
+ 34064
0
- 7144
+ 30868
27263
- 20329
+ 44053
0
0
false
@@ -101,7 +101,7 @@
false
false
false
- 336932
+ 426446
84510
false
false
@@ -172,7 +172,7 @@
-
+
@@ -729,10 +729,30 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
@@ -753,6 +773,9 @@
+
+
+
@@ -3894,27 +3917,21 @@
<for each="line in invoice.lines">
- <if test="line.type == 'line'">
- LINE <line.sequence> : QUANTITY <format_number(line.report_lbs, invoice.party.lang) if line.report_lbs != '' else ''> LBS (<format_number(line.report_net, invoice.party.lang) if line.report_net != '' else ''> MTS)
+ <if test="line.type == 'line'">
+ <if test="line.description">
+ <for each="description in line.description.split('\n')">
+ <description>
+ </for>
+ </if>
+ QUANTITY <format_number(line.report_lbs, invoice.party.lang) if line.report_lbs != '' else ''> LBS (<format_number(line.report_net, invoice.party.lang) if line.report_net != '' else ''> MTS)
<line.report_product_description or line.product_name or ''> CROP <line.report_crop_name>
<line.report_attributes_name>
- <if test="line.description">
- <for each="description in line.description.split('\n')">
- <description>
- </for>
- </if>
</if>
</for>
-
<invoice.report_incoterm>
ALL DETAILS AND SPECIFICATIONS AS PER BENEFICIARY
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 ''> .
-
-
-
-
-
@@ -3984,18 +4001,16 @@
- 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
+ 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
+ WE CERTIFY THAT THE MERCHANDISE IS OF <invoice.report_origin or ''> 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 NTN <invoice.party_tax_identifier.code if invoice.party_tax_identifier else ''>
- <format_currency(invoice.total_amount, invoice.party.lang, invoice.currency)>
+ <format_currency(invoice.total_amount, invoice.party.lang, invoice.currency)>
diff --git a/modules/purchase_trade/invoice.py b/modules/purchase_trade/invoice.py
index d9b4116..dd696f7 100644
--- a/modules/purchase_trade/invoice.py
+++ b/modules/purchase_trade/invoice.py
@@ -79,6 +79,13 @@ class Invoice(metaclass=PoolMeta):
if trade and getattr(trade, 'trader', None):
return trade.trader.initial or ''
return ''
+
+ @property
+ def report_origin(self):
+ trade = self._get_report_trade()
+ if trade and getattr(trade, 'product_origin', None):
+ return trade.product_origin or ''
+ return ''
@property
def report_operator_initial(self):
From 97cc447e0a7b91a9ca16ea3e497528f8fecb37b4 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Thu, 26 Mar 2026 20:54:08 +0100
Subject: [PATCH 607/618] 26.03.26
---
AGENTS.md | 2 +
modules/account_invoice/invoice_ict.fodt | 190 +++++++--------
.../account_invoice/invoice_ict_final.fodt | 226 +++++++++---------
modules/purchase_trade/docs/template-rules.md | 12 +
modules/purchase_trade/invoice.py | 12 +
5 files changed, 226 insertions(+), 216 deletions(-)
diff --git a/AGENTS.md b/AGENTS.md
index 75d3235..9a9fb60 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -43,6 +43,8 @@ Guide rapide pour les agents qui codent dans ce repository.
- Preferer des proprietes Python simples exposees par le modele plutot que des expressions Genshi complexes dans le template.
- Dans les placeholders XML, utiliser `"` et `'` plutot que des antislashs type `\'`.
- Si un document facture depend fortement d'une vente/achat, ajouter au besoin un petit pont Python pour exposer des `report_*` stables au template.
+ - Si plusieurs actions de report pointent vers `report_name = 'account.invoice'`, verifier aussi le cache `invoice_report_cache` dans `modules/account_invoice/invoice.py`: un mauvais cache peut faire croire que plusieurs actions utilisent le meme `.fodt`.
+ - Avant de conclure qu'un template ou une action est faux, verifier si le report alternatif doit bypasser le cache standard.
## 5) Workflow de modification (obligatoire)
diff --git a/modules/account_invoice/invoice_ict.fodt b/modules/account_invoice/invoice_ict.fodt
index 4a15179..ea4efe9 100644
--- a/modules/account_invoice/invoice_ict.fodt
+++ b/modules/account_invoice/invoice_ict.fodt
@@ -5,16 +5,16 @@
Provisional Invoice
willen
2018-12-09T16:20:00
- 2026-03-26T20:24:09.299000000
+ 2026-03-26T20:52:14.851000000
2007-08-28T18:19:00
LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265
- PT3H1M50S
- 4
+ PT3H14M56S
+ 6
-
+
- 22049
+ 16316
0
27264
13187
@@ -23,12 +23,12 @@
view2
- 11920
- 24352
+ 18336
+ 21340
0
- 22049
+ 16316
27263
- 35234
+ 29501
0
0
false
@@ -101,7 +101,7 @@
false
false
false
- 147570
+ 215514
84510
false
false
@@ -172,7 +172,7 @@
-
+
@@ -625,102 +625,106 @@
+
+
+
+
-
+
-
+
-
+
-
+
-
-
-
-
-
+
-
+
-
+
-
+
-
+
+
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -729,22 +733,10 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
+
@@ -3829,7 +3821,7 @@
-
+
@@ -3843,24 +3835,24 @@
-
- Provisional Invoice
+
+ Provisional Invoice
-
- <invoice.number>
+
+ <invoice.number>
- Contract N°
+ Contract N°
- <invoice.report_contract_number>
+ <invoice.report_contract_number>
-
+
@@ -3869,7 +3861,7 @@
Name of the vessel
- <invoice.report_shipment or ''>
+ <invoice.report_vessel or ''>
@@ -3877,7 +3869,7 @@
N° of Bill of Lading
- <invoice.reference or ''>
+ <invoice.report_bl_nb or ''>
@@ -3899,28 +3891,28 @@
-
+
- Goods description
+ 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>
-
- <invoice.report_incoterm>
- ALL DETAILS AND SPECIFICATIONS AS PER BENEFICIARY
- 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 ''> .
-
+ 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>
+
+ <invoice.report_incoterm>
+ ALL DETAILS AND SPECIFICATIONS AS PER BENEFICIARY
+ 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 ''> .
+
-
+
@@ -3928,16 +3920,16 @@
BALES
- Gross KGS
+ Gross KGS
NET KGS
-
+
-
+
@@ -3948,13 +3940,13 @@
<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 ''>
+ <format_number(invoice.report_net, invoice.party.lang) if invoice.report_net != '' else ''>
-
+
@@ -3975,11 +3967,11 @@
<format_number(invoice.report_lbs, invoice.party.lang) if invoice.report_lbs != '' else ''>
-
+
-
+
@@ -3989,14 +3981,14 @@
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 <invoice.report_origin or ''> ORIGIN
- L/C NUMBER <invoice.reference or ''>
-
+ WE CERTIFY THAT THE MERCHANDISE IS OF <invoice.report_origin or ''> ORIGIN
+ L/C NUMBER <invoice.reference or ''>
+
- <invoice.currency.symbol if invoice.currency else 'USD'> <format_currency(invoice.total_amount, invoice.party.lang, invoice.currency)>
-
-
+ <format_currency(invoice.total_amount, invoice.party.lang, invoice.currency)>
+
+
@@ -4005,19 +3997,19 @@
- NET LANDED WEIGHTS, ACTUAL TARE, NO FRANCHISE
-
+ NET LANDED WEIGHTS, ACTUAL TARE, NO FRANCHISE
+
- <for each="tax in invoice.taxes">
- V.A.T. <tax.description or ''> RATE
- </for>
+ <for each="tax in invoice.taxes">
+ V.A.T. <tax.description or ''> RATE
+ </for>
-
+
@@ -4028,17 +4020,17 @@
Controller Name
- <invoice.report_si_number>
-
- <invoice.report_controller_name>
+ <invoice.report_si_number>
+
+ <invoice.report_controller_name>
-
+
-
+
@@ -4053,12 +4045,12 @@
</if>
- ICT TRADING S.A.
+ ICT TRADING S.A.
- <invoice.report_trader_initial> / <invoice.report_operator_initial>
+ <invoice.report_trader_initial> / <invoice.report_operator_initial>
@@ -4073,7 +4065,7 @@
-
+
\ No newline at end of file
diff --git a/modules/account_invoice/invoice_ict_final.fodt b/modules/account_invoice/invoice_ict_final.fodt
index 0ea65e7..e22e6bf 100644
--- a/modules/account_invoice/invoice_ict_final.fodt
+++ b/modules/account_invoice/invoice_ict_final.fodt
@@ -14,21 +14,21 @@
- 30868
+ 0
0
27264
- 13187
+ 13804
true
false
view2
- 5639
- 34064
+ 5131
+ 1251
0
- 30868
+ 0
27263
- 44053
+ 13802
0
0
false
@@ -101,7 +101,7 @@
false
false
false
- 426446
+ 467517
84510
false
false
@@ -172,7 +172,7 @@
-
+
@@ -625,102 +625,114 @@
-
-
+
+
-
+
-
-
+
+
-
+
+
+
+
+
+
+
+
+
-
+
-
-
-
-
-
-
-
-
-
+
-
+
-
+
-
-
+
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -729,30 +741,10 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
+
@@ -3837,7 +3829,7 @@
-
+
@@ -3851,24 +3843,24 @@
-
- Final Invoice
+
+ Final Invoice
-
- <invoice.number>
+
+ <invoice.number>
- Contract N°
+ Contract N°
- <invoice.report_contract_number>
+ <invoice.report_contract_number>
-
+
@@ -3877,7 +3869,7 @@
Name of the vessel
- <invoice.report_shipment or ''>
+ <invoice.report_shipment or ''>
@@ -3907,36 +3899,36 @@
-
+
- Goods description
+ Goods description
- <for each="line in invoice.lines">
- <if test="line.type == 'line'">
- <if test="line.description">
- <for each="description in line.description.split('\n')">
- <description>
- </for>
- </if>
- QUANTITY <format_number(line.report_lbs, invoice.party.lang) if line.report_lbs != '' else ''> LBS (<format_number(line.report_net, invoice.party.lang) if line.report_net != '' else ''> MTS)
- <line.report_product_description or line.product_name or ''> CROP <line.report_crop_name>
- <line.report_attributes_name>
- </if>
- </for>
- <invoice.report_incoterm>
- ALL DETAILS AND SPECIFICATIONS AS PER BENEFICIARY
- 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 ''> .
-
+ <for each="line in invoice.lines">
+ <if test="line.type == 'line'">
+ <if test="line.description">
+ <for each="description in line.description.split('\n')">
+ <description>
+ </for>
+ </if>
+ QUANTITY <format_number(line.report_lbs, invoice.party.lang) if line.report_lbs != '' else ''> LBS (<format_number(line.report_net, invoice.party.lang) if line.report_net != '' else ''> MTS)
+ <line.report_product_description or line.product_name or ''> CROP <line.report_crop_name>
+ <line.report_attributes_name>
+ </if>
+ </for>
+ <invoice.report_incoterm>
+ ALL DETAILS AND SPECIFICATIONS AS PER BENEFICIARY
+ 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 ''> .
+
-
+
@@ -3944,16 +3936,16 @@
BALES
- Gross KGS
+ Gross KGS
NET KGS
-
+
-
+
@@ -3964,13 +3956,13 @@
<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 ''>
+ <format_number(invoice.report_net, invoice.party.lang) if invoice.report_net != '' else ''>
-
+
@@ -3991,11 +3983,11 @@
<format_number(invoice.report_lbs, invoice.party.lang) if invoice.report_lbs != '' else ''>
-
+
-
+
@@ -4005,14 +3997,14 @@
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 <invoice.report_origin or ''> ORIGIN
- L/C NUMBER <invoice.reference or ''>
-
+ WE CERTIFY THAT THE MERCHANDISE IS OF <invoice.report_origin or ''> ORIGIN
+ L/C NUMBER <invoice.reference or ''>
+
- <format_currency(invoice.total_amount, invoice.party.lang, invoice.currency)>
-
-
+ <format_currency(invoice.total_amount, invoice.party.lang, invoice.currency)>
+
+
@@ -4021,19 +4013,19 @@
- NET LANDED WEIGHTS, ACTUAL TARE, NO FRANCHISE
-
+ NET LANDED WEIGHTS, ACTUAL TARE, NO FRANCHISE
+
- <for each="tax in invoice.taxes">
- V.A.T. <tax.description or ''> RATE
- </for>
+ <for each="tax in invoice.taxes">
+ V.A.T. <tax.description or ''> RATE
+ </for>
-
+
@@ -4044,17 +4036,17 @@
Controller Name
- <invoice.report_si_number>
-
- <invoice.report_controller_name>
+ <invoice.report_si_number>
+
+ <invoice.report_controller_name>
-
+
-
+
@@ -4069,12 +4061,12 @@
</if>
- ICT TRADING S.A.
+ ICT TRADING S.A.
- <invoice.report_trader_initial> / <invoice.report_operator_initial>
+ <invoice.report_trader_initial> / <invoice.report_operator_initial>
@@ -4089,7 +4081,7 @@
-
+
\ No newline at end of file
diff --git a/modules/purchase_trade/docs/template-rules.md b/modules/purchase_trade/docs/template-rules.md
index 885fd88..04ec891 100644
--- a/modules/purchase_trade/docs/template-rules.md
+++ b/modules/purchase_trade/docs/template-rules.md
@@ -82,6 +82,17 @@ Derniere mise a jour: `2026-03-26`
- `report_payment_date`
- `report_shipment`
+### TR-006 - Penser au cache des reports facture avant d'accuser le `.fodt`
+
+- Les actions de report `account.invoice` peuvent partager le meme moteur de rendu.
+- Dans `modules/account_invoice/invoice.py`, le champ `invoice_report_cache` peut reutiliser un document deja genere.
+- Symptome typique:
+ - plusieurs actions differentes (`Provisional Invoice`, `Final Invoice`, `Prepayment`, etc.) semblent ouvrir le meme template ou le meme rendu
+- Reflexe a avoir:
+ - verifier si le probleme vient du cache avant de modifier le `.fodt`
+ - pour un report alternatif, ne pas reutiliser le cache du report standard `account_invoice/invoice.fodt`
+ - si besoin, bypasser la lecture/ecriture du cache pour les templates alternatifs
+
## 4) Workflow recommande pour corriger un template en erreur
1. Identifier le placeholder exact qui provoque l'erreur Relatorio.
@@ -90,6 +101,7 @@ Derniere mise a jour: `2026-03-26`
4. Si l'expression devient trop longue, la deplacer dans une propriete Python `report_*`.
5. Ne modifier que les placeholders necessaires.
6. Regenerer le document pour verifier la prochaine erreur eventuelle.
+7. Si plusieurs actions affichent le meme rendu, verifier ensuite le cache `invoice_report_cache`.
## 5) Cas documentes dans ce repo
diff --git a/modules/purchase_trade/invoice.py b/modules/purchase_trade/invoice.py
index dd696f7..4aa627b 100644
--- a/modules/purchase_trade/invoice.py
+++ b/modules/purchase_trade/invoice.py
@@ -192,6 +192,18 @@ class Invoice(metaclass=PoolMeta):
if shipment:
return shipment.bl_date
+ @property
+ def report_bl_nb(self):
+ shipment = self._get_report_shipment()
+ if shipment:
+ return shipment.bl_number
+
+ @property
+ def report_vessel(self):
+ shipment = self._get_report_shipment()
+ if shipment and shipment.vessel:
+ return shipment.vessel.vessel_name
+
@property
def report_loading_port(self):
shipment = self._get_report_shipment()
From 126455bf0f07f55af53de0024d33ceee5c24270b Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Thu, 26 Mar 2026 21:01:14 +0100
Subject: [PATCH 608/618] 26.03.26
---
.../account_invoice/invoice_ict_final.fodt | 30 +++++++++----------
1 file changed, 15 insertions(+), 15 deletions(-)
diff --git a/modules/account_invoice/invoice_ict_final.fodt b/modules/account_invoice/invoice_ict_final.fodt
index e22e6bf..abea759 100644
--- a/modules/account_invoice/invoice_ict_final.fodt
+++ b/modules/account_invoice/invoice_ict_final.fodt
@@ -5,30 +5,30 @@
Final Invoice
willen
2018-12-09T16:20:00
- 2026-03-26T20:30:59.092000000
+ 2026-03-26T21:00:24.650000000
2007-08-28T18:19:00
LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265
- PT3H10M1S
- 8
+ PT3H10M43S
+ 9
-
+
- 0
+ 5292
0
27264
- 13804
+ 13187
true
false
view2
- 5131
- 1251
+ 10084
+ 8031
0
- 0
+ 5292
27263
- 13802
+ 18477
0
0
false
@@ -101,7 +101,7 @@
false
false
false
- 467517
+ 567430
84510
false
false
@@ -172,7 +172,7 @@
-
+
@@ -3869,15 +3869,15 @@
Name of the vessel
- <invoice.report_shipment or ''>
+ <invoice.report_vessel or ''>
- N° of Bill of Lading
+ N° of Bill of Lading
- <invoice.reference or ''>
+ <invoice.report_bl_nb or ''>
From 97cfd13da28cc180c7a79d3e1ba2af5fd1ed530c Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Thu, 26 Mar 2026 21:43:25 +0100
Subject: [PATCH 609/618] 26.03.26
---
modules/purchase_trade/fee.py | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index 2771185..0b7f0f8 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -129,6 +129,7 @@ class Fee(ModelSQL,ModelView):
if line:
if line.lots:
qt = sum([e.get_current_quantity_converted(0,self.unit) for e in line.lots])
+ qt_ = sum([e.get_current_quantity_converted(0) for e in line.lots])
unit = line.lots[0].lot_unit_line
logger.info("ON_CHANGE_WITH_QT0:%s",qt)
logger.info("ON_CHANGE_WITH_SI:%s",self.shipment_in)
@@ -138,6 +139,7 @@ class Fee(ModelSQL,ModelView):
logger.info("ON_CHANGE_WITH_LOTS:%s",lots)
if lots:
qt = sum([e.get_current_quantity_converted(0,self.unit) for e in lots])
+ qt_ = sum([e.get_current_quantity_converted(0) for e in lots])
unit = lots[0].lot_unit_line
if not qt:
logger.info("ON_CHANGE_WITH_QT1:%s",qt)
@@ -146,13 +148,14 @@ class Fee(ModelSQL,ModelView):
lqts = LotQt.search(['lot_shipment_in','=',self.shipment_in.id])
if lqts:
qt = Decimal(lqts[0].lot_quantity)
+ qt_ = qt
unit = lqts[0].lot_unit
logger.info("ON_CHANGE_WITH_QT2:%s",qt)
if self.mode != 'ppack':
return qt
else:
if self.auto_calculation:
- return (qt * Decimal(unit.factor) / Decimal(self.unit.factor)).to_integral_value(rounding=ROUND_UP)
+ return (qt_ * Decimal(unit.factor) / Decimal(self.unit.factor)).to_integral_value(rounding=ROUND_UP)
@fields.depends('price','mode','_parent_line.lots','_parent_sale_line.lots','shipment_in')
def on_change_with_unit(self, name=None):
From 620d6bb604f289c6163cf9db5635041cb2a2d1a3 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Thu, 26 Mar 2026 21:50:47 +0100
Subject: [PATCH 610/618] 26.03.26
---
modules/purchase_trade/fee.py | 2 ++
1 file changed, 2 insertions(+)
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index 0b7f0f8..d2e295e 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -155,6 +155,8 @@ class Fee(ModelSQL,ModelView):
return qt
else:
if self.auto_calculation:
+ logger.info("AUTOCALCULATION:%s",qt)
+ logger.info("AUTOCALCULATION2:%s",qt_)
return (qt_ * Decimal(unit.factor) / Decimal(self.unit.factor)).to_integral_value(rounding=ROUND_UP)
@fields.depends('price','mode','_parent_line.lots','_parent_sale_line.lots','shipment_in')
From 11c489f79d9753dfeaeb81f6e80ba4b27b9e655e Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Thu, 26 Mar 2026 21:57:02 +0100
Subject: [PATCH 611/618] 26.03.26
---
modules/purchase_trade/fee.py | 2 ++
1 file changed, 2 insertions(+)
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index d2e295e..2e28aca 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -157,6 +157,8 @@ class Fee(ModelSQL,ModelView):
if self.auto_calculation:
logger.info("AUTOCALCULATION:%s",qt)
logger.info("AUTOCALCULATION2:%s",qt_)
+ logger.info("AUTOCALCULATION3:%s",Decimal(unit.factor))
+ logger.info("AUTOCALCULATION4:%s",Decimal(self.unit.factor))
return (qt_ * Decimal(unit.factor) / Decimal(self.unit.factor)).to_integral_value(rounding=ROUND_UP)
@fields.depends('price','mode','_parent_line.lots','_parent_sale_line.lots','shipment_in')
From af4ae99dc0289b06bc5cc9134dd5f2b311f35336 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Thu, 26 Mar 2026 22:08:56 +0100
Subject: [PATCH 612/618] 26.03.26
---
modules/purchase_trade/fee.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/modules/purchase_trade/fee.py b/modules/purchase_trade/fee.py
index 2e28aca..b8da907 100755
--- a/modules/purchase_trade/fee.py
+++ b/modules/purchase_trade/fee.py
@@ -130,7 +130,7 @@ class Fee(ModelSQL,ModelView):
if line.lots:
qt = sum([e.get_current_quantity_converted(0,self.unit) for e in line.lots])
qt_ = sum([e.get_current_quantity_converted(0) for e in line.lots])
- unit = line.lots[0].lot_unit_line
+ unit = line.lots[0].lot_unit
logger.info("ON_CHANGE_WITH_QT0:%s",qt)
logger.info("ON_CHANGE_WITH_SI:%s",self.shipment_in)
if self.shipment_in:
@@ -140,7 +140,7 @@ class Fee(ModelSQL,ModelView):
if lots:
qt = sum([e.get_current_quantity_converted(0,self.unit) for e in lots])
qt_ = sum([e.get_current_quantity_converted(0) for e in lots])
- unit = lots[0].lot_unit_line
+ unit = lots[0].lot_unit
if not qt:
logger.info("ON_CHANGE_WITH_QT1:%s",qt)
LotQt = Pool().get('lot.qt')
From 0979021f413953a556abbf11a19dec3375af600d Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Fri, 27 Mar 2026 06:51:43 +0100
Subject: [PATCH 613/618] 27.03.26
---
modules/account_invoice/invoice_ict.fodt | 4 ++--
modules/account_invoice/invoice_ict_final.fodt | 8 +++-----
modules/purchase_trade/invoice.py | 12 +++++++++++-
3 files changed, 16 insertions(+), 8 deletions(-)
diff --git a/modules/account_invoice/invoice_ict.fodt b/modules/account_invoice/invoice_ict.fodt
index ea4efe9..3b0fbf7 100644
--- a/modules/account_invoice/invoice_ict.fodt
+++ b/modules/account_invoice/invoice_ict.fodt
@@ -3901,7 +3901,7 @@
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_description_upper or invoice.report_product_description> CROP <invoice.report_crop_name>
<invoice.report_attributes_name>
<invoice.report_incoterm>
@@ -4068,4 +4068,4 @@
-
\ No newline at end of file
+
diff --git a/modules/account_invoice/invoice_ict_final.fodt b/modules/account_invoice/invoice_ict_final.fodt
index abea759..50ad70f 100644
--- a/modules/account_invoice/invoice_ict_final.fodt
+++ b/modules/account_invoice/invoice_ict_final.fodt
@@ -3910,10 +3910,8 @@
<for each="line in invoice.lines">
<if test="line.type == 'line'">
- <if test="line.description">
- <for each="description in line.description.split('\n')">
- <description>
- </for>
+ <if test="line.report_description_upper">
+ <line.report_description_upper>
</if>
QUANTITY <format_number(line.report_lbs, invoice.party.lang) if line.report_lbs != '' else ''> LBS (<format_number(line.report_net, invoice.party.lang) if line.report_net != '' else ''> MTS)
<line.report_product_description or line.product_name or ''> CROP <line.report_crop_name>
@@ -4084,4 +4082,4 @@
-
\ No newline at end of file
+
diff --git a/modules/purchase_trade/invoice.py b/modules/purchase_trade/invoice.py
index 4aa627b..63471f8 100644
--- a/modules/purchase_trade/invoice.py
+++ b/modules/purchase_trade/invoice.py
@@ -101,6 +101,12 @@ class Invoice(metaclass=PoolMeta):
return line.product.description or ''
return ''
+ @property
+ def report_description_upper(self):
+ if self.lines:
+ return (self.lines[0].description or '').upper()
+ return ''
+
@property
def report_crop_name(self):
trade = self._get_report_trade()
@@ -288,6 +294,10 @@ class InvoiceLine(metaclass=PoolMeta):
return origin.product.description or ''
return ''
+ @property
+ def report_description_upper(self):
+ return (self.description or '').upper()
+
@property
def report_crop_name(self):
trade = self._get_report_trade()
@@ -313,4 +323,4 @@ class InvoiceLine(metaclass=PoolMeta):
net = self.report_net
if net == '':
return ''
- return Decimal(net) * Decimal('2.20462')
+ return round(Decimal(net) * Decimal('2204.62'),2)
From 22d186f0ac4d18b2883a9dafd1ac9f4cc20928b8 Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Fri, 27 Mar 2026 07:30:15 +0100
Subject: [PATCH 614/618] 27.03.26
---
modules/account_invoice/invoice_ict.fodt | 73 ++++++++----
.../account_invoice/invoice_ict_final.fodt | 41 ++++---
modules/purchase_trade/invoice.py | 82 ++++++++++++-
modules/purchase_trade/sale.py | 112 +++++++++---------
4 files changed, 210 insertions(+), 98 deletions(-)
diff --git a/modules/account_invoice/invoice_ict.fodt b/modules/account_invoice/invoice_ict.fodt
index 3b0fbf7..eb3c297 100644
--- a/modules/account_invoice/invoice_ict.fodt
+++ b/modules/account_invoice/invoice_ict.fodt
@@ -4,17 +4,17 @@
Provisional Invoice
willen
- 2018-12-09T16:20:00
- 2026-03-26T20:52:14.851000000
- 2007-08-28T18:19:00
- LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265
- PT3H14M56S
- 6
-
+
+
+ LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265
+ PT3H15M31S
+ 7
+
+ 2026-03-27T07:14:46.578000000
- 16316
+ 7673
0
27264
13187
@@ -23,12 +23,12 @@
view2
- 18336
- 21340
+ 14314
+ 13411
0
- 16316
+ 7673
27263
- 29501
+ 20858
0
0
false
@@ -101,11 +101,11 @@
false
false
false
- 215514
+ 233971
84510
false
false
- false
+ true
true
true
false
@@ -114,7 +114,7 @@
false
true
true
- false
+ true
false
false
false
@@ -131,6 +131,7 @@
0
false
true
+ true
false
false
0
@@ -172,7 +173,7 @@
-
+
@@ -277,6 +278,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -300,6 +318,7 @@
+
@@ -396,6 +415,9 @@
+
+
+
@@ -733,10 +755,14 @@
-
+
+
+
+
+
-
+
@@ -764,7 +790,7 @@
-
+
@@ -3903,7 +3929,7 @@
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_description_upper or invoice.report_product_description> CROP <invoice.report_crop_name>
<invoice.report_attributes_name>
-
+ At <invoice.report_rate_currency_upper> <invoice.report_rate_value> PER <invoice.report_rate_unit_upper> (<invoice.report_rate_price_words> ) <invoice.report_rate_pricing_text>
<invoice.report_incoterm>
ALL DETAILS AND SPECIFICATIONS AS PER BENEFICIARY
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 ''> .
@@ -3977,7 +4003,7 @@
- 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
+ At <invoice.report_rate_currency_upper> <invoice.report_rate_value> PER <invoice.report_rate_unit_upper> (<invoice.report_rate_price_words> ) <invoice.report_rate_pricing_text>
FREIGHT VALUE: <invoice.currency.symbol if invoice.currency else 'USD'> <format_number(invoice.freight_amount, invoice.party.lang) if hasattr(invoice, 'freight_amount') else ''>
@@ -3995,6 +4021,7 @@
+
NET LANDED WEIGHTS, ACTUAL TARE, NO FRANCHISE
@@ -4005,7 +4032,7 @@
<for each="tax in invoice.taxes">
V.A.T. <tax.description or ''> RATE
- </for>
+ </for>
@@ -4068,4 +4095,4 @@
-
+
\ No newline at end of file
diff --git a/modules/account_invoice/invoice_ict_final.fodt b/modules/account_invoice/invoice_ict_final.fodt
index 50ad70f..bf33374 100644
--- a/modules/account_invoice/invoice_ict_final.fodt
+++ b/modules/account_invoice/invoice_ict_final.fodt
@@ -5,16 +5,16 @@
Final Invoice
willen
2018-12-09T16:20:00
- 2026-03-26T21:00:24.650000000
+ 2026-03-27T07:13:52.204000000
2007-08-28T18:19:00
LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265
- PT3H10M43S
- 9
+ PT3H11M47S
+ 10
-
+
- 5292
+ 8378
0
27264
13187
@@ -23,12 +23,12 @@
view2
- 10084
- 8031
+ 14314
+ 15132
0
- 5292
+ 8378
27263
- 18477
+ 21564
0
0
false
@@ -101,7 +101,7 @@
false
false
false
- 567430
+ 577515
84510
false
false
@@ -172,7 +172,7 @@
-
+
@@ -741,10 +741,18 @@
-
+
+
+
+
+
+
+
+
+
-
+
@@ -3917,6 +3925,7 @@
<line.report_product_description or line.product_name or ''> CROP <line.report_crop_name>
<line.report_attributes_name>
</if>
+ At <line.report_rate_currency_upper> <line.report_rate_value> PER <line.report_rate_unit_upper> (<line.report_rate_price_words> ) <line.report_rate_pricing_text>
</for>
<invoice.report_incoterm>
ALL DETAILS AND SPECIFICATIONS AS PER BENEFICIARY
@@ -3991,11 +4000,11 @@
- 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
+ At <invoice.report_rate_currency_upper> <invoice.report_rate_value> PER <invoice.report_rate_unit_upper> (<invoice.report_rate_price_words> ) <invoice.report_rate_pricing_text>
- FREIGHT VALUE: <invoice.currency.symbol if invoice.currency else 'USD'> <format_number(invoice.freight_amount, invoice.party.lang) if hasattr(invoice, 'freight_amount') else ''>
+ 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 <invoice.report_origin or ''> ORIGIN
+ WE CERTIFY THAT THE MERCHANDISE IS OF <invoice.report_origin or ''> ORIGIN
L/C NUMBER <invoice.reference or ''>
diff --git a/modules/purchase_trade/invoice.py b/modules/purchase_trade/invoice.py
index 63471f8..2eb7349 100644
--- a/modules/purchase_trade/invoice.py
+++ b/modules/purchase_trade/invoice.py
@@ -6,6 +6,12 @@ from trytond.pool import PoolMeta
class Invoice(metaclass=PoolMeta):
__name__ = 'account.invoice'
+ def _get_report_invoice_line(self):
+ for line in self.lines or []:
+ if getattr(line, 'type', None) == 'line':
+ return line
+ return self.lines[0] if self.lines else None
+
def _get_report_purchase(self):
purchases = list(self.purchases or [])
return purchases[0] if purchases else None
@@ -128,6 +134,41 @@ class Invoice(metaclass=PoolMeta):
return trade.report_price
return ''
+ @property
+ def report_rate_currency_upper(self):
+ line = self._get_report_invoice_line()
+ if line:
+ return line.report_rate_currency_upper
+ return ''
+
+ @property
+ def report_rate_value(self):
+ line = self._get_report_invoice_line()
+ if line:
+ return line.report_rate_value
+ return ''
+
+ @property
+ def report_rate_unit_upper(self):
+ line = self._get_report_invoice_line()
+ if line:
+ return line.report_rate_unit_upper
+ return ''
+
+ @property
+ def report_rate_price_words(self):
+ line = self._get_report_invoice_line()
+ if line:
+ return line.report_rate_price_words
+ return self.report_price or ''
+
+ @property
+ def report_rate_pricing_text(self):
+ line = self._get_report_invoice_line()
+ if line:
+ return line.report_rate_pricing_text
+ return ''
+
@property
def report_payment_date(self):
trade = self._get_report_trade()
@@ -165,7 +206,7 @@ class Invoice(metaclass=PoolMeta):
line = self._get_report_trade_line()
if line and line.lots:
return sum(
- lot.get_current_gross_quantity_converted()
+ lot.get_current_gross_quantity()
for lot in line.lots if lot.lot_type == 'physic'
)
return ''
@@ -178,7 +219,7 @@ class Invoice(metaclass=PoolMeta):
line = self._get_report_trade_line()
if line and line.lots:
return sum(
- lot.get_current_quantity_converted()
+ lot.get_current_quantity()
for lot in line.lots if lot.lot_type == 'physic'
)
if self.lines:
@@ -190,7 +231,7 @@ class Invoice(metaclass=PoolMeta):
net = self.report_net
if net == '':
return ''
- return Decimal(net) * Decimal('2.20462')
+ return round(Decimal(net) * Decimal('2204.62'),2)
@property
def report_bl_date(self):
@@ -285,6 +326,9 @@ class InvoiceLine(metaclass=PoolMeta):
return None
return getattr(origin, 'sale', None) or getattr(origin, 'purchase', None)
+ def _get_report_trade_line(self):
+ return getattr(self, 'origin', None)
+
@property
def report_product_description(self):
if self.product:
@@ -298,6 +342,38 @@ class InvoiceLine(metaclass=PoolMeta):
def report_description_upper(self):
return (self.description or '').upper()
+ @property
+ def report_rate_currency_upper(self):
+ origin = self._get_report_trade_line()
+ currency = getattr(origin, 'linked_currency', None) or self.currency
+ if currency and currency.rec_name:
+ return currency.rec_name.upper()
+ return ''
+
+ @property
+ def report_rate_value(self):
+ return self.unit_price if self.unit_price is not None else ''
+
+ @property
+ def report_rate_unit_upper(self):
+ origin = self._get_report_trade_line()
+ unit = getattr(origin, 'linked_unit', None) or self.unit
+ if unit and unit.rec_name:
+ return unit.rec_name.upper()
+ return ''
+
+ @property
+ def report_rate_price_words(self):
+ trade = self._get_report_trade()
+ if trade and getattr(trade, 'report_price', None):
+ return trade.report_price
+ return ''
+
+ @property
+ def report_rate_pricing_text(self):
+ origin = self._get_report_trade_line()
+ return getattr(origin, 'get_pricing_text', '') or ''
+
@property
def report_crop_name(self):
trade = self._get_report_trade()
diff --git a/modules/purchase_trade/sale.py b/modules/purchase_trade/sale.py
index 7877f9c..f479236 100755
--- a/modules/purchase_trade/sale.py
+++ b/modules/purchase_trade/sale.py
@@ -214,19 +214,19 @@ class Lot(metaclass=PoolMeta):
if self.sale_line:
return self.sale_line.sale.id
-class Sale(metaclass=PoolMeta):
- __name__ = 'sale.sale'
-
- btb = fields.Many2One('back.to.back',"Back to back")
- bank_accounts = fields.Function(
- fields.Many2Many('bank.account', None, None, "Bank Accounts"),
- 'on_change_with_bank_accounts')
- bank_account = fields.Many2One(
- 'bank.account', "Bank Account",
- domain=[('id', 'in', Eval('bank_accounts', []))],
- depends=['bank_accounts'])
- from_location = fields.Many2One('stock.location', 'From location', required=True,domain=[('type', "!=", 'customer')])
- to_location = fields.Many2One('stock.location', 'To location', required=True,domain=[('type', "!=", 'supplier')])
+class Sale(metaclass=PoolMeta):
+ __name__ = 'sale.sale'
+
+ btb = fields.Many2One('back.to.back',"Back to back")
+ bank_accounts = fields.Function(
+ fields.Many2Many('bank.account', None, None, "Bank Accounts"),
+ 'on_change_with_bank_accounts')
+ bank_account = fields.Many2One(
+ 'bank.account', "Bank Account",
+ domain=[('id', 'in', Eval('bank_accounts', []))],
+ depends=['bank_accounts'])
+ from_location = fields.Many2One('stock.location', 'From location', required=True,domain=[('type', "!=", 'customer')])
+ to_location = fields.Many2One('stock.location', 'To location', required=True,domain=[('type', "!=", 'supplier')])
shipment_out = fields.Many2One('stock.shipment.out','Sales')
#pnl = fields.One2Many('valuation.valuation', 'sale', 'Pnl')
pnl = fields.One2Many('valuation.valuation.dyn', 'r_sale', 'Pnl',states={'invisible': ~Eval('group_pnl'),})
@@ -256,47 +256,47 @@ class Sale(metaclass=PoolMeta):
trader = fields.Many2One('party.party',"Trader")
operator = fields.Many2One('party.party',"Operator")
our_reference = fields.Char("Our Reference")
- company_visible = fields.Function(
- fields.Boolean("Visible"), 'on_change_with_company_visible')
- lc_date = fields.Date("LC date")
- product_origin = fields.Char("Origin")
-
- @fields.depends('company', '_parent_company.party')
- def on_change_with_company_visible(self, name=None):
- return bool(
- self.company and self.company.party
- and self.company.party.name == 'MELYA')
-
- def _get_default_bank_account(self):
- if not self.party or not self.party.bank_accounts:
- return None
- party_bank_accounts = list(self.party.bank_accounts)
- if self.currency:
- for account in party_bank_accounts:
- if account.currency == self.currency:
- return account
- return party_bank_accounts[0]
-
- @fields.depends('party', '_parent_party.bank_accounts')
- def on_change_with_bank_accounts(self, name=None):
- if self.party and self.party.bank_accounts:
- return [account.id for account in self.party.bank_accounts]
- return []
-
- @fields.depends(
- 'company', 'party', 'invoice_party', 'shipment_party', 'warehouse',
- 'payment_term', 'lines', 'bank_account', '_parent_party.bank_accounts')
- def on_change_party(self):
- super().on_change_party()
- self.bank_account = self._get_default_bank_account()
-
- @fields.depends('party', 'currency', '_parent_party.bank_accounts')
- def on_change_currency(self):
- self.bank_account = self._get_default_bank_account()
-
- @classmethod
- def default_wb(cls):
- WB = Pool().get('purchase.weight.basis')
+ company_visible = fields.Function(
+ fields.Boolean("Visible"), 'on_change_with_company_visible')
+ lc_date = fields.Date("LC date")
+ product_origin = fields.Char("Origin")
+
+ @fields.depends('company', '_parent_company.party')
+ def on_change_with_company_visible(self, name=None):
+ return bool(
+ self.company and self.company.party
+ and self.company.party.name == 'MELYA')
+
+ def _get_default_bank_account(self):
+ if not self.party or not self.party.bank_accounts:
+ return None
+ party_bank_accounts = list(self.party.bank_accounts)
+ if self.currency:
+ for account in party_bank_accounts:
+ if account.currency == self.currency:
+ return account
+ return party_bank_accounts[0]
+
+ @fields.depends('party', '_parent_party.bank_accounts')
+ def on_change_with_bank_accounts(self, name=None):
+ if self.party and self.party.bank_accounts:
+ return [account.id for account in self.party.bank_accounts]
+ return []
+
+ @fields.depends(
+ 'company', 'party', 'invoice_party', 'shipment_party', 'warehouse',
+ 'payment_term', 'lines', 'bank_account', '_parent_party.bank_accounts')
+ def on_change_party(self):
+ super().on_change_party()
+ self.bank_account = self._get_default_bank_account()
+
+ @fields.depends('party', 'currency', '_parent_party.bank_accounts')
+ def on_change_currency(self):
+ self.bank_account = self._get_default_bank_account()
+
+ @classmethod
+ def default_wb(cls):
+ WB = Pool().get('purchase.weight.basis')
wb = WB.search(['id','>',0])
if wb:
return wb[0].id
@@ -333,14 +333,14 @@ class Sale(metaclass=PoolMeta):
@property
def report_gross(self):
if self.lines:
- return sum([l.get_current_gross_quantity_converted() for l in self.lines[0].lots if l.lot_type == 'physic'])
+ return sum([l.get_current_gross_quantity() for l in self.lines[0].lots if l.lot_type == 'physic'])
else:
return ''
@property
def report_net(self):
if self.lines:
- return sum([l.get_current_quantity_converted() for l in self.lines[0].lots if l.lot_type == 'physic'])
+ return sum([l.get_current_quantity() for l in self.lines[0].lots if l.lot_type == 'physic'])
else:
return ''
From 3c45ebd50ffb3cd36eadab2227c20db35ddd259a Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Fri, 27 Mar 2026 07:40:40 +0100
Subject: [PATCH 615/618] 27.03.26
---
modules/account_invoice/invoice_ict.fodt | 179 ++++++++--------
.../account_invoice/invoice_ict_final.fodt | 196 +++++++++---------
2 files changed, 191 insertions(+), 184 deletions(-)
diff --git a/modules/account_invoice/invoice_ict.fodt b/modules/account_invoice/invoice_ict.fodt
index eb3c297..0442043 100644
--- a/modules/account_invoice/invoice_ict.fodt
+++ b/modules/account_invoice/invoice_ict.fodt
@@ -8,13 +8,13 @@
LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265
- PT3H15M31S
- 7
+ PT3H16M29S
+ 9
- 2026-03-27T07:14:46.578000000
+ 2026-03-27T07:35:45.157000000
- 7673
+ 28575
0
27264
13187
@@ -23,12 +23,12 @@
view2
- 14314
- 13411
+ 7583
+ 33203
0
- 7673
+ 28575
27263
- 20858
+ 41760
0
0
false
@@ -101,7 +101,7 @@
false
false
false
- 233971
+ 297701
84510
false
false
@@ -173,13 +173,13 @@
-
+
-
+
@@ -651,102 +651,106 @@
+
+
+
+
-
+
-
+
-
+
-
+
-
-
-
-
-
+
-
+
-
+
-
+
-
+
+
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -755,14 +759,14 @@
-
+
-
+
-
+
@@ -3847,7 +3851,7 @@
-
+
@@ -3861,24 +3865,24 @@
-
- Provisional Invoice
+
+ Provisional Invoice
-
- <invoice.number>
+
+ <invoice.number>
- Contract N°
+ Contract N°
- <invoice.report_contract_number>
+ <invoice.report_contract_number>
-
+
@@ -3887,7 +3891,7 @@
Name of the vessel
- <invoice.report_vessel or ''>
+ <invoice.report_vessel or ''>
@@ -3917,28 +3921,30 @@
-
+
- Goods description
+ 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_description_upper or invoice.report_product_description> CROP <invoice.report_crop_name>
- <invoice.report_attributes_name>
- At <invoice.report_rate_currency_upper> <invoice.report_rate_value> PER <invoice.report_rate_unit_upper> (<invoice.report_rate_price_words> ) <invoice.report_rate_pricing_text>
- <invoice.report_incoterm>
- ALL DETAILS AND SPECIFICATIONS AS PER BENEFICIARY
- 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 ''> .
-
+ 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_description_upper or invoice.report_product_description> CROP <invoice.report_crop_name>
+ <invoice.report_attributes_name>
+ At <invoice.report_rate_currency_upper> <invoice.report_rate_value> PER <invoice.report_rate_unit_upper> (<invoice.report_rate_price_words> ) <invoice.report_rate_pricing_text>
+
+
+ <invoice.report_incoterm>
+ ALL DETAILS AND SPECIFICATIONS AS PER BENEFICIARY
+ 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 ''> .
+
-
+
@@ -3946,16 +3952,16 @@
BALES
- Gross KGS
+ Gross KGS
NET KGS
-
+
-
+
@@ -3966,13 +3972,13 @@
<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 ''>
+ <format_number(invoice.report_net, invoice.party.lang) if invoice.report_net != '' else ''>
-
+
@@ -3993,11 +3999,11 @@
<format_number(invoice.report_lbs, invoice.party.lang) if invoice.report_lbs != '' else ''>
-
+
-
+
@@ -4008,35 +4014,34 @@
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 <invoice.report_origin or ''> ORIGIN
- L/C NUMBER <invoice.reference or ''>
-
+ L/C NUMBER
+
- <format_currency(invoice.total_amount, invoice.party.lang, invoice.currency)>
-
-
+ <format_currency(invoice.total_amount, invoice.party.lang, invoice.currency)>
+
+
-
- NET LANDED WEIGHTS, ACTUAL TARE, NO FRANCHISE
-
+ NET LANDED WEIGHTS, ACTUAL TARE, NO FRANCHISE
+
- <for each="tax in invoice.taxes">
- V.A.T. <tax.description or ''> RATE
- </for>
+ <for each="tax in invoice.taxes">
+ V.A.T. <tax.description or ''> RATE
+ </for>
-
+
@@ -4047,17 +4052,17 @@
Controller Name
- <invoice.report_si_number>
-
- <invoice.report_controller_name>
+ <invoice.report_si_number>
+
+ <invoice.report_controller_name>
-
+
-
+
@@ -4072,12 +4077,12 @@
</if>
- ICT TRADING S.A.
+ ICT TRADING S.A.
- <invoice.report_trader_initial> / <invoice.report_operator_initial>
+ <invoice.report_trader_initial> / <invoice.report_operator_initial>
@@ -4092,7 +4097,7 @@
-
+
\ No newline at end of file
diff --git a/modules/account_invoice/invoice_ict_final.fodt b/modules/account_invoice/invoice_ict_final.fodt
index bf33374..93bfec4 100644
--- a/modules/account_invoice/invoice_ict_final.fodt
+++ b/modules/account_invoice/invoice_ict_final.fodt
@@ -5,16 +5,16 @@
Final Invoice
willen
2018-12-09T16:20:00
- 2026-03-27T07:13:52.204000000
+ 2026-03-27T07:36:28.039000000
2007-08-28T18:19:00
LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265
- PT3H11M47S
- 10
+ PT3H12M21S
+ 11
-
+
- 8378
+ 27428
0
27264
13187
@@ -23,12 +23,12 @@
view2
- 14314
- 15132
+ 7583
+ 34925
0
- 8378
+ 27428
27263
- 21564
+ 40614
0
0
false
@@ -101,7 +101,7 @@
false
false
false
- 577515
+ 633404
84510
false
false
@@ -172,7 +172,7 @@
-
+
@@ -629,110 +629,114 @@
+
+
+
+
-
+
-
+
-
+
-
+
-
+
-
-
-
-
-
+
-
+
-
+
-
+
-
+
-
+
+
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -741,13 +745,9 @@
-
-
-
-
-
+
@@ -3837,7 +3837,7 @@
-
+
@@ -3851,24 +3851,24 @@
-
- Final Invoice
+
+ Final Invoice
-
- <invoice.number>
+
+ <invoice.number>
- Contract N°
+ Contract N°
- <invoice.report_contract_number>
+ <invoice.report_contract_number>
-
+
@@ -3877,7 +3877,7 @@
Name of the vessel
- <invoice.report_vessel or ''>
+ <invoice.report_vessel or ''>
@@ -3907,35 +3907,37 @@
-
+
- Goods description
+ Goods description
- <for each="line in invoice.lines">
- <if test="line.type == 'line'">
- <if test="line.report_description_upper">
- <line.report_description_upper>
+ <for each="line in invoice.lines">
+ <if test="line.type == 'line'">
+ <if test="line.report_description_upper">
+ <line.report_description_upper>
+ </if>
+ QUANTITY <format_number(line.report_lbs, invoice.party.lang) if line.report_lbs != '' else ''> LBS (<format_number(line.report_net, invoice.party.lang) if line.report_net != '' else ''> MTS)
+ <line.report_product_description or line.product_name or ''> CROP <line.report_crop_name>
+ <line.report_attributes_name>
</if>
- QUANTITY <format_number(line.report_lbs, invoice.party.lang) if line.report_lbs != '' else ''> LBS (<format_number(line.report_net, invoice.party.lang) if line.report_net != '' else ''> MTS)
- <line.report_product_description or line.product_name or ''> CROP <line.report_crop_name>
- <line.report_attributes_name>
- </if>
- At <line.report_rate_currency_upper> <line.report_rate_value> PER <line.report_rate_unit_upper> (<line.report_rate_price_words> ) <line.report_rate_pricing_text>
- </for>
- <invoice.report_incoterm>
- ALL DETAILS AND SPECIFICATIONS AS PER BENEFICIARY
- 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 ''> .
-
+ At <line.report_rate_currency_upper> <line.report_rate_value> PER <line.report_rate_unit_upper> (<line.report_rate_price_words> ) <line.report_rate_pricing_text>
+ </for>
+
+
+ <invoice.report_incoterm>
+ ALL DETAILS AND SPECIFICATIONS AS PER BENEFICIARY
+ 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 ''> .
+
-
+
@@ -3943,16 +3945,16 @@
BALES
- Gross KGS
+ Gross KGS
NET KGS
-
+
-
+
@@ -3963,13 +3965,13 @@
<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 ''>
+ <format_number(invoice.report_net, invoice.party.lang) if invoice.report_net != '' else ''>
-
+
@@ -3990,11 +3992,11 @@
<format_number(invoice.report_lbs, invoice.party.lang) if invoice.report_lbs != '' else ''>
-
+
-
+
@@ -4005,13 +4007,13 @@
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 <invoice.report_origin or ''> ORIGIN
- L/C NUMBER <invoice.reference or ''>
-
+ L/C NUMBER
+
- <format_currency(invoice.total_amount, invoice.party.lang, invoice.currency)>
-
-
+ <format_currency(invoice.total_amount, invoice.party.lang, invoice.currency)>
+
+
@@ -4020,19 +4022,19 @@
- NET LANDED WEIGHTS, ACTUAL TARE, NO FRANCHISE
-
+ NET LANDED WEIGHTS, ACTUAL TARE, NO FRANCHISE
+
- <for each="tax in invoice.taxes">
- V.A.T. <tax.description or ''> RATE
- </for>
+ <for each="tax in invoice.taxes">
+ V.A.T. <tax.description or ''> RATE
+ </for>
-
+
@@ -4043,17 +4045,17 @@
Controller Name
- <invoice.report_si_number>
-
- <invoice.report_controller_name>
+ <invoice.report_si_number>
+
+ <invoice.report_controller_name>
-
+
-
+
@@ -4068,12 +4070,12 @@
</if>
- ICT TRADING S.A.
+ ICT TRADING S.A.
- <invoice.report_trader_initial> / <invoice.report_operator_initial>
+ <invoice.report_trader_initial> / <invoice.report_operator_initial>
@@ -4088,7 +4090,7 @@
-
+
-
+
\ No newline at end of file
From 2bf02e687c9cab135c1f84384946a9bfa1bc189a Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Fri, 27 Mar 2026 07:56:03 +0100
Subject: [PATCH 616/618] 27.03.26
---
.../account_invoice/invoice_ict_final.fodt | 36 ++++++++++---------
1 file changed, 19 insertions(+), 17 deletions(-)
diff --git a/modules/account_invoice/invoice_ict_final.fodt b/modules/account_invoice/invoice_ict_final.fodt
index 93bfec4..abec9fe 100644
--- a/modules/account_invoice/invoice_ict_final.fodt
+++ b/modules/account_invoice/invoice_ict_final.fodt
@@ -5,16 +5,16 @@
Final Invoice
willen
2018-12-09T16:20:00
- 2026-03-27T07:36:28.039000000
+ 2026-03-27T07:47:28.825000000
2007-08-28T18:19:00
LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265
- PT3H12M21S
- 11
+ PT3H13M1S
+ 12
- 27428
+ 8114
0
27264
13187
@@ -23,12 +23,12 @@
view2
- 7583
- 34925
+ 10739
+ 13841
0
- 27428
+ 8114
27263
- 40614
+ 21299
0
0
false
@@ -101,7 +101,7 @@
false
false
false
- 633404
+ 663327
84510
false
false
@@ -172,7 +172,7 @@
-
+
@@ -747,7 +747,7 @@
-
+
@@ -3924,8 +3924,10 @@
QUANTITY <format_number(line.report_lbs, invoice.party.lang) if line.report_lbs != '' else ''> LBS (<format_number(line.report_net, invoice.party.lang) if line.report_net != '' else ''> MTS)
<line.report_product_description or line.product_name or ''> CROP <line.report_crop_name>
<line.report_attributes_name>
- </if>
At <line.report_rate_currency_upper> <line.report_rate_value> PER <line.report_rate_unit_upper> (<line.report_rate_price_words> ) <line.report_rate_pricing_text>
+
+ </if>
+
</for>
@@ -4003,17 +4005,17 @@
At <invoice.report_rate_currency_upper> <invoice.report_rate_value> PER <invoice.report_rate_unit_upper> (<invoice.report_rate_price_words> ) <invoice.report_rate_pricing_text>
-
- FREIGHT VALUE: <invoice.currency.symbol if invoice.currency else 'USD'> <format_number(invoice.freight_amount, invoice.party.lang) if hasattr(invoice, 'freight_amount') else ''>
+
+ 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 <invoice.report_origin or ''> ORIGIN
L/C NUMBER
- <format_currency(invoice.total_amount, invoice.party.lang, invoice.currency)>
+ <format_currency(invoice.total_amount, invoice.party.lang, invoice.currency)>
-
+
@@ -4093,4 +4095,4 @@
-
\ No newline at end of file
+
From f67e5d8ccce28b6a5d51d358b4c1bd179d6420ad Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Fri, 27 Mar 2026 08:12:03 +0100
Subject: [PATCH 617/618] 27.03.26
---
modules/account_invoice/invoice_ict.fodt | 4 +--
.../account_invoice/invoice_ict_final.fodt | 33 +++++++++----------
modules/purchase_trade/invoice.py | 30 ++++++++++++++++-
3 files changed, 47 insertions(+), 20 deletions(-)
diff --git a/modules/account_invoice/invoice_ict.fodt b/modules/account_invoice/invoice_ict.fodt
index 0442043..f8b8dc6 100644
--- a/modules/account_invoice/invoice_ict.fodt
+++ b/modules/account_invoice/invoice_ict.fodt
@@ -4011,7 +4011,7 @@
At <invoice.report_rate_currency_upper> <invoice.report_rate_value> PER <invoice.report_rate_unit_upper> (<invoice.report_rate_price_words> ) <invoice.report_rate_pricing_text>
- FREIGHT VALUE: <invoice.currency.symbol if invoice.currency else 'USD'> <format_number(invoice.freight_amount, invoice.party.lang) if hasattr(invoice, 'freight_amount') else ''>
+ FREIGHT VALUE: <invoice.report_freight_currency_symbol> <format_number(invoice.report_freight_amount, invoice.party.lang) if invoice.report_freight_amount != '' else ''>
WE CERTIFY THAT THE MERCHANDISE IS OF <invoice.report_origin or ''> ORIGIN
L/C NUMBER
@@ -4100,4 +4100,4 @@
-
\ No newline at end of file
+
diff --git a/modules/account_invoice/invoice_ict_final.fodt b/modules/account_invoice/invoice_ict_final.fodt
index abec9fe..9e0c79d 100644
--- a/modules/account_invoice/invoice_ict_final.fodt
+++ b/modules/account_invoice/invoice_ict_final.fodt
@@ -5,30 +5,30 @@
Final Invoice
willen
2018-12-09T16:20:00
- 2026-03-27T07:47:28.825000000
+ 2026-03-27T08:01:16.333000000
2007-08-28T18:19:00
LibreOffice/7.6.0.3$Windows_X86_64 LibreOffice_project/69edd8b8ebc41d00b4de3915dc82f8f0fc3b6265
- PT3H13M1S
- 12
+ PT3H13M14S
+ 13
- 8114
+ 9437
0
27264
- 13187
+ 13242
true
false
view2
- 10739
- 13841
+ 10084
+ 16424
0
- 8114
+ 9437
27263
- 21299
+ 22677
0
0
false
@@ -101,7 +101,7 @@
false
false
false
- 663327
+ 665618
84510
false
false
@@ -172,7 +172,7 @@
-
+
@@ -747,7 +747,7 @@
-
+
@@ -3930,7 +3930,6 @@
</for>
-
<invoice.report_incoterm>
ALL DETAILS AND SPECIFICATIONS AS PER BENEFICIARY
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 ''> .
@@ -4005,16 +4004,16 @@
At <invoice.report_rate_currency_upper> <invoice.report_rate_value> PER <invoice.report_rate_unit_upper> (<invoice.report_rate_price_words> ) <invoice.report_rate_pricing_text>
-
- FREIGHT VALUE: <invoice.currency.symbol if invoice.currency else 'USD'> <format_number(invoice.freight_amount, invoice.party.lang) if hasattr(invoice, 'freight_amount') else ''>
+
+ FREIGHT VALUE: <invoice.report_freight_currency_symbol> <format_number(invoice.report_freight_amount, invoice.party.lang) if invoice.report_freight_amount != '' else ''>
WE CERTIFY THAT THE MERCHANDISE IS OF <invoice.report_origin or ''> ORIGIN
L/C NUMBER
- <format_currency(invoice.total_amount, invoice.party.lang, invoice.currency)>
-
+ <format_currency(invoice.total_amount, invoice.party.lang, invoice.currency)>
+
diff --git a/modules/purchase_trade/invoice.py b/modules/purchase_trade/invoice.py
index 2eb7349..ea11701 100644
--- a/modules/purchase_trade/invoice.py
+++ b/modules/purchase_trade/invoice.py
@@ -1,6 +1,6 @@
from decimal import Decimal
-from trytond.pool import PoolMeta
+from trytond.pool import Pool, PoolMeta
class Invoice(metaclass=PoolMeta):
@@ -46,6 +46,18 @@ class Invoice(metaclass=PoolMeta):
return lot
return line.lots[0]
+ def _get_report_freight_fee(self):
+ pool = Pool()
+ Fee = pool.get('fee.fee')
+ shipment = self._get_report_shipment()
+ if not shipment:
+ return None
+ fees = Fee.search([
+ ('shipment_in', '=', shipment.id),
+ ('product.name', '=', 'Maritime freight'),
+ ], limit=1)
+ return fees[0] if fees else None
+
def _get_report_shipment(self):
lot = self._get_report_lot()
if not lot:
@@ -316,6 +328,22 @@ class Invoice(metaclass=PoolMeta):
return shipment.number or ''
return ''
+ @property
+ def report_freight_amount(self):
+ fee = self._get_report_freight_fee()
+ if fee:
+ return fee.get_amount()
+ return ''
+
+ @property
+ def report_freight_currency_symbol(self):
+ fee = self._get_report_freight_fee()
+ if fee and fee.currency:
+ return fee.currency.symbol or ''
+ if self.currency:
+ return self.currency.symbol or ''
+ return 'USD'
+
class InvoiceLine(metaclass=PoolMeta):
__name__ = 'account.invoice.line'
From 984b2ba56fbb2956a89fa20ecc12e3d4814c902c Mon Sep 17 00:00:00 2001
From: laurentbarontini
Date: Fri, 27 Mar 2026 14:08:07 +0100
Subject: [PATCH 618/618] 27.03.26
---
AGENTS.md | 2 +
modules/purchase_trade/dashboard.py | 2 +-
modules/purchase_trade/docs/business-rules.md | 48 ++++++++++++++++++-
modules/purchase_trade/docs/template-rules.md | 36 ++++++++++++--
4 files changed, 81 insertions(+), 7 deletions(-)
diff --git a/AGENTS.md b/AGENTS.md
index 9a9fb60..e1af654 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -45,6 +45,8 @@ Guide rapide pour les agents qui codent dans ce repository.
- Si un document facture depend fortement d'une vente/achat, ajouter au besoin un petit pont Python pour exposer des `report_*` stables au template.
- Si plusieurs actions de report pointent vers `report_name = 'account.invoice'`, verifier aussi le cache `invoice_report_cache` dans `modules/account_invoice/invoice.py`: un mauvais cache peut faire croire que plusieurs actions utilisent le meme `.fodt`.
- Avant de conclure qu'un template ou une action est faux, verifier si le report alternatif doit bypasser le cache standard.
+ - Dans `purchase_trade`, pour remonter d'une facture vers shipment, pro forma, freight ou autres donnees logistiques, privilegier le lot physique comme pont entre `purchase.line`, `sale.line` et shipment.
+ - Pour `FREIGHT VALUE`, ne pas lire un champ direct sur la facture: retrouver le fee de shipment (`shipment_in`) dont le produit est `Maritime freight`, puis utiliser `fee.get_amount()`.
## 5) Workflow de modification (obligatoire)
diff --git a/modules/purchase_trade/dashboard.py b/modules/purchase_trade/dashboard.py
index 3afdcb5..ef97d8c 100755
--- a/modules/purchase_trade/dashboard.py
+++ b/modules/purchase_trade/dashboard.py
@@ -515,7 +515,7 @@ class Dashboard(ModelSQL, ModelView):
' 🎬 Available Demo
'
]
- demos = Demos.search([('active', '=', True)])
+ demos = Demos.search([('active', '=', True)],order=[('id', 'DESC')])
for n in demos:
icon = n.icon or "📰"
category = n.category or "General"
diff --git a/modules/purchase_trade/docs/business-rules.md b/modules/purchase_trade/docs/business-rules.md
index 9540064..3095758 100644
--- a/modules/purchase_trade/docs/business-rules.md
+++ b/modules/purchase_trade/docs/business-rules.md
@@ -1,8 +1,8 @@
# Business Rules - Purchase Trade
Statut: `draft`
-Version: `v0.1`
-Derniere mise a jour: `2026-03-25`
+Version: `v0.2`
+Derniere mise a jour: `2026-03-27`
Owner metier: `a completer`
Owner technique: `a completer`
@@ -56,6 +56,50 @@ Owner technique: `a completer`
- Source:
- `Decision metier documentee dans les commentaires de purchase_trade.purchase.Line.write`
+### BR-PT-002 - Le lot physique est le pont metier entre purchase, sale et shipment
+
+- Intent: disposer d'un chemin unique et stable pour retrouver les informations logistiques et de facturation reliees a un contrat d'achat ou de vente.
+- Description:
+ - Le lot physique (`lot_type = physic`) porte simultanement le lien vers:
+ - la `purchase.line` via `lot.line`
+ - la `sale.line` via `lot.sale_line`
+ - le shipment via `lot.lot_shipment_in` / `lot.lot_shipment_internal` / `lot.lot_shipment_out`
+ - Pour toute logique qui doit naviguer entre achat, vente, shipment et facture, il faut privilegier ce lot physique comme source de verite.
+- Resultat attendu:
+ - depuis une facture d'achat:
+ - remonter a la `purchase.line`
+ - puis au lot physique de la ligne
+ - puis au shipment et aux donnees logistiques associees
+ - depuis une facture de vente:
+ - remonter a la `sale.line`
+ - puis au lot physique matchant qui porte aussi la `purchase.line`
+ - puis au shipment et aux donnees logistiques associees
+- Cas d'usage typiques:
+ - recuperer `bl_date`, `bl_number`, `controller`, `from_location`, `to_location`
+ - retrouver une facture provisoire liee au lot
+ - retrouver des fees rattaches au shipment
+- Priorite:
+ - `structurante`
+
+### BR-PT-003 - Le freight amount des templates facture vient du fee de shipment
+
+- Intent: afficher dans les documents facture la vraie valeur de fret maritime rattachee au shipment du lot physique.
+- Description:
+ - Le `FREIGHT VALUE` d'une facture ne doit pas etre pris sur la facture elle-meme.
+ - Il doit etre calcule a partir du `fee.fee` rattache au shipment (`shipment_in`) du lot physique relie a la facture.
+- Regle de navigation:
+ - retrouver le lot physique pertinent depuis la facture
+ - retrouver son shipment
+ - chercher le `fee.fee` avec:
+ - `shipment_in = shipment.id`
+ - `product.name = 'Maritime freight'`
+ - utiliser `fee.get_amount()` comme montant de fret
+- Portee:
+ - s'applique aussi bien aux factures d'achat qu'aux factures de vente
+ - cote vente, la remontee doit passer par le lot physique qui fait le lien entre `purchase.line` et `sale.line`
+- Priorite:
+ - `importante`
+
## 4) Exemples concrets
### Exemple E1 - Augmentation simple
diff --git a/modules/purchase_trade/docs/template-rules.md b/modules/purchase_trade/docs/template-rules.md
index 04ec891..7fbd8f4 100644
--- a/modules/purchase_trade/docs/template-rules.md
+++ b/modules/purchase_trade/docs/template-rules.md
@@ -1,8 +1,8 @@
# Template Rules - Purchase Trade
Statut: `draft`
-Version: `v0.1`
-Derniere mise a jour: `2026-03-26`
+Version: `v0.2`
+Derniere mise a jour: `2026-03-27`
## 1) Scope
@@ -93,6 +93,33 @@ Derniere mise a jour: `2026-03-26`
- pour un report alternatif, ne pas reutiliser le cache du report standard `account_invoice/invoice.fodt`
- si besoin, bypasser la lecture/ecriture du cache pour les templates alternatifs
+### TR-007 - Pour une facture trade, privilegier le lot physique comme chemin de navigation
+
+- Pour remonter d'une facture vers des donnees logistiques ou metier, ne pas dupliquer de chemins differents selon achat/vente.
+- Regle pratique:
+ - partir de la ligne metier (`purchase.line` ou `sale.line`)
+ - retrouver le lot physique associe
+ - utiliser ce lot comme pont vers le shipment et les autres objets lies
+- Ce chemin doit etre privilegie pour exposer des proprietes `report_*` comme:
+ - `report_bl_date`
+ - `report_loading_port`
+ - `report_discharge_port`
+ - `report_controller_name`
+ - `report_si_number`
+ - `report_proforma_invoice_number`
+ - `report_proforma_invoice_date`
+
+### TR-008 - Le freight amount d'un template facture vient du fee de shipment
+
+- Ne pas lire le fret directement sur `account.invoice`.
+- Pour les templates `invoice_ict*`, le `FREIGHT VALUE` doit etre expose par une propriete Python du type `invoice.report_freight_amount`.
+- La logique attendue est:
+ - retrouver le lot physique pertinent
+ - retrouver son shipment
+ - chercher le `fee.fee` du shipment avec `product.name = 'Maritime freight'`
+ - utiliser `fee.get_amount()`
+- Si le fee a sa propre devise, preferer aussi exposer le symbole de devise depuis le fee plutot que depuis la facture.
+
## 4) Workflow recommande pour corriger un template en erreur
1. Identifier le placeholder exact qui provoque l'erreur Relatorio.
@@ -110,8 +137,9 @@ Derniere mise a jour: `2026-03-26`
- Fichier: `modules/account_invoice/invoice_ict.fodt`
- Strategie retenue:
- aligner la syntaxe sur `modules/account_invoice/invoice.fodt`
- - reutiliser au maximum les proprietes de `sale.sale`
- - exposer dans `modules/purchase_trade/invoice.py` des proprietes de pont `account.invoice -> sale`
+ - reutiliser au maximum les proprietes metier deja exposees
+ - exposer dans `modules/purchase_trade/invoice.py` des proprietes de pont `account.invoice -> sale/purchase`
+ - pour les donnees shipment et freight, passer par le lot physique comme pont achat/vente
### Sale ICT