Browse Source

audit report update

master
hns 3 years ago
parent
commit
2d4dc277d4
  1. 10
      smart_service/add_ons/doctype/app_preference/app_preference.json
  2. BIN
      smart_service/apis/__pycache__/addon_api.cpython-38.pyc
  3. BIN
      smart_service/apis/__pycache__/app_user_login.cpython-38.pyc
  4. BIN
      smart_service/apis/__pycache__/master_api.cpython-38.pyc
  5. BIN
      smart_service/apis/__pycache__/update_validation.cpython-38.pyc
  6. 5
      smart_service/apis/addon_api.py
  7. 15
      smart_service/apis/update_validation.py
  8. BIN
      smart_service/mahindra_smart_service/report/_file_structure/__pycache__/_file_structure.cpython-38.pyc
  9. BIN
      smart_service/mahindra_smart_service/report/_fuel_translation/__pycache__/_fuel_translation.cpython-38.pyc
  10. BIN
      smart_service/masters/doctype/vehicle/__pycache__/vehicle.cpython-38.pyc
  11. 27
      smart_service/masters/doctype/vehicle/vehicle.py
  12. 34
      smart_service/templates/includes/login/_login.js
  13. 20
      smart_service/transactions/doctype/procedure_details/procedure_details.json
  14. BIN
      smart_service/transactions/doctype/variant_mapping/__pycache__/variant_mapping.cpython-38.pyc
  15. 12
      smart_service/transactions/doctype/variant_mapping/variant_mapping.js
  16. 11
      smart_service/transactions/doctype/variant_mapping/variant_mapping.py
  17. BIN
      smart_service/transactions/report/audit_report/__pycache__/audit_report.cpython-38.pyc
  18. 41
      smart_service/transactions/report/audit_report/audit_report.py
  19. 6
      smart_service/transactions/report/kilometer_mapping/kilometer_mapping.py
  20. BIN
      smart_service/www/__pycache__/login.cpython-38.pyc
  21. 44
      smart_service/www/login.py

10
smart_service/add_ons/doctype/app_preference/app_preference.json

@ -18,7 +18,8 @@
"mahindra_login_api", "mahindra_login_api",
"technician_login_api", "technician_login_api",
"remarks", "remarks",
"active" "active",
"user_mail"
], ],
"fields": [ "fields": [
{ {
@ -87,11 +88,16 @@
"fieldname": "application_server_url", "fieldname": "application_server_url",
"fieldtype": "Data", "fieldtype": "Data",
"label": "Application Server URL" "label": "Application Server URL"
},
{
"fieldname": "user_mail",
"fieldtype": "Data",
"label": "User Mail"
} }
], ],
"index_web_pages_for_search": 1, "index_web_pages_for_search": 1,
"links": [], "links": [],
"modified": "2022-01-28 12:43:00.846057", "modified": "2022-02-07 20:52:21.403876",
"modified_by": "Administrator", "modified_by": "Administrator",
"module": "Add Ons", "module": "Add Ons",
"name": "App Preference", "name": "App Preference",

BIN
smart_service/apis/__pycache__/addon_api.cpython-38.pyc

Binary file not shown.

BIN
smart_service/apis/__pycache__/app_user_login.cpython-38.pyc

Binary file not shown.

BIN
smart_service/apis/__pycache__/master_api.cpython-38.pyc

Binary file not shown.

BIN
smart_service/apis/__pycache__/update_validation.cpython-38.pyc

Binary file not shown.

5
smart_service/apis/addon_api.py

@ -9,7 +9,8 @@ current_db_name = frappe.conf.get("db_name")
def addon(args): def addon(args):
if args == "circular": if args == "circular":
api = frappe.db.get_list( api = frappe.db.get_list(
"Circular", fields=["name", "title", "status", "description","circular_image", "valid_till"]) "Circular", fields=["name", "title", "status", "description","circular_image", "valid_till"],
filters={"valid_till": [">=", frappe.utils.today()]})
for i in api: for i in api:
if i["status"] == "Active": if i["status"] == "Active":
@ -37,7 +38,7 @@ def addon(args):
elif args == "teknet_module": elif args == "teknet_module":
api = frappe.db.get_list( api = frappe.db.get_list(
"Teknet Module", "Teknet Module",
fields=["name", "teknet_module_name", "active_status"], fields=["name", "teknet_module_name", "active_status","flvl_id"],
) )
for i in api: for i in api:
if i["active_status"] == "Active": if i["active_status"] == "Active":

15
smart_service/apis/update_validation.py

@ -43,6 +43,7 @@ def check_all_vehicle_updates(vehicle_list):
data_append.append(d) data_append.append(d)
Vehicle_req_list.append(data_append) Vehicle_req_list.append(data_append)
response['LanguageID'] = lang response['LanguageID'] = lang
if len(Vehicle_req_list) != 0: if len(Vehicle_req_list) != 0:
response['VehicleReqList'] = Vehicle_req_list[0] response['VehicleReqList'] = Vehicle_req_list[0]
return response return response
@ -211,16 +212,14 @@ def check_vehicle_update(vehicle_list):
else: else:
subsys['active_status'] = False subsys['active_status'] = False
kms = frappe.db.sql(
'''SELECT kilometer as kilometer_name, idx as kilometer_IDX, applicable as kilometers_applicable FROM %s.`tabKilometer Mapping_Items` where sub_systems='%s' order by kilometer_IDX;''' % (
current_db_name, j), as_dict=True)
# kms = frappe.db.sql( # kms = frappe.db.sql(
# '''SELECT kilometer as kilometer_name, idx as kilometer_IDX, applicable as kilometers_applicable,mat FROM {}.`tabKilometer Mapping_Items` where sub_systems='{}' # '''SELECT kilometer as kilometer_name, idx as kilometer_IDX, applicable as kilometers_applicable FROM %s.`tabKilometer Mapping_Items` where sub_systems='%s' order by kilometer_IDX;''' % (
# and substring(parent,-5,2) = '{}' order by kilometer_IDX;'''.format(current_db_name, j,l_id), as_dict=True) # current_db_name, j), as_dict=True)
kms = frappe.db.sql(
'''SELECT kilometer as kilometer_name, idx as kilometer_IDX, applicable as kilometers_applicable FROM {}.`tabKilometer Mapping_Items` where sub_systems='{}'
and parent Like '{}' and substring(parent,-5,2) = '{}' order by kilometer_IDX;'''.format(current_db_name, j, d+"%",l_id), as_dict=True)
# % (
# current_db_name, j,l_id), as_dict=True)
subsys['Config Kilometer'] = kms subsys['Config Kilometer'] = kms

BIN
smart_service/mahindra_smart_service/report/_file_structure/__pycache__/_file_structure.cpython-38.pyc

Binary file not shown.

BIN
smart_service/mahindra_smart_service/report/_fuel_translation/__pycache__/_fuel_translation.cpython-38.pyc

Binary file not shown.

BIN
smart_service/masters/doctype/vehicle/__pycache__/vehicle.cpython-38.pyc

Binary file not shown.

27
smart_service/masters/doctype/vehicle/vehicle.py

@ -26,30 +26,3 @@ def update_km_mapping(doc,vehicle,type,skm_initial):
if type == "Deleted": if type == "Deleted":
for sub_system in system_mapping.get("system_sub_systems"): for sub_system in system_mapping.get("system_sub_systems"):
frappe.db.sql("""delete from `tabKilometer Mapping_Items` where parent = %s and sub_systems=%s and mat=%s and kilometer=%s""",(kilometer_mapping.name,str(sub_system.sub_systems),str(sub_system.mat),str(skm_initial)),as_dict=True) frappe.db.sql("""delete from `tabKilometer Mapping_Items` where parent = %s and sub_systems=%s and mat=%s and kilometer=%s""",(kilometer_mapping.name,str(sub_system.sub_systems),str(sub_system.mat),str(skm_initial)),as_dict=True)
###This method called from login.js for password validation(CMS login task)
@frappe.whitelist(allow_guest=True)
def login(login):
user = frappe.db.sql("""select pwd from `tabnumlock` where id=%s""",login,as_dict=True)
if user:
for pwd in user:
return pwd.pwd
###This methed called from user clien script(CMS login task)
@frappe.whitelist(allow_guest=True)
def login_user(login,pwd):
numlock = frappe.db.sql("""select name from `tabnumlock` where id = %s""",login,as_dict=True)
if numlock:
for p in numlock:
frappe.db.sql("""update `tabnumlock` set pwd=%s where name = %s""",(pwd,p.name),as_dict=True)
else:
num = frappe.new_doc("numlock")
num.id = login
num.pwd = pwd
num.save()
###This method called from templates/includes/login/_login.js
@frappe.whitelist(allow_guest=True)
def login_user(login):
user = frappe.db.sql("""select username from `tabUser` where username=%s or email=%s or mobile_no=%s""",(login,login,login),as_list=True)
if user:
return user
else:
return 'None'

