Ejemplo n.º 1
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;
 }
 /**
  * Borra todas las direcciones de entrega de una zona
  * @return <type>
  */
 public function borrarZonaAction()
 {
     if ($this->values['permisos']['permisosModulo']['DE']) {
         $rutas = new RutasRepartoDetalle();
         $em = new EntityManager($rutas->getConectionName());
         if ($em->getDbLink()) {
             $query = "DELETE FROM {$rutas->getDataBaseName()}.{$rutas->getTableName()} WHERE IDRuta='{$this->request['IDRuta']}' and IDZona='{$this->request['IDZona']}' and Dia='{$this->request['dia']}'";
             $em->query($query);
             $em->desConecta();
         }
         unset($em);
         unset($rutas);
         return $this->listAction($this->request['IDRuta'], $this->request['dia']);
     } else {
         return array('template' => '_global/forbiden.html.twig');
     }
 }
 /**
  * Devuelve un array de objetos AlbaranesCab con los albaranes
  * que están en estado Confirmado (1) y/o Expedido (2) y que pertenecen al
  * almacén $idAlmacen, sucursal en curso y dia de reparto $idDia seleccionados,
  * agrupados por ruta y ordenados de forma inversa al orden de la ruta de reparto.
  *
  * @param integer $idAlmacen El id del almacen a mostrar
  * @param integer $idDia El dia a mostrar
  * @param integer $idPeriodo El periodo a mostrar
  * @param integer $idEstado El estado a mostrar
  * @return array Array de objetos AlbaranesCab
  */
 private function getAlbaranes($idAlmacen, $idDia, $idPeriodo, $idEstado)
 {
     $data = array();
     $fecha = new Fecha();
     $fechaDesde = $fecha->sumaDias(-1 * $idPeriodo);
     unset($fecha);
     $albaran = new AlbaranesCab();
     $ruta = new RutasRepartoDetalle();
     $em = new EntityManager($albaran->getConectionName());
     if ($em->getDbLink()) {
         $query = "SELECT DISTINCT a.IDAlbaran\n                            FROM \n                                {$albaran->getDataBaseName()}.{$albaran->getTableName()} as a, \n                                {$ruta->getDataBaseName()}.{$ruta->getTableName()} as r\n                            WHERE a.Fecha>'{$fechaDesde}'\n                            AND a.IDEstado='{$idEstado}'\n                            AND a.IDAlmacen='{$idAlmacen}'\n                            AND a.IDSucursal='{$_SESSION['suc']}'\n                            AND a.DiaReparto='{$idDia}'\n                            AND a.IDDirec=r.IDDirec\n                            ORDER BY r.IDRuta ASC, a.IDEstado ASC, r.OrdenDirec DESC;";
         $em->query($query);
         $rows = $em->fetchResult();
         $em->desConecta();
     }
     foreach ($rows as $row) {
         $data[] = new AlbaranesCab($row['IDAlbaran']);
     }
     return $data;
 }
 /**
  * Genera un listado en PDF con todos clientes del repartidor
  * separados por dia (el rutero)
  */
 public function listadoAction()
 {
     if ($this->values['permisos']['permisosModulo']['LI']) {
         $idRuta = $this->request['RutasReparto']['IDRuta'];
         $ruta = new RutasReparto($idRuta);
         $opciones = array('title' => 'Ruta de reparto ' . $ruta->getDescripcion());
         unset($ruta);
         //CREAR EL DOCUMENTO-------------------------------------------------------------
         $pdf = new RutasPDF('L', 'mm', 'A4', $opciones);
         //$pdf->SetTopMargin($MEDIDAS['MargenSup']);
         //$pdf->SetLeftMargin($MEDIDAS['MargenIzq']);
         $pdf->SetAuthor("Informatica ALBATRONIC, SL");
         $pdf->SetTitle('Rutas de Reparto');
         $pdf->AliasNbPages();
         $pdf->SetFillColor(210);
         $pdf->AddPage();
         $pdf->SetAutoPageBreak(1, 15);
         $lis = new RutasRepartoDetalle();
         $rows = $lis->cargaCondicion("Id", "IDRuta='{$idRuta}'", "Dia,OrdenDirec,IDZona ASC");
         unset($lis);
         //CUERPO-------------------------------------------------------------------------
         $diaAnt = '';
         $pdf->SetFont('Courier', '', 8);
         foreach ($rows as $key => $value) {
             $datos = new RutasRepartoDetalle($value['Id']);
             if ($diaAnt != $datos->getDia()->getIDTipo()) {
                 $pdf->SetFont('Courier', 'B', 10);
                 $pdf->Cell(0, 10, $datos->getDia() . ": " . $datos->getIDRepartidor()->getNombre(), 0, 0, 'L', 1);
                 $pdf->Ln();
                 $pdf->SetFont('Courier', '', 8);
             }
             $diaAnt = $datos->getDia()->getIDTipo();
             $pdf->SetFont('Courier', 'B', 8);
             $pdf->Cell(20, 4, $pdf->DecodificaTexto($datos->getIDDirec()->getIDZona()->getZona(), 11), 0, 0);
             $pdf->SetFont('Courier', '', 8);
             $pdf->Cell(115, 4, $pdf->DecodificaTexto($datos->getIDDirec()->getNombre() . " - " . $datos->getIDDirec()->getIDCliente()->getNombreComercial(), 115), 0, 0);
             $pdf->Cell(70, 4, $pdf->DecodificaTexto($datos->getIDDirec()->getDireccion(), 40), 0, 0);
             $pdf->Cell(30, 4, $pdf->DecodificaTexto($datos->getIDDirec()->getIDPoblacion(), 17), 0, 0);
             $pdf->Cell(35, 4, $pdf->DecodificaTexto($datos->getIDDirec()->getTelefono() . " " . $datos->getIDDirec()->getHorario(), 30), 0, 0);
             $pdf->Ln();
         }
         unset($datos);
         $archivo = "docs/docs" . $_SESSION['emp'] . "/pdfs/" . md5(date('d-m-Y H:i:s')) . ".pdf";
         $pdf->Output($archivo, 'F');
         unset($datos);
         unset($pdf);
         $this->values['archivo'] = $archivo;
         return array('template' => '_global/listadoPdf.html.twig', 'values' => $this->values);
     } else {
         return array('template' => '_global/forbiden.html.twig');
     }
 }