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\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'] . '%');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
|
|
||||||
|
|
@ -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',
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue