| Urg. | Shipment ID | Fecha ↕ | Trans | Empresa | Cliente | Operador ↕ | Status ↕ | Fechas |
|---|---|---|---|---|---|---|---|---|
Cargando... | ||||||||
| Urg. | Shipment ID | Fecha ↕ | Trans | Empresa | Cliente | Operador ↕ | Status ↕ | Fechas |
|---|---|---|---|---|---|---|---|---|
Cargando... | ||||||||
El dashboard que la operación tiene abierto todo el día. Cruza cada embarque contra sus facturas por cobrar y por pagar, y ordena el trabajo por lo que ya se pasó del objetivo de cierre.
Antes de esto, saber qué embarques estaban atorados era abrir CargoWise embarque por embarque. El dashboard contesta cuatro preguntas que se hacían todos los días a mano:
También se escribe desde aquí: cada embarque acepta notas con autor e historial, y hay un interruptor que congela el conteo de la zona de riesgo durante el cierre de mes — se apaga solo al llegar el día 1, para que nadie tenga que acordarse.
El dashboard consume cuatro webhooks de lectura — embarques, cuentas por cobrar,
cuentas por pagar y reservas de transporte — y dos de escritura, para las notas y
para la pausa de facturación. El cruce entre facturas y embarques se arma en el
navegador con un Map por número de job, no en SQL: mantiene el
contrato del webhook plano y estable para todos los dashboards que lo consumen.
Hay un enriquecimiento que no es cosmético: cuando el movimiento se hace por reserva de transporte, CargoWise deja vacías las fechas reales del embarque. El dashboard las completa desde la reserva ligada, y sin eso un terrestre ya entregado aparecía como «sin entrega».
La fecha de entrega comprometida viene vacía en el 100% de la tabla: en el ERP simplemente no existe. Por eso el objetivo se mide contra la entrega real más seis días y no contra una promesa inventada.
false revierte al comportamiento anterior sin tocar nada más.build.py los ensambla en un HTML autocontenido que se sube al portal
interno.
Es el mismo archivo que corre en producción: no se tocó una línea de
lógica. Lo único que cambia es de dónde salen los datos — se
intercepta fetch y se responde lo que contestaría el webhook, con un
generador determinista. Los filtros, los cálculos y los estados de carga son los de
verdad; el generador reproduce a propósito hasta las rarezas del feed real.
Lo descrito aquí es el sistema real en producción. Esta página es una réplica para portafolio: misma interfaz y misma lógica, con la capa de datos sustituida por un generador de datos inventados. No contiene datos de clientes, credenciales ni direcciones internas. · Volver al portafolio