change offer list and add party model and serializer

This commit is contained in:
behruz-dev
2025-08-21 11:34:48 +05:00
parent 7e2e62d48c
commit 1deca00816
7 changed files with 248 additions and 14 deletions

View File

@@ -6,10 +6,23 @@ from core.apps.accounts.models import User
class Party(BaseModel):
number = models.PositiveIntegerField(default=1)
orders = models.ManyToManyField(Order, related_name='parties', null=True, blank=True)
mediator = models.ForeignKey(User, on_delete=models.CASCADE, related_name='parties')
# dates
delivery_date = models.DateField()
coled_date = models.DateField(null=True, blank=True)
order_date = models.DateField(auto_now_add=True)
payment_date = models.DateField()
status = models.CharField(
max_length=20, choices=[('ORDERED', 'yetkazildi'), ('PROCESS', 'jarayonda')],
null=True, blank=True
)
payment_status = models.FloatField(null=True, blank=True)
process = models.FloatField(null=True, blank=True)
confirmation = models.BooleanField(default=False)
comment = models.TextField(null=True, blank=True)
audit = models.CharField(
max_length=20, choices=[('CHECKED', 'tekshirildi'),('PROCESS', 'jarayonda')],
@@ -18,8 +31,34 @@ class Party(BaseModel):
audit_comment = models.TextField(null=True, blank=True)
def __str__(self):
return f'{self.mediator.full_name} {self.delivery_date}'
return str(self.number)
def save(self, *args, **kwargs):
if not self.pk:
last_party = Party.objects.order_by('number').last()
if last_party:
self.number = last_party.number + 1
else:
self.number = 1
return super().save(*args, **kwargs)
class Meta:
verbose_name = 'Partiya'
verbose_name_plural = 'Partiyalar'
class PartyAmount(BaseModel):
party = models.OneToOneField(Party, on_delete=models.CASCADE, related_name='party_amount')
total_price = models.PositiveBigIntegerField()
cost_amount = models.PositiveBigIntegerField(default=0)
calculated_amount = models.PositiveBigIntegerField(default=0)
paid_amount = models.PositiveBigIntegerField(default=0)
payment_amount = models.BigIntegerField(default=0)
def __str__(self):
return f'{self.party} amount'
class Meta:
verbose_name = 'Partiya Summasi'
verbose_name_plural = 'Partiya summalari'