Django backend for WorkX project
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。
このリポジトリはアーカイブされています。 ファイルの閲覧とクローンは可能ですが、プッシュや、課題・プルリクエストのオープンはできません。

37 行
1.0 KiB

  1. from django.db import models
  2. from project.models import Project
  3. class Invoice(models.Model):
  4. project = models.ForeignKey(Project, on_delete=models.CASCADE)
  5. invoice_id = models.CharField(max_length=15)
  6. raised_date = models.DateField()
  7. due_date = models.DateField()
  8. paid_date = models.DateField(null=True, blank=True)
  9. is_archived = models.BooleanField(default=False)
  10. @property
  11. def invoice_total(self):
  12. items = Item.objects.filter(invoice=self.pk)
  13. total = 0
  14. for item in items:
  15. total += item.item_total
  16. return total
  17. def __str__(self):
  18. return self.invoice_id
  19. class Item(models.Model):
  20. name = models.TextField(blank=False, null=False)
  21. amount = models.DecimalField(max_digits=15, decimal_places=2)
  22. quantity = models.IntegerField()
  23. invoice = models.ForeignKey(Invoice, on_delete=models.CASCADE)
  24. @property
  25. def item_total(self):
  26. return self.amount * self.quantity
  27. def __str__(self):
  28. return self.name