Detalle
| Campo | Valor |
|---|---|
| Tipo de documento | Manual de Usuario |
| Módulo | Inicio / Clientes |
| Formulario | FormTickets_Clientes_Usuarios |
| Versión | 1.0 |
| Actualizado | 2026-06-23 |
Introducción
El formulario Usuarios del Cliente administra los usuarios de un cliente habilitados para operar con tickets / soporte (típicamente el acceso al portal web del cliente). Permite dar de alta, modificar y desactivar usuarios, con sus datos de contacto (teléfono, celular, email), credenciales (usuario y contraseña) y el indicador de habilitación del portal web.
Cada usuario queda vinculado a un cliente y puede tener tickets asociados; por eso el sistema no permite eliminar físicamente usuarios con tickets, sólo desactivarlos.
Acceso al módulo
El formulario se abre desde la pantalla de Clientes (frmClientes):
- Botón de la barra "Usuarios" (
btnUsuarios), o - Opción de menú "Usuarios" (
UsuariosToolStripMenuItem1).
Ambas entradas llaman a la rutina verUsuarios(), que toma el cliente seleccionado en la grilla y abre FormTickets_Clientes_Usuarios pasando su Id. El formulario queda fijado a ese cliente (el selector de cliente se muestra deshabilitado).
Pantalla principal
FormTickets_Clientes_Usuarios hereda del formulario base de resultados con grilla (FrmResult). Tiene:
- Barra ABM (
RB_ABM) con los botones Nuevo, Modificar y Eliminar (desactivar). - Zona de búsqueda (
gcBusqueda): selector de cliente (uC_BuscarIdGenerico1) y casilla "Solo Usuarios Activos" (cb_Activo), más el botón Buscar. - Grilla (
Grilla/gridView1) con los usuarios del cliente.
El título de la ventana es "Usuarios del cliente". Cuando se abre desde un cliente concreto, el selector de cliente queda fijo y deshabilitado en ese cliente.
Filtros de búsqueda
| Filtro | Control | Descripción |
|---|---|---|
| Cliente | uC_BuscarIdGenerico1 |
Cliente cuyos usuarios se listan. Deshabilitado cuando se abre desde un cliente seleccionado. |
| Solo Usuarios Activos | cb_Activo |
Si está marcado (valor por defecto), muestra únicamente los usuarios activos. |
| Nombre | parámetro Nombre |
Filtra por nombre (contiene). |
El botón Buscar (btnBuscar) refresca la grilla aplicando los parámetros. La casilla de Limpiar parámetros (ckbLimpiarP) reinicia los filtros manteniendo el cliente fijado.
Resultados
La grilla muestra los usuarios del cliente con columnas como:
| Columna | Campo | Descripción |
|---|---|---|
| Id | Id |
Identificador del usuario. |
| Nombre | Nombre |
Nombre del usuario. |
| Dirección | Direccion |
Dirección. |
| Teléfono | Telefono |
Teléfono fijo. |
| Celular | Celular |
Celular. |
Email |
Correo electrónico. | |
| Activo WebClient | ActivoWebClient |
Habilitación para el portal web del cliente. |
| MSN | MSN |
Identificación/alias. |
| Observaciones | Observaciones |
Notas. |
| Activo | Activo |
Estado del usuario. |
Los usuarios inactivos se muestran resaltados en gris/itálica (regla de formato [Activo] = false). Existen además columnas técnicas ocultas (verificación de celular/email, contraseña, vigencia de contraseña, logo, fechas y usuarios de alta/modificación).
Acciones disponibles
| Acción | Botón / control | Resultado |
|---|---|---|
| Nuevo usuario | Nuevo (RB_Nuevo) |
Abre FormTickets_Clientes_Usuarios_AddMod para crear un usuario del cliente, precargando datos del cliente (nombre, celular, teléfono). |
| Modificar usuario | Modificar (RB_Modificar) o doble clic |
Abre el alta/modificación con el usuario seleccionado para editarlo. |
| Desactivar usuario | Eliminar (RB_Eliminar) |
Pregunta "¿Desea desactivar el usuario seleccionado?". Si el usuario no tiene tickets, marca Activo y ActivoWebClient en falso. No elimina físicamente. |
| Buscar | Buscar (btnBuscar) |
Refresca la grilla con los filtros actuales. |
Si el usuario seleccionado ya está desactivado, al pulsar Eliminar el sistema avisa "El usuario ya se encuentra desactivado". Si tiene tickets asociados, avisa "El usuario no puede ser eliminado, tiene tickets asociados".
Nota de alta: al guardar un usuario nuevo, el sistema también genera automáticamente un registro de contacto del cliente (en
Clientes_Contactos) con los datos de teléfono, celular y email del usuario.
Ejemplo práctico
- En la grilla de Clientes, seleccionar el cliente.
- Pulsar Usuarios.
- En la pantalla Usuarios del cliente, pulsar Nuevo.
- Completar nombre, contacto, usuario y contraseña, y marcar la habilitación del portal web si corresponde.
- Guardar. El usuario aparece en la grilla.
- Para deshabilitar a alguien que ya no debe acceder, seleccionarlo y pulsar Eliminar (queda desactivado).
Consejos útiles
- Para dar de baja un acceso, use Eliminar: el usuario queda desactivado (y sin acceso al portal) pero se conserva su historial de tickets.
- Si necesita ver también los usuarios dados de baja, destilde "Solo Usuarios Activos" y pulse Buscar.
- El nombre, celular y teléfono se proponen a partir de los datos del cliente al crear el usuario; revíselos y ajústelos.
Preguntas frecuentes
¿Puedo borrar definitivamente un usuario?
No desde esta pantalla. El botón Eliminar sólo desactiva el usuario (Activo = falso). Además, si tiene tickets asociados no se permite la baja.¿Para qué sirve "Activo WebClient"?
Indica si el usuario está habilitado para el portal web del cliente. Al desactivar el usuario, también se pone en falso.¿Por qué el selector de cliente está deshabilitado?
Porque la pantalla se abrió desde un cliente concreto: queda fijada a ese cliente para administrar sólo sus usuarios.No veo un usuario que sé que existe.
Probablemente esté desactivado. Destilde "Solo Usuarios Activos" y vuelva a buscar.Permisos
| Permiso | Acción |
|---|---|
| (sin permiso específico verificado) | El acceso al formulario y a sus acciones depende del flujo de frmClientes. |
En el fuente analizado, la rutina
verUsuarios()defrmClientesno valida un permisoIsAllowedObjectantes de abrirFormTickets_Clientes_Usuarios, y el propio formulario no define unKeyLicences/permiso propio. Verificar contra el binario instalado si la versión vigente agrega un control de permiso para esta opción.
Información técnica
Basada en el análisis del formulario real de la v14
Formularios y pantallas
| Form | Rol |
|---|---|
FormTickets_Clientes_Usuarios |
Listado/ABM de los usuarios del cliente habilitados para tickets/soporte. C#, proyecto VPNET_WinForms (carpeta Tickets); hereda de FrmResult. |
FormTickets_Clientes_Usuarios_AddMod |
Alta y modificación de un usuario del cliente (contacto, usuario/contraseña, habilitación del portal ActivoWebClient). |
frmClientes |
Pantalla de Clientes; botón/menú "Usuarios" → verUsuarios() abre esta ventana con el Id del cliente (el selector de cliente queda fijo y deshabilitado). |
FrmResult |
Formulario base del que hereda: grilla + barra ABM (Nuevo/Modificar/Eliminar) y zona de búsqueda. |
Managers y clases de negocio
| Componente | Detalle |
|---|---|
Tickets_ClientesUsuarios_Manager (C#) |
Manager EF (Base_Manager<Tickets_ClientesUsuarios>). GetDatasources filtra por cliente/activo/nombre (LINQ). Save asigna el Id desde Numeraciones y genera un contacto del cliente. IsValidTodDelete() bloquea la baja si hay tickets. Incluye Reestablecer_Contraseña / Reestablecer_Contraseña_Comercial, Verificar_Usuario_Ticket, SaveLogo, ActualizarIdCliente. |
Tickets_ClientesUsuarios (modelo EF) + Tickets_ClientesUsuariosMap |
Entidad y mapping: tabla Tickets_ClientesUsuarios, PK Id no autogenerada; auditoría mapeada a FechaAdd / FechaMod / Id_UsuarioAdd / Id_UsuarioMod; LogoImgBase64 ignorado. |
Clientes_Contactos_Manager / Clientes_Contactos_Tipos_Manager |
Al guardar un usuario, generan automáticamente un contacto del cliente (creando un tipo de contacto por defecto si aún no existe ninguno). |
Mails_Manager |
Envío del mail de restablecimiento de contraseña del portal web (lo usan las funciones del manager, no botones de esta pantalla). |
Stored Procedures y funciones
ABM en EF puro (Base_Manager / LINQ): la pantalla persiste vía
DbContext, no invoca SP de ABM.
| SP / función | Uso |
|---|---|
GetNextId_Numeraciones("Tickets_ClientesUsuarios","Id") |
Helper del manager que obtiene el próximo Id (contra la tabla Numeraciones) al insertar un usuario, porque la PK no es autogenerada. |
Tickets_ClientesUsuarios_Add / _Mod / _Del / _Search |
Existen en el proyecto de base (VPNET_Database) pero esta pantalla no los usa (persiste por EF); quedan disponibles para otros consumidores. |
Tablas de base de datos
| Tabla | Uso |
|---|---|
Tickets_ClientesUsuarios |
Tabla principal: usuarios del cliente (nombre, dirección, teléfono/celular/email, usuario/contraseña, ActivoWebClient, verificaciones de celular/email, vigencia de contraseña, logo, nivel de permiso, auditoría). |
Clientes |
Cliente al que pertenece el usuario (FK Id_Cliente); precarga nombre/celular/teléfono/MSN en el alta. |
Tickets |
Tickets del usuario (Id_ClienteUsuario); su existencia impide la baja física (IsValidTodDelete). |
Clientes_Contactos |
Contacto del cliente generado automáticamente al guardar el usuario (teléfono, celular, email). |
Clientes_Contactos_Tipos |
Tipo usado para ese contacto; se crea uno por defecto si no hay ninguno. |
SeguridadUsuarios |
Usuarios del back office; consultada por Verificar_Usuario_Ticket y Reestablecer_Contraseña_Comercial. |
Numeraciones |
Fuente del próximo Id al insertar (GetNextId_Numeraciones). |
Permisos reales
| Permiso | Acción |
|---|---|
| (sin permiso propio) | verUsuarios() de frmClientes no valida IsAllowedObject y el formulario no define KeyLicences; el acceso depende del flujo de Clientes. Verificar contra el binario instalado. |
Relación con otros módulos / manuales
| Se conecta con | Cómo |
|---|---|
| Módulo Clientes (ABM) | Pantalla desde la que se abre (botón/menú "Usuarios"); fija la ventana a ese cliente. |
| Tickets | Estos usuarios son los habilitados para reportar/operar tickets; sus tickets bloquean la baja física del usuario. |
| Tipos de contacto del cliente | El alta genera un contacto del cliente usando un tipo de contacto (contactos del cliente). |
Notas para soporte
Eliminares baja lógica: poneActivo = falseyActivoWebClient = false; la baja física está bloqueada si el usuario tiene tickets (IsValidTodDelete). Si ya está desactivado avisa "El usuario ya se encuentra desactivado".- Al guardar un usuario se genera automáticamente un contacto del cliente (
Clientes_Contactos) con teléfono, celular y email. - PK
Idno autogenerada: se asigna desdeNumeraciones(GetNextId_Numeraciones). - Las funciones de restablecimiento de contraseña y verificación de usuario del manager están pensadas para el portal web; no se exponen como botones en esta pantalla.
- Al abrir desde un cliente concreto, el selector de cliente queda fijo y deshabilitado.