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;

View File

@ -31,6 +31,12 @@ return [
'libroWireoTapaBlanda' => "Wire-o Tapa Blanda",
'libroGrapado' => "Grapado",
'cosido' => 'Cosido',
'fresado' => 'Fresado',
'espiral' => 'Espiral',
'wireo' => 'Wire-o',
'grapado' => 'Grapado',
'datosPresupuesto' => 'Datos generales del presupuesto',
'datosLibro' => 'Datos del libro',
'datosServicios' => 'Otros Servicios',
@ -390,6 +396,7 @@ return [
'paginasColor' => 'El número de páginas a color debe ser un número entero mayor o igual que 0.',
'paginasNegro' => 'El número de páginas en negro debe ser un número entero mayor o igual que 0.',
'paginas' => 'El total de páginas tiene que ser mayor que 0.',
'paginas_pares' => 'El número de páginas debe ser par.',
'tipo_libro' => 'Seleccione el tipo de libro que desea para el presupuesto.',
'decimal' => 'El campo {field} debe contener un número decimal.',
'integer' => 'El campo {field} debe contener un número entero.',
@ -451,7 +458,11 @@ return [
'noCubiertaSobrecubierta' => 'No se hay resultados para cubierta/sobrecubierta',
'errorPresupuesto' => 'Se ha producido un error al calcular el presupuesto. Póngase en contacto con el administrador',
'error_sobrecubierta_sin_solapas' => 'Debe seleccionar "sobrecubierta" en los datos del libro para introducir el ancho de solapa',
'error_faja_sin_solapas' => 'Debe seleccionar "faja" en los datos del libro para introducir el ancho de solapa'
'error_faja_sin_solapas' => 'Debe seleccionar "faja" en los datos del libro para introducir el ancho de solapa',
'error_lomo_maximo' => "No se pueden encuadernar libros {0} con un lomo superior a {1} mm. El lomo actual es de {2} mm. <br>
Por favor, disminuya el número de páginas o el gramaje del papel para que sea encuadernable.",
'error_lomo_minimo' => "No se pueden encuadernar libros {0} con un lomo inferior a {1} mm. El lomo actual es de {2} mm. <br>
Por favor, aumente el número de páginas o el gramaje del papel para que sea encuadernable.",
],
'resize_preview' => 'Refrescar vista esquema'

View File

@ -159,7 +159,7 @@
<label for="paginasColor" class="form-label">
<?= lang('Presupuestos.paginasColor') ?>
</label>
<input type="number" class="form-control calcular-presupuesto calcular-solapas input-paginas num-input"
<input type="number" step="2" class="form-control calcular-presupuesto calcular-solapas input-paginas num-input"
id="paginasColor" name="paginasColor" step="1" value="0">
<div class="form-text">
@ -172,7 +172,7 @@
<label for="paginasNegro" class="form-label">
<?= lang('Presupuestos.paginasNegro') ?>
</label>
<input type="number" class="form-control calcular-presupuesto calcular-solapas input-paginas num-input"
<input type="number" step="2" class="form-control calcular-presupuesto calcular-solapas input-paginas num-input"
id="paginasNegro" name="paginasNegro" step="1" value="32">
<div class="form-text">
@ -260,14 +260,14 @@
class="col-12 col-md-4 text-center mb-4 tipo-libro imagen-selector image-container">
<img class="image-presupuesto" src="<?= site_url("assets/img/presupuestoCliente/espiral.png") ?>"
alt="Espiral">
<div class="form-text text-center">Espiral</div>
<div class="form-text text-center">Espiral (a partir de 20 páginas)</div>
</div>
<div id="wireo"
class="col-12 col-md-4 text-center mb-4 tipo-libro imagen-selector image-container">
<img class="image-presupuesto" src="<?= site_url("assets/img/presupuestoCliente/wire-o.png") ?>"
alt="Wire-O">
<div class="form-text text-center">Wire-O</div>
<div class="form-text text-center">Wire-O (a partir de 20 páginas)</div>
</div>
</div>
</div>