/** * Genera un listado en formato PDF en base a los parametros obtenidos * del fichero listados.yml de cada controlador y los datos filtrados * segun el request * @return array Template y valores */ public function listadoAction($idAlmacen = '', $idDia = '', $idPeriodo = '', $idEstado = '', $idRuta = '') { if ($idAlmacen == '') { $idAlmacen = $this->request[2]; } if ($idDia == '') { $idDia = $this->request[3]; } if ($idPeriodo == '') { $idPeriodo = $this->request[4]; } if ($idEstado == '') { $idEstado = $this->request[5]; } if ($idRuta == '') { $idRuta = $this->request[6]; } $fecha = new Fecha(); $fechaDesde = $fecha->sumaDias(-1 * $idPeriodo); unset($fecha); $almacen = new Almacenes($idAlmacen); $dia = new DiasSemana($idDia); $ruta = new RutasReparto($idRuta); $opciones = array('almacen' => $almacen->getNombre(), 'dia' => $dia->getDescripcion(), 'ruta' => $ruta->getDescripcion()); unset($almacen); unset($dia); unset($ruta); $albaran = new AlbaranesCab(); $ruta = new RutasRepartoDetalle(); $em = new EntityManager($albaran->getConectionName()); if ($em->getDbLink()) { $query = "SELECT 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 AND r.IDRuta = '{$idRuta}'\n ORDER BY r.OrdenDirec DESC;"; $em->query($query); $rows = $em->fetchResult(); $em->desConecta(); } unset($albaran); unset($ruta); $pdf = new listadoOrdenRepartoPDF("L", 'mm', "A4", $opciones); $pdf->SetTopMargin(15); $pdf->SetLeftMargin(10); $pdf->AliasNbPages(); $pdf->AddPage(); $repartidor = ""; foreach ($rows as $orden => $row) { $albaran = new AlbaranesCab($row['IDAlbaran']); $cliente = $albaran->getIDCliente(); if ($repartidor != $albaran->getIDRepartidor()) { $repartidor = $albaran->getIDRepartidor(); $pdf->SetFont('Arial', 'B', 10); $pdf->Cell(0, 4, $repartidor, 0, 1); $pdf->SetFont('Arial', '', 9); } $pdf->Cell(15, 4, "", 0, 0, "R"); $pdf->Cell(15, 4, "", 0, 0, "C"); $pdf->Cell(150, 4, $cliente->getNombreComercial() . " " . $cliente->getRazonSocial(), 0, 0, "L"); $pdf->Cell(50, 4, $albaran->getIDComercial()->getNombre(), 0, 0, "L"); $pdf->Ln(); $pdf->Cell(30, 4, "", 0, 0, "C"); $pdf->Cell(150, 4, $albaran->getIDDirec()->getDireccion() . " - " . $albaran->getIDDirec()->getIDPoblacion, 0, 0, "L"); $pdf->Ln(); $pdf->Ln(); $pdf->Line($pdf->GetX(), $pdf->GetY(), 290, $pdf->GetY()); } unset($cliente); unset($albaran); $archivo = Archivo::getTemporalFileName(); $pdf->Output($archivo, 'F'); unset($pdf); $this->values['archivo'] = $archivo; $template = '_global/listadoPdf.html.twig'; return array('template' => $template, 'values' => $this->values); }
/** * Genera un listado en PDF con todos clientes del comercial * separados por dia (el rutero) */ public function HojaLlamadasAction() { if ($this->values['permisos']['permisosModulo']['LI']) { $idComercial = $this->request[2]; $comercial = new Agentes($idComercial); $dia = $this->request[3]; $dias = new DiasSemana($dia); $opciones = array('title' => 'Hoja de llamadas para el ' . strtoupper($dias->getDescripcion()) . ' del comercial ' . strtoupper($comercial->getNombre())); unset($comercial); unset($dias); //CREAR EL DOCUMENTO------------------------------------------------------------- $pdf = new HojaLlamadasPDF('L', 'mm', 'A4', $opciones); //$pdf->SetTopMargin($MEDIDAS['MargenSup']); //$pdf->SetLeftMargin($MEDIDAS['MargenIzq']); $pdf->SetAuthor("Informatica ALBATRONIC, SL"); $pdf->SetTitle('Hoja de llamadas Ventas'); $pdf->AliasNbPages(); $pdf->SetFillColor(210); $pdf->AddPage(); $pdf->SetAutoPageBreak(1, 15); $lis = new $this->entity(); $rows = $lis->cargaCondicion("Id", "IDComercial='{$idComercial}' and Dia='{$dia}'", "OrdenCliente,IDZona ASC"); unset($lis); //CUERPO------------------------------------------------------------------------- $pdf->SetFont('Courier', '', 8); foreach ($rows as $value) { $datos = new $this->entity($value['Id']); $pdf->Cell(10, 6, "", 0, 0); $pdf->Cell(100, 6, $pdf->DecodificaTexto($datos->getIDCliente()->getRazonSocial() . " - " . $datos->getIDCliente()->getNombreComercial(), 59), 0, 0); $pdf->Cell(20, 6, $pdf->DecodificaTexto($datos->getIDCliente()->getIDPoblacion()->getMunicipio(), 11), 0, 0); $pdf->Cell(45, 6, trim($datos->getIDCliente()->getTelefono() . " " . $datos->getIDCliente()->getMovil()), 0, 0); $pdf->Cell(10, 6, $datos->getIDCliente()->getLimiteRiesgo(), 0, 0, "R"); $pdf->Ln(); $dEntrega = new ClientesDentrega(); $direcciones = $dEntrega->cargaCondicion("IDDirec", "IDCliente='{$datos->getIDCliente()->getIDCliente()}' and IDZona='{$datos->getIDZona()->getIDZona()}'"); foreach ($direcciones as $direccion) { $dEntrega = new ClientesDentrega($direccion['IDDirec']); $pdf->Cell(15, 4, $dEntrega->getHorarioLlamadas(), 0, 0); $pdf->Cell(0, 4, $dEntrega->getDireccion(), 0, 1); } unset($dEntrega); $pdf->Cell(0, 3, str_repeat("-", 159), 0, 1); } unset($datos); $archivo = "docs/docs" . $_SESSION['emp'] . "/pdfs/" . md5(date('d-m-Y H:i:s')) . ".pdf"; $pdf->Output($archivo, 'F'); unset($pdf); $this->values['archivo'] = $archivo; return array('template' => '_global/listadoPdf.html.twig', 'values' => $this->values); } else { return array('template' => '_global/forbiden.html.twig'); } }
public function __construct($request) { $dias = new DiasSemana(); $this->values['dias'] = $dias->fetchAll(); parent::__construct($request); }