From 21a54d9312f804134c113cb8399aa045fd96ba79 Mon Sep 17 00:00:00 2001 From: Emanuel Kagombora Date: Wed, 6 May 2026 13:13:48 +0300 Subject: [PATCH 1/2] fix(container interchange): skip deposit/refund/EIR checks when no Shipping Line Clearance exists --- .../container_interchange/container_interchange.py | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/clearing/clearing/doctype/container_interchange/container_interchange.py b/clearing/clearing/doctype/container_interchange/container_interchange.py index ac5601f..efe03df 100644 --- a/clearing/clearing/doctype/container_interchange/container_interchange.py +++ b/clearing/clearing/doctype/container_interchange/container_interchange.py @@ -12,8 +12,6 @@ def before_submit(self): self.validate_shipping_line_deposit() def validate_shipping_line_deposit(self): - """Block submission if no container deposit is recorded in the Shipping Line Clearance, - or if a deposit exists but the refund has not been updated on this Container Interchange.""" if not self.clearing_file: return @@ -24,12 +22,7 @@ def validate_shipping_line_deposit(self): ) if not flt(deposit_amount): - frappe.throw( - _( - "Cannot submit Container Interchange because no Container Deposit Amount " - "is recorded in the Shipping Line Clearance for Clearing File {0}." - ).format(self.clearing_file) - ) + return if not self.refund or not flt(self.refund_amount) or not self.refund_date: frappe.throw( From 24d914f1ea9488dcdfcc722644b7e8f6936ff813 Mon Sep 17 00:00:00 2001 From: Emanuel Kagombora Date: Wed, 6 May 2026 14:44:12 +0300 Subject: [PATCH 2/2] feat(container interchange): require Final EIR when CF Delivery Note is linked --- .../container_interchange.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/clearing/clearing/doctype/container_interchange/container_interchange.py b/clearing/clearing/doctype/container_interchange/container_interchange.py index efe03df..7850750 100644 --- a/clearing/clearing/doctype/container_interchange/container_interchange.py +++ b/clearing/clearing/doctype/container_interchange/container_interchange.py @@ -10,6 +10,25 @@ class ContainerInterchange(Document): def before_submit(self): self.validate_shipping_line_deposit() + self.validate_final_eir_against_delivery_note() + + def validate_final_eir_against_delivery_note(self): + if not self.clearing_file: + return + + has_linked_delivery_note = bool( + frappe.db.exists( + "CF Delivery Note", + {"container_interchange": self.name, "docstatus": ["<", 2]}, + ) + ) + if not has_linked_delivery_note: + return + + if not self.final or not self.eir_number_reference or not self.eir_date: + frappe.throw( + _("Final EIR is required (Has Final EIR, EIR Number Reference, EIR Date) before submitting.") + ) def validate_shipping_line_deposit(self): if not self.clearing_file: