Merge branch 'main' into feat/imposiciones/sk-40

This commit is contained in:
amazuecos
2025-04-12 23:54:52 +02:00
49 changed files with 998 additions and 1288 deletions

3
.gitignore vendored
View File

@ -1,4 +1,5 @@
ci4/.env ci4/.env
.vscode/ .vscode/
launch.json launch.json
*xdebug*.log* *xdebug*.log*
ci4/app/Config/RBAC/*

View File

View File

@ -1,387 +0,0 @@
<?php
const SK_PERMISSION_MATRIX = [
"admin" => [
"clientes.create",
"clientes.edit",
"clientes.delete",
"clientes.menu",
"plantilla-tarifa.create",
"plantilla-tarifa.edit",
"plantilla-tarifa.delete",
"plantilla-tarifa.menu",
"direcciones.create",
"direcciones.edit",
"direcciones.delete",
"direcciones.menu",
"presupuesto.create",
"presupuesto.edit",
"presupuesto.delete",
"presupuesto.menu",
"presupuesto-cliente.create",
"presupuesto-cliente.edit",
"presupuesto-cliente.delete",
"presupuesto-cliente.menu",
"pedidos-activos.view",
"pedidos-activos.menu",
"pedidos-finalizados.view",
"pedidos-finalizados.menu",
"pedidos-cancelados.view",
"pedidos-cancelados.menu",
"pedidos-todos.view",
"pedidos-todos.menu",
"tarifa-preimpresion.create",
"tarifa-preimpresion.edit",
"tarifa-preimpresion.delete",
"tarifa-preimpresion.menu",
"tarifa-manipulado.create",
"tarifa-manipulado.edit",
"tarifa-manipulado.delete",
"tarifa-manipulado.menu",
"tarifa-acabado.create",
"tarifa-acabado.edit",
"tarifa-acabado.delete",
"tarifa-acabado.menu",
"tarifa-encuadernacion.create",
"tarifa-encuadernacion.edit",
"tarifa-encuadernacion.delete",
"tarifa-encuadernacion.menu",
"tarifa-extra.create",
"tarifa-extra.edit",
"tarifa-extra.delete",
"tarifa-extra.menu",
"tarifa-envio.create",
"tarifa-envio.edit",
"tarifa-envio.delete",
"tarifa-envio.menu",
"servicio-acabado.create",
"servicio-acabado.edit",
"servicio-acabado.delete",
"servicio-acabado.menu",
"proveedores.create",
"proveedores.edit",
"proveedores.delete",
"proveedores.menu",
"ajustes.create",
"ajustes.edit",
"ajustes.delete",
"ajustes.menu",
"actividad.create",
"actividad.edit",
"actividad.delete",
"actividad.menu",
"paises.create",
"paises.edit",
"paises.delete",
"paises.menu",
"maquinas.create",
"maquinas.edit",
"maquinas.delete",
"maquinas.menu",
"maquinas-defecto.create",
"maquinas-defecto.edit",
"maquinas-defecto.delete",
"maquinas-defecto.menu",
"papel-generico.create",
"papel-generico.edit",
"papel-generico.delete",
"papel-generico.menu",
"papel-impresion.create",
"papel-impresion.edit",
"papel-impresion.delete",
"papel-impresion.menu",
"usuarios.create",
"usuarios.edit",
"usuarios.delete",
"usuarios.menu",
"roles-permisos.create",
"roles-permisos.edit",
"roles-permisos.delete",
"roles-permisos.menu",
"tickets.create",
"tickets.edit",
"tickets.menu",
"facturas.create",
"facturas.edit",
"facturas.vencimientos",
"facturas.menu",
],
"cliente-admin" => [
"presupuesto-cliente.create",
"presupuesto-cliente.edit",
"presupuesto-cliente.delete",
"presupuesto-cliente.menu",
"pedidos-activos.view",
"pedidos-activos.menu",
"pedidos-finalizados.view",
"pedidos-finalizados.menu",
"pedidos-cancelados.view",
"pedidos-cancelados.menu",
"pedidos-todos.view",
"pedidos-todos.menu",
],
"cliente-editor" => [
"presupuesto-cliente.create",
"presupuesto-cliente.edit",
"presupuesto-cliente.menu",
"pedidos-activos.view",
"pedidos-activos.menu",
"pedidos-finalizados.view",
"pedidos-finalizados.menu",
"pedidos-cancelados.view",
"pedidos-cancelados.menu",
"pedidos-todos.view",
"pedidos-todos.menu",
],
"comercial" => [
"clientes.create",
"clientes.edit",
"clientes.menu",
"direcciones.create",
"direcciones.edit",
"direcciones.menu",
"presupuesto.create",
"presupuesto.edit",
"presupuesto.menu",
"presupuesto-cliente.create",
"presupuesto-cliente.edit",
"presupuesto-cliente.menu",
"pedidos-activos.view",
"pedidos-activos.menu",
"pedidos-finalizados.view",
"pedidos-finalizados.menu",
"pedidos-cancelados.view",
"pedidos-cancelados.menu",
"pedidos-todos.view",
"pedidos-todos.menu",
],
"produccion" => [
"direcciones.create",
"direcciones.edit",
"direcciones.menu",
"presupuesto.create",
"presupuesto.edit",
"presupuesto.menu",
"presupuesto-cliente.create",
"presupuesto-cliente.edit",
"presupuesto-cliente.menu",
"pedidos-validacion.view",
"pedidos-validacion.menu",
"pedidos-activos.view",
"pedidos-activos.menu",
"pedidos-finalizados.view",
"pedidos-finalizados.menu",
"pedidos-cancelados.view",
"pedidos-cancelados.menu",
"pedidos-todos.view",
"pedidos-todos.menu",
"pedidos-gestion.toprod",
"pedidos-gestion.menu",
"tickets.edit",
"tickets.menu",
],
"maquina" => [
"token.token",
"token.menu",
],
"maquetador" => [
"token.token",
"token.menu",
],
"director" => [
"clientes.create",
"clientes.edit",
"clientes.menu",
"plantilla-tarifa.create",
"plantilla-tarifa.edit",
"plantilla-tarifa.menu",
"direcciones.create",
"direcciones.edit",
"direcciones.menu",
"presupuesto.create",
"presupuesto.edit",
"presupuesto.menu",
"presupuesto-cliente.create",
"presupuesto-cliente.edit",
"presupuesto-cliente.menu",
"pedidos-activos.view",
"pedidos-activos.menu",
"pedidos-finalizados.view",
"pedidos-finalizados.menu",
"pedidos-cancelados.view",
"pedidos-cancelados.menu",
"pedidos-todos.view",
"pedidos-todos.menu",
"pedidos-gestion.toprod",
"pedidos-gestion.menu",
"tarifa-preimpresion.create",
"tarifa-preimpresion.edit",
"tarifa-preimpresion.menu",
"tarifa-manipulado.create",
"tarifa-manipulado.edit",
"tarifa-manipulado.menu",
"tarifa-acabado.create",
"tarifa-acabado.edit",
"tarifa-acabado.menu",
"tarifa-encuadernacion.create",
"tarifa-encuadernacion.edit",
"tarifa-encuadernacion.menu",
"tarifa-extra.create",
"tarifa-extra.edit",
"tarifa-extra.menu",
"tarifa-envio.create",
"tarifa-envio.edit",
"tarifa-envio.menu",
"servicio-acabado.create",
"servicio-acabado.edit",
"servicio-acabado.menu",
"proveedores.create",
"proveedores.edit",
"proveedores.menu",
"tickets.edit",
"tickets.menu",
"facturas.create",
"facturas.edit",
"facturas.vencimientos",
"facturas.menu",
],
"contabilidad" => [
"clientes.create",
"clientes.edit",
"clientes.menu",
"direcciones.create",
"direcciones.edit",
"direcciones.menu",
"presupuesto.create",
"presupuesto.edit",
"presupuesto.menu",
"pedidos-validacion.view",
"pedidos-validacion.menu",
"pedidos-activos.view",
"pedidos-activos.menu",
"pedidos-finalizados.view",
"pedidos-finalizados.menu",
"pedidos-cancelados.view",
"pedidos-cancelados.menu",
"pedidos-todos.view",
"pedidos-todos.menu",
"proveedores.create",
"proveedores.edit",
"proveedores.menu",
"tickets.edit",
"tickets.menu",
"facturas.create",
"facturas.edit",
"facturas.vencimientos",
"facturas.menu",
],
"editor" => [
"token.token",
"token.menu",
"Profile.index",
"Profile.menu",
],
"beta" => [
"clientes.create",
"clientes.edit",
"clientes.delete",
"clientes.menu",
"plantilla-tarifa.create",
"plantilla-tarifa.edit",
"plantilla-tarifa.delete",
"plantilla-tarifa.menu",
"direcciones.create",
"direcciones.edit",
"direcciones.delete",
"direcciones.menu",
"presupuesto.create",
"presupuesto.edit",
"presupuesto.delete",
"presupuesto.menu",
"presupuesto-cliente.create",
"presupuesto-cliente.edit",
"presupuesto-cliente.delete",
"presupuesto-cliente.menu",
"pedidos-activos.view",
"pedidos-activos.menu",
"pedidos-finalizados.view",
"pedidos-finalizados.menu",
"pedidos-cancelados.view",
"pedidos-cancelados.menu",
"pedidos-todos.view",
"pedidos-todos.menu",
"tarifa-preimpresion.create",
"tarifa-preimpresion.edit",
"tarifa-preimpresion.delete",
"tarifa-preimpresion.menu",
"tarifa-manipulado.create",
"tarifa-manipulado.edit",
"tarifa-manipulado.delete",
"tarifa-manipulado.menu",
"tarifa-acabado.create",
"tarifa-acabado.edit",
"tarifa-acabado.delete",
"tarifa-acabado.menu",
"tarifa-encuadernacion.create",
"tarifa-encuadernacion.edit",
"tarifa-encuadernacion.delete",
"tarifa-encuadernacion.menu",
"tarifa-extra.create",
"tarifa-extra.edit",
"tarifa-extra.delete",
"tarifa-extra.menu",
"tarifa-envio.create",
"tarifa-envio.edit",
"tarifa-envio.delete",
"tarifa-envio.menu",
"servicio-acabado.create",
"servicio-acabado.edit",
"servicio-acabado.delete",
"servicio-acabado.menu",
"proveedores.create",
"proveedores.edit",
"proveedores.delete",
"proveedores.menu",
"ajustes.create",
"ajustes.edit",
"ajustes.delete",
"ajustes.menu",
"actividad.create",
"actividad.edit",
"actividad.delete",
"actividad.menu",
"paises.create",
"paises.edit",
"paises.delete",
"paises.menu",
"maquinas.create",
"maquinas.edit",
"maquinas.delete",
"maquinas.menu",
"maquinas-defecto.create",
"maquinas-defecto.edit",
"maquinas-defecto.delete",
"maquinas-defecto.menu",
"papel-generico.create",
"papel-generico.edit",
"papel-generico.delete",
"papel-generico.menu",
"papel-impresion.create",
"papel-impresion.edit",
"papel-impresion.delete",
"papel-impresion.menu",
"usuarios.create",
"usuarios.edit",
"usuarios.delete",
"usuarios.menu",
"roles-permisos.create",
"roles-permisos.edit",
"roles-permisos.delete",
"roles-permisos.menu",
"tickets.edit",
"tickets.menu",
"facturas.create",
"facturas.edit",
"facturas.vencimientos",
"facturas.menu",
],
];

View File

@ -1,111 +0,0 @@
<?php
const SK_PERMISSIONS = [
'clientes.create' => 'Can create',
'clientes.edit' => 'Can edit',
'clientes.delete' => 'Can delete',
'clientes.menu' => 'Menu shall be visualize',
'plantilla-tarifa.create' => 'Can create',
'plantilla-tarifa.edit' => 'Can edit',
'plantilla-tarifa.delete' => 'Can delete',
'plantilla-tarifa.menu' => 'Menu shall be visualize',
'direcciones.create' => 'Can create',
'direcciones.edit' => 'Can edit',
'direcciones.delete' => 'Can delete',
'direcciones.menu' => 'Menu shall be visualize',
'presupuesto.create' => 'Can create',
'presupuesto.edit' => 'Can edit',
'presupuesto.delete' => 'Can delete',
'presupuesto.menu' => 'Menu shall be visualize',
'presupuesto-cliente.create' => 'Can create',
'presupuesto-cliente.edit' => 'Can edit',
'presupuesto-cliente.delete' => 'Can delete',
'presupuesto-cliente.menu' => 'Menu shall be visualize',
'pedidos-validacion.view' => 'Can view',
'pedidos-validacion.menu' => 'Menu shall be visualize',
'pedidos-activos.view' => 'Can view',
'pedidos-activos.menu' => 'Menu shall be visualize',
'pedidos-finalizados.view' => 'Can view',
'pedidos-finalizados.menu' => 'Menu shall be visualize',
'pedidos-cancelados.view' => 'Can view',
'pedidos-cancelados.menu' => 'Menu shall be visualize',
'pedidos-todos.view' => 'Can view',
'pedidos-todos.menu' => 'Menu shall be visualize',
'pedidos-gestion.toprod' => 'Can toprod',
'pedidos-gestion.menu' => 'Menu shall be visualize',
'tarifa-preimpresion.create' => 'Can create',
'tarifa-preimpresion.edit' => 'Can edit',
'tarifa-preimpresion.delete' => 'Can delete',
'tarifa-preimpresion.menu' => 'Menu shall be visualize',
'tarifa-manipulado.create' => 'Can create',
'tarifa-manipulado.edit' => 'Can edit',
'tarifa-manipulado.delete' => 'Can delete',
'tarifa-manipulado.menu' => 'Menu shall be visualize',
'tarifa-acabado.create' => 'Can create',
'tarifa-acabado.edit' => 'Can edit',
'tarifa-acabado.delete' => 'Can delete',
'tarifa-acabado.menu' => 'Menu shall be visualize',
'tarifa-encuadernacion.create' => 'Can create',
'tarifa-encuadernacion.edit' => 'Can edit',
'tarifa-encuadernacion.delete' => 'Can delete',
'tarifa-encuadernacion.menu' => 'Menu shall be visualize',
'tarifa-extra.create' => 'Can create',
'tarifa-extra.edit' => 'Can edit',
'tarifa-extra.delete' => 'Can delete',
'tarifa-extra.menu' => 'Menu shall be visualize',
'tarifa-envio.create' => 'Can create',
'tarifa-envio.edit' => 'Can edit',
'tarifa-envio.delete' => 'Can delete',
'tarifa-envio.menu' => 'Menu shall be visualize',
'servicio-acabado.create' => 'Can create',
'servicio-acabado.edit' => 'Can edit',
'servicio-acabado.delete' => 'Can delete',
'servicio-acabado.menu' => 'Menu shall be visualize',
'proveedores.create' => 'Can create',
'proveedores.edit' => 'Can edit',
'proveedores.delete' => 'Can delete',
'proveedores.menu' => 'Menu shall be visualize',
'ajustes.create' => 'Can create',
'ajustes.edit' => 'Can edit',
'ajustes.delete' => 'Can delete',
'ajustes.menu' => 'Menu shall be visualize',
'actividad.create' => 'Can create',
'actividad.edit' => 'Can edit',
'actividad.delete' => 'Can delete',
'actividad.menu' => 'Menu shall be visualize',
'paises.create' => 'Can create',
'paises.edit' => 'Can edit',
'paises.delete' => 'Can delete',
'paises.menu' => 'Menu shall be visualize',
'maquinas.create' => 'Can create',
'maquinas.edit' => 'Can edit',
'maquinas.delete' => 'Can delete',
'maquinas.menu' => 'Menu shall be visualize',
'maquinas-defecto.create' => 'Can create',
'maquinas-defecto.edit' => 'Can edit',
'maquinas-defecto.delete' => 'Can delete',
'maquinas-defecto.menu' => 'Menu shall be visualize',
'papel-generico.create' => 'Can create',
'papel-generico.edit' => 'Can edit',
'papel-generico.delete' => 'Can delete',
'papel-generico.menu' => 'Menu shall be visualize',
'papel-impresion.create' => 'Can create',
'papel-impresion.edit' => 'Can edit',
'papel-impresion.delete' => 'Can delete',
'papel-impresion.menu' => 'Menu shall be visualize',
'usuarios.create' => 'Can create',
'usuarios.edit' => 'Can edit',
'usuarios.delete' => 'Can delete',
'usuarios.menu' => 'Menu shall be visualize',
'roles-permisos.create' => 'Can create',
'roles-permisos.edit' => 'Can edit',
'roles-permisos.delete' => 'Can delete',
'roles-permisos.menu' => 'Menu shall be visualize',
'tickets.create' => 'Can create',
'tickets.edit' => 'Can edit',
'tickets.menu' => 'Menu shall be visualize',
'facturas.create' => 'Can create',
'facturas.edit' => 'Can edit',
'facturas.vencimientos' => 'Can vencimientos',
'facturas.menu' => 'Menu shall be visualize',
];

View File

@ -1,22 +0,0 @@
{
"superadmin": {
"title": "Super Admin",
"description": "Complete control of the site."
},
"admin": {
"title": "Admin",
"description": "Day to day administrators of the site."
},
"developer": {
"title": "Developer",
"description": "Site programmers."
},
"user": {
"title": "User",
"description": "General users of the site. Often customers."
},
"beta": {
"title": "Beta User",
"description": "Has access to beta-level features."
}
}

View File

@ -1,48 +0,0 @@
<?php
const SK_ROLES = [
'admin' => [
'title' => 'Administrador',
'description' => 'Administrador del ERP',
],
'cliente-admin' => [
'title' => 'Cliente administrador',
'description' => 'Rol de cliente con permisos de administración',
],
'cliente-editor' => [
'title' => 'Cliente editor',
'description' => 'Rol de cliente con permisos de edición',
],
'comercial' => [
'title' => 'Comercial',
'description' => '',
],
'produccion' => [
'title' => 'Producción',
'description' => '',
],
'maquina' => [
'title' => 'Máquina',
'description' => '',
],
'maquetador' => [
'title' => 'Maquetador',
'description' => '',
],
'director' => [
'title' => 'Director',
'description' => 'Para los directores de área',
],
'contabilidad' => [
'title' => 'Contabilidad',
'description' => '',
],
'editor' => [
'title' => 'Editor',
'description' => '',
],
'beta' => [
'title' => 'Beta',
'description' => '',
],
];

View File

@ -32,121 +32,10 @@ $routes->group('activity', ['namespace' => 'App\Controllers\Sistema'], function
* -------------------------------------------------------------------- * --------------------------------------------------------------------
*/ */
/* Rutas para tarifas */ // Carga archivos de rutas por dominio
$routes->group('tarifas', ['namespace' => 'App\Controllers\Tarifas'], function ($routes) { foreach (glob(APPPATH . 'Config/Routes/*Routes.php') as $routeFile) {
require $routeFile;
/* Maquinas */ }
$routes->group('maquinas', ['namespace' => 'App\Controllers\Tarifas\Maquinas'], function ($routes) {
$routes->post('acabado', 'TarifaMaquinas::add_tarifa_acabado_maquina_with_tarea');
$routes->post('manipulado', 'TarifaMaquinas::add_tarifa_manipulado_maquina_with_tarea');
$routes->post('preimpresion', 'TarifaMaquinas::add_tarifa_preimpresion_maquina_with_tarea');
$routes->post('encuadernacion', 'TarifaMaquinas::add_tarifa_encuadernacion_maquina_with_tarea');
$routes->post('extra', 'TarifaMaquinas::add_tarifa_extra_maquina_with_tarea');
$routes->delete('acabado/(:num)', 'TarifaMaquinas::delete_tarifa_acabado_maquina_with_tarea/$1');
$routes->delete('manipulado/(:num)', 'TarifaMaquinas::delete_tarifa_manipulado_maquina_with_tarea/$1');
$routes->delete('preimpresion/(:num)', 'TarifaMaquinas::delete_tarifa_preimpresion_maquina_with_tarea/$1');
$routes->delete('encuadernacion/(:num)', 'TarifaMaquinas::delete_tarifa_encuadernacion_maquina_with_tarea/$1');
$routes->delete('extra/(:num)', 'TarifaMaquinas::delete_tarifa_extra_maquina_with_tarea/$1');
$routes->get('acabado/select', 'TarifaMaquinas::get_select_maquina_acabado');
$routes->get('manipulado/select', 'TarifaMaquinas::get_select_maquina_manipulado');
$routes->get('impresion/select', 'TarifaMaquinas::get_select_maquina_impresion');
$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');
});
/* Acabados */
$routes->group('acabados', ['namespace' => 'App\Controllers\Tarifas\Acabados'], function ($routes) {
$routes->get('', 'TarifaAcabados::index', ['as' => 'tarifaAcabadoList']);
$routes->get('gettarifas', 'TarifaAcabados::getSelect2');
$routes->match(['get', 'post'], 'add', 'TarifaAcabados::add', ['as' => 'tarifaAcabadoAdd']);
$routes->match(['get', 'post'], 'edit/(:num)', 'TarifaAcabados::edit/$1', ['as' => 'tarifaAcabadoEdit']);
$routes->get('delete/(:num)', 'TarifaAcabados::delete/$1', ['as' => 'tarifaAcabadoDelete']);
$routes->post('datatable', 'TarifaAcabados::datatable', ['as' => 'tarifaAcabadoDT']);
$routes->get('select', 'TarifaAcabados::show_select', ["as" => "showSelectTarifaAcabado"]);
$routes->group('lineas', ['namespace' => 'App\Controllers\Tarifas\Acabados'], function ($routes) {
$routes->post('datatable', 'TarifaAcabadosLineas::datatable', ['as' => 'tarifaAcabadoLineasDT']);
$routes->post('datatable_editor', 'TarifaAcabadosLineas::datatable_editor', ['as' => 'tarifaAcabadoLineasDTE']);
$routes->get('delete/(:num)', 'TarifaAcabadosLineas::delete/$1', ['as' => 'tarifaAcabadoLineasDelete']);
});
});
});
/* Rutas para configuraciones */
$routes->group('configuracion', ['namespace' => 'App\Controllers\Configuracion'], function ($routes) {
/* Ubicaciones */
$routes->group('ubicaciones', ['namespace' => 'App\Controllers\Configuracion'], function ($routes) {
$routes->get('', 'Ubicaciones::index', ['as' => 'ubicacionesList']);
$routes->match(['get', 'post'], 'add', 'Ubicaciones::add', ['as' => 'ubicacionesAdd']);
$routes->match(['get', 'post'], 'edit/(:num)', 'Ubicaciones::edit/$1', ['as' => 'ubicacionesEdit']);
$routes->get('delete/(:num)', 'Ubicaciones::delete/$1', ['as' => 'ubicacionesDelete']);
$routes->post('datatable', 'Ubicaciones::datatable', ['as' => 'ubicacionesDT']);
});
/* Permisos y roles */
$routes->group('group', ['namespace' => 'App\Controllers\Configuracion'], function ($routes) {
$routes->get('', 'Group::index', ['as' => 'userGroupList']);
$routes->get('index', 'Group::index', ['as' => 'groupIndex']);
$routes->post('edit/(:num)', 'Group::edit/$1', ['as' => 'updateGroup']);
$routes->get('edit/(:num)', 'Group::edit/$1', ['as' => 'editGroup']);
$routes->get('delete/(:num)', 'Group::delete/$1', ['as' => 'deleteGroup']);
$routes->get('add', 'Group::add', ['as' => 'newGroup']);
$routes->post('add', 'Group::add', ['as' => 'createGroup']);
});
/* Series Factura */
$routes->group('series-facturas', ['namespace' => 'App\Controllers\Configuracion'], function ($routes) {
$routes->get('', 'SeriesFacturas::index', ['as' => 'seriesFacturasList']);
$routes->match(['get', 'post'], 'add', 'SeriesFacturas::add', ['as' => 'seriesFacturasAdd']);
$routes->match(['get', 'post'], 'edit/(:num)', 'SeriesFacturas::edit/$1', ['as' => 'seriesFacturasEdit']);
$routes->get('delete/(:num)', 'SeriesFacturas::delete/$1', ['as' => 'seriesFacturasDelete']);
$routes->post('datatable', 'SeriesFacturas::datatable', ['as' => 'seriesFacturasDT']);
$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']);
$routes->post('edit/(:num)', 'ConfigVariables::updateVariable/$1', ['as' => 'updateVariable']);
$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']);
$routes->get('get/(:num)', 'ConfigErrores::get_error_presupuesto/$1', ['as' => 'erroresPresupuestoGetErrorPresupuesto']);
$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']);
$routes->delete('(:num)', 'MaquinaTarea::delete/$1', ['as' => 'maquinaTareaDelete']);
$routes->post('', 'MaquinaTarea::store/$1', ['as' => 'maquinaTareaStore']);
$routes->post('update/(:num)', 'MaquinaTarea::update_servicio_cliente/$1', ['as' => 'maquinaTareaUpdate']);
$routes->get('edit/(:num)', 'MaquinaTarea::viewForm/$1', ['as' => 'maquinaTareaViewForm']);
$routes->get('datatable', 'MaquinaTarea::datatable', ['as' => 'maquinaTareaDatatable']);
});
$routes->group("messages", ["namespace" => 'App\Controllers\Chat'], function ($routes) {
$routes->get('', 'ChatController::config_view', ['as' => 'configMessagesIndex']);
});
});
$routes->group('users', ['namespace' => 'App\Controllers\Configuracion'], function ($routes) { $routes->group('users', ['namespace' => 'App\Controllers\Configuracion'], function ($routes) {
@ -269,40 +158,6 @@ $routes->group('imposiciones', ['namespace' => 'App\Controllers\Configuracion'],
}); });
$routes->resource('imposiciones', ['namespace' => 'App\Controllers\Configuracion', 'controller' => 'Imposiciones', 'except' => 'show,new,create,update']); $routes->resource('imposiciones', ['namespace' => 'App\Controllers\Configuracion', 'controller' => 'Imposiciones', 'except' => 'show,new,create,update']);
$routes->group('papelesgenericos', ['namespace' => 'App\Controllers\Configuracion'], function ($routes) {
$routes->get('', 'Papelesgenericos::index', ['as' => 'papelGenericoList']);
$routes->delete('', 'Papelesgenericos::index', ['as' => 'papelGenericoList2']);
$routes->get('add', 'Papelesgenericos::add', ['as' => 'newPapelGenerico']);
$routes->post('add', 'Papelesgenericos::add', ['as' => 'createPapelGenerico']);
$routes->post('create', 'Papelesgenericos::create', ['as' => 'ajaxCreatePapelGenerico']);
$routes->put('(:num)/update', 'Papelesgenericos::update/$1', ['as' => 'ajaxUpdatePapelGenerico']);
$routes->post('edit/(:num)', 'Papelesgenericos::edit/$1', ['as' => 'updatePapelGenerico']);
$routes->post('datatable', 'Papelesgenericos::datatable', ['as' => 'dataTableOfPapelesGenericos']);
$routes->post('allmenuitems', 'Papelesgenericos::allItemsSelect', ['as' => 'select2ItemsOfPapelesGenericos']);
$routes->post('menuitems', 'Papelesgenericos::menuItems', ['as' => 'menuItemsOfPapelesGenericos']);
$routes->get('getpapelcliente', 'Papelesgenericos::getPapelCliente', ['as' => 'getPapelCliente']);
$routes->get('selectpapelespecial', 'Papelesgenericos::selectPapelEspecial', ['as' => 'selectPapelEspecial']);
});
$routes->resource('papelesgenericos', ['namespace' => 'App\Controllers\Configuracion', 'controller' => 'Papelesgenericos', 'except' => 'show,new,create,update']);
$routes->group('papelesimpresion', ['namespace' => 'App\Controllers\Configuracion'], function ($routes) {
$routes->get('', 'Papelesimpresion::index', ['as' => 'papelImpresionList']);
$routes->get('add', 'Papelesimpresion::add', ['as' => 'newPapelImpresion']);
$routes->post('add', 'Papelesimpresion::add', ['as' => 'createPapelImpresion']);
$routes->post('create', 'Papelesimpresion::create', ['as' => 'ajaxCreatePapelImpresion']);
$routes->put('(:num)/update', 'Papelesimpresion::update/$1', ['as' => 'ajaxUpdatePapelImpresion']);
$routes->post('edit/(:num)', 'Papelesimpresion::edit/$1', ['as' => 'updatePapelImpresion']);
$routes->post('datatable', 'Papelesimpresion::datatable', ['as' => 'dataTableOfPapelesImpresion']);
$routes->post('allmenuitems', 'Papelesimpresion::allItemsSelect', ['as' => 'select2ItemsOfPapelesImpresion']);
$routes->post('menuitems', 'Papelesimpresion::menuItems', ['as' => 'menuItemsOfPapelesImpresion']);
$routes->post('duplicate/(:num)', 'Papelesimpresion::duplicate/$1', ['as' => 'duplicatePapelImpresion']);
$routes->get('select', 'Papelesimpresion::papel_impresion_select', ['as' => 'papelImpresionSelect']);
$routes->get('show/(:num)', 'Papelesimpresion::papel_impresion_find/$1', ['as' => 'showPapelImpresion']);
});
$routes->resource('papelesimpresion', ['namespace' => 'App\Controllers\Configuracion', 'controller' => 'Papelesimpresion', 'except' => 'show,new,create,update']);
$routes->group('papelimpresiontipologias', ['namespace' => 'App\Controllers\Configuracion'], function ($routes) { $routes->group('papelimpresiontipologias', ['namespace' => 'App\Controllers\Configuracion'], function ($routes) {
$routes->get('add', 'Papelimpresiontipologias::add', ['as' => 'newPapelImpresionTipologia']); $routes->get('add', 'Papelimpresiontipologias::add', ['as' => 'newPapelImpresionTipologia']);
$routes->post('add', 'Papelimpresiontipologias::add', ['as' => 'createPapelImpresionTipologia']); $routes->post('add', 'Papelimpresiontipologias::add', ['as' => 'createPapelImpresionTipologia']);
@ -320,25 +175,6 @@ $routes->group('papelesimpresionmargenes', ['namespace' => 'App\Controllers\Conf
}); });
$routes->resource('papelesimpresionmargenes', ['namespace' => 'App\Controllers\Configuracion', 'controller' => 'Papelimpresionmargenes', 'except' => 'show,new,create,update']); $routes->resource('papelesimpresionmargenes', ['namespace' => 'App\Controllers\Configuracion', 'controller' => 'Papelimpresionmargenes', 'except' => 'show,new,create,update']);
$routes->group('maquinas', ['namespace' => 'App\Controllers\Configuracion'], function ($routes) {
$routes->get('', 'Maquinas::index', ['as' => 'maquinaList']);
$routes->get('add', 'Maquinas::add', ['as' => 'newMaquina']);
$routes->get('edit/(:num)', 'Maquinas::edit/$1');
$routes->get('delete/(:num)', 'Maquinas::delete/$1');
$routes->post('add', 'Maquinas::add', ['as' => 'createMaquina']);
$routes->post('create', 'Maquinas::create', ['as' => 'ajaxCreateMaquina']);
$routes->put('update/(:num)', 'Maquinas::update/$1', ['as' => 'ajaxUpdateMaquina']);
$routes->post('edit/(:num)', 'Maquinas::edit/$1', ['as' => 'updateMaquina']);
$routes->post('datatable', 'Maquinas::datatable', ['as' => 'dataTableOfMaquinas']);
$routes->post('allmenuitems', 'Maquinas::allItemsSelect', ['as' => 'select2ItemsOfMaquinas']);
$routes->post('menuitems', 'Maquinas::menuItems', ['as' => 'menuItemsOfMaquinas']);
$routes->post('duplicate/(:num)', 'Maquinas::duplicate/$1', ['as' => 'duplicateMaquina']);
$routes->get('(:num)', 'Maquinas::find_maquina/$1', ['as' => 'findMaquina']);
$routes->get('select', 'Maquinas::select', ['as' => 'selectMaquinas']);
});
$routes->resource('maquinas', ['namespace' => 'App\Controllers\Configuracion', 'controller' => 'Maquinas', 'except' => 'show,new,create,update']);
$routes->group('maquinastarifasimpresion', ['namespace' => 'App\Controllers\Configuracion'], function ($routes) { $routes->group('maquinastarifasimpresion', ['namespace' => 'App\Controllers\Configuracion'], function ($routes) {
$routes->get('', 'Maquinastarifasimpresion::index', ['as' => 'maquinasTarifaImpresionList']); $routes->get('', 'Maquinastarifasimpresion::index', ['as' => 'maquinasTarifaImpresionList']);
$routes->get('add', 'Maquinastarifasimpresion::add', ['as' => 'newMaquinasTarifaImpresion']); $routes->get('add', 'Maquinastarifasimpresion::add', ['as' => 'newMaquinasTarifaImpresion']);
@ -372,24 +208,11 @@ $routes->group('maquinaspapelesimpresion', ['namespace' => 'App\Controllers\Conf
$routes->resource('maquinastarifasimpresion', ['namespace' => 'App\Controllers\Configuracion', 'controller' => 'Maquinastarifasimpresion', 'except' => 'show,new,create,update']); $routes->resource('maquinastarifasimpresion', ['namespace' => 'App\Controllers\Configuracion', 'controller' => 'Maquinastarifasimpresion', 'except' => 'show,new,create,update']);
$routes->group('maquinasdefecto', ['namespace' => 'App\Controllers\Configuracion'], function ($routes) {
$routes->get('', 'Maquinasdefecto::index', ['as' => 'maquinaPorDefectoList']);
$routes->get('add', 'Maquinasdefecto::add', ['as' => 'newMaquinaPorDefecto']);
$routes->post('add', 'Maquinasdefecto::add', ['as' => 'createMaquinaPorDefecto']);
$routes->post('create', 'Maquinasdefecto::create', ['as' => 'ajaxCreateMaquinaPorDefecto']);
$routes->put('(:num)/update', 'Maquinasdefecto::update/$1', ['as' => 'ajaxUpdateMaquinaPorDefecto']);
$routes->post('edit/(:num)', 'Maquinasdefecto::edit/$1', ['as' => 'updateMaquinaPorDefecto']);
$routes->post('datatable', 'Maquinasdefecto::datatable', ['as' => 'dataTableOfMaquinasPorDefecto']);
$routes->post('allmenuitems', 'Maquinasdefecto::allItemsSelect', ['as' => 'select2ItemsOfMaquinasPorDefecto']);
$routes->post('menuitems', 'Maquinasdefecto::menuItems', ['as' => 'menuItemsOfMaquinasPorDefecto']);
});
$routes->resource('maquinasdefecto', ['namespace' => 'App\Controllers\Configuracion', 'controller' => 'Maquinasdefecto', 'except' => 'show,new,create,update']);
$routes->group('profile', ['namespace' => 'App\Controllers'], function ($routes) { $routes->group('profile', ['namespace' => 'App\Controllers'], function ($routes) {
$routes->get('', 'Profile::index', ['as' => 'profileList']); $routes->get('', 'Profile::index', ['as' => 'profileList']);
$routes->get('index', 'Profile::index', ['as' => 'profileIndex']); $routes->get('index', 'Profile::index', ['as' => 'profileIndex']);
$routes->get('list', 'Profile::index', ['as' => 'profileList2']); $routes->get('list', 'Profile::index', ['as' => 'profileList2']);
$routes->match(['get', 'post'], 'store', 'Profile::store', ['as' => 'profileStore']);
}); });
@ -419,21 +242,6 @@ $routes->group('formas-pago', ['namespace' => 'App\Controllers\Configuracion'],
$routes->resource('formas-pago', ['namespace' => 'App\Controllers\Configuracion', 'controller' => 'FormasPago', 'except' => 'show,new,create,update']); $routes->resource('formas-pago', ['namespace' => 'App\Controllers\Configuracion', 'controller' => 'FormasPago', 'except' => 'show,new,create,update']);
$routes->group('paises', ['namespace' => 'App\Controllers\Configuracion'], function ($routes) {
$routes->get('', 'Paises::index', ['as' => 'paisList']);
$routes->get('add', 'Paises::add', ['as' => 'newPais']);
$routes->post('add', 'Paises::add', ['as' => 'createPais']);
$routes->post('create', 'Paises::create', ['as' => 'ajaxCreatePais']);
$routes->put('(:num)/update', 'Paises::update/$1', ['as' => 'ajaxUpdatePais']);
$routes->post('(:num)/edit', 'Paises::edit/$1', ['as' => 'updatePais']);
$routes->post('datatable', 'Paises::datatable', ['as' => 'dataTableOfPaises']);
$routes->post('allmenuitems', 'Paises::allItemsSelect', ['as' => 'select2ItemsOfPaises']);
$routes->post('menuitems', 'Paises::menuItems', ['as' => 'menuItemsOfPaises']);
$routes->get('menuitems2', 'Paises::menuItems2', ['as' => 'menuItemsOfPaises2']);
});
$routes->resource('paises', ['namespace' => 'App\Controllers\Configuracion', 'controller' => 'Paises', 'except' => 'show,new,create,update']);
$routes->group('provincias', ['namespace' => 'App\Controllers\Configuracion'], function ($routes) { $routes->group('provincias', ['namespace' => 'App\Controllers\Configuracion'], function ($routes) {
$routes->get('', 'Provincias::index', ['as' => 'provinciaList']); $routes->get('', 'Provincias::index', ['as' => 'provinciaList']);
$routes->get('add', 'Provincias::add', ['as' => 'newProvincia']); $routes->get('add', 'Provincias::add', ['as' => 'newProvincia']);
@ -594,28 +402,8 @@ $routes->group('tarifasenvioszonas', ['namespace' => 'App\Controllers\Tarifas'],
}); });
$routes->resource('tarifasenvioszonas', ['namespace' => 'App\Controllers\Tarifas', 'controller' => 'Tarifasenvioszonas', 'except' => 'show,new,create,update']); $routes->resource('tarifasenvioszonas', ['namespace' => 'App\Controllers\Tarifas', 'controller' => 'Tarifasenvioszonas', 'except' => 'show,new,create,update']);
/* Compras */
$routes->group('compras', ['namespace' => 'App\Controllers\Compras'], function ($routes) {
$routes->group('proveedores', ['namespace' => 'App\Controllers\Compras'], function ($routes) {
$routes->get('', 'Proveedores::index', ['as' => 'proveedorList']);
$routes->get('add', 'Proveedores::add', ['as' => 'newProveedor']);
$routes->post('add', 'Proveedores::add', ['as' => 'createProveedor']);
$routes->post('create', 'Proveedores::create', ['as' => 'ajaxCreateProveedor']);
$routes->put('(:num)/update', 'Proveedores::update/$1', ['as' => 'ajaxUpdateProveedor']);
$routes->get('edit/(:num)', 'Proveedores::edit/$1', ['as' => 'editProveedor']);
$routes->post('edit/(:num)', 'Proveedores::edit/$1', ['as' => 'updateProveedor']);
$routes->post('datatable', 'Proveedores::datatable', ['as' => 'dataTableOfProveedores']);
$routes->get('delete/(:num)', 'Proveedores::delete/$1', ['as' => 'deleteProveedores']);
$routes->post('allmenuitems', 'Proveedores::allItemsSelect', ['as' => 'select2ItemsOfProveedores']);
$routes->post('menuitems', 'Proveedores::menuItems', ['as' => 'menuItemsOfProveedores']);
});
});
$routes->resource('proveedores', ['namespace' => 'App\Controllers\Compras', 'controller' => 'Proveedores', 'except' => 'show,new,create,update']);
$routes->group('proveedorestipos', ['namespace' => 'App\Controllers\Compras'], function ($routes) {
$routes->post('menuitems', 'ProveedoresTipos::menuItems', ['as' => 'menuItemsOfProveedoresTipos']);
});
$routes->resource('proveedorestipos', ['namespace' => 'App\Controllers\Compras', 'controller' => 'ProveedoresTipos', 'except' => 'show,new,create,update']); $routes->resource('proveedorestipos', ['namespace' => 'App\Controllers\Compras', 'controller' => 'ProveedoresTipos', 'except' => 'show,new,create,update']);
@ -644,64 +432,6 @@ $routes->group('clientedirecciones', ['namespace' => 'App\Controllers\Clientes']
$routes->resource('clientedirecciones', ['namespace' => 'App\Controllers\Clientes', 'controller' => 'Clientedirecciones', 'except' => 'show,new,create,update']); $routes->resource('clientedirecciones', ['namespace' => 'App\Controllers\Clientes', 'controller' => 'Clientedirecciones', 'except' => 'show,new,create,update']);
$routes->group('presupuestoadmin', ['namespace' => 'App\Controllers\Presupuestos'], function ($routes) {
$routes->get('list/(:num)', 'Presupuestoadmin::list/$1', ['as' => 'presupuestoAdminList']); // HOMOGENIZAR CON ARGS DINAMICOS!!!
$routes->get('add/(:num)', 'Presupuestoadmin::add/$1', ['as' => 'newPresupuestoAdmin']);
$routes->get('edit/(:any)', 'Presupuestoadmin::edit/$1', ['as' => 'editarPresupuestoAdmin']);
$routes->post('add/(:num)', 'Presupuestoadmin::add/$1', ['as' => 'createPresupuestoAdmin']);
$routes->post('create', 'Presupuestoadmin::create', ['as' => 'ajaxCreatePresupuestoAdmin']);
$routes->put('(:num)/update', 'Presupuestoadmin::update/$1', ['as' => 'ajaxUpdatePresupuestoAdmin']);
$routes->post('edit/(:num)', 'Presupuestoadmin::edit/$1', ['as' => 'updatePresupuestoAdmin']);
$routes->post('datatable', 'Presupuestoadmin::datatable', ['as' => 'dataTableOfPresupuestoAdmin']);
$routes->post('datatable_2', 'Presupuestoadmin::datatable_2', ['as' => 'updateDataOfPresupuestoAdmin']);
$routes->post('allmenuitems', 'Presupuestoadmin::allItemsSelect', ['as' => 'select2ItemsOfPresupuestoAdmin']);
$routes->post('menuitems', 'Presupuestoadmin::menuItems', ['as' => 'menuItemsOfPresupuestoAdmin']);
$routes->get('cargar/(:any)', 'Presupuestoadmin::cargar/$1');
$routes->post('comparadorinterior', 'Presupuestoadmin::obtenerComparadorInterior');
$routes->post('comparadorexteriores', 'Presupuestoadmin::obtenerComparadorExteriores');
$routes->post('comparadorguardas', 'Presupuestoadmin::obtenerComparadorGuardas');
$routes->get('papelgenerico', 'Presupuestoadmin::getPapelGenerico');
$routes->get('papelgramaje', 'Presupuestoadmin::getGramaje');
$routes->get('papelimpresion', 'Presupuestoadmin::getPapelImpresion');
$routes->get('maquinas', 'Presupuestoadmin::getMaquinas');
$routes->post('getlinea', 'Presupuestoadmin::getLineaPresupuesto');
$routes->post('clone', 'Presupuestoadmin::datatable_2');
$routes->get('presupuestosCliente', 'Presupuestoadmin::tablaClienteForm');
$routes->get('getSumCliente/(:num)', 'Presupuestoadmin::obtenerTotalPresupuestosCliente/$1');
});
$routes->resource('presupuestoadmin', ['namespace' => 'App\Controllers\Presupuestos', 'controller' => 'Presupuestoadmin', 'except' => 'show,new,create,update']);
$routes->group('presupuestocliente', ['namespace' => 'App\Controllers\Presupuestos'], function ($routes) {
$routes->get('list', 'Presupuestocliente::list', ['as' => 'listaPresupuestos']);
$routes->post('datatable', 'Presupuestocliente::datatable', ['as' => 'datatableOfPresupuestos']);
$routes->get('add', 'Presupuestocliente::add', ['as' => 'nuevoPresupuestoCliente']);
$routes->post('add', 'Presupuestocliente::add', ['as' => 'crearPresupuestoCliente']);
$routes->post('edit/(:num)', 'Presupuestocliente::edit/$1', ['as' => 'editarPresupuestoCliente']);
$routes->get('edit/(:any)', 'Presupuestocliente::edit/$1', ['as' => 'editarPresupuestoCliente2']);
$routes->post('getgramaje', 'Presupuestocliente::getGramaje', ['as' => 'obtenerGramaje']);
$routes->post('presupuesto', 'Presupuestocliente::presupuesto', ['as' => 'presupuestoCliente']);
$routes->post('getDireccionesCliente', 'Presupuestocliente::getDireccionesCliente', ['as' => 'getDirecciones']);
$routes->post('getNuevaDireccion', 'Presupuestocliente::getNuevaDireccion', ['as' => 'nuevaDireccion']);
$routes->post('guardar', 'Presupuestocliente::guardar', ['as' => 'guardar']);
$routes->get('cargar/(:num)', 'Presupuestocliente::cargar/$1', ['as' => 'cargarPresupuesto']);
$routes->post('duplicarPresupuesto', 'Presupuestocliente::duplicarPresupuesto', ['as' => 'duplicarPresupuesto']);
$routes->post('calcular', 'Presupuestocliente::calcular', ['as' => 'calcularPresupuesto']);
$routes->post('calcularsolapas', 'Presupuestocliente::calcularMaxSolapas', ['as' => 'calcularSolapas']);
$routes->post('checklomo', 'Presupuestocliente::check_lomo_interior');
});
$routes->resource('presupuestocliente', ['namespace' => 'App\Controllers\Presupuestos', 'controller' => 'Presupuestocliente', 'except' => 'show,new,create,update']);
$routes->group('importador', ['namespace' => 'App\Controllers\Presupuestos'], function ($routes) {
$routes->get('', 'Importadorpresupuestos::index', ['as' => 'importadorPresupuestos']);
$routes->get('clientlist', 'Importadorpresupuestos::getClientList', ['as' => 'clientList']);
$routes->get('presupuestoslist', 'Importadorpresupuestos::getPresupuestosList', ['as' => 'presupuestosList']);
$routes->get('getencuadernacion', 'Importadorpresupuestos::getEncuadernacionList');
$routes->get('getpresupuestodata', 'Importadorpresupuestos::getPresupuesto', ['as' => 'getPresupuesto']);
$routes->post('importar', 'Importadorpresupuestos::importarPresupuesto');
});
$routes->resource('presupuestocliente', ['namespace' => 'App\Controllers\Presupuestos', 'controller' => 'Presupuestocliente', 'except' => 'show,new,create,update']);
$routes->group('serviciosacabados', ['namespace' => 'App\Controllers\Presupuestos'], function ($routes) { $routes->group('serviciosacabados', ['namespace' => 'App\Controllers\Presupuestos'], function ($routes) {
$routes->get('getacabados', 'Presupuestoacabados::getAcabados'); $routes->get('getacabados', 'Presupuestoacabados::getAcabados');
@ -1042,31 +772,6 @@ $routes->group('logistica', ['namespace' => 'App\Controllers\Logistica'], functi
$routes->get('print/label/test', 'LogisticaController::print_test_label'); $routes->get('print/label/test', 'LogisticaController::print_test_label');
}); });
/*
* --------------------------------------------------------------------
* APIs Route Definitions
* --------------------------------------------------------------------
*/
$routes->post('auth/jwt', '\App\Controllers\Sistema\AuthAPIController::jwtLogin');
$routes->group(
'api',
[
'namespace' => 'App\Controllers\API',
'filter' => 'jwt'
],
static function ($routes) {
$routes->resource('items', [
'controller' => 'ItemsController',
'filter' => 'cors'
]);
$routes->post("calcular", 'ImprimelibrosApi::calcular');
$routes->post("guardar", 'ImprimelibrosApi::guardar');
// ...
}
);
/* /*
* -------------------------------------------------------------------- * --------------------------------------------------------------------

View File

@ -0,0 +1,27 @@
<?php
use CodeIgniter\Router\RouteCollection;
/** @var RouteCollection $routes */
/*
* --------------------------------------------------------------------
* APIs Route Definitions
* --------------------------------------------------------------------
*/
$routes->post('auth/jwt', '\App\Controllers\Sistema\AuthAPIController::jwtLogin');
$routes->group(
'api',
[
'namespace' => 'App\Controllers\API',
'filter' => 'jwt'
],
static function ($routes) {
$routes->post("calcular", 'ImprimelibrosApi::calcular');
$routes->post("guardar", 'ImprimelibrosApi::guardar');
// ...
}
);

View File

@ -0,0 +1,27 @@
<?php
use CodeIgniter\Router\RouteCollection;
/** @var RouteCollection $routes */
/* Compras */
$routes->group('compras', ['namespace' => 'App\Controllers\Compras'], function ($routes) {
$routes->group('proveedores', ['namespace' => 'App\Controllers\Compras'], function ($routes) {
$routes->get('', 'Proveedores::index', ['as' => 'proveedorList']);
$routes->get('add', 'Proveedores::add', ['as' => 'newProveedor']);
$routes->post('add', 'Proveedores::add', ['as' => 'createProveedor']);
$routes->post('create', 'Proveedores::create', ['as' => 'ajaxCreateProveedor']);
$routes->put('(:num)/update', 'Proveedores::update/$1', ['as' => 'ajaxUpdateProveedor']);
$routes->get('edit/(:num)', 'Proveedores::edit/$1', ['as' => 'editProveedor']);
$routes->post('edit/(:num)', 'Proveedores::edit/$1', ['as' => 'updateProveedor']);
$routes->post('datatable', 'Proveedores::datatable', ['as' => 'dataTableOfProveedores']);
$routes->get('delete/(:num)', 'Proveedores::delete/$1', ['as' => 'deleteProveedores']);
$routes->post('allmenuitems', 'Proveedores::allItemsSelect', ['as' => 'select2ItemsOfProveedores']);
$routes->post('menuitems', 'Proveedores::menuItems', ['as' => 'menuItemsOfProveedores']);
});
});
$routes->group('proveedorestipos', ['namespace' => 'App\Controllers\Compras'], function ($routes) {
$routes->post('menuitems', 'ProveedoresTipos::menuItems', ['as' => 'menuItemsOfProveedoresTipos']);
});

View File

@ -0,0 +1,153 @@
<?php
use CodeIgniter\Router\RouteCollection;
/** @var RouteCollection $routes */
/* Rutas para configuraciones */
$routes->group('configuracion', ['namespace' => 'App\Controllers\Configuracion'], function ($routes) {
/* Paises */
$routes->group('paises', ['namespace' => 'App\Controllers\Configuracion'], function ($routes) {
$routes->get('', 'Paises::index', ['as' => 'paisList']);
$routes->get('add', 'Paises::add', ['as' => 'newPais']);
$routes->post('add', 'Paises::add', ['as' => 'createPais']);
$routes->get('delete/(:num)', 'Paises::delete/$1');
$routes->post('create', 'Paises::create', ['as' => 'ajaxCreatePais']);
$routes->put('update/(:num)', 'Paises::update/$1', ['as' => 'ajaxUpdatePais']);
$routes->match(['get', 'post'], 'edit/(:num)', 'Paises::edit/$1', ['as' => 'updatePais']);
$routes->get('datatable', 'Paises::datatable', ['as' => 'dataTableOfPaises']);
$routes->post('allmenuitems', 'Paises::allItemsSelect', ['as' => 'select2ItemsOfPaises']);
$routes->post('menuitems', 'Paises::menuItems', ['as' => 'menuItemsOfPaises']);
$routes->get('menuitems2', 'Paises::menuItems2', ['as' => 'menuItemsOfPaises2']);
});
/* Papeles genericos */
$routes->group('papelesgenericos', ['namespace' => 'App\Controllers\Configuracion'], function ($routes) {
$routes->get('', 'Papelesgenericos::index', ['as' => 'papelGenericoList']);
$routes->delete('', 'Papelesgenericos::index', ['as' => 'papelGenericoList2']);
$routes->get('add', 'Papelesgenericos::add', ['as' => 'newPapelGenerico']);
$routes->post('add', 'Papelesgenericos::add', ['as' => 'createPapelGenerico']);
$routes->post('create', 'Papelesgenericos::create', ['as' => 'ajaxCreatePapelGenerico']);
$routes->put('(:num)/update', 'Papelesgenericos::update/$1', ['as' => 'ajaxUpdatePapelGenerico']);
$routes->match(['get', 'post'], 'edit/(:num)', 'Papelesgenericos::edit/$1', ['as' => 'updatePapelGenerico']);
$routes->post('datatable', 'Papelesgenericos::datatable', ['as' => 'dataTableOfPapelesGenericos']);
$routes->post('allmenuitems', 'Papelesgenericos::allItemsSelect', ['as' => 'select2ItemsOfPapelesGenericos']);
$routes->post('menuitems', 'Papelesgenericos::menuItems', ['as' => 'menuItemsOfPapelesGenericos']);
$routes->get('getpapelcliente', 'Papelesgenericos::getPapelCliente', ['as' => 'getPapelCliente']);
$routes->get('selectpapelespecial', 'Papelesgenericos::selectPapelEspecial', ['as' => 'selectPapelEspecial']);
});
/* Papeles impresion */
$routes->group('papelesimpresion', ['namespace' => 'App\Controllers\Configuracion'], function ($routes) {
$routes->get('', 'Papelesimpresion::index', ['as' => 'papelImpresionList']);
$routes->get('add', 'Papelesimpresion::add', ['as' => 'newPapelImpresion']);
$routes->post('add', 'Papelesimpresion::add', ['as' => 'createPapelImpresion']);
$routes->post('create', 'Papelesimpresion::create', ['as' => 'ajaxCreatePapelImpresion']);
$routes->put('(:num)/update', 'Papelesimpresion::update/$1', ['as' => 'ajaxUpdatePapelImpresion']);
$routes->match(['get', 'post'], 'edit/(:num)', 'Papelesimpresion::edit/$1', ['as' => 'updatePapelImpresion']);
$routes->post('datatable', 'Papelesimpresion::datatable', ['as' => 'dataTableOfPapelesImpresion']);
$routes->post('allmenuitems', 'Papelesimpresion::allItemsSelect', ['as' => 'select2ItemsOfPapelesImpresion']);
$routes->post('menuitems', 'Papelesimpresion::menuItems', ['as' => 'menuItemsOfPapelesImpresion']);
$routes->post('duplicate/(:num)', 'Papelesimpresion::duplicate/$1', ['as' => 'duplicatePapelImpresion']);
$routes->get('select', 'Papelesimpresion::papel_impresion_select', ['as' => 'papelImpresionSelect']);
$routes->get('show/(:num)', 'Papelesimpresion::papel_impresion_find/$1', ['as' => 'showPapelImpresion']);
});
/* Maquinas */
$routes->group('maquinas', ['namespace' => 'App\Controllers\Configuracion'], function ($routes) {
$routes->get('', 'Maquinas::index', ['as' => 'maquinaList']);
$routes->get('add', 'Maquinas::add', ['as' => 'newMaquina']);
$routes->get('edit/(:num)', 'Maquinas::edit/$1');
$routes->get('delete/(:num)', 'Maquinas::delete/$1');
$routes->post('add', 'Maquinas::add', ['as' => 'createMaquina']);
$routes->post('create', 'Maquinas::create', ['as' => 'ajaxCreateMaquina']);
$routes->put('update/(:num)', 'Maquinas::update/$1', ['as' => 'ajaxUpdateMaquina']);
$routes->match(['get', 'post'], 'edit/(:num)', 'Maquinas::edit/$1', ['as' => 'updateMaquina']);
$routes->post('datatable', 'Maquinas::datatable', ['as' => 'dataTableOfMaquinas']);
$routes->post('allmenuitems', 'Maquinas::allItemsSelect', ['as' => 'select2ItemsOfMaquinas']);
$routes->post('menuitems', 'Maquinas::menuItems', ['as' => 'menuItemsOfMaquinas']);
$routes->post('duplicate/(:num)', 'Maquinas::duplicate/$1', ['as' => 'duplicateMaquina']);
$routes->get('(:num)', 'Maquinas::find_maquina/$1', ['as' => 'findMaquina']);
$routes->get('select', 'Maquinas::select', ['as' => 'selectMaquinas']);
});
/* Maquinas por defecto */
$routes->group('maquinasdefecto', ['namespace' => 'App\Controllers\Configuracion'], function ($routes) {
$routes->get('', 'Maquinasdefecto::index', ['as' => 'maquinaPorDefectoList']);
$routes->get('add', 'Maquinasdefecto::add', ['as' => 'newMaquinaPorDefecto']);
$routes->post('add', 'Maquinasdefecto::add', ['as' => 'createMaquinaPorDefecto']);
$routes->post('create', 'Maquinasdefecto::create', ['as' => 'ajaxCreateMaquinaPorDefecto']);
$routes->put('(:num)/update', 'Maquinasdefecto::update/$1', ['as' => 'ajaxUpdateMaquinaPorDefecto']);
$routes->match(['get', 'post'], 'edit/(:num)', 'Maquinasdefecto::edit/$1', ['as' => 'updateMaquinaPorDefecto']);
$routes->post('datatable', 'Maquinasdefecto::datatable', ['as' => 'dataTableOfMaquinasPorDefecto']);
$routes->post('allmenuitems', 'Maquinasdefecto::allItemsSelect', ['as' => 'select2ItemsOfMaquinasPorDefecto']);
$routes->post('menuitems', 'Maquinasdefecto::menuItems', ['as' => 'menuItemsOfMaquinasPorDefecto']);
});
/* Ubicaciones */
$routes->group('ubicaciones', ['namespace' => 'App\Controllers\Configuracion'], function ($routes) {
$routes->get('', 'Ubicaciones::index', ['as' => 'ubicacionesList']);
$routes->match(['get', 'post'], 'add', 'Ubicaciones::add', ['as' => 'ubicacionesAdd']);
$routes->match(['get', 'post'], 'edit/(:num)', 'Ubicaciones::edit/$1', ['as' => 'ubicacionesEdit']);
$routes->get('delete/(:num)', 'Ubicaciones::delete/$1', ['as' => 'ubicacionesDelete']);
$routes->post('datatable', 'Ubicaciones::datatable', ['as' => 'ubicacionesDT']);
});
/* Permisos y roles */
$routes->group('group', ['namespace' => 'App\Controllers\Configuracion'], function ($routes) {
$routes->get('', 'Group::index', ['as' => 'userGroupList']);
$routes->get('index', 'Group::index', ['as' => 'groupIndex']);
$routes->post('edit/(:num)', 'Group::edit/$1', ['as' => 'updateGroup']);
$routes->get('edit/(:num)', 'Group::edit/$1', ['as' => 'editGroup']);
$routes->get('delete/(:num)', 'Group::delete/$1', ['as' => 'deleteGroup']);
$routes->get('add', 'Group::add', ['as' => 'newGroup']);
$routes->post('add', 'Group::add', ['as' => 'createGroup']);
});
/* Series Factura */
$routes->group('series-facturas', ['namespace' => 'App\Controllers\Configuracion'], function ($routes) {
$routes->get('', 'SeriesFacturas::index', ['as' => 'seriesFacturasList']);
$routes->match(['get', 'post'], 'add', 'SeriesFacturas::add', ['as' => 'seriesFacturasAdd']);
$routes->match(['get', 'post'], 'edit/(:num)', 'SeriesFacturas::edit/$1', ['as' => 'seriesFacturasEdit']);
$routes->get('delete/(:num)', 'SeriesFacturas::delete/$1', ['as' => 'seriesFacturasDelete']);
$routes->post('datatable', 'SeriesFacturas::datatable', ['as' => 'seriesFacturasDT']);
$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']);
$routes->post('edit/(:num)', 'ConfigVariables::updateVariable/$1', ['as' => 'updateVariable']);
$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']);
$routes->get('get/(:num)', 'ConfigErrores::get_error_presupuesto/$1', ['as' => 'erroresPresupuestoGetErrorPresupuesto']);
$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']);
$routes->delete('(:num)', 'MaquinaTarea::delete/$1', ['as' => 'maquinaTareaDelete']);
$routes->post('', 'MaquinaTarea::store/$1', ['as' => 'maquinaTareaStore']);
$routes->post('update/(:num)', 'MaquinaTarea::update_servicio_cliente/$1', ['as' => 'maquinaTareaUpdate']);
$routes->get('edit/(:num)', 'MaquinaTarea::viewForm/$1', ['as' => 'maquinaTareaViewForm']);
$routes->get('datatable', 'MaquinaTarea::datatable', ['as' => 'maquinaTareaDatatable']);
});
$routes->group("messages", ["namespace" => 'App\Controllers\Chat'], function ($routes) {
$routes->get('', 'ChatController::config_view', ['as' => 'configMessagesIndex']);
});
});

View File

@ -0,0 +1,64 @@
<?php
use CodeIgniter\Router\RouteCollection;
/** @var RouteCollection $routes */
$routes->group('presupuestoadmin', ['namespace' => 'App\Controllers\Presupuestos'], function ($routes) {
$routes->get('list/(:num)', 'Presupuestoadmin::list/$1', ['as' => 'presupuestoAdminList']); // HOMOGENIZAR CON ARGS DINAMICOS!!!
$routes->get('add/(:num)', 'Presupuestoadmin::add/$1', ['as' => 'newPresupuestoAdmin']);
$routes->get('edit/(:any)', 'Presupuestoadmin::edit/$1', ['as' => 'editarPresupuestoAdmin']);
$routes->post('add/(:num)', 'Presupuestoadmin::add/$1', ['as' => 'createPresupuestoAdmin']);
$routes->post('create', 'Presupuestoadmin::create', ['as' => 'ajaxCreatePresupuestoAdmin']);
$routes->put('(:num)/update', 'Presupuestoadmin::update/$1', ['as' => 'ajaxUpdatePresupuestoAdmin']);
$routes->post('edit/(:num)', 'Presupuestoadmin::edit/$1', ['as' => 'updatePresupuestoAdmin']);
$routes->post('datatable', 'Presupuestoadmin::datatable', ['as' => 'dataTableOfPresupuestoAdmin']);
$routes->post('datatable_2', 'Presupuestoadmin::datatable_2', ['as' => 'updateDataOfPresupuestoAdmin']);
$routes->post('allmenuitems', 'Presupuestoadmin::allItemsSelect', ['as' => 'select2ItemsOfPresupuestoAdmin']);
$routes->post('menuitems', 'Presupuestoadmin::menuItems', ['as' => 'menuItemsOfPresupuestoAdmin']);
$routes->get('cargar/(:any)', 'Presupuestoadmin::cargar/$1');
$routes->post('comparadorinterior', 'Presupuestoadmin::obtenerComparadorInterior');
$routes->post('comparadorexteriores', 'Presupuestoadmin::obtenerComparadorExteriores');
$routes->post('comparadorguardas', 'Presupuestoadmin::obtenerComparadorGuardas');
$routes->get('papelgenerico', 'Presupuestoadmin::getPapelGenerico');
$routes->get('papelgramaje', 'Presupuestoadmin::getGramaje');
$routes->get('papelimpresion', 'Presupuestoadmin::getPapelImpresion');
$routes->get('maquinas', 'Presupuestoadmin::getMaquinas');
$routes->post('getlinea', 'Presupuestoadmin::getLineaPresupuesto');
$routes->post('clone', 'Presupuestoadmin::datatable_2');
$routes->get('presupuestosCliente', 'Presupuestoadmin::tablaClienteForm');
$routes->get('getSumCliente/(:num)', 'Presupuestoadmin::obtenerTotalPresupuestosCliente/$1');
});
//$routes->resource('presupuestoadmin', ['namespace' => 'App\Controllers\Presupuestos', 'controller' => 'Presupuestoadmin', 'except' => 'show,new,create,update']);
$routes->group('presupuestocliente', ['namespace' => 'App\Controllers\Presupuestos'], function ($routes) {
$routes->get('list', 'Presupuestocliente::list', ['as' => 'listaPresupuestos']);
$routes->post('datatable', 'Presupuestocliente::datatable', ['as' => 'datatableOfPresupuestos']);
$routes->get('add', 'Presupuestocliente::add', ['as' => 'nuevoPresupuestoCliente']);
$routes->post('add', 'Presupuestocliente::add', ['as' => 'crearPresupuestoCliente']);
$routes->post('edit/(:num)', 'Presupuestocliente::edit/$1', ['as' => 'editarPresupuestoCliente']);
$routes->get('edit/(:any)', 'Presupuestocliente::edit/$1', ['as' => 'editarPresupuestoCliente2']);
$routes->post('getgramaje', 'Presupuestocliente::getGramaje', ['as' => 'obtenerGramaje']);
$routes->post('presupuesto', 'Presupuestocliente::presupuesto', ['as' => 'presupuestoCliente']);
$routes->post('getDireccionesCliente', 'Presupuestocliente::getDireccionesCliente', ['as' => 'getDirecciones']);
$routes->post('getNuevaDireccion', 'Presupuestocliente::getNuevaDireccion', ['as' => 'nuevaDireccion']);
$routes->post('guardar', 'Presupuestocliente::guardar', ['as' => 'guardar']);
$routes->get('cargar/(:num)', 'Presupuestocliente::cargar/$1', ['as' => 'cargarPresupuesto']);
$routes->post('duplicarPresupuesto', 'Presupuestocliente::duplicarPresupuesto', ['as' => 'duplicarPresupuesto']);
$routes->post('calcular', 'Presupuestocliente::calcular', ['as' => 'calcularPresupuesto']);
$routes->post('calcularsolapas', 'Presupuestocliente::calcularMaxSolapas', ['as' => 'calcularSolapas']);
$routes->post('checklomo', 'Presupuestocliente::check_lomo_interior');
});
//$routes->resource('presupuestocliente', ['namespace' => 'App\Controllers\Presupuestos', 'controller' => 'Presupuestocliente', 'except' => 'show,new,create,update']);
$routes->group('importador', ['namespace' => 'App\Controllers\Presupuestos'], function ($routes) {
$routes->get('', 'Importadorpresupuestos::index', ['as' => 'importadorPresupuestos']);
$routes->get('clientlist', 'Importadorpresupuestos::getClientList', ['as' => 'clientList']);
$routes->get('presupuestoslist', 'Importadorpresupuestos::getPresupuestosList', ['as' => 'presupuestosList']);
$routes->get('getencuadernacion', 'Importadorpresupuestos::getEncuadernacionList');
$routes->get('getpresupuestodata', 'Importadorpresupuestos::getPresupuesto', ['as' => 'getPresupuesto']);
$routes->post('importar', 'Importadorpresupuestos::importarPresupuesto');
});

View File

@ -0,0 +1,55 @@
<?php
use CodeIgniter\Router\RouteCollection;
/** @var RouteCollection $routes */
/* Rutas para tarifas */
$routes->group('tarifas', ['namespace' => 'App\Controllers\Tarifas'], function ($routes) {
/* Maquinas */
$routes->group('maquinas', ['namespace' => 'App\Controllers\Tarifas\Maquinas'], function ($routes) {
$routes->post('acabado', 'TarifaMaquinas::add_tarifa_acabado_maquina_with_tarea');
$routes->post('manipulado', 'TarifaMaquinas::add_tarifa_manipulado_maquina_with_tarea');
$routes->post('preimpresion', 'TarifaMaquinas::add_tarifa_preimpresion_maquina_with_tarea');
$routes->post('encuadernacion', 'TarifaMaquinas::add_tarifa_encuadernacion_maquina_with_tarea');
$routes->post('extra', 'TarifaMaquinas::add_tarifa_extra_maquina_with_tarea');
$routes->delete('acabado/(:num)', 'TarifaMaquinas::delete_tarifa_acabado_maquina_with_tarea/$1');
$routes->delete('manipulado/(:num)', 'TarifaMaquinas::delete_tarifa_manipulado_maquina_with_tarea/$1');
$routes->delete('preimpresion/(:num)', 'TarifaMaquinas::delete_tarifa_preimpresion_maquina_with_tarea/$1');
$routes->delete('encuadernacion/(:num)', 'TarifaMaquinas::delete_tarifa_encuadernacion_maquina_with_tarea/$1');
$routes->delete('extra/(:num)', 'TarifaMaquinas::delete_tarifa_extra_maquina_with_tarea/$1');
$routes->get('acabado/select', 'TarifaMaquinas::get_select_maquina_acabado');
$routes->get('manipulado/select', 'TarifaMaquinas::get_select_maquina_manipulado');
$routes->get('impresion/select', 'TarifaMaquinas::get_select_maquina_impresion');
$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');
});
/* Acabados */
$routes->group('acabados', ['namespace' => 'App\Controllers\Tarifas\Acabados'], function ($routes) {
$routes->get('', 'TarifaAcabados::index', ['as' => 'tarifaAcabadoList']);
$routes->get('gettarifas', 'TarifaAcabados::getSelect2');
$routes->match(['get', 'post'], 'add', 'TarifaAcabados::add', ['as' => 'tarifaAcabadoAdd']);
$routes->match(['get', 'post'], 'edit/(:num)', 'TarifaAcabados::edit/$1', ['as' => 'tarifaAcabadoEdit']);
$routes->get('delete/(:num)', 'TarifaAcabados::delete/$1', ['as' => 'tarifaAcabadoDelete']);
$routes->post('datatable', 'TarifaAcabados::datatable', ['as' => 'tarifaAcabadoDT']);
$routes->get('select', 'TarifaAcabados::show_select', ["as" => "showSelectTarifaAcabado"]);
$routes->group('lineas', ['namespace' => 'App\Controllers\Tarifas\Acabados'], function ($routes) {
$routes->post('datatable', 'TarifaAcabadosLineas::datatable', ['as' => 'tarifaAcabadoLineasDT']);
$routes->post('datatable_editor', 'TarifaAcabadosLineas::datatable_editor', ['as' => 'tarifaAcabadoLineasDTE']);
$routes->get('delete/(:num)', 'TarifaAcabadosLineas::delete/$1', ['as' => 'tarifaAcabadoLineasDelete']);
});
});
});

View File

@ -96,7 +96,7 @@ class Routing extends BaseRouting
* *
* Default: false * Default: false
*/ */
public bool $prioritize = false; public bool $prioritize = true;
/** /**
* Map of URI segments and namespaces. For Auto Routing (Improved). * Map of URI segments and namespaces. For Auto Routing (Improved).

View File

@ -46,7 +46,7 @@ class Maquinas extends \App\Controllers\BaseResourceController
// Breadcrumbs (IMN) // Breadcrumbs (IMN)
$this->viewData['breadcrumb'] = [ $this->viewData['breadcrumb'] = [
['title' => lang("App.menu_configuration"), 'route' => "javascript:void(0);", 'active' => false], ['title' => lang("App.menu_configuration"), 'route' => "javascript:void(0);", 'active' => false],
['title' => lang("App.menu_maquina"), 'route' => site_url('configuracion/maquinas'), 'active' => true] ['title' => lang("App.menu_maquina"), 'route' => route_to('maquinaList'), 'active' => true]
]; ];
parent::initController($request, $response, $logger); parent::initController($request, $response, $logger);

View File

@ -1,4 +1,5 @@
<?php namespace App\Controllers\Configuracion; <?php
namespace App\Controllers\Configuracion;
use App\Controllers\BaseResourceController; use App\Controllers\BaseResourceController;
@ -9,6 +10,8 @@ use App\Entities\Configuracion\PaisEntity;
use App\Models\Configuracion\PaisModel; use App\Models\Configuracion\PaisModel;
use Hermawan\DataTables\DataTable;
class Paises extends \App\Controllers\BaseResourceController class Paises extends \App\Controllers\BaseResourceController
{ {
@ -62,17 +65,17 @@ class Paises extends \App\Controllers\BaseResourceController
public function add() public function add()
{ {
if ($this->request->getPost()) : if ($this->request->getPost()):
$postData = $this->request->getPost(); $postData = $this->request->getPost();
$sanitizedData = $this->sanitized($postData, true); $sanitizedData = $this->sanitized($postData, true);
$noException = true; $noException = true;
if ($successfulResult = $this->canValidate()) : if ($successfulResult = $this->canValidate()):
if ($this->canValidate()) : if ($this->canValidate()):
try { try {
$successfulResult = $this->model->skipValidation(true)->save($sanitizedData); $successfulResult = $this->model->skipValidation(true)->save($sanitizedData);
} catch (\Exception $e) { } catch (\Exception $e) {
@ -86,14 +89,14 @@ class Paises extends \App\Controllers\BaseResourceController
$thenRedirect = true; // Change this to false if you want your user to stay on the form after submission $thenRedirect = true; // Change this to false if you want your user to stay on the form after submission
endif; endif;
if ($noException && $successfulResult) : if ($noException && $successfulResult):
$id = $this->model->db->insertID(); $id = $this->model->db->insertID();
$message = lang('Basic.global.saveSuccess', [lang('Basic.global.record')]) . '.'; $message = lang('Basic.global.saveSuccess', [lang('Basic.global.record')]) . '.';
if ($thenRedirect) : if ($thenRedirect):
if (!empty($this->indexRoute)) : if (!empty($this->indexRoute)):
return redirect()->to(route_to($this->indexRoute))->with('sweet-success', $message); return redirect()->to(route_to($this->indexRoute))->with('sweet-success', $message);
else: else:
return $this->redirect2listView('sweet-success', $message); return $this->redirect2listView('sweet-success', $message);
@ -117,20 +120,20 @@ class Paises extends \App\Controllers\BaseResourceController
public function edit($requestedId = null) public function edit($requestedId = null)
{ {
if ($requestedId == null) : if ($requestedId == null):
return $this->redirect2listView(); return $this->redirect2listView();
endif; endif;
$id = filter_var($requestedId, FILTER_SANITIZE_URL); $id = filter_var($requestedId, FILTER_SANITIZE_URL);
$paisEntity = $this->model->find($id); $paisEntity = $this->model->find($id);
if ($paisEntity == false) : if ($paisEntity == false):
$message = lang('Basic.global.notFoundWithIdErr', [mb_strtolower(lang('Paises.pais')), $id]); $message = lang('Basic.global.notFoundWithIdErr', [mb_strtolower(lang('Paises.pais')), $id]);
return $this->redirect2listView('sweet-error', $message); return $this->redirect2listView('sweet-error', $message);
endif; endif;
if ($this->request->getPost()) :
if ($this->request->getPost()):
$nullIfEmpty = true; // !(phpversion() >= '8.1'); $nullIfEmpty = true; // !(phpversion() >= '8.1');
@ -143,10 +146,10 @@ class Paises extends \App\Controllers\BaseResourceController
$noException = true; $noException = true;
if ($successfulResult = $this->canValidate()) : // if ($successfulResult = $this->validate($this->formValidationRules) ) : if ($successfulResult = $this->canValidate()): // if ($successfulResult = $this->validate($this->formValidationRules) ) :
if ($this->canValidate()) : if ($this->canValidate()):
try { try {
$successfulResult = $this->model->skipValidation(true)->update($id, $sanitizedData); $successfulResult = $this->model->skipValidation(true)->update($id, $sanitizedData);
} catch (\Exception $e) { } catch (\Exception $e) {
@ -163,12 +166,12 @@ class Paises extends \App\Controllers\BaseResourceController
$thenRedirect = false; $thenRedirect = false;
endif; endif;
if ($noException && $successfulResult) : if ($noException && $successfulResult):
$id = $paisEntity->id ?? $id; $id = $paisEntity->id ?? $id;
$message = lang('Basic.global.updateSuccess', [lang('Basic.global.record')]) . '.'; $message = lang('Basic.global.updateSuccess', [lang('Basic.global.record')]) . '.';
if ($thenRedirect) : if ($thenRedirect):
if (!empty($this->indexRoute)) : if (!empty($this->indexRoute)):
return redirect()->to(route_to($this->indexRoute))->with('sweet-success', $message); return redirect()->to(route_to($this->indexRoute))->with('sweet-success', $message);
else: else:
return $this->redirect2listView('sweet-success', $message); return $this->redirect2listView('sweet-success', $message);
@ -193,30 +196,38 @@ class Paises extends \App\Controllers\BaseResourceController
public function datatable() public function datatable()
{ {
if ($this->request->isAJAX()) { $q = $this->model->getDatatableQuery();
$reqData = $this->request->getPost();
if (!isset($reqData['draw']) || !isset($reqData['columns'])) {
$errstr = 'No data available in response to this specific request.';
$response = $this->respond(Collection::datatable([], 0, 0, $errstr), 400, $errstr);
return $response;
}
$start = $reqData['start'] ?? 0;
$length = $reqData['length'] ?? 5;
$search = $reqData['search']['value'];
$requestedOrder = $reqData['order']['0']['column'] ?? 1;
$order = PaisModel::SORTABLE[$requestedOrder > 0 ? $requestedOrder : 1];
$dir = $reqData['order']['0']['dir'] ?? 'asc';
$resourceData = $this->model->getResource($search)->orderBy($order, $dir)->limit($length, $start)->get()->getResultObject(); $result = DataTable::of($q)
->edit(
"show_erp",
function ($row, $meta) {
if($row->show_erp == 1) {
return '<i class="ti ti-check"></i>';
}else{
return '';
}
}
)
->add("actionBtns", callback: function ($q) {
$actions = '';
if (auth()->user()->can('paises.edit')) {
$actions .= '
<div class="btn-group btn-group-sm">
<a href="javascript:void(0);"><i class="ti ti-pencil ti-sm btn-edit mx-2" data-id="' . $q->id . '"></i></a>
</div>';
}
if (auth()->user()->can('paises.delete')) {
$actions .= '
<div class="btn-group btn-group-sm">
<a href="javascript:void(0);"><i class="ti ti-trash ti-sm btn-delete mx-2" data-id="' . $q->id . '"></i></a>
</div>';
}
return $actions;
});
return $result->toJson(returnAsObject: true);
return $this->respond(Collection::datatable(
$resourceData,
$this->model->getResource()->countAllResults(),
$this->model->getResource($search)->countAllResults()
));
} else {
return $this->failUnauthorized('Invalid request', 403);
}
} }
public function allItemsSelect() public function allItemsSelect()
@ -277,7 +288,7 @@ class Paises extends \App\Controllers\BaseResourceController
"id", "id",
"nombre as name" "nombre as name"
] ]
)->orderBy("nombre", "asc"); )->orderBy("nombre", "asc");
if ($this->request->getGet("q")) { if ($this->request->getGet("q")) {
$query->groupStart() $query->groupStart()
->orLike("lg_paises.nombre", $this->request->getGet("q")) ->orLike("lg_paises.nombre", $this->request->getGet("q"))

View File

@ -43,7 +43,7 @@ class Papelesgenericos extends \App\Controllers\BaseResourceController
// Breadcrumbs (IMN) // Breadcrumbs (IMN)
$this->viewData['breadcrumb'] = [ $this->viewData['breadcrumb'] = [
['title' => lang("App.menu_configuration"), 'route' => "javascript:void(0);", 'active' => false], ['title' => lang("App.menu_configuration"), 'route' => "javascript:void(0);", 'active' => false],
['title' => lang("App.menu_papelgenerico"), 'route' => site_url('configuracion/papelesgenericos'), 'active' => true] ['title' => lang("App.menu_papelgenerico"), 'route' => route_to('papelGenericoList'), 'active' => true]
]; ];
parent::initController($request, $response, $logger); parent::initController($request, $response, $logger);

View File

@ -72,7 +72,7 @@ class Papelesimpresion extends \App\Controllers\BaseResourceController
// Breadcrumbs // Breadcrumbs
$this->viewData['breadcrumb'] = [ $this->viewData['breadcrumb'] = [
['title' => lang("App.menu_configuration"), 'route' => "javascript:void(0);", 'active' => false], ['title' => lang("App.menu_configuration"), 'route' => "javascript:void(0);", 'active' => false],
['title' => lang("App.menu_papelimpresion"), 'route' => site_url('configuracion/papelesimpresion'), 'active' => true] ['title' => lang("App.menu_papelimpresion"), 'route' => route_to('papelImpresionList'), 'active' => true]
]; ];
parent::initController($request, $response, $logger); parent::initController($request, $response, $logger);

View File

@ -230,6 +230,10 @@ class Facturas extends \App\Controllers\BaseResourceController
$factura->updated_by = $userModel->getFullName($factura->user_updated_id); $factura->updated_by = $userModel->getFullName($factura->user_updated_id);
$factura->created_at_footer = $factura->created_at ? date(' H:i d/m/Y', strtotime($factura->created_at)) : ''; $factura->created_at_footer = $factura->created_at ? date(' H:i d/m/Y', strtotime($factura->created_at)) : '';
$factura->updated_at_footer = $factura->updated_at ? date(' H:i d/m/Y', strtotime($factura->updated_at)) : ''; $factura->updated_at_footer = $factura->updated_at ? date(' H:i d/m/Y', strtotime($factura->updated_at)) : '';
$factura->showDeleteButton = model('App\Models\Facturas\FacturaPagoModel')
->where('factura_id', $factura->id)->countAllResults() == 0;
$this->viewData['facturaEntity'] = $factura; $this->viewData['facturaEntity'] = $factura;
$this->viewData['boxTitle'] = lang('Basic.global.edit2') . ' ' . lang('Facturas.factura') . ' ' . lang('Basic.global.edit3'); $this->viewData['boxTitle'] = lang('Basic.global.edit2') . ' ' . lang('Facturas.factura') . ' ' . lang('Basic.global.edit3');
@ -703,7 +707,7 @@ class Facturas extends \App\Controllers\BaseResourceController
$data = (object) [ $data = (object) [
'factura_id' => $factura_id, 'factura_id' => $factura_id,
'pedido_linea_impresion_id' => $linea->pedido_id, 'pedido_linea_impresion_id' => $pedido_linea_id,
'descripcion' => $descripcion[0]->concepto, 'descripcion' => $descripcion[0]->concepto,
'cantidad' => $cantidad, 'cantidad' => $cantidad,
'iva' => $presupuesto->iva_reducido == 1 ? 4 : 21, 'iva' => $presupuesto->iva_reducido == 1 ? 4 : 21,

View File

@ -211,6 +211,8 @@ class Pedido extends \App\Controllers\BaseResourceController
public function update($id = null){ public function update($id = null){
$data = [];
if ($this->request->isAJAX()) { if ($this->request->isAJAX()) {
$newTokenHash = csrf_hash(); $newTokenHash = csrf_hash();
$csrfTokenName = csrf_token(); $csrfTokenName = csrf_token();
@ -242,6 +244,14 @@ class Pedido extends \App\Controllers\BaseResourceController
$sanitizedData = $this->sanitized($postData, $nullIfEmpty); $sanitizedData = $this->sanitized($postData, $nullIfEmpty);
foreach(array_keys($sanitizedData) as $key){
if(str_starts_with($key, "fecha_")){
$sanitizedData[$key . "_change_user_id"] =
auth()->user()->id;
$data[$key . "_change_user"] =
model('App\Models\Usuarios\UserModel')->getFullName(auth()->user()->id);
}
}
// JJO // JJO
$sanitizedData['user_updated_id'] = auth()->user()->id; $sanitizedData['user_updated_id'] = auth()->user()->id;
@ -268,10 +278,9 @@ class Pedido extends \App\Controllers\BaseResourceController
$id = $pedidoEntity->id ?? $id; $id = $pedidoEntity->id ?? $id;
$message = lang('Basic.global.updateSuccess', [lang('Basic.global.record')]) . '.'; $message = lang('Basic.global.updateSuccess', [lang('Basic.global.record')]) . '.';
$data = [ $data['error'] = 0;
'error' => 0, $data[$csrfTokenName] = $newTokenHash;
$csrfTokenName => $newTokenHash
];
return $this->respond($data); return $this->respond($data);
endif; // $noException && $successfulResult endif; // $noException && $successfulResult
@ -303,7 +312,15 @@ class Pedido extends \App\Controllers\BaseResourceController
$this->obtenerDatosFormulario($pedidoEntity); $this->obtenerDatosFormulario($pedidoEntity);
$pedidoEntity->fecha_entrega_real_change_user = $pedidoEntity->fecha_entrega_real_change_user_id?model('App\Models\Usuarios\UserModel')->
getFullName($pedidoEntity->fecha_entrega_real_change_user_id):"";
$pedidoEntity->fecha_impresion_change_user = $pedidoEntity->fecha_impresion_change_user_id?model('App\Models\Usuarios\UserModel')->
getFullName($pedidoEntity->fecha_impresion_change_user_id):"";
$pedidoEntity->fecha_encuadernado_change_user = $pedidoEntity->fecha_encuadernado_change_user_id?model('App\Models\Usuarios\UserModel')->
getFullName($pedidoEntity->fecha_encuadernado_change_user_id):"";
$pedidoEntity->fecha_entrega_change_externo_user = $pedidoEntity->fecha_entrega_change_externo_user_id?model('App\Models\Usuarios\UserModel')->
getFullName($pedidoEntity->fecha_entrega_change_externo_user_id):"";
$this->viewData['pedidoEntity'] = $pedidoEntity; $this->viewData['pedidoEntity'] = $pedidoEntity;
if($pedidoEntity->estado == 'validacion'){ if($pedidoEntity->estado == 'validacion'){
@ -321,6 +338,7 @@ class Pedido extends \App\Controllers\BaseResourceController
$this->viewData['boxTitle'] = lang('Basic.global.edit2') . ' ' . lang('Pedidos.moduleTitle') . ' ' . lang('Basic.global.edit3'); $this->viewData['boxTitle'] = lang('Basic.global.edit2') . ' ' . lang('Pedidos.moduleTitle') . ' ' . lang('Basic.global.edit3');
return $this->displayForm(__METHOD__, $id); return $this->displayForm(__METHOD__, $id);
} }

View File

@ -366,6 +366,36 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController
PresupuestoService::crearPedido($id); PresupuestoService::crearPedido($id);
} }
// modificar los datos del pedido y de la factura si no está la factura validada
if ($presupuestoEntity->estado_id == 2){
$facturaModel = model('App\Models\Facturas\FacturaModel');
if(!$facturaModel->presupuestoHasFacturaValidada($id)){
// se actualiza primero el pedido
$pedidoModel = model('App\Models\Pedidos\PedidoLineaModel');
$pedidoLineaId = $pedidoModel->where('presupuesto_id', $id)->first()->id;
$linea_pedido = $this->model->generarLineaPedido($id)[0];
$idPedido = $pedidoModel->join('pedidos', 'pedidos_linea.pedido_id = pedidos.id')
->where('pedidos_linea.presupuesto_id', $id)
->first()->pedido_id;
$pedidoModel->update($pedidoLineaId, [
'cantidad' => $linea_pedido->unidades,
'descripcion' => $linea_pedido->concepto
]);
// se actualiza la factura
$linea_pedido = $this->model->generarLineaPedido($id, true, $idPedido)[0];
$facturaLineaModel = model('App\Models\Facturas\FacturaLineaModel');
$facturaLineaId = $facturaLineaModel->where('pedido_linea_impresion_id', $pedidoLineaId)->
where('deleted_at', null)->first()->id;
$facturaLineaModel->update($facturaLineaId, [
'cantidad' => $linea_pedido->unidades,
'descripcion' => $linea_pedido->concepto
]);
}
}
$newTokenHash = csrf_hash(); $newTokenHash = csrf_hash();
$csrfTokenName = csrf_token(); $csrfTokenName = csrf_token();
$data = [ $data = [

View File

@ -0,0 +1,61 @@
<?php
namespace App\Database\Migrations;
use CodeIgniter\Database\Migration;
use CodeIgniter\Database\RawSql;
class AddUserIDFechasEntregaPedido extends Migration
{
protected array $USER_COLUMNS = [
"inaplazable" => [
"type" => "INT",
"unsigned" => true,
"constraint" => 1,
"null" => true,
],
'fecha_entrega_real_change_user_id' => [
'type' => 'INT',
"constraint" => 10,
"unsigned" => true,
"null" => true,
],
"fecha_impresion_change_user_id" => [
"type" => "INT",
"constraint" => 10,
"unsigned" => true,
"null" => true,
],
"fecha_encuadernado_change_user_id" => [
"type" => "INT",
"unsigned" => true,
"constraint" => 10,
"null" => true,
],
"fecha_entrega_externo_change_user_id" => [
"type" => "INT",
"unsigned" => true,
"constraint" => 10,
"null" => true,
],
"inaplazable_change_user_id" => [
"type" => "INT",
"unsigned" => true,
"constraint" => 10,
"null" => true,
],
];
public function up()
{
$this->forge->addColumn("pedidos", $this->USER_COLUMNS);
}
public function down()
{
$this->forge->dropColumn("pedidos", array_keys($this->USER_COLUMNS));
}
}

View File

@ -0,0 +1,33 @@
<?php
namespace App\Database\Migrations;
use CodeIgniter\Database\Migration;
use CodeIgniter\Database\RawSql;
class AddCantidadConceptoPedidoLinea extends Migration
{
protected array $USER_COLUMNS = [
"cantidad" => [
"type" => "INT",
"unsigned" => true,
"constraint" => 10,
"null" => true,
],
'descripcion' => [
'type' => 'TEXT',
"null" => true,
],
];
public function up()
{
$this->forge->addColumn("pedidos_linea", $this->USER_COLUMNS);
}
public function down()
{
$this->forge->dropColumn("pedidos_linea", array_keys($this->USER_COLUMNS));
}
}

View File

@ -14,7 +14,7 @@ class PaisEntity extends \CodeIgniter\Entity\Entity
"url_erp" => null, "url_erp" => null,
"user_erp" => null, "user_erp" => null,
"key_erp" => null, "key_erp" => null,
"show_erp" => false, "show_erp" => null,
]; ];
protected $casts = [ protected $casts = [
"show_erp" => "boolean", "show_erp" => "boolean",

View File

@ -18,6 +18,7 @@ class PedidoEntity extends \CodeIgniter\Entity\Entity
"total_precio" => null, "total_precio" => null,
"total_tirada" => null, "total_tirada" => null,
"estado" => null, "estado" => null,
"inaplazable" => null,
"user_created_id" => null, "user_created_id" => null,
"user_updated_id" => null, "user_updated_id" => null,
"user_validated_id" => null, "user_validated_id" => null,
@ -25,6 +26,11 @@ class PedidoEntity extends \CodeIgniter\Entity\Entity
"fecha_impresion" => null, "fecha_impresion" => null,
"fecha_encuadernado" => null, "fecha_encuadernado" => null,
"fecha_entrega_externo" => null, "fecha_entrega_externo" => null,
"fecha_entrega_real_change_user_id" => null,
"fecha_impresion_change_user_id" => null,
"fecha_encuadernado_change_user_id" => null,
"fecha_entrega_change_externo_user_id" => null,
"inaplazable_change_user_id" => null,
"created_at" => null, "created_at" => null,
"updated_at" => null, "updated_at" => null,
"validated_at" => null, "validated_at" => null,

View File

@ -16,6 +16,8 @@ class PedidoLineaEntity extends \CodeIgniter\Entity\Entity
"user_updated_id" => null, "user_updated_id" => null,
"created_at" => null, "created_at" => null,
"updated_at" => null, "updated_at" => null,
"cantidad" => null,
"descripcion" => null,
]; ];
@ -23,6 +25,7 @@ class PedidoLineaEntity extends \CodeIgniter\Entity\Entity
"pedido_id" => "int", "pedido_id" => "int",
"presupuesto_id" => "int", "presupuesto_id" => "int",
"ubicacion_id" => "int", "ubicacion_id" => "int",
"cantidad" => "int",
]; ];
public function ubicacion() : UbicacionesEntity public function ubicacion() : UbicacionesEntity
{ {

View File

@ -29,8 +29,12 @@ if (!function_exists('generate_php_roles_constant')) {
// Close the array // Close the array
$phpCode .= "];\n"; $phpCode .= "];\n";
// Write PHP code to a file $dirPath = APPPATH . "Config/RBAC";
$filePath = APPPATH . "Config/RBAC/roles.php"; if (!is_dir($dirPath)) {
mkdir($dirPath, 0775, true); // true permite crear carpetas anidadas
}
$filePath = $dirPath . "/roles.php";
file_put_contents($filePath, $phpCode); file_put_contents($filePath, $phpCode);
} }
@ -58,9 +62,14 @@ if (!function_exists('generate_php_permissions_constant')) {
// Close the array // Close the array
$phpCode .= "];\n"; $phpCode .= "];\n";
// Write PHP code to a file $dirPath = APPPATH . "Config/RBAC";
$filePath = APPPATH . "Config/RBAC/permissions.php"; if (!is_dir($dirPath)) {
mkdir($dirPath, 0775, true); // true permite crear carpetas anidadas
}
$filePath = $dirPath . "/permissions.php";
file_put_contents($filePath, $phpCode); file_put_contents($filePath, $phpCode);
} }
} }
@ -87,8 +96,12 @@ if (!function_exists('generate_php_permissions_matrix_constant')) {
// Close the array // Close the array
$phpCode .= "];\n"; $phpCode .= "];\n";
// Write PHP code to a file $dirPath = APPPATH . "Config/RBAC";
$filePath = APPPATH . "Config/RBAC/permissionMatrix.php"; if (!is_dir($dirPath)) {
mkdir($dirPath, 0775, true); // true permite crear carpetas anidadas
}
$filePath = $dirPath . "/permissionMatrix.php";
file_put_contents($filePath, $phpCode); file_put_contents($filePath, $phpCode);
} }
} }
@ -130,9 +143,9 @@ if (!function_exists('checkGroups')) {
*/ */
function checkGroups(array $groups, string $redirectRoute = null) function checkGroups(array $groups, string $redirectRoute = null)
{ {
$session = \Config\Services::session(); $session = \Config\Services::session();
$response = \Config\Services::response(); $response = \Config\Services::response();
$auth = auth(); // Shield auth service $auth = auth(); // Shield auth service
$user = $auth->user(); $user = $auth->user();

View File

@ -1,46 +0,0 @@
<?php
namespace App\Models\API;
use CodeIgniter\Model;
class ItemModel extends Model
{
protected $table = 'items';
protected $primaryKey = 'id';
protected $useAutoIncrement = true;
protected $returnType = 'array';
protected $useSoftDeletes = false;
protected $protectFields = true;
protected $allowedFields = ['title','price'];
protected bool $allowEmptyInserts = false;
protected bool $updateOnlyChanged = true;
protected array $casts = [];
protected array $castHandlers = [];
// Dates
protected $useTimestamps = false;
protected $dateFormat = 'datetime';
protected $createdField = 'created_at';
protected $updatedField = 'updated_at';
protected $deletedField = 'deleted_at';
// Validation
protected $validationRules = [];
protected $validationMessages = [];
protected $skipValidation = false;
protected $cleanValidationRules = true;
// Callbacks
protected $allowCallbacks = true;
protected $beforeInsert = [];
protected $afterInsert = [];
protected $beforeUpdate = [];
protected $afterUpdate = [];
protected $beforeFind = [];
protected $afterFind = [];
protected $beforeDelete = [];
protected $afterDelete = [];
}

View File

@ -12,17 +12,6 @@ class PaisModel extends \App\Models\BaseModel
*/ */
protected $useAutoIncrement = true; protected $useAutoIncrement = true;
const SORTABLE = [
1 => "t1.id",
2 => "t1.nombre",
3 => "t1.code",
4 => "t1.code3",
5 => "t1.moneda",
6 => "t1.url_erp",
7 => "t1.user_erp",
8 => "t1.key_erp",
9 => "t1.show_erp",
];
protected $allowedFields = ["nombre", "code", "code3", "moneda", "url_erp", "user_erp", "key_erp", "show_erp"]; protected $allowedFields = ["nombre", "code", "code3", "moneda", "url_erp", "user_erp", "key_erp", "show_erp"];
protected $returnType = "App\Entities\Configuracion\PaisEntity"; protected $returnType = "App\Entities\Configuracion\PaisEntity";
@ -91,38 +80,24 @@ class PaisModel extends \App\Models\BaseModel
/** /**
* Get resource data. * Get resource data.
* *
* @param string $search
*
* @return \CodeIgniter\Database\BaseBuilder * @return \CodeIgniter\Database\BaseBuilder
*/ */
public function getResource(string $search = "") public function getDatatableQuery()
{ {
$builder = $this->db $builder = $this->db
->table($this->table . " t1") ->table($this->table . " t1")
->select( ->select(
"t1.id AS id, t1.nombre AS nombre, t1.code AS code, t1.code3 AS code3, t1.moneda AS moneda, t1.url_erp AS url_erp, t1.user_erp AS user_erp, t1.key_erp AS key_erp, t1.show_erp AS show_erp" "t1.id AS id,
t1.nombre AS nombre,
t1.code AS code,
t1.code3 AS code3,
t1.moneda AS moneda,
t1.url_erp AS url_erp,
t1.user_erp AS user_erp,
t1.key_erp AS key_erp,
t1.show_erp AS show_erp"
); );
return empty($search) return $builder;
? $builder
: $builder
->groupStart()
->like("t1.id", $search)
->orLike("t1.nombre", $search)
->orLike("t1.code", $search)
->orLike("t1.code3", $search)
->orLike("t1.moneda", $search)
->orLike("t1.url_erp", $search)
->orLike("t1.user_erp", $search)
->orLike("t1.key_erp", $search)
->orLike("t1.id", $search)
->orLike("t1.nombre", $search)
->orLike("t1.code", $search)
->orLike("t1.code3", $search)
->orLike("t1.moneda", $search)
->orLike("t1.url_erp", $search)
->orLike("t1.user_erp", $search)
->orLike("t1.key_erp", $search)
->groupEnd();
} }
} }

View File

@ -39,7 +39,7 @@ class FacturaLineaModel extends \App\Models\BaseModel {
t1.pedido_linea_impresion_id AS pedido_linea_impresion_id, t1.pedido_maquetacion_id AS pedido_maquetacion_id, t1.pedido_linea_impresion_id AS pedido_linea_impresion_id, t1.pedido_maquetacion_id AS pedido_maquetacion_id,
t1.descripcion AS descripcion, t1.cantidad as cantidad, t1.iva AS iva, t1.descripcion AS descripcion, t1.cantidad as cantidad, t1.iva AS iva,
t1.base AS base, t1.total_iva AS total_iva, t1.total AS total, t1.data AS data, t2.pedido_id AS pedido_id, t1.base AS base, t1.total_iva AS total_iva, t1.total AS total, t1.data AS data, t2.pedido_id AS pedido_id,
t3.total_aceptado AS total_aceptado, t4.tirada_flexible AS tirada_flexible, t4.descuento_tirada_flexible AS descuento_tirada_flexible, t3.total_aceptado_revisado AS total_aceptado, t4.tirada_flexible AS tirada_flexible, t4.descuento_tirada_flexible AS descuento_tirada_flexible,
t6.cantidad AS cantidad_albaran" t6.cantidad AS cantidad_albaran"
) )
->join("pedidos_linea t2", "t2.id = t1.pedido_linea_impresion_id", "left") ->join("pedidos_linea t2", "t2.id = t1.pedido_linea_impresion_id", "left")

View File

@ -145,6 +145,27 @@ class FacturaModel extends \App\Models\BaseModel
return $builder; return $builder;
} }
public function presupuestoHasFacturaValidada($presupuesto_id = null)
{
if ($presupuesto_id == null) {
return false;
}
$result = $this->db->table($this->table . " t1")
->select("t1.id")
->join("facturas_lineas t2", "t2.factura_id = t1.id", "left")
->join("pedidos_linea t3", "t2.pedido_linea_impresion_id = t3.id", "left")
->where("t3.presupuesto_id", $presupuesto_id)
->where("t1.deleted_at IS NULL")
->where("t2.deleted_at IS NULL")
->where("t1.estado", "validada")
->get()
->getResultObject();
return !empty($result);
}
public function getSumatoriosFacturacionCliente($cliente_id = -1){ public function getSumatoriosFacturacionCliente($cliente_id = -1){
if($cliente_id == -1){ if($cliente_id == -1){

View File

@ -36,6 +36,8 @@ class PedidoLineaModel extends \App\Models\BaseModel
"user_updated_id", "user_updated_id",
"created_at", "created_at",
"updated_at", "updated_at",
"cantidad",
"descripcion",
]; ];
protected $returnType = "App\Entities\Pedidos\PedidoLineaEntity"; protected $returnType = "App\Entities\Pedidos\PedidoLineaEntity";

View File

@ -37,6 +37,7 @@ class PedidoModel extends \App\Models\BaseModel
"total_precio", "total_precio",
"total_tirada", "total_tirada",
"estado", "estado",
"inaplazable",
"user_created_id", "user_created_id",
"user_updated_id", "user_updated_id",
"user_validated_id", "user_validated_id",
@ -44,6 +45,11 @@ class PedidoModel extends \App\Models\BaseModel
"fecha_impresion", "fecha_impresion",
"fecha_encuadernado", "fecha_encuadernado",
"fecha_entrega_externo", "fecha_entrega_externo",
"fecha_entrega_real_change_user_id",
"fecha_impresion_change_user_id",
"fecha_encuadernado_change_user_id",
"fecha_entrega_externo_change_user_id",
"inaplazable_change_user_id",
"created_at", "created_at",
"updated_at", "updated_at",
"validated_at", "validated_at",
@ -111,15 +117,28 @@ class PedidoModel extends \App\Models\BaseModel
$builder = $this->db $builder = $this->db
->table($this->table . " t1") ->table($this->table . " t1")
->select( ->select(
"t2.presupuesto_id" "t2.presupuesto_id, t3.total_aceptado, t2.descripcion, t2.cantidad"
); );
$builder->where("t1.id", $pedido_id); $builder->where("t1.id", $pedido_id);
$builder->join("pedidos_linea t2", "t2.pedido_id = t1.id", "left"); $builder->join("pedidos_linea t2", "t2.pedido_id = t1.id", "left");
$builder->join("presupuestos t3", "t2.presupuesto_id = t3.id", "left");
$model_presupuesto = model("App\Models\Presupuestos\PresupuestoModel"); $model_presupuesto = model("App\Models\Presupuestos\PresupuestoModel");
$lineasPresupuesto = []; $lineasPresupuesto = [];
foreach ($builder->get()->getResultObject() as $row) { foreach ($builder->get()->getResultObject() as $row) {
array_push($lineasPresupuesto, $model_presupuesto->generarLineaPedido($row->presupuesto_id)[0]); if($row->descripcion == null){
array_push($lineasPresupuesto, $model_presupuesto->generarLineaPedido($row->presupuesto_id)[0]);
}
else{
$presupuesto = (object) [
'numero' => $row->presupuesto_id,
'unidades' => $row->cantidad,
'total' => $row->total_aceptado,
'concepto' => $row->descripcion,
];
array_push($lineasPresupuesto, $presupuesto);
}
} }
$builder->groupBy("t1.id"); $builder->groupBy("t1.id");

View File

@ -1885,9 +1885,12 @@ class PresupuestoService extends BaseService
$pedido_id = $model_pedido->insert($data_pedido); $pedido_id = $model_pedido->insert($data_pedido);
if ($pedido_id) { if ($pedido_id) {
$lineas_pedido = $model_presupuesto->generarLineaPedido($presupuesto_id)[0];
$data_pedido_linea = [ $data_pedido_linea = [
"pedido_id" => $pedido_id, "pedido_id" => $pedido_id,
"presupuesto_id" => $presupuesto_id, "presupuesto_id" => $presupuesto_id,
'cantidad' => $lineas_pedido->unidades,
'descripcion' => $lineas_pedido->concepto,
"ubicacion_id" => 1, // safetak por defecto "ubicacion_id" => 1, // safetak por defecto
"user_created_id" => auth()->user()->id, "user_created_id" => auth()->user()->id,
"user_updated_id" => auth()->user()->id, "user_updated_id" => auth()->user()->id,

View File

@ -1,66 +1,74 @@
<div class="row"> <div class="row">
<div class="col-md-12 col-lg-6 px-4"> <div class="col-md-12 col-lg-6 px-4">
<div class="mb-3"> <div class="mb-3">
<label for="nombre" class="form-label"> <label for="nombre" class="form-label">
<?=lang('Paises.nombre') ?>* <?= lang('Paises.nombre') ?>*
</label> </label>
<input type="text" id="nombre" name="nombre" required maxLength="255" class="form-control" value="<?=old('nombre', $paisEntity->nombre) ?>"> <input type="text" id="nombre" name="nombre" required maxLength="255" class="form-control"
</div><!--//.mb-3 --> value="<?= old('nombre', $paisEntity->nombre) ?>">
</div><!--//.mb-3 -->
<div class="mb-3"> <div class="mb-3">
<label for="code" class="form-label"> <label for="code" class="form-label">
<?=lang('Paises.code') ?>* <?= lang('Paises.code') ?>*
</label> </label>
<input type="text" id="code" name="code" required maxLength="2" class="form-control" value="<?=old('code', $paisEntity->code) ?>"> <input type="text" id="code" name="code" required maxLength="2" class="form-control"
</div><!--//.mb-3 --> value="<?= old('code', $paisEntity->code) ?>">
</div><!--//.mb-3 -->
<div class="mb-3"> <div class="mb-3">
<label for="code3" class="form-label"> <label for="code3" class="form-label">
<?=lang('Paises.code3') ?> <?= lang('Paises.code3') ?>
</label> </label>
<input type="text" id="code3" name="code3" maxLength="3" class="form-control" value="<?=old('code3', $paisEntity->code3) ?>"> <input type="text" id="code3" name="code3" maxLength="3" class="form-control"
</div><!--//.mb-3 --> value="<?= old('code3', $paisEntity->code3) ?>">
</div><!--//.mb-3 -->
<div class="mb-3"> <div class="mb-3">
<label for="moneda" class="form-label"> <label for="moneda" class="form-label">
<?=lang('Paises.moneda') ?>* <?= lang('Paises.moneda') ?>*
</label> </label>
<input type="text" id="moneda" name="moneda" required maxLength="3" class="form-control" value="<?=old('moneda', $paisEntity->moneda) ?>"> <input type="text" id="moneda" name="moneda" required maxLength="3" class="form-control"
</div><!--//.mb-3 --> value="<?= old('moneda', $paisEntity->moneda) ?>">
</div><!--//.mb-3 -->
</div><!--//.col --> </div><!--//.col -->
<div class="col-md-12 col-lg-6 px-4"> <div class="col-md-12 col-lg-6 px-4">
<div class="mb-3"> <div class="mb-3">
<label for="urlErp" class="form-label"> <label for="urlErp" class="form-label">
<?=lang('Paises.urlErp') ?> <?= lang('Paises.urlErp') ?>
</label> </label>
<input type="url" id="urlErp" name="url_erp" maxLength="255" class="form-control" value="<?=old('url_erp', $paisEntity->url_erp) ?>"> <input type="url" id="urlErp" name="url_erp" maxLength="255" class="form-control"
</div><!--//.mb-3 --> value="<?= old('url_erp', $paisEntity->url_erp) ?>">
</div><!--//.mb-3 -->
<div class="mb-3"> <div class="mb-3">
<label for="userErp" class="form-label"> <label for="userErp" class="form-label">
<?=lang('Paises.userErp') ?> <?= lang('Paises.userErp') ?>
</label> </label>
<input type="text" id="userErp" name="user_erp" maxLength="255" class="form-control" value="<?=old('user_erp', $paisEntity->user_erp) ?>"> <input type="text" id="userErp" name="user_erp" maxLength="255" class="form-control"
</div><!--//.mb-3 --> value="<?= old('user_erp', $paisEntity->user_erp) ?>">
</div><!--//.mb-3 -->
<div class="mb-3"> <div class="mb-3">
<label for="keyErp" class="form-label"> <label for="keyErp" class="form-label">
<?=lang('Paises.keyErp') ?> <?= lang('Paises.keyErp') ?>
</label> </label>
<input type="text" id="keyErp" name="key_erp" maxLength="255" class="form-control" value="<?=old('key_erp', $paisEntity->key_erp) ?>"> <input type="text" id="keyErp" name="key_erp" maxLength="255" class="form-control"
</div><!--//.mb-3 --> value="<?= old('key_erp', $paisEntity->key_erp) ?>">
</div><!--//.mb-3 -->
<div class="mb-3"> <div class="mb-3">
<div class="form-check"> <div class="form-check">
<label for="showErp" class="form-check-label"> <label for="showErp" class="form-check-label">
<input type="checkbox" id="showErp" name="show_erp" value="1" class="form-check-input"<?=$paisEntity->show_erp== true ? 'checked' : ''; ?>> <input type="checkbox" id="showErp" name="show_erp" value="1" class="form-check-input"
<?=lang('Paises.showErp') ?> <?= $paisEntity->show_erp == true ? 'checked' : ''; ?>>
</label> <?= lang('Paises.showErp') ?>
</div><!--//.form-check --> </label>
</div><!--//.mb-3 --> </div><!--//.form-check -->
</div><!--//.mb-3 -->
</div><!--//.col --> </div><!--//.col -->
</div><!-- //.row --> </div><!-- //.row -->

View File

@ -1,5 +1,5 @@
<?= $this->include("themes_commonPartialsBs/select2bs5") ?> <?= $this->include("themes/_commonPartialsBs/select2bs5") ?>
<?= $this->include("themes_commonPartialsBs/sweetalert") ?> <?= $this->include("themes/_commonPartialsBs/sweetalert") ?>
<?= $this->extend('themes/vuexy/main/defaultlayout') ?> <?= $this->extend('themes/vuexy/main/defaultlayout') ?>
<?= $this->section("content") ?> <?= $this->section("content") ?>
<div class="row"> <div class="row">
@ -11,7 +11,7 @@
<form id="paisForm" method="post" action="<?= $formAction ?>"> <form id="paisForm" method="post" action="<?= $formAction ?>">
<?= csrf_field() ?> <?= csrf_field() ?>
<div class="card-body"> <div class="card-body">
<?= view("themes_commonPartialsBs/_alertBoxes") ?> <?= view("themes/_commonPartialsBs/_alertBoxes") ?>
<?= !empty($validation->getErrors()) ? $validation->listErrors("bootstrap_style") : "" ?> <?= !empty($validation->getErrors()) ? $validation->listErrors("bootstrap_style") : "" ?>
<?= view("themes/vuexy/form/configuracion/paises/_paisFormItems") ?> <?= view("themes/vuexy/form/configuracion/paises/_paisFormItems") ?>
</div><!-- /.card-body --> </div><!-- /.card-body -->

View File

@ -25,7 +25,7 @@
<th><?= lang('Paises.userErp') ?></th> <th><?= lang('Paises.userErp') ?></th>
<th><?= lang('Paises.keyErp') ?></th> <th><?= lang('Paises.keyErp') ?></th>
<th><?= lang('Paises.showErp') ?></th> <th><?= lang('Paises.showErp') ?></th>
<th class="text-nowrap"><?= lang('Basic.global.Action') ?></th> <th class="text-nowrap" style="min-width: 85px;"><?= lang('Basic.global.Action') ?></th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
@ -43,119 +43,10 @@
<?=$this->endSection() ?> <?=$this->endSection() ?>
<?=$this->section('additionalInlineJs') ?>
const lastColNr = $('#tableOfPaises').find("tr:first th").length - 1;
const actionBtns = function(data) {
return `<td class="text-right py-0 align-middle">
<div class="btn-group btn-group-sm">
<button class="btn btn-sm btn-warning btn-edit me-1" data-id="${data.id}"><?= lang('Basic.global.edit') ?></button>
<button class="btn btn-sm btn-danger btn-delete ms-1" data-id="${data.id}"><?= lang('Basic.global.Delete') ?></button>
</div>
</td>`;
};
theTable = $('#tableOfPaises').DataTable({
processing: true,
serverSide: true,
autoWidth: true,
responsive: true,
scrollX: true,
lengthMenu: [ 5, 10, 25, 50, 75, 100, 250, 500, 1000, 2500 ],
pageLength: 10,
lengthChange: true,
"dom": 'lfBrtip',
"buttons": [
'copy', 'csv', 'excel', 'print', {
extend: 'pdfHtml5',
orientation: 'landscape',
pageSize: 'A4'
}
],
stateSave: true,
order: [[1, 'asc']],
language: {
url: "/themes/vuexy/vendor/libs/datatables-sk/plugins/i18n/es-ES.json"
},
ajax : $.fn.dataTable.pipeline( {
url: '<?= route_to('dataTableOfPaises') ?>',
method: 'POST',
headers: {'X-Requested-With': 'XMLHttpRequest'},
async: true,
}),
columnDefs: [
{
orderable: false,
searchable: false,
targets: [lastColNr]
}
],
columns : [
{ 'data': 'nombre' },
{ 'data': 'code' },
{ 'data': 'code3' },
{ 'data': 'moneda' },
{ 'data': 'url_erp' },
{ 'data': 'user_erp' },
{ 'data': 'key_erp' },
{ 'data': 'show_erp' },
{ 'data': actionBtns }
]
});
theTable.on( 'draw.dt', function () {
const boolCols = [7];
for (let coln of boolCols) {
theTable.column(coln, { page: 'current' }).nodes().each( function (cell, i) {
cell.innerHTML = cell.innerHTML == '1' ? '<i class="text-success bi bi-check-lg"></i>' : '';
});
}
});
$(document).on('click', '.btn-edit', function(e) {
window.location.href = `<?= route_to('paisList') ?>/${$(this).attr('data-id')}/edit`;
});
$(document).on('click', '.btn-delete', function(e) {
Swal.fire({
title: '<?= lang('Basic.global.sweet.sureToDeleteTitle', [mb_strtolower(lang('Paises.pais'))]) ?>',
text: '<?= lang('Basic.global.sweet.sureToDeleteText') ?>',
icon: 'warning',
showCancelButton: true,
confirmButtonColor: '#3085d6',
confirmButtonText: '<?= lang('Basic.global.sweet.deleteConfirmationButton') ?>',
cancelButtonText: '<?= lang('Basic.global.Cancel') ?>',
cancelButtonColor: '#d33'
})
.then((result) => {
const dataId = $(this).data('id');
const row = $(this).closest('tr');
if (result.value) {
$.ajax({
url: `<?= route_to('paisList') ?>/${dataId}`,
method: 'DELETE',
}).done((data, textStatus, jqXHR) => {
Toast.fire({
icon: 'success',
title: data.msg ?? jqXHR.statusText,
});
theTable.clearPipeline();
theTable.row($(row)).invalidate().draw();
}).fail((jqXHR, textStatus, errorThrown) => {
Toast.fire({
icon: 'error',
title: jqXHR.responseJSON.messages.error,
});
})
}
});
});
<?=$this->endSection() ?>
<?=$this->section('css') ?> <?=$this->section('css') ?>
<link rel="stylesheet" href="<?= site_url("/themes/vuexy/vendor/libs/datatables-sk/plugins/buttons/buttons.bootstrap5.min.css") ?>"> <link rel="stylesheet" href="<?= site_url("/themes/vuexy/vendor/libs/datatables-sk/plugins/buttons/buttons.bootstrap5.min.css") ?>">
<link rel="stylesheet" href="<?= site_url('themes/vuexy/vendor/libs/sweetalert2/sweetalert2.css') ?>" />
<?=$this->endSection() ?> <?=$this->endSection() ?>
@ -167,5 +58,7 @@
<script src="<?= site_url("/themes/vuexy/vendor/libs/datatables-sk/plugins/jszip/jszip.min.js") ?>"></script> <script src="<?= site_url("/themes/vuexy/vendor/libs/datatables-sk/plugins/jszip/jszip.min.js") ?>"></script>
<script src="<?= site_url("/themes/vuexy/vendor/libs/datatables-sk/plugins/pdfmake/pdfmake.min.js") ?>" crossorigin="anonymous" referrerpolicy="no-referrer"></script> <script src="<?= site_url("/themes/vuexy/vendor/libs/datatables-sk/plugins/pdfmake/pdfmake.min.js") ?>" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<script src="<?= site_url("/themes/vuexy/vendor/libs/datatables-sk/plugins/pdfmake/vfs_fonts.js") ?>"></script> <script src="<?= site_url("/themes/vuexy/vendor/libs/datatables-sk/plugins/pdfmake/vfs_fonts.js") ?>"></script>
<script src="<?= site_url('themes/vuexy/vendor/libs/sweetalert2/sweetalert2.js') ?>"></script>
<script type="module" src="<?= site_url("assets/js/safekat/pages/paises/list.js") ?>"></script>
<?=$this->endSection() ?> <?=$this->endSection() ?>

View File

@ -121,6 +121,7 @@ $('#addNewPedidoImpresion').on('click', function(){
$('#pedidoImpresion').val(null).trigger('change'); $('#pedidoImpresion').val(null).trigger('change');
// Se actualiza la tabla de lineas de factura // Se actualiza la tabla de lineas de factura
$('#tableOfLineasFactura').DataTable().clearPipeline().draw(); $('#tableOfLineasFactura').DataTable().clearPipeline().draw();
$('#tableOfLineasPagos').DataTable().clearPipeline().draw();
} }
}); });
}); });

View File

@ -31,25 +31,25 @@
<tfoot> <tfoot>
<tr> <tr>
<td colspan="8" style="text-align:right">Subtotal:</td> <td colspan="8" style="text-align:right">Subtotal:</td>
<td class="autonumeric" id="subtotal-sum"></td> <td class="autonumeric text-end" id="subtotal-sum"></td>
<td></td> <td></td>
<td></td> <td></td>
</tr> </tr>
<tr> <tr>
<td colspan="8" style="text-align:right">I.V.A.:</td> <td colspan="8" style="text-align:right">I.V.A.:</td>
<td class="autonumeric" id="total-iva-sum"></td> <td class="autonumeric text-end" id="total-iva-sum"></td>
<td></td> <td></td>
<td></td> <td></td>
</tr> </tr>
<tr> <tr>
<td colspan="8" style="text-align:right">Total:</td> <td colspan="8" style="text-align:right">Total:</td>
<td class="autonumeric" id="total-sum"></td> <td class="autonumeric text-end" id="total-sum"></td>
<td></td> <td></td>
<td></td> <td></td>
</tr> </tr>
<tr> <tr>
<td <?= ($facturaEntity->serie_id == 7 || $facturaEntity->serie_id == 9)? "style='display:none;'":"" ?> colspan="8" style="text-align:right">Pendiente de pago:</td> <td <?= ($facturaEntity->serie_id == 7 || $facturaEntity->serie_id == 9)? "style='display:none;'":"" ?> colspan="8" style="text-align:right">Pendiente de pago:</td>
<td class="autonumeric" <?= ($facturaEntity->serie_id == 7 || $facturaEntity->serie_id == 9)? "style='display:none;'":"" ?> id="pendiente-pago"></td> <td class="autonumeric text-end" <?= ($facturaEntity->serie_id == 7 || $facturaEntity->serie_id == 9)? "style='display:none;'":"" ?> id="pendiente-pago"></td>
<td></td> <td></td>
<td></td> <td></td>
</tr> </tr>
@ -126,28 +126,36 @@ const autoNumericSubtotal = new AutoNumeric('#subtotal-sum', 0, {
decimalPlaces: 2, decimalPlaces: 2,
digitGroupSeparator: ',', digitGroupSeparator: ',',
decimalCharacter: '.', decimalCharacter: '.',
unformatOnSubmit: true unformatOnSubmit: true,
decimalPlacesShownOnFocus: 2,
decimalPlacesShownOnBlur: 2,
}); });
const autoNumericIVA = new AutoNumeric('#total-iva-sum', 0, { const autoNumericIVA = new AutoNumeric('#total-iva-sum', 0, {
decimalPlaces: 2, decimalPlaces: 2,
digitGroupSeparator: ',', digitGroupSeparator: ',',
decimalCharacter: '.', decimalCharacter: '.',
unformatOnSubmit: true unformatOnSubmit: true,
decimalPlacesShownOnFocus: 2,
decimalPlacesShownOnBlur: 2,
}); });
const autoNumericTotal = new AutoNumeric('#total-sum', 0, { const autoNumericTotal = new AutoNumeric('#total-sum', 0, {
decimalPlaces: 2, decimalPlaces: 2,
digitGroupSeparator: ',', digitGroupSeparator: ',',
decimalCharacter: '.', decimalCharacter: '.',
unformatOnSubmit: true unformatOnSubmit: true,
decimalPlacesShownOnFocus: 2,
decimalPlacesShownOnBlur: 2,
}); });
const autoNumericPendientePago = new AutoNumeric('#pendiente-pago', 0, { const autoNumericPendientePago = new AutoNumeric('#pendiente-pago', 0, {
decimalPlaces: 2, decimalPlaces: 2,
digitGroupSeparator: ',', digitGroupSeparator: ',',
decimalCharacter: '.', decimalCharacter: '.',
unformatOnSubmit: true unformatOnSubmit: true,
decimalPlacesShownOnFocus: 2,
decimalPlacesShownOnBlur: 2,
}); });
var editor_lineas = new $.fn.dataTable.Editor( { var editor_lineas = new $.fn.dataTable.Editor( {
@ -375,10 +383,10 @@ var tableLineas = $('#tableOfLineasFactura').DataTable({
} }
} }
}, },
{data: "iva",render : (d) => `<span class="autonumeric">${d}</span>`}, {data: "iva", className: "text-end", render : (d) => `<span class="autonumeric-facturas text-end">${d}</span>`},
{data: "base",render : (d) => `<span class="autonumeric">${d}</span>`}, {data: "base", className: "text-end", render : (d) => `<span class="autonumeric-facturas text-end">${d}</span>`},
{data: "total_iva",render : (d) => `<span class="autonumeric">${d}</span>`}, {data: "total_iva", className: "text-end",render : (d) => `<span class="autonumeric-facturas text-end">${d}</span>`},
{data: "total",render : (d) => `<span class="autonumeric">${d}</span>`}, {data: "total", className: "text-end", render : (d) => `<span class="autonumeric-facturas text-end">${d}</span>`},
], ],
order: [[1, "asc"]], order: [[1, "asc"]],
dom: 't', dom: 't',
@ -417,29 +425,39 @@ var tableLineas = $('#tableOfLineasFactura').DataTable({
}); });
} }
}); });
$("span.autonumeric-facturas").each(function () {
let autoNumericInstance = AutoNumeric.getAutoNumericElement(this)
if(autoNumericInstance){
autoNumericInstance.remove()
}
new AutoNumeric(this, {
digitGroupSeparator: ".",
decimalCharacter: ",",
allowDecimalPadding : 'floats',
decimalPlaces: 2,
unformatOnSubmit: true,
decimalPlacesShownOnFocus: 2,
decimalPlacesShownOnBlur: 2,
allowDecimalPadding: true,
});
});
}, },
footerCallback: function (row, data, start, end, display) { footerCallback: function (row, data, start, end, display) {
const table = this.api(); const table = this.api();
const intVal = i => typeof i === 'string' ? parseFloat(i.replace(/\./g, '').replace(',', '.')) || 0 : i || 0; const totalSubtotal = table.column(8).data().reduce((a, b) => parseFloat(a) + parseFloat(b), 0);
const totalIVA = table.column(9).data().reduce((a, b) => parseFloat(a) + parseFloat(b), 0);
const totalSubtotal = table.column(8).data().reduce((a, b) => intVal(a) + intVal(b), 0); const totalTotal = table.column(10).data().reduce((a, b) => parseFloat(a) + parseFloat(b), 0);
const totalIVA = table.column(9).data().reduce((a, b) => intVal(a) + intVal(b), 0);
const totalTotal = table.column(10).data().reduce((a, b) => intVal(a) + intVal(b), 0);
autoNumericSubtotal.set(totalSubtotal); autoNumericSubtotal.set(totalSubtotal);
autoNumericIVA.set(totalIVA); autoNumericIVA.set(totalIVA);
autoNumericTotal.set(totalTotal); autoNumericTotal.set(totalTotal);
<?php if($facturaEntity->estado == 'borrador') :?> var total_pagos = autoNumericTotalCobrado.getNumber();
var pendientePago = totalTotal; var pendientePago = totalTotal - total_pagos;
var total_pagos = 0;
<?php else: ?>
var total_pagos = autoNumericTotalCobrado.getNumber();
var pendientePago = totalTotal - total_pagos;
<?php endif; ?>
if (isNaN(pendientePago)) pendientePago = 0; if (isNaN(pendientePago)) pendientePago = 0;
autoNumericPendientePago.set(pendientePago); autoNumericPendientePago.set(pendientePago);
@ -499,6 +517,8 @@ function deleteConfirmedLinea(params){
<?= csrf_token() ?? "token" ?> : <?= csrf_token() ?>v <?= csrf_token() ?? "token" ?> : <?= csrf_token() ?>v
} }
}).done((data, textStatus, jqXHR) => { }).done((data, textStatus, jqXHR) => {
tablelineas.clearPipeline().footerCallback().draw();
$('#tableOfLineasPagos').DataTable().clearPipeline().footerCallback().draw();
}).fail((jqXHR, textStatus, errorThrown) => { }).fail((jqXHR, textStatus, errorThrown) => {
popErrorAlert(jqXHR.responseJSON.messages.error) popErrorAlert(jqXHR.responseJSON.messages.error)

View File

@ -22,12 +22,12 @@
<tbody></tbody> <tbody></tbody>
<tfoot> <tfoot>
<tr> <tr>
<td colspan="6" style="text-align:right">Total cobrado:</td> <td colspan="6" class="text-end">Total cobrado:</td>
<td><span id="totalCobrado-sum" class="autonumeric"></span></td> <td class="text-end"><span id="totalCobrado-sum" class="autonumeric text-end"></span></td>
</tr> </tr>
<tr> <tr>
<td colspan="6" style="text-align:right">Total pendiente:</td> <td colspan="6" class="text-end">Total pendiente:</td>
<td><span id="pendienteCobro-sum" class="autonumeric"></span></td> <td class="text-end"><span id="pendienteCobro-sum" class="autonumeric text-end"></span></td>
</tr> </tr>
</tfoot> </tfoot>
</table> </table>
@ -147,6 +147,8 @@ editor_pagos.on('open',(event)=>{
allowDecimalPadding : 'floats', allowDecimalPadding : 'floats',
decimalPlaces: 2, decimalPlaces: 2,
unformatOnSubmit: true, unformatOnSubmit: true,
decimalPlacesShownOnFocus: 2,
decimalPlacesShownOnBlur: 2,
}); });
}) })
@ -183,20 +185,25 @@ editor_pagos.on( 'postSubmit', function ( e, json, data, action ) {
yeniden(json.<?= csrf_token() ?>); yeniden(json.<?= csrf_token() ?>);
tablePagos.clearPipeline(); tablePagos.clearPipeline();
tablePagos.draw(); tablePagos.draw();
updateFooterLineas(tableLineas);
}); });
const autoNumericTotalCobrado = new AutoNumeric('#totalCobrado-sum', 0, { const autoNumericTotalCobrado = new AutoNumeric('#totalCobrado-sum', 0, {
decimalPlaces: 2, decimalPlaces: 2,
digitGroupSeparator: ',', digitGroupSeparator: ',',
decimalCharacter: '.', decimalCharacter: '.',
unformatOnSubmit: true unformatOnSubmit: true,
decimalPlacesShownOnFocus: 2,
decimalPlacesShownOnBlur: 2,
}); });
const autoNumericPendienteCobro = new AutoNumeric('#pendienteCobro-sum', 0, { const autoNumericPendienteCobro = new AutoNumeric('#pendienteCobro-sum', 0, {
decimalPlaces: 2, decimalPlaces: 2,
digitGroupSeparator: ',', digitGroupSeparator: ',',
decimalCharacter: '.', decimalCharacter: '.',
unformatOnSubmit: true unformatOnSubmit: true,
decimalPlacesShownOnFocus: 2,
decimalPlacesShownOnBlur: 2,
}); });
var tablePagos = $('#tableOfLineasPagos').DataTable({ var tablePagos = $('#tableOfLineasPagos').DataTable({
@ -237,7 +244,11 @@ var tablePagos = $('#tableOfLineasPagos').DataTable({
return data!='0000-00-00 00:00:00' ? moment(data).format('DD/MM/YYYY') : ''; return data!='0000-00-00 00:00:00' ? moment(data).format('DD/MM/YYYY') : '';
} }
}, },
{data: "total",render : (d) => `<span class="autonumeric">${d}</span>`}, {
data: "total",
className: "text-end",
render : (d) => `<span class="autonumeric-pagos text-end">${d}</span>`
},
], ],
order: [[1, "asc"]], order: [[1, "asc"]],
dom: 't', dom: 't',
@ -270,14 +281,27 @@ var tablePagos = $('#tableOfLineasPagos').DataTable({
}, },
], ],
drawCallback: function (settings) {
$("span.autonumeric-pagos").each(function () {
let autoNumericInstance = AutoNumeric.getAutoNumericElement(this)
if(autoNumericInstance){
autoNumericInstance.remove()
}
new AutoNumeric(this, {
digitGroupSeparator: ".",
decimalCharacter: ",",
allowDecimalPadding : 'floats',
decimalPlaces: 2,
unformatOnSubmit: true,
decimalPlacesShownOnFocus: 2,
decimalPlacesShownOnBlur: 2,
allowDecimalPadding: true,
});
});
},
footerCallback: function (row, data, start, end, display) { footerCallback: function (row, data, start, end, display) {
var api = this.api(); var api = this.api();
var intVal = function (i) {
// Convertir a número o devolver 0 si no es válido
return typeof i === 'string' ? i.replace(/[\$,]/g, '')*1 : typeof i === 'number' ? i : 0;
};
var filas = []; var filas = [];
api.rows().every(function() { api.rows().every(function() {
var data = this.data(); var data = this.data();
@ -287,7 +311,7 @@ var tablePagos = $('#tableOfLineasPagos').DataTable({
}); });
var totalPagos = filas var totalPagos = filas
.reduce(function(a, data) { .reduce(function(a, data) {
return a + intVal(data['total']); // Aquí asumimos que la columna 6 está en el índice 5 return parseFloat(a) + parseFloat(data['total']);
}, 0); }, 0);
var filas = []; var filas = [];
@ -299,7 +323,7 @@ var tablePagos = $('#tableOfLineasPagos').DataTable({
}); });
var totalPendiente = filas var totalPendiente = filas
.reduce(function(a, data) { .reduce(function(a, data) {
return a + intVal(data['total']); // Aquí asumimos que la columna 6 está en el índice 5 return parseFloat(a) + parseFloat(data['total']);
}, 0); }, 0);
// Update footer // Update footer
@ -317,13 +341,8 @@ var tablePagos = $('#tableOfLineasPagos').DataTable({
function updateFooterLineas(table){ function updateFooterLineas(table){
// Assuming pendiente de pago is totalTotal - totalIVA for this example // Assuming pendiente de pago is totalTotal - totalIVA for this example
<?php if($facturaEntity->estado == 'borrador') :?> var total_pagos = autoNumericTotalCobrado.getNumber();
var pendientePago = autoNumericTotal.getNumber(); var pendientePago = autoNumericTotal.getNumber() - total_pagos;
var total_pagos = 0;
<?php else: ?>
var total_pagos = autoNumericTotalCobrado.getNumber();
var pendientePago = autoNumericTotal.getNumber() - total_pagos;
<?php endif; ?>
// Se comprueba si pendientePago es un numero o NAN // Se comprueba si pendientePago es un numero o NAN
if(isNaN(pendientePago)){ if(isNaN(pendientePago)){
pendientePago = 0; pendientePago = 0;
@ -340,10 +359,10 @@ function updateFooterLineas(table){
pendiente: pendientePago pendiente: pendientePago
} }
}).done((data, textStatus, jqXHR) => { }).done((data, textStatus, jqXHR) => {
if($('#pendiente-pago').html() == '0.00'){ if(autoNumericPendientePago.getNumber() == 0){
$('#addPagoRow').hide(); $('#addPagoRow').hide();
} else { } else {
$('#validarFactura').show(); $('#addPagoRow').show();
} }
if(data.estado_pago == 'pagada'){ if(data.estado_pago == 'pagada'){
$('#estado_pago_text').text('<?= lang('Facturas.pagada') ?>'); $('#estado_pago_text').text('<?= lang('Facturas.pagada') ?>');

View File

@ -22,7 +22,7 @@
<?php endif; ?> <?php endif; ?>
<?= view("themes/vuexy/form/facturas/_facturaLineasItems") ?> <?= view("themes/vuexy/form/facturas/_facturaLineasItems") ?>
<?php if($facturaEntity->estado !='borrador' && (strpos($facturaEntity->numero, "REC ") !== 0) ) : ?> <?php if((strpos($facturaEntity->numero, "REC ") !== 0) ) : ?>
<?= view("themes/vuexy/form/facturas/_pagosFacturasItems") ?> <?= view("themes/vuexy/form/facturas/_pagosFacturasItems") ?>
<?php endif; ?> <?php endif; ?>
<?php if($facturaEntity->estado !='borrador' && (strpos($facturaEntity->numero, "REC ") === 0) ) : ?> <?php if($facturaEntity->estado !='borrador' && (strpos($facturaEntity->numero, "REC ") === 0) ) : ?>
@ -38,6 +38,9 @@
name="validarFactura" name="validarFactura"
value="<?= lang("Facturas.validarFactura") ?>" value="<?= lang("Facturas.validarFactura") ?>"
/> />
<?php endif; ?>
<?php if($facturaEntity->showDeleteButton == true && $facturaEntity->estado !='validada') : ?>
<input type="button" <input type="button"
class="btn btn-danger float-start me-sm-3 me-1" class="btn btn-danger float-start me-sm-3 me-1"
id="borrarFactura" id="borrarFactura"

View File

@ -86,7 +86,7 @@
<label for="total_precio" class="form-label"> <label for="total_precio" class="form-label">
<?= lang('Pedidos.total_precio') ?> <?= lang('Pedidos.total_precio') ?>
</label> </label>
<input readonly id="total_precio" name="total_precio" tabindex="1" maxLength="11" class="form-control" value="<?= old('total_precio', $pedidoEntity->total_precio) ?>" > <input readonly id="total_precio" name="total_precio" tabindex="1" maxLength="11" class="form-control autonumeric" value="<?= old('total_precio', $pedidoEntity->total_precio) ?>" >
</div> </div>
</div><!--//.mb-3 --> </div><!--//.mb-3 -->
@ -100,6 +100,7 @@
</div><!--//.mb-3 --> </div><!--//.mb-3 -->
</div> </div>
</div> <!--//accordion-body --> </div> <!--//accordion-body -->
</div> <!--//accordionFechasTip--> </div> <!--//accordionFechasTip-->
</div> <!--//card--> </div> <!--//card-->
@ -121,7 +122,8 @@
<label for="fecha_entrega_real" class="fecha-pedido form-label"> <label for="fecha_entrega_real" class="fecha-pedido form-label">
<?= lang('Pedidos.fecha_entrega_real') ?> <?= lang('Pedidos.fecha_entrega_real') ?>
</label> </label>
<input type="text" value="" id="fecha_entrega_real" name="fecha_entrega_real" tabindex="1" maxLength="11" class="form-control" value="<?= old('fecha_entrega_real', $pedidoEntity->fecha_entrega_real) ?>" > <input type="text" value="" id="fecha_entrega_real" name="fecha_entrega_real" tabindex="1" maxLength="11" class="form-control inaplazable-date" value="<?= old('fecha_entrega_real', $pedidoEntity->fecha_entrega_real) ?>" >
<div id="fecha_entrega_real_change_user" class="form-text"><?= $pedidoEntity->fecha_entrega_real_change_user?></div>
</div> </div>
</div> </div>
<div class="col-md-12 col-lg-3 px-4"> <div class="col-md-12 col-lg-3 px-4">
@ -129,7 +131,8 @@
<label for="fecha_impresion" class="form-label"> <label for="fecha_impresion" class="form-label">
<?= lang('Pedidos.fecha_impresion') ?> <?= lang('Pedidos.fecha_impresion') ?>
</label> </label>
<input type="text" id="fecha_impresion" name="fecha_impresion" tabindex="1" maxLength="11" class="fecha-pedido form-control" value="<?= old('fecha_impresion', $pedidoEntity->fecha_impresion) ?>" > <input type="text" id="fecha_impresion" name="fecha_impresion" tabindex="1" maxLength="11" class="fecha-pedido form-control inaplazable-date" value="<?= old('fecha_impresion', $pedidoEntity->fecha_impresion) ?>" >
<div id="fecha_impresion_change_user" class="form-text"><?= $pedidoEntity->fecha_impresion_change_user?></div>
</div> </div>
</div> </div>
<div class="col-md-12 col-lg-3 px-4"> <div class="col-md-12 col-lg-3 px-4">
@ -137,7 +140,8 @@
<label for="fecha_encuadernado" class="form-label"> <label for="fecha_encuadernado" class="form-label">
<?= lang('Pedidos.fecha_encuadernado') ?> <?= lang('Pedidos.fecha_encuadernado') ?>
</label> </label>
<input type="text" id="fecha_encuadernado" name="fecha_encuadernado" tabindex="1" maxLength="11" class="fecha-pedido form-control" value="<?= old('fecha_encuadernado', $pedidoEntity->fecha_encuadernado) ?>" > <input type="text" id="fecha_encuadernado" name="fecha_encuadernado" tabindex="1" maxLength="11" class="fecha-pedido form-control inaplazable-date" value="<?= old('fecha_encuadernado', $pedidoEntity->fecha_encuadernado) ?>" >
<div id="fecha_encuadernado_change_user" class="form-text"><?= $pedidoEntity->fecha_encuadernado_change_user?></div>
</div> </div>
</div> </div>
<div class="col-md-12 col-lg-3 px-4"> <div class="col-md-12 col-lg-3 px-4">
@ -145,10 +149,25 @@
<label for="fecha_entrega_externo" class="form-label"> <label for="fecha_entrega_externo" class="form-label">
<?= lang('Pedidos.fecha_entrega_externo') ?> <?= lang('Pedidos.fecha_entrega_externo') ?>
</label> </label>
<input type="text" id="fecha_entrega_externo" name="fecha_entrega_externo" tabindex="1" maxLength="11" class="fecha-pedido form-control" value="<?= old('fecha_entrega_externo', $pedidoEntity->fecha_entrega_externo) ?>" > <input type="text" id="fecha_entrega_externo" name="fecha_entrega_externo" tabindex="1" maxLength="11" class="fecha-pedido form-control inaplazable-date" value="<?= old('fecha_entrega_externo', $pedidoEntity->fecha_entrega_externo) ?>" >
<div id="fecha_entrega_externo_change_user" class="form-text"><?= $pedidoEntity->fecha_entrega_externo_change_user?></div>
</div> </div>
</div> </div>
</div> </div>
<div class="row">
<label class="switch switch-danger switch-lg mt-1">
<input type="checkbox" class="switch-input ot-preview" id="inaplazable" name="inaplazable" <?=$pedidoEntity->inaplazable?"checked":""?> />
<span class="switch-toggle-slider">
<span class="switch-on">
<i class="ti ti-alert-triangle"></i>
</span>
<span class="switch-off">
<i class="ti ti-x"></i>
</span>
</span>
<span class="switch-label fw-large">Inaplazable</span>
</label>
</div>
</div> </div>
</div> <!--//accordionFechasTip--> </div> <!--//accordionFechasTip-->
</div> <!--//card--> </div> <!--//card-->
@ -183,6 +202,24 @@
<?=$this->section('additionalInlineJs') ?> <?=$this->section('additionalInlineJs') ?>
document.getElementById('inaplazable').addEventListener('change', () => {
updateDate('inaplazable', $('#inaplazable').prop('checked') ? 1 : 0);
});
if(<?= $pedidoEntity->inaplazable?1:0 ?>){
$('.inaplazable-date').addClass('text-danger fw-bold');
}
const autonumericTotalPrecio = new AutoNumeric('#total_precio', {
decimalPlaces: 2,
digitGroupSeparator: '.',
decimalCharacter: ',',
allowDecimalPadding: true,
unformatOnSubmit: true,
});
$("#fecha_entrega_real").flatpickr({ $("#fecha_entrega_real").flatpickr({
defaultDate: <?= $pedidoEntity->fecha_entrega_real_text ? "'".$pedidoEntity->fecha_entrega_real_text."'" : 'null' ?>, defaultDate: <?= $pedidoEntity->fecha_entrega_real_text ? "'".$pedidoEntity->fecha_entrega_real_text."'" : 'null' ?>,
dateFormat: "d/m/Y", dateFormat: "d/m/Y",
@ -321,10 +358,21 @@ function updateDate(elementId, dateStr) {
data = { data = {
<?= csrf_token() ?? "token" ?>: <?= csrf_token() ?>v, <?= csrf_token() ?? "token" ?>: <?= csrf_token() ?>v,
}; };
var parts = dateStr.split('/');
var newFormat = parts[2] + '-' + parts[1] + '-' + parts[0]; // Asume dateStr en formato d/m/Y. if(elementId == 'inaplazable'){
data[elementId] = dateStr;
data[elementId] = newFormat; if(dateStr == 1){
$('.inaplazable-date').addClass('text-danger fw-bold');
}
else{
$('.inaplazable-date').removeClass('text-danger fw-bold');
}
}else{
var parts = dateStr.split('/');
var newFormat = parts[2] + '-' + parts[1] + '-' + parts[0]; // Asume dateStr en formato d/m/Y.
data[elementId] = newFormat;
}
var url = '<?= route_to('actualizarPedido', ':id') ?>'; var url = '<?= route_to('actualizarPedido', ':id') ?>';
url = url.replace(':id', id ); url = url.replace(':id', id );
@ -336,11 +384,16 @@ function updateDate(elementId, dateStr) {
success: function(response){ success: function(response){
if('error' in response){ if('error' in response){
if(response.error == 0){
for (const [key, value] of Object.entries(response)) {
if (key.endsWith('_change_user')) {
$("#" + key).html(value);
}
}
}
} }
} }
}); });
} }
<?=$this->endSection() ?> <?=$this->endSection() ?>

View File

@ -155,7 +155,7 @@
<!-- Configuraciones --> <!-- Configuraciones -->
<div class="row g-3 mb-3"> <div class="row g-3 mb-3">
<div class="col-12"> <div class="col-12">
<a id="pv_bn_pg" href="#" sk-url="<?= site_url('configuracion/papelesgenericos/edit/'); ?>" target="_blank"> <a id="pv_bn_pg" href="#" sk-url="<?= str_replace('/0', '', route_to('updatePapelGenerico', 0)); ?>" target="_blank">
<div class="d-grid"> <div class="d-grid">
<button type="button" class="btn btn-label-primary"> <button type="button" class="btn btn-label-primary">
<?= lang("Presupuestos.previewPapelGenerico") ?> <?= lang("Presupuestos.previewPapelGenerico") ?>
@ -164,7 +164,7 @@
</a> </a>
</div> </div>
<div class="col-12"> <div class="col-12">
<a id="pv_bn_pi" href="#" sk-url="<?= site_url('configuracion/papelesimpresion/edit/'); ?>" target="_blank"> <a id="pv_bn_pi" href="#" sk-url="<?= str_replace('/0', '', route_to('updatePapelImpresion', 0)); ?>" target="_blank">
<div class="d-grid"> <div class="d-grid">
<button type="button" class="btn btn-label-primary"> <button type="button" class="btn btn-label-primary">
<?= lang("Presupuestos.previewPapelCompra") ?> <?= lang("Presupuestos.previewPapelCompra") ?>
@ -173,7 +173,7 @@
</a> </a>
</div> </div>
<div class="col-12"> <div class="col-12">
<a id="pv_bn_mi" href="#" sk-url="<?= site_url('configuracion/maquinas/edit/'); ?>" target="_blank"> <a id="pv_bn_mi" href="#" sk-url="<?= str_replace('/0', '', route_to('updateMaquina', 0)); ?>" target="_blank">
<div class="d-grid"> <div class="d-grid">
<button type="button" class="btn btn-label-primary"> <button type="button" class="btn btn-label-primary">
<?= lang("Presupuestos.previewAreaImpresion") ?> <?= lang("Presupuestos.previewAreaImpresion") ?>
@ -237,7 +237,7 @@
<!-- Configuraciones --> <!-- Configuraciones -->
<div class="row g-3 mb-3"> <div class="row g-3 mb-3">
<div class="col-12"> <div class="col-12">
<a id="pv_bnhq_pg" href="#" sk-url="<?= site_url('configuracion/papelesgenericos/edit/'); ?>" target="_blank"> <a id="pv_bnhq_pg" href="#" sk-url="<?= str_replace('/0', '', route_to('updatePapelGenerico', 0)); ?>" target="_blank">
<div class="d-grid"> <div class="d-grid">
<button type="button" class="btn btn-label-primary"> <button type="button" class="btn btn-label-primary">
<?= lang("Presupuestos.previewPapelGenerico") ?> <?= lang("Presupuestos.previewPapelGenerico") ?>
@ -246,7 +246,7 @@
</a> </a>
</div> </div>
<div class="col-12"> <div class="col-12">
<a id="pv_bnhq_pi" href="#" sk-url="<?= site_url('configuracion/papelesimpresion/edit/'); ?>" target="_blank"> <a id="pv_bnhq_pi" href="#" sk-url="<?= str_replace('/0', '', route_to('updatePapelImpresion', 0)); ?>" target="_blank">
<div class="d-grid"> <div class="d-grid">
<button type="button" class="btn btn-label-primary"> <button type="button" class="btn btn-label-primary">
<?= lang("Presupuestos.previewPapelCompra") ?> <?= lang("Presupuestos.previewPapelCompra") ?>
@ -255,7 +255,7 @@
</a> </a>
</div> </div>
<div class="col-12"> <div class="col-12">
<a id="pv_bnhq_mi" href="#" sk-url="<?= site_url('configuracion/maquinas/edit/'); ?>" target="_blank"> <a id="pv_bnhq_mi" href="#" sk-url="<?= str_replace('/0', '', route_to('updateMaquina', 0)); ?>" target="_blank">
<div class="d-grid"> <div class="d-grid">
<button type="button" class="btn btn-label-primary"> <button type="button" class="btn btn-label-primary">
<?= lang("Presupuestos.previewAreaImpresion") ?> <?= lang("Presupuestos.previewAreaImpresion") ?>
@ -319,7 +319,7 @@
<!-- Configuraciones --> <!-- Configuraciones -->
<div class="row g-3 mb-3"> <div class="row g-3 mb-3">
<div class="col-12"> <div class="col-12">
<a id="pv_color_pg" href="#" sk-url="<?= site_url('configuracion/papelesgenericos/edit/'); ?>" target="_blank"> <a id="pv_color_pg" href="#" sk-url="<?= str_replace('/0', '', route_to('updatePapelGenerico', 0)); ?>" target="_blank">
<div class="d-grid"> <div class="d-grid">
<button type="button" class="btn btn-label-primary"> <button type="button" class="btn btn-label-primary">
<?= lang("Presupuestos.previewPapelGenerico") ?> <?= lang("Presupuestos.previewPapelGenerico") ?>
@ -328,7 +328,7 @@
</a> </a>
</div> </div>
<div class="col-12"> <div class="col-12">
<a id="pv_color_pi" href="#" sk-url="<?= site_url('configuracion/papelesimpresion/edit/'); ?>" target="_blank"> <a id="pv_color_pi" href="#" sk-url="<?= str_replace('/0', '', route_to('updatePapelImpresion', 0)); ?>" target="_blank">
<div class="d-grid"> <div class="d-grid">
<button type="button" class="btn btn-label-primary"> <button type="button" class="btn btn-label-primary">
<?= lang("Presupuestos.previewPapelCompra") ?> <?= lang("Presupuestos.previewPapelCompra") ?>
@ -337,7 +337,7 @@
</a> </a>
</div> </div>
<div class="col-12"> <div class="col-12">
<a id="pv_color_mi" href="#" sk-url="<?= site_url('configuracion/maquinas/edit/'); ?>" target="_blank"> <a id="pv_color_mi" href="#" sk-url="<?= str_replace('/0', '', route_to('updateMaquina', 0)); ?>" target="_blank">
<div class="d-grid"> <div class="d-grid">
<button type="button" class="btn btn-label-primary"> <button type="button" class="btn btn-label-primary">
<?= lang("Presupuestos.previewAreaImpresion") ?> <?= lang("Presupuestos.previewAreaImpresion") ?>
@ -401,7 +401,7 @@
<!-- Configuraciones --> <!-- Configuraciones -->
<div class="row g-3 mb-3"> <div class="row g-3 mb-3">
<div class="col-12"> <div class="col-12">
<a id="pv_colorhq_pg" href="#" sk-url="<?= site_url('configuracion/papelesgenericos/edit/'); ?>" target="_blank"> <a id="pv_colorhq_pg" href="#" sk-url="<?= str_replace('/0', '', route_to('updatePapelGenerico', 0)); ?>" target="_blank">
<div class="d-grid"> <div class="d-grid">
<button type="button" class="btn btn-label-primary"> <button type="button" class="btn btn-label-primary">
<?= lang("Presupuestos.previewPapelGenerico") ?> <?= lang("Presupuestos.previewPapelGenerico") ?>
@ -410,7 +410,7 @@
</a> </a>
</div> </div>
<div class="col-12"> <div class="col-12">
<a id="pv_colorhq_pi" href="#" sk-url="<?= site_url('configuracion/papelesimpresion/edit/'); ?>" target="_blank"> <a id="pv_colorhq_pi" href="#" sk-url="<?= str_replace('/0', '', route_to('updatePapelImpresion', 0)); ?>" target="_blank">
<div class="d-grid"> <div class="d-grid">
<button type="button" class="btn btn-label-primary"> <button type="button" class="btn btn-label-primary">
<?= lang("Presupuestos.previewPapelCompra") ?> <?= lang("Presupuestos.previewPapelCompra") ?>
@ -419,7 +419,7 @@
</a> </a>
</div> </div>
<div class="col-12"> <div class="col-12">
<a id="pv_colorhq_mi" href="#" sk-url="<?= site_url('configuracion/maquinas/edit/'); ?>" target="_blank"> <a id="pv_colorhq_mi" href="#" sk-url="<?= str_replace('/0', '', route_to('updateMaquina', 0)); ?>" target="_blank">
<div class="d-grid"> <div class="d-grid">
<button type="button" class="btn btn-label-primary"> <button type="button" class="btn btn-label-primary">
<?= lang("Presupuestos.previewAreaImpresion") ?> <?= lang("Presupuestos.previewAreaImpresion") ?>
@ -485,7 +485,7 @@
<!-- Configuraciones --> <!-- Configuraciones -->
<div class="row g-3 mb-3"> <div class="row g-3 mb-3">
<div class="col-12"> <div class="col-12">
<a id="pv_rot_bn_pg" href="#" sk-url="<?= site_url('configuracion/papelesgenericos/edit/'); ?>" target="_blank"> <a id="pv_rot_bn_pg" href="#" sk-url="<?= str_replace('/0', '', route_to('updatePapelGenerico', 0)); ?>" target="_blank">
<div class="d-grid"> <div class="d-grid">
<button type="button" class="btn btn-label-primary"> <button type="button" class="btn btn-label-primary">
<?= lang("Presupuestos.previewPapelGenerico") ?> <?= lang("Presupuestos.previewPapelGenerico") ?>
@ -494,7 +494,7 @@
</a> </a>
</div> </div>
<div class="col-12"> <div class="col-12">
<a id="pv_rot_bn_pi" href="#" sk-url="<?= site_url('configuracion/papelesimpresion/edit/'); ?>" target="_blank"> <a id="pv_rot_bn_pi" href="#" sk-url="<?= str_replace('/0', '', route_to('updatePapelImpresion', 0)); ?>" target="_blank">
<div class="d-grid"> <div class="d-grid">
<button type="button" class="btn btn-label-primary"> <button type="button" class="btn btn-label-primary">
<?= lang("Presupuestos.previewPapelCompra") ?> <?= lang("Presupuestos.previewPapelCompra") ?>
@ -503,7 +503,7 @@
</a> </a>
</div> </div>
<div class="col-12"> <div class="col-12">
<a id="pv_rot_bn_mi" href="#" sk-url="<?= site_url('configuracion/maquinas/edit/'); ?>" target="_blank"> <a id="pv_rot_bn_mi" href="#" sk-url="<?= str_replace('/0', '', route_to('updateMaquina', 0)); ?>" target="_blank">
<div class="d-grid"> <div class="d-grid">
<button type="button" class="btn btn-label-primary"> <button type="button" class="btn btn-label-primary">
<?= lang("Presupuestos.previewAreaImpresion") ?> <?= lang("Presupuestos.previewAreaImpresion") ?>
@ -565,7 +565,7 @@
<!-- Configuraciones --> <!-- Configuraciones -->
<div class="row g-3 mb-3"> <div class="row g-3 mb-3">
<div class="col-12"> <div class="col-12">
<a id="pv_rot_color_pg" href="#" sk-url="<?= site_url('configuracion/papelesgenericos/edit/'); ?>" target="_blank"> <a id="pv_rot_color_pg" href="#" sk-url="<?= str_replace('/0', '', route_to('updatePapelGenerico', 0)); ?>" target="_blank">
<div class="d-grid"> <div class="d-grid">
<button type="button" class="btn btn-label-primary"> <button type="button" class="btn btn-label-primary">
<?= lang("Presupuestos.previewPapelGenerico") ?> <?= lang("Presupuestos.previewPapelGenerico") ?>
@ -574,7 +574,7 @@
</a> </a>
</div> </div>
<div class="col-12"> <div class="col-12">
<a id="pv_rot_color_pi" href="#" sk-url="<?= site_url('configuracion/papelesimpresion/edit/'); ?>" target="_blank"> <a id="pv_rot_color_pi" href="#" sk-url="<?= str_replace('/0', '', route_to('updatePapelImpresion', 0)); ?>" target="_blank">
<div class="d-grid"> <div class="d-grid">
<button type="button" class="btn btn-label-primary"> <button type="button" class="btn btn-label-primary">
<?= lang("Presupuestos.previewPapelCompra") ?> <?= lang("Presupuestos.previewPapelCompra") ?>
@ -583,7 +583,7 @@
</a> </a>
</div> </div>
<div class="col-12"> <div class="col-12">
<a id="pv_rot_color_mi" href="#" sk-url="<?= site_url('configuracion/maquinas/edit/'); ?>" target="_blank"> <a id="pv_rot_color_mi" href="#" sk-url="<?= str_replace('/0', '', route_to('updateMaquina', 0)); ?>" target="_blank">
<div class="d-grid"> <div class="d-grid">
<button type="button" <button type="button"
class="btn btn-label-primary"> class="btn btn-label-primary">
@ -646,7 +646,7 @@
<!-- Configuraciones --> <!-- Configuraciones -->
<div class="row g-3 mb-3"> <div class="row g-3 mb-3">
<div class="col-12"> <div class="col-12">
<a id="pv_guardas_pg" href="#" sk-url="<?= site_url('configuracion/papelesgenericos/edit/'); ?>" target="_blank"> <a id="pv_guardas_pg" href="#" sk-url="<?= str_replace('/0', '', route_to('updatePapelGenerico', 0)); ?>" target="_blank">
<div class="d-grid"> <div class="d-grid">
<button type="button" class="btn btn-label-primary"> <button type="button" class="btn btn-label-primary">
<?= lang("Presupuestos.previewPapelGenerico") ?> <?= lang("Presupuestos.previewPapelGenerico") ?>
@ -655,7 +655,7 @@
</a> </a>
</div> </div>
<div class="col-12"> <div class="col-12">
<a id="pv_guardas_pi" href="#" sk-url="<?= site_url('configuracion/papelesimpresion/edit/'); ?>" target="_blank"> <a id="pv_guardas_pi" href="#" sk-url="<?= str_replace('/0', '', route_to('updatePapelImpresion', 0)); ?>" target="_blank">
<div class="d-grid"> <div class="d-grid">
<button type="button" class="btn btn-label-primary"> <button type="button" class="btn btn-label-primary">
<?= lang("Presupuestos.previewPapelCompra") ?> <?= lang("Presupuestos.previewPapelCompra") ?>
@ -664,7 +664,7 @@
</a> </a>
</div> </div>
<div class="col-12"> <div class="col-12">
<a id="pv_guardas_mi" href="#" sk-url="<?= site_url('configuracion/maquinas/edit/'); ?>" target="_blank"> <a id="pv_guardas_mi" href="#" sk-url="<?= str_replace('/0', '', route_to('updateMaquina', 0)); ?>" target="_blank">
<div class="d-grid"> <div class="d-grid">
<button type="button" class="btn btn-label-primary"> <button type="button" class="btn btn-label-primary">
<?= lang("Presupuestos.previewAreaImpresion") ?> <?= lang("Presupuestos.previewAreaImpresion") ?>
@ -728,7 +728,7 @@
<!-- Configuraciones --> <!-- Configuraciones -->
<div class="row g-3 mb-3"> <div class="row g-3 mb-3">
<div class="col-12"> <div class="col-12">
<a id="pv_cubierta_pg" href="#" sk-url="<?= site_url('configuracion/papelesgenericos/edit/'); ?>" target="_blank"> <a id="pv_cubierta_pg" href="#" sk-url="<?= str_replace('/0', '', route_to('updatePapelGenerico', 0)); ?>" target="_blank">
<div class="d-grid"> <div class="d-grid">
<button type="button" class="btn btn-label-primary"> <button type="button" class="btn btn-label-primary">
<?= lang("Presupuestos.previewPapelGenerico") ?> <?= lang("Presupuestos.previewPapelGenerico") ?>
@ -737,7 +737,7 @@
</a> </a>
</div> </div>
<div class="col-12"> <div class="col-12">
<a id="pv_cubierta_pi" href="#" sk-url="<?= site_url('configuracion/papelesimpresion/edit/'); ?>" target="_blank"> <a id="pv_cubierta_pi" href="#" sk-url="<?= str_replace('/0', '', route_to('updatePapelImpresion', 0)); ?>" target="_blank">
<div class="d-grid"> <div class="d-grid">
<button type="button" class="btn btn-label-primary"> <button type="button" class="btn btn-label-primary">
<?= lang("Presupuestos.previewPapelCompra") ?> <?= lang("Presupuestos.previewPapelCompra") ?>
@ -746,7 +746,7 @@
</a> </a>
</div> </div>
<div class="col-12"> <div class="col-12">
<a id="pv_cubierta_mi" href="#" sk-url="<?= site_url('configuracion/maquinas/edit/'); ?>" target="_blank"> <a id="pv_cubierta_mi" href="#" sk-url="<?= str_replace('/0', '', route_to('updateMaquina', 0)); ?>" target="_blank">
<div class="d-grid"> <div class="d-grid">
<button type="button" class="btn btn-label-primary"> <button type="button" class="btn btn-label-primary">
<?= lang("Presupuestos.previewAreaImpresion") ?> <?= lang("Presupuestos.previewAreaImpresion") ?>
@ -813,7 +813,7 @@
<!-- Configuraciones --> <!-- Configuraciones -->
<div class="row g-3 mb-3"> <div class="row g-3 mb-3">
<div class="col-12"> <div class="col-12">
<a id="pv_ec_pg" href="#" sk-url="<?= site_url('configuracion/papelesgenericos/edit/'); ?>" target="_blank"> <a id="pv_ec_pg" href="#" sk-url="<?= str_replace('/0', '', route_to('updatePapelGenerico', 0)); ?>" target="_blank">
<div class="d-grid"> <div class="d-grid">
<button type="button" class="btn btn-label-primary"> <button type="button" class="btn btn-label-primary">
<?= lang("Presupuestos.previewPapelGenerico") ?> <?= lang("Presupuestos.previewPapelGenerico") ?>
@ -822,7 +822,7 @@
</a> </a>
</div> </div>
<div class="col-12"> <div class="col-12">
<a id="pv_ec_pi" href="#" sk-url="<?= site_url('configuracion/papelesimpresion/edit/'); ?>" target="_blank"> <a id="pv_ec_pi" href="#" sk-url="<?= str_replace('/0', '', route_to('updatePapelImpresion', 0)); ?>" target="_blank">
<div class="d-grid"> <div class="d-grid">
<button type="button" class="btn btn-label-primary"> <button type="button" class="btn btn-label-primary">
<?= lang("Presupuestos.previewPapelCompra") ?> <?= lang("Presupuestos.previewPapelCompra") ?>
@ -831,7 +831,7 @@
</a> </a>
</div> </div>
<div class="col-12"> <div class="col-12">
<a id="pv_ec_mi" href="#" sk-url="<?= site_url('configuracion/maquinas/edit/'); ?>" target="_blank"> <a id="pv_ec_mi" href="#" sk-url="<?= str_replace('/0', '', route_to('updateMaquina', 0)); ?>" target="_blank">
<div class="d-grid"> <div class="d-grid">
<button type="button" class="btn btn-label-primary"> <button type="button" class="btn btn-label-primary">
<?= lang("Presupuestos.previewAreaImpresion") ?> <?= lang("Presupuestos.previewAreaImpresion") ?>
@ -882,7 +882,7 @@
<!-- Configuraciones --> <!-- Configuraciones -->
<div class="row g-3 mb-3"> <div class="row g-3 mb-3">
<div class="col-12"> <div class="col-12">
<a id="pv_sobrecubierta_pg" href="#" sk-url="<?= site_url('configuracion/papelesgenericos/edit/'); ?>" target="_blank"> <a id="pv_sobrecubierta_pg" href="#" sk-url="<?= str_replace('/0', '', route_to('updatePapelGenerico', 0)); ?>" target="_blank">
<div class="d-grid"> <div class="d-grid">
<button type="button" class="btn btn-label-primary"> <button type="button" class="btn btn-label-primary">
<?= lang("Presupuestos.previewPapelGenerico") ?> <?= lang("Presupuestos.previewPapelGenerico") ?>
@ -891,7 +891,7 @@
</a> </a>
</div> </div>
<div class="col-12"> <div class="col-12">
<a id="pv_sobrecubierta_pi" href="#" sk-url="<?= site_url('configuracion/papelesimpresion/edit/'); ?>" target="_blank"> <a id="pv_sobrecubierta_pi" href="#" sk-url="<?= str_replace('/0', '', route_to('updatePapelImpresion', 0)); ?>" target="_blank">
<div class="d-grid"> <div class="d-grid">
<button type="button" class="btn btn-label-primary"> <button type="button" class="btn btn-label-primary">
<?= lang("Presupuestos.previewPapelCompra") ?> <?= lang("Presupuestos.previewPapelCompra") ?>
@ -900,7 +900,7 @@
</a> </a>
</div> </div>
<div class="col-12"> <div class="col-12">
<a id="pv_sobrecubierta_mi" href="#" sk-url="<?= site_url('configuracion/maquinas/edit/'); ?>" target="_blank"> <a id="pv_sobrecubierta_mi" href="#" sk-url="<?= str_replace('/0', '', route_to('updateMaquina', 0)); ?>" target="_blank">
<div class="d-grid"> <div class="d-grid">
<button type="button" class="btn btn-label-primary"> <button type="button" class="btn btn-label-primary">
<?= lang("Presupuestos.previewAreaImpresion") ?> <?= lang("Presupuestos.previewAreaImpresion") ?>
@ -963,7 +963,7 @@
<!-- Configuraciones --> <!-- Configuraciones -->
<div class="row g-3 mb-3"> <div class="row g-3 mb-3">
<div class="col-12"> <div class="col-12">
<a id="pv_faja_pg" href="#" sk-url="<?= site_url('configuracion/papelesgenericos/edit/'); ?>" target="_blank"> <a id="pv_faja_pg" href="#" sk-url="<?= str_replace('/0', '', route_to('updatePapelGenerico', 0)); ?>" target="_blank">
<div class="d-grid"> <div class="d-grid">
<button type="button" class="btn btn-label-primary"> <button type="button" class="btn btn-label-primary">
<?= lang("Presupuestos.previewPapelGenerico") ?> <?= lang("Presupuestos.previewPapelGenerico") ?>
@ -972,7 +972,7 @@
</a> </a>
</div> </div>
<div class="col-12"> <div class="col-12">
<a id="pv_faja_pi" href="#" sk-url="<?= site_url('configuracion/papelesimpresion/edit/'); ?>" target="_blank"> <a id="pv_faja_pi" href="#" sk-url="<?= str_replace('/0', '', route_to('updatePapelImpresion', 0)); ?>" target="_blank">
<div class="d-grid"> <div class="d-grid">
<button type="button" class="btn btn-label-primary"> <button type="button" class="btn btn-label-primary">
<?= lang("Presupuestos.previewPapelCompra") ?> <?= lang("Presupuestos.previewPapelCompra") ?>
@ -981,7 +981,7 @@
</a> </a>
</div> </div>
<div class="col-12"> <div class="col-12">
<a id="pv_faja_mi" href="#" sk-url="<?= site_url('configuracion/maquinas/edit/'); ?>" target="_blank"> <a id="pv_faja_mi" href="#" sk-url="<?= str_replace('/0', '', route_to('updateMaquina', 0)); ?>" target="_blank">
<div class="d-grid"> <div class="d-grid">
<button type="button" class="btn btn-label-primary"> <button type="button" class="btn btn-label-primary">
<?= lang("Presupuestos.previewAreaImpresion") ?> <?= lang("Presupuestos.previewAreaImpresion") ?>

View File

@ -8,7 +8,7 @@
<h5 class="card-header">Perfil de Usuario</h5> <h5 class="card-header">Perfil de Usuario</h5>
<!-- Account --> <!-- Account -->
<div class="card-body"> <div class="card-body">
<form id="formAccountSettings" method="POST" action="<?= site_url("profile/store") ?>"> <form id="formAccountSettings" method="post" action="<?= route_to("profileStore") ?>">
<?= csrf_field() ?> <?= csrf_field() ?>
<div class="row"> <div class="row">
<div class="mb-3 col-md-4"> <div class="mb-3 col-md-4">
@ -81,13 +81,12 @@
</div> </div>
<!-- /Account --> <!-- /Account -->
</div> </div>
</div> </div>
<?php $settings = session()->get('settings'); ?>
</div> </div>
</div> </div>
<?= $this->endSection() ?> <?= $this->endSection() ?>

View File

@ -256,7 +256,7 @@
<?php if (count($temp = getArrayItem($menus, 'name', 'Paises')) > 0): ?> <?php if (count($temp = getArrayItem($menus, 'name', 'Paises')) > 0): ?>
<?php if (count(getArrayItem($temp, 'methods', 'index', true)) > 0): ?> <?php if (count(getArrayItem($temp, 'methods', 'index', true)) > 0): ?>
<li class="menu-item"> <li class="menu-item">
<a href="<?= site_url("configuracion/paises") ?>" class="menu-link"> <a href="<?= route_to('paisesList') ?>" class="menu-link">
<div data-i18n="<?= lang("App.menu_paises") ?>"><?= lang("App.menu_paises") ?></div> <div data-i18n="<?= lang("App.menu_paises") ?>"><?= lang("App.menu_paises") ?></div>
</a> </a>
</li> </li>

View File

@ -299,7 +299,7 @@
<?php if (count($temp = getArrayItem($menus, 'name', 'Paises')) > 0): ?> <?php if (count($temp = getArrayItem($menus, 'name', 'Paises')) > 0): ?>
<?php if (count(getArrayItem($temp, 'methods', 'index', true)) > 0): ?> <?php if (count(getArrayItem($temp, 'methods', 'index', true)) > 0): ?>
<li class="menu-item"> <li class="menu-item">
<a href="<?= site_url("configuracion/paises") ?>" class="menu-link"> <a href="<?= route_to('paisesList') ?>" class="menu-link">
<div data-i18n="<?= lang("App.menu_paises") ?>"><?= lang("App.menu_paises") ?></div> <div data-i18n="<?= lang("App.menu_paises") ?>"><?= lang("App.menu_paises") ?></div>
</a> </a>
</li> </li>

View File

@ -37,28 +37,28 @@ if (
<?php } ?> <?php } ?>
<?php if (auth()->user()->can('papel-generico.menu')) { ?> <?php if (auth()->user()->can('papel-generico.menu')) { ?>
<li class="menu-item"> <li class="menu-item">
<a href="<?= site_url("configuracion/papelesgenericos") ?>" class="menu-link"> <a href="<?= route_to('papelGenericoList') ?>" class="menu-link">
<?= lang("App.menu_papelgenerico") ?> <?= lang("App.menu_papelgenerico") ?>
</a> </a>
</li> </li>
<?php } ?> <?php } ?>
<?php if (auth()->user()->can('papel-impresion.menu')) { ?> <?php if (auth()->user()->can('papel-impresion.menu')) { ?>
<li class="menu-item"> <li class="menu-item">
<a href="<?= site_url("configuracion/papelesimpresion") ?>" class="menu-link"> <a href="<?= route_to('papelImpresionList') ?>" class="menu-link">
<?= lang("App.menu_papelimpresion") ?> <?= lang("App.menu_papelimpresion") ?>
</a> </a>
</li> </li>
<?php } ?> <?php } ?>
<?php if (auth()->user()->can('maquinas.menu')) { ?> <?php if (auth()->user()->can('maquinas.menu')) { ?>
<li class="menu-item"> <li class="menu-item">
<a href="<?= site_url("configuracion/maquinas") ?>" class="menu-link"> <a href="<?= route_to("maquinaList") ?>" class="menu-link">
<?= lang("App.menu_maquina") ?> <?= lang("App.menu_maquina") ?>
</a> </a>
</li> </li>
<?php } ?> <?php } ?>
<?php if (auth()->user()->can('maquinas-defecto.menu')) { ?> <?php if (auth()->user()->can('maquinas-defecto.menu')) { ?>
<li class="menu-item"> <li class="menu-item">
<a href="<?= site_url("configuracion/maquinasdefecto") ?>" class="menu-link"> <a href="<?= route_to("maquinaPorDefectoList") ?>" class="menu-link">
<?= lang("App.menu_maquina_defecto") ?> <?= lang("App.menu_maquina_defecto") ?>
</a> </a>
</li> </li>

View File

@ -17,7 +17,7 @@ $(() => {
$("#btn-new-maquina-duplicate").off(); $("#btn-new-maquina-duplicate").off();
$("#duplicated_name").addClass("is-valid").removeClass('d-none'); $("#duplicated_name").addClass("is-valid").removeClass('d-none');
$("#duplicated_name").val("") $("#duplicated_name").val("")
window.open('/maquinas/edit/' + response.data.id) window.open('/configuracion/maquinas/edit/' + response.data.id)
}, },
(error) => { (error) => {

View File

@ -35,7 +35,7 @@ class MaquinasList {
e.preventDefault(); // Previene cualquier comportamiento por defecto del enlace e.preventDefault(); // Previene cualquier comportamiento por defecto del enlace
const dataId = $(this).closest('tr').find('[data-id]').data('id'); // Obtén el ID dinámico const dataId = $(this).closest('tr').find('[data-id]').data('id'); // Obtén el ID dinámico
const dynamicUrl = '/maquinas/edit/' + dataId; const dynamicUrl = '/configuracion/maquinas/edit/' + dataId;
if (!Number.isNaN(Number(dataId))) { if (!Number.isNaN(Number(dataId))) {
if (e.ctrlKey || e.metaKey) { if (e.ctrlKey || e.metaKey) {
@ -102,7 +102,7 @@ class MaquinasList {
this.tableMaquinas = new Table( this.tableMaquinas = new Table(
$('#tableOfMaquinas'), $('#tableOfMaquinas'),
'maquinasList', 'maquinasList',
'/maquinas/datatable', '/configuracion/maquinas/datatable',
columns, columns,
[] []
); );

View File

@ -0,0 +1,97 @@
import Ajax from '../../components/ajax.js';
document.addEventListener('DOMContentLoaded', function () {
const lastColNr = $('#tableOfPaises').find("tr:first th").length - 1;
const theTable = $('#tableOfPaises').DataTable({
processing: true,
serverSide: true,
autoWidth: true,
responsive: true,
scrollX: true,
lengthMenu: [5, 10, 25, 50, 75, 100, 250, 500, 1000, 2500],
pageLength: 10,
lengthChange: true,
dom: 'lfBrtip',
buttons: [
'copy', 'csv', 'excel', 'print', {
extend: 'pdfHtml5',
orientation: 'landscape',
pageSize: 'A4'
}
],
stateSave: true,
order: [[1, 'asc']],
language: {
url: "/themes/vuexy/vendor/libs/datatables-sk/plugins/i18n/es-ES.json"
},
ajax: {
url: '/configuracion/paises/datatable',
method: 'GET'
},
columnDefs: [
{
orderable: false,
searchable: false,
targets: [lastColNr]
}
],
columns: [
{ data: 'nombre' },
{ data: 'code' },
{ data: 'code3' },
{ data: 'moneda' },
{ data: 'url_erp' },
{ data: 'user_erp' },
{ data: 'key_erp' },
{ data: 'show_erp' },
{ data: 'actionBtns' }
]
});
$(document).on('click', '.btn-edit', function (e) {
window.location.href = '/configuracion/paises/edit/' + $(this).attr('data-id');
});
$(document).on('click', '.btn-delete', function (e) {
e.preventDefault();
const row = $(this).closest('tr')[0]._DT_RowIndex;
const dataId = $(this).attr('data-id');
Swal.fire({
title: '¿Estás seguro?',
text: 'Esta acción no se puede deshacer.',
icon: 'warning',
showCancelButton: true,
confirmButtonText: 'Sí',
cancelButtonText: 'No',
reverseButtons: false,
buttonsStyling: true,
customClass: {
confirmButton: 'btn btn-danger', // rojo para "Sí"
cancelButton: 'btn btn-secondary' // gris para "No"
}
}).then((result) => {
if (result.isConfirmed) {
new Ajax(
'/configuracion/paises/delete/' + dataId,
{},
{},
(data, textStatus, jqXHR) => {
theTable.clearPipeline();
theTable.row($(row)).invalidate().draw();
popSuccessAlert(data.msg ?? jqXHR.statusText);
},
(error) => {
console.error(error);
Swal.fire('Error', 'No se pudo eliminar el país.', 'error');
}
).get();
}
});
});
});