From 1ff136828032fcd89468bc330506aced90c1d1f1 Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Mon, 10 Apr 2017 12:09:18 +0530 Subject: [PATCH] [fix] Vehicle expense report not working --- .../vehicle_expenses/vehicle_expenses.js | 12 ----- .../vehicle_expenses/vehicle_expenses.py | 48 +++++++++---------- 2 files changed, 24 insertions(+), 36 deletions(-) diff --git a/erpnext/hr/report/vehicle_expenses/vehicle_expenses.js b/erpnext/hr/report/vehicle_expenses/vehicle_expenses.js index 8a05c811ac7..486d2592272 100644 --- a/erpnext/hr/report/vehicle_expenses/vehicle_expenses.js +++ b/erpnext/hr/report/vehicle_expenses/vehicle_expenses.js @@ -22,18 +22,6 @@ frappe.require("assets/erpnext/js/financial_statements.js", function() { query_report.trigger_refresh(); }); } - }, - { - "fieldname": "from_date", - "label": __("From Date"), - "fieldtype": "Date", - "default": frappe.defaults.get_user_default("year_start_date"), - }, - { - "fieldname": "to_date", - "label": __("To Date"), - "fieldtype": "Date", - "default": frappe.defaults.get_user_default("year_end_date"), } ] } diff --git a/erpnext/hr/report/vehicle_expenses/vehicle_expenses.py b/erpnext/hr/report/vehicle_expenses/vehicle_expenses.py index a03b7f3e132..63e5f3c0a43 100644 --- a/erpnext/hr/report/vehicle_expenses/vehicle_expenses.py +++ b/erpnext/hr/report/vehicle_expenses/vehicle_expenses.py @@ -3,41 +3,41 @@ from __future__ import unicode_literals import frappe +import erpnext from frappe import _ from frappe.utils import flt,cstr from erpnext.accounts.report.financial_statements import get_period_list def execute(filters=None): - period_list = get_period_list(2016, 2016,"Monthly") - for period in period_list: - pass columns, data = [], [] - columns=get_columns() - data=get_log_data(filters) - chart=get_chart_data(data,period_list) + if filters.get('fiscal_year'): + company = erpnext.get_default_company() + period_list = get_period_list(filters.get('fiscal_year'), filters.get('fiscal_year'),"Monthly", company) + columns=get_columns() + data=get_log_data(filters) + chart=get_chart_data(data,period_list) return columns, data, None, chart - + def get_columns(): columns = [_("License") + ":Link/Vehicle:100", _("Make") + ":data:50", - _("Model") + ":data:50", _("Location") + ":data:100", - _("Log") + ":Link/Vehicle Log:100", _("Odometer") + ":Int:80", - _("Date") + ":Date:100", _("Fuel Qty") + ":Float:80", - _("Fuel Price") + ":Float:100",_("Service Expense") + ":Float:100" + _("Model") + ":data:50", _("Location") + ":data:100", + _("Log") + ":Link/Vehicle Log:100", _("Odometer") + ":Int:80", + _("Date") + ":Date:100", _("Fuel Qty") + ":Float:80", + _("Fuel Price") + ":Float:100",_("Service Expense") + ":Float:100" ] return columns def get_log_data(filters): - conditions="" - if filters.from_date: - conditions += " and date >= %(from_date)s" - if filters.to_date: - conditions += " and date <= %(to_date)s" - data = frappe.db.sql("""select vhcl.license_plate as "License",vhcl.make as "Make",vhcl.model as "Model", - vhcl.location as "Location",log.name as "Log",log.odometer as "Odometer",log.date as "Date", - log.fuel_qty as "Fuel Qty",log.price as "Fuel Price" - from `tabVehicle` vhcl,`tabVehicle Log` log - where vhcl.license_plate = log.license_plate and log.docstatus = 1 %s - order by date""" % (conditions,),filters, as_dict=1) + fy = frappe.db.get_value('Fiscal Year', filters.get('fiscal_year'), ['year_start_date', 'year_end_date'], as_dict=True) + data = frappe.db.sql("""select + vhcl.license_plate as "License", vhcl.make as "Make", vhcl.model as "Model", + vhcl.location as "Location", log.name as "Log", log.odometer as "Odometer", + log.date as "Date", log.fuel_qty as "Fuel Qty", log.price as "Fuel Price" + from + `tabVehicle` vhcl,`tabVehicle Log` log + where + vhcl.license_plate = log.license_plate and log.docstatus = 1 and date between %s and %s + order by date""" ,(fy.year_start_date, fy.year_end_date), as_dict=1) dl=list(data) for row in dl: row["Service Expense"]= get_service_expense(row["Log"]) @@ -45,8 +45,8 @@ def get_log_data(filters): def get_service_expense(logname): expense_amount = frappe.db.sql("""select sum(expense_amount) - from `tabVehicle Log` log,`tabVehicle Service` ser - where ser.parent=log.name and log.name=%s""",logname) + from `tabVehicle Log` log,`tabVehicle Service` ser + where ser.parent=log.name and log.name=%s""",logname) return flt(expense_amount[0][0]) if expense_amount else 0 def get_chart_data(data,period_list):