finance: import income and expence commands added
This commit is contained in:
@@ -382,7 +382,6 @@ class PartyExpenceCreateSerializer(serializers.ModelSerializer):
|
||||
]
|
||||
|
||||
def validate(self, data):
|
||||
"""Validasiya qilish"""
|
||||
price = data.get('price')
|
||||
exchange_rate = data.get('exchange_rate')
|
||||
party = data.get('party')
|
||||
@@ -397,7 +396,6 @@ class PartyExpenceCreateSerializer(serializers.ModelSerializer):
|
||||
if not party:
|
||||
raise serializers.ValidationError("Party talab qilinadi")
|
||||
|
||||
# USD kursi tekshiruvi
|
||||
try:
|
||||
usd_course = UsdCourse.objects.first()
|
||||
if not usd_course or not usd_course.value:
|
||||
@@ -439,24 +437,20 @@ class PartyExpenceCreateSerializer(serializers.ModelSerializer):
|
||||
party = expence.party
|
||||
|
||||
if currency == "uzs":
|
||||
# Cash transaction balansini yangilash
|
||||
cash_transaction.expence_balance_uzs += expence.price
|
||||
cash_transaction.total_balance_uzs = (
|
||||
cash_transaction.income_balance_uzs
|
||||
- cash_transaction.expence_balance_uzs
|
||||
)
|
||||
|
||||
# Payment type balansini yangilash
|
||||
if payment_type.total_uzs > expence.price:
|
||||
payment_type.total_uzs -= expence.price
|
||||
|
||||
# Kontrapartiya hisobini yangilash
|
||||
if expence.counterparty:
|
||||
if expence.counterparty.kredit_uzs > 0:
|
||||
expence.counterparty.kredit_uzs -= expence.price
|
||||
expence.counterparty.total_kredit -= expence.price
|
||||
|
||||
# ✅ TUZATILDI: Debit to'g'ridan-to'g'ri oshadi
|
||||
expence.counterparty.debit_uzs += expence.price
|
||||
expence.counterparty.total_debit += expence.price
|
||||
else:
|
||||
@@ -465,15 +459,12 @@ class PartyExpenceCreateSerializer(serializers.ModelSerializer):
|
||||
|
||||
expence.counterparty.save()
|
||||
|
||||
# Party hisobini yangilash
|
||||
if party:
|
||||
if party.currency == "uzs":
|
||||
# ✅ Birjani to'g'ri hisoblash
|
||||
party.party_amount.payment_amount -= expence.price
|
||||
party.party_amount.paid_amount += expence.price
|
||||
party.party_amount.save()
|
||||
elif party.currency == 'usd':
|
||||
# ✅ USD kursi bilan to'g'ri konvertatsiya
|
||||
converted_price = round(expence.price / usd_value)
|
||||
party.party_amount.payment_amount -= converted_price
|
||||
party.party_amount.paid_amount += converted_price
|
||||
@@ -482,25 +473,20 @@ class PartyExpenceCreateSerializer(serializers.ModelSerializer):
|
||||
party.save()
|
||||
|
||||
elif currency == "usd":
|
||||
# Cash transaction balansini yangilash
|
||||
cash_transaction.expence_balance_usd += expence.price
|
||||
cash_transaction.total_balance_usd = (
|
||||
cash_transaction.income_balance_usd
|
||||
- cash_transaction.expence_balance_usd
|
||||
)
|
||||
|
||||
# Payment type balansini yangilash
|
||||
if payment_type.total_usd > expence.price:
|
||||
payment_type.total_usd -= expence.price
|
||||
|
||||
# Kontrapartiya hisobini yangilash
|
||||
if expence.counterparty:
|
||||
if expence.counterparty.kredit_usd > 0:
|
||||
# ✅ TUZATILDI: expence.price ishlatish
|
||||
expence.counterparty.kredit_usd -= expence.price
|
||||
expence.counterparty.total_kredit -= expence.price
|
||||
|
||||
# ✅ TUZATILDI: Debit to'g'ridan-to'g'ri oshadi
|
||||
expence.counterparty.debit_usd += expence.price
|
||||
expence.counterparty.total_debit += expence.price
|
||||
else:
|
||||
@@ -509,15 +495,12 @@ class PartyExpenceCreateSerializer(serializers.ModelSerializer):
|
||||
|
||||
expence.counterparty.save()
|
||||
|
||||
# Party hisobini yangilash
|
||||
if party:
|
||||
if party.currency == "usd":
|
||||
# ✅ TUZATILDI: expence.price ishlatish
|
||||
party.party_amount.payment_amount -= expence.price
|
||||
party.party_amount.paid_amount += expence.price
|
||||
party.party_amount.save()
|
||||
elif party.currency == "uzs":
|
||||
# ✅ TUZATILDI: expence.price bilan konvertatsiya
|
||||
converted_price = expence.price * usd_value
|
||||
party.party_amount.payment_amount -= converted_price
|
||||
party.party_amount.paid_amount += converted_price
|
||||
@@ -525,7 +508,6 @@ class PartyExpenceCreateSerializer(serializers.ModelSerializer):
|
||||
|
||||
party.save()
|
||||
|
||||
# Barcha o'zgarishlari saqlash
|
||||
cash_transaction.save()
|
||||
payment_type.save()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user