Add no trade in reason to form and JO entity. #462
This commit is contained in:
parent
4454f10d45
commit
e8220f4282
3 changed files with 74 additions and 21 deletions
|
|
@ -346,6 +346,12 @@ class JobOrder
|
|||
*/
|
||||
protected $reasons_not_waiting;
|
||||
|
||||
// reason for not trading in battery
|
||||
/**
|
||||
* @ORM\Column(type="string", length=80, nullable=true)
|
||||
*/
|
||||
protected $no_trade_in_reason;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->date_create = new DateTime();
|
||||
|
|
@ -997,4 +1003,15 @@ class JobOrder
|
|||
{
|
||||
return $this->reasons_not_waiting;
|
||||
}
|
||||
|
||||
public function setNoTradeInReason($reason)
|
||||
{
|
||||
$this->no_trade_in_reason = $reason;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getNoTradeInReason()
|
||||
{
|
||||
return $this->no_trade_in_reason;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -38,6 +38,7 @@ use App\Ramcar\TransactionOrigin;
|
|||
use App\Ramcar\FacilitatedType;
|
||||
use App\Ramcar\JORejectionReason;
|
||||
use App\Ramcar\CustomerNotWaitReason;
|
||||
use App\Ramcar\NoTradeInReason;
|
||||
|
||||
use App\Service\InvoiceGeneratorInterface;
|
||||
use App\Service\JobOrderHandlerInterface;
|
||||
|
|
@ -332,6 +333,17 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
|
|||
else
|
||||
$reason = $req->request->get('no_wait_reason');
|
||||
|
||||
// check if trade in
|
||||
$is_trade_in = $req->request->get('invoice_trade_in_type');
|
||||
$no_trade_in_reason = '';
|
||||
if (empty($is_trade_in))
|
||||
{
|
||||
$no_trade_in_reason = $req->request->get('no_trade_in_reason');
|
||||
|
||||
if (empty($no_trade_in_reason))
|
||||
$error_array['no_trade_in_reason'] = 'No trade in reason required.';
|
||||
}
|
||||
|
||||
// TODO: check status before saving since JO might already
|
||||
// have a status that needs to be retained
|
||||
|
||||
|
|
@ -363,7 +375,8 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
|
|||
->setModeOfPayment($req->request->get('mode_of_payment'))
|
||||
->setLandmark($req->request->get('landmark'))
|
||||
->setWillingToWait($req->request->get('flag_will_wait', false))
|
||||
->setReasonsNotWait($reason);
|
||||
->setReasonsNotWait($reason)
|
||||
->setNoTradeInReason($no_trade_in_reason);
|
||||
|
||||
// check if user is null, meaning call to create came from API
|
||||
if ($user != null)
|
||||
|
|
@ -465,6 +478,17 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
|
|||
else
|
||||
$reason = $req->request->get('no_wait_reason');
|
||||
|
||||
// check if trade in
|
||||
$is_trade_in = $req->request->get('invoice_trade_in_type');
|
||||
$no_trade_in_reason = '';
|
||||
if (empty($is_trade_in))
|
||||
{
|
||||
$no_trade_in_reason = $req->request->get('no_trade_in_reason');
|
||||
|
||||
if (empty($no_trade_in_reason))
|
||||
$error_array['no_trade_in_reason'] = 'No trade in reason required.';
|
||||
}
|
||||
|
||||
if (empty($error_array))
|
||||
{
|
||||
// get current user
|
||||
|
|
@ -491,7 +515,8 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
|
|||
->setModeOfPayment($req->request->get('mode_of_payment'))
|
||||
->setLandmark($req->request->get('landmark'))
|
||||
->setWillingToWait($req->request->get('flag_will_wait', false))
|
||||
->setReasonsNotWait($reason);
|
||||
->setReasonsNotWait($reason)
|
||||
->setNoTradeInReason($no_trade_in_reason);
|
||||
|
||||
// did they change invoice?
|
||||
$invoice_items = $req->request->get('invoice_items', []);
|
||||
|
|
@ -837,6 +862,17 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
|
|||
else
|
||||
$reason = $req->request->get('no_wait_reason');
|
||||
|
||||
// check if trade in
|
||||
$is_trade_in = $req->request->get('invoice_trade_in_type');
|
||||
$no_trade_in_reason = '';
|
||||
if (empty($is_trade_in))
|
||||
{
|
||||
$no_trade_in_reason = $req->request->get('no_trade_in_reason');
|
||||
|
||||
if (empty($no_trade_in_reason))
|
||||
$error_array['no_trade_in_reason'] = 'No trade in reason required.';
|
||||
}
|
||||
|
||||
if (empty($error_array)) {
|
||||
// coordinates
|
||||
$point = new Point($req->request->get('coord_lng'), $req->request->get('coord_lat'));
|
||||
|
|
@ -854,7 +890,8 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
|
|||
->setDeliveryAddress($req->request->get('delivery_address'))
|
||||
->setLandmark($req->request->get('landmark'))
|
||||
->setWillingToWait($req->request->get('flag_will_wait', false))
|
||||
->setReasonsNotWait($reason);
|
||||
->setReasonsNotWait($reason)
|
||||
->setNoTradeInReason($no_trade_in_reason);
|
||||
|
||||
// validate
|
||||
$errors = $this->validator->validate($obj);
|
||||
|
|
@ -2555,6 +2592,7 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
|
|||
$params['facilitated_hubs'] = $fac_hubs;
|
||||
$params['sources'] = TransactionOrigin::getCollection();
|
||||
$params['no_wait_reasons'] = CustomerNotWaitReason::getCollection();
|
||||
$params['no_trade_in_reasons'] = NoTradeInReason::getCollection();
|
||||
}
|
||||
|
||||
protected function initFormTags(&$params)
|
||||
|
|
|
|||
|
|
@ -308,6 +308,7 @@
|
|||
<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>
|
||||
|
|
@ -455,20 +456,6 @@
|
|||
<div class="form-control-feedback hide" data-field="promo_detail"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group m-form__group row">
|
||||
<div class="col-lg-6">
|
||||
<div class="col-lg-12 form-group-inner">
|
||||
<label data-field="source">No Trade In</label>
|
||||
<div class="m-checkbox-list">
|
||||
<label class="m-checkbox">
|
||||
<input type="checkbox" name="flag_no_trade_in" id="flag-no-trade-in" value="1"{{ obj.getCustomer ? obj.getCustomer.isPromoSms ? ' checked' }} >
|
||||
SMS
|
||||
<span></span>
|
||||
<div class="form-control-feedback hide" data-field="flag_promo_sms"></div>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<div class="col-lg-12 form-group-inner">
|
||||
<label>Email Address</label>
|
||||
|
|
@ -564,20 +551,31 @@
|
|||
<option value="">Select a vehicle and manufacturer first</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-lg-2">
|
||||
<div class="col-lg-1">
|
||||
<label for="invoice-trade-in-type">Trade In</label>
|
||||
<select class="form-control m-input" id="invoice-trade-in-type">
|
||||
<select class="form-control m-input" name="invoice_trade_in_type" id="invoice-trade-in-type">
|
||||
<option value="">None</option>
|
||||
{% for key, type in trade_in_types %}
|
||||
<option value="{{ key }}">{{ type }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-lg-2">
|
||||
<div class="col-lg-2">
|
||||
<label data-field="no_trade_in_reason">No Trade In Reason</label>
|
||||
<select class="form-control m-input" id="no-trade-in-reason" name="no_trade_in_reason">
|
||||
<option value="">Select reason</option>
|
||||
{% for key, class in no_trade_in_reasons %}
|
||||
<option value="{{ key }}"{{ obj.getNoTradeInReason == key ? ' selected' }}>{{ class }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
<div class="form-control-feedback hide" data-field="no_trade_in_reason"></div>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-1">
|
||||
<label for="invoice-quantity">Quantity</label>
|
||||
<input type="text" id="invoice-quantity" class="form-control m-input text-right" value="1">
|
||||
</div>
|
||||
<div class="col-lg-5">
|
||||
<div class="col-lg-3">
|
||||
<div><label> </label></div>
|
||||
<button type="button" class="btn btn-primary" id="btn-add-to-invoice">Add</button>
|
||||
<!--
|
||||
|
|
|
|||
Loading…
Reference in a new issue