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.

44 rindas
1.4 KiB

  1. from django.contrib.auth.models import User
  2. from django.db import models
  3. from phonenumber_field.modelfields import PhoneNumberField
  4. from project.models import Project
  5. class Employee(models.Model):
  6. user = models.OneToOneField(User, on_delete=models.CASCADE)
  7. employee_id = models.CharField(max_length=15)
  8. phone = PhoneNumberField()
  9. salary = models.DecimalField(max_digits=15, decimal_places=2)
  10. start_date = models.DateField()
  11. end_date = models.DateField(null=True, blank=True)
  12. projects = models.ManyToManyField(Project)
  13. def __str__(self):
  14. return self.employee_id
  15. class Perk(models.Model):
  16. employee = models.OneToOneField(Employee, on_delete=models.CASCADE)
  17. perk_per_month = models.DecimalField(max_digits=15, decimal_places=2)
  18. @property
  19. def total_perk(self):
  20. perks = self.perk_transactions.all()
  21. total = 0
  22. for perk in perks:
  23. if perk.type == 'INCOME':
  24. total += perk.amount
  25. else:
  26. total -= perk.amount
  27. return total
  28. class PerkTransaction(models.Model):
  29. TRANSACTION_TYPE = (
  30. ("INCOME", "INCOME"),
  31. ("EXPENSE", "EXPENSE")
  32. )
  33. type = models.CharField(choices=TRANSACTION_TYPE, default="INCOME", max_length=10)
  34. amount = models.DecimalField(max_digits=15, decimal_places=2)
  35. perk = models.ForeignKey(Perk, on_delete=models.CASCADE)