diff --git a/ci4/app/Config/Routes.php b/ci4/app/Config/Routes.php index 6668f74a..a6f21f81 100755 --- a/ci4/app/Config/Routes.php +++ b/ci4/app/Config/Routes.php @@ -557,7 +557,7 @@ $routes->group('presupuestodirecciones', ['namespace' => 'App\Controllers\Presup $routes->group('printpresupuestos', ['namespace' => 'App\Controllers\Pdf'], function ($routes) { $routes->get('', 'PrintPresupuestos::index', ['as' => 'viewPresupuesto']); - $routes->get('generar', 'PrintPresupuestos::generar', ['as' => 'presupuestoToPdf']); + $routes->get('generar/(:num)', 'PrintPresupuestos::generar/$1', ['as' => 'presupuestoToPdf']); }); diff --git a/ci4/app/Controllers/Pdf/PrintPresupuestos.php b/ci4/app/Controllers/Pdf/PrintPresupuestos.php index 46e48b08..c3e76ea3 100755 --- a/ci4/app/Controllers/Pdf/PrintPresupuestos.php +++ b/ci4/app/Controllers/Pdf/PrintPresupuestos.php @@ -1,4 +1,5 @@ getResourceForPdf(8)->get()->getRow(); - return view(getenv('theme.path').'pdfs/presupuesto', $data); + return view(getenv('theme.path') . 'pdfs/presupuesto', $data); } - public function generar(){ - $dompdf = new \Dompdf\Dompdf(['isRemoteEnabled' => true]); - //$dompdf->loadHtml(view('pdf_view')); - //$dompdf->loadHtml(view(getenv('theme.path').'pdfs/presupuesto')); - $dompdf->loadHtml($this->index()); + + public function generar($presupuesto_id) + { + + // Cargar modelos + $presupuestoModel = model('App\Models\Presupuestos\PresupuestoModel'); + + // Get budget information + $data['presupuesto'] = $presupuestoModel->getResourceForPdf($presupuesto_id)->get()->getRow(); + + // 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/presupuesto', $data)); + + // Establecer el tamaño del papel $dompdf->setPaper('A4', 'portrait'); + + // Renderizar el PDF $dompdf->render(); - $dompdf->stream('presupuesto-demo.pdf'); + + // Obtener el contenido generado + $output = $dompdf->output(); + + // Establecer las cabeceras para visualizar en lugar de descargar + $file_name = "presupuesto-$presupuesto_id.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); } } \ No newline at end of file diff --git a/ci4/app/Controllers/Presupuestos/Cosidotapablanda.php b/ci4/app/Controllers/Presupuestos/Cosidotapablanda.php index 31f68100..7cd8ee21 100755 --- a/ci4/app/Controllers/Presupuestos/Cosidotapablanda.php +++ b/ci4/app/Controllers/Presupuestos/Cosidotapablanda.php @@ -279,6 +279,7 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController endif; // ($requestMethod === 'post') + $this->viewData['presupuestoId'] = $id; $this->viewData['presupuestoEntity'] = $presupuestoEntity; $this->viewData['isCosido'] = (new TipoPresupuestoModel())->get_isCosido($presupuestoEntity->tipo_impresion_id); diff --git a/ci4/app/Models/Presupuestos/PresupuestoModel.php b/ci4/app/Models/Presupuestos/PresupuestoModel.php index 9c3ae2b4..3ca59c7d 100755 --- a/ci4/app/Models/Presupuestos/PresupuestoModel.php +++ b/ci4/app/Models/Presupuestos/PresupuestoModel.php @@ -361,10 +361,11 @@ class PresupuestoModel extends \App\Models\GoBaseModel "t1.id AS id, t1.created_at AS fecha, t1.titulo AS titulo, t1.autor AS autor, t1.ferro AS ferro, t1.ferro_digital AS ferro_digital, t1.prototipo AS prototipo, t1.solapas AS solapas, t1.solapas_ancho AS solapas_ancho, t1.paginas AS paginas, t1.tirada AS tirada, t1.coleccion AS coleccion, + t1.retractilado AS retractilado, t1.guardas AS guardas, t1.marcapaginas AS marcapaginas, + t1.comentarios_pdf AS comentarios_pdf, t1.total_presupuesto AS total_presupuesto, t1.total_precio_unidad AS total_precio_unidad, t2.nombre AS cliente, CONCAT(t3.first_name, ' ', t3.last_name) AS comercial, t3.email AS email_comercial, - t1.inc_rei AS inc_rei, t6.estado AS estado" ); $builder->join("clientes t2", "t1.cliente_id = t2.id", "left"); diff --git a/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/viewCosidotapablandaForm.php b/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/viewCosidotapablandaForm.php index 6ffc3931..bc9a8b71 100755 --- a/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/viewCosidotapablandaForm.php +++ b/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/viewCosidotapablandaForm.php @@ -37,7 +37,7 @@ value="" /> - "btn btn-dark float-start me-sm-3 me-1",]) ?> + "btn btn-dark float-start me-sm-3 me-1",'target' => '_blank']) ?> "btn btn-info float-start me-sm-3 me-1",]) ?> "btn btn-secondary float-start",]) ?> diff --git a/ci4/app/Views/themes/backend/vuexy/pdfs/presupuesto.php b/ci4/app/Views/themes/backend/vuexy/pdfs/presupuesto.php index 2deccf92..a74f48ec 100755 --- a/ci4/app/Views/themes/backend/vuexy/pdfs/presupuesto.php +++ b/ci4/app/Views/themes/backend/vuexy/pdfs/presupuesto.php @@ -4,17 +4,16 @@ - <?= "Presupuesto " . "TBC" ?> @@ -49,7 +48,7 @@ FECHA: - fecha ?> + fecha)); ?> @@ -83,11 +82,11 @@ Ferro - ferro == 1) ? "SI" : "NO"); ?> + ferro == 1) ? "SI" : "NO"); ?> Prototipo - prototipo == 1) ? "SI" : "NO"); ?> + prototipo == 1) ? "SI" : "NO"); ?> Ferro Digital - ferro_digital == 1) ? "SI" : "NO"); ?> + ferro_digital == 1) ? "SI" : "NO"); ?> Formato @@ -169,7 +168,7 @@ Tipo Solapas - solapas == 1) ? "SI" : "NO"); ?> + solapas == 1) ? "SI" : "NO"); ?> Ancho solapas_ancho ?> cm @@ -185,15 +184,15 @@ Retractilado - NO + retractilado == 1) ? "SI" : "NO"); ?> Guardas - NO + guardas == 1) ? "SI" : "NO"); ?> Marcapáginas - NO + marcapaginas == 1) ? "SI" : "NO"); ?> @@ -210,7 +209,8 @@ El pedido será recogido por el cliente - + @@ -267,12 +267,14 @@ - comentarios_pdf)) { ?> + comentarios_pdf)) { ?>
OBSERVACIONES
-
{!! nl2br($obj->comentarios_pdf) !!}
+
+ comentarios_pdf); ?> +
-