- Actualiza FASES_IMPLEMENTADAS.md con Fase 7 (precios proveedor, multi-sucursal, factura global) - Agrega docs/MULTI_BRANCH.md con arquitectura y endpoints - Agrega docs/GLOBAL_INVOICE.md con requerimiento SAT y flujo de uso
1.8 KiB
1.8 KiB
Multi-sucursal — Documentación Técnica
Versión DB: v4.0
Commit: 2b73c2c
Arquitectura
Catálogo compartido
inventory.branch_ides siempreNULL(catálogo compartido a nivel tenant).part_numbertiene unique indexidx_inventory_part_unique.- Productos duplicados por
part_numberen múltiples sucursales fueron consolidados en la migración v4.0.
Stock por sucursal
- Tabla
inventory_stock (inventory_id, branch_id, stock, location). - Trigger
trg_update_inventory_stockeninventory_operationsmantieneinventory_stocksincronizado automáticamente. inventory_stock_summarysigue existiendo como stock total agregado (sinbranch_id).
Datos fiscales por sucursal
- Tabla
branchesincluye:rfc,razon_social,regimen_fiscal,codigo_postal,serie_cfdi,folio_inicial,licencia_fiscal,certificado_pem,llave_pem,is_main. - Solo una sucursal puede ser
is_main = true. - Al facturar,
_get_issuer_config(cur, branch_id)usa datos de la sucursal de la venta; fallback a config global del tenant.
Endpoints
Config
GET /pos/api/config/branches— lista sucursales (sin PEM)GET /pos/api/config/branches/<id>— detalle completo (con PEM)POST /pos/api/config/branches— crearPUT /pos/api/config/branches/<id>— editar
Inventario
GET /pos/api/inventory/items— acepta?branch_id=para mostrar stock por sucursal- Stock se lee de
inventory_stockcuando se filtra por sucursal
POS
- Ventas verifican stock vía
get_stock(conn, inventory_id, branch_id) inventory_operationsregistrabranch_idde la venta
Migración
cd /home/Autopartes/pos
python3 migrations/runner.py
Archivo: pos/migrations/v4.0_multi_branch.sql