falta factores cliente

This commit is contained in:
2025-04-07 23:38:31 +02:00
parent 4633fa623a
commit 885aea495c
4 changed files with 32 additions and 19 deletions

View File

@ -631,8 +631,8 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController
$data['resumen']['total_margen_envios'] = $presupuesto->total_margen_envios; $data['resumen']['total_margen_envios'] = $presupuesto->total_margen_envios;
$data['resumen']['total_costes'] = $presupuesto->total_costes; $data['resumen']['total_costes'] = $presupuesto->total_costes;
$data['resumen']['porcentajeMargen'] = $data['resumen']['porcentajeMargen'] =
round(($presupuesto->total_costes + $presupuesto->total_margenes) > 0 ? round(($presupuesto->total_costes) > 0 ?
100 * $presupuesto->total_margenes / ($presupuesto->total_costes + $presupuesto->total_margenes) : 100 * $presupuesto->total_margenes / ($presupuesto->total_costes) :
0, 0); 0, 0);
$data['resumen']['total_margenes'] = $presupuesto->total_margenes; $data['resumen']['total_margenes'] = $presupuesto->total_margenes;
$data['resumen']['total_antes_descuento'] = $presupuesto->total_antes_descuento; $data['resumen']['total_antes_descuento'] = $presupuesto->total_antes_descuento;
@ -1839,7 +1839,7 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController
$input_data = []; $input_data = [];
$input_data['presupuesto_id'] = $presupuestoEntity->id; $input_data['presupuesto_id'] = $presupuestoEntity->id;
$input_data['tipo_impresion_id'] = $presupuestoEntity->tipo_impresion_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['POD'] = $this->getPOD();
$input_data['paginas'] = $presupuestoEntity->paginas; $input_data['paginas'] = $presupuestoEntity->paginas;
$input_data['is_duplicado'] = $presupuestoEntity->is_duplicado; $input_data['is_duplicado'] = $presupuestoEntity->is_duplicado;

View File

@ -1170,8 +1170,10 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
for ($i = 0; $i < count($tirada); $i++) { for ($i = 0; $i < count($tirada); $i++) {
$coste_envio = 0.0; $coste_envio = 0.0;
$coste_envio += ($resultado_presupuesto['eb'][$i] / $tirada[$i]); $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['info']['totales'][$i]['envio_base_margen'] = $resultado_presupuesto['eb_margen'][$i]; 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); $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) { foreach ($serviciosAcabado as $service) {
$model = model('App\Models\Presupuestos\PresupuestoAcabadosModel'); $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 (count($servicio) > 0) {
if ($servicio[0]->total > 0) { if ($servicio[0]->total > 0) {
@ -1365,7 +1368,9 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
foreach ($serviciosAcabado as $service) { foreach ($serviciosAcabado as $service) {
$model = model('App\Models\Presupuestos\PresupuestoAcabadosModel'); $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 (count($servicio) > 0) {
if ($servicio[0]->total > 0) { if ($servicio[0]->total > 0) {
@ -1381,7 +1386,9 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
foreach ($serviciosAcabado as $service) { foreach ($serviciosAcabado as $service) {
$model = model('App\Models\Presupuestos\PresupuestoAcabadosModel'); $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 (count($servicio) > 0) {
if ($servicio[0]->total > 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; $tarifa_id = model('App\Models\Configuracion\ConfigVariableModel')->getVariable('id_servicio_lomo_redondo')->value;
$serv_lomo = PresupuestoCLienteService::getServiciosManipulado([ $serv_lomo = PresupuestoCLienteService::getServiciosManipulado([
'tarifa_id' => intval($tarifa_id), 'tarifa_id' => intval($tarifa_id),
'tirada' => $selected_tirada, 'tirada' => $selected_tirada+$resultado_presupuesto['info']['merma'],
'POD' => $POD, 'POD' => $POD,
])[0]; ])[0];

View File

@ -405,9 +405,9 @@ class PresupuestoModel extends \App\Models\BaseModel
$is_cosido = (new TipoPresupuestoModel())->get_isCosido($data['tipo_impresion_id']); $is_cosido = (new TipoPresupuestoModel())->get_isCosido($data['tipo_impresion_id']);
$totalCostes = $resumen_totales['totalPapel'] + $resumen_totales['totalImpresion'] + $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'] + $totalMargenes = $resumen_totales['margenPapel'] + $resumen_totales['margenImpresion'] +
$resumen_totales['margenServicios'] + $resumen_totales['envio_base_margen']; $resumen_totales['margenServicios']; //+ $resumen_totales['envio_base_margen'];
$fields = [ $fields = [
'cliente_id' => $data['clienteId'], 'cliente_id' => $data['clienteId'],
@ -483,12 +483,16 @@ class PresupuestoModel extends \App\Models\BaseModel
'total_costes' => round($totalCostes, 2), 'total_costes' => round($totalCostes, 2),
'total_margenes' => round($totalMargenes, 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_descuento' => 0,
'total_descuentoPercent' => 0, 'total_descuentoPercent' => 0,
'total_precio_unidad' => $resumen_totales['precio_unidad'], '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_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), 'total_factor' => round(($totalCostes + $totalMargenes - $resumen_totales['coste_envio'] - $resumen_totales['margen_envio']) / $resumen_totales['sumForFactor'], 2),

View File

@ -195,6 +195,8 @@ class Resumen {
if (updateServicios) { if (updateServicios) {
const total = parseInt($('#tirada').val()) + parseInt($('#merma').val());
if (typeof $("#tableOfServiciosEncuadernacion").DataTable() !== 'undefined' && $("#tableOfServiciosEncuadernacion").DataTable().rows().count() > 0) { if (typeof $("#tableOfServiciosEncuadernacion").DataTable() !== 'undefined' && $("#tableOfServiciosEncuadernacion").DataTable().rows().count() > 0) {
$('#tableOfServiciosEncuadernacion').DataTable().rows().every(function (rowIdx, tableLoop, rowLoop) { $('#tableOfServiciosEncuadernacion').DataTable().rows().every(function (rowIdx, tableLoop, rowLoop) {
let rowData = this.data(); let rowData = this.data();
@ -202,7 +204,7 @@ class Resumen {
let margen_servicio = parseFloat(rowData.margen); let margen_servicio = parseFloat(rowData.margen);
totalServicios += total_servicio totalServicios += total_servicio
let base = self.roundToTwoDecimals(total_servicio / (1 + margen_servicio / 100.0)); 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)); margenServicios += self.roundToTwoDecimals(parseFloat(total_servicio - base));
}); });
} }
@ -214,7 +216,7 @@ class Resumen {
let margen_servicio = parseFloat(rowData.margen); let margen_servicio = parseFloat(rowData.margen);
totalServicios += total_servicio totalServicios += total_servicio
let base = self.roundToTwoDecimals(total_servicio / (1 + margen_servicio / 100.0)); 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)); margenServicios += self.roundToTwoDecimals(parseFloat(total_servicio - base));
}); });
} }
@ -224,7 +226,7 @@ class Resumen {
let rowData = this.data(); let rowData = this.data();
let total_servicio = self.roundToTwoDecimals(parseFloat(rowData.precio)); let total_servicio = self.roundToTwoDecimals(parseFloat(rowData.precio));
let base = (parseFloat(rowData.precio / (1 + parseFloat(rowData.margen) / 100.0)).toFixed(2)); 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)); margenServicios += self.roundToTwoDecimals(parseFloat(total_servicio - base));
totalServicios += total_servicio totalServicios += total_servicio
}); });
@ -235,7 +237,7 @@ class Resumen {
let rowData = this.data(); let rowData = this.data();
let total_servicio = self.roundToTwoDecimals(parseFloat(rowData.precio)); let total_servicio = self.roundToTwoDecimals(parseFloat(rowData.precio));
let base = (parseFloat(rowData.precio / (1 + parseFloat(rowData.margen) / 100.0)).toFixed(2)); 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)); margenServicios += self.roundToTwoDecimals(parseFloat(total_servicio - base));
totalServicios += total_servicio; totalServicios += total_servicio;
}); });
@ -248,7 +250,7 @@ class Resumen {
let margen_servicio = parseFloat(rowData.margen); let margen_servicio = parseFloat(rowData.margen);
totalServicios += total_servicio totalServicios += total_servicio
let base = self.roundToTwoDecimals(total_servicio / (1 + margen_servicio / 100.0)); 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)); 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)) $('#totalCostes').html(totalCostes).val(totalCostes.toFixed(2))
$('#totalMargenes').html(totalMargenes).val(totalMargenes.toFixed(2)) $('#totalMargenes').html(totalMargenes).val(totalMargenes.toFixed(2))
$('#porcentajeMargen').html(porcentajeMargen).val(porcentajeMargen) $('#porcentajeMargen').html(porcentajeMargen).val(porcentajeMargen)