From a4658ce104ee642840985e04bddb69212615c528 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jaime=20Jim=C3=A9nez?= Date: Thu, 6 Mar 2025 20:15:38 +0100 Subject: [PATCH] ajustado para que de el mismo precio de envio (problema con los decimales) --- .../Controllers/Presupuestos/Presupuestocliente.php | 4 ++-- .../pages/presupuestoAdmin/sections/envios.js | 13 ++++++++----- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/ci4/app/Controllers/Presupuestos/Presupuestocliente.php b/ci4/app/Controllers/Presupuestos/Presupuestocliente.php index ff86bfaa..fad228e5 100755 --- a/ci4/app/Controllers/Presupuestos/Presupuestocliente.php +++ b/ci4/app/Controllers/Presupuestos/Presupuestocliente.php @@ -1869,11 +1869,11 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController $margen = 0; - $peso_envio = round(floatval(floatval($peso) * floatval($unidades) / 1000.0), 3); // peso libro * unidades y se pasa a kilogramos + $peso_envio = round(floatval(ceil(floatval($peso)) * floatval($unidades) / 1000.0), 3); // peso libro * unidades y se pasa a kilogramos $tarifas_envio = $modelTarifaEnvio->getTarifaEnvio($pais_id, $cp, $peso_envio, $entregaPieCalle ? 'palets' : 'cajas'); for ($i = 0; $i < count($tarifas_envio); $i++) { if ($peso_envio > $tarifas_envio[$i]->peso_max || floatval($tarifas_envio[$i]->precio_max) == 0) { - $tarifas_envio[$i]->precio = number_format(floatval($tarifas_envio[$i]->precio_min) + ($peso_envio - floatval($tarifas_envio[$i]->peso_min)) * floatval($tarifas_envio[$i]->precio_adicional), 2); + $tarifas_envio[$i]->precio = number_format(floatval($tarifas_envio[$i]->precio_max) + ($peso_envio - floatval($tarifas_envio[$i]->peso_max)) * floatval($tarifas_envio[$i]->precio_adicional), 2); } // si no se calcula linealmente else { diff --git a/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/envios.js b/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/envios.js index 4217cc10..425a783b 100644 --- a/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/envios.js +++ b/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/envios.js @@ -226,7 +226,7 @@ class Envios { var rowData = this.data(); peso_total_libro += parseFloat(rowData.peso) }) - return peso_total_libro; + return Math.ceil(peso_total_libro); } @@ -271,6 +271,7 @@ class Envios { var peso_total_libro = this.get_peso_libro(); const tirada = parseInt($('#tirada').val()); + peso_total_libro = Math.ceil(peso_total_libro); const peso_envio = peso_total_libro * tirada / 1000.0; let pais = 1; @@ -282,7 +283,7 @@ class Envios { if (datos_tarifa.id != null) { if (peso_envio > parseFloat(datos_tarifa.peso_max) || parseFloat(datos_tarifa.peso_max) == 0) { - datos_tarifa.precio = parseFloat(datos_tarifa.peso_min) + (peso_envio - parseFloat(datos_tarifa.peso_min)) * parseFloat(datos_tarifa.precio_adicional); + datos_tarifa.precio = parseFloat(datos_tarifa.precio_max) + (peso_envio - parseFloat(datos_tarifa.peso_max)) * parseFloat(datos_tarifa.precio_adicional); } // si no se calcula linealmente else { @@ -313,7 +314,9 @@ class Envios { rowData.cantidad = cantidad; } + peso_total_libro = Math.ceil(peso_total_libro); const peso_envio = peso_total_libro * parseInt(rowData.cantidad) / 1000.0; + const tirada = parseInt($('#tirada').val()); var datos_tarifa = await self.get_precio_envio(peso_envio, rowData.pais_id, rowData.cp, parseInt(rowData.entregaPieCalle) == 1 ? 'palets' : 'cajas'); @@ -484,9 +487,9 @@ class Envios { peso_total_libro += parseFloat(rowData.peso) }) - - const peso_envio = peso_total_libro * parseInt($('#add_cantidad').val()) / 1000.0 - + + peso_total_libro = Math.ceil(peso_total_libro); + const peso_envio = peso_total_libro * parseInt($('#add_cantidad').val()) / 1000.0; $.post('/presupuestodirecciones/datatable', {