diff --git a/src/Controller/BatteryManufacturerController.php b/src/Controller/BatteryManufacturerController.php index 9d377481..55419c6a 100644 --- a/src/Controller/BatteryManufacturerController.php +++ b/src/Controller/BatteryManufacturerController.php @@ -5,6 +5,7 @@ namespace App\Controller; use App\Ramcar\BaseController; use App\Entity\BatteryManufacturer; use App\Entity\Vehicle; +use App\Entity\Battery; use Doctrine\ORM\Query; use Symfony\Component\HttpFoundation\Request; @@ -278,12 +279,14 @@ class BatteryManufacturerController extends BaseController $em = $this->getDoctrine()->getManager(); $obj = $em->getRepository(BatteryManufacturer::class)->find($req->request->get('id')); $vobj = $em->getRepository(Vehicle::class)->find($req->request->get('vehicle_id')); + $all_batts = $em->getRepository(Battery::class)->findAll(); if (empty($obj) || empty($vobj)) throw $this->createNotFoundException('The item does not exist'); // build batteries array $batteries = []; + $battery_index = []; // get compatible batteries from selected manufacturer foreach ($vobj->getBatteries() as $battery) @@ -300,13 +303,36 @@ class BatteryManufacturerController extends BaseController 'warr_private' => $battery->getWarrantyPrivate(), 'warr_commercial' => $battery->getWarrantyCommercial(), ]; + $battery_index[$battery->getID()] = 1; } } + // add all other batteries, because they want options + foreach ($all_batts as $battery) + { + // if we already listed it + if (isset($battery_index[$battery->getID()])) + continue; + + $batteries[] = [ + 'id' => $battery->getID(), + 'mfg_name' => $battery->getManufacturer()->getName(), + 'model_name' => $battery->getModel()->getName(), + 'size_name' => $battery->getSize()->getName(), + 'prod_code' => $battery->getProductCode(), + 'sell_price' => $battery->getSellingPrice(), + 'warr_private' => $battery->getWarrantyPrivate(), + 'warr_commercial' => $battery->getWarrantyCommercial(), + ]; + } + + /* + // NOTE: no need to order by price for control center / only for app // order by price usort($batteries, function ($a, $b) { return -($a['sell_price'] <=> $b['sell_price']); }); + */ // response return $this->json([