From 8933349e2d26414a39ae2d2c5f0ffb97a4c1767d Mon Sep 17 00:00:00 2001 From: Dirk van der Laarse Date: Sat, 20 Jun 2026 10:04:20 +0000 Subject: [PATCH 1/2] fix: handle multiple routing depots in label --- .../tnt/print_format/tnt_routing_label/tnt_routing_label.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/erpnext_tnt/tnt/print_format/tnt_routing_label/tnt_routing_label.json b/erpnext_tnt/tnt/print_format/tnt_routing_label/tnt_routing_label.json index 853be3e..840835f 100644 --- a/erpnext_tnt/tnt/print_format/tnt_routing_label/tnt_routing_label.json +++ b/erpnext_tnt/tnt/print_format/tnt_routing_label/tnt_routing_label.json @@ -10,14 +10,14 @@ "docstatus": 0, "doctype": "Print Format", "font_size": 14, - "html": "{% set data = get_label_data(doc.name, \"routing_label_data\") %}\n\n{% set pieces = data.labelResponse.consignment.pieceLabelData %}\n{% if pieces.pieceNumber is defined %}\n {% set pieces = [pieces] %}\n{% endif %}\n\n{% for piece in pieces %}\n
\n
\n \"logo\"\n
\n\n {% set weight = piece.weightDisplay['@code'] | float %}\n {% if weight > 10 %}\n
\n {% if weight > 20 %}\n \"weight20\" src=\"/assets/erpnext_tnt/images/White_Weight_20kg_Box_Icon.jpg\" />\n {% elif weight > 10 %}\n \"weight10\" src=\"/assets/erpnext_tnt/images/Black_Weight_10kg_Box_Icon.jpg\" />\n {% endif %}\n
\n {% endif %}\n\n
\n {{ data.labelResponse.consignment.consignmentLabelData.marketDisplay['#text'] }}/{{ data.labelResponse.consignment.consignmentLabelData.transportDisplay['#text'] }}\n
\n
\n {% if 'option' in data.labelResponse.consignment.consignmentLabelData and data.labelResponse.consignment.consignmentLabelData.option['@id'] == 'LB' %}\n HAZARDOUS\n {% endif %}\n
\n
\n {{ data.labelResponse.consignment.consignmentLabelData.freeCirculationDisplay['#text'] }}\n
\n
\n {% if 'option' in data.labelResponse.consignment.consignmentLabelData and data.labelResponse.consignment.consignmentLabelData.option['@id'] == 'LB' %}\n {% else %}\n {{ data.labelResponse.consignment.consignmentLabelData.sortSplitText }}\n {% endif %}\n
\n
\n
Con No.
\n
\n {{ data.labelResponse.consignment.consignmentLabelData.consignmentNumber }}\n
\n
\n
\n
Service
\n \n {{ data.labelResponse.consignment.consignmentLabelData.product['#text'] }}\n \n
\n
\n
Piece
\n
\n {{ piece.pieceNumber }} of {{ data.labelResponse.consignment.consignmentLabelData.totalNumberOfPieces }}\n
\n
\n
\n
Weight
\n \n {{ piece.weightDisplay['#text'] }}\n \n
\n
\n
Option
\n
\n {% if 'option' in data.labelResponse.consignment.consignmentLabelData and data.labelResponse.consignment.consignmentLabelData.option['@id'] == 'LB' %}\n Lithium Batteries (section II/ SP188)\n {% endif %}\n
\n
\n
\n
Customer Reference
\n
\n {{ piece.pieceReference }}\n
\n
\n
\n S/R Account No\n \n {{ data.labelResponse.consignment.consignmentLabelData.account.accountNumber }}\n \n
\n
\n Origin\n \n {{ data.labelResponse.consignment.consignmentLabelData.originDepot.depotCode }}\n \n
\n
\n
Pickup Date
\n
\n {{ data.labelResponse.consignment.consignmentLabelData.collectionDate }}\n
\n
\n
\n
Sender Address
\n
\n {{ data.labelResponse.consignment.consignmentLabelData.sender.name }}
\n {{ data.labelResponse.consignment.consignmentLabelData.sender.addressLine1 }}
\n
\n {{ data.labelResponse.consignment.consignmentLabelData.sender.town }} {{ data.labelResponse.consignment.consignmentLabelData.sender.postcode }}
\n {{ data.labelResponse.consignment.consignmentLabelData.sender.country }}\n
\n
\n
\n
Delivery Address
\n
\n {{ data.labelResponse.consignment.consignmentLabelData.delivery.name }}
\n {% if data.labelResponse.consignment.consignmentLabelData.delivery.addressLine1 %}\n {{ data.labelResponse.consignment.consignmentLabelData.delivery.addressLine1 }}
\n {% endif %}\n {% if data.labelResponse.consignment.consignmentLabelData.delivery.town %}\n {{ data.labelResponse.consignment.consignmentLabelData.delivery.town }}
\n {% endif %}\n {% if data.labelResponse.consignment.consignmentLabelData.delivery.postcode %}\n {{ data.labelResponse.consignment.consignmentLabelData.delivery.postcode }}
\n {% endif %}\n {% if data.labelResponse.consignment.consignmentLabelData.delivery.country %}\n {{ data.labelResponse.consignment.consignmentLabelData.delivery.country }}\n {% endif %}\n
\n
\n
\n Routing\n
\n {{ data.labelResponse.consignment.consignmentLabelData.transitDepots.transitDepot.depotCode }}
\n
\n
\n
\n Sort\n \n {# No sort detail provided #}\n \n
\n
\n Postcode /
Cluster Code\n
\n
\n \n {{ data.labelResponse.consignment.consignmentLabelData.clusterCode }}\n \n
\n
\n Dest
Depot\n
\n
\n {{ data.labelResponse.consignment.consignmentLabelData.destinationDepot.depotCode }}-{{ data.labelResponse.consignment.consignmentLabelData.destinationDepot.dueDayOfMonth }}\n
\n
\n \n
\n
\n {{ piece.barcode['#text'] }}\n
\n
\n{% if not loop.last %}\n
\n{% endif %}\n{% endfor %}", + "html": "{% set data = get_label_data(doc.name, \"routing_label_data\") %}\n\n{% set pieces = data.labelResponse.consignment.pieceLabelData %}\n{% if pieces.pieceNumber is defined %}\n {% set pieces = [pieces] %}\n{% endif %}\n\n{% for piece in pieces %}\n
\n
\n \"logo\"\n
\n\n {% set weight = piece.weightDisplay['@code'] | float %}\n {% if weight > 10 %}\n
\n {% if weight > 20 %}\n \"weight20\" src=\"/assets/erpnext_tnt/images/White_Weight_20kg_Box_Icon.jpg\" />\n {% elif weight > 10 %}\n \"weight10\" src=\"/assets/erpnext_tnt/images/Black_Weight_10kg_Box_Icon.jpg\" />\n {% endif %}\n
\n {% endif %}\n\n
\n {{ data.labelResponse.consignment.consignmentLabelData.marketDisplay['#text'] }}/{{ data.labelResponse.consignment.consignmentLabelData.transportDisplay['#text'] }}\n
\n
\n {% if 'option' in data.labelResponse.consignment.consignmentLabelData and data.labelResponse.consignment.consignmentLabelData.option['@id'] == 'LB' %}\n HAZARDOUS\n {% endif %}\n
\n
\n {{ data.labelResponse.consignment.consignmentLabelData.freeCirculationDisplay['#text'] }}\n
\n
\n {% if 'option' in data.labelResponse.consignment.consignmentLabelData and data.labelResponse.consignment.consignmentLabelData.option['@id'] == 'LB' %}\n {% else %}\n {{ data.labelResponse.consignment.consignmentLabelData.sortSplitText }}\n {% endif %}\n
\n
\n
Con No.
\n
\n {{ data.labelResponse.consignment.consignmentLabelData.consignmentNumber }}\n
\n
\n
\n
Service
\n \n {{ data.labelResponse.consignment.consignmentLabelData.product['#text'] }}\n \n
\n
\n
Piece
\n
\n {{ piece.pieceNumber }} of {{ data.labelResponse.consignment.consignmentLabelData.totalNumberOfPieces }}\n
\n
\n
\n
Weight
\n \n {{ piece.weightDisplay['#text'] }}\n \n
\n
\n
Option
\n
\n {% if 'option' in data.labelResponse.consignment.consignmentLabelData and data.labelResponse.consignment.consignmentLabelData.option['@id'] == 'LB' %}\n Lithium Batteries (section II/ SP188)\n {% endif %}\n
\n
\n
\n
Customer Reference
\n
\n {{ piece.pieceReference }}\n
\n
\n
\n S/R Account No\n \n {{ data.labelResponse.consignment.consignmentLabelData.account.accountNumber }}\n \n
\n
\n Origin\n \n {{ data.labelResponse.consignment.consignmentLabelData.originDepot.depotCode }}\n \n
\n
\n
Pickup Date
\n
\n {{ data.labelResponse.consignment.consignmentLabelData.collectionDate }}\n
\n
\n
\n
Sender Address
\n
\n {{ data.labelResponse.consignment.consignmentLabelData.sender.name }}
\n {{ data.labelResponse.consignment.consignmentLabelData.sender.addressLine1 }}
\n
\n {{ data.labelResponse.consignment.consignmentLabelData.sender.town }} {{ data.labelResponse.consignment.consignmentLabelData.sender.postcode }}
\n {{ data.labelResponse.consignment.consignmentLabelData.sender.country }}\n
\n
\n
\n
Delivery Address
\n
\n {{ data.labelResponse.consignment.consignmentLabelData.delivery.name }}
\n {% if data.labelResponse.consignment.consignmentLabelData.delivery.addressLine1 %}\n {{ data.labelResponse.consignment.consignmentLabelData.delivery.addressLine1 }}
\n {% endif %}\n {% if data.labelResponse.consignment.consignmentLabelData.delivery.town %}\n {{ data.labelResponse.consignment.consignmentLabelData.delivery.town }}
\n {% endif %}\n {% if data.labelResponse.consignment.consignmentLabelData.delivery.postcode %}\n {{ data.labelResponse.consignment.consignmentLabelData.delivery.postcode }}
\n {% endif %}\n {% if data.labelResponse.consignment.consignmentLabelData.delivery.country %}\n {{ data.labelResponse.consignment.consignmentLabelData.delivery.country }}\n {% endif %}\n
\n
\n
\n Routing\n
\n {% set depots = data.labelResponse.consignment.consignmentLabelData.transitDepots | default({}) %}\n\n {% if depots | length == 0 %}\n {{ \" \" }}\n {% endif %}\n\n {% for depotType, depotValue in depots.items() %}\n {% set depotList = depotValue if depotValue is sequence and depotValue is not mapping and depotValue is not string else [depotValue] %}\n\n {% for depot in depotList %}\n {% if depotType == \"transitDepot\" %}\n {{ depot.depotCode }}
\n {% elif depotType == \"actionDepot\" %}\n {{ depot.depotCode }}-{{ depot.actionDayOfWeek }}
\n {% elif depotType == \"sortDepot\" %}\n {{ depot.depotCode }}-{{ depot.sortCellIndicator }}
\n {% endif %}\n {% endfor %}\n {% endfor %}\n
\n
\n
\n Sort\n \n {# No sort detail provided #}\n \n
\n
\n Postcode /
Cluster Code\n
\n
\n \n {{ data.labelResponse.consignment.consignmentLabelData.clusterCode }}\n \n
\n
\n Dest
Depot\n
\n
\n {{ data.labelResponse.consignment.consignmentLabelData.destinationDepot.depotCode }}-{{ data.labelResponse.consignment.consignmentLabelData.destinationDepot.dueDayOfMonth }}\n
\n
\n \n
\n
\n {{ piece.barcode['#text'] }}\n
\n
\n{% if not loop.last %}\n
\n{% endif %}\n{% endfor %}", "idx": 0, "line_breaks": 0, "margin_bottom": 15.0, "margin_left": 15.0, "margin_right": 15.0, "margin_top": 15.0, - "modified": "2026-04-22 07:40:51.383349", + "modified": "2026-06-20 12:04:00.863352", "modified_by": "Administrator", "module": "TNT", "name": "TNT Routing Label", From a829841ac7472997f39d5af7391e1abbb7283c16 Mon Sep 17 00:00:00 2001 From: Dirk van der Laarse Date: Sat, 20 Jun 2026 10:40:49 +0000 Subject: [PATCH 2/2] chore: bump to v0.10.6 --- erpnext_tnt/__init__.py | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/erpnext_tnt/__init__.py b/erpnext_tnt/__init__.py index a67aac0..daecfa5 100644 --- a/erpnext_tnt/__init__.py +++ b/erpnext_tnt/__init__.py @@ -1 +1 @@ -__version__ = "0.10.5" +__version__ = "0.10.6" diff --git a/package.json b/package.json index 59b7ba2..5ebda02 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "erpnext_tnt", - "version": "0.10.5", + "version": "0.10.6", "author": "Starktail (Pty) Ltd ", "main": "index.js", "devDependencies": {