Appearance
Registro Manual de Movimiento de Stock
Modulo: Stock Tipo: Process Estado: Planificado Fecha: 2026-03-20
Descripcion
Problema de negocio
El sistema permite registrar movimientos de stock de forma automatica a traves de operaciones de ventas (facturas, notas de credito) y compras. Sin embargo, existen situaciones donde es necesario registrar movimientos manualmente, como ajustes de inventario, transferencias entre depositos o correcciones.
Actualmente el registro manual de movimientos se realiza a traves de un mecanismo que no sigue los estandares del sistema y no verifica correctamente si el modulo de control de stock esta habilitado para la empresa.
Necesidad del negocio
Estandarizar el proceso de registro manual de movimientos de stock para que:
- Respete la configuracion de la empresa (modulo de control de stock habilitado/deshabilitado)
- Valide que los productos involucrados tengan control de stock activo
- Asigne correctamente la marca de origen segun el caracter de la operacion
- Mantenga consistencia con los movimientos generados automaticamente por otros modulos
Valor para el negocio
- Control de acceso al registro manual basado en la configuracion de la empresa
- Validacion de datos antes de registrar movimientos, previniendo errores de inventario
- Consistencia en la clasificacion de movimientos manuales con la marca de origen correspondiente
Frontend (Perspectiva de Usuario)
Vistas
- Formulario de registro de movimiento manual de stock
Interacciones del Usuario
- Registrar un movimiento manual indicando fecha, comprobante, numero de comprobante y productos con cantidades
- El sistema valida los datos y registra el movimiento
Estados de UI
- Indicador de carga mientras se procesa el registro
- Mensaje de exito al registrar el movimiento
- Mensaje de error si el modulo de stock esta deshabilitado para la empresa
- Mensaje de error si un producto no tiene control de stock habilitado
- Mensaje de error si faltan datos obligatorios
Backend (Perspectiva de Datos de Negocio)
Entidades de Negocio
- Movimiento de Stock: Registro de ingreso o egreso de productos en el inventario
- Producto: Articulo que puede tener control de stock habilitado o deshabilitado
Datos Necesarios
| Campo | Descripcion | Obligatorio |
|---|---|---|
| Fecha | Fecha del movimiento | Si |
| Comprobante | Tipo de comprobante de stock utilizado | Si |
| Numero de comprobante | Numero identificatorio del comprobante | Si |
| Productos | Lista de productos con sus cantidades | Si (al menos uno) |
Relaciones de Negocio
- Un movimiento manual se clasifica con un tipo de comprobante de stock
- Un movimiento afecta el stock de uno o mas productos
- La marca de origen indica el caracter de la operacion (Oficial o Prueba)
Validaciones de Negocio
- El modulo de control de stock debe estar habilitado para la empresa
- Todos los campos obligatorios deben estar presentes
- Los productos involucrados deben tener el control de stock habilitado
- La marca de origen se asigna como 'O' (Oficial) para movimientos manuales registrados en entorno oficial
Reglas de Negocio
RN-001: Verificacion de modulo habilitado
- Condicion: Al intentar registrar un movimiento manual de stock
- Accion: El sistema verifica que la empresa tenga habilitado el modulo de control de stock. Si no esta habilitado, rechaza la operacion
RN-002: Producto con control de stock
- Condicion: Al incluir un producto en el movimiento
- Accion: El sistema verifica que el producto tenga habilitado el control de stock. Si no lo tiene, rechaza la operacion con mensaje descriptivo
RN-003: Marca de origen obligatoria
- Condicion: Al registrar un movimiento manual
- Accion: El sistema asigna la marca 'O' (Oficial) a los movimientos manuales, segun lo establecido en la Marca de Origen en Movimientos de Stock
RN-004: Actualizacion de costo del producto
- Condicion: Cuando el numero de comprobante es cero
- Accion: El sistema actualiza el costo del producto asociado usando
importe / cantidadcomo precio unitario
RN-005: Contrato del campo importe
mov_sto.importealmacena el total de la linea (cantidad × precio unitario)- En movimientos manuales: el controller calcula
costo × cantidadantes de persistir - Caso especial — Ultimo Costo (
cantidad = 0):importe = costo(unitario directo, sin multiplicacion) - Para obtener el precio unitario en consultas o informes:
importe / COALESCE(NULLIF(cantidad, 0), 1)
Casos de Uso
Caso de Uso 1: Registrar movimiento manual de stock
Actor: Usuario con acceso al modulo de Stock
Precondiciones:
- El modulo de control de stock esta habilitado para la empresa
- Los productos a incluir tienen control de stock activo
Flujo principal:
- Usuario accede al registro de movimiento manual de stock
- Sistema muestra formulario con campos: fecha, comprobante, numero de comprobante, productos
- Usuario selecciona el tipo de comprobante de stock
- Usuario indica fecha y numero de comprobante
- Usuario agrega productos con sus cantidades
- Usuario confirma el registro
- Sistema valida los datos y verifica que los productos tengan control de stock
- Sistema registra el movimiento con marca de origen correspondiente
- Sistema muestra confirmacion
Flujos alternativos:
- 1a. Modulo de stock deshabilitado: Sistema muestra error indicando que el modulo no esta activo para la empresa
- 7a. Producto sin control de stock: Sistema muestra error indicando que el producto no maneja stock
- 7b. Faltan datos obligatorios: Sistema muestra errores de validacion
Postcondiciones:
- Movimiento de stock registrado
- Stock de los productos afectados actualizado
Caso de Uso 2: Intento de registro con modulo deshabilitado
Actor: Usuario
Precondiciones:
- El modulo de control de stock NO esta habilitado para la empresa
Flujo principal:
- Usuario intenta registrar un movimiento manual de stock
- Sistema verifica la configuracion de la empresa
- Sistema rechaza la operacion indicando que el modulo de control de stock no esta habilitado
Postcondiciones:
- No se registra ningun movimiento
Consideraciones
Seguridad
- Solo usuarios autenticados con acceso al modulo de Stock pueden registrar movimientos manuales
- La operacion requiere que el modulo de control de stock este habilitado a nivel de empresa
Coexistencia temporal
- Durante un periodo de transicion, el sistema mantendra disponibles tanto el mecanismo actual como el nuevo para registrar movimientos manuales, hasta que se complete la migracion
Dependencias
Modulos internos
- Tipo de Comprobante de Stock: Se usa para clasificar el movimiento (ver recurso)
- Productos (Ventas): Se valida que los productos tengan control de stock habilitado
- Marca de Origen: Se aplica la clasificacion de marca segun el caracter de la operacion (ver recurso)
Criterios de Aceptacion
- [ ] El sistema verifica que el modulo de control de stock este habilitado antes de procesar el registro
- [ ] El sistema rechaza el registro si el modulo de stock esta deshabilitado, con mensaje descriptivo
- [ ] El sistema valida que todos los campos obligatorios esten presentes (fecha, comprobante, numero de comprobante, productos)
- [ ] El sistema rechaza el registro si un producto no tiene control de stock habilitado
- [ ] El sistema asigna la marca de origen correspondiente al movimiento manual
- [ ] El movimiento queda registrado correctamente y el stock de los productos se actualiza
- [ ] Cuando el numero de comprobante es cero, el sistema actualiza el costo del producto
Notas Adicionales
- Este proceso documenta exclusivamente el registro manual de movimientos. Los movimientos generados automaticamente por ventas y compras se documentan en sus respectivos recursos: Movimiento Stock Ventas y Movimiento Stock Compras
- El campo de referencia a compras (trazabilidad con comprobantes de compra) se reserva para uso futuro sin funcionalidad activa en esta version