Add call to remove a vehicle from customer's list of vehicles. #632
This commit is contained in:
parent
ca3fbc21c8
commit
48aaeddadd
2 changed files with 50 additions and 10 deletions
|
|
@ -209,5 +209,5 @@ api_locations:
|
|||
api_cust_vehicle_remove:
|
||||
path: /api/vehicles/{id}/remove
|
||||
controller: App\Controller\APIController::removeVehicle
|
||||
methods: [DELETE]
|
||||
methods: [POST]
|
||||
|
||||
|
|
|
|||
|
|
@ -742,7 +742,9 @@ class APIController extends Controller implements LoggedController
|
|||
|
||||
// vehicles
|
||||
$cv_list = [];
|
||||
$cvs = $cust->getVehicles();
|
||||
// $cvs = $cust->getVehicles();
|
||||
// only get the customer's vehicles whose flag_active is true
|
||||
$cvs = $em->getRepository(CustomerVehicle::class)->findBy(['flag_active' => true, 'customer' => $cust]);
|
||||
foreach ($cvs as $cv)
|
||||
{
|
||||
$battery_id = null;
|
||||
|
|
@ -3538,10 +3540,9 @@ class APIController extends Controller implements LoggedController
|
|||
return $res->getReturnResponse();
|
||||
}
|
||||
|
||||
public function getAllOngoingJobOrders(Request $req, RiderTracker $rt)
|
||||
public function getAllOngoingJobOrders(EntityManagerInterface $em, Request $req, RiderTracker $rt)
|
||||
{
|
||||
$required_params = [];
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$res = $this->checkParamsAndKey($req, $em, $required_params);
|
||||
if ($res->isError())
|
||||
return $res->getReturnResponse();
|
||||
|
|
@ -3573,10 +3574,9 @@ class APIController extends Controller implements LoggedController
|
|||
return $res->getReturnResponse();
|
||||
}
|
||||
|
||||
public function getOngoingJobOrderCount(Request $req)
|
||||
public function getOngoingJobOrderCount(EntityManagerInterface $em, Request $req)
|
||||
{
|
||||
$required_params = [];
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$res = $this->checkParamsAndKey($req, $em, $required_params);
|
||||
if ($res->isError())
|
||||
return $res->getReturnResponse();
|
||||
|
|
@ -3601,7 +3601,7 @@ class APIController extends Controller implements LoggedController
|
|||
return $res->getReturnResponse();
|
||||
}
|
||||
|
||||
public function addLocation(Request $req)
|
||||
public function addLocation(EntityManagerInterface $em, Request $req)
|
||||
{
|
||||
$required_params = [
|
||||
'name',
|
||||
|
|
@ -3609,7 +3609,6 @@ class APIController extends Controller implements LoggedController
|
|||
'longitude',
|
||||
'latitude',
|
||||
];
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$res = $this->checkParamsAndKey($req, $em, $required_params);
|
||||
if ($res->isError())
|
||||
return $res->getReturnResponse();
|
||||
|
|
@ -3658,10 +3657,9 @@ class APIController extends Controller implements LoggedController
|
|||
return $res->getReturnResponse();
|
||||
}
|
||||
|
||||
public function getLocations(Request $req)
|
||||
public function getLocations(EntityManagerInterface $em, Request $req)
|
||||
{
|
||||
$required_params = [];
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$res = $this->checkParamsAndKey($req, $em, $required_params);
|
||||
if ($res->isError())
|
||||
return $res->getReturnResponse();
|
||||
|
|
@ -3692,6 +3690,48 @@ class APIController extends Controller implements LoggedController
|
|||
return $res->getReturnResponse();
|
||||
}
|
||||
|
||||
public function removeVehicle($id, EntityManagerInterface $em, Request $req)
|
||||
{
|
||||
$required_params = [];
|
||||
$res = $this->checkParamsAndKey($req, $em, $required_params);
|
||||
if ($res->isError())
|
||||
return $res->getReturnResponse();
|
||||
|
||||
// get customer
|
||||
$cust = $this->session->getCustomer();
|
||||
if ($cust == null)
|
||||
{
|
||||
$res->setError(true)
|
||||
->setErrorMessage('No customer information found');
|
||||
return $res->getReturnResponse();
|
||||
}
|
||||
|
||||
// find customer vehicle
|
||||
$cv = $em->getRepository(CustomerVehicle::class)->find($id);
|
||||
if ($cv == null)
|
||||
{
|
||||
$res->setError(true)
|
||||
->setErrorMessage('Invalid customer vehicle id');
|
||||
return $res->getReturnResponse();
|
||||
}
|
||||
|
||||
// confirm that customer vehicle belongs to customer
|
||||
if ($cv->getCustomer()->getID() != $cust->getID())
|
||||
{
|
||||
$res->setError(true)
|
||||
->setErrorMessage('Vehicle does not belong to customer');
|
||||
return $res->getReturnResponse();
|
||||
}
|
||||
|
||||
// we cannot remove a vehicle from customer if customer vehicle has already has JOs for it.
|
||||
// instead we set the customer vehicle's flag_active to false
|
||||
$cv->setActive(false);
|
||||
$em->flush();
|
||||
|
||||
// response
|
||||
return $res->getReturnResponse();
|
||||
}
|
||||
|
||||
protected function updateWarranty($res, $em, $rt, $trans, $req, $serial, $inv_filename = null, $wcard_filename = null,
|
||||
$logger, $log_data, $user_id, $action, $source)
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in a new issue