← Proyectos
Sistema de Cartera Empresarial
DPJD / Mensulí S.A.S.
Único desarrollador full stack — diseño, backend, frontend y despliegue
Sistema multiempresa de cuentas por cobrar y cobranza construido desde cero: SAP Business One como fuente de lectura, MySQL operativo, Vue 3 en el cliente y Laravel en producción.
Vue 3Arctic Finance UI
Laravel 11API + Sanctum
MySQLOperación
SAP B1SQL Server RO
Problema
Operar cobranza en 5 agencias con 5 analistas, dos empresas (PASTOR / MENSULI) y datos vivos de SAP, sin mezclar facturas ni detener la operación durante la migración de arquitectura.
Enfoque
Arquitectura multi-compañía con guards de pago cruzados, asignación ponderada WRR, OCR de comprobantes, pasarela Wompi/PSE y autenticación con roles. Migración Node.js/Express → Laravel en producción sin frenar el desarrollo.
Resultado
- Multiempresa PASTOR / MENSULI con aislamiento de pagos
- Asignación WRR para 5 analistas en 5 agencias
- Dashboards estabilizados sobre +19.000 registros
- Remediación de vulnerabilidades reales en producción
Capacidades
- Migración Node.js/Express → Laravel 11 en producción
- Integración SAP Business One (SQL Server, solo lectura) + MySQL operativo
- OCR de comprobantes bancarios (Tesseract, español)
- Weighted Round-Robin con capacidad reducida a fin de mes — ROW_NUMBER() OVER()
- Arqueo de caja y descuento por pronto pago (sync pesos/%)
- Wompi/PSE: firma, webhooks e idempotencia
- RBAC con Spatie Permissions + Laravel Sanctum
- Roles: admin, supervisor, cobrador, cobrador-vendedor
Arquitectura
Vue 3 + Vite — paneles admin / supervisión / cobranzaLaravel 11 (PHP 8.3) — API y reglas de negocioMySQL 8 — base operativaSQL Server — SAP Business One (read-only)Sanctum + Spatie PermissionsVue 3Laravel 11PHP 8.3MySQLSQL ServerSAP B1WompiTesseract
Detalle técnico
SELECT analyst_id, invoice_id
FROM (
SELECT *,
ROW_NUMBER() OVER (
PARTITION BY agency_id
ORDER BY weight DESC, critical_days DESC
) AS rn
FROM portfolio_queue
) q
WHERE rn <= capacity_for_week;