Change text field to dropdown for reasons why customer will not wait. #454

This commit is contained in:
Korina Cordero 2020-08-04 03:32:51 +00:00
parent cf6793a323
commit 78d0f4b150
2 changed files with 42 additions and 29 deletions

View file

@ -37,6 +37,7 @@ use App\Ramcar\ModeOfPayment;
use App\Ramcar\TransactionOrigin; use App\Ramcar\TransactionOrigin;
use App\Ramcar\FacilitatedType; use App\Ramcar\FacilitatedType;
use App\Ramcar\JORejectionReason; use App\Ramcar\JORejectionReason;
use App\Ramcar\CustomerNotWaitReason;
use App\Service\InvoiceGeneratorInterface; use App\Service\InvoiceGeneratorInterface;
use App\Service\JobOrderHandlerInterface; use App\Service\JobOrderHandlerInterface;
@ -326,9 +327,10 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
// check if customer is not willing to wait // check if customer is not willing to wait
$will_wait = $req->request->get('flag_will_wait'); $will_wait = $req->request->get('flag_will_wait');
$reason = $req->request->get('no_wait_reason'); if ($will_wait)
if ((!($will_wait)) && (empty($reason))) $reason = '';
$error_array['no_wait_reason'] = 'Reason is needed.'; else
$reason = $req->request->get('no_wait_reason');
// 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
@ -361,7 +363,7 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
->setModeOfPayment($req->request->get('mode_of_payment')) ->setModeOfPayment($req->request->get('mode_of_payment'))
->setLandmark($req->request->get('landmark')) ->setLandmark($req->request->get('landmark'))
->setWillingToWait($req->request->get('flag_will_wait', false)) ->setWillingToWait($req->request->get('flag_will_wait', false))
->setReasonsNotWait($req->request->get('no_wait_reason')); ->setReasonsNotWait($reason);
// check if user is null, meaning call to create came from API // check if user is null, meaning call to create came from API
if ($user != null) if ($user != null)
@ -458,9 +460,10 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
// check if customer is not willing to wait // check if customer is not willing to wait
$will_wait = $req->request->get('flag_will_wait'); $will_wait = $req->request->get('flag_will_wait');
$reason = $req->request->get('no_wait_reason'); if ($will_wait)
if ((!($will_wait)) && (empty($reason))) $reason = '';
$error_array['no_wait_reason'] = 'Reason is needed.'; else
$reason = $req->request->get('no_wait_reason');
if (empty($error_array)) if (empty($error_array))
{ {
@ -488,7 +491,7 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
->setModeOfPayment($req->request->get('mode_of_payment')) ->setModeOfPayment($req->request->get('mode_of_payment'))
->setLandmark($req->request->get('landmark')) ->setLandmark($req->request->get('landmark'))
->setWillingToWait($req->request->get('flag_will_wait', false)) ->setWillingToWait($req->request->get('flag_will_wait', false))
->setReasonsNotWait($req->request->get('no_wait_reason')); ->setReasonsNotWait($reason);
// did they change invoice? // did they change invoice?
$invoice_items = $req->request->get('invoice_items', []); $invoice_items = $req->request->get('invoice_items', []);
@ -625,9 +628,10 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
// check if customer is not willing to wait // check if customer is not willing to wait
$will_wait = $req->request->get('flag_will_wait'); $will_wait = $req->request->get('flag_will_wait');
$reason = $req->request->get('no_wait_reason'); if ($will_wait)
if ((!($will_wait)) && (empty($reason))) $reason = '';
$error_array['no_wait_reason'] = 'Reason is needed.'; else
$reason = $req->request->get('no_wait_reason');
if (empty($error_array)) if (empty($error_array))
{ {
@ -651,7 +655,7 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
->setHub($hub) ->setHub($hub)
->setLandmark($req->request->get('landmark')) ->setLandmark($req->request->get('landmark'))
->setWillingToWait($req->request->get('flag_will_wait', false)) ->setWillingToWait($req->request->get('flag_will_wait', false))
->setReasonsNotWait($req->request->get('no_wait_reason')); ->setReasonsNotWait($reason);
// validate // validate
$errors = $this->validator->validate($obj); $errors = $this->validator->validate($obj);
@ -731,9 +735,10 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
// check if customer is not willing to wait // check if customer is not willing to wait
$will_wait = $req->request->get('flag_will_wait'); $will_wait = $req->request->get('flag_will_wait');
$reason = $req->request->get('no_wait_reason'); if ($will_wait)
if ((!($will_wait)) && (empty($reason))) $reason = '';
$error_array['no_wait_reason'] = 'Reason is needed.'; else
$reason = $req->request->get('no_wait_reason');
// get current user // get current user
$user = $this->security->getUser(); $user = $this->security->getUser();
@ -758,7 +763,7 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
->setRider($rider) ->setRider($rider)
->setLandmark($req->request->get('landmark')) ->setLandmark($req->request->get('landmark'))
->setWillingToWait($req->request->get('flag_will_wait', false)) ->setWillingToWait($req->request->get('flag_will_wait', false))
->setReasonsNotWait($req->request->get('no_wait_reason')); ->setReasonsNotWait($reason);
if ($user != null) if ($user != null)
{ {
@ -827,9 +832,10 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
// check if customer is not willing to wait // check if customer is not willing to wait
$will_wait = $req->request->get('flag_will_wait'); $will_wait = $req->request->get('flag_will_wait');
$reason = $req->request->get('no_wait_reason'); if ($will_wait)
if ((!($will_wait)) && (empty($reason))) $reason = '';
$error_array['no_wait_reason'] = 'Reason is needed.'; else
$reason = $req->request->get('no_wait_reason');
if (empty($error_array)) { if (empty($error_array)) {
// coordinates // coordinates
@ -848,7 +854,7 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
->setDeliveryAddress($req->request->get('delivery_address')) ->setDeliveryAddress($req->request->get('delivery_address'))
->setLandmark($req->request->get('landmark')) ->setLandmark($req->request->get('landmark'))
->setWillingToWait($req->request->get('flag_will_wait', false)) ->setWillingToWait($req->request->get('flag_will_wait', false))
->setReasonsNotWait($req->request->get('no_wait_reason')); ->setReasonsNotWait($reason);
// validate // validate
$errors = $this->validator->validate($obj); $errors = $this->validator->validate($obj);
@ -1025,9 +1031,10 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
// check if customer is not willing to wait // check if customer is not willing to wait
$will_wait = $req->request->get('flag_will_wait'); $will_wait = $req->request->get('flag_will_wait');
$reason = $req->request->get('no_wait_reason'); if ($will_wait)
if ((!($will_wait)) && (empty($reason))) $reason = '';
$error_array['no_wait_reason'] = 'Reason is needed.'; else
$reason = $req->request->get('no_wait_reason');
if (empty($error_array)) if (empty($error_array))
{ {
@ -1059,7 +1066,7 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
->clearRider() ->clearRider()
->setLandmark($req->request->get('landmark')) ->setLandmark($req->request->get('landmark'))
->setWillingToWait($req->request->get('flag_will_wait', false)) ->setWillingToWait($req->request->get('flag_will_wait', false))
->setReasonsNotWait($req->request->get('no_wait_reason')); ->setReasonsNotWait($reason);
if ($user != null) if ($user != null)
{ {
@ -1239,9 +1246,10 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
// check if customer is not willing to wait // check if customer is not willing to wait
$will_wait = $req->request->get('flag_will_wait'); $will_wait = $req->request->get('flag_will_wait');
$reason = $req->request->get('no_wait_reason'); if ($will_wait)
if ((!($will_wait)) && (empty($reason))) $reason = '';
$error_array['no_wait_reason'] = 'Reason is needed.'; else
$reason = $req->request->get('no_wait_reason');
if (empty($error_array)) { if (empty($error_array)) {
// rider mqtt event // rider mqtt event
@ -1272,7 +1280,7 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
->setRider($rider) ->setRider($rider)
->setLandmark($req->request->get('landmark')) ->setLandmark($req->request->get('landmark'))
->setWillingToWait($req->request->get('flag_will_wait', false)) ->setWillingToWait($req->request->get('flag_will_wait', false))
->setReasonsNotWait($req->request->get('no_wait_reason')); ->setReasonsNotWait($reason);
if ($user != null) if ($user != null)
{ {
@ -2544,6 +2552,7 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
$params['facilitated_types'] = FacilitatedType::getCollection(); $params['facilitated_types'] = FacilitatedType::getCollection();
$params['facilitated_hubs'] = $fac_hubs; $params['facilitated_hubs'] = $fac_hubs;
$params['sources'] = TransactionOrigin::getCollection(); $params['sources'] = TransactionOrigin::getCollection();
$params['no_wait_reasons'] = CustomerNotWaitReason::getCollection();
} }
protected function initFormTags(&$params) protected function initFormTags(&$params)

View file

@ -300,7 +300,11 @@
</div> </div>
<div class="col-lg-6"> <div class="col-lg-6">
<label data-field="no_wait_reason">Reason Why Not Willing to Wait</label> <label data-field="no_wait_reason">Reason Why Not Willing to Wait</label>
<input type="text" name="no_wait_reason" class="form-control m-input" value="{{ obj.getReasonsNotWait|default('') }}"> <select class="form-control m-input" id="no-wait-reason" name="no_wait_reason">
{% for key, class in no_wait_reasons %}
<option value="{{ key }}"{{ obj.getReasonsNotWait == key ? ' selected' }}>{{ class }}</option>
{% endfor %}
</select>
<div class="form-control-feedback hide" data-field="no_wait_reason"></div> <div class="form-control-feedback hide" data-field="no_wait_reason"></div>
</div> </div>
</div> </div>