From 2ea5bfe19333a25aa286ea0e418ee7aec9b0a787 Mon Sep 17 00:00:00 2001 From: Korina Cordero Date: Mon, 1 Jun 2020 02:26:04 +0000 Subject: [PATCH] Add changes to CMB's rider API handler. #420 --- .../RiderAPIHandler/CMBRiderAPIHandler.php | 59 ++++++++++--------- 1 file changed, 30 insertions(+), 29 deletions(-) diff --git a/src/Service/RiderAPIHandler/CMBRiderAPIHandler.php b/src/Service/RiderAPIHandler/CMBRiderAPIHandler.php index 3c0236e1..d912635e 100644 --- a/src/Service/RiderAPIHandler/CMBRiderAPIHandler.php +++ b/src/Service/RiderAPIHandler/CMBRiderAPIHandler.php @@ -6,8 +6,8 @@ use Doctrine\ORM\EntityManagerInterface; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\Security\Core\Encoder\EncoderFactoryInterface; -use App\Ramcar\CMBServiceType; -use App\Ramcar\CMBTradeInType; +use App\Ramcar\ServiceType; +use App\Ramcar\TradeInType; use App\Ramcar\JOStatus; use App\Ramcar\JOEventType; use App\Ramcar\InvoiceStatus; @@ -30,7 +30,6 @@ use App\Entity\Promo; use App\Entity\Battery; use App\Entity\BatteryModel; use App\Entity\BatterySize; -use App\Entity\Warranty; use DateTime; @@ -484,7 +483,9 @@ class CMBRiderAPIHandler implements RiderAPIHandlerInterface return $data; } - // TODO: tag rider as available + // tag rider as available + $rider = $this->session->getRider(); + $rider->setAvailable(true); $this->em->flush(); @@ -516,7 +517,8 @@ class CMBRiderAPIHandler implements RiderAPIHandlerInterface ->setRider($rider); $this->em->persist($event); - // TODO: tag rider as unavailable + // tag rider as unavailable + $rider->setAvailable(false); // save to customer vehicle battery record $this->jo_handler->updateVehicleBattery($jo); @@ -526,41 +528,40 @@ class CMBRiderAPIHandler implements RiderAPIHandlerInterface // create warranty if($this->jo_handler->checkIfNewBattery($jo)) { - $serial = $jo->getCustomerVehicle()->getWarrantyCode(); + $serial = null; $warranty_class = $jo->getWarrantyClass(); $first_name = $jo->getCustomer()->getFirstName(); $last_name = $jo->getCustomer()->getLastName(); $mobile_number = $jo->getCustomer()->getPhoneMobile(); // check if date fulfilled is null - if ($jo->getDateFulfill() == null) - $date_purchase = $jo->getDateCreate(); - else - $date_purchase = $jo->getDateFulfill(); + //if ($jo->getDateFulfill() == null) + // $date_purchase = $jo->getDateCreate(); + //else + // $date_purchase = $jo->getDateFulfill(); - // validate plate number - // $plate_number = $this->wh->cleanPlateNumber($jo->getCustomerVehicle()->getPlateNumber()); - $plate_number = Warranty::cleanPlateNumber($jo->getCustomerVehicle()->getPlateNumber()); - if ($plate_number != false) + // use date_schedule for warranty expiration computation + $date_purchase = $jo->getDateSchedule(); + + $plate_number = $this->wh->cleanPlateNumber($jo->getCustomerVehicle()->getPlateNumber()); + + $batt_list = array(); + $invoice = $jo->getInvoice(); + if (!empty($invoice)) { - $batt_list = array(); - $invoice = $jo->getInvoice(); - if (!empty($invoice)) + // get battery + $invoice_items = $invoice->getItems(); + foreach ($invoice_items as $item) { - // get battery - $invoice_items = $invoice->getItems(); - foreach ($invoice_items as $item) + $battery = $item->getBattery(); + if ($battery != null) { - $battery = $item->getBattery(); - if ($battery != null) - { - $batt_list[] = $item->getBattery(); - } + $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) @@ -685,7 +686,7 @@ class CMBRiderAPIHandler implements RiderAPIHandlerInterface // check service type $stype_id = $req->request->get('stype_id'); - if (!CMBServiceType::validate($stype_id)) + if (!ServiceType::validate($stype_id)) { $data = [ 'error' => 'Invalid service type - ' . $stype_id @@ -750,7 +751,7 @@ class CMBRiderAPIHandler implements RiderAPIHandlerInterface // check trade in $trade_in = $req->request->get('trade_in'); - if (!CMBTradeInType::validate($trade_in)) + if (!TradeInType::validate($trade_in)) $trade_in = null; // check mode of payment