Add caller classification to job order. #673

This commit is contained in:
Korina Cordero 2022-05-31 07:25:49 +00:00
parent da20713f0f
commit 4580228628
4 changed files with 78 additions and 3 deletions

View file

@ -402,6 +402,12 @@ class JobOrder
*/ */
protected $gender; protected $gender;
// caller classification of caller
/**
* @ORM\Column(type="string", length=80, nullable=true)
*/
protected $caller_classification;
public function __construct() public function __construct()
{ {
$this->date_create = new DateTime(); $this->date_create = new DateTime();
@ -1147,4 +1153,15 @@ class JobOrder
return $this->gender; return $this->gender;
} }
public function setCallerClassification($caller_classification)
{
$this->caller_classification = $caller_classification;
return $this;
}
public function getCallerClassification()
{
return $this->caller_classification;
}
} }

View file

@ -0,0 +1,18 @@
<?php
namespace App\Ramcar;
class CallerClassification extends NameValue
{
const OWNER = 'owner';
const DRIVER = 'driver';
const FAMILY = 'family';
const FRIENDS = 'friends';
const COLLECTION = [
'owner' => 'Owner',
'driver' => 'Driver',
'family' => 'Family',
'friends' => 'Friends',
];
}

View file

@ -47,6 +47,7 @@ use App\Ramcar\DeliveryStatus;
use App\Ramcar\SourceOfAwareness; use App\Ramcar\SourceOfAwareness;
use App\Ramcar\InitialConcern; use App\Ramcar\InitialConcern;
use App\Ramcar\Gender; use App\Ramcar\Gender;
use App\Ramcar\CallerClassification;
use App\Service\InvoiceGeneratorInterface; use App\Service\InvoiceGeneratorInterface;
use App\Service\JobOrderHandlerInterface; use App\Service\JobOrderHandlerInterface;
@ -414,6 +415,9 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
// get gender if any // get gender if any
$gender = $req->request->get('gender'); $gender = $req->request->get('gender');
// get caller classification if any
$caller_class = $req->request->get('caller_class');
// TODO: check status before saving since JO might already // TODO: check status before saving since JO might already
// have a status that needs to be retained // have a status that needs to be retained
@ -450,6 +454,7 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
->setRemarks($remarks) ->setRemarks($remarks)
->setInitialConcern($initial_concern) ->setInitialConcern($initial_concern)
->setInitialConcernNotes($initial_concern_notes) ->setInitialConcernNotes($initial_concern_notes)
->setCallerClassification($caller_class)
->setGender($gender); ->setGender($gender);
// check if user is null, meaning call to create came from API // check if user is null, meaning call to create came from API
@ -660,6 +665,9 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
// get gender if any // get gender if any
$gender = $req->request->get('gender'); $gender = $req->request->get('gender');
// get caller classification if any
$caller_class = $req->request->get('caller_class');
if (empty($error_array)) if (empty($error_array))
{ {
// get current user // get current user
@ -691,6 +699,7 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
->setRemarks($remarks) ->setRemarks($remarks)
->setInitialConcern($initial_concern) ->setInitialConcern($initial_concern)
->setInitialConcernNotes($initial_concern_notes) ->setInitialConcernNotes($initial_concern_notes)
->setCallerClassification($caller_class)
->setGender($gender); ->setGender($gender);
// did they change invoice? // did they change invoice?
@ -852,6 +861,9 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
// get gender if any // get gender if any
$gender = $req->request->get('gender'); $gender = $req->request->get('gender');
// get caller classification if any
$caller_class = $req->request->get('caller_class');
if (empty($error_array)) if (empty($error_array))
{ {
// coordinates // coordinates
@ -880,7 +892,8 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
->setRemarks($remarks) ->setRemarks($remarks)
->setInitialConcern($initial_concern) ->setInitialConcern($initial_concern)
->setInitialConcernNotes($initial_concern_notes) ->setInitialConcernNotes($initial_concern_notes)
->setGender($gender); ->setGender($gender)
->setCallerClassification($caller_class);
// validate // validate
$errors = $this->validator->validate($obj); $errors = $this->validator->validate($obj);
@ -987,6 +1000,9 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
// get gender if any // get gender if any
$gender = $req->request->get('gender'); $gender = $req->request->get('gender');
// get caller classification if any
$caller_class = $req->request->get('caller_class');
// get current user // get current user
$user = $this->security->getUser(); $user = $this->security->getUser();
@ -1017,6 +1033,7 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
->setRemarks($remarks) ->setRemarks($remarks)
->setInitialConcern($initial_concern) ->setInitialConcern($initial_concern)
->setInitialConcernNotes($initial_concern_notes) ->setInitialConcernNotes($initial_concern_notes)
->setCallerClassification($caller_class)
->setGender($gender); ->setGender($gender);
if ($user != null) if ($user != null)
@ -1113,6 +1130,9 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
// get gender if any // get gender if any
$gender = $req->request->get('gender'); $gender = $req->request->get('gender');
// get caller classification if any
$caller_class = $req->request->get('caller_class');
if (empty($error_array)) { if (empty($error_array)) {
// coordinates // coordinates
$point = new Point($req->request->get('coord_lng'), $req->request->get('coord_lat')); $point = new Point($req->request->get('coord_lng'), $req->request->get('coord_lat'));
@ -1137,7 +1157,8 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
->setRemarks($remarks) ->setRemarks($remarks)
->setInitialConcern($initial_concern) ->setInitialConcern($initial_concern)
->setInitialConcernNotes($initial_concern_notes) ->setInitialConcernNotes($initial_concern_notes)
->setGender($gender); ->setGender($gender)
->setCallerClassification($caller_class);
// validate // validate
$errors = $this->validator->validate($obj); $errors = $this->validator->validate($obj);
@ -1353,6 +1374,9 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
// get gender if any // get gender if any
$gender = $req->request->get('gender'); $gender = $req->request->get('gender');
// get caller classification if any
$caller_class = $req->request->get('caller_class');
// get previously assigned hub, if any // get previously assigned hub, if any
$old_hub = $obj->getHub(); $old_hub = $obj->getHub();
@ -1392,6 +1416,7 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
->setInitialConcern($initial_concern) ->setInitialConcern($initial_concern)
->setInitialConcernNotes($initial_concern_notes) ->setInitialConcernNotes($initial_concern_notes)
->setGender($gender) ->setGender($gender)
->setCallerClassification($caller_class)
->clearRider(); ->clearRider();
if ($user != null) if ($user != null)
@ -1603,6 +1628,9 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
// get gender if any // get gender if any
$gender = $req->request->get('gender'); $gender = $req->request->get('gender');
// get caller classification if any
$caller_class = $req->request->get('caller_class');
if (empty($error_array)) { if (empty($error_array)) {
// rider mqtt event // rider mqtt event
// NOTE: need to send this before saving because rider will be cleared // NOTE: need to send this before saving because rider will be cleared
@ -1648,7 +1676,8 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
->setDeliveryStatus(DeliveryStatus::RIDER_ASSIGN) ->setDeliveryStatus(DeliveryStatus::RIDER_ASSIGN)
->setInitialConcern($initial_concern) ->setInitialConcern($initial_concern)
->setInitialConcernNotes($initial_concern_notes) ->setInitialConcernNotes($initial_concern_notes)
->setGender($gender); ->setGender($gender)
->setCallerClassification($caller_class);
if ($user != null) if ($user != null)
{ {
@ -3157,6 +3186,7 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
$params['soa_types'] = SourceOfAwareness::getCollection(); $params['soa_types'] = SourceOfAwareness::getCollection();
$params['initial_concern'] = InitialConcern::getCollection(); $params['initial_concern'] = InitialConcern::getCollection();
$params['genders'] = Gender::getCollection(); $params['genders'] = Gender::getCollection();
$params['caller_classifications'] = CallerClassification::getCollection();
} }
protected function initFormTags(&$params) protected function initFormTags(&$params)

View file

@ -479,6 +479,16 @@
</select> </select>
<div class="form-control-feedback hide" data-field="gender"></div> <div class="form-control-feedback hide" data-field="gender"></div>
</div> </div>
<div class="col-lg-6">
<label data-field="status">Caller Classification</label>
<select class="form-control m-input" id="caller-class" name="caller_class">
<option value=""></option>
{% for key, caller_class in caller_classifications %}
<option value="{{ key }}"{{ key == obj.getCallerClassification ? ' selected' }}>{{ caller_class }}</option>
{% endfor %}
</select>
<div class="form-control-feedback hide" data-field="caller_class"></div>
</div>
</div> </div>
<div class="form-group m-form__group row"> <div class="form-group m-form__group row">
<div class="col-lg-6"> <div class="col-lg-6">