Add emergency type to job order. #677
This commit is contained in:
parent
a847cba9b9
commit
70d917a585
3 changed files with 102 additions and 10 deletions
|
|
@ -408,6 +408,13 @@ class JobOrder
|
|||
*/
|
||||
protected $caller_classification;
|
||||
|
||||
// emergency type
|
||||
/**
|
||||
* @ORM\ManyToOne(targetEntity="EmergencyType", inversedBy="job_orders")
|
||||
* @ORM\JoinColumn(name="emergency_type_id", referencedColumnName="id", nullable=true)
|
||||
*/
|
||||
protected $emergency_type;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->date_create = new DateTime();
|
||||
|
|
@ -1164,4 +1171,15 @@ class JobOrder
|
|||
return $this->caller_classification;
|
||||
}
|
||||
|
||||
public function setEmergencyType(EmergencyType $emergency_type = null)
|
||||
{
|
||||
$this->emergency_type = $emergency_type;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getEmergencyType()
|
||||
{
|
||||
return $this->emergency_type;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,6 +26,7 @@ use App\Entity\JORejection;
|
|||
use App\Entity\Warranty;
|
||||
use App\Entity\Customer;
|
||||
use App\Entity\CustomerTag;
|
||||
use App\Entity\EmergencyType;
|
||||
|
||||
use App\Ramcar\InvoiceCriteria;
|
||||
use App\Ramcar\ServiceType;
|
||||
|
|
@ -433,6 +434,10 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
|
|||
// get caller classification if any
|
||||
$caller_class = $req->request->get('caller_class','');
|
||||
|
||||
// get emergency type if any
|
||||
$etype_id = $req->request->get('emergency_type', 0);
|
||||
$etype = $em->getRepository(EmergencyType::class)->find($etype_id);
|
||||
|
||||
// TODO: check status before saving since JO might already
|
||||
// have a status that needs to be retained
|
||||
|
||||
|
|
@ -470,7 +475,8 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
|
|||
->setInitialConcern($initial_concern)
|
||||
->setInitialConcernNotes($initial_concern_notes)
|
||||
->setCallerClassification($caller_class)
|
||||
->setGender($gender);
|
||||
->setGender($gender)
|
||||
->setEmergencyType($etype);
|
||||
|
||||
// check if user is null, meaning call to create came from API
|
||||
if ($user != null)
|
||||
|
|
@ -683,6 +689,10 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
|
|||
// get caller classification if any
|
||||
$caller_class = $req->request->get('caller_class', '');
|
||||
|
||||
// get emergency type if any
|
||||
$etype_id = $req->request->get('emergency_type', 0);
|
||||
$etype = $em->getRepository(EmergencyType::class)->find($etype_id);
|
||||
|
||||
if (empty($error_array))
|
||||
{
|
||||
// get current user
|
||||
|
|
@ -715,7 +725,8 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
|
|||
->setInitialConcern($initial_concern)
|
||||
->setInitialConcernNotes($initial_concern_notes)
|
||||
->setCallerClassification($caller_class)
|
||||
->setGender($gender);
|
||||
->setGender($gender)
|
||||
->setEmergencyType($etype);
|
||||
|
||||
// did they change invoice?
|
||||
$invoice_items = $req->request->get('invoice_items', []);
|
||||
|
|
@ -879,6 +890,10 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
|
|||
// get caller classification if any
|
||||
$caller_class = $req->request->get('caller_class', '');
|
||||
|
||||
// get emergency type if any
|
||||
$etype_id = $req->request->get('emergency_type', 0);
|
||||
$etype = $em->getRepository(EmergencyType::class)->find($etype_id);
|
||||
|
||||
if (empty($error_array))
|
||||
{
|
||||
// coordinates
|
||||
|
|
@ -908,7 +923,8 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
|
|||
->setInitialConcern($initial_concern)
|
||||
->setInitialConcernNotes($initial_concern_notes)
|
||||
->setGender($gender)
|
||||
->setCallerClassification($caller_class);
|
||||
->setCallerClassification($caller_class)
|
||||
->setEmergencyType($etype);
|
||||
|
||||
// validate
|
||||
$errors = $this->validator->validate($obj);
|
||||
|
|
@ -1018,6 +1034,10 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
|
|||
// get caller classification if any
|
||||
$caller_class = $req->request->get('caller_class', '');
|
||||
|
||||
// get emergency type if any
|
||||
$etype_id = $req->request->get('emergency_type', 0);
|
||||
$etype = $em->getRepository(EmergencyType::class)->find($etype_id);
|
||||
|
||||
// get current user
|
||||
$user = $this->security->getUser();
|
||||
|
||||
|
|
@ -1049,7 +1069,8 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
|
|||
->setInitialConcern($initial_concern)
|
||||
->setInitialConcernNotes($initial_concern_notes)
|
||||
->setCallerClassification($caller_class)
|
||||
->setGender($gender);
|
||||
->setGender($gender)
|
||||
->setEmergencyType($etype);
|
||||
|
||||
if ($user != null)
|
||||
{
|
||||
|
|
@ -1148,6 +1169,10 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
|
|||
// get caller classification if any
|
||||
$caller_class = $req->request->get('caller_class', '');
|
||||
|
||||
// get emergency type if any
|
||||
$etype_id = $req->request->get('emergency_type', 0);
|
||||
$etype = $em->getRepository(EmergencyType::class)->find($etype_id);
|
||||
|
||||
if (empty($error_array)) {
|
||||
// coordinates
|
||||
$point = new Point($req->request->get('coord_lng'), $req->request->get('coord_lat'));
|
||||
|
|
@ -1173,7 +1198,8 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
|
|||
->setInitialConcern($initial_concern)
|
||||
->setInitialConcernNotes($initial_concern_notes)
|
||||
->setGender($gender)
|
||||
->setCallerClassification($caller_class);
|
||||
->setCallerClassification($caller_class)
|
||||
->setEmergencyType($etype);
|
||||
|
||||
// validate
|
||||
$errors = $this->validator->validate($obj);
|
||||
|
|
@ -1392,6 +1418,10 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
|
|||
// get caller classification if any
|
||||
$caller_class = $req->request->get('caller_class', '');
|
||||
|
||||
// get emergency type if any
|
||||
$etype_id = $req->request->get('emergency_type', 0);
|
||||
$etype = $em->getRepository(EmergencyType::class)->find($etype_id);
|
||||
|
||||
// get previously assigned hub, if any
|
||||
$old_hub = $obj->getHub();
|
||||
|
||||
|
|
@ -1448,6 +1478,7 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
|
|||
->setInitialConcernNotes($initial_concern_notes)
|
||||
->setGender($gender)
|
||||
->setCallerClassification($caller_class)
|
||||
->setEmergencyType($etype)
|
||||
->clearRider();
|
||||
|
||||
if ($user != null)
|
||||
|
|
@ -1662,6 +1693,10 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
|
|||
// get caller classification if any
|
||||
$caller_class = $req->request->get('caller_class', '');
|
||||
|
||||
// get emergency type if any
|
||||
$etype_id = $req->request->get('emergency_type', 0);
|
||||
$etype = $em->getRepository(EmergencyType::class)->find($etype_id);
|
||||
|
||||
if (empty($error_array)) {
|
||||
// rider mqtt event
|
||||
// NOTE: need to send this before saving because rider will be cleared
|
||||
|
|
@ -1712,7 +1747,8 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
|
|||
->setInitialConcern($initial_concern)
|
||||
->setInitialConcernNotes($initial_concern_notes)
|
||||
->setGender($gender)
|
||||
->setCallerClassification($caller_class);
|
||||
->setCallerClassification($caller_class)
|
||||
->setEmergencyType($etype);
|
||||
|
||||
if ($user != null)
|
||||
{
|
||||
|
|
@ -3194,6 +3230,15 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
|
|||
$params['bmfgs'] = $em->getRepository(BatteryManufacturer::class)->findAll();
|
||||
$params['promos'] = $em->getRepository(Promo::class)->findAll();
|
||||
|
||||
// list of emergency types
|
||||
$e_types = $em->getRepository(EmergencyType::class)->findBy([], ['name' => 'ASC']);
|
||||
$emergency_types = [];
|
||||
foreach ($e_types as $e_type)
|
||||
{
|
||||
$emergency_types[$e_type->getID()] = $e_type->getName();
|
||||
}
|
||||
$params['emergency_types'] = $emergency_types;
|
||||
|
||||
// list of hubs
|
||||
$hubs = $em->getRepository(Hub::class)->findBy([], ['name' => 'ASC']);
|
||||
$fac_hubs = [];
|
||||
|
|
|
|||
|
|
@ -375,7 +375,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="form-group m-form__group row">
|
||||
<div class="col-lg-4">
|
||||
<div class="col-lg-6">
|
||||
<label data-field="flag_will_wait">Willing to Wait</label>
|
||||
<select class="form-control m-input" id="flag-willing-to-wait" name="flag_willing_to_wait">
|
||||
{% for key, class in willing_to_wait_content %}
|
||||
|
|
@ -384,7 +384,7 @@
|
|||
</select>
|
||||
<div class="form-control-feedback hide" data-field="flag_willing_to_wait"></div>
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
<div class="col-lg-6">
|
||||
<label data-field="no_wait_reason">Reason Why Not Willing to Wait</label>
|
||||
<select class="form-control m-input" id="no-wait-reason" name="no_wait_reason" disabled>
|
||||
<option value="">None</option>
|
||||
|
|
@ -394,10 +394,26 @@
|
|||
</select>
|
||||
<div class="form-control-feedback hide" data-field="no_wait_reason"></div>
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
</div>
|
||||
<div class="form-group m-form__group row">
|
||||
<div class="col-lg-6">
|
||||
<label data-field="emergency_type">Emergency Scenario</label>
|
||||
<select class="form-control m-input" id="emergency-type" name="emergency_type" disabled>
|
||||
<option value=""></option>
|
||||
{% for id, label in emergency_types %}
|
||||
{% if obj.getEmergencyType %}
|
||||
<option value="{{ id }}"{{ obj.getEmergencyType.getID == id ? ' selected' }}>{{ label }}</option>
|
||||
{% else %}
|
||||
<option value="{{ id }}">{{ label }}</option>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</select>
|
||||
<div class="form-control-feedback hide" data-field="emergency_type"></div>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<label data-field="not_wait_notes">Notes on Not Willing to Wait</label>
|
||||
<textarea name="not_wait_notes" id="not-wait-notes" class="form-control m-input" rows="2" disabled>{{ obj.getNotWaitingNotes }}</textarea>
|
||||
<div class="form-control-feedback hide" data-field="not_wait_notes"></div>
|
||||
<div class="form-control-feedback hide" data-field="not_wait_notes"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group m-form__group row">
|
||||
|
|
@ -2053,6 +2069,19 @@ $(function() {
|
|||
|
||||
// empty the reason text field
|
||||
$("#not-wait-notes").val('');
|
||||
|
||||
// remove selected option that might have already been selected
|
||||
$("#emergency-type option:selected").prop("selected", false);
|
||||
}
|
||||
});
|
||||
|
||||
$("#no-wait-reason").change(function() {
|
||||
var field_value = $(this).val();
|
||||
console.log(field_value);
|
||||
if (field_value == 'emergency') {
|
||||
$("#emergency-type").attr("disabled", false);
|
||||
} else {
|
||||
$("#emergency-type").attr("disabled", true);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
|
|
|||
Loading…
Reference in a new issue