/**
  * Devuelve todas las direcciones de entrega del cliente
  * indicado en el parámetro $idCliente o en su defecto
  * en la posicion 2 del request.
  *
  * @param string Codigo de cliente
  * @return array
  */
 public function listAction($idCliente = '')
 {
     if ($idCliente == '') {
         $idCliente = $this->request[2];
     }
     $direc = new ClientesDentrega();
     $tabla = $direc->getDataBaseName() . "." . $direc->getTableName();
     unset($direc);
     $filtro = $tabla . ".IDCliente='" . $idCliente . "'";
     $this->values['linkBy']['value'] = $idCliente;
     return parent::listAction($filtro);
 }
Esempio n. 2
0
 /**
  * Devuelve un array de objeto RutasRepartoDetalle
  * 
  * Si se indica $idDirec el array tendrá las rutas de reparto de la dirección de entrega
  * 
  * Si no se indica $idDirec el array tendrá las rutas de reparto de todas las 
  * direcciones de entrega del cliente
  * 
  * @param integer $idDirec El id de la direccion de entregra, opcional
  * @return array Array con objetos RutasRepartoDetalle
  */
 public function getRutasReparto($idDirec = '')
 {
     $rutasReparto = array();
     $rutaReparto = new RutasRepartoDetalle();
     $direc = new ClientesDentrega();
     $filtro = $idDirec == '' ? "IDDirec IN (SELECT IDDirec from {$direc->getDataBaseName()}.{$direc->getTableName()} where IDCliente='{$this->IDCliente}')" : "IDDirec='{$idDirec}'";
     $rows = $rutaReparto->cargaCondicion("Id", $filtro, "Dia ASC, OrdenDirec ASC");
     foreach ($rows as $row) {
         $rutasReparto[] = new RutasRepartoDetalle($row['Id']);
     }
     unset($rutaReparto);
     unset($direc);
     return $rutasReparto;
 }
 /**
  * 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);
 }