This commit is contained in:
behruz-dev
2025-11-14 15:41:52 +05:00
parent bac0040672
commit e39efc5300
3 changed files with 60 additions and 7 deletions

View File

@@ -23,7 +23,7 @@ from core.apps.finance.serializers.income import IncomeListSerializer
from core.apps.finance.serializers.expence import ExpenceListSerializer from core.apps.finance.serializers.expence import ExpenceListSerializer
# orders # orders
from core.apps.orders.models import Party 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): class CounterpartyListApiView(generics.ListAPIView):
@@ -362,7 +362,7 @@ class CounterpartyAKTApiView(views.APIView):
date_key = party.closed_date.strftime('%Y-%m-%d') date_key = party.closed_date.strftime('%Y-%m-%d')
daily_data[date_key]['parties'].append(party) 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) daily_data[date_key]['parties_total'] = daily_data[date_key].get('parties_total', Decimal('0')) + Decimal(party_total)
for income in incomes: for income in incomes:
@@ -391,7 +391,7 @@ class CounterpartyAKTApiView(views.APIView):
) )
daily_data[date_key].update({ 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, 'expences': ExpenceListSerializer(expences_list, many=True).data,
'incomes': IncomeListSerializer(incomes_list, many=True).data, 'incomes': IncomeListSerializer(incomes_list, many=True).data,
'day_kredit': str(day_kredit), 'day_kredit': str(day_kredit),

View File

@@ -181,3 +181,29 @@ class MultipleOrderAddSerializer(serializers.Serializer):
data['wherehouse'] = wherehouse data['wherehouse'] = wherehouse
data['counterparty'] = counterparty data['counterparty'] = counterparty
return data 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

View File

@@ -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.models import DeletedParty, Order, Party, PartyAmount
from core.apps.orders.serializers.order import ( from core.apps.orders.serializers.order import (
MultipleOrderAddSerializer, MultipleOrderAddSerializer,
OrderListSerializer, OrderAKTSerializer,
) )
# products # products
from core.apps.products.models import Product, Unity from core.apps.products.models import Product, Unity
@@ -122,7 +122,7 @@ class PartyAmountSerializer(serializers.ModelSerializer):
class PartyDetailSerializer(serializers.ModelSerializer): class PartyDetailSerializer(serializers.ModelSerializer):
orders = OrderListSerializer(many=True) orders = OrderAKTSerializer(many=True)
party_amount = PartyAmountSerializer() party_amount = PartyAmountSerializer()
mediator = serializers.SerializerMethodField(method_name="get_mediator") mediator = serializers.SerializerMethodField(method_name="get_mediator")
counterparty = serializers.SerializerMethodField(method_name="get_counterparty") counterparty = serializers.SerializerMethodField(method_name="get_counterparty")
@@ -555,3 +555,30 @@ class ReceivePartySerializer(serializers.Serializer):
class ReceiveMultipleOrderSerializer(serializers.Serializer): class ReceiveMultipleOrderSerializer(serializers.Serializer):
product = ReceivePartySerializer(many=True) 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}