Add export admin. reports as an Excel file
This commit is contained in:
parent
326dffa555
commit
a39ad439a5
|
@ -57,8 +57,8 @@
|
||||||
"@angular/compiler-cli": "12.0.5",
|
"@angular/compiler-cli": "12.0.5",
|
||||||
"@angular/service-worker": "12.0.5",
|
"@angular/service-worker": "12.0.5",
|
||||||
"@types/bootstrap": "^5.0.17",
|
"@types/bootstrap": "^5.0.17",
|
||||||
"@types/file-saver": "^2.0.3",
|
|
||||||
"@types/chartist": "^0.11.1",
|
"@types/chartist": "^0.11.1",
|
||||||
|
"@types/file-saver": "^2.0.3",
|
||||||
"@types/jest": "26.0.23",
|
"@types/jest": "26.0.23",
|
||||||
"@types/jquery": "^3.5.6",
|
"@types/jquery": "^3.5.6",
|
||||||
"@types/node": "15.12.2",
|
"@types/node": "15.12.2",
|
||||||
|
|
|
@ -1,4 +1,7 @@
|
||||||
<div class="content">
|
<div class="content">
|
||||||
|
<button type="button" class="ds-btn ds-btn--primary" (click)="exportReportesGeneralesAdministradorExcel()">Export as Excel</button>
|
||||||
|
<button type="button" class="ds-btn ds-btn--primary" (click)="exportReportesGeneralesAdministradorPDF()">Export as PDF</button>
|
||||||
|
|
||||||
<div class="container-fluid">
|
<div class="container-fluid">
|
||||||
<div class="row justify-content-around">
|
<div class="row justify-content-around">
|
||||||
<div class="col-lg-3 col-sm-6">
|
<div class="col-lg-3 col-sm-6">
|
||||||
|
@ -13,7 +16,7 @@
|
||||||
<div class="col-xs-7 w-50">
|
<div class="col-xs-7 w-50">
|
||||||
<div class="numbers">
|
<div class="numbers">
|
||||||
<p class="ds-title">Ganancias por plantillas</p>
|
<p class="ds-title">Ganancias por plantillas</p>
|
||||||
{{ gananciasTotales | currency: 'CR' }}
|
${{ gananciasTotales | number: '1.2' }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -137,5 +140,3 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<button type="button" class="ds-btn ds-btn--primary" (click)="exportReportesGeneralesAdministradorPDF()">Export as PDF</button>
|
|
||||||
<button type="button" class="ds-btn ds-btn--primary" (click)="exportReportesGeneralesAdministradorExcel()">Export as Excel</button>
|
|
||||||
|
|
|
@ -2,7 +2,7 @@ import { Component, OnInit } from '@angular/core';
|
||||||
import * as XLSX from 'xlsx';
|
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 } from '../export/export_excel';
|
import { exportAsExcelFile, exportAsExcelTable } from '../export/export_excel';
|
||||||
import { generatePDFTableData, createPDFTableHeaders, generatePDFTable } from '../export/export_pdf';
|
import { generatePDFTableData, createPDFTableHeaders, generatePDFTable } from '../export/export_pdf';
|
||||||
|
|
||||||
import { FacturaService } from '../../factura/service/factura.service';
|
import { FacturaService } from '../../factura/service/factura.service';
|
||||||
|
@ -99,11 +99,11 @@ export class DashboardAdminComponent implements OnInit {
|
||||||
.subscribe(res => {
|
.subscribe(res => {
|
||||||
const tmpCategorias = res.body;
|
const tmpCategorias = res.body;
|
||||||
this.categorias = tmpCategorias?.filter(c => c.estado === 'ACTIVE');
|
this.categorias = tmpCategorias?.filter(c => c.estado === 'ACTIVE');
|
||||||
let cantPublicadas = 0;
|
|
||||||
let cantFinalizadas = 0;
|
|
||||||
const publicadas: number[] | null = [];
|
const publicadas: number[] | null = [];
|
||||||
const finalizadas: number[] | null = [];
|
const finalizadas: number[] | null = [];
|
||||||
this.categorias?.forEach(c => {
|
this.categorias?.forEach(c => {
|
||||||
|
let cantPublicadas = 0;
|
||||||
|
let cantFinalizadas = 0;
|
||||||
this.encuestas?.forEach(e => {
|
this.encuestas?.forEach(e => {
|
||||||
if (e.categoria?.id === c.id && e.estado === 'ACTIVE') {
|
if (e.categoria?.id === c.id && e.estado === 'ACTIVE') {
|
||||||
cantPublicadas = cantPublicadas + 1;
|
cantPublicadas = cantPublicadas + 1;
|
||||||
|
@ -198,13 +198,63 @@ export class DashboardAdminComponent implements OnInit {
|
||||||
Cantidad de encuestas publicadas por categoría
|
Cantidad de encuestas publicadas por categoría
|
||||||
Cantidad de encuestas finalizadas por categoría
|
Cantidad de encuestas finalizadas por categoría
|
||||||
Cantidad de encuestas publicadas por mes y año
|
Cantidad de encuestas publicadas por mes y año
|
||||||
|
|
||||||
|
Cantidad de encuestas
|
||||||
|
Cantidad de personas que han completado sus encuestas
|
||||||
|
Cantidad de encuestas activas
|
||||||
|
Cantidad de encuestas finalizadas
|
||||||
|
Cantidad de comentarios de retroalimentación
|
||||||
*/
|
*/
|
||||||
|
|
||||||
const _sheets = ['reportes generales'];
|
const _sheets = ['reportes generales', 'enc. publicadas', 'enc. publicadas categoría', 'enc. finalizadas categoría'];
|
||||||
const _reporteUsuarios = { usuarios_activos: 100, usuarios_bloqueados: 50 };
|
|
||||||
|
|
||||||
const _excelFinalData = [_reporteUsuarios];
|
const _reporteUsuarios = [
|
||||||
const _fileName = 'reporte_general';
|
{
|
||||||
|
ganancias_plantillas: this.gananciasTotales,
|
||||||
|
usuarios_activos: this.cantUsuarioActivos,
|
||||||
|
usuarios_bloqueados: this.cantUsuarioBloqueados,
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
// listaMesesAnnos
|
||||||
|
// encuestasPublicadasMesAnno
|
||||||
|
const _reporteEncuestasPublicadas: any[] = [];
|
||||||
|
this.listaMesesAnnos.forEach((date: any, index) => {
|
||||||
|
let _report: any = {};
|
||||||
|
_report['fecha'] = date;
|
||||||
|
_report['cantidad'] = this.encuestasPublicadasMesAnno[index];
|
||||||
|
_reporteEncuestasPublicadas.push(_report);
|
||||||
|
});
|
||||||
|
|
||||||
|
// this.categorias
|
||||||
|
// this.encuestasPublicadasCategoria
|
||||||
|
const _reporteCantidadEncuestasPublicadasCategoria: any[] = [];
|
||||||
|
this.categorias!.forEach((categoria: any, index) => {
|
||||||
|
let _report: any = {};
|
||||||
|
_report['categoria'] = categoria.nombre;
|
||||||
|
_report['cantidad'] = this.encuestasPublicadasCategoria[index];
|
||||||
|
_reporteCantidadEncuestasPublicadasCategoria.push(_report);
|
||||||
|
});
|
||||||
|
|
||||||
|
// this.categorias
|
||||||
|
// this.encuestasFinalzadasCategoria
|
||||||
|
const _reporteCantidadEncuestasFinalizadasCategoria: any[] = [];
|
||||||
|
this.categorias!.forEach((categoria: any, index) => {
|
||||||
|
let _report: any = {};
|
||||||
|
_report['categoria'] = categoria.nombre;
|
||||||
|
_report['cantidad'] = this.encuestasFinalzadasCategoria[index];
|
||||||
|
_reporteCantidadEncuestasFinalizadasCategoria.push(_report);
|
||||||
|
});
|
||||||
|
|
||||||
|
// exportAsExcelTable();
|
||||||
|
|
||||||
|
const _excelFinalData = [
|
||||||
|
_reporteUsuarios,
|
||||||
|
_reporteEncuestasPublicadas,
|
||||||
|
_reporteCantidadEncuestasPublicadasCategoria,
|
||||||
|
_reporteCantidadEncuestasFinalizadasCategoria,
|
||||||
|
];
|
||||||
|
const _fileName = 'reportes_datasurvey';
|
||||||
exportAsExcelFile(_sheets, _excelFinalData, _fileName);
|
exportAsExcelFile(_sheets, _excelFinalData, _fileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -215,6 +265,13 @@ export class DashboardAdminComponent implements OnInit {
|
||||||
Cantidad de encuestas publicadas por categoría
|
Cantidad de encuestas publicadas por categoría
|
||||||
Cantidad de encuestas finalizadas por categoría
|
Cantidad de encuestas finalizadas por categoría
|
||||||
Cantidad de encuestas publicadas por mes y año
|
Cantidad de encuestas publicadas por mes y año
|
||||||
|
|
||||||
|
Cantidad de encuestas
|
||||||
|
Cantidad de personas que han completado sus encuestas
|
||||||
|
Cantidad de encuestas activas
|
||||||
|
Cantidad de encuestas finalizadas
|
||||||
|
Cantidad de comentarios de retroalimentación
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
const doc = new jsPDF();
|
const doc = new jsPDF();
|
||||||
|
|
|
@ -10,7 +10,7 @@ export const exportAsExcelFile = (sheetNames: string[], arrayOfData: any[], exce
|
||||||
|
|
||||||
arrayOfData.forEach((data, index) => {
|
arrayOfData.forEach((data, index) => {
|
||||||
let sheetName = sheetNames[index];
|
let sheetName = sheetNames[index];
|
||||||
let worksheet = XLSX.utils.json_to_sheet([data]);
|
let worksheet = XLSX.utils.json_to_sheet(data);
|
||||||
XLSX.utils.book_append_sheet(workbook, worksheet, sheetName);
|
XLSX.utils.book_append_sheet(workbook, worksheet, sheetName);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -24,3 +24,14 @@ const saveAsExcelFile = (buffer: any, fileName: any) => {
|
||||||
|
|
||||||
FileSaver.saveAs(data, generatedFileName);
|
FileSaver.saveAs(data, generatedFileName);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const exportAsExcelTable = () => {
|
||||||
|
const workbook = XLSX.utils.book_new();
|
||||||
|
|
||||||
|
let worksheet = XLSX.utils.json_to_sheet([{ test: 1 }, { test: 2 }]);
|
||||||
|
|
||||||
|
XLSX.utils.book_append_sheet(workbook, worksheet, 'test');
|
||||||
|
|
||||||
|
const excelBuffer = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' });
|
||||||
|
saveAsExcelFile(excelBuffer, 'test');
|
||||||
|
};
|
||||||
|
|
Loading…
Reference in New Issue