feat(#46): add public order summary and fill_codes endpoints

This commit is contained in:
mono
2026-08-08 13:28:53 -05:00
parent 332884907c
commit 2438cf2576
4 changed files with 106 additions and 8 deletions

View File

@@ -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):