Merge branch 'rev/roles_1' into 'main'

Rev/roles 1

See merge request jjimenez/safekat!673
This commit is contained in:
Ignacio Martinez Navajas
2025-04-07 20:35:18 +00:00
17 changed files with 133 additions and 102 deletions

View File

@ -57,16 +57,14 @@ $routes->group('tarifas', ['namespace' => 'App\Controllers\Tarifas'], function (
$routes->get('encuadernacion/select', 'TarifaMaquinas::get_select_maquina_manipulado');
$routes->get('tareas/select', 'TarifaMaquinas::get_select_maquina_tareas');
$routes->get('acabado/datatable/(:num)', 'TarifaMaquinas::get_datatable_tarifa_acabado_maquina/$1');
$routes->get('manipulado/datatable/(:num)', 'TarifaMaquinas::get_datatable_tarifa_manipulado_maquina/$1');
$routes->get('preimpresion/datatable/(:num)', 'TarifaMaquinas::get_datatable_tarifa_preimpresion_maquina/$1');
$routes->get('encuadernacion/datatable/(:num)', 'TarifaMaquinas::get_datatable_tarifa_encuadernacion_maquina/$1');
$routes->get('extra/datatable/(:num)', 'TarifaMaquinas::get_datatable_tarifa_extra_maquina/$1');
});
/* Cliente */
/* Acabados */
$routes->group('acabados', ['namespace' => 'App\Controllers\Tarifas\Acabados'], function ($routes) {
$routes->get('', 'TarifaAcabados::index', ['as' => 'tarifaAcabadoList']);
@ -107,7 +105,7 @@ $routes->group('configuracion', ['namespace' => 'App\Controllers\Configuracion']
$routes->post('menuitemsFacturas', 'SeriesFacturas::menuItemsFacturas', ['as' => 'menuItemsOfSeriesFacturas']);
});
/* Variables del sistema */
$routes->group("variables", ["namespace" => 'App\Controllers\Configuracion'], function ($routes) {
$routes->get('', 'ConfigVariables::index', ['as' => 'variablesIndex']);
$routes->get('find/(:num)', 'ConfigVariables::get/$1', ['as' => 'variablesFind']);
@ -115,6 +113,8 @@ $routes->group('configuracion', ['namespace' => 'App\Controllers\Configuracion']
$routes->delete('delete/(:num)', 'ConfigVariables::delete/$1', ['as' => 'deleteVariable']);
$routes->get('datatable', 'ConfigVariables::datatable', ['as' => 'datatableVariables']);
});
/* Errores en presupuestos */
$routes->group("errores-presupuesto", ["namespace" => 'App\Controllers\Configuracion'], function ($routes) {
$routes->get('', 'ConfigErrores::index', ['as' => 'erroresPresupuestoIndex']);
$routes->get('edit/(:num)', 'ConfigErrores::viewForm/$1', ['as' => 'erroresPresupuestoViewForm']);
@ -122,6 +122,7 @@ $routes->group('configuracion', ['namespace' => 'App\Controllers\Configuracion']
$routes->get('datatable', 'ConfigErrores::datatable', ['as' => 'erroresPresupuestoDatatable']);
$routes->post('edit/(:num)', 'ConfigErrores::update_error_presupuesto/$1', ['as' => 'erroresPresupuestoUpdate']);
});
$routes->group("maquina-tareas", ["namespace" => 'App\Controllers\Configuracion'], function ($routes) {
$routes->get('', 'MaquinaTarea::index', ['as' => 'maquinaTareaList']);
$routes->get('(:num)', 'MaquinaTarea::show/$1', ['as' => 'maquinaTareaShow']);
@ -848,10 +849,10 @@ $routes->group(
);
$routes->group(
'buscadorpresupuestos',
'presupuestos',
['namespace' => 'App\Controllers\Presupuestos'],
function ($routes) {
$routes->get('', 'Buscador::list', ['as' => 'buscadorPresupuestosList']);
$routes->get('buscador', 'Buscador::index', ['as' => 'buscadorPresupuestosList']);
$routes->post('datatable', 'Buscador::datatable', ['as' => 'dataTableOfBuscador']);
}
);

View File

@ -88,7 +88,7 @@ class Routing extends BaseRouting
*
* If FALSE, will stop searching and do NO automatic routing.
*/
public bool $autoRoute = true;
public bool $autoRoute = false;
/**
* If TRUE, will enable the use of the 'prioritize' option

View File

@ -43,7 +43,7 @@ class Clienteplantillaprecios extends \App\Controllers\BaseResourceController
// Breadcrumbs (IMN)
$this->viewData['breadcrumb'] = [
['title' => lang("App.menu_clientes"), 'route' => "javascript:void(0);", 'active' => false],
['title' => lang("App.menu_plantillas_tarifas_clientes"), 'route' => site_url('clientes/clienteplantillaprecios'), 'active' => true]
['title' => lang("App.menu_plantillas_tarifas_clientes"), 'route' => route_to("clienteplantillapreciosList"), 'active' => true]
];
parent::initController($request, $response, $logger);
@ -146,7 +146,7 @@ class Clienteplantillaprecios extends \App\Controllers\BaseResourceController
if ($thenRedirect):
if (!empty($this->indexRoute)):
//return redirect()->to(route_to($this->indexRoute))->with('sweet-success', $message);
return redirect()->to(site_url('/clientes/clienteplantillaprecios/edit/' . $id))->with('message', $message);
return redirect()->to(site_url('/clienteplantillaprecios/edit/' . $id))->with('message', $message);
else:
return $this->redirect2listView('sweet-success', $message);
endif;

View File

@ -52,7 +52,7 @@ class Buscador extends \App\Controllers\BaseResourceController
// Breadcrumbs (IMN)
$this->viewData['breadcrumb'] = [
['title' => lang("App.menu_presupuestos"), 'route' => "javascript:void(0);", 'active' => false],
['title' => lang("App.menu_presupuesto_buscador"), 'route' => site_url('presupuestos/buscador'), 'active' => true]
['title' => lang("App.menu_presupuesto_buscador"), 'route' => route_to("buscadorPresupuestosList"), 'active' => true]
];
parent::initController($request, $response, $logger);
@ -62,6 +62,8 @@ class Buscador extends \App\Controllers\BaseResourceController
public function index()
{
checkPermission('presupuesto.menu');
$viewData = [
'currentModule' => static::$controllerSlug,
'pageSubTitle' => lang('Basic.global.ManageAllRecords', [lang('Presupuestos.presupuesto')]),

View File

@ -63,6 +63,8 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController
public function list($tipo_impresion_id = 4)
{
checkPermission('presupuesto.menu');
$viewData = [
'currentModule' => static::$controllerSlug,
'pageSubTitle' => lang('Basic.global.ManageAllRecords', [lang('Presupuestos.presupuesto')]),
@ -82,6 +84,7 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController
public function add($tipo_impresion_id = null)
{
checkPermission('presupuesto.create');
if ($this->request->getPost()):
@ -211,6 +214,7 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController
public function edit($requestedId = null)
{
checkPermission('presupuesto.edit');
if ($requestedId == null):
return $this->redirect2listView();

View File

@ -71,6 +71,8 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
public function list()
{
checkPermission('presupuesto-cliente.menu');
$viewData = [
'currentModule' => static::$controllerSlug,
'pageSubTitle' => lang('Basic.global.ManageAllRecords', [lang('Presupuestos.presupuesto')]),
@ -95,6 +97,8 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
public function add()
{
checkPermission('presupuesto-cliente.create');
$this->viewData['breadcrumb'] = [
['title' => lang("App.menu_presupuestos"), 'route' => "javascript:void(0);", 'active' => false],
['title' => "Listado", 'route' => site_url('presupuestocliente/list'), 'active' => true]
@ -140,6 +144,8 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController
public function edit($requestedId = null)
{
checkPermission('presupuesto-cliente.edit');
if ($requestedId == null):
return $this->redirect2listView();
endif;

View File

@ -157,7 +157,7 @@ $picture = "/assets/img/default-user.png";
<li class="nav-item navbar-dropdown dropdown me-3 me-xl-1">
<a
class="nav-link hide-arrow"
href="<?= site_url('presupuestos/buscador'); ?>"
href="<?= route_to("buscadorPresupuestosList"); ?>"
title="Acceso directo a buscador de presupuestos">
<i class="ti ti-report-search ti-md"></i>
</a>

View File

@ -46,7 +46,7 @@
</a>
</li>
<li class="menu-item">
<a href="<?= site_url("clientes/clienteplantillaprecios") ?>" class="menu-link">
<a href="<?= route_to("clienteplantillapreciosList") ?>" class="menu-link">
<div data-i18n="<?= lang("App.menu_plantillas_tarifas_clientes") ?>"><?= lang("App.menu_plantillas_tarifas_clientes") ?></div>
</a>
</li>

View File

@ -46,7 +46,7 @@
</a>
</li>
<li class="menu-item">
<a href="<?= site_url("clientes/clienteplantillaprecios") ?>" class="menu-link">
<a href="<?= route_to("clienteplantillapreciosList") ?>" class="menu-link">
<div data-i18n="<?= lang("App.menu_plantillas_tarifas_clientes") ?>"><?= lang("App.menu_plantillas_tarifas_clientes") ?></div>
</a>
</li>

View File

@ -6,28 +6,28 @@ if (auth()->user()->inGroup('beta')) {
?>
<!-- Catalogue -->
<li class="menu-item">
<a href="javascript:void(0);" class="menu-link menu-toggle">
<a href="javascript:void(0);" class="menu-link menu-toggle beta">
<i class="menu-icon tf-icons ti ti-book"></i>
<?= lang("App.menu_catalogo") ?>
</a>
<ul class="menu-sub">
<li class="menu-item">
<a href="<?= site_url("catalogo/catalogo") ?>" class="menu-link">
<a href="<?= site_url("catalogo/catalogo") ?>" class="menu-link beta">
<?= lang("App.menu_catalogo_libros") ?>
</a>
</li>
<li class="menu-item">
<a href="<?= site_url("catalogo/catalogo/nuevo") ?>" class="menu-link">
<a href="<?= site_url("catalogo/catalogo/nuevo") ?>" class="menu-link beta">
<?= lang("App.menu_catalogo_nuevo") ?>
</a>
</li>
<li class="menu-item">
<a href="<?= site_url("catalogo/catalogo/categorias") ?>" class="menu-link">
<a href="<?= site_url("catalogo/catalogo/categorias") ?>" class="menu-link beta">
<?= lang("App.menu_catalogo_categorias") ?>
</a>
</li>
<li class="menu-item">
<a href="<?= site_url("catalogo/catalogo/importar") ?>" class="menu-link">
<a href="<?= site_url("catalogo/catalogo/importar") ?>" class="menu-link beta">
<?= lang("App.menu_catalogo_importar") ?>
</a>
</li>

View File

@ -25,18 +25,18 @@ if (
<?php if (auth()->user()->inGroup('beta')) { ?>
<li class="menu-item">
<a href="<?= site_url("servicios/compras") ?>" class="menu-link">
<a href="<?= site_url("servicios/compras") ?>" class="menu-link beta">
<?= lang("App.menu_compras") ?>
</a>
</li>
<li class="menu-item">
<a href="<?= site_url("servicios/productos") ?>" class="menu-link">
<a href="<?= site_url("servicios/productos") ?>" class="menu-link beta">
<?= lang("App.menu_productos") ?>
</a>
</li>
<li class="menu-item">
<a href="<?= site_url("servicios/compras/ajustes") ?>" class="menu-link">
<a href="<?= site_url("servicios/compras/ajustes") ?>" class="menu-link beta">
<?= lang("App.menu_compras_ajustes") ?>
</a>
</li>

View File

@ -6,7 +6,7 @@ if (auth()->user()->inGroup('beta')) {
?>
<!-- Import -->
<li class="menu-item">
<a href="<?= site_url("importacion/importar") ?>" class="menu-link">
<a href="<?= site_url("importacion/importar") ?>" class="menu-link beta">
<i class="menu-icon tf-icons ti ti-file-import"></i>
<?= lang("App.menu_importacion") ?>
</a>

View File

@ -12,11 +12,17 @@ if (auth()->user()->can('presupuesto.menu')) {
</a>
<ul class="menu-sub">
<li class="menu-item">
<a href="<?= site_url("presupuestos/buscador") ?>" class="menu-link">
<a href="<?= route_to("buscadorPresupuestosList") ?>" class="menu-link">
<?= lang("App.menu_presupuesto_buscador") ?>
</a>
</li>
<li class="menu-item">
<a href="<?= route_to('importadorPresupuestos') ?>" class="menu-link">
<?= lang("App.menu_presupuesto_importador") ?>
</a>
</li>
<li class="menu-item">
<a href="javascript:void(0);" class="menu-link menu-toggle">
<?= lang("App.menu_libros") ?>
@ -71,80 +77,81 @@ if (auth()->user()->can('presupuesto.menu')) {
</a>
</li>
</ul>
</li>
</li>
<li class="menu-item">
<a href="<?= site_url("presupuestos/marcapaginas") ?>" class="menu-link">
<?= lang("App.menu_marcapaginas") ?>
</a>
</li>
<li class="menu-item">
<a href="<?= site_url("presupuestos/flyers") ?>" class="menu-link">
<div data-i18n="<?= lang("App.menu_flyers") ?>"><?= lang("App.menu_flyers") ?></div>
</a>
</li>
<li class="menu-item">
<a href="<?= site_url("presupuestos/carteles") ?>" class="menu-link">
<div data-i18n="<?= lang("App.menu_carteles") ?>"><?= lang("App.menu_carteles") ?></div>
</a>
</li>
<?php if (auth()->user()->inGroup('beta')) { ?>
<li class="menu-item">
<a href="<?= site_url("presupuestos/tarjetascomerciales") ?>" class="menu-link">
<div data-i18n="<?= lang("App.menu_tarjetas_comerciales") ?>">
<?= lang("App.menu_tarjetas_comerciales") ?></div>
</a>
</li>
<li class="menu-item">
<a href="<?= site_url("presupuestos/marcapaginas") ?>" class="menu-link beta">
<?= lang("App.menu_marcapaginas") ?>
</a>
</li>
<li class="menu-item">
<a href="<?= site_url("presupuestos/flyers") ?>" class="menu-link beta">
<div data-i18n="<?= lang("App.menu_flyers") ?>"><?= lang("App.menu_flyers") ?></div>
</a>
</li>
<li class="menu-item">
<a href="<?= site_url("presupuestos/carteles") ?>" class="menu-link beta">
<div data-i18n="<?= lang("App.menu_carteles") ?>"><?= lang("App.menu_carteles") ?></div>
</a>
</li>
<li class="menu-item">
<a href="<?= site_url("presupuestos/invitaciones") ?>" class="menu-link">
<div data-i18n="<?= lang("App.menu_invitaciones") ?>"><?= lang("App.menu_invitaciones") ?></div>
</a>
</li>
<li class="menu-item">
<a href="<?= site_url("presupuestos/tarjetascomerciales") ?>" class="menu-link beta">
<div data-i18n="<?= lang("App.menu_tarjetas_comerciales") ?>">
<?= lang("App.menu_tarjetas_comerciales") ?>
</div>
</a>
</li>
<li class="menu-item">
<a href="<?= site_url("presupuestos/estuches") ?>" class="menu-link">
<div data-i18n="<?= lang("App.menu_estuches") ?>"><?= lang("App.menu_estuches") ?></div>
</a>
</li>
<li class="menu-item">
<a href="<?= site_url("presupuestos/invitaciones") ?>" class="menu-link beta">
<div data-i18n="<?= lang("App.menu_invitaciones") ?>"><?= lang("App.menu_invitaciones") ?></div>
</a>
</li>
<li class="menu-item">
<a href="javascript:void(0);" class="menu-link menu-toggle">
<div data-i18n="<?= lang("App.menu_folletos") ?>"><?= lang("App.menu_folletos") ?></div>
</a>
<ul class="menu-sub">
<li class="menu-item">
<a href="<?= site_url("presupuestos/dipticos") ?>" class="menu-link">
<div data-i18n="<?= lang("App.menu_folleto_diptico") ?>"><?= lang("App.menu_folleto_diptico") ?>
</div>
</a>
</li>
<li class="menu-item">
<a href="<?= site_url("presupuestos/estuches") ?>" class="menu-link beta">
<div data-i18n="<?= lang("App.menu_estuches") ?>"><?= lang("App.menu_estuches") ?></div>
</a>
</li>
<li class="menu-item">
<a href="<?= site_url("presupuestos/tripticos") ?>" class="menu-link">
<div data-i18n="<?= lang("App.menu_folleto_triptico") ?>">
<?= lang("App.menu_folleto_triptico") ?></div>
</a>
</li>
<li class="menu-item">
<a href="<?= site_url("presupuestos/cuadripticos") ?>" class="menu-link">
<div data-i18n="<?= lang("App.menu_folleto_cuadriptico") ?>">
<?= lang("App.menu_folleto_cuadriptico") ?></div>
</a>
</li>
</ul>
</li>
<li class="menu-item">
<a href="<?= site_url("presupuestos/calendarios") ?>" class="menu-link">
<div data-i18n="<?= lang("App.menu_calendarios") ?>"><?= lang("App.menu_calendarios") ?></div>
</a>
</li>
<li class="menu-item">
<a href="javascript:void(0);" class="menu-link menu-toggle beta">
<div data-i18n="<?= lang("App.menu_folletos") ?>"><?= lang("App.menu_folletos") ?></div>
</a>
<ul class="menu-sub">
<li class="menu-item">
<a href="<?= site_url("presupuestos/dipticos") ?>" class="menu-link beta">
<div data-i18n="<?= lang("App.menu_folleto_diptico") ?>"><?= lang("App.menu_folleto_diptico") ?>
</div>
</a>
</li>
<li class="menu-item">
<a href="<?= site_url("/importador") ?>" class="menu-link">
<?= lang("App.menu_presupuesto_importador") ?>
</a>
</li>
<li class="menu-item">
<a href="<?= site_url("presupuestos/tripticos") ?>" class="menu-link beta">
<div data-i18n="<?= lang("App.menu_folleto_triptico") ?>">
<?= lang("App.menu_folleto_triptico") ?>
</div>
</a>
</li>
<li class="menu-item">
<a href="<?= site_url("presupuestos/cuadripticos") ?>" class="menu-link beta">
<div data-i18n="<?= lang("App.menu_folleto_cuadriptico") ?>">
<?= lang("App.menu_folleto_cuadriptico") ?>
</div>
</a>
</li>
</ul>
</li>
<li class="menu-item">
<a href="<?= site_url("presupuestos/calendarios") ?>" class="menu-link beta">
<div data-i18n="<?= lang("App.menu_calendarios") ?>"><?= lang("App.menu_calendarios") ?></div>
</a>
</li>
<?php } ?>
</ul>
</li>

View File

@ -135,7 +135,7 @@ $picture = "/assets/img/default-user.png";
<li class="nav-item navbar-dropdown dropdown me-3 me-xl-1">
<a
class="nav-link hide-arrow"
href="<?= site_url('presupuestos/buscador'); ?>"
href="<?= route_to("buscadorPresupuestosList"); ?>"
title="Acceso directo a buscador de presupuestos"
>
<i class="ti ti-report-search ti-md"></i>

View File

@ -217,7 +217,7 @@ class tarifasClienteView {
popErrorAlert(window.language.ClientePrecios.errors.error_nombre_template, 'error-nombre')
}
else {
new Ajax('/clientes/clienteplantillaprecios/add',
new Ajax('/clienteplantillaprecios/add',
{
'from_client_data': 1,
'cliente_id': this.clienteId,

View File

@ -60,7 +60,7 @@ class PlantillasTarifasClienteList {
// Se borran las lineas asociadas
new Ajax(
"/clientes/clienteplantillaprecios/update/" + dataId,
"/clienteplantillaprecios/update/" + dataId,
{
[this.csrf_token]: this.csrf_hash
},

View File

@ -35,9 +35,11 @@
.layout-navbar-fixed .layout-wrapper:not(.layout-without-menu) .layout-page {
padding-top: 64px !important;
}
.layout-navbar-fixed .layout-wrapper:not(.layout-horizontal):not(.layout-without-menu) .layout-page {
padding-top: 78px !important;
}
/* Navbar page z-index issue solution */
.content-wrapper .navbar {
z-index: auto;
@ -47,36 +49,39 @@
* Content
******************************************************************************/
.demo-blocks > * {
.demo-blocks>* {
display: block !important;
}
.demo-inline-spacing > * {
.demo-inline-spacing>* {
margin: 1rem 0.375rem 0 0 !important;
}
/* ? .demo-vertical-spacing class is used to have vertical margins between elements. To remove margin-top from the first-child, use .demo-only-element class with .demo-vertical-spacing class. For example, we have used this class in forms-input-groups.html file. */
.demo-vertical-spacing > * {
.demo-vertical-spacing>* {
margin-top: 1rem !important;
margin-bottom: 0 !important;
}
.demo-vertical-spacing.demo-only-element > :first-child {
.demo-vertical-spacing.demo-only-element> :first-child {
margin-top: 0 !important;
}
.demo-vertical-spacing-lg > * {
.demo-vertical-spacing-lg>* {
margin-top: 1.875rem !important;
margin-bottom: 0 !important;
}
.demo-vertical-spacing-lg.demo-only-element > :first-child {
.demo-vertical-spacing-lg.demo-only-element> :first-child {
margin-top: 0 !important;
}
.demo-vertical-spacing-xl > * {
.demo-vertical-spacing-xl>* {
margin-top: 5rem !important;
margin-bottom: 0 !important;
}
.demo-vertical-spacing-xl.demo-only-element > :first-child {
.demo-vertical-spacing-xl.demo-only-element> :first-child {
margin-top: 0 !important;
}
@ -107,9 +112,11 @@
flex-direction: column;
margin-top: 1rem;
}
.layout-demo-placeholder img {
width: 900px;
}
.layout-demo-info {
text-align: center;
margin-top: 1rem;
@ -119,4 +126,8 @@
position: sticky;
top: 90px;
z-index: 1020;
}
.beta {
color: orangered !important;
}