Add container size to SAP battery form. #527
This commit is contained in:
parent
a9d631cbc2
commit
b17a95e35a
3 changed files with 45 additions and 3 deletions
|
|
@ -5,6 +5,7 @@ namespace App\Controller;
|
|||
use App\Entity\SAPBattery;
|
||||
use App\Entity\SAPBatteryBrand;
|
||||
use App\Entity\SAPBatterySize;
|
||||
use App\Entity\SAPBatteryContainerSize;
|
||||
|
||||
use Doctrine\ORM\Query;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
|
|
@ -42,6 +43,7 @@ class SAPBatteryController extends Controller
|
|||
$tquery = $qb->select('COUNT(q)')
|
||||
->join('q.brand', 'brand')
|
||||
->join('q.size', 'size');
|
||||
//->join('q.container_size', 'container_size');
|
||||
|
||||
// add filters to count query
|
||||
$this->setQueryFilters($datatable, $tquery);
|
||||
|
|
@ -68,7 +70,8 @@ class SAPBatteryController extends Controller
|
|||
// build query
|
||||
$query = $qb->select('q')
|
||||
->addSelect('brand.name as brand_name')
|
||||
->addSelect('size.name as size_name');;
|
||||
->addSelect('size.name as size_name');
|
||||
//->addSelect('container_size.name as container_size_name');
|
||||
|
||||
// add filters to query
|
||||
$this->setQueryFilters($datatable, $query);
|
||||
|
|
@ -83,6 +86,7 @@ class SAPBatteryController extends Controller
|
|||
if (isset($datatable['sort']['field']) && !empty($datatable['sort']['field'])) {
|
||||
$prefix = '';
|
||||
|
||||
//if (!in_array($datatable['sort']['field'], ['brand_name', 'size_name', 'container_size_name' ]))
|
||||
if (!in_array($datatable['sort']['field'], ['brand_name', 'size_name' ]))
|
||||
$prefix = 'q.';
|
||||
|
||||
|
|
@ -105,6 +109,7 @@ class SAPBatteryController extends Controller
|
|||
$row['id'] = $orow[0]->getID();
|
||||
$row['brand_name'] = $orow['brand_name'];
|
||||
$row['size_name'] = $orow['size_name'];
|
||||
//$row['container_size_name'] = $orow['container_size_name'];
|
||||
$row['flag_new'] = $orow[0]->isNew();
|
||||
|
||||
// add row metadata
|
||||
|
|
@ -144,6 +149,7 @@ class SAPBatteryController extends Controller
|
|||
// get parent associations
|
||||
$params['brands'] = $em->getRepository(SAPBatteryBrand::class)->findAll();
|
||||
$params['sizes'] = $em->getRepository(SAPBatterySize::class)->findAll();
|
||||
$params['container_sizes'] = $em->getRepository(SAPBatteryContainerSize::class)->findAll();
|
||||
|
||||
// response
|
||||
return $this->render('sap-battery/form.html.twig', $params);
|
||||
|
|
@ -187,6 +193,15 @@ class SAPBatteryController extends Controller
|
|||
else
|
||||
$row->setSize($size);
|
||||
|
||||
// custom validation for container size
|
||||
$container_size = $em->getRepository(SAPBatteryContainerSize::class)
|
||||
->find($req->request->get('container_size'));
|
||||
|
||||
if (empty($container_size))
|
||||
$error_array['container_size'] = 'Invalid container size selected.';
|
||||
else
|
||||
$row->setContainerSize($container_size);
|
||||
|
||||
// validate
|
||||
$errors = $validator->validate($row);
|
||||
|
||||
|
|
@ -234,7 +249,7 @@ class SAPBatteryController extends Controller
|
|||
// get parent associations
|
||||
$params['brands'] = $em->getRepository(SAPBatteryBrand::class)->findAll();
|
||||
$params['sizes'] = $em->getRepository(SAPBatterySize::class)->findAll();
|
||||
|
||||
$params['container_sizes'] = $em->getRepository(SAPBatteryContainerSize::class)->findAll();
|
||||
|
||||
$params['obj'] = $row;
|
||||
|
||||
|
|
@ -284,6 +299,15 @@ class SAPBatteryController extends Controller
|
|||
else
|
||||
$row->setSize($size);
|
||||
|
||||
// custom validation for container size
|
||||
$container_size = $em->getRepository(SAPBatteryContainerSize::class)
|
||||
->find($req->request->get('container_size'));
|
||||
|
||||
if (empty($container_size))
|
||||
$error_array['container_size'] = 'Invalid container size selected.';
|
||||
else
|
||||
$row->setContainerSize($container_size);
|
||||
|
||||
// validate
|
||||
$errors = $validator->validate($row);
|
||||
|
||||
|
|
@ -338,6 +362,7 @@ class SAPBatteryController extends Controller
|
|||
$query->where('q.id LIKE :filter')
|
||||
->orWhere('brand.name LIKE :filter')
|
||||
->orWhere('size.name LIKE :filter')
|
||||
//->orWhere('container_size.name LIKE :filter')
|
||||
->setParameter('filter', '%' . $datatable['query']['data-rows-search'] . '%');
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -74,6 +74,18 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="form-group m-form__group row">
|
||||
<div class="col-lg-4">
|
||||
<label data-field="size">
|
||||
Container Size
|
||||
</label>
|
||||
<select class="form-control m-input" id="container-size" name="container_size">
|
||||
<option value=""></option>
|
||||
{% for size in container_sizes %}
|
||||
<option value="{{ size.getID }}"{{ obj.getContainerSize.getID|default(0) == size.getID ? ' selected' }}>{{ size.getName }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
<div class="form-control-feedback hide" data-field="container_size"></div>
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
<span class="m-switch m-switch--icon block-switch">
|
||||
<label>
|
||||
|
|
|
|||
|
|
@ -104,6 +104,11 @@
|
|||
title: 'Size',
|
||||
width: 180
|
||||
},
|
||||
//{
|
||||
// field: 'container_size_name',
|
||||
// title: 'Container Size',
|
||||
// width: 180
|
||||
//},
|
||||
{
|
||||
field: 'flag_new',
|
||||
title: 'New',
|
||||
|
|
|
|||
Loading…
Reference in a new issue