Add vehicle fields in warranty #540

This commit is contained in:
Kendrick Chan 2021-03-22 23:31:18 +08:00
parent ed20b421e4
commit 095159c3fe
4 changed files with 107 additions and 0 deletions

View file

@ -49,6 +49,11 @@ capi_vehicle_list:
controller: App\Controller\CAPI\VehicleController::list controller: App\Controller\CAPI\VehicleController::list
methods: [GET] methods: [GET]
capi_vehicle_by_mfg:
path: /capi/vehicle_manufacturer/{mfg_id}
controller: App\Controller\CAPI\VehicleController::getByManufacturer
methods: [GET]
# plate api # plate api

View file

@ -249,6 +249,7 @@ class CustomerWarrantyController extends APIController
$wcard_filename = $this->handlePictureUpload($warr_card, $upload_dir, $serial, 'wcard'); $wcard_filename = $this->handlePictureUpload($warr_card, $upload_dir, $serial, 'wcard');
/*
$data = [ $data = [
'first_name' => $first_name, 'first_name' => $first_name,
'last_name' => $last_name, 'last_name' => $last_name,
@ -261,6 +262,7 @@ class CustomerWarrantyController extends APIController
error_log(print_r($data, true)); error_log(print_r($data, true));
error_log('updating warranty'); error_log('updating warranty');
*/
// do actual registering // do actual registering
$res = $this->updateWarranty($em, $req, $serial, $inv_filename, $wcard_filename); $res = $this->updateWarranty($em, $req, $serial, $inv_filename, $wcard_filename);
@ -396,6 +398,8 @@ class CustomerWarrantyController extends APIController
// new fields // new fields
->setOdometer($req->request->get('odometer', 0)) ->setOdometer($req->request->get('odometer', 0))
->setDatePurchaseCustomer($date_pur_cust) ->setDatePurchaseCustomer($date_pur_cust)
->setDealerName($req->request->get('dealer_name'))
->setDealerAddress($req->request->get('dealer_address'))
->setValidated(false); ->setValidated(false);
// TODO: check for date purchase and date expire // TODO: check for date purchase and date expire

View file

@ -44,6 +44,35 @@ class VehicleController extends APIController
return new APIResponse(true, 'Vehicle manufacturers loaded.', $data); return new APIResponse(true, 'Vehicle manufacturers loaded.', $data);
} }
public function getByManufacturer($mfg_id, EntityManagerInterface $em)
{
$this->denyAccessUnlessGranted('vehicle.list', null, 'No access.');
$mfg = $this->em->getRepository(VehicleManufacturer::class)->find($mfg_id);
// manufacturer not found
if ($mfg == null)
{
return new APIResponse(false, 'No vehicle manufacturer found with that Id.', null, 404);
}
// get all vehicles from manufacturer
$vehicles = $mfg->getVehicles();
foreach($vehicles as $vehicle)
{
$make_data[] = [
'id' => $vehicle->getID(),
'mfg_id' => $vehicle->getManufacturer()->getID(),
'make' => $vehicle->getMake(),
'model' => $vehicle->getModelYearFormatted(),
];
}
// TODO: need to add manufacturer details
return new APIResponse(true, 'Vehicles loaded.', $data);
}
public function list(EntityManagerInterface $em) public function list(EntityManagerInterface $em)
{ {
$this->denyAccessUnlessGranted('vehicle.list', null, 'No access.'); $this->denyAccessUnlessGranted('vehicle.list', null, 'No access.');

View file

@ -157,12 +157,37 @@ class Warranty
*/ */
protected $file_warr_card; protected $file_warr_card;
// vehicle
/**
* @ORM\ManyToOne(targetEntity="Vehicle")
* @ORM\JoinColumn(name="vehicle_id", referencedColumnName="id", nullable=true)
*/
protected $vehicle;
// vehicle model year
/**
* @ORM\Column(type="string", length=10, nullable=true)
*/
protected $v_model_year;
// odometer reading // odometer reading
/** /**
* @ORM\Column(type="integer", nullable=true) * @ORM\Column(type="integer", nullable=true)
*/ */
protected $odometer; protected $odometer;
// dealer name
/**
* #ORM\Column(type="string", length=80, nullable=true)
*/
protected $dealer_name;
// dealer address
/**
* #ORM\Column(type="string", length=180, nullable=true)
*/
protected $dealer_address;
// date purchase as specified by customer // date purchase as specified by customer
// TODO: currently this does not affect warranty, someone will have to view this and set // TODO: currently this does not affect warranty, someone will have to view this and set
// actual purchase date // actual purchase date
@ -472,6 +497,28 @@ class Warranty
return $this->file_warr_card; return $this->file_warr_card;
} }
public function setVehicle(Vehicle $v)
{
$this->vehicle = $v;
return $this;
}
public function getVehicle()
{
return $this->vehicle;
}
public function setVehicleModelYear($year)
{
$this->v_model_year = $year;
return $this;
}
public function getVehicleModelYear()
{
return $this->v_model_year;
}
public function setOdometer($odometer) public function setOdometer($odometer)
{ {
$this->odometer = $odometer; $this->odometer = $odometer;
@ -483,6 +530,28 @@ class Warranty
return $this->odometer; return $this->odometer;
} }
public function setDealerName($name)
{
$this->dealer_name = $name;
return $this;
}
public function getDealerName()
{
return $this->dealer_name;
}
public function setDealerAddress($address)
{
$this->dealer_address = $address;
return $this;
}
public function getDealerAddress()
{
return $this->dealer_address;
}
public function setDatePurchaseCustomer($date) public function setDatePurchaseCustomer($date)
{ {
$this->date_purchase_cust = $date; $this->date_purchase_cust = $date;