From e17e72f46de1f8beb5eefab23f09e72d8438d7c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jaime=20Jim=C3=A9nez?= Date: Sat, 1 Feb 2025 13:28:38 +0100 Subject: [PATCH] terminada faja en presu admin a falta de preview --- .../Presupuestos/Presupuestoadmin.php | 6 ++- ci4/app/Services/PresupuestoService.php | 36 +++++++++++------- .../assets/js/safekat/components/preview.js | 10 ++--- .../presupuestoAdmin/sections/comparador.js | 21 ++++++++++ .../sections/lineasPresupuesto.js | 4 +- .../img/safekat/presupuestos/icon_faja.png | Bin 0 -> 6300 bytes 6 files changed, 55 insertions(+), 22 deletions(-) create mode 100644 httpdocs/themes/vuexy/img/safekat/presupuestos/icon_faja.png diff --git a/ci4/app/Controllers/Presupuestos/Presupuestoadmin.php b/ci4/app/Controllers/Presupuestos/Presupuestoadmin.php index a2d6acb0..d3b2986e 100644 --- a/ci4/app/Controllers/Presupuestos/Presupuestoadmin.php +++ b/ci4/app/Controllers/Presupuestos/Presupuestoadmin.php @@ -666,7 +666,9 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController $gramaje = $sobrecubierta['gramaje']; $paginas_color = $sobrecubierta['datosPedido']['paginas'] ?? 0; $tipo_impresion_id = $sobrecubierta['tipo_impresion_id']; - $uso = $sobrecubierta['uso']; + $faja = intval($sobrecubierta['faja'] ?? 0); + $uso = $faja==1? 'faja' : $sobrecubierta['uso']; + $data = array( 'cliente_id' => $cliente_id, @@ -960,7 +962,7 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController $resourceData = PresupuestoService::obtenerComparadorRotativa($input_data); - } else if ($type == 'cubierta' || $type == 'sobrecubierta') { + } else if ($type == 'cubierta' || $type == 'sobrecubierta' || $type == 'faja') { $datosPedido->solapas = $reqData['solapas']; $datosPedido->solapas_ancho = $reqData['solapas_ancho']; diff --git a/ci4/app/Services/PresupuestoService.php b/ci4/app/Services/PresupuestoService.php index b508d9f2..24d404a3 100755 --- a/ci4/app/Services/PresupuestoService.php +++ b/ci4/app/Services/PresupuestoService.php @@ -83,8 +83,13 @@ class PresupuestoService extends BaseService $parametrosInkjet->rotativa_cg = $datosTipologias[0]->cg; } + $uso_tarifa = $uso; + if($uso == 'guardas') + $uso_tarifa = 'interior'; + else if ($uso == 'faja') + $uso_tarifa = 'sobrecubierta'; $tarifamodel = new \App\Models\Configuracion\MaquinasTarifasImpresionModel(); - $datos_tarifa = $tarifamodel->getTarifa($maquina->maquina_id, ($uso == 'guardas') ? 'interior' : $uso, $tipo); + $datos_tarifa = $tarifamodel->getTarifa($maquina->maquina_id, $uso_tarifa, $tipo); if (count($datos_tarifa) > 0) { $tarifaId = $datos_tarifa[0]; $tarifa = $datos_tarifa[1]; @@ -128,7 +133,7 @@ class PresupuestoService extends BaseService $clientePreciosModel = new \App\Models\Clientes\ClientePreciosModel(); $config = (object) [ - "tipo" => ($uso == 'guardas') ? 'interior' : $uso, + "tipo" => $uso_tarifa, "tipo_maquina" => $maquina->is_inkjet ? 'inkjet' : 'toner', "tipo_impresion" => $tipo ]; @@ -334,8 +339,8 @@ class PresupuestoService extends BaseService if ($uso != 'rotativa') { - $ancho_calculo = ($uso == 'cubierta' || $uso == 'sobrecubierta') ? $datosPedido->anchoExteriores : $datosPedido->ancho; - $alto_calculo = ($uso == 'cubierta' || $uso == 'sobrecubierta') ? $datosPedido->altoExteriores : $datosPedido->alto; + $ancho_calculo = ($uso == 'cubierta' || $uso == 'sobrecubierta' || $uso == 'faja') ? $datosPedido->anchoExteriores : $datosPedido->ancho; + $alto_calculo = ($uso == 'cubierta' || $uso == 'sobrecubierta' || $uso == 'faja') ? $datosPedido->altoExteriores : $datosPedido->alto; $formas = PresupuestoService::getNumFormasPlana($uso, $maquina, $ancho_calculo, $alto_calculo, $datosPedido->isCosido, $forzar_a_favor_fibra); $response['fields'] = $formas; } @@ -366,10 +371,12 @@ class PresupuestoService extends BaseService $margen_click = $tarifa * ($tarifa_margen / 100.0); //interior (bn o color) - if ($cubierta == 0 && $sobrecubierta == 0 && $rotativa == 0) { + if ($cubierta == 0 && $sobrecubierta == 0 && $rotativa == 0 || $uso == 'faja') { // precio papel - $pliegos_libro = ceil(($datosPedido->paginas / 2.0) / $response['fields']['num_formas']['value']); - if ($pliegos_libro < 1) + $pliegos_libro = ($datosPedido->paginas / 2.0) / $response['fields']['num_formas']['value']; + if($uso != 'faja') + $pliegos_libro = ceil($pliegos_libro); + if ($uso != 'faja' && $pliegos_libro < 1) // faja pueden entrar más de una forma $pliegos_libro = 1; $pliegos_pedido = $pliegos_libro * ($datosPedido->tirada + $datosPedido->merma); $precio_libro = $pliegos_libro * ($precio_pliego_impresion + $margen_pliego_impresion); @@ -693,7 +700,7 @@ class PresupuestoService extends BaseService $h2_temp = 0; // El ancho si es cosido es el doble - if ($uso != 'cubierta' && $uso != 'sobrecubierta') { + if ($uso != 'cubierta' && $uso != 'sobrecubierta' && $uso != 'faja') { $anchoForCalculo = $isCosido ? $ancho * 2 : $ancho; } else { $anchoForCalculo = $ancho; @@ -931,7 +938,7 @@ class PresupuestoService extends BaseService if ($datosPedido) { $alto_total = floatval($datosPedido->alto); $sangre_cubierta = self::SANGRE_FORMAS_CUBIERTA; - if ($datosPedido->alto >= 297) { + if ($datosPedido->alto >= 267) { $sangre_cubierta = 10; } // Tapa dura (cosido y fresado) @@ -1761,7 +1768,8 @@ class PresupuestoService extends BaseService $tipo = $isColor ? ($isHq ? 'colorhq' : 'color') : ($isHq ? 'negrohq' : 'negro'); - $opciones_papel = PresupuestoService::get_opciones_papel($uso, $isColor); + $uso_papel = $uso == 'faja' ? 'sobrecubierta': $uso; + $opciones_papel = PresupuestoService::get_opciones_papel($uso_papel, $isColor); // Se obtienen los papeles disponibles $papelimpresionmodel = new PapelImpresionModel(); @@ -1779,7 +1787,7 @@ class PresupuestoService extends BaseService $maquinas = $maquinamodel->getMaquinaImpresionForPresupuesto( is_rotativa: 0, tarifa_tipo: $tipo, - uso_tarifa: ($uso == 'guardas') ? 'interior' : $uso, + uso_tarifa: ($uso == 'guardas') ? 'interior' : $uso_papel, tirada: $datosPedido->tirada + $datosPedido->merma, papel_impresion_id: $papel->id, )->orderBy("t1.id", "asc")->get()->getResultObject(); @@ -1787,10 +1795,10 @@ class PresupuestoService extends BaseService // Se recorren las máquinas y se calcula el coste de linea por cada una foreach ($maquinas as $maquina) { - if ($uso == 'cubierta' || $uso == 'sobrecubierta') { + if ($uso == 'cubierta' || $uso == 'sobrecubierta' || $uso == 'faja') { - $datosPedido->anchoExteriores = PresupuestoService::getAnchoTotalExteriores($uso, $tipo_impresion_id, $datosPedido, $maquina->maquina_id, $lomoRedondo); - $datosPedido->altoExteriores = PresupuestoService::getAltoTotalExteriores($uso, $tipo_impresion_id, $datosPedido); + $datosPedido->anchoExteriores = PresupuestoService::getAnchoTotalExteriores($uso_papel, $tipo_impresion_id, $datosPedido, $maquina->maquina_id, $lomoRedondo); + $datosPedido->altoExteriores = PresupuestoService::getAltoTotalExteriores($uso_papel, $tipo_impresion_id, $datosPedido); } $data['uso'] = $uso; diff --git a/httpdocs/assets/js/safekat/components/preview.js b/httpdocs/assets/js/safekat/components/preview.js index 543f68ef..bcd53382 100644 --- a/httpdocs/assets/js/safekat/components/preview.js +++ b/httpdocs/assets/js/safekat/components/preview.js @@ -148,7 +148,7 @@ class previewFormas { let anchoPliegue = parseFloat(7); // mm let altoPliegue = parseFloat(7); // mm let sangre = parseFloat(20); // mm - if (this.isTapaDura && (this.ancho() >= 210 || this.alto() >= 297)) { + if (this.isTapaDura && (this.ancho() >= 210 || this.alto() >= 267)) { sangre = parseFloat(10); // mm } this.pvObj.anchoForma = ((2 * this.pvObj.anchoLibro) + (2 * anchoPliegue) + (2 * sangre) + this.pvObj.lomoLibro); @@ -201,7 +201,7 @@ class previewFormas { $(pvName + '_pg').attr("href", $(pvName + '_pg').attr('sk-url') + rowData.papel); $(pvName + '_pi').attr("href", $(pvName + '_pi').attr('sk-url') + rowData.papel_impresion_id); $(pvName + '_mi').attr("href", $(pvName + '_mi').attr('sk-url') + rowData.maquina_id); - $('#pv_ec_lomo').text(this.pvObj.lomoLibro); + $('#pv_ec_lomo').text(parseFloat(this.pvObj.lomoLibro).toFixed(1)); break; case 'rot_bn': @@ -482,7 +482,7 @@ class previewFormas { altoSangrado = (anchoSangrado * 0.647 > 300) ? 300 : anchoSangrado * 0.647; // px } else { anchoSangrado = 750; // px - altoSangrado = (anchoSangrado * 0.647 > 650) ? 650 : anchoSangrado * 0.647; // px + altoSangrado = (anchoSangrado * 0.6 > 650) ? 650 : anchoSangrado * 0.6; // px } altoLibro = altoSangrado * 0.97; @@ -497,7 +497,7 @@ class previewFormas { altoSangrado = (anchoSangrado * 0.647 > 300) ? 300 : anchoSangrado * 0.647; // px } else { anchoSangrado = 750; // px - altoSangrado = (anchoSangrado * 0.647 > 650) ? 650 : anchoSangrado * 0.647; // px + altoSangrado = (anchoSangrado * 0.6 > 650) ? 650 : anchoSangrado * 0.6; // px } altoLibro = altoSangrado * 0.95; anchoLibro = anchoSangrado * 0.28; @@ -676,7 +676,7 @@ class previewFormas { let styleCotas = { size: 12, family: 'Public Sans' }; let sangradoTexto = "Sangrado 20 mm"; let sangradoValor = parseFloat(20); // mm - if (this.ancho >= 210 || this.alto >= 297) { + if (this.ancho >= 210 || this.alto >= 267) { sangradoValor = parseFloat(10); // mm sangradoTexto = "Sangrado 10 mm"; } diff --git a/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/comparador.js b/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/comparador.js index c9fffc26..b541b546 100644 --- a/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/comparador.js +++ b/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/comparador.js @@ -530,6 +530,11 @@ class Comparador { this.papelGuardas.setOption(datos.json_data.guardas.papel_id, datos.json_data.guardas.papel_nombre); this.gramajeGuardas.setOption(datos.json_data.guardas.gramaje, datos.json_data.guardas.gramaje); } + if (datos.json_data.faja) { + this.faja.val(1).trigger('change'); + this.papelFaja.setOption(datos.json_data.faja.papel_id, datos.json_data.faja.papel_nombre); + this.gramajeFaja.setOption(datos.json_data.faja.gramaje, datos.json_data.faja.gramaje); + } if (this.tipo_impresion_id == 1 || this.tipo_impresion_id == 3) { this.lomoRedondo.val(datos.lomoRedondo ? 1 : 0).trigger('change'); @@ -1504,6 +1509,7 @@ class Comparador { let datosComp = {}; datosComp.sobrecubierta = this.getDataForComp('faja'); + datosComp.sobrecubierta.data['faja'] = 1; // se indica que es faja para el calculo de formas datosComp.sobrecubierta.data[this.csrf_token] = this.csrf_hash; @@ -1862,6 +1868,21 @@ class Comparador { } + if (parseInt($('#compFaja').val()) == 1) { + let faja_obj = {}; + try { + faja_obj = { + "faja": { + 'papel_id': $('#compPapelFaja').select2('data')[0].id, + 'gramaje': $('#compGramajeFaja').select2('data')[0].text.trim(), + }, + } + } + catch (e) { + } + $.extend(data, faja_obj); + } + const data_str = JSON.stringify(data) $('#comparador_json_data').val(data_str) } diff --git a/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/lineasPresupuesto.js b/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/lineasPresupuesto.js index 09fb7842..48c754b2 100644 --- a/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/lineasPresupuesto.js +++ b/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/lineasPresupuesto.js @@ -1484,9 +1484,11 @@ class LineasPresupuesto { uso = 'cubierta'; break; case 'lp_sobrecubierta': - case 'lp_faja': uso = 'sobrecubierta'; break; + case 'lp_faja': + uso = 'faja'; + break; case 'lp_guardas': uso = 'guardas'; break; diff --git a/httpdocs/themes/vuexy/img/safekat/presupuestos/icon_faja.png b/httpdocs/themes/vuexy/img/safekat/presupuestos/icon_faja.png new file mode 100644 index 0000000000000000000000000000000000000000..bd2572caaa5bc5201db4f0de5ae5dae90202a486 GIT binary patch literal 6300 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