changeset 49dddadfe811 in modules/sale_subscription:default
details: 
https://hg.tryton.org/modules/sale_subscription?cmd=changeset&node=49dddadfe811
description:
        Use on_change_invoice and on_change_product to create invoice line

        issue10571
        review358391002
diffstat:

 subscription.py |  23 +++--------------------
 1 files changed, 3 insertions(+), 20 deletions(-)

diffs (49 lines):

diff -r be8e3df5e934 -r 49dddadfe811 subscription.py
--- a/subscription.py   Sun Jul 04 17:54:48 2021 +0200
+++ b/subscription.py   Fri Aug 06 09:43:58 2021 +0200
@@ -406,8 +406,6 @@
         all_invoice_lines = []
         for subscription, invoice in invoices.items():
             invoice_lines, _ = lines[subscription]
-            for line in invoice_lines:
-                line.invoice = invoice
             all_invoice_lines.extend(invoice_lines)
         InvoiceLine.save(all_invoice_lines)
 
@@ -928,33 +926,18 @@
                 consumptions, key=cls._group_invoice_key):
             sub_consumptions = list(sub_consumptions)
             line = InvoiceLine(**dict(key))
-            line.invoice_type = 'out'
+            line.invoice = invoice
+            line.on_change_invoice()
             line.type = 'line'
             line.quantity = sum(c.quantity for c in sub_consumptions)
+            line.on_change_product()
 
-            line.account = line.product.account_revenue_used
             if not line.account:
                 raise InvoiceError(
                     gettext('sale_subscription'
                         '.msg_consumption_invoice_missing_account_revenue',
                         product=line.product.rec_name))
 
-            taxes = []
-            pattern = line._get_tax_rule_pattern()
-            party = invoice.party
-            for tax in line.product.customer_taxes_used:
-                if party.customer_tax_rule:
-                    tax_ids = party.customer_tax_rule.apply(tax, pattern)
-                    if tax_ids:
-                        taxes.extend(tax_ids)
-                    continue
-                taxes.append(tax.id)
-            if party.customer_tax_rule:
-                tax_ids = party.customer_tax_rule.apply(None, pattern)
-                if tax_ids:
-                    taxes.extend(tax_ids)
-            line.taxes = taxes
-
             lines.append(line)
             grouped_consumptions.append(sub_consumptions)
         return lines, grouped_consumptions

Reply via email to