您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
此仓库已存档。您可以查看文件和克隆,但不能推送或创建工单/合并请求。

77 行
2.1 KiB

  1. from django.db import models
  2. # Create your models here.
  3. from employee.models import Employee
  4. from common.models import BankDetails
  5. class Client(models.Model):
  6. name = models.CharField(max_length=100)
  7. # Other fields for client information
  8. def __str__(self):
  9. return self.name
  10. class Project(models.Model):
  11. name = models.CharField(max_length=100)
  12. # Other fields for project information
  13. def __str__(self):
  14. return self.name
  15. class Income(models.Model):
  16. TYPE_CHOICES = [
  17. ('Invoice', 'Invoice'),
  18. ('Dividend', 'Dividend'),
  19. ]
  20. type = models.CharField(max_length=10, choices=TYPE_CHOICES)
  21. title = models.CharField(max_length=100)
  22. invoice_number = models.CharField(max_length=100)
  23. date = models.DateField()
  24. client = models.ForeignKey(Client, on_delete=models.CASCADE)
  25. project = models.ForeignKey(Project, on_delete=models.CASCADE)
  26. # Other fields specific to income
  27. def __str__(self):
  28. return self.title
  29. class Expense(models.Model):
  30. CATEGORY_CHOICES = [
  31. ('Food', 'Food'),
  32. ('Fuel', 'Fuel'),
  33. ('Traveling', 'Traveling'),
  34. ('Gifts', 'Gifts'),
  35. # Other expense categories
  36. ]
  37. category = models.CharField(max_length=100, choices=CATEGORY_CHOICES)
  38. title = models.CharField(max_length=100)
  39. bill_number = models.CharField(max_length=100)
  40. date = models.DateField()
  41. employee = models.ForeignKey(Employee, on_delete=models.CASCADE)
  42. bank_account = models.ForeignKey(BankDetails, on_delete=models.CASCADE)
  43. reimbursement = models.BooleanField()
  44. # Other fields specific to expenses
  45. def __str__(self):
  46. return self.title
  47. class Reimbursement(models.Model):
  48. STATUS_CHOICES=[
  49. ('Paid','Paid'),
  50. ('Due', 'Due'),
  51. ('Overdue', 'Overdue'),
  52. ]
  53. title = models.CharField(max_length=100)
  54. rate = models.DecimalField(max_digits=10, decimal_places=2)
  55. quantity = models.PositiveIntegerField()
  56. status = models.CharField(max_length=10, choices=STATUS_CHOICES) # Paid, Due, Overdue
  57. # Other fields specific to reimbursements
  58. def __str__(self):
  59. return self.title