def get_open_tickets_details(user, tkts_list): """get open tickets details""" from utils import build_table args = {} tickets = { "head": ["SR", "Ticket ID", "Subject", "Department", "Opening Date", "Opening Time"], "total": len(tkts_list) } idx = 1 for tkt_id in tkts_list: doc = frappe.get_doc("Issue", tkt_id) tickets.update({ idx: [idx, doc.name, doc.subject, doc.department, str(doc.opening_date), str(doc.opening_time)] }) idx += 1 args.update({ "user": user, "email": frappe.db.get_value("User", user, "email"), "action": "open_tickets", "tickets_details": build_table(tickets), }) return args
def get_open_tickets_details(user, tkts_list): """get open tickets details""" from utils import build_table args = {} tickets = { "head": [ "SR", "Ticket ID", "Subject", "Department", "Opening Date", "Opening Time" ], "total": len(tkts_list) } idx = 1 for tkt_id in tkts_list: doc = frappe.get_doc("Issue", tkt_id) tickets.update({ idx: [ idx, doc.name, doc.subject, doc.department, str(doc.opening_date), str(doc.opening_time) ] }) idx += 1 args.update({ "user": user, "email": frappe.db.get_value("User", user, "email"), "action": "open_tickets", "tickets_details": build_table(tickets), }) return args
def get_tickets_details_that_cant_be_escalate(records): """get tickets details that cant be escalate""" from utils import build_table, get_dept_head_user args = {} for dept,record in records.iteritems(): tickets = { "head": ["SR", "Ticket ID", "Subject", "Department", "Opening Date & Time", "Assigned To", "Assigned On", "Ticket Status"], "total": len(record) } idx = 1 for tkt in record: doc = frappe.get_doc("Issue", tkt.get("ticket_id")) datetime_str = "{date} {time}".format(date=doc.opening_date, time=doc.opening_time) tickets.update({ idx: [idx, doc.name, doc.subject, doc.department, datetime_str, tkt.get("current_owner"), tkt.get("assigned_on"), doc.status] }) dept_head = get_dept_head_user(dept) args.update({ dept_head:{ "user": dept_head, "email": frappe.db.get_value("User", dept_head, "email"), "action": "cant_escalate_tickets", "tickets_details": build_table(tickets), } }) return args
def get_tickets_details_that_cant_be_escalate(records): """get tickets details that cant be escalate""" from utils import build_table, get_dept_head_user args = {} for dept, record in records.iteritems(): tickets = { "head": [ "SR", "Ticket ID", "Subject", "Department", "Opening Date & Time", "Assigned To", "Assigned On", "Ticket Status" ], "total": len(record) } idx = 1 for tkt in record: doc = frappe.get_doc("Issue", tkt.get("ticket_id")) datetime_str = "{date} {time}".format(date=doc.opening_date, time=doc.opening_time) tickets.update({ idx: [ idx, doc.name, doc.subject, doc.department, datetime_str, tkt.get("current_owner"), tkt.get("assigned_on"), doc.status ] }) dept_head = get_dept_head_user(dept) args.update({ dept_head: { "user": dept_head, "email": frappe.db.get_value("User", dept_head, "email"), "action": "cant_escalate_tickets", "tickets_details": build_table(tickets), } }) return args
def send_new_ticket_notification(doc): from utils import send_mail, build_table ticket = { "total": 6, # "head": ["Ticket ID", "Department", "Opening Date", "Opening Time", "Subject", "Raised By"] 1: ["Ticket ID", doc.name], 2: ["Department", doc.department], 3: ["Opening Date", doc.opening_date], 4: ["Opeing Time", doc.opening_time], 5: ["Subject", doc.subject], 6: ["Raised By", doc.raised_by] } args = { "email": doc.raised_by, "user": doc.raised_by, "issue": doc.name, "action": "new_ticket", "ticket_detail": build_table(ticket, is_horizontal=True) } send_mail(args, "[HelpDesk][New Ticket] HelpDesk Notifications")
def send_new_ticket_notification(doc): from utils import send_mail, build_table ticket = { "total":6, # "head": ["Ticket ID", "Department", "Opening Date", "Opening Time", "Subject", "Raised By"] 1:["Ticket ID", doc.name], 2:["Department", doc.department], 3:["Opening Date", doc.opening_date], 4:["Opeing Time", doc.opening_time], 5:["Subject", doc.subject], 6:["Raised By", doc.raised_by] } args = { "email": doc.raised_by, "user": doc.raised_by, "issue": doc.name, "action": "new_ticket", "ticket_detail": build_table(ticket, is_horizontal=True) } send_mail(args, "[HelpDesk][New Ticket] HelpDesk Notifications")
def closed_ticket_notifications(): date = add_days(getdate(), -1) query = """select name, question, resolution_date from tabIssue where resolution_date between '{from_date}' and '{to_date}'""".format(from_date="%s 00:00:00" % date, to_date="%s 23:59:59" % date) names = frappe.db.sql(query, as_dict=True) tickets = {} if names: tickets = { "head": ["SR", "Ticket ID", "Question", "Resolution Date"], "total": len(names) } idx = 1 for tkt in names: tickets.update({ idx: [ idx, tkt.get("name"), tkt.get("question"), tkt.get("resolution_date") ] }) idx += 1 args = { "email": frappe.db.get_value("User", "Administrator", "name"), "user": "******", "action": "aggr_ticket_closed", "date": date, "ticket_detail": build_table(tickets) } send_mail(args, "[HelpDesk][Tickets Closed] HelpDesk Notifications")
def overdue_ticket_notifications(): date = add_days(getdate(), -1) query = """select distinct(tabIssue.name), tabIssue.question, tabIssue.branch, tabIssue.opening_date, tabIssue.opening_time, tabIssue.department, tabIssue.raised_by,tabToDo.owner FROM tabIssue LEFT JOIN tabToDo ON tabIssue.name=tabToDo.reference_name where tabIssue.status<>"Closed" and tabIssue.name in (select td.reference_name from tabToDo td where td.reference_type='Issue' and td.status='Open'and td.date<='{date}')""".format( date="%s" % date, ) names = frappe.db.sql(query, as_dict=True) tickets = {} if names: tickets = { "head": [ "SR", "Ticket ID", "Question", "Branch", "Opening Date", "Opening Time", "Assigned To" ], "total": len(names) } idx = 1 for tkt in names: tickets.update({ idx: [ idx, tkt.get("name"), tkt.get("question"), tkt.get("branch"), tkt.get("opening_date"), tkt.get("opening_time"), tkt.get("owner") ] }) idx += 1 ticket = { "total": 6, 1: ["Ticket ID", tkt.get("name")], 2: ["Branch", tkt.get("branch")], 3: ["Category", tkt.get("department")], 4: ["Opening Date", tkt.get("opening_date")], 5: ["Opening Time", tkt.get("opening_time")], 6: ["Question", tkt.get("question")], 7: ["Raised By", tkt.get("raised_by")], 8: ["Assigned To", tkt.get("owner")] } _args = { "date": date, "issue": tkt.get("name"), "user": tkt.get("raised_by"), "action": "aggr_ticket_overdue", "email": tkt.get("raised_by"), "ticket_detail": build_table(ticket, is_horizontal=True) } send_mail(_args, "[HelpDesk][Ticket Overdue] HelpDesk Notifications") args = { "email": frappe.db.get_value("User", "Administrator", "email"), "user": "******", "action": "aggr_ticket_overdue", "date": date, "ticket_detail": build_table(tickets) } send_mail(args, "[HelpDesk][Tickets Overdue] HelpDesk Notifications")
continue if verbose: print '\n', player.name, ':' if player.eligible(min_age, min_mins, min_goals, verbose): team_file.write(str(player) + '\n') team_file.flush() if verbose: print '\t' + utils.colored('Saved\n', 'green') players_log.write(player.name + '\n') players_log.flush() team_file.close() players_log.seek(0) players_log.truncate() players_log.flush() teams_log.write(team_name + '\n') teams_log.flush() players_log.close() teams_log.close() shutil.rmtree(session_dir) print utils.colored('''Download complete! Writing to database''', 'green') num = utils.build_table(league_nation, league_name) if num != False: print "Total", utils.colored(num, 'blue'), "players found in", utils.colored(league_name, 'blue') else: print 'Not a single suitable player found.'