From c4bf772f7084eb7d603900b9f1920cc8503ef6b0 Mon Sep 17 00:00:00 2001 From: Korina Cordero Date: Tue, 29 Sep 2020 10:57:07 +0000 Subject: [PATCH] Add assign advance order to acl, menu, and route. #509 --- config/acl.yaml | 4 +- config/menu.yaml | 4 +- config/routes/job_order.yaml | 16 +- src/Controller/JobOrderController.php | 44 + .../JobOrderHandler/CMBJobOrderHandler.php | 12 + .../job-order/cmb.form.advanceorder.html.twig | 4 +- .../cmb.form.assignadvanceorder.html.twig | 1702 +++++++++++++++++ .../cmb.list.assignadvanceorder.html.twig | 210 ++ 8 files changed, 1987 insertions(+), 9 deletions(-) create mode 100644 templates/job-order/cmb.form.assignadvanceorder.html.twig create mode 100644 templates/job-order/cmb.list.assignadvanceorder.html.twig diff --git a/config/acl.yaml b/config/acl.yaml index 513fd650..23b0d863 100644 --- a/config/acl.yaml +++ b/config/acl.yaml @@ -276,10 +276,8 @@ access_keys: label: New Advance Order - id: jo_advance_order.edit label: New Advance Order Edit - - id: jo_assign_advance_order.form + - id: jo_assign_advance_order.list label: Assign Advance Order - - id: jo_assign_advance_order.edit - label: Assign Advance Order Edit - id: support label: Customer Support Access diff --git a/config/menu.yaml b/config/menu.yaml index 248fb3b8..3b9b92b1 100644 --- a/config/menu.yaml +++ b/config/menu.yaml @@ -110,8 +110,8 @@ main_menu: acl: jo_advance_order.form label: New Advance Order parent: joborder - - id: jo_assign_advance_order_form - acl: jo_assign_advance_order.form + - id: jo_assign_advance_order + acl: jo_assign_advance_order.list label: Assign Advance Order parent: joborder - id: jo_walkin_form diff --git a/config/routes/job_order.yaml b/config/routes/job_order.yaml index eb296cfc..46dd7434 100644 --- a/config/routes/job_order.yaml +++ b/config/routes/job_order.yaml @@ -285,13 +285,25 @@ jo_advance_order_edit_submit: controller: App\Controller\JobOrderController::advanceOrderEditSubmit methods: [POST] -jo_assign_advance_order_form: +jo_assign_advance_order: path: /job-order/assign-advance-order + controller: App\Controller\JobOrderController::listAssignAdvanceOrder + methods: [GET] + +jo_assign_advance_order_rows: + path: /job-order/assign-advance-joborder-rows + controller: App\Controller\JobOrderController::getRows + methods: [POST] + defaults: + tier: "assign_advance_order" + +jo_assign_advance_order_form: + path: /job-order/assign-advance-order/{id} controller: App\Controller\JobOrderController::assignAdvanceOrderForm methods: [GET] jo_assign_advance_order_submit: - path: /job-order/assign-advance-order + path: /job-order/assign-advance-order/{id} controller: App\Controller\JobOrderController::assignAdvanceOrderSubmit methods: [POST] diff --git a/src/Controller/JobOrderController.php b/src/Controller/JobOrderController.php index 3b4887a6..c50474bb 100644 --- a/src/Controller/JobOrderController.php +++ b/src/Controller/JobOrderController.php @@ -1164,7 +1164,51 @@ class JobOrderController extends Controller ]); } + /** + * @Menu(selected="jo_assign_advance_order_form") + */ + public function assignAdvanceOrderForm(EntityManagerInterface $em, JobOrderHandlerInterface $jo_handler, + GISManagerInterface $gis) + { + $this->denyAccessUnlessGranted('jo_assign_advance_order.form', null, 'No access.'); + $params = $jo_handler->initializeAssignAdvanceOrderForm(); + $params['submit_url'] = $this->generateUrl('jo_assign_advance_order_submit'); + $params['return_url'] = $this->generateUrl('jo_assign_advance_order_form'); + $params['map_js_file'] = $gis->getJSJOFile(); + $params['vmfgs'] = $em->getRepository(VehicleManufacturer::class)->findAll(); + $params['vmakes'] = $em->getRepository(Vehicle::class)->findAll(); + $params['hubs'] = $em->getRepository(Hub::class)->findAll(); + + $template = $params['template']; + + // response + return $this->render($template, $params); + } + + public function assignAdvanceOrderSubmit(Request $req, JobOrderHandlerInterface $jo_handler, MQTTClient $mclient) + { + $this->denyAccessUnlessGranted('jo_assign_advance_order.form', null, 'No access.'); + + // initialize error list + $error_array = []; + $id = -1; + $error_array = $jo_handler->processAssignAdvanceOrderJobOrder($req, $id, $mclient); + + // check if any errors were found + if (!empty($error_array)) { + // return validation failure response + return $this->json([ + 'success' => false, + 'errors' => $error_array + ], 422); + } + + // return successful response + return $this->json([ + 'success' => 'Changes have been saved!' + ]); + } /** * @Menu(selected="jo_hub_view") diff --git a/src/Service/JobOrderHandler/CMBJobOrderHandler.php b/src/Service/JobOrderHandler/CMBJobOrderHandler.php index 3bc46ef2..bcf146ff 100644 --- a/src/Service/JobOrderHandler/CMBJobOrderHandler.php +++ b/src/Service/JobOrderHandler/CMBJobOrderHandler.php @@ -3259,6 +3259,10 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface return $params; } + public function initializeAssignAdvanceOrderForm() + { + } + protected function fillDropdownParameters(&$params) { $em = $this->em; @@ -3454,6 +3458,14 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface $unlock_route = ''; $jo_status = JOStatus::ASSIGNED; break; + case 'assign_advance_order': + $tier_key = 'jo_assign_advance_order'; + $tier_name = 'Assign Advance Order'; + $rows_route = 'jo_assign_advance_order_rows'; + $edit_route = ''; + $unlock_route = ''; + $jo_status = JOStatus::RIDER_ASSIGN; + break; default: throw new AccessDeniedHttpException('No access.'); } diff --git a/templates/job-order/cmb.form.advanceorder.html.twig b/templates/job-order/cmb.form.advanceorder.html.twig index 6e11db8d..2e44cea8 100644 --- a/templates/job-order/cmb.form.advanceorder.html.twig +++ b/templates/job-order/cmb.form.advanceorder.html.twig @@ -402,7 +402,7 @@

- {% if mode in ['view-all', 'update-fulfillment'] %} + {% if mode in ['view-all'] %} Assigned Hub {% else %} Nearest Hubs @@ -718,7 +718,7 @@
{% if mode != 'view-all' %} - + {% if ftags.set_map_coordinate and is_granted('joborder.cancel') and not obj.isCancelled %} Cancel Job Order {% endif %} diff --git a/templates/job-order/cmb.form.assignadvanceorder.html.twig b/templates/job-order/cmb.form.assignadvanceorder.html.twig new file mode 100644 index 00000000..9462f31e --- /dev/null +++ b/templates/job-order/cmb.form.assignadvanceorder.html.twig @@ -0,0 +1,1702 @@ +{% extends 'base.html.twig' %} + +{% block body %} + + + +
+ +
+
+
+
+
+
+ + + + {% if mode == "assignadvanceorder" %} +

+ Assign Advance Order Job Order +

+ {% else %} +

+ Assign Advance Order Job Order #{{ obj.getID }} - {{ obj.getStatusText }} +

+ {% endif %} +
+
+
+
+ + +
+ {%if ftags.vehicle_dropdown %} +
+
+
+ + + +
+ +
+
+
+
+
+ + + +
+
+
+ {% else %} + + {% endif %} + {% if obj.getReferenceJO %} +
+
+
+ + + +
+
+
+ {% endif %} + +
+
+

+ Customer Details +

+ + + +
+
+
+ + + +
+
+ + + +
+
+
+
+ +
+ {% trans %}country_code_prefix{% endtrans %} + + +
+
+
+ +
+ {% trans %}country_code_prefix{% endtrans %} + + +
+
+
+
+
+ +
+ {% trans %}country_code_prefix{% endtrans %} + + +
+
+
+
+
+
+
+ + + +
+
+
+
+
+

+ Vehicle Details +

+
+
+
+ + + +
+
+ + + +
+
+ + + +
+
+
+
+ + + +
+ +
+
+
+
+

+ Battery Details +

+
+
+
+ + + +
+
+ + + +
+
+ + + +
+
+
+
+
+
+

+ Transaction Details +

+ + + +
+
+
+ + + +
+
+ + + +
+
+ + + +
+
+
+
+ + + +
+
+ +
+ + + + +
+ +
+
+ +
+ + + + +
+ +
+
+
+
+
+ + + +
+
+
+ + +
+
+
+ + + +
+
+
+
+ + + +
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+
+
+
+
+
+

