From c30874e1c091bc71cec53a10b1bc4be51bab5a6f Mon Sep 17 00:00:00 2001 From: Korina Cordero Date: Thu, 27 Aug 2020 08:28:39 +0000 Subject: [PATCH] Change the wiling to wait checkbox into a dropdown. Add text field for not willing to wait. #479 --- src/Entity/JobOrder.php | 44 +++++-- src/Ramcar/CustomerNotWaitReason.php | 6 + .../JobOrderHandler/ResqJobOrderHandler.php | 121 ++++++++++++------ templates/job-order/form.html.twig | 39 +++++- 4 files changed, 148 insertions(+), 62 deletions(-) diff --git a/src/Entity/JobOrder.php b/src/Entity/JobOrder.php index 744d8d98..9fdc2424 100644 --- a/src/Entity/JobOrder.php +++ b/src/Entity/JobOrder.php @@ -12,6 +12,7 @@ use DateTime; use App\Ramcar\ModeOfPayment; use App\Ramcar\JOStatus; use App\Ramcar\ServiceType; +use App\Ramcar\WillingToWaitContent; /** * @ORM\Entity @@ -334,17 +335,23 @@ class JobOrder */ protected $phone_mobile; - // flag if customer is willing to wait + // customer is willing to wait or not /** - * @ORM\Column(type="boolean", nullable=true) + * @ORM\Column(type="string", length=30) */ - protected $flag_will_wait; + protected $will_wait; // reason for not willing to wait /** * @ORM\Column(type="string", length=80, nullable=true) */ - protected $reasons_not_waiting; + protected $reason_not_waiting; + + // more notes on why not willing to wait + /** + * @ORM\Column(type="text", nullable=true) + */ + protected $not_waiting_notes; // reason for not trading in battery /** @@ -375,7 +382,7 @@ class JobOrder $this->phone_mobile = ''; - $this->flag_will_wait = true; + $this->will_wait = WillingToWaitContent::WILLING_TO_WAIT; } public function getID() @@ -982,26 +989,37 @@ class JobOrder return $this->phone_mobile; } - public function setWillingToWait($flag = true) + public function setWillWait($will_wait) { - $this->flag_will_wait = $flag; + $this->will_wait = $will_wait; return $this; } - public function isWillingToWait() + public function getWillWait() { - return $this->flag_will_wait; + return $this->will_wait; } - public function setReasonsNotWait($reasons) + public function setReasonNotWait($reason) { - $this->reasons_not_waiting = $reasons; + $this->reason_not_waiting = $reason; return $this; } - public function getReasonsNotWait() + public function getReasonNotWait() { - return $this->reasons_not_waiting; + return $this->reason_not_waiting; + } + + public function setNotWaitingNotes($notes) + { + $this->not_waiting_notes = $notes; + return $this; + } + + public function getNotWaitingNotes() + { + return $this->not_waiting_notes; } public function setNoTradeInReason($reason) diff --git a/src/Ramcar/CustomerNotWaitReason.php b/src/Ramcar/CustomerNotWaitReason.php index 142723b2..0fef4385 100644 --- a/src/Ramcar/CustomerNotWaitReason.php +++ b/src/Ramcar/CustomerNotWaitReason.php @@ -7,10 +7,16 @@ class CustomerNotWaitReason extends NameValue const EMERGENCY = 'emergency'; const USE_VEHICLE_NOW = 'use_vehicle_now'; const WITH_APPOINTMENT = 'with_appointment'; + const POST_REPLACEMENT = 'post_replacement'; + const POST_RECHARGE = 'post_recharge'; + const NORMAL_REQUEST_NOT_URGENT = 'normal_request_not_urgent'; const COLLECTION = [ 'emergency' => 'Emergency', 'use_vehicle_now' => 'Need to Use Vehicle Now', 'with_appointment' => 'With Appointment', + 'post_replacement' => 'Post Replacement', + 'post_recharge' => 'Post Recharge', + 'normal_request_not_urgent' => 'Normal Request not Urgent (Rush below TAT)', ]; } diff --git a/src/Service/JobOrderHandler/ResqJobOrderHandler.php b/src/Service/JobOrderHandler/ResqJobOrderHandler.php index 33bc77d2..51df5fb2 100644 --- a/src/Service/JobOrderHandler/ResqJobOrderHandler.php +++ b/src/Service/JobOrderHandler/ResqJobOrderHandler.php @@ -39,6 +39,7 @@ use App\Ramcar\FacilitatedType; use App\Ramcar\JORejectionReason; use App\Ramcar\CustomerNotWaitReason; use App\Ramcar\NoTradeInReason; +use App\Ramcar\WillingToWaitContent; use App\Service\InvoiceGeneratorInterface; use App\Service\JobOrderHandlerInterface; @@ -330,11 +331,15 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface $error_array['landmark'] = 'Landmark is required.'; // check if customer is not willing to wait - $will_wait = $req->request->get('flag_will_wait'); - if ($will_wait) - $reason = ''; - else + $will_wait = $req->request->get('flag_willing_to_wait'); + $reason = ''; + $more_reason = ''; + if ($will_wait == WillingToWaitContent::NOT_WILLING_TO_WAIT) + { + // get the reason and text $reason = $req->request->get('no_wait_reason'); + $more_reason = $req->request->get('not_wait_notes'); + } // check if trade in $is_trade_in = $req->request->get('invoice_trade_in_type'); @@ -377,8 +382,9 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface ->setPromoDetail($req->request->get('promo_detail')) ->setModeOfPayment($req->request->get('mode_of_payment')) ->setLandmark($req->request->get('landmark')) - ->setWillingToWait($req->request->get('flag_will_wait', false)) - ->setReasonsNotWait($reason) + ->setWillWait($req->request->get('flag_willing_to_wait')) + ->setReasonNotWait($reason) + ->setNotWaitingNotes($more_reason) ->setNoTradeInReason($no_trade_in_reason); // check if user is null, meaning call to create came from API @@ -475,11 +481,15 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface $error_array['landmark'] = 'Landmark is required.'; // check if customer is not willing to wait - $will_wait = $req->request->get('flag_will_wait'); - if ($will_wait) - $reason = ''; - else + $will_wait = $req->request->get('flag_willing_to_wait'); + $reason = ''; + $more_reason = ''; + if ($will_wait == WillingToWaitContent::NOT_WILLING_TO_WAIT) + { + // get the reason and text $reason = $req->request->get('no_wait_reason'); + $more_reason = $req->request->get('not_wait_notes'); + } // check if trade in $is_trade_in = $req->request->get('invoice_trade_in_type'); @@ -517,8 +527,9 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface ->setPromoDetail($req->request->get('promo_detail')) ->setModeOfPayment($req->request->get('mode_of_payment')) ->setLandmark($req->request->get('landmark')) - ->setWillingToWait($req->request->get('flag_will_wait', false)) - ->setReasonsNotWait($reason) + ->setWillWait($req->request->get('flag_willing_to_wait')) + ->setReasonNotWait($reason) + ->setNotWaitingNotes($more_reason) ->setNoTradeInReason($no_trade_in_reason); // did they change invoice? @@ -655,11 +666,15 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface $error_array['landmark'] = 'Landmark is required.'; // check if customer is not willing to wait - $will_wait = $req->request->get('flag_will_wait'); - if ($will_wait) - $reason = ''; - else + $will_wait = $req->request->get('flag_willing_to_wait'); + $reason = ''; + $more_reason = ''; + if ($will_wait == WillingToWaitContent::NOT_WILLING_TO_WAIT) + { + // get the reason and text $reason = $req->request->get('no_wait_reason'); + $more_reason = $req->request->get('not_wait_notes'); + } if (empty($error_array)) { @@ -682,8 +697,9 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface ->setFacilitatedBy($fac_by) ->setHub($hub) ->setLandmark($req->request->get('landmark')) - ->setWillingToWait($req->request->get('flag_will_wait', false)) - ->setReasonsNotWait($reason); + ->setWillWait($req->request->get('flag_willing_to_wait')) + ->setReasonNotWait($reason) + ->setNotWaitingNotes($more_reason); // validate $errors = $this->validator->validate($obj); @@ -762,11 +778,15 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface $error_array['landmark'] = 'Landmark is required.'; // check if customer is not willing to wait - $will_wait = $req->request->get('flag_will_wait'); - if ($will_wait) - $reason = ''; - else + $will_wait = $req->request->get('flag_willing_to_wait'); + $reason = ''; + $more_reason = ''; + if ($will_wait == WillingToWaitContent::NOT_WILLING_TO_WAIT) + { + // get the reason and text $reason = $req->request->get('no_wait_reason'); + $more_reason = $req->request->get('not_wait_notes'); + } // get current user $user = $this->security->getUser(); @@ -790,8 +810,9 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface ->setDateAssign(new DateTime()) ->setRider($rider) ->setLandmark($req->request->get('landmark')) - ->setWillingToWait($req->request->get('flag_will_wait', false)) - ->setReasonsNotWait($reason); + ->setWillWait($req->request->get('flag_willing_to_wait')) + ->setReasonNotWait($reason) + ->setNotWaitingNotes($more_reason); if ($user != null) { @@ -859,11 +880,15 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface $error_array['landmark'] = 'Landmark is required.'; // check if customer is not willing to wait - $will_wait = $req->request->get('flag_will_wait'); - if ($will_wait) - $reason = ''; - else + $will_wait = $req->request->get('flag_willing_to_wait'); + $reason = ''; + $more_reason = ''; + if ($will_wait == WillingToWaitContent::NOT_WILLING_TO_WAIT) + { + // get the reason and text $reason = $req->request->get('no_wait_reason'); + $more_reason = $req->request->get('not_wait_notes'); + } if (empty($error_array)) { // coordinates @@ -881,8 +906,9 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface ->setTier2Notes($req->request->get('tier2_notes')) ->setDeliveryAddress($req->request->get('delivery_address')) ->setLandmark($req->request->get('landmark')) - ->setWillingToWait($req->request->get('flag_will_wait', false)) - ->setReasonsNotWait($reason); + ->setWillWait($req->request->get('flag_willing_to_wait')) + ->setReasonNotWait($reason) + ->setNotWaitingNotes($more_reason); // validate $errors = $this->validator->validate($obj); @@ -1066,11 +1092,15 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface error_log($req->request->get('landmark')); // check if customer is not willing to wait - $will_wait = $req->request->get('flag_will_wait'); - if ($will_wait) - $reason = ''; - else + $will_wait = $req->request->get('flag_willing_to_wait'); + $reason = ''; + $more_reason = ''; + if ($will_wait == WillingToWaitContent::NOT_WILLING_TO_WAIT) + { + // get the reason and text $reason = $req->request->get('no_wait_reason'); + $more_reason = $req->request->get('not_wait_notes'); + } if (empty($error_array)) { @@ -1100,8 +1130,9 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface ->setDeliveryAddress($req->request->get('delivery_address')) ->setHub($hub) ->setLandmark($req->request->get('landmark')) - ->setWillingToWait($req->request->get('flag_will_wait', false)) - ->setReasonsNotWait($reason) + ->setWillWait($req->request->get('flag_willing_to_wait')) + ->setReasonNotWait($reason) + ->setNotWaitingNotes($more_reason) ->clearRider(); if ($user != null) @@ -1281,11 +1312,15 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface $error_array['landmark'] = 'Landmark is required.'; // check if customer is not willing to wait - $will_wait = $req->request->get('flag_will_wait'); - if ($will_wait) - $reason = ''; - else + $will_wait = $req->request->get('flag_willing_to_wait'); + $reason = ''; + $more_reason = ''; + if ($will_wait == WillingToWaitContent::NOT_WILLING_TO_WAIT) + { + // get the reason and text $reason = $req->request->get('no_wait_reason'); + $more_reason = $req->request->get('not_wait_notes'); + } if (empty($error_array)) { // rider mqtt event @@ -1315,8 +1350,9 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface ->setDateAssign(new DateTime()) ->setRider($rider) ->setLandmark($req->request->get('landmark')) - ->setWillingToWait($req->request->get('flag_will_wait', false)) - ->setReasonsNotWait($reason); + ->setWillWait($req->request->get('flag_willing_to_wait')) + ->setReasonNotWait($reason) + ->setNotWaitingNotes($more_reason); if ($user != null) { @@ -2588,6 +2624,7 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface $params['facilitated_types'] = FacilitatedType::getCollection(); $params['facilitated_hubs'] = $fac_hubs; $params['sources'] = TransactionOrigin::getCollection(); + $params['willing_to_wait_content'] = WillingToWaitContent::getCollection(); $params['no_wait_reasons'] = CustomerNotWaitReason::getCollection(); $params['no_trade_in_reasons'] = NoTradeInReason::getCollection(); } diff --git a/templates/job-order/form.html.twig b/templates/job-order/form.html.twig index 28689e20..98c4d74b 100644 --- a/templates/job-order/form.html.twig +++ b/templates/job-order/form.html.twig @@ -293,20 +293,29 @@
-
- - - +
+ + +
-
+
- {% for key, class in no_wait_reasons %} - + {% endfor %}
+
+ + + +
@@ -1851,6 +1860,22 @@ $(function() { }); }); + + $("#flag-willing-to-wait").change(function() { + var field_value = $(this).val(); + var field = $("#flag-willing-to-wait"); + console.log(field_value); + + if (field_value == 'not_willing_to_wait') { + console.log('enable please'); + $("#no-wait-reason").attr("disabled", false); + $("#not-wait-notes").attr("disabled", false); + } else { + console.log('disable please'); + $("#no-wait-reason").attr("disabled", true); + $("#not-wait-notes").attr("disabled", true); + } + }); }); {% endblock %}