changeset 977acca1bca7 in modules/sale_shipment_cost:default
details:
https://hg.tryton.org/modules/sale_shipment_cost?cmd=changeset&node=977acca1bca7
description:
Use on_change_invoice and on_change_product to create invoice line
issue10571
review358391002
diffstat:
stock.py | 33 +++++----------------------------
1 files changed, 5 insertions(+), 28 deletions(-)
diffs (53 lines):
diff -r 5545d514d35f -r 977acca1bca7 stock.py
--- a/stock.py Sun Jul 04 17:54:48 2021 +0200
+++ b/stock.py Fri Aug 06 09:43:58 2021 +0200
@@ -106,18 +106,11 @@
if not self.cost_sale_used:
return
- invoice_line = InvoiceLine()
product = self.carrier.carrier_product
- invoice_line.type = 'line'
- invoice_line.product = product
- party = invoice.party
- party_context = {}
- if party.lang:
- party_context['language'] = party.lang.code
- with Transaction().set_context(party_context):
- invoice_line.description = Product(product.id).rec_name
-
+ invoice_line = InvoiceLine(invoice=invoice)
+ invoice_line.on_change_invoice()
+ invoice_line.type = 'line'
invoice_line.quantity = 1 # XXX
invoice_line.unit = product.sale_uom.id
cost = self.cost_sale_used
@@ -127,25 +120,9 @@
self.cost_sale_currency_used, cost,
invoice.currency, round=False)
invoice_line.unit_price = round_price(cost)
- invoice_line.currency = invoice.currency
- invoice_line.company = invoice.company
+ invoice_line.product = product
+ invoice_line.on_change_product()
- taxes = []
- pattern = self._get_cost_tax_rule_pattern()
- for tax in 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)
- invoice_line.taxes = taxes
-
- invoice_line.account = product.account_revenue_used
if not invoice_line.account:
raise InvoiceShipmentCostError(
gettext('sale_shipment_cost'