fix: add editable work order travel expenses
Introduce a dedicated travel-expenses table for work orders so Broj sati, Količina dnevnica, and Iznos dnevnice can be reviewed and edited before PDF generation. The PDF now uses the stored travel-expenses values, with default HR rate and cache invalidation on updates.
This commit is contained in:
@@ -417,6 +417,63 @@ class WorkOrderAdditionalCostsTable(BaseModel):
|
||||
return f"Additional costs table for work order {self.work_order_id}"
|
||||
|
||||
|
||||
class WorkOrderTravelExpensesTable(BaseModel):
|
||||
RATE_CHOICES = [
|
||||
('HR', _("Hrvatska")),
|
||||
('BIH', _("BiH")),
|
||||
('SI', _("Slovenija")),
|
||||
('CG', _("Crna Gora")),
|
||||
]
|
||||
|
||||
DEFAULT_RATE_COUNTRY = 'HR'
|
||||
DEFAULT_RATE_AMOUNT = Decimal('30.00')
|
||||
|
||||
work_order = models.OneToOneField(
|
||||
WorkOrder,
|
||||
on_delete=models.CASCADE,
|
||||
related_name='travel_expenses_table',
|
||||
verbose_name=_("Putni nalog"),
|
||||
)
|
||||
broj_sati = models.DecimalField(
|
||||
max_digits=10,
|
||||
decimal_places=2,
|
||||
default=Decimal('0.00'),
|
||||
verbose_name=_("Broj sati"),
|
||||
)
|
||||
kolicina_dnevnica = models.DecimalField(
|
||||
max_digits=10,
|
||||
decimal_places=2,
|
||||
default=Decimal('0.00'),
|
||||
verbose_name=_("Količina dnevnica"),
|
||||
)
|
||||
iznos_dnevnica = models.DecimalField(
|
||||
max_digits=10,
|
||||
decimal_places=2,
|
||||
default=DEFAULT_RATE_AMOUNT,
|
||||
verbose_name=_("Iznos dnevnice"),
|
||||
)
|
||||
daily_rate_country = models.CharField(
|
||||
max_length=8,
|
||||
choices=RATE_CHOICES,
|
||||
default=DEFAULT_RATE_COUNTRY,
|
||||
verbose_name=_("Država dnevnice"),
|
||||
)
|
||||
total_for_payout = models.DecimalField(
|
||||
max_digits=12,
|
||||
decimal_places=2,
|
||||
default=Decimal('0.00'),
|
||||
verbose_name=_("Ukupan iznos"),
|
||||
)
|
||||
|
||||
class Meta:
|
||||
ordering = ['-updated_at']
|
||||
verbose_name = _("Tablica obračuna putnih troškova")
|
||||
verbose_name_plural = _("Tablice obračuna putnih troškova")
|
||||
|
||||
def __str__(self):
|
||||
return f"Travel expenses table for work order {self.work_order_id}"
|
||||
|
||||
|
||||
class WorkOrderPhoto(BaseModel):
|
||||
work_order = models.ForeignKey(
|
||||
WorkOrder,
|
||||
|
||||
Reference in New Issue
Block a user