diff --git a/src/Entity/JobOrder.php b/src/Entity/JobOrder.php index 67f317ca..fb8bb5f1 100644 --- a/src/Entity/JobOrder.php +++ b/src/Entity/JobOrder.php @@ -384,6 +384,18 @@ class JobOrder */ protected $remarks; + // initial concern of customer + /** + * @ORM\Column(type="string", length=80, nullable=true) + */ + protected $initial_concern; + + // additional data if initial concern is other + /** + * @ORM\Column(type="text", nullable=true) + */ + protected $initial_concern_notes; + public function __construct() { $this->date_create = new DateTime(); @@ -1095,4 +1107,26 @@ class JobOrder { return $this->remarks; } + + public function setInitialConcern($initial_concern) + { + $this->initial_concern = $initial_concern; + return $this; + } + + public function getInitialConcern() + { + return $this->initial_concern; + } + + public function setInitialConcernNotes($initial_concern_notes) + { + $this->initial_concern_notes = $initial_concern_notes; + return $this; + } + + public function getInitialConcernNotes() + { + return $this->initial_concern_notes; + } } diff --git a/src/Ramcar/InitialConcern.php b/src/Ramcar/InitialConcern.php new file mode 100644 index 00000000..df18b56e --- /dev/null +++ b/src/Ramcar/InitialConcern.php @@ -0,0 +1,14 @@ + 'Battery Price Inquiry', + 'other' => 'Other', + ]; +} diff --git a/src/Service/JobOrderHandler/ResqJobOrderHandler.php b/src/Service/JobOrderHandler/ResqJobOrderHandler.php index 4480c473..336a0976 100644 --- a/src/Service/JobOrderHandler/ResqJobOrderHandler.php +++ b/src/Service/JobOrderHandler/ResqJobOrderHandler.php @@ -45,6 +45,7 @@ use App\Ramcar\WarrantySource; use App\Ramcar\HubCriteria; use App\Ramcar\DeliveryStatus; use App\Ramcar\SourceOfAwareness; +use App\Ramcar\InitialConcern; use App\Service\InvoiceGeneratorInterface; use App\Service\JobOrderHandlerInterface; @@ -403,6 +404,12 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface // get remarks $remarks = $req->request->get('remarks', ''); + // get initial concern if any + $initial_concern = $req->request->get('initial_concern'); + + // get initial concern notes if any + $initial_concern_notes = $req->request->get('initial_concern_notes', ''); + // TODO: check status before saving since JO might already // have a status that needs to be retained @@ -436,7 +443,9 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface ->setNotWaitingNotes($more_reason) ->setNoTradeInReason($no_trade_in_reason) ->setSourceOfAwareness($soa_type) - ->setRemarks($remarks); + ->setRemarks($remarks) + ->setInitialConcern($initial_concern) + ->setInitialConcernNotes($initial_concern_notes); // check if user is null, meaning call to create came from API if ($user != null) @@ -637,6 +646,12 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface // get remarks $remarks = $req->request->get('remarks', ''); + // get initial concern if any + $initial_concern = $req->request->get('initial_concern'); + + // get initial concern notes if any + $initial_concern_notes = $req->request->get('initial_concern_notes', ''); + if (empty($error_array)) { // get current user @@ -665,7 +680,9 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface ->setNotWaitingNotes($more_reason) ->setNoTradeInReason($no_trade_in_reason) ->setSourceOfAwareness($soa_type) - ->setRemarks($remarks); + ->setRemarks($remarks) + ->setInitialConcern($initial_concern) + ->setInitialConcernNotes($initial_concern_notes); // did they change invoice? $invoice_items = $req->request->get('invoice_items', []); @@ -817,6 +834,12 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface // get remarks $remarks = $req->request->get('remarks', ''); + // get initial concern if any + $initial_concern = $req->request->get('initial_concern'); + + // get initial concern notes if any + $initial_concern_notes = $req->request->get('initial_concern_notes', ''); + if (empty($error_array)) { // coordinates @@ -842,7 +865,9 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface ->setReasonNotWait($reason) ->setNotWaitingNotes($more_reason) ->setSourceOfAwareness($soa_type) - ->setRemarks($remarks); + ->setRemarks($remarks) + ->setInitialConcern($initial_concern) + ->setInitialConcernNotes($initial_concern_notes); // validate $errors = $this->validator->validate($obj); @@ -940,6 +965,12 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface // get remarks $remarks = $req->request->get('remarks', ''); + // get initial concern if any + $initial_concern = $req->request->get('initial_concern'); + + // get initial concern notes if any + $initial_concern_notes = $req->request->get('initial_concern_notes', ''); + // get current user $user = $this->security->getUser(); @@ -967,7 +998,9 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface ->setNotWaitingNotes($more_reason) ->setDeliveryStatus(DeliveryStatus::RIDER_ASSIGN) ->setSourceOfAwareness($soa_type) - ->setRemarks($remarks); + ->setRemarks($remarks) + ->setInitialConcern($initial_concern) + ->setInitialConcernNotes($initial_concern_notes); if ($user != null) { @@ -1054,6 +1087,12 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface // get remarks $remarks = $req->request->get('remarks', ''); + // get initial concern if any + $initial_concern = $req->request->get('initial_concern'); + + // get initial concern notes if any + $initial_concern_notes = $req->request->get('initial_concern_notes', ''); + if (empty($error_array)) { // coordinates $point = new Point($req->request->get('coord_lng'), $req->request->get('coord_lat')); @@ -1075,7 +1114,9 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface ->setNotWaitingNotes($more_reason) ->setDeliveryStatus(DeliveryStatus::FULFILLED) ->setSourceOfAwareness($soa_type) - ->setRemarks($remarks); + ->setRemarks($remarks) + ->setInitialConcern($initial_concern) + ->setInitialConcernNotes($initial_concern_notes); // validate $errors = $this->validator->validate($obj); @@ -1282,6 +1323,12 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface // get remarks $remarks = $req->request->get('remarks', ''); + // get initial concern if any + $initial_concern = $req->request->get('initial_concern'); + + // get initial concern notes if any + $initial_concern_notes = $req->request->get('initial_concern_notes', ''); + // get previously assigned hub, if any $old_hub = $obj->getHub(); @@ -1318,6 +1365,8 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface ->setNotWaitingNotes($more_reason) ->setSourceOfAwareness($soa_type) ->setRemarks($remarks) + ->setInitialConcern($initial_concern) + ->setInitialConcernNotes($initial_concern_notes) ->clearRider(); if ($user != null) @@ -1520,6 +1569,12 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface // get remarks $remarks = $req->request->get('remarks', ''); + // get initial concern if any + $initial_concern = $req->request->get('initial_concern'); + + // get initial concern notes if any + $initial_concern_notes = $req->request->get('initial_concern_notes', ''); + if (empty($error_array)) { // rider mqtt event // NOTE: need to send this before saving because rider will be cleared @@ -1562,7 +1617,9 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface ->setNotWaitingNotes($more_reason) ->setSourceOfAwareness($soa_type) ->setRemarks($remarks) - ->setDeliveryStatus(DeliveryStatus::RIDER_ASSIGN); + ->setDeliveryStatus(DeliveryStatus::RIDER_ASSIGN) + ->setInitialConcern($initial_concern) + ->setInitialConcernNotes($initial_concern_notes); if ($user != null) { @@ -3069,6 +3126,7 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface $params['no_wait_reasons'] = CustomerNotWaitReason::getCollection(); $params['no_trade_in_reasons'] = NoTradeInReason::getCollection(); $params['soa_types'] = SourceOfAwareness::getCollection(); + $params['initial_concern'] = InitialConcern::getCollection(); } protected function initFormTags(&$params) diff --git a/templates/job-order/form.html.twig b/templates/job-order/form.html.twig index 2d510c36..7a72aff3 100644 --- a/templates/job-order/form.html.twig +++ b/templates/job-order/form.html.twig @@ -399,6 +399,24 @@
+ +
+
+ + + +
+
+ + + +
+