Add initial concern of customer and text area to job order. #671

This commit is contained in:
Korina Cordero 2022-05-26 03:47:51 +00:00
parent 3b23c7b913
commit 70cbecb481
4 changed files with 130 additions and 6 deletions

View file

@ -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;
}
}

View file

@ -0,0 +1,14 @@
<?php
namespace App\Ramcar;
class InitialConcern extends NameValue
{
const BATTERY_PRICE_INQUIRY = 'battery_price_inquiry';
const OTHER = 'other';
const COLLECTION = [
'battery_price_inquiry' => 'Battery Price Inquiry',
'other' => 'Other',
];
}

View file

@ -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)

View file

@ -399,6 +399,24 @@
<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>
</div>
<div class="form-group m-form__group row">
<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>
{% for key, class in initial_concern %}
<option value="{{ key }}"{{ obj.getInitialConcern == key ? ' selected' }}>{{ class }}</option>
{% endfor %}
</select>
<div class="form-control-feedback hide" data-field="initial_concern"></div>
</div>
<div class="col-lg-6">
<label data-field="initial_concern_notes">Notes on Initial Concern of Customer</label>
<textarea name="initial_concern_notes" id="initial-concern-notes" class="form-control m-input" rows="2">{{ obj.getInitialConcernNotes }}</textarea>
<div class="form-control-feedback hide" data-field="initial_concern_notes"></div>
</div>
</div>
<div class="form-group m-form__group row">