Commit be15ebe4 authored by Gladys Forte's avatar Gladys Forte

update submit and create

parent 8741a306
......@@ -494,7 +494,7 @@ class ChangeRequestFormsViewset(meviewsets.ModelViewSet):
level = request.data['level']
next_level = int(request.data['level']) + 1
remarks = request.data['remarks']
# generate batchno history
batchno = get_max_batchno("batch")
......@@ -513,7 +513,7 @@ class ChangeRequestFormsViewset(meviewsets.ModelViewSet):
approver_instance,
data=action_data,
partial=True)
serializer.is_valid(raise_exception=True)
old_instance = model_to_dict(approver_instance)
......@@ -553,7 +553,14 @@ class ChangeRequestFormsViewset(meviewsets.ModelViewSet):
).update(
date_sent=datetime.now()
)
the_last_vendor = models.ChangeRequestFormApprovers.objects.filter(
form_code=form_code, level=str(next_level),
delegation='Vendor/Implementor'
).first()
print(the_last_vendor)
elif action.lower() == 'rejected':
# send email to vendor
......@@ -745,20 +752,15 @@ class ChangeRequestFormsViewset(meviewsets.ModelViewSet):
batchno = get_max_batchno("batch")
# generate requested template id
# generate_template_id(
# CR_Prefix,
# frm_id,
# template_no,
# batchno,
# enums.CREnum.CREATE.value,
# enums.CREnum.ADD.value,
# serializer.data
# )
requested_to_template_id = generate_template_id(
form_data['requested_to_template_id'],
form_code,
form_data['template_no'])
data_update = {
"status": 'Pending',
"created": datetime.now(),
"requested_to_template_id": "JTC"
"requested_to_template_id": requested_to_template_id
}
data = {**form_data, **data_update}
......@@ -780,15 +782,16 @@ class ChangeRequestFormsViewset(meviewsets.ModelViewSet):
print(serializer.errors)
# save history in form header
crhistory_save(
batchno,
enums.CREnum.SUBMIT.value,
enums.CREnum.UPDATE.value,
enums.CREntitiesEnum.CR_FRM_HEADER.value,
form_code,
old_instance,
new_instance
)
crhistory_create_save(
batchno,
enums.CREnum.SUBMIT.value,
enums.CREnum.UPDATE.value,
enums.CREntitiesEnum.CR_FRM_HEADER.value,
form_code,
old_instance,
new_instance,
requested_to_template_id,
form_data['template_no'])
change_request.form_add_edit_delete(
form_data['frm_approvers'],
......@@ -1034,24 +1037,7 @@ class ChangeRequestFormPost(APIView):
if serializer.is_valid(raise_exception=True):
serializer.save()
if serializer.data['status'].lower() == 'pending':
template_no = serializer.data['template_no']
CR_Prefix = serializer.data['requested_to_template_id']
frm_id = serializer.data['form_code']
# generate batchno history
batchno = get_max_batchno("batch")
# generate requested template id
generate_template_id(
CR_Prefix,
frm_id,
template_no,
batchno,
enums.CREnum.CREATE.value,
enums.CREnum.ADD.value,
serializer.data
)
frm_id = serializer.data['form_code']
# create template approvers
frm_approvers = form_header['frm_approvers']
......@@ -1125,6 +1111,40 @@ class ChangeRequestFormPost(APIView):
if serializerDetail.is_valid(raise_exception=True):
serializerDetail.save()
# if status is pending send initial email and
# generate template id
if serializer.data['status'].lower() == 'pending':
template_no = serializer.data['template_no']
CR_Prefix = serializer.data['requested_to_template_id']
# generate batchno history
batchno = get_max_batchno("batch")
# generate requested template id
requested_to_template_id = generate_template_id(
CR_Prefix, frm_id, template_no
)
#save to history for request template id tracking
crhistory_create_save(
batchno,
enums.CREnum.CREATE.value,
enums.CREnum.ADD.value,
enums.CREntitiesEnum.CR_FRM_HEADER.value,
frm_id,
'',
serializer.data,
requested_to_template_id,
template_no)
min_level = models.ChangeRequestFormApprovers.objects.filter(
form_code=frm_id
).aggregate(Min('level'))
min_level = min_level.get('level__min')
next_approver_email(frm_id, min_level)
message = {
'code': 201,
......
......@@ -475,20 +475,19 @@ def crhistory_log_bulk_delete(queryset, entity, tbl, form_code,
def generate_template_id(prefix,
form_code,
template_no,
batchno,
main_action,
action,
serializer_data):
template_no):
try:
max_id = models.ChangeRequestHistory.objects.filter(
template_no=template_no).count()
if max_id:
max_batch = max_id.batch_no.split("-")
max_batch = int(max_batch[2].lstrip("0")) + 1
requested_to_template_id = number_generator(prefix, max_batch)
Q(template_no=template_no) &
Q(entity=enums.CREntitiesEnum.CR_FRM_HEADER.value) &
(Q(main_action=enums.CREnum.CREATE.value) |
Q(main_action=enums.CREnum.SUBMIT.value))
).count()
if max_id > 0:
max_id = max_id + 1
requested_to_template_id = number_generator(prefix, max_id)
else:
requested_to_template_id = number_generator(prefix, 1)
except:
......@@ -498,23 +497,11 @@ def generate_template_id(prefix,
form_code=form_code).update(
requested_to_template_id=requested_to_template_id)
# save history in form header
crhistory_create_save(
batchno,
main_action,
action,
enums.CREntitiesEnum.CR_FRM_HEADER.value,
form_code,
serializer_data,
requested_to_template_id,
template_no
)
return True
return requested_to_template_id
def crhistory_create_save(batch_no, main_action,
action, entity, form_code,
action, entity, form_code, fromValue,
toValue, requested_to_template_id, template_no):
models.ChangeRequestHistory.objects.create(
......@@ -523,10 +510,10 @@ def crhistory_create_save(batch_no, main_action,
action=action,
entity=entity,
form_code=form_code,
fromValue='',
fromValue=fromValue,
toValue=toValue,
requested_to_template_id=requested_to_template_id,
template_no=template_no
)
)
return True
\ No newline at end of file
This diff is collapsed.
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