Catálogos de Categorías
Gestión jerárquica de categorías de productos y servicios en el módulo de Sistema de Logística Hospitalaria de Davix ERPX.
Descripción general
La pantalla Catálogos de Categorías permite gestionar las categorías que organizan los productos y servicios del módulo de Sistema de Logística Hospitalaria. Las categorías se presentan en una estructura jerárquica tipo árbol (padre → hijo), donde cada categoría puede contener subcategorías anidadas en múltiples niveles.
Las categorías se muestran en un componente TreeTable (tabla tipo árbol) que permite expandir y colapsar nodos para navegar la jerarquía. Los nodos hijos se cargan de forma diferida al expandir cada categoría padre.
Acceso
Navegue a: Logística → Configuración → Categorías
Vista principal — Tabla tipo árbol
Al ingresar, se muestra una tabla jerárquica (p-treeTable) con todas las categorías raíz (sin padre). Las categorías que tienen hijos muestran un ícono de expansión (triángulo) a la izquierda.
Columnas de la tabla
| Columna | Ancho | Descripción |
|---|---|---|
| Código | 30% | Código único de la categoría. Al ser la primera columna, incluye el control de expansión del nodo del árbol (toggler). |
| Nombres | 40% | Nombre de la categoría. |
| Descripción | 40% | Descripción de la categoría. |
| Acciones | 20% | Columna con los botones de acción contextuales. |
Si la tabla no contiene datos, se muestra el mensaje: "No se encontraron datos".
Expansión de nodos
- Al hacer clic en el triángulo de expansión de una categoría, el sistema consulta las subcategorías (hijos) de esa categoría usando el parámetro
parent_id. - Los nodos hijos se insertan debajo del nodo padre con un nivel de indentación adicional.
- Se puede expandir múltiples niveles de profundidad (categoría → subcategoría → sub-subcategoría, etc.).
- Un nodo sin hijos se muestra como nodo hoja (sin triángulo de expansión).
Barra de menú
La tabla cuenta con una barra de menú superior (p-menubar) con las siguientes opciones:
| Opción | Submenú | Ícono | Descripción |
|---|---|---|---|
| Nuevo | Categoría | pi pi-plus | Abre el formulario para crear una nueva categoría raíz. |
| Actualizar | — | pi pi-refresh | Recarga la lista de categorías desde el servidor. |
| Exportar a | Excel, PDF, CSV | pi pi-download | Opciones de exportación (funcionalidad no implementada en la versión actual). |
| Eliminar | — | pi pi-trash | Elimina la categoría seleccionada en la tabla. Requiere seleccionar un registro previamente. |
Las opciones de exportación (Excel, PDF, CSV) se muestran en el menú pero no están implementadas en la versión actual del sistema.
Menú contextual
Al hacer clic derecho sobre una fila de la tabla, se despliega un menú contextual con las siguientes opciones:
| Opción | Ícono | Descripción |
|---|---|---|
| Nueva categoría | pi pi-plus | Crea una nueva subcategoría hija de la categoría seleccionada. El campo "Categoría (Padre)" se pre-llena y se deshabilita. |
| Editar | pi pi-pencil | Abre el formulario de edición con los datos de la categoría seleccionada. |
| Eliminar | pi pi-trash | Elimina la categoría seleccionada. |
Formulario de creación / edición
Al seleccionar Nuevo > Categoría desde el menú, Nueva categoría desde el menú contextual, o Editar desde el menú contextual, se abre un diálogo a pantalla completa (p-dialog) con el formulario.
Encabezado del diálogo
- Título:
Catalogo Categoría - Breadcrumb:
Inicio > Logistica > Categorias - El diálogo ocupa el 100% del ancho y alto de la pantalla.
- No se puede cerrar haciendo clic fuera del diálogo (no tiene
dismissableMask). - No muestra botón de cerrar en la esquina (no tiene
closable).
Subtítulo del formulario
- Creación:
"Nuevo catalogo categoria" - Edición:
"Aqui puede editar la lista de catalogo categoría"
Botones del formulario
| Botón | Ícono | Acción |
|---|---|---|
| Cancelar | pi pi-times | Cierra el diálogo sin guardar cambios. Retorna a la vista principal. |
| Guardar | pi pi-save | Valida el formulario y guarda la categoría (POST para creación, PUT para edición). |
Sección 1 — Categoría (Padre)
Esta sección permite asignar una categoría padre a la categoría que se está creando o editando.
| Campo | Tipo | Obligatorio | Ancho | Tooltip | Mensaje de error | Descripción |
|---|---|---|---|---|---|---|
| Categoría (Padre) | Autocompletado con desplegable (p-autoComplete con [dropdown]="true") | No | 6/12 columnas | "Seleccione el parent si desea asignar una nueva categoria o actualizarla" | "* Seleccione una categoría parent válido" | Busca y selecciona la categoría padre. Muestra sugerencias en formato "\{codigo\} - \{nombre\}". Al escribir, filtra las categorías que coincidan. Al hacer clic en el botón desplegable, muestra todas las categorías disponibles. |
Modo "Nueva categoría" (desde menú contextual): Cuando se crea una subcategoría desde el menú contextual de una categoría existente, el campo Categoría (Padre) se pre-llena automáticamente con la categoría seleccionada y se deshabilita (no se puede modificar). Esto asegura que la nueva categoría sea hija de la seleccionada.
Modo edición: Cuando se edita una categoría que tiene padre (parent_id), el sistema consulta los datos del padre por ID y lo pre-llena en el campo de autocompletado.
Sección 2 — Detalles de categoría
| Campo | Tipo | Obligatorio | Ancho | Tooltip | Mensaje de error | Descripción |
|---|---|---|---|---|---|---|
| Código | Texto (pInputText) | Sí | 2/12 columnas | "La codigo se genera automáticamente" | "* Ingrese o valide el código" | Código único de la categoría. Se sugiere que se genera automáticamente aunque puede ingresarse manualmente. |
| Nombre | Texto (pInputText) | Sí | 6/12 columnas | — | "* Ingrese un nombre válido" | Nombre descriptivo de la categoría. |
| Descripción | Texto (pInputText) | No | 12/12 columnas | — | "* Ingrese una descripción válida" | Descripción adicional de la categoría. Campo opcional que ocupa todo el ancho del formulario. |
Modos de operación del formulario
El formulario se comporta de forma diferente según el modo de apertura:
Modo creación (nueva categoría raíz)
Seleccione "Nuevo > Categoría" desde la barra de menú
Se abre el diálogo con todos los campos vacíos. El campo Categoría (Padre) está habilitado para seleccionar opcionalmente un padre.
Complete los campos requeridos
Ingrese el Código y Nombre de la categoría. Opcionalmente, seleccione una categoría padre y agregue una descripción.
Haga clic en "Guardar"
El sistema valida el formulario. Si es válido, envía una solicitud POST al endpoint /v2.0.1/erpx/logistica/catalogos-categorias con los datos de la categoría.
Confirmación
Se muestra la notificación "Registrado con éxito" (tipo éxito, duración 5 segundos). El diálogo se cierra y la tabla se recarga automáticamente.
Modo creación de subcategoría (desde menú contextual)
Haga clic derecho sobre una categoría existente y seleccione "Nueva categoría"
Se abre el diálogo con el campo Categoría (Padre) pre-llenado con la categoría seleccionada y deshabilitado.
Complete los campos requeridos
Ingrese el Código y Nombre de la subcategoría. Opcionalmente, agregue una descripción. No puede cambiar el padre.
Haga clic en "Guardar"
El sistema valida el formulario y envía una solicitud POST con el parent_id de la categoría padre seleccionada.
Confirmación
Se muestra la notificación "Registrado con éxito" (tipo éxito, duración 5 segundos). El diálogo se cierra y la tabla se recarga.
Modo edición
Haga clic derecho sobre una categoría y seleccione "Editar"
Se abre el diálogo con los datos de la categoría cargados. Si la categoría tiene padre (parent_id), se consulta y pre-llena el campo de autocompletado.
Modifique los campos deseados
Puede cambiar el código, nombre, descripción o la categoría padre.
Haga clic en "Guardar"
El sistema valida el formulario y envía una solicitud PUT al endpoint /v2.0.1/erpx/logistica/catalogos-categorias con los datos actualizados.
Confirmación
Se muestra la notificación "Se ha actualizado con éxito" (tipo éxito, duración 5 segundos). El diálogo se cierra y la tabla se recarga.
Eliminación de categorías
El componente de eliminación no está implementado en la versión actual. Al intentar eliminar una categoría (desde el menú o menú contextual), se muestra únicamente el texto "destroy-categoria works!" sin ejecutar ninguna acción real de eliminación.
Validaciones del formulario
| Escenario | Mensaje | Tipo | Duración |
|---|---|---|---|
| Formulario inválido al guardar (campos requeridos vacíos) | "Revise bien, hay formularios por validar." | Error | 5 segundos |
| Categoría creada exitosamente | "Registrado con éxito" | Éxito | 5 segundos |
| Categoría actualizada exitosamente | "Se ha actualizado con éxito" | Éxito | 5 segundos |
Endpoint de la API
| Método | Endpoint | Descripción |
|---|---|---|
| GET | /v2.0.1/erpx/logistica/catalogos-categorias | Obtiene la lista de categorías. Soporta filtro por parent_id para obtener hijos de una categoría. |
| GET | /v2.0.1/erpx/logistica/catalogos-categorias/\{id\} | Obtiene una categoría por su ID. |
| POST | /v2.0.1/erpx/logistica/catalogos-categorias | Crea una nueva categoría. |
| PUT | /v2.0.1/erpx/logistica/catalogos-categorias | Actualiza una categoría existente. |
| DELETE | /v2.0.1/erpx/logistica/catalogos-categorias/\{id\} | Elimina una categoría (no implementado en la versión actual). |
Problemas comunes
| Problema | Causa | Solución |
|---|---|---|
| No se muestran subcategorías al expandir un nodo | Error de conexión o la categoría no tiene hijos registrados | Verifique la conexión de red. Use Actualizar en la barra de menú para recargar los datos. |
| El campo "Categoría (Padre)" no muestra sugerencias | No hay categorías registradas en el sistema o error de conexión | Verifique que existan categorías creadas. Revise la conexión de red. |
| Error "Revise bien, hay formularios por validar." | Campos obligatorios (Código y/o Nombre) están vacíos | Complete todos los campos marcados como obligatorios antes de guardar. |
| No se puede cambiar el padre al crear subcategoría | El campo está deshabilitado porque se usó la opción "Nueva categoría" del menú contextual | Esto es el comportamiento esperado. Si necesita elegir otro padre, cancele y cree la categoría desde el menú "Nuevo > Categoría". |
| La opción "Eliminar" no funciona | La funcionalidad de eliminación no está implementada en la versión actual | Contacte al administrador del sistema. Esta funcionalidad estará disponible en futuras versiones. |
| Las opciones de exportación no hacen nada | La exportación a Excel, PDF y CSV no está implementada en la versión actual | Contacte al administrador del sistema. Esta funcionalidad estará disponible en futuras versiones. |