Saltar a contenido

Bids

Disponible para: Owner, Project Manager, Accounting, Supervisor (solo lectura)

Un Bid es el punto de partida de todo trabajo en Hardhat Flow. Reúne el alcance completo, la logística y los detalles financieros de un proyecto propuesto antes de que comience cualquier trabajo de campo. Una vez aprobado el Bid, se crea automáticamente un Job — en ese momento el Bid pasa a solo lectura.


¿Qué es un Bid?

Un Bid representa una propuesta enviada a un cliente para un alcance de trabajo definido. Registra todo lo necesario para cotizar y planificar el Job: ubicación, personal, materiales, permisos, inspecciones y condiciones financieras.

Los Bids siguen un proceso de aprobación. Solo un Owner puede aprobar o rechazar un Bid. Un Project Manager crea y administra Bids en nombre de sus proyectos asignados.


Campos del Bid

Detalles del proyecto

Field Description
client Empresa o persona para quien se realiza el trabajo. Use + New Client en el formulario New Bid para crear un cliente en línea.
contact Punto de contacto del cliente para este Bid. Seleccione entre los contactos del cliente o use + New Contact para agregar uno en línea.
location Dirección física o descripción del sitio del trabajo.
pm Project Manager asignado a este Bid.
supervisor Supervisor de campo responsable de la ejecución.
scope Descripción en texto libre del trabajo a realizar.
measurements Dimensiones, cantidades u otras notas de metrado relevantes.
expected_completion_date Fecha estimada de terminación del trabajo.

Logística

Field Description
shift_type Si el trabajo es turno day o night.
escort_name Nombre del acompañante (si se requiere para acceso al sitio).
equipment_needed Descripción del equipo necesario para realizar el trabajo.
materials_status Estado actual del abastecimiento de materiales. Uno de: None, Needed, Ordered, Shipped, Delivered.
permits_needed Booleano — si se requieren permisos para este trabajo.
inspections_status Estado de inspección actual. Uno de: None, Needed, Requested, Pass, Fail.
po_number Número de orden de compra del cliente, requerido antes de aprobar el Bid en la mayoría de los flujos.

Finanzas

Field Description
bid_price Precio total cotizado al cliente por el trabajo.
taxable Booleano — si este Bid está sujeto a impuesto sobre ventas. La tasa proviene de CompanySettings.

Banderas

Field Description
priority Booleano — marca el Bid como alta prioridad. Dispara SMS al PM y al Supervisor. Destacado en el feed del Dashboard.
blocked Booleano — indica que el Bid no puede avanzar por un problema sin resolver.
blocked_reason Texto explicando por qué el Bid está bloqueado. Obligatorio cuando blocked es true.

Máquina de estados

Status Description Who Can Set
New Bid Estado predeterminado al crear. El Bid está en borrador. Sistema (al crear)
Bid Awaiting PO Bid completo y en espera de la orden de compra del cliente. Project Manager
Bid Approved Bid aceptado. Se crea un Job automáticamente. Owner
Bid Rejected Bid rechazado. No se crea Job. Owner
Bid Cancelled Bid retirado antes de una decisión. Owner
New Bid → Bid Awaiting PO → Bid Approved (creates Job)
                          ↘ Bid Rejected
          Bid Cancelled (from any pre-approved state, Owner only)

Los Bids aprobados son solo lectura

Una vez que un Bid alcanza Bid Approved, el registro queda bloqueado. Todo el trabajo posterior ocurre en el Job asociado. Para hacer cambios, debe cancelarse el Job y crearse un Bid nuevo.


La bandera Blocked

Poner blocked = true en un Bid indica que algo impide el avance — permiso faltante, pregunta del cliente sin resolver o retraso de materiales.

  • Debe proporcionarse blocked_reason al bloquear.
  • Los Bids bloqueados aparecen como alertas en el feed del Dashboard para el PM y el Owner asignados.
  • Al desbloquear un Bid se limpia la alerta.

La bandera Priority

Poner priority = true marca un Bid como urgente.

  • Se envía SMS de inmediato al PM y al Supervisor asignados.
  • Los Bids prioritarios aparecen arriba en el panel de alertas del Dashboard.
  • El PM u Owner pueden alternar la bandera en cualquier momento antes de la aprobación.

Generación de PDF

Puede generarse un PDF imprimible del Bid en cualquier momento.

  • Renderizado con WeasyPrint desde una plantilla del servidor.
  • Incluye detalles del proyecto, finanzas, campos logísticos y estado actual.
  • Disponible para Owner, PM y Accounting.
  • El PDF refleja el estado del Bid en el momento de generarlo. No se almacena — se genera bajo demanda.

Use la exportación a PDF al compartir detalles del Bid con clientes o para archivo fuera del sistema.


Bloqueo de solo lectura tras crear el Job

Cuando un Bid pasa a Bid Approved, el sistema crea un registro de Job vinculado por bid_id. A partir de ahí:

  • El registro del Bid no puede editarlo ningún usuario, incluido el Owner.
  • El Bid es la fuente de verdad de los detalles del proyecto en el Job asociado.
  • Todas las actualizaciones operativas se hacen en el Job, no en el Bid.

Acceso por rol

Action Owner PM Accounting Supervisor Badge Worker
Create bid Yes Yes No No No
Edit bid (pre-approval) Yes Yes (own) No No No
View bid Yes Yes Yes Yes (assigned) No
Submit for PO Yes Yes No No No
Approve bid Yes No No No No
Reject bid Yes No No No No
Cancel bid Yes No No No No
Set priority flag Yes Yes No No No
Set blocked flag Yes Yes No No No
Generate PDF Yes Yes Yes No No

Los Supervisors pueden ver Bids a los que están asignados, pero no pueden editar ningún campo del Bid.