+ Location +

+
+
+
+ + + +
+
+ + + +
+
+
+
+ + + + +
+ + + + +
+
+
+
+
+ +
+
+

+ {% if mode in ['view-all', 'assign-advance-order', 'assign-advance-order-edit'] %} + Assigned Hub + {% else %} + Nearest Hubs + {% endif %} +

+
+
+
+ {% if mode != 'view-all' %} + + {% endif %} + + +
+ + + + + + + + + + + + +
HubBranchContact NumbersDistance in KM
+
+
+
+
+
+
+

+ {% if mode in ['view-all', 'assign-advance-order-edit'] %} + Assigned Rider + {% else %} + Rider Assignment + {% endif %} +

+
+
+
+ {% if mode != 'view-all' %} + + {% endif %} + + +
+ + + + + + + + + + + {% if mode in ['onestep-edit', 'view-all', 'assign-advance-order', 'assign-advance-order-edit'] %} + {% set avail_riders = obj.getHub.getAvailableRiders|default([]) %} + + + + + {% if obj.getHub %} + {% for rider in avail_riders %} + {% if mode in ['view-all', 'assign-advance-order', 'assign-advance-order-edit'] %} + + {% else %} + + {% endif %} + + + + + {% endfor %} + {% endif %} + {% endif %} + +
First NameLast NameContact No.Plate Number
+ No riders available. +
{{ rider.getFirstName }}{{ rider.getLastName }}{{ rider.getContactNumber }}{{ rider.getPlateNumber }}
+
+
+
+
+ + {% if mode in ['assign-advance-order-edit'] %} +
+
+
+

+ Other Information +

+
+
+
+ + +
+
+ + +
+
+ +
+
+
+
+
+ +
+ {% for key, picture in jo_pictures %} + {% if key == 'image_1' %} +
+ + + +
+ +
+ {% endif %} + {% if key == 'image_2' %} +
+ + + +
+ +
+ {% endif %} + {% if key == 'image_3' %} +
+ + + +
+ +
+ {% endif %} + {% if key == 'image_4' %} +
+ + + +
+ +
+ {% endif %} + + {% endfor %} +
+ +
+ + + {% endif %} + +
+
+
+

+ Service Charges +

+
+
+ {% if mode != 'view-all' %} +
+ +
+ {% endif %} +
+ + {% for jo_sc in jo_service_charges %} +
+
+
+ +
+
+
+ +
+
+ +
+
+ {% endfor %} +
+ +
+
+
+

+ Invoice +

+
+
+
+ + + +
+ +
+
+
+ + {% if ftags.invoice_edit %} + + + {% else %} + + + {% endif %} +
+
+ + +
+
+
+
+ + +
+
+ + +
+
+ + +
+
+
+
+ + + + + + + + + + + {% if not obj.getInvoice or (obj.getInvoice and obj.getInvoice.getItems|length == 0) %} + + + + {% else %} + {% for item in obj.getInvoice.getItems %} + + + + + + + {% endfor %} + {% endif %} + +
ItemQuantityUnit PriceAmount
+ No items to display. +
{{ item.getTitle }}{{ item.getQuantity|number_format }}{{ item.getPrice|number_format(2) }}{{ (item.getPrice * item.getQuantity)|number_format(2) }}
+
+
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
+ + + +
+
+
+
+
+
+
+
+ {% if mode != 'view-all' %} + + {% if ftags.set_map_coordinate and is_granted('joborder.cancel') and not obj.isCancelled %} + Cancel Job Order + {% endif %} + {% endif %} + Back +
+
+
+
+ +
+
+
+
+{% endblock %} + +{% block scripts %} +{{ include('map/' ~ map_js_file) }} + + + + +{% endblock %} + diff --git a/templates/job-order/cmb.list.assignadvanceorder.html.twig b/templates/job-order/cmb.list.assignadvanceorder.html.twig new file mode 100644 index 00000000..752c1d22 --- /dev/null +++ b/templates/job-order/cmb.list.assignadvanceorder.html.twig @@ -0,0 +1,210 @@ +{% extends 'base.html.twig' %} + +{% block body %} + +
+
+
+

+ Advanced Order Job Orders +

+
+
+
+ +
+ +
+
+
+
+
+
+
+
+
+
+ + + + +
+
+
+
+
+ +
+
+
+
+
+
+ +
+ +
+ +
+
+
+
+
+
+
+ +
+ +
+
+
+
+
+{% endblock %} + +{% block scripts %} + +{% endblock %}