From 964dce9842f853a962fc5c77f90a2563f5988c42 Mon Sep 17 00:00:00 2001 From: Korina Cordero Date: Tue, 28 Jul 2020 10:10:59 +0000 Subject: [PATCH] Add Willing to Wait tickbox and Reason for not waiting text field. #445 --- src/Entity/JobOrder.php | 34 ++++++++++++++++++ .../JobOrderHandler/ResqJobOrderHandler.php | 24 +++++++++++-- templates/job-order/form.html.twig | 12 +++++++ utils/mqtt_rider/rider_location_cache.pyc | Bin 1929 -> 1929 bytes 4 files changed, 68 insertions(+), 2 deletions(-) diff --git a/src/Entity/JobOrder.php b/src/Entity/JobOrder.php index 8bcdbb77..6309dc6d 100644 --- a/src/Entity/JobOrder.php +++ b/src/Entity/JobOrder.php @@ -334,6 +334,18 @@ class JobOrder */ protected $phone_mobile; + // flag if customer is willing to wait + /** + * @ORM\Column(type="boolean", nullable=true) + */ + protected $flag_will_wait; + + // reason for not willing to wait + /** + * @ORM\Column(type="string", length=80, nullable=true) + */ + protected $reasons_not_waiting; + public function __construct() { $this->date_create = new DateTime(); @@ -356,6 +368,8 @@ class JobOrder $this->meta = []; $this->phone_mobile = ''; + + $this->flag_will_wait = true; } public function getID() @@ -962,5 +976,25 @@ class JobOrder return $this->phone_mobile; } + public function setWillingToWait($flag = true) + { + $this->flag_will_wait = $flag; + return $this; + } + public function isWillingToWait() + { + return $this->flag_will_wait; + } + + public function setReasonsNotWait($reasons) + { + $this->reasons_not_waiting = $reasons; + return $this; + } + + public function getReasonsNotWait() + { + return $this->reasons_not_waiting; + } } diff --git a/src/Service/JobOrderHandler/ResqJobOrderHandler.php b/src/Service/JobOrderHandler/ResqJobOrderHandler.php index c578d30a..28fa2c0f 100644 --- a/src/Service/JobOrderHandler/ResqJobOrderHandler.php +++ b/src/Service/JobOrderHandler/ResqJobOrderHandler.php @@ -324,6 +324,12 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface if (empty($req->request->get('landmark'))) $error_array['landmark'] = 'Landmark is required.'; + // 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.'; + // TODO: check status before saving since JO might already // have a status that needs to be retained @@ -353,7 +359,9 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface ->setORName($req->request->get('or_name')) ->setPromoDetail($req->request->get('promo_detail')) ->setModeOfPayment($req->request->get('mode_of_payment')) - ->setLandmark($req->request->get('landmark')); + ->setLandmark($req->request->get('landmark')) + ->setWillingToWait($req->request->get('flag_will_wait', false)) + ->setReasonsNotWait($req->request->get('no_wait_reason')); // check if user is null, meaning call to create came from API if ($user != null) @@ -444,6 +452,16 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface $error_array['coordinates'] = 'No map coordinates provided. Please click on a location on the map.'; } + // check if landmark is set + if (empty($req->request->get('landmark'))) + $error_array['landmark'] = 'Landmark is required.'; + + // 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 (empty($error_array)) { // get current user @@ -468,7 +486,9 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface ->setORName($req->request->get('or_name')) ->setPromoDetail($req->request->get('promo_detail')) ->setModeOfPayment($req->request->get('mode_of_payment')) - ->setLandmark($req->request->get('landmark')); + ->setLandmark($req->request->get('landmark')) + ->setWillingToWait($req->request->get('flag_will_wait', false)) + ->setReasonsNotWait($req->request->get('no_wait_reason')); // did they change invoice? $invoice_items = $req->request->get('invoice_items', []); diff --git a/templates/job-order/form.html.twig b/templates/job-order/form.html.twig index 9d8d5dc4..b449bad0 100644 --- a/templates/job-order/form.html.twig +++ b/templates/job-order/form.html.twig @@ -292,6 +292,18 @@
+
+
+ + + +
+
+ + + +
+
diff --git a/utils/mqtt_rider/rider_location_cache.pyc b/utils/mqtt_rider/rider_location_cache.pyc index e8968436ff784ec3bb1aca3ba18a64dba399a0d8..a5798640299d44a6305d0987feb0c64b2a312daa 100644 GIT binary patch delta 36 rcmeC=@8oA^{>;mDW@+0-_A)kpMlL2HMgc|^Mj<8vMgiu@J#2pgq&5f- delta 36 rcmeC=@8oA^{>;l2t*F0|y^M{YiHli?QGk(!QHWW9Nq}W?58Gb=f}IA)