Add changes to CMB's rider API handler. #420

This commit is contained in:
Korina Cordero 2020-06-01 02:26:04 +00:00
parent ce2b838ff7
commit 2ea5bfe193

View file

@ -6,8 +6,8 @@ use Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Security\Core\Encoder\EncoderFactoryInterface; use Symfony\Component\Security\Core\Encoder\EncoderFactoryInterface;
use App\Ramcar\CMBServiceType; use App\Ramcar\ServiceType;
use App\Ramcar\CMBTradeInType; use App\Ramcar\TradeInType;
use App\Ramcar\JOStatus; use App\Ramcar\JOStatus;
use App\Ramcar\JOEventType; use App\Ramcar\JOEventType;
use App\Ramcar\InvoiceStatus; use App\Ramcar\InvoiceStatus;
@ -30,7 +30,6 @@ use App\Entity\Promo;
use App\Entity\Battery; use App\Entity\Battery;
use App\Entity\BatteryModel; use App\Entity\BatteryModel;
use App\Entity\BatterySize; use App\Entity\BatterySize;
use App\Entity\Warranty;
use DateTime; use DateTime;
@ -484,7 +483,9 @@ class CMBRiderAPIHandler implements RiderAPIHandlerInterface
return $data; return $data;
} }
// TODO: tag rider as available // tag rider as available
$rider = $this->session->getRider();
$rider->setAvailable(true);
$this->em->flush(); $this->em->flush();
@ -516,7 +517,8 @@ class CMBRiderAPIHandler implements RiderAPIHandlerInterface
->setRider($rider); ->setRider($rider);
$this->em->persist($event); $this->em->persist($event);
// TODO: tag rider as unavailable // tag rider as unavailable
$rider->setAvailable(false);
// save to customer vehicle battery record // save to customer vehicle battery record
$this->jo_handler->updateVehicleBattery($jo); $this->jo_handler->updateVehicleBattery($jo);
@ -526,41 +528,40 @@ class CMBRiderAPIHandler implements RiderAPIHandlerInterface
// create warranty // create warranty
if($this->jo_handler->checkIfNewBattery($jo)) if($this->jo_handler->checkIfNewBattery($jo))
{ {
$serial = $jo->getCustomerVehicle()->getWarrantyCode(); $serial = null;
$warranty_class = $jo->getWarrantyClass(); $warranty_class = $jo->getWarrantyClass();
$first_name = $jo->getCustomer()->getFirstName(); $first_name = $jo->getCustomer()->getFirstName();
$last_name = $jo->getCustomer()->getLastName(); $last_name = $jo->getCustomer()->getLastName();
$mobile_number = $jo->getCustomer()->getPhoneMobile(); $mobile_number = $jo->getCustomer()->getPhoneMobile();
// check if date fulfilled is null // check if date fulfilled is null
if ($jo->getDateFulfill() == null) //if ($jo->getDateFulfill() == null)
$date_purchase = $jo->getDateCreate(); // $date_purchase = $jo->getDateCreate();
else //else
$date_purchase = $jo->getDateFulfill(); // $date_purchase = $jo->getDateFulfill();
// validate plate number // use date_schedule for warranty expiration computation
// $plate_number = $this->wh->cleanPlateNumber($jo->getCustomerVehicle()->getPlateNumber()); $date_purchase = $jo->getDateSchedule();
$plate_number = Warranty::cleanPlateNumber($jo->getCustomerVehicle()->getPlateNumber());
if ($plate_number != false) $plate_number = $this->wh->cleanPlateNumber($jo->getCustomerVehicle()->getPlateNumber());
$batt_list = array();
$invoice = $jo->getInvoice();
if (!empty($invoice))
{ {
$batt_list = array(); // get battery
$invoice = $jo->getInvoice(); $invoice_items = $invoice->getItems();
if (!empty($invoice)) foreach ($invoice_items as $item)
{ {
// get battery $battery = $item->getBattery();
$invoice_items = $invoice->getItems(); if ($battery != null)
foreach ($invoice_items as $item)
{ {
$battery = $item->getBattery(); $batt_list[] = $item->getBattery();
if ($battery != null)
{
$batt_list[] = $item->getBattery();
}
} }
} }
$this->wh->createWarranty($serial, $plate_number, $first_name, $last_name, $mobile_number, $batt_list, $date_purchase, $warranty_class);
} }
$this->wh->createWarranty($serial, $plate_number, $first_name, $last_name, $mobile_number, $batt_list, $date_purchase, $warranty_class);
} }
// send mqtt event (fulfilled) // send mqtt event (fulfilled)
@ -685,7 +686,7 @@ class CMBRiderAPIHandler implements RiderAPIHandlerInterface
// check service type // check service type
$stype_id = $req->request->get('stype_id'); $stype_id = $req->request->get('stype_id');
if (!CMBServiceType::validate($stype_id)) if (!ServiceType::validate($stype_id))
{ {
$data = [ $data = [
'error' => 'Invalid service type - ' . $stype_id 'error' => 'Invalid service type - ' . $stype_id
@ -750,7 +751,7 @@ class CMBRiderAPIHandler implements RiderAPIHandlerInterface
// check trade in // check trade in
$trade_in = $req->request->get('trade_in'); $trade_in = $req->request->get('trade_in');
if (!CMBTradeInType::validate($trade_in)) if (!TradeInType::validate($trade_in))
$trade_in = null; $trade_in = null;
// check mode of payment // check mode of payment