This repository has been archived on 2025-03-03. You can view files and clone it, but cannot push or open issues or pull requests.
facturio/subjects/models.py

42 lines
1.3 KiB
Python

from django.db import models
from django.utils.translation import gettext_lazy as _
class Subject(models.Model):
class Meta:
verbose_name = _('Subject')
verbose_name_plural = _('Subjects')
id = models.CharField(_('CIN'), max_length=8, primary_key=True)
vat_id = models.CharField(
_('VAT ID'), max_length=12, null=True, blank=True,
)
def get_latest_data(self):
return self.subject_data.filter(subject=self).order_by(
'-created_date',
).first()
def __str__(self):
return f'{self.id} - {self.get_latest_data().name}'
class SubjectData(models.Model):
class Meta:
verbose_name = _('Subject Data')
verbose_name_plural = _('Subject Datas')
subject = models.ForeignKey(
Subject, on_delete=models.CASCADE, related_name='subject_data',
)
name = models.CharField(_('Name'), max_length=128)
street = models.CharField(_('Street'), max_length=64)
zip_code = models.CharField(_('Zip Code'), max_length=6)
city = models.CharField(_('City'), max_length=64)
city_part = models.CharField(
_('City part'), max_length=64, null=True, blank=True,
)
created_date = models.DateTimeField(_('Created date'), auto_now_add=True)
def __str__(self):
return f'{self.subject.id} - {self.name} - {self.created_date}'