add: add kreditor and debitor
This commit is contained in:
@@ -0,0 +1,18 @@
|
||||
# Generated by Django 5.2.4 on 2025-09-09 16:38
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('finance', '0015_alter_cashtransaction_expence_balance_usd_and_more'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='income',
|
||||
name='exchange_rate',
|
||||
field=models.PositiveBigIntegerField(blank=True, default=0, null=True),
|
||||
),
|
||||
]
|
||||
@@ -25,8 +25,8 @@ class Income(BaseModel):
|
||||
|
||||
currency = models.CharField(choices=[('uzs', 'uzs'),('usd', 'usd')], max_length=3)
|
||||
price = models.PositiveBigIntegerField()
|
||||
exchange_rate = models.PositiveBigIntegerField(default=0)
|
||||
date = models.DateField()
|
||||
exchange_rate = models.PositiveBigIntegerField(default=0, null=True, blank=True)
|
||||
date = models.DateField(null=True, blank=True)
|
||||
comment = models.TextField(null=True, blank=True)
|
||||
file = models.FileField(upload_to='finance/income/file/', null=True, blank=True)
|
||||
audit = models.CharField(max_length=200, null=True, blank=True)
|
||||
|
||||
@@ -38,14 +38,38 @@ class ExpenceCreateSerializer(serializers.ModelSerializer):
|
||||
cash_transaction.total_balance_uzs = cash_transaction.income_balance_uzs - cash_transaction.expence_balance_uzs
|
||||
if payment_type.total_uzs > expence.price:
|
||||
payment_type.total_uzs -= expence.price
|
||||
|
||||
if expence.counterparty:
|
||||
if expence.counterparty.kredit_uzs != 0:
|
||||
expence.counterparty.kredit_uzs -= expence.price
|
||||
expence.counterparty.total_kredit -= expence.price
|
||||
|
||||
expence.counterparty.debit_uzs += expence.counterparty.kredit_uzs - expence.price
|
||||
expence.counterparty.total_debit += expence.price
|
||||
else:
|
||||
expence.counterparty.debit_uzs += expence.price
|
||||
expence.counterparty.total_debit += expence.price
|
||||
|
||||
elif validated_data.get('currency') == 'usd':
|
||||
cash_transaction.expence_balance_usd += expence.price
|
||||
cash_transaction.total_balance_usd = cash_transaction.income_balance_usd - cash_transaction.expence_balance_usd
|
||||
if payment_type.total_usd > expence.price:
|
||||
payment_type.total_usd -= expence.price
|
||||
|
||||
if expence.counterparty:
|
||||
if expence.counterparty.kredit_usd != 0:
|
||||
expence.counterparty.kredit_usd -= validated_data.get('price')
|
||||
expence.counterparty.total_kredit -= expence.price
|
||||
|
||||
expence.counterparty.debit_usd += expence.counterparty.kredit_usd - validated_data.get('price')
|
||||
expence.counterparty.total_debit += expence.price
|
||||
else:
|
||||
expence.counterparty.debit_usd += validated_data.get('price')
|
||||
expence.counterparty.total_debit += expence.price
|
||||
|
||||
cash_transaction.save()
|
||||
payment_type.save()
|
||||
expence.counterparty.save()
|
||||
return expence
|
||||
|
||||
|
||||
|
||||
@@ -91,11 +91,34 @@ class IncomeCreateSerializer(serializers.ModelSerializer):
|
||||
cash_transaction.income_balance_uzs += income.price
|
||||
cash_transaction.total_balance_uzs = cash_transaction.income_balance_uzs - cash_transaction.expence_balance_uzs
|
||||
payment_type.total_uzs += income.price
|
||||
|
||||
if income.counterparty:
|
||||
if income.counterparty.debit_uzs != 0:
|
||||
income.counterparty.debit_uzs -= income.price
|
||||
income.counterparty.total_debit -= income.price
|
||||
|
||||
income.counterparty.kredit_uzs += income.counterparty.debit_uzs - income.price
|
||||
income.counterparty.total_kredit += income.price
|
||||
else:
|
||||
income.counterparty.kredit_uzs += income.price
|
||||
income.counterparty.total_kredit += income.price
|
||||
|
||||
elif validated_data.get('currency') == 'usd':
|
||||
cash_transaction.income_balance_usd += income.price
|
||||
cash_transaction.total_balance_usd = cash_transaction.income_balance_usd - cash_transaction.expence_balance_usd
|
||||
payment_type.total_usd += income.price
|
||||
if income.counterparty:
|
||||
if income.counterparty.debit_usd != 0:
|
||||
income.counterparty.debit_usd -= validated_data.get('price')
|
||||
income.counterparty.total_debit -= income.price
|
||||
|
||||
income.counterparty.kredit_usd += income.counterparty.debit_usd - validated_data.get('price')
|
||||
income.counterparty.total_kredit += income.price
|
||||
else:
|
||||
income.counterparty.kredit_usd += validated_data.get('price')
|
||||
income.counterparty.total_kredit += income.price
|
||||
|
||||
cash_transaction.save()
|
||||
payment_type.save()
|
||||
income.counterparty.save()
|
||||
return income
|
||||
Reference in New Issue
Block a user