1
0
forked from erp-dev/erp

feat: shipment patch

This commit is contained in:
2026-04-02 18:07:06 +08:00
parent d36d9c1d9c
commit 1be840a8c2
14 changed files with 979 additions and 72 deletions

View File

@@ -22,6 +22,10 @@ class ShipmentSerializer(serializers.ModelSerializer):
source="cancelled_by.id", read_only=True, allow_null=True
)
cancelled_by_name = serializers.SerializerMethodField()
approved_by_id = serializers.IntegerField(
source="approved_by.id", read_only=True, allow_null=True
)
approved_by_name = serializers.SerializerMethodField()
status_display = serializers.CharField(source="get_status_display", read_only=True)
external_finished_products_count = serializers.SerializerMethodField()
merchant_id = serializers.IntegerField(source="merchant.id", read_only=True)
@@ -43,9 +47,11 @@ class ShipmentSerializer(serializers.ModelSerializer):
"status",
"status_display",
"external_id",
"cancelled_at",
"status_modified_at",
"cancelled_by_id",
"cancelled_by_name",
"approved_by_id",
"approved_by_name",
"items_count",
"created_by_id",
"created_by_name",
@@ -79,6 +85,14 @@ class ShipmentSerializer(serializers.ModelSerializer):
def get_external_finished_products_count(self, obj):
return obj.external_finished_products.count()
def get_approved_by_name(self, obj):
if obj.approved_by:
employee = getattr(obj.approved_by, "employee", None)
if employee:
return employee.name
return obj.approved_by.username
return None
def get_sales_items(self, obj):
"""
出货单关联的销售品明细(无则返回空数组)。