diff --git a/ci4/app/Controllers/Presupuestos/Presupuestoadmin.php b/ci4/app/Controllers/Presupuestos/Presupuestoadmin.php index d554c1f0..fade605c 100644 --- a/ci4/app/Controllers/Presupuestos/Presupuestoadmin.php +++ b/ci4/app/Controllers/Presupuestos/Presupuestoadmin.php @@ -631,8 +631,8 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController $data['resumen']['total_margen_envios'] = $presupuesto->total_margen_envios; $data['resumen']['total_costes'] = $presupuesto->total_costes; $data['resumen']['porcentajeMargen'] = - round(($presupuesto->total_costes + $presupuesto->total_margenes) > 0 ? - 100 * $presupuesto->total_margenes / ($presupuesto->total_costes + $presupuesto->total_margenes) : + round(($presupuesto->total_costes) > 0 ? + 100 * $presupuesto->total_margenes / ($presupuesto->total_costes) : 0, 0); $data['resumen']['total_margenes'] = $presupuesto->total_margenes; $data['resumen']['total_antes_descuento'] = $presupuesto->total_antes_descuento; @@ -1839,7 +1839,7 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController $input_data = []; $input_data['presupuesto_id'] = $presupuestoEntity->id; $input_data['tipo_impresion_id'] = $presupuestoEntity->tipo_impresion_id; - $input_data['tirada'] = $presupuestoEntity->tirada; + $input_data['tirada'] = (intval($presupuestoEntity->tirada) + intval($presupuestoEntity->merma)); $input_data['POD'] = $this->getPOD(); $input_data['paginas'] = $presupuestoEntity->paginas; $input_data['is_duplicado'] = $presupuestoEntity->is_duplicado; diff --git a/ci4/app/Controllers/Presupuestos/Presupuestocliente.php b/ci4/app/Controllers/Presupuestos/Presupuestocliente.php index 56c32604..6e8d07b5 100755 --- a/ci4/app/Controllers/Presupuestos/Presupuestocliente.php +++ b/ci4/app/Controllers/Presupuestos/Presupuestocliente.php @@ -1170,8 +1170,10 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController for ($i = 0; $i < count($tirada); $i++) { $coste_envio = 0.0; $coste_envio += ($resultado_presupuesto['eb'][$i] / $tirada[$i]); - $resultado_presupuesto['info']['totales'][$i]['envio_base_coste'] = $resultado_presupuesto['eb'][$i] - $resultado_presupuesto['eb_margen'][$i]; - $resultado_presupuesto['info']['totales'][$i]['envio_base_margen'] = $resultado_presupuesto['eb_margen'][$i]; + $resultado_presupuesto['info']['totales'][$i]['envio_base_margen'] = + floatval($resultado_presupuesto['eb'][$i])*(floatval($resultado_presupuesto['eb_margen'][$i])/100.0); + $resultado_presupuesto['info']['totales'][$i]['envio_base_coste'] = $resultado_presupuesto['eb'][$i]; + $resultado_presupuesto['precio_u'][$i] = round(floatval($resultado_presupuesto['precio_u'][$i]) + $coste_envio, 4); } @@ -1348,7 +1350,8 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController foreach ($serviciosAcabado as $service) { $model = model('App\Models\Presupuestos\PresupuestoAcabadosModel'); - $servicio = $model->getPrecioTarifa(intval($service), intval($selected_tirada), -1, $POD); + $servicio = $model->getPrecioTarifa( + intval($service), intval($selected_tirada)+$resultado_presupuesto['info']['merma'], -1, $POD); if (count($servicio) > 0) { if ($servicio[0]->total > 0) { @@ -1365,7 +1368,9 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController foreach ($serviciosAcabado as $service) { $model = model('App\Models\Presupuestos\PresupuestoAcabadosModel'); - $servicio = $model->getPrecioTarifa(intval($service), intval($selected_tirada), -1, $POD); + $servicio = $model->getPrecioTarifa( + intval($service), + intval($selected_tirada) + $resultado_presupuesto['info']['merma'], -1, $POD); if (count($servicio) > 0) { if ($servicio[0]->total > 0) { @@ -1381,7 +1386,9 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController foreach ($serviciosAcabado as $service) { $model = model('App\Models\Presupuestos\PresupuestoAcabadosModel'); - $servicio = $model->getPrecioTarifa(intval($service), intval($selected_tirada), -1, $POD); + $servicio = $model->getPrecioTarifa( + intval($service), + intval($selected_tirada) + $resultado_presupuesto['info']['merma'], -1, $POD); if (count($servicio) > 0) { if ($servicio[0]->total > 0) { @@ -1394,7 +1401,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController $tarifa_id = model('App\Models\Configuracion\ConfigVariableModel')->getVariable('id_servicio_lomo_redondo')->value; $serv_lomo = PresupuestoCLienteService::getServiciosManipulado([ 'tarifa_id' => intval($tarifa_id), - 'tirada' => $selected_tirada, + 'tirada' => $selected_tirada+$resultado_presupuesto['info']['merma'], 'POD' => $POD, ])[0]; diff --git a/ci4/app/Models/Presupuestos/PresupuestoModel.php b/ci4/app/Models/Presupuestos/PresupuestoModel.php index 61823feb..e2989de3 100755 --- a/ci4/app/Models/Presupuestos/PresupuestoModel.php +++ b/ci4/app/Models/Presupuestos/PresupuestoModel.php @@ -405,9 +405,9 @@ class PresupuestoModel extends \App\Models\BaseModel $is_cosido = (new TipoPresupuestoModel())->get_isCosido($data['tipo_impresion_id']); $totalCostes = $resumen_totales['totalPapel'] + $resumen_totales['totalImpresion'] + - $resumen_totales['totalServicios'] + $resumen_totales['envio_base_coste']; + $resumen_totales['totalServicios']; //+ $resumen_totales['envio_base_coste']; $totalMargenes = $resumen_totales['margenPapel'] + $resumen_totales['margenImpresion'] + - $resumen_totales['margenServicios'] + $resumen_totales['envio_base_margen']; + $resumen_totales['margenServicios']; //+ $resumen_totales['envio_base_margen']; $fields = [ 'cliente_id' => $data['clienteId'], @@ -483,12 +483,16 @@ class PresupuestoModel extends \App\Models\BaseModel 'total_costes' => round($totalCostes, 2), 'total_margenes' => round($totalMargenes, 2), - 'total_antes_descuento' => round($totalCostes + $totalMargenes, 2), + 'total_antes_descuento' => round( + $totalCostes + $totalMargenes + $data['envio_base'], 2), 'total_descuento' => 0, 'total_descuentoPercent' => 0, 'total_precio_unidad' => $resumen_totales['precio_unidad'], - 'total_presupuesto' => round($totalCostes + $totalMargenes + $resumen_totales['coste_envio']+$resumen_totales['margen_envio'], 2), + 'total_presupuesto' => round( + $totalCostes + $totalMargenes + + $resumen_totales['coste_envio']+$resumen_totales['margen_envio'] + + $resumen_totales['envio_base_coste']+$resumen_totales['envio_base_margen'], 2), 'total_aceptado' => round($totalCostes + $totalMargenes + $resumen_totales['coste_envio']+$resumen_totales['margen_envio'], 2), 'total_factor' => round(($totalCostes + $totalMargenes - $resumen_totales['coste_envio'] - $resumen_totales['margen_envio']) / $resumen_totales['sumForFactor'], 2), diff --git a/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/resumen.js b/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/resumen.js index 98920850..f34c49d0 100644 --- a/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/resumen.js +++ b/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/resumen.js @@ -195,6 +195,8 @@ class Resumen { if (updateServicios) { + const total = parseInt($('#tirada').val()) + parseInt($('#merma').val()); + if (typeof $("#tableOfServiciosEncuadernacion").DataTable() !== 'undefined' && $("#tableOfServiciosEncuadernacion").DataTable().rows().count() > 0) { $('#tableOfServiciosEncuadernacion').DataTable().rows().every(function (rowIdx, tableLoop, rowLoop) { let rowData = this.data(); @@ -202,7 +204,7 @@ class Resumen { let margen_servicio = parseFloat(rowData.margen); totalServicios += total_servicio let base = self.roundToTwoDecimals(total_servicio / (1 + margen_servicio / 100.0)); - base = self.roundToTwoDecimals(base / parseInt($('#tirada').val())) * parseInt($('#tirada').val()); + base = self.roundToTwoDecimals(base / total) * total; margenServicios += self.roundToTwoDecimals(parseFloat(total_servicio - base)); }); } @@ -214,7 +216,7 @@ class Resumen { let margen_servicio = parseFloat(rowData.margen); totalServicios += total_servicio let base = self.roundToTwoDecimals(total_servicio / (1 + margen_servicio / 100.0)); - base = self.roundToTwoDecimals(base / parseInt($('#tirada').val())) * parseInt($('#tirada').val()); + base = self.roundToTwoDecimals(base / total) * total; margenServicios += self.roundToTwoDecimals(parseFloat(total_servicio - base)); }); } @@ -224,7 +226,7 @@ class Resumen { let rowData = this.data(); let total_servicio = self.roundToTwoDecimals(parseFloat(rowData.precio)); let base = (parseFloat(rowData.precio / (1 + parseFloat(rowData.margen) / 100.0)).toFixed(2)); - base = self.roundToTwoDecimals(base / parseInt($('#tirada').val())) * parseInt($('#tirada').val()); + base = self.roundToTwoDecimals(base / total) * total; margenServicios += self.roundToTwoDecimals(parseFloat(total_servicio - base)); totalServicios += total_servicio }); @@ -235,7 +237,7 @@ class Resumen { let rowData = this.data(); let total_servicio = self.roundToTwoDecimals(parseFloat(rowData.precio)); let base = (parseFloat(rowData.precio / (1 + parseFloat(rowData.margen) / 100.0)).toFixed(2)); - base = self.roundToTwoDecimals(base / parseInt($('#tirada').val())) * parseInt($('#tirada').val()); + base = self.roundToTwoDecimals(base / total) * total; margenServicios += self.roundToTwoDecimals(parseFloat(total_servicio - base)); totalServicios += total_servicio; }); @@ -248,7 +250,7 @@ class Resumen { let margen_servicio = parseFloat(rowData.margen); totalServicios += total_servicio let base = self.roundToTwoDecimals(total_servicio / (1 + margen_servicio / 100.0)); - base = self.roundToTwoDecimals(base / parseInt($('#tirada').val())) * parseInt($('#tirada').val()); + base = self.roundToTwoDecimals(base / total) * total; margenServicios += self.roundToTwoDecimals(parseFloat(total_servicio - base)); }); } @@ -338,7 +340,7 @@ class Resumen { } } - let porcentajeMargen = totalCostes + totalMargenes > 0 ? (100 * totalMargenes / (totalCostes)).toFixed(0) : 0 + let porcentajeMargen = totalCostes > 0 ? (100 * totalMargenes / (totalCostes)).toFixed(0) : 0 $('#totalCostes').html(totalCostes).val(totalCostes.toFixed(2)) $('#totalMargenes').html(totalMargenes).val(totalMargenes.toFixed(2)) $('#porcentajeMargen').html(porcentajeMargen).val(porcentajeMargen)