Cancel Reasons (/admin/cancel-reasons) guarda por qué un día de obra programado no se pudo trabajar. Cada fila tiene Name, quién fue Responsible (Company, Customer o Third party), si es Chargeable por defecto y Status. Data Tracking usa estos motivos cuando una medición se marca Cancelled.
Permisos: FunctionId CANCEL_REASON (53), menú Scheduling → Cancel Reasons (function.url = cancel_reason). View abre la pantalla; Add controla New; Edit y Delete las acciones de fila y el borrado masivo.
Disposición de la pantalla
Figura: listado FoodHub — New en la cabecera; tarjeta con Search reasons…, Export, columnas ordenables Name, Responsibility, Chargeable y Status, ⋮ por fila, checkboxes y paginación.
| Región | Qué ves |
|---|---|
| Barra de página | Título Cancel Reasons, subtítulo Reasons a scheduled day could not be worked., New (Add) a la derecha e icono ? (este artículo). |
| Tarjeta de datos | Search, Export, cabeceras, checkboxes (permiso Delete), barra bulk, Sort by en móvil, paginación. |
| Modal | Superficie B en la URL del listado (?create=1) — Cancel y Save en la cabecera; Name, Responsibility, Chargeable by default, Status. |
Orden por defecto: Name ascendente.
Comportamiento del listado
- Search — placeholder Search reasons…; filtra Name (legado: se envía a partir de 3 caracteres).
- Export — Copy, Excel y CSV de la página actual.
- Orden — Name, Responsibility, Chargeable, Status (móvil: combobox Sort by).
- Checkboxes + barra bulk — con permiso Delete.
- New — abre el modal New Cancel Reason:.
- ⋮ por fila — Edit · Delete según permisos.
Etiquetas de Responsibility: Company, Customer, Third party. Chargeable es Yes / No. Status es Active / Inactive.
Modal — alta y edición
| Campo | Reglas |
|---|---|
| Name | Obligatorio. Nombre duplicado → The cancel reason name is in use, please try entering another one. |
| Responsibility | Combobox obligatorio. Vacío o valor desconocido → Select who is responsible. |
| Chargeable by default | Switch. Al elegir este motivo en Data Tracking, Charge the customer queda marcado (se puede cambiar en cada reporte). |
| Status | Active / Inactive. Preferí Inactive en lugar de borrar si el motivo ya se usó en un data tracking. |
Títulos: New Cancel Reason: (alta) / Update Cancel Reason: \{name\} (edición).
Toast de éxito: The operation was successful.
Borrado
Un motivo usado en un data tracking no se puede eliminar: The cancel reason could not be deleted, because it is used in a data tracking. Set it Inactive instead.
Bulk solo con filas en uso: The cancel reasons could not be deleted, because they are used in a data tracking. Set them Inactive instead. Bulk parcial: The operation was successful. But attention, it was not possible to delete all the selected reasons because they are used in a data tracking.