From 32f51e6718005c3cec8f29180271779735bdae0d Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 24 Jan 2024 18:14:50 +0100 Subject: [PATCH] arreglado bug. Ahora se ordenan las filas de lp --- .../Presupuestos/Cosidotapablanda.php | 5 + ci4/app/Controllers/Test.php | 18 ++- ci4/app/Services/PresupuestoService.php | 50 ++++++-- .../_datosPresupuestoClienteItems.php | 1 + .../_lineasPresupuestoItems.php | 114 +++++++++++++----- 5 files changed, 140 insertions(+), 48 deletions(-) diff --git a/ci4/app/Controllers/Presupuestos/Cosidotapablanda.php b/ci4/app/Controllers/Presupuestos/Cosidotapablanda.php index 0360fb58..d55c4770 100755 --- a/ci4/app/Controllers/Presupuestos/Cosidotapablanda.php +++ b/ci4/app/Controllers/Presupuestos/Cosidotapablanda.php @@ -503,7 +503,12 @@ class Cosidotapablanda extends \App\Controllers\GoBaseResourceController $datosPedido->solapas = $reqData['solapas']; $datosPedido->solapas_ancho = $reqData['solapas_ancho']; + $datosPedido->lomo = $reqData['lomo']; + if($type=='sobrecubierta') + $datosPedido->lomo_cubierta = $reqData['lomo_cubierta']; + + $datosPedido->anchoExteriores = PresupuestoService::getAnchoTotalExteriores($datosPedido); // Cubierta y sobrecubierta siempre color HQ $resourceData = $this->getCompIntData($type, $datosPedido, $papel_generico, $gramaje, $isColor, 1, $cliente_id); diff --git a/ci4/app/Controllers/Test.php b/ci4/app/Controllers/Test.php index 2fb444c1..21085c2a 100755 --- a/ci4/app/Controllers/Test.php +++ b/ci4/app/Controllers/Test.php @@ -17,12 +17,18 @@ class Test extends BaseController public function index() { - - /* - $maquina_id = 114; + echo '
';
+        $maquina_id = 63;
         $maquina_model = model('App\Models\Configuracion\MaquinaModel');
         $maquina = $maquina_model->find($maquina_id);
-        $formas = PresupuestoService::getNumFormasPlana('interior', $maquina, 150, 210, true);
+        $formas = PresupuestoService::getNumFormasPlana('cubierta', $maquina, 493.2, 210, true);
+        
+        
+        var_dump($formas);
+
+        echo '
'; + /* + $linea = PresupuestoService::getCostesLinea('interior', $datosPedido, $maquina, $papel, $opciones_papel, $tarifa); @@ -30,14 +36,14 @@ class Test extends BaseController var_dump($formas); - echo '';*/ + echo ''; echo '
';
         $tarifa_value = $this->get_tarifa_enc(18,150,22,150,210);
         var_dump($tarifa_value[0]);
         $model = model('App\Models\Presupuestos\PresupuestoEncuadernacionesModel');
         $result = $model->calcularTarifa($tarifa_value[0], 150, true);
         var_dump($result);
