feat(rh/citatorios): un evento por audiencia y por pago en Google Calendar,...
feat(rh/citatorios): un evento por audiencia y por pago en Google Calendar, calculadora homologada a la hoja del área, botón Eliminar y correcciones de la revisión pre-QA
Google Calendar de RL (observaciones del área 2026-09-21):
- Cada audiencia tiene su propio evento ("1ª/2ª audiencia conciliatoria · actor"). Al diferir, el evento de la 1ª se queda en su fecha re-titulado "(diferida al …)" y sin recordatorios (calendar_estado=diferida); la 2ª nace con evento nuevo.
- Cada exhibición del plan de pago del convenio genera un recordatorio de día completo ("Pago N de T del convenio · $monto · actor"); al registrar el pago se re-titula "Pagado ·" y deja de avisar; al eliminarlo vuelve a pendiente. Tabla citatorios_exhibiciones con calendar_event_id/html_link/estado (DDL idempotente en database_rh.py). Reintento por exhibición.
- "Editar datos" corrige EN SILENCIO (sendUpdates=none) los eventos ya creados cuando cambia nombre, expediente/sede, unidad de negocio, patrón o autorizado; excluye audiencias diferidas y las 'movido' del flujo viejo (comparten evento con su 2ª). Rastro en historial (campo=calendar).
- marcar_audiencia_diferida guarda el id nuevo si Google recreó el evento.
Pedidos del área 2026-09-22:
- La tabla del primer correo al despacho ya no lleva la fila EXPEDIENTE (backend y copia al portapapeles).
- Calculadora del autorizado homologada a la hoja "CALCULADORA" de RL: vacaciones anteriores (+ prima 25 %), vacaciones del año = (baja − último aniversario + 1) × derecho ÷ 365 × SD (derecho de la tabla del art. 76, corregible), aguinaldo, GRATIFICACIÓN de 45 días fijos (editable) en lugar de la indemnización con casilla de despido, prima de antigüedad / 20 días por año / otros conceptos como importes a mano, devengados. Desgloses viejos se siguen leyendo; al reeditar no se hereda dias_indemnizacion.
- Botón "Eliminar" en la ficha (borrado lógico, activo=false, confirmación en ventana, regresa a la mesa de Asuntos). Distinto de "Archivado".
- Los campos de fecha aceptan tecleo con máscara DD/MM/AAAA (DatePickerField compartido), además del calendario.
Revisión multi-agente pre-QA (misma fecha), corregido:
- PUT /registros/{id} valida montos (≥ 0, salario > 0), fechas ISO y baja > ingreso; DataError → 422 en vez de 500.
- Detección de cambios normalizada (95000 == 95000.0): sin cambios fantasma en el historial ni resincronizaciones sin motivo.
- Vacaciones con tope 1.0 en bisiesto; importes de la calculadora con le=1e9.
- Los modales de Alta y Editar no se cierran con Escape/clic fuera mientras guardan.
Docs: CONTENCIOSO_CITATORIOS.md (Calendar, cambios del día, revisión) y manual de usuario v1.1 (HTML + PDF regenerado con Inter): calculadora, tabla al despacho, Editar datos / Eliminar, corrección silenciosa, "Archivar no es eliminar", fechas tecleadas, y el flujo dice "Posible demanda" en lugar de "En juicio" tras la no conciliación.