Add customer location dropdown to JO form. #739
This commit is contained in:
parent
f57c9f5f4f
commit
4717d7d925
2 changed files with 110 additions and 6 deletions
|
|
@ -28,6 +28,7 @@ use App\Entity\Customer;
|
|||
use App\Entity\CustomerTag;
|
||||
use App\Entity\EmergencyType;
|
||||
use App\Entity\OwnershipType;
|
||||
use App\Entity\CustomerLocation;
|
||||
|
||||
use App\Ramcar\InvoiceCriteria;
|
||||
use App\Ramcar\ServiceType;
|
||||
|
|
@ -424,6 +425,16 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
|
|||
}
|
||||
}
|
||||
|
||||
// check if customer location is set
|
||||
// since we didn't provide a blank option in the dropdown, there is
|
||||
// always a customer location set.
|
||||
$cust_location_id = $req->request->get('cust_location');
|
||||
|
||||
// get customer location
|
||||
$cust_location = $em->getRepository(CustomerLocation::class)->find($cust_location_id);
|
||||
if ($cust_location == null)
|
||||
$error_array['cust_location'] = 'Invalid customer location';
|
||||
|
||||
// get source of awareness if any
|
||||
$soa_type = $req->request->get('source_of_awareness', '');
|
||||
|
||||
|
|
@ -489,7 +500,8 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
|
|||
->setCallerClassification($caller_class)
|
||||
->setGender($gender)
|
||||
->setEmergencyType($etype)
|
||||
->setOwnershipType($owner_type);
|
||||
->setOwnershipType($owner_type)
|
||||
->setCustomerLocation($cust_location);
|
||||
|
||||
// check if user is null, meaning call to create came from API
|
||||
if ($user != null)
|
||||
|
|
@ -710,6 +722,16 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
|
|||
$ownertype_id = $req->request->get('ownership_type', 0);
|
||||
$owner_type = $em->getRepository(OwnershipType::class)->find($ownertype_id);
|
||||
|
||||
// check if customer location is set
|
||||
// since we didn't provide a blank option in the dropdown, there is
|
||||
// always a customer location set.
|
||||
$cust_location_id = $req->request->get('cust_location');
|
||||
|
||||
// get customer location
|
||||
$cust_location = $em->getRepository(CustomerLocation::class)->find($cust_location_id);
|
||||
if ($cust_location == null)
|
||||
$error_array['cust_location'] = 'Invalid customer location';
|
||||
|
||||
if (empty($error_array))
|
||||
{
|
||||
// get current user
|
||||
|
|
@ -744,7 +766,8 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
|
|||
->setCallerClassification($caller_class)
|
||||
->setGender($gender)
|
||||
->setEmergencyType($etype)
|
||||
->setOwnershipType($owner_type);
|
||||
->setOwnershipType($owner_type)
|
||||
->setCustomerLocation($cust_location);
|
||||
|
||||
// did they change invoice?
|
||||
$invoice_items = $req->request->get('invoice_items', []);
|
||||
|
|
@ -916,6 +939,16 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
|
|||
$ownertype_id = $req->request->get('ownership_type', 0);
|
||||
$owner_type = $em->getRepository(OwnershipType::class)->find($ownertype_id);
|
||||
|
||||
// check if customer location is set
|
||||
// since we didn't provide a blank option in the dropdown, there is
|
||||
// always a customer location set.
|
||||
$cust_location_id = $req->request->get('cust_location');
|
||||
|
||||
// get customer location
|
||||
$cust_location = $em->getRepository(CustomerLocation::class)->find($cust_location_id);
|
||||
if ($cust_location == null)
|
||||
$error_array['cust_location'] = 'Invalid customer location';
|
||||
|
||||
if (empty($error_array))
|
||||
{
|
||||
// coordinates
|
||||
|
|
@ -947,7 +980,8 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
|
|||
->setGender($gender)
|
||||
->setCallerClassification($caller_class)
|
||||
->setEmergencyType($etype)
|
||||
->setOwnershipType($owner_type);
|
||||
->setOwnershipType($owner_type)
|
||||
->setCustomerLocation($cust_location);
|
||||
|
||||
// validate
|
||||
$errors = $this->validator->validate($obj);
|
||||
|
|
@ -1065,6 +1099,16 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
|
|||
$ownertype_id = $req->request->get('ownership_type', 0);
|
||||
$owner_type = $em->getRepository(OwnershipType::class)->find($ownertype_id);
|
||||
|
||||
// check if customer location is set
|
||||
// since we didn't provide a blank option in the dropdown, there is
|
||||
// always a customer location set.
|
||||
$cust_location_id = $req->request->get('cust_location');
|
||||
|
||||
// get customer location
|
||||
$cust_location = $em->getRepository(CustomerLocation::class)->find($cust_location_id);
|
||||
if ($cust_location == null)
|
||||
$error_array['cust_location'] = 'Invalid customer location';
|
||||
|
||||
// get current user
|
||||
$user = $this->security->getUser();
|
||||
|
||||
|
|
@ -1098,7 +1142,8 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
|
|||
->setCallerClassification($caller_class)
|
||||
->setGender($gender)
|
||||
->setEmergencyType($etype)
|
||||
->setOwnershipType($owner_type);
|
||||
->setOwnershipType($owner_type)
|
||||
->setCustomerLocation($cust_location);
|
||||
|
||||
if ($user != null)
|
||||
{
|
||||
|
|
@ -1205,6 +1250,16 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
|
|||
$ownertype_id = $req->request->get('ownership_type', 0);
|
||||
$owner_type = $em->getRepository(OwnershipType::class)->find($ownertype_id);
|
||||
|
||||
// check if customer location is set
|
||||
// since we didn't provide a blank option in the dropdown, there is
|
||||
// always a customer location set.
|
||||
$cust_location_id = $req->request->get('cust_location');
|
||||
|
||||
// get customer location
|
||||
$cust_location = $em->getRepository(CustomerLocation::class)->find($cust_location_id);
|
||||
if ($cust_location == null)
|
||||
$error_array['cust_location'] = 'Invalid customer location';
|
||||
|
||||
if (empty($error_array)) {
|
||||
// coordinates
|
||||
$point = new Point($req->request->get('coord_lng'), $req->request->get('coord_lat'));
|
||||
|
|
@ -1232,7 +1287,8 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
|
|||
->setGender($gender)
|
||||
->setCallerClassification($caller_class)
|
||||
->setEmergencyType($etype)
|
||||
->setOwnershipType($owner_type);
|
||||
->setOwnershipType($owner_type)
|
||||
->setCustomerLocation($cust_location);
|
||||
|
||||
// validate
|
||||
$errors = $this->validator->validate($obj);
|
||||
|
|
@ -1459,6 +1515,16 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
|
|||
$ownertype_id = $req->request->get('ownership_type', 0);
|
||||
$owner_type = $em->getRepository(OwnershipType::class)->find($ownertype_id);
|
||||
|
||||
// check if customer location is set
|
||||
// since we didn't provide a blank option in the dropdown, there is
|
||||
// always a customer location set.
|
||||
$cust_location_id = $req->request->get('cust_location');
|
||||
|
||||
// get customer location
|
||||
$cust_location = $em->getRepository(CustomerLocation::class)->find($cust_location_id);
|
||||
if ($cust_location == null)
|
||||
$error_array['cust_location'] = 'Invalid customer location';
|
||||
|
||||
// get previously assigned hub, if any
|
||||
$old_hub = $obj->getHub();
|
||||
|
||||
|
|
@ -1517,6 +1583,7 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
|
|||
->setCallerClassification($caller_class)
|
||||
->setEmergencyType($etype)
|
||||
->setOwnershipType($owner_type)
|
||||
->setCustomerLocation($cust_location)
|
||||
->clearRider();
|
||||
|
||||
if ($user != null)
|
||||
|
|
@ -1744,6 +1811,16 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
|
|||
$ownertype_id = $req->request->get('ownership_type', 0);
|
||||
$owner_type = $em->getRepository(OwnershipType::class)->find($ownertype_id);
|
||||
|
||||
// check if customer location is set
|
||||
// since we didn't provide a blank option in the dropdown, there is
|
||||
// always a customer location set.
|
||||
$cust_location_id = $req->request->get('cust_location');
|
||||
|
||||
// get customer location
|
||||
$cust_location = $em->getRepository(CustomerLocation::class)->find($cust_location_id);
|
||||
if ($cust_location == null)
|
||||
$error_array['cust_location'] = 'Invalid customer location';
|
||||
|
||||
if (empty($error_array)) {
|
||||
// rider mqtt event
|
||||
// NOTE: need to send this before saving because rider will be cleared
|
||||
|
|
@ -1796,7 +1873,8 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
|
|||
->setGender($gender)
|
||||
->setCallerClassification($caller_class)
|
||||
->setEmergencyType($etype)
|
||||
->setOwnershipType($owner_type);
|
||||
->setOwnershipType($owner_type)
|
||||
->setCustomerLocation($cust_location);
|
||||
|
||||
if ($user != null)
|
||||
{
|
||||
|
|
@ -3360,6 +3438,15 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
|
|||
}
|
||||
$params['ownership_types'] = $ownership_types;
|
||||
|
||||
// list of customer locations
|
||||
$cust_locations = $em->getRepository(CustomerLocation::class)->findBy([], ['name' => 'ASC']);
|
||||
$c_locations = [];
|
||||
foreach ($cust_locations as $cust_location)
|
||||
{
|
||||
$c_locations[$cust_location->getID()] = $cust_location->getName();
|
||||
}
|
||||
$params['cust_locations'] = $c_locations;
|
||||
|
||||
// list of hubs
|
||||
$hubs = $em->getRepository(Hub::class)->findBy([], ['name' => 'ASC']);
|
||||
$fac_hubs = [];
|
||||
|
|
|
|||
|
|
@ -560,6 +560,23 @@
|
|||
Location
|
||||
</h3>
|
||||
</div>
|
||||
<div class="form-group m-form__group row">
|
||||
<div class="col-lg-6">
|
||||
<label for="cust_location" data-field="cust_location"> Customer Location </label>
|
||||
<select class="form-control m-input" id="cust-location" name="cust_location">
|
||||
{% for id, label in cust_locations %}
|
||||
{% if obj.getCustomerLocation %}
|
||||
<option value="{{ id }}"{{ obj.getCustomerLocation.getID == id ? ' selected' }}>{{ label }}</option>
|
||||
{% else %}
|
||||
<option value="{{ id }}">{{ label }}</option>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</select>
|
||||
<div class="form-control-feedback hide" data-field="cust_location"></div>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group m-form__group row">
|
||||
<div class="col-lg-6">
|
||||
<label data-field="delivery_address">Delivery Address</label>
|
||||
|
|
|
|||
Loading…
Reference in a new issue