From 184e4f3427db81195ddcb0e8592b119bbef90365 Mon Sep 17 00:00:00 2001 From: imnavajas Date: Tue, 26 Nov 2024 16:13:36 +0100 Subject: [PATCH 01/11] Actualizacion automatica: 2024-11-26 16:13:34 --- ci4/app/Controllers/Utiles.php | 344 +++++++++++++++++++++++++++++++++ 1 file changed, 344 insertions(+) create mode 100644 ci4/app/Controllers/Utiles.php diff --git a/ci4/app/Controllers/Utiles.php b/ci4/app/Controllers/Utiles.php new file mode 100644 index 00000000..63978404 --- /dev/null +++ b/ci4/app/Controllers/Utiles.php @@ -0,0 +1,344 @@ +asObject()->where('tarifa_encuadernacion_id', $teOrigen)->findAll(); + + foreach ($tarifasTiradas as $tarifasTirada) { + + echo "--->" . $tarifasTirada->id . "
"; + + $tarifasLineas = $tel_model->asObject()->where('tirada_encuadernacion_id', $tarifasTirada->id)->findAll(); + + // Prepare the data + unset($tarifasTirada->id); + $tarifasTirada->tarifa_encuadernacion_id = $teDestino; + $tarifasTirada->created_at = date('Y-m-d H:i:s'); + $tarifasTirada->updated_at = date('Y-m-d H:i:s'); + //var_dump($tarifasTirada); + + // Insert it + $tet_model->insert($tarifasTirada); + $inserted_id = $tet_model->insertID(); + + foreach ($tarifasLineas as $tarifasLinea) { + + echo "------>" . $tarifasLinea->id . "
"; + + // Prepare the data + unset($tarifasLinea->id); + $tarifasLinea->tirada_encuadernacion_id = $inserted_id; + $tarifasLinea->created_at = date('Y-m-d H:i:s'); + $tarifasLinea->updated_at = date('Y-m-d H:i:s'); + //var_dump($tarifasLinea); + + // Insert it + $tel_model->insert($tarifasLinea); + + } + } + + } + + + public function get_tarifas_encuadernacion() + { + // Llamar al modelo + $model = model('App\Models\Tarifas\TarifaEncuadernacionModel'); + + // Obtener todos los resultados + $results = $model->where(['is_deleted' => 0])->findAll(); + + // Iterar sobre cada entidad + echo '
';
+        foreach ($results as $result) {
+            // Cada $result es una instancia de una entidad
+            print_r($result->toArray());  // Convierte la entidad a un array para imprimir sus valores
+        }
+        echo '
'; + } + + public function get_tarifa_encuadernacion($tarifaEncuadernacionId) + { + // Llamar a los modelos + $modelTE = model('App\Models\Tarifas\TarifaEncuadernacionModel'); + $modelTELineas = model('App\Models\Tarifas\TarifaEncuadernacionLineaModel'); + $modelTELineasHoras = model('App\Models\Tarifas\TarifaEncuadernacionLineaHorasModel'); + $modelTETiradas = model('App\Models\Tarifas\TarifaEncuadernacionTiradaModel'); + + + // Obtener el registro principal de tarifa_encuadernacion + $tarifas_encuadernacion = $modelTE->where([ + 'id' => $tarifaEncuadernacionId, + 'is_deleted' => 0 + ])->findAll(); + + // Verificar si se encontró la tarifa + if (empty($tarifas_encuadernacion)) { + echo "No se encontraron datos para la tarifa de encuadernación con ID: $tarifaEncuadernacionId."; + return; + } + + // Imprimir la tarifa de encuadernación principal + echo "

---------------------- DATO TARIFA ENCUADERNACION ----------------------

"; + foreach ($tarifas_encuadernacion as $tarifa_encuadernacion) { + echo "ID Tarifa: " . $tarifa_encuadernacion->id . "
"; + echo "Nombre: " . $tarifa_encuadernacion->nombre . "
"; + echo "
"; + } + + // Obtener las tiradas asociadas a esta tarifa de encuadernación + $tarifas_encuadernacion_tiradas = $modelTETiradas->where([ + 'tarifa_encuadernacion_id' => $tarifaEncuadernacionId, + 'is_deleted' => 0 + ])->findAll(); + + // Verificar si existen tiradas para la tarifa de encuadernación + if (empty($tarifas_encuadernacion_tiradas)) { + echo "No hay tiradas asociadas a esta tarifa de encuadernación."; + return; + } + + // Imprimir las tiradas asociadas + echo "

---------------------- DATO TARIFA ENCUADERNACION (TIRADAS) -------------

"; + foreach ($tarifas_encuadernacion_tiradas as $tarifa_encuadernacion_tirada) { + echo "ID Tirada: " . $tarifa_encuadernacion_tirada->id . "
"; + echo "Tirada Min: " . $tarifa_encuadernacion_tirada->tirada_min . "
"; + echo "Tirada Max: " . $tarifa_encuadernacion_tirada->tirada_max . "
"; + + // Obtener las líneas asociadas a esta tirada + $tarifas_encuadernacion_lineas = $modelTELineas->where([ + 'tirada_encuadernacion_id' => $tarifa_encuadernacion_tirada->id, + 'is_deleted' => 0 + ])->findAll(); + + // Verificar si existen líneas asociadas a la tirada + if (empty($tarifas_encuadernacion_lineas)) { + echo "No hay líneas asociadas a esta tirada de encuadernación.
"; + } else { + // Imprimir las líneas asociadas + echo ""; + } + + // Obtener las líneas y horas asociadas a esta tirada + $tarifas_encuadernacion_lineas_horas = $modelTELineasHoras->where([ + 'tirada_encuadernacion_id' => $tarifa_encuadernacion_tirada->id, + 'is_deleted' => 0 + ])->findAll(); + + // Verificar si existen líneas y horas asociadas a la tirada + if (empty($tarifas_encuadernacion_lineas_horas)) { + echo "No hay líneas y horas asociadas a esta tirada de encuadernación.
"; + } else { + // Imprimir las líneas asociadas + echo ""; + } + + echo "
"; + } + + echo "

---------------------- FIN DE DATO TARIFA ENCUADERNACION ----------------------

"; + } + + public function delete_tarifa_encuadernacion($tarifaEncuadernacionId) + { + // Llamar a los modelos + $modelTE = model('App\Models\Tarifas\TarifaEncuadernacionModel'); + $modelTELineas = model('App\Models\Tarifas\TarifaEncuadernacionLineaModel'); + $modelTELineasHoras = model('App\Models\Tarifas\TarifaEncuadernacionLineaHorasModel'); + $modelTETiradas = model('App\Models\Tarifas\TarifaEncuadernacionTiradaModel'); + + // Obtener el registro principal de tarifa_encuadernacion + $tarifas_encuadernacion = $modelTE->where([ + 'id' => $tarifaEncuadernacionId, + 'is_deleted' => 0 + ])->findAll(); + + // Verificar si se encontró la tarifa + if (empty($tarifas_encuadernacion)) { + echo "No se encontró la tarifa de encuadernación con ID: $tarifaEncuadernacionId."; + return; + } + + // Iniciar eliminación de datos asociados + echo "Eliminando datos asociados a la tarifa de encuadernación ID: $tarifaEncuadernacionId...
"; + + // Eliminar las tiradas asociadas a la tarifa de encuadernación + $tarifas_encuadernacion_tiradas = $modelTETiradas->where([ + 'tarifa_encuadernacion_id' => $tarifaEncuadernacionId, + 'is_deleted' => 0 + ])->findAll(); + + if (!empty($tarifas_encuadernacion_tiradas)) { + foreach ($tarifas_encuadernacion_tiradas as $tarifa_encuadernacion_tirada) { + // Eliminar las líneas de horas asociadas a cada tirada + $tarifas_encuadernacion_lineas_horas = $modelTELineasHoras->where([ + 'tirada_encuadernacion_id' => $tarifa_encuadernacion_tirada->id, + 'is_deleted' => 0 + ])->findAll(); + + if (!empty($tarifas_encuadernacion_lineas_horas)) { + foreach ($tarifas_encuadernacion_lineas_horas as $tarifa_encuadernacion_linea_hora) { + $modelTELineasHoras->delete($tarifa_encuadernacion_linea_hora->id); // Eliminar la línea/hora + echo "Eliminando Línea/Hora ID: " . $tarifa_encuadernacion_linea_hora->id . "
"; + } + } + + // Eliminar las líneas asociadas a cada tirada + $tarifas_encuadernacion_lineas = $modelTELineas->where([ + 'tirada_encuadernacion_id' => $tarifa_encuadernacion_tirada->id, + 'is_deleted' => 0 + ])->findAll(); + + if (!empty($tarifas_encuadernacion_lineas)) { + foreach ($tarifas_encuadernacion_lineas as $tarifa_encuadernacion_linea) { + $modelTELineas->delete($tarifa_encuadernacion_linea->id); // Eliminar la línea + echo "Eliminando Línea ID: " . $tarifa_encuadernacion_linea->id . "
"; + } + } + + // Eliminar la tirada + $modelTETiradas->delete($tarifa_encuadernacion_tirada->id); // Eliminar la tirada + echo "Eliminando Tirada ID: " . $tarifa_encuadernacion_tirada->id . "
"; + } + } + + echo "Proceso de eliminación completado."; + } + + public function clone_tarifa_encuadernacion($origenId, $destinoId) + { + // Llamar a los modelos + $modelTETiradas = model('App\Models\Tarifas\TarifaEncuadernacionTiradaModel'); + $modelTELineas = model('App\Models\Tarifas\TarifaEncuadernacionLineaModel'); + $modelTELineasHoras = model('App\Models\Tarifas\TarifaEncuadernacionLineaHorasModel'); + + // 1. Eliminar el contenido asociado de la tarifa destino + $this->delete_tarifa_encuadernacion($destinoId); + + // 2. Obtener las tiradas asociadas a la tarifa origen + $tiradasOrigen = $modelTETiradas->where([ + 'tarifa_encuadernacion_id' => $origenId, + 'is_deleted' => 0 + ])->findAll(); + + foreach ($tiradasOrigen as $tiradaOrigen) { + // Crear un nuevo registro para la tirada en la tarifa destino + $nuevaTirada = [ + 'tarifa_encuadernacion_id' => $destinoId, + 'proveedor_id' => $tiradaOrigen->proveedor_id, + 'importe_fijo' => $tiradaOrigen->importe_fijo, + 'tirada_min' => $tiradaOrigen->tirada_min, + 'tirada_max' => $tiradaOrigen->tirada_max, + 'user_created_id' => auth()->id(), + 'is_deleted' => 0, + 'created_at' => date('Y-m-d H:i:s'), + 'updated_at' => date('Y-m-d H:i:s') + ]; + + $nuevaTiradaId = $modelTETiradas->insert($nuevaTirada); + + + + // 3. Clonar las líneas asociadas a esta tirada + $lineasOrigen = $modelTELineas->where([ + 'tirada_encuadernacion_id' => $tiradaOrigen->id, + 'is_deleted' => 0 + ])->findAll(); + + foreach ($lineasOrigen as $lineaOrigen) { + $nuevaLinea = [ + 'tirada_encuadernacion_id' => $nuevaTiradaId, + 'paginas_libro_min' => $lineaOrigen->paginas_libro_min, + 'paginas_libro_max' => $lineaOrigen->paginas_libro_max, + 'dimensiones_id' => $lineaOrigen->dimensiones_id, + 'precio_min' => $lineaOrigen->precio_min, + 'precio_max' => $lineaOrigen->precio_max, + 'tirada_min' => $lineaOrigen->tirada_min, + 'tirada_max' => $lineaOrigen->tirada_max, + 'total_min' => $lineaOrigen->total_min, + 'margen' => $lineaOrigen->margen, + 'user_created_id' => auth()->id(), + 'is_deleted' => 0, + 'created_at' => date('Y-m-d H:i:s'), + 'updated_at' => date('Y-m-d H:i:s') + ]; + + $modelTELineas->insert($nuevaLinea); + } + + // 4. Clonar las líneas y horas asociadas a esta tirada + $lineasHorasOrigen = $modelTELineasHoras->where([ + 'tirada_encuadernacion_id' => $tiradaOrigen->id, + 'is_deleted' => 0 + ])->findAll(); + + foreach ($lineasHorasOrigen as $lineaHoraOrigen) { + $nuevaLineaHora = [ + 'tirada_encuadernacion_id' => $nuevaTiradaId, + 'tiempo_min' => $lineaHoraOrigen->tiempo_min, + 'tiempo_max' => $lineaHoraOrigen->tiempo_max, + 'precio_hora' => $lineaHoraOrigen->precio_hora, + 'total_min' => $lineaHoraOrigen->total_min, + 'margen' => $lineaHoraOrigen->margen, + 'user_created_id' => auth()->id(), + 'is_deleted' => 0, + 'created_at' => date('Y-m-d H:i:s'), + 'updated_at' => date('Y-m-d H:i:s') + ]; + + $modelTELineasHoras->insert($nuevaLineaHora); + } + } + } + + + + + + +} From 389501961b86618c36e68cc700b5a94c3f0f1120 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jaime=20Jim=C3=A9nez?= Date: Tue, 26 Nov 2024 20:28:50 +0100 Subject: [PATCH 02/11] =?UTF-8?q?a=C3=B1adidos=20seleccion=20de=20papeles?= =?UTF-8?q?=20cubierta=20desde=20bbdd?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Presupuestos/Presupuestocliente.php | 4 +- .../Configuracion/PapelGenericoModel.php | 3 + .../cliente/items/_disenioCubierta.php | 98 +--- .../presupuestoCliente/disenioCubierta.js | 461 +++++++++++++----- .../presupuestoCliente/disenioInterior.js | 27 +- .../presupuestoCliente/presupuestoCliente.js | 2 +- .../pages/presupuestoCliente/resumen.js | 2 +- 7 files changed, 377 insertions(+), 220 deletions(-) diff --git a/ci4/app/Controllers/Presupuestos/Presupuestocliente.php b/ci4/app/Controllers/Presupuestos/Presupuestocliente.php index 5012bda2..aa04c45f 100755 --- a/ci4/app/Controllers/Presupuestos/Presupuestocliente.php +++ b/ci4/app/Controllers/Presupuestos/Presupuestocliente.php @@ -324,7 +324,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController // Cubierta $cubierta = [ - 'papel_generico_cubierta' => $modelPapelGenerico->getIdFromCode($cubierta['papelCubierta']), + 'papel_generico_cubierta' => $modelPapelGenerico->where('id', $cubierta['papelCubierta'])->first()->toArray(), 'gramajeCubierta' => intval($cubierta['gramajeCubierta']), 'carasCubierta' => intval($cubierta['carasImpresion'] ?? 0), 'solapasCubierta' => intval($cubierta['solapas'] ?? 0), @@ -696,7 +696,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController // Cubierta $cubierta = [ - 'papel_generico_cubierta' => $modelPapelGenerico->getIdFromCode($cubierta['papelCubierta']), + 'papel_generico_cubierta' => $modelPapelGenerico->where('id', $cubierta['papelCubierta'])->first()->toArray(), 'gramajeCubierta' => intval($cubierta['gramajeCubierta']), 'carasCubierta' => intval($cubierta['carasImpresion'] ?? 0), 'solapasCubierta' => intval($cubierta['solapas'] ?? 0), diff --git a/ci4/app/Models/Configuracion/PapelGenericoModel.php b/ci4/app/Models/Configuracion/PapelGenericoModel.php index 34dacfe0..60257b83 100755 --- a/ci4/app/Models/Configuracion/PapelGenericoModel.php +++ b/ci4/app/Models/Configuracion/PapelGenericoModel.php @@ -394,6 +394,9 @@ class PapelGenericoModel extends \App\Models\BaseModel if ($papel_especial == true) { $builder->where("t1.show_in_client_special", 1); } + else{ + $builder->where("t1.show_in_client_special", 0); + } if ($tipo == 'colorhq' || $tipo == 'negrohq') { $builder->where("t2.rotativa", 0); diff --git a/ci4/app/Views/themes/vuexy/form/presupuestos/cliente/items/_disenioCubierta.php b/ci4/app/Views/themes/vuexy/form/presupuestos/cliente/items/_disenioCubierta.php index 5850e258..fc3c3b6f 100644 --- a/ci4/app/Views/themes/vuexy/form/presupuestos/cliente/items/_disenioCubierta.php +++ b/ci4/app/Views/themes/vuexy/form/presupuestos/cliente/items/_disenioCubierta.php @@ -138,101 +138,29 @@ -
+

Papel cubierta

- -
- " - alt="Cartulina estucada"> - -
- -
- " alt="Estucado mate"> - -
+
+
+ + +
+
+
- - -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- Recomendado -
-
- -
-
- -
-
-
-
diff --git a/httpdocs/assets/js/safekat/pages/presupuestoCliente/disenioCubierta.js b/httpdocs/assets/js/safekat/pages/presupuestoCliente/disenioCubierta.js index 84301d20..2c5ebec3 100644 --- a/httpdocs/assets/js/safekat/pages/presupuestoCliente/disenioCubierta.js +++ b/httpdocs/assets/js/safekat/pages/presupuestoCliente/disenioCubierta.js @@ -1,16 +1,40 @@ +import { getToken } from '../../common/common.js'; +import { capitalizeFirstLetter } from '../../common/common.js'; + +import Ajax from '../../components/ajax.js'; +import ClassSelect from '../../components/select2.js'; + + class DisenioCubierta { - constructor(domItem, wizardForm, validatorStepper) { - + constructor(domItem, wizardForm, validatorStepper, presupuestoCliente) { + this.domItem = domItem; this.allowNext = true; + this.presupuestoCliente = presupuestoCliente; + + this.csrf_token = getToken(); + this.csrf_hash = $('#mainContainer').find('input[name="' + this.csrf_token + '"]').val(); + this.wizardStep = wizardForm.querySelector('#cubierta-libro'); this.validatorStepper = validatorStepper; this.disenioCubierta = this.domItem.find(".tipo-cubierta"); this.solapasCubierta = this.domItem.find(".solapas-cubierta"); - this.papelCubierta = this.domItem.find(".papel-cubierta"); + this.textoPapelCubierta = this.domItem.find("#textoPapelCubierta"); + + this.divPapelEspecial = this.domItem.find("#divPapelEspecialCubierta"); + this.papelEspecial = new ClassSelect($("#papelEspecialCubiertaSel"), + '/papelesgenericos/selectpapelespecial', + window.translations["selectPapel"], + false, + { + [this.csrf_token]: this.csrf_hash, + tipo: 'colorhq', + cubierta: 1, + } + ); this.divSolapas = this.domItem.find("#divSolapasCubierta"); this.divCarasImpresion = this.domItem.find("#divCarasImpresion"); @@ -35,16 +59,7 @@ class DisenioCubierta { this.estucadoMate = this.domItem.find("#estucadoMate"); this.divPapelCubierta = this.domItem.find("#divPapelCubierta"); - this.divGramajeCubierta = this.domItem.find("#divGramajeCubierta"); - this.gramaje = this.domItem.find(".check-gramaje-cubierta"); - this.gramaje170 = $(this.domItem.find("#divGramaje170Cubierta")); - this.gramaje250 = $(this.domItem.find("#divGramaje250Cubierta")); - this.gramaje270 = $(this.domItem.find("#divGramaje270Cubierta")); - this.gramaje300 = $(this.domItem.find("#divGramaje300Cubierta")); - this.gramaje350 = $(this.domItem.find("#divGramaje350Cubierta")); - - this.checksGramaje = $('.check-gramaje-cubierta'); this.cubiertaPlastificado = this.domItem.find("#plastificado"); this.cubiertaBarniz = this.domItem.find("#barniz"); @@ -91,12 +106,14 @@ class DisenioCubierta { else if (targetElement.classList.contains('solapas-cubierta')) { this.#handleMenuSolapas(); } - else if (targetElement.classList.contains('papel-cubierta')) { - this.#handleMenuPapel(); - } } }); }); + + this.papelCubierta = null; + this.gramaje = null; + + this.cargando = true; } @@ -104,10 +121,12 @@ class DisenioCubierta { const self = this; + this.papelEspecial.init(); + $('#papelEspecialCubiertaSel').on("change", this.#handlePapelCubiertaEspecial.bind(this)); + // Eventos this.disenioCubierta.on('click', this.#handleDisenioCubierta.bind(this)); this.solapasCubierta.on('click', this.#handleSolapasCubierta.bind(this)); - this.papelCubierta.on('click', this.#handlePapelCubierta.bind(this)); this.tamanioSolapasCubierta.on('change', this.#handleTamanioSolapas.bind(this)); this.altoFaja.on('blur', this.#handleInputs); this.solapasSobrecubierta.on('blur', this.#handleInputs); @@ -129,23 +148,16 @@ class DisenioCubierta { this.observer.observe(this.tapaBlanda[0], { attributes: true }); this.observer.observe(this.tapaDuraLomoRecto[0], { attributes: true }); this.observer.observe(this.tapaDuraLomoRedondo[0], { attributes: true }); - this.observer.observe(this.cartulinaEstucada[0], { attributes: true }); - this.observer.observe(this.estucadoMate[0], { attributes: true }); this.observer.observe(this.conSolapas[0], { attributes: true }); this.observer.observe(this.sinSolapas[0], { attributes: true }); - - this.checksGramaje.each(function () { - - const customOptionEL = $(this); - customOptionEL.on('click', function () { - self.#handleClickGramaje(customOptionEL); - }); - }); } cargarDatos(datosCubierta, datosGuardas, datosSobrecubierta) { + this.papelCubierta = datosCubierta.papel.id; + this.gramaje = datosCubierta.gramaje; + if (datosCubierta.lomoRedondo) { this.tapaDuraLomoRedondo.trigger('click'); } @@ -259,17 +271,19 @@ class DisenioCubierta { validators: { callback: { callback: function (input) { - const div = $('#divPapelCubierta'); - if (div.hasClass("d-none")) return true; - div.find('.fv-plugins-message-container').remove(); - if ($('.papel-cubierta.selected').length > 0) { + $('#divPapelCubierta').find('.fv-plugins-message-container').remove(); + $('#divPapelEspecialCubierta').find('.fv-plugins-message-container').remove(); + + const papelSeleccionado = $('.custom-selector-papel-cubierta input[type="radio"]:checked'); + if (papelSeleccionado.length > 0) { return true; + } else { - div.append(` + $('#divPapelCubierta').append(`
-
+
${window.translations["validation"].papel_interior}
@@ -280,20 +294,47 @@ class DisenioCubierta { } } }, + div_papel_especial_cubierta: { + validators: { + callback: { + callback: function (input) { + + $('#divPapelEspecialCubierta').find('.fv-plugins-message-container').remove(); + if ($('#divPapelEspecialCubierta').hasClass("d-none")) return true; + + if ($('#papelEspecialCubiertaSel').select2('data').length > 0) + return true; + else { + $('#divPapelEspecialCubierta').append(` +
+
+ ${window.translations["validation"].papel_interior} +
+
+ `); + return false; + } + + } + } + } + }, div_gramaje_cubierta: { validators: { callback: { callback: function (input) { - const div = $('#divGramajeCubierta'); // Selecciona el div - div.find('.fv-plugins-message-container').remove(); - if ($('.check-gramaje-cubierta:checked').length > 0) { + const divGramajeInterior = $('#divGramajeCubierta'); // Selecciona el div + + const gramajeSeleccionado = $('.custom-selector-gramaje-cubierta input[type="radio"]:checked'); + if (gramajeSeleccionado.length > 0) { return true; + } else { - div.append(` + divGramajeInterior.append(`
-
+
${window.translations["validation"].gramaje_interior}
@@ -319,6 +360,7 @@ class DisenioCubierta { case 'div_solapas_cubierta': case 'div_papel_cubierta': case 'div_gramaje_cubierta': + case 'div_papel_especial_cubierta': return '.col-sm-10'; default: return '.col-sm-3'; @@ -338,45 +380,48 @@ class DisenioCubierta { processMenuLateral() { let menu_off = true; - - if($('.papel-cubierta.selected').length>0 && this.getGramaje() != null){ - this.rl_papel_cubierta.text($($('.papel-cubierta.selected').find('.form-label')).text() + " " + - this.getGramaje() + " gr"); + + const papel = this.getPapel(true); + const gramaje = this.getGramaje(); + + if (papel != null && gramaje != null) { + + this.rl_papel_cubierta.text(papel + " " + gramaje + " gr"); this.rl_acabado_cubierta.text(this.domItem.find("#plastificado").children("option:selected").text()); this.rl_papel_cubierta.removeClass('d-none'); this.rl_acabado_cubierta.removeClass('d-none'); - if(this.carasCubierta.find('option:selected').length>0){ + if (this.carasCubierta.find('option:selected').length > 0) { this.rl_caras_cubierta.text("Impresa " + this.carasCubierta.find('option:selected').text()); this.rl_caras_cubierta.removeClass('d-none'); menu_off = false; } - else{ + else { this.rl_caras_cubierta.addClass('d-none'); } - + menu_off = false; } - else{ + else { this.rl_papel_cubierta.addClass('d-none'); this.rl_acabado_cubierta.addClass('d-none'); } - + if (!menu_off) this.rl_cubierta.removeClass('d-none'); else this.rl_cubierta.addClass('d-none'); // Sobrecubierta solo se muestra si cubierta ok - if(!this.rl_cubierta.hasClass('d-none')){ + if (!this.rl_cubierta.hasClass('d-none')) { this.rl_sobrecubierta.removeClass('d-none'); - if(!this.sobrecubierta.is(":checked")){ + if (!this.sobrecubierta.is(":checked")) { this.rl_no_sobrecubierta.removeClass('d-none'); this.rl_papel_sobrecubierta.addClass('d-none'); this.rl_tamanio_sobrecubierta.addClass('d-none'); this.rl_acabado_sobrecubierta.addClass('d-none'); } - else{ + else { this.rl_no_sobrecubierta.addClass('d-none'); this.rl_papel_sobrecubierta.removeClass('d-none'); this.rl_tamanio_sobrecubierta.removeClass('d-none'); @@ -386,12 +431,12 @@ class DisenioCubierta { this.rl_papel_sobrecubierta.text(sobrecubierta.papel + " " + sobrecubierta.gramaje + " gr") this.rl_tamanio_sobrecubierta.text("Solapas: " + sobrecubierta.solapas + " mm") let acabado_text = sobrecubierta.plastificado; - if(acabado_text.includes("Sin plastificar")) + if (acabado_text.includes("Sin plastificar")) acabado_text = "Sin plastificar"; this.rl_acabado_sobrecubierta.text(acabado_text); } } - else{ + else { this.rl_sobrecubierta.addClass('d-none'); } @@ -419,11 +464,30 @@ class DisenioCubierta { } - getPapel() { + getPapel(forResumen = false) { try { - if (this.papelCubierta.filter('.selected').length > 0) { - return this.papelCubierta.filter('.selected').attr('cod'); + let checkedPapel = $('.custom-selector-papel-cubierta input[type="radio"]:checked'); + if (this.papelCubierta != null && checkedPapel != null && checkedPapel.length > 0) { + if (forResumen) { + + if (checkedPapel.length == 0) + return null; + let radioButtonId = checkedPapel[0].id; + if (radioButtonId == 'papelEspecialCubierta') + return capitalizeFirstLetter(this.papelEspecial.getText()); + else { + let associatedLabel = $('label[for="' + radioButtonId + '"]'); + return capitalizeFirstLetter($(associatedLabel[0]).text().toLocaleLowerCase()); + } + } + else { + if (this.divPapelEspecial.hasClass('d-none')) + return this.papelCubierta; + else { + return this.papelEspecial.getVal(); + } + } } return null; } @@ -435,17 +499,13 @@ class DisenioCubierta { getGramaje() { + let checkedGramaje = $('.custom-selector-gramaje-cubierta input[type="radio"]:checked'); + try { - if (this.divGramajeCubierta.hasClass("d-none")) - return null; - - if (this.gramaje.filter(':checked').length > 0) - return this.gramaje.filter(':checked').attr('data-value'); - - else - return null; - + if (checkedGramaje.length == 0) + return null; + return checkedGramaje[0].id.split('_')[1]; } catch (e) { return null; } @@ -606,8 +666,6 @@ class DisenioCubierta { element.closest(class2Find).toggleClass('selected'); element.closest('.image-presupuesto').toggleClass('selected'); - $(".papel-cubierta").removeClass("selected"); - if (this.tapaBlanda.hasClass("selected")) { if (this.carasCubierta.val() == 2) { this.cartulinaEstucada.removeClass("d-none"); @@ -651,30 +709,10 @@ class DisenioCubierta { } - #handlePapelCubierta(event) { - // Accede al ID del elemento que disparó el evento - const element = $(event.target); - - let class2Find = '.papel-cubierta'; - - let containers = element.closest(class2Find).parent().find(class2Find); - for (let container of containers) { - if (container != element.closest(class2Find)[0]) { - $(container).removeClass('selected'); - $(container).find('.image-presupuesto').removeClass('selected'); - } - } - - element.closest(class2Find).toggleClass('selected'); - element.closest('.image-presupuesto').toggleClass('selected'); - - element.trigger('change'); - } - #handleMenuTipoCubierta() { if (this.tapaBlanda.hasClass("selected")) { - + this.divSolapas.removeClass("d-none"); this.divCarasImpresion.removeClass("d-none"); this.divConfigGuardas.addClass("d-none"); @@ -684,15 +722,14 @@ class DisenioCubierta { this.divSolapas.addClass("d-none"); this.divCarasImpresion.addClass("d-none"); this.divConfigGuardas.removeClass("d-none"); - this.#handleMenuPapel(); - } else { this.divSolapas.addClass("d-none"); this.divCarasImpresion.addClass("d-none"); this.divConfigGuardas.addClass("d-none"); - this.#handleMenuPapel(); } + + this.#handleMenuPapel(); } @@ -708,42 +745,228 @@ class DisenioCubierta { #handleMenuPapel() { - $(".check-gramaje-cubierta").prop("checked", false); + this.divGramajeCubierta.empty(); + new Ajax('/papelesgenericos/getpapelcliente', + { + [this.csrf_token]: this.csrf_hash, + tipo: 'colorhq', + cubierta: 1, + }, + {}, + (response) => { this.fillPapeles(response); }, + (response) => { console.log(response); } + ).get(); + } - if (!this.tapaBlanda.hasClass("selected") && !this.tapaDuraLomoRecto.hasClass("selected") && !this.tapaDuraLomoRedondo.hasClass("selected")) { - this.divGramajeCubierta.addClass("d-none"); - this.estucadoMate.removeClass("selected"); - this.cartulinaEstucada.removeClass("selected"); + + #handlePapelCubiertaEspecial() { + + const context = this; + + this.papelCubierta = this.papelEspecial.getVal(); + + new Ajax('/papelesgenericos/getpapelcliente', + { + [this.csrf_token]: this.csrf_hash, + papel: this.papelCubierta, + tipo: 'colorhq', + cubierta: 1, + }, + {}, + this.fillGramajes.bind(context), + (response) => { console.log(response); } + ).get(); + + } + + + fillPapeles(response) { + + this.divPapelCubierta.empty(); + this.divGramajeCubierta.empty(); + + if (response.papeles.length > 0) { + this.textoPapelCubierta.removeClass('d-none'); + } + else { + this.textoPapelCubierta.addClass("d-none"); + } + + response.papeles.forEach(papel => { + var container = $('
', { + class: 'custom-selector custom-selector-papel-cubierta d-flex flex-column align-items-center justify-content-center' + }); + + var radioButton = $('', { + type: 'radio', // Tipo de input + name: 'calcular-presupuesto papel-cubierta', + id: 'papelCubierta_' + papel.id, // ID único + value: 'option1' // Valor del radio button + }); + + // Crear una etiqueta para el radio button + var label = $('
@@ -113,7 +113,7 @@ -
@@ -123,20 +123,20 @@
+ class="form-control formato_libro calcular-presupuesto calcular-solapas num-input" min="110" value="110">
+ class="form-control formato_libro calcular-presupuesto calcular-solapas num-input" min="170" value="170">
- @@ -153,7 +153,7 @@ -
@@ -166,7 +166,7 @@ -
@@ -179,7 +179,7 @@ -
@@ -234,28 +234,28 @@
-
+
" alt="Fresado">
Fresado (a partir de 32 páginas)
-
+
" alt="Grapado">
Grapado (entre 12 y 40 páginas)
-
+
" alt="Espiral">
Espiral
-
+
" alt="Cosido">
diff --git a/ci4/app/Views/themes/vuexy/form/presupuestos/cliente/items/_disenioCubierta.php b/ci4/app/Views/themes/vuexy/form/presupuestos/cliente/items/_disenioCubierta.php index fc3c3b6f..5b242bca 100644 --- a/ci4/app/Views/themes/vuexy/form/presupuestos/cliente/items/_disenioCubierta.php +++ b/ci4/app/Views/themes/vuexy/form/presupuestos/cliente/items/_disenioCubierta.php @@ -91,7 +91,7 @@ -
+
Entre 60 y 120 mm
@@ -261,7 +261,7 @@ -
+
Entre 60 y 120 mm
diff --git a/ci4/app/Views/themes/vuexy/form/presupuestos/cliente/items/_disenioInterior.php b/ci4/app/Views/themes/vuexy/form/presupuestos/cliente/items/_disenioInterior.php index 83e399a6..600e4686 100644 --- a/ci4/app/Views/themes/vuexy/form/presupuestos/cliente/items/_disenioInterior.php +++ b/ci4/app/Views/themes/vuexy/form/presupuestos/cliente/items/_disenioInterior.php @@ -65,7 +65,7 @@ Seleccione el papel especial
@@ -120,7 +120,7 @@ Seleccione el papel especial
diff --git a/httpdocs/assets/js/safekat/pages/presupuestoCliente/disenioCubierta.js b/httpdocs/assets/js/safekat/pages/presupuestoCliente/disenioCubierta.js index 86aabc91..0b39cec9 100644 --- a/httpdocs/assets/js/safekat/pages/presupuestoCliente/disenioCubierta.js +++ b/httpdocs/assets/js/safekat/pages/presupuestoCliente/disenioCubierta.js @@ -38,7 +38,7 @@ class DisenioCubierta { this.divSolapas = this.domItem.find("#divSolapasCubierta"); this.divCarasImpresion = this.domItem.find("#divCarasImpresion"); - this.divConfigGuardas = this.domItem.find("#divConfigGuardas"); + this.divConfigGuardas = this.domItem.find("#divConfigTapaDura"); this.carasCubierta = this.domItem.find("#carasCubierta"); @@ -49,6 +49,7 @@ class DisenioCubierta { this.sinSolapas = this.domItem.find("#solapasCubiertaNo"); this.conSolapas = this.domItem.find("#solapasCubiertaSi"); this.divTamanioSolapas = this.domItem.find("#divTamanioSolapas"); + this.textoSolapasCubierta = this.domItem.find("#textoSolapasCubierta"); this.tamanioSolapasCubierta = $(this.domItem.find("#solapasCubierta")); this.papelGuardas = this.domItem.find("#papelGuardas"); @@ -75,6 +76,7 @@ class DisenioCubierta { this.faja = this.domItem.find("#addFaja"); this.solapasSobrecubierta = this.domItem.find("#solapasSobrecubierta"); + this.textoSolapasSobrecubierta = this.domItem.find("#textoLimitesSolapasSobrecubierta"); this.solapasFaja = this.domItem.find("#solapasFaja"); this.altoFaja = this.domItem.find("#altoFaja"); @@ -325,6 +327,7 @@ class DisenioCubierta { callback: function (input) { const divGramajeInterior = $('#divGramajeCubierta'); // Selecciona el div + divGramajeInterior.find('.fv-plugins-message-container').remove(); const gramajeSeleccionado = $('.custom-selector-gramaje-cubierta input[type="radio"]:checked'); if (gramajeSeleccionado.length > 0) { diff --git a/httpdocs/assets/js/safekat/pages/presupuestoCliente/disenioInterior.js b/httpdocs/assets/js/safekat/pages/presupuestoCliente/disenioInterior.js index 6337bf90..02669b39 100644 --- a/httpdocs/assets/js/safekat/pages/presupuestoCliente/disenioInterior.js +++ b/httpdocs/assets/js/safekat/pages/presupuestoCliente/disenioInterior.js @@ -986,7 +986,7 @@ class DisenioInterior { var radioButton = $('', { type: 'radio', // Tipo de input - name: 'calcular-presupuesto gramaje-interior', + name: ' calcular-solapas calcular-presupuesto gramaje-interior', id: 'gramaje_' + valor.gramaje, // ID único value: 'option1' // Valor del radio button }); @@ -1001,6 +1001,7 @@ class DisenioInterior { const element = $(event.target); const gramaje = element[0].id; + this.presupuestoCliente.calcularSolapas(event); this.presupuestoCliente.checkForm(event); }); @@ -1044,7 +1045,7 @@ class DisenioInterior { var radioButton = $('', { type: 'radio', // Tipo de input - name: 'calcular-presupuesto gramaje-interior-color', + name: ' calcular-solapas calcular-presupuesto gramaje-interior-color', id: 'gramajeColor_' + valor.gramaje, // ID único value: 'option1' // Valor del radio button }); @@ -1059,6 +1060,7 @@ class DisenioInterior { const element = $(event.target); const gramaje = element[0].id; + this.presupuestoCliente.calcularSolapas(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 50d2ad45..431b1d76 100644 --- a/httpdocs/assets/js/safekat/pages/presupuestoCliente/presupuestoCliente.js +++ b/httpdocs/assets/js/safekat/pages/presupuestoCliente/presupuestoCliente.js @@ -11,7 +11,7 @@ import tarjetaTiradasPrecio from './tarjetaTiradasPrecio.js'; class PresupuestoCliente { constructor() { - + this.clientePresupuestoWizard = document.querySelector('#wizard-presupuesto-cliente'); this.validationStepper = new Stepper(this.clientePresupuestoWizard, { @@ -110,6 +110,7 @@ class PresupuestoCliente { $(".calcular-presupuesto").on('change', this.checkForm.bind(this)); + $(".calcular-solapas").on('change', this.calcularSolapas.bind(this)); } @@ -154,6 +155,28 @@ class PresupuestoCliente { return !(noPOD && siPOD); } + calcularSolapas(){ + + /* Solapas Max */ + this.#getDatos(false, true); + if (Object.values(this.datos).every(this.#isValidDataForm)) { + new Ajax('/presupuestocliente/calcularsolapas', + this.datos, + {}, + (response) => { + if (response === null || response === undefined || response === "") { + console.log("Error en el calculo máximo de solapas."); + return; + } + this.disenioCubierta.tamanioSolapasCubierta.attr('max', response); + this.disenioCubierta.solapasSobrecubierta.attr('max', response); + this.disenioCubierta.textoSolapasCubierta.text("Entre 60 y " + response + " mm"); + this.disenioCubierta.textoSolapasSobrecubierta.text("Entre 60 y " + response + " mm"); + }, + () => { } + ).post(); + } + } checkForm(event) { @@ -163,6 +186,7 @@ class PresupuestoCliente { return; } + if (this.calcularPresupuesto) { if (event.target.id === 'divDirecciones') { @@ -580,7 +604,7 @@ class PresupuestoCliente { } - #getDatos(save = false) { + #getDatos(save = false, calcularSolapas = false) { this.datos = { @@ -590,20 +614,12 @@ class PresupuestoCliente { tirada: this.datosGenerales.getTiradas(), paginas: this.datosGenerales.paginas.val(), paginasColor: this.datosGenerales.paginasColor.val(), - posPaginasColor: this.datosGenerales.posPaginasColor.val(), pagColorConsecutivas: this.datosGenerales.pagColorConsecutivas.is(':checked') ? 1 : 0, papelInteriorDiferente: this.datosGenerales.papelDiferente.is(':checked') ? 1 : 0, paginasCuadernillo: this.datosGenerales.paginasCuadernillo.val(), tipo: this.datosGenerales.tiposLibro.filter('.selected').attr('id'), - prototipo: this.datosGenerales.prototipo.is(':checked') ? 1 : 0, - ferro: this.datosGenerales.ferro.is(':checked') ? 1 : 0, - ferroDigital: this.datosGenerales.ferroDigital.is(':checked') ? 1 : 0, - marcapaginas: this.datosGenerales.marcapaginas.is(':checked') ? 1 : 0, - retractilado: this.datosGenerales.retractilado.is(':checked') ? 1 : 0, - retractilado5: this.datosGenerales.retractilado5.is(':checked') ? 1 : 0, - isColor: this.datosGenerales.getIsColor() ? 1 : 0, isHq: this.disenioInterior.getIsHq() ? 1 : 0, @@ -612,31 +628,46 @@ class PresupuestoCliente { gramajeInterior: this.disenioInterior.getGramaje(), }, + } - cubierta: { - tipoCubierta: this.disenioCubierta.disenioCubierta.filter('.selected').attr('id'), - papelCubierta: this.disenioCubierta.getPapel(), - gramajeCubierta: this.disenioCubierta.getGramaje(), - cabezada: this.disenioCubierta.getCabezada(), - acabados: this.disenioCubierta.getAcabados(), - carasImpresion: this.disenioCubierta.carasCubierta.val(), - }, + if (calcularSolapas) { + return; + } - guardas: this.disenioCubierta.getGuardas(), - sobrecubierta: this.disenioCubierta.getSobrecubierta(), - faja: this.disenioCubierta.getFaja(), + this.datos.posPaginasColor = this.datosGenerales.posPaginasColor.val(); - excluirRotativa: this.datosGenerales.excluirRotativa.is(':checked') ? 1 : 0, - ivaReducido: this.datosGenerales.ivaReducido.find('option:selected').val(), - servicios: { - 'prototipo': this.datosGenerales.prototipo.is(':checked') ? 1 : 0, - 'ferro': this.datosGenerales.ferro.is(':checked') ? 1 : 0, - 'ferroDigital': this.datosGenerales.ferroDigital.is(':checked') ? 1 : 0, - 'marcapaginas': this.datosGenerales.marcapaginas.is(':checked') ? 1 : 0, - 'retractilado': this.datosGenerales.retractilado.is(':checked') ? 1 : 0, - 'retractilado5': this.datosGenerales.retractilado5.is(':checked') ? 1 : 0, - }, + this.datos.prototipo = this.datosGenerales.prototipo.is(':checked') ? 1 : 0; + this.datos.ferro = this.datosGenerales.ferro.is(':checked') ? 1 : 0; + this.datos.ferroDigital = this.datosGenerales.ferroDigital.is(':checked') ? 1 : 0; + this.datos.marcapaginas = this.datosGenerales.marcapaginas.is(':checked') ? 1 : 0; + this.datos.retractilado = this.datosGenerales.retractilado.is(':checked') ? 1 : 0; + this.datos.retractilado5 = this.datosGenerales.retractilado5.is(':checked') ? 1 : 0; + + + this.datos.cubierta = { + tipoCubierta: this.disenioCubierta.disenioCubierta.filter('.selected').attr('id'), + papelCubierta: this.disenioCubierta.getPapel(), + gramajeCubierta: this.disenioCubierta.getGramaje(), + cabezada: this.disenioCubierta.getCabezada(), + acabados: this.disenioCubierta.getAcabados(), + carasImpresion: this.disenioCubierta.carasCubierta.val(), }; + + this.datos.guardas = this.disenioCubierta.getGuardas(); + this.datos.sobrecubierta = this.disenioCubierta.getSobrecubierta(); + this.datos.faja = this.disenioCubierta.getFaja(); + + this.datos.excluirRotativa = this.datosGenerales.excluirRotativa.is(':checked') ? 1 : 0; + this.datos.ivaReducido = this.datosGenerales.ivaReducido.find('option:selected').val(); + this.datos.servicios = { + 'prototipo': this.datosGenerales.prototipo.is(':checked') ? 1 : 0, + 'ferro': this.datosGenerales.ferro.is(':checked') ? 1 : 0, + 'ferroDigital': this.datosGenerales.ferroDigital.is(':checked') ? 1 : 0, + 'marcapaginas': this.datosGenerales.marcapaginas.is(':checked') ? 1 : 0, + 'retractilado': this.datosGenerales.retractilado.is(':checked') ? 1 : 0, + 'retractilado5': this.datosGenerales.retractilado5.is(':checked') ? 1 : 0, + }; + let lomoRedondo = 0; if (this.disenioCubierta.disenioCubierta.filter('.selected').length > 0) lomoRedondo = this.disenioCubierta.disenioCubierta.filter('.selected').attr('id').includes('Redondo') ? 1 : 0; @@ -706,7 +737,7 @@ class PresupuestoCliente { this.disenioInterior.cargarDatos(response.data.interior, response.data.datosGenerales.papelInteriorDiferente); this.disenioCubierta.cargarDatos(response.data.cubierta, response.data.guardas, response.data.sobrecubierta); - + setTimeout(() => { From 81d52f0064c63d9ddcd072d60f93c255a3c664c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jaime=20Jim=C3=A9nez?= Date: Fri, 29 Nov 2024 17:08:50 +0100 Subject: [PATCH 09/11] =?UTF-8?q?eliminada=20la=20funcion=20de=20comprobar?= =?UTF-8?q?=20tama=C3=B1o=20maximo=20en=20el=20presupuesto=20administrador?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../vuexy/form/presupuestos/admin/_datosServiciosItems.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_datosServiciosItems.php b/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_datosServiciosItems.php index 12c35b60..d6fbe850 100644 --- a/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_datosServiciosItems.php +++ b/ci4/app/Views/themes/vuexy/form/presupuestos/admin/_datosServiciosItems.php @@ -318,6 +318,8 @@ init_servicio_extra() + /* ELIMINADO PARA COMPROBAR EL MAXIMO DE SOLAPAS DESDE EL BACKEND + PENDIENTE $('.solapas_cubierta').on('change', function(){ const ancho_libro = getDimensionLibro().ancho; @@ -337,6 +339,7 @@ } $('#compGramajeCubierta').trigger('change') + }) @@ -360,5 +363,7 @@ $('#compGramajeSobrecubierta').trigger('change') }) + + */ endSection() ?> From 5169a86cf4548b132b041d8ce0c830053431d8bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jaime=20Jim=C3=A9nez?= Date: Fri, 29 Nov 2024 17:37:32 +0100 Subject: [PATCH 10/11] cambiado el servicio de solapas grandes del 79 al 73 --- ci4/app/Controllers/Presupuestos/Presupuestocliente.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci4/app/Controllers/Presupuestos/Presupuestocliente.php b/ci4/app/Controllers/Presupuestos/Presupuestocliente.php index 55715e3c..343e0b31 100755 --- a/ci4/app/Controllers/Presupuestos/Presupuestocliente.php +++ b/ci4/app/Controllers/Presupuestos/Presupuestocliente.php @@ -2025,7 +2025,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController // Servicios acabado $resultado = PresupuestoCLienteService::getServiciosManipulado([ - 'tarifa_id' => 79, + 'tarifa_id' => 73, 'tirada' => $datosPedido->tirada, 'POD' => $POD, ]); From 5c705ebf647edb8f18a7ff132fa5921d4e2255e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jaime=20Jim=C3=A9nez?= Date: Fri, 29 Nov 2024 17:56:02 +0100 Subject: [PATCH 11/11] =?UTF-8?q?a=C3=B1adido=20el=20guardar=20para=20el?= =?UTF-8?q?=20servicio=20de=20manipulado=20de=20solapas=20grandes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Presupuestos/Presupuestocliente.php | 25 +++++++++++-------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/ci4/app/Controllers/Presupuestos/Presupuestocliente.php b/ci4/app/Controllers/Presupuestos/Presupuestocliente.php index 343e0b31..f0ae65af 100755 --- a/ci4/app/Controllers/Presupuestos/Presupuestocliente.php +++ b/ci4/app/Controllers/Presupuestos/Presupuestocliente.php @@ -327,7 +327,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController 'papel_generico_cubierta' => $modelPapelGenerico->where('id', $cubierta['papelCubierta'])->first()->toArray(), 'gramajeCubierta' => intval($cubierta['gramajeCubierta']), 'carasCubierta' => intval($cubierta['carasImpresion'] ?? 0), - 'solapasCubierta' => intval($cubierta['solapas'] ?? 0), + 'solapasCubierta' => intval($cubierta['solapas'] ?? 0) == 1 ? intval($cubierta['tamanioSolapas']) : 0, 'acabadosCubierta' => $cubierta['acabados'] ?? 0, 'lomoRedondo' => $lomoRedondo, ]; @@ -511,7 +511,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController $papel = $modelPapelGenerico->where('id', $interior['papelInterior'])->first()->toArray(); $gramaje = intval($interior['gramajeInterior']); } - + $datosPedido = (object) array( 'paginas' => $paginas, 'tirada' => $tirada[0], @@ -537,7 +537,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController ); $interior = PresupuestoClienteService::obtenerInterior($input_data); - if($interior == null) { + if ($interior == null) { return $this->failServerError('Error al calcular el interior'); } $anchoTotal = $interior[0]['mano']; @@ -548,7 +548,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController // le añadimos la sangre $anchoTotal += PresupuestoService::SANGRE_FORMAS; // 863 es el ancho máximo permitido por las máquinas - $maxSolapa = (865-floor($anchoTotal))/2; + $maxSolapa = (865 - floor($anchoTotal)) / 2; $maxSolapa = min($maxSolapa, 0.75 * $datosPedido->ancho); return $this->respond($maxSolapa); @@ -576,7 +576,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController 'menu' => $data, $csrfTokenName => $newTokenHash ]); - + } else { return $this->failUnauthorized('Invalid request', 403); } @@ -788,7 +788,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController 'papel_generico_cubierta' => $modelPapelGenerico->where('id', $cubierta['papelCubierta'])->first()->toArray(), 'gramajeCubierta' => intval($cubierta['gramajeCubierta']), 'carasCubierta' => intval($cubierta['carasImpresion'] ?? 0), - 'solapasCubierta' => intval($cubierta['solapas'] ?? 0) == 1? intval($cubierta['tamanioSolapas']) : 0, + 'solapasCubierta' => intval($cubierta['solapas'] ?? 0) == 1 ? intval($cubierta['tamanioSolapas']) : 0, 'acabadosCubierta' => $cubierta['acabados'] ?? 0, 'lomoRedondo' => $cubierta['lomoRedondo'] ?? 0, 'cabezada' => $cubierta['cabezada'] ?? 'WHI', @@ -1002,6 +1002,9 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController } else if ($servicio->tarifa_id == 62) { // Servicios manipulado $this->guardarServicio($id, $servicio, 'manipulado'); + } else if ($servicio->tarifa_id == 73) { + // Servicios manipulado + $this->guardarServicio($id, $servicio, 'manipulado'); } } @@ -1889,7 +1892,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController 'paginasCuadernillo' => $paginasCuadernillo, ]); - + $costeServiciosDefecto = 0.0; foreach ($servDefecto as $servicio) { @@ -1924,7 +1927,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController } // Servicios - + /* 'retractilado' => 3, @@ -2018,10 +2021,10 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController } // Plegado de solapas grandes - if( + if ( (intval($solapasCubierta) > 0 && intval($cubierta['dimension_desarrollo']['ancho']) > 630) || (is_array($sobreCubierta) && ($sobreCubierta['solapas'] > 0 && intval($linea_sobrecubierta['dimension_desarrollo']['ancho']) > 630)) - ){ + ) { // Servicios acabado $resultado = PresupuestoCLienteService::getServiciosManipulado([ @@ -2053,7 +2056,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController $totalServicios += floatval($resultado[0]->total); $margenServicios += floatval($resultado[0]->total) * floatval($resultado[0]->margen) / 100.0; } - + } array_push($precio_u, round(($costeInterior + $coste_cubierta + $coste_sobrecubierta + $costeServiciosDefecto + $coste_servicios) / $tirada[$t], 4));