Appearance
Marca de Origen en Movimientos de Stock
Modulo: Stock Tipo: Resource Estado: Implementado Fecha: 2025-12-23 Ultima actualizacion: 2025-12-24 (v2.1 - Implementado)
Descripcion
Problema de negocio
Actualmente, los movimientos de stock no distinguen claramente si fueron generados por operaciones oficiales o de prueba. El campo marca existe en el sistema pero no tiene un uso estandarizado, lo que genera los siguientes problemas:
- Falta de identificacion del caracter del movimiento: No es posible determinar si un movimiento de stock proviene de una operacion oficial (que tiene validez fiscal y contable) o de una operacion de prueba (que tiene caracter temporal o de simulacion)
- Dificultad en auditorias: Los procesos de control no pueden separar facilmente los movimientos oficiales de los movimientos de prueba, complicando las verificaciones de inventario
- Reportes mezclados: Los informes de stock mezclan movimientos oficiales con movimientos de prueba, afectando la precision de los analisis de inventario
- Procesos de reversion ambiguos: Al revertir operaciones, el sistema no tiene un criterio claro para diferenciar el tratamiento segun el origen del movimiento
- Inconsistencia en operaciones no relacionadas con ventas: Los movimientos generados por compras, ajustes manuales, transferencias y devoluciones a proveedores no tienen forma de identificar si corresponden a operaciones oficiales o de prueba
Necesidad del negocio
El sistema requiere utilizar el campo existente marca para clasificar TODOS los movimientos de stock segun el caracter de la operacion que los origino, independientemente del tipo de operacion:
- Marca 'O' (Oficial): Identifica movimientos generados por operaciones oficiales que tienen validez fiscal y contable
- Marca 'P' (Prueba): Identifica movimientos generados por operaciones de prueba que tienen caracter temporal o de simulacion
- Marca NULL: Reservado exclusivamente para movimientos historicos (legacy) creados antes de la implementacion de esta funcionalidad
Tipos de operaciones que generan movimientos de stock:
| Tipo de operacion | Descripcion | Efecto en stock |
|---|---|---|
| Factura de venta | Venta de productos a clientes | Egreso |
| Nota de credito de venta | Devolucion de productos de clientes | Ingreso |
| Compra de mercaderia | Adquisicion de productos de proveedores | Ingreso |
| Ajuste manual de inventario | Correccion manual de cantidades | Ingreso o Egreso |
| Transferencia entre depositos | Movimiento de productos entre ubicaciones | Egreso en origen, Ingreso en destino |
| Devolucion a proveedor | Devolucion de productos a proveedores | Egreso |
Todas estas operaciones deben asignar marca 'O' o 'P' segun corresponda al caracter oficial o de prueba de la operacion.
Esta clasificacion debe permitir:
- Filtrado diferenciado: Consultar movimientos oficiales y de prueba por separado, independientemente del tipo de operacion
- Reportes segmentados: Generar informes que distingan entre operaciones oficiales y de prueba para cualquier tipo de movimiento
- Trazabilidad mejorada: Identificar rapidamente la naturaleza de cada movimiento
- Reversiones controladas: Aplicar criterios diferenciados al revertir movimientos segun su origen
- Integridad de inventario: Distinguir el inventario afectado por operaciones oficiales del afectado por operaciones de prueba
Valor de negocio
La implementacion de esta funcionalidad aportara los siguientes beneficios:
- Integridad de datos contables: Separacion clara entre movimientos con validez fiscal y movimientos de prueba en todas las operaciones del sistema
- Auditorias simplificadas: Facilita la verificacion de movimientos oficiales sin interferencia de datos de prueba, incluyendo compras, ajustes y transferencias
- Reportes precisos: Los informes de inventario pueden enfocarse exclusivamente en operaciones reales de cualquier tipo
- Trazabilidad completa: Complementa la trazabilidad de movimientos con comprobantes de ventas, agregando la dimension de oficialidad a todos los movimientos
- Procesos de negocio diferenciados: Permite aplicar reglas especificas segun el caracter del movimiento en cualquier modulo
- Control integral: Visibilidad completa del caracter de todas las operaciones que afectan el inventario
Contexto en el proceso de negocio
Esta funcionalidad se integra en todos los flujos que generan movimientos de stock:
Flujo de ventas:
- El usuario registra un comprobante de ventas (factura o nota de credito)
- El sistema determina si el comprobante es oficial o de prueba
- El sistema genera los movimientos de stock correspondientes
- [Esta funcionalidad] El sistema asigna la marca correspondiente ('O' o 'P') segun el caracter del comprobante
- La marca queda disponible para filtros, consultas y reportes
Flujo de compras:
- El usuario registra una compra de mercaderia
- El sistema determina si la operacion es oficial o de prueba
- El sistema genera los movimientos de stock de ingreso correspondientes
- [Esta funcionalidad] El sistema asigna la marca correspondiente ('O' o 'P') segun el caracter de la compra
- La marca queda disponible para filtros, consultas y reportes
Flujo de ajustes manuales:
- El usuario registra un ajuste manual de inventario
- El sistema determina si el ajuste es oficial o de prueba
- El sistema genera los movimientos de stock correspondientes
- [Esta funcionalidad] El sistema asigna la marca correspondiente ('O' o 'P') segun el caracter del ajuste
- La marca queda disponible para filtros, consultas y reportes
Flujo de transferencias:
- El usuario registra una transferencia entre depositos
- El sistema determina si la transferencia es oficial o de prueba
- El sistema genera los movimientos de stock de egreso en origen e ingreso en destino
- [Esta funcionalidad] El sistema asigna la marca correspondiente ('O' o 'P') a ambos movimientos
- La marca queda disponible para filtros, consultas y reportes
Flujo de devoluciones a proveedores:
- El usuario registra una devolucion a proveedor
- El sistema determina si la devolucion es oficial o de prueba
- El sistema genera los movimientos de stock de egreso correspondientes
- [Esta funcionalidad] El sistema asigna la marca correspondiente ('O' o 'P') segun el caracter de la devolucion
- La marca queda disponible para filtros, consultas y reportes
Integracion con trazabilidad de ventas:
Esta funcionalidad complementa la documentada en Trazabilidad de Movimientos de Stock con Comprobantes de Ventas. Mientras la trazabilidad registra QUE comprobante genero el movimiento (solo para ventas oficiales), la marca de origen identifica el CARACTER (oficial o prueba) de CUALQUIER movimiento de stock. Ambas funcionalidades trabajan en conjunto para proporcionar informacion completa sobre el origen de cada movimiento.
Integracion con baja de comprobantes manuales:
En el proceso de baja de comprobantes de registracion manual documentado en Baja de Comprobantes de Registracion Manual, la marca de origen permite:
- Identificar si los movimientos a revertir corresponden a operaciones oficiales o de prueba
- Aplicar validaciones diferenciadas segun el caracter del movimiento
- Generar registros de auditoria con la informacion del tipo de operacion revertida
Backend
Entidades de negocio
Movimiento de Stock (entidad existente - enriquecida)
Entidad que representa cada movimiento de entrada o salida de inventario de un producto, independientemente del tipo de operacion que lo origino (ventas, compras, ajustes, transferencias, devoluciones). Se estandariza el uso del campo existente marca para identificar el origen oficial o de prueba del movimiento.
Datos existentes relevantes:
| Dato | Descripcion | Proposito |
|---|---|---|
| Identificador del movimiento | Identificador unico del movimiento de stock | Identifica el registro |
| Producto | Producto afectado por el movimiento | Indica que producto se movio |
| Cantidad | Cantidad del movimiento | Indica cuanto se movio |
| Tipo de movimiento | Ingreso o Egreso | Indica la direccion del movimiento |
| Fecha | Fecha del movimiento | Indica cuando ocurrio |
| Identificador de venta | Referencia al comprobante de ventas origen (si aplica) | Trazabilidad con ventas |
| Tipo de comprobante de venta | Tipo del comprobante de ventas (si aplica) | Trazabilidad con ventas |
Dato estandarizado (marca de origen):
| Dato | Descripcion | Proposito |
|---|---|---|
| Marca de origen | Caracter que identifica si el movimiento proviene de una operacion oficial ('O') o de prueba ('P') | Permite diferenciar movimientos segun la naturaleza de la operacion que los genero, independientemente del tipo de operacion |
Datos necesarios
Para la identificacion del origen de todos los movimientos de stock:
| Dato | Descripcion | Valores posibles | Obligatoriedad |
|---|---|---|---|
| Marca de origen | Caracter que indica el caracter oficial o de prueba del movimiento | 'O' = Oficial, 'P' = Prueba, NULL = Solo movimientos legacy | Obligatorio para todos los nuevos movimientos |
Semantica de valores:
'O' (Oficial): El movimiento fue generado por una operacion oficial. Tiene validez fiscal y contable. Aplica a:
- Facturas de venta oficiales
- Notas de credito de venta oficiales
- Compras oficiales
- Ajustes manuales oficiales de inventario
- Transferencias oficiales entre depositos
- Devoluciones oficiales a proveedores
'P' (Prueba): El movimiento fue generado por una operacion de prueba. Tiene caracter temporal o de simulacion. Aplica a:
- Facturas de venta de prueba
- Notas de credito de venta de prueba
- Compras de prueba
- Ajustes manuales de prueba de inventario
- Transferencias de prueba entre depositos
- Devoluciones de prueba a proveedores
NULL (Solo legacy): Reservado exclusivamente para movimientos historicos creados antes de la implementacion de esta funcionalidad. No se permite para nuevos movimientos.
Relaciones de negocio
Operacion de negocio ---- genera ----> Movimiento de Stock
| |
| |
(oficial o prueba) (marca = 'O' o 'P')La marca de origen del movimiento debe corresponder al caracter de la operacion que lo genero:
| Tipo de operacion | Caracter | Marca del movimiento |
|---|---|---|
| Factura de venta oficial | Oficial | 'O' |
| Factura de venta de prueba | Prueba | 'P' |
| Nota de credito de venta oficial | Oficial | 'O' |
| Nota de credito de venta de prueba | Prueba | 'P' |
| Compra oficial | Oficial | 'O' |
| Compra de prueba | Prueba | 'P' |
| Ajuste manual oficial | Oficial | 'O' |
| Ajuste manual de prueba | Prueba | 'P' |
| Transferencia oficial | Oficial | 'O' |
| Transferencia de prueba | Prueba | 'P' |
| Devolucion a proveedor oficial | Oficial | 'O' |
| Devolucion a proveedor de prueba | Prueba | 'P' |
Validaciones de negocio
Obligatoriedad para nuevos movimientos:
- Todo nuevo movimiento de stock debe tener marca = 'O' o marca = 'P'
- No se permite crear nuevos movimientos con marca NULL o vacia
- Esta validacion aplica a todos los tipos de operaciones (ventas, compras, ajustes, transferencias, devoluciones)
Valores permitidos para la marca:
- La marca solo puede contener 'O', 'P' o NULL (este ultimo solo para movimientos legacy)
- No se permiten otros valores
Consistencia con la operacion origen:
- Si la operacion que genera el movimiento es oficial, la marca debe ser 'O'
- Si la operacion que genera el movimiento es de prueba, la marca debe ser 'P'
- Esta consistencia debe validarse al momento de crear el movimiento
Compatibilidad con movimientos legacy:
- Solo los movimientos creados antes de la implementacion de esta funcionalidad pueden tener marca NULL
- Los movimientos legacy deben seguir funcionando correctamente sin marca
- Las funcionalidades existentes no deben verse afectadas por movimientos con marca NULL
Inmutabilidad de la marca:
- Una vez creado el movimiento, la marca de origen no puede modificarse
- Solo se puede eliminar el movimiento completo, nunca cambiar su marca
Reglas de Negocio
RN-001: Asignacion automatica de marca al generar movimiento desde operacion oficial
Descripcion: Cuando el sistema genera un movimiento de stock a partir de cualquier operacion oficial, debe asignar automaticamente la marca 'O' (Oficial).
Condicion: Se esta registrando una operacion oficial que contiene items de productos que afectan el inventario. Esto incluye:
- Facturas de venta oficiales
- Notas de credito de venta oficiales
- Compras oficiales
- Ajustes manuales oficiales de inventario
- Transferencias oficiales entre depositos
- Devoluciones oficiales a proveedores
Accion:
- Por cada item de la operacion oficial que genera movimiento de stock, el sistema debe asignar la marca 'O'
- La asignacion debe realizarse atomicamente junto con la creacion del movimiento
Fundamento: Garantiza que todos los movimientos de stock generados por operaciones oficiales queden marcados como tales, permitiendo su identificacion y tratamiento diferenciado.
RN-002: Asignacion automatica de marca al generar movimiento desde operacion de prueba
Descripcion: Cuando el sistema genera un movimiento de stock a partir de cualquier operacion de prueba, debe asignar automaticamente la marca 'P' (Prueba).
Condicion: Se esta registrando una operacion de prueba que contiene items de productos que afectan el inventario. Esto incluye:
- Facturas de venta de prueba
- Notas de credito de venta de prueba
- Compras de prueba
- Ajustes manuales de prueba de inventario
- Transferencias de prueba entre depositos
- Devoluciones de prueba a proveedores
Accion:
- Por cada item de la operacion de prueba que genera movimiento de stock, el sistema debe asignar la marca 'P'
- La asignacion debe realizarse atomicamente junto con la creacion del movimiento
Fundamento: Garantiza que todos los movimientos de stock generados por operaciones de prueba queden marcados como tales, permitiendo separarlos de las operaciones oficiales.
RN-003: Obligatoriedad de marca para nuevos movimientos
Descripcion: Todo nuevo movimiento de stock debe tener obligatoriamente una marca de origen asignada.
Condicion: Se esta creando un nuevo movimiento de stock por cualquier tipo de operacion.
Accion:
- El sistema debe validar que el movimiento tenga marca = 'O' o marca = 'P'
- Si se intenta crear un movimiento sin marca o con marca NULL, el sistema debe rechazar la operacion
- Esta validacion aplica a todos los tipos de operaciones
Fundamento: Garantiza que todos los nuevos movimientos queden clasificados segun su caracter oficial o de prueba, manteniendo la integridad de los datos desde el momento de la implementacion.
RN-004: Compatibilidad con movimientos legacy
Descripcion: Los movimientos de stock historicos que fueron creados antes de la implementacion de esta funcionalidad pueden tener marca NULL y deben seguir funcionando correctamente.
Condicion: Existen movimientos de stock creados antes de la estandarizacion del uso del campo marca.
Accion:
- El sistema debe manejar correctamente movimientos con marca NULL
- Las funcionalidades existentes no deben verse afectadas por la ausencia de marca
- Las consultas y filtros deben incluir la opcion de mostrar movimientos sin marca especificada (legacy)
- Solo movimientos legacy pueden tener marca NULL; nuevos movimientos no pueden crearse con marca NULL
Fundamento: Garantiza compatibilidad hacia atras y permite una transicion gradual sin afectar la operacion del sistema ni los datos historicos.
RN-005: Inmutabilidad de la marca de origen
Descripcion: La marca de origen de un movimiento de stock no puede modificarse una vez creado el registro.
Condicion: Existe un movimiento de stock con marca de origen asignada.
Accion:
- El sistema no permite modificar el valor de la marca de origen
- Cualquier intento de cambiar la marca debe ser rechazado
- Solo se puede eliminar el movimiento completo
Fundamento: La marca de origen es un dato de trazabilidad que refleja una condicion del momento de creacion. Modificarla alteraria la integridad historica del movimiento y podria afectar auditorias y reportes.
RN-006: Filtrado de movimientos por marca de origen
Descripcion: El sistema debe permitir filtrar movimientos de stock por su marca de origen.
Condicion: Un usuario solicita consultar movimientos de stock.
Accion:
- El sistema ofrece opciones de filtrado: Solo oficiales ('O'), Solo prueba ('P'), Solo legacy (NULL), Todos
- Los resultados respetan el filtro seleccionado
- El filtro de marca puede combinarse con otros criterios de busqueda (producto, fecha, tipo de movimiento, tipo de operacion)
Fundamento: Permite a los usuarios obtener vistas segmentadas del inventario segun la naturaleza de las operaciones que lo afectaron.
RN-007: Consistencia entre marca y tipo de operacion
Descripcion: La marca de origen debe ser consistente con el caracter de la operacion que genera el movimiento.
Condicion: Se esta creando un movimiento de stock desde cualquier tipo de operacion.
Accion:
- Si la operacion es oficial, la marca debe ser 'O'
- Si la operacion es de prueba, la marca debe ser 'P'
- El sistema valida esta consistencia al crear el movimiento
- No se permite crear un movimiento con marca inconsistente con su operacion origen
Fundamento: Asegura coherencia entre el tipo de operacion y la marca de origen, evitando datos contradictorios.
RN-008: Marca en movimientos de compra
Descripcion: Los movimientos de stock generados por compras deben tener marca segun el caracter de la compra.
Condicion: Se esta registrando una compra de mercaderia (oficial o de prueba).
Accion:
- Si la compra es oficial, los movimientos de stock de ingreso deben tener marca 'O'
- Si la compra es de prueba, los movimientos de stock de ingreso deben tener marca 'P'
Fundamento: Permite distinguir el inventario ingresado por compras oficiales del ingresado por compras de prueba.
RN-009: Marca en movimientos de ajuste manual
Descripcion: Los movimientos de stock generados por ajustes manuales de inventario deben tener marca segun el caracter del ajuste.
Condicion: Se esta registrando un ajuste manual de inventario (oficial o de prueba).
Accion:
- Si el ajuste es oficial, los movimientos de stock deben tener marca 'O'
- Si el ajuste es de prueba, los movimientos de stock deben tener marca 'P'
Fundamento: Permite distinguir los ajustes oficiales de inventario (que tienen efectos contables) de los ajustes de prueba o simulacion.
RN-010: Marca en movimientos de transferencia entre depositos
Descripcion: Los movimientos de stock generados por transferencias entre depositos deben tener marca segun el caracter de la transferencia.
Condicion: Se esta registrando una transferencia entre depositos (oficial o de prueba).
Accion:
- Si la transferencia es oficial, tanto el movimiento de egreso en origen como el de ingreso en destino deben tener marca 'O'
- Si la transferencia es de prueba, ambos movimientos deben tener marca 'P'
- La marca debe ser la misma para el par de movimientos generados por una transferencia
Fundamento: Permite distinguir las transferencias oficiales de las transferencias de prueba, manteniendo consistencia en ambos movimientos.
RN-011: Marca en movimientos de devolucion a proveedor
Descripcion: Los movimientos de stock generados por devoluciones a proveedores deben tener marca segun el caracter de la devolucion.
Condicion: Se esta registrando una devolucion a proveedor (oficial o de prueba).
Accion:
- Si la devolucion es oficial, los movimientos de stock de egreso deben tener marca 'O'
- Si la devolucion es de prueba, los movimientos de stock de egreso deben tener marca 'P'
Fundamento: Permite distinguir las devoluciones oficiales a proveedores (que tienen efectos contables y fiscales) de las devoluciones de prueba.
Casos de Uso
CU-001: Registrar movimiento de stock desde factura de venta oficial
Actor: Sistema (proceso automatico al facturar)
Objetivo: Generar movimientos de stock con marca 'O' (Oficial) al registrar una factura de venta oficial
Precondiciones:
- Usuario esta registrando una factura de venta oficial
- La factura contiene items de productos que afectan inventario
- Los productos tienen stock habilitado
Flujo principal:
- El usuario confirma el registro de la factura de venta oficial
- El sistema valida y registra el comprobante de factura
- Por cada item de la factura que afecta stock:
- El sistema crea un movimiento de stock de tipo "Egreso"
- El sistema asigna la marca 'O' (Oficial) al movimiento
- El sistema registra la trazabilidad con el comprobante (segun documentacion relacionada)
- El sistema actualiza el stock del producto (decrementa)
- El sistema confirma la operacion exitosa al usuario
Postcondiciones:
- La factura oficial queda registrada en el sistema
- Los movimientos de stock quedan registrados con marca 'O'
- El stock de los productos queda decrementado
- Los movimientos pueden consultarse filtrando por marca oficial
Flujos alternativos:
- Items sin afectacion de stock: Si algun item es un servicio o producto sin control de stock, no se genera movimiento de stock para ese item
- Error en creacion de movimiento: Si ocurre un error al crear algun movimiento de stock, se revierte toda la operacion incluyendo la factura
CU-002: Registrar movimiento de stock desde factura de venta de prueba
Actor: Sistema (proceso automatico al facturar)
Objetivo: Generar movimientos de stock con marca 'P' (Prueba) al registrar una factura de venta de prueba
Precondiciones:
- Usuario esta registrando una factura de venta de prueba
- La factura contiene items de productos que afectan inventario
- Los productos tienen stock habilitado
Flujo principal:
- El usuario confirma el registro de la factura de venta de prueba
- El sistema valida y registra el comprobante de factura de prueba
- Por cada item de la factura que afecta stock:
- El sistema crea un movimiento de stock de tipo "Egreso"
- El sistema asigna la marca 'P' (Prueba) al movimiento
- El sistema NO registra trazabilidad con el comprobante (segun RN-007 del documento relacionado)
- El sistema actualiza el stock del producto (decrementa)
- El sistema confirma la operacion exitosa al usuario
Postcondiciones:
- La factura de prueba queda registrada en el sistema
- Los movimientos de stock quedan registrados con marca 'P'
- El stock de los productos queda decrementado
- Los movimientos pueden consultarse filtrando por marca de prueba
CU-003: Registrar movimiento de stock desde nota de credito oficial
Actor: Sistema (proceso automatico al registrar nota de credito)
Objetivo: Generar movimientos de stock con marca 'O' (Oficial) al registrar una nota de credito oficial
Precondiciones:
- Usuario esta registrando una nota de credito de venta oficial
- La nota de credito contiene items de productos que afectan inventario
- Los productos tienen stock habilitado
Flujo principal:
- El usuario confirma el registro de la nota de credito oficial
- El sistema valida y registra el comprobante de nota de credito
- Por cada item de la nota de credito que afecta stock:
- El sistema crea un movimiento de stock de tipo "Ingreso" (devolucion)
- El sistema asigna la marca 'O' (Oficial) al movimiento
- El sistema registra la trazabilidad con el comprobante (segun documentacion relacionada)
- El sistema actualiza el stock del producto (incrementa)
- El sistema confirma la operacion exitosa al usuario
Postcondiciones:
- La nota de credito oficial queda registrada en el sistema
- Los movimientos de stock de ingreso quedan registrados con marca 'O'
- El stock de los productos queda incrementado
- Los movimientos pueden consultarse filtrando por marca oficial
CU-004: Registrar movimiento de stock desde nota de credito de prueba
Actor: Sistema (proceso automatico al registrar nota de credito)
Objetivo: Generar movimientos de stock con marca 'P' (Prueba) al registrar una nota de credito de prueba
Precondiciones:
- Usuario esta registrando una nota de credito de venta de prueba
- La nota de credito contiene items de productos que afectan inventario
- Los productos tienen stock habilitado
Flujo principal:
- El usuario confirma el registro de la nota de credito de prueba
- El sistema valida y registra el comprobante de nota de credito de prueba
- Por cada item de la nota de credito que afecta stock:
- El sistema crea un movimiento de stock de tipo "Ingreso" (devolucion)
- El sistema asigna la marca 'P' (Prueba) al movimiento
- El sistema NO registra trazabilidad con el comprobante (segun RN-007 del documento relacionado)
- El sistema actualiza el stock del producto (incrementa)
- El sistema confirma la operacion exitosa al usuario
Postcondiciones:
- La nota de credito de prueba queda registrada en el sistema
- Los movimientos de stock de ingreso quedan registrados con marca 'P'
- El stock de los productos queda incrementado
- Los movimientos pueden consultarse filtrando por marca de prueba
CU-005: Registrar movimiento de stock desde compra oficial
Actor: Sistema (proceso automatico al registrar compra)
Objetivo: Generar movimientos de stock con marca 'O' (Oficial) al registrar una compra oficial
Precondiciones:
- Usuario esta registrando una compra de mercaderia oficial
- La compra contiene items de productos que afectan inventario
- Los productos tienen stock habilitado
Flujo principal:
- El usuario confirma el registro de la compra oficial
- El sistema valida y registra la compra
- Por cada item de la compra que afecta stock:
- El sistema crea un movimiento de stock de tipo "Ingreso"
- El sistema asigna la marca 'O' (Oficial) al movimiento
- El sistema actualiza el stock del producto (incrementa)
- El sistema confirma la operacion exitosa al usuario
Postcondiciones:
- La compra oficial queda registrada en el sistema
- Los movimientos de stock de ingreso quedan registrados con marca 'O'
- El stock de los productos queda incrementado
- Los movimientos pueden consultarse filtrando por marca oficial
CU-006: Registrar movimiento de stock desde compra de prueba
Actor: Sistema (proceso automatico al registrar compra)
Objetivo: Generar movimientos de stock con marca 'P' (Prueba) al registrar una compra de prueba
Precondiciones:
- Usuario esta registrando una compra de mercaderia de prueba
- La compra contiene items de productos que afectan inventario
- Los productos tienen stock habilitado
Flujo principal:
- El usuario confirma el registro de la compra de prueba
- El sistema valida y registra la compra de prueba
- Por cada item de la compra que afecta stock:
- El sistema crea un movimiento de stock de tipo "Ingreso"
- El sistema asigna la marca 'P' (Prueba) al movimiento
- El sistema actualiza el stock del producto (incrementa)
- El sistema confirma la operacion exitosa al usuario
Postcondiciones:
- La compra de prueba queda registrada en el sistema
- Los movimientos de stock de ingreso quedan registrados con marca 'P'
- El stock de los productos queda incrementado
- Los movimientos pueden consultarse filtrando por marca de prueba
CU-007: Registrar movimiento de stock desde ajuste manual oficial
Actor: Sistema (proceso automatico al registrar ajuste)
Objetivo: Generar movimientos de stock con marca 'O' (Oficial) al registrar un ajuste manual oficial de inventario
Precondiciones:
- Usuario esta registrando un ajuste manual oficial de inventario
- El ajuste contiene productos que afectan inventario
- Los productos tienen stock habilitado
Flujo principal:
- El usuario confirma el registro del ajuste manual oficial
- El sistema valida y registra el ajuste
- Por cada producto del ajuste:
- El sistema crea un movimiento de stock de tipo "Ingreso" o "Egreso" segun corresponda
- El sistema asigna la marca 'O' (Oficial) al movimiento
- El sistema actualiza el stock del producto (incrementa o decrementa)
- El sistema confirma la operacion exitosa al usuario
Postcondiciones:
- El ajuste manual oficial queda registrado en el sistema
- Los movimientos de stock quedan registrados con marca 'O'
- El stock de los productos queda ajustado
- Los movimientos pueden consultarse filtrando por marca oficial
CU-008: Registrar movimiento de stock desde ajuste manual de prueba
Actor: Sistema (proceso automatico al registrar ajuste)
Objetivo: Generar movimientos de stock con marca 'P' (Prueba) al registrar un ajuste manual de prueba de inventario
Precondiciones:
- Usuario esta registrando un ajuste manual de prueba de inventario
- El ajuste contiene productos que afectan inventario
- Los productos tienen stock habilitado
Flujo principal:
- El usuario confirma el registro del ajuste manual de prueba
- El sistema valida y registra el ajuste de prueba
- Por cada producto del ajuste:
- El sistema crea un movimiento de stock de tipo "Ingreso" o "Egreso" segun corresponda
- El sistema asigna la marca 'P' (Prueba) al movimiento
- El sistema actualiza el stock del producto (incrementa o decrementa)
- El sistema confirma la operacion exitosa al usuario
Postcondiciones:
- El ajuste manual de prueba queda registrado en el sistema
- Los movimientos de stock quedan registrados con marca 'P'
- El stock de los productos queda ajustado
- Los movimientos pueden consultarse filtrando por marca de prueba
CU-009: Registrar movimiento de stock desde transferencia oficial
Actor: Sistema (proceso automatico al registrar transferencia)
Objetivo: Generar movimientos de stock con marca 'O' (Oficial) al registrar una transferencia oficial entre depositos
Precondiciones:
- Usuario esta registrando una transferencia oficial entre depositos
- La transferencia contiene productos que afectan inventario
- Los productos tienen stock habilitado en ambos depositos
Flujo principal:
- El usuario confirma el registro de la transferencia oficial
- El sistema valida y registra la transferencia
- Por cada producto de la transferencia:
- El sistema crea un movimiento de stock de tipo "Egreso" en el deposito origen
- El sistema asigna la marca 'O' (Oficial) al movimiento de egreso
- El sistema crea un movimiento de stock de tipo "Ingreso" en el deposito destino
- El sistema asigna la marca 'O' (Oficial) al movimiento de ingreso
- El sistema actualiza el stock del producto en ambos depositos
- El sistema confirma la operacion exitosa al usuario
Postcondiciones:
- La transferencia oficial queda registrada en el sistema
- Los movimientos de stock de egreso e ingreso quedan registrados con marca 'O'
- El stock de los productos queda actualizado en ambos depositos
- Los movimientos pueden consultarse filtrando por marca oficial
CU-010: Registrar movimiento de stock desde transferencia de prueba
Actor: Sistema (proceso automatico al registrar transferencia)
Objetivo: Generar movimientos de stock con marca 'P' (Prueba) al registrar una transferencia de prueba entre depositos
Precondiciones:
- Usuario esta registrando una transferencia de prueba entre depositos
- La transferencia contiene productos que afectan inventario
- Los productos tienen stock habilitado en ambos depositos
Flujo principal:
- El usuario confirma el registro de la transferencia de prueba
- El sistema valida y registra la transferencia de prueba
- Por cada producto de la transferencia:
- El sistema crea un movimiento de stock de tipo "Egreso" en el deposito origen
- El sistema asigna la marca 'P' (Prueba) al movimiento de egreso
- El sistema crea un movimiento de stock de tipo "Ingreso" en el deposito destino
- El sistema asigna la marca 'P' (Prueba) al movimiento de ingreso
- El sistema actualiza el stock del producto en ambos depositos
- El sistema confirma la operacion exitosa al usuario
Postcondiciones:
- La transferencia de prueba queda registrada en el sistema
- Los movimientos de stock de egreso e ingreso quedan registrados con marca 'P'
- El stock de los productos queda actualizado en ambos depositos
- Los movimientos pueden consultarse filtrando por marca de prueba
CU-011: Registrar movimiento de stock desde devolucion a proveedor oficial
Actor: Sistema (proceso automatico al registrar devolucion)
Objetivo: Generar movimientos de stock con marca 'O' (Oficial) al registrar una devolucion oficial a proveedor
Precondiciones:
- Usuario esta registrando una devolucion oficial a proveedor
- La devolucion contiene productos que afectan inventario
- Los productos tienen stock habilitado
Flujo principal:
- El usuario confirma el registro de la devolucion a proveedor oficial
- El sistema valida y registra la devolucion
- Por cada producto de la devolucion:
- El sistema crea un movimiento de stock de tipo "Egreso"
- El sistema asigna la marca 'O' (Oficial) al movimiento
- El sistema actualiza el stock del producto (decrementa)
- El sistema confirma la operacion exitosa al usuario
Postcondiciones:
- La devolucion a proveedor oficial queda registrada en el sistema
- Los movimientos de stock de egreso quedan registrados con marca 'O'
- El stock de los productos queda decrementado
- Los movimientos pueden consultarse filtrando por marca oficial
CU-012: Registrar movimiento de stock desde devolucion a proveedor de prueba
Actor: Sistema (proceso automatico al registrar devolucion)
Objetivo: Generar movimientos de stock con marca 'P' (Prueba) al registrar una devolucion de prueba a proveedor
Precondiciones:
- Usuario esta registrando una devolucion de prueba a proveedor
- La devolucion contiene productos que afectan inventario
- Los productos tienen stock habilitado
Flujo principal:
- El usuario confirma el registro de la devolucion a proveedor de prueba
- El sistema valida y registra la devolucion de prueba
- Por cada producto de la devolucion:
- El sistema crea un movimiento de stock de tipo "Egreso"
- El sistema asigna la marca 'P' (Prueba) al movimiento
- El sistema actualiza el stock del producto (decrementa)
- El sistema confirma la operacion exitosa al usuario
Postcondiciones:
- La devolucion a proveedor de prueba queda registrada en el sistema
- Los movimientos de stock de egreso quedan registrados con marca 'P'
- El stock de los productos queda decrementado
- Los movimientos pueden consultarse filtrando por marca de prueba
CU-013: Consultar movimientos de stock filtrando por marca de origen
Actor: Usuario con permiso de consulta de movimientos de stock
Objetivo: Obtener una lista de movimientos de stock filtrada por su marca de origen
Precondiciones:
- Usuario tiene permiso de visualizacion de movimientos de stock
- Existen movimientos de stock registrados en el sistema
Flujo principal:
- El usuario accede a la consulta de movimientos de stock
- El usuario selecciona el filtro de marca de origen:
- Solo oficiales ('O')
- Solo prueba ('P')
- Solo legacy (NULL)
- Todos
- El usuario puede agregar otros filtros (producto, fecha, tipo de movimiento, tipo de operacion)
- El sistema ejecuta la busqueda aplicando los filtros
- El sistema muestra los resultados con la marca de origen visible en cada movimiento
- El usuario puede navegar, ordenar o exportar los resultados
Postcondiciones:
- El usuario visualiza los movimientos que cumplen los criterios de filtrado
- La marca de origen es visible en cada movimiento de los resultados
Flujos alternativos:
- Sin resultados: Si no hay movimientos que cumplan los criterios, el sistema muestra mensaje indicando ausencia de resultados
- Error en consulta: Si ocurre un error, el sistema muestra mensaje de error y permite reintentar
CU-014: Generar reporte de movimientos separando oficiales y prueba
Actor: Usuario con permiso de generacion de reportes de stock
Objetivo: Generar un reporte de movimientos de stock que distinga entre operaciones oficiales y de prueba
Precondiciones:
- Usuario tiene permiso de generacion de reportes de stock
- Existen movimientos de stock registrados en el periodo de consulta
Flujo principal:
- El usuario accede a la generacion de reportes de movimientos de stock
- El usuario selecciona el periodo o criterios de reporte
- El usuario selecciona la opcion de filtrado por marca:
- Solo movimientos oficiales
- Solo movimientos de prueba
- Solo movimientos legacy
- Todos con separacion (secciones separadas)
- El sistema genera el reporte con la segmentacion solicitada
- El reporte incluye:
- Encabezado con criterios aplicados (incluyendo filtro de marca)
- Datos de movimientos segun el filtro
- Totalizaciones (si aplica) separadas por marca cuando corresponda
- El usuario puede visualizar, imprimir o exportar el reporte
Postcondiciones:
- El reporte refleja la segmentacion solicitada
- El criterio de filtrado de marca esta claramente indicado en el reporte
Consideraciones
Seguridad
Proteccion de datos:
- La marca de origen es un dato de auditoria que no debe poder modificarse por ningun usuario
- Los movimientos marcados como oficiales tienen implicancias fiscales y deben protegerse contra alteraciones
- Los logs de sistema deben registrar cualquier intento de modificacion indebida
Control de acceso:
- La visualizacion de la marca de origen esta disponible para todos los usuarios con permiso de consulta de movimientos
- No existe un permiso especifico para la marca, ya que es un atributo del movimiento
- La modificacion de la marca esta bloqueada para todos los usuarios (incluyendo administradores)
Auditoria de accesos:
- Las consultas a movimientos oficiales pueden ser objeto de auditoria de acceso
- Los reportes generados con filtros de marca deben quedar registrados
Auditoria
Operaciones que se auditan:
| Operacion | Datos auditados | Motivo |
|---|---|---|
| Creacion de movimiento con marca | Identificador del movimiento, marca asignada, tipo de operacion origen | Trazabilidad de asignacion de marca |
| Intento de modificacion de marca | Usuario, movimiento, valor actual, valor intentado | Seguridad y deteccion de irregularidades |
| Generacion de reportes por marca | Usuario, fecha, criterios de filtrado | Control de acceso a informacion |
| Intento de creacion sin marca | Usuario, operacion, motivo de rechazo | Deteccion de intentos de evasion |
Informacion preservada:
- Marca de origen original en todos los movimientos
- Fecha y hora de creacion del movimiento
- Usuario que genero la operacion que origino el movimiento
- Tipo de operacion que genero el movimiento
- Criterios de filtrado en reportes generados
Rendimiento
Volumenes esperados:
- Los movimientos de stock pueden crecer significativamente con el volumen de operaciones de todo tipo (ventas, compras, ajustes, transferencias, devoluciones)
- Las consultas por marca de origen se realizaran con frecuencia para reportes y auditorias
- Se espera que la mayoria de los movimientos sean oficiales, con un porcentaje menor de prueba
Expectativas de tiempo de respuesta:
- El filtrado por marca no debe agregar latencia perceptible a las consultas existentes
- La asignacion de marca durante la creacion del movimiento no debe afectar el tiempo de registro de la operacion
- Los reportes segmentados por marca deben generarse en tiempos similares a los reportes sin segmentacion
Consideraciones de busqueda:
- Las consultas por marca de origen seran frecuentes y deben ser eficientes
- La combinacion de filtros (marca + fecha + producto + tipo de operacion) es un caso de uso comun
Dependencias
Funcionalidades relacionadas
Trazabilidad de Movimientos de Stock con Comprobantes de Ventas (Ver documento): La marca de origen complementa la trazabilidad, agregando la dimension de oficialidad al movimiento. Mientras la trazabilidad indica QUE comprobante de ventas genero el movimiento (solo para ventas oficiales), la marca indica el CARACTER (oficial o prueba) de CUALQUIER tipo de movimiento.
Baja de Registracion Manual de Comprobantes (Ver documento): El proceso de baja puede utilizar la marca de origen para identificar si los movimientos a revertir corresponden a operaciones oficiales o de prueba, permitiendo tratamientos diferenciados si es necesario.
Registro de Comprobantes de Ventas: Esta funcionalidad se integra en el proceso de registro de facturas y notas de credito de ventas. La marca se asigna automaticamente segun el caracter del comprobante.
Registro de Compras: Esta funcionalidad se integra en el proceso de registro de compras de mercaderia. La marca se asigna automaticamente segun el caracter de la compra.
Ajustes Manuales de Inventario: Esta funcionalidad se integra en el proceso de registro de ajustes manuales. La marca se asigna automaticamente segun el caracter del ajuste.
Transferencias entre Depositos: Esta funcionalidad se integra en el proceso de registro de transferencias. La marca se asigna automaticamente segun el caracter de la transferencia.
Devoluciones a Proveedores: Esta funcionalidad se integra en el proceso de registro de devoluciones. La marca se asigna automaticamente segun el caracter de la devolucion.
Gestion de Stock: El modulo de stock recibe las modificaciones de esta funcionalidad para soportar el filtrado por marca. Las consultas de movimientos se enriquecen con la informacion de marca de origen.
Modulos de negocio involucrados
| Modulo | Rol en esta funcionalidad |
|---|---|
| Ventas | Proporciona los comprobantes (facturas, NC) y determina su caracter oficial o de prueba |
| Compras | Proporciona las operaciones de compra y determina su caracter oficial o de prueba |
| Stock | Recibe la mejora para registrar, consultar y filtrar movimientos por marca de origen |
| Auditoria | Registra las operaciones de creacion de movimientos con sus marcas de origen |
Impacto en otros procesos
| Proceso | Impacto |
|---|---|
| Registro de factura de venta oficial | Los movimientos de stock generados tendran marca 'O' |
| Registro de factura de venta de prueba | Los movimientos de stock generados tendran marca 'P' |
| Registro de nota de credito oficial | Los movimientos de stock generados tendran marca 'O' |
| Registro de nota de credito de prueba | Los movimientos de stock generados tendran marca 'P' |
| Registro de compra oficial | Los movimientos de stock generados tendran marca 'O' |
| Registro de compra de prueba | Los movimientos de stock generados tendran marca 'P' |
| Registro de ajuste manual oficial | Los movimientos de stock generados tendran marca 'O' |
| Registro de ajuste manual de prueba | Los movimientos de stock generados tendran marca 'P' |
| Registro de transferencia oficial | Los movimientos de stock generados tendran marca 'O' |
| Registro de transferencia de prueba | Los movimientos de stock generados tendran marca 'P' |
| Registro de devolucion a proveedor oficial | Los movimientos de stock generados tendran marca 'O' |
| Registro de devolucion a proveedor de prueba | Los movimientos de stock generados tendran marca 'P' |
| Consulta de movimientos de stock | Nueva opcion de filtrado por marca de origen |
| Reportes de inventario | Posibilidad de segmentar por marca de origen |
| Baja de comprobantes manuales | Disponibilidad de informacion de marca para los movimientos involucrados |
Criterios de Aceptacion
La funcionalidad se considera completa cuando se cumplan los siguientes criterios:
Criterios para movimientos de ventas
[ ] AC-001: Al registrar una factura de venta oficial con items que afectan stock, cada movimiento de stock generado tiene marca 'O' (Oficial)
[ ] AC-002: Al registrar una factura de venta de prueba con items que afectan stock, cada movimiento de stock generado tiene marca 'P' (Prueba)
[ ] AC-003: Al registrar una nota de credito de venta oficial con items que afectan stock, cada movimiento de stock generado tiene marca 'O' (Oficial)
[ ] AC-004: Al registrar una nota de credito de venta de prueba con items que afectan stock, cada movimiento de stock generado tiene marca 'P' (Prueba)
Criterios para movimientos de compras
[ ] AC-005: Al registrar una compra oficial con items que afectan stock, cada movimiento de stock generado tiene marca 'O' (Oficial)
[ ] AC-006: Al registrar una compra de prueba con items que afectan stock, cada movimiento de stock generado tiene marca 'P' (Prueba)
Criterios para movimientos de ajustes manuales
[ ] AC-007: Al registrar un ajuste manual oficial de inventario, cada movimiento de stock generado tiene marca 'O' (Oficial)
[ ] AC-008: Al registrar un ajuste manual de prueba de inventario, cada movimiento de stock generado tiene marca 'P' (Prueba)
Criterios para movimientos de transferencias
[ ] AC-009: Al registrar una transferencia oficial entre depositos, tanto el movimiento de egreso en origen como el de ingreso en destino tienen marca 'O' (Oficial)
[ ] AC-010: Al registrar una transferencia de prueba entre depositos, tanto el movimiento de egreso en origen como el de ingreso en destino tienen marca 'P' (Prueba)
Criterios para movimientos de devoluciones a proveedores
[ ] AC-011: Al registrar una devolucion oficial a proveedor, cada movimiento de stock generado tiene marca 'O' (Oficial)
[ ] AC-012: Al registrar una devolucion de prueba a proveedor, cada movimiento de stock generado tiene marca 'P' (Prueba)
Criterios de obligatoriedad y validacion
[ ] AC-013: No es posible crear un nuevo movimiento de stock sin marca (marca NULL o vacia) - el sistema rechaza la operacion
[ ] AC-014: La marca de origen no puede ser modificada una vez creado el movimiento de stock
[ ] AC-015: Solo los valores 'O' y 'P' son aceptados como marca para nuevos movimientos; cualquier otro valor es rechazado
[ ] AC-016: La marca asignada es consistente con el caracter (oficial/prueba) de la operacion que genera el movimiento
Criterios de compatibilidad y legacy
[ ] AC-017: Los movimientos de stock historicos (con marca NULL) siguen funcionando correctamente en todas las funcionalidades existentes
[ ] AC-018: Las consultas de movimientos distinguen correctamente entre movimientos legacy (NULL), oficiales ('O') y de prueba ('P')
Criterios de filtrado y reportes
[ ] AC-019: El sistema permite filtrar movimientos de stock por marca de origen: Solo oficiales ('O'), Solo prueba ('P'), Solo legacy (NULL), o Todos
[ ] AC-020: El filtro por marca de origen puede combinarse con otros filtros existentes (producto, fecha, tipo de movimiento, tipo de operacion)
[ ] AC-021: Los reportes de movimientos de stock permiten seleccionar si incluir solo movimientos oficiales, solo de prueba, solo legacy, o todos
[ ] AC-022: La marca de origen es visible en la consulta de detalle de cada movimiento de stock
Criterios de auditoria y rendimiento
[ ] AC-023: La auditoria registra correctamente la creacion de movimientos de stock con su marca de origen
[ ] AC-024: El rendimiento de consultas de movimientos no se ve afectado significativamente por el filtrado por marca de origen
[ ] AC-025: El rendimiento de creacion de movimientos no se ve afectado significativamente por la asignacion de marca
Notas adicionales
Matriz de asignacion de marca segun tipo de operacion
| Tipo de operacion | Caracter de la operacion | Marca asignada |
|---|---|---|
| Factura de venta | Oficial | 'O' |
| Factura de venta | Prueba | 'P' |
| Nota de credito de venta | Oficial | 'O' |
| Nota de credito de venta | Prueba | 'P' |
| Compra de mercaderia | Oficial | 'O' |
| Compra de mercaderia | Prueba | 'P' |
| Ajuste manual de inventario | Oficial | 'O' |
| Ajuste manual de inventario | Prueba | 'P' |
| Transferencia entre depositos | Oficial | 'O' |
| Transferencia entre depositos | Prueba | 'P' |
| Devolucion a proveedor | Oficial | 'O' |
| Devolucion a proveedor | Prueba | 'P' |
| Movimiento legacy (historico) | N/A | NULL |
Relacion con trazabilidad de ventas
Es importante notar la diferencia entre la marca de origen y la trazabilidad con comprobantes de ventas:
| Aspecto | Trazabilidad (id_ventas + tipo_comprobante) | Marca de origen |
|---|---|---|
| Proposito | Identifica QUE comprobante de ventas genero el movimiento | Identifica el CARACTER de la operacion (oficial/prueba) |
| Aplica a | Solo movimientos de ventas oficiales | TODOS los movimientos de stock |
| Comprobantes oficiales de ventas | Se registra | Marca = 'O' |
| Comprobantes de prueba de ventas | NO se registra (ver RN-007 doc relacionado) | Marca = 'P' |
| Compras | No aplica | Marca = 'O' o 'P' segun corresponda |
| Ajustes manuales | No aplica | Marca = 'O' o 'P' segun corresponda |
| Transferencias | No aplica | Marca = 'O' o 'P' segun corresponda |
| Devoluciones a proveedores | No aplica | Marca = 'O' o 'P' segun corresponda |
| Movimientos legacy | No aplica | NULL |
Preguntas frecuentes
Por que usar un campo existente en lugar de crear uno nuevo?
- El campo
marcaya existe y no estaba siendo utilizado de forma estandarizada - Evita modificaciones estructurales innecesarias
- Aprovecha la capacidad existente del sistema
- El campo
Puede un movimiento tener marca sin trazabilidad?
- Si. La mayoria de los movimientos tendran marca pero no trazabilidad:
- Movimientos de prueba de ventas tienen marca 'P' pero no tienen trazabilidad
- Movimientos de compras, ajustes, transferencias y devoluciones tienen marca pero no aplica trazabilidad de ventas
- Esto permite identificar el caracter de cualquier movimiento independientemente de su trazabilidad
- Si. La mayoria de los movimientos tendran marca pero no trazabilidad:
Que pasa con movimientos historicos?
- Los movimientos existentes sin marca siguen funcionando normalmente
- Se pueden consultar usando el filtro "Legacy" o "Todos"
- El sistema los muestra como "Legacy" o "No especificado"
- Solo movimientos legacy pueden tener marca NULL; nuevos movimientos deben tener 'O' o 'P'
Puede modificarse la marca si hay un error?
- No. La marca es inmutable para garantizar integridad
- Si hay un error, debe revertirse el movimiento completo y regenerarlo correctamente
Por que la marca es obligatoria para todos los nuevos movimientos?
- Garantiza que todo el inventario pueda clasificarse por caracter de operacion
- Permite reportes y auditorias completas desde el momento de la implementacion
- Evita ambiguedades sobre la naturaleza de las operaciones
Como se determina si una operacion es oficial o de prueba?
- Cada tipo de operacion (ventas, compras, ajustes, etc.) tiene su propio mecanismo para determinar si es oficial o de prueba
- El sistema de stock solo recibe esta informacion y asigna la marca correspondiente
- La logica de determinacion corresponde a cada modulo de negocio
Historial de cambios
| Fecha | Version | Autor | Descripcion |
|---|---|---|---|
| 2025-12-24 | 2.1 | Sistema | IMPLEMENTADO: Deteccion automatica de marca basada en el tipo de base de datos en uso. El sistema determina automaticamente si la operacion es oficial o de prueba segun la base de datos activa. Los movimientos de ventas (facturas y notas de credito) se marcan automaticamente segun corresponda. Los movimientos genericos de stock (altas manuales) siempre se marcan como oficiales. El sistema valida que todos los nuevos movimientos tengan marca obligatoriamente. Tests verificados exitosamente. Estado: IMPLEMENTADO |
| 2025-12-23 | 2.0 | Sistema | Actualizacion mayor: El campo marca ahora aplica a TODOS los tipos de movimientos de stock (ventas, compras, ajustes, transferencias, devoluciones), no solo a ventas. Marca obligatoria para nuevos movimientos (NULL solo para legacy). Agregadas reglas de negocio RN-008 a RN-011 para cada tipo de operacion. Agregados casos de uso CU-005 a CU-012 para compras, ajustes, transferencias y devoluciones. Actualizados criterios de aceptacion para cubrir todos los tipos de operaciones. |
| 2025-12-23 | 1.0 | Sistema | Creacion del documento de requerimientos de negocio |