Commit cd053dbd authored by Gladys Forte's avatar Gladys Forte

reject new routing action

parent 94aa12c1
......@@ -208,6 +208,7 @@ def send_mail_vendor(requestor,
recipient = vendor_email
action_type = action
delegation_type = delegation
delegation_recipient = 'vendor'
admin = sender_email
args = [name, action_by, routing_level, status, cr_number, cr_name,
......@@ -276,11 +277,84 @@ def send_mail_requestor(current_user,
recipient = requestor_email
action_type = action
delegation_type = delegation
delegation_recipient = 'requestor'
admin = sender_email
args = [name, action_by, routing_level, status, cr_number, cr_name,
company_requestedto, department_requestedto, priority_level,
url, remarks, recipient, action_type, delegation_type, admin]
url, remarks, recipient, action_type, delegation_type,
delegation_recipient, admin]
main_threading(args, sender.routing_table_actions)
message = f"{sender_name} {msg} ({template_name})"
# create notification
notification_create(form_code, message, requestor_code,
current_user, 'cms')
def send_mail_approver(current_user,
form_code,
delegation,
msg,
action,
remarks,
routing_level,
approver_code):
cr_link = f'{CR_FRONT_LINK}/{form_code}'
template_instance = get_template_instance(form_code)
cr_number = template_instance.requested_to_template_id
template_name = template_instance.requested_to_template_name
requested_to_company = template_instance.requested_to_company.code
requested_to_department = template_instance.requested_to_department.code
requested_by_user = template_instance.requested_by_user.code
requested_to_priority = template_instance.requested_to_priority
cr_status = template_instance.status
# receiver details --------------------------------------------------
approver_instance = get_account_details(approver_code)
approver_name = approver_instance.values_list('name', flat=True)[0]
approver_email = approver_instance.values_list('email', flat=True)[0]
approver_code = approver_instance.values_list('code', flat=True)[0]
# sender details --------------------------------------------------
sender_instance = get_account_details(current_user)
sender_email = sender_instance.values_list('email', flat=True)[0]
sender_name = sender_instance.values_list('name', flat=True)[0]
department = get_dept_details(requested_to_department)
dept_name = department.values_list('name', flat=True)[0]
company = get_companies_details(requested_to_company)
company_name = company.values_list('name', flat=True)[0]
# call sender email
name = approver_name
action_by = sender_name
routing_level = routing_level
status = cr_status
cr_number = cr_number
cr_name = template_name
company_requestedto = company_name
department_requestedto = dept_name
priority_level = requested_to_priority
url = cr_link
recipient = approver_email
action_type = action
delegation_type = delegation
delegation_recipient = 'approver'
admin = sender_email
args = [name, action_by, routing_level, status, cr_number, cr_name,
company_requestedto, department_requestedto, priority_level,
url, remarks, recipient, action_type, delegation_type,
delegation_recipient, admin]
main_threading(args, sender.routing_table_actions)
......@@ -352,11 +426,13 @@ def next_approver_email(form_code, next_level):
recipient = receiver_email
delegation_type = n_approver.delegation.name.lower()
delegation_recipient = 'None'
admin = sender_email
args = [name, cr_number, cr_name,
company_requestedto, department_requestedto, priority_level,
status, url, recipient, delegation_type, admin]
status, url, recipient, delegation_type,
delegation_recipient, admin]
main_threading(args, sender.routing_table_actions_required)
......@@ -731,11 +807,13 @@ def cancelled_user_trigger(form_code,
recipient = receiver_email
action_type = action
delegation_type = 'others'
delegation_recipient = 'None'
admin = sender_email
args = [name, action_by, routing_level, status, cr_number, cr_name,
company_requestedto, department_requestedto, priority_level,
url, remarks, recipient, action_type, delegation_type, admin]
url, remarks, recipient, action_type, delegation_type,
delegation_recipient, admin]
main_threading(args, sender.routing_table_actions)
......
......@@ -25,7 +25,8 @@ from app.applicationlayer.cms.utils_cr import (
reminder_trigger_save,
overdue_trigger_save,
reset_autoemail_tables,
cancelled_user_trigger
cancelled_user_trigger,
send_mail_approver
)
from app.applicationlayer.utils import model_to_dict
from app.entities import enums, models
......@@ -562,12 +563,12 @@ def cr_routing_actions(approver_instance, current_user, move_to_level):
#save details for reminder trigger
reminder_trigger_save(form_code, date_now, date_now)
elif approver_instance['action'].lower() == 'revised':
elif approver_instance['action'].lower() == 'rejected':
# send email to vendor
if delegation.lower() == 'requestor':
notification_msg = REVISED_MESSAGE.split(';')[0]
notification_msg = VENDOR_REJECT_MESSAGE.split(';')[0]
# send reject email to vendor
send_mail_vendor(
......@@ -590,34 +591,82 @@ def cr_routing_actions(approver_instance, current_user, move_to_level):
else:
prev_vendor = check_vendor_level(
'prev', level, form_code)
# move_to_level
if prev_vendor.count() > 0:
back_to_approver = models.ChangeRequestFormApprovers.objects.filter(
Q(form_code=form_code) &
Q(level=move_to_level)
).first()
print(back_to_approver.delegation.name)
if back_to_approver.delegation.name.lower() == 'requestor':
notification_msg = REVISED_MESSAGE.split(';')[0]
requestor_notification_msg = REQUESTOR_REJECT_MESSAGE.split(';')[0]
# SEND EMAIL AND NOTIF TO REQUESTOR
send_mail_requestor(
current_user, form_code, delegation,
requestor_notification_msg, action,
remarks, level
)
update_form_header_status(form_code, 'Rejected')
elif back_to_approver.delegation.name.lower() == 'vendor/implementor':
vendor_notification_msg = REVISED_MESSAGE.split(';')[0]
# send reject email to vendor
send_mail_vendor(
current_user, form_code, 'others',
notification_msg, action,
current_user, form_code, delegation,
vendor_notification_msg, action,
remarks, level
)
last_action_vendor = prev_vendor.last()
requestor_notification_msg = REQUESTOR_REJECT_MESSAGE.split(';')[0]
# SEND EMAIL AND NOTIF TO REQUESTOR
send_mail_requestor(
current_user, form_code, delegation,
requestor_notification_msg, action,
remarks, level
)
# reset selected vendor details
models.ChangeRequestFormApprovers.objects.filter(
code=last_action_vendor
Q(form_code=form_code) &
Q(level=int(move_to_level))
).update(
is_action=True,
action='Acknowledged',
action_date=datetime.now(),
date_sent=datetime.now()
)
)
else:
approver_code = back_to_approver.user.code
approver_notification_msg = REVISED_MESSAGE.split(';')[0]
send_mail_approver(
current_user, form_code, delegation,
approver_notification_msg, action, remarks,
level, approver_code
)
# level = last_action_vendor.level
# print(level)
requestor_notification_msg = REQUESTOR_REJECT_MESSAGE.split(';')[0]
# SEND EMAIL AND NOTIF TO REQUESTOR
send_mail_requestor(
current_user, form_code, delegation,
requestor_notification_msg, action,
remarks, level
)
models.ChangeRequestFormApprovers.objects.filter(
Q(form_code=form_code) & Q(level__gte=int(level))
Q(form_code=form_code) & Q(level__gt=int(move_to_level))
).update(
is_action=False,
action=None,
......@@ -625,87 +674,6 @@ def cr_routing_actions(approver_instance, current_user, move_to_level):
action_date=None,
date_sent=None
)
elif approver_instance['action'].lower() == 'rejected':
# update_form_header_status(form_code, 'Rejected')
# # EMAIL CODE FOR REQUESTOR
# requestor_notification_msg = REQUESTOR_REJECT_MESSAGE.split(';')[0]
# # SEND EMAIL AND NOTIF TO REQUESTOR
# send_mail_requestor(
# current_user, form_code, delegation,
# requestor_notification_msg, action,
# remarks, level
# )
# send email to vendor
if delegation.lower() == 'requestor':
notification_msg = REVISED_MESSAGE.split(';')[0]
# send reject email to vendor
send_mail_vendor(
current_user, form_code, delegation,
notification_msg, action,
remarks, level
)
prev_level = int(level) - 1
# reset last vendor details
models.ChangeRequestFormApprovers.objects.filter(
Q(form_code=form_code) &
Q(level=int(prev_level))
).update(
is_action=True,
action='Acknowledged',
action_date=datetime.now(),
date_sent=datetime.now()
)
else:
# move_to_level
back_to_approver = models.ChangeRequestFormApprovers.objects.filter(
Q(form_code=form_code) & Q(level=move_to_level)
).first()
print(back_to_approver.delegation.name)
# prev_vendor = check_vendor_level(
# 'prev', level, form_code)
# if prev_vendor.count() > 0:
# notification_msg = REVISED_MESSAGE.split(';')[0]
# send_mail_vendor(
# current_user, form_code, 'others',
# notification_msg, action,
# remarks, level
# )
# last_action_vendor = prev_vendor.last()
# models.ChangeRequestFormApprovers.objects.filter(
# code=last_action_vendor
# ).update(
# is_action=True,
# action='Acknowledged',
# action_date=datetime.now(),
# date_sent=datetime.now()
# )
# models.ChangeRequestFormApprovers.objects.filter(
# Q(form_code=form_code) & Q(level__gte=int(level))
# ).update(
# is_action=False,
# action=None,
# remarks=None,
# action_date=None,
# date_sent=None
# )
elif approver_instance['action'].lower() == 'completed':
......
......@@ -243,7 +243,8 @@ def routing_table_actions(args):
recipient = args[11]
action_type = args[12]
delegation_type = args[13]
admin = args[14]
delegation_recipient = args[14]
admin = args[15]
if args[12].lower() == 'approved':
email_template = 'RMS-CRAPPROVED.html'
......@@ -258,20 +259,18 @@ def routing_table_actions(args):
email_template = 'RMS-CRACCEPTED.html'
subject = 'Resource Management System - Change Request Accepted'
elif args[12].lower() == 'rejected':
subject = 'Resource Management System - Change Request Rejected'
if args[13].lower() == 'requestor' or args[13].lower() == 'others':
email_template = 'RMS-CRREJECTED-VENDOR.html'
else:
if args[14].lower() == 'requestor':
subject = 'Resource Management System - Change Request Rejected'
email_template = 'RMS-CRREJECTED.html'
elif args[12].lower() == 'revised':
subject = 'Resource Management System - Action Required for Change Request'
email_template = 'RMS-CRREVISED.html'
elif args[14].lower() == 'vendor' or args[14].lower() == 'approver':
subject = 'Resource Management System - Action Required for Change Request'
email_template = 'RMS-CRREVISED.html'
elif args[12].lower() == 'cancelled':
subject = 'Resource Management System - Change Request Cancelled'
email_template = 'RMS-CRCANCELLED-USERTRIGGER.html'
F = open(os.path.join(settings.EMAIL_TEMPLATES_ROOT, email_template), 'r')
FC = F.read()
FC = FC.replace('{name}', name)
......@@ -285,15 +284,15 @@ def routing_table_actions(args):
FC = FC.replace('{priority_level}', priority_level)
FC = FC.replace('{url}', url)
if args[12].lower() == 'rejected' or args[12].lower() == 'revised':
if args[12].lower() == 'rejected':
FC = FC.replace('{remarks}', remarks)
if email_template == 'RMS-CRREJECTED-VENDOR.html':
if email_template == 'RMS-CRREVISED.html':
if args[13].lower() == 'requestor':
FC = FC.replace('{delegation}', 'requestor')
if args[14].lower() == 'vendor':
FC = FC.replace('{action_revise}', 'acknowledgement')
else:
FC = FC.replace('{delegation}', 'approver')
FC = FC.replace('{action_revise}', 'approval')
try:
send_mail(
......
......@@ -9,7 +9,7 @@
<h3 style="color:#888888;">Change Request Revision</h3><br>
<p>Dear {name},</p><br>
<p>A change request has been submitted for your acknowledgement to revise. Please see the details of the change request below.</p><br>
<p>A change request has been submitted for your {action_revise} to revise. Please see the details of the change request below.</p><br>
<b>Rejected By</b><br>{action_by}<br><br>
<b>Routing Level</b><br>{routing_level}<br><br>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment