diff --git a/src/Entity/JobOrder.php b/src/Entity/JobOrder.php index fb8bb5f1..9908c0e7 100644 --- a/src/Entity/JobOrder.php +++ b/src/Entity/JobOrder.php @@ -396,6 +396,12 @@ class JobOrder */ protected $initial_concern_notes; + // gender of caller + /** + * @ORM\Column(type="string", length=80, nullable=true) + */ + protected $gender; + public function __construct() { $this->date_create = new DateTime(); @@ -1129,4 +1135,16 @@ class JobOrder { return $this->initial_concern_notes; } + + public function setGender($gender) + { + $this->gender = $gender; + return $this; + } + + public function getGender() + { + return $this->gender; + } + } diff --git a/src/Ramcar/Gender.php b/src/Ramcar/Gender.php new file mode 100644 index 00000000..71d53a0c --- /dev/null +++ b/src/Ramcar/Gender.php @@ -0,0 +1,16 @@ + 'Male', + 'female' => 'Female', + 'unknown' => 'Unknown', + ]; +} diff --git a/src/Service/JobOrderHandler/ResqJobOrderHandler.php b/src/Service/JobOrderHandler/ResqJobOrderHandler.php index 336a0976..5079f3af 100644 --- a/src/Service/JobOrderHandler/ResqJobOrderHandler.php +++ b/src/Service/JobOrderHandler/ResqJobOrderHandler.php @@ -46,6 +46,7 @@ use App\Ramcar\HubCriteria; use App\Ramcar\DeliveryStatus; use App\Ramcar\SourceOfAwareness; use App\Ramcar\InitialConcern; +use App\Ramcar\Gender; use App\Service\InvoiceGeneratorInterface; use App\Service\JobOrderHandlerInterface; @@ -410,6 +411,9 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface // get initial concern notes if any $initial_concern_notes = $req->request->get('initial_concern_notes', ''); + // get gender if any + $gender = $req->request->get('gender'); + // TODO: check status before saving since JO might already // have a status that needs to be retained @@ -445,7 +449,8 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface ->setSourceOfAwareness($soa_type) ->setRemarks($remarks) ->setInitialConcern($initial_concern) - ->setInitialConcernNotes($initial_concern_notes); + ->setInitialConcernNotes($initial_concern_notes) + ->setGender($gender); // check if user is null, meaning call to create came from API if ($user != null) @@ -652,6 +657,9 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface // get initial concern notes if any $initial_concern_notes = $req->request->get('initial_concern_notes', ''); + // get gender if any + $gender = $req->request->get('gender'); + if (empty($error_array)) { // get current user @@ -682,7 +690,8 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface ->setSourceOfAwareness($soa_type) ->setRemarks($remarks) ->setInitialConcern($initial_concern) - ->setInitialConcernNotes($initial_concern_notes); + ->setInitialConcernNotes($initial_concern_notes) + ->setGender($gender); // did they change invoice? $invoice_items = $req->request->get('invoice_items', []); @@ -840,6 +849,9 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface // get initial concern notes if any $initial_concern_notes = $req->request->get('initial_concern_notes', ''); + // get gender if any + $gender = $req->request->get('gender'); + if (empty($error_array)) { // coordinates @@ -867,7 +879,8 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface ->setSourceOfAwareness($soa_type) ->setRemarks($remarks) ->setInitialConcern($initial_concern) - ->setInitialConcernNotes($initial_concern_notes); + ->setInitialConcernNotes($initial_concern_notes) + ->setGender($gender); // validate $errors = $this->validator->validate($obj); @@ -971,6 +984,9 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface // get initial concern notes if any $initial_concern_notes = $req->request->get('initial_concern_notes', ''); + // get gender if any + $gender = $req->request->get('gender'); + // get current user $user = $this->security->getUser(); @@ -1000,7 +1016,8 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface ->setSourceOfAwareness($soa_type) ->setRemarks($remarks) ->setInitialConcern($initial_concern) - ->setInitialConcernNotes($initial_concern_notes); + ->setInitialConcernNotes($initial_concern_notes) + ->setGender($gender); if ($user != null) { @@ -1093,6 +1110,9 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface // get initial concern notes if any $initial_concern_notes = $req->request->get('initial_concern_notes', ''); + // get gender if any + $gender = $req->request->get('gender'); + if (empty($error_array)) { // coordinates $point = new Point($req->request->get('coord_lng'), $req->request->get('coord_lat')); @@ -1116,7 +1136,8 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface ->setSourceOfAwareness($soa_type) ->setRemarks($remarks) ->setInitialConcern($initial_concern) - ->setInitialConcernNotes($initial_concern_notes); + ->setInitialConcernNotes($initial_concern_notes) + ->setGender($gender); // validate $errors = $this->validator->validate($obj); @@ -1329,6 +1350,9 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface // get initial concern notes if any $initial_concern_notes = $req->request->get('initial_concern_notes', ''); + // get gender if any + $gender = $req->request->get('gender'); + // get previously assigned hub, if any $old_hub = $obj->getHub(); @@ -1367,6 +1391,7 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface ->setRemarks($remarks) ->setInitialConcern($initial_concern) ->setInitialConcernNotes($initial_concern_notes) + ->setGender($gender) ->clearRider(); if ($user != null) @@ -1575,6 +1600,9 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface // get initial concern notes if any $initial_concern_notes = $req->request->get('initial_concern_notes', ''); + // get gender if any + $gender = $req->request->get('gender'); + if (empty($error_array)) { // rider mqtt event // NOTE: need to send this before saving because rider will be cleared @@ -1619,7 +1647,8 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface ->setRemarks($remarks) ->setDeliveryStatus(DeliveryStatus::RIDER_ASSIGN) ->setInitialConcern($initial_concern) - ->setInitialConcernNotes($initial_concern_notes); + ->setInitialConcernNotes($initial_concern_notes) + ->setGender($gender); if ($user != null) { @@ -3127,6 +3156,7 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface $params['no_trade_in_reasons'] = NoTradeInReason::getCollection(); $params['soa_types'] = SourceOfAwareness::getCollection(); $params['initial_concern'] = InitialConcern::getCollection(); + $params['genders'] = Gender::getCollection(); } protected function initFormTags(&$params) diff --git a/templates/job-order/form.html.twig b/templates/job-order/form.html.twig index 7a72aff3..0e5286e9 100644 --- a/templates/job-order/form.html.twig +++ b/templates/job-order/form.html.twig @@ -404,7 +404,7 @@