Panorama del flujo principal¶
Hardhat Flow organiza el trabajo en un ciclo lineal: se crea y aprueba un Bid, lo que genera automáticamente un Job, se ejecuta el trabajo y se completa, lo que lleva a la facturación y por último el pago cierra el ciclo.
Cada entidad — Bid, Job, Invoice — tiene su propio estado independiente. El Dashboard muestra los tres a la vez para que su equipo sepa en todo momento en qué punto está cada trabajo.
Ciclo completo de un vistazo¶
[Bid Created]
│
▼
[Bid Awaiting PO] ──── PM u Owner envían el Bid; en espera de orden de compra
│
▼
[Bid Approved] ──── Owner u Accounting ingresan número de PO y aprueban
│
▼ (automático)
[Job: Ready to Start]
│
▼
[Job: In Progress] ──── El PM avanza cuando comienza el trabajo
│
▼
[Job: Completed / Needs Invoice] ──── El PM marca como completo
│
▼
[Invoice Submitted] ──── Owner u Accounting crean el Invoice
│
▼
[Partially Paid] ──── Primer pago registrado, saldo > 0
│
▼
[Paid] ──── Saldo llega a cero
│
▼
[Workflow Complete] ──── Lo define el sistema automáticamente
Descripción paso a paso del ciclo¶
1. Creación del Bid¶
Un Project Manager u Owner crea un Bid con todos los detalles del proyecto: cliente, ubicación, alcance, precio y personal asignado. El Bid entra en estado New Bid.
2. Bid enviado para PO¶
Cuando el PM u Owner está listo para avanzar, lleva el Bid a Bid Awaiting PO, indicando que se espera una orden de compra del cliente antes de la aprobación final.
3. Aprobación del Bid¶
Cuando se recibe el número de PO, un Owner o usuario de Accounting lo ingresa y aprueba el Bid. El estado pasa a Bid Approved.
4. Creación automática del Job¶
En el momento en que se aprueba el Bid, el sistema crea automáticamente un Job vinculado. No hay paso manual. El Job hereda datos clave del Bid y comienza en Ready to Start.
5. Ejecución del Job¶
El PM avanza el Job a In Progress cuando comienza el trabajo de campo. Supervisors y Badge Workers registran actualizaciones y fotos. Al terminar, el PM lo marca Completed / Needs Invoice.
6. Creación del Invoice¶
Un Owner o usuario de Accounting crea el Invoice contra el Job completado. El número de Invoice se genera automáticamente y la tasa de impuesto proviene de la configuración de la empresa.
7. Registro de pagos¶
Los pagos se registran uno a uno contra el Invoice. Cada pago reduce el saldo pendiente. Si el saldo sigue por encima de cero, el Invoice pasa a Partially Paid. Cuando el saldo llega a cero, el sistema establece automáticamente Paid y luego Workflow Complete.
Tabla de transiciones de estado¶
Estados del Bid¶
| From Status | To Status | Quién puede dispararlo | Condiciones |
|---|---|---|---|
| New Bid | Bid Awaiting PO | PM, Owner | Ninguna |
| Bid Awaiting PO | Bid Approved | Owner, Accounting | Debe ingresarse el número de PO |
| Bid Approved | (auto) Job Created | Sistema | Se dispara automáticamente al aprobar |
| New Bid | Bid Rejected | Owner | Ninguna |
| Bid Awaiting PO | Bid Rejected | Owner | Ninguna |
| New Bid | Bid Cancelled | Owner | Ninguna |
| Bid Awaiting PO | Bid Cancelled | Owner | Ninguna |
| Bid Approved | Bid Cancelled | Owner | Solo si no ha comenzado trabajo del Job |
Estados del Job¶
| From Status | To Status | Quién puede dispararlo | Condiciones |
|---|---|---|---|
| (Bid Approved) | Ready to Start | Sistema | Creado automáticamente desde Bid aprobado |
| Ready to Start | In Progress | PM | Ninguna |
| In Progress | Completed / Needs Invoice | PM | Ninguna |
| Ready to Start | Job Cancelled | Owner | Ninguna |
| In Progress | Job Cancelled | Owner | Ninguna |
Estados del Invoice / pago¶
| From Status | To Status | Quién puede dispararlo | Condiciones |
|---|---|---|---|
| (Job Completed) | Invoice Submitted | Owner, Accounting | El Job debe estar en Completed / Needs Invoice |
| Invoice Submitted | Partially Paid | Owner, Accounting | Primer pago registrado, saldo > 0 |
| Partially Paid | Paid | Owner, Accounting | Pago registrado, saldo llega a 0 |
| Paid | Workflow Complete | Sistema | Se establece automáticamente cuando balance_due = 0 |
Dashboard y visibilidad de estados¶
No hay un solo estado unificado
El Dashboard muestra los estados de Bid, Job e Invoice por separado. No existe un único campo de “estado del proyecto”. Siempre puede ver de un vistazo dónde está cada entidad en su propio ciclo — por ejemplo, un Job puede estar In Progress mientras el Bid de origen permanece solo lectura en Bid Approved.
Banderas Blocked y Priority¶
Los Bids y Jobs admiten dos banderas operativas que funcionan en todo el flujo:
Bander Blocked¶
- Puede activarse en un Job por un PM u Owner.
- Indica que el trabajo no puede avanzar (materiales, acceso, inspección, etc.).
- Activar Blocked envía una notificación SMS al PM y al Owner.
- Quitar la bandera envía SMS al PM.
- Blocked no cambia el estado del Job — es un indicador adicional.
Bander Priority¶
- Puede activarse en un Bid o Job por un PM u Owner.
- Marca el trabajo como alta prioridad para programación y atención en campo.
- Activar Priority envía SMS al PM y al Supervisor.
- Es visible en listas del Dashboard para priorizar rápidamente.
Use estas banderas con libertad
Blocked y Priority son señales ligeras — actívelas y quítelas conforme cambien las condiciones en obra. No afectan las transiciones de estado ni bloquean registros.