/** * 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'); } }