From 5b33765a8c155fa050f4c0406b56a3b72f16b479 Mon Sep 17 00:00:00 2001 From: "hello@openetech.com" Date: Mon, 21 Oct 2019 18:54:08 +0530 Subject: [PATCH] discount handling --- .../import_supplier_invoice.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/erpnext/regional/doctype/import_supplier_invoice/import_supplier_invoice.py b/erpnext/regional/doctype/import_supplier_invoice/import_supplier_invoice.py index dc580ad24b7..293d6c908e3 100644 --- a/erpnext/regional/doctype/import_supplier_invoice/import_supplier_invoice.py +++ b/erpnext/regional/doctype/import_supplier_invoice/import_supplier_invoice.py @@ -77,6 +77,8 @@ class ImportSupplierInvoice(Document): pin_code = line.Sede.CAP.text country = get_country(line.Sede.Nazione.text) + total_discount = 0 + for line in file_content.find_all("DettaglioLinee"): if line.find("PrezzoUnitario") and line.find("PrezzoTotale"): unit_rate = float(line.PrezzoUnitario.text) or float(0) @@ -121,6 +123,11 @@ class ImportSupplierInvoice(Document): "tax_rate": tax_rate }) + for disc_line in line.find_all("ScontoMaggiorazione"): + if disc_line.find("Percentuale"): + discount = float(disc_line.Percentuale.text) or float(0) + total_discount += float((discount / 100) * (rate * qty)) + for line in file_content.find_all("DatiRiepilogo"): if line.find("AliquotaIVA"): if line.find("EsigibilitaIVA"): @@ -165,6 +172,7 @@ class ImportSupplierInvoice(Document): bill_date = bill_date, is_return = return_invoice, destination_code = destination_code, + total_discount = total_discount, items = items, taxes = taxes, terms = terms, @@ -310,6 +318,12 @@ def create_purchase_invoice(**args): try: pi.insert(ignore_permissions=True) + + if args.total_discount > 0: + pi.apply_discount_on = "Grand Total" + pi.discount_amount = args.total_discount + pi.save() + calc_total = 0 adj = 0 for term in args.terms: