From 0813abfb10bc9f9fdaa597cbf409de62075f273e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jaime=20Jim=C3=A9nez?= <“jaimejimenezortega@gmail.com”> Date: Sat, 3 Feb 2024 20:19:48 +0100 Subject: [PATCH 1/2] arreglado bug rotativa. Trabajando en bug inkjet --- .../Presupuestos/Cosidotapablanda.php | 8 +- ci4/app/Services/PresupuestoService.php | 50 +++--- .../_lineasPresupuestoItems.php | 154 ++++++++++++------ .../presupuestos/cosidotapablanda/previews.js | 9 +- 4 files changed, 141 insertions(+), 80 deletions(-) diff --git a/ci4/app/Controllers/Presupuestos/Cosidotapablanda.php b/ci4/app/Controllers/Presupuestos/Cosidotapablanda.php index dc34f8b3..fa7fda96 100755 --- a/ci4/app/Controllers/Presupuestos/Cosidotapablanda.php +++ b/ci4/app/Controllers/Presupuestos/Cosidotapablanda.php @@ -483,7 +483,9 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController array_push($datosTipolog, $data); } - $resourceData = $this->getCompIntData($type, $datosPedido, $papel_generico, $gramaje, $isColor, $isHq, $cliente_id, $datosTipolog); + $a_favor_fibra = $reqData['a_favor_fibra'] ?? null; + + $resourceData = $this->getCompIntData($type, $datosPedido, $papel_generico, $gramaje, $isColor, $isHq, $cliente_id, $datosTipolog, $a_favor_fibra); $newTokenHash = csrf_hash(); $csrfTokenName = csrf_token(); @@ -640,7 +642,7 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController } - public function getCompIntData($uso, $datosPedido, $papel_generico, $gramaje, $isColor, $isHq, $cliente_id, $datosTipolog = null) + public function getCompIntData($uso, $datosPedido, $papel_generico, $gramaje, $isColor, $isHq, $cliente_id, $datosTipolog = null, $a_favor_fibra = null) { $tipo = $isColor? ($isHq?'colorhq':'color'): ($isHq?'negrohq':'negro'); @@ -697,7 +699,7 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController if($maquina->is_inkjet){ $parametrosInkjet = (object)array( - 'a_favor_fibra' => 1, // este parametro se cambia para comprobar + 'a_favor_fibra' => $a_favor_fibra, // este parametro se cambia para comprobar // en las dos direcciones (menos en rustica fresada que es siempre 1) 'bnPages' => $isColor?0:$datosPedido->paginas, 'colorPages' => $isColor?$datosPedido->paginas:0, diff --git a/ci4/app/Services/PresupuestoService.php b/ci4/app/Services/PresupuestoService.php index db6645e3..f77b4d50 100755 --- a/ci4/app/Services/PresupuestoService.php +++ b/ci4/app/Services/PresupuestoService.php @@ -45,7 +45,7 @@ class PresupuestoService extends BaseService if ($uso!='rotativa') { $ancho_calculo = ($uso=='cubierta' || $uso=='sobrecubierta') ? $datosPedido->anchoExteriores : $datosPedido->ancho; - $formas = PresupuestoService::getNumFormasPlana($uso, $maquina, $ancho_calculo, $datosPedido->alto, $datosPedido->isCosido); + $formas = PresupuestoService::getNumFormasPlana($uso, $maquina, $ancho_calculo, $datosPedido->alto, $datosPedido->isCosido,); $response['fields'] = $formas; } @@ -387,13 +387,18 @@ class PresupuestoService extends BaseService $data['alto_click'] = $maquina->alto_click; - $formas = PresupuestoService::getNumFormasRot($maquina, $datosPedido->ancho, $datosPedido->alto, $datosPedido->isCosido); + $formas = PresupuestoService::getNumFormasRot( + $maquina, + $datosPedido->ancho, + $datosPedido->alto, + $datosPedido->isCosido, + $parametrosRotativa->a_favor_fibra); $data['num_formas'] = $formas; return $data; } - public static function getNumFormasRot($maquina, $ancho, $alto, $isCosido) + public static function getNumFormasRot($maquina, $ancho, $alto, $isCosido, $a_favor_fibra = true) { // El ancho si es cosido es el doble $anchoForCalculo = $isCosido ? $ancho * 2 : $ancho; @@ -403,35 +408,38 @@ class PresupuestoService extends BaseService $h2_temp = floor($maquina->ancho_impresion / $alto); // horizontales - $calles = (new \App\Models\Configuracion\MaquinasCallesModel())->getCallesForMaquina($maquina->maquina_id, $h1_temp); - // Si son mas de 2 formas - if(count($calles)>0) - $h1 = ($h1_temp * $anchoForCalculo + 2 * $calles[0]->externas + ($h1_temp - 1) * $calles[0]->internas < ($maquina->ancho)) ? $h1_temp : $h1_temp - 1; - else - $h1 = $h1_temp; - - $v1 = floor($maquina->alto_click / $alto); - $formas_h = $h1 * $v1; //p1 + if($a_favor_fibra){ + $calles = (new \App\Models\Configuracion\MaquinasCallesModel())->getCallesForMaquina($maquina->maquina_id, $h1_temp); + // Si son mas de 2 formas + if(count($calles)>0) + $h1 = ($h1_temp * $anchoForCalculo + 2 * $calles[0]->externas + ($h1_temp - 1) * $calles[0]->internas < ($maquina->ancho)) ? $h1_temp : $h1_temp - 1; + else + $h1 = $h1_temp; + $v1 = floor($maquina->alto_click / $alto); + $formas_h = $h1 * $v1; //p1 + } // verticales - $calles = (new \App\Models\Configuracion\MaquinasCallesModel())->getCallesForMaquina($maquina->maquina_id, $h2_temp); - if(count($calles)>0) - $h2 = ($h2_temp * $anchoForCalculo + 2 * $calles[0]->externas + ($h2_temp - 1) * $calles[0]->internas < ($maquina->ancho)) ? $h2_temp : $h2_temp - 1; - else - $h2 = $h2_temp; - $v2 = floor($maquina->alto_click / $anchoForCalculo); - $formas_v = $h2 * $v2; //p2 + else{ + $calles = (new \App\Models\Configuracion\MaquinasCallesModel())->getCallesForMaquina($maquina->maquina_id, $h2_temp); + if(count($calles)>0) + $h2 = ($h2_temp * $alto + 2 * $calles[0]->externas + ($h2_temp - 1) * $calles[0]->internas < ($maquina->ancho)) ? $h2_temp : $h2_temp - 1; + else + $h2 = $h2_temp; + $v2 = floor($maquina->alto_click / $anchoForCalculo); + $formas_v = $h2 * $v2; //p2 + } - $num_formas = ($formas_h > $formas_v) ? $formas_h : $formas_v; + $num_formas = $a_favor_fibra ? $formas_h : $formas_v; $num_formas = $isCosido ? $num_formas * 2 : $num_formas; // si no hay formas se devuelve n/a if ($num_formas == 0) { $response['posicion_formas'] = 'n/a'; // not available - } else if ($formas_h > $formas_v) { + } else if ($a_favor_fibra) { $response['posicion_formas'] = 'h'; $response['num_formas_horizontales'] = $h1; $response['num_formas_verticales'] = $v1; diff --git a/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_lineasPresupuestoItems.php b/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_lineasPresupuestoItems.php index 41160640..d2991f86 100755 --- a/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_lineasPresupuestoItems.php +++ b/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_lineasPresupuestoItems.php @@ -90,26 +90,26 @@ function format(d) { ''+ ''+ ''+ - '
' + + '
' + '
' + "" + - ''+ + ''+ '
'+ '
' + "" + - ''+ + ''+ '
'+ '
' + "" + - ''+ + ''+ '
'+ '
' + "" + - ''+ + ''+ '
'+ '
' + "" + - ''+ + ''+ '
'+ '' + '
' + @@ -117,23 +117,23 @@ function format(d) { '
'+ '
' + "" + - ''+ + ''+ '
'+ '
' + "" + - ''+ + ''+ '
'+ '
' + "" + - ''+ + ''+ '
'+ '
' + "" + - ''+ + ''+ '
'+ '
' + "" + - ''+ + ''+ '
'+ '
' + '' + @@ -153,7 +153,7 @@ function format(d) { ''+ ''+ ''+ - '
' + + '
' + '
' + '' + '
'+ @@ -163,7 +163,7 @@ function format(d) { '
' + '
' + '' + - '' + + '' + '
' + '
' + '' + @@ -204,54 +204,54 @@ function format(d) { ''+ ''+ ''+ - '
' + + '
' + (d.row_id.includes('rot')?'
': '' + '
' + '' + - '' + + '' + '
' + '
' + '' + - '' + + '' + '
' + '
' + '' + - '' + + '' + '
' + '
' + '' + - '' + + '' + '
' + '
' + '' + - '' + + '' + '
' + '
' + '' + - '' + + '' + '
' + '
' + '' + - '' + + '' + '
' + '
' + '' + - '' + + '' + '
' + '
' + '' + - '' + + '' + '
' + '
' + '' + - '' + + '' + '
' + '
' + '' + - '' + + '' + '
' + '
' + '' + @@ -260,54 +260,54 @@ function format(d) { ''+ ''+ ''+ - '
' + + '
' + (d.row_id.includes('rot')?'
': '' + (d.row_id.includes('rot')?'
': '' + '
' + '' + - '' + + '' + '
' + '
' + '' + - '' + + '' + '
' + '
' + '' + - '' + + '' + '
' + '
' + '' + - '' + + '' + '
' + '
' + '' + - '' + + '' + '
' + '
' + '' + - '' + + '' + '
' + '
' + '' + - '' + + '' + '
' + '
' + '' + - '' + + '' + '
' + (d.row_id.includes('rot')?'
': '' + '
' + '' + - '' + + '' + '
' + '
' + '' + @@ -316,34 +316,34 @@ function format(d) { ''+ ''+ ''+ - '
' + + '
' + (d.row_id.includes('rot')?'
': '' + (d.row_id.includes('rot')?'
': '' + (d.row_id.includes('rot')?'
': '' + '
' + '' + - '' + + '' + '
' + '
' + '' + - '' + + '' + '
' + '
' + '' + - '' + + '' + '
' + '
' + '' + - ''+ + ''+ '
' + '
' + '' + @@ -1173,7 +1173,6 @@ function change_lp_bn_maquina(){ } - function change_lp_bn_paginas(){ if( parseInt($('#lp_bn_paginas').val())>0 && @@ -1186,6 +1185,23 @@ function change_lp_bn_paginas(){ } } + +function change_lp_bn_aFavorFibra(){ + + if( parseInt($('#lp_bn_paginas').val())>0 && + parseInt($('#lp_bn_papel option:selected').val())>0 && + $('#lp_bn_gramaje option:selected').text().length>0 && + parseInt($('#lp_bn_papelImpresion option:selected').val())>0 + ){ + var rowData = tableLineasPresupuesto.row('#lp_bn').data() + rowData.aFavorFibra = $('#lp_bn_aFavorFibra').prop('checked') + tableLineasPresupuesto.row('#lp_bn').data(rowData).draw(false) + + calcularPresupuesto_rot_bn(false, true); + } +} + + function calcularPresupuesto_bn(input_data={}, updatedTipologias = false){ const dimension = getDimensionLibro(); @@ -1219,6 +1235,11 @@ function calcularPresupuesto_bn(input_data={}, updatedTipologias = false){ : v }; + // Si es inkjet, existe este check + if ($('#lp_bn_aFavorFibra').length){ + datos.a_favor_fibra = $('#lp_bn_aFavorFibra').prop('checked') + } + if(updatedTipologias){ datos.gota_negro= $('#lp_bn_gotaNegro').val() datos.gota_color= $('#lp_bn_gotaColor').val() @@ -1243,9 +1264,13 @@ function calcularPresupuesto_bn(input_data={}, updatedTipologias = false){ value.fields.papel_generico_id === input_data.papel_generico_id && value.fields.papel_impresion_id === input_data.papel_impresion_id) { + // Si viene del comparador if(Object.keys(input_data).length == 0){ value.fields.check_papel_total = $('#lp_bn' + '_checkPapel').is(":checked")?1:0 value.fields.check_impresion_total = $('#lp_bn' + '_checkClicks').is(":checked")?1:0 + // Por defecto en plana: en contra de fibra + value.fields.a_favor_fibra = false + } else{ value.fields.check_papel_total = 1 @@ -1353,6 +1378,7 @@ function eventos_lp_bn(isInkjet = false){ if(isInkjet){ $('.lp-bn-tipologia').bind("change", change_lp_bn_tipologia); $('#lp_bn_defecto').bind("click", por_defecto_lp_bn); + $('#lp_bn_aFavorFibra').bind("change", change_lp_bn_aFavorFibra); } $('#lp_bn_checkPapel').bind("change", {id_linea: 'lp_bn'}, update_total_linea); @@ -1806,6 +1832,21 @@ function por_defecto_lp_bnhq(){ } } +function change_lp_bnhq_aFavorFibra(){ + +if( parseInt($('#lp_bnhq_paginas').val())>0 && + parseInt($('#lp_bnhq_papel option:selected').val())>0 && + $('#lp_bnhq_gramaje option:selected').text().length>0 && + parseInt($('#lp_bnhq_papelImpresion option:selected').val())>0 + ){ + var rowData = tableLineasPresupuesto.row('#lp_bnhq').data() + rowData.aFavorFibra = $('#lp_bnhq_aFavorFibra').prop('checked') + tableLineasPresupuesto.row('#lp_bnhq').data(rowData).draw(false) + + calcularPresupuesto_bnhq(false, true); +} +} + function calcularPresupuesto_bnhq(input_data={}, updatedTipologias = false){ @@ -1849,6 +1890,11 @@ function calcularPresupuesto_bnhq(input_data={}, updatedTipologias = false){ datos.amarillo= $('#lp_bnhq_cobAmarillo').val() } + // Si es inkjet, existe este check + if ($('#lp_bnhq_aFavorFibra').length){ + datos.a_favor_fibra = $('#lp_bnhq_aFavorFibra').prop('checked') + } + $.ajax({ type: "POST", url: "/cosidotapablanda/datatable", @@ -1865,6 +1911,8 @@ function calcularPresupuesto_bnhq(input_data={}, updatedTipologias = false){ if(Object.keys(input_data).length == 0){ value.fields.check_papel_total = $('#lp_bnhq' + '_checkPapel').is(":checked")?1:0 value.fields.check_impresion_total = $('#lp_bnhq' + '_checkClicks').is(":checked")?1:0 + // Por defecto en plana: en contra de fibra + value.fields.a_favor_fibra = false } else{ value.fields.check_papel_total = 1 @@ -1946,6 +1994,7 @@ function eventos_lp_bnhq(isInkjet = false){ if(isInkjet){ $('.lp-bnhq-tipologia').bind("change", change_lp_bnhq_tipologia); $('#lp_bnhq_defecto').bind("click", por_defecto_lp_bnhq); + $('#lp_bnhq_aFavorFibra').bind("change", change_lp_bnhq_aFavorFibra); } $('#lp_bnhq_checkPapel').bind("change", {id_linea: 'lp_bnhq'}, update_total_linea); @@ -2792,6 +2841,7 @@ function calcularPresupuesto_rot_color(fromComparador=false, updatedTipologias=f if(data.lineas.length >0){ // Se cogen los valores de la linea con los datos correspondientes $.each(data.lineas, function(key, value) { + console.log(value.fields.num_formas) fibra = $('#lp_rot_color_aFavorFibra').prop('checked') if(fromComparador){ if(value.fields.maquina_id === input_data.maquina_id && @@ -3324,16 +3374,16 @@ function fill_lp_from_bbdd(){ switch(lp.tipo){ case 'lp_bn': - eventos_lp_bn() + eventos_lp_bn(lp.maquina_tipo=='inkjet'?true:false) break case 'lp_bnhq': - eventos_lp_bnhq() + eventos_lp_bnhq(lp.maquina_tipo=='inkjet'?true:false) break case 'lp_color': - eventos_lp_color() + eventos_lp_color(lp.maquina_tipo=='inkjet'?true:false) break case 'lp_colorhq': - eventos_lp_colorhq() + eventos_lp_colorhq(lp.maquina_tipo=='inkjet'?true:false) break case 'lp_rot_bn': eventos_lp_rot_bn() diff --git a/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/previews.js b/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/previews.js index 7f80ed00..5d0e36d1 100755 --- a/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/previews.js +++ b/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/previews.js @@ -455,10 +455,11 @@ function getObjetoLP(lpName, _isCosido) { case 'rot_bn': case 'rot_color': - if ((pvObj.anchoImpresion / pvObj.altoForma) > (pvObj.anchoImpresion / pvObj.anchoForma)) { - let auxReg = pvObj.anchoForma; - pvObj.anchoForma = pvObj.altoForma; - pvObj.altoForma = auxReg; + // Conditional assignements depending on rotation of the printing shape + if (pvObj.orientacionFormas == 'v') { + let auxReg = pvObj.altoForma; + pvObj.altoForma = pvObj.anchoForma; + pvObj.anchoForma = auxReg; } $(pvName + '_forma').text(pvObj.anchoForma + "x" + pvObj.altoForma); pvObj.altoClick = isNaN(parseFloat(rowData.alto_click))?305:parseFloat(rowData.alto_click); From e0b7409ba54ee53ba36c9a5f0a1848d401195956 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jaime=20Jim=C3=A9nez?= <“jaimejimenezortega@gmail.com”> Date: Sun, 4 Feb 2024 21:04:33 +0100 Subject: [PATCH 2/2] eliminados los bugs --- .../Presupuestos/Cosidotapablanda.php | 33 +- ci4/app/Services/PresupuestoService.php | 283 ++++++------------ .../_lineasPresupuestoItems.php | 77 +++-- 3 files changed, 169 insertions(+), 224 deletions(-) diff --git a/ci4/app/Controllers/Presupuestos/Cosidotapablanda.php b/ci4/app/Controllers/Presupuestos/Cosidotapablanda.php index fa7fda96..b0ee05f8 100755 --- a/ci4/app/Controllers/Presupuestos/Cosidotapablanda.php +++ b/ci4/app/Controllers/Presupuestos/Cosidotapablanda.php @@ -483,7 +483,7 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController array_push($datosTipolog, $data); } - $a_favor_fibra = $reqData['a_favor_fibra'] ?? null; + $a_favor_fibra = $reqData['a_favor_fibra'] ?? false; $resourceData = $this->getCompIntData($type, $datosPedido, $papel_generico, $gramaje, $isColor, $isHq, $cliente_id, $datosTipolog, $a_favor_fibra); @@ -642,7 +642,7 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController } - public function getCompIntData($uso, $datosPedido, $papel_generico, $gramaje, $isColor, $isHq, $cliente_id, $datosTipolog = null, $a_favor_fibra = null) + public function getCompIntData($uso, $datosPedido, $papel_generico, $gramaje, $isColor, $isHq, $cliente_id, $datosTipolog = null, $a_favor_fibra = false) { $tipo = $isColor? ($isHq?'colorhq':'color'): ($isHq?'negrohq':'negro'); @@ -737,13 +737,7 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController } if($maquina->is_inkjet){ - $linea['fields'] = PresupuestoService::getCostesLineaRotativa($maquina, $papel, $datosPedido, $parametrosInkjet); - [$precio_pliego_impresion, $margen_pliego_impresion] = PresupuestoService::getPrecioPliego($maquina, $papel, $datosPedido->paginas); - $linea['fields']['precios_pliegos'] = $precio_pliego_impresion; - $linea['fields']['precio_libro'] = $linea['fields']['pliegos_libro'] * $precio_pliego_impresion; - $linea['fields']['a_favor_fibra'] = $parametrosInkjet->a_favor_fibra; - $linea['fields']['paginas_color'] = $isColor?$datosPedido->paginas:0; - $linea['fields']['datosTipologias'] = $datosTipologias[0]; + $linea = PresupuestoService::getCostesLinea($uso, $datosPedido, $maquina, $papel, $opciones_papel, $tarifa, $parametrosInkjet->a_favor_fibra); } else{ $linea = PresupuestoService::getCostesLinea($uso, $datosPedido, $maquina, $papel, $opciones_papel, $tarifa); @@ -751,6 +745,11 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController if(array_key_exists('error', $linea)) continue; + + if($maquina->is_inkjet){ + // calculo de tintas + $linea['fields'] = array_merge($linea['fields'], PresupuestoService::calculoCosteTintas($maquina, $datosPedido, $parametrosInkjet)); + } $linea['fields']['tarifa_impresion_id'] = $tarifaId; $linea['fields']['maquina'] = $maquina->maquina; @@ -763,10 +762,6 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController $linea['fields']['papel_generico_id'] = $papel_generico['id']; $linea['fields']['papel_generico'] = $papel_generico['nombre']; - if($maquina->is_inkjet){ - $linea['fields']['precio_click'] = $tarifa; - $linea['fields']['precio_click_pedido'] = $linea['fields']['clicks_pedido'] * $linea['fields']['precio_click']; - } $linea['fields']['tiempo_maquina'] = PresupuestoService::getTiempoMaquina( $linea['fields']['precio_click_pedido'], $linea['fields']['precio_click'], @@ -796,8 +791,16 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController $linea['fields']['margen_impresion_horas'] = $precio_hora*($margen_precio_hora/100.0)*$tiempo; if($maquina->is_inkjet){ - $linea['fields']['precio_pedido'] = $linea['fields']['precio_libro'] * ($datosPedido->tirada + $datosPedido->merma)*(1+$margen_pliego_impresion); - $linea['fields']['margen_papel_pedido'] = $linea['fields']['pliegos_libro']*$margen_pliego_impresion* ($datosPedido->tirada + $datosPedido->merma); ; + $linea['fields']['a_favor_fibra'] = $parametrosInkjet->a_favor_fibra; + $linea['fields']['paginas_color'] = $isColor?$datosPedido->paginas:0; + $linea['fields']['totalClicksPedido'] = $linea['fields']['precio_click_pedido']; + $linea['fields']['clicks_libro'] = round(ceil($linea['fields']['pliegos_libro']) * 2, 2); + $linea['fields']['clicks_pedido'] = round($linea['fields']['clicks_libro'] * ($datosPedido->tirada + $datosPedido->merma), 2); + [$ancho, $alto] = PresupuestoService::calculoDimForma($datosPedido, $parametrosInkjet); + $linea['fields']['factor_anchura'] = round($maquina->ancho_impresion / $ancho, 2); + $linea['fields']['factor_altura'] = round($maquina->alto_impresion / ($alto + PresupuestoService::MARGEN_PAGINAS_ROTATIVA), 2); + $linea['fields']['paginas_por_pliego'] = ($datosPedido->isCosido)?$linea['fields']['num_formas']['value']*2:$linea['fields']['num_formas']['value']; + $linea['fields']['datosTipologias'] = $datosTipologias[0]; $linea['fields']['total_impresion'] = $linea['fields']['precio_pedido'] + // papel $linea['fields']['precio_impresion_horas'] + // horas de maquina diff --git a/ci4/app/Services/PresupuestoService.php b/ci4/app/Services/PresupuestoService.php index f77b4d50..46cf88e3 100755 --- a/ci4/app/Services/PresupuestoService.php +++ b/ci4/app/Services/PresupuestoService.php @@ -38,14 +38,14 @@ class PresupuestoService extends BaseService * * @return [type] */ - public static function getCostesLinea($uso, $datosPedido, $maquina, $papel_impresion, $opciones_papel, $tarifa) + public static function getCostesLinea($uso, $datosPedido, $maquina, $papel_impresion, $opciones_papel, $tarifa, $forzar_a_favor_fibra = false) { $response['fields'] = []; if ($uso!='rotativa') { $ancho_calculo = ($uso=='cubierta' || $uso=='sobrecubierta') ? $datosPedido->anchoExteriores : $datosPedido->ancho; - $formas = PresupuestoService::getNumFormasPlana($uso, $maquina, $ancho_calculo, $datosPedido->alto, $datosPedido->isCosido,); + $formas = PresupuestoService::getNumFormasPlana($uso, $maquina, $ancho_calculo, $datosPedido->alto, $datosPedido->isCosido, $forzar_a_favor_fibra); $response['fields'] = $formas; } @@ -142,131 +142,7 @@ class PresupuestoService extends BaseService } - /** - * Devuelve los calculos para la linea de rotativa. - */ - public static function getCostesLineaInkjet($maquina, $papel_impresion, $datosPedido, $parametrosInkjet) - { - $data = []; - - $data['resolucion'] = 600; - $data['pulgada'] = 1 / 1000000000000.0; - $data['superficie'] = round((($datosPedido->ancho / 2.54) / 10) * (($datosPedido->alto / 2.54) / 10), 2); - - // posicionamos paginas en función de a favor de fibra o no - - $anchoLibro = $datosPedido->ancho; - $altoLibro = $datosPedido->alto; - - $formas = PresupuestoService::getNumFormasPlana('interior', $maquina, $datosPedido->ancho, $datosPedido->alto, $datosPedido->isCosido); - $response['fields'] = $formas; - - - if ($response['fields']['num_formas']['posicion_formas'] == 'n/a') { - $response['error']['value'] = true; - $response['error']['message'] = 'no_formas_disponibles'; - return $response; - } - - $data['ancho'] = $anchoLibro; - $data['alto'] = $altoLibro; - - // si es cosido ancho x 2 - - if ($datosPedido->isCosido) { - - $data['ancho'] = $data['ancho'] * 2; - } - - // calculo de papel y clicks - $factor_anchura = round($maquina->ancho_impresion / $data['ancho'], 2); - $factor_altura = round($maquina->alto_impresion / ($data['alto'] + self::MARGEN_PAGINAS_ROTATIVA), 2); - $factor_altura_click = round($maquina->alto_click / ($data['alto'] + self::MARGEN_PAGINAS_ROTATIVA), 2); - - $multiplicador_pliego = $datosPedido->isCosido ? 4 : 2; - $paginas_por_pliego = round(floor($factor_anchura) * $factor_altura * $multiplicador_pliego, 2); - $pliegos_libro = round($paginas_por_pliego ? $datosPedido->paginas / $paginas_por_pliego : 0, 2); - $metros_papel_libro = round($pliegos_libro * ($maquina->alto_impresion / 1000.0), 2); - $metros_papel_total = round($metros_papel_libro * ($datosPedido->tirada + $datosPedido->merma), 2); - - $paginas_por_pliego_click = round(floor($factor_anchura) * $factor_altura_click * $multiplicador_pliego, 2); - $pliegos_libro_click = round($paginas_por_pliego_click ? $datosPedido->paginas / $paginas_por_pliego_click : 0, 2); - $clicks_libro = round(ceil($pliegos_libro_click) * 2, 2); - $clicks_pedido = round($clicks_libro * ($datosPedido->tirada + $datosPedido->merma), 2); - - $data['factor_altura'] = $factor_altura; - $data['factor_anchura'] = $factor_anchura; - $data['paginas_por_pliego'] = $paginas_por_pliego; - $data['pliegos_libro'] = $pliegos_libro; - $data['pliegos_pedido'] = $pliegos_libro * ($datosPedido->tirada + $datosPedido->merma); - $data['metros_papel_libro'] = $metros_papel_libro; - $data['metros_papel_total'] = $metros_papel_total; - $data['clicks_libro'] = $clicks_libro; - $data['clicks_pedido'] = $clicks_pedido; - - // calculo de tintas - $data['num_gotas_negro'] = round($data['superficie'] * $data['resolucion'] * $data['resolucion'] * ($parametrosInkjet->rotativa_negro / 100.0), 0); - $data['num_gotas_cyan'] = round($data['superficie'] * $data['resolucion'] * $data['resolucion'] * ($parametrosInkjet->rotativa_cyan / 100.0), 0); - $data['num_gotas_magenta'] = round($data['superficie'] * $data['resolucion'] * $data['resolucion'] * ($parametrosInkjet->rotativa_magenta / 100.0), 0); - $data['num_gotas_amarillo'] = round($data['superficie'] * $data['resolucion'] * $data['resolucion'] * ($parametrosInkjet->rotativa_amarillo / 100.0), 0); - - $pag_negro = $parametrosInkjet->bnPages; - $pag_color = 0; - if ($parametrosInkjet->colorPages>0) { - $pag_color = $parametrosInkjet->colorPages; - } - - // peso tintas - $data['peso_gotas_negro'] = round((($data['num_gotas_negro'] * $parametrosInkjet->rotativa_gota_negro * $data['pulgada']) / (17.91 / 20.0)) * $pag_negro * 1000, 6); - $data['peso_gotas_cyan'] = round((($data['num_gotas_cyan'] * $parametrosInkjet->rotativa_gota_color * $data['pulgada']) / (17.65 / 20.0)) * $pag_color * 1000, 6); - $data['peso_gotas_magenta'] = round((($data['num_gotas_magenta'] * $parametrosInkjet->rotativa_gota_color * $data['pulgada']) / (17.65 / 20.0)) * $pag_color * 1000, 6); - $data['peso_gotas_amarillo'] = round((($data['num_gotas_amarillo'] * $parametrosInkjet->rotativa_gota_color * $data['pulgada']) / (17.65 / 20.0)) * $pag_color * 1000, 6); - - // costes de tintas - $data['peso_gotas_negro_pedido'] = round($data['peso_gotas_negro'], 2) * ($datosPedido->tirada + $datosPedido->merma); - $data['peso_gotas_cyan_pedido'] = round($data['peso_gotas_cyan'], 2) * ($datosPedido->tirada + $datosPedido->merma); - $data['peso_gotas_magenta_pedido'] = round($data['peso_gotas_magenta'], 2) * ($datosPedido->tirada + $datosPedido->merma); - $data['peso_gotas_amarillo_pedido'] = round($data['peso_gotas_amarillo'], 2) * ($datosPedido->tirada + $datosPedido->merma); - - // precio tinta - $data['precio_tinta'] = round( - round(($data['peso_gotas_negro_pedido'] / 1000.0) * $maquina->precio_tinta_negro, 2) + - round(($data['peso_gotas_cyan_pedido'] / 1000.0) * $maquina->precio_tinta_color, 2) + - round(($data['peso_gotas_magenta_pedido'] / 1000.0) * $maquina->precio_tinta_color, 2) + - round(($data['peso_gotas_amarillo_pedido'] / 1000.0) * $maquina->precio_tinta_color, 2) - , 2); - - // precio pagina - $data['precio_pagina_negro'] = round($pag_negro ? $data['precio_tinta'] / ($pag_negro * ($datosPedido->tirada + $datosPedido->merma)) : 0, 6); - $data['precio_pagina_color'] = round($pag_color ? $data['precio_tinta'] / ($pag_color * ($datosPedido->tirada + $datosPedido->merma)) : 0, 6); - - - - $data['mano'] = PresupuestoService::computeLomoInterior($datosPedido->paginas, $papel_impresion->espesor); - // ($paginas / 2.0) * (($gramaje / 1000.0) * $papel_compra->mano); - - // peso - $data['peso'] = PresupuestoService::computePeso( - ancho: $datosPedido->isCosido ? $datosPedido->ancho / 2.0 : $datosPedido->ancho, - alto: $datosPedido->alto, - gramaje: $papel_impresion->gramaje, - paginas: $datosPedido->paginas - ); - $data['dimensiones_maquina'] = [$maquina->ancho, $maquina->alto]; - $data['dimensiones_maquina_impresion'] = [$maquina->ancho_impresion, $maquina->alto_impresion]; - $data['dimensiones_maquina_click'] = [$maquina->ancho_impresion, $maquina->alto_click]; - $data['dimensiones_libro'] = [$datosPedido->ancho, $datosPedido->alto]; - - $data['alto_click'] = $maquina->alto_click; - - $formas = PresupuestoService::getNumFormasRot($maquina, $datosPedido->ancho, $datosPedido->alto, $datosPedido->isCosido); - $data['num_formas'] = $formas; - - return $data; - } - - /** * Devuelve los calculos para la linea de rotativa. */ @@ -274,32 +150,7 @@ class PresupuestoService extends BaseService { $data = []; - $data['resolucion'] = 600; - $data['pulgada'] = 1 / 1000000000000.0; - $data['superficie'] = round((($datosPedido->ancho / 2.54) / 10) * (($datosPedido->alto / 2.54) / 10), 2); - - // posicionamos paginas en función de a favor de fibra o no - - $anchoLibro = $datosPedido->ancho; - $altoLibro = $datosPedido->alto; - - if (!$parametrosRotativa->a_favor_fibra) { - $anchoLibro = $datosPedido->alto; - $altoLibro = $datosPedido->ancho; - } - - $data['ancho'] = $anchoLibro; - $data['alto'] = $altoLibro; - - // si es cosido ancho x 2 - - if ($datosPedido->isCosido) { - if (!$parametrosRotativa->a_favor_fibra) { - $data['alto'] = $data['alto'] * 2; - } else { - $data['ancho'] = $data['ancho'] * 2; - } - } + [$data['ancho'], $data['alto']] = PresupuestoService::calculoDimForma($datosPedido, $parametrosRotativa); // calculo de papel y clicks $factor_anchura = round($maquina->ancho_impresion / $data['ancho'], 2); @@ -328,41 +179,8 @@ class PresupuestoService extends BaseService $data['clicks_pedido'] = $clicks_pedido; // calculo de tintas - $data['num_gotas_negro'] = round($data['superficie'] * $data['resolucion'] * $data['resolucion'] * ($parametrosRotativa->rotativa_negro / 100.0), 0); - $data['num_gotas_cyan'] = round($data['superficie'] * $data['resolucion'] * $data['resolucion'] * ($parametrosRotativa->rotativa_cyan / 100.0), 0); - $data['num_gotas_magenta'] = round($data['superficie'] * $data['resolucion'] * $data['resolucion'] * ($parametrosRotativa->rotativa_magenta / 100.0), 0); - $data['num_gotas_amarillo'] = round($data['superficie'] * $data['resolucion'] * $data['resolucion'] * ($parametrosRotativa->rotativa_amarillo / 100.0), 0); - - $pag_negro = $parametrosRotativa->bnPages; - $pag_color = 0; - if ($parametrosRotativa->colorPages>0) { - $pag_color = $parametrosRotativa->colorPages; - } - - // peso tintas - $data['peso_gotas_negro'] = round((($data['num_gotas_negro'] * $parametrosRotativa->rotativa_gota_negro * $data['pulgada']) / (17.91 / 20.0)) * $pag_negro * 1000, 6); - $data['peso_gotas_cyan'] = round((($data['num_gotas_cyan'] * $parametrosRotativa->rotativa_gota_color * $data['pulgada']) / (17.65 / 20.0)) * $pag_color * 1000, 6); - $data['peso_gotas_magenta'] = round((($data['num_gotas_magenta'] * $parametrosRotativa->rotativa_gota_color * $data['pulgada']) / (17.65 / 20.0)) * $pag_color * 1000, 6); - $data['peso_gotas_amarillo'] = round((($data['num_gotas_amarillo'] * $parametrosRotativa->rotativa_gota_color * $data['pulgada']) / (17.65 / 20.0)) * $pag_color * 1000, 6); - - // costes de tintas - $data['peso_gotas_negro_pedido'] = round($data['peso_gotas_negro'], 2) * ($datosPedido->tirada + $datosPedido->merma); - $data['peso_gotas_cyan_pedido'] = round($data['peso_gotas_cyan'], 2) * ($datosPedido->tirada + $datosPedido->merma); - $data['peso_gotas_magenta_pedido'] = round($data['peso_gotas_magenta'], 2) * ($datosPedido->tirada + $datosPedido->merma); - $data['peso_gotas_amarillo_pedido'] = round($data['peso_gotas_amarillo'], 2) * ($datosPedido->tirada + $datosPedido->merma); - - // precio tinta - $data['precio_tinta'] = round( - round(($data['peso_gotas_negro_pedido'] / 1000.0) * $maquina->precio_tinta_negro, 2) + - round(($data['peso_gotas_cyan_pedido'] / 1000.0) * $maquina->precio_tinta_color, 2) + - round(($data['peso_gotas_magenta_pedido'] / 1000.0) * $maquina->precio_tinta_color, 2) + - round(($data['peso_gotas_amarillo_pedido'] / 1000.0) * $maquina->precio_tinta_color, 2) - , 2); - - // precio pagina - $data['precio_pagina_negro'] = round($pag_negro ? $data['precio_tinta'] / ($pag_negro * ($datosPedido->tirada + $datosPedido->merma)) : 0, 6); - $data['precio_pagina_color'] = round($pag_color ? $data['precio_tinta'] / ($pag_color * ($datosPedido->tirada + $datosPedido->merma)) : 0, 6); - + $data = array_merge($data, PresupuestoService::calculoCosteTintas($maquina, $datosPedido, $parametrosRotativa)); + // calculo de corte $data['velocidad_corte'] = $maquina->velocidad_corte; $data['precio_hora_corte'] = $maquina->precio_hora_corte; @@ -398,6 +216,84 @@ class PresupuestoService extends BaseService return $data; } + + /** + * Devuelve los calculos de las dimensiones de la forma + */ + public static function calculoDimForma($datosPedido, $parametros){ + // posicionamos paginas en función de a favor de fibra o no + if (!$parametros->a_favor_fibra) { + $anchoLibro = $datosPedido->alto; + $altoLibro = $datosPedido->ancho; + } + else{ + $anchoLibro = $datosPedido->ancho; + $altoLibro = $datosPedido->alto; + } + + // si es cosido ancho x 2 + if ($datosPedido->isCosido) { + if (!$parametros->a_favor_fibra) { + $altoLibro = $altoLibro * 2; + } else { + $anchoLibro = $anchoLibro * 2; + } + } + + return [$anchoLibro, $altoLibro]; + } + + + /** + * Devuelve los calculos para el coste de tintas + */ + public static function calculoCosteTintas($maquina, $datosPedido, $parametros) + { + $data = []; + + $data['pulgada'] = 1 / 1000000000000.0; + $data['resolucion'] = 600; + $data['superficie'] = round((($datosPedido->ancho / 2.54) / 10) * (($datosPedido->alto / 2.54) / 10), 2); + + $data['num_gotas_negro'] = round($data['superficie'] * $data['resolucion'] * $data['resolucion'] * ($parametros->rotativa_negro / 100.0), 0); + $data['num_gotas_cyan'] = round($data['superficie'] * $data['resolucion'] * $data['resolucion'] * ($parametros->rotativa_cyan / 100.0), 0); + $data['num_gotas_magenta'] = round($data['superficie'] * $data['resolucion'] * $data['resolucion'] * ($parametros->rotativa_magenta / 100.0), 0); + $data['num_gotas_amarillo'] = round($data['superficie'] * $data['resolucion'] * $data['resolucion'] * ($parametros->rotativa_amarillo / 100.0), 0); + + $pag_negro = $parametros->bnPages; + $pag_color = 0; + if ($parametros->colorPages>0) { + $pag_color = $parametros->colorPages; + } + + // peso tintas + $data['peso_gotas_negro'] = round((($data['num_gotas_negro'] * $parametros->rotativa_gota_negro * $data['pulgada']) / (17.91 / 20.0)) * $pag_negro * 1000, 6); + $data['peso_gotas_cyan'] = round((($data['num_gotas_cyan'] * $parametros->rotativa_gota_color * $data['pulgada']) / (17.65 / 20.0)) * $pag_color * 1000, 6); + $data['peso_gotas_magenta'] = round((($data['num_gotas_magenta'] * $parametros->rotativa_gota_color * $data['pulgada']) / (17.65 / 20.0)) * $pag_color * 1000, 6); + $data['peso_gotas_amarillo'] = round((($data['num_gotas_amarillo'] * $parametros->rotativa_gota_color * $data['pulgada']) / (17.65 / 20.0)) * $pag_color * 1000, 6); + + // costes de tintas + $data['peso_gotas_negro_pedido'] = round($data['peso_gotas_negro'], 2) * ($datosPedido->tirada + $datosPedido->merma); + $data['peso_gotas_cyan_pedido'] = round($data['peso_gotas_cyan'], 2) * ($datosPedido->tirada + $datosPedido->merma); + $data['peso_gotas_magenta_pedido'] = round($data['peso_gotas_magenta'], 2) * ($datosPedido->tirada + $datosPedido->merma); + $data['peso_gotas_amarillo_pedido'] = round($data['peso_gotas_amarillo'], 2) * ($datosPedido->tirada + $datosPedido->merma); + + // precio tinta + $data['precio_tinta'] = round( + round(($data['peso_gotas_negro_pedido'] / 1000.0) * $maquina->precio_tinta_negro, 2) + + round(($data['peso_gotas_cyan_pedido'] / 1000.0) * $maquina->precio_tinta_color, 2) + + round(($data['peso_gotas_magenta_pedido'] / 1000.0) * $maquina->precio_tinta_color, 2) + + round(($data['peso_gotas_amarillo_pedido'] / 1000.0) * $maquina->precio_tinta_color, 2) + , 2); + + // precio pagina + $data['precio_pagina_negro'] = round($pag_negro ? $data['precio_tinta'] / ($pag_negro * ($datosPedido->tirada + $datosPedido->merma)) : 0, 6); + $data['precio_pagina_color'] = round($pag_color ? $data['precio_tinta'] / ($pag_color * ($datosPedido->tirada + $datosPedido->merma)) : 0, 6); + + return $data; + } + + public static function getNumFormasRot($maquina, $ancho, $alto, $isCosido, $a_favor_fibra = true) { // El ancho si es cosido es el doble @@ -454,7 +350,7 @@ class PresupuestoService extends BaseService return $response; } - public static function getNumFormasPlana($uso, $maquina, $ancho, $alto, $isCosido) + public static function getNumFormasPlana($uso, $maquina, $ancho, $alto, $isCosido, $forzar_a_favor_fibra = false) { $h1_temp = 0; $h2_temp = 0; @@ -471,7 +367,7 @@ class PresupuestoService extends BaseService // Generates a message like: User 123 logged into the system from 127.0.0.1 $info = [ - 'isCosido' => $anchoForCalculo, + 'isCosido' => $forzar_a_favor_fibra, ]; log_message('error', 'isCosido en formas planas: {isCosido}', $info); @@ -527,10 +423,15 @@ class PresupuestoService extends BaseService // Se calcula el numero de formas - if($uso != 'cubierta' && $uso != 'sobrecubierta'){ + if($uso != 'cubierta' && $uso != 'sobrecubierta' && !$forzar_a_favor_fibra){ $num_formas = ($formas_h > $formas_v) ? $formas_h : $formas_v; $num_formas = $isCosido ? $num_formas * 2 : $num_formas; } + else if ($forzar_a_favor_fibra){ + $num_formas = $formas_h; + $num_formas = $isCosido ? $num_formas * 2 : $num_formas; + + } else{ $num_formas = $h1*$h2; } @@ -539,7 +440,7 @@ class PresupuestoService extends BaseService // si no hay formas se devuelve n/a if ($num_formas == 0) { $response['num_formas']['posicion_formas'] = 'n/a'; // not available - } else if ($formas_h > $formas_v) { + } else if ($formas_h > $formas_v || $forzar_a_favor_fibra) { $response['num_formas']['posicion_formas'] = 'h'; $response['num_formas']['num_formas_horizontales'] = $h1; $response['num_formas']['num_formas_verticales'] = $v1; diff --git a/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_lineasPresupuestoItems.php b/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_lineasPresupuestoItems.php index d2991f86..89d64a82 100755 --- a/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_lineasPresupuestoItems.php +++ b/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_lineasPresupuestoItems.php @@ -1197,7 +1197,7 @@ function change_lp_bn_aFavorFibra(){ rowData.aFavorFibra = $('#lp_bn_aFavorFibra').prop('checked') tableLineasPresupuesto.row('#lp_bn').data(rowData).draw(false) - calcularPresupuesto_rot_bn(false, true); + calcularPresupuesto_bn(false, true); } } @@ -1268,8 +1268,6 @@ function calcularPresupuesto_bn(input_data={}, updatedTipologias = false){ if(Object.keys(input_data).length == 0){ value.fields.check_papel_total = $('#lp_bn' + '_checkPapel').is(":checked")?1:0 value.fields.check_impresion_total = $('#lp_bn' + '_checkClicks').is(":checked")?1:0 - // Por defecto en plana: en contra de fibra - value.fields.a_favor_fibra = false } else{ @@ -1524,7 +1522,7 @@ function change_lp_color_tipologia(){ } -function por_defecto_lp_bn(){ +function por_defecto_lp_color(){ if( parseInt($('#lp_color_paginas').val())>0 && parseInt($('#lp_color_papel option:selected').val())>0 && @@ -1536,6 +1534,24 @@ function por_defecto_lp_bn(){ } } + +function change_lp_color_aFavorFibra(){ + + if( parseInt($('#lp_color_paginas').val())>0 && + parseInt($('#lp_color_papel option:selected').val())>0 && + $('#lp_color_gramaje option:selected').text().length>0 && + parseInt($('#lp_color_papelImpresion option:selected').val())>0 + ){ + var rowData = tableLineasPresupuesto.row('#lp_color').data() + rowData.aFavorFibra = $('#lp_color_aFavorFibra').prop('checked') + tableLineasPresupuesto.row('#lp_color').data(rowData).draw(false) + + calcularPresupuesto_color(false, true); + } +} + + + function calcularPresupuesto_color(input_data={}, updatedTipologias = false){ const dimension = getDimensionLibro(); @@ -1578,6 +1594,11 @@ function calcularPresupuesto_color(input_data={}, updatedTipologias = false){ datos.amarillo= $('#lp_color_cobAmarillo').val() } + // Si es inkjet, existe este check + if ($('#lp_color_aFavorFibra').length){ + datos.a_favor_fibra = $('#lp_color_aFavorFibra').prop('checked') + } + $.ajax({ type: "POST", url: "/cosidotapablanda/datatable", @@ -1676,6 +1697,7 @@ function eventos_lp_color(isInkjet = false){ if(isInkjet){ $('.lp-color-tipologia').bind("change", change_lp_color_tipologia); $('#lp_color_defecto').bind("click", por_defecto_lp_color); + $('#lp_color_aFavorFibra').bind("change", change_lp_color_aFavorFibra); } $('#lp_color_checkPapel').bind("change", {id_linea: 'lp_color'}, update_total_linea); @@ -1834,17 +1856,17 @@ function por_defecto_lp_bnhq(){ function change_lp_bnhq_aFavorFibra(){ -if( parseInt($('#lp_bnhq_paginas').val())>0 && - parseInt($('#lp_bnhq_papel option:selected').val())>0 && - $('#lp_bnhq_gramaje option:selected').text().length>0 && - parseInt($('#lp_bnhq_papelImpresion option:selected').val())>0 - ){ - var rowData = tableLineasPresupuesto.row('#lp_bnhq').data() - rowData.aFavorFibra = $('#lp_bnhq_aFavorFibra').prop('checked') - tableLineasPresupuesto.row('#lp_bnhq').data(rowData).draw(false) - - calcularPresupuesto_bnhq(false, true); -} + if( parseInt($('#lp_bnhq_paginas').val())>0 && + parseInt($('#lp_bnhq_papel option:selected').val())>0 && + $('#lp_bnhq_gramaje option:selected').text().length>0 && + parseInt($('#lp_bnhq_papelImpresion option:selected').val())>0 + ){ + var rowData = tableLineasPresupuesto.row('#lp_bnhq').data() + rowData.aFavorFibra = $('#lp_bnhq_aFavorFibra').prop('checked') + tableLineasPresupuesto.row('#lp_bnhq').data(rowData).draw(false) + + calcularPresupuesto_bnhq(false, true); + } } @@ -1892,7 +1914,7 @@ function calcularPresupuesto_bnhq(input_data={}, updatedTipologias = false){ // Si es inkjet, existe este check if ($('#lp_bnhq_aFavorFibra').length){ - datos.a_favor_fibra = $('#lp_bnhq_aFavorFibra').prop('checked') + datos.a_favor_fibra = $('#lp_bnhq_aFavorFibra').prop('checked')?1:0 } $.ajax({ @@ -1911,8 +1933,6 @@ function calcularPresupuesto_bnhq(input_data={}, updatedTipologias = false){ if(Object.keys(input_data).length == 0){ value.fields.check_papel_total = $('#lp_bnhq' + '_checkPapel').is(":checked")?1:0 value.fields.check_impresion_total = $('#lp_bnhq' + '_checkClicks').is(":checked")?1:0 - // Por defecto en plana: en contra de fibra - value.fields.a_favor_fibra = false } else{ value.fields.check_papel_total = 1 @@ -2155,6 +2175,21 @@ function por_defecto_lp_colorhq(){ } +function change_lp_colorhq_aFavorFibra(){ + + if( parseInt($('#lp_colorhq_paginas').val())>0 && + parseInt($('#lp_colorhq_papel option:selected').val())>0 && + $('#lp_colorhq_gramaje option:selected').text().length>0 && + parseInt($('#lp_colorhq_papelImpresion option:selected').val())>0 + ){ + var rowData = tableLineasPresupuesto.row('#lp_colorhq').data() + rowData.aFavorFibra = $('#lp_colorhq_aFavorFibra').prop('checked') + tableLineasPresupuesto.row('#lp_colorhq').data(rowData).draw(false) + + calcularPresupuesto_colorhq(false, true); + } +} + function calcularPresupuesto_colorhq(input_data={}, updatedTipologias = false){ @@ -2198,6 +2233,11 @@ function calcularPresupuesto_colorhq(input_data={}, updatedTipologias = false){ datos.amarillo= $('#lp_colorhq_cobAmarillo').val() } + // Si es inkjet, existe este check + if ($('#lp_colorhq_aFavorFibra').length){ + datos.a_favor_fibra = $('#lp_colorhq_aFavorFibra').prop('checked')?1:0 + } + $.ajax({ type: "POST", url: "/cosidotapablanda/datatable", @@ -2295,6 +2335,7 @@ function eventos_lp_colorhq(isInkjet = false){ if(isInkjet){ $('.lp-colorhq-tipologia').bind("change", change_lp_colorhq_tipologia); $('#lp_colorhq_defecto').bind("click", por_defecto_lp_colorhq); + $('#lp_colorhq_aFavorFibra').bind("change", change_lp_colorhq_aFavorFibra); } $('#lp_colorhq_checkPapel').bind("change", {id_linea: 'lp_colorhq'}, update_total_linea);