From f385bf5d65e0c89f946c3c2c674c33d5f5d6bb17 Mon Sep 17 00:00:00 2001 From: behruz-dev Date: Tue, 7 Oct 2025 15:14:13 +0500 Subject: [PATCH] change party payment --- core/apps/orders/serializers/party.py | 39 ++++++++++++++++++--------- 1 file changed, 27 insertions(+), 12 deletions(-) diff --git a/core/apps/orders/serializers/party.py b/core/apps/orders/serializers/party.py index f52ff46..612ef47 100644 --- a/core/apps/orders/serializers/party.py +++ b/core/apps/orders/serializers/party.py @@ -383,6 +383,7 @@ class PartyExpenceCreateSerializer(serializers.ModelSerializer): def create(self, validated_data): with transaction.atomic(): + usd_value = UsdCourse.objects.first().value expence = Expence.objects.create( cash_transaction=validated_data.get("cash_transaction"), payment_type=validated_data.get("payment_type"), @@ -425,10 +426,14 @@ class PartyExpenceCreateSerializer(serializers.ModelSerializer): expence.counterparty.debit_uzs += expence.price expence.counterparty.total_debit += expence.price expence.counterparty.save() - # if expence.party.currency == "uzs": - expence.party.party_amount.payment_amount -= expence.price - expence.party.party_amount.paid_amount += expence.price - expence.party.save() + if expence.party.currency == "uzs": + expence.party.party_amount.payment_amount -= expence.price + expence.party.party_amount.paid_amount += expence.price + expence.party.save() + elif expence.party.currency == 'usd': + expence.party.party_amount.payment_amount -= round(expence.price / usd_value) + expence.party.party_amount.paid_amount += round(expence.price / usd_value) + expence.party.save() elif validated_data.get("currency") == "usd": cash_transaction.expence_balance_usd += expence.price @@ -453,14 +458,24 @@ class PartyExpenceCreateSerializer(serializers.ModelSerializer): expence.counterparty.debit_usd += validated_data.get("price") expence.counterparty.total_debit += expence.price expence.counterparty.save() - # if expence.party.currency == "usd": - expence.party.party_amount.payment_amount -= validated_data.get( - "price" - ) - expence.party.party_amount.paid_amount += validated_data.get( - "price" - ) - expence.party.save() + + if expence.party.currency == "usd": + expence.party.party_amount.payment_amount -= validated_data.get( + "price" + ) + expence.party.party_amount.paid_amount += validated_data.get( + "price" + ) + expence.party.save() + + elif expence.party.currency == "uzs": + expence.party.party_amount.payment_amount -= validated_data.get( + "price" + ) * usd_value + expence.party.party_amount.paid_amount += validated_data.get( + "price" + ) * usd_value + expence.party.save() cash_transaction.save() payment_type.save()