Contracts (/admin/contracts) sigue el contrato como entidad propia (no es un Project) desde que se recibe hasta que se firma. El tablero tiene tres columnas — New, Working, Waiting Sign — y History para los completados.
Permisos: FunctionId CONTRACT (54), menú Project Onboarding → Contracts (function.url = contract). View abre el tablero; Add es New; Edit guarda el formulario y el catálogo Tasks; Delete borra el contrato.
Disposición de la pantalla
Figura: tres columnas New / Working / Waiting Sign, badge High Priority, días pendientes y avance de tareas; tabla History debajo; Tasks y New en el encabezado.
| Región | Qué ves |
|---|---|
| Encabezado | Título Contracts, Tasks (Edit), New (Add), ?. New ofrece From Estimate o Manual. |
| Tablero | Las tarjetas no se arrastran — el Status se cambia en el formulario. High Priority, días pendientes (hoy − fecha de recepción; congelados al completar) y Progress de tareas. |
| History | Filas completadas. Columnas Name, Project #, C&G #, Company, Date received, Completed. Orden por defecto Completed descendente. Search / Export / paginación. |
| Modal | Superficie B (?create=1 / ?edit=\{id\}). From Estimate precarga la empresa (awarded si existe) y los pay items de la quote aceptada. Si hay varias quotes hay que elegir una (Select the quote that was accepted.). El contacto debe pertenecer a la empresa. |
Catálogo Tasks
Tasks edita el checklist compartido (nombre + pasos separados por comas). Si los pasos van vacíos, el default es Sent, Received. Un paso ya marcado en un contrato no se puede quitar. Un tipo ya usado no se borra: se pasa a Inactive. Las tareas N/A no cuentan en el avance.
Toast de éxito: The operation was successful.