Merge branch '445-resq-tickbox-for-customer-willing-to-wait' into '453-resq-july-30-release'

Resolve "Resq - tickbox for customer willing to wait"

See merge request jankstudio/resq!527
This commit is contained in:
Korina Cordero 2020-07-28 10:12:17 +00:00
commit 8e91f9f76b
4 changed files with 68 additions and 2 deletions

View file

@ -334,6 +334,18 @@ class JobOrder
*/
protected $phone_mobile;
// flag if customer is willing to wait
/**
* @ORM\Column(type="boolean", nullable=true)
*/
protected $flag_will_wait;
// reason for not willing to wait
/**
* @ORM\Column(type="string", length=80, nullable=true)
*/
protected $reasons_not_waiting;
public function __construct()
{
$this->date_create = new DateTime();
@ -356,6 +368,8 @@ class JobOrder
$this->meta = [];
$this->phone_mobile = '';
$this->flag_will_wait = true;
}
public function getID()
@ -962,5 +976,25 @@ class JobOrder
return $this->phone_mobile;
}
public function setWillingToWait($flag = true)
{
$this->flag_will_wait = $flag;
return $this;
}
public function isWillingToWait()
{
return $this->flag_will_wait;
}
public function setReasonsNotWait($reasons)
{
$this->reasons_not_waiting = $reasons;
return $this;
}
public function getReasonsNotWait()
{
return $this->reasons_not_waiting;
}
}

View file

@ -324,6 +324,12 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
if (empty($req->request->get('landmark')))
$error_array['landmark'] = 'Landmark is required.';
// check if customer is not willing to wait
$will_wait = $req->request->get('flag_will_wait');
$reason = $req->request->get('no_wait_reason');
if ((!($will_wait)) && (empty($reason)))
$error_array['no_wait_reason'] = 'Reason is needed.';
// TODO: check status before saving since JO might already
// have a status that needs to be retained
@ -353,7 +359,9 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
->setORName($req->request->get('or_name'))
->setPromoDetail($req->request->get('promo_detail'))
->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))
->setReasonsNotWait($req->request->get('no_wait_reason'));
// check if user is null, meaning call to create came from API
if ($user != null)
@ -444,6 +452,16 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
$error_array['coordinates'] = 'No map coordinates provided. Please click on a location on the map.';
}
// check if landmark is set
if (empty($req->request->get('landmark')))
$error_array['landmark'] = 'Landmark is required.';
// check if customer is not willing to wait
$will_wait = $req->request->get('flag_will_wait');
$reason = $req->request->get('no_wait_reason');
if ((!($will_wait)) && (empty($reason)))
$error_array['no_wait_reason'] = 'Reason is needed.';
if (empty($error_array))
{
// get current user
@ -468,7 +486,9 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
->setORName($req->request->get('or_name'))
->setPromoDetail($req->request->get('promo_detail'))
->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))
->setReasonsNotWait($req->request->get('no_wait_reason'));
// did they change invoice?
$invoice_items = $req->request->get('invoice_items', []);

View file

@ -292,6 +292,18 @@
<div class="form-control-feedback hide" data-field="date_schedule_time"></div>
</div>
</div>
<div class="form-group m-form__group row">
<div class="col-lg-6">
<input type="checkbox" name="flag_will_wait" id="flag-will-wait" value="1"{{ obj.isWillingToWait ? ' checked' }} >
<label class="switch-label">Willing to Wait</label>
<div class="form-control-feedback hide" data-field="flag_will_wait"></div>
</div>
<div class="col-lg-6">
<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('') }}">
<div class="form-control-feedback hide" data-field="no_wait_reason"></div>
</div>
</div>
<div class="form-group m-form__group row">
<div class="col-lg-6">
<label data-field="tier1_notes">Tier 1 Notes</label>