Fix blank warranty bug for customer form and add typehinting for date/time fields

This commit is contained in:
Kendrick Chan 2018-01-17 15:09:26 +08:00
parent 360f5d872c
commit 929187f45c
3 changed files with 17 additions and 6 deletions

View file

@ -166,18 +166,22 @@ class CustomerController extends BaseController
$nerror_array = []; $nerror_array = [];
$verror_array = []; $verror_array = [];
// error_log(print_r($req->request->all(), true));
// custom validation for mobile numbers // custom validation for mobile numbers
$numbers = json_decode($req->request->get('mobile_numbers')); $numbers = json_decode($req->request->get('mobile_numbers'));
if (!empty($numbers)) { if (!empty($numbers)) {
foreach ($numbers as $key => $number) { foreach ($numbers as $key => $number) {
$date_reg = DateTime::createFromFormat("d M Y - h:i A", $number->date_registered);
$mobile_number = new MobileNumber(); $mobile_number = new MobileNumber();
$mobile_number->setID($number->id) $mobile_number->setID($number->id)
->setDateRegistered(DateTime::createFromFormat("d M Y - h:i A", $number->date_registered)) ->setDateRegistered($date_reg)
->setCustomer($row); ->setCustomer($row);
if (!empty($number->date_confirmed)) { if (!empty($number->date_confirmed)) {
$mobile_number->setDateConfirmed(DateTime::createFromFormat("d M Y - h:i A", $number->date_confirmed)) $date_confirm = DateTime::createFromFormat("d M Y - h:i A", $number->date_confirmed);
$mobile_number->setDateConfirmed($date_confirm)
->setConfirmed(); ->setConfirmed();
} else { } else {
$mobile_number->setConfirmed(false); $mobile_number->setConfirmed(false);
@ -229,10 +233,15 @@ class CustomerController extends BaseController
if (empty($bobj)) { if (empty($bobj)) {
$verror_array[$vehicle->index]['battery'] = 'Invalid battery specified.'; $verror_array[$vehicle->index]['battery'] = 'Invalid battery specified.';
} else { } else {
// check if warranty expiration was specified
$warr_ex = DateTime::createFromFormat("d M Y", $vehicle->warranty_expiration);
if (!$warr_ex)
$warr_ex = null;
$cust_vehicle->setHasMotoliteBattery(true) $cust_vehicle->setHasMotoliteBattery(true)
->setCurrentBattery($bobj) ->setCurrentBattery($bobj)
->setWarrantyCode($vehicle->warranty_code) ->setWarrantyCode($vehicle->warranty_code)
->setWarrantyExpiration(DateTime::createFromFormat("d M Y", $vehicle->warranty_expiration)); ->setWarrantyExpiration($warr_ex);
} }
} else { } else {
$cust_vehicle->setHasMotoliteBattery(false); $cust_vehicle->setHasMotoliteBattery(false);

View file

@ -5,6 +5,7 @@ namespace App\Entity;
use Doctrine\ORM\Mapping as ORM; use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert; use Symfony\Component\Validator\Constraints as Assert;
use DateTime;
/** /**
* @ORM\Entity * @ORM\Entity
@ -220,7 +221,7 @@ class CustomerVehicle
return $this->warranty_code; return $this->warranty_code;
} }
public function setWarrantyExpiration($warranty_expiration) public function setWarrantyExpiration(DateTime $warranty_expiration = null)
{ {
$this->warranty_expiration = $warranty_expiration; $this->warranty_expiration = $warranty_expiration;
return $this; return $this;

View file

@ -6,6 +6,7 @@ use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert; use Symfony\Component\Validator\Constraints as Assert;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity; use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
use DateTime;
/** /**
* @ORM\Entity * @ORM\Entity
@ -96,7 +97,7 @@ class MobileNumber
return $this->confirm_code; return $this->confirm_code;
} }
public function setDateRegistered($date_registered) public function setDateRegistered(DateTime $date_registered)
{ {
$this->date_registered = $date_registered; $this->date_registered = $date_registered;
return $this; return $this;
@ -107,7 +108,7 @@ class MobileNumber
return $this->date_registered; return $this->date_registered;
} }
public function setDateConfirmed($date_confirmed) public function setDateConfirmed(DateTime $date_confirmed)
{ {
$this->date_confirmed = $date_confirmed; $this->date_confirmed = $date_confirmed;
return $this; return $this;