mirror of
https://git.imnavajas.es/jjimenez/safekat.git
synced 2025-07-25 22:52:08 +00:00
Puliendo presupuesto
This commit is contained in:
@ -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']);
|
||||
});
|
||||
|
||||
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
namespace App\Controllers\Pdf;
|
||||
|
||||
use App\Controllers\BaseController;
|
||||
@ -6,11 +7,8 @@ use App\Controllers\BaseController;
|
||||
|
||||
class PrintPresupuestos extends BaseController
|
||||
{
|
||||
function __construct()
|
||||
{
|
||||
|
||||
}
|
||||
public function index()
|
||||
public function index($id_presupuesto)
|
||||
{
|
||||
|
||||
$presupuestoModel = model('App\Models\Presupuestos\PresupuestoModel');
|
||||
@ -18,15 +16,46 @@ class PrintPresupuestos extends BaseController
|
||||
$data['presupuesto'] = $presupuestoModel->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);
|
||||
}
|
||||
}
|
||||
@ -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);
|
||||
|
||||
|
||||
@ -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");
|
||||
|
||||
@ -37,7 +37,7 @@
|
||||
value="<?= lang("Basic.global.Save") ?>"
|
||||
/>
|
||||
<?php if (str_contains($formAction, 'edit')): ?>
|
||||
<?= anchor(route_to("presupuestoToPdf"), lang("Basic.global.Print"), ["class" => "btn btn-dark float-start me-sm-3 me-1",]) ?>
|
||||
<?= anchor(route_to("presupuestoToPdf", $presupuestoId), lang("Basic.global.Print"), ["class" => "btn btn-dark float-start me-sm-3 me-1",'target' => '_blank']) ?>
|
||||
<?= anchor(route_to("#"), lang("Basic.global.Clone"), ["class" => "btn btn-info float-start me-sm-3 me-1",]) ?>
|
||||
<?php endif; ?>
|
||||
<?= anchor(route_to("cosidotapablandaList"), lang("Basic.global.Cancel"), ["class" => "btn btn-secondary float-start",]) ?>
|
||||
|
||||
@ -4,17 +4,16 @@
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title><?= "Presupuesto " . "TBC" ?></title>
|
||||
<link rel="stylesheet" href="<?= site_url('themes/vuexy/css/font-pdf.css') ?>">
|
||||
<link rel="stylesheet" href="<?= site_url('themes/vuexy/css/all.css') ?>">
|
||||
<link rel="stylesheet" href="<?= site_url('themes/vuexy/css/pdf.presupuesto.css') ?>">
|
||||
<style>
|
||||
@page {
|
||||
margin: 18px;
|
||||
margin: 10px;
|
||||
}
|
||||
|
||||
body {
|
||||
margin: 18px;
|
||||
margin: 10px;
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -49,7 +48,7 @@
|
||||
FECHA:
|
||||
</th>
|
||||
<th class="fecha">
|
||||
<?= $presupuesto->fecha ?>
|
||||
<?= date('d/m/Y', strtotime($presupuesto->fecha)); ?>
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
@ -83,11 +82,11 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="t">Ferro</td>
|
||||
<td class="v"><?php echo (($presupuesto->ferro == 1) ? "SI" : "NO"); ?></td>
|
||||
<td class="v"><?php echo(($presupuesto->ferro == 1) ? "SI" : "NO"); ?></td>
|
||||
<td class="t-first">Prototipo</td>
|
||||
<td class="v-first"><?php echo (($presupuesto->prototipo == 1) ? "SI" : "NO"); ?></td>
|
||||
<td class="v-first"><?php echo(($presupuesto->prototipo == 1) ? "SI" : "NO"); ?></td>
|
||||
<td class="t-second">Ferro Digital</td>
|
||||
<td class="v-second"><?php echo (($presupuesto->ferro_digital == 1) ? "SI" : "NO"); ?></td>
|
||||
<td class="v-second"><?php echo(($presupuesto->ferro_digital == 1) ? "SI" : "NO"); ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="t">Formato</td>
|
||||
@ -169,7 +168,7 @@
|
||||
<td class="t">Tipo</td>
|
||||
<td class="v"><?= "encuardernado" ?></td>
|
||||
<td class="t-first">Solapas</td>
|
||||
<td class="v-first"><?php echo (($presupuesto->solapas == 1) ? "SI" : "NO"); ?></td>
|
||||
<td class="v-first"><?php echo(($presupuesto->solapas == 1) ? "SI" : "NO"); ?></td>
|
||||
<td class="t-second">Ancho</td>
|
||||
<td class="v-second"><?= $presupuesto->solapas_ancho ?> cm</td>
|
||||
</tr>
|
||||
@ -185,15 +184,15 @@
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="t">Retractilado</td>
|
||||
<td class="v" colspan="5">NO</td>
|
||||
<td class="v" colspan="5"><?php echo(($presupuesto->retractilado == 1) ? "SI" : "NO"); ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="t">Guardas</td>
|
||||
<td class="v" colspan="5">NO</td>
|
||||
<td class="v" colspan="5"><?php echo(($presupuesto->guardas == 1) ? "SI" : "NO"); ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="t">Marcapáginas</td>
|
||||
<td class="v" colspan="5">NO</td>
|
||||
<td class="v" colspan="5"><?php echo(($presupuesto->marcapaginas == 1) ? "SI" : "NO"); ?></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
@ -210,7 +209,8 @@
|
||||
<td colspan="10">El pedido será recogido por el cliente</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
<?php } else { ?>
|
||||
<?php } else {
|
||||
?>
|
||||
|
||||
<tbody>
|
||||
<tr>
|
||||
@ -267,12 +267,14 @@
|
||||
</tfoot>
|
||||
</table>
|
||||
|
||||
<?php if (isset($obj->comentarios_pdf)) { ?>
|
||||
<?php if (isset($presupuesto->comentarios_pdf)) { ?>
|
||||
<h6 class="observaciones">OBSERVACIONES</h6>
|
||||
<div class="comentarios">{!! nl2br($obj->comentarios_pdf) !!}</div>
|
||||
<div class="comentarios">
|
||||
<?= nl2br($presupuesto->comentarios_pdf); ?>
|
||||
</div>
|
||||
<?php } ?>
|
||||
|
||||
<div class="footer" style="margin-top: 70px">
|
||||
<div class="footer">
|
||||
<p>Por la grave crisis de papel que está sufriendo el sector, este presupuesto deberá ser confirmado con su
|
||||
comercial el día que se oficialice el pedido, dado que pueda darse la situación de que no haya stock
|
||||
disponible o que su precio haya variado considerablemente, para así poder ofrecerle alternativas.</p>
|
||||
|
||||
Reference in New Issue
Block a user