From b9a742a7a7b11509c48b7d30b8faaceb0272f808 Mon Sep 17 00:00:00 2001 From: Jaime Jimenez Date: Wed, 19 Mar 2025 12:19:08 +0100 Subject: [PATCH] solucionados algunos problemas con las tiradas alternativas --- .../Presupuestotiradasalternativas.php | 12 +++++++----- .../pages/presupuestoAdmin/sections/resumen.js | 12 +++++++----- .../sections/tiradasAlternativas.js | 17 +++++++++++------ 3 files changed, 25 insertions(+), 16 deletions(-) diff --git a/ci4/app/Controllers/Presupuestos/Presupuestotiradasalternativas.php b/ci4/app/Controllers/Presupuestos/Presupuestotiradasalternativas.php index 616a6ef4..96d6c079 100644 --- a/ci4/app/Controllers/Presupuestos/Presupuestotiradasalternativas.php +++ b/ci4/app/Controllers/Presupuestos/Presupuestotiradasalternativas.php @@ -378,14 +378,16 @@ class Presupuestotiradasalternativas extends \App\Controllers\BaseResourceContro $json_data_extra = json_decode($json_data_extra, true); if (count($json_data_extra) > 0) { $extra = new Presupuestoserviciosextra(); - $POD = (new \App\Models\Configuracion\ConfigVariableModel())->getVariable('POD')->value; - $result = $extra->getServiciosExtra($json_data_extra, $reqData['tirada'], $POD); + $json_data_extra = array_map(function($item) { + return $item['tarifa_id']; + }, $json_data_extra); + $result = $extra->getServiciosExtra($json_data_extra); if (count($result) > 0) { foreach ($result as $servicio) { - $servicios->coste += round(floatval($servicio->total), 2); - $base = round(floatval($servicio->total / (1 + $servicio->margen / 100.0)), 2); + $servicios->coste += round(floatval($servicio->precio), 2); + $base = round(floatval($servicio->precio / (1 + floatval($servicio->margen) / 100.0)), 2); $base = round(floatval($base / $datosPedido->tirada) , 2)* $datosPedido->tirada; - $servicios->margen += round(floatval($servicio->total - $base), 2); + $servicios->margen += round(floatval($servicio->precio - $base), 2); } } } diff --git a/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/resumen.js b/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/resumen.js index 08d0b3f2..8384c70c 100644 --- a/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/resumen.js +++ b/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/resumen.js @@ -208,9 +208,10 @@ class Resumen { $('#tableOfServiciosPreimpresion').DataTable().rows().every(function (rowIdx, tableLoop, rowLoop) { let rowData = this.data(); let total_servicio = self.roundToTwoDecimals(parseFloat(rowData.precio)); - let coste_servicio = self.roundToTwoDecimals(parseFloat(rowData.coste)); + let base = (parseFloat(rowData.precio / (1 + parseFloat(rowData.margen) / 100.0)).toFixed(2)); + base = self.roundToTwoDecimals(base / parseInt($('#tirada').val()))*parseInt($('#tirada').val()); + margenServicios += self.roundToTwoDecimals(parseFloat(total_servicio - base)); totalServicios += total_servicio - margenServicios += total_servicio - coste_servicio; }); } @@ -218,9 +219,10 @@ class Resumen { $('#tableOfServiciosExtra').DataTable().rows().every(function (rowIdx, tableLoop, rowLoop) { let rowData = this.data(); let total_servicio = self.roundToTwoDecimals(parseFloat(rowData.precio)); - let coste_servicio = self.roundToTwoDecimals(parseFloat(rowData.margen)); - totalServicios += total_servicio - margenServicios += total_servicio - coste_servicio; + let base = (parseFloat(rowData.precio / (1 + parseFloat(rowData.margen) / 100.0)).toFixed(2)); + base = self.roundToTwoDecimals(base / parseInt($('#tirada').val()))*parseInt($('#tirada').val()); + margenServicios += self.roundToTwoDecimals(parseFloat(total_servicio - base)); + totalServicios += total_servicio; }); } diff --git a/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/tiradasAlternativas.js b/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/tiradasAlternativas.js index 85ad2b67..71035644 100644 --- a/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/tiradasAlternativas.js +++ b/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/tiradasAlternativas.js @@ -172,7 +172,7 @@ class TiradasAlernativas { let datos = { id: id, - tirada: this.tirada.val(), + tirada: tirada, peso_libro: this.get_peso_libro(), tirada_base: $('#tirada').val(), paginas: $('#paginas').val(), @@ -225,18 +225,23 @@ class TiradasAlernativas { } + /* $('#tableOfServiciosPreimpresion').DataTable().rows().every(function (rowIdx, tableLoop, rowLoop) { var rowData = this.data(); - costes_servicios += parseFloat(rowData.coste); - margen_servicios += parseFloat(rowData.precio) - parseFloat(rowData.coste); + var base = (parseFloat(rowData.precio / (1 + parseFloat(rowData.margen) / 100.0)).toFixed(2)); + base = parseFloat((parseFloat(base) / datos.tirada).toFixed(2)) * datos.tirada; + costes_servicios += parseFloat(rowData.precio); + margen_servicios += parseFloat(rowData.precio) - base; }); $('#tableOfServiciosExtra').DataTable().rows().every(function (rowIdx, tableLoop, rowLoop) { var rowData = this.data(); - costes_servicios += parseFloat(rowData.coste); - margen_servicios += parseFloat(rowData.precio) - parseFloat(rowData.coste); + var base = (parseFloat(rowData.precio / (1 + parseFloat(rowData.margen) / 100.0)).toFixed(2)); + base = parseFloat((parseFloat(base) / datos.tirada).toFixed(2)) * datos.tirada; + costes_servicios += parseFloat(rowData.precio); + margen_servicios += parseFloat(rowData.precio) - base; }); - + */ if (data.envios) { coste_envio += data.envios.coste; margen_envio += data.envios.margen;