mirror of
https://git.imnavajas.es/jjimenez/safekat.git
synced 2025-07-25 22:52:08 +00:00
añadido checkeo de lomo en presupuesto admin
This commit is contained in:
@ -17,6 +17,8 @@ $routes->group('presupuestoadmin', ['namespace' => 'App\Controllers\Presupuestos
|
||||
$routes->post('allmenuitems', 'Presupuestoadmin::allItemsSelect', ['as' => 'select2ItemsOfPresupuestoAdmin']);
|
||||
$routes->post('menuitems', 'Presupuestoadmin::menuItems', ['as' => 'menuItemsOfPresupuestoAdmin']);
|
||||
|
||||
$routes->get('checklomointerior', 'Presupuestoadmin::checkLomo');
|
||||
|
||||
$routes->get('cargar/(:any)', 'Presupuestoadmin::cargar/$1');
|
||||
$routes->post('comparadorinterior', 'Presupuestoadmin::obtenerComparadorInterior');
|
||||
$routes->post('comparadorexteriores', 'Presupuestoadmin::obtenerComparadorExteriores');
|
||||
|
||||
@ -1841,6 +1841,18 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController
|
||||
}
|
||||
}
|
||||
|
||||
public function checkLomo()
|
||||
{
|
||||
if ($this->request->isAJAX()) {
|
||||
$tipo_impresion_id = $this->request->getGet('tipo_impresion_id');
|
||||
$lomo = $this->request->getGet('lomo') ?? 0;
|
||||
$response = PresupuestoService::check_lomo_interior($tipo_impresion_id, $lomo);
|
||||
return $this->respond($response);
|
||||
} else {
|
||||
return $this->failUnauthorized('Invalid request', 403);
|
||||
}
|
||||
}
|
||||
|
||||
public function reprintPresupuesto()
|
||||
{
|
||||
|
||||
|
||||
@ -459,9 +459,9 @@ return [
|
||||
'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_lomo_maximo' => "No se pueden encuadernar libros {0} con un lomo superior a {1} mm. El lomo actual es de {2} mm. <br>
|
||||
'error_lomo_maximo' => "No se pueden encuadernar libros {0} con un lomo interior 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>
|
||||
'error_lomo_minimo' => "No se pueden encuadernar libros {0} con un lomo interior 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'
|
||||
|
||||
@ -2079,15 +2079,14 @@ class PresupuestoService extends BaseService
|
||||
|
||||
if ($tirada == 1) {
|
||||
$merma = 0;
|
||||
}
|
||||
else if ($tirada > intval($POD)) {
|
||||
} else if ($tirada > intval($POD)) {
|
||||
$merma = $tirada * 0.1;
|
||||
} else {
|
||||
$merma_lineas = [];
|
||||
foreach ($formas_lineas_interior as $formas_linea) {
|
||||
if ($formas_linea > $tirada)
|
||||
array_push($merma_lineas, $formas_linea - $tirada);
|
||||
else{
|
||||
else {
|
||||
$total_pliegos = ceil($tirada / $formas_linea);
|
||||
$total_formas = $total_pliegos * $formas_linea;
|
||||
array_push($merma_lineas, $total_formas - $tirada);
|
||||
@ -2127,27 +2126,25 @@ class PresupuestoService extends BaseService
|
||||
$presupuesto->titulo = $presupuesto->titulo . ' - ' . lang('Presupuestos.duplicado');
|
||||
$presupuesto->is_duplicado = 1;
|
||||
$presupuesto->estado_id = 1;
|
||||
if($is_reimpresion && boolval($copy_files)){
|
||||
if ($is_reimpresion && boolval($copy_files)) {
|
||||
$presupuesto->inc_rei = "reimpresion";
|
||||
$modelPedidoLinea = model('App\Models\Pedidos\PedidoLineaModel');
|
||||
$pedido_linea = $modelPedidoLinea->where('presupuesto_id', $id)->first();
|
||||
if($pedido_linea){
|
||||
$text = "REIMPRESION [" . date('Y-m-d H:i:s') . "] - PEDIDO: " . $pedido_linea->pedido_id .
|
||||
"\n================================================\n";
|
||||
$presupuesto->comentarios_safekat = $text . $presupuesto->comentarios_safekat ;
|
||||
}
|
||||
}
|
||||
else if($is_reimpresion){
|
||||
$presupuesto->inc_rei = null;
|
||||
$modelPedidoLinea = model('App\Models\Pedidos\PedidoLineaModel');
|
||||
$pedido_linea = $modelPedidoLinea->where('presupuesto_id', $id)->first();
|
||||
if($pedido_linea){
|
||||
$text = "DUPLICADO [" . date('Y-m-d H:i:s') . "] - PEDIDO: " . $pedido_linea->pedido_id .
|
||||
if ($pedido_linea) {
|
||||
$text = "REIMPRESION [" . date('Y-m-d H:i:s') . "] - PEDIDO: " . $pedido_linea->pedido_id .
|
||||
"\n================================================\n";
|
||||
$presupuesto->comentarios_safekat = $text . $presupuesto->comentarios_safekat;
|
||||
}
|
||||
}
|
||||
else{
|
||||
} else if ($is_reimpresion) {
|
||||
$presupuesto->inc_rei = null;
|
||||
$modelPedidoLinea = model('App\Models\Pedidos\PedidoLineaModel');
|
||||
$pedido_linea = $modelPedidoLinea->where('presupuesto_id', $id)->first();
|
||||
if ($pedido_linea) {
|
||||
$text = "DUPLICADO [" . date('Y-m-d H:i:s') . "] - PEDIDO: " . $pedido_linea->pedido_id .
|
||||
"\n================================================\n";
|
||||
$presupuesto->comentarios_safekat = $text . $presupuesto->comentarios_safekat;
|
||||
}
|
||||
} else {
|
||||
$presupuesto->inc_rei = null;
|
||||
}
|
||||
$new_id = $modelPresupuesto->insert($presupuesto);
|
||||
@ -2192,7 +2189,7 @@ class PresupuestoService extends BaseService
|
||||
$presupuestoLineaModel->duplicateLineasPresupuesto($presupuesto->id, $new_id);
|
||||
|
||||
|
||||
if (boolval($copy_files)== true) {
|
||||
if (boolval($copy_files) == true) {
|
||||
$presupuestoFilesModel = model('App\Models\Presupuestos\PresupuestoFicheroModel');
|
||||
$presupuestoFilesModel->copyFiles($presupuesto->id, $new_id);
|
||||
}
|
||||
@ -2200,7 +2197,7 @@ class PresupuestoService extends BaseService
|
||||
return [
|
||||
'success' => true,
|
||||
'id' => $new_id,
|
||||
'message' => lang('Presupuestos.presupuestoGenerado'),
|
||||
'message' => lang('Presupuestos.presupuestoGenerado'),
|
||||
];
|
||||
|
||||
} catch (\Exception $e) {
|
||||
@ -2210,4 +2207,96 @@ class PresupuestoService extends BaseService
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
public static function check_lomo_interior($tipo_impresion_id, $lomo = 0)
|
||||
{
|
||||
$lomo_maximo = 0;
|
||||
$lomo_minimo = 0;
|
||||
if ($lomo == 0) {
|
||||
return [
|
||||
'status' => true,
|
||||
'message' => 'Lomo interior 0'
|
||||
];
|
||||
}
|
||||
switch ($tipo_impresion_id) {
|
||||
case 1: // Fresado
|
||||
case 2:
|
||||
case 3: // Cosido
|
||||
case 4:
|
||||
$lomo_minimo = intval(model('App\Models\Configuracion\ConfigVariableModel')->getVariable('lomo_minimo_fresado_cosido')->value);
|
||||
$lomo_maximo = intval(model('App\Models\Configuracion\ConfigVariableModel')->getVariable('lomo_maximo_fresado_cosido')->value);
|
||||
if ($lomo != 0 && $lomo < $lomo_minimo) {
|
||||
return [
|
||||
'status' => false,
|
||||
'message' => lang(
|
||||
'Presupuestos.errores.error_lomo_minimo',
|
||||
[
|
||||
lang('Presupuestos.cosido') . "/" . lang('Presupuestos.fresado'),
|
||||
$lomo_minimo,
|
||||
$lomo,
|
||||
]
|
||||
)
|
||||
];
|
||||
} else if ($lomo != 0 && $lomo > $lomo_maximo) {
|
||||
return [
|
||||
'status' => false,
|
||||
'message' => lang(
|
||||
'Presupuestos.errores.error_lomo_maximo',
|
||||
[
|
||||
lang('Presupuestos.cosido') . "/" . lang('Presupuestos.fresado'),
|
||||
$lomo_maximo,
|
||||
$lomo,
|
||||
]
|
||||
)
|
||||
];
|
||||
|
||||
}
|
||||
break;
|
||||
case 5: // Espiral
|
||||
case 6:
|
||||
$lomo_maximo = intval(model('App\Models\Configuracion\ConfigVariableModel')->getVariable('lomo_maximo_espiral')->value);
|
||||
if ($lomo != 0 && $lomo > $lomo_maximo) {
|
||||
return [
|
||||
'status' => false,
|
||||
'message' => lang(
|
||||
'Presupuestos.errores.error_lomo_maximo',
|
||||
[
|
||||
lang('Presupuestos.espiral'),
|
||||
$lomo_maximo,
|
||||
$lomo,
|
||||
]
|
||||
)
|
||||
];
|
||||
}
|
||||
break;
|
||||
case 7: // Wire-O
|
||||
case 8:
|
||||
$lomo_maximo = intval(model('App\Models\Configuracion\ConfigVariableModel')->getVariable('lomo_maximo_wireo')->value);
|
||||
$lomo_maximo = intval(model('App\Models\Configuracion\ConfigVariableModel')->getVariable('lomo_maximo_espiral')->value);
|
||||
if ($lomo != 0 && $lomo > $lomo_maximo) {
|
||||
return [
|
||||
'status' => false,
|
||||
'message' => lang(
|
||||
'Presupuestos.errores.error_lomo_maximo',
|
||||
[
|
||||
lang('Presupuestos.wireo'),
|
||||
$lomo_maximo,
|
||||
$lomo,
|
||||
]
|
||||
)
|
||||
];
|
||||
}
|
||||
break;
|
||||
default:
|
||||
return [
|
||||
'status' => true,
|
||||
'message' => 'Lomo valido'
|
||||
];
|
||||
}
|
||||
|
||||
return [
|
||||
'status' => true,
|
||||
'message' => 'Lomo valido'
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
@ -14,6 +14,7 @@
|
||||
<?= csrf_field() ?>
|
||||
|
||||
<?= view("themes/_commonPartialsBs/_alertBoxes") ?>
|
||||
<div id="sk-alert-lomo"></div>
|
||||
<?= view("themes/vuexy/form/presupuestos/cliente/loader") ?>
|
||||
|
||||
<?= !empty($validation->getErrors()) ? $validation->listErrors("bootstrap_style") : "" ?>
|
||||
|
||||
@ -354,7 +354,7 @@ class PresupuestoAdminEdit {
|
||||
// Ejecutar los pasos de forma secuencial si están habilitados
|
||||
if (update_lineas) {
|
||||
$(document).trigger('update-lineas-presupuesto');
|
||||
await waitForEvent('update-lineas-presupuesto-completed');
|
||||
await waitForEvent('update-lineas-presupuesto-completed');
|
||||
}
|
||||
|
||||
if (update_servicios) {
|
||||
@ -698,30 +698,30 @@ class PresupuestoAdminEdit {
|
||||
buttonsStyling: false
|
||||
}).then((result) => {
|
||||
if (result.isDenied || result.isConfirmed) {
|
||||
new Ajax('/presupuestoadmin/reprint',
|
||||
{ id: id, duplicateFiles: result.isConfirmed ? 1 : 0 }, {},
|
||||
function (response) {
|
||||
if (response.success === true) {
|
||||
Swal.fire({
|
||||
text: response.message,
|
||||
icon: 'success',
|
||||
confirmButtonColor: '#3085d6',
|
||||
confirmButtonText: 'Ok',
|
||||
customClass: {
|
||||
confirmButton: 'btn btn-primary me-1',
|
||||
},
|
||||
buttonsStyling: false
|
||||
})
|
||||
window.open('/presupuestoadmin/edit/' + response.id, '_blank');
|
||||
} else {
|
||||
popErrorAlert(response.mensaje);
|
||||
new Ajax('/presupuestoadmin/reprint',
|
||||
{ id: id, duplicateFiles: result.isConfirmed ? 1 : 0 }, {},
|
||||
function (response) {
|
||||
if (response.success === true) {
|
||||
Swal.fire({
|
||||
text: response.message,
|
||||
icon: 'success',
|
||||
confirmButtonColor: '#3085d6',
|
||||
confirmButtonText: 'Ok',
|
||||
customClass: {
|
||||
confirmButton: 'btn btn-primary me-1',
|
||||
},
|
||||
buttonsStyling: false
|
||||
})
|
||||
window.open('/presupuestoadmin/edit/' + response.id, '_blank');
|
||||
} else {
|
||||
popErrorAlert(response.mensaje);
|
||||
}
|
||||
},
|
||||
function (error) {
|
||||
popErrorAlert(error);
|
||||
}
|
||||
},
|
||||
function (error) {
|
||||
popErrorAlert(error);
|
||||
}
|
||||
).post();
|
||||
}
|
||||
).post();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@ -577,6 +577,8 @@ class DatosLibro {
|
||||
update_tiradas_alternativas: true
|
||||
});
|
||||
|
||||
this.actualizarLimitesPaginas();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -775,7 +777,7 @@ class DatosLibro {
|
||||
case 6:
|
||||
case 7: // Wire-O
|
||||
case 8:
|
||||
min = 1;
|
||||
min = 20;
|
||||
max = null; // Sin límite superior
|
||||
break;
|
||||
case 21: // Grapado
|
||||
|
||||
@ -485,7 +485,9 @@ class LineasPresupuesto {
|
||||
if (lp.tipo == 'lp_guardas')
|
||||
lp['paginas_impresion'] = lp.paginas_impresion;
|
||||
|
||||
});
|
||||
})
|
||||
|
||||
this.checkLomo();
|
||||
}
|
||||
|
||||
async guardarLineasPresupuesto() {
|
||||
@ -1723,6 +1725,39 @@ class LineasPresupuesto {
|
||||
|
||||
this.table.columns.adjust();
|
||||
|
||||
this.checkLomo();
|
||||
|
||||
}
|
||||
|
||||
checkLomo() {
|
||||
|
||||
let lomo = 0.0;
|
||||
|
||||
for (let i = 0; i < this.table.rows().count(); i++) {
|
||||
|
||||
var rowData = this.table.row(i).data();
|
||||
if (rowData.row_id !== 'lp_cubierta' && rowData.row_id !== 'lp_sobrecubierta' && rowData.row_id !== 'lp_guardas' && rowData.row_id !== 'lp_faja') {
|
||||
if (rowData.lomo && rowData.lomo !== null && rowData.lomo !== '') {
|
||||
lomo += parseFloat(rowData.lomo);
|
||||
}
|
||||
}
|
||||
}
|
||||
new Ajax('/presupuestoadmin/checklomointerior',
|
||||
{ tipo_impresion_id: $("#tipo_impresion_id").val(), lomo: lomo}, {},
|
||||
function (response) {
|
||||
if (response.status !== true) {
|
||||
popErrorAlert(response.message, 'sk-alert-lomo', false);
|
||||
$(window).scrollTop(0);
|
||||
}
|
||||
else{
|
||||
popAlert2Hide('sk-alert-lomo');
|
||||
}
|
||||
},
|
||||
function (error) {
|
||||
popErrorAlert(error.statusText? error.statusText : error);
|
||||
}
|
||||
).get();
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user