From 9b1a310ffe2416ed8e7ffd282ec36103e301e844 Mon Sep 17 00:00:00 2001 From: Oliver Date: Sat, 13 Jan 2024 08:06:47 +1100 Subject: [PATCH] Fix rendering of supplier part pack quantity (#6226) - Fixes https://github.com/inventree/InvenTree/issues/6224 --- InvenTree/company/serializers.py | 8 +++++++- InvenTree/templates/js/translated/part.js | 14 ++++++++------ 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/InvenTree/company/serializers.py b/InvenTree/company/serializers.py index 309e8beac5..b0acb76137 100644 --- a/InvenTree/company/serializers.py +++ b/InvenTree/company/serializers.py @@ -326,7 +326,11 @@ class SupplierPartSerializer(InvenTreeTagModelSerializer): 'tags', ] - read_only_fields = ['availability_updated', 'barcode_hash'] + read_only_fields = [ + 'availability_updated', + 'barcode_hash', + 'pack_quantity_native', + ] tags = TagListSerializerField(required=False) @@ -364,6 +368,8 @@ class SupplierPartSerializer(InvenTreeTagModelSerializer): in_stock = serializers.FloatField(read_only=True) available = serializers.FloatField(required=False) + pack_quantity_native = serializers.FloatField(read_only=True) + part_detail = PartBriefSerializer(source='part', many=False, read_only=True) supplier_detail = CompanyBriefSerializer( diff --git a/InvenTree/templates/js/translated/part.js b/InvenTree/templates/js/translated/part.js index 3ededcf28c..4babf49dd2 100644 --- a/InvenTree/templates/js/translated/part.js +++ b/InvenTree/templates/js/translated/part.js @@ -1812,12 +1812,13 @@ function loadPartPurchaseOrderTable(table, part_id, options={}) { formatter: function(value, row) { let data = value; - if (row.supplier_part_detail.pack_quantity_native != 1.0) { - let total = value * row.supplier_part_detail.pack_quantity_native; + if (row.supplier_part_detail && row.supplier_part_detail.pack_quantity_native != 1.0) { + let pq = row.supplier_part_detail.pack_quantity_native; + let total = value * pq; data += makeIconBadge( 'fa-info-circle icon-blue', - `{% trans "Pack Quantity" %}: ${row.pack_quantity} - {% trans "Total Quantity" %}: ${total}` + `{% trans "Pack Quantity" %}: ${pq} - {% trans "Total Quantity" %}: ${total}` ); } @@ -1870,9 +1871,10 @@ function loadPartPurchaseOrderTable(table, part_id, options={}) { formatter: function(value, row) { var data = value; - if (value > 0 && row.supplier_part_detail.pack_quantity_native != 1.0) { - let total = value * row.supplier_part_detail.pack_quantity_native; - data += ``; + if (value > 0 && row.supplier_part_detail && row.supplier_part_detail.pack_quantity_native != 1.0) { + let pq = row.supplier_part_detail.pack_quantity_native; + let total = value * pq; + data += ``; } return data;