From 1f39ab3ccfd358690915e70c4554e2887a72b7b0 Mon Sep 17 00:00:00 2001 From: Korina Cordero Date: Fri, 7 Aug 2020 08:54:16 +0000 Subject: [PATCH 1/3] Add list of no trade in reasons. #462 --- src/Ramcar/NoTradeInReason.php | 20 ++++++++++++++++++++ templates/job-order/form.html.twig | 22 ++++++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 src/Ramcar/NoTradeInReason.php diff --git a/src/Ramcar/NoTradeInReason.php b/src/Ramcar/NoTradeInReason.php new file mode 100644 index 00000000..aeea695b --- /dev/null +++ b/src/Ramcar/NoTradeInReason.php @@ -0,0 +1,20 @@ + 'No existing battery', + 'sell_other_shop' => 'Sell to other shop', + 'used_as_spare_battery' => 'Used as spare battery', + 'return_battery_company' => 'Need to return battery to company', + 'low_trade_in_value' => 'Trade in value is low', + ]; +} diff --git a/templates/job-order/form.html.twig b/templates/job-order/form.html.twig index bba70b39..6f442e20 100644 --- a/templates/job-order/form.html.twig +++ b/templates/job-order/form.html.twig @@ -439,6 +439,28 @@
+
+
+
+ +
+ +
+
+
+
+
+ + + +
+
+
From 25b96e8a146f3e51b6e7a11be4e319c309ffa3c7 Mon Sep 17 00:00:00 2001 From: Korina Cordero Date: Mon, 10 Aug 2020 03:28:40 +0000 Subject: [PATCH 2/3] Fix error when user reassigns hub. #453 --- src/Service/JobOrderHandler/ResqJobOrderHandler.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/Service/JobOrderHandler/ResqJobOrderHandler.php b/src/Service/JobOrderHandler/ResqJobOrderHandler.php index ad34276a..5e8eb2be 100644 --- a/src/Service/JobOrderHandler/ResqJobOrderHandler.php +++ b/src/Service/JobOrderHandler/ResqJobOrderHandler.php @@ -1029,6 +1029,8 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface if (empty($req->request->get('landmark'))) $error_array['landmark'] = 'Landmark is required.'; + 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) @@ -1063,10 +1065,10 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface ->setTier2Notes($req->request->get('tier2_notes')) ->setDeliveryAddress($req->request->get('delivery_address')) ->setHub($hub) - ->clearRider() ->setLandmark($req->request->get('landmark')) ->setWillingToWait($req->request->get('flag_will_wait', false)) - ->setReasonsNotWait($reason); + ->setReasonsNotWait($reason) + ->clearRider(); if ($user != null) { From e8220f428225f3a4606b808b80ed6a02106194b7 Mon Sep 17 00:00:00 2001 From: Korina Cordero Date: Mon, 10 Aug 2020 07:51:37 +0000 Subject: [PATCH 3/3] Add no trade in reason to form and JO entity. #462 --- src/Entity/JobOrder.php | 17 +++++++ .../JobOrderHandler/ResqJobOrderHandler.php | 44 +++++++++++++++++-- templates/job-order/form.html.twig | 34 +++++++------- 3 files changed, 74 insertions(+), 21 deletions(-) diff --git a/src/Entity/JobOrder.php b/src/Entity/JobOrder.php index 6309dc6d..744d8d98 100644 --- a/src/Entity/JobOrder.php +++ b/src/Entity/JobOrder.php @@ -346,6 +346,12 @@ class JobOrder */ protected $reasons_not_waiting; + // reason for not trading in battery + /** + * @ORM\Column(type="string", length=80, nullable=true) + */ + protected $no_trade_in_reason; + public function __construct() { $this->date_create = new DateTime(); @@ -997,4 +1003,15 @@ class JobOrder { return $this->reasons_not_waiting; } + + public function setNoTradeInReason($reason) + { + $this->no_trade_in_reason = $reason; + return $this; + } + + public function getNoTradeInReason() + { + return $this->no_trade_in_reason; + } } diff --git a/src/Service/JobOrderHandler/ResqJobOrderHandler.php b/src/Service/JobOrderHandler/ResqJobOrderHandler.php index 5e8eb2be..cf556136 100644 --- a/src/Service/JobOrderHandler/ResqJobOrderHandler.php +++ b/src/Service/JobOrderHandler/ResqJobOrderHandler.php @@ -38,6 +38,7 @@ use App\Ramcar\TransactionOrigin; use App\Ramcar\FacilitatedType; use App\Ramcar\JORejectionReason; use App\Ramcar\CustomerNotWaitReason; +use App\Ramcar\NoTradeInReason; use App\Service\InvoiceGeneratorInterface; use App\Service\JobOrderHandlerInterface; @@ -332,6 +333,17 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface else $reason = $req->request->get('no_wait_reason'); + // check if trade in + $is_trade_in = $req->request->get('invoice_trade_in_type'); + $no_trade_in_reason = ''; + if (empty($is_trade_in)) + { + $no_trade_in_reason = $req->request->get('no_trade_in_reason'); + + if (empty($no_trade_in_reason)) + $error_array['no_trade_in_reason'] = 'No trade in reason required.'; + } + // TODO: check status before saving since JO might already // have a status that needs to be retained @@ -363,7 +375,8 @@ 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($reason); + ->setReasonsNotWait($reason) + ->setNoTradeInReason($no_trade_in_reason); // check if user is null, meaning call to create came from API if ($user != null) @@ -465,6 +478,17 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface else $reason = $req->request->get('no_wait_reason'); + // check if trade in + $is_trade_in = $req->request->get('invoice_trade_in_type'); + $no_trade_in_reason = ''; + if (empty($is_trade_in)) + { + $no_trade_in_reason = $req->request->get('no_trade_in_reason'); + + if (empty($no_trade_in_reason)) + $error_array['no_trade_in_reason'] = 'No trade in reason required.'; + } + if (empty($error_array)) { // get current user @@ -491,7 +515,8 @@ 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($reason); + ->setReasonsNotWait($reason) + ->setNoTradeInReason($no_trade_in_reason); // did they change invoice? $invoice_items = $req->request->get('invoice_items', []); @@ -837,6 +862,17 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface else $reason = $req->request->get('no_wait_reason'); + // check if trade in + $is_trade_in = $req->request->get('invoice_trade_in_type'); + $no_trade_in_reason = ''; + if (empty($is_trade_in)) + { + $no_trade_in_reason = $req->request->get('no_trade_in_reason'); + + if (empty($no_trade_in_reason)) + $error_array['no_trade_in_reason'] = 'No trade in reason required.'; + } + if (empty($error_array)) { // coordinates $point = new Point($req->request->get('coord_lng'), $req->request->get('coord_lat')); @@ -854,7 +890,8 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface ->setDeliveryAddress($req->request->get('delivery_address')) ->setLandmark($req->request->get('landmark')) ->setWillingToWait($req->request->get('flag_will_wait', false)) - ->setReasonsNotWait($reason); + ->setReasonsNotWait($reason) + ->setNoTradeInReason($no_trade_in_reason); // validate $errors = $this->validator->validate($obj); @@ -2555,6 +2592,7 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface $params['facilitated_hubs'] = $fac_hubs; $params['sources'] = TransactionOrigin::getCollection(); $params['no_wait_reasons'] = CustomerNotWaitReason::getCollection(); + $params['no_trade_in_reasons'] = NoTradeInReason::getCollection(); } protected function initFormTags(&$params) diff --git a/templates/job-order/form.html.twig b/templates/job-order/form.html.twig index 535af27d..10d138eb 100644 --- a/templates/job-order/form.html.twig +++ b/templates/job-order/form.html.twig @@ -308,6 +308,7 @@
+
@@ -455,20 +456,6 @@
-
-
-
- -
- -
-
-
@@ -564,20 +551,31 @@
-
+
- {% for key, type in trade_in_types %} {% endfor %}
-
+
+ + + +
+ +
-
+