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");
Example #3
0
 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();
 }