# DIRECTIVA-INVENTARIO-SUCURSALES **Version:** 1.0 **Fecha:** 2025-12-08 **Vertical:** Retail / POS **Nivel:** 2B.2 --- ## PROPOSITO Define las directrices para la gestion de inventario multi-sucursal en retail. --- ## ALCANCE - Control de stock por sucursal - Transferencias entre sucursales - Reabastecimiento centralizado - Conteos ciclicos --- ## PRINCIPIOS ### 1. Visibilidad en Tiempo Real - Stock actualizado inmediatamente con cada venta - Dashboard centralizado de todas las sucursales - Alertas de stock bajo automaticas ### 2. Control Centralizado - Politicas de inventario desde central - Transferencias autorizadas - Precios unificados ### 3. Autonomia Operativa - Cada sucursal opera independiente - Conteos locales permitidos - Ajustes menores autorizados --- ## MODELO DE DATOS ### branches (sucursales) ```yaml campos: - id: uuid - code: string (ej: SUC001) - name: string - address: text - manager_id: FK -> auth.users - location_id: FK -> inventory.locations - status: enum(active, inactive) - is_warehouse: boolean ``` ### branch_stock ```yaml campos: - id: uuid - branch_id: FK -> branches - product_id: FK -> retail.products - quantity_available: decimal - quantity_reserved: decimal - minimum_stock: decimal - reorder_point: decimal - last_count_date: date ``` ### stock_transfers ```yaml campos: - id: uuid - transfer_number: string - origin_branch_id: FK -> branches - destination_branch_id: FK -> branches - status: enum(draft, requested, approved, in_transit, received, cancelled) - requested_by: FK -> auth.users - approved_by: FK -> auth.users - requested_at: timestamp - shipped_at: timestamp - received_at: timestamp ``` --- ## FLUJO DE TRANSFERENCIA ``` 1. Sucursal A solicita productos | 2. Central aprueba transferencia | 3. Almacen prepara envio | 4. Registro de salida (origen) | 5. Transito | 6. Sucursal B recibe productos | 7. Registro de entrada (destino) ``` ### Estados de Transferencia ``` draft --> requested --> approved --> in_transit --> received | | | v v v cancelled rejected lost ``` --- ## REABASTECIMIENTO ### Tipos de Reabastecimiento | Tipo | Trigger | Proceso | |------|---------|---------| | Automatico | Stock < reorder_point | Sistema genera solicitud | | Manual | Solicitud de sucursal | Manager aprueba | | Push | Decision central | Central envia sin solicitud | ### Algoritmo de Reabastecimiento ```python # Pseudocodigo for product in products_below_reorder: needed = max_stock - current_stock available_in_warehouse = get_warehouse_stock(product) if available_in_warehouse >= needed: create_transfer(warehouse, branch, product, needed) else: create_purchase_order(product, needed - available_in_warehouse) create_transfer(warehouse, branch, product, available_in_warehouse) ``` --- ## CONTEOS CICLICOS ### Frecuencia por Clasificacion ABC | Clasificacion | Frecuencia | Productos | |---------------|------------|-----------| | A | Semanal | Alta rotacion/valor | | B | Quincenal | Rotacion media | | C | Mensual | Baja rotacion | ### Proceso de Conteo ``` 1. Sistema genera lista de conteo | 2. Encargado realiza conteo fisico | 3. Registra cantidades en sistema | 4. Sistema calcula diferencias | 5. Aprobacion de ajustes | 6. Actualizacion de stock ``` --- ## INTEGRACION CON CORE ### Herencia de Specs | Spec Core | Aplicacion | |-----------|------------| | SPEC-INVENTARIOS-CICLICOS | Conteos por sucursal | | SPEC-VALORACION-INVENTARIO | Costeo centralizado | | SPEC-TRAZABILIDAD-LOTES-SERIES | Caducidades | ### Mapeo con Core - `branches` extiende `inventory.locations` - `branch_stock` extiende `inventory.quants` - `stock_transfers` usa `inventory.stock_moves` --- ## REPORTES | Reporte | Frecuencia | Destinatario | |---------|------------|--------------| | Stock por sucursal | Diario | Managers | | Movimientos | Semanal | Central | | Diferencias | Por conteo | Auditoria | | Rotacion | Mensual | Compras | --- ## REFERENCIAS - SPEC-INVENTARIOS-CICLICOS.md (core) - SPEC-VALORACION-INVENTARIO.md (core) - DIRECTIVA-PUNTO-VENTA.md --- **Documento de directiva oficial**