baseline: 批次A-D 成果 + membership 半成品(测试红)

This commit is contained in:
agent
2026-09-11 23:11:35 +08:00
commit b3f3095d53
311 changed files with 40540 additions and 0 deletions
+66
View File
@@ -0,0 +1,66 @@
"""partner 序列化器(async 兼容)。"""
from rest_framework import serializers
from apps.core.serializers import AsyncModelSerializer
from .models import PriceLevel, Contact, Customer, Supplier
class PriceLevelSerializer(AsyncModelSerializer):
class Meta:
model = PriceLevel
fields = [
"id", "code", "name", "discount_rate", "sort_order",
"is_deleted", "created_at", "updated_at",
]
read_only_fields = ["id", "created_at", "updated_at"]
class ContactSerializer(AsyncModelSerializer):
customer_code = serializers.CharField(source="customer.code", read_only=True, default=None)
supplier_code = serializers.CharField(source="supplier.code", read_only=True, default=None)
class Meta:
model = Contact
fields = [
"id", "name", "phone", "email", "title", "is_primary",
"customer_code", "supplier_code",
"is_deleted", "created_at", "updated_at",
]
read_only_fields = ["id", "created_at", "updated_at"]
class CustomerSerializer(AsyncModelSerializer):
price_level_code = serializers.CharField(source="price_level.code", read_only=True, default=None)
balance = serializers.SerializerMethodField()
class Meta:
model = Customer
fields = [
"id", "code", "name", "kind", "contact_name", "phone", "email",
"address", "tax_number", "bank_account",
"price_level_code", "credit_limit", "initial_receivable",
"is_active", "remark", "balance",
"is_deleted", "created_at", "updated_at",
]
read_only_fields = ["id", "created_at", "updated_at", "balance"]
def get_balance(self, obj):
# 阶段 2 接入应收模块后实算
return str(obj.initial_receivable)
class SupplierSerializer(AsyncModelSerializer):
balance = serializers.SerializerMethodField()
class Meta:
model = Supplier
fields = [
"id", "code", "name", "contact_name", "phone", "email",
"address", "tax_number", "bank_account",
"initial_payable", "is_active", "remark", "balance",
"is_deleted", "created_at", "updated_at",
]
read_only_fields = ["id", "created_at", "updated_at", "balance"]
def get_balance(self, obj):
return str(obj.initial_payable)