diff --git a/ci4/app/Controllers/Presupuestos/Cosidotapablanda.php b/ci4/app/Controllers/Presupuestos/Cosidotapablanda.php index 31f68100..0360fb58 100755 --- a/ci4/app/Controllers/Presupuestos/Cosidotapablanda.php +++ b/ci4/app/Controllers/Presupuestos/Cosidotapablanda.php @@ -425,6 +425,7 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController 'merma' => intval($reqData['merma']) ?? 0, 'ancho' => intval($reqData['ancho']) ?? 100000, 'alto' => intval($reqData['alto']) ?? 100000, + 'a_favor_fibra' => $reqData['a_favor_fibra'] ?? 1, 'isCosido' => true, // JJO esto es custom por cada tipo de presupuesto ); @@ -752,15 +753,13 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController public function getCompIntRotData($datosPedido, $papel_generico, $gramaje, $paginas, $cliente_id, $datosTipolog = null) { - $uso = 'interior'; $tipo = $paginas->color>0? 'color': 'negro'; $parametrosRotativa = (object)array( - 'a_favor_fibra' => 0, // este parametro se cambia para comprobar - // en las dos direcciones (menos en rustica fresada que es siempre 1) + 'a_favor_fibra' => $datosPedido->a_favor_fibra, 'bnPages' => $paginas->negro, 'colorPages' => $paginas->color, 'rotativa_gota_negro' => 0, @@ -773,12 +772,12 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController $tipo = array(); if( $paginas->color > 0 ){ - $tipo[] = 'color'; + $tipo = 'color'; $opciones_papel['color'] = 1; } if( $paginas->negro > 0 ){ $opciones_papel['bn'] = 1; - $tipo[] = 'negro'; + $tipo = 'negro'; } // Se obtienen los papeles disponibles @@ -828,95 +827,90 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController // Se recorren las máquinas y se calcula el coste de linea por cada una foreach ($maquinas as $maquina) { - for ($i = 1; $i <= 1; $i++) { // Para que por defecto salga sólo a favor de fibra - - $parametrosRotativa->a_favor_fibra = $i; - - $tarifamodel = new MaquinasTarifasImpresionModel(); - [$tarifaId, $tarifa] = $tarifamodel->getTarifa($maquina->maquina_id, $uso, is_array($tipo)?'color':$tipo); - if(!is_float($tarifa)){ - continue; - } - - // precio del pliego de impresion - $linea['fields'] = PresupuestoService::getCostesLineaRotativa($maquina, $papel, $datosPedido, $parametrosRotativa); - - [$precio_pliego_impresion, $margen_pliego_impresion] = PresupuestoService::getPrecioPliego($maquina, $papel, $datosPedido->paginas); - - $linea['fields']['tarifa_impresion_id'] = $tarifaId; - - $linea['fields']['precios_pliegos'] = $precio_pliego_impresion; - - $linea['fields']['precio_libro'] = $linea['fields']['pliegos_libro'] * $precio_pliego_impresion; - // Precio papel pedido - $linea['fields']['precio_pedido'] = $linea['fields']['precio_libro'] * ($datosPedido->tirada + $datosPedido->merma); - $linea['fields']['margen_papel_pedido'] = $linea['fields']['pliegos_libro']*$margen_pliego_impresion* ($datosPedido->tirada + $datosPedido->merma); ; - - $linea['fields']['a_favor_fibra'] = $parametrosRotativa->a_favor_fibra; - $linea['fields']['maquina'] = $maquina->maquina; - $linea['fields']['maquina_id'] = $maquina->maquina_id; - $linea['fields']['maquina_velocidad'] = $maquina->velocidad; - $linea['fields']['tipo_maquina'] = 'inkjet'; - $linea['fields']['papel_impresion'] = $papel->nombre; - $linea['fields']['papel_impresion_id'] = $papel->id; - $linea['fields']['paginas'] = $datosPedido->paginas; - $linea['fields']['paginas_color'] = $paginas->color; - $linea['fields']['gramaje'] = $gramaje; - $linea['fields']['papel_generico_id'] = $papel_generico['id']; - $linea['fields']['papel_generico'] = $papel_generico['nombre']; - - $linea['fields']['posicion_formas'] = $parametrosRotativa->a_favor_fibra ? 'h' : 'v'; - $linea['fields']['num_formas_horizontales'] = floor($linea['fields']['factor_anchura']); - $linea['fields']['num_formas_verticales'] = floor($linea['fields']['factor_altura']); - - - - $linea['fields']['datosTipologias'] = $datosTipologias[0]; - - // impresion - $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'], - $maquina->velocidad); - - - $clientePreciosModel = new ClientePreciosModel(); - $config = (object)[ - "tipo" => $uso, - "tipo_maquina" => 'inkjet', - "tipo_impresion" => $tipo - ]; - $tiempo = PresupuestoService::getHorasMaquina( - $linea['fields']['precio_click_pedido'], - $linea['fields']['precio_click'], - $maquina->velocidad); - [$precio_hora, $margen_precio_hora] = $clientePreciosModel->get_precio_hora($cliente_id, $config, $tiempo); - - if(is_null($precio_hora)){ - continue; - } - - $linea['fields']['precio_hora'] = $precio_hora*(1+$margen_precio_hora/100.0); - $linea['fields']['precio_hora_margen'] = $margen_precio_hora; - $linea['fields']['horas_maquina'] = $tiempo; - $linea['fields']['precio_impresion_horas'] = $precio_hora*(1+$margen_precio_hora/100.0)*$tiempo; - $linea['fields']['margen_impresion_horas'] = $precio_hora*($margen_precio_hora/100.0)*$tiempo; - - // total linea rotativa - //$linea['fields']['total_impresion'] = $linea['fields']['precio_pedido'] + $linea['fields']['precio_click_pedido'] + $linea['fields']['precio_tinta'] + - // $linea['fields']['total_corte']; - $linea['fields']['total_impresion'] = - $linea['fields']['precio_pedido'] + // papel - $linea['fields']['precio_click_pedido'] + // precio clicks del pedido - $linea['fields']['precio_impresion_horas'] + // horas de maquina - $linea['fields']['precio_tinta'] + // tinta - $linea['fields']['total_corte']; // corte - - array_push($lineas, $linea); + $tarifamodel = new MaquinasTarifasImpresionModel(); + [$tarifaId, $tarifa] = $tarifamodel->getTarifa($maquina->maquina_id, $uso, is_array($tipo)?'color':$tipo); + if(!is_float($tarifa)){ + continue; } + + // precio del pliego de impresion + $linea['fields'] = PresupuestoService::getCostesLineaRotativa($maquina, $papel, $datosPedido, $parametrosRotativa); + + [$precio_pliego_impresion, $margen_pliego_impresion] = PresupuestoService::getPrecioPliego($maquina, $papel, $datosPedido->paginas); + + $linea['fields']['tarifa_impresion_id'] = $tarifaId; + + $linea['fields']['precios_pliegos'] = $precio_pliego_impresion; + + $linea['fields']['precio_libro'] = $linea['fields']['pliegos_libro'] * $precio_pliego_impresion; + // Precio papel pedido + $linea['fields']['precio_pedido'] = $linea['fields']['precio_libro'] * ($datosPedido->tirada + $datosPedido->merma); + $linea['fields']['margen_papel_pedido'] = $linea['fields']['pliegos_libro']*$margen_pliego_impresion* ($datosPedido->tirada + $datosPedido->merma); ; + + $linea['fields']['a_favor_fibra'] = $parametrosRotativa->a_favor_fibra; + $linea['fields']['maquina'] = $maquina->maquina; + $linea['fields']['maquina_id'] = $maquina->maquina_id; + $linea['fields']['maquina_velocidad'] = $maquina->velocidad; + $linea['fields']['tipo_maquina'] = 'inkjet'; + $linea['fields']['papel_impresion'] = $papel->nombre; + $linea['fields']['papel_impresion_id'] = $papel->id; + $linea['fields']['paginas'] = $datosPedido->paginas; + $linea['fields']['paginas_color'] = $paginas->color; + $linea['fields']['gramaje'] = $gramaje; + $linea['fields']['papel_generico_id'] = $papel_generico['id']; + $linea['fields']['papel_generico'] = $papel_generico['nombre']; + + $linea['fields']['posicion_formas'] = $parametrosRotativa->a_favor_fibra ? 'h' : 'v'; + $linea['fields']['num_formas_horizontales'] = floor($linea['fields']['factor_anchura']); + $linea['fields']['num_formas_verticales'] = floor($linea['fields']['factor_altura']); + + + + $linea['fields']['datosTipologias'] = $datosTipologias[0]; + + // impresion + $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'], + $maquina->velocidad); + + + $clientePreciosModel = new ClientePreciosModel(); + $config = (object)[ + "tipo" => $uso, + "tipo_maquina" => 'inkjet', + "tipo_impresion" => $tipo + ]; + $tiempo = PresupuestoService::getHorasMaquina( + $linea['fields']['precio_click_pedido'], + $linea['fields']['precio_click'], + $maquina->velocidad); + [$precio_hora, $margen_precio_hora] = $clientePreciosModel->get_precio_hora($cliente_id, $config, $tiempo); + + if(is_null($precio_hora)){ + continue; + } + + $linea['fields']['precio_hora'] = $precio_hora*(1+$margen_precio_hora/100.0); + $linea['fields']['precio_hora_margen'] = $margen_precio_hora; + $linea['fields']['horas_maquina'] = $tiempo; + $linea['fields']['precio_impresion_horas'] = $precio_hora*(1+$margen_precio_hora/100.0)*$tiempo; + $linea['fields']['margen_impresion_horas'] = $precio_hora*($margen_precio_hora/100.0)*$tiempo; + + // total linea rotativa + //$linea['fields']['total_impresion'] = $linea['fields']['precio_pedido'] + $linea['fields']['precio_click_pedido'] + $linea['fields']['precio_tinta'] + + // $linea['fields']['total_corte']; + $linea['fields']['total_impresion'] = + $linea['fields']['precio_pedido'] + // papel + $linea['fields']['precio_click_pedido'] + // precio clicks del pedido + $linea['fields']['precio_impresion_horas'] + // horas de maquina + $linea['fields']['precio_tinta'] + // tinta + $linea['fields']['total_corte']; // corte + + array_push($lineas, $linea); } } return $lineas; diff --git a/ci4/app/Services/PresupuestoService.php b/ci4/app/Services/PresupuestoService.php index fa031f48..e28c3ab8 100755 --- a/ci4/app/Services/PresupuestoService.php +++ b/ci4/app/Services/PresupuestoService.php @@ -280,6 +280,7 @@ class PresupuestoService extends BaseService $anchoLibro = $datosPedido->ancho; $altoLibro = $datosPedido->alto; + if (!$parametrosRotativa->a_favor_fibra) { $anchoLibro = $datosPedido->alto; $altoLibro = $datosPedido->ancho; diff --git a/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_datosPresupuestoClienteItems.php b/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_datosPresupuestoClienteItems.php index 1ffb1ae3..72b38d35 100755 --- a/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_datosPresupuestoClienteItems.php +++ b/ci4/app/Views/themes/backend/vuexy/form/presupuestos/cosidotapablanda/_datosPresupuestoClienteItems.php @@ -1130,7 +1130,7 @@ if ($(''+ elementos.papel).select2('data').length > 0 && $(''+ elementos.gramaje).select2('data').length > 0 && - parseInt($(''+ elementos.paginas).val()) > 0 && + parseInt($(''+ elementos.paginas).val()) >= 0 && checkDatosPedidoForComp()) { @@ -1143,8 +1143,8 @@ else { if(!is_hq){ - if ($('#compPapelNegro').select2('data')>0 && $('#compPapelColor').select2('data')>0 && - $('#compGramajeNegro').select2('data')>0 && $('#compGramajeColor').select2('data')>0) + if ($('#compPapelNegro').select2('data').length>0 && $('#compPapelColor').select2('data').length>0 && + $('#compGramajeNegro').select2('data').length>0 && $('#compGramajeColor').select2('data').length>0) { if(($('#compPapelNegro').select2('data')[0].id == $('#compPapelColor').select2('data')[0].id && $('#compGramajeNegro').select2('data')[0].text.trim() == $('#compGramajeColor').select2('data')[0].text.trim())) 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 c26f305e..3e98dcde 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 @@ -158,7 +158,7 @@ function format(d) { ''+ '
' + '' + - '' + + '' + '
' + '
' + '' + @@ -2268,7 +2268,7 @@ function clear_lp_rot_bn(clear_selectors){ function change_lp_rot_bn_maquina(){ if(parseInt($('#lp_rot_bn_paginas').val())>0){ - calcularPresupuesto_rot_bn(); + calcularPresupuesto_rot_bn(true,false); } } @@ -2294,6 +2294,10 @@ function change_lp_rot_bn_aFavorFibra(){ $('#lp_rot_bn_gramaje option:selected').text().length>0 && parseInt($('#lp_rot_bn_papelImpresion option:selected').val())>0 ){ + var rowData = tableLineasPresupuesto.row('#lp_rot_bn').data() + rowData.aFavorFibra = $('#lp_rot_bn_aFavorFibra').prop('checked') + tableLineasPresupuesto.row('#lp_rot_bn').data(rowData).draw(false) + calcularPresupuesto_rot_bn(false, true); } @@ -2313,7 +2317,7 @@ function calcularPresupuesto_rot_bn(fromComparador=false, updatedTipologias=fals gramaje: $('#lp_rot_bn_gramaje option:selected').text().trim(), maquina_id: $('#lp_rot_bn_maquina option:selected').val(), papel_impresion_id: $('#lp_rot_bn_papelImpresion option:selected').val(), - fibra: $('#lp_rot_bn_aFavorFibra').prop('checked') + fibra: fromComparador==false? ($('#lp_rot_bn_aFavorFibra').prop('checked')?1:0):1 } } @@ -2332,6 +2336,7 @@ function calcularPresupuesto_rot_bn(fromComparador=false, updatedTipologias=fals papel_generico: input_data.papel_generico, gramaje: input_data.gramaje, cliente_id: $('#clienteId').find(":selected").val(), + a_favor_fibra: fromComparador==false? ($('#lp_rot_bn_aFavorFibra').prop('checked')?1:0):1, : v }; @@ -2429,7 +2434,7 @@ function fill_lp_rot_bn(row, fromComparador=false){ gramaje: row.gramaje, papel_impresion_id: row.papelImpresionId, maquina_id: row.maquinaId, - fibra: row.aFavorFibra=='no'?false:true + fibra: row.aFavorFibra=='no'?0:1 } calcularPresupuesto_rot_bn(true, false, input_data); @@ -2592,7 +2597,8 @@ function clear_lp_rot_color(clear_selectors){ function change_lp_rot_color_maquina(){ if(parseInt($('#lp_rot_color_paginas').val())>0){ - calcularPresupuesto_rot_color(); + + calcularPresupuesto_rot_color(true,false); } } @@ -2617,7 +2623,10 @@ function change_lp_rot_color_aFavorFibra(){ $('#lp_rot_color_gramaje option:selected').text().length>0 && parseInt($('#lp_rot_color_papelImpresion option:selected').val())>0 ){ - + var rowData = tableLineasPresupuesto.row('#lp_rot_color').data() + rowData.aFavorFibra = $('#lp_rot_color_aFavorFibra').prop('checked') + tableLineasPresupuesto.row('#lp_rot_color').data(rowData).draw(false) + calcularPresupuesto_rot_color(false, true); } } @@ -2636,17 +2645,19 @@ function calcularPresupuesto_rot_color(fromComparador=false, updatedTipologias=f gramaje: $('#lp_rot_color_gramaje option:selected').text().trim(), maquina_id: $('#lp_rot_color_maquina option:selected').val(), papel_impresion_id: $('#lp_rot_color_papelImpresion option:selected').val(), - fibra: $('#lp_rot_bn_aFavorFibra').prop('checked') + fibra: fromComparador==false? ($('#lp_rot_color_aFavorFibra').prop('checked')?1:0):1 } } + paginas_color = isNaN(parseInt($('#lp_rot_color_numPagColor').val()))?input_data.paginas:parseInt($('#lp_rot_color_numPagColor').val()) + let datos = { type: 'interior_rot', color: 1, - hq: 0, + hq: 0, paginas: input_data.paginas, - paginas_negro: input_data.paginas-parseInt($('#lp_rot_color_numPagColor').val()), - paginas_color: parseInt($('#lp_rot_color_numPagColor').val()), + paginas_negro: input_data.paginas-paginas_color, + paginas_color: paginas_color, tirada: parseInt($('#tirada').val()), merma: parseInt($('#merma').val()), ancho: dimension.ancho, @@ -2655,6 +2666,7 @@ function calcularPresupuesto_rot_color(fromComparador=false, updatedTipologias=f papel_generico: input_data.papel_generico, gramaje: input_data.gramaje, cliente_id: $('#clienteId').find(":selected").val(), + a_favor_fibra: fromComparador==false? ($('#lp_rot_color_aFavorFibra').prop('checked')?1:0):1, : v }; @@ -2699,7 +2711,7 @@ function calcularPresupuesto_rot_color(fromComparador=false, updatedTipologias=f value.fields.a_favor_fibra == input_data.fibra) { value.fields.check_papel_total = $('#lp_rot_color' + '_checkPapel').is(":checked")?1:0 - value.fields.check_impresion_total = $('#lp_rot_bn' + '_checkClicks').is(":checked")?1:0 + value.fields.check_impresion_total = $('#lp_rot_color' + '_checkClicks').is(":checked")?1:0 fill_lp_rot_color(value.fields); return false; @@ -2756,7 +2768,7 @@ function fill_lp_rot_color(row, fromComparador=false){ gramaje: row.gramaje, papel_impresion_id: row.papelImpresionId, maquina_id: row.maquinaId, - fibra: row.aFavorFibra=='no'?false:true + fibra: row.aFavorFibra=='no'?0:1 } calcularPresupuesto_rot_color(true, false, input_data); @@ -2795,6 +2807,7 @@ function eventos_lp_rot_color(){ $('#lp_rot_color_maquina').bind("focus", set_lp_rot_color_maquina); $('#lp_rot_color_maquina').bind("change", change_lp_rot_color_maquina); $('#lp_rot_color_paginas').bind("change", change_lp_rot_color_paginas); + $('#lp_rot_color_numPagColor').bind("change", change_lp_rot_color_paginas); $('#lp_rot_color_vercalculos').bind("click", {rowId: 'lp_rot_color'}, verCalculosInkjet); $('#lp_rot_color_aFavorFibra').bind("change", change_lp_rot_color_aFavorFibra); $('.lp-rot-color-tipologia').bind("change", change_lp_rot_color_tipologia); @@ -3314,6 +3327,7 @@ async function fill_bbdd_from_lp(presupuesto_id){ linea_data.rotativa_precio_hora_corte = rowData.precioHoraCorte linea_data.rotativa_tiempo_corte = rowData.tiempoCorte linea_data.rotativa_total_corte = rowData.totalCorte + linea_data.rotativa_a_favor_fibra = rowData.aFavorFibra==true?1:0 } data.push(linea_data)