From 2f30d0c7c31f5c9d58a3b7c616d1e745b211c3f9 Mon Sep 17 00:00:00 2001 From: Kendrick Chan Date: Mon, 21 Jan 2019 02:09:16 +0800 Subject: [PATCH] Update warranty api controller to handle sku instead of model / size for batteries #172 --- src/Controller/CAPI/WarrantyController.php | 38 +++++++++++++++++----- 1 file changed, 29 insertions(+), 9 deletions(-) diff --git a/src/Controller/CAPI/WarrantyController.php b/src/Controller/CAPI/WarrantyController.php index 99d687c3..a4f47abc 100644 --- a/src/Controller/CAPI/WarrantyController.php +++ b/src/Controller/CAPI/WarrantyController.php @@ -9,9 +9,14 @@ use Doctrine\ORM\EntityManagerInterface; use Doctrine\DBAL\Exception\UniqueConstraintViolationException; use Catalyst\APIBundle\Controller\APIController; use Catalyst\APIBundle\Response\APIResponse; + use App\Entity\Warranty; use App\Entity\BatteryModel; use App\Entity\BatterySize; +use App\Entity\SAPBattery; +use App\Entity\SAPBatterySize; +use App\Entity\SAPBatteryBrand; + use App\Ramcar\NameValue; use App\Ramcar\WarrantyClass; use App\Ramcar\WarrantyStatus; @@ -26,20 +31,17 @@ class WarrantyController extends APIController protected function generateWarrantyData(Warranty $warr) { - $model = $warr->getBatteryModel(); - $size = $warr->getBatterySize(); + $batt = $warr->getSAPBattery(); + $data = [ 'id' => (int) $warr->getID(), 'serial' => (string) $warr->getSerial(), 'warranty_class' => (string) $warr->getWarrantyClass(), 'plate_number' => (string) $warr->getPlateNumber(), - 'battery_model' => [ - (int) ($model == null ? 0 : $model->getID()), - (string) ($model == null ? '' : $model->getName()), - ], - 'battery_size' => [ - (int) ($size == null ? 0 : $size->getID()), - (string) ($size == null ? '' : $size->getName()), + 'battery' => [ + 'sku' => (string) ($batt == null ? '' : $batt->getID()), + 'brand' => (int) ($batt == null ? 0 : $batt->getBrand()->getID()), + 'size' => (int) ($batt == null ? 0 : $batt->getSize()->getID()), ], 'status' => (string) $warr->getStatus(), 'date_create' => (string) $warr->getDateCreate()->format('YmdHis'), @@ -117,8 +119,11 @@ class WarrantyController extends APIController 'plate_number', 'date_expire', 'date_purchase', + 'sku', + /* 'battery_model_id', 'battery_size_id', + */ ]; $msg = $this->checkRequiredParameters($req, $params); error_log('msg - ' . $msg); @@ -130,8 +135,12 @@ class WarrantyController extends APIController $date_pur_string = $req->request->get('date_purchase'); $warr_class = $req->request->get('warranty_class'); $plate = $req->request->get('plate_number'); + $sku = $req->request->get('sku'); + + /* $bmodel_id = $req->request->get('battery_model_id'); $bsize_id = $req->request->get('battery_size_id'); + */ // wrong date expire format $date_expire = DateTime::createFromFormat('Ymd', $date_expire_string); @@ -152,6 +161,12 @@ class WarrantyController extends APIController if (!$plate) return new APIResponse(false, 'Invalid plate number.'); + // battery + $batt = $em->getRepository(SAPBattery::class)->find($sku); + if ($batt == null) + return new APIResponse(false, 'Invalid battery SKU.'); + + /* // battery model $model = $em->getRepository(BatteryModel::class)->find($bmodel_id); if ($model == null) @@ -161,14 +176,18 @@ class WarrantyController extends APIController $size = $em->getRepository(BatterySize::class)->find($bsize_id); if ($size == null) return new APIResponse(false, 'Invalid battery size id.'); + */ // warranty $warr = new Warranty(); $warr->setSerial($serial) ->setWarrantyClass($warr_class) ->setPlateNumber($plate) + /* ->setBatteryModel($model) ->setBatterySize($size) + */ + ->setSAPBattery($batt) ->setDatePurchase($date_pur) ->setDateClaim(null) ->setDateExpire($date_expire); @@ -229,6 +248,7 @@ class WarrantyController extends APIController ->setPlateNumber($warr->getPlateNumber()) ->setBatteryModel($warr->getBatteryModel()) ->setBatterySize($warr->getBatterySize()) + ->setSAPBattery($warr->getSAPBattery()) ->setDatePurchase($warr->getDatePurchase()) ->setDateClaim(null) ->setDateExpire($warr->getDateExpire())