diff --git a/config/acl.yaml b/config/acl.yaml index 7e777afd..f531102b 100644 --- a/config/acl.yaml +++ b/config/acl.yaml @@ -199,6 +199,8 @@ access_keys: label: Open - id: jo_all.list label: View All + - id: jo_pdf.list + label: PDF - id: joborder.cancel label: Cancel diff --git a/config/routes/job_order.yaml b/config/routes/job_order.yaml index 65a808c3..f15163bd 100644 --- a/config/routes/job_order.yaml +++ b/config/routes/job_order.yaml @@ -155,3 +155,8 @@ jo_all_form: path: /job-order/all/{id} controller: App\Controller\JobOrderController::allForm methods: [GET] + +jo_pdf_form: + path: /job-order/pdf/{id} + controller: App\Controller\JobOrderController::pdfForm + methods: [GET] diff --git a/src/Controller/JobOrderController.php b/src/Controller/JobOrderController.php index 9b168908..f9065d2d 100644 --- a/src/Controller/JobOrderController.php +++ b/src/Controller/JobOrderController.php @@ -569,6 +569,7 @@ class JobOrderController extends BaseController else { $row['meta']['update_url'] = $this->generateUrl($tier_params['edit_route'], ['id' => $row['id']]); + $row['meta']['pdf_url'] = $this->generateUrl('jo_pdf_form', ['id' => $row['id']]); } if ($tier_params['unlock_route'] != '') @@ -1466,6 +1467,34 @@ class JobOrderController extends BaseController // response return $this->render('job-order/form.html.twig', $params); } + + + public function pdfForm($id) + { + $this->denyAccessUnlessGranted('jo_pdf.list', null, 'No access.'); + + $em = $this->getDoctrine()->getManager(); + + $params = $this->initParameters('jo_all'); + $params['mode'] = 'update-all'; + + // get row data + $obj = $em->getRepository(JobOrder::class)->find($id); + + // make sure this row exists + if (empty($obj)) + throw $this->createNotFoundException('The job order does not exist'); + + $this->fillDropdownParameters($params); + + $params['obj'] = $obj; + $params['status_cancelled'] = JOStatus::CANCELLED; + $params['return_url'] = $this->generateUrl('jo_all'); + $params['submit_url'] = ''; + + // response + return $this->render('job-order/form.pdf.html.twig', $params); + } public function cancelJobOrder(Request $req, $id) { diff --git a/templates/job-order/form.pdf.html.twig b/templates/job-order/form.pdf.html.twig new file mode 100644 index 00000000..d301def1 --- /dev/null +++ b/templates/job-order/form.pdf.html.twig @@ -0,0 +1,1277 @@ +{% extends 'base.html.twig' %} + +{% block body %} + +