diff --git a/ci4/app/Controllers/Presupuestos/Presupuestocliente.php b/ci4/app/Controllers/Presupuestos/Presupuestocliente.php
index 21448a82..a06f93a9 100755
--- a/ci4/app/Controllers/Presupuestos/Presupuestocliente.php
+++ b/ci4/app/Controllers/Presupuestos/Presupuestocliente.php
@@ -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;
diff --git a/ci4/app/Language/es/Presupuestos.php b/ci4/app/Language/es/Presupuestos.php
index 54741c39..e8ee484c 100755
--- a/ci4/app/Language/es/Presupuestos.php
+++ b/ci4/app/Language/es/Presupuestos.php
@@ -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.
+ 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.
+ Por favor, aumente el número de páginas o el gramaje del papel para que sea encuadernable.",
],
'resize_preview' => 'Refrescar vista esquema'
diff --git a/ci4/app/Views/themes/vuexy/form/presupuestos/cliente/items/_datosGenerales.php b/ci4/app/Views/themes/vuexy/form/presupuestos/cliente/items/_datosGenerales.php
index 59c71a3b..01febb89 100755
--- a/ci4/app/Views/themes/vuexy/form/presupuestos/cliente/items/_datosGenerales.php
+++ b/ci4/app/Views/themes/vuexy/form/presupuestos/cliente/items/_datosGenerales.php
@@ -159,7 +159,7 @@
-