diff --git a/smart_service/add_ons/report/feedback_report/feedback_report.py b/smart_service/add_ons/report/feedback_report/feedback_report.py index 73fbcf9..5436e2f 100644 --- a/smart_service/add_ons/report/feedback_report/feedback_report.py +++ b/smart_service/add_ons/report/feedback_report/feedback_report.py @@ -3,46 +3,61 @@ from __future__ import unicode_literals import frappe -from frappe.utils import cstr, cint, getdate from frappe import msgprint, _ import sys -sys.tracebacklimit=0 +sys.tracebacklimit = 0 def execute(filters=None): - columns, data = [], [] - columns = get_columns() - data = get_data(filters) - return columns, data + columns, data = [], [] + columns = get_columns() + data = get_data(filters) + return columns, data + def get_data(filters): - current_db_name = frappe.conf.get("db_name") - data = frappe.db.sql("""select uf.name,uf.date,uf.subject,uf.user_name,uf.status,uf.attachments,uf.closure_date,uf.closed_by, + current_db_name = frappe.conf.get("db_name") + data = frappe.db.sql("""select uf.name,uf.date,uf.subject,uf.user_name,uf.status,uf.attachments,uf.closure_date,uf.closed_by, uf.description,uf.feedback_type,dealer.dealer_code,dealer.zone,dealer.dealer_name,uf.closure_date,uf.closed_by, dealer.area,au.user_id,concat_ws(' ',au.first_name,au.last_name) as user_name from {0}.`tabUser Feedback` uf,{0}.`tabApp Dealer` dealer,{0}.`tabApp Users` au where uf.user_name = au.name and - (date(uf.modified) between '{1}' and '{2}') group by uf.name ORDER BY uf.date DESC""".format(current_db_name,filters.get('from_date'), filters.get('to_date')), as_dict=1) - if data: - return data - else: - frappe.msgprint('No Data for Selected Filters.') + (date(uf.modified) between '{1}' and '{2}') group by uf.name ORDER BY uf.date DESC""".format(current_db_name, filters.get('from_date'), filters.get('to_date')), as_dict=1) + if data: + return data + else: + frappe.msgprint('No Data for Selected Filters.') -def get_columns(): - columns = [ - {"label": _("User ID"), "fieldname": "user_id", "fieldtype":"Data","width": 100}, - {"label": _("User Name"), "fieldname": "user_name", "fieldtype": "Data", "width": 150}, - {"label": _("Date"), "fieldname": "date", "fieldtype": "Date", "width": 100}, - {"label": _("Feedback ID"), "fieldname": "name", "fieldtype": "Link", "options":"User Feedback","width": 120}, - {"label": _("Feedback Type"), "fieldname": "feedback_type", "fieldtype": "Data", "width": 120}, - {"label": _("Feedback Title"), "fieldname": "subject", "fieldtype": "Data", "width": 120}, - {"label": _("Feedback Description"), "fieldname": "description", "fieldtype": "Text Editor", "width": 250}, - {"label": _("Attachments"), "fieldname": "attachments", "fieldtype": "Data", "width": 100}, - {"label": _("Feedback Status"), "fieldname": "status", "fieldtype": "Data", "width": 100}, - {"label": _("Zone"), "fieldname": "zone", "fieldtype": "Data", "width": 100}, - {"label": _("Area Office"), "fieldname": "area", "fieldtype": "Data", "width": 140}, - {"label": _("Dealer Code"), "fieldname": "dealer_code", "fieldtype": "Data", "width": 120}, - {"label": _("Dealer Name"), "fieldname": "dealer_name", "fieldtype": "Data", "width": 150}, - {"label": _("Closure Date"), "fieldname": "closure_date", "fieldtype": "Data", "width": 150}, - {"label": _("Closed By"), "fieldname": "closed_by", "fieldtype": "Data", "width": 120} - ] - return columns +def get_columns(): + columns = [ + {"label": _("User ID"), "fieldname": "user_id", + "fieldtype": "Data", "width": 100}, + {"label": _("User Name"), "fieldname": "user_name", + "fieldtype": "Data", "width": 150}, + {"label": _("Date"), "fieldname": "date", + "fieldtype": "Date", "width": 100}, + {"label": _("Feedback ID"), "fieldname": "name", + "fieldtype": "Link", "options": "User Feedback", "width": 120}, + {"label": _("Feedback Type"), "fieldname": "feedback_type", + "fieldtype": "Data", "width": 120}, + {"label": _("Feedback Title"), "fieldname": "subject", + "fieldtype": "Data", "width": 120}, + {"label": _("Feedback Description"), "fieldname": "description", + "fieldtype": "Text Editor", "width": 250}, + {"label": _("Attachments"), "fieldname": "attachments", + "fieldtype": "Data", "width": 100}, + {"label": _("Feedback Status"), "fieldname": "status", + "fieldtype": "Data", "width": 100}, + {"label": _("Zone"), "fieldname": "zone", + "fieldtype": "Data", "width": 100}, + {"label": _("Area Office"), "fieldname": "area", + "fieldtype": "Data", "width": 140}, + {"label": _("Dealer Code"), "fieldname": "dealer_code", + "fieldtype": "Data", "width": 120}, + {"label": _("Dealer Name"), "fieldname": "dealer_name", + "fieldtype": "Data", "width": 150}, + {"label": _("Closure Date"), "fieldname": "closure_date", + "fieldtype": "Data", "width": 150}, + {"label": _("Closed By"), "fieldname": "closed_by", + "fieldtype": "Data", "width": 120} + ] + return columns diff --git a/smart_service/add_ons/report/installation_report/installation_report.py b/smart_service/add_ons/report/installation_report/installation_report.py index 8ac9576..d49034a 100644 --- a/smart_service/add_ons/report/installation_report/installation_report.py +++ b/smart_service/add_ons/report/installation_report/installation_report.py @@ -5,42 +5,54 @@ from __future__ import unicode_literals import frappe -from frappe.utils import cstr, cint, getdate from frappe import msgprint, _ + def execute(filters=None): - columns, data = [], [] - columns = get_columns() - data = get_data(filters) - return columns, data + columns, data = [], [] + columns = get_columns() + data = get_data(filters) + return columns, data + def get_data(filters): - current_db_name = frappe.conf.get("db_name") - data = frappe.db.sql("""select dealer.zone,au.user_id,concat_ws(' ',au.first_name,au.last_name) as user_name,dealer.dealer_code,dealer.dealer_name,dealer.area,ad.os,ad.os_version, + current_db_name = frappe.conf.get("db_name") + data = frappe.db.sql("""select dealer.zone,au.user_id,concat_ws(' ',au.first_name,au.last_name) as user_name,dealer.dealer_code,dealer.dealer_name,dealer.area,ad.os,ad.os_version, al.device,ad.device_id,ad.app_current_version,al.type as type,ad.device_type,al.date_time_stamp,al.creation,ad.last_login as date,al.date_time_stamp as time,time(al.date_time_stamp) as last_time from {0}.`tabApp Log` al, {0}.`tabApp Device` ad, {0}.`tabApp Users` au, {0}.`tabApp Dealer` dealer where al.device = ad.name and al.user = au.name and au.dealer = dealer.name and (al.type = 'Installed' or al.type = 'Reinstalled') and - (date(al.modified) between '{1}' and '{2}') ORDER BY ad.last_login DESC""".format(current_db_name,filters.get('from_date'), filters.get('to_date')), as_dict=1) + (date(al.modified) between '{1}' and '{2}') ORDER BY ad.last_login DESC""".format(current_db_name, filters.get('from_date'), filters.get('to_date')), as_dict=1) + + if data: + return data + else: + frappe.msgprint('No Data for Selected Filters.') - if data: - return data - else: - frappe.msgprint('No Data for Selected Filters.') - def get_columns(): - columns = [ - {"label": _("User ID"), "fieldname": "user_id", "fieldtype": "Data", "width": 100}, - {"label": _("User Name"), "fieldname": "user_name", "fieldtype": "Data", "width": 150}, - {"label": _("Installation"), "fieldname": "device", "fieldtype": "Data","width": 100}, - {"label": _("App Version No"), "fieldname": "app_current_version", "fieldtype": "Data", "width": 150}, - {"label": _("Activity Type"), "fieldname": "type", "fieldtype": "Data","width": 150}, - {"label": _("Device"), "fieldname": "device_type", "fieldtype": "Data","width": 100}, - {"label": _("Device ID"), "fieldname": "device_id", "fieldtype": "Data", "width": 150}, - {"label": _("Device OS"), "fieldname": "os", "fieldtype": "Data", "width": 100}, - {"label": _("OS Version"), "fieldname": "os_version", "fieldtype": "Data", "width": 100}, - {"label": _("App Installation Date"), "fieldname": "date_time_stamp", "fieldtype": "DateTime","width": 200}, - {"label": _("App Last Accessed Date"), "fieldname": "date", "fieldtype": "DateTime","width": 200} - ] - return columns + columns = [ + {"label": _("User ID"), "fieldname": "user_id", + "fieldtype": "Data", "width": 100}, + {"label": _("User Name"), "fieldname": "user_name", + "fieldtype": "Data", "width": 150}, + {"label": _("Installation"), "fieldname": "device", + "fieldtype": "Data", "width": 100}, + {"label": _("App Version No"), "fieldname": "app_current_version", + "fieldtype": "Data", "width": 150}, + {"label": _("Activity Type"), "fieldname": "type", + "fieldtype": "Data", "width": 150}, + {"label": _("Device"), "fieldname": "device_type", + "fieldtype": "Data", "width": 100}, + {"label": _("Device ID"), "fieldname": "device_id", + "fieldtype": "Data", "width": 150}, + {"label": _("Device OS"), "fieldname": "os", + "fieldtype": "Data", "width": 100}, + {"label": _("OS Version"), "fieldname": "os_version", + "fieldtype": "Data", "width": 100}, + {"label": _("App Installation Date"), + "fieldname": "date_time_stamp", "fieldtype": "DateTime", "width": 200}, + {"label": _("App Last Accessed Date"), + "fieldname": "date", "fieldtype": "DateTime", "width": 200} + ] + return columns diff --git a/smart_service/add_ons/report/login_report/login_report.py b/smart_service/add_ons/report/login_report/login_report.py index d803e0f..688007d 100644 --- a/smart_service/add_ons/report/login_report/login_report.py +++ b/smart_service/add_ons/report/login_report/login_report.py @@ -3,34 +3,22 @@ from __future__ import unicode_literals import frappe -from frappe.utils import cstr, cint, getdate from frappe import msgprint, _ -from frappe.utils import cstr, flt, cint,TIME_FORMAT,DATE_FORMAT,DATETIME_FORMAT, now_datetime -from datetime import date, time, datetime, timedelta -from frappe.utils import now -import datetime + def execute(filters=None): - columns, data = [], [] - columns = get_columns() - data = get_data(filters) - return columns, data + columns, data = [], [] + columns = get_columns() + data = get_data(filters) + return columns, data -def get_data(filters): - current_db_name = frappe.conf.get("db_name") - from_date = filters.get('from_date') - to_date = filters.get('to_date') - data_test = frappe.db.sql("""select count(al.name) as count,dealer.zone,au.user_id,concat_ws(' ',au.first_name,au.last_name) as user_name, - dealer.dealer_code,dealer.dealer_name,dealer.area,ad.os,ad.os_version, - ad.device_type,ad.device_id,ad.app_current_version,al.type,al.latitude,al.longitude,al.date_time_stamp,al.creation, - date(al.date_time_stamp) as date,time(ad.last_login) as time - from {0}.`tabApp Log` al,{0}.`tabApp Device` ad,{0}.`tabApp Users` au,{0}.`tabApp Dealer` dealer - where - al.device = ad.name and al.user = au.name and au.dealer = dealer.name and al.type = 'Logged in' and - (date(al.modified) between '{1}' and '{2}') group by al.user,ad.device_id,date(al.date_time_stamp)""".format(current_db_name,from_date,to_date), as_dict=1) +def get_data(filters): + current_db_name = frappe.conf.get("db_name") + from_date = filters.get('from_date') + to_date = filters.get('to_date') - data = frappe.db.sql("""select dealer.zone,au.user_id,concat_ws(' ',au.first_name,au.last_name) as user_name, + data = frappe.db.sql("""select dealer.zone,au.user_id,concat_ws(' ',au.first_name,au.last_name) as user_name, dealer.dealer_code,dealer.dealer_name,dealer.area,ad.os,ad.os_version, ad.device_type,ad.device_id,ad.app_current_version,al.type,date(al.date_time_stamp) as date, al.latitude, al.longitude, au.name, al.device, time(al.date_time_stamp) as last_login_time, mal.count from {current_db_name}.`tabApp Log` al, @@ -41,41 +29,32 @@ def get_data(filters): and mal.user=au.name and au.dealer = dealer.name and al.device = ad.name - and mal.date_time_stam=al.date_time_stamp ORDER BY date DESC; """.format(current_db_name = current_db_name,from_date= from_date,to_date=to_date), as_dict=1) - if data: - return data - else: - frappe.msgprint('No Data for Selected Filters.') - -def get_columns(): - columns = [ - {"label": _("User ID"), "fieldname": "user_id", "fieldtype": "Data", "width": 150}, - {"label": _("User Name"), "fieldname": "user_name", "fieldtype": "Data", "width": 150}, - {"label": _("Date"), "fieldname": "date", "fieldtype": "Date", "width": 100}, - {"label": _("Time"), "fieldname": "last_login_time", "fieldtype": "DateTime", "width": 130}, - {"label": _("Count"), "fieldname": "count", "fieldtype": "Data", "width": 100}, - {"label": _("Device ID"), "fieldname": "device_id", "fieldtype": "Data", "width": 100}, - {"label": _("Device"), "fieldname": "device_type", "fieldtype": "Data", "width": 130}, - {"label": _("Latitude"), "fieldname": "latitude", "fieldtype": "Data", "width": 100}, - {"label": _("Longitude"), "fieldname": "longitude", "fieldtype": "Data", "width": 100} - ] - return columns + and mal.date_time_stam=al.date_time_stamp ORDER BY date DESC; """.format(current_db_name=current_db_name, from_date=from_date, to_date=to_date), as_dict=1) + if data: + return data + else: + frappe.msgprint('No Data for Selected Filters.') -# def get_columns(): -# columns = [ -# {"label": _("Date"), "fieldname": "date", "fieldtype": "Date", "width": 100}, -# {"label": _("Time"), "fieldname": "last_login_time", "fieldtype": "DateTime", "width": 130}, -# {"label": _("Zone"), "fieldname": "zone", "fieldtype": "Data", "width": 100}, -# {"label": _("Area Office"), "fieldname": "area", "fieldtype": "Data", "width": 100}, -# {"label": _("Dealer Code"), "fieldname": "dealer_code", "fieldtype": "Data", "width": 150}, -# {"label": _("Dealer Name"), "fieldname": "dealer_name", "fieldtype":"Data","width": 150}, -# {"label": _("Device"), "fieldname": "device_type", "fieldtype": "Data", "width": 100}, -# {"label": _("Device ID"), "fieldname": "device_id", "fieldtype": "Data", "width": 150}, -# {"label": _("User ID"), "fieldname": "user_id", "fieldtype": "Data", "width": 150}, -# {"label": _("User Name"), "fieldname": "user_name", "fieldtype": "Data", "width": 100}, -# {"label": _("Latitude"), "fieldname": "latitude", "fieldtype": "Data", "width": 100}, -# {"label": _("Longitude"), "fieldname": "longitude", "fieldtype": "Data", "width": 100}, -# {"label": _("Count"), "fieldname": "count", "fieldtype": "Data", "width": 100}, -# ] -# return columns +def get_columns(): + columns = [ + {"label": _("User ID"), "fieldname": "user_id", + "fieldtype": "Data", "width": 150}, + {"label": _("User Name"), "fieldname": "user_name", + "fieldtype": "Data", "width": 150}, + {"label": _("Date"), "fieldname": "date", + "fieldtype": "Date", "width": 100}, + {"label": _("Time"), "fieldname": "last_login_time", + "fieldtype": "DateTime", "width": 130}, + {"label": _("Count"), "fieldname": "count", + "fieldtype": "Data", "width": 100}, + {"label": _("Device ID"), "fieldname": "device_id", + "fieldtype": "Data", "width": 100}, + {"label": _("Device"), "fieldname": "device_type", + "fieldtype": "Data", "width": 130}, + {"label": _("Latitude"), "fieldname": "latitude", + "fieldtype": "Data", "width": 100}, + {"label": _("Longitude"), "fieldname": "longitude", + "fieldtype": "Data", "width": 100} + ] + return columns diff --git a/smart_service/add_ons/report/model_download_report/model_download_report.py b/smart_service/add_ons/report/model_download_report/model_download_report.py index e7652e8..77d85f9 100644 --- a/smart_service/add_ons/report/model_download_report/model_download_report.py +++ b/smart_service/add_ons/report/model_download_report/model_download_report.py @@ -3,70 +3,79 @@ from __future__ import unicode_literals import frappe -from frappe.utils import cstr, cint, getdate from frappe import msgprint, _ -import datetime + current_db_name = frappe.conf.get("db_name") + def execute(filters=None): - columns, data = [], [] - columns = get_columns() - data = get_data(filters) - return columns, data + columns, data = [], [] + columns = get_columns() + data = get_data(filters) + return columns, data def get_data(filters): - if filters.get('model'): - from_date=filters['from_date'] - to_date=filters['to_date'] - modelfilter=filters['model'] - - data = frappe.db.sql("""SELECT date(date) as date, device_id, device_type, app_version, download_vehicle_id, download_vehicle_version, + if filters.get('model'): + from_date = filters['from_date'] + to_date = filters['to_date'] + modelfilter = filters['model'] + + data = frappe.db.sql("""SELECT date(date) as date, device_id, device_type, app_version, download_vehicle_id, download_vehicle_version, download_vehicle_date, download_vehicle_language_id, download_vehicle_current_version, mh.user_id, login_name,concat(first_name,' ',last_name) as user_name FROM `tabModel Hit` mh left join `tabApp Users` au on mh.user_id = au.user_id - WHERE download_vehicle_id='{1}' and (date(date) between '{2}' and '{3}') ORDER BY download_vehicle_id,date DESC;""".format(current_db_name, - modelfilter, from_date, to_date), as_dict=1) - - for d in data: - d['download_vehicle_id']=modelfilter - if d['user_id']: - try: - dealer_info=frappe.db.sql("""SELECT dealer FROM {0}.`tabApp Users` where user_id='{1}';""".format(current_db_name, d['user_id']), as_dict=1) - dealer_info=dealer_info[-1]['dealer'] - dealer_details=frappe.db.sql("""SELECT dealer_name,dealer_code,area as location,zone FROM {0}.`tabApp Dealer` - where name='{1}';""".format(current_db_name, dealer_info), as_dict=1) - dealer_details=dealer_details[-1] - d['dealer_code']=dealer_details['dealer_code'] - d['dealer_name']=dealer_details['dealer_name'] - d['area']=dealer_details['location'] - d['zone']=dealer_details['zone'] - except: - pass - if data: - return data - else: - frappe.msgprint('No Data for Selected Filters.') + WHERE download_vehicle_id='{1}' and (date(date) between '{2}' and '{3}') ORDER BY download_vehicle_id,date DESC;""".format(current_db_name, + modelfilter, from_date, to_date), as_dict=1) + for d in data: + d['download_vehicle_id'] = modelfilter + if d['user_id']: + try: + dealer_info = frappe.db.sql("""SELECT dealer FROM {0}.`tabApp Users` where user_id='{1}';""".format( + current_db_name, d['user_id']), as_dict=1) + dealer_info = dealer_info[-1]['dealer'] + dealer_details = frappe.db.sql("""SELECT dealer_name,dealer_code,area as location,zone FROM {0}.`tabApp Dealer` + where name='{1}';""".format(current_db_name, dealer_info), as_dict=1) + dealer_details = dealer_details[-1] + d['dealer_code'] = dealer_details['dealer_code'] + d['dealer_name'] = dealer_details['dealer_name'] + d['area'] = dealer_details['location'] + d['zone'] = dealer_details['zone'] + except: + pass + if data: + return data + else: + frappe.msgprint('No Data for Selected Filters.') def get_columns(): - columns = [ - {"label": _("Date"), "fieldname": "date", "fieldtype": "Date", "width": 150}, - {"label": _("User ID"), "fieldname": "login_name", "fieldtype": "Data", "width": 125}, - {"label": _("User Name"), "fieldname": "user_name", "fieldtype": "Data", "width": 125}, - {"label": _("Downloaded Vehicle"), "fieldname": "download_vehicle_id", "fieldtype": "Data", "width": 150}, - {"label": _("Downloaded Language"), "fieldname": "download_vehicle_language_id", "fieldtype": "Data", "width": 150}, - {"label": _("Downloaded Version"), "fieldname": "download_vehicle_current_version", "fieldtype": "Data", "width": 150}, - {"label": _("App Version"), "fieldname": "app_version", "fieldtype": "Data", "width": 150}, - # {"label": _("Zone"), "fieldname": "zone", "fieldtype": "Data", "width": 100}, - # {"label": _("Area Office"), "fieldname": "area", "fieldtype": "Data", "width": 150}, - # {"label": _("Dealer Code"), "fieldname": "dealer_code", "fieldtype": "Data", "width": 150}, - # {"label": _("Dealer Name"), "fieldname": "dealer_name", "fieldtype": "Data", "width": 150}, - {"label": _("Device"), "fieldname": "device_id", "fieldtype": "Data", "width": 150}, - {"label": _("Device Type"), "fieldname": "device_type", "fieldtype": "Data", "width": 150} - - ] - return columns \ No newline at end of file + columns = [ + {"label": _("Date"), "fieldname": "date", + "fieldtype": "Date", "width": 150}, + {"label": _("User ID"), "fieldname": "login_name", + "fieldtype": "Data", "width": 125}, + {"label": _("User Name"), "fieldname": "user_name", + "fieldtype": "Data", "width": 125}, + {"label": _("Downloaded Vehicle"), + "fieldname": "download_vehicle_id", "fieldtype": "Data", "width": 150}, + {"label": _("Downloaded Language"), + "fieldname": "download_vehicle_language_id", "fieldtype": "Data", "width": 150}, + {"label": _("Downloaded Version"), + "fieldname": "download_vehicle_current_version", "fieldtype": "Data", "width": 150}, + {"label": _("App Version"), "fieldname": "app_version", + "fieldtype": "Data", "width": 150}, + # {"label": _("Zone"), "fieldname": "zone", "fieldtype": "Data", "width": 100}, + # {"label": _("Area Office"), "fieldname": "area", "fieldtype": "Data", "width": 150}, + # {"label": _("Dealer Code"), "fieldname": "dealer_code", "fieldtype": "Data", "width": 150}, + # {"label": _("Dealer Name"), "fieldname": "dealer_name", "fieldtype": "Data", "width": 150}, + {"label": _("Device"), "fieldname": "device_id", + "fieldtype": "Data", "width": 150}, + {"label": _("Device Type"), "fieldname": "device_type", + "fieldtype": "Data", "width": 150} + + ] + return columns diff --git a/smart_service/add_ons/report/model_hit_report/model_hit_report.py b/smart_service/add_ons/report/model_hit_report/model_hit_report.py index 23e73d8..b945862 100644 --- a/smart_service/add_ons/report/model_hit_report/model_hit_report.py +++ b/smart_service/add_ons/report/model_hit_report/model_hit_report.py @@ -4,92 +4,94 @@ from __future__ import unicode_literals import frappe -from frappe.utils import cstr, cint, getdate from frappe import msgprint, _ import datetime - current_db_name = frappe.conf.get("db_name") + def execute(filters=None): - columns, data = [], [] - columns = get_columns() - data = get_data(filters) - return columns, data + columns, data = [], [] + columns = get_columns() + data = get_data(filters) + return columns, data def get_data(filters): - if filters.get('variant') and filters.get('model'): - from_date=filters['from_date'] - to_date=filters['to_date'] - modelfilter=filters['model'] - variantfilter=filters['variant'] - variantfilter=variantfilter.split(".") - - data = frappe.db.sql("""SELECT date as date, device_id, device_type, module_id, vehicle_id, variant_id,variant_mapping_id, system_id, sub_system_id, procedure_id, steps_id, + if filters.get('variant') and filters.get('model'): + from_date = filters['from_date'] + to_date = filters['to_date'] + modelfilter = filters['model'] + variantfilter = filters['variant'] + variantfilter = variantfilter.split(".") + + data = frappe.db.sql("""SELECT date as date, device_id, device_type, module_id, vehicle_id, variant_id,variant_mapping_id, system_id, sub_system_id, procedure_id, steps_id, count(*) as count, user_id, language FROM {0}.`tabModel Usage` WHERE vehicle_id='{1}' and variant_id='{2}' and (date(date) between '{3}' and '{4}') GROUP BY date(date), user_id, module_id, device_id, vehicle_id, variant_id, variant_mapping_id, system_id, sub_system_id, procedure_id, steps_id, language order by module_id,vehicle_id, variant_id, variant_mapping_id, system_id, sub_system_id, procedure_id, steps_id,language,date DESC; - """.format(current_db_name, modelfilter, variantfilter[1], from_date, to_date), as_dict=1) - - for d in data: - if d['user_id']: - try: - dealer_info=frappe.db.sql("""SELECT dealer FROM {0}.`tabApp Users` where user_id='{1}';""".format(current_db_name, d['user_id']), as_dict=1) - dealer_info=dealer_info[-1]['dealer'] - dealer_details=frappe.db.sql("""SELECT dealer_name,dealer_code,area as location,zone FROM {0}.`tabApp Dealer` where name='{1}';""".format(current_db_name, dealer_info), as_dict=1) - dealer_details=dealer_details[-1] - d['dealer_code']=dealer_details['dealer_code'] - d['dealer_name']=dealer_details['dealer_name'] - d['area']=dealer_details['location'] - d['zone']=dealer_details['zone'] - except: - pass - - if data: - return data - else: - frappe.msgprint('No Data for Selected Filters.') - - elif filters.get('model'): - from_date=filters['from_date'] - to_date=filters['to_date'] - modelfilter=filters['model'] - - data = frappe.db.sql("""SELECT date(date) as date, device_id, device_type, module_id, vehicle_id, variant_id,variant_mapping_id, system_id, sub_system_id, procedure_id, + """.format(current_db_name, modelfilter, variantfilter[1], from_date, to_date), as_dict=1) + + for d in data: + if d['user_id']: + try: + dealer_info = frappe.db.sql("""SELECT dealer FROM {0}.`tabApp Users` where user_id='{1}';""".format( + current_db_name, d['user_id']), as_dict=1) + dealer_info = dealer_info[-1]['dealer'] + dealer_details = frappe.db.sql("""SELECT dealer_name,dealer_code,area as location,zone FROM {0}.`tabApp Dealer` where name='{1}';""".format( + current_db_name, dealer_info), as_dict=1) + dealer_details = dealer_details[-1] + d['dealer_code'] = dealer_details['dealer_code'] + d['dealer_name'] = dealer_details['dealer_name'] + d['area'] = dealer_details['location'] + d['zone'] = dealer_details['zone'] + except: + pass + + if data: + return data + else: + frappe.msgprint('No Data for Selected Filters.') + + elif filters.get('model'): + from_date = filters['from_date'] + to_date = filters['to_date'] + modelfilter = filters['model'] + + data = frappe.db.sql("""SELECT date(date) as date, device_id, device_type, module_id, vehicle_id, variant_id,variant_mapping_id, system_id, sub_system_id, procedure_id, steps_id, count(*) as count, user_id, language FROM {0}.`tabModel Usage` WHERE vehicle_id='{1}' and (date(date) between '{2}' and '{3}') GROUP BY date(date), user_id, module_id, device_id, vehicle_id, variant_id, variant_mapping_id, system_id, sub_system_id, procedure_id, steps_id,language order by module_id,vehicle_id, variant_id, variant_mapping_id, system_id, sub_system_id, procedure_id, steps_id,language; ;""".format(current_db_name, modelfilter, from_date, to_date), as_dict=1) - for d in data: - if d['user_id']: - try: - dealer_info=frappe.db.sql("""SELECT dealer FROM {0}.`tabApp Users` where user_id='{1}';""".format(current_db_name, d['user_id']), as_dict=1) - dealer_info=dealer_info[-1]['dealer'] - dealer_details=frappe.db.sql("""SELECT dealer_name,dealer_code,area as location,zone FROM {0}.`tabApp Dealer` where name='{1}';""".format(current_db_name, dealer_info), as_dict=1) - dealer_details=dealer_details[-1] - d['dealer_code']=dealer_details['dealer_code'] - d['dealer_name']=dealer_details['dealer_name'] - d['area']=dealer_details['location'] - d['zone']=dealer_details['zone'] - except: - pass - - if data: - return data - else: - frappe.msgprint('No Data for Selected Filters.') - - - elif filters.get('variant'): - from_date=filters['from_date'] - to_date=filters['to_date'] - variantfilter=filters['variant'] - variantfilter=variantfilter.split(".") - data = frappe.db.sql("""SELECT date as date, device_id, device_type, module_id, vehicle_id, variant_id,variant_mapping_id, system_id, sub_system_id, + for d in data: + if d['user_id']: + try: + dealer_info = frappe.db.sql("""SELECT dealer FROM {0}.`tabApp Users` where user_id='{1}';""".format( + current_db_name, d['user_id']), as_dict=1) + dealer_info = dealer_info[-1]['dealer'] + dealer_details = frappe.db.sql("""SELECT dealer_name,dealer_code,area as location,zone FROM {0}.`tabApp Dealer` where name='{1}';""".format( + current_db_name, dealer_info), as_dict=1) + dealer_details = dealer_details[-1] + d['dealer_code'] = dealer_details['dealer_code'] + d['dealer_name'] = dealer_details['dealer_name'] + d['area'] = dealer_details['location'] + d['zone'] = dealer_details['zone'] + except: + pass + + if data: + return data + else: + frappe.msgprint('No Data for Selected Filters.') + + elif filters.get('variant'): + from_date = filters['from_date'] + to_date = filters['to_date'] + variantfilter = filters['variant'] + variantfilter = variantfilter.split(".") + data = frappe.db.sql("""SELECT date as date, device_id, device_type, module_id, vehicle_id, variant_id,variant_mapping_id, system_id, sub_system_id, procedure_id, steps_id, count(*) as count, user_id, language, login_name,concat(first_name,' ',last_name) as user_name FROM `tabModel Usage` mu left join `tabApp Users` au on mu.user_id = au.user_id @@ -97,56 +99,72 @@ def get_data(filters): and (date(date) between '{3}' and '{4}') GROUP BY date(date), user_id, module_id, device_id, vehicle_id, variant_id, variant_mapping_id, system_id, sub_system_id, procedure_id, steps_id, language order by module_id,vehicle_id, variant_id, variant_mapping_id, system_id, sub_system_id, procedure_id, steps_id,language; - ;""".format(current_db_name, variantfilter[0], variantfilter[1], from_date, to_date), as_dict=1) - - for d in data: - if d['user_id']: - try: - dealer_info=frappe.db.sql("""SELECT dealer FROM {0}.`tabApp Users` where user_id='{1}';""".format(current_db_name, d['user_id']), as_dict=1) - dealer_info=dealer_info[-1]['dealer'] - dealer_details=frappe.db.sql("""SELECT dealer_name,dealer_code,area as location,zone FROM {0}.`tabApp Dealer` + ;""".format(current_db_name, variantfilter[0], variantfilter[1], from_date, to_date), as_dict=1) + + for d in data: + if d['user_id']: + try: + dealer_info = frappe.db.sql("""SELECT dealer FROM {0}.`tabApp Users` where user_id='{1}';""".format( + current_db_name, d['user_id']), as_dict=1) + dealer_info = dealer_info[-1]['dealer'] + dealer_details = frappe.db.sql("""SELECT dealer_name,dealer_code,area as location,zone FROM {0}.`tabApp Dealer` where name='{1}';""".format(current_db_name, dealer_info), as_dict=1) - dealer_details=dealer_details[-1] - d['dealer_code']=dealer_details['dealer_code'] - d['dealer_name']=dealer_details['dealer_name'] - d['area']=dealer_details['location'] - d['zone']=dealer_details['zone'] - except: - pass + dealer_details = dealer_details[-1] + d['dealer_code'] = dealer_details['dealer_code'] + d['dealer_name'] = dealer_details['dealer_name'] + d['area'] = dealer_details['location'] + d['zone'] = dealer_details['zone'] + except: + pass - if data: - return data - else: - frappe.msgprint('No Data for Selected Filters.') + if data: + return data + else: + frappe.msgprint('No Data for Selected Filters.') def get_columns(): - columns = [ - {"label": _("Date"), "fieldname": "date", "fieldtype": "Date", "width": 150}, - # {"label": _("User ID"), "fieldname": "login_name", "fieldtype": "Data", "width": 125}, - # {"label": _("User Name"), "fieldname": "user_name", "fieldtype": "Data", "width": 125}, - {"label": _("Model"), "fieldname": "vehicle_id", "fieldtype": "Data", "width": 150}, - {"label": _("Variant Mapping"), "fieldname": "variant_mapping_id", "fieldtype": "Data", "width": 150}, - {"label": _("Variant"), "fieldname": "variant_id", "fieldtype": "Data", "width": 80}, - {"label": _("Module"), "fieldname": "module_id", "fieldtype": "Data", "width": 150}, - {"label": _("System"), "fieldname": "system_id", "fieldtype": "Data", "width": 150}, - {"label": _("Sub System"), "fieldname": "sub_system_id", "fieldtype": "Data", "width": 150}, - {"label": _("Procedure"), "fieldname": "procedure_id", "fieldtype": "Data", "width": 150}, - {"label": _("Steps"), "fieldname": "steps_id", "fieldtype": "Data", "width": 150}, - {"label": _("Language"), "fieldname": "language", "fieldtype": "Data", "width": 80}, - {"label": _("Count"), "fieldname": "count", "fieldtype": "Data", "width": 80}, - - # {"label": _("Zone"), "fieldname": "zone", "fieldtype": "Data", "width": 150}, - # {"label": _("Area Office"), "fieldname": "area", "fieldtype": "Data", "width": 150}, - # {"label": _("Dealer Code"), "fieldname": "dealer_code", "fieldtype": "Data", "width": 150}, - # {"label": _("Dealer Name"), "fieldname": "dealer_name", "fieldtype": "Data", "width": 150}, - {"label": _("Device"), "fieldname": "device_id", "fieldtype": "Data", "width": 150}, - {"label": _("Device Type"), "fieldname": "device_type", "fieldtype": "Data", "width": 150} - ] - return columns - + columns = [ + {"label": _("Date"), "fieldname": "date", + "fieldtype": "Date", "width": 150}, + # {"label": _("User ID"), "fieldname": "login_name", "fieldtype": "Data", "width": 125}, + # {"label": _("User Name"), "fieldname": "user_name", "fieldtype": "Data", "width": 125}, + {"label": _("Model"), "fieldname": "vehicle_id", + "fieldtype": "Data", "width": 150}, + {"label": _("Variant Mapping"), "fieldname": "variant_mapping_id", + "fieldtype": "Data", "width": 150}, + {"label": _("Variant"), "fieldname": "variant_id", + "fieldtype": "Data", "width": 80}, + {"label": _("Module"), "fieldname": "module_id", + "fieldtype": "Data", "width": 150}, + {"label": _("System"), "fieldname": "system_id", + "fieldtype": "Data", "width": 150}, + {"label": _("Sub System"), "fieldname": "sub_system_id", + "fieldtype": "Data", "width": 150}, + {"label": _("Procedure"), "fieldname": "procedure_id", + "fieldtype": "Data", "width": 150}, + {"label": _("Steps"), "fieldname": "steps_id", + "fieldtype": "Data", "width": 150}, + {"label": _("Language"), "fieldname": "language", + "fieldtype": "Data", "width": 80}, + {"label": _("Count"), "fieldname": "count", + "fieldtype": "Data", "width": 80}, + + # {"label": _("Zone"), "fieldname": "zone", "fieldtype": "Data", "width": 150}, + # {"label": _("Area Office"), "fieldname": "area", "fieldtype": "Data", "width": 150}, + # {"label": _("Dealer Code"), "fieldname": "dealer_code", "fieldtype": "Data", "width": 150}, + # {"label": _("Dealer Name"), "fieldname": "dealer_name", "fieldtype": "Data", "width": 150}, + {"label": _("Device"), "fieldname": "device_id", + "fieldtype": "Data", "width": 150}, + {"label": _("Device Type"), "fieldname": "device_type", + "fieldtype": "Data", "width": 150} + ] + return columns + + @frappe.whitelist() -def variant(doctype,txt,searchfield,start,page_len,filters): - model = filters.get('name') - variant = frappe.db.sql("""select name from `tabVariant` where name like %s""",model+'%',as_list=True) - return variant \ No newline at end of file +def variant(doctype, txt, searchfield, start, page_len, filters): + model = filters.get('name') + variant = frappe.db.sql( + """select name from `tabVariant` where name like %s""", model+'%', as_list=True) + return variant