diff --git a/src/main/webapp/app/entities/dashboard/dashboard-admin/dashboard-admin.component.ts b/src/main/webapp/app/entities/dashboard/dashboard-admin/dashboard-admin.component.ts index 35efff1..8f4a659 100644 --- a/src/main/webapp/app/entities/dashboard/dashboard-admin/dashboard-admin.component.ts +++ b/src/main/webapp/app/entities/dashboard/dashboard-admin/dashboard-admin.component.ts @@ -3,7 +3,7 @@ import * as XLSX from 'xlsx'; import * as FileSaver from 'file-saver'; import { jsPDF } from 'jspdf'; 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 { UsuarioExtraService } from '../../usuario-extra/service/usuario-extra.service'; @@ -422,15 +422,115 @@ export class DashboardAdminComponent implements OnInit { */ const doc = new jsPDF(); + const _fileName = 'reportes_datasurvey'; + let _docData, _headers, _docHeaders, _docTitle; - const _reporteUsuarios = [{ usuarios_activos: '100', usuarios_bloqueados: '50' }]; - const _docData = generatePDFTableData(_reporteUsuarios); + // Usuarios Generales + 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']; - const _docHeaders = createPDFTableHeaders(_headers); - const _fileName = 'reporte_general'; - const _docTitle = 'Reportes Generales de la Aplicación'; + generatePDFTable(doc, _docData, _docHeaders, _docTitle); + doc.addPage('p'); - 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); } } diff --git a/src/main/webapp/app/entities/dashboard/export/export_pdf.ts b/src/main/webapp/app/entities/dashboard/export/export_pdf.ts index a5431aa..9c38535 100644 --- a/src/main/webapp/app/entities/dashboard/export/export_pdf.ts +++ b/src/main/webapp/app/entities/dashboard/export/export_pdf.ts @@ -28,11 +28,17 @@ export const createPDFTableHeaders = (keys: any): any[] => { 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.setFont('helvetica', 'bold'); doc.text(_docTitle, 20, 20); + doc.setFont('helvetica'); + + doc.setFontSize(12); doc.table(20, 30, _docData, _docHeaders, { autoSize: true }); +}; + +export const saveGeneratedPDF = (doc: jsPDF, _fileName: string) => { const generatedFileName = generateFileName(_fileName, PDF_EXTENSION); doc.save(generatedFileName); };