|
|
@@ -100,24 +100,30 @@ class Expense(models.Model):
|
|
|
""" ordering = ("name", "date", "amount") # Le tri par défaut dans les listes """
|
|
|
|
|
|
|
|
|
-class MultiplePaymentExepense(LoneExpense):
|
|
|
+class MultiplePaymentExepense(RawExpense, MetaExpense):
|
|
|
payments = models.ManyToManyField(
|
|
|
RawExpense, related_name="multiple_payment_expense"
|
|
|
)
|
|
|
number_of_payment = models.PositiveIntegerField()
|
|
|
|
|
|
- def set_payments(self, payment):
|
|
|
- payment.date = self.date
|
|
|
- payment.name = self.name + " 1st payment"
|
|
|
-
|
|
|
+ def set_payments(self, first_payment_amout):
|
|
|
+ print(f"set payment 0 {first_payment_amout}")
|
|
|
+ payment = RawExpense(
|
|
|
+ date=self.date, name=self.name + " 1 payment", amount=first_payment_amout
|
|
|
+ )
|
|
|
+ self.save()
|
|
|
payment.save()
|
|
|
+ print(f"set payment 1 {payment.amount}")
|
|
|
|
|
|
self.payments.add(payment)
|
|
|
+ print("set payment 2")
|
|
|
+
|
|
|
rest_to_pay = (self.amount - payment.amount) / (self.number_of_payment - 1)
|
|
|
for i in range(1, self.number_of_payment):
|
|
|
+ print(i)
|
|
|
date = self.date + relativedelta(months=i)
|
|
|
payment = RawExpense(
|
|
|
- name=f"{self.name} {i} payment", date=date, amount=rest_to_pay
|
|
|
+ name=f"{self.name} {i+1} payment", date=date, amount=rest_to_pay
|
|
|
)
|
|
|
payment.save()
|
|
|
self.payments.add(payment)
|