Merge branch 'master' of gitlab.com:jankstudio/resq into 674-color-code-jos-in-dispatch-page
Conflicts: src/Service/JobOrderHandler/ResqJobOrderHandler.php
This commit is contained in:
commit
a7f52fc139
5 changed files with 195 additions and 24 deletions
|
|
@ -396,6 +396,18 @@ class JobOrder
|
|||
*/
|
||||
protected $initial_concern_notes;
|
||||
|
||||
// gender of caller
|
||||
/**
|
||||
* @ORM\Column(type="string", length=80, nullable=true)
|
||||
*/
|
||||
protected $gender;
|
||||
|
||||
// caller classification of caller
|
||||
/**
|
||||
* @ORM\Column(type="string", length=80, nullable=true)
|
||||
*/
|
||||
protected $caller_classification;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->date_create = new DateTime();
|
||||
|
|
@ -1129,4 +1141,27 @@ class JobOrder
|
|||
{
|
||||
return $this->initial_concern_notes;
|
||||
}
|
||||
|
||||
public function setGender($gender)
|
||||
{
|
||||
$this->gender = $gender;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getGender()
|
||||
{
|
||||
return $this->gender;
|
||||
}
|
||||
|
||||
public function setCallerClassification($caller_classification)
|
||||
{
|
||||
$this->caller_classification = $caller_classification;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getCallerClassification()
|
||||
{
|
||||
return $this->caller_classification;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
18
src/Ramcar/CallerClassification.php
Normal file
18
src/Ramcar/CallerClassification.php
Normal 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',
|
||||
];
|
||||
}
|
||||
16
src/Ramcar/Gender.php
Normal file
16
src/Ramcar/Gender.php
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
<?php
|
||||
|
||||
namespace App\Ramcar;
|
||||
|
||||
class Gender extends NameValue
|
||||
{
|
||||
const MALE = 'male';
|
||||
const FEMALE = 'female';
|
||||
const UNKNOWN = 'unknown';
|
||||
|
||||
const COLLECTION = [
|
||||
'male' => 'Male',
|
||||
'female' => 'Female',
|
||||
'unknown' => 'Unknown',
|
||||
];
|
||||
}
|
||||
|
|
@ -47,6 +47,8 @@ use App\Ramcar\DeliveryStatus;
|
|||
use App\Ramcar\SourceOfAwareness;
|
||||
use App\Ramcar\InitialConcern;
|
||||
use App\Ramcar\CustomerClassification;
|
||||
use App\Ramcar\Gender;
|
||||
use App\Ramcar\CallerClassification;
|
||||
|
||||
use App\Service\InvoiceGeneratorInterface;
|
||||
use App\Service\JobOrderHandlerInterface;
|
||||
|
|
@ -414,17 +416,23 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
|
|||
}
|
||||
|
||||
// get source of awareness if any
|
||||
$soa_type = $req->request->get('source_of_awareness');
|
||||
$soa_type = $req->request->get('source_of_awareness', '');
|
||||
|
||||
// get remarks
|
||||
$remarks = $req->request->get('remarks', '');
|
||||
|
||||
// get initial concern if any
|
||||
$initial_concern = $req->request->get('initial_concern');
|
||||
$initial_concern = $req->request->get('initial_concern', '');
|
||||
|
||||
// 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 caller classification if any
|
||||
$caller_class = $req->request->get('caller_class','');
|
||||
|
||||
// TODO: check status before saving since JO might already
|
||||
// have a status that needs to be retained
|
||||
|
||||
|
|
@ -460,7 +468,9 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
|
|||
->setSourceOfAwareness($soa_type)
|
||||
->setRemarks($remarks)
|
||||
->setInitialConcern($initial_concern)
|
||||
->setInitialConcernNotes($initial_concern_notes);
|
||||
->setInitialConcernNotes($initial_concern_notes)
|
||||
->setCallerClassification($caller_class)
|
||||
->setGender($gender);
|
||||
|
||||
// check if user is null, meaning call to create came from API
|
||||
if ($user != null)
|
||||
|
|
@ -656,17 +666,23 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
|
|||
}
|
||||
|
||||
// get source of awareness if any
|
||||
$soa_type = $req->request->get('source_of_awareness');
|
||||
$soa_type = $req->request->get('source_of_awareness', '');
|
||||
|
||||
// get remarks
|
||||
$remarks = $req->request->get('remarks', '');
|
||||
|
||||
// get initial concern if any
|
||||
$initial_concern = $req->request->get('initial_concern');
|
||||
$initial_concern = $req->request->get('initial_concern', '');
|
||||
|
||||
// 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 caller classification if any
|
||||
$caller_class = $req->request->get('caller_class', '');
|
||||
|
||||
if (empty($error_array))
|
||||
{
|
||||
// get current user
|
||||
|
|
@ -697,7 +713,9 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
|
|||
->setSourceOfAwareness($soa_type)
|
||||
->setRemarks($remarks)
|
||||
->setInitialConcern($initial_concern)
|
||||
->setInitialConcernNotes($initial_concern_notes);
|
||||
->setInitialConcernNotes($initial_concern_notes)
|
||||
->setCallerClassification($caller_class)
|
||||
->setGender($gender);
|
||||
|
||||
// did they change invoice?
|
||||
$invoice_items = $req->request->get('invoice_items', []);
|
||||
|
|
@ -844,17 +862,23 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
|
|||
}
|
||||
|
||||
// get source of awareness if any
|
||||
$soa_type = $req->request->get('source_of_awareness');
|
||||
$soa_type = $req->request->get('source_of_awareness', '');
|
||||
|
||||
// get remarks
|
||||
$remarks = $req->request->get('remarks', '');
|
||||
|
||||
// get initial concern if any
|
||||
$initial_concern = $req->request->get('initial_concern');
|
||||
$initial_concern = $req->request->get('initial_concern', '');
|
||||
|
||||
// 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 caller classification if any
|
||||
$caller_class = $req->request->get('caller_class', '');
|
||||
|
||||
if (empty($error_array))
|
||||
{
|
||||
// coordinates
|
||||
|
|
@ -882,7 +906,9 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
|
|||
->setSourceOfAwareness($soa_type)
|
||||
->setRemarks($remarks)
|
||||
->setInitialConcern($initial_concern)
|
||||
->setInitialConcernNotes($initial_concern_notes);
|
||||
->setInitialConcernNotes($initial_concern_notes)
|
||||
->setGender($gender)
|
||||
->setCallerClassification($caller_class);
|
||||
|
||||
// validate
|
||||
$errors = $this->validator->validate($obj);
|
||||
|
|
@ -975,17 +1001,23 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
|
|||
}
|
||||
|
||||
// get source of awareness if any
|
||||
$soa_type = $req->request->get('source_of_awareness');
|
||||
$soa_type = $req->request->get('source_of_awareness', '');
|
||||
|
||||
// get remarks
|
||||
$remarks = $req->request->get('remarks', '');
|
||||
|
||||
// get initial concern if any
|
||||
$initial_concern = $req->request->get('initial_concern');
|
||||
$initial_concern = $req->request->get('initial_concern', '');
|
||||
|
||||
// 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 caller classification if any
|
||||
$caller_class = $req->request->get('caller_class', '');
|
||||
|
||||
// get current user
|
||||
$user = $this->security->getUser();
|
||||
|
||||
|
|
@ -1015,7 +1047,9 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
|
|||
->setSourceOfAwareness($soa_type)
|
||||
->setRemarks($remarks)
|
||||
->setInitialConcern($initial_concern)
|
||||
->setInitialConcernNotes($initial_concern_notes);
|
||||
->setInitialConcernNotes($initial_concern_notes)
|
||||
->setCallerClassification($caller_class)
|
||||
->setGender($gender);
|
||||
|
||||
if ($user != null)
|
||||
{
|
||||
|
|
@ -1097,17 +1131,23 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
|
|||
}
|
||||
|
||||
// get source of awareness if any
|
||||
$soa_type = $req->request->get('source_of_awareness');
|
||||
$soa_type = $req->request->get('source_of_awareness', '');
|
||||
|
||||
// get remarks
|
||||
$remarks = $req->request->get('remarks', '');
|
||||
|
||||
// get initial concern if any
|
||||
$initial_concern = $req->request->get('initial_concern');
|
||||
$initial_concern = $req->request->get('initial_concern', '');
|
||||
|
||||
// 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 caller classification if any
|
||||
$caller_class = $req->request->get('caller_class', '');
|
||||
|
||||
if (empty($error_array)) {
|
||||
// coordinates
|
||||
$point = new Point($req->request->get('coord_lng'), $req->request->get('coord_lat'));
|
||||
|
|
@ -1131,7 +1171,9 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
|
|||
->setSourceOfAwareness($soa_type)
|
||||
->setRemarks($remarks)
|
||||
->setInitialConcern($initial_concern)
|
||||
->setInitialConcernNotes($initial_concern_notes);
|
||||
->setInitialConcernNotes($initial_concern_notes)
|
||||
->setGender($gender)
|
||||
->setCallerClassification($caller_class);
|
||||
|
||||
// validate
|
||||
$errors = $this->validator->validate($obj);
|
||||
|
|
@ -1333,20 +1375,29 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
|
|||
}
|
||||
|
||||
// get source of awareness if any
|
||||
$soa_type = $req->request->get('source_of_awareness');
|
||||
$soa_type = $req->request->get('source_of_awareness', '');
|
||||
|
||||
// get remarks
|
||||
$remarks = $req->request->get('remarks', '');
|
||||
|
||||
// get initial concern if any
|
||||
$initial_concern = $req->request->get('initial_concern');
|
||||
$initial_concern = $req->request->get('initial_concern', '');
|
||||
|
||||
// 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 caller classification if any
|
||||
$caller_class = $req->request->get('caller_class', '');
|
||||
|
||||
// get previously assigned hub, if any
|
||||
$old_hub = $obj->getHub();
|
||||
|
||||
// get previously assigned rider, if any
|
||||
$old_rider = $obj->getRider();
|
||||
|
||||
if (empty($error_array))
|
||||
{
|
||||
// rider mqtt event
|
||||
|
|
@ -1358,6 +1409,19 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
|
|||
];
|
||||
$mclient->sendRiderEvent($obj, $rider_payload);
|
||||
|
||||
// need to unset first rider's current job order
|
||||
$old_rider = $obj->getRider();
|
||||
if ($old_rider != null)
|
||||
{
|
||||
if (($old_rider->getCurrentJobOrder() != null) &&
|
||||
($old_rider->getCurrentJobOrder()->getID() == $obj->getID()))
|
||||
{
|
||||
$old_rider->setCurrentJobOrder();
|
||||
// set available flag for first rider
|
||||
$old_rider->setAvailable(true);
|
||||
}
|
||||
}
|
||||
|
||||
// coordinates
|
||||
$point = new Point($req->request->get('coord_lng'), $req->request->get('coord_lat'));
|
||||
|
||||
|
|
@ -1382,6 +1446,8 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
|
|||
->setRemarks($remarks)
|
||||
->setInitialConcern($initial_concern)
|
||||
->setInitialConcernNotes($initial_concern_notes)
|
||||
->setGender($gender)
|
||||
->setCallerClassification($caller_class)
|
||||
->clearRider();
|
||||
|
||||
if ($user != null)
|
||||
|
|
@ -1579,17 +1645,23 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
|
|||
}
|
||||
|
||||
// get source of awareness if any
|
||||
$soa_type = $req->request->get('source_of_awareness');
|
||||
$soa_type = $req->request->get('source_of_awareness', '');
|
||||
|
||||
// get remarks
|
||||
$remarks = $req->request->get('remarks', '');
|
||||
|
||||
// get initial concern if any
|
||||
$initial_concern = $req->request->get('initial_concern');
|
||||
$initial_concern = $req->request->get('initial_concern', '');
|
||||
|
||||
// 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 caller classification if any
|
||||
$caller_class = $req->request->get('caller_class', '');
|
||||
|
||||
if (empty($error_array)) {
|
||||
// rider mqtt event
|
||||
// NOTE: need to send this before saving because rider will be cleared
|
||||
|
|
@ -1604,9 +1676,13 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
|
|||
$old_rider = $obj->getRider();
|
||||
if ($old_rider != null)
|
||||
{
|
||||
$old_rider->setCurrentJobOrder();
|
||||
// set available flag for first rider
|
||||
$old_rider->setAvailable(true);
|
||||
if (($old_rider->getCurrentJobOrder() != null) &&
|
||||
($old_rider->getCurrentJobOrder()->getID() == $obj->getID()))
|
||||
{
|
||||
$old_rider->setCurrentJobOrder();
|
||||
// set available flag for first rider
|
||||
$old_rider->setAvailable(true);
|
||||
}
|
||||
}
|
||||
|
||||
// coordinates
|
||||
|
|
@ -1634,7 +1710,9 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
|
|||
->setRemarks($remarks)
|
||||
->setDeliveryStatus(DeliveryStatus::RIDER_ASSIGN)
|
||||
->setInitialConcern($initial_concern)
|
||||
->setInitialConcernNotes($initial_concern_notes);
|
||||
->setInitialConcernNotes($initial_concern_notes)
|
||||
->setGender($gender)
|
||||
->setCallerClassification($caller_class);
|
||||
|
||||
if ($user != null)
|
||||
{
|
||||
|
|
@ -3142,6 +3220,8 @@ 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();
|
||||
$params['caller_classifications'] = CallerClassification::getCollection();
|
||||
}
|
||||
|
||||
protected function initFormTags(&$params)
|
||||
|
|
|
|||
|
|
@ -404,7 +404,7 @@
|
|||
<div class="col-lg-6">
|
||||
<label data-field="initial_concern">Initial Concern of Customer</label>
|
||||
<select class="form-control m-input" id="initial-concern" name="initial_concern">
|
||||
<option value="">Select an initial concern</option>
|
||||
<option value=""></option>
|
||||
{% for key, class in initial_concern %}
|
||||
<option value="{{ key }}"{{ obj.getInitialConcern == key ? ' selected' }}>{{ class }}</option>
|
||||
{% endfor %}
|
||||
|
|
@ -468,6 +468,28 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group m-form__group row">
|
||||
<div class="col-lg-6">
|
||||
<label data-field="status">Gender of Caller</label>
|
||||
<select class="form-control m-input" id="gender" name="gender">
|
||||
<option value=""></option>
|
||||
{% for key, gender in genders %}
|
||||
<option value="{{ key }}"{{ key == obj.getGender ? ' selected' }}>{{ gender }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
<div class="form-control-feedback hide" data-field="gender"></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 class="form-group m-form__group row">
|
||||
<div class="col-lg-6">
|
||||
<label data-field="status">Source of Awareness</label>
|
||||
|
|
|
|||
Loading…
Reference in a new issue