From 616e6628968b8f1e6f2865e90ce8735892d36fb7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jaime=20Jim=C3=A9nez?= Date: Thu, 26 Dec 2024 13:38:32 +0100 Subject: [PATCH 1/7] no se podia pasar de pagina en cosido. error en la validacion --- .../js/safekat/pages/presupuestoCliente/datosGenerales.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/httpdocs/assets/js/safekat/pages/presupuestoCliente/datosGenerales.js b/httpdocs/assets/js/safekat/pages/presupuestoCliente/datosGenerales.js index 28f5a068..a65a2863 100644 --- a/httpdocs/assets/js/safekat/pages/presupuestoCliente/datosGenerales.js +++ b/httpdocs/assets/js/safekat/pages/presupuestoCliente/datosGenerales.js @@ -340,8 +340,9 @@ class DatosGenerales { `); + return false; } - return false; + return true; } return true; @@ -354,8 +355,9 @@ class DatosGenerales { `); + return false; } - return false; + }, } } From f61c9928dc8a7c6d6454871da7f2db6eae0f0d85 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jaime=20Jim=C3=A9nez?= Date: Thu, 26 Dec 2024 13:46:43 +0100 Subject: [PATCH 2/7] error en la validacion al guardar --- .../assets/js/safekat/pages/presupuestoCliente/direcciones.js | 2 ++ .../js/safekat/pages/presupuestoCliente/presupuestoCliente.js | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/httpdocs/assets/js/safekat/pages/presupuestoCliente/direcciones.js b/httpdocs/assets/js/safekat/pages/presupuestoCliente/direcciones.js index 869c33e3..35910951 100644 --- a/httpdocs/assets/js/safekat/pages/presupuestoCliente/direcciones.js +++ b/httpdocs/assets/js/safekat/pages/presupuestoCliente/direcciones.js @@ -30,6 +30,8 @@ class Direcciones { this.direcciones = []; + this.tiradaSeleccionada = null; + this.direcciones.calcularPresupuesto = false; this.initValidation(); diff --git a/httpdocs/assets/js/safekat/pages/presupuestoCliente/presupuestoCliente.js b/httpdocs/assets/js/safekat/pages/presupuestoCliente/presupuestoCliente.js index 9075122b..b12c21ec 100644 --- a/httpdocs/assets/js/safekat/pages/presupuestoCliente/presupuestoCliente.js +++ b/httpdocs/assets/js/safekat/pages/presupuestoCliente/presupuestoCliente.js @@ -461,7 +461,7 @@ class PresupuestoCliente { return; } - if ($('.invalid-feedback').length > 0) { + if (!this.datosGenerales.checkPaginasMultiplo4()) { popErrorAlert("Compruebe que todos los campos son correctos."); $('#loader').modal('hide'); return; From d0bdef58c2122e46366fb826ff167e68088a0a10 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jaime=20Jim=C3=A9nez?= Date: Thu, 26 Dec 2024 14:17:11 +0100 Subject: [PATCH 3/7] solucionado el error que cambiaba la tirada de envio al actualizar presupuesto --- .../pages/presupuestoCliente/direcciones.js | 24 ++++++++++--------- .../presupuestoCliente/presupuestoCliente.js | 3 ++- 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/httpdocs/assets/js/safekat/pages/presupuestoCliente/direcciones.js b/httpdocs/assets/js/safekat/pages/presupuestoCliente/direcciones.js index 35910951..6e6288b3 100644 --- a/httpdocs/assets/js/safekat/pages/presupuestoCliente/direcciones.js +++ b/httpdocs/assets/js/safekat/pages/presupuestoCliente/direcciones.js @@ -44,14 +44,14 @@ class Direcciones { $("#clienteId").on('change', this.handleChangeCliente.bind(this)); this.recogidaTaller.on('change', () => { - + if (this.recogidaTaller.is(':checked')) { this.divDirecciones.empty(); this.direcciones = []; $('.div-direcciones').addClass('d-none'); } - else{ + else { $('.div-direcciones').removeClass('d-none'); } }); @@ -106,13 +106,7 @@ class Direcciones { let id = datos[i].id; let unidades = datos[i].unidades; let entregaPalets = datos[i].palets; - let divId = "dirEnvio-1"; - let direccionesActuales = this.divDirecciones.find('.direccion-cliente'); - if (direccionesActuales.length > 0) { - // the the lass item - let last = direccionesActuales[direccionesActuales.length - 1]; - divId = "dirEnvio-" + (parseInt(last.id.split('-')[1]) + 1); - } + if (id == null || id <= 0 || id == undefined) return; @@ -121,6 +115,13 @@ class Direcciones { let peticion = new Ajax('/misdirecciones/getDireccionPresupuesto/' + id, {}, {}, (response) => { + let divId = "dirEnvio-1"; + let direccionesActuales = this.divDirecciones.find('.direccion-cliente'); + if (direccionesActuales.length > 0) { + // the the lass item + let last = direccionesActuales[direccionesActuales.length - 1]; + divId = "dirEnvio-" + (parseInt(last.id.split('-')[1]) + 1); + } let tarjeta = new tarjetaDireccion(this.divDirecciones, divId, response.data[0]); tarjeta.setUnidades(unidades); tarjeta.setEntregaPalets(entregaPalets); @@ -217,7 +218,7 @@ class Direcciones { let customOption = tarjeta.card.find('.check-tirada-envio'); customOption.on('click', function () { - self.#handleTiradaEnvio(customOption); + self.#handleTiradaEnvio(customOption, self); }); } @@ -258,7 +259,7 @@ class Direcciones { dialog.init(); } - #handleTiradaEnvio(customOption) { + #handleTiradaEnvio(customOption, self) { const el = customOption[0]; @@ -271,6 +272,7 @@ class Direcciones { }) } el.closest('.custom-option').classList.add('checked') + self.tiradaSeleccionada = parseInt(el.getAttribute('tirada')); } else { el.closest('.custom-option').classList.remove('checked') } diff --git a/httpdocs/assets/js/safekat/pages/presupuestoCliente/presupuestoCliente.js b/httpdocs/assets/js/safekat/pages/presupuestoCliente/presupuestoCliente.js index b12c21ec..764e19eb 100644 --- a/httpdocs/assets/js/safekat/pages/presupuestoCliente/presupuestoCliente.js +++ b/httpdocs/assets/js/safekat/pages/presupuestoCliente/presupuestoCliente.js @@ -550,10 +550,11 @@ class PresupuestoCliente { } } + this.lc.val(parseFloat(response.info.lomo_cubierta).toFixed(2)); this.lsc.val(parseFloat(response.info.lomo_sobrecubierta).toFixed(2)); setTimeout(() => { - $(`#containerTiradasEnvios .tirada-envio input[tirada="${response.tiradas[0]}"]`).trigger('click'); + $(`#containerTiradasEnvios .tirada-envio input[tirada="${this.direcciones.tiradaSeleccionada}"]`).trigger('click'); }, 0); } $('#loader').modal('hide'); From 93d3793ef966fb7fee00b53ee7ba95718f5deaf8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jaime=20Jim=C3=A9nez?= Date: Thu, 26 Dec 2024 16:28:26 +0100 Subject: [PATCH 4/7] cambiado POD para cogerlo de la nueva tabla de variables --- .../Configuracion/Papelesgenericos.php | 4 +- .../Presupuestos/Presupuestoadmin.php | 3 +- .../Presupuestos/Presupuestocliente.php | 10 ++--- .../ConfiguracionSistemaEntity.php | 17 --------- .../Configuracion/ConfigVariableModel.php | 9 +++++ .../ConfiguracionSistemaModel.php | 37 ------------------- 6 files changed, 17 insertions(+), 63 deletions(-) delete mode 100755 ci4/app/Entities/Configuracion/ConfiguracionSistemaEntity.php delete mode 100755 ci4/app/Models/Configuracion/ConfiguracionSistemaModel.php diff --git a/ci4/app/Controllers/Configuracion/Papelesgenericos.php b/ci4/app/Controllers/Configuracion/Papelesgenericos.php index 391e5ee8..1792dd93 100755 --- a/ci4/app/Controllers/Configuracion/Papelesgenericos.php +++ b/ci4/app/Controllers/Configuracion/Papelesgenericos.php @@ -301,7 +301,7 @@ class Papelesgenericos extends \App\Controllers\BaseResourceController $tirada = goSanitize($this->request->getGet('tirada'))[0] ?? null; $POD = null; if($tirada != null){ - $POD_value = model('App\Models\Configuracion\ConfiguracionSistemaModel')->getPOD(); + $POD_value = model('App\Models\Configuracion\ConfigVariableModel')->getVariable('POD')->value; if(intval($tirada) <= intval($POD_value)){ $POD = true; } @@ -339,7 +339,7 @@ class Papelesgenericos extends \App\Controllers\BaseResourceController $tirada = goSanitize($this->request->getGet('tirada'))[0] ?? null; $POD = null; if($tirada != null){ - $POD_value = model('App\Models\Configuracion\ConfiguracionSistemaModel')->getPOD(); + $POD_value = model('App\Models\Configuracion\ConfigVariableModel')->getVariable('POD')->value; if(intval($tirada) <= intval($POD_value)){ $POD = true; } diff --git a/ci4/app/Controllers/Presupuestos/Presupuestoadmin.php b/ci4/app/Controllers/Presupuestos/Presupuestoadmin.php index 36c8a103..a302751f 100644 --- a/ci4/app/Controllers/Presupuestos/Presupuestoadmin.php +++ b/ci4/app/Controllers/Presupuestos/Presupuestoadmin.php @@ -1246,8 +1246,7 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController protected function getPOD() { - $model = model('App\Models\Configuracion\ConfiguracionSistemaModel'); - return $model->getPOD(); + return model('App\Models\Configuracion\ConfigVariableModel')->getVariable('POD')->value; } protected function getLineasPresupuesto($presupuestoEntity){ diff --git a/ci4/app/Controllers/Presupuestos/Presupuestocliente.php b/ci4/app/Controllers/Presupuestos/Presupuestocliente.php index e37f22d1..c461c877 100755 --- a/ci4/app/Controllers/Presupuestos/Presupuestocliente.php +++ b/ci4/app/Controllers/Presupuestos/Presupuestocliente.php @@ -110,7 +110,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController } } - $POD = model('App\Models\Configuracion\ConfiguracionSistemaModel')->getPOD(); + $POD = model('App\Models\Configuracion\ConfigVariableModel')->getVariable('POD')->value; $this->viewData['breadcrumb'] = [ ['title' => lang("App.menu_presupuestos"), 'route' => site_url('presupuestocliente/list'), 'active' => false], @@ -161,7 +161,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController $this->viewData['paisList'] = $this->getPaisListItems(); $this->viewData['clienteId'] = $clienteId; - $this->viewData['POD'] = model('App\Models\Configuracion\ConfiguracionSistemaModel')->getPOD(); + $this->viewData['POD'] = model('App\Models\Configuracion\ConfigVariableModel')->getVariable('POD')->value; // Si se ha llamado a esta funcion porque se ha duplicado el presupuesto // se actualiza la bbdd para que sólo ejecute algunas funciones una vez if ($presupuestoEntity->is_duplicado) { @@ -480,7 +480,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController $reqData = $this->request->getPost(); $modelPapelGenerico = new PapelGenericoModel(); - $POD = model('App\Models\Configuracion\ConfiguracionSistemaModel')->getPOD(); + $POD = model('App\Models\Configuracion\ConfigVariableModel')->getVariable('POD')->value; $cliente_id = $reqData['clienteId'] ?? -1; @@ -719,7 +719,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController $reqData = $this->request->getPost(); - $POD = model('App\Models\Configuracion\ConfiguracionSistemaModel')->getPOD(); + $POD = model('App\Models\Configuracion\ConfigVariableModel')->getVariable('POD')->value; $id = $reqData['id'] ?? 0; $id = intval($id); @@ -1486,7 +1486,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController $coste_servicios = 0.0; - $POD = model('App\Models\Configuracion\ConfiguracionSistemaModel')->getPOD(); + $POD = model('App\Models\Configuracion\ConfigVariableModel')->getVariable('POD')->value; $precio_u = []; $peso = []; diff --git a/ci4/app/Entities/Configuracion/ConfiguracionSistemaEntity.php b/ci4/app/Entities/Configuracion/ConfiguracionSistemaEntity.php deleted file mode 100755 index a89d0483..00000000 --- a/ci4/app/Entities/Configuracion/ConfiguracionSistemaEntity.php +++ /dev/null @@ -1,17 +0,0 @@ - null, - "var_name" => null, - "value" => null, - "datatype" => null, - - ]; - protected $casts = [ - ]; -} diff --git a/ci4/app/Models/Configuracion/ConfigVariableModel.php b/ci4/app/Models/Configuracion/ConfigVariableModel.php index 1399e45a..322d3e42 100644 --- a/ci4/app/Models/Configuracion/ConfigVariableModel.php +++ b/ci4/app/Models/Configuracion/ConfigVariableModel.php @@ -47,4 +47,13 @@ class ConfigVariableModel extends Model protected $afterFind = []; protected $beforeDelete = []; protected $afterDelete = []; + + public function getVariable($name) + { + $builder = $this->db + ->table($this->table . " t1") + ->where('name', $name); + + return $builder->get()->getFirstRow(); + } } diff --git a/ci4/app/Models/Configuracion/ConfiguracionSistemaModel.php b/ci4/app/Models/Configuracion/ConfiguracionSistemaModel.php deleted file mode 100755 index 7793e8ad..00000000 --- a/ci4/app/Models/Configuracion/ConfiguracionSistemaModel.php +++ /dev/null @@ -1,37 +0,0 @@ -db - ->table($this->table . " t1") - ->select( - '(SELECT CAST(t1.value AS INT)) AS POD', false) - ->where('t1.var_name', 'POD'); - - $POD = intval($builder->get()->getFirstRow()->POD); - return $POD; - } -} From a29df443bddf7a3aaafb8639f05e6011df97d5f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jaime=20Jim=C3=A9nez?= Date: Thu, 26 Dec 2024 18:29:32 +0100 Subject: [PATCH 5/7] primera version del calculo del lomo --- ci4/app/Config/Routes.php | 1 + .../Presupuestos/Presupuestocliente.php | 126 +++++++++++++++++- .../cliente/items/_datosGenerales.php | 2 +- .../cliente/viewPresupuestoclienteForm.php | 3 + .../presupuestoCliente/datosGenerales.js | 2 + .../presupuestoCliente/disenioInterior.js | 3 +- .../presupuestoCliente/presupuestoCliente.js | 31 ++++- 7 files changed, 155 insertions(+), 13 deletions(-) diff --git a/ci4/app/Config/Routes.php b/ci4/app/Config/Routes.php index bcbf0798..79f5b8c9 100644 --- a/ci4/app/Config/Routes.php +++ b/ci4/app/Config/Routes.php @@ -597,6 +597,7 @@ $routes->group('presupuestocliente', ['namespace' => 'App\Controllers\Presupuest $routes->post('duplicarPresupuesto', 'Presupuestocliente::duplicarPresupuesto', ['as' => 'duplicarPresupuesto']); $routes->post('calcular', 'Presupuestocliente::calcular', ['as' => 'calcularPresupuesto']); $routes->post('calcularsolapas', 'Presupuestocliente::calcularMaxSolapas', ['as' => 'calcularSolapas']); + $routes->post('checklomo', 'Presupuestocliente::check_lomo_interior'); }); $routes->resource('presupuestocliente', ['namespace' => 'App\Controllers\Presupuestos', 'controller' => 'Presupuestocliente', 'except' => 'show,new,create,update']); diff --git a/ci4/app/Controllers/Presupuestos/Presupuestocliente.php b/ci4/app/Controllers/Presupuestos/Presupuestocliente.php index c461c877..3effc193 100755 --- a/ci4/app/Controllers/Presupuestos/Presupuestocliente.php +++ b/ci4/app/Controllers/Presupuestos/Presupuestocliente.php @@ -124,6 +124,8 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController $this->viewData['paisList'] = model('App\Models\Configuracion\PaisModel')->getAllForMenu('id, nombre', 'nombre', true); $this->viewData['clienteId'] = $clienteId; $this->viewData['POD'] = $POD; + $this->viewData['lomo_maximo'] = model('App\Models\Configuracion\ConfigVariableModel')->getVariable('lomo_maximo')->value; + $this->viewData['lomo_minimo_fresado_cosido'] = model('App\Models\Configuracion\ConfigVariableModel')->getVariable('lomo_minimo_fresado_cosido')->value; $this->viewData['boxTitle'] = lang('Basic.global.addNew') . ' ' . $this->viewData['pageTitle'] . ' ' . lang('Basic.global.addNewSuffix'); @@ -162,6 +164,8 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController $this->viewData['clienteId'] = $clienteId; $this->viewData['POD'] = model('App\Models\Configuracion\ConfigVariableModel')->getVariable('POD')->value; + $this->viewData['lomo_maximo'] = model('App\Models\Configuracion\ConfigVariableModel')->getVariable('lomo_maximo')->value; + $this->viewData['lomo_minimo_fresado_cosido'] = model('App\Models\Configuracion\ConfigVariableModel')->getVariable('lomo_minimo_fresado_cosido')->value; // Si se ha llamado a esta funcion porque se ha duplicado el presupuesto // se actualiza la bbdd para que sólo ejecute algunas funciones una vez if ($presupuestoEntity->is_duplicado) { @@ -218,8 +222,6 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController } - - public function datatable() { if ($this->request->isAJAX()) { @@ -263,6 +265,117 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController } + public function check_lomo_interior() + { + if ($this->request->isAJAX()) { + + $reqData = $this->request->getPost(); + $modelPapelGenerico = new PapelGenericoModel(); + + $POD = model('App\Models\Configuracion\ConfigVariableModel')->getVariable('POD')->value; + + $cliente_id = $reqData['clienteId'] ?? -1; + + $tirada = $reqData['tirada'] ?? 0; + $tamanio = $reqData['tamanio']; + $paginas = $reqData['paginas'] ?? 0; + $paginas_color = $reqData['paginasColor'] ?? 0; + $papelInteriorDiferente = intval($reqData['papelInteriorDiferente']) ?? null; + $excluirRotativa = $reqData['excluirRotativa'] ?? 0; + $excluirRotativa = intval($excluirRotativa); + + $tipo = $reqData['tipo']; + $tipoCubierta = 'blanda'; // solapas sólo tapa blanda y sobre cubierta + + $isColor = intval($reqData['isColor']) ?? 0; + $isHq = intval($reqData['isHq']) ?? 0; + + $tipo_impresion_id = $this->getTipoImpresion($tipo, $tipoCubierta); + $is_cosido = (new TipoPresupuestoModel())->get_isCosido($tipo_impresion_id); + + $interior = $reqData['interior'] ?? []; + + if ($papelInteriorDiferente) { + $papel['negro'] = $modelPapelGenerico->where('id', $interior['papelInterior']['negro'])->first()->toArray(); + $papel['color'] = $modelPapelGenerico->where('id', $interior['papelInterior']['color'])->first()->toArray(); + $gramaje['negro'] = intval($interior['gramajeInterior']['negro']); + $gramaje['color'] = intval($interior['gramajeInterior']['color']); + } else { + $papel = $modelPapelGenerico->where('id', $interior['papelInterior'])->first()->toArray(); + $gramaje = intval($interior['gramajeInterior']); + } + + $datosPedido = (object) array( + 'paginas' => $paginas, + 'tirada' => $tirada[0], + 'merma' => $tirada[0] > $POD ? $this->calcular_merma($tirada[0], $POD) : 0, + 'ancho' => intval($tamanio['ancho']) ?? 100000, + 'alto' => intval($tamanio['alto']) ?? 100000, + 'isCosido' => $is_cosido, + 'a_favor_fibra' => 1, + ); + + // Para POD siempre es HQ + if ($tirada[0] <= $POD) { + $isHq = true; + } + + $input_data = array( + 'uso' => 'interior', + 'tipo_impresion_id' => $tipo_impresion_id, + 'datosPedido' => $datosPedido, + 'papel_generico' => $papel, + 'gramaje' => $gramaje, + 'isColor' => $isColor, + 'isHq' => $isHq, + 'cliente_id' => $cliente_id, + 'paginas_color' => $paginas_color, + 'excluirRotativa' => $excluirRotativa, + 'papelInteriorDiferente' => $papelInteriorDiferente + ); + + $interior = PresupuestoClienteService::obtenerInterior($input_data); + if ($interior == null) { + return $this->failServerError('Error al calcular el interior'); + } + + $lomo = 0.0; + foreach ($interior as $linea) { + if (count($linea) > 0) { + $lomo += floatval($linea['mano']); + } + } + $lomo = round($lomo, 2); + $errors = [ + 'status' => 0, + 'value' => "" + ]; + $lomo_minimo_fresado_cosido = intval(model('App\Models\Configuracion\ConfigVariableModel')->getVariable('lomo_minimo_fresado_cosido')->value); + $lomo_maximo = intval(model('App\Models\Configuracion\ConfigVariableModel')->getVariable('lomo_maximo')->value); + + if ($tipo == 'cosido' || $tipo == 'fresado') { + if ($lomo < $lomo_minimo_fresado_cosido) { + $errors['status'] = 1; + $errors['value'] = 'No se pueden encuadernar libros cosidos o fresados con lomo inferior a ' + . $lomo_minimo_fresado_cosido . ' mm. El lomo actual es de ' . $lomo . ' mm. ' . + "Por favor, aumente el número de páginas o el gramaje del papel para que sea encuadernable."; + } + if ($lomo > $lomo_maximo) { + $errors['status'] = 1; + $errors['value'] = 'No se pueden encuadernar con un lomo superior a ' + . $lomo_maximo . ' mm. El lomo actual es de ' . $lomo . ' mm. ' . + "Por favor, disminuya el número de páginas o el gramaje del papel para que sea encuadernable."; + } + } + + $data = (object) array('lomo' => $lomo, + 'errors' => $errors); + return $this->respond($data); + + } else { + return $this->failUnauthorized('Invalid request', 403); + } + } public function calcular() { @@ -1445,6 +1558,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController $info = [ 'merma' => 0, + 'lomo_interior' => 0.0, 'lomo_cubierta' => 0.0, 'lomo_sobrecubierta' => 0.0, 'user_id' => auth()->user()->id, @@ -1571,6 +1685,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController $costeInterior += floatval($linea['total_impresion']); $peso_interior += floatval($linea['peso']); $lomo += floatval($linea['mano']); + $info['lomo_interior'] += floatval($linea['mano']); if ($extra_info) { $this->calcular_coste_linea( $linea, @@ -1909,7 +2024,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController 'paginasCuadernillo' => $paginasCuadernillo, ]); - + foreach ($servDefectoEnc as $servicio) { if ($servicio->total <= 0) { @@ -1944,7 +2059,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController 'solapas' => intval($solapasCubierta) > 0 ? 1 : 0, ]); - + foreach ($servDefectoMan as $servicio) { if ($servicio->total <= 0) { @@ -2116,8 +2231,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController $totalServicios -= $margenServicios; if (($margenServicios + $totalServicios) > 0) { $porcentajeMargenServicios = $margenServicios / ($margenServicios + $totalServicios) * 100; - } - else{ + } else { $porcentajeMargenServicios = 0; } $sumForFactorPonderado += $totalServicios; diff --git a/ci4/app/Views/themes/vuexy/form/presupuestos/cliente/items/_datosGenerales.php b/ci4/app/Views/themes/vuexy/form/presupuestos/cliente/items/_datosGenerales.php index 2456bd2a..5b15cddd 100644 --- a/ci4/app/Views/themes/vuexy/form/presupuestos/cliente/items/_datosGenerales.php +++ b/ci4/app/Views/themes/vuexy/form/presupuestos/cliente/items/_datosGenerales.php @@ -179,7 +179,7 @@ - diff --git a/ci4/app/Views/themes/vuexy/form/presupuestos/cliente/viewPresupuestoclienteForm.php b/ci4/app/Views/themes/vuexy/form/presupuestos/cliente/viewPresupuestoclienteForm.php index a3126558..cdd7b7de 100644 --- a/ci4/app/Views/themes/vuexy/form/presupuestos/cliente/viewPresupuestoclienteForm.php +++ b/ci4/app/Views/themes/vuexy/form/presupuestos/cliente/viewPresupuestoclienteForm.php @@ -25,6 +25,9 @@ + + + diff --git a/httpdocs/assets/js/safekat/pages/presupuestoCliente/datosGenerales.js b/httpdocs/assets/js/safekat/pages/presupuestoCliente/datosGenerales.js index a65a2863..b90bcee3 100644 --- a/httpdocs/assets/js/safekat/pages/presupuestoCliente/datosGenerales.js +++ b/httpdocs/assets/js/safekat/pages/presupuestoCliente/datosGenerales.js @@ -799,6 +799,8 @@ class DatosGenerales { this.divPosPaginasColor.removeClass('d-none'); } + $('.calcular-lomo').trigger('change'); + this.checkPaginasMultiplo4(); } diff --git a/httpdocs/assets/js/safekat/pages/presupuestoCliente/disenioInterior.js b/httpdocs/assets/js/safekat/pages/presupuestoCliente/disenioInterior.js index dc37f0ae..c7af7bcf 100644 --- a/httpdocs/assets/js/safekat/pages/presupuestoCliente/disenioInterior.js +++ b/httpdocs/assets/js/safekat/pages/presupuestoCliente/disenioInterior.js @@ -105,8 +105,6 @@ class DisenioInterior { } - - updatePapeles(papeles = null) { const context = this; @@ -1034,6 +1032,7 @@ class DisenioInterior { const gramaje = element[0].id; this.presupuestoCliente.calcularSolapas(event); + this.presupuestoCliente.checkLomoInterior(event); this.presupuestoCliente.checkForm(event); }); diff --git a/httpdocs/assets/js/safekat/pages/presupuestoCliente/presupuestoCliente.js b/httpdocs/assets/js/safekat/pages/presupuestoCliente/presupuestoCliente.js index 764e19eb..51dbcc02 100644 --- a/httpdocs/assets/js/safekat/pages/presupuestoCliente/presupuestoCliente.js +++ b/httpdocs/assets/js/safekat/pages/presupuestoCliente/presupuestoCliente.js @@ -113,6 +113,7 @@ class PresupuestoCliente { $(".calcular-presupuesto").on('change', this.checkForm.bind(this)); $(".calcular-solapas").on('change', this.calcularSolapas.bind(this)); + $(".calcular-lomo").on('change', this.checkLomoInterior.bind(this)); } @@ -180,6 +181,29 @@ class PresupuestoCliente { } } + checkLomoInterior() { + + /* Limites lomo */ + this.#getDatos(false, true); + if (Object.values(this.datos).every(this.#isValidDataForm)) { + new Ajax('/presupuestocliente/checklomo', + this.datos, + {}, + (response) => { + if (response === null || response === undefined || response === "") { + console.log("Error en el calculo del lomo interior."); + return; + } + if(response.errors.status == 1){ + popErrorAlert('' + response.errors.value, "sk-alert", false); + } + console.log(response.errors); + }, + () => { } + ).post(); + } + } + checkForm(event) { this.#processResumenLateral(); @@ -526,9 +550,6 @@ class PresupuestoCliente { } } - popAlert2Hide(); - - if (response.tiradas && response.tiradas.length) { let tiradas = { ...response.tiradas }; @@ -536,6 +557,8 @@ class PresupuestoCliente { tiradas.sort((a, b) => a - b); this.divTiradasPrecios.empty(); + popAlert2Hide(); + for (let i = 0; i < tiradas.length; i++) { new tarjetaTiradasPrecio( this.divTiradasPrecios, @@ -550,7 +573,7 @@ class PresupuestoCliente { } } - + this.lc.val(parseFloat(response.info.lomo_cubierta).toFixed(2)); this.lsc.val(parseFloat(response.info.lomo_sobrecubierta).toFixed(2)); setTimeout(() => { From 0781a283eb48a920ed91ea4f6429172e05c7fc74 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jaime=20Jim=C3=A9nez?= Date: Thu, 26 Dec 2024 19:24:25 +0100 Subject: [PATCH 6/7] borrado del error --- .../js/safekat/pages/presupuestoCliente/presupuestoCliente.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/httpdocs/assets/js/safekat/pages/presupuestoCliente/presupuestoCliente.js b/httpdocs/assets/js/safekat/pages/presupuestoCliente/presupuestoCliente.js index 51dbcc02..577190f2 100644 --- a/httpdocs/assets/js/safekat/pages/presupuestoCliente/presupuestoCliente.js +++ b/httpdocs/assets/js/safekat/pages/presupuestoCliente/presupuestoCliente.js @@ -197,7 +197,9 @@ class PresupuestoCliente { if(response.errors.status == 1){ popErrorAlert('' + response.errors.value, "sk-alert", false); } - console.log(response.errors); + else{ + popAlert2Hide('sk-alert'); + } }, () => { } ).post(); From 8ad09ed49533ad3d8df03b23ee317937638e2376 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jaime=20Jim=C3=A9nez?= Date: Thu, 26 Dec 2024 20:44:30 +0100 Subject: [PATCH 7/7] no borrar papeles cuando se cambia tipo libro --- .../presupuestoCliente/datosGenerales.js | 23 +++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/httpdocs/assets/js/safekat/pages/presupuestoCliente/datosGenerales.js b/httpdocs/assets/js/safekat/pages/presupuestoCliente/datosGenerales.js index b90bcee3..7f4e6f5e 100644 --- a/httpdocs/assets/js/safekat/pages/presupuestoCliente/datosGenerales.js +++ b/httpdocs/assets/js/safekat/pages/presupuestoCliente/datosGenerales.js @@ -74,6 +74,8 @@ class DatosGenerales { this.rl_retractilado = $("#rl_retractilado"); this.rl_retractilado5 = $("#rl_retractilado5"); + this.cargando = false; + this.initValidation(); } @@ -534,6 +536,8 @@ class DatosGenerales { cargarDatos(datos) { + this.cargando = true; + this.titulo.val(datos.titulo); this.autor.val(datos.autor); this.isbn.val(datos.isbn); @@ -600,6 +604,8 @@ class DatosGenerales { this.retractilado5.prop('checked', datos.retractilado5); this.ivaReducido.val(datos.ivaReducido ? 1 : 0).trigger('change'); + + this.cargando = false; } getCliente() { @@ -736,8 +742,6 @@ class DatosGenerales { this.checkPaginasMultiplo4(); // Para recalcular el presupuesto - $('#divGramajeInterior').empty(); - $('#divGramajeInteriorColor').empty(); element.trigger('change'); } @@ -782,6 +786,7 @@ class DatosGenerales { this.formValidation.revalidateField('paginas'); // Se configura dependiento si hay color o no + const lastLayoutColor = $('#negroEstandar').hasClass('d-none'); if (paginasColor == 0) { this.#handleInteriorLayout('negro'); @@ -789,6 +794,13 @@ class DatosGenerales { this.divPosPaginasColor.addClass('d-none'); this.posPaginasColor.val(""); this.pagColorConsecutivas.prop('checked', false); + + if(lastLayoutColor && !this.cargando){ + + $('#divPapelInterior').empty(); + $('#divGramajeInterior').empty(); + $('#negroEstandar').trigger('click'); + } } else { if (this.papelDiferente.is(":checked")) @@ -797,6 +809,13 @@ class DatosGenerales { this.#handleInteriorLayout('color'); this.divPaginasColorConsecutivas.removeClass('d-none'); this.divPosPaginasColor.removeClass('d-none'); + + if(!lastLayoutColor && !this.cargando){ + + $('#divPapelInterior').empty(); + $('#divGramajeInterior').empty(); + $('#colorEstandar').trigger('click'); + } } $('.calcular-lomo').trigger('change');