Have controller call the createWarranty in service. #550
This commit is contained in:
parent
3f2467f8f7
commit
7b1d36a74f
3 changed files with 41 additions and 66 deletions
|
|
@ -149,78 +149,37 @@ class WarrantyController extends Controller
|
||||||
return $this->render('warranty/form.html.twig', $params);
|
return $this->render('warranty/form.html.twig', $params);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function addSubmit(Request $req, ValidatorInterface $validator)
|
public function addSubmit(Request $req, WarrantyHandler $wh, ValidatorInterface $validator)
|
||||||
{
|
{
|
||||||
$this->denyAccessUnlessGranted('warranty.add', null, 'No access.');
|
$this->denyAccessUnlessGranted('warranty.add', null, 'No access.');
|
||||||
|
|
||||||
// create new row
|
// get row data
|
||||||
$em = $this->getDoctrine()->getManager();
|
$em = $this->getDoctrine()->getManager();
|
||||||
$obj = new Warranty();
|
|
||||||
|
|
||||||
$date_purchase = DateTime::createFromFormat('d M Y', $req->request->get('date_purchase'));
|
$date_purchase = DateTime::createFromFormat('d M Y', $req->request->get('date_purchase'));
|
||||||
$date_claim = DateTime::createFromFormat('d M Y', $req->request->get('date_claim'));
|
$date_claim = DateTime::createFromFormat('d M Y', $req->request->get('date_claim'));
|
||||||
$date_expire = DateTime::createFromFormat('d M Y', $req->request->get('date_expire'));
|
$date_expire = DateTime::createFromFormat('d M Y', $req->request->get('date_expire'));
|
||||||
|
$serial = $req->request->get('serial');
|
||||||
|
$warranty_class = $req->request->get('warranty_class');
|
||||||
|
$first_name = $req->request->get('first_name');
|
||||||
|
$last_name = $req->request->get('last_name');
|
||||||
|
$mobile_number = $req->request->get('mobile_number');
|
||||||
|
$claimed_from = $req->request->get('claim_from');
|
||||||
|
$status = $req->request->get('status');
|
||||||
|
|
||||||
// set and save values
|
$batt_list = [];
|
||||||
$obj->setSerial($req->request->get('serial'))
|
|
||||||
->setWarrantyClass($req->request->get('warranty_class'))
|
|
||||||
->setFirstName($req->request->get('first_name'))
|
|
||||||
->setLastName($req->request->get('last_name'))
|
|
||||||
->setMobileNumber($req->request->get('mobile_number'))
|
|
||||||
->setDatePurchase($date_purchase)
|
|
||||||
->setClaimedFrom($req->request->get('claim_from'))
|
|
||||||
->setStatus($req->request->get('status'));
|
|
||||||
|
|
||||||
if ($date_claim)
|
// TODO: add to batt list, battery model id and battery size id
|
||||||
{
|
|
||||||
$obj->setDateClaim($date_claim);
|
|
||||||
}
|
|
||||||
if ($date_expire)
|
|
||||||
{
|
|
||||||
$obj->setDateExpire($date_expire);
|
|
||||||
}
|
|
||||||
|
|
||||||
// custom validation for battery model
|
|
||||||
$model = $em->getRepository(BatteryModel::class)
|
|
||||||
->find($req->request->get('battery_model'));
|
|
||||||
|
|
||||||
if (empty($model))
|
|
||||||
$error_array['battery_model'] = 'Invalid model selected.';
|
|
||||||
else
|
|
||||||
$obj->setBatteryModel($model);
|
|
||||||
|
|
||||||
// custom validation for battery size
|
|
||||||
$size = $em->getRepository(BatterySize::class)
|
|
||||||
->find($req->request->get('battery_size'));
|
|
||||||
|
|
||||||
if (empty($size))
|
|
||||||
$error_array['battery_size'] = 'Invalid size selected.';
|
|
||||||
else
|
|
||||||
$obj->setBatterySize($size);
|
|
||||||
|
|
||||||
// custom validation for SAP battery
|
|
||||||
$sap = $em->getRepository(SAPBattery::class)
|
$sap = $em->getRepository(SAPBattery::class)
|
||||||
->find($req->request->get('sap_battery'));
|
->find($req->request->get('sap_battery'));
|
||||||
|
if (!(empty($sap)))
|
||||||
if (empty($sap))
|
$batt_list[] = $sap;
|
||||||
$error_array['sap_battery'] = 'Invalid SAP battery selected.';
|
|
||||||
else
|
|
||||||
$obj->setSAPBattery($sap);
|
|
||||||
|
|
||||||
// validate
|
|
||||||
$errors = $validator->validate($obj);
|
|
||||||
|
|
||||||
$cleaned_plate_number = Warranty::cleanPlateNumber($req->request->get('plate_number'));
|
$cleaned_plate_number = Warranty::cleanPlateNumber($req->request->get('plate_number'));
|
||||||
if (!$cleaned_plate_number)
|
if (!$cleaned_plate_number)
|
||||||
{
|
{
|
||||||
$error_array['plate_number'] = 'Invalid plate number specified.';
|
$error_array['plate_number'] = 'Invalid plate number specified.';
|
||||||
}
|
}
|
||||||
$obj->setPlateNumber($cleaned_plate_number);
|
|
||||||
|
|
||||||
// add errors to list
|
|
||||||
foreach ($errors as $error) {
|
|
||||||
$error_array[$error->getPropertyPath()] = $error->getMessage();
|
|
||||||
}
|
|
||||||
|
|
||||||
// check if any errors were found
|
// check if any errors were found
|
||||||
if (!empty($error_array)) {
|
if (!empty($error_array)) {
|
||||||
|
|
@ -230,9 +189,9 @@ class WarrantyController extends Controller
|
||||||
'errors' => $error_array
|
'errors' => $error_array
|
||||||
], 422);
|
], 422);
|
||||||
} else {
|
} else {
|
||||||
// validated! save the entity
|
|
||||||
$em->persist($obj);
|
$wh->createWarranty($serial, $cleaned_plate_number, $first_name, $last_name, $mobile_number, $batt_list,
|
||||||
$em->flush();
|
$date_purchase, $warranty_class, $claimed_from, $status, $date_expire, $date_claim);
|
||||||
|
|
||||||
// return successful response
|
// return successful response
|
||||||
return $this->json([
|
return $this->json([
|
||||||
|
|
|
||||||
|
|
@ -593,6 +593,7 @@ class ResqRiderAPIHandler implements RiderAPIHandlerInterface
|
||||||
$battery = $item->getBattery();
|
$battery = $item->getBattery();
|
||||||
if ($battery != null)
|
if ($battery != null)
|
||||||
{
|
{
|
||||||
|
// TODO: instead of adding battery, add the model id and size id, and maybe battery id
|
||||||
$batt_list[] = $item->getBattery();
|
$batt_list[] = $item->getBattery();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -25,8 +25,10 @@ class WarrantyHandler
|
||||||
$this->em = $em;
|
$this->em = $em;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// create warranty
|
||||||
public function createWarranty($serial, $plate_number, $first_name, $last_name, $mobile_number,
|
public function createWarranty($serial, $plate_number, $first_name, $last_name, $mobile_number,
|
||||||
$batt_list, DateTime $date_purchase, $warranty_class)
|
$batt_list, DateTime $date_purchase, $warranty_class, $claimed_from,
|
||||||
|
$status, $date_expire, $date_claim)
|
||||||
{
|
{
|
||||||
// new warranty
|
// new warranty
|
||||||
$warranty = new Warranty();
|
$warranty = new Warranty();
|
||||||
|
|
@ -61,28 +63,41 @@ class WarrantyHandler
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (empty($date_expire))
|
||||||
|
{
|
||||||
// compute expiry date
|
// compute expiry date
|
||||||
$date_expire = null;
|
$d_expire = null;
|
||||||
if ((!empty($warranty_class)) &&
|
if ((!empty($warranty_class)) &&
|
||||||
(count($batt_list) != 0))
|
(count($batt_list) != 0))
|
||||||
{
|
{
|
||||||
$period = $this->getWarrantyPeriod($batt_list, $warranty_class);
|
$period = $this->getWarrantyPeriod($batt_list, $warranty_class);
|
||||||
$date_expire = $this->computeDateExpire($date_purchase, $period);
|
$d_expire = $this->computeDateExpire($date_purchase, $period);
|
||||||
|
|
||||||
$warranty->setDateExpire($date_expire);
|
$warranty->setDateExpire($d_expire);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$warranty->setDateExpire($d_expire);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!(empty($date_claimed)))
|
||||||
|
$warranty->setDateClaimed($date_claim);
|
||||||
|
|
||||||
// set and save values
|
// set and save values
|
||||||
if (trim($serial) == '')
|
if (trim($serial) == '')
|
||||||
$warranty->setSerial(null);
|
$warranty->setSerial(null);
|
||||||
else
|
else
|
||||||
$warranty->setSerial($serial);
|
$warranty->setSerial($serial);
|
||||||
|
|
||||||
$warranty->setPlateNumber($plate_number)
|
$warranty->setPlateNumber($plate_number)
|
||||||
->setFirstName($first_name)
|
->setFirstName($first_name)
|
||||||
->setLastName($last_name)
|
->setLastName($last_name)
|
||||||
->setMobileNumber($mobile_number)
|
->setMobileNumber($mobile_number)
|
||||||
->setDatePurchase($date_purchase)
|
->setDatePurchase($date_purchase)
|
||||||
->setWarrantyClass($warranty_class);
|
->setWarrantyClass($warranty_class)
|
||||||
|
->setStatus($status)
|
||||||
|
->setClaimedFrom($claimed_from);
|
||||||
|
|
||||||
$this->em->persist($warranty);
|
$this->em->persist($warranty);
|
||||||
$this->em->flush();
|
$this->em->flush();
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue