trytond-patches/issue12319.diff

41 lines
1.6 KiB
Diff

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):