34
smart_service/templates/includes/login/_login.js

@ -77,8 +77,18 @@ isSubmit=1;
if(parseJson){ if(parseJson){
if(parseJson.IsSuccessfull=='1'){ if(parseJson.IsSuccessfull=='1'){
let user = $("#login_email").val(); let user = $("#login_email").val();
if(user){
frappe.call({ frappe.call({
method: "smart_service.masters.doctype.vehicle.vehicle.login", method: "smart_service.www.login.create_user",
args: {'login':user,
},
callback: function(r){
}
})
}
frappe.call({
method: "smart_service.www.login.login",
args: {'login':user, args: {'login':user,
}, },
callback: function(r){ callback: function(r){
@ -341,20 +351,18 @@ login.login_handlers = (function () {
} }
}, },
401: function (data) { 401: function (data) {
frappe.msgprint(data.message) let usr = $("#login_email").val();
var usr = ($("#login_email").val() || "").trim();
if (usr){ if (usr){
frappe.call({ frappe.call({
method: "smart_service.masters.doctype.vehicle.vehicle.login_user", method: "smart_service.www.login.login_user",
args: {'login':usr, args: {'login':usr,
}, },
callback: function(r){ callback: function(r){
if(r.message == 'None'){ if(r.message != 'None'){
login.set_status('{{ _("Please contact Admin.") }}', 'red'); login.set_status('{{ _("Not Allowed Disabled User Please Contact Admin.") }}', 'red');
}
} }
} })
})
} }
login.set_status('{{ _("Invalid Login. Try again.") }}', 'red'); login.set_status('{{ _("Invalid Login. Try again.") }}', 'red');
captchaNumGen(); captchaNumGen();

20
smart_service/transactions/doctype/procedure_details/procedure_details.json

@ -14,7 +14,7 @@
], ],
"fields": [ "fields": [
{ {
"columns": 1, "columns": 2,
"fieldname": "procedure_name", "fieldname": "procedure_name",
"fieldtype": "Link", "fieldtype": "Link",
"in_list_view": 1, "in_list_view": 1,
@ -32,7 +32,7 @@
"reqd": 1 "reqd": 1
}, },
{ {
"columns": 1, "columns": 2,
"fieldname": "content_type", "fieldname": "content_type",
"fieldtype": "Select", "fieldtype": "Select",
"in_list_view": 1, "in_list_view": 1,
@ -45,27 +45,29 @@
"fieldname": "content", "fieldname": "content",
"fieldtype": "Small Text", "fieldtype": "Small Text",
"in_list_view": 1, "in_list_view": 1,
"label": "Content" "label": "Content",
"read_only_depends_on": "eval:doc.content_type == \"Link\""
}, },
{ {
"columns": 2,
"fieldname": "file", "fieldname": "file",
"fieldtype": "Attach", "fieldtype": "Attach",
"in_list_view": 1, "label": "File",
"label": "File" "read_only_depends_on": "eval: doc.content_type != \"File\""
}, },
{ {
"fieldname": "content1", "fieldname": "content1",
"fieldtype": "Data", "fieldtype": "Small Text",
"hidden": 1,
"label": "Content1", "label": "Content1",
"options": "URL", "options": "URL",
"read_only": 1 "print_hide": 1,
"read_only_depends_on": "eval:doc.content_type == \"Link\""
} }
], ],
"index_web_pages_for_search": 1, "index_web_pages_for_search": 1,
"istable": 1, "istable": 1,
"links": [], "links": [],
"modified": "2022-02-04 11:18:15.633049", "modified": "2022-02-08 16:47:51.532893",
"modified_by": "Administrator", "modified_by": "Administrator",
"module": "Transactions", "module": "Transactions",
"name": "Procedure_Details", "name": "Procedure_Details",

BIN
smart_service/transactions/doctype/variant_mapping/__pycache__/variant_mapping.cpython-38.pyc

Binary file not shown.

12
smart_service/transactions/doctype/variant_mapping/variant_mapping.js

@ -1,8 +1,16 @@
// Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and contributors // Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and contributors
// For license information, please see license.txt // For license information, please see license.txt
cur_frm.fields_dict['variant'].get_query = function(doc, cdt, cdn) {
return {
query:"smart_service.transactions.doctype.variant_mapping.variant_mapping.variant",
// filters: {'doc': doc.name}
}
}
frappe.ui.form.on('Variant Mapping', { frappe.ui.form.on('Variant Mapping', {
// refresh: function(frm) {
// } refresh: function(frm) {
}
}); });

11
smart_service/transactions/doctype/variant_mapping/variant_mapping.py

@ -1,8 +1,15 @@
# Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and contributors # Copyright (c) 2021, Hard n Soft Technologies Pvt Ltd and contributors
# For license information, please see license.txt # For license information, please see license.txt
# import frappe import frappe
from frappe.model.document import Document from frappe.model.document import Document
class VariantMapping(Document): class VariantMapping(Document):
pass def validate(self):
pass
@frappe.whitelist()
def variant(doctype, txt, searchfield, start, page_len, filters):
#return frappe.db.sql("""SELECT name,variant,vehicle,vehicle_segment,active_status FROM _d6463952657fa86c.tabVariant order by creation desc""")
return frappe.db.sql(""" select name,variant,vehicle,vehicle_segment,active_status
FROM _d6463952657fa86c.tabVariant where
(name like "%%%(txt)s%%" or variant like "%%%(txt)s%%") limit %(start)s, %(page_len)s order by creation"""%{'txt': txt, 'start': start, 'page_len': page_len})

BIN
smart_service/transactions/report/audit_report/__pycache__/audit_report.cpython-38.pyc

Binary file not shown.

41
smart_service/transactions/report/audit_report/audit_report.py

@ -7,7 +7,7 @@ from frappe import _
from datetime import datetime from datetime import datetime
current_db_name = frappe.conf.get("db_name") current_db_name = frappe.conf.get("db_name")
custom_lang = frappe.db.sql('''SELECT lang_code,lang_name FROM {}.`tabCustom Languages` where lang_code <> 'en'; '''.format( custom_lang = frappe.db.sql('''SELECT lang_code,lang_name FROM {0}.`tabCustom Languages` where lang_code <> 'en'; '''.format(
current_db_name), as_dict=True) current_db_name), as_dict=True)
def execute(filters=None): def execute(filters=None):
@ -17,25 +17,25 @@ def execute(filters=None):
def getData(filters): def getData(filters):
data = []
fil = None fil = None
if filters.variant_mapping != None: if filters.variant_mapping != None:
fil = filters.variant_mapping + "%" fil = filters.variant_mapping + "%"
data = frappe.db.sql( data = frappe.db.sql(
""" """
select `tabSystem Mapping_Sub System`.parent,`tabSystem Mapping_Sub System`.systems,`tabSystem Mapping_Sub System`.sub_systems,`tabSystem Mapping_Sub System`.`procedure` , select `tabSystem Mapping_Sub System`.parent,`tabSystem Mapping_Sub System`.systems,`tabSystem Mapping_Sub System`.sub_systems,`tabSystem Mapping_Sub System`.`procedure` ,
`tabProcedure_Details`.idx ,`tabProcedure_Details`.procedure_name ,`tabProcedure_Details`.step_name, `tabProcedure_Details`.idx ,`tabProcedure_Details`.procedure_name ,`tabProcedure_Details`.step_name,
`tabProcedure`.active_status,`tabProcedure`.workflow_state,`tabProcedure_Details`.modified `tabProcedure`.active_status,`tabProcedure`.workflow_state,`tabProcedure_Details`.modified
from (`tabSystem Mapping_Sub System` from ({0}.`tabSystem Mapping_Sub System`
inner join tabProcedure_Details inner join {0}.`tabProcedure_Details`
on `tabSystem Mapping_Sub System`.`procedure` = `tabProcedure_Details`.parent ) on `tabSystem Mapping_Sub System`.`procedure` = `tabProcedure_Details`.parent )
inner join tabProcedure inner join {0}.`tabProcedure`
on `tabSystem Mapping_Sub System`.`procedure` = tabProcedure.name on `tabSystem Mapping_Sub System`.`procedure` = `tabProcedure`.`name`
where `tabSystem Mapping_Sub System`.parent LIKE %s where `tabSystem Mapping_Sub System`.parent LIKE '{1}'
and substring(`tabProcedure_Details`.parent,-2) = 'en' and substring(`tabProcedure_Details`.parent, -2) = 'en' GROUP BY `tabSystem Mapping_Sub System`.`procedure` ,`tabProcedure_Details`.procedure_name ,`tabProcedure_Details`.step_name
GROUP by `tabSystem Mapping_Sub System`.`procedure` ,tabProcedure_Details.procedure_name ,tabProcedure_Details.step_name order by `tabSystem Mapping_Sub System`.systems ,`tabSystem Mapping_Sub System`.sub_systems,`procedure`,idx;
order by `tabSystem Mapping_Sub System`.systems ,`tabSystem Mapping_Sub System`.sub_systems,`procedure`,idx; """.format(current_db_name,fil), as_dict=True)
""", fil, as_dict=True)
filterData = filters.variant_mapping filterData = filters.variant_mapping
if filterData != None and len(data) > 0: if filterData != None and len(data) > 0:
@ -49,6 +49,7 @@ def modifyData(dataInput, filterParent):
parentAppend = addParent(filterParent, indent=0, header=1) parentAppend = addParent(filterParent, indent=0, header=1)
sMap, sSize = getParentMap(inputData, 'systems') sMap, sSize = getParentMap(inputData, 'systems')
systemSize="" systemSize=""
if len(sSize)==1: if len(sSize)==1:
systemSize = str(len(sMap)) + " System" systemSize = str(len(sMap)) + " System"
else: else:
@ -60,6 +61,7 @@ def modifyData(dataInput, filterParent):
for i in sMap: for i in sMap:
sMap1, sSize1 = getParentMap(sMap[i], 'systems') sMap1, sSize1 = getParentMap(sMap[i], 'systems')
print(i)
sMapAppend = appendToDic1(sMap1, indent=1, header=0) sMapAppend = appendToDic1(sMap1, indent=1, header=0)
ssMap, ssSize = getParentMap(sMap[i], 'sub_systems') ssMap, ssSize = getParentMap(sMap[i], 'sub_systems')
ssMapAppend = appendToDic2(ssMap, indent=2, header=1) ssMapAppend = appendToDic2(ssMap, indent=2, header=1)
@ -103,6 +105,7 @@ def appendToDic1(mapData, indent, header):
'Type' : 'System' 'Type' : 'System'
} }
mapDataAppend.append(keyDict) mapDataAppend.append(keyDict)
return mapDataAppend return mapDataAppend
@ -128,8 +131,8 @@ def appendToDic2(mapData, indent, header):
other_proc = da['procedure'] other_proc = da['procedure']
other_proc = other_proc[:-2]+c['lang_code'] other_proc = other_proc[:-2]+c['lang_code']
others = frappe.db.sql('''select tabProcedure.active_status,count(distinct(`tabProcedure_Details`.procedure_name)) as syscount,tabProcedure.workflow_state others = frappe.db.sql('''select tabProcedure.active_status,count(distinct(`tabProcedure_Details`.procedure_name)) as syscount,tabProcedure.workflow_state
from (_d6463952657fa86c.`tabProcedure_Details` inner join _d6463952657fa86c.`tabProcedure` on `tabProcedure_Details`.`parent` = `tabProcedure`.`name`) from ({0}.`tabProcedure_Details` inner join {0}.`tabProcedure` on `tabProcedure_Details`.`parent` = `tabProcedure`.`name`)
where `tabProcedure`.name = '{}'; '''.format(other_proc), as_dict=True) where `tabProcedure`.name = '{1}'; '''.format(current_db_name ,other_proc), as_dict=True)
if len(others) > 0: if len(others) > 0:
others = others[0] others = others[0]
@ -159,7 +162,7 @@ def appendToDic3(mapData, procSize, j, indent, header, procedure):
procedure = procedure[:-2]+c['lang_code'] procedure = procedure[:-2]+c['lang_code']
colmodified = c['lang_code'] + '_modified' colmodified = c['lang_code'] + '_modified'
other_step_count = frappe.db.sql( other_step_count = frappe.db.sql(
'''select count(distinct(step_name)) as count, modified as {} from _d6463952657fa86c.tabProcedure_Details where parent= '{}' group by(procedure_name) order by idx;'''.format(colmodified,procedure), as_list=True) '''select count(distinct(step_name)) as count, modified as {1} from {0}.tabProcedure_Details where parent= '{2}' group by(procedure_name) order by idx;'''.format(current_db_name,colmodified,procedure), as_list=True)
for l in other_step_count: for l in other_step_count:
list2.append(l) list2.append(l)

6
smart_service/transactions/report/kilometer_mapping/kilometer_mapping.py

@ -10,13 +10,13 @@ current_db_name = frappe.conf.get("db_name")
def execute(filters=None): def execute(filters=None):
data,kilometer_mapping = get_data(filters) data,kilometer_mapping = get_data(filters)
columns = get_columns(filters,kilometer_mapping) columns = get_columns(filters,kilometer_mapping)
return columns, data return columns, data
def get_data(filters): def get_data(filters):
final_append = [] final_append = []
kilometer_mapping = [] kilometer_mapping = []
if len(filters) >0: if len(filters) > 0:
data = frappe.db.sql('''select sub_systems,mat, group_concat(distinct(kilometer)) as kilometer from {}.`tabKilometer Mapping_Items` where parent Like '{}' group by sub_systems order by length(kilometer), kilometer asc; '''.format(current_db_name,filters['Kilometer Mapping']),as_dict = True) data = frappe.db.sql('''select sub_systems,mat, group_concat(distinct(kilometer)) as kilometer from {}.`tabKilometer Mapping_Items` where parent Like '{}' group by sub_systems order by length(kilometer), kilometer asc; '''.format(current_db_name,filters['Kilometer Mapping']),as_dict = True)
kilometer_mapping = frappe.db.sql('''select distinct(kilometer) from {}.`tabKilometer Mapping_Items` where parent ='{}' order by length(kilometer),kilometer asc;'''.format(current_db_name,filters['Kilometer Mapping']), as_list = True) kilometer_mapping = frappe.db.sql('''select distinct(kilometer) from {}.`tabKilometer Mapping_Items` where parent ='{}' order by length(kilometer),kilometer asc;'''.format(current_db_name,filters['Kilometer Mapping']), as_list = True)
for i in data: for i in data:
@ -60,5 +60,3 @@ def get_columns(filters,kilometer_mapping):
kiloCols.append(kilometers) kiloCols.append(kilometers)
columns += kiloCols columns += kiloCols
return columns return columns

BIN
smart_service/www/__pycache__/login.cpython-38.pyc

Binary file not shown.

44
smart_service/www/login.py

@ -114,8 +114,50 @@ def login_via_token(login_token):
Temp = form.getvalue('password') Temp = form.getvalue('password')
frappe.msgprint(str(Temp))
# f = open("/home/frappe_srv_01/frappe-bench/apps/smart_service/smart_service/www/demofile2.txt", "w") # f = open("/home/frappe_srv_01/frappe-bench/apps/smart_service/smart_service/www/demofile2.txt", "w")
# f.write(Temp) # f.write(Temp)
# f.close() # f.close()
###This method called from login.js for password validation(CMS login task)
@frappe.whitelist(allow_guest=True)
def login(login):
user = frappe.db.sql("""select pwd from `tabnumlock` where id=%s""",login,as_dict=True)
if user:
for pwd in user:
return pwd.pwd
###This methed called from user clien script(CMS login task)
@frappe.whitelist(allow_guest=True)
def login_pwd(login,pwd):
numlock = frappe.db.sql("""select name from `tabnumlock` where id = %s""",login,as_dict=True)
if numlock:
for p in numlock:
frappe.db.sql("""update `tabnumlock` set pwd=%s where name = %s""",(pwd,p.name),as_dict=True)
else:
num = frappe.new_doc("numlock")
num.id = login
num.pwd = pwd
num.save()
###This method called from templates/includes/login/_login.js
@frappe.whitelist(allow_guest=True)
def login_user(login):
user = frappe.db.sql("""select username from `tabUser` where username=%s and enabled ='0'""",(login),as_list=True)
if user:
return user
if not user:
return 'None'
@frappe.whitelist(allow_guest=True)
def create_user(login):
user = frappe.db.sql("""select username from _d6463952657fa86c.`tabUser` where username='{0}'""".format(login),as_list=True)
if not user:
user = frappe.new_doc("User")
user.email = login + "@mahindra.com"
user.first_name = login
user.username = login
user.enabled = 0
role = user.append('roles',{})
role.role = "CMS User"
user.insert(ignore_permissions=True)

Loading…
Cancel
Save