From bb313d29bf33c3ea77f66609f61b6e625bff624a Mon Sep 17 00:00:00 2001 From: laurentbarontini Date: Mon, 16 Feb 2026 15:46:43 +0100 Subject: [PATCH] 1602.26 --- modules/account_invoice/invoice.py | 9 ++++++--- modules/account_invoice/payment_term.py | 4 ++-- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/modules/account_invoice/invoice.py b/modules/account_invoice/invoice.py index 1d709cf..a6af844 100755 --- a/modules/account_invoice/invoice.py +++ b/modules/account_invoice/invoice.py @@ -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 = [] diff --git a/modules/account_invoice/payment_term.py b/modules/account_invoice/payment_term.py index a5ee538..558f666 100755 --- a/modules/account_invoice/payment_term.py +++ b/modules/account_invoice/payment_term.py @@ -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):