From b7b7f0062deec675e2d4d6e5c288eb706ec3e096 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Thu, 28 Apr 2016 17:31:27 +0530 Subject: [PATCH] [report][fix] Consider taxes only the tax contributed in invoice total --- .../purchase_register/purchase_register.py | 36 ++++++++++++------- 1 file changed, 23 insertions(+), 13 deletions(-) diff --git a/erpnext/accounts/report/purchase_register/purchase_register.py b/erpnext/accounts/report/purchase_register/purchase_register.py index 7934bf25cd..53cb7af663 100644 --- a/erpnext/accounts/report/purchase_register/purchase_register.py +++ b/erpnext/accounts/report/purchase_register/purchase_register.py @@ -119,16 +119,22 @@ def get_conditions(filters): def get_invoices(filters): conditions = get_conditions(filters) - return frappe.db.sql("""select name, posting_date, credit_to, supplier, supplier_name, - bill_no, bill_date, remarks, base_net_total, base_grand_total, outstanding_amount - from `tabPurchase Invoice` where docstatus = 1 %s + return frappe.db.sql(""" + select + name, posting_date, credit_to, supplier, supplier_name, + bill_no, bill_date, remarks, base_net_total, base_grand_total, outstanding_amount + from `tabPurchase Invoice` + where docstatus = 1 %s order by posting_date desc, name desc""" % conditions, filters, as_dict=1) def get_invoice_expense_map(invoice_list): - expense_details = frappe.db.sql("""select parent, expense_account, sum(base_net_amount) as amount - from `tabPurchase Invoice Item` where parent in (%s) group by parent, expense_account""" % - ', '.join(['%s']*len(invoice_list)), tuple([inv.name for inv in invoice_list]), as_dict=1) + expense_details = frappe.db.sql(""" + select parent, expense_account, sum(base_net_amount) as amount + from `tabPurchase Invoice Item` + where parent in (%s) + group by parent, expense_account + """ % ', '.join(['%s']*len(invoice_list)), tuple([inv.name for inv in invoice_list]), as_dict=1) invoice_expense_map = {} for d in expense_details: @@ -138,9 +144,12 @@ def get_invoice_expense_map(invoice_list): return invoice_expense_map def get_invoice_tax_map(invoice_list, invoice_expense_map, expense_accounts): - tax_details = frappe.db.sql("""select parent, account_head, sum(base_tax_amount_after_discount_amount) as tax_amount - from `tabPurchase Taxes and Charges` where parent in (%s) group by parent, account_head""" % - ', '.join(['%s']*len(invoice_list)), tuple([inv.name for inv in invoice_list]), as_dict=1) + tax_details = frappe.db.sql(""" + select parent, account_head, sum(base_tax_amount_after_discount_amount) as tax_amount + from `tabPurchase Taxes and Charges` + where parent in (%s) and category in ('Total', 'Valuation and Total') + group by parent, account_head + """ % ', '.join(['%s']*len(invoice_list)), tuple([inv.name for inv in invoice_list]), as_dict=1) invoice_tax_map = {} for d in tax_details: @@ -156,10 +165,11 @@ def get_invoice_tax_map(invoice_list, invoice_expense_map, expense_accounts): return invoice_expense_map, invoice_tax_map def get_invoice_po_pr_map(invoice_list): - pi_items = frappe.db.sql("""select parent, purchase_order, purchase_receipt, po_detail, - project from `tabPurchase Invoice Item` where parent in (%s) - and (ifnull(purchase_order, '') != '' or ifnull(purchase_receipt, '') != '')""" % - ', '.join(['%s']*len(invoice_list)), tuple([inv.name for inv in invoice_list]), as_dict=1) + pi_items = frappe.db.sql(""" + select parent, purchase_order, purchase_receipt, po_detail, project + from `tabPurchase Invoice Item` + where parent in (%s) and (ifnull(purchase_order, '') != '' or ifnull(purchase_receipt, '') != '') + """ % ', '.join(['%s']*len(invoice_list)), tuple([inv.name for inv in invoice_list]), as_dict=1) invoice_po_pr_map = {} for d in pi_items: