|
12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- from django.contrib.auth.models import User
- from django.db import models
- from phonenumber_field.modelfields import PhoneNumberField
- from project.models import Project
-
-
- class Employee(models.Model):
- user = models.OneToOneField(User, on_delete=models.CASCADE)
- employee_id = models.CharField(max_length=15)
- phone = PhoneNumberField()
- salary = models.DecimalField(max_digits=15, decimal_places=2)
- start_date = models.DateField()
- end_date = models.DateField(null=True, blank=True)
- projects = models.ManyToManyField(Project)
-
- def __str__(self):
- return self.employee_id
-
-
- class Perk(models.Model):
- employee = models.OneToOneField(Employee, on_delete=models.CASCADE)
- perk_per_month = models.DecimalField(max_digits=15, decimal_places=2)
-
- @property
- def total_perk(self):
- perks = self.perk_transactions.all()
- total = 0
- for perk in perks:
- if perk.type == 'INCOME':
- total += perk.amount
- else:
- total -= perk.amount
- return total
-
-
- class PerkTransaction(models.Model):
- TRANSACTION_TYPE = (
- ("INCOME", "INCOME"),
- ("EXPENSE", "EXPENSE")
- )
- type = models.CharField(choices=TRANSACTION_TYPE, default="INCOME", max_length=10)
- amount = models.DecimalField(max_digits=15, decimal_places=2)
- perk = models.ForeignKey(Perk, on_delete=models.CASCADE)
|