buscarPorUsuario($_SESSION['user']['usuario']); if (!$usuario || !(bool)$usuario['activo']) { session_unset(); session_destroy(); setcookie(session_name(), '', time() - 3600, '/'); header("Location: index.php?opt=login"); exit; } $_SESSION['user'] = $usuario; if ($_SESSION['user']['activo'] !== true) { header("Location:index.php?opt=logout"); } } /* ----- OPCIONES DE ACCIONES EN SISTEMA ----- */ // USUARIO LOGUEADO (HOME / LOGOUT) $opcioneslogueado = [ 'inicio_admin', 'inicio_operador', 'home_operador', 'home_admin', 'logout', 'readme' ]; if (in_array($opt, $opcioneslogueado, true)) { // Parámetro $strict en true, PHP compara el valor y también el tipo de dato return require __DIR__ . '/../controllers/logInController.php'; } // OPCIONES DE USUARIO (PERFIL + ADMINISTRACION) $opcionesusuarios = [ 'datos_usuario', 'usuarios', 'crear_usuario', 'eliminar_usuario' ]; if (in_array($opt, $opcionesusuarios, true)) { return require __DIR__ . '/../controllers/usuarioController.php'; } // CLIENTES $opcionesclientes = [ 'clientes', 'crear_cliente', 'editar_cliente' ]; if (in_array($opt, $opcionesclientes, true)) { return require __DIR__ . '/../controllers/clienteController.php'; } // PROVEEDORES $opcionesproveedores = [ 'proveedores', 'crear_proveedor', 'editar_proveedor' ]; if (in_array($opt, $opcionesproveedores, true)) { return require __DIR__ . '/../controllers/proveedorController.php'; } // PRODUCTOS $opcionesproductos = [ // Manejo de productos 'productos', 'productos_inactivos', 'crear_producto', 'editar_producto', 'cambiar_estado', // Manejo de categoría de productos 'categorias', 'crear_categoria', 'editar_categoria' ]; if (in_array($opt, $opcionesproductos, true)) { return require __DIR__ . '/../controllers/productoController.php'; } // VENTAS $opcionesventas = [ 'listar_ventas', 'crear_venta', 'agregar_producto', 'seleccionar_cliente', 'eliminar_cliente', 'resumen_venta', 'guardar_datos_venta', 'generar_venta_pdf', 'continuar_sin_comprobante', 'confirmar_venta', 'detalle_venta' ]; if (in_array($opt, $opcionesventas, true)) { return require __DIR__ . '/../controllers/ventaController.php'; } // PEDIDOS $opcionespedidos = [ 'listar_pedidos', 'detalle_pedido', 'crear_pedido', 'agregar_producto_pedido', 'seleccionar_proveedor', 'eliminar_proveedor', 'generar_remito_pdf', 'continuar_sin_remito', 'confirmar_pedido' ]; if (in_array($opt, $opcionespedidos, true)) { return require __DIR__ . '/../controllers/pedidoController.php'; } // SERVICIOS $opcionesservicios = [ 'crear_servicio', 'guardar_servicio', // Guardado inicial del servicio (cuando viene el cliente al local) 'generar_servicio_pdf', 'seleccionar_cliente_servicio', 'eliminar_cliente_servicio', 'listar_servicios', 'actualizar_servicio', // Actualización del servicio (se cargan los datos a realizar e insumos a utilizar) 'agregar_insumo', 'finalizar_servicio', // Actualización del servicio (el cliente decidió llevar a cabo el servicio, al terminar se marca como finalizado en la base de datos) 'cancelar_servicio', // Según regla de negocio (caso en donde el cliente decide no realizar el servicio) 'detalle_servicio', 'detalle_insumos_servicio', 'resetear_datos_servicio', // Para resetar caja y datos en $_SESSION al ingresar a la vista de actualización 'agregar_mano_obra' ]; if (in_array($opt, $opcionesservicios, true)) { return require __DIR__ . '/../controllers/servicioController.php'; } // MANEJO GENERAL DE CAJA $opcionescaja = [ // MANEJO DE VENTAS 'agregar_producto_caja', 'eliminar_producto', 'editar_cantidad', 'vaciar_caja_venta', // MANEJO DE PEDIDOS 'agregar_producto_pedido_caja', 'eliminar_producto_pedido', 'editar_datos_producto', 'vaciar_caja_pedido', // MANEJO DE SERVICIOS 'agregar_insumo_caja', 'vaciar_caja_servicio', 'eliminar_insumo', 'editar_cantidad_insumo' ]; if (in_array($opt, $opcionescaja, true)) { return require __DIR__ . '/../controllers/cajaController.php'; } // PRESUPUESTOS $opcionespresupuestos = [ 'crear_presupuesto', 'seleccionar_cliente_presupuesto', 'eliminar_cliente_presupuesto', 'agregar_producto_presupuesto', 'eliminar_producto_presupuesto', 'vaciar_caja_presupuesto', 'editar_cantidad_presupuesto', 'resumen_presupuesto', 'guardar_datos_presupuesto', 'generar_presupuesto_pdf' ]; if (in_array($opt, $opcionespresupuestos, true)) { return require __DIR__ . '/../controllers/presupuestoController.php'; } // INFORMES $opcionesinformes = [ 'generar_balance_anual', 'generar_cuentas_por_cobrar', 'informe' ]; if (in_array($opt, $opcionesinformes, true)) { return require __DIR__ . '/../controllers/informeController.php'; } // CONFIGURACIÓN DEL SISTEMA (controla configuración general y también backups) $opcionesconfiguracion = [ 'configuracion', 'actualizar_config', 'backups', 'generar_backup', 'descargar_backup', 'eliminar_backup', 'restaurar_backup' ]; if (in_array($opt, $opcionesconfiguracion, true)) { return require __DIR__ . '/../controllers/configuracionController.php'; } // CHATBOT $opcioneschatbot = [ 'chatbot' ]; if (in_array($opt, $opcioneschatbot, true)) { ob_start(); require __DIR__ . '/../views/chatbot/chatbotView.php'; return ob_get_clean(); } // DEFAULT (404) ob_start(); // Inicia búfer de salida en PHP, lo guarda en memoria require __DIR__ . '/../views/404View.php'; return ob_get_clean(); // Devuelve el contenido almacenado en el búfer como string }