Merge branch 'main' into 'bug/cubierta_con_solapas'

# Conflicts:
#   ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_lineasPresupuestoItems.php
This commit is contained in:
2024-01-24 17:51:12 +00:00
14 changed files with 445 additions and 436 deletions

View File

@ -1,4 +1,5 @@
<?php
namespace App\Controllers\Pdf;
use App\Controllers\BaseController;
@ -6,22 +7,65 @@ use App\Controllers\BaseController;
class PrintPresupuestos extends BaseController
{
function __construct()
public function index($id_presupuesto)
{
$presupuestoModel = model('App\Models\Presupuestos\PresupuestoModel');
$lineasPresupuestoModel = model('App\Models\Presupuestos\PresupuestoLineaModel');
$direccionesEnvioModel = model('App\Models\Presupuestos\PresupuestoDireccionesModel');
$data['presupuesto'] = $presupuestoModel->getResourceForPdf($id_presupuesto)->get()->getRow();
$data['lp_ByN'] = $lineasPresupuestoModel->getResourceByNForPdf($id_presupuesto)->get()->getRow();
$data['lp_Color'] = $lineasPresupuestoModel->getResourceColorForPdf($id_presupuesto)->get()->getRow();
$data['direccionesEnvio'] = $direccionesEnvioModel->getResourceForPdf($id_presupuesto)->get()->getResultObject();
return view(getenv('theme.path') . 'pdfs/presupuesto', $data);
}
public function index()
public function generar($presupuesto_id)
{
//return view('pdf_view');
return view(getenv('theme.path').'pdfs/presupuesto');
}
public function generar(){
$dompdf = new \Dompdf\Dompdf(['isRemoteEnabled' => true]);
//$dompdf->loadHtml(view('pdf_view'));
$dompdf->loadHtml(view(getenv('theme.path').'pdfs/presupuesto'));
// Cargar modelos
$presupuestoModel = model('App\Models\Presupuestos\PresupuestoModel');
$lineasPresupuestoModel = model('App\Models\Presupuestos\PresupuestoLineaModel');
$direccionesEnvioModel = model('App\Models\Presupuestos\PresupuestoDireccionesModel');
// Informacion del presupuesto
$data['presupuesto'] = $presupuestoModel->getResourceForPdf($presupuesto_id)->get()->getRow();
$data['lp_ByN'] = $lineasPresupuestoModel->getResourceByNForPdf($presupuesto_id)->get()->getRow();
$data['lp_Color'] = $lineasPresupuestoModel->getResourceColorForPdf($presupuesto_id)->get()->getRow();
$data['direccionesEnvio'] = $direccionesEnvioModel->getResourceForPdf($presupuesto_id)->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/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);
}
}

View File

@ -60,7 +60,7 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
// Breadcrumbs
$this->viewData['breadcrumb'] = [
['title' => lang("App.menu_presupuestos"), 'route' => "javascript:void(0);", 'active' => false],
['title' => lang("App.menu_libros_cosido_tapa_blanda"), 'route' => site_url('presupuestos/cosidotapablanda'), 'active' => true]
['title' => lang("App.menu_libros_cosido_tapa_blanda"), 'route' => site_url('presupuestos/cosidotapablanda/list/4'), 'active' => true]
];
parent::initController($request, $response, $logger);
@ -68,8 +68,18 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
}
public function index()
public function list($tipo_presupuesto = 4)
{
switch ($tipo_presupuesto){
case 4:
break;
default:
return "A IMPLEMENTAR!";
}
$viewData = [
'currentModule' => static::$controllerSlug,
@ -188,6 +198,7 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
$postData['updated_at'] = gmdate('Y-m-d H:m:s', time());
$sanitizedData = $this->sanitized($postData, $nullIfEmpty);
// JJO
$sanitizedData['user_updated_id'] = $session->id_user;
@ -197,7 +208,7 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
}
if ($this->request->getPost('retractilado5') == null) {
$sanitizedData['retractilado5'] = false;
}
}
if ($this->request->getPost('ferro') == null) {
$sanitizedData['ferro'] = false;
}
@ -213,29 +224,51 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController
if ($this->request->getPost('faja_color') == null) {
$sanitizedData['faja_color'] = false;
}
if ($this->request->getPost('papel_formato_personalizado') == null) {
$sanitizedData['papel_formato_personalizado'] = false;
}
$noException = true;
if ($successfulResult = $this->canValidate()) : // if ($successfulResult = $this->validate($this->formValidationRules) ) :
if($sanitizedData['papel_formato_id'] == null && $sanitizedData['papel_formato_ancho'] == null
&& $sanitizedData['papel_formato_alto'] == null){
if ($this->request->isAJAX()) {
$newTokenHash = csrf_hash();
$csrfTokenName = csrf_token();
$data = [
'errorMensaje' => lang('Presupuestos.errores.formato_papel'),
$csrfTokenName => $newTokenHash
];
return $this->respond($data);
}
else{
$this->session->setFlashData('errorMessage', lang('Presupuestos.errores.formato_papel'));
}
$successfulResult = false;
}
else{
if ($successfulResult = $this->canValidate()) : // if ($successfulResult = $this->validate($this->formValidationRules) )
if ($this->canValidate()) :
try {
$successfulResult = $this->model->skipValidation(true)->update($id, $sanitizedData);
} catch (\Exception $e) {
$noException = false;
$this->dealWithException($e);
}
else :
$this->viewData['warningMessage'] = lang('Basic.global.formErr1', [mb_strtolower(lang('Presupuestos.presupuesto'))]);
$this->session->setFlashdata('formErrors', $this->model->errors());
if ($this->canValidate()) :
try {
$successfulResult = $this->model->skipValidation(true)->update($id, $sanitizedData);
} catch (\Exception $e) {
$noException = false;
$this->dealWithException($e);
}
else :
$this->viewData['warningMessage'] = lang('Basic.global.formErr1', [mb_strtolower(lang('Presupuestos.presupuesto'))]);
$this->session->setFlashdata('formErrors', $this->model->errors());
endif;
$presupuestoEntity->fill($sanitizedData);
$thenRedirect = false;
endif;
}
$presupuestoEntity->fill($sanitizedData);
$thenRedirect = false;
endif;
if ($noException && $successfulResult) :
$id = $presupuestoEntity->id ?? $id;
$message = lang('Basic.global.updateSuccess', [mb_strtolower(lang('Presupuestos.presupuesto'))]) . '.';
@ -279,6 +312,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);