changeset 11dbc00d5025 in modules/account_invoice:6.2
details: 
https://hg.tryton.org/modules/account_invoice?cmd=changeset&node=11dbc00d5025
description:
        Test if invoice move exist before cancelling it

        issue11335
        review368231020
        (grafted from db9871bfc12fa374ffe84f482c08182e9ff8596e)
diffstat:

 invoice.py |  18 ++++++++++--------
 1 files changed, 10 insertions(+), 8 deletions(-)

diffs (35 lines):

diff -r d2f64e9fb493 -r 11dbc00d5025 invoice.py
--- a/invoice.py        Sun Mar 06 13:43:50 2022 +0100
+++ b/invoice.py        Wed Apr 06 13:08:02 2022 +0200
@@ -1620,7 +1620,7 @@
         to_save = []
         for invoice in invoices:
             if invoice.move or invoice.number:
-                if invoice.move.state == 'draft':
+                if invoice.move and invoice.move.state == 'draft':
                     delete_moves.append(invoice.move)
                     delete_moves.extend(invoice.additional_moves)
                 elif not invoice.cancel_move:
@@ -1630,13 +1630,15 @@
                             gettext('account_invoice'
                                 '.msg_invoice_customer_cancel_move',
                                 invoice=invoice.rec_name))
-                    invoice.cancel_move = invoice.move.cancel()
-                    additional_cancel_moves = [
-                        m.cancel() for m in invoice.additional_moves]
-                    invoice.additional_moves += tuple(additional_cancel_moves)
-                    to_save.append(invoice)
-                    cancel_moves.append(invoice.cancel_move)
-                    cancel_moves.extend(additional_cancel_moves)
+                    if invoice.move:
+                        invoice.cancel_move = invoice.move.cancel()
+                        additional_cancel_moves = [
+                            m.cancel() for m in invoice.additional_moves]
+                        invoice.additional_moves += tuple(
+                            additional_cancel_moves)
+                        to_save.append(invoice)
+                        cancel_moves.append(invoice.cancel_move)
+                        cancel_moves.extend(additional_cancel_moves)
         if cancel_moves:
             Move.save(cancel_moves)
         cls.save(to_save)

Reply via email to