Merge branch '588-set-vehicle-and-customer-id-in-warranty-when-jo-is-fulfilled' into 'master-fix'
Resolve "Set vehicle and customer id in warranty when JO is fulfilled" See merge request jankstudio/resq!704
This commit is contained in:
commit
c47bd0e882
4 changed files with 37 additions and 5 deletions
|
|
@ -40,6 +40,7 @@ use App\Service\InventoryManager;
|
|||
use App\Service\RiderAssignmentHandlerInterface;
|
||||
use App\Service\WarrantyAPILogger;
|
||||
use App\Service\PromoLogger;
|
||||
|
||||
|
||||
use App\Entity\MobileSession;
|
||||
use App\Entity\Customer;
|
||||
|
|
@ -3185,6 +3186,16 @@ class APIController extends Controller implements LoggedController
|
|||
return $res;
|
||||
}
|
||||
|
||||
$customer = $this->session->getCustomer();
|
||||
if ($customer != null)
|
||||
{
|
||||
$warr->setCustomer($customer);
|
||||
// get customer vehicles
|
||||
|
||||
$vehicle = $this->findCustomerVehicle($em, $customer, $req->request->get('plate_number'));
|
||||
if ($vehicle != null)
|
||||
$warr->setVehicle($vehicle);
|
||||
}
|
||||
|
||||
// create or update warranty entry
|
||||
$warr->setSerial($serial)
|
||||
|
|
@ -3259,6 +3270,23 @@ class APIController extends Controller implements LoggedController
|
|||
return $cust;
|
||||
}
|
||||
|
||||
protected function findCustomerVehicle($em, $customer, $plate_number)
|
||||
{
|
||||
$clean_plate = Warranty::cleanPlateNumber($plate_number);
|
||||
if ($clean_plate)
|
||||
{
|
||||
// find the customer vehicle and get the vehicle
|
||||
$cv = $em->getRepository(CustomerVehicle::class)->findOneBy(['plate_number' => $clean_plate, 'customer' => $customer]);
|
||||
if ($cv != null)
|
||||
{
|
||||
$vehicle = $cv->getVehicle();
|
||||
return $vehicle;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
protected function findNearestHub($jo, EntityManagerInterface $em, MapTools $map_tools)
|
||||
{
|
||||
// get the nearest 10 hubs
|
||||
|
|
|
|||
|
|
@ -1062,7 +1062,7 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
|
|||
|
||||
$user_id = $user->getUsername();
|
||||
$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
|
||||
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
|
||||
$user_id = $this->session->getID();
|
||||
$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)
|
||||
|
|
|
|||
|
|
@ -30,7 +30,8 @@ class WarrantyHandler
|
|||
}
|
||||
|
||||
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
|
||||
$warranty = new Warranty();
|
||||
|
|
@ -94,7 +95,9 @@ class WarrantyHandler
|
|||
->setMobileNumber($mobile_number)
|
||||
->setDatePurchase($date_purchase)
|
||||
->setWarrantyClass($warranty_class)
|
||||
->setCreateSource($source);
|
||||
->setCreateSource($source)
|
||||
->setCustomer($customer)
|
||||
->setVehicle($cust_vehicle);
|
||||
|
||||
$this->em->persist($warranty);
|
||||
$this->em->flush();
|
||||
|
|
@ -362,7 +365,8 @@ class WarrantyHandler
|
|||
|
||||
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));
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue