Projects (/admin/projects) es el inventario de obras. Usá búsqueda, filtros y export en el listado; New (permiso Add) abre el wizard modal en esta página; desde Companies podés crear un proyecto en modal sin salir del wizard de empresa.
Permisos: FunctionId PROJECT (9), menú Project Management → Projects (function.url = projects). View abre el listado; Add controla New; Edit abre el wizard; Delete controla borrado en fila y bulk.
Pantalla
| Región | Contenido |
|---|---|
| Toolbar | Título Projects, subtítulo, New a la derecha (Add), icono ?. El ⋮ incluye View (wizard de solo lectura, legado detalle) más Edit/Delete según permiso. |
| Tarjeta de datos | Search, chips de status NS / IP / CO / CA (conteos siempre sin filtro; clic para agregar o quitar), Filter (Company, status múltiple, rango de fechas, Missing info, Retainage, Escalator, Prevailing Wage), Export (Copy / Excel / CSV de la página actual, más Custom Excel export...), checkboxes, bulk Delete, cards mobile, paginación. La columna Status usa los mismos círculos de color. |
Excel a la carta
Custom Excel export... (en español, Exportar Excel a la carta...) en el menú Export abre un modal. C&G Project # va siempre. Marcá tabs y campos, Seleccionar todo / Quitar todo y Exportar. Si hay filas tildadas, salen solo esos proyectos (una fila de Excel cada uno). Si no hay selección, salen todos los que coincidan con los filtros, todas las páginas. La última selección de campos se recuerda en este navegador. Los encabezados del Excel quedan en inglés, igual que en el origen. Un overlay a pantalla completa muestra Generando Excel… y después Preparando la descarga… — el botón Export de la tabla no pasa a Exporting….
Figura: Excel a la carta — Seleccionar todo / Quitar todo, tabs con campos, C&G Project # fijo.
| Wizard | Modal sobre /admin/projects (?create=1, ?edit=\{id\}, ?view=\{id\}). New muestra siete pills hasta guardar el proyecto; Edit y View muestran las 13. New Project desde una empresa se queda en siete. |
Orden por defecto: C & G Project # ascendente.
Vacío: No projects found.
Wizard
Después de Save en General se habilitan el resto de pestañas. Next y el clic en un paso guardan el proyecto en silencio y luego saltan; Back no guarda. El toast The operation was successful aparece solo al pulsar Save o Save and close. New / Edit / View quedan en el listado como modal (Surface B). New Project desde Company usa el mismo wizard apilado (solo siete pills). Edit y View muestran los trece pasos (Attachments hasta Log) cuando el job ya existe: riel vertical en desktop (abierto con labels en pantallas grandes, colapsado a números en las chicas; un camino une los círculos; el hover muestra labels si está colapsado; el botón circular del borde lo fija) y Step X of N más un combobox para saltar en el teléfono — las pills no se parten en dos filas.
| Paso | Qué hacés |
|---|---|
| General | Misma posición de campos que el form legado (sin círculos numerados). Fila 1: Company, Subcontract NO, Manager, Invoice Contact. Fila 2: Invoice Due Date, Date Contract Received (ayuda: fecha en que llegó el contrato firmado — no es la Start Date), Start Date, End Date (icono de ayuda — required), Est. Gross Margin. Fila 3: Project Name, Owner, Project ID #, Proposal ID #. Fila 4: County, City, Inspector, Federal Funding, Certified payrolls. Fila 5: C&G Project #, Project Description, Status (default In Progress), Resurfacing. Luego Contract Stipulations (Add después de guardar el proyecto — elegir una o más notas template, o + para crear una nueva en el catálogo) y Starting/Ending Location. Contract Amount aparece cuando el job ya existe (desde items). C & G # duplicado se rechaza. La ayuda de campo es el popover ?, no texto bajo el input. View muestra todas las pestañas en solo lectura, incluidas stipulations, items, retainage, escalator, prevailing wage, concrete, contacts, attachments, completion, payment overrides, data tracking, invoices y log. |
| Items | Tabla FoodHub anidada: Search, contadores Items/Total $ en el toolbar, Export, encabezados ordenables, paginación, Sort by en mobile. Checkboxes de fila y bulk Retainage / Remove Retainage / Bonded / Remove Bonded. Code y Actions sticky. El nombre muestra R (retainage), B rojo (bond de catálogo), B azul (bonded) y un plus de historial de change order. Quantity y Price muestran plus si hay historial; abren Change Order History (el mismo log de Data Tracking, Invoices y Payments). New va en el toolbar (solo Edit). Modal: Existing item o New item, Code, Contract name, yield (Select vacío por defecto), equation/unit con +, quantity, price y Profit % en fila, Price Start Date, tipo en botón (Regular / Change Order / Add-On), fecha de change order, nota interna. Is Retainage? e Is Bonded? debajo de su label. Totales US (1,234.00). View mantiene Search/Export/orden/paginación; sin New, checkboxes ni ⋮. |
| Retainage | Visible solo con el flag Retainage. Switch Yes/No debajo del label. Con Yes: Retainage Percentage, Adjust Retainage to, % of Contract Completion, e Invoices and Retainage History (Total Retainage Withheld más Invoice Date / Invoice Amt. / Inv. Ret. Amt. / Paid Amt / Actual Ret. Amt. / Actual Ret. T.D. / Ret. Reimbursed). Ret. Reimbursed es Yes si en Payments se guardó un reembolso de retención. Actual Ret. T.D. resta esos montos; el ícono de historial abre Historial de reembolsos (fecha y monto). |
| Escalator | Misma tabla FoodHub anidada (Search, Export, orden, paginación). Modal New Escalator: Day, Percent como input group %, e items opcionales (vacío = all items). Día duplicado se bloquea. El job HTTP GET /cron-price-adjustment aplica ese percent a los precios de items ese día (America/New_York) y deja una nota de sistema en el log. |
| Prevailing Wage | Switch Yes/No debajo del label. Certified payrolls en General abre el header WH-347. Tabla Counties & Labor Types & Rate (County, Labor Type, Basic $/Hr, Fringe $/Hr, Surplus). Aviso amarillo si Certified Payrolls está on y no hay rates. Modal County & Labor Type & Rate; Rate es input group $ (la columna de tabla sigue Basic $/Hr). |
| Concrete | Tabla anidada de vendors. Modal Concrete Vendor: combobox de vendor con + (catálogo, FunctionId CONCRETE_VENDOR Add), start date, Escalator $ más Repeat every / unit / e.g. every 6 months, y tabla anidada Concrete Classes / Prices. GET /cron-concrete-quote-price-adjustment suma el escalator por cada período vencido; el marcador evita reaplicarlo. |
| Contacts | Tabla de contactos (picker de company contact, name obligatorio, duplicado bloqueado) más Inspectors (Data Tracking) de solo lectura — inspectores con al menos un data tracking (Name, Email, Phone, Status). |
| Attachments | Archivos del job (Name, File). New abre un modal anidado: Name y zona para arrastrar archivos (Drop files here or click to upload.), Tags (elegir o crear) y Note con formato (no un textarea plano). Tipos: png, jpg, jpeg, pdf, doc, docx, xls, xlsx. Nombre duplicado: The attachment has already been added. Acciones de fila con iconos — Edit (lápiz, Update Attachment; el archivo es opcional), View (ojo, visor en la app con Download y Close), Delete (basura, confirma Are you sure you want to delete the attachment?). En View solo el ojo. PDF e imágenes se ven en el visor; Word/Excel usan Microsoft Office Online en URLs HTTPS públicas. |
| Completion | Por ítem: qty/price/total de contrato vs completed, invoiced y paid (formato US 1,234.00). El toolbar muestra cantidad de ítems y total de contrato. Dif. cant. se pone en rojo si es negativa. Si en Payments se sobreescribió la cant. impaga, un más abre Historial de cant. impaga (fecha, valor anterior/nuevo, usuario, factura). La diferencia también suma esos overrides posteriores al último Payment Override / Master. |
| Payment Overrides | Historial de overrides de paid qty (Item, Previous qty, New qty, User, Date). |
| Data Tracking | Filas diarias (Date, Lead, concrete used, yield, difference, totales). Toolbar: Search, Filter, Export y Abrir seguimiento de obra (abre /admin/data-tracking de este job). El popover Filter tiene Status (All / Pending / Completed), rango de fechas y ¿Mostrar solo la lista PUNCH?. El ojo View abre ese día en el módulo Data Tracking. No hay alta ni edición en este wizard. |
| Invoices | Facturas del job (Number con ★ si hay payment override en esas fechas, From, To, Amount, Notes, Paid, Created At). |
| Log | Notas de log (Date, Log, User). Toolbar: Search, Filter y Export (+ New). El popover Filter usa el mismo rango de fechas que Projects. Las filas manuales tienen Edit circular verde (lápiz); no ⋮ ni botón de texto Edit. Las de sistema quedan de solo lectura. Sin delete. Guardar una nota de log no muestra el toast global de éxito — ese toast es solo del Save del wizard. |
El delete del listado se bloquea si hay invoices: The project could not be deleted, because it is associated with a invoice.