Django backend for WorkX project
Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.
Repozitorijs ir arhivēts. Tam var aplūkot failus un to var klonēt, bet nevar iesūtīt jaunas izmaiņas, kā arī atvērt jaunas problēmas/izmaiņu pieprasījumus.

pirms 3 gadiem
1234567891011121314151617181920212223242526272829303132333435363738
  1. from django.db import models
  2. from project.models import Project
  3. from client.models import Client, Address, TaxType
  4. class Invoice(models.Model):
  5. title = models.CharField(max_length=30)
  6. project = models.ForeignKey(Project, on_delete=models.CASCADE)
  7. invoice_id = models.CharField(max_length=15)
  8. raised_date = models.DateField()
  9. due_date = models.DateField()
  10. paid_date = models.DateField(null=True, blank=True)
  11. is_archived = models.BooleanField(default=False)
  12. @property
  13. def invoice_total_with_tax(self):
  14. items = self.items.all()
  15. total = 0
  16. for item in items:
  17. total += item.item_total
  18. return total + (total * self.project.client.address.tax_type.percentage / 100)
  19. def __str__(self):
  20. return self.invoice_id
  21. class Item(models.Model):
  22. name = models.TextField(blank=False, null=False)
  23. amount = models.DecimalField(max_digits=15, decimal_places=2)
  24. quantity = models.IntegerField()
  25. invoice = models.ForeignKey(Invoice, on_delete=models.CASCADE, related_name='items')
  26. @property
  27. def item_total(self):
  28. return self.amount * self.quantity
  29. def __str__(self):
  30. return self.name