Pagos (/admin/payments) no es una pantalla de alta. Cada fila es una factura existente. Registrás lo pagado del período, podés marcar la factura como pagada y guardar notas. Permisos: FunctionId PAYMENT (33). View abre el listado y el wizard de solo lectura. Edit muestra Guardar, Marcar pagado, notas de ítem, reembolso de retención y adjuntos. Abierto/Cerrado de la factura es el toggle de Estado del listado, no un banner dentro del wizard. Add hace falta para crear notas de cabecera. Delete quita notas y adjuntos.
Diseño de la pantalla
Figura: listado FoodHub — título Pagos, subtítulo Gestionar pagos, ? de ayuda; tarjeta con Buscar pagos…, Filtro, Cerrado, Abierto, Export; columnas Número, Empresa, N.º de job, Proyecto, Desde, Hasta, Monto, Monto pagado, Notas, Creado, Estado, Acciones.
| Región | Qué ves |
|---|---|
| Barra de página | Título Pagos, subtítulo Gestionar pagos y el ? (este artículo). No hay New. |
| Tarjeta de datos | Búsqueda, Filtro, Cerrado / Abierto, Export de la página actual, columnas ordenables, montos en formato US, estado Cerrado/Abierto, paginación (30 por defecto). |
| Puerta vacía | Icono de filtro y Aplicá un filtro para ver los pagos hasta que uses Cerrado, Abierto, Aplicar del filtro o Buscar. |
| Wizard de pago | Superficie B en la URL del listado (?invoice_id= / ?view=) — pills Pagos, Notas, Adjuntos. |
Orden por defecto: Desde descendente. El filtro de fechas usa el período de la factura (start ≥ Desde y end ≤ Hasta), no Created At.
Columnas
| Columna | Significado |
|---|---|
| Número | Número de factura. |
| Empresa | Empresa del proyecto. |
| N.º de job | Número de proyecto. Enlace al wizard de Projects si hay permiso View. |
| Proyecto | Descripción/nombre. Mismo enlace. |
| Desde / Hasta | Período de la factura (m/d/Y). |
| Monto | Final Amount This Period. Formato US $1,234.00. |
| Monto pagado | Suma de Paid Amt de las líneas. |
| Notas | Notas recortadas. |
| Creado | Fecha de alta (m/d/Y). |
| Estado | Cerrado si está pagada, Abierto si no. Pegado a Acciones. |
| Acciones | Facturas abiertas con Edit: ⋮ (Editar, Marcar pagado). Facturas pagadas (o solo View): icono circular Ver — una sola acción nunca va en ⋮. |
Filtros
Cerrado y Abierto son toggles (paid = 1 o paid = 0). Un clic los prende (verde / rojo relleno); otro clic en el mismo botón los apaga. Solo uno puede estar activo. Si apagás ambos y no hay otro filtro (Búsqueda / Filtro), vuelve la puerta vacía. El popover Filter tiene Empresa, Proyecto (después de Empresa), Estado y rango de fechas.
Invoices ⋮ Pagos abre este listado con ?invoice_id= y el wizard de esa factura.
Wizard
Las facturas pagadas abren las cantidades en solo lectura (igual que Symfony). El Abierto/Cerrado se cambia en la columna Estado del listado; el título del wizard ya muestra job, número y período.
| Pill | Qué hacés |
|---|---|
| Pagos | Paid Qty por línea. El Bond se calcula (Σ Paid Amt bonded / Σ Contract Amt bonded) y no se tipea. Marcar pagado paga todas las líneas y cierra la factura — no se deshace desde la app. El reembolso de retención es el $ del KPI de retención. Pay Amount (USD) registra un pago en dólares sin cambiar cantidades de ítems (retención/bond descontados, cierre opcional). Pago en USD al proyecto reparte el crédito a las facturas abiertas más antiguas. |
| Notas | Notas de cabecera (invoice_notes). Búsqueda, Filtro (Desde / Hasta), checkboxes para borrar varias, y Nueva abre Nueva nota (fecha de hoy, texto enriquecido). Editar y Eliminar van en el menú de fila. |
| Adjuntos | Los mismos archivos del wizard de facturas (uploads/invoice/). |
Paid Qty y Unpaid Qty usan 2 decimales (US 1,234.00). La Invoiced Qty de Bond y Bond Qty usan 5 decimales. Los ítems cerrados muestran el valor formateado; los abiertos, el input.
El icono de nota en Unpaid Qty abre Notas de ítems: Cant. impaga forzada (opcional), texto enriquecido, Agregar nota y una tabla Notas / Fecha / Cant. impaga forzada / Acciones (editar y eliminar). El icono se pone rojo si el ítem ya tiene notas. Un override actualiza Unpaid Qty sin tocar Paid Qty. El plus aparece cuando hay historial de cantidad impaga.
Los plus en el nombre, Contract Qty y Price abren el historial de Change Order / cantidad / precio, igual que en Invoices.
La cantidad impaga de la grilla es Cant. factura − Cant. pagada, salvo que una nota posterior la overridee. El Bond usa bon_quantity de la factura.