# expense/models.py
from django.db import models
from backend.core.models import TimeStampedModel
from .managers import ExpenseManager, ReceiptManager
class Financial(TimeStampedModel):
description = models.CharField('descrição', max_length=300)
due_date = models.DateField('data de vencimento', null=True, blank=True)
value = models.DecimalField('valor', max_digits=7, decimal_places=2)
paid = models.BooleanField('pago?', default=False)
# paid_to = models.ForeignKey()
class Meta:
ordering = ('-pk',)
def __str__(self):
return f'{self.description}'
class Expense(Financial):
objects = ExpenseManager()
class Meta:
proxy = True
verbose_name = 'Despesa'
verbose_name_plural = 'Despesas'
def save(self, *args, **kwargs):
''' Despesa Ă© NEGATIVO. '''
self.value = -1 * abs(self.value)
super(Expense, self).save(*args, **kwargs)
class Receipt(Financial):
objects = ReceiptManager()
class Meta:
proxy = True
verbose_name = 'Recebimento'
verbose_name_plural = 'Recebimentos'
def save(self, *args, **kwargs):
''' Recebimento Ă© POSITIVO. '''
self.value = abs(self.value)
super(Receipt, self).save(*args, **kwargs)