mirror of
https://github.com/frappe/erpnext.git
synced 2026-09-19 19:37:56 +00:00
Fleet management moved to HR
This commit is contained in:
0
erpnext/hr/report/vehicle_expenses/__init__.py
Normal file
0
erpnext/hr/report/vehicle_expenses/__init__.py
Normal file
41
erpnext/hr/report/vehicle_expenses/vehicle_expenses.js
Normal file
41
erpnext/hr/report/vehicle_expenses/vehicle_expenses.js
Normal file
@@ -0,0 +1,41 @@
|
||||
// Copyright (c) 2016, Frappe Technologies Pvt. Ltd. and contributors
|
||||
// For license information, please see license.txt
|
||||
frappe.require("assets/erpnext/js/financial_statements.js", function() {
|
||||
frappe.query_reports["Vehicle Expenses"] = {
|
||||
"filters": [
|
||||
{
|
||||
"fieldname": "fiscal_year",
|
||||
"label": __("Fiscal Year"),
|
||||
"fieldtype": "Link",
|
||||
"options": "Fiscal Year",
|
||||
"default": frappe.defaults.get_user_default("fiscal_year"),
|
||||
"reqd": 1,
|
||||
"on_change": function(query_report) {
|
||||
var fiscal_year = query_report.get_values().fiscal_year;
|
||||
if (!fiscal_year) {
|
||||
return;
|
||||
}
|
||||
frappe.model.with_doc("Fiscal Year", fiscal_year, function(r) {
|
||||
var fy = frappe.model.get_doc("Fiscal Year", fiscal_year);
|
||||
frappe.query_report_filters_by_name.from_date.set_input(fy.year_start_date);
|
||||
frappe.query_report_filters_by_name.to_date.set_input(fy.year_end_date);
|
||||
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"),
|
||||
}
|
||||
]
|
||||
}
|
||||
});
|
||||
|
||||
18
erpnext/hr/report/vehicle_expenses/vehicle_expenses.json
Normal file
18
erpnext/hr/report/vehicle_expenses/vehicle_expenses.json
Normal file
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"add_total_row": 0,
|
||||
"apply_user_permissions": 1,
|
||||
"creation": "2016-09-09 03:33:40.605734",
|
||||
"disabled": 0,
|
||||
"docstatus": 0,
|
||||
"doctype": "Report",
|
||||
"idx": 0,
|
||||
"is_standard": "Yes",
|
||||
"modified": "2017-01-09 11:18:31.959124",
|
||||
"modified_by": "Administrator",
|
||||
"module": "HR",
|
||||
"name": "Vehicle Expenses",
|
||||
"owner": "Administrator",
|
||||
"ref_doctype": "Vehicle",
|
||||
"report_name": "Vehicle Expenses",
|
||||
"report_type": "Script Report"
|
||||
}
|
||||
81
erpnext/hr/report/vehicle_expenses/vehicle_expenses.py
Normal file
81
erpnext/hr/report/vehicle_expenses/vehicle_expenses.py
Normal file
@@ -0,0 +1,81 @@
|
||||
# Copyright (c) 2013, Frappe Technologies Pvt. Ltd. and contributors
|
||||
# For license information, please see license.txt
|
||||
|
||||
from __future__ import unicode_literals
|
||||
import frappe
|
||||
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)
|
||||
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"
|
||||
]
|
||||
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)
|
||||
dl=list(data)
|
||||
for row in dl:
|
||||
row["Service Expense"]= get_service_expense(row["Log"])
|
||||
return dl
|
||||
|
||||
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)
|
||||
return flt(expense_amount[0][0]) if expense_amount else 0
|
||||
|
||||
def get_chart_data(data,period_list):
|
||||
fuel_exp_data,service_exp_data,fueldata,servicedata = [],[],[],[]
|
||||
service_exp_data = []
|
||||
fueldata = []
|
||||
for period in period_list:
|
||||
total_fuel_exp=0
|
||||
total_ser_exp=0
|
||||
for row in data:
|
||||
if row["Date"] <= period.to_date and row["Date"] >= period.from_date:
|
||||
total_fuel_exp+=flt(row["Fuel Price"])
|
||||
total_ser_exp+=flt(row["Service Expense"])
|
||||
fueldata.append([period.key,total_fuel_exp])
|
||||
servicedata.append([period.key,total_ser_exp])
|
||||
|
||||
x_intervals = ['x'] + [period.key for period in period_list]
|
||||
fuel_exp_data= [row[1] for row in fueldata]
|
||||
service_exp_data= [row[1] for row in servicedata]
|
||||
columns = [x_intervals]
|
||||
if fuel_exp_data:
|
||||
columns.append(["Fuel Expenses"]+ fuel_exp_data)
|
||||
if service_exp_data:
|
||||
columns.append(["Service Expenses"]+ service_exp_data)
|
||||
chart = {
|
||||
"data": {
|
||||
'x': 'x',
|
||||
'columns': columns
|
||||
}
|
||||
}
|
||||
chart["chart_type"] = "line"
|
||||
return chart
|
||||
Reference in New Issue
Block a user