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('allmenuitems', 'Presupuestoadmin::allItemsSelect', ['as' => 'select2ItemsOfPresupuestoAdmin']);
|
||||||
$routes->post('menuitems', 'Presupuestoadmin::menuItems', ['as' => 'menuItemsOfPresupuestoAdmin']);
|
$routes->post('menuitems', 'Presupuestoadmin::menuItems', ['as' => 'menuItemsOfPresupuestoAdmin']);
|
||||||
|
|
||||||
|
$routes->get('checklomointerior', 'Presupuestoadmin::checkLomo');
|
||||||
|
|
||||||
$routes->get('cargar/(:any)', 'Presupuestoadmin::cargar/$1');
|
$routes->get('cargar/(:any)', 'Presupuestoadmin::cargar/$1');
|
||||||
$routes->post('comparadorinterior', 'Presupuestoadmin::obtenerComparadorInterior');
|
$routes->post('comparadorinterior', 'Presupuestoadmin::obtenerComparadorInterior');
|
||||||
$routes->post('comparadorexteriores', 'Presupuestoadmin::obtenerComparadorExteriores');
|
$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()
|
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',
|
'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_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>
|
'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.",
|
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.",
|
Por favor, aumente el número de páginas o el gramaje del papel para que sea encuadernable.",
|
||||||
],
|
],
|
||||||
'resize_preview' => 'Refrescar vista esquema'
|
'resize_preview' => 'Refrescar vista esquema'
|
||||||
|
|||||||
@ -2079,15 +2079,14 @@ class PresupuestoService extends BaseService
|
|||||||
|
|
||||||
if ($tirada == 1) {
|
if ($tirada == 1) {
|
||||||
$merma = 0;
|
$merma = 0;
|
||||||
}
|
} else if ($tirada > intval($POD)) {
|
||||||
else if ($tirada > intval($POD)) {
|
|
||||||
$merma = $tirada * 0.1;
|
$merma = $tirada * 0.1;
|
||||||
} else {
|
} else {
|
||||||
$merma_lineas = [];
|
$merma_lineas = [];
|
||||||
foreach ($formas_lineas_interior as $formas_linea) {
|
foreach ($formas_lineas_interior as $formas_linea) {
|
||||||
if ($formas_linea > $tirada)
|
if ($formas_linea > $tirada)
|
||||||
array_push($merma_lineas, $formas_linea - $tirada);
|
array_push($merma_lineas, $formas_linea - $tirada);
|
||||||
else{
|
else {
|
||||||
$total_pliegos = ceil($tirada / $formas_linea);
|
$total_pliegos = ceil($tirada / $formas_linea);
|
||||||
$total_formas = $total_pliegos * $formas_linea;
|
$total_formas = $total_pliegos * $formas_linea;
|
||||||
array_push($merma_lineas, $total_formas - $tirada);
|
array_push($merma_lineas, $total_formas - $tirada);
|
||||||
@ -2127,27 +2126,25 @@ class PresupuestoService extends BaseService
|
|||||||
$presupuesto->titulo = $presupuesto->titulo . ' - ' . lang('Presupuestos.duplicado');
|
$presupuesto->titulo = $presupuesto->titulo . ' - ' . lang('Presupuestos.duplicado');
|
||||||
$presupuesto->is_duplicado = 1;
|
$presupuesto->is_duplicado = 1;
|
||||||
$presupuesto->estado_id = 1;
|
$presupuesto->estado_id = 1;
|
||||||
if($is_reimpresion && boolval($copy_files)){
|
if ($is_reimpresion && boolval($copy_files)) {
|
||||||
$presupuesto->inc_rei = "reimpresion";
|
$presupuesto->inc_rei = "reimpresion";
|
||||||
$modelPedidoLinea = model('App\Models\Pedidos\PedidoLineaModel');
|
$modelPedidoLinea = model('App\Models\Pedidos\PedidoLineaModel');
|
||||||
$pedido_linea = $modelPedidoLinea->where('presupuesto_id', $id)->first();
|
$pedido_linea = $modelPedidoLinea->where('presupuesto_id', $id)->first();
|
||||||
if($pedido_linea){
|
if ($pedido_linea) {
|
||||||
$text = "REIMPRESION [" . date('Y-m-d H:i:s') . "] - PEDIDO: " . $pedido_linea->pedido_id .
|
$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 .
|
|
||||||
"\n================================================\n";
|
"\n================================================\n";
|
||||||
$presupuesto->comentarios_safekat = $text . $presupuesto->comentarios_safekat;
|
$presupuesto->comentarios_safekat = $text . $presupuesto->comentarios_safekat;
|
||||||
}
|
}
|
||||||
}
|
} else if ($is_reimpresion) {
|
||||||
else{
|
$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;
|
$presupuesto->inc_rei = null;
|
||||||
}
|
}
|
||||||
$new_id = $modelPresupuesto->insert($presupuesto);
|
$new_id = $modelPresupuesto->insert($presupuesto);
|
||||||
@ -2192,7 +2189,7 @@ class PresupuestoService extends BaseService
|
|||||||
$presupuestoLineaModel->duplicateLineasPresupuesto($presupuesto->id, $new_id);
|
$presupuestoLineaModel->duplicateLineasPresupuesto($presupuesto->id, $new_id);
|
||||||
|
|
||||||
|
|
||||||
if (boolval($copy_files)== true) {
|
if (boolval($copy_files) == true) {
|
||||||
$presupuestoFilesModel = model('App\Models\Presupuestos\PresupuestoFicheroModel');
|
$presupuestoFilesModel = model('App\Models\Presupuestos\PresupuestoFicheroModel');
|
||||||
$presupuestoFilesModel->copyFiles($presupuesto->id, $new_id);
|
$presupuestoFilesModel->copyFiles($presupuesto->id, $new_id);
|
||||||
}
|
}
|
||||||
@ -2200,7 +2197,7 @@ class PresupuestoService extends BaseService
|
|||||||
return [
|
return [
|
||||||
'success' => true,
|
'success' => true,
|
||||||
'id' => $new_id,
|
'id' => $new_id,
|
||||||
'message' => lang('Presupuestos.presupuestoGenerado'),
|
'message' => lang('Presupuestos.presupuestoGenerado'),
|
||||||
];
|
];
|
||||||
|
|
||||||
} catch (\Exception $e) {
|
} 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() ?>
|
<?= csrf_field() ?>
|
||||||
|
|
||||||
<?= view("themes/_commonPartialsBs/_alertBoxes") ?>
|
<?= view("themes/_commonPartialsBs/_alertBoxes") ?>
|
||||||
|
<div id="sk-alert-lomo"></div>
|
||||||
<?= view("themes/vuexy/form/presupuestos/cliente/loader") ?>
|
<?= view("themes/vuexy/form/presupuestos/cliente/loader") ?>
|
||||||
|
|
||||||
<?= !empty($validation->getErrors()) ? $validation->listErrors("bootstrap_style") : "" ?>
|
<?= !empty($validation->getErrors()) ? $validation->listErrors("bootstrap_style") : "" ?>
|
||||||
|
|||||||
@ -354,7 +354,7 @@ class PresupuestoAdminEdit {
|
|||||||
// Ejecutar los pasos de forma secuencial si están habilitados
|
// Ejecutar los pasos de forma secuencial si están habilitados
|
||||||
if (update_lineas) {
|
if (update_lineas) {
|
||||||
$(document).trigger('update-lineas-presupuesto');
|
$(document).trigger('update-lineas-presupuesto');
|
||||||
await waitForEvent('update-lineas-presupuesto-completed');
|
await waitForEvent('update-lineas-presupuesto-completed');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (update_servicios) {
|
if (update_servicios) {
|
||||||
@ -698,30 +698,30 @@ class PresupuestoAdminEdit {
|
|||||||
buttonsStyling: false
|
buttonsStyling: false
|
||||||
}).then((result) => {
|
}).then((result) => {
|
||||||
if (result.isDenied || result.isConfirmed) {
|
if (result.isDenied || result.isConfirmed) {
|
||||||
new Ajax('/presupuestoadmin/reprint',
|
new Ajax('/presupuestoadmin/reprint',
|
||||||
{ id: id, duplicateFiles: result.isConfirmed ? 1 : 0 }, {},
|
{ id: id, duplicateFiles: result.isConfirmed ? 1 : 0 }, {},
|
||||||
function (response) {
|
function (response) {
|
||||||
if (response.success === true) {
|
if (response.success === true) {
|
||||||
Swal.fire({
|
Swal.fire({
|
||||||
text: response.message,
|
text: response.message,
|
||||||
icon: 'success',
|
icon: 'success',
|
||||||
confirmButtonColor: '#3085d6',
|
confirmButtonColor: '#3085d6',
|
||||||
confirmButtonText: 'Ok',
|
confirmButtonText: 'Ok',
|
||||||
customClass: {
|
customClass: {
|
||||||
confirmButton: 'btn btn-primary me-1',
|
confirmButton: 'btn btn-primary me-1',
|
||||||
},
|
},
|
||||||
buttonsStyling: false
|
buttonsStyling: false
|
||||||
})
|
})
|
||||||
window.open('/presupuestoadmin/edit/' + response.id, '_blank');
|
window.open('/presupuestoadmin/edit/' + response.id, '_blank');
|
||||||
} else {
|
} else {
|
||||||
popErrorAlert(response.mensaje);
|
popErrorAlert(response.mensaje);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
function (error) {
|
||||||
|
popErrorAlert(error);
|
||||||
}
|
}
|
||||||
},
|
).post();
|
||||||
function (error) {
|
}
|
||||||
popErrorAlert(error);
|
|
||||||
}
|
|
||||||
).post();
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -577,6 +577,8 @@ class DatosLibro {
|
|||||||
update_tiradas_alternativas: true
|
update_tiradas_alternativas: true
|
||||||
});
|
});
|
||||||
|
|
||||||
|
this.actualizarLimitesPaginas();
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -775,7 +777,7 @@ class DatosLibro {
|
|||||||
case 6:
|
case 6:
|
||||||
case 7: // Wire-O
|
case 7: // Wire-O
|
||||||
case 8:
|
case 8:
|
||||||
min = 1;
|
min = 20;
|
||||||
max = null; // Sin límite superior
|
max = null; // Sin límite superior
|
||||||
break;
|
break;
|
||||||
case 21: // Grapado
|
case 21: // Grapado
|
||||||
|
|||||||
@ -485,7 +485,9 @@ class LineasPresupuesto {
|
|||||||
if (lp.tipo == 'lp_guardas')
|
if (lp.tipo == 'lp_guardas')
|
||||||
lp['paginas_impresion'] = lp.paginas_impresion;
|
lp['paginas_impresion'] = lp.paginas_impresion;
|
||||||
|
|
||||||
});
|
})
|
||||||
|
|
||||||
|
this.checkLomo();
|
||||||
}
|
}
|
||||||
|
|
||||||
async guardarLineasPresupuesto() {
|
async guardarLineasPresupuesto() {
|
||||||
@ -1723,6 +1725,39 @@ class LineasPresupuesto {
|
|||||||
|
|
||||||
this.table.columns.adjust();
|
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