From e39efc53008f2fe9345664ffdedb023808576717 Mon Sep 17 00:00:00 2001 From: behruz-dev Date: Fri, 14 Nov 2025 15:41:52 +0500 Subject: [PATCH] fix --- core/apps/counterparty/views/counterparty.py | 6 ++-- core/apps/orders/serializers/order.py | 28 ++++++++++++++++- core/apps/orders/serializers/party.py | 33 ++++++++++++++++++-- 3 files changed, 60 insertions(+), 7 deletions(-) diff --git a/core/apps/counterparty/views/counterparty.py b/core/apps/counterparty/views/counterparty.py index 0bfd730..45f96e7 100644 --- a/core/apps/counterparty/views/counterparty.py +++ b/core/apps/counterparty/views/counterparty.py @@ -23,7 +23,7 @@ from core.apps.finance.serializers.income import IncomeListSerializer from core.apps.finance.serializers.expence import ExpenceListSerializer # orders from core.apps.orders.models import Party -from core.apps.orders.serializers.party import PartyDetailSerializer +from core.apps.orders.serializers.party import PartyAKTSerializer class CounterpartyListApiView(generics.ListAPIView): @@ -362,7 +362,7 @@ class CounterpartyAKTApiView(views.APIView): date_key = party.closed_date.strftime('%Y-%m-%d') daily_data[date_key]['parties'].append(party) - party_total = getattr(party, 'total_price', 0) or 0 + party_total = getattr(party.party_amount, 'calculated_amount', 0) or 0 daily_data[date_key]['parties_total'] = daily_data[date_key].get('parties_total', Decimal('0')) + Decimal(party_total) for income in incomes: @@ -391,7 +391,7 @@ class CounterpartyAKTApiView(views.APIView): ) daily_data[date_key].update({ - 'parties': PartyDetailSerializer(parties_list, many=True).data, + 'parties': PartyAKTSerializer(parties_list, many=True).data, 'expences': ExpenceListSerializer(expences_list, many=True).data, 'incomes': IncomeListSerializer(incomes_list, many=True).data, 'day_kredit': str(day_kredit), diff --git a/core/apps/orders/serializers/order.py b/core/apps/orders/serializers/order.py index 13b63bf..a613178 100644 --- a/core/apps/orders/serializers/order.py +++ b/core/apps/orders/serializers/order.py @@ -180,4 +180,30 @@ class MultipleOrderAddSerializer(serializers.Serializer): data['unity'] = unity data['wherehouse'] = wherehouse data['counterparty'] = counterparty - return data \ No newline at end of file + return data + + + +class OrderAKTSerializer(serializers.ModelSerializer): + product = ProductListSerializer() + unity = UnityListSerializer() + + class Meta: + model = Order + fields = [ + 'id', 'product', 'unity', 'quantity','date', 'status', 'unit_amount', 'currency', + 'total_price', 'qqs_price', 'amount', 'qqs', 'received_count', 'received_date', 'completion_percentage' + ] + + def get_employee(self, obj): + return { + "id": obj.employee.id, + "full_name": obj.employee.full_name, + "phone_number": obj.employee.phone_number + } if obj.employee else None + + def get_counterparty(self, obj): + return { + 'id': obj.counterparty.id, + 'name': obj.counterparty.name, + } if obj.counterparty else None diff --git a/core/apps/orders/serializers/party.py b/core/apps/orders/serializers/party.py index 503db5e..b5c1216 100644 --- a/core/apps/orders/serializers/party.py +++ b/core/apps/orders/serializers/party.py @@ -17,7 +17,7 @@ from core.apps.finance.models import Expence from core.apps.orders.models import DeletedParty, Order, Party, PartyAmount from core.apps.orders.serializers.order import ( MultipleOrderAddSerializer, - OrderListSerializer, + OrderAKTSerializer, ) # products from core.apps.products.models import Product, Unity @@ -122,7 +122,7 @@ class PartyAmountSerializer(serializers.ModelSerializer): class PartyDetailSerializer(serializers.ModelSerializer): - orders = OrderListSerializer(many=True) + orders = OrderAKTSerializer(many=True) party_amount = PartyAmountSerializer() mediator = serializers.SerializerMethodField(method_name="get_mediator") counterparty = serializers.SerializerMethodField(method_name="get_counterparty") @@ -554,4 +554,31 @@ class ReceivePartySerializer(serializers.Serializer): class ReceiveMultipleOrderSerializer(serializers.Serializer): - product = ReceivePartySerializer(many=True) \ No newline at end of file + product = ReceivePartySerializer(many=True) + + +class PartyAKTSerializer(serializers.ModelSerializer): + party_amount = PartyAmountSerializer() + mediator = serializers.SerializerMethodField(method_name="get_mediator") + + class Meta: + model = Party + fields = [ + "id", + "number", + "delivery_date", + "closed_date", + "order_date", + "payment_date", + "status", + "payment_status", + "payment_percentage", + "process", + "confirmation", + "party_amount", + "mediator", + "currency", + ] + + def get_mediator(self, obj): + return {"id": obj.mediator.id, "full_name": obj.mediator.full_name}