public function generar_pdf($archivo = FALSE) { ///// INICIO - Factura Detallada /// Creamos el PDF y escribimos sus metadatos ob_end_clean(); $pdf_doc = new PDF_MC_Table('P', 'mm', 'A4'); define('EEURO', chr(128)); $lineas = $this->factura->get_lineas(); if ($this->impresion['print_dto']) { $this->impresion['print_dto'] = FALSE; /// leemos las líneas para ver si de verdad mostramos los descuentos foreach ($lineas as $lin) { if ($lin->dtopor != 0) { $this->impresion['print_dto'] = TRUE; break; } } } $pdf_doc->SetTitle('Factura: ' . $this->factura->codigo . " " . $this->factura->numero2); $pdf_doc->SetSubject('Factura del cliente: ' . $this->factura->nombrecliente); $pdf_doc->SetAuthor($this->empresa->nombre); $pdf_doc->SetCreator('FacturaSctipts V_' . $this->version()); $pdf_doc->Open(); $pdf_doc->AliasNbPages(); $pdf_doc->SetAutoPageBreak(true, 40); // Definimos el color de relleno (gris, rojo, verde, azul) $pdf_doc->SetColorRelleno('azul'); /// Definimos todos los datos de la cabecera de la factura /// Datos de la empresa $pdf_doc->fde_nombre = $this->empresa->nombre; $pdf_doc->fde_FS_CIFNIF = FS_CIFNIF; $pdf_doc->fde_cifnif = $this->empresa->cifnif; $pdf_doc->fde_direccion = $this->empresa->direccion; $pdf_doc->fde_codpostal = $this->empresa->codpostal; $pdf_doc->fde_ciudad = $this->empresa->ciudad; $pdf_doc->fde_provincia = $this->empresa->provincia; $pdf_doc->fde_telefono = 'Teléfono: ' . $this->empresa->telefono; $pdf_doc->fde_fax = 'Fax: ' . $this->empresa->fax; $pdf_doc->fde_email = $this->empresa->email; $pdf_doc->fde_web = $this->empresa->web; $pdf_doc->fde_piefactura = $this->empresa->pie_factura; /// Insertamos el Logo y Marca de Agua if (file_exists('tmp/' . FS_TMP_NAME . 'logo.png') or file_exists('tmp/' . FS_TMP_NAME . 'logo.jpg')) { $pdf_doc->fdf_verlogotipo = '1'; // 1/0 --> Mostrar Logotipo $pdf_doc->fdf_Xlogotipo = '15'; // Valor X para Logotipo $pdf_doc->fdf_Ylogotipo = '35'; // Valor Y para Logotipo $pdf_doc->fdf_vermarcaagua = '1'; // 1/0 --> Mostrar Marca de Agua $pdf_doc->fdf_Xmarcaagua = '25'; // Valor X para Marca de Agua $pdf_doc->fdf_Ymarcaagua = '110'; // Valor Y para Marca de Agua } else { $pdf_doc->fdf_verlogotipo = '0'; $pdf_doc->fdf_Xlogotipo = '0'; $pdf_doc->fdf_Ylogotipo = '0'; $pdf_doc->fdf_vermarcaagua = '0'; $pdf_doc->fdf_Xmarcaagua = '0'; $pdf_doc->fdf_Ymarcaagua = '0'; } // Tipo de Documento $pdf_doc->fdf_tipodocumento = 'FACTURA'; // (FACTURA, FACTURA PROFORMA, ¿ALBARAN, PRESUPUESTO?...) $pdf_doc->fdf_codigo = $this->factura->codigo . " " . $this->factura->numero2; // Fecha, Codigo Cliente y observaciones de la factura $pdf_doc->fdf_fecha = $this->factura->fecha; $pdf_doc->fdf_codcliente = $this->factura->codcliente; $pdf_doc->fdf_observaciones = iconv("UTF-8", "CP1252", $this->fix_html($this->factura->observaciones)); // Datos del Cliente $pdf_doc->fdf_nombrecliente = $this->fix_html($this->factura->nombrecliente); $pdf_doc->fdf_FS_CIFNIF = FS_CIFNIF; $pdf_doc->fdf_cifnif = $this->factura->cifnif; $pdf_doc->fdf_direccion = $this->fix_html($this->factura->direccion); $pdf_doc->fdf_codpostal = $this->factura->codpostal; $pdf_doc->fdf_ciudad = $this->factura->ciudad; $pdf_doc->fdf_provincia = $this->factura->provincia; $pdf_doc->fdc_telefono1 = $this->cliente->telefono1; $pdf_doc->fdc_telefono2 = $this->cliente->telefono2; $pdf_doc->fdc_fax = $this->cliente->fax; $pdf_doc->fdc_email = $this->cliente->email; $pdf_doc->fdf_epago = $pdf_doc->fdf_divisa = $pdf_doc->fdf_pais = ''; // Forma de Pago de la Factura $pago = new forma_pago(); $epago = $pago->get($this->factura->codpago); if ($epago) { $pdf_doc->fdf_epago = $epago->descripcion; } // Divisa de la Factura $divisa = new divisa(); $edivisa = $divisa->get($this->factura->coddivisa); if ($edivisa) { $pdf_doc->fdf_divisa = $edivisa->descripcion; } // Pais de la Factura $pais = new pais(); $epais = $pais->get($this->factura->codpais); if ($epais) { $pdf_doc->fdf_pais = $epais->nombre; } // Cabecera Titulos Columnas if ($this->impresion['print_dto']) { $pdf_doc->Setdatoscab(array('ALB', 'DESCRIPCION', 'CANT', 'PRECIO', 'DTO', FS_IVA, 'IMPORTE')); $pdf_doc->SetWidths(array(16, 102, 10, 20, 10, 10, 22)); $pdf_doc->SetAligns(array('C', 'L', 'R', 'R', 'R', 'R', 'R')); $pdf_doc->SetColors(array('6|47|109', '6|47|109', '6|47|109', '6|47|109', '6|47|109', '6|47|109', '6|47|109')); } else { $pdf_doc->Setdatoscab(array('ALB', 'DESCRIPCION', 'CANT', 'PRECIO', FS_IVA, 'IMPORTE')); $pdf_doc->SetWidths(array(16, 107, 10, 20, 15, 22)); $pdf_doc->SetAligns(array('C', 'L', 'R', 'R', 'R', 'R')); $pdf_doc->SetColors(array('6|47|109', '6|47|109', '6|47|109', '6|47|109', '6|47|109', '6|47|109')); } /// Definimos todos los datos del PIE de la factura /// Lineas de IVA $lineas_iva = $this->factura->get_lineas_iva(); if (count($lineas_iva) > 3) { $pdf_doc->fdf_lineasiva = $lineas_iva; } else { $filaiva = array(); $i = 0; foreach ($lineas_iva as $li) { $i++; $filaiva[$i][0] = $li->iva ? FS_IVA . $li->iva : ''; $filaiva[$i][1] = $li->neto ? $this->ckeckEuro($li->neto) : ''; $filaiva[$i][2] = $li->iva ? $li->iva . "%" : ''; $filaiva[$i][3] = $li->totaliva ? $this->ckeckEuro($li->totaliva) : ''; $filaiva[$i][4] = $li->recargo ? $li->recargo . "%" : ''; $filaiva[$i][5] = $li->totalrecargo ? $this->ckeckEuro($li->totalrecargo) : ''; $filaiva[$i][6] = ''; //// POR CREARRRRRR $filaiva[$i][7] = ''; //// POR CREARRRRRR $filaiva[$i][8] = $li->totallinea ? $this->ckeckEuro($li->totallinea) : ''; } if ($filaiva) { $filaiva[1][6] = $this->factura->irpf . ' %'; $filaiva[1][7] = $this->ckeckEuro(0 - $this->factura->totalirpf); } $pdf_doc->fdf_lineasiva = $filaiva; } // Total factura numerico $pdf_doc->fdf_numtotal = $this->ckeckEuro($this->factura->total); // Total factura numeros a texto $pdf_doc->fdf_textotal = $this->factura->total; /// Agregamos la pagina inicial de la factura $pdf_doc->AddPage(); // Lineas de la Factura //$lineas = $this->factura->get_lineas(); if ($lineas) { $neto = 0; for ($i = 0; $i < count($lineas); $i++) { $neto += $lineas[$i]->pvptotal; $pdf_doc->neto = $this->ckeckEuro($neto); $articulo = new articulo(); $art = $articulo->get($lineas[$i]->referencia); if ($art) { $observa = "\n" . utf8_decode($this->fix_html($art->observaciones)); } else { // $observa = null; // No mostrar mensaje de error $observa = "\n"; } if ($this->impresion['print_dto']) { $lafila = array('0' => utf8_decode($lineas[$i]->albaran_numero()), '1' => utf8_decode(strtoupper($lineas[$i]->descripcion)) . $observa, '2' => utf8_decode($lineas[$i]->cantidad), '3' => $this->ckeckEuro($lineas[$i]->pvpunitario), '4' => utf8_decode($this->show_numero($lineas[$i]->dtopor, 0) . " %"), '5' => utf8_decode($this->show_numero($lineas[$i]->iva, 0) . " %"), '6' => $this->ckeckEuro($lineas[$i]->total_iva())); } else { $lafila = array('0' => utf8_decode($lineas[$i]->albaran_numero()), '1' => utf8_decode(strtoupper($lineas[$i]->descripcion)) . $observa, '2' => utf8_decode($lineas[$i]->cantidad), '3' => $this->ckeckEuro($lineas[$i]->pvpunitario), '4' => utf8_decode($this->show_numero($lineas[$i]->iva, 0) . " %"), '5' => $this->ckeckEuro($lineas[$i]->total_iva())); } $pdf_doc->Row($lafila, '1'); // Row(array, Descripcion del Articulo -- ultimo valor a imprimir) } $pdf_doc->piepagina = true; } // Damos salida al archivo PDF if ($archivo) { if (!file_exists('tmp/' . FS_TMP_NAME . 'enviar')) { mkdir('tmp/' . FS_TMP_NAME . 'enviar'); } $pdf_doc->Output('tmp/' . FS_TMP_NAME . 'enviar/' . $archivo, 'F'); } else { $pdf_doc->Output(); } }
$this->Row(array(utf8_decode("\nFecha de inicio: {$rowPas['fecha_inicio']}"), utf8_decode("\nFecha de finalización: {$rowPas['fecha_fin']}"))); if ($rowPas['tiempo_completo'] == TRUE) { $this->SetWidths(array(45, 45, 17.5, 45, 17.5)); $this->SetAligns(array('L')); $this->Row(array(utf8_decode("\nTiempo de pasantía: "), utf8_decode("\nTiempo completo: "), utf8_decode(" \n X "), utf8_decode("\nMedio tiempo: "), utf8_decode("\n"))); } else { $this->SetWidths(array(45, 45, 17.5, 45, 17.5)); $this->SetAligns(array('L')); $this->Row(array(utf8_decode("\nTiempo de pasantía: "), utf8_decode("\nTiempo completo: "), utf8_decode("\n"), utf8_decode("\nMedio tiempo: "), utf8_decode(" \n X "))); } $this->SetX(20); $this->SetWidths(array(170)); $this->SetAligns(array('L')); $this->Row(array(utf8_decode("\nHorario de trabajo del Pasante: {$rowPas['horario']}"))); $this->SetX(20); $this->SetWidths(array(170)); $this->SetAligns(array('L')); $this->Row(array(utf8_decode("\nActividades a realizar por el pasante: \n\n{$rowPas['actividades']}"))); $this->SetX(20); $this->SetWidths(array(56, 57, 57)); $this->SetAligns(array('L')); $this->Row(array(utf8_decode("\nFirma del Pasante: "), utf8_decode("\nFirma del Supervisor Inmediato: \n\n\n\n\n "), utf8_decode("\nFirma del Coordinador de Pasantías: "))); } } //Main $pdf = new PDF_MC_Table('P', 'mm', 'Letter'); $pdf->AliasNbPages(); $pdf->AddPage(); $pdf->Membrete(); $pdf->formatoTabla(); $pdf->Output("formato_dpe_pas_002.pdf", "D");
function reporteKardexProduccion() { $txtFechaInicio = $_REQUEST['txtFechaInicio']; $txtFechaFinal = $_REQUEST['txtFechaFinal']; $idProducto = $_REQUEST['idProducto']; $idTipoMovimiento = $_REQUEST['idTipoMovimiento']; $idTipoOperacion = $_REQUEST['idTipoOperacion']; $txtDescripcion = $_REQUEST['txtDescripcion']; $reporte = $this->AutoLoadModel('reporte'); $datos = $reporte->reporteKardexProduccion($txtFechaInicio, $txtFechaFinal, $idProducto, $idTipoMovimiento, $idTipoOperacion); $cantidadData = count($datos); $pdf = new PDF_MC_Table("L", "mm", "A4"); $titulos = array('#', 'FECHA', 'T. MOV.', 'CONCEPTO', 'ORDEN', 'RAZON SOCIAL', 'DEVOLUCION', 'PRECIO', 'CANT. ', 'SALDO', 'IMPORTE S/.'); $pdf->SetFont('Helvetica', 'B', 7.5); $ancho = array(8, 18, 20, 30, 18, 70, 20, 20, 15, 15, 20); $orientacion = array('', 'C', 'C', '', 'C', '', 'C', 'R', 'C', 'C', 'R'); $tipoCambioVentas = $this->configIni($this->configIni('Globals', 'Modo'), 'TipoCambio'); $pdf->SetWidths($ancho); if (!empty($txtFechaFinal) || !empty($txtFechaInicio)) { $fecha1 = !empty($txtFechaInicio) ? $txtFechaInicio : utf8_decode('?'); $fecha2 = !empty($txtFechaFinal) ? $txtFechaFinal : utf8_decode('?'); $pdf->_fecha = 'Rango Fecha: ' . $fecha1 . ' - ' . $fecha2; } $pdf->_titulo = "REPORTE::KARDEX DE PRODUCCION"; $pdf->_datoPie = $txtDescripcion . ' ' . 'Impreso el :' . date('Y-m-d H:m:s'); $pdf->AddPage(); $pdf->_titulos = $titulos; $relleno = true; $pdf->fill($relleno); $pdf->SetFillColor(0224, 235, 255); $pdf->SetTextColor(0); $pdf->SetDrawColor(12, 78, 139); $pdf->SetLineWidth(0.3); $pdf->_orientacion = $orientacion; $pdf->SetAligns($orientacion); $pdf->SetTitulos($titulos); $pdf->SetFillColor(0224, 235, 255); $pdf->SetTextColor(0); $pdf->SetDrawColor(12, 78, 139); $importeFactura = 0; $importeBoleta = 0; for ($i = 0; $i < $cantidadData; $i++) { $modoFactura = ""; $fila = array($i + 1, $datos[$i]['fecha'], $datos[$i]['tipo movimiento'], $datos[$i]['concepto movimiento'], $datos[$i]['codigov'], html_entity_decode($datos[$i]['razon social'], ENT_QUOTES, 'UTF-8'), $datos[$i]['devolucion'], number_format($datos[$i]['precio'], 2), $datos[$i]['cantidad'], $datos[$i]['saldo'], number_format(round($datos[$i]['precio'], 2) * $datos[$i]['cantidad'], 2)); $pdf->Row($fila); $relleno = !$relleno; $pdf->fill($relleno); } $pdf->AliasNbPages(); $pdf->Output(); }