Appearance
Relacion Movimiento de Cuenta Corriente - Bridge de Ventas (UUID)
Modulo: Cuenta Corriente (CtaCte) - Integracion con Ventas Tipo: Resource Estado: Planificado Fecha: 2025-12-29
Descripcion
Problema de Negocio Actual
Actualmente, los movimientos de cuenta corriente de clientes se relacionan con los comprobantes de venta mediante una referencia compuesta que utiliza dos campos: el numero de comprobante (nrocomp) y el identificador del tipo de comprobante (id_tipo_comprobante). Esta arquitectura presenta las siguientes limitaciones:
Complejidad en las consultas: Para localizar el comprobante de venta asociado a un movimiento de cuenta corriente, se requiere realizar busquedas utilizando dos campos de forma simultanea, lo que complica las consultas y la logica de negocio.
Inconsistencia con el patron bridge: El sistema ha evolucionado hacia el uso de identificadores globales unicos (UUID) para comprobantes de venta a traves del bridge de ventas (documentado en bridge-ventas-resource.md). Los movimientos de cuenta corriente aun utilizan el metodo antiguo de referencia compuesta, generando inconsistencia en la arquitectura.
Ambiguedad en sistemas multi-sucursal: El numero de comprobante (nrocomp) es secuencial por sucursal, lo que significa que el mismo numero puede existir en diferentes sucursales. Aunque el tipo de comprobante ayuda a distinguir, la referencia compuesta no proporciona la misma unicidad que un UUID global.
Dificultad en integraciones y reportes: Los reportes consolidados y las integraciones entre modulos deben manejar la logica de referencia compuesta, aumentando la complejidad y el riesgo de errores.
Mantenimiento del sistema: Cualquier cambio en la estructura de numeracion de comprobantes o tipos de comprobante requiere revisar y actualizar multiples puntos del sistema que dependen de la referencia compuesta.
Necesidad del Negocio
El sistema requiere que los movimientos de cuenta corriente de clientes utilicen el UUID del bridge de ventas como mecanismo de vinculacion con los comprobantes de venta. Esta evolucion proporcionara:
Referencia unica e inequivoca: Cada movimiento de cuenta corriente estara vinculado a un comprobante de venta mediante un identificador global unico, eliminando la necesidad de referencias compuestas.
Consistencia arquitectonica: Todos los modulos que referencian comprobantes de venta utilizaran el mismo mecanismo (UUID del bridge), creando un patron uniforme en todo el sistema.
Simplificacion de consultas: Las consultas para localizar comprobantes asociados a movimientos se simplificaran al requerir un solo campo de referencia.
Preparacion para el futuro: La adopcion del patron bridge prepara al sistema para futuras integraciones y evoluciones, manteniendo una arquitectura coherente.
Valor de Negocio
La implementacion de esta funcionalidad aportara los siguientes beneficios:
Trazabilidad mejorada: Cada movimiento de cuenta corriente podra rastrearse directamente al comprobante de venta que lo origino mediante un identificador unico y universal.
Integridad de datos garantizada: La relacion mediante UUID permite validaciones de integridad referencial mas robustas y confiables.
Eficiencia operativa: Los usuarios y procesos del sistema podran consultar y relacionar informacion de forma mas rapida y directa.
Reduccion de errores: La eliminacion de referencias compuestas reduce la posibilidad de errores por asociaciones incorrectas entre movimientos y comprobantes.
Auditoria simplificada: Los procesos de auditoria y conciliacion se beneficiaran de una relacion directa y univoca entre movimientos y comprobantes.
Consolidacion confiable: Los reportes consolidados a nivel empresa podran relacionar movimientos de cuenta corriente con comprobantes de venta de cualquier sucursal sin ambiguedades.
Contexto en el Proceso de Negocio
Esta funcionalidad se integra en los siguientes flujos de negocio:
Flujo de registro de comprobantes de venta:
- El usuario registra un comprobante de venta (factura, nota de credito, nota de debito)
- El sistema genera automaticamente el identificador global unico (UUID) en el bridge de ventas
- El sistema genera el movimiento de cuenta corriente correspondiente (debito o credito segun tipo de comprobante)
- [Esta funcionalidad] El sistema registra el UUID del bridge de ventas en el movimiento de cuenta corriente
- La relacion queda disponible para consultas y trazabilidad inmediata
Flujo de migracion de datos existentes:
- El proceso de migracion identifica movimientos de cuenta corriente que utilizan la referencia compuesta
- Para cada movimiento, localiza el comprobante de venta asociado mediante nrocomp + id_tipo_comprobante
- El sistema obtiene el UUID del bridge de ventas correspondiente al comprobante
- El sistema actualiza el movimiento de cuenta corriente con el UUID del bridge
- El sistema valida la integridad de los datos migrados
Flujo de consulta de movimientos:
- El usuario consulta los movimientos de cuenta corriente de un cliente
- El sistema muestra la lista de movimientos
- El usuario selecciona un movimiento originado por una venta
- [Esta funcionalidad] El sistema utiliza el UUID del bridge para localizar directamente el comprobante asociado
- El usuario visualiza la informacion del comprobante de venta
Frontend
NO APLICA
Esta funcionalidad corresponde a un cambio relacional interno en la base de datos que no afecta la interfaz de usuario del frontend de la aplicación web/móvil. La relación entre movimientos de cuenta corriente y comprobantes de venta mediante UUID del bridge es transparente para el usuario final.
Módulo de Reportes PDF
El único componente afectado es el módulo de generación de reportes en formato PDF. Específicamente, los siguientes reportes del módulo de cuenta corriente:
Reportes Afectados
Resumen de Cuenta:
- Muestra el detalle de movimientos de cuenta corriente de clientes
- Impacto: Actualmente usa nrocomp + id_tipo para obtener información de comprobantes y sus ítems
- Cambio requerido: Utilizar UUID del bridge para consultar facturas, notas de crédito y sus detalles
- Funcionalidad afectada: Opción "Mostrar detalle de ítems" que obtiene los productos/servicios de facturas y notas de crédito asociadas a cada movimiento
Listado de Saldos:
- Muestra resumen de saldos por cliente con fecha del último movimiento
- Impacto: Trabaja con movimientos de cuenta corriente pero no consulta detalle de comprobantes
- Cambio requerido: Mínimo o ninguno (usa solo fechas y saldos)
Comprobante Registrado:
- Imprime comprobantes de cuenta corriente generados
- Impacto: A evaluar según uso de referencias a comprobantes de venta
Nota importante: Estos cambios en los reportes PDF son internos a la lógica de consulta de datos. La presentación visual y el contenido del reporte para el usuario final permanecen sin cambios. El UUID del bridge se utiliza para consultas más eficientes y consistentes, pero no se expone al usuario en el documento PDF. Las modificaciones serán transparentes para los usuarios finales.
Backend
Entidades de Negocio
Esta funcionalidad involucra las siguientes entidades de negocio:
Movimiento de Cuenta Corriente
Representa cada registro de debito o credito en la cuenta corriente de un cliente. Los movimientos originados por comprobantes de venta (facturas, notas de credito, notas de debito) deben estar vinculados al comprobante que los genero.
Caracteristicas de negocio relevantes:
- Cada movimiento tiene un tipo (debito o credito)
- Los movimientos originados por ventas deben referenciar al comprobante origen
- El movimiento afecta el saldo del cliente
- Los movimientos son inmutables una vez registrados
Identificador Global de Comprobante de Venta (Bridge de Ventas)
Representa el mapeo entre el identificador local de un comprobante de venta y su identificador unico a nivel empresa (UUID). Este bridge permite referenciar cualquier comprobante de venta de forma univoca.
Caracteristicas de negocio relevantes:
- El UUID es unico en toda la empresa
- El UUID es inmutable una vez asignado
- El bridge contiene la informacion del tipo de comprobante y sucursal de origen
- Todos los comprobantes de venta tienen un registro en el bridge
Relacion Movimiento - Bridge de Ventas
Representa el vinculo entre un movimiento de cuenta corriente y el comprobante de venta que lo origino, mediante el UUID del bridge de ventas.
Caracteristicas de negocio:
- La relacion es de uno a uno: un movimiento de cuenta corriente originado por venta tiene exactamente un UUID de bridge asociado
- La relacion es obligatoria para movimientos originados por comprobantes de venta
- La relacion no aplica para movimientos manuales o de otros origenes
Datos Necesarios
Para la relacion con el bridge de ventas
| Dato | Descripcion | Obligatoriedad |
|---|---|---|
| Identificador del movimiento | Identificador unico del movimiento de cuenta corriente | Obligatorio |
| UUID del bridge de ventas | Identificador global unico del comprobante de venta asociado | Obligatorio para movimientos originados por ventas |
| Referencia compuesta (temporal) | Numero de comprobante + tipo de comprobante | Obligatorio durante periodo de transicion |
Nota sobre compatibilidad temporal: Durante el periodo de transicion, el sistema mantendra ambos metodos de referencia (UUID del bridge y referencia compuesta) para garantizar la continuidad operativa.
Relaciones de Negocio
Movimiento de Cuenta Corriente ---- (1:1) ---- Identificador Global de Venta (Bridge)Cardinalidades:
- Un movimiento de cuenta corriente originado por venta tiene exactamente un UUID de bridge asociado
- Un UUID de bridge (comprobante de venta) puede estar asociado a uno o mas movimientos de cuenta corriente
Ejemplos de relacion:
- Una factura de venta genera un debito en la cuenta corriente del cliente (un movimiento, un UUID)
- Una nota de credito de venta genera un credito en la cuenta corriente del cliente (un movimiento, un UUID)
- Una nota de debito de venta genera un debito adicional en la cuenta corriente del cliente (un movimiento, un UUID)
Validaciones de Negocio
Para el registro de la relacion
Existencia del UUID:
- El UUID del bridge de ventas referenciado debe existir en el sistema
- El sistema debe rechazar movimientos con referencias a UUID inexistentes
Validez del UUID:
- El UUID debe corresponder a un comprobante de venta existente en el bridge
- El UUID debe corresponder a un comprobante de la misma empresa
Unicidad de la relacion:
- Un movimiento de cuenta corriente solo puede tener un UUID de bridge asociado
- El sistema debe rechazar intentos de asignar multiples UUID a un mismo movimiento
Consistencia de cliente:
- El comprobante de venta referenciado debe corresponder al mismo cliente del movimiento de cuenta corriente
- El sistema debe validar que el cliente del movimiento coincida con el cliente del comprobante
Obligatoriedad para movimientos de venta:
- Todo movimiento de cuenta corriente originado por un comprobante de venta debe tener asociado el UUID del bridge
- Los movimientos manuales o de otros origenes pueden no tener UUID asociado
Inmutabilidad de la relacion:
- Una vez asignado, el UUID del bridge no puede modificarse
- La relacion se elimina unicamente cuando el movimiento o el comprobante se eliminan
Reglas de Negocio
RN-001: Asignacion obligatoria del UUID al crear movimiento de venta
Descripcion: Cuando se crea un movimiento de cuenta corriente originado por un comprobante de venta, el sistema debe asignar automaticamente el UUID del bridge de ventas correspondiente.
Condicion: Se registra un nuevo comprobante de venta que genera movimiento en cuenta corriente (factura a credito, nota de credito, nota de debito).
Accion:
- El sistema obtiene el UUID del bridge de ventas del comprobante registrado
- El sistema registra el UUID en el movimiento de cuenta corriente generado
- La asignacion es atomica con la creacion del movimiento
Fundamento: Garantiza que todo nuevo movimiento de cuenta corriente originado por venta tenga la relacion con el bridge desde el momento de su creacion, manteniendo la integridad de datos.
RN-002: Validacion de existencia del UUID
Descripcion: El UUID del bridge de ventas debe existir y ser valido antes de asociarlo a un movimiento de cuenta corriente.
Condicion: Se intenta crear o asociar un UUID de bridge a un movimiento de cuenta corriente.
Accion:
- El sistema verifica que el UUID exista en el bridge de ventas
- El sistema verifica que el comprobante asociado sea valido y no haya sido eliminado
- Si el UUID no existe, el sistema rechaza la operacion con mensaje descriptivo
Fundamento: Asegura la integridad referencial entre movimientos de cuenta corriente y comprobantes de venta.
RN-003: Inmutabilidad de la relacion
Descripcion: Una vez asignado el UUID del bridge a un movimiento de cuenta corriente, este no puede modificarse.
Condicion: Se intenta modificar el UUID del bridge de un movimiento existente.
Accion:
- El sistema rechaza cualquier intento de modificar el UUID del bridge
- La unica forma de cambiar la relacion es eliminar el movimiento original y crear uno nuevo
Fundamento: Garantiza la trazabilidad historica y evita inconsistencias en la auditoria del sistema.
RN-004: Compatibilidad temporal durante transicion
Descripcion: Durante el periodo de transicion, el sistema debe soportar ambos metodos de referencia (UUID del bridge y referencia compuesta).
Condicion: Existen movimientos de cuenta corriente creados antes de la implementacion que utilizan referencia compuesta.
Accion:
- El sistema mantiene la referencia compuesta para movimientos historicos no migrados
- El sistema puede consultar movimientos utilizando cualquiera de los dos metodos
- Las nuevas consultas priorizan el UUID del bridge cuando esta disponible
- Se marca claramente que metodo de referencia utiliza cada movimiento
Fundamento: Permite una transicion gradual sin interrumpir las operaciones del negocio ni perder acceso a datos historicos.
RN-005: Migracion de referencias existentes
Descripcion: Los movimientos de cuenta corriente existentes que utilizan referencia compuesta deben migrarse al nuevo esquema con UUID del bridge.
Condicion: Existen movimientos de cuenta corriente con referencia compuesta sin UUID de bridge asignado.
Accion:
- El proceso de migracion localiza el comprobante de venta mediante la referencia compuesta
- El sistema obtiene el UUID del bridge del comprobante encontrado
- El sistema actualiza el movimiento con el UUID correspondiente
- Se registra la migracion en el log de auditoria
- Si no se puede determinar el UUID, el movimiento se marca para revision manual
Fundamento: Garantiza que todos los movimientos historicos tengan la nueva relacion para consultas unificadas.
RN-006: Eliminacion de la relacion al eliminar comprobante
Descripcion: Cuando se elimina fisicamente un comprobante de venta, los movimientos de cuenta corriente asociados deben eliminarse de forma consistente.
Condicion: Se elimina un comprobante de venta (eliminación física) que tiene movimientos de cuenta corriente asociados.
Accion:
- El sistema identifica los movimientos de cuenta corriente asociados al UUID del bridge
- Los movimientos originales se eliminan fisicamente de forma cascada
- La eliminación debe ser parte de la misma transacción que elimina el comprobante
- Se registra la eliminación en el log de auditoría antes de ejecutarla
Fundamento: Mantiene la consistencia referencial entre comprobantes y movimientos. La eliminación física asegura que no queden registros huérfanos en la cuenta corriente que referencien comprobantes inexistentes.
RN-007: Preservacion de trazabilidad historica
Descripcion: El sistema debe preservar la informacion de la referencia compuesta original para fines de auditoria, incluso despues de la migracion.
Condicion: Se migra un movimiento de cuenta corriente de referencia compuesta a UUID.
Accion:
- El sistema mantiene los campos de la referencia compuesta original
- Se registra la fecha y hora de migracion
- Se registra el metodo de localizacion del UUID (automatico o manual)
- La informacion historica permanece disponible para consultas de auditoria
Fundamento: Permite auditorias completas y verificacion de la integridad de la migracion.
RN-008: Movimientos manuales sin relacion de bridge
Descripcion: Los movimientos de cuenta corriente que no se originan por comprobantes de venta no requieren UUID de bridge.
Condicion: Se registra un movimiento de cuenta corriente manual (ajuste, cargo administrativo, etc.).
Accion:
- El sistema permite crear movimientos sin UUID de bridge asociado
- El campo de UUID permanece vacio para estos movimientos
- El sistema distingue claramente entre movimientos con y sin relacion a comprobantes de venta
Fundamento: No todos los movimientos de cuenta corriente provienen de comprobantes de venta, y el sistema debe soportar todos los tipos de movimiento.
RN-009: Consistencia de cliente entre movimiento y comprobante
Descripcion: El cliente del movimiento de cuenta corriente debe coincidir con el cliente del comprobante de venta referenciado.
Condicion: Se asocia un UUID de bridge a un movimiento de cuenta corriente.
Accion:
- El sistema verifica que el cliente del movimiento sea el mismo que el cliente del comprobante de venta
- Si los clientes no coinciden, el sistema rechaza la operacion con mensaje de error
- La validacion aplica tanto para nuevos movimientos como para migracion de existentes
Fundamento: Garantiza la integridad logica de la relacion, evitando asociaciones incorrectas entre clientes.
Casos de Uso
CU-001: Crear nuevo movimiento de cuenta corriente desde comprobante de venta
Actor: Usuario de Ventas / Sistema (proceso automatico)
Objetivo: Registrar un movimiento de cuenta corriente que quede vinculado al comprobante de venta mediante el UUID del bridge.
Precondiciones:
- Usuario autenticado con permisos de facturacion
- Cliente existente con cuenta corriente activa
- Comprobante de venta registrado con UUID de bridge asignado
Flujo principal:
- El usuario completa y confirma un comprobante de venta a credito (factura, nota de credito, nota de debito)
- El sistema valida y registra el comprobante de venta
- El sistema genera el identificador global (UUID) en el bridge de ventas
- El sistema genera automaticamente el movimiento de cuenta corriente correspondiente (debito o credito)
- El sistema asigna el UUID del bridge al movimiento de cuenta corriente
- El sistema confirma la operacion exitosa al usuario
Postcondiciones:
- El comprobante de venta queda registrado con su UUID de bridge
- El movimiento de cuenta corriente queda registrado con el UUID del bridge asociado
- La relacion esta disponible para consulta inmediata
- El saldo del cliente se actualiza segun el tipo de movimiento
Flujos alternativos:
- Comprobante al contado: Si el comprobante es venta al contado, no se genera movimiento de cuenta corriente ni relacion con bridge
- Error en generacion de UUID: Si falla la generacion del UUID del bridge, se revierte toda la operacion incluyendo el comprobante
- Eliminacion del comprobante: Si posteriormente se elimina el comprobante de venta, el movimiento de cuenta corriente se elimina fisicamente en cascada
CU-002: Consultar movimientos de cuenta corriente y visualizar comprobante relacionado
Actor: Usuario de Ventas / Usuario de Cobranzas / Contador
Objetivo: Consultar los movimientos de cuenta corriente de un cliente y acceder al comprobante de venta asociado de forma directa.
Precondiciones:
- Usuario autenticado con permisos de consulta de cuenta corriente
- Cliente existente con movimientos registrados
- Movimientos con UUID de bridge asignado (migrados o nuevos)
Flujo principal:
- El usuario accede a la cuenta corriente de un cliente
- El sistema muestra la lista de movimientos de cuenta corriente
- El usuario identifica un movimiento originado por una venta
- El sistema muestra el indicador de comprobante asociado junto con informacion basica del mismo
- El usuario selecciona la opcion de ver el comprobante completo
- El sistema utiliza el UUID del bridge para localizar el comprobante
- El sistema muestra el detalle completo del comprobante de venta
Postcondiciones:
- El usuario visualiza la informacion del comprobante de venta asociado al movimiento
- La navegacion es directa sin busquedas intermedias
Flujos alternativos:
- Movimiento sin UUID (pendiente de migracion): El sistema intenta localizar el comprobante mediante la referencia compuesta y muestra un indicador de que el movimiento utiliza el metodo antiguo
- Movimiento manual sin comprobante: El sistema muestra un mensaje indicando que el movimiento no esta asociado a un comprobante de venta
- Comprobante no encontrado: Si el comprobante fue eliminado o hay inconsistencia, el sistema muestra un mensaje de error y registra la incidencia
CU-003: Migrar movimientos existentes de referencia compuesta a UUID
Actor: Administrador del Sistema
Objetivo: Actualizar los movimientos de cuenta corriente existentes para que utilicen el UUID del bridge en lugar de la referencia compuesta.
Precondiciones:
- Usuario con permisos de administracion de migracion de datos
- Existen movimientos de cuenta corriente con referencia compuesta sin UUID asignado
- El bridge de ventas tiene UUIDs asignados para los comprobantes existentes
- El sistema esta en un estado que permite ejecutar la migracion
Flujo principal:
- El administrador inicia el proceso de migracion de movimientos de cuenta corriente
- El sistema identifica todos los movimientos con referencia compuesta sin UUID
- Por cada movimiento identificado:
- El sistema localiza el comprobante de venta mediante nrocomp + id_tipo_comprobante
- El sistema obtiene el UUID del bridge del comprobante encontrado
- El sistema valida que el cliente del movimiento coincida con el del comprobante
- El sistema actualiza el movimiento con el UUID del bridge
- El sistema registra la migracion en el log de auditoria
- El sistema genera un reporte de migracion con resumen de movimientos procesados
- El sistema confirma la migracion exitosa
Postcondiciones:
- Los movimientos procesados tienen UUID de bridge asignado
- Se preserva la referencia compuesta original para auditoria
- El reporte de migracion esta disponible para revision
- Los movimientos con problemas quedan marcados para revision manual
Flujos alternativos:
- Comprobante no encontrado en bridge: Si no se puede localizar el UUID para un comprobante, el movimiento se marca para revision manual y se continua con los demas
- Inconsistencia de cliente: Si el cliente del movimiento no coincide con el del comprobante, se marca para revision manual
- Error durante migracion: El sistema puede reiniciar desde el punto de fallo (proceso idempotente)
CU-004: Generar reporte de cuenta corriente con detalle de comprobantes
Actor: Usuario de Cobranzas / Contador / Gerente
Objetivo: Generar un reporte de cuenta corriente que incluya informacion detallada de los comprobantes de venta asociados a cada movimiento.
Precondiciones:
- Usuario autenticado con permisos de generacion de reportes de cuenta corriente
- Cliente existente con movimientos registrados
- Criterios de reporte definidos (rango de fechas, tipos de movimiento, etc.)
Flujo principal:
- El usuario accede a la generacion de reportes de cuenta corriente
- El usuario selecciona el cliente y define los criterios del reporte
- El usuario solicita la generacion del reporte
- El sistema obtiene los movimientos de cuenta corriente segun los criterios
- Para cada movimiento originado por venta, el sistema obtiene la informacion del comprobante mediante el UUID del bridge
- El sistema genera el reporte incluyendo:
- Datos del movimiento (fecha, tipo, monto)
- Datos del comprobante asociado (numero, tipo, fecha de emision)
- Saldo acumulado
- El sistema presenta el reporte al usuario
Postcondiciones:
- El reporte muestra la informacion completa de movimientos y comprobantes
- El usuario puede exportar o imprimir el reporte
- La trazabilidad entre movimientos y comprobantes es evidente
Flujos alternativos:
- Movimientos con referencia compuesta: Para movimientos no migrados, el sistema utiliza la referencia compuesta y lo indica en el reporte
- Sin movimientos en el periodo: El sistema informa que no hay movimientos para los criterios seleccionados
CU-005: Conciliar cuenta corriente con comprobantes de venta
Actor: Contador / Auditor
Objetivo: Verificar la correspondencia entre los movimientos de cuenta corriente y los comprobantes de venta registrados en el sistema.
Precondiciones:
- Usuario autenticado con permisos de consulta de cuenta corriente y ventas
- Periodo de conciliacion definido
- Acceso a reportes de conciliacion
Flujo principal:
- El usuario accede a la funcion de conciliacion de cuenta corriente
- El usuario selecciona el periodo y criterios de conciliacion
- El sistema obtiene todos los movimientos de cuenta corriente originados por ventas en el periodo
- El sistema obtiene todos los comprobantes de venta emitidos en el periodo
- Para cada movimiento con UUID de bridge:
- El sistema verifica la existencia del comprobante referenciado
- El sistema verifica la consistencia de datos (monto, cliente, fecha)
- El sistema genera un reporte de conciliacion indicando:
- Movimientos correctamente relacionados
- Movimientos sin comprobante encontrado
- Comprobantes sin movimiento asociado
- Inconsistencias detectadas
- El usuario revisa el reporte y toma acciones correctivas si es necesario
Postcondiciones:
- El reporte de conciliacion identifica cualquier inconsistencia entre modulos
- Las inconsistencias quedan documentadas para seguimiento
- El usuario puede iniciar acciones correctivas para los casos detectados
Flujos alternativos:
- Sin inconsistencias: El sistema confirma que todos los registros estan correctamente relacionados
- Movimientos pendientes de migracion: El sistema los lista por separado indicando que utilizan el metodo de referencia compuesta
Consideraciones
Seguridad
Proteccion de datos:
- Los UUIDs del bridge son datos de referencia que no deben poder modificarse por usuarios sin permisos especiales
- El acceso a la informacion de relacion hereda los permisos del modulo de Cuenta Corriente
- Los registros de migracion deben estar protegidos contra modificaciones no autorizadas
Control de acceso:
- La consulta de movimientos y sus comprobantes asociados requiere permisos de cuenta corriente y ventas
- El proceso de migracion solo puede ejecutarse por usuarios con rol de administrador
- Las consultas inter-modulo respetan los permisos de cada modulo involucrado
Validacion de integridad:
- Toda operacion que modifique la relacion debe validar permisos del usuario
- Los intentos de operaciones no autorizadas deben registrarse en el log de seguridad
Auditoria
Operaciones que se auditan:
| Operacion | Datos Auditados | Motivo |
|---|---|---|
| Asignacion de UUID a nuevo movimiento | Movimiento, UUID, comprobante | Trazabilidad de creacion |
| Migracion de movimiento existente | Movimiento, UUID, referencia compuesta original, fecha migracion | Control del proceso de migracion |
| Consulta de comprobante desde movimiento | Usuario, movimiento, comprobante | Registro de acceso a informacion |
| Errores de validacion | Tipo de error, datos involucrados | Deteccion de problemas de integridad |
Informacion preservada:
- Referencia compuesta original para movimientos migrados
- Fecha y hora de cada operacion
- Usuario que ejecuto la operacion
- Metodo utilizado (UUID o referencia compuesta)
- Resultado de la operacion (exito o error)
Retencion de datos de auditoria:
- Los registros de auditoria de migracion deben preservarse indefinidamente
- Los registros de operaciones normales siguen la politica de retencion estandar del sistema
Rendimiento
Volumenes esperados:
- Cantidad de movimientos de cuenta corriente existentes a migrar (depende del historial del sistema)
- Nuevos movimientos generados diariamente proporcionales a las ventas a credito
- Consultas frecuentes de estado de cuenta y reportes
Expectativas de tiempo de respuesta:
- La asignacion del UUID no debe agregar latencia perceptible al registro de comprobantes
- La consulta de comprobante desde movimiento debe ser rapida (menos de 100 milisegundos)
- Los reportes con detalle de comprobantes deben generarse en tiempos aceptables
Migracion de datos:
- El proceso de migracion debe poder ejecutarse en horario de baja actividad
- La migracion debe ser incremental y reiniciable
- Se debe estimar el tiempo de migracion segun el volumen de datos
Migracion
Estrategia de migracion:
- Fase 1 - Preparacion: Validar que todos los comprobantes de venta historicos tengan UUID en el bridge
- Fase 2 - Migracion incremental: Procesar movimientos en lotes para minimizar impacto en el sistema
- Fase 3 - Validacion: Verificar integridad de datos migrados mediante reportes de conciliacion
- Fase 4 - Monitoreo: Mantener alertas para detectar movimientos sin UUID
Periodo de compatibilidad:
- Durante la transicion (estimado: 3-6 meses), el sistema soportara ambos metodos de referencia
- Las consultas priorizaran el UUID cuando este disponible
- Los reportes indicaran claramente que metodo se utiliza para cada movimiento
Tratamiento de casos especiales:
- Movimientos muy antiguos sin comprobante localizable: Marcar para revision manual
- Comprobantes eliminados: Los movimientos asociados deben eliminarse en cascada (eliminación física)
- Movimientos manuales: No requieren UUID, permanecen sin cambios
Rollback:
- El proceso de migracion es reversible: los campos de referencia compuesta se mantienen
- En caso de problemas, se puede volver a utilizar la referencia compuesta temporalmente
Dependencias
Funcionalidades Relacionadas
Identificadores Globales para Comprobantes de Venta (Bridge de Ventas) (Ver documento): Proporciona el UUID global que se utilizara para vincular movimientos de cuenta corriente. Esta funcionalidad es prerequisito para la implementacion.
Registro de Comprobantes de Ventas: El proceso de registro de facturas, notas de credito y notas de debito debe extenderse para asignar el UUID del bridge al movimiento de cuenta corriente generado.
Baja de Comprobantes de Venta (Ver documento): El proceso de baja debe considerar la relacion con movimientos de cuenta corriente para mantener la consistencia.
Relacion Comprobante de Compra - Movimiento de Cuenta Corriente (Ver documento): Funcionalidad analoga para el modulo de compras que sirve como referencia de patron.
Modulos de Negocio Involucrados
| Modulo | Rol en esta Funcionalidad |
|---|---|
| Cuenta Corriente | Modulo principal afectado. Los movimientos de cuenta corriente recibiran el nuevo campo de UUID del bridge |
| Ventas | Proporciona los comprobantes de venta y el bridge con UUIDs globales |
| Configuracion | Almacena parametros de transicion y configuracion de migracion |
| Auditoria | Registra todas las operaciones de migracion y cambios en relaciones |
Impacto en Otros Procesos
| Proceso | Impacto |
|---|---|
| Registro de factura de venta a credito | Genera movimiento de cuenta corriente con UUID del bridge |
| Registro de nota de credito de venta | Genera movimiento de cuenta corriente con UUID del bridge |
| Registro de nota de debito de venta | Genera movimiento de cuenta corriente con UUID del bridge |
| Eliminacion de comprobante de venta | Elimina fisicamente los movimientos de cuenta corriente asociados en cascada |
| Reportes de cuenta corriente | Utilizan UUID para obtener informacion de comprobantes |
| Conciliaciones | Validan correspondencia mediante UUID |
| Exportacion de datos | Incluyen el UUID como identificador del comprobante relacionado |
Criterios de Aceptacion
La funcionalidad se considera completa cuando se cumplan los siguientes criterios:
Criterios para registro de nuevos movimientos
[ ] AC-001: Al registrar un nuevo comprobante de venta que genera movimiento en cuenta corriente, el sistema asigna automaticamente el UUID del bridge de ventas al movimiento creado.
[ ] AC-002: El UUID asignado al movimiento de cuenta corriente corresponde exactamente al UUID del comprobante de venta que lo origino.
[ ] AC-003: El sistema valida que el UUID exista en el bridge de ventas antes de asignarlo al movimiento de cuenta corriente.
Criterios para consulta de movimientos
[ ] AC-004: Los usuarios pueden consultar el comprobante de venta asociado a un movimiento de cuenta corriente utilizando el UUID del bridge de forma directa.
[ ] AC-005: La informacion basica del comprobante (numero, tipo, fecha) se muestra junto al movimiento de cuenta corriente sin necesidad de navegacion adicional.
[ ] AC-006: La navegacion desde un movimiento de cuenta corriente al detalle del comprobante de venta es directa y no requiere busquedas intermedias.
Criterios para migracion de datos
[ ] AC-007: El proceso de migracion asigna correctamente el UUID del bridge a los movimientos de cuenta corriente existentes que utilizaban referencia compuesta.
[ ] AC-008: Los movimientos que no pueden migrarse automaticamente quedan marcados para revision manual con informacion del problema detectado.
[ ] AC-009: La migracion preserva la referencia compuesta original para fines de auditoria.
[ ] AC-010: El proceso de migracion genera un reporte detallado con estadisticas de movimientos procesados, exitosos y con errores.
Criterios de compatibilidad temporal
[ ] AC-011: Durante el periodo de transicion, el sistema soporta consultas tanto por UUID del bridge como por referencia compuesta.
[ ] AC-012: Los movimientos con referencia compuesta (no migrados) pueden consultarse y muestran la informacion del comprobante asociado.
[ ] AC-013: El sistema indica claramente que metodo de referencia utiliza cada movimiento (UUID o referencia compuesta).
Criterios para reportes
[ ] AC-014: Los reportes de cuenta corriente muestran la informacion completa del comprobante de venta utilizando el UUID del bridge.
[ ] AC-015: Los reportes de conciliacion identifican movimientos sin UUID asignado y los listan por separado.
Criterios de integridad
[ ] AC-016: El sistema rechaza la creacion de movimientos de cuenta corriente con UUID de bridge inexistente.
[ ] AC-017: El UUID del bridge no puede modificarse una vez asignado a un movimiento de cuenta corriente.
[ ] AC-018: El sistema valida que el cliente del movimiento coincida con el cliente del comprobante de venta referenciado.
Criterios de auditoria
[ ] AC-019: Todas las operaciones de asignacion de UUID a movimientos quedan registradas en el log de auditoria.
[ ] AC-020: Las operaciones de migracion registran la referencia compuesta original, el UUID asignado y la fecha de migracion.
[ ] AC-021: Los errores de validacion durante asignacion o migracion quedan registrados con detalle suficiente para diagnostico.
Notas Adicionales
Diferencia entre metodos de referencia
| Aspecto | Referencia Compuesta (Actual) | UUID del Bridge (Nuevo) |
|---|---|---|
| Campos utilizados | nrocomp + id_tipo_comprobante | UUID unico |
| Unicidad | Unica por sucursal y tipo | Unica en toda la empresa |
| Complejidad de consulta | Requiere dos campos | Requiere un solo campo |
| Consistencia arquitectonica | Patron antiguo | Alineado con bridge de ventas |
| Ambiguedad multi-sucursal | Posible | Eliminada |
Tipos de movimientos de cuenta corriente afectados
| Tipo de Movimiento | Origen | Requiere UUID de Bridge |
|---|---|---|
| Debito por factura | Factura de venta a credito | Si |
| Credito por nota de credito | Nota de credito de venta | Si |
| Debito por nota de debito | Nota de debito de venta | Si |
| Credito por pago | Recibo de cobranza | No (tiene su propia logica) |
| Ajuste manual | Operacion administrativa | No |
| Cargo administrativo | Operacion interna | No |
Consideraciones para integraciones externas
Si en el futuro se exponen movimientos de cuenta corriente a sistemas externos:
- Utilizar el UUID del bridge como identificador del comprobante asociado
- No exponer la referencia compuesta para evitar complejidad y ambiguedades
- El UUID es autosuficiente para localizar cualquier comprobante de venta
Preguntas frecuentes
Se eliminara la referencia compuesta?
- No inmediatamente. La referencia compuesta se mantendra para compatibilidad y auditoria. En el futuro, podria depreciarse una vez que todos los movimientos esten migrados.
Que pasa con los movimientos muy antiguos?
- Se intentara migrarlos automaticamente. Los que no puedan migrarse quedaran marcados para revision manual y seguiran funcionando con la referencia compuesta.
Como afecta esto al rendimiento?
- Las consultas por UUID son mas eficientes que las consultas por referencia compuesta. El rendimiento general deberia mejorar.
Se requiere tiempo de inactividad para la migracion?
- No. La migracion es incremental y puede ejecutarse mientras el sistema esta en operacion.
Que pasa si se elimina un comprobante de venta?
- Cuando se elimina físicamente un comprobante de venta, los movimientos de cuenta corriente asociados se eliminan en cascada como parte de la misma transacción. La eliminación se registra en el log de auditoría antes de ejecutarse.
Historial de Cambios
| Fecha | Version | Autor | Descripcion |
|---|---|---|---|
| 2025-12-29 | 1.0 | Sistema | Creacion del documento de requerimientos de negocio para la relacion de movimientos de cuenta corriente con el bridge de ventas mediante UUID |