Commit 25e13d79 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 4a39a154 d45f7afb
......@@ -2,6 +2,7 @@ from app.entities import models
from rest_framework import serializers
from django.db.models import Q
from drf_writable_nested import WritableNestedModelSerializer
from django.forms.models import model_to_dict
from app.applicationlayer.cms.utils_cr import (get_account_details,
get_dept_details,
get_companies_details)
......@@ -27,6 +28,11 @@ class ChangeRequestFormApproversSerializer(
ret['name'] = name
ret['department'] = department
ret['company'] = company
# ret['company'] = model_to_dict(instance.user.department.company)
# ret['department'] = model_to_dict(instance.user.department)
# ret['name'] = model_to_dict(instance.user)
return ret
except Exception as e:
......
......@@ -375,12 +375,21 @@ class ChangeRequestFormsViewset(meviewsets.ModelViewSet):
form_code = kwargs['form_code']
# get prefix from template header
frm = models.ChangeRequestFormHeader.objects.get(
form_code=form_code)
tmp_prefix = models.ChangeRequestTemplateHeader.objects.get(
template_no=frm.template_no.template_no
)
status_update = {"status": 'Draft'}
data_update = {
"status": 'Draft',
"created": datetime.now(),
"requested_to_template_id": tmp_prefix.requested_to_template_id
}
serializer = self.get_serializer(instance,
data=status_update,
data=data_update,
partial=partial)
serializer.is_valid(raise_exception=True)
......@@ -415,7 +424,8 @@ class ChangeRequestFormsViewset(meviewsets.ModelViewSet):
'action': None,
'remarks': None,
'date_sent': None,
'action_date': None
'action_date': None,
'created': datetime.now()
}
approver_data.append(approver_add)
......@@ -602,7 +612,7 @@ class ChangeRequestFormsViewset(meviewsets.ModelViewSet):
)
def save(self, request, *args, **kwargs):
partial = kwargs.pop('partial', False)
partial = kwargs.pop('partial', True)
instance = self.get_object()
form_code = kwargs['form_code']
......@@ -698,7 +708,7 @@ class ChangeRequestFormsViewset(meviewsets.ModelViewSet):
)
def submit(self, request, *args, **kwargs):
partial = kwargs.pop('partial', False)
partial = kwargs.pop('partial', True)
instance = self.get_object()
form_code = kwargs['form_code']
......@@ -707,16 +717,31 @@ class ChangeRequestFormsViewset(meviewsets.ModelViewSet):
# generate batchno history
batchno = get_max_batchno("batch")
# generate requested_to_template_id
data_update = {
"status": 'Pendsing',
"created": datetime.now(),
"requested_to_template_id": "JTC"
}
data = {**form_data, **data_update}
# update form header
serializer = self.get_serializer(instance,
data=form_data,
data=data,
partial=partial)
serializer.is_valid(raise_exception=True)
old_instance = model_to_dict(instance)
self.perform_update(serializer)
new_instance = serializer.data
print(serializer.errors)
form_header = get_object_or_404(models.ChangeRequestFormHeader,
pk=instance.id)
new_instance = model_to_dict(form_header)
# print(serializer.errors)
# save history in form header
crhistory_save(
......@@ -794,59 +819,6 @@ class ChangeRequestFormApproversViewset(meviewsets.ModelViewSet):
pagination_class = paginators.SimplePageNumberPagination
lookup_field = 'code'
# def create(self, request, *args, **kwargs):
# ObjectId = request.data.get('id')
# sent = False
# if 'form_status' in request.data:
# # for email
# if str(request.data['level']) == '1' and request.data['form_status'].lower() == 'pending':
# user = request.data['user']
# form_code = request.data['form_code']
# delegation = request.data['delegation']
# # initial_email(user, form_code, delegation)
# # EMAIL CODE FOR APPROVER
# notification_msg = APPROVER_MESSAGE.split(';')[0]
# email_code = APPROVER_MESSAGE.split(';')[1]
# next_appover_email(
# user, form_code, delegation,
# notification_msg, 'initial', email_code
# )
# request.data['date_sent'] = datetime.now().strftime('%Y-%m-%d, %H:%M:%S')
# request.data['created'] = datetime.now().strftime('%Y-%m-%d, %H:%M:%S') #correct
# sent = True
# serializer = self.get_serializer(data=request.data)
# serializer.is_valid(raise_exception=True)
# if ObjectId:
# dbExisting = models.ChangeRequestFormApprovers.objects.filter(
# id=ObjectId,
# archived_at=None).first()
# if dbExisting:
# dbExisting.archived_at = datetime.now()
# dbExisting.save()
# # x = self.perform_create(serializer)
# serializer.id = None
# x = serializer.save()
# if sent == True:
# x.date_sent = datetime.now().strftime('%Y-%m-%d, %H:%M:%S')
# x.created = datetime.now().strftime('%Y-%m-%d, %H:%M:%S') #correct
# x.save()
# headers = self.get_success_headers(serializer.data)
# return Response(
# serializer.data,
# status=status.HTTP_201_CREATED,
# headers=headers
# )
def list(self, request, *args, **kwargs):
self.queryset = QuerySetHelper.Sort(self)
return super(ChangeRequestFormApproversViewset, self).list(request)
......@@ -1018,12 +990,7 @@ class ChangeRequestFormPost(APIView):
'template_no': form_header['template_no']
}
frm_approvers = form_header['frm_approvers']
frm_stakes = form_header['frm_stakes']
frm_attachments = form_header['frm_attachments']
frm_details = form_header['frm_details']
# sp1 = transaction.savepoint() # nothing will save to db
sp1 = transaction.savepoint() # nothing will save to db
serializer = serializers.ChangeRequestFormHeaderSerializer(
data=form_header_data)
......@@ -1033,27 +1000,23 @@ class ChangeRequestFormPost(APIView):
template_no = serializer.data['template_no']
tmp_counter = models.ChangeRequestFormHeader.objects.filter(
template_no=template_no).count()
# tmp_counter = tmp_counter + 1
CR_Prefix = serializer.data['requested_to_template_id']
generate_tmp = number_generator(CR_Prefix, tmp_counter)
frm_id = serializer.data['form_code']
print(frm_id)
models.ChangeRequestFormHeader.objects.filter(
form_code=frm_id).update(
requested_to_template_id=generate_tmp)
# generate requested template id
# create template approvers
frm_approvers = form_header['frm_approvers']
counter = 0
for frm_approver in frm_approvers:
frm_approver['form_code'] = frm_id
counter = counter + 1
data_list_approver.append(frm_approver)
#append vendor and requestor in routing table
counter = counter + 1
vendor_data = {
'level': counter,
......@@ -1063,7 +1026,6 @@ class ChangeRequestFormPost(APIView):
}
data_list_approver.append(vendor_data)
counter = counter + 1
requestor_data = {
'level': counter,
......@@ -1081,7 +1043,8 @@ class ChangeRequestFormPost(APIView):
serializerApprover.save()
# create template stakes
if form_header['frm_stakes']:
frm_stakes = form_header['frm_stakes']
for frm_stake in frm_stakes:
frm_stake['form_code'] = frm_id
data_list_stake.append(frm_stake)
......@@ -1093,7 +1056,8 @@ class ChangeRequestFormPost(APIView):
serializerStake.save()
# create template attachments
if form_header['frm_attachments']:
frm_attachments = form_header['frm_attachments']
for frm_attachment in frm_attachments:
frm_attachment['form_code'] = frm_id
data_list_attach.append(frm_attachment)
......@@ -1105,7 +1069,8 @@ class ChangeRequestFormPost(APIView):
serializerAttach.save()
# create template details
if form_header['frm_details']:
frm_details = form_header['frm_details']
for frm_detail in frm_details:
frm_detail['form_code'] = frm_id
data_list_detail.append(frm_detail)
......@@ -1126,7 +1091,7 @@ class ChangeRequestFormPost(APIView):
return Response(message, status=status.HTTP_201_CREATED)
except ValidationError as e:
# transaction.savepoint_rollback(sp1)
transaction.savepoint_rollback(sp1)
message = {
'code': 400,
'status': 'failed',
......@@ -1135,7 +1100,7 @@ class ChangeRequestFormPost(APIView):
return Response(message, status=status.HTTP_400_BAD_REQUEST)
except Exception as e:
# transaction.savepoint_rollback(sp1)
transaction.savepoint_rollback(sp1)
message = {
'code': 500,
'status': 'failed',
......
......@@ -256,6 +256,7 @@ class ChangeRequestTemplatesViewset(meviewsets.ModelViewSet):
template_no
)
if body_data['tmp_stakes']:
tmp_add_edit_delete(
body_data['tmp_stakes'],
models.ChangeRequestTemplateStakeHolders,
......@@ -266,6 +267,7 @@ class ChangeRequestTemplatesViewset(meviewsets.ModelViewSet):
template_no
)
if body_data['tmp_attachments']:
tmp_add_edit_delete(
body_data['tmp_attachments'],
models.ChangeRequestTemplateAttachments,
......@@ -276,6 +278,7 @@ class ChangeRequestTemplatesViewset(meviewsets.ModelViewSet):
template_no
)
if body_data['tmp_details']:
tmp_add_edit_delete(
body_data['tmp_details'],
models.ChangeRequestTemplateDetails,
......@@ -300,7 +303,7 @@ class ChangeRequestTemplatesViewset(meviewsets.ModelViewSet):
"Unable to edit due to existing transaction",
status=status.HTTP_400_BAD_REQUEST
)
#try
class ChangeRequestTemplatePost(APIView):
......
......@@ -471,3 +471,15 @@ def crhistory_log_bulk_delete(queryset, entity, tbl, form_code,
return True
except IntegrityError as exc:
raise APIException(detail=exc)
def generate_template_id(prefix, form_code, template_no):
print("hello")
tmp_counter = models.ChangeRequestFormHeader.objects.filter(
template_no=template_no).count()
generate_tmp = number_generator(prefix, tmp_counter)
models.ChangeRequestFormHeader.objects.filter(
form_code=frm_id).update(
requested_to_template_id=generate_tmp)
\ 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