FASE 4-5-6: Infraestructura, CRM, Service Orders, Notificaciones, Ahorro, Logistica, API Publica

FASE 4:
- Redis cache de stock con fallback graceful
- Multi-moneda (MXN/USD) con contabilidad en MXN
- Proveedores y ordenes de compra completo
- Meilisearch 1.5M+ partes indexadas
- Metabase KPIs con dashboard auto-generado

FASE 5:
- CRM mejorado: activities, tags, loyalty program, analytics
- Imagenes de partes: upload, resize, thumbnails WebP
- Ordenes de servicio Kanban: received->diagnosis->repair->ready->delivered
- Garantias/RMA, alertas de reorden, multi-sucursal
- Stubs BNPL (APLAZO) y ERP Sync (Aspel/Contpaqi)

FASE 6:
- Notificaciones automaticas: push/WhatsApp/email/in-app
- Reportes de ahorro vs retail_price
- Logistica + tracking: DHL, FedEx, Estafeta, 99min, Uber
- API Publica: API keys, rate limiting, catalog search

Migraciones: v1.9-v3.0
Tests: 93/93 pasando
Backup: nexus_backup_20260427_045859.tar.gz
This commit is contained in:
Nexus Dev
2026-04-27 05:23:30 +00:00
parent b70cb3042b
commit 9ff3dc4c8b
71 changed files with 10939 additions and 420 deletions

19
pos/tests/debug_notif.py Normal file
View File

@@ -0,0 +1,19 @@
import os, sys
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
from tenant_db import get_tenant_conn_by_dbname
from services.notification_engine import create_template, dispatch_notification
conn = get_tenant_conn_by_dbname("tenant_refaccionaria_demo")
conn.rollback()
try:
tid = create_template(conn, 1, "test_event2", "push", "Test", "Hello {name}")
print("Template created:", tid)
log_ids = dispatch_notification(conn, 1, "test_event2", {"name": "World"}, recipient_type="owner")
print("Dispatched:", log_ids)
except Exception as e:
conn.rollback()
print("ERROR:", e)
import traceback
traceback.print_exc()
finally:
conn.close()