solucionado. También corregidos añadir margen en envios de cliente y problema al cargar cubierta con solapas

This commit is contained in:
2025-04-05 10:25:08 +02:00
parent 87dcd73c40
commit 73e6106e4f
4 changed files with 116 additions and 65 deletions

View File

@ -601,7 +601,9 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
];
return $return_data;
} else {
$return_data['eb'][$i] = round($coste_direccion->coste, 2);
$coste = floatval($coste_direccion->coste);
$margen = $coste * (intval($coste_direccion->margen) / 100.0);
$return_data['eb'][$i] = round($coste + $margen, 2);
}
}
@ -657,16 +659,17 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
];
return $return_data;
} else {
// Se añade a los costes de envío
$coste_envio += $coste_direccion->coste;
$coste = floatval($coste_direccion->coste);
$margen = $coste * (intval($coste_direccion->margen) / 100.0);
$coste_envio += $coste + $margen;
}
}
$return_data['coste_envio'][$i] = round($coste_envio, 2);
}
}
}
if ($this->request) {
if ($this->request->isAJAX())
@ -1101,7 +1104,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
}
}
} else if (isset($resultado_presupuesto['exception'])) {
if($this->request) {
if ($this->request) {
return $this->respond([
'error' => $resultado_presupuesto['exception'],
'file' => $resultado_presupuesto['file'],
@ -1111,7 +1114,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
return $resultado_presupuesto['exception'];
}
}
// seleccionamos el peso de la tirada seleccionada
$peso_libro = $resultado_presupuesto['peso'][array_search($selected_tirada, $tirada)];
@ -1225,7 +1228,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
}
$resultado_presupuesto['coste_envio'][$i] = round($coste_envio, 2);
}
}
}
$model_presupuesto = new PresupuestoModel();
$tiradas_alternativas = [];
@ -1242,7 +1245,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$resultado_presupuesto['info']['totales'][$i]['margenPapel'] +
$resultado_presupuesto['info']['totales'][$i]['margen_envio']) / ($coste_total + $coste_envio) * 100.0, 2);
$total_pedido = round(($coste_total + $resultado_presupuesto['info']['totales'][$i]['totalServicios'] + $resultado_presupuesto['info']['totales'][$i]['margenServicios'] + $coste_envio), 2);
$precio_u = round( $resultado_presupuesto['precio_u'][$i], 4);
$precio_u = round($resultado_presupuesto['precio_u'][$i], 4);
array_push($tiradas_alternativas, (object) array(
'tirada' => $tirada[$i],
@ -1255,7 +1258,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
} else {
$resumen_totales = $resultado_presupuesto['info']['totales'][$i];
$resumen_totales['precio_unidad'] = round($resultado_presupuesto['precio_u'][$i], 4);
}
}
@ -1613,8 +1616,10 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
if (intval($presupuesto->estado_id) == 2) {
$data['resumen']['base'] = $presupuesto->total_antes_descuento;
$data['resumen']['total_envio'] = round(
floatval($presupuesto->total_coste_envios) +
floatval($presupuesto->total_margen_envios), 2);
floatval($presupuesto->total_coste_envios) +
floatval($presupuesto->total_margen_envios),
2
);
$data['resumen']['precio_unidad'] = $presupuesto->total_precio_unidad;
}
@ -2207,6 +2212,8 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
return $return_data;
}
$cantidad_total = intval($datosPedido->tirada) + intval($datosPedido->merma);
// Acabado Cubierta
if (intval($datos_entrada['cubierta']['acabado']) != 0) {
@ -2215,7 +2222,8 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
foreach ($serviciosAcabado as $servicio) {
$model = model('App\Models\Presupuestos\PresupuestoAcabadosModel');
$acabadoCubierta = $model->getPrecioTarifa(intval($servicio), $datosPedido->tirada, -1, $POD);
$acabadoCubierta = $model->getPrecioTarifa(intval($servicio), $cantidad_total, -1, $POD);
if (count($acabadoCubierta) > 0) {
if ($acabadoCubierta[0]->total <= 0) {
@ -2239,7 +2247,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
if ($extra_info) {
$totalServicios += round(floatval($acabadoCubierta[0]->total), 2);
$base = round(floatval($acabadoCubierta[0]->total / (1 + $acabadoCubierta[0]->margen / 100.0)), 2);
$base = round(floatval($base / $datosPedido->tirada), 2) * $datosPedido->tirada;
$base = round(floatval($base / $cantidad_total), 2) * $cantidad_total;
$margenServicios += round(floatval($acabadoCubierta[0]->total - $base), 2);
}
}
@ -2252,7 +2260,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$tarifa = model('App\Models\Configuracion\ConfigVariableModel')->getVariable('id_servicio_lomo_redondo')->value;
$resultado = PresupuestoCLienteService::getServiciosManipulado([
'tarifa_id' => intval($tarifa),
'tirada' => $datosPedido->tirada,
'tirada' => $cantidad_total,
'POD' => $POD,
]);
@ -2278,7 +2286,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
if ($extra_info) {
$totalServicios += round(floatval($resultado[0]->total), 2);
$base = round(floatval($resultado[0]->total / (1 + $resultado[0]->margen / 100.0)), 2);
$base = round(floatval($base / $datosPedido->tirada), 2) * $datosPedido->tirada;
$base = round(floatval($base / $cantidad_total), 2) * $cantidad_total;
$margenServicios += round(floatval($resultado[0]->total - $base), 2);
}
@ -2348,7 +2356,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
foreach ($serviciosAcabado as $servicio) {
$model = model('App\Models\Presupuestos\PresupuestoAcabadosModel');
$acabadoSobrecubierta = $model->getPrecioTarifa(intval($servicio), $datosPedido->tirada, -1, $POD);
$acabadoSobrecubierta = $model->getPrecioTarifa(intval($servicio), $cantidad_total, -1, $POD);
if (count($acabadoSobrecubierta) > 0) {
@ -2374,7 +2382,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
if ($extra_info) {
$totalServicios += round(floatval($acabadoSobrecubierta[0]->total), 2);
$base = round(floatval($acabadoSobrecubierta[0]->total / (1 + $acabadoSobrecubierta[0]->margen / 100.0)), 2);
$base = round(floatval($base / $datosPedido->tirada), 2) * $datosPedido->tirada;
$base = round(floatval($base / $cantidad_total), 2) * $cantidad_total;
$margenServicios += round(floatval($acabadoSobrecubierta[0]->total - $base), 2);
}
}
@ -2506,7 +2514,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
foreach ($serviciosAcabado as $servicio)
$model = model('App\Models\Presupuestos\PresupuestoAcabadosModel');
$acabadoFaja = $model->getPrecioTarifa(intval($servicio), $datosPedido->tirada, -1, $POD);
$acabadoFaja = $model->getPrecioTarifa(intval($servicio), $cantidad_total, -1, $POD);
if (count($acabadoFaja) > 0) {
@ -2532,7 +2540,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
if ($extra_info) {
$totalServicios += round(floatval($acabadoFaja[0]->total), 2);
$base = round(floatval($acabadoFaja[0]->total / (1 + $acabadoFaja[0]->margen / 100.0)), 2);
$base = round(floatval($base / $datosPedido->tirada), 2) * $datosPedido->tirada;
$base = round(floatval($base / $cantidad_total), 2) * $cantidad_total;
$margenServicios += round(floatval($acabadoFaja[0]->total - $base), 2);
}
}
@ -2552,7 +2560,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$costeServiciosDefecto = 0.0;
$servDefectoEnc = PresupuestoCLienteService::getServiciosEncuadernacionDefault([
'tipo_impresion_id' => $tipo_impresion_id,
'tirada' => $datosPedido->tirada,
'tirada' => $cantidad_total,
'paginas' => intval($paginas) ?? 0,
'ancho' => $datosPedido->ancho,
'alto' => $datosPedido->alto,
@ -2586,14 +2594,14 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
if ($extra_info) {
$totalServicios += round(floatval($servicio->total), 2);
$base = round(floatval($servicio->total / (1 + $servicio->margen / 100.0)), 2);
$base = round(floatval($base / $datosPedido->tirada), 2) * $datosPedido->tirada;
$base = round(floatval($base / $cantidad_total), 2) * $cantidad_total;
$margenServicios += round(floatval($servicio->total - $base), 2);
}
}
$servDefectoMan = PresupuestoCLienteService::getServiciosManipuladoDefault([
'tipo_impresion_id' => $tipo_impresion_id,
'tirada' => $datosPedido->tirada,
'tirada' => $cantidad_total,
'POD' => $POD,
'solapas' => intval($solapasCubierta) > 0 ? 1 : 0,
]);
@ -2623,7 +2631,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
if ($extra_info) {
$totalServicios += round(floatval($servicio->total), 2);
$base = round(floatval($servicio->total / (1 + $servicio->margen / 100.0)), 2);
$base = round(floatval($base / $datosPedido->tirada), 2) * $datosPedido->tirada;
$base = round(floatval($base / $cantidad_total), 2) * $cantidad_total;
$margenServicios += round(floatval($servicio->total - $base), 2);
}
}
@ -2702,7 +2710,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
// Servicios acabado
$resultado = PresupuestoCLienteService::getServiciosAcabados([
'tarifa_id' => intval($servicio->id),
'tirada' => $datosPedido->tirada,
'tirada' => $cantidad_total,
'POD' => $POD,
]);
array_push($serviciosAutomaticos, $resultado[0]);
@ -2728,7 +2736,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
if ($extra_info) {
$totalServicios += round(floatval($resultado[0]->total), 2);
$base = round(floatval($resultado[0]->total / (1 + $resultado[0]->margen / 100.0)), 2);
$base = round(floatval($base / $datosPedido->tirada), 2) * $datosPedido->tirada;
$base = round(floatval($base / $cantidad_total), 2) * $cantidad_total;
$margenServicios += round(floatval($resultado[0]->total - $base), 2);
}
} else if ($servicio->nombre == "ferro" || $servicio->nombre == "prototipo") {
@ -2760,14 +2768,14 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
if ($extra_info) {
$totalServicios += round(floatval($resultado[0]->precio), 2);
$base = round(floatval($resultado[0]->total / (1 + $resultado[0]->margen / 100.0)), 2);
$base = round(floatval($base / $datosPedido->tirada), 2) * $datosPedido->tirada;
$base = round(floatval($base / $cantidad_total), 2) * $cantidad_total;
$margenServicios += round(floatval($resultado[0]->total - $base), 2);
}
} else if ($servicio->nombre == 'solapas_cubierta' || $servicio->nombre == 'solapas_sobrecubierta' || $servicio->nombre == 'solapas_faja') {
// Servicios manipulado
$resultado = PresupuestoCLienteService::getServiciosManipulado([
'tarifa_id' => intval($servicio->id),
'tirada' => $datosPedido->tirada,
'tirada' => $cantidad_total,
'POD' => $POD,
]);
@ -2794,7 +2802,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
if ($extra_info) {
$totalServicios += round(floatval($resultado[0]->total), 2);
$base = round(floatval($resultado[0]->total / (1 + $resultado[0]->margen / 100.0)), 2);
$base = round(floatval($base / $datosPedido->tirada), 2) * $datosPedido->tirada;
$base = round(floatval($base / $cantidad_total), 2) * $cantidad_total;
$margenServicios += round(floatval($resultado[0]->total - $base), 2);
}
}
@ -2835,7 +2843,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
if ($extra_info) {
$totalServicios += round(floatval($resultado[0]->precio), 2);
$base = round(floatval($resultado[0]->precio / (1 + $resultado[0]->margen / 100.0)), 2);
$base = round(floatval($base / $datosPedido->tirada), 2) * $datosPedido->tirada;
$base = round(floatval($base / $cantidad_total), 2) * $cantidad_total;
$margenServicios += round(floatval($resultado[0]->precio - $base), 2);
}
}
@ -2847,7 +2855,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
// Servicios manipulado
$resultado = PresupuestoCLienteService::getServiciosManipulado([
'tarifa_id' => intval($servicio_solapas_grandes_cubierta->id),
'tirada' => $datosPedido->tirada,
'tirada' => $cantidad_total,
'POD' => $POD,
]);
@ -2874,7 +2882,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
if ($extra_info) {
$totalServicios += round(floatval($resultado[0]->total), 2);
$base = round(floatval($resultado[0]->total / (1 + $resultado[0]->margen / 100.0)), 2);
$base = round(floatval($base / $datosPedido->tirada), 2) * $datosPedido->tirada;
$base = round(floatval($base / $cantidad_total), 2) * $cantidad_total;
$margenServicios += round(floatval($resultado[0]->total - $base), 2);
}
}
@ -2884,7 +2892,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
// Servicios manipulado
$resultado = PresupuestoCLienteService::getServiciosManipulado([
'tarifa_id' => intval($servicio_solapas_grandes_sobrecubierta->id),
'tirada' => $datosPedido->tirada,
'tirada' => $cantidad_total,
'POD' => $POD,
]);
@ -2911,7 +2919,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
if ($extra_info) {
$totalServicios += round(floatval($resultado[0]->total), 2);
$base = round(floatval($resultado[0]->total / (1 + $resultado[0]->margen / 100.0)), 2);
$base = round(floatval($base / $datosPedido->tirada), 2) * $datosPedido->tirada;
$base = round(floatval($base / $cantidad_total), 2) * $cantidad_total;
$margenServicios += round(floatval($resultado[0]->total - $base), 2);
}
}
@ -2921,7 +2929,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
// Servicios manipulado
$resultado = PresupuestoCLienteService::getServiciosManipulado([
'tarifa_id' => intval($servicio_solapas_grandes_faja->id),
'tirada' => $datosPedido->tirada,
'tirada' => $cantidad_total,
'POD' => $POD,
]);
@ -2948,7 +2956,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
if ($extra_info) {
$totalServicios += round(floatval($resultado[0]->total), 2);
$base = round(floatval($resultado[0]->total / (1 + $resultado[0]->margen / 100.0)), 2);
$base = round(floatval($base / $datosPedido->tirada), 2) * $datosPedido->tirada;
$base = round(floatval($base / $cantidad_total), 2) * $cantidad_total;
$margenServicios += round(floatval($resultado[0]->total - $base), 2);
}
}