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
.vscode/
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 */
$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']);
});
});
});
/* 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']);
});
});
// Carga archivos de rutas por dominio
foreach (glob(APPPATH . 'Config/Routes/*Routes.php') as $routeFile) {
require $routeFile;
}
$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->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->get('add', 'Papelimpresiontipologias::add', ['as' => 'newPapelImpresionTipologia']);
$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->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->get('', 'Maquinastarifasimpresion::index', ['as' => 'maquinasTarifaImpresionList']);
$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->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->get('', 'Profile::index', ['as' => 'profileList']);
$routes->get('index', 'Profile::index', ['as' => 'profileIndex']);
$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->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->get('', 'Provincias::index', ['as' => 'provinciaList']);
$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']);
/* 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']);
@ -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->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->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');
});
/*
* --------------------------------------------------------------------
* 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
*/
public bool $prioritize = false;
public bool $prioritize = true;
/**
* Map of URI segments and namespaces. For Auto Routing (Improved).

View File

@ -46,7 +46,7 @@ class Maquinas extends \App\Controllers\BaseResourceController
// Breadcrumbs (IMN)
$this->viewData['breadcrumb'] = [
['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);

View File

@ -1,4 +1,5 @@
<?php namespace App\Controllers\Configuracion;
<?php
namespace App\Controllers\Configuracion;
use App\Controllers\BaseResourceController;
@ -9,6 +10,8 @@ use App\Entities\Configuracion\PaisEntity;
use App\Models\Configuracion\PaisModel;
use Hermawan\DataTables\DataTable;
class Paises extends \App\Controllers\BaseResourceController
{
@ -62,17 +65,17 @@ class Paises extends \App\Controllers\BaseResourceController
public function add()
{
if ($this->request->getPost()) :
if ($this->request->getPost()):
$postData = $this->request->getPost();
$sanitizedData = $this->sanitized($postData, true);
$noException = true;
if ($successfulResult = $this->canValidate()) :
if ($successfulResult = $this->canValidate()):
if ($this->canValidate()) :
if ($this->canValidate()):
try {
$successfulResult = $this->model->skipValidation(true)->save($sanitizedData);
} 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
endif;
if ($noException && $successfulResult) :
if ($noException && $successfulResult):
$id = $this->model->db->insertID();
$message = lang('Basic.global.saveSuccess', [lang('Basic.global.record')]) . '.';
if ($thenRedirect) :
if (!empty($this->indexRoute)) :
if ($thenRedirect):
if (!empty($this->indexRoute)):
return redirect()->to(route_to($this->indexRoute))->with('sweet-success', $message);
else:
return $this->redirect2listView('sweet-success', $message);
@ -117,20 +120,20 @@ class Paises extends \App\Controllers\BaseResourceController
public function edit($requestedId = null)
{
if ($requestedId == null) :
if ($requestedId == null):
return $this->redirect2listView();
endif;
$id = filter_var($requestedId, FILTER_SANITIZE_URL);
$paisEntity = $this->model->find($id);
if ($paisEntity == false) :
if ($paisEntity == false):
$message = lang('Basic.global.notFoundWithIdErr', [mb_strtolower(lang('Paises.pais')), $id]);
return $this->redirect2listView('sweet-error', $message);
endif;
if ($this->request->getPost()) :
if ($this->request->getPost()):
$nullIfEmpty = true; // !(phpversion() >= '8.1');
@ -143,10 +146,10 @@ class Paises extends \App\Controllers\BaseResourceController
$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 {
$successfulResult = $this->model->skipValidation(true)->update($id, $sanitizedData);
} catch (\Exception $e) {
@ -163,12 +166,12 @@ class Paises extends \App\Controllers\BaseResourceController
$thenRedirect = false;
endif;
if ($noException && $successfulResult) :
if ($noException && $successfulResult):
$id = $paisEntity->id ?? $id;
$message = lang('Basic.global.updateSuccess', [lang('Basic.global.record')]) . '.';
if ($thenRedirect) :
if (!empty($this->indexRoute)) :
if ($thenRedirect):
if (!empty($this->indexRoute)):
return redirect()->to(route_to($this->indexRoute))->with('sweet-success', $message);
else:
return $this->redirect2listView('sweet-success', $message);
@ -193,30 +196,38 @@ class Paises extends \App\Controllers\BaseResourceController
public function datatable()
{
if ($this->request->isAJAX()) {
$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';
$q = $this->model->getDatatableQuery();
$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()
@ -277,7 +288,7 @@ class Paises extends \App\Controllers\BaseResourceController
"id",
"nombre as name"
]
)->orderBy("nombre", "asc");
)->orderBy("nombre", "asc");
if ($this->request->getGet("q")) {
$query->groupStart()
->orLike("lg_paises.nombre", $this->request->getGet("q"))

View File

@ -43,7 +43,7 @@ class Papelesgenericos extends \App\Controllers\BaseResourceController
// Breadcrumbs (IMN)
$this->viewData['breadcrumb'] = [
['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);

View File

@ -72,7 +72,7 @@ class Papelesimpresion extends \App\Controllers\BaseResourceController
// Breadcrumbs
$this->viewData['breadcrumb'] = [
['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);

View File

@ -230,6 +230,10 @@ class Facturas extends \App\Controllers\BaseResourceController
$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->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['boxTitle'] = lang('Basic.global.edit2') . ' ' . lang('Facturas.factura') . ' ' . lang('Basic.global.edit3');
@ -703,7 +707,7 @@ class Facturas extends \App\Controllers\BaseResourceController
$data = (object) [
'factura_id' => $factura_id,
'pedido_linea_impresion_id' => $linea->pedido_id,
'pedido_linea_impresion_id' => $pedido_linea_id,
'descripcion' => $descripcion[0]->concepto,
'cantidad' => $cantidad,
'iva' => $presupuesto->iva_reducido == 1 ? 4 : 21,

View File

@ -211,6 +211,8 @@ class Pedido extends \App\Controllers\BaseResourceController
public function update($id = null){
$data = [];
if ($this->request->isAJAX()) {
$newTokenHash = csrf_hash();
$csrfTokenName = csrf_token();
@ -242,6 +244,14 @@ class Pedido extends \App\Controllers\BaseResourceController
$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
$sanitizedData['user_updated_id'] = auth()->user()->id;
@ -268,10 +278,9 @@ class Pedido extends \App\Controllers\BaseResourceController
$id = $pedidoEntity->id ?? $id;
$message = lang('Basic.global.updateSuccess', [lang('Basic.global.record')]) . '.';
$data = [
'error' => 0,
$csrfTokenName => $newTokenHash
];
$data['error'] = 0;
$data[$csrfTokenName] = $newTokenHash;
return $this->respond($data);
endif; // $noException && $successfulResult
@ -303,7 +312,15 @@ class Pedido extends \App\Controllers\BaseResourceController
$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;
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');
return $this->displayForm(__METHOD__, $id);
}

View File

@ -366,6 +366,36 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController
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();
$csrfTokenName = csrf_token();
$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,
"user_erp" => null,
"key_erp" => null,
"show_erp" => false,
"show_erp" => null,
];
protected $casts = [
"show_erp" => "boolean",

View File

@ -18,6 +18,7 @@ class PedidoEntity extends \CodeIgniter\Entity\Entity
"total_precio" => null,
"total_tirada" => null,
"estado" => null,
"inaplazable" => null,
"user_created_id" => null,
"user_updated_id" => null,
"user_validated_id" => null,
@ -25,6 +26,11 @@ class PedidoEntity extends \CodeIgniter\Entity\Entity
"fecha_impresion" => null,
"fecha_encuadernado" => 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,
"updated_at" => null,
"validated_at" => null,

View File

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

View File

@ -29,8 +29,12 @@ if (!function_exists('generate_php_roles_constant')) {
// Close the array
$phpCode .= "];\n";
// Write PHP code to a file
$filePath = APPPATH . "Config/RBAC/roles.php";
$dirPath = APPPATH . "Config/RBAC";
if (!is_dir($dirPath)) {
mkdir($dirPath, 0775, true); // true permite crear carpetas anidadas
}
$filePath = $dirPath . "/roles.php";
file_put_contents($filePath, $phpCode);
}
@ -58,9 +62,14 @@ if (!function_exists('generate_php_permissions_constant')) {
// Close the array
$phpCode .= "];\n";
// Write PHP code to a file
$filePath = APPPATH . "Config/RBAC/permissions.php";
$dirPath = APPPATH . "Config/RBAC";
if (!is_dir($dirPath)) {
mkdir($dirPath, 0775, true); // true permite crear carpetas anidadas
}
$filePath = $dirPath . "/permissions.php";
file_put_contents($filePath, $phpCode);
}
}
@ -87,8 +96,12 @@ if (!function_exists('generate_php_permissions_matrix_constant')) {
// Close the array
$phpCode .= "];\n";
// Write PHP code to a file
$filePath = APPPATH . "Config/RBAC/permissionMatrix.php";
$dirPath = APPPATH . "Config/RBAC";
if (!is_dir($dirPath)) {
mkdir($dirPath, 0775, true); // true permite crear carpetas anidadas
}
$filePath = $dirPath . "/permissionMatrix.php";
file_put_contents($filePath, $phpCode);
}
}
@ -130,9 +143,9 @@ if (!function_exists('checkGroups')) {
*/
function checkGroups(array $groups, string $redirectRoute = null)
{
$session = \Config\Services::session();
$session = \Config\Services::session();
$response = \Config\Services::response();
$auth = auth(); // Shield auth service
$auth = auth(); // Shield auth service
$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;
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 $returnType = "App\Entities\Configuracion\PaisEntity";
@ -91,38 +80,24 @@ class PaisModel extends \App\Models\BaseModel
/**
* Get resource data.
*
* @param string $search
*
* @return \CodeIgniter\Database\BaseBuilder
*/
public function getResource(string $search = "")
public function getDatatableQuery()
{
$builder = $this->db
->table($this->table . " t1")
->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)
? $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();
return $builder;
}
}

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.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,
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"
)
->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;
}
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){
if($cliente_id == -1){

View File

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

View File

@ -37,6 +37,7 @@ class PedidoModel extends \App\Models\BaseModel
"total_precio",
"total_tirada",
"estado",
"inaplazable",
"user_created_id",
"user_updated_id",
"user_validated_id",
@ -44,6 +45,11 @@ class PedidoModel extends \App\Models\BaseModel
"fecha_impresion",
"fecha_encuadernado",
"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",
"updated_at",
"validated_at",
@ -111,15 +117,28 @@ class PedidoModel extends \App\Models\BaseModel
$builder = $this->db
->table($this->table . " t1")
->select(
"t2.presupuesto_id"
"t2.presupuesto_id, t3.total_aceptado, t2.descripcion, t2.cantidad"
);
$builder->where("t1.id", $pedido_id);
$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");
$lineasPresupuesto = [];
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");

View File

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

View File

@ -1,66 +1,74 @@
<div class="row">
<div class="col-md-12 col-lg-6 px-4">
<div class="mb-3">
<label for="nombre" class="form-label">
<?=lang('Paises.nombre') ?>*
</label>
<input type="text" id="nombre" name="nombre" required maxLength="255" class="form-control" value="<?=old('nombre', $paisEntity->nombre) ?>">
</div><!--//.mb-3 -->
<div class="row">
<div class="col-md-12 col-lg-6 px-4">
<div class="mb-3">
<label for="nombre" class="form-label">
<?= lang('Paises.nombre') ?>*
</label>
<input type="text" id="nombre" name="nombre" required maxLength="255" class="form-control"
value="<?= old('nombre', $paisEntity->nombre) ?>">
</div><!--//.mb-3 -->
<div class="mb-3">
<label for="code" class="form-label">
<?=lang('Paises.code') ?>*
</label>
<input type="text" id="code" name="code" required maxLength="2" class="form-control" value="<?=old('code', $paisEntity->code) ?>">
</div><!--//.mb-3 -->
<div class="mb-3">
<label for="code" class="form-label">
<?= lang('Paises.code') ?>*
</label>
<input type="text" id="code" name="code" required maxLength="2" class="form-control"
value="<?= old('code', $paisEntity->code) ?>">
</div><!--//.mb-3 -->
<div class="mb-3">
<label for="code3" class="form-label">
<?=lang('Paises.code3') ?>
</label>
<input type="text" id="code3" name="code3" maxLength="3" class="form-control" value="<?=old('code3', $paisEntity->code3) ?>">
</div><!--//.mb-3 -->
<div class="mb-3">
<label for="code3" class="form-label">
<?= lang('Paises.code3') ?>
</label>
<input type="text" id="code3" name="code3" maxLength="3" class="form-control"
value="<?= old('code3', $paisEntity->code3) ?>">
</div><!--//.mb-3 -->
<div class="mb-3">
<label for="moneda" class="form-label">
<?=lang('Paises.moneda') ?>*
</label>
<input type="text" id="moneda" name="moneda" required maxLength="3" class="form-control" value="<?=old('moneda', $paisEntity->moneda) ?>">
</div><!--//.mb-3 -->
<div class="mb-3">
<label for="moneda" class="form-label">
<?= lang('Paises.moneda') ?>*
</label>
<input type="text" id="moneda" name="moneda" required maxLength="3" class="form-control"
value="<?= old('moneda', $paisEntity->moneda) ?>">
</div><!--//.mb-3 -->
</div><!--//.col -->
<div class="col-md-12 col-lg-6 px-4">
<div class="mb-3">
<label for="urlErp" class="form-label">
<?=lang('Paises.urlErp') ?>
</label>
<input type="url" id="urlErp" name="url_erp" maxLength="255" class="form-control" value="<?=old('url_erp', $paisEntity->url_erp) ?>">
</div><!--//.mb-3 -->
</div><!--//.col -->
<div class="col-md-12 col-lg-6 px-4">
<div class="mb-3">
<label for="urlErp" class="form-label">
<?= lang('Paises.urlErp') ?>
</label>
<input type="url" id="urlErp" name="url_erp" maxLength="255" class="form-control"
value="<?= old('url_erp', $paisEntity->url_erp) ?>">
</div><!--//.mb-3 -->
<div class="mb-3">
<label for="userErp" class="form-label">
<?=lang('Paises.userErp') ?>
</label>
<input type="text" id="userErp" name="user_erp" maxLength="255" class="form-control" value="<?=old('user_erp', $paisEntity->user_erp) ?>">
</div><!--//.mb-3 -->
<div class="mb-3">
<label for="userErp" class="form-label">
<?= lang('Paises.userErp') ?>
</label>
<input type="text" id="userErp" name="user_erp" maxLength="255" class="form-control"
value="<?= old('user_erp', $paisEntity->user_erp) ?>">
</div><!--//.mb-3 -->
<div class="mb-3">
<label for="keyErp" class="form-label">
<?=lang('Paises.keyErp') ?>
</label>
<input type="text" id="keyErp" name="key_erp" maxLength="255" class="form-control" value="<?=old('key_erp', $paisEntity->key_erp) ?>">
</div><!--//.mb-3 -->
<div class="mb-3">
<label for="keyErp" class="form-label">
<?= lang('Paises.keyErp') ?>
</label>
<input type="text" id="keyErp" name="key_erp" maxLength="255" class="form-control"
value="<?= old('key_erp', $paisEntity->key_erp) ?>">
</div><!--//.mb-3 -->
<div class="mb-3">
<div class="form-check">
<div class="mb-3">
<div class="form-check">
<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' : ''; ?>>
<?=lang('Paises.showErp') ?>
</label>
</div><!--//.form-check -->
</div><!--//.mb-3 -->
<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' : ''; ?>>
<?= lang('Paises.showErp') ?>
</label>
</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/sweetalert") ?>
<?= $this->include("themes/_commonPartialsBs/select2bs5") ?>
<?= $this->include("themes/_commonPartialsBs/sweetalert") ?>
<?= $this->extend('themes/vuexy/main/defaultlayout') ?>
<?= $this->section("content") ?>
<div class="row">
@ -11,7 +11,7 @@
<form id="paisForm" method="post" action="<?= $formAction ?>">
<?= csrf_field() ?>
<div class="card-body">
<?= view("themes_commonPartialsBs/_alertBoxes") ?>
<?= view("themes/_commonPartialsBs/_alertBoxes") ?>
<?= !empty($validation->getErrors()) ? $validation->listErrors("bootstrap_style") : "" ?>
<?= view("themes/vuexy/form/configuracion/paises/_paisFormItems") ?>
</div><!-- /.card-body -->

View File

@ -25,7 +25,7 @@
<th><?= lang('Paises.userErp') ?></th>
<th><?= lang('Paises.keyErp') ?></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>
</thead>
<tbody>
@ -43,119 +43,10 @@
<?=$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') ?>
<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() ?>
@ -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/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/sweetalert2/sweetalert2.js') ?>"></script>
<script type="module" src="<?= site_url("assets/js/safekat/pages/paises/list.js") ?>"></script>
<?=$this->endSection() ?>

View File

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

View File

@ -31,25 +31,25 @@
<tfoot>
<tr>
<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>
</tr>
<tr>
<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>
</tr>
<tr>
<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>
</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 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>
</tr>
@ -126,28 +126,36 @@ const autoNumericSubtotal = new AutoNumeric('#subtotal-sum', 0, {
decimalPlaces: 2,
digitGroupSeparator: ',',
decimalCharacter: '.',
unformatOnSubmit: true
unformatOnSubmit: true,
decimalPlacesShownOnFocus: 2,
decimalPlacesShownOnBlur: 2,
});
const autoNumericIVA = new AutoNumeric('#total-iva-sum', 0, {
decimalPlaces: 2,
digitGroupSeparator: ',',
decimalCharacter: '.',
unformatOnSubmit: true
unformatOnSubmit: true,
decimalPlacesShownOnFocus: 2,
decimalPlacesShownOnBlur: 2,
});
const autoNumericTotal = new AutoNumeric('#total-sum', 0, {
decimalPlaces: 2,
digitGroupSeparator: ',',
decimalCharacter: '.',
unformatOnSubmit: true
unformatOnSubmit: true,
decimalPlacesShownOnFocus: 2,
decimalPlacesShownOnBlur: 2,
});
const autoNumericPendientePago = new AutoNumeric('#pendiente-pago', 0, {
decimalPlaces: 2,
digitGroupSeparator: ',',
decimalCharacter: '.',
unformatOnSubmit: true
unformatOnSubmit: true,
decimalPlacesShownOnFocus: 2,
decimalPlacesShownOnBlur: 2,
});
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: "base",render : (d) => `<span class="autonumeric">${d}</span>`},
{data: "total_iva",render : (d) => `<span class="autonumeric">${d}</span>`},
{data: "total",render : (d) => `<span class="autonumeric">${d}</span>`},
{data: "iva", className: "text-end", render : (d) => `<span class="autonumeric-facturas text-end">${d}</span>`},
{data: "base", className: "text-end", render : (d) => `<span class="autonumeric-facturas text-end">${d}</span>`},
{data: "total_iva", className: "text-end",render : (d) => `<span class="autonumeric-facturas text-end">${d}</span>`},
{data: "total", className: "text-end", render : (d) => `<span class="autonumeric-facturas text-end">${d}</span>`},
],
order: [[1, "asc"]],
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) {
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) => intVal(a) + intVal(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);
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 totalTotal = table.column(10).data().reduce((a, b) => parseFloat(a) + parseFloat(b), 0);
autoNumericSubtotal.set(totalSubtotal);
autoNumericIVA.set(totalIVA);
autoNumericTotal.set(totalTotal);
<?php if($facturaEntity->estado == 'borrador') :?>
var pendientePago = totalTotal;
var total_pagos = 0;
<?php else: ?>
var total_pagos = autoNumericTotalCobrado.getNumber();
var pendientePago = totalTotal - total_pagos;
<?php endif; ?>
var total_pagos = autoNumericTotalCobrado.getNumber();
var pendientePago = totalTotal - total_pagos;
if (isNaN(pendientePago)) pendientePago = 0;
autoNumericPendientePago.set(pendientePago);
@ -499,6 +517,8 @@ function deleteConfirmedLinea(params){
<?= csrf_token() ?? "token" ?> : <?= csrf_token() ?>v
}
}).done((data, textStatus, jqXHR) => {
tablelineas.clearPipeline().footerCallback().draw();
$('#tableOfLineasPagos').DataTable().clearPipeline().footerCallback().draw();
}).fail((jqXHR, textStatus, errorThrown) => {
popErrorAlert(jqXHR.responseJSON.messages.error)

View File

@ -22,12 +22,12 @@
<tbody></tbody>
<tfoot>
<tr>
<td colspan="6" style="text-align:right">Total cobrado:</td>
<td><span id="totalCobrado-sum" class="autonumeric"></span></td>
<td colspan="6" class="text-end">Total cobrado:</td>
<td class="text-end"><span id="totalCobrado-sum" class="autonumeric text-end"></span></td>
</tr>
<tr>
<td colspan="6" style="text-align:right">Total pendiente:</td>
<td><span id="pendienteCobro-sum" class="autonumeric"></span></td>
<td colspan="6" class="text-end">Total pendiente:</td>
<td class="text-end"><span id="pendienteCobro-sum" class="autonumeric text-end"></span></td>
</tr>
</tfoot>
</table>
@ -147,6 +147,8 @@ editor_pagos.on('open',(event)=>{
allowDecimalPadding : 'floats',
decimalPlaces: 2,
unformatOnSubmit: true,
decimalPlacesShownOnFocus: 2,
decimalPlacesShownOnBlur: 2,
});
})
@ -183,20 +185,25 @@ editor_pagos.on( 'postSubmit', function ( e, json, data, action ) {
yeniden(json.<?= csrf_token() ?>);
tablePagos.clearPipeline();
tablePagos.draw();
updateFooterLineas(tableLineas);
});
const autoNumericTotalCobrado = new AutoNumeric('#totalCobrado-sum', 0, {
decimalPlaces: 2,
digitGroupSeparator: ',',
decimalCharacter: '.',
unformatOnSubmit: true
unformatOnSubmit: true,
decimalPlacesShownOnFocus: 2,
decimalPlacesShownOnBlur: 2,
});
const autoNumericPendienteCobro = new AutoNumeric('#pendienteCobro-sum', 0, {
decimalPlaces: 2,
digitGroupSeparator: ',',
decimalCharacter: '.',
unformatOnSubmit: true
unformatOnSubmit: true,
decimalPlacesShownOnFocus: 2,
decimalPlacesShownOnBlur: 2,
});
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') : '';
}
},
{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"]],
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) {
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 = [];
api.rows().every(function() {
var data = this.data();
@ -287,7 +311,7 @@ var tablePagos = $('#tableOfLineasPagos').DataTable({
});
var totalPagos = filas
.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);
var filas = [];
@ -299,7 +323,7 @@ var tablePagos = $('#tableOfLineasPagos').DataTable({
});
var totalPendiente = filas
.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);
// Update footer
@ -317,13 +341,8 @@ var tablePagos = $('#tableOfLineasPagos').DataTable({
function updateFooterLineas(table){
// Assuming pendiente de pago is totalTotal - totalIVA for this example
<?php if($facturaEntity->estado == 'borrador') :?>
var pendientePago = autoNumericTotal.getNumber();
var total_pagos = 0;
<?php else: ?>
var total_pagos = autoNumericTotalCobrado.getNumber();
var pendientePago = autoNumericTotal.getNumber() - total_pagos;
<?php endif; ?>
var total_pagos = autoNumericTotalCobrado.getNumber();
var pendientePago = autoNumericTotal.getNumber() - total_pagos;
// Se comprueba si pendientePago es un numero o NAN
if(isNaN(pendientePago)){
pendientePago = 0;
@ -340,10 +359,10 @@ function updateFooterLineas(table){
pendiente: pendientePago
}
}).done((data, textStatus, jqXHR) => {
if($('#pendiente-pago').html() == '0.00'){
if(autoNumericPendientePago.getNumber() == 0){
$('#addPagoRow').hide();
} else {
$('#validarFactura').show();
$('#addPagoRow').show();
}
if(data.estado_pago == 'pagada'){
$('#estado_pago_text').text('<?= lang('Facturas.pagada') ?>');

View File

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

View File

@ -86,7 +86,7 @@
<label for="total_precio" class="form-label">
<?= lang('Pedidos.total_precio') ?>
</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><!--//.mb-3 -->
@ -100,6 +100,7 @@
</div><!--//.mb-3 -->
</div>
</div> <!--//accordion-body -->
</div> <!--//accordionFechasTip-->
</div> <!--//card-->
@ -121,7 +122,8 @@
<label for="fecha_entrega_real" class="fecha-pedido form-label">
<?= lang('Pedidos.fecha_entrega_real') ?>
</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 class="col-md-12 col-lg-3 px-4">
@ -129,7 +131,8 @@
<label for="fecha_impresion" class="form-label">
<?= lang('Pedidos.fecha_impresion') ?>
</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 class="col-md-12 col-lg-3 px-4">
@ -137,7 +140,8 @@
<label for="fecha_encuadernado" class="form-label">
<?= lang('Pedidos.fecha_encuadernado') ?>
</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 class="col-md-12 col-lg-3 px-4">
@ -145,10 +149,25 @@
<label for="fecha_entrega_externo" class="form-label">
<?= lang('Pedidos.fecha_entrega_externo') ?>
</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 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> <!--//accordionFechasTip-->
</div> <!--//card-->
@ -183,6 +202,24 @@
<?=$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({
defaultDate: <?= $pedidoEntity->fecha_entrega_real_text ? "'".$pedidoEntity->fecha_entrega_real_text."'" : 'null' ?>,
dateFormat: "d/m/Y",
@ -321,10 +358,21 @@ function updateDate(elementId, dateStr) {
data = {
<?= 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.
data[elementId] = newFormat;
if(elementId == 'inaplazable'){
data[elementId] = dateStr;
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') ?>';
url = url.replace(':id', id );
@ -336,11 +384,16 @@ function updateDate(elementId, dateStr) {
success: function(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() ?>

View File

@ -155,7 +155,7 @@
<!-- Configuraciones -->
<div class="row g-3 mb-3">
<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">
<button type="button" class="btn btn-label-primary">
<?= lang("Presupuestos.previewPapelGenerico") ?>
@ -164,7 +164,7 @@
</a>
</div>
<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">
<button type="button" class="btn btn-label-primary">
<?= lang("Presupuestos.previewPapelCompra") ?>
@ -173,7 +173,7 @@
</a>
</div>
<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">
<button type="button" class="btn btn-label-primary">
<?= lang("Presupuestos.previewAreaImpresion") ?>
@ -237,7 +237,7 @@
<!-- Configuraciones -->
<div class="row g-3 mb-3">
<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">
<button type="button" class="btn btn-label-primary">
<?= lang("Presupuestos.previewPapelGenerico") ?>
@ -246,7 +246,7 @@
</a>
</div>
<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">
<button type="button" class="btn btn-label-primary">
<?= lang("Presupuestos.previewPapelCompra") ?>
@ -255,7 +255,7 @@
</a>
</div>
<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">
<button type="button" class="btn btn-label-primary">
<?= lang("Presupuestos.previewAreaImpresion") ?>
@ -319,7 +319,7 @@
<!-- Configuraciones -->
<div class="row g-3 mb-3">
<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">
<button type="button" class="btn btn-label-primary">
<?= lang("Presupuestos.previewPapelGenerico") ?>
@ -328,7 +328,7 @@
</a>
</div>
<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">
<button type="button" class="btn btn-label-primary">
<?= lang("Presupuestos.previewPapelCompra") ?>
@ -337,7 +337,7 @@
</a>
</div>
<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">
<button type="button" class="btn btn-label-primary">
<?= lang("Presupuestos.previewAreaImpresion") ?>
@ -401,7 +401,7 @@
<!-- Configuraciones -->
<div class="row g-3 mb-3">
<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">
<button type="button" class="btn btn-label-primary">
<?= lang("Presupuestos.previewPapelGenerico") ?>
@ -410,7 +410,7 @@
</a>
</div>
<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">
<button type="button" class="btn btn-label-primary">
<?= lang("Presupuestos.previewPapelCompra") ?>
@ -419,7 +419,7 @@
</a>
</div>
<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">
<button type="button" class="btn btn-label-primary">
<?= lang("Presupuestos.previewAreaImpresion") ?>
@ -485,7 +485,7 @@
<!-- Configuraciones -->
<div class="row g-3 mb-3">
<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">
<button type="button" class="btn btn-label-primary">
<?= lang("Presupuestos.previewPapelGenerico") ?>
@ -494,7 +494,7 @@
</a>
</div>
<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">
<button type="button" class="btn btn-label-primary">
<?= lang("Presupuestos.previewPapelCompra") ?>
@ -503,7 +503,7 @@
</a>
</div>
<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">
<button type="button" class="btn btn-label-primary">
<?= lang("Presupuestos.previewAreaImpresion") ?>
@ -565,7 +565,7 @@
<!-- Configuraciones -->
<div class="row g-3 mb-3">
<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">
<button type="button" class="btn btn-label-primary">
<?= lang("Presupuestos.previewPapelGenerico") ?>
@ -574,7 +574,7 @@
</a>
</div>
<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">
<button type="button" class="btn btn-label-primary">
<?= lang("Presupuestos.previewPapelCompra") ?>
@ -583,7 +583,7 @@
</a>
</div>
<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">
<button type="button"
class="btn btn-label-primary">
@ -646,7 +646,7 @@
<!-- Configuraciones -->
<div class="row g-3 mb-3">
<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">
<button type="button" class="btn btn-label-primary">
<?= lang("Presupuestos.previewPapelGenerico") ?>
@ -655,7 +655,7 @@
</a>
</div>
<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">
<button type="button" class="btn btn-label-primary">
<?= lang("Presupuestos.previewPapelCompra") ?>
@ -664,7 +664,7 @@
</a>
</div>
<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">
<button type="button" class="btn btn-label-primary">
<?= lang("Presupuestos.previewAreaImpresion") ?>
@ -728,7 +728,7 @@
<!-- Configuraciones -->
<div class="row g-3 mb-3">
<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">
<button type="button" class="btn btn-label-primary">
<?= lang("Presupuestos.previewPapelGenerico") ?>
@ -737,7 +737,7 @@
</a>
</div>
<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">
<button type="button" class="btn btn-label-primary">
<?= lang("Presupuestos.previewPapelCompra") ?>
@ -746,7 +746,7 @@
</a>
</div>
<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">
<button type="button" class="btn btn-label-primary">
<?= lang("Presupuestos.previewAreaImpresion") ?>
@ -813,7 +813,7 @@
<!-- Configuraciones -->
<div class="row g-3 mb-3">
<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">
<button type="button" class="btn btn-label-primary">
<?= lang("Presupuestos.previewPapelGenerico") ?>
@ -822,7 +822,7 @@
</a>
</div>
<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">
<button type="button" class="btn btn-label-primary">
<?= lang("Presupuestos.previewPapelCompra") ?>
@ -831,7 +831,7 @@
</a>
</div>
<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">
<button type="button" class="btn btn-label-primary">
<?= lang("Presupuestos.previewAreaImpresion") ?>
@ -882,7 +882,7 @@
<!-- Configuraciones -->
<div class="row g-3 mb-3">
<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">
<button type="button" class="btn btn-label-primary">
<?= lang("Presupuestos.previewPapelGenerico") ?>
@ -891,7 +891,7 @@
</a>
</div>
<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">
<button type="button" class="btn btn-label-primary">
<?= lang("Presupuestos.previewPapelCompra") ?>
@ -900,7 +900,7 @@
</a>
</div>
<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">
<button type="button" class="btn btn-label-primary">
<?= lang("Presupuestos.previewAreaImpresion") ?>
@ -963,7 +963,7 @@
<!-- Configuraciones -->
<div class="row g-3 mb-3">
<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">
<button type="button" class="btn btn-label-primary">
<?= lang("Presupuestos.previewPapelGenerico") ?>
@ -972,7 +972,7 @@
</a>
</div>
<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">
<button type="button" class="btn btn-label-primary">
<?= lang("Presupuestos.previewPapelCompra") ?>
@ -981,7 +981,7 @@
</a>
</div>
<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">
<button type="button" class="btn btn-label-primary">
<?= lang("Presupuestos.previewAreaImpresion") ?>

View File

@ -8,7 +8,7 @@
<h5 class="card-header">Perfil de Usuario</h5>
<!-- Account -->
<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() ?>
<div class="row">
<div class="mb-3 col-md-4">
@ -81,13 +81,12 @@
</div>
<!-- /Account -->
</div>
</div>
<?php $settings = session()->get('settings'); ?>
</div>
</div>
</div>
<?= $this->endSection() ?>

View File

@ -256,7 +256,7 @@
<?php if (count($temp = getArrayItem($menus, 'name', 'Paises')) > 0): ?>
<?php if (count(getArrayItem($temp, 'methods', 'index', true)) > 0): ?>
<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>
</a>
</li>

View File

@ -299,7 +299,7 @@
<?php if (count($temp = getArrayItem($menus, 'name', 'Paises')) > 0): ?>
<?php if (count(getArrayItem($temp, 'methods', 'index', true)) > 0): ?>
<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>
</a>
</li>

View File

@ -37,28 +37,28 @@ if (
<?php } ?>
<?php if (auth()->user()->can('papel-generico.menu')) { ?>
<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") ?>
</a>
</li>
<?php } ?>
<?php if (auth()->user()->can('papel-impresion.menu')) { ?>
<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") ?>
</a>
</li>
<?php } ?>
<?php if (auth()->user()->can('maquinas.menu')) { ?>
<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") ?>
</a>
</li>
<?php } ?>
<?php if (auth()->user()->can('maquinas-defecto.menu')) { ?>
<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") ?>
</a>
</li>

View File

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

View File

@ -35,7 +35,7 @@ class MaquinasList {
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 dynamicUrl = '/maquinas/edit/' + dataId;
const dynamicUrl = '/configuracion/maquinas/edit/' + dataId;
if (!Number.isNaN(Number(dataId))) {
if (e.ctrlKey || e.metaKey) {
@ -102,7 +102,7 @@ class MaquinasList {
this.tableMaquinas = new Table(
$('#tableOfMaquinas'),
'maquinasList',
'/maquinas/datatable',
'/configuracion/maquinas/datatable',
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();
}
});
});
});