feat(#46): add public order summary and fill_codes endpoints
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
from rest_framework import serializers
|
||||
from django.urls import reverse
|
||||
|
||||
from ..models.sales import (
|
||||
Sale,
|
||||
@@ -11,6 +12,17 @@ from .products import ListProductSerializer
|
||||
from .customers import ListCustomerSerializer
|
||||
|
||||
|
||||
class PublicSummaryLinkMixin:
|
||||
def get_link(self, obj):
|
||||
path = reverse(
|
||||
"don_confiao:public_purchase_summary", args=[obj.code]
|
||||
)
|
||||
request = self.context.get("request")
|
||||
if request:
|
||||
return request.build_absolute_uri(path)
|
||||
return path
|
||||
|
||||
|
||||
class SaleLineSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = SaleLine
|
||||
@@ -87,13 +99,14 @@ class SummarySaleLineSerializer(serializers.ModelSerializer):
|
||||
fields = ["product", "quantity", "unit_price", "description"]
|
||||
|
||||
|
||||
class SaleSummarySerializer(serializers.ModelSerializer):
|
||||
class SaleSummarySerializer(PublicSummaryLinkMixin, serializers.ModelSerializer):
|
||||
customer = ListCustomerSerializer()
|
||||
lines = SummarySaleLineSerializer(many=True, source="saleline_set")
|
||||
link = serializers.SerializerMethodField()
|
||||
|
||||
class Meta:
|
||||
model = Sale
|
||||
fields = ["id", "date", "customer", "payment_method", "lines"]
|
||||
fields = ["id", "code", "date", "customer", "payment_method", "lines", "link"]
|
||||
|
||||
|
||||
class CatalogSummarySaleLineSerializer(serializers.ModelSerializer):
|
||||
@@ -104,15 +117,18 @@ class CatalogSummarySaleLineSerializer(serializers.ModelSerializer):
|
||||
fields = ["product", "quantity", "unit_price", "description"]
|
||||
|
||||
|
||||
class CatalogSaleSummarySerializer(serializers.ModelSerializer):
|
||||
class CatalogSaleSummarySerializer(
|
||||
PublicSummaryLinkMixin, serializers.ModelSerializer
|
||||
):
|
||||
customer = ListCustomerSerializer()
|
||||
lines = CatalogSummarySaleLineSerializer(
|
||||
many=True, source="catalogsaleline_set"
|
||||
)
|
||||
link = serializers.SerializerMethodField()
|
||||
|
||||
class Meta:
|
||||
model = CatalogSale
|
||||
fields = ["id", "date", "customer", "lines"]
|
||||
fields = ["id", "code", "date", "customer", "lines", "link"]
|
||||
|
||||
|
||||
class SaleForRenconciliationSerializer(serializers.Serializer):
|
||||
|
||||
Reference in New Issue
Block a user