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 @@