Files
ibapp-backend/core/apps/finance/models/income.py
2025-09-25 16:37:41 +05:00

54 lines
2.2 KiB
Python

from django.db import models
from core.apps.shared.models import BaseModel
from core.apps.finance.models import CashTransaction, PaymentType, TypeIncome
from core.apps.counterparty.models import Counterparty
from core.apps.accounts.models import User
class Income(BaseModel):
user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='incomes', null=True)
cash_transaction = models.ForeignKey(
CashTransaction, on_delete=models.CASCADE, related_name='incomes'
)
payment_type = models.ForeignKey(PaymentType, on_delete=models.CASCADE, related_name='incomes')
project_folder = models.ForeignKey(
'projects.ProjectFolder', on_delete=models.SET_NULL, related_name='incomes', null=True, blank=True
)
project = models.ForeignKey(
'projects.Project', on_delete=models.SET_NULL, related_name='incomes', null=True, blank=True
)
counterparty = models.ForeignKey(
Counterparty, on_delete=models.SET_NULL, related_name='incomes', null=True, blank=True
)
type_income = models.ForeignKey(
TypeIncome, on_delete=models.SET_NULL, related_name='incomes', null=True, blank=True
)
currency = models.CharField(choices=[('uzs', 'uzs'),('usd', 'usd')], max_length=3)
price = models.PositiveBigIntegerField()
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)
is_deleted = models.BooleanField(default=False)
def __str__(self):
return f'{self.cash_transaction} kassa uchun kirim {self.price}'
class Meta:
verbose_name = 'kirim'
verbose_name_plural = 'kirimlar'
class DeletedIncome(BaseModel):
income = models.ForeignKey(Income, on_delete=models.CASCADE, related_name='deleted_incomes')
comment = models.CharField(max_length=200)
def __str__(self):
return f'{self.income} is deleted'
class Meta:
verbose_name = "O'chirilgan kirim"
verbose_name_plural = "O'chirilgan kirimlar"