Add container size to SAP battery form. #527

This commit is contained in:
Korina Cordero 2020-12-07 09:05:00 +00:00
parent a9d631cbc2
commit b17a95e35a
3 changed files with 45 additions and 3 deletions

View file

@ -5,6 +5,7 @@ namespace App\Controller;
use App\Entity\SAPBattery; use App\Entity\SAPBattery;
use App\Entity\SAPBatteryBrand; use App\Entity\SAPBatteryBrand;
use App\Entity\SAPBatterySize; use App\Entity\SAPBatterySize;
use App\Entity\SAPBatteryContainerSize;
use Doctrine\ORM\Query; use Doctrine\ORM\Query;
use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Request;
@ -42,6 +43,7 @@ class SAPBatteryController extends Controller
$tquery = $qb->select('COUNT(q)') $tquery = $qb->select('COUNT(q)')
->join('q.brand', 'brand') ->join('q.brand', 'brand')
->join('q.size', 'size'); ->join('q.size', 'size');
//->join('q.container_size', 'container_size');
// add filters to count query // add filters to count query
$this->setQueryFilters($datatable, $tquery); $this->setQueryFilters($datatable, $tquery);
@ -68,7 +70,8 @@ class SAPBatteryController extends Controller
// build query // build query
$query = $qb->select('q') $query = $qb->select('q')
->addSelect('brand.name as brand_name') ->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 // add filters to query
$this->setQueryFilters($datatable, $query); $this->setQueryFilters($datatable, $query);
@ -83,7 +86,8 @@ class SAPBatteryController extends Controller
if (isset($datatable['sort']['field']) && !empty($datatable['sort']['field'])) { if (isset($datatable['sort']['field']) && !empty($datatable['sort']['field'])) {
$prefix = ''; $prefix = '';
if (!in_array($datatable['sort']['field'], ['brand_name', 'size_name'])) //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.'; $prefix = 'q.';
$order = $datatable['sort']['sort'] ?? 'asc'; $order = $datatable['sort']['sort'] ?? 'asc';
@ -105,6 +109,7 @@ class SAPBatteryController extends Controller
$row['id'] = $orow[0]->getID(); $row['id'] = $orow[0]->getID();
$row['brand_name'] = $orow['brand_name']; $row['brand_name'] = $orow['brand_name'];
$row['size_name'] = $orow['size_name']; $row['size_name'] = $orow['size_name'];
//$row['container_size_name'] = $orow['container_size_name'];
$row['flag_new'] = $orow[0]->isNew(); $row['flag_new'] = $orow[0]->isNew();
// add row metadata // add row metadata
@ -144,6 +149,7 @@ class SAPBatteryController extends Controller
// get parent associations // get parent associations
$params['brands'] = $em->getRepository(SAPBatteryBrand::class)->findAll(); $params['brands'] = $em->getRepository(SAPBatteryBrand::class)->findAll();
$params['sizes'] = $em->getRepository(SAPBatterySize::class)->findAll(); $params['sizes'] = $em->getRepository(SAPBatterySize::class)->findAll();
$params['container_sizes'] = $em->getRepository(SAPBatteryContainerSize::class)->findAll();
// response // response
return $this->render('sap-battery/form.html.twig', $params); return $this->render('sap-battery/form.html.twig', $params);
@ -187,6 +193,15 @@ class SAPBatteryController extends Controller
else else
$row->setSize($size); $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 // validate
$errors = $validator->validate($row); $errors = $validator->validate($row);
@ -234,7 +249,7 @@ class SAPBatteryController extends Controller
// get parent associations // get parent associations
$params['brands'] = $em->getRepository(SAPBatteryBrand::class)->findAll(); $params['brands'] = $em->getRepository(SAPBatteryBrand::class)->findAll();
$params['sizes'] = $em->getRepository(SAPBatterySize::class)->findAll(); $params['sizes'] = $em->getRepository(SAPBatterySize::class)->findAll();
$params['container_sizes'] = $em->getRepository(SAPBatteryContainerSize::class)->findAll();
$params['obj'] = $row; $params['obj'] = $row;
@ -284,6 +299,15 @@ class SAPBatteryController extends Controller
else else
$row->setSize($size); $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 // validate
$errors = $validator->validate($row); $errors = $validator->validate($row);
@ -338,6 +362,7 @@ class SAPBatteryController extends Controller
$query->where('q.id LIKE :filter') $query->where('q.id LIKE :filter')
->orWhere('brand.name LIKE :filter') ->orWhere('brand.name LIKE :filter')
->orWhere('size.name LIKE :filter') ->orWhere('size.name LIKE :filter')
//->orWhere('container_size.name LIKE :filter')
->setParameter('filter', '%' . $datatable['query']['data-rows-search'] . '%'); ->setParameter('filter', '%' . $datatable['query']['data-rows-search'] . '%');
} }
} }

View file

@ -74,6 +74,18 @@
</div> </div>
</div> </div>
<div class="form-group m-form__group row"> <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"> <div class="col-lg-4">
<span class="m-switch m-switch--icon block-switch"> <span class="m-switch m-switch--icon block-switch">
<label> <label>

View file

@ -104,6 +104,11 @@
title: 'Size', title: 'Size',
width: 180 width: 180
}, },
//{
// field: 'container_size_name',
// title: 'Container Size',
// width: 180
//},
{ {
field: 'flag_new', field: 'flag_new',
title: 'New', title: 'New',