Draft: Resolve "Warranty revisions" #1463
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);
|
||||
}
|
||||
|
||||
public function addSubmit(Request $req, ValidatorInterface $validator)
|
||||
public function addSubmit(Request $req, WarrantyHandler $wh, ValidatorInterface $validator)
|
||||
{
|
||||
$this->denyAccessUnlessGranted('warranty.add', null, 'No access.');
|
||||
|
||||
// create new row
|
||||
// get row data
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$obj = new Warranty();
|
||||
|
||||
$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_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
|
||||
$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'));
|
||||
$batt_list = [];
|
||||
|
||||
if ($date_claim)
|
||||
{
|
||||
$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
|
||||
// TODO: add to batt list, battery model id and battery size id
|
||||
$sap = $em->getRepository(SAPBattery::class)
|
||||
->find($req->request->get('sap_battery'));
|
||||
|
||||
if (empty($sap))
|
||||
$error_array['sap_battery'] = 'Invalid SAP battery selected.';
|
||||
else
|
||||
$obj->setSAPBattery($sap);
|
||||
|
||||
// validate
|
||||
$errors = $validator->validate($obj);
|
||||
if (!(empty($sap)))
|
||||
$batt_list[] = $sap;
|
||||
|
||||
$cleaned_plate_number = Warranty::cleanPlateNumber($req->request->get('plate_number'));
|
||||
if (!$cleaned_plate_number)
|
||||
{
|
||||
$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
|
||||
if (!empty($error_array)) {
|
||||
|
|
@ -230,9 +189,9 @@ class WarrantyController extends Controller
|
|||
'errors' => $error_array
|
||||
], 422);
|
||||
} else {
|
||||
// validated! save the entity
|
||||
$em->persist($obj);
|
||||
$em->flush();
|
||||
|
||||
$wh->createWarranty($serial, $cleaned_plate_number, $first_name, $last_name, $mobile_number, $batt_list,
|
||||
$date_purchase, $warranty_class, $claimed_from, $status, $date_expire, $date_claim);
|
||||
|
||||
// return successful response
|
||||
return $this->json([
|
||||
|
|
|
|||
|
|
@ -593,6 +593,7 @@ class ResqRiderAPIHandler implements RiderAPIHandlerInterface
|
|||
$battery = $item->getBattery();
|
||||
if ($battery != null)
|
||||
{
|
||||
// TODO: instead of adding battery, add the model id and size id, and maybe battery id
|
||||
$batt_list[] = $item->getBattery();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -25,8 +25,10 @@ class WarrantyHandler
|
|||
$this->em = $em;
|
||||
}
|
||||
|
||||
// create warranty
|
||||
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
|
||||
$warranty = new Warranty();
|
||||
|
|
@ -61,28 +63,41 @@ class WarrantyHandler
|
|||
}
|
||||
}
|
||||
|
||||
// compute expiry date
|
||||
$date_expire = null;
|
||||
if ((!empty($warranty_class)) &&
|
||||
(count($batt_list) != 0))
|
||||
if (empty($date_expire))
|
||||
{
|
||||
$period = $this->getWarrantyPeriod($batt_list, $warranty_class);
|
||||
$date_expire = $this->computeDateExpire($date_purchase, $period);
|
||||
// compute expiry date
|
||||
$d_expire = null;
|
||||
if ((!empty($warranty_class)) &&
|
||||
(count($batt_list) != 0))
|
||||
{
|
||||
$period = $this->getWarrantyPeriod($batt_list, $warranty_class);
|
||||
$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
|
||||
if (trim($serial) == '')
|
||||
$warranty->setSerial(null);
|
||||
else
|
||||
$warranty->setSerial($serial);
|
||||
|
||||
$warranty->setPlateNumber($plate_number)
|
||||
->setFirstName($first_name)
|
||||
->setLastName($last_name)
|
||||
->setMobileNumber($mobile_number)
|
||||
->setDatePurchase($date_purchase)
|
||||
->setWarrantyClass($warranty_class);
|
||||
->setWarrantyClass($warranty_class)
|
||||
->setStatus($status)
|
||||
->setClaimedFrom($claimed_from);
|
||||
|
||||
$this->em->persist($warranty);
|
||||
$this->em->flush();
|
||||
|
|
|
|||
Loading…
Reference in a new issue