Browse Source

Updated expense model

master
kj1352 3 years ago
parent
commit
231e792ff6
2 changed files with 6 additions and 30 deletions
  1. +1
    -25
      employee/models.py
  2. +5
    -5
      expense/models.py

+ 1
- 25
employee/models.py View File

@@ -12,32 +12,8 @@ class Employee(models.Model):
start_date = models.DateField()
end_date = models.DateField(null=True, blank=True)
projects = models.ManyToManyField(Project)
perk_per_month = models.DecimalField(max_digits=15, decimal_places=2)

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)

+ 5
- 5
expense/models.py View File

@@ -22,9 +22,9 @@ class Category(models.Model):


class Expense(models.Model):
PAYMENT_MODE = (
("REIMBURSE", "REIMBURSE"),
("PERK", "PERK")
PAYMENT_METHODS = (
("RMB", "Reimburse"),
("PER", "Perk")
)
title = models.CharField(max_length=50)
category = models.ForeignKey(Category, on_delete=models.CASCADE)
@@ -32,7 +32,7 @@ class Expense(models.Model):
date_of_creation = models.DateField()
team_member = models.ForeignKey(Employee, on_delete=models.CASCADE)
company_bank_account = models.ForeignKey(CompanyBankAccount, on_delete=models.CASCADE)
repayment_mode = models.CharField(max_length=10, choices=PAYMENT_MODE, default="REIMBURSE")
repayment_mode = models.CharField(max_length=10, choices=PAYMENT_METHODS, default=PAYMENT_METHODS[0][0])

@property
def expense_total(self):
@@ -47,7 +47,7 @@ class Item(models.Model):
name = models.CharField(max_length=100)
rate = models.DecimalField(max_digits=15, decimal_places=2)
quantity = models.IntegerField()
expense = models.ForeignKey(Expense, on_delete=models.CASCADE)
expense = models.ForeignKey(Expense, on_delete=models.CASCADE, related_name='items')
attachment = models.ImageField(upload_to='expense_item')

@property