Appearance
Relacion Comprobante de Compra - Movimiento de Cuenta Corriente
Modulo: Compras + Cuenta Corriente Tipo: Resource Estado: ✅ IMPLEMENTADOFecha: 2025-12-15
Descripcion
Problema de Negocio
Actualmente el sistema no mantiene un registro formal de la relacion entre los comprobantes de compra registrados y los movimientos de cuenta corriente que se generan automaticamente para representar la deuda con el proveedor. Esta falta de vinculo genera los siguientes problemas:
- Dificultad para determinar que movimiento de cuenta corriente corresponde a un comprobante de compra especifico
- Imposibilidad de identificar rapidamente que comprobante origino un movimiento de cuenta corriente determinado
- Falta de trazabilidad entre el registro del comprobante y su impacto en la cuenta corriente del proveedor
- Problemas de auditoria al no poder vincular directamente comprobantes con sus movimientos de deuda asociados
Necesidad del Negocio
El sistema necesita registrar y mantener la relacion entre los comprobantes de compra y los movimientos de cuenta corriente que se generan automaticamente al momento del registro. Esta relacion es de naturaleza uno a uno debido a que:
- Un comprobante de compra genera un unico movimiento de cuenta corriente: Cuando se registra un comprobante de compra a credito, se genera exactamente un movimiento en la cuenta corriente del proveedor que representa la deuda adquirida
- Un movimiento de cuenta corriente corresponde a un unico comprobante: Cada movimiento automatico generado por registro de compra esta asociado exclusivamente al comprobante que lo origino
IMPORTANTE: Esta relacion NO involucra ordenes de pago. Las ordenes de pago tienen su propia logica de relacion con comprobantes que ya existe en el sistema. Esta funcionalidad es exclusivamente para vincular el comprobante de compra con el movimiento de cuenta corriente que representa la deuda inicial.
Valor de Negocio
La implementacion de esta funcionalidad aportara los siguientes beneficios:
- Trazabilidad completa: Permite rastrear el vinculo directo entre el comprobante de compra y su movimiento de deuda en cuenta corriente
- Integridad de datos: Garantiza consistencia entre los registros de compras y los movimientos de cuenta corriente
- Mejora en consultas: Facilita la obtencion de informacion relacionada desde cualquiera de los dos extremos de la relacion
- Auditoria clara: Simplifica los procesos de verificacion y control de registros de compra
- Consultas eficientes: Habilita la navegacion directa entre comprobante y movimiento sin necesidad de busquedas indirectas
Contexto en el Proceso de Negocio
Esta funcionalidad se integra en el flujo de registro de compras de la siguiente manera:
- El usuario registra un comprobante de compra a credito en el sistema
- El sistema valida y guarda el comprobante de compra
- El sistema genera automaticamente un movimiento en la cuenta corriente del proveedor que representa la deuda
- [Esta funcionalidad] El sistema registra la relacion entre el comprobante y el movimiento de cuenta corriente generado
- La relacion queda disponible para consultas y trazabilidad
Backend
Entidades de Negocio
Esta funcionalidad involucra las siguientes entidades de negocio:
Relacion Comprobante-Movimiento
Representa el vinculo entre un comprobante de compra y el movimiento de cuenta corriente generado automaticamente al registrarlo. Cada registro de relacion indica que un comprobante de compra especifico genero un movimiento de cuenta corriente especifico.
Proposito: Servir como registro de vinculo que permite la relacion uno a uno entre comprobantes de compra y sus movimientos de cuenta corriente asociados.
Datos Necesarios
Cada registro de relacion debe contener la siguiente informacion de negocio:
| Dato | Descripcion | Proposito |
|---|---|---|
| Identificador de la relacion | Identificador unico del registro de relacion | Permite referenciar y gestionar cada relacion de forma individual |
| Identificador del comprobante | Referencia al comprobante de compra asociado | Identifica que comprobante genero la relacion |
| Identificador del movimiento | Referencia al movimiento de cuenta corriente relacionado | Identifica que movimiento de cuenta corriente fue generado para el comprobante |
Relaciones de Negocio
Comprobante de Compra (1) ---- (1) Relacion ---- (1) Movimiento de Cuenta Corriente- Comprobante a Relacion: Un comprobante de compra a credito tiene exactamente una relacion con un movimiento de cuenta corriente
- Movimiento a Relacion: Un movimiento de cuenta corriente generado por registro de compra tiene exactamente una relacion con un comprobante
- Relacion: Cada relacion es unica para el par comprobante-movimiento
Validaciones de Negocio
Las siguientes validaciones de negocio deben aplicarse:
Existencia del comprobante:
- El comprobante de compra referenciado debe existir en el sistema
- El comprobante debe estar en un estado valido (no anulado al momento de crear la relacion)
Existencia del movimiento:
- El movimiento de cuenta corriente referenciado debe existir en el sistema
- El movimiento debe corresponder a un registro de deuda por compra
Unicidad de la relacion por comprobante:
- Un comprobante de compra solo puede tener una relacion con un movimiento de cuenta corriente
- El sistema debe rechazar intentos de crear relaciones duplicadas para el mismo comprobante
Unicidad de la relacion por movimiento:
- Un movimiento de cuenta corriente solo puede estar vinculado a un comprobante de compra
- El sistema debe rechazar intentos de vincular un movimiento ya relacionado
Integridad referencial:
- Una relacion solo puede eliminarse si el comprobante de compra asociado se elimina o anula
- Las relaciones deben mantenerse mientras ambos documentos esten activos
Reglas de Negocio
RN-001: Creacion Automatica al Registrar Comprobante a Credito
Descripcion: La relacion entre comprobante y movimiento de cuenta corriente se crea automaticamente al momento de registrar un comprobante de compra a credito.
- Condicion: Cuando el sistema registra un comprobante de compra con condicion de pago a credito (genera deuda)
- Accion: El sistema debe crear automaticamente el movimiento de cuenta corriente que representa la deuda y registrar la relacion entre el comprobante y dicho movimiento
RN-002: Eliminacion Automatica al Eliminar Comprobante
Descripcion: La relacion se elimina cuando se elimina o anula el comprobante de compra que la origino.
- Condicion: Cuando un usuario anula o elimina un comprobante de compra que tiene relacion registrada
- Accion: El sistema debe eliminar la relacion asociada a dicho comprobante (el movimiento de cuenta corriente tambien se elimina como parte del proceso de anulacion del comprobante)
RN-003: Unicidad de Relacion
Descripcion: Cada comprobante de compra puede tener como maximo una relacion con un movimiento de cuenta corriente, y viceversa.
- Condicion: Al intentar crear una relacion donde el comprobante o el movimiento ya tienen una relacion existente
- Accion: El sistema debe rechazar la operacion e informar que ya existe una relacion para ese documento
RN-004: Validacion Previa de Existencia
Descripcion: Ambos documentos deben existir antes de crear la relacion.
- Condicion: Al intentar crear una relacion
- Accion: El sistema debe verificar que tanto el comprobante de compra como el movimiento de cuenta corriente existan y sean validos. Si alguno no existe, debe rechazar la operacion con un mensaje descriptivo.
RN-005: Inmutabilidad de la Relacion
Descripcion: Las relaciones no pueden modificarse una vez creadas.
- Condicion: Intento de modificar una relacion existente (cambiar comprobante o movimiento)
- Accion: El sistema no debe permitir cambiar el comprobante o el movimiento de una relacion existente. La relacion solo puede crearse o eliminarse, nunca modificarse.
RN-006: Solo Compras a Credito
Descripcion: La relacion solo se crea para comprobantes de compra que generan movimiento de cuenta corriente (compras a credito).
- Condicion: Al registrar un comprobante de compra
- Accion: Si el comprobante es una compra al contado (no genera deuda en cuenta corriente), no se crea relacion. Solo los comprobantes que generan movimiento de deuda tendran relacion registrada.
Casos de Uso
CU-001: Consultar Movimiento de Cuenta Corriente de un Comprobante
Actor: Usuario del area de Compras, Contabilidad o Tesoreria
Precondiciones:
- El usuario tiene permisos de consulta de comprobantes de compra
- Existe un comprobante de compra registrado en el sistema
- El comprobante fue registrado como compra a credito (genero movimiento de cuenta corriente)
- El usuario se encuentra en la vista de detalle del comprobante de compra
Flujo Principal:
- El usuario accede al detalle de un comprobante de compra especifico
- El sistema muestra la informacion general del comprobante
- El sistema consulta el movimiento de cuenta corriente relacionado con dicho comprobante
- El sistema muestra la informacion del movimiento asociado (numero, fecha, importe de deuda, estado)
- El usuario puede hacer clic en el movimiento para ver su detalle en cuenta corriente
Postcondiciones:
- El usuario visualiza el movimiento de cuenta corriente que representa la deuda generada por el comprobante
- El usuario puede navegar al detalle del movimiento si lo requiere
Flujos Alternativos:
- Comprobante sin relacion (compra al contado): Si el comprobante no tiene movimiento asociado porque fue compra al contado, el sistema muestra un mensaje indicando "Este comprobante no genero movimiento de cuenta corriente (compra al contado)"
- Error de consulta: Si ocurre un error al obtener la relacion, el sistema muestra un mensaje de error y permite reintentar la consulta
CU-002: Consultar Comprobante Origen de un Movimiento
Actor: Usuario del area de Compras, Contabilidad o Tesoreria
Precondiciones:
- El usuario tiene permisos de consulta de cuenta corriente
- Existe un movimiento de cuenta corriente generado por registro de compra
- El usuario se encuentra en la vista de movimientos de cuenta corriente
Flujo Principal:
- El usuario consulta los movimientos de cuenta corriente de un proveedor
- El sistema muestra la lista de movimientos
- El usuario identifica un movimiento de tipo deuda por compra
- El sistema muestra la informacion del comprobante origen asociado a ese movimiento
- El usuario puede hacer clic en el comprobante para ver su detalle
Postcondiciones:
- El usuario visualiza el comprobante de compra que genero el movimiento de cuenta corriente
- El usuario puede navegar al detalle del comprobante si lo requiere
Flujos Alternativos:
- Movimiento sin relacion (historico): Si el movimiento no tiene comprobante asociado (datos historicos), el sistema muestra un mensaje indicando "No se encontro comprobante asociado a este movimiento"
- Movimiento de otro tipo: Si el movimiento no es de tipo deuda por compra (ej: orden de pago), el sistema no muestra relacion de comprobante origen
CU-003: Registrar Relacion al Crear Comprobante a Credito
Actor: Sistema (proceso automatico durante registro de comprobante)
Precondiciones:
- Un usuario con permisos esta registrando un nuevo comprobante de compra
- El comprobante es una compra a credito (genera deuda en cuenta corriente)
- El proveedor existe y tiene cuenta corriente activa
Flujo Principal:
- El usuario confirma el registro del comprobante de compra a credito
- El sistema valida y registra el comprobante de compra
- El sistema genera automaticamente el movimiento de deuda en la cuenta corriente del proveedor
- El sistema crea un registro de relacion vinculando el comprobante con el movimiento generado
- El sistema confirma la operacion exitosa al usuario
Postcondiciones:
- El comprobante de compra queda registrado en el sistema
- El movimiento de cuenta corriente queda registrado representando la deuda
- Existe un registro de relacion que vincula el comprobante con el movimiento
- La relacion esta disponible para consulta inmediata
Flujos Alternativos:
- Compra al contado: Si el comprobante es compra al contado, el sistema no genera movimiento de cuenta corriente ni relacion
- Error en creacion de movimiento: Si ocurre un error al crear el movimiento de cuenta corriente, el sistema revierte toda la operacion incluyendo el comprobante
CU-004: Eliminar Relacion al Anular Comprobante
Actor: Sistema (proceso automatico durante anulacion de comprobante)
Precondiciones:
- Un usuario con permisos esta anulando un comprobante de compra existente
- El comprobante tiene una relacion con un movimiento de cuenta corriente
- El movimiento de cuenta corriente aun existe y no ha sido cancelado completamente
Flujo Principal:
- El usuario confirma la anulacion del comprobante de compra
- El sistema identifica la relacion asociada al comprobante
- El sistema elimina el registro de relacion
- El sistema elimina o revierte el movimiento de cuenta corriente asociado
- El sistema completa el proceso de anulacion del comprobante
- El sistema confirma la operacion exitosa al usuario
Postcondiciones:
- El comprobante de compra queda anulado en el sistema
- El movimiento de cuenta corriente queda eliminado o revertido
- No existe relacion que vincule el comprobante anulado con movimiento alguno
Flujos Alternativos:
- Comprobante sin relacion: Si el comprobante no tiene relacion (compra al contado), el sistema continua con la anulacion normalmente
- Movimiento con pagos aplicados: Si el movimiento de cuenta corriente ya tiene pagos aplicados, el sistema rechaza la anulacion indicando que debe revertir los pagos primero
- Error en eliminacion: Si ocurre un error al eliminar la relacion o el movimiento, el sistema revierte toda la operacion de anulacion
Consideraciones
Integridad de Datos
Esta relacion es fundamental para mantener la integridad entre los modulos de Compras y Cuenta Corriente:
- Las operaciones de creacion y eliminacion de relaciones deben ejecutarse de forma transaccional junto con las operaciones de comprobantes y movimientos
- Si falla la creacion de la relacion, debe revertirse el registro del comprobante y el movimiento
- Si falla la eliminacion de la relacion durante anulacion, debe revertirse toda la operacion
Auditoria
Operaciones que se registran automaticamente:
- Creacion de relaciones al registrar comprobantes a credito
- Eliminacion de relaciones al anular comprobantes
Informacion preservada:
- Fecha y hora de la operacion
- Usuario que ejecuto la accion que genero el registro/eliminacion
- Identificadores de los documentos involucrados (comprobante y movimiento)
Trazabilidad
Esta relacion permite:
- Rastrear el origen de cada movimiento de deuda en cuenta corriente
- Verificar que cada comprobante a credito tiene su movimiento correspondiente
- Identificar inconsistencias si existen comprobantes sin movimiento o viceversa
- Facilitar conciliaciones entre el registro de compras y la cuenta corriente
Rendimiento
Volumenes esperados:
- Una relacion por cada comprobante de compra a credito registrado
- El volumen dependera directamente de la cantidad de compras a credito realizadas
Expectativas de tiempo de respuesta:
- La consulta de relacion desde un comprobante debe ser inmediata
- La creacion de relacion no debe agregar latencia perceptible al registro de comprobante
- La eliminacion de relacion no debe agregar latencia significativa a la anulacion
Dependencias
Funcionalidades Relacionadas
Registro de Comprobantes de Compra: Esta funcionalidad se integra en el proceso de registro de comprobantes. La relacion se crea automaticamente como parte del flujo de registro de compras a credito.
Cuenta Corriente de Proveedores: Los movimientos de cuenta corriente son uno de los extremos de la relacion. La consulta de relaciones permite conocer el comprobante origen de cada movimiento.
Anulacion de Comprobantes de Compra: El proceso de anulacion debe incluir la eliminacion de la relacion y el movimiento de cuenta corriente asociado.
Gestion de Proveedores: Tanto los comprobantes como los movimientos de cuenta corriente estan asociados a un proveedor. La relacion existe dentro del contexto de un proveedor especifico.
Modulos de Negocio Externos
Modulo de Compras: Proporciona la gestion de comprobantes de compra que son uno de los extremos de la relacion
Modulo de Cuenta Corriente: Proporciona la gestion de movimientos que son el otro extremo de la relacion
Modulo de Proveedores: Proporciona el contexto del proveedor al que pertenecen tanto comprobantes como movimientos
NOTA: Esta funcionalidad NO tiene relacion con las ordenes de pago. Las ordenes de pago tienen su propia logica de relacion con comprobantes que es independiente de esta funcionalidad.
Criterios de Aceptacion
La funcionalidad se considera completa cuando se cumplan los siguientes criterios:
[ ] AC-001: Al registrar un comprobante de compra a credito, el sistema crea automaticamente la relacion con el movimiento de cuenta corriente generado
[ ] AC-002: Al registrar un comprobante de compra al contado, el sistema NO crea relacion (ya que no se genera movimiento de cuenta corriente)
[ ] AC-003: El sistema permite consultar el movimiento de cuenta corriente asociado a un comprobante de compra desde la vista de detalle del comprobante
[ ] AC-004: El sistema permite consultar el comprobante origen de un movimiento de cuenta corriente desde la vista de movimientos
[ ] AC-005: Al anular un comprobante de compra, el sistema elimina automaticamente la relacion asociada
[ ] AC-006: El sistema rechaza la creacion de relaciones duplicadas para el mismo comprobante, asegurando unicidad
[ ] AC-007: El sistema rechaza la creacion de relaciones duplicadas para el mismo movimiento, asegurando unicidad
[ ] AC-008: El sistema valida la existencia del comprobante antes de crear una relacion, rechazando la operacion si no existe
[ ] AC-009: El sistema valida la existencia del movimiento antes de crear una relacion, rechazando la operacion si no existe
[ ] AC-010: Las consultas de relaciones muestran informacion basica del documento relacionado sin necesidad de navegar a cada documento
[ ] AC-011: Los usuarios pueden navegar desde la informacion de relacion al detalle del documento relacionado (movimiento o comprobante)
[ ] AC-012: El sistema muestra mensajes apropiados cuando no existe relacion para un comprobante (compra al contado) o movimiento consultado
[ ] AC-013: Las operaciones de creacion y eliminacion de relaciones se registran en el log de auditoria del sistema
[ ] AC-014: Las operaciones de relacion son transaccionales con las operaciones de comprobante y movimiento
Notas Adicionales
Diferencia con Relacion Orden de Pago - Comprobante
Es importante aclarar que esta funcionalidad es DIFERENTE a la relacion entre ordenes de pago y comprobantes:
| Aspecto | Esta Funcionalidad | Relacion Orden Pago - Comprobante |
|---|---|---|
| Proposito | Vincular comprobante con movimiento de deuda generado | Vincular orden de pago con comprobantes cancelados |
| Momento | Al registrar comprobante de compra | Al registrar orden de pago |
| Cardinalidad | 1:1 (un comprobante, un movimiento) | N:N (una orden puede cancelar varios comprobantes, un comprobante puede ser cancelado por varias ordenes) |
| Tipo de movimiento | Movimiento de deuda (entrada en cuenta corriente) | Movimiento de pago (salida de cuenta corriente) |
Consideraciones de Migracion
Si existen comprobantes de compra historicos sin relaciones registradas, se debera evaluar la posibilidad de una migracion de datos para establecer las relaciones retroactivamente basandose en la informacion disponible en el sistema.
Expansion Futura
Esta funcionalidad podria expandirse en el futuro para incluir:
- Validacion automatica de consistencia entre comprobantes y movimientos
- Reportes de integridad de datos entre modulos
- Alertas de inconsistencias detectadas
Documentación Técnica
Base de Datos
- Diagrama ERD: Ver diagrama de relaciones
- Tabla:
ordcte_subdicom
Backend
- Documentación Backend: ../../backend/index.md
Frontend
- Documentación Frontend: ../../frontend/index.md
Historial de Cambios
| Fecha | Version | Autor | Descripcion |
|---|---|---|---|
| 2025-12-18 | 1.1 | Sistema | Marcado como IMPLEMENTADO. Agregadas referencias a documentación técnica |
| 2025-12-15 | 1.0 | Sistema | Creacion del documento de requerimientos de negocio |