Update warranty api controller to handle sku instead of model / size for batteries #172

This commit is contained in:
Kendrick Chan 2019-01-21 02:09:16 +08:00
parent 15b7473af7
commit 2f30d0c7c3

View file

@ -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())