Export admin dashboard reports as PDF
This commit is contained in:
parent
562fe935f4
commit
e7efcd5f2e
|
@ -3,7 +3,7 @@ import * as XLSX from 'xlsx';
|
||||||
import * as FileSaver from 'file-saver';
|
import * as FileSaver from 'file-saver';
|
||||||
import { jsPDF } from 'jspdf';
|
import { jsPDF } from 'jspdf';
|
||||||
import { exportAsExcelFile, exportAsExcelTable } from '../export/export_excel';
|
import { exportAsExcelFile, exportAsExcelTable } from '../export/export_excel';
|
||||||
import { generatePDFTableData, createPDFTableHeaders, generatePDFTable } from '../export/export_pdf';
|
import { generatePDFTableData, createPDFTableHeaders, generatePDFTable, saveGeneratedPDF } from '../export/export_pdf';
|
||||||
|
|
||||||
import { FacturaService } from '../../factura/service/factura.service';
|
import { FacturaService } from '../../factura/service/factura.service';
|
||||||
import { UsuarioExtraService } from '../../usuario-extra/service/usuario-extra.service';
|
import { UsuarioExtraService } from '../../usuario-extra/service/usuario-extra.service';
|
||||||
|
@ -422,15 +422,115 @@ export class DashboardAdminComponent implements OnInit {
|
||||||
*/
|
*/
|
||||||
|
|
||||||
const doc = new jsPDF();
|
const doc = new jsPDF();
|
||||||
|
const _fileName = 'reportes_datasurvey';
|
||||||
|
let _docData, _headers, _docHeaders, _docTitle;
|
||||||
|
|
||||||
const _reporteUsuarios = [{ usuarios_activos: '100', usuarios_bloqueados: '50' }];
|
// Usuarios Generales
|
||||||
const _docData = generatePDFTableData(_reporteUsuarios);
|
const _reporteUsuarios = [
|
||||||
|
{
|
||||||
|
ganancias_plantillas: this.gananciasTotales!.toString(),
|
||||||
|
usuarios_activos: this.cantUsuarioActivos!.toString(),
|
||||||
|
usuarios_bloqueados: this.cantUsuarioBloqueados!.toString(),
|
||||||
|
},
|
||||||
|
];
|
||||||
|
_docData = generatePDFTableData(_reporteUsuarios);
|
||||||
|
_headers = ['ganancias_plantillas', 'usuarios_activos', 'usuarios_bloqueados'];
|
||||||
|
_docHeaders = createPDFTableHeaders(_headers);
|
||||||
|
_docTitle = 'Reporte Usuarios Generales';
|
||||||
|
|
||||||
const _headers = ['usuarios_activos', 'usuarios_bloqueados'];
|
generatePDFTable(doc, _docData, _docHeaders, _docTitle);
|
||||||
const _docHeaders = createPDFTableHeaders(_headers);
|
doc.addPage('p');
|
||||||
const _fileName = 'reporte_general';
|
|
||||||
const _docTitle = 'Reportes Generales de la Aplicación';
|
|
||||||
|
|
||||||
generatePDFTable(doc, _docData, _docHeaders, _fileName, _docTitle);
|
// Encuestas Publicadas
|
||||||
|
const _reporteEncuestasPublicadas: any[] = [];
|
||||||
|
this.listaMesesAnnos.forEach((date: any, index) => {
|
||||||
|
let _report: any = {};
|
||||||
|
_report['fecha'] = date;
|
||||||
|
_report['cantidad'] = this.encuestasPublicadasMesAnno[index].toString();
|
||||||
|
_reporteEncuestasPublicadas.push(_report);
|
||||||
|
});
|
||||||
|
_docData = generatePDFTableData(_reporteEncuestasPublicadas);
|
||||||
|
_headers = ['fecha', 'cantidad'];
|
||||||
|
_docHeaders = createPDFTableHeaders(_headers);
|
||||||
|
_docTitle = 'Reporte Encuestas Publicadas';
|
||||||
|
|
||||||
|
generatePDFTable(doc, _docData, _docHeaders, _docTitle);
|
||||||
|
doc.addPage('p');
|
||||||
|
|
||||||
|
// Encuestas Publicadas
|
||||||
|
const _reporteCantidadEncuestasPublicadasCategoria: any[] = [];
|
||||||
|
this.categorias!.forEach((categoria: any, index) => {
|
||||||
|
let _report: any = {};
|
||||||
|
_report['categoria'] = categoria.nombre;
|
||||||
|
_report['cantidad'] = this.encuestasPublicadasCategoria[index].toString();
|
||||||
|
_reporteCantidadEncuestasPublicadasCategoria.push(_report);
|
||||||
|
});
|
||||||
|
_docData = generatePDFTableData(_reporteCantidadEncuestasPublicadasCategoria);
|
||||||
|
_headers = ['categoria', 'cantidad'];
|
||||||
|
_docHeaders = createPDFTableHeaders(_headers);
|
||||||
|
_docTitle = 'Reporte Encuestas Publicadas por Categoría';
|
||||||
|
|
||||||
|
generatePDFTable(doc, _docData, _docHeaders, _docTitle);
|
||||||
|
doc.addPage('p');
|
||||||
|
|
||||||
|
// Encuestas Publicadas
|
||||||
|
const _reporteCantidadEncuestasFinalizadasCategoria: any[] = [];
|
||||||
|
this.categorias!.forEach((categoria: any, index) => {
|
||||||
|
let _report: any = {};
|
||||||
|
_report['categoria'] = categoria.nombre;
|
||||||
|
_report['cantidad'] = this.encuestasFinalzadasCategoria[index].toString();
|
||||||
|
_reporteCantidadEncuestasFinalizadasCategoria.push(_report);
|
||||||
|
});
|
||||||
|
_docData = generatePDFTableData(_reporteCantidadEncuestasFinalizadasCategoria);
|
||||||
|
_headers = ['categoria', 'cantidad'];
|
||||||
|
_docHeaders = createPDFTableHeaders(_headers);
|
||||||
|
_docTitle = 'Reporte Encuestas Finalizadas por Categoría';
|
||||||
|
|
||||||
|
generatePDFTable(doc, _docData, _docHeaders, _docTitle);
|
||||||
|
doc.addPage('', 'l');
|
||||||
|
|
||||||
|
// Encuestas Generales
|
||||||
|
const _reporteEncuestasReportesGenerales = [
|
||||||
|
{
|
||||||
|
encuestas_borrador: this.encuestasBorrador.toString(),
|
||||||
|
encuestas_publicadas: this.encuestasPublicadas.toString(),
|
||||||
|
encuestas_finalizadas: this.encuestasFinalizadas.toString(),
|
||||||
|
encuestas_completadas: this.encuestasCompletadas.toString(),
|
||||||
|
},
|
||||||
|
];
|
||||||
|
_docData = generatePDFTableData(_reporteEncuestasReportesGenerales);
|
||||||
|
_headers = ['encuestas_borrador', 'encuestas_publicadas', 'encuestas_finalizadas', 'encuestas_completadas'];
|
||||||
|
_docHeaders = createPDFTableHeaders(_headers);
|
||||||
|
_docTitle = 'Reporte Encuestas Generales';
|
||||||
|
generatePDFTable(doc, _docData, _docHeaders, _docTitle);
|
||||||
|
doc.addPage('', 'l');
|
||||||
|
|
||||||
|
// Usuarios
|
||||||
|
const _reporteEncuestasUsuarios: any[] = [];
|
||||||
|
this.usuarios!.forEach((user, index) => {
|
||||||
|
let _report: any = {};
|
||||||
|
_report['usuario_nombre'] = user.nombre;
|
||||||
|
_report['usuario_encuestas'] = this.encuestasUsuario[index].toString();
|
||||||
|
_report['encuestas_borrador'] = this.encuestasUsuarioBorrador[index].toString();
|
||||||
|
_report['encuestas_publicadas'] = this.encuestasUsuarioPublicadas[index].toString();
|
||||||
|
_report['encuestas_finalizadas'] = this.encuestasUsuarioFinalizadas[index].toString();
|
||||||
|
_report['encuestas_completadas_usuarios'] = this.encuestasUsuarioCompletadas[index].toString();
|
||||||
|
_reporteEncuestasUsuarios.push(_report);
|
||||||
|
});
|
||||||
|
_docData = generatePDFTableData(_reporteEncuestasUsuarios);
|
||||||
|
_headers = [
|
||||||
|
'usuario_nombre',
|
||||||
|
'usuario_encuestas',
|
||||||
|
'encuestas_borrador',
|
||||||
|
'encuestas_publicadas',
|
||||||
|
'encuestas_finalizadas',
|
||||||
|
'encuestas_completadas_usuarios',
|
||||||
|
];
|
||||||
|
_docHeaders = createPDFTableHeaders(_headers);
|
||||||
|
_docTitle = 'Reporte de Usuarios';
|
||||||
|
|
||||||
|
generatePDFTable(doc, _docData, _docHeaders, _docTitle);
|
||||||
|
|
||||||
|
saveGeneratedPDF(doc, _fileName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,11 +28,17 @@ export const createPDFTableHeaders = (keys: any): any[] => {
|
||||||
return result;
|
return result;
|
||||||
};
|
};
|
||||||
|
|
||||||
export const generatePDFTable = (doc: jsPDF, _docData: any, _docHeaders: string[], _fileName: string, _docTitle: string): void => {
|
export const generatePDFTable = (doc: jsPDF, _docData: any, _docHeaders: string[], _docTitle: string): void => {
|
||||||
doc.setFontSize(20);
|
doc.setFontSize(20);
|
||||||
doc.setFont('helvetica', 'bold');
|
doc.setFont('helvetica', 'bold');
|
||||||
doc.text(_docTitle, 20, 20);
|
doc.text(_docTitle, 20, 20);
|
||||||
|
doc.setFont('helvetica');
|
||||||
|
|
||||||
|
doc.setFontSize(12);
|
||||||
doc.table(20, 30, _docData, _docHeaders, { autoSize: true });
|
doc.table(20, 30, _docData, _docHeaders, { autoSize: true });
|
||||||
|
};
|
||||||
|
|
||||||
|
export const saveGeneratedPDF = (doc: jsPDF, _fileName: string) => {
|
||||||
const generatedFileName = generateFileName(_fileName, PDF_EXTENSION);
|
const generatedFileName = generateFileName(_fileName, PDF_EXTENSION);
|
||||||
doc.save(generatedFileName);
|
doc.save(generatedFileName);
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue