mirror of
https://git.imnavajas.es/jjimenez/safekat.git
synced 2025-07-25 22:52:08 +00:00
65 lines
2.4 KiB
PHP
Executable File
65 lines
2.4 KiB
PHP
Executable File
<?php
|
|
|
|
namespace App\Controllers\Pdf;
|
|
|
|
use App\Controllers\BaseController;
|
|
|
|
|
|
class PrintFacturas extends BaseController
|
|
{
|
|
|
|
public function index($id_factura)
|
|
{
|
|
|
|
$facturaModel = model('App\Models\Facturas\FacturaModel');
|
|
$lineasFacturaModel = model('App\Models\Facturas\FacturaLineaModel');
|
|
$data['factura'] = $facturaModel->getResourceForPdf($id_factura)->get()->getRow();
|
|
$data['lineas_factura'] = $lineasFacturaModel->getResourceForPdf($id_factura)->get()->getResultObject();
|
|
$data['resumen_por_iva'] = $lineasFacturaModel->getResourceResumenIVAsForPdf($id_factura)->get()->getResultObject();
|
|
|
|
return view(getenv('theme.path') . 'pdfs/factura', $data);
|
|
}
|
|
|
|
public function generar($id_factura)
|
|
{
|
|
|
|
// Cargar modelos
|
|
$facturaModel = model('App\Models\Facturas\FacturaModel');
|
|
$lineasFacturaModel = model('App\Models\Facturas\FacturaLineaModel');
|
|
|
|
// Informacion del presupuesto
|
|
$data['factura'] = $facturaModel->getResourceForPdf($id_factura)->get()->getRow();
|
|
$data['lineas_factura'] = $lineasFacturaModel->getResourceForPdf($id_factura)->get()->getResultObject();
|
|
$data['resumen_por_iva'] = $lineasFacturaModel->getResourceResumenIVAsForPdf($id_factura)->get()->getResultObject();
|
|
|
|
// Crear una instancia de Dompdf
|
|
$options = new \Dompdf\Options();
|
|
$options->set('isHtml5ParserEnabled', true);
|
|
$options->set('isPhpEnabled', true);
|
|
$options->set('isRemoteEnabled', true);
|
|
$dompdf = new \Dompdf\Dompdf($options);
|
|
|
|
// Contenido HTML del documento
|
|
$dompdf->loadHtml(view(getenv('theme.path').'pdfs/factura', $data));
|
|
|
|
// Establecer el tamaño del papel
|
|
$dompdf->setPaper('A4', 'portrait');
|
|
|
|
// Renderizar el PDF
|
|
$dompdf->render();
|
|
|
|
// Obtener el contenido generado
|
|
$output = $dompdf->output();
|
|
|
|
// Establecer las cabeceras para visualizar en lugar de descargar
|
|
$file_name = $data['factura']->numero . ".pdf";
|
|
return $this->response
|
|
->setStatusCode(200)
|
|
->setHeader('Content-Type', 'application/pdf')
|
|
->setHeader('Content-Disposition', 'inline; filename="' . $file_name . '"')
|
|
->setHeader('Cache-Control', 'private, max-age=0, must-revalidate')
|
|
->setHeader('Pragma', 'public')
|
|
->setHeader('Content-Length', strlen($output))
|
|
->setBody($output);
|
|
}
|
|
} |