from django.db.models import Model, ForeignKey, CASCADE, PositiveIntegerField, TextField, BooleanField, DateField, SET_NULL, PROTECT from core.fields.base import LongCharField from core.fields.numbers import CostField from core.models.profiles import ClientProfile from core.models.local import Currency from core.models.brands import Brand class Invoice(Model): client = ForeignKey(ClientProfile, on_delete=PROTECT) brand = ForeignKey(Brand, on_delete=PROTECT) number = LongCharField() created = DateField() due = DateField() payment_method = LongCharField() currency = ForeignKey(Currency, on_delete=PROTECT) class InvoiceItem(Model): from core.models.services import Service from core.models.billable import Billable invoice = ForeignKey(Invoice, on_delete=CASCADE) sort = PositiveIntegerField() name = LongCharField() description = TextField(blank=True, null=True) price = CostField() discount = CostField() taxable = BooleanField() service = ForeignKey(Service, on_delete=SET_NULL, null=True) billable = ForeignKey(Billable, on_delete=SET_NULL, null=True)