Return only compatible batteries on job order form #1
This commit is contained in:
parent
e360fbbbd2
commit
49aaa90e37
2 changed files with 40 additions and 20 deletions
|
|
@ -4,6 +4,7 @@ namespace App\Controller;
|
||||||
|
|
||||||
use App\Ramcar\BaseController;
|
use App\Ramcar\BaseController;
|
||||||
use App\Entity\BatteryManufacturer;
|
use App\Entity\BatteryManufacturer;
|
||||||
|
use App\Entity\Vehicle;
|
||||||
|
|
||||||
use Doctrine\ORM\Query;
|
use Doctrine\ORM\Query;
|
||||||
use Symfony\Component\HttpFoundation\Request;
|
use Symfony\Component\HttpFoundation\Request;
|
||||||
|
|
@ -275,25 +276,31 @@ class BatteryManufacturerController extends BaseController
|
||||||
|
|
||||||
// get row data
|
// get row data
|
||||||
$em = $this->getDoctrine()->getManager();
|
$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');
|
throw $this->createNotFoundException('The item does not exist');
|
||||||
|
|
||||||
// build batteries array
|
// build batteries array
|
||||||
$batteries = [];
|
$batteries = [];
|
||||||
|
|
||||||
foreach ($row->getBatteries() as $battery) {
|
// get compatible batteries from selected manufacturer
|
||||||
$batteries[] = [
|
foreach ($vobj->getBatteries() as $battery)
|
||||||
'id' => $battery->getID(),
|
{
|
||||||
'mfg_name' => $battery->getManufacturer()->getName(),
|
if ($battery->getManufacturer()->getID() == $obj->getID())
|
||||||
'model_name' => $battery->getModel()->getName(),
|
{
|
||||||
'size_name' => $battery->getSize()->getName(),
|
$batteries[] = [
|
||||||
'prod_code' => $battery->getProductCode(),
|
'id' => $battery->getID(),
|
||||||
'sell_price' => $battery->getSellingPrice(),
|
'mfg_name' => $battery->getManufacturer()->getName(),
|
||||||
'warr_private' => $battery->getWarrantyPrivate(),
|
'model_name' => $battery->getModel()->getName(),
|
||||||
'warr_commercial' => $battery->getWarrantyCommercial(),
|
'size_name' => $battery->getSize()->getName(),
|
||||||
];
|
'prod_code' => $battery->getProductCode(),
|
||||||
|
'sell_price' => $battery->getSellingPrice(),
|
||||||
|
'warr_private' => $battery->getWarrantyPrivate(),
|
||||||
|
'warr_commercial' => $battery->getWarrantyCommercial(),
|
||||||
|
];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// response
|
// response
|
||||||
|
|
|
||||||
|
|
@ -343,10 +343,10 @@
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-lg-2">
|
<div class="col-lg-3">
|
||||||
<label for="invoice-battery">Battery</label>
|
<label for="invoice-battery">Battery</label>
|
||||||
<select class="form-control m-input" id="invoice-battery" data-value="" disabled>
|
<select class="form-control m-input" id="invoice-battery" data-value="" disabled>
|
||||||
<option value="">Select a manufacturer first</option>
|
<option value="">Select a vehicle and manufacturer first</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-lg-2">
|
<div class="col-lg-2">
|
||||||
|
|
@ -366,7 +366,7 @@
|
||||||
<div><label> </label></div>
|
<div><label> </label></div>
|
||||||
<button type="button" class="btn btn-primary" id="btn-add-to-invoice">Add to Invoice</button>
|
<button type="button" class="btn btn-primary" id="btn-add-to-invoice">Add to Invoice</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-lg-2 text-right">
|
<div class="col-lg-3 text-right">
|
||||||
<div><label> </label></div>
|
<div><label> </label></div>
|
||||||
<button type="button" class="btn btn-danger" id="btn-reset-invoice">Reset Invoice</button>
|
<button type="button" class="btn btn-danger" id="btn-reset-invoice">Reset Invoice</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -764,7 +764,7 @@ $(function() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// store selected vehicle data
|
// store selected vehicle data
|
||||||
var vdata;
|
var vdata = false;
|
||||||
|
|
||||||
// vehicle selector
|
// vehicle selector
|
||||||
$('#customer-vehicle').select2({
|
$('#customer-vehicle').select2({
|
||||||
|
|
@ -796,6 +796,12 @@ $(function() {
|
||||||
// reset vehicle fields
|
// reset vehicle fields
|
||||||
resetVehicleFields();
|
resetVehicleFields();
|
||||||
|
|
||||||
|
// reset invoice fields
|
||||||
|
$("#btn-reset-invoice").click();
|
||||||
|
|
||||||
|
// get compatible batteries
|
||||||
|
$("#invoice-bmfg").change();
|
||||||
|
|
||||||
// set form fields
|
// set form fields
|
||||||
$("[data-vehicle-field='1']").prop('placeholder', '');
|
$("[data-vehicle-field='1']").prop('placeholder', '');
|
||||||
$("#customer-first-name").val(vdata.customer.first_name);
|
$("#customer-first-name").val(vdata.customer.first_name);
|
||||||
|
|
@ -864,12 +870,16 @@ $(function() {
|
||||||
|
|
||||||
// update battery list when changing manufacturer
|
// update battery list when changing manufacturer
|
||||||
$("#invoice-bmfg").change(function() {
|
$("#invoice-bmfg").change(function() {
|
||||||
|
// must have a selected vehicle
|
||||||
|
if (!vdata)
|
||||||
|
return;
|
||||||
|
|
||||||
var id = $(this).val();
|
var id = $(this).val();
|
||||||
var field = $("#invoice-battery");
|
var field = $("#invoice-battery");
|
||||||
|
|
||||||
// no id specified
|
// no id specified
|
||||||
if (!id) {
|
if (!id) {
|
||||||
field.html('<option value="">Select a manufacturer first</option>').prop('disabled', true);
|
field.html('<option value="">Select a vehicle and manufacturer first</option>').prop('disabled', true);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -877,7 +887,10 @@ $(function() {
|
||||||
$.ajax({
|
$.ajax({
|
||||||
method: "POST",
|
method: "POST",
|
||||||
url: "{{ url('bmfg_batteries') }}",
|
url: "{{ url('bmfg_batteries') }}",
|
||||||
data: {id: id}
|
data: {
|
||||||
|
id: id,
|
||||||
|
vehicle_id: vdata.vehicle.id
|
||||||
|
}
|
||||||
}).done(function(response) {
|
}).done(function(response) {
|
||||||
if (response.data.length > 0) {
|
if (response.data.length > 0) {
|
||||||
var html = '';
|
var html = '';
|
||||||
|
|
@ -894,7 +907,7 @@ $(function() {
|
||||||
field.html('<option value="">No batteries found</option>').prop('disabled', true);
|
field.html('<option value="">No batteries found</option>').prop('disabled', true);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}).change();
|
});
|
||||||
|
|
||||||
// mask quantity field
|
// mask quantity field
|
||||||
$("#invoice-quantity").inputmask("mask", {
|
$("#invoice-quantity").inputmask("mask", {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue