from django.db import models # Create your models here. from employee.models import Employee from common.models import BankDetails class Client(models.Model): name = models.CharField(max_length=100) # Other fields for client information def __str__(self): return self.name class Project(models.Model): name = models.CharField(max_length=100) # Other fields for project information def __str__(self): return self.name class Income(models.Model): TYPE_CHOICES = [ ('Invoice', 'Invoice'), ('Dividend', 'Dividend'), ] type = models.CharField(max_length=10, choices=TYPE_CHOICES) title = models.CharField(max_length=100) invoice_number = models.CharField(max_length=100) date = models.DateField() client = models.ForeignKey(Client, on_delete=models.CASCADE) project = models.ForeignKey(Project, on_delete=models.CASCADE) # Other fields specific to income def __str__(self): return self.title class Expense(models.Model): CATEGORY_CHOICES = [ ('Food', 'Food'), ('Fuel', 'Fuel'), ('Traveling', 'Traveling'), ('Gifts', 'Gifts'), # Other expense categories ] category = models.CharField(max_length=100, choices=CATEGORY_CHOICES) title = models.CharField(max_length=100) bill_number = models.CharField(max_length=100) date = models.DateField() employee = models.ForeignKey(Employee, on_delete=models.CASCADE) bank_account = models.ForeignKey(BankDetails, on_delete=models.CASCADE) reimbursement = models.BooleanField() # Other fields specific to expenses def __str__(self): return self.title class Reimbursement(models.Model): STATUS_CHOICES=[ ('Paid','Paid'), ('Due', 'Due'), ('Overdue', 'Overdue'), ] title = models.CharField(max_length=100) rate = models.DecimalField(max_digits=10, decimal_places=2) quantity = models.PositiveIntegerField() status = models.CharField(max_length=10, choices=STATUS_CHOICES) # Paid, Due, Overdue # Other fields specific to reimbursements def __str__(self): return self.title