Appearance
Orden de Ítems en Carga de Comprobantes de Compra
Módulo: Compras → Subdiario de Compras Tipo: Process Estado: Implementado Fecha: 2026-05-20
Descripción
Durante la carga de un comprobante de compra, el operador ingresa los ítems en un orden determinado por su propio flujo de trabajo (por ejemplo, siguiendo el orden físico de la factura del proveedor). La tabla de ítems muestra por defecto el orden de carga; el operador puede ordenar por código clicando el encabezado de la columna "Código", y volver al orden de carga con un tercer clic.
Valor para el negocio:
- Facilita la verificación de ítems durante la carga comparando con el documento del proveedor
- Permite localizar rápidamente un artículo específico dentro de un comprobante extenso
- El orden de carga queda registrado y es recuperable en ediciones posteriores
Contexto:
- Aplica al formulario de carga y edición de comprobantes en el Subdiario de Compras
- El orden de visualización es una preferencia de sesión: no altera los datos persistidos del comprobante
- Comprobantes cargados con versiones anteriores del sistema no tienen orden de carga registrado; se muestran en el orden en que fueron insertados originalmente
Frontend (Perspectiva de Usuario)
Vistas
- Formulario de carga/edición de comprobantes de compra con tabla de ítems
- Columna "Código" en la tabla de ítems con ordenamiento nativo activado
Interacciones del Usuario
- Agregar ítems al comprobante en el orden deseado
- Clicar el encabezado de la columna "Código" para ordenar por código (ascendente → descendente → sin orden)
- El tercer clic restaura el orden de carga original
- Ambos estados muestran los mismos ítems; solo cambia el orden de presentación
Estados de UI
- Sin orden activo (estado por defecto): la tabla muestra los ítems en el orden en que el operador los fue ingresando
- Un clic en "Código": ítems ordenados por código ascendente
- Dos clics en "Código": ítems ordenados por código descendente
- Tres clics en "Código": vuelve al orden de carga
- Al recargar la página o abrir un comprobante, no hay sort activo (orden de carga)
Backend (Perspectiva de Datos de Negocio)
Entidades de Negocio
- Ítem de comprobante de compra: cada línea del comprobante, con su artículo, cantidad, precio y posición de carga
Datos Necesarios
- Posición de carga del ítem: número entero que indica el orden en que fue agregado al comprobante durante la sesión de carga
- Código de artículo (para ítems con stock) o número de cuenta contable (para ítems sin stock): usado como criterio de ordenamiento alternativo
Relaciones de Negocio
- Cada ítem de comprobante tiene asignada una posición de carga en el momento de su ingreso
- La posición de carga se conserva al editar el comprobante, permitiendo restaurar el orden original
Validaciones de Negocio
- La posición de carga se asigna automáticamente al agregar cada ítem; el operador no la ingresa manualmente
- El ordenamiento por código es solo visual: no modifica la posición de carga registrada
- Comprobantes históricos sin posición de carga registrada se presentan en el orden de inserción original como comportamiento alternativo
Reglas de Negocio
RN-001 — Asignación de posición de carga:
- Condición: El operador agrega un ítem al comprobante
- Acción: El sistema asigna automáticamente la siguiente posición disponible según el orden de ingreso en esa sesión
RN-002 — Orden por defecto:
- Condición: Al visualizar o editar un comprobante
- Acción: Los ítems se muestran en el orden de carga registrado (posición asignada al momento del ingreso)
RN-003 — Orden alternativo por código:
- Condición: El operador clica el encabezado de la columna "Código"
- Acción: La tabla ordena los ítems por código (ascendente → descendente → sin orden) usando el ordenamiento nativo de DataTables, sin alterar la posición de carga registrada
RN-004 — Persistencia del orden de carga:
- Condición: El comprobante se guarda (nuevo o editado)
- Acción: La posición de carga de cada ítem se persiste, garantizando que el orden original sea recuperable en futuras ediciones
RN-005 — Comprobantes históricos sin posición registrada:
- Condición: El comprobante fue cargado antes de que esta funcionalidad existiera
- Acción: Los ítems se presentan en el orden de inserción física original; el ordenamiento alternativo sigue disponible
RN-006 — Estado de ordenamiento no persistido:
- Condición: El operador recarga la página o abre el comprobante en una nueva sesión
- Acción: El sort de la tabla se resetea (sin orden activo = orden de carga); la preferencia de visualización no se guarda
Casos de Uso
UC-001: Verificar ítems de un comprobante extenso por código de artículo
Actor: Operador de compras
Precondiciones:
- El operador está en el formulario de carga o edición de un comprobante con múltiples ítems
Flujo principal:
- El operador ingresa los ítems del comprobante en el orden del documento del proveedor
- Necesita localizar un artículo específico dentro de la lista
- El operador clica el encabezado de la columna "Código"
- La tabla ordena los ítems por código ascendente
- El operador encuentra el artículo buscado y verifica sus datos
- El operador clica el encabezado una tercera vez para retomar la vista en orden de carga
Flujos alternativos:
- 6a. El operador no resetea el sort y continúa operando: la tabla mantiene el orden por código hasta que se resetee o recargue la página
Postcondiciones:
- El comprobante no fue modificado; solo cambió la vista de presentación
UC-002: Editar un comprobante existente conservando el orden de carga original
Actor: Operador de compras
Precondiciones:
- El comprobante fue cargado previamente y tiene posición de carga registrada en cada ítem
Flujo principal:
- El operador abre el comprobante en modo edición
- El sistema presenta los ítems en el orden de carga original (checkbox desmarcado por defecto)
- El operador modifica datos de uno o más ítems o agrega nuevos
- Los nuevos ítems reciben la siguiente posición de carga disponible
- El operador guarda el comprobante
- El sistema conserva las posiciones de carga de los ítems existentes y asigna posiciones a los nuevos
Flujos alternativos:
- 2a. El comprobante es histórico sin posición registrada: el sistema presenta los ítems en orden de inserción original; el operador puede usar el ordenamiento por código normalmente
Postcondiciones:
- El comprobante actualizado mantiene el orden de carga de los ítems existentes
- Los nuevos ítems tienen posición asignada al final de la secuencia
UC-003: Carga inicial de comprobante con uso del ordenamiento
Actor: Operador de compras
Precondiciones:
- El operador inicia la carga de un nuevo comprobante
Flujo principal:
- El operador agrega los ítems siguiendo el documento del proveedor
- En algún momento clica "Código" para ordenar y verificar duplicados o revisar artículos
- Verifica que todos los artículos esperados estén presentes
- Clica "Código" una tercera vez para retomar el orden de carga
- Completa la carga y guarda el comprobante
Postcondiciones:
- El comprobante guardado tiene cada ítem con su posición de carga asignada en el orden de ingreso
Consideraciones
Auditoría
- El orden de carga de los ítems se registra como parte de los datos del comprobante y queda disponible para auditoría interna
Compatibilidad con datos históricos
- Comprobantes anteriores a la implementación de esta funcionalidad no tienen posición de carga registrada
- Estos comprobantes siguen siendo accesibles y operables; el ordenamiento alternativo por código funciona normalmente sobre ellos
Dependencias
Módulos internos
- Subdiario de Compras: formulario principal donde se integra este proceso
- Stock: provee el código de artículo usado como criterio de ordenamiento para ítems con stock
- Contabilidad: provee el número de cuenta contable usado como criterio de ordenamiento para ítems sin stock
Criterios de Aceptación
- [ ] Dado que el operador carga ítems en un comprobante, cuando visualiza la tabla sin activar el checkbox, entonces los ítems aparecen en el orden exacto en que fueron ingresados
- [ ] Dado que la tabla muestra ítems en orden de carga, cuando el operador clica el encabezado de "Código", entonces los ítems se ordenan por código ascendente sin alterar los datos del comprobante
- [ ] Dado que el operador ha activado el sort por código, cuando clica el encabezado por tercera vez, entonces los ítems vuelven al orden de carga original
- [ ] Dado que el operador guarda el comprobante, cuando lo abre en una edición posterior, entonces los ítems aparecen en el mismo orden de carga que tenían al ser ingresados
- [ ] Dado que el operador recarga la página, cuando vuelve al comprobante, entonces no hay sort activo y la tabla muestra el orden de carga
- [ ] Dado que el comprobante es histórico sin posición de carga registrada, cuando el operador lo abre, entonces los ítems se presentan en el orden de inserción original y el ordenamiento por columna sigue disponible y funcional
Notas Adicionales
- La funcionalidad de ordenamiento es exclusivamente de presentación: no modifica ni reordena los datos del comprobante
- El estado del sort (columna activa) es una preferencia de sesión y no se persiste entre sesiones ni en la base de datos