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

54 lines
1.4 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}'