-        echo '
'; + echo '';*/ } private function asignar_tarifa_defecto_todos_usuarios() diff --git a/ci4/app/Services/PresupuestoService.php b/ci4/app/Services/PresupuestoService.php index e28c3ab8..b5fdf366 100755 --- a/ci4/app/Services/PresupuestoService.php +++ b/ci4/app/Services/PresupuestoService.php @@ -43,7 +43,9 @@ class PresupuestoService extends BaseService $response['fields'] = []; if ($uso!='rotativa') { - $formas = PresupuestoService::getNumFormasPlana($uso, $maquina, $datosPedido->ancho, $datosPedido->alto, $datosPedido->isCosido); + + $ancho_calculo = ($uso=='cubierta' || $uso=='sobrecubierta') ? $datosPedido->anchoExteriores : $datosPedido->ancho; + $formas = PresupuestoService::getNumFormasPlana($uso, $maquina, $ancho_calculo, $datosPedido->alto, $datosPedido->isCosido); $response['fields'] = $formas; } @@ -103,7 +105,7 @@ class PresupuestoService extends BaseService $mano = PresupuestoService::computeLomoPortada($papel_impresion->espesor); // peso - $ancho_total = $datosPedido->solapas? $datosPedido->ancho + $datosPedido->solapas_ancho:$datosPedido->ancho; + $ancho_total = $datosPedido->anchoExteriores + $mano; $peso = PresupuestoService::computePeso($ancho_total, $datosPedido->alto, $papel_impresion->gramaje); // impresion @@ -459,16 +461,18 @@ class PresupuestoService extends BaseService if($uso == 'cubierta' || $uso == 'sobrecubierta') { if(property_exists($maquina, 'forzar_num_formas_horizontales_cubierta') && - property_exists($maquina, 'forzar_num_formas_horizontales_cubierta')){ + property_exists($maquina, 'forzar_num_formas_verticales_cubierta')){ if($maquina->forzar_num_formas_horizontales_cubierta > 0 && - $maquina->forzar_num_formas_horizontales_cubierta > 0){ + $maquina->forzar_num_formas_verticales_cubierta > 0){ + // Hay que comprobar que entran $h1_temp = $maquina->forzar_num_formas_horizontales_cubierta; $h2_temp = $maquina->forzar_num_formas_verticales_cubierta; //$num_formas = $h1_temp * $h2_temp; } } + } // No es cubierta ni sobrecubierta else{ @@ -476,14 +480,18 @@ class PresupuestoService extends BaseService $h1_temp = floor($maquina->ancho_impresion / $anchoForCalculo); $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; + else{ + $h1 = $anchoForCalculo<=$maquina->ancho_impresion?$h1_temp:0; + } + $v1 = floor($maquina->alto_impresion / $alto); $formas_h = $h1 * $v1; //p1 @@ -493,12 +501,14 @@ class PresupuestoService extends BaseService $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; + else{ + $h2 = $alto<=$maquina->ancho_impresion?$h2_temp:0; + } + $v2 = floor($maquina->alto_impresion / $anchoForCalculo); $formas_v = $h2 * $v2; //p2 - + // Se calcula el numero de formas if($uso != 'cubierta' && $uso != 'sobrecubierta'){ $num_formas = ($formas_h > $formas_v) ? $formas_h : $formas_v; @@ -531,7 +541,7 @@ class PresupuestoService extends BaseService $response['num_formas']['num_formas_verticales'] = $h2; } } - + return $response; } @@ -579,6 +589,26 @@ class PresupuestoService extends BaseService } + /** + * Devuelve el ancho de la cubierta/sobrecubierta, incluido el lomo. + */ + public static function getAnchoTotalExteriores($datosPedido=null) + { + $ancho_total = 0; + + if ($datosPedido) { + $ancho_total = floatval($datosPedido->ancho)*2 + floatval($datosPedido->lomo); + $ancho_total += property_exists($datosPedido, 'lomo_cubierta')?$datosPedido->lomo_cubierta:0; + + // añadimos ancho de las solapas + // si se añaden solapas hay que sumar 3mm de los dobleces + if ($datosPedido->solapas) { + $ancho_total += (floatval($datosPedido->solapas_ancho) * 2) + 6; + } + } + return $ancho_total; + } + /** * Devuelve la dimensión del lomo interior. */ 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 72b38d35..aad2a126 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 @@ -995,6 +995,7 @@ color: 1, ancho: dimension.ancho, alto: dimension.alto, + lomo: getLomoLineasPresupuesto(), solapas: $('#solapas').is(':checked')?1:0, solapas_ancho: parseInt($('#solapas_ancho').val()), papel_generico_id: $('#compPapelCubierta').select2('data')[0].id, 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 ea1a7972..c0d8cde2 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 @@ -26,6 +26,7 @@ + @@ -365,7 +366,7 @@ const actionBtns_lp = function(data) { searching: false, paging: false, info: false, - ordering: false, + ordering: true, responsive: true, select: false, rowId: 'row_id', @@ -385,6 +386,15 @@ const actionBtns_lp = function(data) { orderable: false, visible: false, }, + { + targets: [11,12,13,14,15,16,17,18,19,20], + orderable: false, + }, + { + targets: [10], + orderable: true, + visible: false, + }, { orderable: false, searchable: false, @@ -402,6 +412,23 @@ const actionBtns_lp = function(data) { {data: 'formas_v'}, {data: 'formas_h'}, {data: 'formas_orientacion'}, + {data: 'position', + type: "num" , + render: function (data, type, row, meta){ + if(row.row_id.includes('_bn')){ + return 0; + } + else if(row.row_id.includes('_color')){ + return 1; + } + else if(row.row_id.includes('_cubierta')){ + return 2; + } + else if(row.row_id.includes('_sobrecubierta')){ + return 3; + } + } + }, {data: 'icon', render: function ( data, type, row, meta ){ return '' @@ -537,7 +564,8 @@ const actionBtns_lp = function(data) { data: actionBtns_lp, className: 'row-edit dt-center' } - ] + ], + "order": [ 10, 'asc' ] }); tableLineasPresupuesto.on( 'draw.dt', function () { @@ -554,6 +582,9 @@ $(document).on('click', '.btn-delete-lp', function(e) { .draw(); updateTotales(true, false, false) updateTablaEnvios() + + // Si existe cubierta, hay que actualizar con el valor del lomo + check_update_cubierta() }) @@ -886,7 +917,7 @@ $('#addLineasPresupuesto').on("change", function (e) { } var data = processRowData({tipo_maquina: 'toner'}, 'lp_bn', 'lp-bn'); - tableLineasPresupuesto.row.add(data).draw(true) + tableLineasPresupuesto.row.add(data).draw() eventos_lp_bn() break @@ -907,7 +938,7 @@ $('#addLineasPresupuesto').on("change", function (e) { } var data = processRowData({tipo_maquina: 'toner'}, 'lp_bnhq', 'lp-bnhq'); - tableLineasPresupuesto.row.add(data).draw(true) + tableLineasPresupuesto.row.add(data).draw() eventos_lp_bnhq() break @@ -928,7 +959,7 @@ $('#addLineasPresupuesto').on("change", function (e) { } var data = processRowData({tipo_maquina: 'toner'}, 'lp_color', 'lp-color'); - tableLineasPresupuesto.row.add(data).draw(true) + tableLineasPresupuesto.row.add(data).draw() eventos_lp_color() break @@ -949,7 +980,7 @@ $('#addLineasPresupuesto').on("change", function (e) { } var data = processRowData({tipo_maquina: 'toner'}, 'lp_colorhq', 'lp-colorhq'); - tableLineasPresupuesto.row.add(data).draw(true) + tableLineasPresupuesto.row.add(data).draw() eventos_lp_colorhq() break @@ -970,7 +1001,7 @@ $('#addLineasPresupuesto').on("change", function (e) { } var data = processRowData({tipo_maquina: 'toner'}, 'lp_rot_bn', 'lp-rot-bn'); - tableLineasPresupuesto.row.add(data).draw(true) + tableLineasPresupuesto.row.add(data).draw() eventos_lp_rot_bn() break @@ -991,7 +1022,7 @@ $('#addLineasPresupuesto').on("change", function (e) { } var data = processRowData({tipo_maquina: 'toner'}, 'lp_rot_color', 'lp-rot-color'); - tableLineasPresupuesto.row.add(data).draw(true) + tableLineasPresupuesto.row.add(data).draw() eventos_lp_rot_color() break @@ -1010,7 +1041,7 @@ $('#addLineasPresupuesto').on("change", function (e) { } var data = processRowData({tipo_maquina: 'toner'}, 'lp_cubierta', 'lp-cubierta'); - tableLineasPresupuesto.row.add(data).draw(true) + tableLineasPresupuesto.row.add(data).draw() eventos_lp_cubierta() break default: @@ -1287,9 +1318,9 @@ function fill_lp_bn(row, fromComparator=false){ var row = tableLineasPresupuesto.row('#lp_bn'); if(row.length>0) - tableLineasPresupuesto.row('#lp_bn').data(data).draw(true) + tableLineasPresupuesto.row('#lp_bn').data(data).draw() else{ - tableLineasPresupuesto.row.add(data).draw(true) + tableLineasPresupuesto.row.add(data).draw() row = tableLineasPresupuesto.row('#lp_bn'); } row.child(format(row.data())).show(); @@ -1302,7 +1333,6 @@ function fill_lp_bn(row, fromComparator=false){ updateTotales(true, false, false) updateTablaEnvios() - // Si existe cubierta, hay que actualizar con el valor del lomo check_update_cubierta() } @@ -1582,9 +1612,9 @@ function fill_lp_color(row, fromComparator=false){ var row = tableLineasPresupuesto.row('#lp_color'); if(row.length>0) - tableLineasPresupuesto.row('#lp_color').data(data).draw(true) + tableLineasPresupuesto.row('#lp_color').data(data).draw() else{ - tableLineasPresupuesto.row.add(data).draw(true) + tableLineasPresupuesto.row.add(data).draw() row = tableLineasPresupuesto.row('#lp_color'); } row.child(format(row.data())).show(); @@ -1596,6 +1626,9 @@ function fill_lp_color(row, fromComparator=false){ calcular_mermas() updateTotales(true, false, false) updateTablaEnvios() + + // Si existe cubierta, hay que actualizar con el valor del lomo + check_update_cubierta() } $("#tableLineasPresupuesto").DataTable().columns.adjust(); @@ -1876,9 +1909,9 @@ function fill_lp_bnhq(row, fromComparator=false){ var row = tableLineasPresupuesto.row('#lp_bnhq'); if(row.length>0) - tableLineasPresupuesto.row('#lp_bnhq').data(data).draw(true) + tableLineasPresupuesto.row('#lp_bnhq').data(data).draw() else{ - tableLineasPresupuesto.row.add(data).draw(true) + tableLineasPresupuesto.row.add(data).draw() row = tableLineasPresupuesto.row('#lp_bnhq'); } row.child(format(row.data())).show(); @@ -1890,6 +1923,9 @@ function fill_lp_bnhq(row, fromComparator=false){ calcular_mermas() updateTotales(true, false, false) updateTablaEnvios() + + // Si existe cubierta, hay que actualizar con el valor del lomo + check_update_cubierta() } $("#tableLineasPresupuesto").DataTable().columns.adjust(); @@ -2170,9 +2206,9 @@ function fill_lp_colorhq(row, fromComparator=false){ var row = tableLineasPresupuesto.row('#lp_colorhq'); if(row.length>0) - tableLineasPresupuesto.row('#lp_colorhq').data(data).draw(true) + tableLineasPresupuesto.row('#lp_colorhq').data(data).draw() else{ - tableLineasPresupuesto.row.add(data).draw(true) + tableLineasPresupuesto.row.add(data).draw() row = tableLineasPresupuesto.row('#lp_colorhq'); } row.child(format(row.data())).show(); @@ -2184,6 +2220,9 @@ function fill_lp_colorhq(row, fromComparator=false){ calcular_mermas() updateTotales(true, false, false) updateTablaEnvios() + + // Si existe cubierta, hay que actualizar con el valor del lomo + check_update_cubierta() } $("#tableLineasPresupuesto").DataTable().columns.adjust(); @@ -2498,9 +2537,9 @@ function fill_lp_rot_bn(row, fromComparador=false){ var row = tableLineasPresupuesto.row('#lp_rot_bn'); if(row.length>0) - tableLineasPresupuesto.row('#lp_rot_bn').data(data).draw(true) + tableLineasPresupuesto.row('#lp_rot_bn').data(data).draw() else{ - tableLineasPresupuesto.row.add(data).draw(true) + tableLineasPresupuesto.row.add(data).draw() row = tableLineasPresupuesto.row('#lp_rot_bn'); } row.child(format(row.data())).show(); @@ -2512,6 +2551,9 @@ function fill_lp_rot_bn(row, fromComparador=false){ calcular_mermas() updateTotales(true, false, false) updateTablaEnvios() + + // Si existe cubierta, hay que actualizar con el valor del lomo + check_update_cubierta() } $('.lp_rot_bn').css('display', '') @@ -2831,9 +2873,9 @@ function fill_lp_rot_color(row, fromComparador=false){ var row = tableLineasPresupuesto.row('#lp_rot_color'); if(row.length>0) - tableLineasPresupuesto.row('#lp_rot_color').data(data).draw(true) + tableLineasPresupuesto.row('#lp_rot_color').data(data).draw() else{ - tableLineasPresupuesto.row.add(data).draw(true) + tableLineasPresupuesto.row.add(data).draw() row = tableLineasPresupuesto.row('#lp_rot_color'); } row.child(format(row.data())).show(); @@ -2845,6 +2887,9 @@ function fill_lp_rot_color(row, fromComparador=false){ calcular_mermas() updateTotales(true, false, false) updateTablaEnvios() + + // Si existe cubierta, hay que actualizar con el valor del lomo + check_update_cubierta() } $("#tableLineasPresupuesto").DataTable().columns.adjust(); @@ -3025,8 +3070,9 @@ function calcularPresupuesto_cubierta(fromComparador=false, input_data={}){ solapas_ancho: parseInt($('#solapas_ancho').val()), tirada: parseInt($('#tirada').val()), merma: parseInt($('#mermacubierta').val()), - ancho: dimension.ancho+getLomoLineasPresupuesto(), + ancho: dimension.ancho, alto: dimension.alto, + lomo: getLomoLineasPresupuesto(), papel_generico_id: input_data.papel_generico_id, papel_generico: input_data.papel_generico, gramaje: input_data.gramaje, @@ -3105,9 +3151,9 @@ function fill_lp_cubierta(row, fromComparador=false){ var row = tableLineasPresupuesto.row('#lp_cubierta'); if(row.length>0) - tableLineasPresupuesto.row('#lp_cubierta').data(data).draw(true) + tableLineasPresupuesto.row('#lp_cubierta').data(data).draw() else{ - tableLineasPresupuesto.row.add(data).draw(true) + tableLineasPresupuesto.row.add(data).draw() row = tableLineasPresupuesto.row('#lp_cubierta'); } row.child(format(row.data())).show(); @@ -3144,17 +3190,21 @@ function check_update_cubierta(){ let row = tableLineasPresupuesto.row('#lp_cubierta'); if(row.length>0){ calcularPresupuesto_cubierta() - } } function getLomoLineasPresupuesto(){ - lomoTotal = 0 - tableLineasPresupuesto.rows().every( function ( rowIdx, tableLoop, rowLoop ) { - var rowData = this.data(); - lomoTotal += parseFloat(rowData.lomo) - }) + let lomoTotal = 0 + try{ + tableLineasPresupuesto.rows().every( function ( rowIdx, tableLoop, rowLoop ) { + var rowData = this.data(); + lomoTotal += parseFloat(rowData.lomo) + }) + } + catch(error){ + lomoTotal = 0 + } return lomoTotal } @@ -3260,7 +3310,7 @@ function fill_lp_from_bbdd(){ var row = tableLineasPresupuesto.row("#" + lp.tipo); - tableLineasPresupuesto.row.add(data).draw(true) + tableLineasPresupuesto.row.add(data).draw() row = tableLineasPresupuesto.row("#" + lp.tipo); row.child(format(row.data())).show();