Merge branch '462-resq-dropdown-for-trade-in-reason' into '465-resq-august-13-release'
Resolve "Resq - dropdown for trade-in reason" See merge request jankstudio/resq!541
This commit is contained in:
commit
8d33e21647
4 changed files with 106 additions and 9 deletions
|
|
@ -346,6 +346,12 @@ class JobOrder
|
||||||
*/
|
*/
|
||||||
protected $reasons_not_waiting;
|
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()
|
public function __construct()
|
||||||
{
|
{
|
||||||
$this->date_create = new DateTime();
|
$this->date_create = new DateTime();
|
||||||
|
|
@ -997,4 +1003,15 @@ class JobOrder
|
||||||
{
|
{
|
||||||
return $this->reasons_not_waiting;
|
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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
20
src/Ramcar/NoTradeInReason.php
Normal file
20
src/Ramcar/NoTradeInReason.php
Normal file
|
|
@ -0,0 +1,20 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Ramcar;
|
||||||
|
|
||||||
|
class NoTradeInReason extends NameValue
|
||||||
|
{
|
||||||
|
const NO_EXISTING_BATTERY = 'no_existing_battery';
|
||||||
|
const SELL_OTHER_SHOP = 'sell_other_shop';
|
||||||
|
const SPARE_BATTERY = 'used_as_spare_battery';
|
||||||
|
const RETURN_BATTERY_COMPANY = 'return_battery_company';
|
||||||
|
const LOW_TRADE_IN_VALUE = 'low_trade_in_value';
|
||||||
|
|
||||||
|
const COLLECTION = [
|
||||||
|
'no_existing_battery' => 'No existing battery',
|
||||||
|
'sell_other_shop' => 'Sell to other shop',
|
||||||
|
'used_as_spare_battery' => 'Used as spare battery',
|
||||||
|
'return_battery_company' => 'Need to return battery to company',
|
||||||
|
'low_trade_in_value' => 'Trade in value is low',
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
@ -38,6 +38,7 @@ 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\Ramcar\CustomerNotWaitReason;
|
||||||
|
use App\Ramcar\NoTradeInReason;
|
||||||
|
|
||||||
use App\Service\InvoiceGeneratorInterface;
|
use App\Service\InvoiceGeneratorInterface;
|
||||||
use App\Service\JobOrderHandlerInterface;
|
use App\Service\JobOrderHandlerInterface;
|
||||||
|
|
@ -332,6 +333,17 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
|
||||||
else
|
else
|
||||||
$reason = $req->request->get('no_wait_reason');
|
$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
|
// 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
|
||||||
|
|
||||||
|
|
@ -363,7 +375,8 @@ 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($reason);
|
->setReasonsNotWait($reason)
|
||||||
|
->setNoTradeInReason($no_trade_in_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)
|
||||||
|
|
@ -465,6 +478,17 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
|
||||||
else
|
else
|
||||||
$reason = $req->request->get('no_wait_reason');
|
$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))
|
if (empty($error_array))
|
||||||
{
|
{
|
||||||
// get current user
|
// get current user
|
||||||
|
|
@ -491,7 +515,8 @@ 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($reason);
|
->setReasonsNotWait($reason)
|
||||||
|
->setNoTradeInReason($no_trade_in_reason);
|
||||||
|
|
||||||
// did they change invoice?
|
// did they change invoice?
|
||||||
$invoice_items = $req->request->get('invoice_items', []);
|
$invoice_items = $req->request->get('invoice_items', []);
|
||||||
|
|
@ -837,6 +862,17 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
|
||||||
else
|
else
|
||||||
$reason = $req->request->get('no_wait_reason');
|
$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)) {
|
if (empty($error_array)) {
|
||||||
// coordinates
|
// coordinates
|
||||||
$point = new Point($req->request->get('coord_lng'), $req->request->get('coord_lat'));
|
$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'))
|
->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($reason);
|
->setReasonsNotWait($reason)
|
||||||
|
->setNoTradeInReason($no_trade_in_reason);
|
||||||
|
|
||||||
// validate
|
// validate
|
||||||
$errors = $this->validator->validate($obj);
|
$errors = $this->validator->validate($obj);
|
||||||
|
|
@ -1029,6 +1066,8 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
|
||||||
if (empty($req->request->get('landmark')))
|
if (empty($req->request->get('landmark')))
|
||||||
$error_array['landmark'] = 'Landmark is required.';
|
$error_array['landmark'] = 'Landmark is required.';
|
||||||
|
|
||||||
|
error_log($req->request->get('landmark'));
|
||||||
|
|
||||||
// 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');
|
||||||
if ($will_wait)
|
if ($will_wait)
|
||||||
|
|
@ -1063,10 +1102,10 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
|
||||||
->setTier2Notes($req->request->get('tier2_notes'))
|
->setTier2Notes($req->request->get('tier2_notes'))
|
||||||
->setDeliveryAddress($req->request->get('delivery_address'))
|
->setDeliveryAddress($req->request->get('delivery_address'))
|
||||||
->setHub($hub)
|
->setHub($hub)
|
||||||
->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($reason);
|
->setReasonsNotWait($reason)
|
||||||
|
->clearRider();
|
||||||
|
|
||||||
if ($user != null)
|
if ($user != null)
|
||||||
{
|
{
|
||||||
|
|
@ -2553,6 +2592,7 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
|
||||||
$params['facilitated_hubs'] = $fac_hubs;
|
$params['facilitated_hubs'] = $fac_hubs;
|
||||||
$params['sources'] = TransactionOrigin::getCollection();
|
$params['sources'] = TransactionOrigin::getCollection();
|
||||||
$params['no_wait_reasons'] = CustomerNotWaitReason::getCollection();
|
$params['no_wait_reasons'] = CustomerNotWaitReason::getCollection();
|
||||||
|
$params['no_trade_in_reasons'] = NoTradeInReason::getCollection();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function initFormTags(&$params)
|
protected function initFormTags(&$params)
|
||||||
|
|
|
||||||
|
|
@ -308,6 +308,7 @@
|
||||||
<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>
|
||||||
|
|
||||||
<div class="form-group m-form__group row">
|
<div class="form-group m-form__group row">
|
||||||
<div class="col-lg-6">
|
<div class="col-lg-6">
|
||||||
<label data-field="tier1_notes">Tier 1 Notes</label>
|
<label data-field="tier1_notes">Tier 1 Notes</label>
|
||||||
|
|
@ -455,6 +456,14 @@
|
||||||
<div class="form-control-feedback hide" data-field="promo_detail"></div>
|
<div class="form-control-feedback hide" data-field="promo_detail"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="col-lg-6">
|
||||||
|
<div class="col-lg-12 form-group-inner">
|
||||||
|
<label>Email Address</label>
|
||||||
|
<input type="text" name="customer_email" id="customer-email" class="form-control m-input" value="{{ obj.getCustomer ? obj.getCustomer.getEmail|default('') }}" data-vehicle-field="1" >
|
||||||
|
<div class="form-control-feedback hide" data-field="customer_email"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="form-group m-form__group row">
|
<div class="form-group m-form__group row">
|
||||||
<div class="col-lg-6">
|
<div class="col-lg-6">
|
||||||
<label>Discount Type</label>
|
<label>Discount Type</label>
|
||||||
|
|
@ -542,20 +551,31 @@
|
||||||
<option value="">Select a vehicle and manufacturer first</option>
|
<option value="">Select a vehicle and manufacturer first</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-lg-2">
|
<div class="col-lg-1">
|
||||||
<label for="invoice-trade-in-type">Trade In</label>
|
<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>
|
<option value="">None</option>
|
||||||
{% for key, type in trade_in_types %}
|
{% for key, type in trade_in_types %}
|
||||||
<option value="{{ key }}">{{ type }}</option>
|
<option value="{{ key }}">{{ type }}</option>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</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>
|
<label for="invoice-quantity">Quantity</label>
|
||||||
<input type="text" id="invoice-quantity" class="form-control m-input text-right" value="1">
|
<input type="text" id="invoice-quantity" class="form-control m-input text-right" value="1">
|
||||||
</div>
|
</div>
|
||||||
<div class="col-lg-5">
|
<div class="col-lg-3">
|
||||||
<div><label> </label></div>
|
<div><label> </label></div>
|
||||||
<button type="button" class="btn btn-primary" id="btn-add-to-invoice">Add</button>
|
<button type="button" class="btn btn-primary" id="btn-add-to-invoice">Add</button>
|
||||||
<!--
|
<!--
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue