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

55 lines
1.4 KiB
Python
Raw Permalink Normal View History

2023-12-19 13:49:34 +01:00
from django.db import models
2023-12-19 14:39:59 +01:00
from django.utils.translation import gettext_lazy as _
class Subject(models.Model):
2024-01-29 21:52:57 +01:00
class Meta:
2024-02-03 22:07:20 +01:00
verbose_name = _('Subject')
verbose_name_plural = _('Subjects')
2024-01-29 21:52:57 +01:00
2024-02-03 22:07:20 +01:00
id = models.CharField(_('CIN'), max_length=8, primary_key=True)
2024-08-16 22:12:49 +02:00
vat_id = models.CharField(
2025-03-03 21:52:20 +01:00
_('VAT ID'),
max_length=12,
null=True,
blank=True,
2024-08-16 22:12:49 +02:00
)
2024-08-16 22:12:49 +02:00
def get_latest_data(self):
2025-03-03 21:52:20 +01:00
return (
self.subject_data.filter(subject=self)
.order_by(
'-created_date',
)
.first()
)
2024-08-16 22:12:49 +02:00
def __str__(self):
return f'{self.id} - {self.get_latest_data().name}'
2024-08-16 22:12:49 +02:00
class SubjectData(models.Model):
class Meta:
verbose_name = _('Subject Data')
verbose_name_plural = _('Subject Datas')
2024-08-16 22:12:49 +02:00
subject = models.ForeignKey(
2025-03-03 21:52:20 +01:00
Subject,
on_delete=models.CASCADE,
related_name='subject_data',
)
2024-08-16 22:12:49 +02:00
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(
2025-03-03 21:52:20 +01:00
_('City part'),
max_length=64,
null=True,
blank=True,
2024-08-16 22:12:49 +02:00
)
created_date = models.DateTimeField(_('Created date'), auto_now_add=True)
def __str__(self):
2024-08-16 22:12:49 +02:00
return f'{self.subject.id} - {self.name} - {self.created_date}'