mirror of
https://github.com/NaN-tic/trytond-account_invoice_posted2draft.git
synced 2023-12-14 02:22:57 +01:00
13a65d8beb
* Change the way that the invoices are setted to draft. With the possibilty to enter a new law that not allow to remove any account move, the invoice is setted to draft creating a compesantion move and associateting it to the invoice throwe the additiona_move field. Task: #047268 * Fix some bugs and improve code reducing lines. Task: #047268 * Remove commented line not needed. Tasks: #047268 * Remove Warning definition not used. Tasks: #047268 * Fix some text. Task: 047268 --------- Co-authored-by: Bernat Brunet <bernat@nan-tic.com>
36 lines
1.3 KiB
Python
36 lines
1.3 KiB
Python
# This file is part account_invoice_posted2draft module for Tryton.
|
|
# The COPYRIGHT file at the top level of this repository contains
|
|
# the full copyright notices and license terms.
|
|
from trytond.pool import Pool, PoolMeta
|
|
from trytond.i18n import gettext
|
|
from trytond.exceptions import UserError
|
|
|
|
|
|
class Invoice(metaclass=PoolMeta):
|
|
__name__ = 'account.invoice'
|
|
|
|
@classmethod
|
|
def draft(cls, invoices):
|
|
pool = Pool()
|
|
Payment = pool.get('account.payment')
|
|
|
|
for invoice in invoices:
|
|
moves = []
|
|
if invoice.move:
|
|
moves.append(invoice.move)
|
|
if invoice.additional_moves:
|
|
moves.extend(invoice.additional_moves)
|
|
|
|
if moves:
|
|
lines = [l.id for m in moves for l in m.lines]
|
|
if lines:
|
|
payments = Payment.search([
|
|
('line', 'in', lines),
|
|
('state', '!=', 'failed'),
|
|
])
|
|
if payments:
|
|
raise UserError(gettext('account_invoice_posted2draft'
|
|
'.msg_invoice_in_payment',
|
|
invoice=invoice.rec_name,
|
|
payments=", ".join([p.id for p in payments])))
|
|
return super().draft(invoices)
|