Commit ac916bcd authored by Gladys Forte's avatar Gladys Forte

refactor actions code

parent bfaed074
......@@ -495,100 +495,6 @@ class ChangeRequestFormsViewset(viewsets.ModelViewSet):
except Exception as e:
return Response(e,
status=status.HTTP_500_INTERNAL_SERVER_ERROR)
@transaction.atomic()
@action(
methods=['PATCH'], detail=True,
url_path='re_route', url_name='re_route'
)
def re_route(self, request, *args, **kwargs):
# generate batchno history
batchno = get_max_batchno("batch")
# partial update
partial = kwargs.pop('partial', True)
instance = self.get_object()
form_code = kwargs['form_code']
status_update = {"status": 'Pending'}
serializer = self.get_serializer(instance,
data=status_update,
partial=partial)
serializer.is_valid(raise_exception=True)
old_instance = model_to_dict(instance)
self.perform_update(serializer)
form_header = get_object_or_404(models.ChangeRequestFormHeader,
pk=instance.id)
new_instance = model_to_dict(form_header)
# save history in form header
crhistory_save(
batchno,
enums.CREnum.REROUTE.value,
enums.CREnum.UPDATE.value,
enums.CREntitiesEnum.CR_FRM_HEADER.value,
form_code,
old_instance,
new_instance
)
approver_data = []
# get all approvers of form
approvers = models.ChangeRequestFormApprovers.objects.filter(
form_code=form_code)
for approver in approvers:
approver_add = {
'id': approver.id,
'action': None,
'remarks': None,
'date_sent': None,
'action_date': None,
'is_action': False
}
approver_data.append(approver_add)
change_request.form_add_edit_delete(
approver_data,
models.ChangeRequestFormApprovers,
enums.CREntitiesEnum.CR_FRM_APPROVER.value,
ChangeRequestFormApproversSerializer,
partial,
self,
form_code,
batchno,
enums.CREnum.REROUTE.value
)
min_level = models.ChangeRequestFormApprovers.objects.filter(
form_code=form_code
).aggregate(Min('level'))
min_level = min_level.get('level__min')
next_approver_email(form_code, min_level)
# update next approver details
models.ChangeRequestFormApprovers.objects.filter(
Q(form_code=form_code) & Q(level=int(min_level))
).update(
date_sent=datetime.now()
)
message = status_message_response(
200, 'success',
'Change request form successfully re routed',
serializer.data
)
return Response(message, status=status.HTTP_200_OK)
@transaction.atomic()
@action(
......@@ -690,15 +596,13 @@ class ChangeRequestFormsViewset(viewsets.ModelViewSet):
def actions(self, request, *args, **kwargs):
current_user = self.request.user.code
action_body = request.data
id = action_body.get('id', False)
form_code = action_body.get('form_code', False)
delegation = action_body.get('delegation', False)
# delegation = action_body.get('delegation', False)
action = action_body.get('action', False)
level = action_body.get('level', False)
next_level = int(level) + 1
# level = action_body.get('level', False)
# next_level = int(level) + 1
remarks = action_body.get('remarks', False)
# generate batchno history
......@@ -736,249 +640,251 @@ class ChangeRequestFormsViewset(viewsets.ModelViewSet):
new_instance
)
if action.lower() == 'approved':
change_request.cr_routing_actions(new_instance, current_user)
# if action.lower() == 'approved':
the_next_vendor = models.ChangeRequestFormApprovers.objects.filter(
form_code=form_code, level=int(next_level),
delegation='Vendor/Implementor'
).first()
# the_next_vendor = models.ChangeRequestFormApprovers.objects.filter(
# form_code=form_code, level=int(next_level),
# delegation='Vendor/Implementor'
# ).first()
if the_next_vendor:
the_last_vendor = models.ChangeRequestFormApprovers.objects.filter(
form_code=form_code, delegation='Vendor/Implementor'
).order_by('level').last()
if the_next_vendor == the_last_vendor:
models.ChangeRequestFormHeader.objects.filter(
form_code=form_code
).update(status='Approved')
# if the_next_vendor:
# the_last_vendor = models.ChangeRequestFormApprovers.objects.filter(
# form_code=form_code, delegation='Vendor/Implementor'
# ).order_by('level').last()
# if the_next_vendor == the_last_vendor:
# models.ChangeRequestFormHeader.objects.filter(
# form_code=form_code
# ).update(status='Approved')
# NOTIF MSG FOR REQUESTOR
requestor_notification_msg = REQUESTOR_MESSAGE.split(';')[0]
# # NOTIF MSG FOR REQUESTOR
# requestor_notification_msg = REQUESTOR_MESSAGE.split(';')[0]
# NOTIF MSG FOR NEXT APPROVER
notification_msg = APPROVER_MESSAGE.split(';')[0]
# # NOTIF MSG FOR NEXT APPROVER
# notification_msg = APPROVER_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 AND NOTIF TO REQUESTOR
# send_mail_requestor(
# current_user, form_code, delegation,
# requestor_notification_msg, action,
# remarks, level
# )
next_approver_email(form_code, next_level)
# next_approver_email(form_code, next_level)
date_now = datetime.now()
# update next approver details
models.ChangeRequestFormApprovers.objects.filter(
Q(form_code=form_code) & Q(level=int(next_level))
).update(
date_sent=date_now,
is_action=True
)
# date_now = datetime.now()
# # update next approver details
# models.ChangeRequestFormApprovers.objects.filter(
# Q(form_code=form_code) & Q(level=int(next_level))
# ).update(
# date_sent=date_now,
# is_action=True
# )
# update current approver details
models.ChangeRequestFormApprovers.objects.filter(
Q(form_code=form_code) & Q(level=int(level))
).update(
is_action=False
)
# # update current approver details
# models.ChangeRequestFormApprovers.objects.filter(
# Q(form_code=form_code) & Q(level=int(level))
# ).update(
# is_action=False
# )
reminder_trigger_save(form_code, date_now,
approver_instance.date_sent)
# reminder_trigger_save(form_code, date_now,
# approver_instance.date_sent)
elif action.lower() == 'rejected':
# elif action.lower() == 'rejected':
# send email to vendor
if delegation.lower() == 'requestor':
notification_msg = VENDOR_REJECT_MESSAGE.split(';')[0]
# # send email to vendor
# if delegation.lower() == 'requestor':
# notification_msg = VENDOR_REJECT_MESSAGE.split(';')[0]
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:
# send_mail_vendor(
# current_user, form_code, delegation,
# notification_msg, action,
# remarks, level
# )
prev_vendor = models.ChangeRequestFormApprovers.objects.filter(
Q(form_code=form_code) &
Q(action='Completed') &
Q(delegation='Vendor/Implementor') &
Q(level__lte=int(level))
)
if not prev_vendor.count() > 0:
# 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:
# prev_vendor = models.ChangeRequestFormApprovers.objects.filter(
# Q(form_code=form_code) &
# Q(action='Completed') &
# Q(delegation='Vendor/Implementor') &
# Q(level__lte=int(level))
# )
# if not prev_vendor.count() > 0:
models.ChangeRequestFormHeader.objects.filter(
form_code=form_code
).update(status='Rejected')
# models.ChangeRequestFormHeader.objects.filter(
# form_code=form_code
# ).update(status='Rejected')
# EMAIL CODE FOR REQUESTOR
requestor_notification_msg = REQUESTOR_REJECT_MESSAGE.split(';')[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
)
else:
# 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
# )
# else:
# # 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 = VENDOR_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 = VENDOR_REJECT_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()
)
# 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()
# )
level = last_action_vendor.level + 1
# level = last_action_vendor.level + 1
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 action.lower() == 'completed':
# 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 action.lower() == 'completed':
the_last_vendor = models.ChangeRequestFormApprovers.objects.filter(
form_code=form_code, delegation='Vendor/Implementor'
).order_by('level').last()
if (current_user == the_last_vendor.user.code and
level == the_last_vendor.level):
models.ChangeRequestFormHeader.objects.filter(
form_code=form_code
).update(status='Approved')
else:
the_next_vendor = models.ChangeRequestFormApprovers.objects.filter(
form_code=form_code, level=int(next_level),
delegation='Vendor/Implementor'
).first()
# the_last_vendor = models.ChangeRequestFormApprovers.objects.filter(
# form_code=form_code, delegation='Vendor/Implementor'
# ).order_by('level').last()
# if (current_user == the_last_vendor.user.code and
# level == the_last_vendor.level):
# models.ChangeRequestFormHeader.objects.filter(
# form_code=form_code
# ).update(status='Approved')
# else:
# the_next_vendor = models.ChangeRequestFormApprovers.objects.filter(
# form_code=form_code, level=int(next_level),
# delegation='Vendor/Implementor'
# ).first()
if the_next_vendor:
if the_next_vendor.user.code == the_last_vendor.user.code:
models.ChangeRequestFormHeader.objects.filter(
form_code=form_code
).update(status='Approved')
else:
models.ChangeRequestFormHeader.objects.filter(
form_code=form_code
).update(status='Pending')
next_approver_email(form_code, next_level)
# if the_next_vendor:
# if the_next_vendor.user.code == the_last_vendor.user.code:
# models.ChangeRequestFormHeader.objects.filter(
# form_code=form_code
# ).update(status='Approved')
# else:
# models.ChangeRequestFormHeader.objects.filter(
# form_code=form_code
# ).update(status='Pending')
# next_approver_email(form_code, next_level)
models.ChangeRequestFormApprovers.objects.filter(
Q(level=int(next_level))
).update(
date_sent=datetime.now(),
is_action=True
)
# update current approver details
models.ChangeRequestFormApprovers.objects.filter(
Q(form_code=form_code) & Q(level=int(level))
).update(
is_action=False
)
# EMAIL CODE FOR REQUESTOR
requestor_notification_msg = REQUESTOR_COMPLETION_MESSAGE.split(';')[0]
# models.ChangeRequestFormApprovers.objects.filter(
# Q(level=int(next_level))
# ).update(
# date_sent=datetime.now(),
# is_action=True
# )
# # update current approver details
# models.ChangeRequestFormApprovers.objects.filter(
# Q(form_code=form_code) & Q(level=int(level))
# ).update(
# is_action=False
# )
# # EMAIL CODE FOR REQUESTOR
# requestor_notification_msg = REQUESTOR_COMPLETION_MESSAGE.split(';')[0]
send_mail_requestor(
current_user, form_code, delegation,
requestor_notification_msg, action,
remarks, level
)
# send_mail_requestor(
# current_user, form_code, delegation,
# requestor_notification_msg, action,
# remarks, level
# )
elif action.lower() == 'acknowledged':
# elif action.lower() == 'acknowledged':
# EMAIL CODE FOR REQUESTOR
requestor_notification_msg = REQUESTOR_ACKNOWLEDGE_MESSAGE.split(';')[0]
# # EMAIL CODE FOR REQUESTOR
# requestor_notification_msg = REQUESTOR_ACKNOWLEDGE_MESSAGE.split(';')[0]
send_mail_requestor(
current_user, form_code, delegation,
requestor_notification_msg, action,
remarks, level
)
# send_mail_requestor(
# current_user, form_code, delegation,
# requestor_notification_msg, action,
# remarks, level
# )
elif action.lower() == 'accepted':
# elif action.lower() == 'accepted':
models.ChangeRequestFormHeader.objects.filter(
form_code=form_code
).update(status='Completed & Accepted')
# models.ChangeRequestFormHeader.objects.filter(
# form_code=form_code
# ).update(status='Completed & Accepted')
# EMAIL CODE FOR VENDOR
requestor_notification_msg = VENDOR_ACCEPTANCE_MESSAGE.split(';')[0]
send_mail_vendor(
current_user, form_code, delegation,
requestor_notification_msg, action,
remarks, level
)
# update is_action for current level
models.ChangeRequestFormApprovers.objects.filter(
Q(form_code=form_code) & Q(level=int(level))
).update(
is_action=False
)
elif action.lower() == 'cancelled':
# # EMAIL CODE FOR VENDOR
# requestor_notification_msg = VENDOR_ACCEPTANCE_MESSAGE.split(';')[0]
# send_mail_vendor(
# current_user, form_code, delegation,
# requestor_notification_msg, action,
# remarks, level
# )
# # update is_action for current level
# models.ChangeRequestFormApprovers.objects.filter(
# Q(form_code=form_code) & Q(level=int(level))
# ).update(
# is_action=False
# )
# elif action.lower() == 'cancelled':
# changed form status to cancelled
# # changed form status to cancelled
models.ChangeRequestFormHeader.objects.filter(
form_code=form_code).update(status='Cancelled')
# models.ChangeRequestFormHeader.objects.filter(
# form_code=form_code).update(status='Cancelled')
# update is_action for current level
models.ChangeRequestFormApprovers.objects.filter(
Q(form_code=form_code) & Q(level=int(level))
).update(
is_action=False
)
# # update is_action for current level
# models.ChangeRequestFormApprovers.objects.filter(
# Q(form_code=form_code) & Q(level=int(level))
# ).update(
# is_action=False
# )
reset_autoemail_tables(form_code)
# reset_autoemail_tables(form_code)
message = status_message_response(
200, 'success',
......@@ -1227,6 +1133,8 @@ class ChangeRequestFormsViewset(viewsets.ModelViewSet):
next_approver_email(form_code, min_level)
date_now = datetime.now()
# update next approver details
models.ChangeRequestFormApprovers.objects.filter(
Q(form_code=form_code) & Q(level=int(min_level))
......@@ -1237,6 +1145,10 @@ class ChangeRequestFormsViewset(viewsets.ModelViewSet):
# save details for overdue and auto cancellation
overdue_trigger_save(form_code)
# save details for reminder for first approver
reminder_trigger_save(form_code, date_now,
date_now)
serializer = self.get_serializer(instance)
......@@ -1549,16 +1461,22 @@ class ChangeRequestFormPost(APIView):
next_approver_email(frm_id, min_level)
date_now = datetime.now()
# update next approver details
models.ChangeRequestFormApprovers.objects.filter(
Q(form_code=frm_id) & Q(level=int(min_level))
).update(
date_sent=datetime.now(),
date_sent=date_now,
is_action=True
)
# save details for overdue and auto cancellation
overdue_trigger_save(frm_id)
# save details for reminder for first approver
reminder_trigger_save(frm_id, date_now,
date_now)
message = {
'code': 201,
......
......@@ -20,7 +20,7 @@ REALTIMESERVER_IP = settings.REALTIMESERVER_IP
def model_to_dict(instance):
try:
mySerializer = copy.deepcopy(DynamicSerializer)
mySerializer.Meta.model = instance.__class__
return mySerializer(instance).data
......
......@@ -13,14 +13,33 @@ from django.http import Http404
from django.db.models import Q
from app.applicationlayer.cms.utils_cr import (
number_generator, crhistory_save, entity_log_bulk,
crhistory_log_bulk_delete
number_generator,
crhistory_save,
entity_log_bulk,
crhistory_log_bulk_delete,
send_mail_requestor,
next_approver_email,
send_mail_vendor,
crhistory_create_save,
reminder_trigger_save,
overdue_trigger_save,
reset_autoemail_tables
)
from app.applicationlayer.utils import model_to_dict
from app.entities import enums, models
from app.applicationlayer.utils import log_save, CustomPagination
from app.applicationlayer.cms.template import serializers
from django.db.models import Min
from django.conf import settings
APPROVER_MESSAGE = settings.APPROVER_MESSAGE
REQUESTOR_MESSAGE = settings.REQUESTOR_MESSAGE
REQUESTOR_REJECT_MESSAGE = settings.REQUESTOR_REJECT_MESSAGE
VENDOR_ACKNOWLEDGE_MESSAGE = settings.VENDOR_ACKNOWLEDGE_MESSAGE
REQUESTOR_ACKNOWLEDGE_MESSAGE = settings.REQUESTOR_ACKNOWLEDGE_MESSAGE
REQUESTOR_COMPLETION_MESSAGE = settings.REQUESTOR_COMPLETION_MESSAGE
VENDOR_ACCEPTANCE_MESSAGE = settings.VENDOR_ACCEPTANCE_MESSAGE
VENDOR_REJECT_MESSAGE = settings.VENDOR_REJECT_MESSAGE
def list_by_user(user_id_number):
......@@ -443,7 +462,9 @@ def check_vendor_level(position, routing_level, form_code):
form_code=form_code,
level=int(routing_level),
delegation='Vendor/Implementor'
)
).first()
return query
elif position == 'last':
......@@ -451,6 +472,8 @@ def check_vendor_level(position, routing_level, form_code):
form_code=form_code,
delegation='Vendor/Implementor'
).order_by('level').last()
return query
elif position == 'prev':
......@@ -458,9 +481,265 @@ def check_vendor_level(position, routing_level, form_code):
Q(form_code=form_code) &
Q(action='Completed') &
Q(delegation='Vendor/Implementor') &
Q(level__lte=int(level))
Q(level__lte=int(routing_level))
)
return query
def update_form_approver(form_code, level, apprv_type, date_now):
if apprv_type == 'next':
# update next approver details
models.ChangeRequestFormApprovers.objects.filter(
Q(form_code=form_code) & Q(level=int(level))
).update(
date_sent=date_now,
is_action=True
)
elif apprv_type == 'current':
# update current approver details
models.ChangeRequestFormApprovers.objects.filter(
Q(form_code=form_code) & Q(level=int(level))
).update(
is_action=False
)
def update_form_header_status(form_code, status):
models.ChangeRequestFormHeader.objects.filter(
form_code=form_code
).update(status=status)
return True
def cr_routing_actions(approver_instance, current_user):
form_code = approver_instance['form_code']
delegation = approver_instance['delegation']
action = approver_instance['action'].lower()
level = approver_instance['level']
next_level = int(approver_instance['level']) + 1
remarks = approver_instance['remarks']
if approver_instance['action'].lower() == 'approved':
the_next_vendor = check_vendor_level(
'next', next_level, form_code)
if the_next_vendor:
the_last_vendor = check_vendor_level(
'last', level, form_code)
# changed form status to Approved
if the_next_vendor == the_last_vendor:
update_form_header_status(form_code, 'Approved')
# NOTIF MSG FOR REQUESTOR
requestor_notification_msg = REQUESTOR_MESSAGE.split(';')[0]
# SEND EMAIL AND NOTIF TO REQUESTOR
send_mail_requestor(
current_user, form_code, delegation,
requestor_notification_msg, action,
remarks, level
)
next_approver_email(form_code, next_level)
date_now = datetime.now()
# update next approver details
update_form_approver(form_code, next_level, 'next', date_now)
# update current approver details
update_form_approver(form_code, level, 'current', date_now)
#save details for reminder trigger
reminder_trigger_save(form_code, date_now, date_now)
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:
prev_vendor = check_vendor_level(
'prev', level, form_code)
if not prev_vendor.count() > 0:
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
)
else:
# 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
)
# def cr_routing_actions(approver_instance):
notification_msg = VENDOR_REJECT_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()
)
level = last_action_vendor.level + 1
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':
the_last_vendor = check_vendor_level(
'last', level, form_code)
if (current_user == the_last_vendor.user.code and
level == the_last_vendor.level):
update_form_header_status(form_code, 'Approved')
else:
the_next_vendor = check_vendor_level(
'next', next_level, form_code)
if the_next_vendor:
if the_next_vendor.user.code == the_last_vendor.user.code:
update_form_header_status(form_code, 'Approved')
else:
update_form_header_status(form_code, 'Pending')
next_approver_email(form_code, next_level)
date_now = datetime.now()
# update next approver details
update_form_approver(form_code, next_level, 'next', date_now)
# update current approver details
update_form_approver(form_code, level, 'current', date_now)
# EMAIL CODE FOR REQUESTOR
requestor_notification_msg = REQUESTOR_COMPLETION_MESSAGE.split(';')[0]
send_mail_requestor(
current_user, form_code, delegation,
requestor_notification_msg, action,
remarks, level
)
elif action.lower() == 'acknowledged':
# EMAIL CODE FOR REQUESTOR
requestor_notification_msg = REQUESTOR_ACKNOWLEDGE_MESSAGE.split(';')[0]
send_mail_requestor(
current_user, form_code, delegation,
requestor_notification_msg, action,
remarks, level
)
elif action.lower() == 'accepted':
update_form_header_status(form_code, 'Completed & Accepted')
# EMAIL CODE FOR VENDOR
requestor_notification_msg = VENDOR_ACCEPTANCE_MESSAGE.split(';')[0]
send_mail_vendor(
current_user, form_code, delegation,
requestor_notification_msg, action,
remarks, level
)
# update current approver details
update_form_approver(form_code, level, 'current', date_now)
elif action.lower() == 'cancelled':
# changed form status to cancelled
update_form_header_status(form_code, 'Cancelled')
# update is_action for current level
update_form_approver(form_code, level, 'current', date_now)
reset_autoemail_tables(form_code)
return True
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