Companies (/admin/companies) es el catálogo de organizaciones cliente que estimadores y equipos de proyecto usan en proyectos y estimados. Cada empresa guarda datos generales y una lista de contactos (personas). El listado resalta empresas que solo existen por importación de estimados o que ya están en un proyecto activo.
Permisos: FunctionId COMPANY (8), menú Estimating → Companies (function.url = company). View abre la pantalla; Add controla New; Edit controla Edit en fila, el wizard y guardar contactos; Delete controla borrado en fila y Delete masivo.
Vista general
Figura: grilla FoodHub — New en la barra de página (derecha); tarjeta con Search companies…, Export, checkboxes, columnas Name / Phone / Address, menú ⋮ y paginación.
| Región | Qué ves |
|---|---|
| Barra de página | Título Companies, subtítulo Client companies and their contacts for projects and estimates. (mismo copy EN que la UI), New (permiso Add) a la derecha y el icono ? (este artículo). |
| Tarjeta de datos | Búsqueda, Export, cabeceras, checkboxes (permiso Delete), barra masiva, cards en móvil, paginación. |
| Modal wizard | Superficie B en la URL del listado (?create=1 / ?edit=\{id\}) — Back / Next / Save / Cancel en cabecera; pills General · Contacts · Projects (Projects solo al editar una empresa existente). |
Orden por defecto: Name ascendente (columna legado description).
Listado
- Search — placeholder Search companies…; con debounce. La API filtra solo si el cuadro está vacío (todas las filas) o el término tiene al menos 3 caracteres (coincide con Name, Phone, Address, sin distinguir mayúsculas).
- Export — Copy, Excel y CSV de la página actual.
- Orden — Name, Phone, Address (móvil: combobox Sort by + toggle de dirección).
- Checkboxes + barra — con permiso Delete. Delete quita empresas sin vínculos bloqueantes. Sin selección:
Select item(s) to delete. - New — botón de la barra de página (derecha). Abre el wizard en General hasta el primer guardado exitoso (luego se habilita Contacts).
- ⋮ en fila — Edit · Delete según permisos.
Vacío: No companies found.
Badges en Name
Junto al nombre pueden aparecer badges (tooltips en la app):
| Badge | Significado |
|---|---|
| E | From estimates — fila originada en datos de estimado (from_estimates). |
| P | Linked to a project — al menos un proyecto referencia esta empresa. |
Puede mostrarse E, P, ambos o ninguno.
Wizard — General
Títulos del modal: New Company (alta) / Update Company: {name} (edición).
| Campo | Reglas |
|---|---|
| Name | Obligatorio. Único: The company name is in use, please try entering another one. |
| Phone | Opcional. Control US (bandera + número nacional), el mismo de Users. |
Opcional. Input group con icono de correo; placeholder company@example.com. | |
| Address | Opcional. Input group con pin y Google Places (dirección US). Elegir un resultado completa la dirección formateada; también se puede tipear. La empresa no guarda lat/lng. |
| Website | URL opcional. Input group con icono de enlace; placeholder https://. |
Campo obligatorio vacío: This field is required.
Toast de éxito (alta, edición, borrado): The operation was successful.
ApplicationLog registra Add, Update y Delete de empresas (categoría legado Company).
Flujo de alta
- New → completar General → Save.
- Tras el primer guardado, el wizard permanece abierto y Contacts queda disponible (legado: guardar empresa antes de contactos).
- Projects no aparece en alta; se ve al Edit posterior.
Wizard — Contacts
Tabla FoodHub anidada (mismo chrome que Projects): Search contacts…, Export (Copy / Excel / CSV), columnas ordenables, Sort by en mobile, tamaño de página persistido y paginación.
Columnas: Name, Email, Phone, Role, Notes, Actions.
- New — botón en el trailing del toolbar (permiso Add o Edit). Abre el modal New contact / Edit contact.
- Name del contacto es obligatorio (
This field is required). - ⋮ — Edit · Delete (confirmación Delete contact).
Sin contactos: No contacts found.
Los contactos viven en company_contact; borrar un contacto no elimina la empresa.
Wizard — Projects (solo edición)
Tabla FoodHub de solo lectura con proyectos vinculados (mismas columnas que la pestaña Projects de Locations: C & G Project #, County, Name, Description, Due Date, Status, Notes). Search projects…, orden, export y paginación son locales sobre el detalle de la empresa.
No crea proyectos — New Project queda defer hasta portar el módulo Projects. El botón View (ojo) navegará al detalle cuando exista la ruta.
Vacío: No projects found.
Reglas de borrado
Borrado simple bloqueado con:
The company could not be deleted, because it is related to a projectThe company could not be deleted, because it is related to an estimate
Borrado masivo:
- Si ninguna fila seleccionada se puede quitar:
The companies could not be deleted, because they are associated with a project - Éxito parcial:
The operation was successful. But attention, it was not possible to delete all the selected companies because they are associated with a project
Artículos relacionados
- Locations — condados/ciudades de proyectos.
- Estimate Note Items — biblioteca de notas de estimado (catálogo aparte).