public function listadoAction()
 {
     $zonas = new Zonas();
     $tabla = $zonas->getDataBaseName() . "." . $zonas->getTableName();
     unset($zonas);
     $filtro = $tabla . ".IDSucursal='" . $_SESSION['suc'] . "'";
     return parent::listadoAction($filtro);
 }
 /**
  * Genera array con los clientes del la ruta para el
  * comercial y dia indicado
  *
  * @param integer $idComercial
  * @param integer $dia
  * @return <type>
  */
 public function listAction($idComercial = '', $dia = '')
 {
     if ($idComercial == '') {
         $idComercial = $this->request[2];
     }
     if ($dia == '') {
         $dia = $this->request[3];
     }
     $this->values['listado']['dia'] = $dia;
     // Busco los clientes del comercial indicado y sucursal actual
     // que aun no estén asignados al día solicitado
     $cliente = new Clientes();
     $rutasVentas = new RutasVentas();
     $filtro = "IDComercial='{$idComercial}'\n                        AND IDSucursal='{$_SESSION['suc']}'\n                        AND IDCliente NOT IN\n                            (SELECT IDCliente FROM {$rutasVentas->getDataBaseName()}.{$rutasVentas->getTableName()}\n                            WHERE IDComercial='{$idComercial}' AND Dia='{$dia}')";
     $clientes = $cliente->cargaCondicion("IDCliente as Id, RazonSocial as Value", $filtro, "RazonSocial ASC");
     $this->values['listado']['clientes'] = $clientes;
     array_unshift($this->values['listado']['clientes'], array('Id' => '', 'Value' => ':: Indique un cliente'));
     // Busco las zonas de los clientes del comercial indicado y sucursal actual
     // que aun no estén asignados al día solicitado
     $zona = new Zonas();
     $em = new EntityManager($cliente->getConectionName());
     if ($em->getDbLink()) {
         $query = "SELECT DISTINCT t1.IDZona as Id, t2.Zona as Value \n                        FROM \n                            {$cliente->getDataBaseName()}.{$cliente->getTableName()} as t1, \n                            {$zona->getDataBaseName()}.{$zona->getTableName()} as t2\n                        WHERE t1.IDZona=t2.IDZona\n                        AND t1.IDComercial='{$idComercial}'\n                        AND t1.IDSucursal='{$_SESSION['suc']}'\n                        AND t1.IDCliente NOT IN\n                            (SELECT IDCliente FROM {$rutasVentas->getDataBaseName()}.{$rutasVentas->getTableName()}\n                            WHERE IDComercial='{$idComercial}' AND Dia='{$dia}')\n                        ORDER BY t2.Zona ASC";
         $em->query($query);
         $rows = $em->fetchResult();
         $em->desConecta();
     }
     $this->values['listado']['zonas'] = $rows;
     array_unshift($this->values['listado']['zonas'], array('Id' => '', 'Value' => ':: Indique una Zona'));
     //-----------------------------------------------
     // Lleno los clientes asignados al comercial y día
     // ordenados por Zona
     // -----------------------------------------------
     $em = new EntityManager($cliente->getConectionName());
     if ($em->getDbLink()) {
         $query = "SELECT t1.Id \n                        FROM \n                            {$rutasVentas->getDataBaseName()}.{$rutasVentas->getTableName()} as t1,\n                            {$cliente->getDataBaseName()}.{$cliente->getTableName()} as t2\n                        WHERE t1.IDCliente=t2.IDCliente\n                        AND t2.IDSucursal='{$_SESSION['suc']}'\n                        AND t1.IDComercial='{$idComercial}'\n                        AND t1.Dia='{$dia}'\n                        ORDER BY t1.OrdenCliente,t1.IDZona";
         $em->query($query);
         $rows = $em->fetchResult();
         $em->desConecta();
     }
     unset($em);
     unset($em);
     unset($cliente);
     unset($zona);
     unset($rutasVentas);
     foreach ($rows as $row) {
         $lineas[] = new $this->parentEntity($row['Id']);
     }
     //-----------------------------------------------
     $template = $this->entity . '/list.html.twig';
     $this->values['linkBy']['value'] = $idComercial;
     $this->values['listado']['data'] = $lineas;
     $this->values['listado']['nClientes'] = count($lineas);
     unset($lis);
     unset($lineas);
     return array('template' => $template, 'values' => $this->values);
 }
 /**
  * Genera array con las direcciones de entrega de la ruta para el
  * repartidor y dia indicado
  *
  * @param integer $idRepartidor
  * @param integer $dia
  * @return <type>
  */
 public function listAction($idRuta = '', $dia = '')
 {
     if ($idRuta == '') {
         $idRuta = $this->request[2];
     }
     if ($dia == '') {
         $dia = $this->request[3];
     }
     $this->values['listado']['dia'] = $dia;
     $cliente = new Clientes();
     $zona = new Zonas();
     $dentrega = new ClientesDentrega();
     $ruta = new RutasRepartoDetalle();
     // Busco las direcciones de entrega de la ruta indicada y sucursal actual
     // que aun no estén asignadas al día solicitado
     $em = new EntityManager($cliente->getConectionName());
     if ($em->getDbLink()) {
         $query = "SELECT t1.IDDirec as Id, t1.Nombre as Value\n                        FROM \n                            {$dentrega->getDataBaseName()}.{$dentrega->getTableName()} as t1, \n                            {$cliente->getDataBaseName()}.{$cliente->getTableName()} as t2, \n                            {$zona->getDataBaseName()}.{$zona->getTableName()} as t3\n                        WHERE t1.IDCliente=t2.IDCliente\n                        AND t2.IDSucursal='{$_SESSION['suc']}'\n                        AND t3.IDSucursal='{$_SESSION['suc']}'\n                        AND t1.IDZona=t3.IDZona\n                        AND t1.IDDirec NOT IN\n                            (SELECT IDDirec FROM {$ruta->getDataBaseName()}.{$ruta->getTableName()}\n                            WHERE IDRuta='{$idRuta}' AND Dia='{$dia}')\n                        ORDER BY t1.Nombre ASC";
         $em->query($query);
         $rows = $em->fetchResult();
         $em->desConecta();
     }
     unset($em);
     $this->values['listado']['direcciones'] = $rows;
     array_unshift($this->values['listado']['direcciones'], array('Id' => '', 'Value' => ':: Indique una dirección'));
     // Busco las zonas de las direcciones de entrega de la sucursal actual
     // que aun no estén asignadas al día solicitado
     $em = new EntityManager($cliente->getConectionName());
     if ($em->getDbLink()) {
         $query = "SELECT DISTINCT t1.IDZona as Id, t2.Zona as Value \n                        FROM \n                            {$dentrega->getDataBaseName()}.{$dentrega->getTableName()} as t1, \n                            {$zona->getDataBaseName()}.{$zona->getTableName()} as t2, \n                            {$cliente->getDataBaseName()}.{$cliente->getTableName()} as t3\n                        WHERE t1.IDZona=t2.IDZona\n                        AND t1.IDCliente=t3.IDCliente\n                        AND t3.IDSucursal='{$_SESSION['suc']}'\n                        AND t2.IDSucursal='{$_SESSION['suc']}'\n                        AND t1.IDDirec NOT IN\n                            (SELECT IDDirec FROM {$ruta->getDataBaseName()}.{$ruta->getTableName()}\n                            WHERE IDRuta='{$idRuta}' AND Dia='{$dia}')\n                        ORDER BY t2.Zona ASC";
         $em->query($query);
         $rows = $em->fetchResult();
         $em->desConecta();
     }
     unset($em);
     $this->values['listado']['zonas'] = $rows;
     array_unshift($this->values['listado']['zonas'], array('Id' => '', 'Value' => ':: Indique una Zona'));
     //-----------------------------------------------
     // Lleno las direcciones asignadas al repartidor y día
     // ordenados por Orden de direccion de entrega y IDZona
     // -----------------------------------------------
     $em = new EntityManager($cliente->getConectionName());
     if ($em->getDbLink()) {
         $query = "SELECT t1.Id,t1.IDRepartidor \n                        FROM \n                            {$ruta->getDataBaseName()}.{$ruta->getTableName()}  as t1, \n                            {$dentrega->getDataBaseName()}.{$dentrega->getTableName()}  as t2, \n                            {$zona->getDataBaseName()}.{$zona->getTableName()} as t3\n                        WHERE t1.IDDirec=t2.IDDirec\n                        AND t2.IDZona=t3.IDZona\n                        AND t1.IDRuta='{$idRuta}'\n                        AND t1.Dia='{$dia}'\n                        ORDER BY t1.OrdenDirec,t1.IDZona";
         $em->query($query);
         $rows = $em->fetchResult();
         $em->desConecta();
     }
     unset($em);
     unset($cliente);
     unset($dentrega);
     unset($zona);
     foreach ($rows as $row) {
         $lineas[] = new $this->entity($row['Id']);
     }
     //-----------------------------------------------
     $this->values['listado']['IDRepartidor'] = $rows[0]['IDRepartidor'];
     $template = $this->entity . '/list.html.twig';
     $this->values['linkBy']['value'] = $idRuta;
     $this->values['listado']['data'] = $lineas;
     $this->values['listado']['nDirecciones'] = count($lineas);
     unset($lis);
     unset($lineas);
     return array('template' => $template, 'values' => $this->values);
 }