Backend: - Notificación email al admin cuando llega primer pago aprobado (sin factura auto) - Endpoints GET /pagos-sin-factura y POST /emitir-factura-pago para admin global - Fix vinculación org Facturapi Horux 360 (69f23a5a242e0af47a41fa0d) - Fix webhook MP: validación defensiva de x-signature header - Fix autocompleto RFCs: eliminado filtro por contribuyenteId - Fix autocompleto conceptos: eliminado filtro por contribuyenteId - SAT fixes: anti-bot CSF scraper, request reuse, date range fix, stale job thresholds - SAT sync request reuse across jobs para evitar agotar cuota diaria - Typo fix MP_ACCESS_TOKEN en .env - Trial invitations system backend Frontend: - Nueva página /admin/facturas-pendientes con tabla y emisión manual - Métrica 'Facturas pendientes' en /clientes (clickable) - Navegación onboarding FIEL/CSD corregida - Sidebar themes sincronizados - Fix SAT portal migration scraper (NetIQ) - Trial invitation acceptance pages
42 lines
2.0 KiB
Bash
42 lines
2.0 KiB
Bash
#!/bin/bash
|
|
# Script de monitoreo post-ciclo SAT 3:00 AM
|
|
set -euo pipefail
|
|
|
|
LOG_FILE="/root/.pm2/logs/horux-api-out-0.log"
|
|
ERROR_LOG="/root/.pm2/logs/horux-api-error-0.log"
|
|
REPORT_FILE="/tmp/sat_cron_report_$(date +%Y%m%d).txt"
|
|
|
|
echo "========================================" > "$REPORT_FILE"
|
|
echo "REPORTE DE EXTRACCION SAT 3:00 AM" >> "$REPORT_FILE"
|
|
echo "Fecha: $(date)" >> "$REPORT_FILE"
|
|
echo "========================================" >> "$REPORT_FILE"
|
|
echo "" >> "$REPORT_FILE"
|
|
|
|
# Buscar el ciclo de hoy (asumiendo que corre entre 07:50 y 08:10 UTC)
|
|
echo "--- ULTIMO CICLO SAT CRON ---" >> "$REPORT_FILE"
|
|
grep -n "\[SAT Cron\] Iniciando ciclo" "$LOG_FILE" | tail -5 >> "$REPORT_FILE"
|
|
echo "" >> "$REPORT_FILE"
|
|
|
|
# Errores específicos del ciclo
|
|
echo "--- ERRORES EN LOG DE ERRORES ---" >> "$REPORT_FILE"
|
|
grep -n "DateTimeParseError\|P2000\|Error.*SAT\|Error.*extraccion\|Error.*CFDI\|Error.*guardar" "$ERROR_LOG" | tail -20 >> "$REPORT_FILE" || echo "Sin errores específicos encontrados" >> "$REPORT_FILE"
|
|
echo "" >> "$REPORT_FILE"
|
|
|
|
# Resumen de tenants procesados
|
|
echo "--- RESUMEN DE PROCESAMIENTO ---" >> "$REPORT_FILE"
|
|
grep -n "Procesando tenant\|tenant procesado\|CFDIs insertados\|CFDIs omitidos\|Error procesando tenant" "$LOG_FILE" | tail -20 >> "$REPORT_FILE"
|
|
echo "" >> "$REPORT_FILE"
|
|
|
|
# Errores de parsing de fechas específicamente
|
|
echo "--- ERRORES DE FECHA (DateTimeParseError) ---" >> "$REPORT_FILE"
|
|
grep -n "DateTimeParseError\|Invalid value for argument\`fecha" "$ERROR_LOG" | tail -10 >> "$REPORT_FILE" || echo "Sin errores de fecha" >> "$REPORT_FILE"
|
|
echo "" >> "$REPORT_FILE"
|
|
|
|
# Verificar contribuyentes y CFDIs de Husberto (TOAH680201RA2)
|
|
echo "--- ESTADO HUSBERTO (TOAH680201RA2) ---" >> "$REPORT_FILE"
|
|
PGPASSWORD=ZxHMrmnwanvLfLDdNJdRthFjWF2Lj1Rb psql -h localhost -U postgres -d horux360 -t -c "SELECT COUNT(*) FROM cfdis WHERE contribuyente_id = '128c0ab0-b307-492b-bb82-7e55d390f41f';" >> "$REPORT_FILE"
|
|
echo "CFDIs asignados al contribuyente Husberto (arriba)" >> "$REPORT_FILE"
|
|
echo "" >> "$REPORT_FILE"
|
|
|
|
cat "$REPORT_FILE"
|