Generación Masiva
Exportar contenido
Genera el mismo informe para múltiples clientes en una sola operación.
- Ve a Informes → “Generación masiva”
- Selecciona el tipo de informe y el período
- Marca los clientes incluidos (o selecciona todos)
- Haz clic en “Generar para todos”
- El sistema procesa en segundo plano y notifica cuando están listos
- Descarga el ZIP con todos los informes individuales
Detalles técnicos — Generación masiva
Generación de informes en background
Sección titulada «Generación de informes en background»// Edge Function para generación masivaexport async function generateBulkReports( reportType: string, period: { year: number; quarter?: number }, businessIds: string[]): Promise<string> { const jobId = crypto.randomUUID();
// Encolar trabajos for (const businessId of businessIds) { await queue.add('generate-report', { jobId, reportType, period, businessId, }); }
return jobId; // El cliente hace polling con este ID}Consulta del Libro de IVA
Sección titulada «Consulta del Libro de IVA»SELECT 'emitidas' AS tipo, i.invoice_number AS numero, i.issue_date AS fecha, c.name AS contraparte, c.tax_id AS nif, i.base_amount AS base_imponible, i.tax_amount AS cuota_iva, i.total_amount AS totalFROM invoices iJOIN customers c ON c.id = i.customer_idWHERE i.business_id = :business_id AND EXTRACT(YEAR FROM i.issue_date) = :year AND EXTRACT(QUARTER FROM i.issue_date) = :quarter AND i.status != 'cancelled'
UNION ALL
SELECT 'recibidas', e.document_number, e.expense_date, s.name, s.tax_id, e.base_amount, e.tax_amount, e.total_amountFROM expenses eJOIN suppliers s ON s.id = e.supplier_idWHERE e.business_id = :business_id AND EXTRACT(YEAR FROM e.expense_date) = :year AND EXTRACT(QUARTER FROM e.expense_date) = :quarter
ORDER BY fecha ASC;