Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public function listAction(Request $request, $page)
- {
- $starterRepository = $this->getDoctrine()->getManager()
- ->getRepository('CatalogBundle:Starter');
- $starterReferenceFilterForm = $this->createForm('starter_reference_filter', null, array(
- 'action' => $this->generateUrl('CatalogBundle_starter.references')
- ));
- $starterApplicationRepository = $this->getDoctrine()->getManager()
- ->getRepository('CatalogBundle:StarterApplication');
- $title = $starterApplicationRepository->createQueryBuilder('sa')
- ->addSelect('m')->innerJoin('sa.manufacturer', 'm')
- ->addSelect('s')->innerJoin('sa.starters', 's')
- ->groupBy('m.id')
- ->orderBy('m.title')
- ->where('s.active = 1');
- $title = $title->getQuery();
- $title = $title->getArrayResult();
- $starterApplicationFilterForm = $this->createForm('starter_application_filter', null, array(
- 'action' => $this->generateUrl('CatalogBundle_starter.applications'),
- 'title' => $title
- ));
- $formvars = $request->get('starter_filter');
- $voltage = $starterRepository->createQueryBuilder('s')
- ->select('DISTINCT s.voltage')
- ->addSelect('ABS(s.voltage) AS HIDDEN hd')
- ->where('s.active = 1')
- ->orderBy('hd');
- if(!empty($formvars)){
- foreach ($formvars as $key => $value) {
- if($key == 's_voltage'&&!empty($value)){
- $voltage->andWhere('s.voltage like :val1')
- ->setParameter('val1', $value.'');
- }
- if($key == 's_power'&&!empty($value)){
- $voltage->andWhere('s.power LIKE :val2')
- ->setParameter('val2', $value.'');
- }
- if($key == 's_rotation'&&!empty($value)){
- $voltage->andWhere('s.rotation LIKE :val3')
- ->setParameter('val3', $value.'');
- }
- if($key == 's_teeth'&&!empty($value)){
- $voltage->andWhere('s.teeth LIKE :val4')
- ->setParameter('val4', $value.'');
- }
- if($key == 's_usage'&&!empty($value)){
- $voltage->andWhere('s.teeth LIKE :val4')
- ->setParameter('val4', $value.'');
- }
- if($key == 's_type'&&!empty($value)){
- $voltage->andWhere('s.type LIKE :val5')
- ->setParameter('val5', $value.'');
- }
- if($key == 's_module'&&!empty($value)){
- $voltage->andWhere('s.module LIKE :val6')
- ->setParameter('val6', $value.'');
- }
- }
- }
- $voltage = $voltage->getQuery();
- $voltage = $voltage->getResult();
- $power = $starterRepository->createQueryBuilder('s')
- ->select('DISTINCT s.power')
- ->addSelect('ABS(s.power) AS HIDDEN hd')
- ->where('s.active = 1')
- ->orderBy('hd');
- if(!empty($formvars)){
- foreach ($formvars as $key => $value) {
- if($key == 's_voltage'&&!empty($value)){
- $power->andWhere('s.voltage like :val1')
- ->setParameter('val1', $value.'');
- }
- if($key == 's_power'&&!empty($value)){
- $power->andWhere('s.power LIKE :val2')
- ->setParameter('val2', $value.'%');
- }
- if($key == 's_rotation'&&!empty($value)){
- $power->andWhere('s.rotation LIKE :val3')
- ->setParameter('val3', $value.'');
- }
- if($key == 's_teeth'&&!empty($value)){
- $power->andWhere('s.teeth LIKE :val4')
- ->setParameter('val4', $value.'');
- }
- if($key == 's_usage'&&!empty($value)){
- $voltage->andWhere('s.teeth LIKE :val4')
- ->setParameter('val4', $value.'');
- }
- if($key == 's_type'&&!empty($value)){
- $power->andWhere('s.type LIKE :val5')
- ->setParameter('val5', $value.'');
- }
- if($key == 's_module'&&!empty($value)){
- $power->andWhere('s.module LIKE :val6')
- ->setParameter('val6', $value.'');
- }
- }
- }
- $power = $power->getQuery();
- $power = $power->getResult();
- $module = $starterRepository->createQueryBuilder('s')
- ->select('DISTINCT s.module')
- ->addSelect('ABS(s.module) AS HIDDEN hd')
- ->where('s.active = 1')
- ->orderBy('hd');
- if(!empty($formvars)){
- foreach ($formvars as $key => $value) {
- if($key == 's_voltage'&&!empty($value)){
- $module->andWhere('s.voltage like :val1')
- ->setParameter('val1', $value.'');
- // echo $value;
- }
- if($key == 's_power'&&!empty($value)){
- $module->andWhere('s.power LIKE :val2')
- ->setParameter('val2', $value.'');
- }
- if($key == 's_rotation'&&!empty($value)){
- $module->andWhere('s.rotation LIKE :val3')
- ->setParameter('val3', $value.'');
- }
- if($key == 's_teeth'&&!empty($value)){
- $module->andWhere('s.teeth LIKE :val4')
- ->setParameter('val4', $value.'');
- }
- if($key == 's_usage'&&!empty($value)){
- $voltage->andWhere('s.teeth LIKE :val4')
- ->setParameter('val4', $value.'');
- }
- if($key == 's_type'&&!empty($value)){
- $module->andWhere('s.type LIKE :val5')
- ->setParameter('val5', $value.'');
- }
- if($key == 's_module'&&!empty($value)){
- $module->andWhere('s.module LIKE :val6')
- ->setParameter('val6', $value.'');
- }
- }
- }
- $module = $module->getQuery();
- $module = $module->getResult();
- $rotation = $starterRepository->createQueryBuilder('s')
- ->select('DISTINCT s.rotation')
- ->where('s.active = 1')
- ->orderBy('s.rotation');
- if(!empty($formvars)){
- foreach ($formvars as $key => $value) {
- if($key == 's_voltage'&&!empty($value)){
- $rotation->andWhere('s.voltage like :val1')
- ->setParameter('val1', $value.'');
- }
- if($key == 's_power'&&!empty($value)){
- $rotation->andWhere('s.power LIKE :val2')
- ->setParameter('val2', $value.'');
- }
- if($key == 's_rotation'&&!empty($value)){
- $rotation->andWhere('s.rotation LIKE :val3')
- ->setParameter('val3', $value.'');
- }
- if($key == 's_teeth'&&!empty($value)){
- $rotation->andWhere('s.teeth LIKE :val4')
- ->setParameter('val4', $value.'');
- }
- if($key == 's_usage'&&!empty($value)){
- $voltage->andWhere('s.teeth LIKE :val4')
- ->setParameter('val4', $value.'');
- }
- if($key == 's_type'&&!empty($value)){
- $rotation->andWhere('s.type LIKE :val5')
- ->setParameter('val5', $value.'');
- }
- if($key == 's_module'&&!empty($value)){
- $rotation->andWhere('s.module LIKE :val6')
- ->setParameter('val6', $value.'');
- }
- }
- }
- $rotation = $rotation->getQuery();
- $rotation = $rotation->getResult();
- $teeth= $starterRepository->createQueryBuilder('s')
- ->select('DISTINCT s.teeth')
- ->where('s.active = 1')
- ->orderBy('s.teeth');
- if(!empty($formvars)){
- foreach ($formvars as $key => $value) {
- if($key == 's_voltage'&&!empty($value)){
- $teeth->andWhere('s.voltage like :val1')
- ->setParameter('val1', $value.'');
- }
- if($key == 's_power'&&!empty($value)){
- $teeth->andWhere('s.power LIKE :val2')
- ->setParameter('val2', $value.'');
- }
- if($key == 's_rotation'&&!empty($value)){
- $teeth->andWhere('s.rotation LIKE :val3')
- ->setParameter('val3', $value.'');
- }
- if($key == 's_teeth'&&!empty($value)){
- $teeth->andWhere('s.teeth LIKE :val4')
- ->setParameter('val4', $value.'');
- }
- if($key == 's_type'&&!empty($value)){
- $teeth->andWhere('s.type LIKE :val5')
- ->setParameter('val5', $value.'');
- }
- if($key == 's_module'&&!empty($value)){
- $teeth->andWhere('s.module LIKE :val6')
- ->setParameter('val6', $value.'');
- }
- }
- }
- $teeth = $teeth->getQuery();
- $teeth = $teeth->getResult();
- $type = $starterRepository->createQueryBuilder('s')
- ->select('DISTINCT s.type')
- ->where('s.active = 1')
- ->orderBy('s.type');
- if(!empty($formvars)){
- foreach ($formvars as $key => $value) {
- if($key == 's_serial' && !empty($value)){
- }
- if($key == 's_voltage'&&!empty($value)){
- $type->andWhere('s.voltage like :val1')
- ->setParameter('val1', $value.'');
- }
- if($key == 's_power'&&!empty($value)){
- $type->andWhere('s.power LIKE :val2')
- ->setParameter('val2', $value.'');
- }
- if($key == 's_rotation'&&!empty($value)){
- $type->andWhere('s.rotation LIKE :val3')
- ->setParameter('val3', $value.'');
- }
- if($key == 's_teeth'&&!empty($value)){
- $type->andWhere('s.teeth LIKE :val4')
- ->setParameter('val4', $value.'');
- }
- if($key == 's_type'&&!empty($value)){
- $type->andWhere('s.type LIKE :val5')
- ->setParameter('val5', $value.'');
- }
- if($key == 's_module'&&!empty($value)){
- $type->andWhere('s.module LIKE :val6')
- ->setParameter('val6', $value.'');
- }
- }
- }
- $type = $type->getQuery();
- $type = $type->getResult();
- $searchForm = $this->createForm('starter_filter', null, array(
- 'action' => $this->generateUrl('CatalogBundle_starter.list'),
- 'voltage'=>$voltage,
- 'power'=>$power,
- 'rotation'=>$rotation,
- 'teeth'=>$teeth,
- 'type'=>$type,
- 'module'=>$module
- ),$voltage);
- $searchForm->submit($request);
- $searchData = array_filter($searchForm->getData());
- foreach ($searchData as $key => $value) {
- if ($key === 's_power') {
- $searchData[$key] = str_replace(',', '.', $value);
- }
- }
- $query = $starterRepository->createQueryBuilder('s')
- ->where('s.active = 1')
- ->where('reference.ref_usage = 1')
- ->orderBy('s.voltage, s.power, s.serial');
- foreach ($searchData as $key => $value) {
- if ($key == 't_id') {
- $ids = array();
- foreach ($value->getValues() as $tag) {
- $ids[] = $tag->getId();
- }
- if (count($ids)) {
- $query->addSelect('t')->innerJoin('s.tags', 't')
- ->andWhere('t.id IN (:ids)')
- ->setParameter('ids', $ids);
- }
- } else {
- $query->andWhere(str_replace('_', '.', $key).' LIKE :'.$key)
- ->setParameter($key, $value.'');
- }
- }
- $paginator = $this->get('knp_paginator');
- $pagination = $paginator->paginate(
- $query->getQuery(),
- $page,
- $this->get('request')->query->get('limit', 50)
- );
- $dispatcher = $this->container->get('event_dispatcher');
- $dispatcher->dispatch(UserEvents::USER_ACTION, new UserActionEvent($request));
- return array(
- 'pagination' => $pagination,
- 'searchForm' => $searchForm->createView(),
- 'starterReferenceFilterForm' => $starterReferenceFilterForm->createView(),
- 'starterApplicationFilterForm' => $starterApplicationFilterForm->createView()
- );
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement