add internal rentals with zero deposit

This commit is contained in:
2025-10-30 14:05:53 +01:00
parent 4a7076b120
commit 5d2a052c1e
3 changed files with 192 additions and 191 deletions

View File

@@ -42,7 +42,7 @@ class RentalAdmin(admin.ModelAdmin):
("date_start", "date_end"),
"reason",
"rentalitems",
"total_disposit",
("total_disposit", "intern"),
),
},
),
@@ -96,8 +96,10 @@ class RentalAdmin(admin.ModelAdmin):
@admin.display(description="Kaution (EUR)")
def total_disposit(self, obj):
total_disposit = 0
for elem in obj.rentalitems.all():
total_disposit += elem.deposit
if not obj.intern:
for elem in obj.rentalitems.all():
total_disposit += elem.deposit
return f"{total_disposit}"

View File

@@ -44,6 +44,7 @@ class Rental(models.Model):
)
organization = models.CharField(verbose_name="Organisation", max_length=128)
intern = models.BooleanField(verbose_name="Interner Verleih", default=False)
date_start = models.DateField(verbose_name="Abholdatum")
date_end = models.DateField(verbose_name="Rückgabedatum")

View File

@@ -30,20 +30,18 @@ def generate_rental_pdf(rental: Rental) -> bool:
total_deposit = 0
for i, item in enumerate(rental.rentalitems.all(), start=1):
total_deposit += item.deposit
if not rental.intern:
total_deposit += item.deposit
data.update(
{
f"Produkt Row{i}": item.name,
f"Menge Row{i}": "1",
f"Kaution Row{i}": item.deposit,
f"Kaution Row{i}": (str(item.deposit) if not rental.intern else "0"),
},
)
data.update(
{
"Gesamtkaution": total_deposit,
},
)
data.update({"Gesamtkaution": str(total_deposit)})
# Write data in pdf
pdf_path_str = finders.find("rental/Verleihformular.pdf")