correjidas cosas en cuanto a mostrar lomo. También añadido calculo de paginas pares

This commit is contained in:
2025-06-20 19:51:32 +02:00
parent 75ac2e0218
commit da0ca27c8c
5 changed files with 138 additions and 22 deletions

View File

@ -419,20 +419,52 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
];
$lomo_minimo_fresado_cosido = intval(model('App\Models\Configuracion\ConfigVariableModel')->getVariable('lomo_minimo_fresado_cosido')->value);
$lomo_maximo_fresado_cosido = intval(model('App\Models\Configuracion\ConfigVariableModel')->getVariable('lomo_maximo_fresado_cosido')->value);
$lomo_maximo_espiral = intval(model('App\Models\Configuracion\ConfigVariableModel')->getVariable('lomo_maximo_espiral')->value);
$lomo_maximo_wireo = intval(model('App\Models\Configuracion\ConfigVariableModel')->getVariable('lomo_maximo_wireo')->value);
if ($tipo == 'cosido' || $tipo == 'fresado') {
if ($lomo < $lomo_minimo_fresado_cosido) {
$errors['status'] = 1;
$errors['value'] = 'No se pueden encuadernar libros cosidos o fresados con lomo inferior a '
. $lomo_minimo_fresado_cosido . ' mm. El lomo actual es de ' . $lomo . ' mm. ' .
"Por favor, aumente el número de páginas o el gramaje del papel para que sea encuadernable.";
$errors['value'] = lang(
'Presupuestos.errores.error_lomo_minimo',
[
lang('Presupuestos.cosido') . "/" . lang('Presupuestos.fresado'),
$lomo_minimo_fresado_cosido,
$lomo,
]
);
}
if ($lomo > $lomo_maximo_fresado_cosido) {
$errors['status'] = 1;
$errors['value'] = 'No se pueden encuadernar con un lomo superior a '
. $lomo_maximo_fresado_cosido . ' mm. El lomo actual es de ' . $lomo . ' mm. ' .
"Por favor, disminuya el número de páginas o el gramaje del papel para que sea encuadernable.";
$errors['value'] = lang(
'Presupuestos.errores.error_lomo_maximo',
[
lang('Presupuestos.cosido') . "/" . lang('Presupuestos.fresado'),
$lomo_maximo_fresado_cosido,
$lomo,
]
);
}
} else if ($tipo == 'espiral' && $lomo > $lomo_maximo_espiral) {
$errors['status'] = 1;
$errors['value'] = lang(
'Presupuestos.errores.error_lomo_maximo',
[
lang('Presupuestos.espiral'),
$lomo_maximo_espiral,
$lomo,
]
);
} else if ($tipo == 'wireo' && $lomo > $lomo_maximo_wireo) {
$errors['status'] = 1;
$errors['value'] = lang(
'Presupuestos.errores.error_lomo_maximo',
[
lang('Presupuestos.wireo'),
$lomo_maximo_wireo,
$lomo,
]
);
}
$data = (object) array(
@ -469,7 +501,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
$noEnvioBase = model('App\Models\Clientes\ClienteModel')->find($cliente_id)->no_envio_base ?? false;
$tirada = $reqData['tirada'] ?? 0;
$selectedTirada = $reqData['selectedTirada'] ?? -1;
$selectedTirada = $reqData['selectedTirada'] ?? (is_array($tirada) ? $tirada[0] : $tirada);
$tamanio = $reqData['tamanio'];
$paginas = $reqData['paginas'] ?? 0;
$paginas_color = $reqData['paginasColor'] ?? 0;
@ -566,7 +598,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
);
$develoment_mode = getenv('SK_ENVIRONMENT') !== 'production';
$return_data = $this->calcular_presupuesto($datos_presupuesto, 0, $develoment_mode); //TRUE FOR DEBUG
$return_data = $this->calcular_presupuesto($datos_presupuesto, $selectedTirada, $develoment_mode); //TRUE FOR DEBUG
if (array_key_exists('errors', $return_data)) {
if ($return_data['errors']->status == 1) {
$return_data = [
@ -2129,8 +2161,10 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
if (count($linea) > 0) {
$costeInterior += round(floatval($linea['total_impresion']), 2);
$peso_interior += round(floatval($linea['peso']), 2);
$lomo += floatval($linea['mano']);
$info['lomo_interior'] += floatval($linea['mano']);
if (intval($tirada[$t]) == intval($selected_tirada)) {
$lomo += floatval($linea['mano']);
$info['lomo_interior'] += floatval($linea['mano']);
}
if ($extra_info) {
$this->calcular_coste_linea(
$linea,
@ -2189,8 +2223,11 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
foreach ($interior as $linea) {
if (count($linea) > 0) {
$costeInterior += round(floatval($linea['total_impresion']), 2);
if (intval($tirada[$t]) == intval($selected_tirada)) {
$info['lomo_interior'] += floatval($linea['mano']);
$lomo += floatval($linea['mano']);
}
$peso_interior += floatval($linea['peso']);
$lomo += floatval($linea['mano']);
if ($extra_info) {
$this->calcular_coste_linea(
@ -2242,7 +2279,10 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
if (count($cubierta) > 0) {
$coste_cubierta += round(floatval($cubierta['total_impresion']), 2);
$peso_cubierta += round(floatval($cubierta['peso']), 2);
$lomo += floatval($cubierta['mano']);
if (intval($tirada[$t]) == intval($selected_tirada)) {
$lomo += floatval($cubierta['mano']);
}
if ($extra_info) {
$this->calcular_coste_linea(
@ -2486,6 +2526,9 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
if (count($guardas) > 0) {
$coste_guardas += round(floatval($guardas['total_impresion']), 2);
$peso_guardas += round(floatval($guardas['peso']), 2);
if (intval($tirada[$t]) == intval($selected_tirada)) {
$lomo += floatval($guardas['mano']);
}
if ($extra_info) {
$this->calcular_coste_linea(
@ -3081,8 +3124,11 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
));
}
$info['lomo_cubierta'] = round(floatval($lomo), 2);
$info['lomo_sobrecubierta'] = round(floatval($lomo_sobrecubierta), 2);
if (intval($tirada[$t]) == intval($selected_tirada)) {
$info['lomo_cubierta'] = round(floatval($lomo), 2);
$info['lomo_sobrecubierta'] = round(floatval($lomo_sobrecubierta), 2);
}
$return_data['info'] = $info;