Add setting of customer and vehicle when warranty is created via mobile API, rider API, and admin panel. #588
This commit is contained in:
parent
d43a2a8206
commit
406df3d083
4 changed files with 40 additions and 5 deletions
|
|
@ -41,6 +41,7 @@ use App\Service\RiderAssignmentHandlerInterface;
|
||||||
use App\Service\WarrantyAPILogger;
|
use App\Service\WarrantyAPILogger;
|
||||||
use App\Service\PromoLogger;
|
use App\Service\PromoLogger;
|
||||||
|
|
||||||
|
|
||||||
use App\Entity\MobileSession;
|
use App\Entity\MobileSession;
|
||||||
use App\Entity\Customer;
|
use App\Entity\Customer;
|
||||||
use App\Entity\VehicleManufacturer;
|
use App\Entity\VehicleManufacturer;
|
||||||
|
|
@ -3185,6 +3186,16 @@ class APIController extends Controller implements LoggedController
|
||||||
return $res;
|
return $res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$customer = $this->session->getCustomer();
|
||||||
|
if ($customer != null)
|
||||||
|
{
|
||||||
|
$warr->setCustomer($customer);
|
||||||
|
// get customer vehicles
|
||||||
|
$vehicle = $this->findCustomerVehicle($customer, $req->request->get('plate_number'));
|
||||||
|
|
||||||
|
if ($vehicle != null)
|
||||||
|
$warr->setVehicle($vehicle);
|
||||||
|
}
|
||||||
|
|
||||||
// create or update warranty entry
|
// create or update warranty entry
|
||||||
$warr->setSerial($serial)
|
$warr->setSerial($serial)
|
||||||
|
|
@ -3259,6 +3270,26 @@ class APIController extends Controller implements LoggedController
|
||||||
return $cust;
|
return $cust;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected function findCustomerVehicle($customer, $plate_number)
|
||||||
|
{
|
||||||
|
$clean_plate = Warranty::cleanPlateNumber($plate_number);
|
||||||
|
if ($clean_plate)
|
||||||
|
{
|
||||||
|
// find the customer vehicle and get the vehicle
|
||||||
|
$cust_vehicles = $customer->getVehicles();
|
||||||
|
foreach ($cust_vehicles as $cv)
|
||||||
|
{
|
||||||
|
if ($cv->getPlateNumber() == $clean_plate)
|
||||||
|
{
|
||||||
|
$vehicle = $cv->getVehicle();
|
||||||
|
return $vehicle;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
protected function findNearestHub($jo, EntityManagerInterface $em, MapTools $map_tools)
|
protected function findNearestHub($jo, EntityManagerInterface $em, MapTools $map_tools)
|
||||||
{
|
{
|
||||||
// get the nearest 10 hubs
|
// get the nearest 10 hubs
|
||||||
|
|
|
||||||
|
|
@ -1062,7 +1062,7 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
|
||||||
|
|
||||||
$user_id = $user->getUsername();
|
$user_id = $user->getUsername();
|
||||||
$source = WarrantySource::ADMIN_PANEL;
|
$source = WarrantySource::ADMIN_PANEL;
|
||||||
$this->wh->createWarranty($serial, $plate_number, $first_name, $last_name, $mobile_number, $batt_list, $date_purchase, $warranty_class, $user_id, $source);
|
$this->wh->createWarranty($serial, $plate_number, $first_name, $last_name, $mobile_number, $batt_list, $date_purchase, $warranty_class, $user_id, $source, $obj->getCustomer(), $obj->getCustomerVehicle()->getVehicle());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
error_log('Invalid plate number for warranty. Plate number = ' . $obj->getCustomerVehicle()->getPlateNumber());
|
error_log('Invalid plate number for warranty. Plate number = ' . $obj->getCustomerVehicle()->getPlateNumber());
|
||||||
|
|
|
||||||
|
|
@ -602,7 +602,7 @@ class ResqRiderAPIHandler implements RiderAPIHandlerInterface
|
||||||
// for riders, use rider session id
|
// for riders, use rider session id
|
||||||
$user_id = $this->session->getID();
|
$user_id = $this->session->getID();
|
||||||
$source = WarrantySource::RAPI;
|
$source = WarrantySource::RAPI;
|
||||||
$this->wh->createWarranty($serial, $plate_number, $first_name, $last_name, $mobile_number, $batt_list, $date_purchase, $warranty_class, $user_id, $source);
|
$this->wh->createWarranty($serial, $plate_number, $first_name, $last_name, $mobile_number, $batt_list, $date_purchase, $warranty_class, $user_id, $source, $jo->getCustomer(), $jo->getCustomerVehicle()->getVehicle());
|
||||||
}
|
}
|
||||||
|
|
||||||
// send mqtt event (fulfilled)
|
// send mqtt event (fulfilled)
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,8 @@ class WarrantyHandler
|
||||||
}
|
}
|
||||||
|
|
||||||
public function createWarranty($serial, $plate_number, $first_name, $last_name, $mobile_number,
|
public function createWarranty($serial, $plate_number, $first_name, $last_name, $mobile_number,
|
||||||
$batt_list, DateTime $date_purchase, $warranty_class, $user_id, $source)
|
$batt_list, DateTime $date_purchase, $warranty_class, $user_id,
|
||||||
|
$source, $customer, $cust_vehicle)
|
||||||
{
|
{
|
||||||
// new warranty
|
// new warranty
|
||||||
$warranty = new Warranty();
|
$warranty = new Warranty();
|
||||||
|
|
@ -94,7 +95,9 @@ class WarrantyHandler
|
||||||
->setMobileNumber($mobile_number)
|
->setMobileNumber($mobile_number)
|
||||||
->setDatePurchase($date_purchase)
|
->setDatePurchase($date_purchase)
|
||||||
->setWarrantyClass($warranty_class)
|
->setWarrantyClass($warranty_class)
|
||||||
->setCreateSource($source);
|
->setCreateSource($source)
|
||||||
|
->setCustomer($customer)
|
||||||
|
->setVehicle($cust_vehicle);
|
||||||
|
|
||||||
$this->em->persist($warranty);
|
$this->em->persist($warranty);
|
||||||
$this->em->flush();
|
$this->em->flush();
|
||||||
|
|
@ -362,7 +365,8 @@ class WarrantyHandler
|
||||||
|
|
||||||
public function cleanPlateNumber($plate)
|
public function cleanPlateNumber($plate)
|
||||||
{
|
{
|
||||||
// remove spaces and make upper case
|
// TODO: make this more like Warranty's static cleanPlateNumber?
|
||||||
|
// remove spaces and make upper case
|
||||||
return strtoupper(str_replace(' ', '', $plate));
|
return strtoupper(str_replace(' ', '', $plate));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue