diff --git a/src/components/Pages/Gangguan/Rekap/RGangguan_RatingPerPosko.vue b/src/components/Pages/Gangguan/Rekap/RGangguan_RatingPerPosko.vue index 10313a9..e662ac5 100755 --- a/src/components/Pages/Gangguan/Rekap/RGangguan_RatingPerPosko.vue +++ b/src/components/Pages/Gangguan/Rekap/RGangguan_RatingPerPosko.vue @@ -625,13 +625,7 @@ import { DxSearchPanel, DxSelection } from 'devextreme-vue/data-grid' -import { onMounted, ref, watch } from 'vue' -import { jsPDF } from 'jspdf' -import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter' -import { exportDataGrid as exportToExcel } from 'devextreme/excel_exporter' -import { saveAs } from 'file-saver' -import { Workbook } from 'exceljs' -import { useQuery } from '@vue/apollo-composable' +import { onMounted, ref } from 'vue' import { queries, requestGraphQl } from '@/utils/api/api.graphql' import { formatNumber, formatPercentage, isNumber } from '@/utils/numbers' import { formatWaktu } from '@/components/Form/FiltersType/reference' @@ -640,7 +634,7 @@ import InputText from '@/components/InputText.vue' import vue3starRatings from 'vue3-star-ratings' import { apolloClient } from '@/utils/api/api.graphql' import { provideApolloClient } from '@vue/apollo-composable' -import { exportToPDF } from '@/report/Gangguan/Rekap/RGangguan_RatingPerPosko' +import { exportToPDF, exportToXLSX } from '@/report/Gangguan/Rekap/RGangguan_RatingPerPosko' const client = apolloClient() provideApolloClient(client) @@ -717,21 +711,9 @@ const closeDialog = () => { const onExporting = (e: any) => { if (e.format === 'pdf') { exportToPDF(reportMeta.value, data.value) + } else if (e.format === 'xlsx') { + exportToXLSX(reportMeta.value, e) } else { - const workbook = new Workbook() - const worksheet = workbook.addWorksheet('Employees') - - exportToExcel({ - component: e.component, - worksheet, - autoFilterEnabled: true - }).then(() => { - workbook.xlsx.writeBuffer().then((buffer: any) => { - saveAs(new Blob([buffer], { type: 'application/octet-stream' }), 'DataGrid.xlsx') - }) - }) - - e.cancel = true } } diff --git a/src/report/Gangguan/Rekap/RGangguan_DMAPKT.ts b/src/report/Gangguan/Rekap/RGangguan_DMAPKT.ts index 6c4fba3..740c535 100644 --- a/src/report/Gangguan/Rekap/RGangguan_DMAPKT.ts +++ b/src/report/Gangguan/Rekap/RGangguan_DMAPKT.ts @@ -589,10 +589,10 @@ const exportToXLSX = (reportMeta: any, e: any) => { true ) - worksheet.mergeCells('A1:F1') - worksheet.mergeCells('A2:F2') - worksheet.mergeCells('A3:F3') - worksheet.mergeCells('A4:F4') + worksheet.mergeCells('A1:X1') + worksheet.mergeCells('A2:X2') + worksheet.mergeCells('A3:X3') + worksheet.mergeCells('A4:X4') worksheet.mergeCells('A7:X7') worksheet.mergeCells('A8:X8') diff --git a/src/report/Gangguan/Rekap/RGangguan_RatingPerPosko.ts b/src/report/Gangguan/Rekap/RGangguan_RatingPerPosko.ts index 3fa2dc9..19a189b 100644 --- a/src/report/Gangguan/Rekap/RGangguan_RatingPerPosko.ts +++ b/src/report/Gangguan/Rekap/RGangguan_RatingPerPosko.ts @@ -21,6 +21,7 @@ import { setHeaderStyle } from '@/report/utils/xlsx' import { formatNumber, formatPercentage } from '@/utils/numbers' const reportName = 'Rekapitulasi Rating Per Posko' +const fontSize = 5 const groupingData = (data: any) => { const groupedData: any = {} @@ -102,7 +103,6 @@ const exportToPDF = (reportMeta: any, rawData: any, preview: boolean = false) => const doc = new jsPDF({ orientation: 'landscape' }) - const fontSize = 5 autoTable(doc, { head: [ @@ -265,4 +265,60 @@ const exportToPDF = (reportMeta: any, rawData: any, preview: boolean = false) => } } -export { exportToPDF } +const exportToXLSX = (reportMeta: any, e: any) => { + const meta = formatMetaData(reportMeta) + const workbook = new Workbook() + const worksheet = workbook.addWorksheet(`${reportName}`) + + setHeaderStyle(worksheet, 1, 1, 'PT. PLN(Persero)') + setHeaderStyle( + worksheet, + 2, + 1, + `UNIT INDUK : ${ + reportMeta.uid + ? reportMeta.uid.name.toUpperCase() + : 'Semua Unit Induk Distribusi/Wilayah'.toUpperCase() + }` + ) + setHeaderStyle( + worksheet, + 3, + 1, + `UNIT PELAKSANA PELAYANAN PELANGGAN : ${ + reportMeta.up3 + ? reportMeta.up3.name.toUpperCase() + : 'Semua Unit Pelaksanaan Pelayanan Pelanggan'.toUpperCase() + }` + ) + + setHeaderStyle(worksheet, 5, 1, `${reportName}`.toUpperCase(), true) + setHeaderStyle( + worksheet, + 6, + 1, + `PERIODE TANGGAL : ${meta.dateFromFormat} SD TGL ${meta.dateToFormat}`, + true + ) + + worksheet.mergeCells('A1:Q1') + worksheet.mergeCells('A2:Q2') + worksheet.mergeCells('A3:Q3') + worksheet.mergeCells('A5:Q5') + worksheet.mergeCells('A6:Q6') + + exportToExcel({ + component: e.component, + worksheet, + autoFilterEnabled: true, + topLeftCell: { row: 8, column: 1 } + }).then(() => { + workbook.xlsx.writeBuffer().then((buffer: any) => { + saveAs(new Blob([buffer], { type: 'application/octet-stream' }), `Laporan ${reportName}.xlsx`) + }) + }) + + e.cancel = true +} + +export { exportToPDF, exportToXLSX }