panels-origin/api
Alberto Martinez 90bcd48f95 Facturas, nómina, dispersión e IMSS (#28)
<!-- CURSOR_AGENT_PR_BODY_BEGIN -->
## Resumen

Implementa las observaciones de facturas, nómina e IMSS sobre el catálogo de proveedores y la nómina semanal que ya existían.

## Qué queda disponible

- Proveedores: régimen fiscal, código postal, estatus activo/inactivo y filtro por nombre o RFC.
- Facturas recibidas y emitidas: Excel, UUID, revisión si el RFC no está en el catálogo, clasificación a obra/concepto y gasto `source = invoice` solo para la recibida clasificada.
- Nómina: bono, descuento con observación, horas y día festivo dentro del armado semanal. La semana pagada no acepta cambios.
- Préstamos: edición (libre sin pagos; con pagos solo nota y cuota) y estado de cuenta con saldo = entregado + comisión − pagos.
- Finiquitos y liquidaciones: conceptos, neto descontando descuentos vigentes y saldo de préstamo, y gasto al pagar.
- Dispersión: corte semanal, corrección antes de definitiva y comprobante.
- Historial de alta, baja y reingreso en la ficha, más movimientos IMSS.
- Reporte por periodo en Excel y PDF.
- Jornal IMSS distinto del jornal real y consulta de cuotas exportable a Excel.

## Verificación

`deno check` de la API pasó. En este entorno no hay Postgres, así que `api/pendientes_test.ts` queda listo para correr cuando la base tenga las migraciones 042–050 y el permiso IAM 007.

<!-- CURSOR_AGENT_PR_BODY_END -->

<div><a href="https://cursor.com/agents/bc-5e23dc3b-921e-4091-9650-7091d3a52bbf?cursor_ref=pr_footer&cursor_cta=open_in_web"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/open-in-web-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/open-in-web-light.png"><img alt="Open in Web" width="114" height="28" src="https://cursor.com/assets/images/open-in-web-dark.png"></picture></a>&nbsp;<a href="https://cursor.com/background-agent?bcId=bc-5e23dc3b-921e-4091-9650-7091d3a52bbf&cursor_ref=pr_footer&cursor_cta=open_in_cursor"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/open-in-cursor-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/open-in-cursor-light.png"><img alt="Open in Cursor" width="131" height="28" src="https://cursor.com/assets/images/open-in-cursor-dark.png"></picture></a>&nbsp;</div>
2026-09-25 03:26:30 +00:00
..
assets/email Agregando diseño de correo 2026-08-21 20:02:27 -05:00
scripts Implement client IAM v2: roles per tenant, CRUD matrix, scope, and panel UI 2026-09-08 18:16:59 +00:00
auth.ts Implement client IAM v2: roles per tenant, CRUD matrix, scope, and panel UI 2026-09-08 18:16:59 +00:00
budget.ts fix: mensajes claros al subir presupuesto que no es Excel 2026-09-08 19:34:57 +00:00
budget_test.ts fix: mensajes claros al subir presupuesto que no es Excel 2026-09-08 19:34:57 +00:00
cache.ts api: migrar todo el backend de SQLite a Postgres + Redis (fase 2-4e) 2026-09-02 20:47:45 +00:00
companies.ts refactor(core): migrate core CRUD to PostgreSQL RPC + unified HTTP errors 2026-09-04 02:34:43 +00:00
companies_test.ts first commit 2026-08-21 16:55:01 -05:00
config.ts api: ping R2 con ListObjects, no HeadBucket 2026-09-03 05:42:13 +00:00
cost_control_http.ts Implement client IAM v2: roles per tenant, CRUD matrix, scope, and panel UI 2026-09-08 18:16:59 +00:00
cost_modules_test.ts feat: almacén global, abrir/cerrar por obra y catálogo de materiales 2026-09-08 20:41:18 +00:00
crypto.ts api: migrar todo el backend de SQLite a Postgres + Redis (fase 2-4e) 2026-09-02 20:47:45 +00:00
db.ts refactor(core): migrate core CRUD to PostgreSQL RPC + unified HTTP errors 2026-09-04 02:34:43 +00:00
deno.json api: --allow-sys para el SDK de AWS/R2 en Deno 2026-09-03 05:49:14 +00:00
deno.lock db/infra: ETL de datos, backups y limpieza de despliegue (fase 5-7) 2026-09-02 21:05:07 +00:00
docs_crypto.ts api: migrar todo el backend de SQLite a Postgres + Redis (fase 2-4e) 2026-09-02 20:47:45 +00:00
document_rpc.ts fix: abrir documentos de proyecto enviando doc_id a la RPC 2026-09-08 19:27:24 +00:00
document_rpc_test.ts fix: abrir documentos de proyecto enviando doc_id a la RPC 2026-09-08 19:27:24 +00:00
document_serve.ts fix(padron): vista previa de documentos, eliminar y reemplazar por tipo (#26) 2026-09-16 21:17:39 +00:00
document_serve_test.ts fix(padron): vista previa de documentos, eliminar y reemplazar por tipo (#26) 2026-09-16 21:17:39 +00:00
document_validity.ts fix: subir documentos sin fecha de emisión ni vencimiento 2026-09-08 20:47:16 +00:00
document_validity_test.ts fix: subir documentos sin fecha de emisión ni vencimiento 2026-09-08 20:47:16 +00:00
email_assets.ts Agregando diseño de correo 2026-08-21 20:02:27 -05:00
excel.ts fix(padron): vista previa de documentos, eliminar y reemplazar por tipo (#26) 2026-09-16 21:17:39 +00:00
expense_catalogs_http.ts Facturas, nómina, dispersión e IMSS (#28) 2026-09-25 03:26:30 +00:00
expenses_http.ts Implement client IAM v2: roles per tenant, CRUD matrix, scope, and panel UI 2026-09-08 18:16:59 +00:00
expenses_test.ts Gastos, almacén y control presupuestal 2026-09-04 04:29:02 +00:00
http_errors.ts refactor(core): migrate core CRUD to PostgreSQL RPC + unified HTTP errors 2026-09-04 02:34:43 +00:00
http_errors_test.ts refactor(core): migrate core CRUD to PostgreSQL RPC + unified HTTP errors 2026-09-04 02:34:43 +00:00
iam_catalog.ts Facturas, nómina, dispersión e IMSS (#28) 2026-09-25 03:26:30 +00:00
iam_db.ts Implement client IAM v2: roles per tenant, CRUD matrix, scope, and panel UI 2026-09-08 18:16:59 +00:00
iam_http.ts Implement client IAM v2: roles per tenant, CRUD matrix, scope, and panel UI 2026-09-08 18:16:59 +00:00
iam_test.ts Implement client IAM v2: roles per tenant, CRUD matrix, scope, and panel UI 2026-09-08 18:16:59 +00:00
invoices_http.ts Facturas, nómina, dispersión e IMSS (#28) 2026-09-25 03:26:30 +00:00
mail.ts api: migrar todo el backend de SQLite a Postgres + Redis (fase 2-4e) 2026-09-02 20:47:45 +00:00
main.ts Facturas, nómina, dispersión e IMSS (#28) 2026-09-25 03:26:30 +00:00
mx.ts api: migrar todo el backend de SQLite a Postgres + Redis (fase 2-4e) 2026-09-02 20:47:45 +00:00
mx_test.ts first commit 2026-08-21 16:55:01 -05:00
payroll.ts fix: filtrar asistencia del paquete de nómina por tenant 2026-09-08 20:59:27 +00:00
payroll_http.ts Facturas, nómina, dispersión e IMSS (#28) 2026-09-25 03:26:30 +00:00
payroll_test.ts fix: devolver días L–S y celdas de asistencia en el paquete de nómina 2026-09-08 20:58:41 +00:00
pdf.ts fix: gafete usa la empresa del tenant y corrige fn_badge_job_get 2026-09-08 20:52:35 +00:00
pendientes_test.ts Facturas, nómina, dispersión e IMSS (#28) 2026-09-25 03:26:30 +00:00
permissions.ts Implement client IAM v2: roles per tenant, CRUD matrix, scope, and panel UI 2026-09-08 18:16:59 +00:00
pg.ts api: migrar todo el backend de SQLite a Postgres + Redis (fase 2-4e) 2026-09-02 20:47:45 +00:00
platform_db.ts api: migrar todo el backend de SQLite a Postgres + Redis (fase 2-4e) 2026-09-02 20:47:45 +00:00
redis.ts api: migrar todo el backend de SQLite a Postgres + Redis (fase 2-4e) 2026-09-02 20:47:45 +00:00
rpc.ts refactor(core): migrate core CRUD to PostgreSQL RPC + unified HTTP errors 2026-09-04 02:34:43 +00:00
saas.ts Implement client IAM v2: roles per tenant, CRUD matrix, scope, and panel UI 2026-09-08 18:16:59 +00:00
scope.ts api: migrar todo el backend de SQLite a Postgres + Redis (fase 2-4e) 2026-09-02 20:47:45 +00:00
scope_enforcement.ts Implement client IAM v2: roles per tenant, CRUD matrix, scope, and panel UI 2026-09-08 18:16:59 +00:00
seed_lista.ts api: migrar todo el backend de SQLite a Postgres + Redis (fase 2-4e) 2026-09-02 20:47:45 +00:00
sessions.ts api: migrar todo el backend de SQLite a Postgres + Redis (fase 2-4e) 2026-09-02 20:47:45 +00:00
smtp.ts api: migrar todo el backend de SQLite a Postgres + Redis (fase 2-4e) 2026-09-02 20:47:45 +00:00
storage.ts Facturas, nómina, dispersión e IMSS (#28) 2026-09-25 03:26:30 +00:00
test_helpers.ts api: migrar todo el backend de SQLite a Postgres + Redis (fase 2-4e) 2026-09-02 20:47:45 +00:00
user_scope.ts Implement client IAM v2: roles per tenant, CRUD matrix, scope, and panel UI 2026-09-08 18:16:59 +00:00
warehouse_http.ts feat: almacén global, abrir/cerrar por obra y catálogo de materiales 2026-09-08 20:41:18 +00:00
work_program.ts feat: Programa de obra por proyecto 2026-09-08 04:51:09 +00:00
work_program_excel.ts feat: Programa de obra por proyecto 2026-09-08 04:51:09 +00:00
work_program_excel_test.ts fix: mostrar preview del programa de obra al importar Excel 2026-09-08 19:44:35 +00:00
work_program_http.ts fix: mostrar preview del programa de obra al importar Excel 2026-09-08 19:44:35 +00:00