This commit is contained in:
2026-02-16 15:46:43 +01:00
parent 3f54cbef6a
commit bb313d29bf
2 changed files with 8 additions and 5 deletions

View File

@@ -1286,9 +1286,12 @@ class Invoice(Workflow, ModelSQL, ModelView, TaxableMixin, InvoiceReportMixin):
remainder = sum(l.debit - l.credit for l in move_lines)
if self.payment_term:
payment_date = self.payment_term_date or self.invoice_date or today
purchase_line = int(str(self.lines[0].origin).split(",")[1]) if self.lines[0].origin else None
term_lines = self.payment_term.compute(
self.total_amount, self.currency, payment_date, purchase_line)
model = str(self.lines[0].origin).split(",")[0] if self.lines[0].origin else None
if model:
Line = Pool().get(model)
line = Line(int(str(self.lines[0].origin).split(",")[1]))
term_lines = self.payment_term.compute(
self.total_amount, self.currency, payment_date, line)
else:
term_lines = [(self.payment_term_date or today, self.total_amount)]
past_payment_term_dates = []

View File

@@ -48,7 +48,7 @@ class PaymentTerm(DeactivableMixin, ModelSQL, ModelView):
'.msg_payment_term_missing_last_remainder',
payment_term=term.rec_name))
def compute(self, amount, currency, date, purchase_line = None):
def compute(self, amount, currency, date, line = None):
"""Calculate payment terms and return a list of tuples
with (date, amount) for each payment term line.
@@ -61,7 +61,7 @@ class PaymentTerm(DeactivableMixin, ModelSQL, ModelView):
remainder = amount
for line in self.lines:
value = line.get_value(remainder, amount, currency)
value_date = line.get_date(date, purchase_line)
value_date = line.get_date(date, line)
if value is None or not value_date:
continue
if ((remainder - value) * sign) < Decimal(0):