|
|
@@ -21,18 +21,24 @@ class Category(models.Model): |
|
|
|
return self.name |
|
|
|
|
|
|
|
|
|
|
|
class SubCategory(models.Model): |
|
|
|
name = models.CharField(max_length=30) |
|
|
|
parent_category = models.ForeignKey(Category, on_delete=models.CASCADE) |
|
|
|
|
|
|
|
def __str__(self): |
|
|
|
return self.name |
|
|
|
|
|
|
|
|
|
|
|
class Expense(models.Model): |
|
|
|
PAYMENT_METHODS = ( |
|
|
|
("RMB", "Reimburse"), |
|
|
|
("PER", "Perk") |
|
|
|
) |
|
|
|
title = models.CharField(max_length=50) |
|
|
|
category = models.ForeignKey(Category, on_delete=models.CASCADE) |
|
|
|
sub_category = models.ForeignKey(SubCategory, on_delete=models.CASCADE) |
|
|
|
expense_id = models.CharField(max_length=15) |
|
|
|
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_METHODS, default=PAYMENT_METHODS[0][0]) |
|
|
|
is_reimbursement = models.BooleanField(default=False) |
|
|
|
is_perk = models.BooleanField(default=False) |
|
|
|
is_approved = models.BooleanField(default=False) |
|
|
|
|
|
|
|
@property |
|
|
|
def expense_total(self): |
|
|
|