diff --git a/tryton/modules/sale_advance_payment/sale.py b/tryton/modules/sale_advance_payment/sale.py index f87719ce9a..540dcaba45 100644 --- a/tryton/modules/sale_advance_payment/sale.py +++ b/tryton/modules/sale_advance_payment/sale.py @@ -372,19 +372,22 @@ class Sale(metaclass=PoolMeta): ('invoice.state', '=', 'paid'), ]) for advance_line in advance_lines: - line = InvoiceLine( - invoice=invoice, - company=invoice.company, - type=advance_line.type, - quantity=-advance_line.quantity, - account=advance_line.account, - unit_price=advance_line.amount, - description=advance_line.description, - origin=advance_line, - taxes=advance_line.taxes, - ) - recall_lines.append(line) - + already_used = InvoiceLine.search([ + ('origin', '=', str(advance_line)), + ]) + if not already_used: + line = InvoiceLine( + invoice=invoice, + company=invoice.company, + type=advance_line.type, + quantity=-advance_line.quantity, + account=advance_line.account, + unit_price=advance_line.amount, + description=advance_line.description, + origin=advance_line, + taxes=advance_line.taxes, + ) + recall_lines.append(line) return recall_lines def create_invoice(self):