changeset ca52edd2cc02 in modules/account_invoice:6.2
details: 
https://hg.tryton.org/modules/account_invoice?cmd=changeset&node=ca52edd2cc02
description:
        Warn all past payment terms at the same time

        issue11058
        review376221002
        (grafted from 02be5467be12c4fabc75e31f3977faabe8155259)
diffstat:

 invoice.py |  22 ++++++++++++----------
 1 files changed, 12 insertions(+), 10 deletions(-)

diffs (37 lines):

diff -r 810106ec8a65 -r ca52edd2cc02 invoice.py
--- a/invoice.py        Wed Feb 02 23:35:20 2022 +0100
+++ b/invoice.py        Tue Jan 25 23:30:35 2022 +0100
@@ -1019,21 +1019,23 @@
             remainder_total_currency = self.total_amount.copy_sign(total)
         else:
             remainder_total_currency = 0
+        past_payment_term_dates = []
         for date, amount in term_lines:
-            if self.type == 'out' and date < today:
-                lang = Lang.get()
-                warning_key = Warning.format('invoice_payment_term', [self])
-                if Warning.check(warning_key):
-                    raise InvoicePaymentTermDateWarning(warning_key,
-                        gettext('account_invoice'
-                            '.msg_invoice_payment_term_date_past',
-                            invoice=self.rec_name,
-                            date=lang.strftime(date)))
-
             line = self._get_move_line(date, amount)
             if line.amount_second_currency:
                 remainder_total_currency += line.amount_second_currency
             move_lines.append(line)
+            if self.type == 'out' and date < today:
+                past_payment_term_dates.append(date)
+        if any(past_payment_term_dates):
+            lang = Lang.get()
+            warning_key = Warning.format('invoice_payment_term', [self])
+            if Warning.check(warning_key):
+                raise InvoicePaymentTermDateWarning(warning_key,
+                    gettext('account_invoice'
+                        '.msg_invoice_payment_term_date_past',
+                        invoice=self.rec_name,
+                        date=lang.strftime(min(past_payment_term_dates))))
         if not self.currency.is_zero(remainder_total_currency):
             move_lines[-1].amount_second_currency -= \
                 remainder_total_currency

Reply via email to