From e66aa6b213dddc29e15cf19009d881c1735a3b39 Mon Sep 17 00:00:00 2001 From: behruz-dev Date: Tue, 7 Oct 2025 14:17:40 +0500 Subject: [PATCH] calculate party process and payment_percentag --- core/apps/orders/models/party.py | 16 ++++++++++++++++ core/apps/orders/serializers/party.py | 2 ++ 2 files changed, 18 insertions(+) diff --git a/core/apps/orders/models/party.py b/core/apps/orders/models/party.py index 51b318b..f236db8 100644 --- a/core/apps/orders/models/party.py +++ b/core/apps/orders/models/party.py @@ -59,6 +59,22 @@ class Party(BaseModel): def __str__(self): return f'P - {self.number}' + def save(self, *args, **kwargs): + if self.status in ['NEW', 'CANCELLED', 'DRAFT']: + self.process = 0 + elif self.status == 'EXPECTED': + self.process = 25 + elif self.status == 'PROCESS': + self.process = 50 + elif self.status == 'PURCHASED': + self.process = 75 + elif self.status == 'PARTY_IS_MADE': + self.process == 100 + if self.party_amount and self.party_amount.paid_amount > 0: + self.payment_percentage = (self.party_amount.paid_amount / self.party_amount.payment_amount) * 100 + self.party_amount.save() + return super().save(args, kwargs) + class Meta: verbose_name = 'Partiya' verbose_name_plural = 'Partiyalar' diff --git a/core/apps/orders/serializers/party.py b/core/apps/orders/serializers/party.py index e6868f1..4ec6fb7 100644 --- a/core/apps/orders/serializers/party.py +++ b/core/apps/orders/serializers/party.py @@ -123,6 +123,7 @@ class PartyDetailSerializer(serializers.ModelSerializer): "payment_date", "status", "payment_status", + "payment_percentage", "process", "confirmation", "comment", @@ -166,6 +167,7 @@ class PartyListSerializer(serializers.ModelSerializer): "payment_date", "status", "payment_status", + "payment_percentage", "process", "confirmation", "comment",