Merge branch '319-cmb-one-step-form-display-rider-distance' into '270-final-cmb-fixes'
Resolve "CMB - one step form display rider distance" See merge request jankstudio/resq!368
This commit is contained in:
commit
3e2d0db5cd
9 changed files with 85 additions and 23 deletions
|
|
@ -864,7 +864,7 @@ class JobOrderController extends Controller
|
||||||
// initialize error list
|
// initialize error list
|
||||||
$error_array = [];
|
$error_array = [];
|
||||||
$id = -1;
|
$id = -1;
|
||||||
$error_array = $jo_handler->generateOneStepJobOrder($req, $id);
|
$error_array = $jo_handler->processOneStepJobOrder($req, $id);
|
||||||
|
|
||||||
// check if any errors were found
|
// check if any errors were found
|
||||||
if (!empty($error_array)) {
|
if (!empty($error_array)) {
|
||||||
|
|
|
||||||
|
|
@ -19,11 +19,13 @@ use App\Entity\JobOrder;
|
||||||
use App\Entity\BatteryManufacturer;
|
use App\Entity\BatteryManufacturer;
|
||||||
use App\Entity\JOEvent;
|
use App\Entity\JOEvent;
|
||||||
use App\Entity\CustomerVehicle;
|
use App\Entity\CustomerVehicle;
|
||||||
|
use App\Entity\Vehicle;
|
||||||
use App\Entity\Hub;
|
use App\Entity\Hub;
|
||||||
use App\Entity\Promo;
|
use App\Entity\Promo;
|
||||||
use App\Entity\Rider;
|
use App\Entity\Rider;
|
||||||
use App\Entity\JORejection;
|
use App\Entity\JORejection;
|
||||||
use App\Entity\Warranty;
|
use App\Entity\Warranty;
|
||||||
|
use App\Entity\Customer;
|
||||||
|
|
||||||
use App\Ramcar\InvoiceCriteria;
|
use App\Ramcar\InvoiceCriteria;
|
||||||
use App\Ramcar\CMBServiceType;
|
use App\Ramcar\CMBServiceType;
|
||||||
|
|
@ -387,7 +389,7 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface
|
||||||
return $error_array;
|
return $error_array;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function generateOneStepJobOrder(Request $req, $id)
|
public function processOneStepJobOrder(Request $req, $id)
|
||||||
{
|
{
|
||||||
// initialize error list
|
// initialize error list
|
||||||
$error_array = [];
|
$error_array = [];
|
||||||
|
|
@ -406,15 +408,79 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface
|
||||||
$error_array['coordinates'] = 'No map coordinates provided. Please click on a location on the map.';
|
$error_array['coordinates'] = 'No map coordinates provided. Please click on a location on the map.';
|
||||||
}
|
}
|
||||||
|
|
||||||
// check if customer vehicle is set
|
// check if new customer
|
||||||
if (empty($req->request->get('customer_vehicle'))) {
|
if ($req->request->get('new_customer'))
|
||||||
$error_array['customer_vehicle'] = 'No vehicle selected.';
|
{
|
||||||
} else {
|
if (empty($req->request->get('customer_customer_notes')))
|
||||||
// get customer vehicle
|
{
|
||||||
$cust_vehicle = $em->getRepository(CustomerVehicle::class)->find($req->request->get('customer_vehicle'));
|
$error_array['customer_customer_notes'] = 'Customer notes cannot be null.';
|
||||||
|
}
|
||||||
|
|
||||||
if (empty($cust_vehicle)) {
|
$new_cust = new Customer();
|
||||||
$error_array['customer_vehicle'] = 'Invalid vehicle specified.';
|
$new_cv = new CustomerVehicle();
|
||||||
|
|
||||||
|
// find the vehicle using vid
|
||||||
|
$new_vehicle = $em->getRepository(Vehicle::class)->find($req->request->get('vid'));
|
||||||
|
if (empty($new_vehicle))
|
||||||
|
{
|
||||||
|
$error_array['cv_mfg'] = 'Invalid manufacturer specified.';
|
||||||
|
$error_array['cv_make'] = 'Invalid make specified.';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
|
||||||
|
$new_cust->setLastName($req->request->get('customer_last_name'))
|
||||||
|
->setFirstName($req->request->get('customer_first_name'))
|
||||||
|
->setPhoneMobile($req->request->get('customer_phone_mobile'))
|
||||||
|
->setPhoneLandline($req->request->get('customer_phone_landline'))
|
||||||
|
->setPhoneOffice($req->request->get('customer_phone_office'))
|
||||||
|
->setPhoneFax($req->request->get('customer_phone_fax'))
|
||||||
|
->setCustomerNotes($req->request->get('customer_customer_notes'));
|
||||||
|
|
||||||
|
$new_cv->setCustomer($new_cust)
|
||||||
|
->setVehicle($new_vehicle)
|
||||||
|
->setPlateNumber($req->request->get('cv_plate'))
|
||||||
|
->setModelYear($req->request->get('cv_year'))
|
||||||
|
->setColor('')
|
||||||
|
->setStatusCondition('')
|
||||||
|
->setFuelType('')
|
||||||
|
->setActive();
|
||||||
|
|
||||||
|
if (($req->request->get('service_type')) == CMBServiceType::BATTERY_REPLACEMENT_NEW)
|
||||||
|
{
|
||||||
|
$new_cv->setHasMotoliteBattery(true);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$new_cv->setHasMotoliteBattery(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
// link JO to new customer
|
||||||
|
$jo->setCustomer($new_cust);
|
||||||
|
$jo->setCustomerVehicle($new_cv);
|
||||||
|
|
||||||
|
$em->persist($new_cust);
|
||||||
|
$em->persist($new_cv);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// check if customer vehicle is set
|
||||||
|
if (empty($req->request->get('customer_vehicle'))) {
|
||||||
|
$error_array['customer_vehicle'] = 'No vehicle selected.';
|
||||||
|
} else
|
||||||
|
{
|
||||||
|
// get customer vehicle
|
||||||
|
$cust_vehicle = $em->getRepository(CustomerVehicle::class)->find($req->request->get('customer_vehicle'));
|
||||||
|
|
||||||
|
if (empty($cust_vehicle)) {
|
||||||
|
$error_array['customer_vehicle'] = 'Invalid vehicle specified.';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$jo->setCustomerVehicle($cust_vehicle);
|
||||||
|
$jo->setCustomer($cust_vehicle->getCustomer());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -458,8 +524,6 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface
|
||||||
->setAdvanceOrder($req->request->get('flag_advance') ?? false)
|
->setAdvanceOrder($req->request->get('flag_advance') ?? false)
|
||||||
->setServiceType($stype)
|
->setServiceType($stype)
|
||||||
->setWarrantyClass($req->request->get('warranty_class'))
|
->setWarrantyClass($req->request->get('warranty_class'))
|
||||||
->setCustomer($cust_vehicle->getCustomer())
|
|
||||||
->setCustomerVehicle($cust_vehicle)
|
|
||||||
->setSource($req->request->get('source'))
|
->setSource($req->request->get('source'))
|
||||||
->setStatus(JOStatus::ASSIGNED)
|
->setStatus(JOStatus::ASSIGNED)
|
||||||
->setDeliveryInstructions($req->request->get('delivery_instructions'))
|
->setDeliveryInstructions($req->request->get('delivery_instructions'))
|
||||||
|
|
|
||||||
|
|
@ -1127,7 +1127,7 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function generateOneStepJobOrder(Request $req, $id)
|
public function processOneStepJobOrder(Request $req, $id)
|
||||||
{
|
{
|
||||||
// initialize error list
|
// initialize error list
|
||||||
$error_array = [];
|
$error_array = [];
|
||||||
|
|
|
||||||
|
|
@ -22,8 +22,8 @@ interface JobOrderHandlerInterface
|
||||||
// generate job order
|
// generate job order
|
||||||
public function generateJobOrder(Request $req, int $id);
|
public function generateJobOrder(Request $req, int $id);
|
||||||
|
|
||||||
// generate one step job order
|
// process one step job order
|
||||||
public function generateOneStepJobOrder(Request $req, int $id);
|
public function processOneStepJobOrder(Request $req, int $id);
|
||||||
|
|
||||||
// dispatch job order
|
// dispatch job order
|
||||||
public function dispatchJobOrder(Request $req, int $id, MQTTClient $mclient);
|
public function dispatchJobOrder(Request $req, int $id, MQTTClient $mclient);
|
||||||
|
|
|
||||||
|
|
@ -45,6 +45,7 @@ class JobOrderManager
|
||||||
{
|
{
|
||||||
$new_battery = $item->getBattery();
|
$new_battery = $item->getBattery();
|
||||||
$cust_vehicle->setCurrentBattery($new_battery);
|
$cust_vehicle->setCurrentBattery($new_battery);
|
||||||
|
$cust_vehicle->setHasMotoliteBattery(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->em->flush();
|
$this->em->flush();
|
||||||
|
|
|
||||||
|
|
@ -162,7 +162,7 @@
|
||||||
<option value="{{ manufacturer.getID() }}" {% if vmfg_id == manufacturer.getID %}selected{% endif %}>{{ manufacturer.getName() }}</option>
|
<option value="{{ manufacturer.getID() }}" {% if vmfg_id == manufacturer.getID %}selected{% endif %}>{{ manufacturer.getName() }}</option>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</select>
|
</select>
|
||||||
<div class="form-control-feedback hide" data-field="cv-mfg"></div>
|
<div class="form-control-feedback hide" data-field="cv_mfg"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-lg-6">
|
<div class="col-lg-6">
|
||||||
<label data-field="cv-make">Make</label>
|
<label data-field="cv-make">Make</label>
|
||||||
|
|
@ -186,7 +186,7 @@
|
||||||
<div class="col-lg-3">
|
<div class="col-lg-3">
|
||||||
<label data-field="cv_plate">Plate #</label>
|
<label data-field="cv_plate">Plate #</label>
|
||||||
<input type="text" name="cv_plate" id="cv-plate" class="form-control m-input cv_field" value="{{ obj.getCustomerVehicle.getPlateNumber|default('') }}" data-vehicle-field="1" disabled>
|
<input type="text" name="cv_plate" id="cv-plate" class="form-control m-input cv_field" value="{{ obj.getCustomerVehicle.getPlateNumber|default('') }}" data-vehicle-field="1" disabled>
|
||||||
<div class="form-control-feedback hide" data-field="cv_color"></div>
|
<div class="form-control-feedback hide" data-field="cv_plate"></div>
|
||||||
</div>
|
</div>
|
||||||
<!--
|
<!--
|
||||||
<div class="col-lg-3">
|
<div class="col-lg-3">
|
||||||
|
|
|
||||||
|
|
@ -33,9 +33,8 @@
|
||||||
<div class="col-md-4">
|
<div class="col-md-4">
|
||||||
<div class="m-input-icon m-input-icon--left">
|
<div class="m-input-icon m-input-icon--left">
|
||||||
<div class="input-group">
|
<div class="input-group">
|
||||||
<label>Rider:</label>
|
|
||||||
<select class="form-control m-input" id="rider_list" name="rider_list">
|
<select class="form-control m-input" id="rider_list" name="rider_list">
|
||||||
<option value=""></option>
|
<option value="">All Riders</option>
|
||||||
{% for rider in riders %}
|
{% for rider in riders %}
|
||||||
<option value="{{ rider.getID }}">{{ rider.getFirstName ~ ' ' ~ rider.getLastName }} </option>
|
<option value="{{ rider.getID }}">{{ rider.getFirstName ~ ' ' ~ rider.getLastName }} </option>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
|
||||||
|
|
@ -33,9 +33,8 @@
|
||||||
<div class="col-md-4">
|
<div class="col-md-4">
|
||||||
<div class="m-input-icon m-input-icon--left">
|
<div class="m-input-icon m-input-icon--left">
|
||||||
<div>
|
<div>
|
||||||
<label>Rider:</label>
|
|
||||||
<select class="form-control m-input" id="rider_list" name="rider_list">
|
<select class="form-control m-input" id="rider_list" name="rider_list">
|
||||||
<option value=""></option>
|
<option value="">All Riders</option>
|
||||||
{% for rider in riders %}
|
{% for rider in riders %}
|
||||||
<option value="{{ rider.getID }}">{{ rider.getFirstName ~ ' ' ~ rider.getLastName }} </option>
|
<option value="{{ rider.getID }}">{{ rider.getFirstName ~ ' ' ~ rider.getLastName }} </option>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
|
||||||
|
|
@ -33,9 +33,8 @@
|
||||||
<div class="col-md-4">
|
<div class="col-md-4">
|
||||||
<div class="m-input-icon m-input-icon--left">
|
<div class="m-input-icon m-input-icon--left">
|
||||||
<div>
|
<div>
|
||||||
<label>Rider:</label>
|
|
||||||
<select class="form-control m-input" id="rider_list" name="rider_list">
|
<select class="form-control m-input" id="rider_list" name="rider_list">
|
||||||
<option value=""></option>
|
<option value="">All Riders</option>
|
||||||
{% for rider in riders %}
|
{% for rider in riders %}
|
||||||
<option value="{{ rider.getID }}">{{ rider.getFirstName ~ ' ' ~ rider.getLastName }} </option>
|
<option value="{{ rider.getID }}">{{ rider.getFirstName ~ ' ' ~ rider.getLastName }} </option>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue