realizado los cambios en los selects

This commit is contained in:
2024-12-14 10:36:51 +01:00
parent 4b4c320e04
commit b4de7978cc
6 changed files with 100 additions and 93 deletions

View File

@ -599,6 +599,7 @@ $routes->group('serviciosacabados', ['namespace' => 'App\Controllers\Presupuesto
$routes->post('datatable', 'Presupuestoacabados::datatable', ['as' => 'dataTableOfPresupuestoAcabados']);
$routes->post('menuitems', 'Presupuestoacabados::menuItems', ['as' => 'menuItemsOfPresupuestoAcabados']);
$routes->post('edit/(:num)', 'Presupuestoacabados::edit/$1', ['as' => 'updatePresupuestoacabados']);
$routes->get('getacabados', 'Presupuestoacabados::getAcabados');
});
$routes->group('serviciosencuadernaciones', ['namespace' => 'App\Controllers\Presupuestos'], function ($routes) {

View File

@ -1,4 +1,5 @@
<?php namespace App\Controllers\Presupuestos;
<?php
namespace App\Controllers\Presupuestos;
use App\Controllers\BaseResourceController;
@ -9,7 +10,7 @@ use App\Models\Collection;
use App\Models\Presupuestos\PresupuestoAcabadosModel;
class Presupuestoacabados extends \App\Controllers\BaseResourceController
{
@ -37,19 +38,18 @@ class Presupuestoacabados extends \App\Controllers\BaseResourceController
public function edit($requestedId = null)
{
if ($requestedId == null) :
if ($requestedId == null):
return;
endif;
$postData = $this->request->getJSON();
if(count($postData->datos)>0){
if (count($postData->datos) > 0) {
$this->model->deleteServiciosNotInArray($requestedId, $postData->datos);
}
else{
} else {
$this->model->deleteAllServicios($requestedId);
}
if(count($postData->datos)>0){
if (count($postData->datos) > 0) {
$this->model->updateTarifas($requestedId, $postData->datos);
}
@ -58,14 +58,14 @@ class Presupuestoacabados extends \App\Controllers\BaseResourceController
$data = [
$csrfTokenName => $newTokenHash
];
return $this->respond($data);
}
public function update($requestedId = null)
{
if ($requestedId == null) :
if ($requestedId == null):
return;
endif;
@ -75,20 +75,20 @@ class Presupuestoacabados extends \App\Controllers\BaseResourceController
$POD = $postData->POD ?? 0;
$result = [];
if(count($tarifas)>0){
foreach ($tarifas as $tarifa){
if (count($tarifas) > 0) {
foreach ($tarifas as $tarifa) {
$values = $this->model->getPrecioTarifa($tarifa, $tirada, $POD);
array_push($result, $values);
}
}
$newTokenHash = csrf_hash();
$csrfTokenName = csrf_token();
$data = [
'lines' => $result,
$csrfTokenName => $newTokenHash
];
return $this->respond($data);
}
@ -101,7 +101,7 @@ class Presupuestoacabados extends \App\Controllers\BaseResourceController
$tirada = $reqData['tirada'] ?? 0;
$proveedor_id = $reqData['proveedor_id'] ?? -1;
$POD = $reqData['POD'] ?? 0;
$newTokenHash = csrf_hash();
$csrfTokenName = csrf_token();
@ -119,17 +119,59 @@ class Presupuestoacabados extends \App\Controllers\BaseResourceController
}
}
public function getAcabados()
{
if ($this->request->isAJAX()) {
$cubierta = $this->request->getGet("cubierta") ?? 0;
$sobrecubierta = $this->request->getGet("sobrecubierta") ?? 0;
$model = model('App\Models\Tarifas\Acabados\TarifaAcabadoModel');
$query = $model->builder()->select(
[
"id",
"nombre as name"
]
)
->where("lg_tarifa_acabado.is_deleted", 0)
->where("lg_tarifa_acabado.mostrar_en_presupuesto", 1);
if($cubierta == 1){
$query->where("lg_tarifa_acabado.acabado_cubierta", 1);
}
else if ($sobrecubierta == 1){
$query->where("lg_tarifa_acabado.acabado_sobrecubierta", 1);
}
if ($this->request->getGet("q")) {
$query->groupStart()
->orLike("lg_tarifa_acabado.nombre", $this->request->getGet("q"))
->groupEnd();
}
$items = $query->get()->getResultObject();
// add a custom item at the beginning
$customItem = new \stdClass;
$customItem->id = 0;
$customItem->name = "Ninguno";
array_unshift($items, $customItem);
return $this->response->setJSON($items);
} else {
return $this->failUnauthorized('Invalid request', 403);
}
}
public function menuItems()
{
if ($this->request->isAJAX()) {
$reqData = $this->request->getPost();
try{
try {
$tarifa_id = $reqData['tarifa_id'] ?? -1;
$tirada = $reqData['tirada'] ?? 0;
$newTokenHash = csrf_hash();
$csrfTokenName = csrf_token();
@ -140,17 +182,15 @@ class Presupuestoacabados extends \App\Controllers\BaseResourceController
$csrfTokenName => $newTokenHash
];
}
catch(Exception $e){
} catch (Exception $e) {
$data = [
'error' => $e,
$csrfTokenName => $newTokenHash
];
}
finally{
} finally {
return $this->respond($data);
}
} else {
return $this->failUnauthorized('Invalid request', 403);
}

View File

@ -2278,22 +2278,6 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
return $data;
}
protected function getAcabadosCubierta()
{
$model = model('App\Models\Tarifas\Acabados\TarifaAcabadoModel');
$data = $model->getServiciosAcabadoCubierta();
array_unshift($data, (object) ['id' => '', 'label' => lang('Basic.global.None')]);
return $data;
}
protected function getAcabadosSobrecubierta()
{
$model = model('App\Models\Tarifas\Acabados\TarifaAcabadoModel');
$data = $model->getServiciosAcabadoSobrecubierta();
array_unshift($data, (object) ['id' => '', 'label' => lang('Basic.global.None')]);
return $data;
}
protected function getClienteListItems($selId = null)
{
$data = ['' => lang('Basic.global.pleaseSelectA', [mb_strtolower(lang('Clientes.cliente'))])];

View File

@ -67,6 +67,7 @@ return [
'papelFormatoPersonalizado' => 'Tamaño personalizado',
'papelFormatoAncho' => 'Ancho',
'papelFormatoAlto' => 'Alto',
'acabado' => 'Acabado',
'acabadosExteriores' => 'Acabados exteriores',
'acabadoCubierta' => 'Acabado Cubierta',
'acabadoSobrecubierta' => 'Acabado Sobrecubierta',

View File

@ -171,46 +171,12 @@
<div class="row justify-content-center">
<div class="col-sm-3">
<label for="plastificado" class="form-label">
<?= lang('Presupuestos.plastificado') ?>
</label>
<select class="form-select select2bs2 calcular-presupuesto" id="plastificado" name="plastificado">
<option value="NONE"><?= lang('Presupuestos.sinPlastificar') ?></option>
<option value="BRIL"><?= lang('Presupuestos.brillo') ?></option>
<option value="MATE"><?= lang('Presupuestos.mate') ?></option>
<option value="ANTI"><?= lang('Presupuestos.antirrayado') ?></option>
<option value="SAND"><?= lang('Presupuestos.rugoso') ?></option>
</select>
</div>
<div class="col-sm-3">
<label for="barniz" class="form-label">
<?= lang('Presupuestos.barniz') ?>
</label>
<select class="form-select select2bs2 calcular-presupuesto" id="barniz" name="barniz">
<option value="NONE"> - </option>
<option value="R2D"><?= lang('Presupuestos.relieve2D') ?></option>
<option value="R3D"><?= lang('Presupuestos.relieve3D') ?></option>
</select>
<div class="form-text">
<?= lang('Presupuestos.barnizDescription') ?>
</div>
</div>
<div class="col-sm-3">
<label for="estampado" class="form-label">
<?= lang('Presupuestos.estampado') ?>
</label>
<select class="form-select select2bs2 calcular-presupuesto" id="estampado" name="estampado">
<option value="NONE"> - </option>
<option value="GOLD"><?= lang('Presupuestos.oro') ?></option>
<option value="SILV"><?= lang('Presupuestos.plata') ?></option>
<option value="COPP"><?= lang('Presupuestos.cobre') ?></option>
<option value="BRON"><?= lang('Presupuestos.bronce') ?></option>
<div class="col-sm-6">
<select class="form-select select2bs2 calcular-presupuesto" id="acabadoCubierta" name="acabado_cubierta">
</select>
</div>
<div id="retractilado"
class="calcular-presupuesto d-flex flex-column align-items-center justify-content-center solapas-cubierta imagen-selector image-container">
<img class="image-presupuesto" src="<?= site_url("assets/img/presupuestoCliente/retractilado.png") ?>"
@ -230,9 +196,9 @@
<h3 class="mb-1 fw-bold"> Extras </h3>
</div><!--//.mb-3 -->
<div class="row col-sm-12 mb-3 justify-content-center">
<div class="row col-sm-12 mb-3 justify-content-center align-items-top">
<div class="row justify-content-center">
<div class="row col-sm-3 mb-3 d-flex flex-column align-items-center sobrecubierta-items">
<div class="form-check form-switch mb-2">
@ -268,18 +234,12 @@
<div class="col-sm-3 config-sobrecubierta d-none sobrecubierta-items">
<label for="plastificadoSobrecubierta" class="form-label">
<?= lang('Presupuestos.plastificadoSobrecubierta') ?>
<?= lang('Presupuestos.acabado') ?>
</label>
<select class="form-select select2bs2 calcular-presupuesto" id="plastificadoSobrecubierta"
name="plastificado_sobrecubierta">
<option value="NONE">Sin plastificar </option>
<option value="BRIL"><?= lang('Presupuestos.brillo') ?></option>
<option value="MATE"><?= lang('Presupuestos.mate') ?></option>
<option value="ANTI"><?= lang('Presupuestos.antirrayado') ?></option>
<select class="form-select select2bs2 calcular-presupuesto" id="acabadoSobrecubierta"
name="acabado_sobrecubierta">
</select>
</div>
</div>
</div>
<div class="row col-sm-12 mb-0 justify-content-center d-none">

View File

@ -62,15 +62,13 @@ class DisenioCubierta {
this.divPapelCubierta = this.domItem.find("#divPapelCubierta");
this.divGramajeCubierta = this.domItem.find("#divGramajeCubierta");
this.cubiertaPlastificado = this.domItem.find("#plastificado");
this.cubiertaBarniz = this.domItem.find("#barniz");
this.cubiertaEstampado = this.domItem.find("#estampado");
this.acabadoCubierta = this.domItem.find("#acabadoCubierta");
this.cubiertaRetractilado = this.domItem.find("#retractilado");
this.configuracionSobrecubierta = this.domItem.find(".config-sobrecubierta");
this.sobrecubierta = this.domItem.find("#addSobrecubierta");
this.papelSobrecubierta = this.domItem.find("#papelSobrecubierta");
this.plastificadoSobrecubierta = this.domItem.find("#plastificadoSobrecubierta");
this.acabadoSobrecubierta = this.domItem.find("#acabadoSobrecubierta");
this.configuracionFaja = this.domItem.find(".config-faja");
this.faja = this.domItem.find("#addFaja");
@ -94,6 +92,26 @@ class DisenioCubierta {
this.rl_tamanio_sobrecubierta = $('#rl_tamanio_sobrecubierta');
this.rl_acabado_sobrecubierta = $("#rl_acabado_sobrecubierta");
this.acabadoCubierta = new ClassSelect($("#acabadoCubierta"),
'/serviciosacabados/getacabados',
'',
false,
{
[this.csrf_token]: this.csrf_hash,
"cubierta": 1
}
);
this.acabadoSobrecubierta = new ClassSelect($("#acabadoSobrecubierta"),
'/serviciosacabados/getacabados',
'',
false,
{
[this.csrf_token]: this.csrf_hash,
"sobrecubierta": 1
}
);
this.initValidation();
// Creamos un nuevo observador que detecta cambios en los atributos
@ -124,6 +142,9 @@ class DisenioCubierta {
const self = this;
this.papelEspecial.init();
this.acabadoCubierta.init();
this.acabadoSobrecubierta.init();
$('#papelEspecialCubiertaSel').on("change", this.#handlePapelCubiertaEspecial.bind(this));
// Eventos
@ -195,9 +216,9 @@ class DisenioCubierta {
$(`#divGramajeCubierta .gramaje-cubierta input[data-value="${datosCubierta.gramaje}"]`).trigger('click');
}, 0);
this.cubiertaPlastificado.val(datosCubierta.plastificado).trigger('change');
this.cubiertaBarniz.val(datosCubierta.barniz).trigger('change');
this.cubiertaEstampado.val(datosCubierta.estampado).trigger('change');
// JJO this.cubiertaPlastificado.val(datosCubierta.plastificado).trigger('change');
//this.cubiertaBarniz.val(datosCubierta.barniz).trigger('change');
//this.cubiertaEstampado.val(datosCubierta.estampado).trigger('change');
if (datosCubierta.retractilado) {
setTimeout(() => {
this.cubiertaRetractilado.trigger('click');
@ -208,7 +229,7 @@ class DisenioCubierta {
this.sobrecubierta.trigger('click');
this.papelSobrecubierta.val(datosSobrecubierta.papel.code + "_" + datosSobrecubierta.gramaje).trigger('change');
this.solapasSobrecubierta.val(datosSobrecubierta.solapas_ancho);
this.plastificadoSobrecubierta.val(datosSobrecubierta.plastificado).trigger('change');
// JJO this.plastificadoSobrecubierta.val(datosSobrecubierta.plastificado).trigger('change');
}
}