diff --git a/src/Controller/BatteryManufacturerController.php b/src/Controller/BatteryManufacturerController.php index d68b96f3..d7ff0ebb 100644 --- a/src/Controller/BatteryManufacturerController.php +++ b/src/Controller/BatteryManufacturerController.php @@ -4,6 +4,7 @@ namespace App\Controller; use App\Ramcar\BaseController; use App\Entity\BatteryManufacturer; +use App\Entity\Vehicle; use Doctrine\ORM\Query; use Symfony\Component\HttpFoundation\Request; @@ -275,25 +276,31 @@ class BatteryManufacturerController extends BaseController // get row data $em = $this->getDoctrine()->getManager(); - $row = $em->getRepository(BatteryManufacturer::class)->find($req->request->get('id')); + $obj = $em->getRepository(BatteryManufacturer::class)->find($req->request->get('id')); + $vobj = $em->getRepository(Vehicle::class)->find($req->request->get('vehicle_id')); - if (empty($row)) + if (empty($obj) || empty($vobj)) throw $this->createNotFoundException('The item does not exist'); // build batteries array $batteries = []; - foreach ($row->getBatteries() as $battery) { - $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(), - ]; + // get compatible batteries from selected manufacturer + foreach ($vobj->getBatteries() as $battery) + { + if ($battery->getManufacturer()->getID() == $obj->getID()) + { + $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(), + ]; + } } // response diff --git a/templates/job-order/form.html.twig b/templates/job-order/form.html.twig index b9e0ad70..0c24489e 100644 --- a/templates/job-order/form.html.twig +++ b/templates/job-order/form.html.twig @@ -343,10 +343,10 @@ {% endfor %} -
+
@@ -366,7 +366,7 @@
-
+
@@ -764,7 +764,7 @@ $(function() { } // store selected vehicle data - var vdata; + var vdata = false; // vehicle selector $('#customer-vehicle').select2({ @@ -795,6 +795,12 @@ $(function() { // reset vehicle fields resetVehicleFields(); + + // reset invoice fields + $("#btn-reset-invoice").click(); + + // get compatible batteries + $("#invoice-bmfg").change(); // set form fields $("[data-vehicle-field='1']").prop('placeholder', ''); @@ -864,12 +870,16 @@ $(function() { // update battery list when changing manufacturer $("#invoice-bmfg").change(function() { + // must have a selected vehicle + if (!vdata) + return; + var id = $(this).val(); var field = $("#invoice-battery"); // no id specified if (!id) { - field.html('').prop('disabled', true); + field.html('').prop('disabled', true); return true; } @@ -877,7 +887,10 @@ $(function() { $.ajax({ method: "POST", url: "{{ url('bmfg_batteries') }}", - data: {id: id} + data: { + id: id, + vehicle_id: vdata.vehicle.id + } }).done(function(response) { if (response.data.length > 0) { var html = ''; @@ -894,7 +907,7 @@ $(function() { field.html('').prop('disabled', true); } }); - }).change(); + }); // mask quantity field $("#invoice-quantity").inputmask("mask", {