diff --git a/src/Service/JobOrderHandler/ResqJobOrderHandler.php b/src/Service/JobOrderHandler/ResqJobOrderHandler.php index a6c841ca..ad34276a 100644 --- a/src/Service/JobOrderHandler/ResqJobOrderHandler.php +++ b/src/Service/JobOrderHandler/ResqJobOrderHandler.php @@ -37,6 +37,7 @@ use App\Ramcar\ModeOfPayment; use App\Ramcar\TransactionOrigin; use App\Ramcar\FacilitatedType; use App\Ramcar\JORejectionReason; +use App\Ramcar\CustomerNotWaitReason; use App\Service\InvoiceGeneratorInterface; use App\Service\JobOrderHandlerInterface; @@ -326,9 +327,10 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface // check if customer is not willing to wait $will_wait = $req->request->get('flag_will_wait'); - $reason = $req->request->get('no_wait_reason'); - if ((!($will_wait)) && (empty($reason))) - $error_array['no_wait_reason'] = 'Reason is needed.'; + if ($will_wait) + $reason = ''; + else + $reason = $req->request->get('no_wait_reason'); // TODO: check status before saving since JO might already // have a status that needs to be retained @@ -361,7 +363,7 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface ->setModeOfPayment($req->request->get('mode_of_payment')) ->setLandmark($req->request->get('landmark')) ->setWillingToWait($req->request->get('flag_will_wait', false)) - ->setReasonsNotWait($req->request->get('no_wait_reason')); + ->setReasonsNotWait($reason); // check if user is null, meaning call to create came from API if ($user != null) @@ -458,9 +460,10 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface // check if customer is not willing to wait $will_wait = $req->request->get('flag_will_wait'); - $reason = $req->request->get('no_wait_reason'); - if ((!($will_wait)) && (empty($reason))) - $error_array['no_wait_reason'] = 'Reason is needed.'; + if ($will_wait) + $reason = ''; + else + $reason = $req->request->get('no_wait_reason'); if (empty($error_array)) { @@ -488,7 +491,7 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface ->setModeOfPayment($req->request->get('mode_of_payment')) ->setLandmark($req->request->get('landmark')) ->setWillingToWait($req->request->get('flag_will_wait', false)) - ->setReasonsNotWait($req->request->get('no_wait_reason')); + ->setReasonsNotWait($reason); // did they change invoice? $invoice_items = $req->request->get('invoice_items', []); @@ -625,9 +628,10 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface // check if customer is not willing to wait $will_wait = $req->request->get('flag_will_wait'); - $reason = $req->request->get('no_wait_reason'); - if ((!($will_wait)) && (empty($reason))) - $error_array['no_wait_reason'] = 'Reason is needed.'; + if ($will_wait) + $reason = ''; + else + $reason = $req->request->get('no_wait_reason'); if (empty($error_array)) { @@ -651,7 +655,7 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface ->setHub($hub) ->setLandmark($req->request->get('landmark')) ->setWillingToWait($req->request->get('flag_will_wait', false)) - ->setReasonsNotWait($req->request->get('no_wait_reason')); + ->setReasonsNotWait($reason); // validate $errors = $this->validator->validate($obj); @@ -731,9 +735,10 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface // check if customer is not willing to wait $will_wait = $req->request->get('flag_will_wait'); - $reason = $req->request->get('no_wait_reason'); - if ((!($will_wait)) && (empty($reason))) - $error_array['no_wait_reason'] = 'Reason is needed.'; + if ($will_wait) + $reason = ''; + else + $reason = $req->request->get('no_wait_reason'); // get current user $user = $this->security->getUser(); @@ -758,7 +763,7 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface ->setRider($rider) ->setLandmark($req->request->get('landmark')) ->setWillingToWait($req->request->get('flag_will_wait', false)) - ->setReasonsNotWait($req->request->get('no_wait_reason')); + ->setReasonsNotWait($reason); if ($user != null) { @@ -827,9 +832,10 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface // check if customer is not willing to wait $will_wait = $req->request->get('flag_will_wait'); - $reason = $req->request->get('no_wait_reason'); - if ((!($will_wait)) && (empty($reason))) - $error_array['no_wait_reason'] = 'Reason is needed.'; + if ($will_wait) + $reason = ''; + else + $reason = $req->request->get('no_wait_reason'); if (empty($error_array)) { // coordinates @@ -848,7 +854,7 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface ->setDeliveryAddress($req->request->get('delivery_address')) ->setLandmark($req->request->get('landmark')) ->setWillingToWait($req->request->get('flag_will_wait', false)) - ->setReasonsNotWait($req->request->get('no_wait_reason')); + ->setReasonsNotWait($reason); // validate $errors = $this->validator->validate($obj); @@ -1025,9 +1031,10 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface // check if customer is not willing to wait $will_wait = $req->request->get('flag_will_wait'); - $reason = $req->request->get('no_wait_reason'); - if ((!($will_wait)) && (empty($reason))) - $error_array['no_wait_reason'] = 'Reason is needed.'; + if ($will_wait) + $reason = ''; + else + $reason = $req->request->get('no_wait_reason'); if (empty($error_array)) { @@ -1059,7 +1066,7 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface ->clearRider() ->setLandmark($req->request->get('landmark')) ->setWillingToWait($req->request->get('flag_will_wait', false)) - ->setReasonsNotWait($req->request->get('no_wait_reason')); + ->setReasonsNotWait($reason); if ($user != null) { @@ -1239,9 +1246,10 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface // check if customer is not willing to wait $will_wait = $req->request->get('flag_will_wait'); - $reason = $req->request->get('no_wait_reason'); - if ((!($will_wait)) && (empty($reason))) - $error_array['no_wait_reason'] = 'Reason is needed.'; + if ($will_wait) + $reason = ''; + else + $reason = $req->request->get('no_wait_reason'); if (empty($error_array)) { // rider mqtt event @@ -1272,7 +1280,7 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface ->setRider($rider) ->setLandmark($req->request->get('landmark')) ->setWillingToWait($req->request->get('flag_will_wait', false)) - ->setReasonsNotWait($req->request->get('no_wait_reason')); + ->setReasonsNotWait($reason); if ($user != null) { @@ -2544,6 +2552,7 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface $params['facilitated_types'] = FacilitatedType::getCollection(); $params['facilitated_hubs'] = $fac_hubs; $params['sources'] = TransactionOrigin::getCollection(); + $params['no_wait_reasons'] = CustomerNotWaitReason::getCollection(); } protected function initFormTags(&$params) diff --git a/templates/job-order/form.html.twig b/templates/job-order/form.html.twig index d94b1305..95dae4e0 100644 --- a/templates/job-order/form.html.twig +++ b/templates/job-order/form.html.twig @@ -300,7 +300,11 @@