Commit 5201d429 authored by John Red Medrano's avatar John Red Medrano

Merge branch 'RMSv2' of http://42.61.118.105:7990/scm/rms/api-main-service into red-develop

parents bea53060 e7f6d39a
......@@ -215,6 +215,22 @@ class ChangeRequestFormsViewset(viewsets.ModelViewSet):
overdue_filtered = change_request.filter_overdue(self.queryset)
overdue = overdue_filtered.count()
# server side computations
# status_total = pending + approved + rejected + cancelled + completed
# close = rejected + cancelled + completed
# opened = pending + approved
# open_percent = round((opened/status_total) * 100)
# close_percent = round((close/status_total) * 100)
# priority_total = high + normal
# high_percent = round((high/priority_total) * 100)
# normal_percent = round((normal/priority_total) * 100)
message = {
'account_no': id_number,
......@@ -227,6 +243,10 @@ class ChangeRequestFormsViewset(viewsets.ModelViewSet):
'normal': normal,
'awaiting': awaiting,
'overdue': overdue,
# 'open_percent': open_percent,
# 'close_percent': close_percent,
# 'high_percent': high_percent,
# 'normal_percent': normal_percent,
'code': 200,
'status': 'success',
'message': 'Dashboard Summary'
......
......@@ -190,7 +190,7 @@ class ChangeRequestTemplatesViewset(viewsets.ModelViewSet):
template_no = kwargs['template_no']
body_data = request.data
tmp_no_exists = models.ChangeRequestFormHeader.objects.filter(
template_no=template_no)
......
......@@ -656,7 +656,9 @@ def reset_autoemail_tables(form_code):
return True
def cancelled_user_trigger(form_code):
def cancelled_user_trigger(form_code,
action,
routing_level):
cr_link = f'{CR_FRONT_LINK}/{form_code}'
template_instance = get_template_instance(form_code)
......@@ -666,6 +668,7 @@ def cancelled_user_trigger(form_code):
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_by_username = template_instance.requested_by_user.username
requested_to_priority = template_instance.requested_to_priority
cr_status = template_instance.status
......@@ -682,22 +685,25 @@ def cancelled_user_trigger(form_code):
company_name = company.values_list('name', flat=True)[0]
# get details of approvers received an email about the CR
# received_approvers = models.ChangeRequestFormApprovers.objects.filter(
# ~Q(date_sent=None) &
# Q(form_code=form_code)
# )
received_form_approvers = models.ChangeRequestFormApprovers.objects.filter(
~Q(date_sent=None) &
Q(form_code=form_code)
)
received_form_approvers = received_form_approvers.values_list('user_id')
received_approvers = models.ChangeRequestHistory.objects.filter(
received_history_approvers = models.ChangeRequestHistory.objects.filter(
Q(form_code=form_code) &
Q(entity='CR_FRM_APPROVER') &
Q(main_action='ACTION')
).values_list('modifiedby', flat=True).distinct()
received_approvers = models.User.objects.filter(
username__in=received_approvers)
received_history_approvers = models.User.objects.filter(
Q(username__in=received_history_approvers) |
Q(code__in=received_form_approvers)
).exclude(username=requested_by_username)
# comment
# LOOP on next approver for sending email
for n_approver in received_approvers:
for n_approver in received_history_approvers:
# NOTIF MSG FOR NEXT APPROVER
msg = CANCEL_MESSAGE.split(';')[0]
......@@ -711,23 +717,27 @@ def cancelled_user_trigger(form_code):
# call sender email
name = receiver_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
status = cr_status
url = cr_link
remarks = 'None'
recipient = receiver_email
action_type = action
delegation_type = 'others'
admin = sender_email
args = [name, cr_number, cr_name,
args = [name, action_by, routing_level, status, cr_number, cr_name,
company_requestedto, department_requestedto, priority_level,
status, url, recipient, delegation_type, admin]
url, remarks, recipient, action_type, delegation_type, admin]
main_threading(args, sender.routing_table_actions_required)
main_threading(args, sender.routing_table_actions)
message = f"{sender_name} {msg} ({template_name})"
......
......@@ -589,22 +589,12 @@ def cr_routing_actions(approver_instance, current_user):
)
else:
prev_vendor = check_vendor_level(
'prev', level, form_code)
if prev_vendor.count() > 0:
# 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
# )
notification_msg = REVISED_MESSAGE.split(';')[0]
send_mail_vendor(
......@@ -624,10 +614,10 @@ def cr_routing_actions(approver_instance, current_user):
date_sent=datetime.now()
)
level = last_action_vendor.level
# level = last_action_vendor.level
# print(level)
models.ChangeRequestFormApprovers.objects.filter(
Q(form_code=form_code) & Q(level__gt=int(level))
Q(form_code=form_code) & Q(level__gte=int(level))
).update(
is_action=False,
action=None,
......@@ -636,46 +626,8 @@ def cr_routing_actions(approver_instance, current_user):
date_sent=None
)
# else:
# 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
# )
elif approver_instance['action'].lower() == 'rejected':
# send email to vendor
# if delegation.lower() == 'requestor':
# notification_msg = VENDOR_REJECT_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:
update_form_header_status(form_code, 'Rejected')
# EMAIL CODE FOR REQUESTOR
......@@ -758,7 +710,7 @@ def cr_routing_actions(approver_instance, current_user):
elif action.lower() == 'cancelled':
# send email and notif to anyone who received an email about the change request
cancelled_user_trigger(form_code)
cancelled_user_trigger(form_code, action, level)
# changed form status to cancelled
update_form_header_status(form_code, 'Cancelled')
......@@ -767,9 +719,8 @@ def cr_routing_actions(approver_instance, current_user):
# update is_action for current level
update_form_approver(form_code, level, 'current', date_now)
reset_autoemail_tables(form_code)
return True
......
......@@ -273,7 +273,7 @@ def routing_table_actions(args):
F = open(os.path.join(settings.EMAIL_TEMPLATES_ROOT, email_template), 'r')
FC = F.read()
FC = FC.replace('{name}', name)
FC = FC.replace('{action_by}', action_by)
FC = FC.replace('{routing_level}', routing_level)
......
<<<<<<< HEAD
<!DOCTYPE html>
<html>
<head>
......@@ -10,7 +9,7 @@
<h3 style="color:#888888;">Change Request Cancelled</h3><br>
<p>Dear {name},</p><br>
<p>Your change request has been cancelled. Please see the details of the change request below.</p><br>
<p>A change request has been cancelled. Please see the details of the change request below.</p><br>
<b>Cancelled By</b><br>{action_by}<br><br>
<b>Routing Level</b><br>{routing_level}<br><br>
......@@ -31,38 +30,4 @@
<img src="https://s3-ap-southeast-1.amazonaws.com/oneberry/img/logo_oneberry.png" class="img-responsive" style="width:150px;height:auto;" />
</body>
=======
<!DOCTYPE html>
<html>
<head>
<title>RMS: Change Request Cancelled</title>
</head>
<body style="font-family: arial;">
<h3>Resource Management System &#40;RMS&#41;</h3>
<h3 style="color:#888888;">Change Request Cancelled</h3><br>
<p>Dear {name},</p><br>
<p>Your change request has been cancelled. Please see the details of the change request below.</p><br>
<b>Cancelled By</b><br>{action_by}<br><br>
<b>Routing Level</b><br>{routing_level}<br><br>
<b>Status</b><br>{status}<br><br><br>
<b>CR Number</b><br>{cr_number}<br><br>
<b>CR Name</b><br>{cr_name}<br><br>
<b>Company Requested To</b><br>{company_requestedto}<br><br>
<b>Department Requested To</b><br>{department_requestedto}<br><br>
<b>Priority Level</b><br>{priority_level}<br><br>
<p>Please click <u><a href="{url}" style="text-decoration:underline;color:#007bff;" target="_blank">here</a></u> to access your change request.</p><br>
<p>Sincerely,</p>
<p>RMS Team</p><br><br>
<p>Powered by</p>
<img src="https://s3-ap-southeast-1.amazonaws.com/oneberry/img/logo_oneberry.png" class="img-responsive" style="width:150px;height:auto;" />
</body>
>>>>>>> bd79850f02d697447131ae812adc4b42cf78960a
</html>
\ No newline at end of file
<<<<<<< HEAD
<!DOCTYPE html>
<html>
<head>
<title>RMS: Change Request Rejected</title>
<title>RMS: Change Request Revision</title>
</head>
<body style="font-family: arial;">
......@@ -33,40 +32,4 @@
<img src="https://s3-ap-southeast-1.amazonaws.com/oneberry/img/logo_oneberry.png" class="img-responsive" style="width:150px;height:auto;" />
</body>
=======
<!DOCTYPE html>
<html>
<head>
<title>RMS: Change Request Rejected</title>
</head>
<body style="font-family: arial;">
<h3>Resource Management System &#40;RMS&#41;</h3>
<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>
<b>Rejected By</b><br>{action_by}<br><br>
<b>Routing Level</b><br>{routing_level}<br><br>
<b>Status</b><br>{status}<br><br><br>
<b>CR Number</b><br>{cr_number}<br><br>
<b>CR Name</b><br>{cr_name}<br><br>
<b>Company Requested To</b><br>{company_requestedto}<br><br>
<b>Department Requested To</b><br>{department_requestedto}<br><br>
<b>Priority Level</b><br>{priority_level}<br><br>
<b>Remarks</b><br>{remarks}<br><br>
<p>Please click <u><a href="{url}" style="text-decoration:underline;color:#007bff;" target="_blank">here</a></u> to access your change request.</p><br>
<p>Sincerely,</p>
<p>RMS Team</p><br><br>
<p>Powered by</p>
<img src="https://s3-ap-southeast-1.amazonaws.com/oneberry/img/logo_oneberry.png" class="img-responsive" style="width:150px;height:auto;" />
</body>
>>>>>>> bd79850f02d697447131ae812adc4b42cf78960a
</html>
\ No newline at end of file
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