terminado

This commit is contained in:
2025-04-29 19:30:35 +02:00
parent 96a6845c0c
commit b288ca498c
11 changed files with 215 additions and 34 deletions

View File

@ -330,10 +330,16 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
'a_favor_fibra' => 1,
);
$cliente_model = model(('App\Models\Clientes\ClienteModel'));
$cliente = $cliente_model->find($cliente_id);
// Para POD siempre es HQ
if ($tirada[0] <= $POD) {
if ($tirada[0] <= $POD && !$cliente->forzar_rotativa_pod) {
$isHq = true;
}
$forzarRotativa = false;
if ($tirada[0] <= $POD && $cliente->forzar_rotativa_pod) {
$forzarRotativa = true;
}
$input_data = array(
'uso' => 'interior',
@ -346,7 +352,8 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
'cliente_id' => $cliente_id,
'paginas_color' => $paginas_color,
'excluirRotativa' => $excluirRotativa,
'papelInteriorDiferente' => $papelInteriorDiferente
'papelInteriorDiferente' => $papelInteriorDiferente,
'forzarRotativa' => $forzarRotativa,
);
$interior = PresupuestoClienteService::obtenerInterior($input_data);
@ -460,6 +467,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$id = $reqData['id'] ?? 0;
$cliente_id = $reqData['clienteId'] ?? -1;
$noEnvioBase = model('App\Models\Clientes\ClienteModel')->find($cliente_id)->no_envio_base ?? false;
$tirada = $reqData['tirada'] ?? 0;
$selectedTirada = $reqData['selectedTirada'] ?? -1;
@ -609,6 +617,10 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
} else {
$coste = floatval($coste_direccion->coste);
$margen = $coste * (intval($coste_direccion->margen) / 100.0);
if ($noEnvioBase) {
$coste = 0.0;
$margen = 0.0;
}
$return_data['eb'][$i] = round($coste + $margen, 2);
}
}
@ -746,10 +758,16 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
'a_favor_fibra' => 1,
);
$cliente_model = model(('App\Models\Clientes\ClienteModel'));
$cliente = $cliente_model->find($cliente_id);
// Para POD siempre es HQ
if ($tirada[0] <= $POD) {
if ($tirada[0] <= $POD && !$cliente->forzar_rotativa_pod) {
$isHq = true;
}
$forzarRotativa = false;
if ($tirada[0] <= $POD && $cliente->forzar_rotativa_pod) {
$forzarRotativa = true;
}
$input_data = array(
'uso' => 'interior',
@ -762,7 +780,8 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
'cliente_id' => $cliente_id,
'paginas_color' => $paginas_color,
'excluirRotativa' => $excluirRotativa,
'papelInteriorDiferente' => $papelInteriorDiferente
'papelInteriorDiferente' => $papelInteriorDiferente,
'forzarRotativa' => $forzarRotativa,
);
$interior = PresupuestoClienteService::obtenerInterior($input_data);
@ -1126,6 +1145,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$peso_libro = $resultado_presupuesto['peso'][array_search($selected_tirada, $tirada)];
// calculo del envio base (tirada_maxima)
$noEnvioBase = model('App\Models\Clientes\ClienteModel')->find($cliente_id)->no_envio_base ?? false;
$resultado_presupuesto['eb'] = [];
$datos_presupuesto['envio_base'] = 0;
for ($i = 0; $i < count($tirada); $i++) {
@ -1139,6 +1159,10 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
);
if (intval($selected_tirada) == intval($tirada[$i])) {
if ($noEnvioBase) {
$coste_direccion->coste = 0.0;
$coste_direccion->margen = 0.0;
}
$datos_presupuesto['envio_base'] = round($coste_direccion->coste * (1 + $coste_direccion->margen / 100.0), 2);
}
@ -1160,6 +1184,10 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
];
return $resultado_presupuesto;
} else {
if ($noEnvioBase) {
$coste_direccion->coste = 0.0;
$coste_direccion->margen = 0.0;
}
$resultado_presupuesto['eb'][$i] = round($coste_direccion->coste, 2);
$resultado_presupuesto['eb_margen'][$i] = round($coste_direccion->margen, 2);
}
@ -1176,10 +1204,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_margen'] =
floatval($resultado_presupuesto['eb'][$i])*(floatval($resultado_presupuesto['eb_margen'][$i])/100.0);
$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);
}
@ -1357,7 +1385,11 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
foreach ($serviciosAcabado as $service) {
$model = model('App\Models\Presupuestos\PresupuestoAcabadosModel');
$servicio = $model->getPrecioTarifa(
intval($service), intval($selected_tirada)+$resultado_presupuesto['info']['merma'], -1, $POD);
intval($service),
intval($selected_tirada) + $resultado_presupuesto['info']['merma'],
-1,
$POD
);
if (count($servicio) > 0) {
if ($servicio[0]->total > 0) {
@ -1375,8 +1407,11 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
foreach ($serviciosAcabado as $service) {
$model = model('App\Models\Presupuestos\PresupuestoAcabadosModel');
$servicio = $model->getPrecioTarifa(
intval($service),
intval($selected_tirada) + $resultado_presupuesto['info']['merma'], -1, $POD);
intval($service),
intval($selected_tirada) + $resultado_presupuesto['info']['merma'],
-1,
$POD
);
if (count($servicio) > 0) {
if ($servicio[0]->total > 0) {
@ -1393,8 +1428,11 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
foreach ($serviciosAcabado as $service) {
$model = model('App\Models\Presupuestos\PresupuestoAcabadosModel');
$servicio = $model->getPrecioTarifa(
intval($service),
intval($selected_tirada) + $resultado_presupuesto['info']['merma'], -1, $POD);
intval($service),
intval($selected_tirada) + $resultado_presupuesto['info']['merma'],
-1,
$POD
);
if (count($servicio) > 0) {
if ($servicio[0]->total > 0) {
@ -1407,7 +1445,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+$resultado_presupuesto['info']['merma'],
'tirada' => $selected_tirada + $resultado_presupuesto['info']['merma'],
'POD' => $POD,
])[0];
@ -2039,10 +2077,16 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$info['merma'] = $datosPedido->merma;
}
$cliente_model = model(('App\Models\Clientes\ClienteModel'));
$cliente = $cliente_model->find($cliente_id);
// Para POD siempre es HQ
if ($tirada[$t] <= $POD) {
if ($tirada[$t] <= $POD && !$cliente->forzar_rotativa_pod) {
$isHq = true;
}
$forzarRotativa = false;
if ($tirada[$t] <= $POD && $cliente->forzar_rotativa_pod) {
$forzarRotativa = true;
}
$input_data = array(
'uso' => 'interior',
@ -2055,7 +2099,8 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
'cliente_id' => $cliente_id,
'paginas_color' => $paginas_color,
'excluirRotativa' => $excluirRotativa,
'papelInteriorDiferente' => $papelInteriorDiferente
'papelInteriorDiferente' => $papelInteriorDiferente,
'forzarRotativa' => $forzarRotativa,
);
$interior = PresupuestoClienteService::obtenerInterior($input_data);
@ -3071,7 +3116,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$sumForFactor += round($linea['precio_pedido'], 2)
- round($linea['margen_papel_pedido'], 2);
$margenPapel += round($linea['margen_papel_pedido'], 2);
$totalImpresion += round($linea['precio_click_pedido'], 2);
$totalImpresion -= round($linea['margen_click_pedido'], 2);
$sumForFactor += round($linea['precio_click_pedido'], 2)