diff --git a/src/components/Pages/Monalisa/Keluhan/Rekap/MonalisaKR_GangguanPerJenisKeluhan.vue b/src/components/Pages/Monalisa/Keluhan/Rekap/MonalisaKR_GangguanPerJenisKeluhan.vue index a656c9c..8dc9373 100755 --- a/src/components/Pages/Monalisa/Keluhan/Rekap/MonalisaKR_GangguanPerJenisKeluhan.vue +++ b/src/components/Pages/Monalisa/Keluhan/Rekap/MonalisaKR_GangguanPerJenisKeluhan.vue @@ -147,7 +147,8 @@ import BufferDialog from '@/components/Dialogs/BufferDialog.vue' import { getMonthName } from '@/utils/texts' import { exportToPDF, - exportToXLSX + exportToXLSX, + exportToDOCX } from '@/report/Monalisa/Keluhan/Rekap/MonalisaKR_GangguanPerJenisKeluhan' const client = apolloClient() @@ -184,6 +185,7 @@ const onExporting = (e: any) => { } else if (e.format === 'xlsx') { exportToXLSX(reportMeta.value, e) } else { + exportToDOCX(reportMeta.value, data.value) } } diff --git a/src/components/Pages/Monalisa/Keluhan/Rekap/MonalisaKR_JumlahDDRPTRCTKeluhan.vue b/src/components/Pages/Monalisa/Keluhan/Rekap/MonalisaKR_JumlahDDRPTRCTKeluhan.vue index 4f94d3f..265362a 100755 --- a/src/components/Pages/Monalisa/Keluhan/Rekap/MonalisaKR_JumlahDDRPTRCTKeluhan.vue +++ b/src/components/Pages/Monalisa/Keluhan/Rekap/MonalisaKR_JumlahDDRPTRCTKeluhan.vue @@ -398,7 +398,8 @@ import { provideApolloClient } from '@vue/apollo-composable' import BufferDialog from '@/components/Dialogs/BufferDialog.vue' import { exportToPDF, - exportToXLSX + exportToXLSX, + exportToDOCX } from '@/report/Monalisa/Keluhan/Rekap/MonalisaKR_JumlahDDRPTRCTKeluhan' const client = apolloClient() @@ -436,6 +437,7 @@ const onExporting = (e: any) => { } else if (e.format === 'xlsx') { exportToXLSX(reportMeta.value, e) } else { + exportToDOCX(reportMeta.value, data.value) } } const getDetail = async () => { diff --git a/src/components/Pages/Monalisa/Keluhan/Rekap/MonalisaKR_JumlahKaliKeluhan.vue b/src/components/Pages/Monalisa/Keluhan/Rekap/MonalisaKR_JumlahKaliKeluhan.vue index 4f44c05..5b37b3a 100755 --- a/src/components/Pages/Monalisa/Keluhan/Rekap/MonalisaKR_JumlahKaliKeluhan.vue +++ b/src/components/Pages/Monalisa/Keluhan/Rekap/MonalisaKR_JumlahKaliKeluhan.vue @@ -292,7 +292,8 @@ import { provideApolloClient } from '@vue/apollo-composable' import BufferDialog from '@/components/Dialogs/BufferDialog.vue' import { exportToPDF, - exportToXLSX + exportToXLSX, + exportToDOCX } from '@/report/Monalisa/Keluhan/Rekap/MonalisaKR_JumlahKaliKeluhan' const client = apolloClient() @@ -337,6 +338,7 @@ const onExporting = (e: any) => { } else if (e.format === 'xlsx') { exportToXLSX(reportMeta.value, e) } else { + exportToDOCX(reportMeta.value, data.value) } } diff --git a/src/components/Pages/Monalisa/Keluhan/Rekap/MonalisaKR_KeluhanBelumSelesai.vue b/src/components/Pages/Monalisa/Keluhan/Rekap/MonalisaKR_KeluhanBelumSelesai.vue index 5f5f8cc..1ea9cbb 100755 --- a/src/components/Pages/Monalisa/Keluhan/Rekap/MonalisaKR_KeluhanBelumSelesai.vue +++ b/src/components/Pages/Monalisa/Keluhan/Rekap/MonalisaKR_KeluhanBelumSelesai.vue @@ -546,7 +546,9 @@ import { exportToPDF, exportToXLSX, exportDetailToPDF, - exportDetailToXLSX + exportDetailToXLSX, + exportToDOCX, + exportDetailToDOCX } from '@/report/Monalisa/Keluhan/Rekap/MonalisaKR_KeluhanBelumSelesai' const client = apolloClient() @@ -583,6 +585,7 @@ const onExporting = (e: any) => { } else if (e.format === 'xlsx') { exportToXLSX(reportMeta.value, e) } else { + exportToDOCX(reportMeta.value, data.value) } } @@ -592,6 +595,7 @@ const onExportingDetail = (e: any) => { } else if (e.format === 'xlsx') { exportDetailToXLSX(reportMeta.value, e) } else { + exportDetailToDOCX(reportMeta.value, dataSub.value) } } const getDetail = async () => { diff --git a/src/components/Pages/Monalisa/Keluhan/Rekap/MonalisaKR_LaporUlangKeluhan.vue b/src/components/Pages/Monalisa/Keluhan/Rekap/MonalisaKR_LaporUlangKeluhan.vue index fc46978..6952e42 100755 --- a/src/components/Pages/Monalisa/Keluhan/Rekap/MonalisaKR_LaporUlangKeluhan.vue +++ b/src/components/Pages/Monalisa/Keluhan/Rekap/MonalisaKR_LaporUlangKeluhan.vue @@ -295,7 +295,8 @@ import { provideApolloClient } from '@vue/apollo-composable' import BufferDialog from '@/components/Dialogs/BufferDialog.vue' import { exportToPDF, - exportToXLSX + exportToXLSX, + exportToDOCX } from '@/report/Monalisa/Keluhan/Rekap/MonalisaKR_LaporUlangKeluhan' const client = apolloClient() @@ -341,6 +342,7 @@ const onExporting = (e: any) => { } else if (e.format === 'xlsx') { exportToXLSX(reportMeta.value, e) } else { + exportToDOCX(reportMeta.value, data.value) } } const getDetail = async () => { diff --git a/src/components/Pages/Monalisa/Keluhan/Rekap/MonalisaKR_RecoveryTimeKeluhan.vue b/src/components/Pages/Monalisa/Keluhan/Rekap/MonalisaKR_RecoveryTimeKeluhan.vue index fa08cd6..a0ae80e 100755 --- a/src/components/Pages/Monalisa/Keluhan/Rekap/MonalisaKR_RecoveryTimeKeluhan.vue +++ b/src/components/Pages/Monalisa/Keluhan/Rekap/MonalisaKR_RecoveryTimeKeluhan.vue @@ -301,7 +301,8 @@ import { provideApolloClient } from '@vue/apollo-composable' import BufferDialog from '@/components/Dialogs/BufferDialog.vue' import { exportToPDF, - exportToXLSX + exportToXLSX, + exportToDOCX } from '@/report/Monalisa/Keluhan/Rekap/MonalisaKR_RecoveryTimeKeluhan' const client = apolloClient() @@ -346,6 +347,7 @@ const onExporting = (e: any) => { } else if (e.format === 'xlsx') { exportToXLSX(reportMeta.value, e) } else { + exportToDOCX(reportMeta.value, data.value) } } const resetData = () => { diff --git a/src/components/Pages/Monalisa/Keluhan/Rekap/MonalisaKR_ResponseTimeKeluhan.vue b/src/components/Pages/Monalisa/Keluhan/Rekap/MonalisaKR_ResponseTimeKeluhan.vue index 5dc2260..2e8fb69 100755 --- a/src/components/Pages/Monalisa/Keluhan/Rekap/MonalisaKR_ResponseTimeKeluhan.vue +++ b/src/components/Pages/Monalisa/Keluhan/Rekap/MonalisaKR_ResponseTimeKeluhan.vue @@ -299,7 +299,8 @@ import { queries, requestGraphQl } from '@/utils/api/api.graphql' import BufferDialog from '@/components/Dialogs/BufferDialog.vue' import { exportToPDF, - exportToXLSX + exportToXLSX, + exportToDOCX } from '@/report/Monalisa/Keluhan/Rekap/MonalisaKR_ResponseTimeKeluhan' const position = { of: '#data' } @@ -343,6 +344,7 @@ const onExporting = (e: any) => { } else if (e.format === 'xlsx') { exportToXLSX(reportMeta.value, e) } else { + exportToDOCX(reportMeta.value, data.value) } } diff --git a/src/report/Monalisa/Keluhan/Rekap/MonalisaKR_GangguanPerJenisKeluhan.ts b/src/report/Monalisa/Keluhan/Rekap/MonalisaKR_GangguanPerJenisKeluhan.ts index 5ba4c74..68e7b0b 100644 --- a/src/report/Monalisa/Keluhan/Rekap/MonalisaKR_GangguanPerJenisKeluhan.ts +++ b/src/report/Monalisa/Keluhan/Rekap/MonalisaKR_GangguanPerJenisKeluhan.ts @@ -1,23 +1,11 @@ import { exportDataGrid as exportToExcel } from 'devextreme/excel_exporter' -import { - Document, - AlignmentType, - Packer, - Paragraph, - Table, - TableCell, - TableRow, - VerticalAlign, - TextRun, - WidthType, - PageOrientation -} from 'docx' import { saveAs } from 'file-saver' import { jsPDF } from 'jspdf' import autoTable from 'jspdf-autotable' import { Workbook } from 'exceljs' import { setHeaderStyle } from '@/report/utils/xlsx' import { formatNumber, formatPercentage } from '@/utils/numbers' +import { exportToWord } from './doc/MonalisaKR_GangguanPerJenisKeluhan' const reportName = '(Monalisa) Rekapitulasi Keluhan Per Jenis Keluhan' const fontSize = 5 @@ -272,4 +260,8 @@ const exportToXLSX = (reportMeta: any, e: any) => { e.cancel = true } -export { exportToPDF, exportToXLSX } +const exportToDOCX = (reportMeta: any, rawData: any) => { + exportToWord(reportMeta, formatData(rawData), reportName) +} + +export { exportToPDF, exportToXLSX, exportToDOCX } diff --git a/src/report/Monalisa/Keluhan/Rekap/MonalisaKR_JumlahDDRPTRCTKeluhan.ts b/src/report/Monalisa/Keluhan/Rekap/MonalisaKR_JumlahDDRPTRCTKeluhan.ts index 0698704..6b63276 100644 --- a/src/report/Monalisa/Keluhan/Rekap/MonalisaKR_JumlahDDRPTRCTKeluhan.ts +++ b/src/report/Monalisa/Keluhan/Rekap/MonalisaKR_JumlahDDRPTRCTKeluhan.ts @@ -1,17 +1,4 @@ import { exportDataGrid as exportToExcel } from 'devextreme/excel_exporter' -import { - Document, - AlignmentType, - Packer, - Paragraph, - Table, - TableCell, - TableRow, - VerticalAlign, - TextRun, - WidthType, - PageOrientation -} from 'docx' import { saveAs } from 'file-saver' import { jsPDF } from 'jspdf' import autoTable from 'jspdf-autotable' @@ -19,6 +6,7 @@ import { Workbook } from 'exceljs' import { setHeaderStyle } from '@/report/utils/xlsx' import { formatNumber, formatPercentage } from '@/utils/numbers' import { getMonthName } from '@/utils/texts' +import { exportToWord } from './doc/MonalisaKR_JumlahDDRPTRCTKeluhan' const reportName = 'Jumlah dan Durasi RPT RCT Keluhan' const fontSize = 5 @@ -322,4 +310,8 @@ const exportToXLSX = (reportMeta: any, e: any) => { e.cancel = true } -export { exportToPDF, exportToXLSX } +const exportToDOCX = (reportMeta: any, rawData: any) => { + exportToWord(reportMeta, formatData(rawData), reportName) +} + +export { exportToPDF, exportToXLSX, exportToDOCX } diff --git a/src/report/Monalisa/Keluhan/Rekap/MonalisaKR_JumlahKaliKeluhan.ts b/src/report/Monalisa/Keluhan/Rekap/MonalisaKR_JumlahKaliKeluhan.ts index 29834e8..0508677 100644 --- a/src/report/Monalisa/Keluhan/Rekap/MonalisaKR_JumlahKaliKeluhan.ts +++ b/src/report/Monalisa/Keluhan/Rekap/MonalisaKR_JumlahKaliKeluhan.ts @@ -1,17 +1,4 @@ import { exportDataGrid as exportToExcel } from 'devextreme/excel_exporter' -import { - Document, - AlignmentType, - Packer, - Paragraph, - Table, - TableCell, - TableRow, - VerticalAlign, - TextRun, - WidthType, - PageOrientation -} from 'docx' import { saveAs } from 'file-saver' import { jsPDF } from 'jspdf' import autoTable from 'jspdf-autotable' @@ -19,10 +6,10 @@ import { Workbook } from 'exceljs' import { setHeaderStyle } from '@/report/utils/xlsx' import { formatNumber, formatPercentage } from '@/utils/numbers' import { getMonthName } from '@/utils/texts' +import { exportToWord } from './doc/MonalisaKR_JumlahKaliKeluhan' const reportName = 'Jumlah Kali Keluhan' const fontSize = 5 -const detailFontSize = 3 const groupingData = (data: any) => { const groupedData: any = {} @@ -370,4 +357,8 @@ const exportToXLSX = (reportMeta: any, e: any) => { e.cancel = true } -export { exportToPDF, exportToXLSX } +const exportToDOCX = (reportMeta: any, rawData: any) => { + exportToWord(reportMeta, formatData(rawData), reportName) +} + +export { exportToPDF, exportToXLSX, exportToDOCX } diff --git a/src/report/Monalisa/Keluhan/Rekap/MonalisaKR_KeluhanBelumSelesai.ts b/src/report/Monalisa/Keluhan/Rekap/MonalisaKR_KeluhanBelumSelesai.ts index a6325b9..c304cc9 100644 --- a/src/report/Monalisa/Keluhan/Rekap/MonalisaKR_KeluhanBelumSelesai.ts +++ b/src/report/Monalisa/Keluhan/Rekap/MonalisaKR_KeluhanBelumSelesai.ts @@ -1,17 +1,4 @@ import { exportDataGrid as exportToExcel } from 'devextreme/excel_exporter' -import { - Document, - AlignmentType, - Packer, - Paragraph, - Table, - TableCell, - TableRow, - VerticalAlign, - TextRun, - WidthType, - PageOrientation -} from 'docx' import { saveAs } from 'file-saver' import { jsPDF } from 'jspdf' import autoTable from 'jspdf-autotable' @@ -19,6 +6,7 @@ import { Workbook } from 'exceljs' import { setHeaderStyle } from '@/report/utils/xlsx' import { formatNumber } from '@/utils/numbers' import { formatWaktu } from '@/components/Form/FiltersType/reference' +import { exportToWord, exportDetailToWord } from './doc/MonalisaKR_KeluhanBelumSelesai' const reportName = 'Rekapitulasi Keluhan Belum Selesai' const fontSize = 5 @@ -486,4 +474,19 @@ const exportDetailToXLSX = (reportMeta: any, e: any) => { e.cancel = true } -export { exportToPDF, exportToXLSX, exportDetailToPDF, exportDetailToXLSX } +const exportToDOCX = (reportMeta: any, rawData: any) => { + exportToWord(reportMeta, formatData(rawData), reportName) +} + +const exportDetailToDOCX = (reportMeta: any, rawData: any) => { + exportDetailToWord(reportMeta, rawData, reportName) +} + +export { + exportToPDF, + exportToXLSX, + exportDetailToPDF, + exportDetailToXLSX, + exportToDOCX, + exportDetailToDOCX +} diff --git a/src/report/Monalisa/Keluhan/Rekap/MonalisaKR_LaporUlangKeluhan.ts b/src/report/Monalisa/Keluhan/Rekap/MonalisaKR_LaporUlangKeluhan.ts index 5fdd239..62a5f7b 100644 --- a/src/report/Monalisa/Keluhan/Rekap/MonalisaKR_LaporUlangKeluhan.ts +++ b/src/report/Monalisa/Keluhan/Rekap/MonalisaKR_LaporUlangKeluhan.ts @@ -1,17 +1,4 @@ import { exportDataGrid as exportToExcel } from 'devextreme/excel_exporter' -import { - Document, - AlignmentType, - Packer, - Paragraph, - Table, - TableCell, - TableRow, - VerticalAlign, - TextRun, - WidthType, - PageOrientation -} from 'docx' import { saveAs } from 'file-saver' import { jsPDF } from 'jspdf' import autoTable from 'jspdf-autotable' @@ -19,6 +6,7 @@ import { Workbook } from 'exceljs' import { setHeaderStyle } from '@/report/utils/xlsx' import { formatNumber, formatPercentage } from '@/utils/numbers' import { getMonthName } from '@/utils/texts' +import { exportToWord } from './doc/MonalisaKR_LaporUlangKeluhan' const reportName = 'Rekapitulasi Lapor Ulang Keluhan' const fontSize = 5 @@ -369,4 +357,8 @@ const exportToXLSX = (reportMeta: any, e: any) => { e.cancel = true } -export { exportToPDF, exportToXLSX } +const exportToDOCX = (reportMeta: any, rawData: any) => { + exportToWord(reportMeta, formatData(rawData), reportName) +} + +export { exportToPDF, exportToXLSX, exportToDOCX } diff --git a/src/report/Monalisa/Keluhan/Rekap/MonalisaKR_RecoveryTimeKeluhan.ts b/src/report/Monalisa/Keluhan/Rekap/MonalisaKR_RecoveryTimeKeluhan.ts index 5258b65..bf0b284 100644 --- a/src/report/Monalisa/Keluhan/Rekap/MonalisaKR_RecoveryTimeKeluhan.ts +++ b/src/report/Monalisa/Keluhan/Rekap/MonalisaKR_RecoveryTimeKeluhan.ts @@ -1,17 +1,4 @@ import { exportDataGrid as exportToExcel } from 'devextreme/excel_exporter' -import { - Document, - AlignmentType, - Packer, - Paragraph, - Table, - TableCell, - TableRow, - VerticalAlign, - TextRun, - WidthType, - PageOrientation -} from 'docx' import { saveAs } from 'file-saver' import { jsPDF } from 'jspdf' import autoTable from 'jspdf-autotable' @@ -19,6 +6,7 @@ import { Workbook } from 'exceljs' import { setHeaderStyle } from '@/report/utils/xlsx' import { formatNumber, formatPercentage } from '@/utils/numbers' import { getMonthName } from '@/utils/texts' +import { exportToWord } from './doc/MonalisaKR_RecoveryTimeKeluhan' const reportName = 'Recovery Time (RCT) Keluhan' const fontSize = 5 @@ -380,4 +368,8 @@ const exportToXLSX = (reportMeta: any, e: any) => { e.cancel = true } -export { exportToPDF, exportToXLSX } +const exportToDOCX = (reportMeta: any, rawData: any) => { + exportToWord(reportMeta, formatData(rawData), reportName) +} + +export { exportToPDF, exportToXLSX, exportToDOCX } diff --git a/src/report/Monalisa/Keluhan/Rekap/MonalisaKR_ResponseTimeKeluhan.ts b/src/report/Monalisa/Keluhan/Rekap/MonalisaKR_ResponseTimeKeluhan.ts index 65044a8..c9bcfb3 100644 --- a/src/report/Monalisa/Keluhan/Rekap/MonalisaKR_ResponseTimeKeluhan.ts +++ b/src/report/Monalisa/Keluhan/Rekap/MonalisaKR_ResponseTimeKeluhan.ts @@ -1,17 +1,4 @@ import { exportDataGrid as exportToExcel } from 'devextreme/excel_exporter' -import { - Document, - AlignmentType, - Packer, - Paragraph, - Table, - TableCell, - TableRow, - VerticalAlign, - TextRun, - WidthType, - PageOrientation -} from 'docx' import { saveAs } from 'file-saver' import { jsPDF } from 'jspdf' import autoTable from 'jspdf-autotable' @@ -19,6 +6,7 @@ import { Workbook } from 'exceljs' import { setHeaderStyle } from '@/report/utils/xlsx' import { formatNumber, formatPercentage } from '@/utils/numbers' import { getMonthName } from '@/utils/texts' +import { exportToWord } from './doc/MonalisaKR_ResponseTimeKeluhan' const reportName = 'Response Time (RPT) Keluhan' const fontSize = 5 @@ -380,4 +368,8 @@ const exportToXLSX = (reportMeta: any, e: any) => { e.cancel = true } -export { exportToPDF, exportToXLSX } +const exportToDOCX = (reportMeta: any, rawData: any) => { + exportToWord(reportMeta, formatData(rawData), reportName) +} + +export { exportToPDF, exportToXLSX, exportToDOCX } diff --git a/src/report/Monalisa/Keluhan/Rekap/doc/MonalisaKR_GangguanPerJenisKeluhan.ts b/src/report/Monalisa/Keluhan/Rekap/doc/MonalisaKR_GangguanPerJenisKeluhan.ts new file mode 100644 index 0000000..6aba72b --- /dev/null +++ b/src/report/Monalisa/Keluhan/Rekap/doc/MonalisaKR_GangguanPerJenisKeluhan.ts @@ -0,0 +1,157 @@ +export const exportToWord = (rawMeta: any, rawData: any, reportName: String) => { + const filename = 'Laporan ' + reportName + '.doc' + const day = new Date().toLocaleString('id-ID', { weekday: 'long' }) + const date = new Date().getDate() + const month = new Date().toLocaleString('id-ID', { month: 'long' }) + const year = new Date().getFullYear() + + let tbody = '' + + for (let index = 0; index < rawData.length; index++) { + const element = rawData[index] + + let column = `` + let styleTotal = '' + + for (let i = 0; i < element.length; i++) { + const content = element[i] + const colSpan = content?.colSpan !== undefined ? `colspan="${content.colSpan}"` : '' + + if (content && (content.content === 'TOTAL' || content.content === 'GRAND TOTAL')) { + styleTotal = 'style="background-color: #c0c0c0; font-weight: bold;"' + } + + i === 0 + ? (column += `${content.content || content}`) + : (column += `${content}`) + } + + column += `` + tbody += column + } + + let preHtml = ` + + + + ${reportName} + + + + ` + + const body = ` +
+
+
PT. PLN(Persero)
+ + + + + + + + + + + + + + + + + + + + + + +
UNIT INDUK
:
${ + rawMeta.uid + ? rawMeta.uid.name.toUpperCase() + : 'Semua Unit Induk Distribusi/Wilayah'.toUpperCase() + }
UNIT PELAKSANA PELAYANAN PELANGGAN
:
${ + rawMeta.up3 + ? rawMeta.up3.name.toUpperCase() + : 'Semua Unit Pelaksanaan Pelayanan Pelanggan'.toUpperCase() + }
UNIT LAYANAN PELANGGAN
:
${ + rawMeta.ulp + ? rawMeta.ulp.name.toUpperCase() + : 'Semua Unit Layanan Pelanggan'.toUpperCase() + }
REGIONAL
:
${rawMeta.regional.name.toUpperCase()}
+ +
+
+ + + + + + + + +
${reportName.toUpperCase()}
${rawMeta.periode}
+
+ +
+ + + + + + + + + + + + ${tbody} +
NoID GangguanJenis GangguanJumlah%
+
+ +
+ ` + + const postHtml = '' + const html = preHtml + body + postHtml + const url = 'data:application/vnd.ms-word;charset=utf-8,' + encodeURIComponent(html) + const downloadLink = document.createElement('a') + + document.body.appendChild(downloadLink) + downloadLink.href = url + downloadLink.download = filename + downloadLink.click() + document.body.removeChild(downloadLink) +} diff --git a/src/report/Monalisa/Keluhan/Rekap/doc/MonalisaKR_JumlahDDRPTRCTKeluhan.ts b/src/report/Monalisa/Keluhan/Rekap/doc/MonalisaKR_JumlahDDRPTRCTKeluhan.ts new file mode 100644 index 0000000..fd06099 --- /dev/null +++ b/src/report/Monalisa/Keluhan/Rekap/doc/MonalisaKR_JumlahDDRPTRCTKeluhan.ts @@ -0,0 +1,188 @@ +import { getMonthName } from '@/utils/texts' + +export const exportToWord = (rawMeta: any, rawData: any, reportName: String) => { + const filename = 'Laporan ' + reportName + '.doc' + const day = new Date().toLocaleString('id-ID', { weekday: 'long' }) + const date = new Date().getDate() + const month = new Date().toLocaleString('id-ID', { month: 'long' }) + const year = new Date().getFullYear() + + let tbody = '' + + for (let index = 0; index < rawData.length; index++) { + const element = rawData[index] + + let column = `` + let styleTotal = '' + + for (let i = 0; i < element.length; i++) { + const content = element[i] + const colSpan = content?.colSpan !== undefined ? `colspan="${content.colSpan}"` : '' + + if (content && (content.content === 'TOTAL' || content.content === 'GRAND TOTAL')) { + styleTotal = 'style="background-color: #c0c0c0; font-weight: bold;"' + } + + i === 0 + ? (column += `${content.content || content}`) + : (column += `${content}`) + } + + column += `` + tbody += column + } + + let preHtml = ` + + + + ${reportName} + + + + ` + + const body = ` +
+
+
PT. PLN(Persero)
+ + + + + + + + + + + + + + + + + + + + + + +
UNIT INDUK
:
${ + rawMeta.uid + ? rawMeta.uid.name.toUpperCase() + : 'Semua Unit Induk Distribusi/Wilayah'.toUpperCase() + }
UNIT PELAKSANA PELAYANAN PELANGGAN
:
${ + rawMeta.up3 + ? rawMeta.up3.name.toUpperCase() + : 'Semua Unit Pelaksanaan Pelayanan Pelanggan'.toUpperCase() + }
UNIT LAYANAN PELANGGAN
:
${ + rawMeta.ulp + ? rawMeta.ulp.name.toUpperCase() + : 'Semua Unit Layanan Pelanggan'.toUpperCase() + }
REGIONAL
:
${rawMeta.regional.name.toUpperCase()}
+ +
+
+ + + + + + + + +
${reportName.toUpperCase()}
${rawMeta.periode}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${tbody} +
Nama UnitJumlah dan Durasi RPT & RCT Keluhan
${getMonthName(rawMeta.currentMonth) + ' ' + rawMeta.currentYear}s.d ${getMonthName(rawMeta.currentMonth) + ' ' + rawMeta.currentYear}
Total RPTJumlah KeluhanRPT KeluhanTotal RCTJumlah KeluhanRCT KeluhanTotal RPTJumlah KeluhanRPT KeluhanTotal RCTJumlah KeluhanRCT Keluhan
abc=a/bdef=d/eabc=a/bdef=d/e
+
+ +
+ ` + + const postHtml = '' + const html = preHtml + body + postHtml + const url = 'data:application/vnd.ms-word;charset=utf-8,' + encodeURIComponent(html) + const downloadLink = document.createElement('a') + + document.body.appendChild(downloadLink) + downloadLink.href = url + downloadLink.download = filename + downloadLink.click() + document.body.removeChild(downloadLink) +} diff --git a/src/report/Monalisa/Keluhan/Rekap/doc/MonalisaKR_JumlahKaliKeluhan.ts b/src/report/Monalisa/Keluhan/Rekap/doc/MonalisaKR_JumlahKaliKeluhan.ts new file mode 100644 index 0000000..384a199 --- /dev/null +++ b/src/report/Monalisa/Keluhan/Rekap/doc/MonalisaKR_JumlahKaliKeluhan.ts @@ -0,0 +1,169 @@ +import { getMonthName } from '@/utils/texts' + +export const exportToWord = (rawMeta: any, rawData: any, reportName: String) => { + const filename = 'Laporan ' + reportName + '.doc' + const day = new Date().toLocaleString('id-ID', { weekday: 'long' }) + const date = new Date().getDate() + const month = new Date().toLocaleString('id-ID', { month: 'long' }) + const year = new Date().getFullYear() + + let tbody = '' + + for (let index = 0; index < rawData.length; index++) { + const element = rawData[index] + + let column = `` + let styleTotal = '' + + for (let i = 0; i < element.length; i++) { + const content = element[i] + const colSpan = content?.colSpan !== undefined ? `colspan="${content.colSpan}"` : '' + + if (content && (content.content === 'TOTAL' || content.content === 'GRAND TOTAL')) { + styleTotal = 'style="background-color: #c0c0c0; font-weight: bold;"' + } + + i === 0 + ? (column += `${content.content || content}`) + : (column += `${content}`) + } + + column += `` + tbody += column + } + + let preHtml = ` + + + + ${reportName} + + + + ` + + const body = ` +
+
+
PT. PLN(Persero)
+ + + + + + + + + + + + + + + + + + + + + + +
UNIT INDUK
:
${ + rawMeta.uid + ? rawMeta.uid.name.toUpperCase() + : 'Semua Unit Induk Distribusi/Wilayah'.toUpperCase() + }
UNIT PELAKSANA PELAYANAN PELANGGAN
:
${ + rawMeta.up3 + ? rawMeta.up3.name.toUpperCase() + : 'Semua Unit Pelaksanaan Pelayanan Pelanggan'.toUpperCase() + }
UNIT LAYANAN PELANGGAN
:
${ + rawMeta.ulp + ? rawMeta.ulp.name.toUpperCase() + : 'Semua Unit Layanan Pelanggan'.toUpperCase() + }
REGIONAL
:
${rawMeta.regional.name.toUpperCase()}
+ +
+
+ + + + + + + + +
${reportName.toUpperCase()}
${rawMeta.periode}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + ${tbody} +
NoNama UnitJumlah Kali Gangguan
MOMYOY
${getMonthName(rawMeta.lastMonth)} ${rawMeta.lastYearMoM}${getMonthName(rawMeta.currentMonth)} ${rawMeta.currentYear}%s.d ${getMonthName(rawMeta.currentMonth)} ${rawMeta.lastYear}s.d ${getMonthName(rawMeta.currentMonth)} ${rawMeta.currentYear}%
+
+ +
+ ` + + const postHtml = '' + const html = preHtml + body + postHtml + const url = 'data:application/vnd.ms-word;charset=utf-8,' + encodeURIComponent(html) + const downloadLink = document.createElement('a') + + document.body.appendChild(downloadLink) + downloadLink.href = url + downloadLink.download = filename + downloadLink.click() + document.body.removeChild(downloadLink) +} diff --git a/src/report/Monalisa/Keluhan/Rekap/doc/MonalisaKR_KeluhanBelumSelesai.ts b/src/report/Monalisa/Keluhan/Rekap/doc/MonalisaKR_KeluhanBelumSelesai.ts new file mode 100644 index 0000000..a3239f0 --- /dev/null +++ b/src/report/Monalisa/Keluhan/Rekap/doc/MonalisaKR_KeluhanBelumSelesai.ts @@ -0,0 +1,292 @@ +import { formatWaktu } from '@/components/Form/FiltersType/reference' + +export const exportToWord = (rawMeta: any, rawData: any, reportName: String) => { + const filename = 'Laporan ' + reportName + '.doc' + const day = new Date().toLocaleString('id-ID', { weekday: 'long' }) + const date = new Date().getDate() + const month = new Date().toLocaleString('id-ID', { month: 'long' }) + const year = new Date().getFullYear() + + let tbody = '' + + for (let index = 0; index < rawData.length; index++) { + const element = rawData[index] + + let column = `` + let styleTotal = '' + + for (let i = 0; i < element.length; i++) { + const content = element[i] + const colSpan = content?.colSpan !== undefined ? `colspan="${content.colSpan}"` : '' + + if (content && (content.content === 'TOTAL' || content.content === 'GRAND TOTAL')) { + styleTotal = 'style="background-color: #c0c0c0; font-weight: bold;"' + } + + i === 0 + ? (column += `${content.content || content}`) + : (column += `${content}`) + } + + column += `` + tbody += column + } + + let preHtml = ` + + + + ${reportName} + + + + ` + + const body = ` +
+
+
PT. PLN(Persero)
+ + + + + + + + + + + + + + + + + + + + + + +
UNIT INDUK
:
${ + rawMeta.uid + ? rawMeta.uid.name.toUpperCase() + : 'Semua Unit Induk Distribusi/Wilayah'.toUpperCase() + }
UNIT PELAKSANA PELAYANAN PELANGGAN
:
${ + rawMeta.up3 + ? rawMeta.up3.name.toUpperCase() + : 'Semua Unit Pelaksanaan Pelayanan Pelanggan'.toUpperCase() + }
UNIT LAYANAN PELANGGAN
:
${ + rawMeta.ulp + ? rawMeta.ulp.name.toUpperCase() + : 'Semua Unit Layanan Pelanggan'.toUpperCase() + }
REGIONAL
:
${rawMeta.regional.name.toUpperCase()}
+ +
+
+ + + + + + + + +
${reportName.toUpperCase()}
${rawMeta.periode}
+
+ +
+ + + + + + + + + + + + + + + ${tbody} +
NoNama UnitTahun
KeluhanInformasiTotal
+
+ +
+ ` + + const postHtml = '' + const html = preHtml + body + postHtml + const url = 'data:application/vnd.ms-word;charset=utf-8,' + encodeURIComponent(html) + const downloadLink = document.createElement('a') + + document.body.appendChild(downloadLink) + downloadLink.href = url + downloadLink.download = filename + downloadLink.click() + document.body.removeChild(downloadLink) +} + +export const exportDetailToWord = (rawMeta: any, rawData: any, reportName: String) => { + const filename = 'Laporan Detail ' + reportName + '.doc' + const day = new Date().toLocaleString('id-ID', { weekday: 'long' }) + const date = new Date().getDate() + const month = new Date().toLocaleString('id-ID', { month: 'long' }) + const year = new Date().getFullYear() + + let preHtml = ` + + + + Daftar Detail ${reportName} + + + + ` + + const body = ` +
+
+
PT. PLN(Persero)
+
+ + + + + + + +
${'DAFTAR DETAIL ' + reportName.toUpperCase()}
${rawMeta.periode}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + ${rawData + .map( + (item: any, i: any) => ` + + + + + + + + + + + + + + + + + + ` + ) + .join('')} + +
NoNo LaporanUID/UIWUP3ULPID PelangganNama PelaporAlamat PelaporNo Telp PelaporKeterangan PelaporPenyebabKode GangguanJenis GangguanDurasi Response TimeDurasi Recovery TimeTgl Lapor
${i + 1}${item.no_laporan}${item.nama_uid}${item.nama_ulp}${item.id_pelanggan}${item.nama_pelapor}${item.alamat_pelapor}${item.no_telp_pelapor}${item.keterangan_pelapor}${item.penyebab}${item.kode_gangguan}${item.jenis_gangguan}${item.durasi_response_time ? formatWaktu(item.durasi_response_time) : '-'}${item.durasi_recovery_time ? formatWaktu(item.durasi_recovery_time) : '-'}${item.waktu_lapor}
+
+ +
+ ` + + const postHtml = '' + const html = preHtml + body + postHtml + const url = 'data:application/vnd.ms-word;charset=utf-8,' + encodeURIComponent(html) + const downloadLink = document.createElement('a') + + document.body.appendChild(downloadLink) + downloadLink.href = url + downloadLink.download = filename + downloadLink.click() + document.body.removeChild(downloadLink) +} diff --git a/src/report/Monalisa/Keluhan/Rekap/doc/MonalisaKR_LaporUlangKeluhan.ts b/src/report/Monalisa/Keluhan/Rekap/doc/MonalisaKR_LaporUlangKeluhan.ts new file mode 100644 index 0000000..f506456 --- /dev/null +++ b/src/report/Monalisa/Keluhan/Rekap/doc/MonalisaKR_LaporUlangKeluhan.ts @@ -0,0 +1,169 @@ +import { getMonthName } from '@/utils/texts' + +export const exportToWord = (rawMeta: any, rawData: any, reportName: String) => { + const filename = 'Laporan ' + reportName + '.doc' + const day = new Date().toLocaleString('id-ID', { weekday: 'long' }) + const date = new Date().getDate() + const month = new Date().toLocaleString('id-ID', { month: 'long' }) + const year = new Date().getFullYear() + + let tbody = '' + + for (let index = 0; index < rawData.length; index++) { + const element = rawData[index] + + let column = `` + let styleTotal = '' + + for (let i = 0; i < element.length; i++) { + const content = element[i] + const colSpan = content?.colSpan !== undefined ? `colspan="${content.colSpan}"` : '' + + if (content && (content.content === 'TOTAL' || content.content === 'GRAND TOTAL')) { + styleTotal = 'style="background-color: #c0c0c0; font-weight: bold;"' + } + + i === 0 + ? (column += `${content.content || content}`) + : (column += `${content}`) + } + + column += `` + tbody += column + } + + let preHtml = ` + + + + ${reportName} + + + + ` + + const body = ` +
+
+
PT. PLN(Persero)
+ + + + + + + + + + + + + + + + + + + + + + +
UNIT INDUK
:
${ + rawMeta.uid + ? rawMeta.uid.name.toUpperCase() + : 'Semua Unit Induk Distribusi/Wilayah'.toUpperCase() + }
UNIT PELAKSANA PELAYANAN PELANGGAN
:
${ + rawMeta.up3 + ? rawMeta.up3.name.toUpperCase() + : 'Semua Unit Pelaksanaan Pelayanan Pelanggan'.toUpperCase() + }
UNIT LAYANAN PELANGGAN
:
${ + rawMeta.ulp + ? rawMeta.ulp.name.toUpperCase() + : 'Semua Unit Layanan Pelanggan'.toUpperCase() + }
REGIONAL
:
${rawMeta.regional.name.toUpperCase()}
+ +
+
+ + + + + + + + +
${reportName.toUpperCase()}
${rawMeta.periode}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + ${tbody} +
NoNama UnitLapor Ulang Keluhan
MOMYOY
${getMonthName(rawMeta.lastMonth)} ${rawMeta.lastYearMoM}${getMonthName(rawMeta.currentMonth)} ${rawMeta.currentYear}%s.d ${getMonthName(rawMeta.currentMonth)} ${rawMeta.lastYear}s.d ${getMonthName(rawMeta.currentMonth)} ${rawMeta.currentYear}%
+
+ +
+ ` + + const postHtml = '' + const html = preHtml + body + postHtml + const url = 'data:application/vnd.ms-word;charset=utf-8,' + encodeURIComponent(html) + const downloadLink = document.createElement('a') + + document.body.appendChild(downloadLink) + downloadLink.href = url + downloadLink.download = filename + downloadLink.click() + document.body.removeChild(downloadLink) +} diff --git a/src/report/Monalisa/Keluhan/Rekap/doc/MonalisaKR_RecoveryTimeKeluhan.ts b/src/report/Monalisa/Keluhan/Rekap/doc/MonalisaKR_RecoveryTimeKeluhan.ts new file mode 100644 index 0000000..e44fe9b --- /dev/null +++ b/src/report/Monalisa/Keluhan/Rekap/doc/MonalisaKR_RecoveryTimeKeluhan.ts @@ -0,0 +1,169 @@ +import { getMonthName } from '@/utils/texts' + +export const exportToWord = (rawMeta: any, rawData: any, reportName: String) => { + const filename = 'Laporan ' + reportName + '.doc' + const day = new Date().toLocaleString('id-ID', { weekday: 'long' }) + const date = new Date().getDate() + const month = new Date().toLocaleString('id-ID', { month: 'long' }) + const year = new Date().getFullYear() + + let tbody = '' + + for (let index = 0; index < rawData.length; index++) { + const element = rawData[index] + + let column = `` + let styleTotal = '' + + for (let i = 0; i < element.length; i++) { + const content = element[i] + const colSpan = content?.colSpan !== undefined ? `colspan="${content.colSpan}"` : '' + + if (content && (content.content === 'TOTAL' || content.content === 'GRAND TOTAL')) { + styleTotal = 'style="background-color: #c0c0c0; font-weight: bold;"' + } + + i === 0 + ? (column += `${content.content || content}`) + : (column += `${content}`) + } + + column += `` + tbody += column + } + + let preHtml = ` + + + + ${reportName} + + + + ` + + const body = ` +
+
+
PT. PLN(Persero)
+ + + + + + + + + + + + + + + + + + + + + + +
UNIT INDUK
:
${ + rawMeta.uid + ? rawMeta.uid.name.toUpperCase() + : 'Semua Unit Induk Distribusi/Wilayah'.toUpperCase() + }
UNIT PELAKSANA PELAYANAN PELANGGAN
:
${ + rawMeta.up3 + ? rawMeta.up3.name.toUpperCase() + : 'Semua Unit Pelaksanaan Pelayanan Pelanggan'.toUpperCase() + }
UNIT LAYANAN PELANGGAN
:
${ + rawMeta.ulp + ? rawMeta.ulp.name.toUpperCase() + : 'Semua Unit Layanan Pelanggan'.toUpperCase() + }
REGIONAL
:
${rawMeta.regional.name.toUpperCase()}
+ +
+
+ + + + + + + + +
${reportName.toUpperCase()}
${rawMeta.periode}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + ${tbody} +
NoNama UnitJumlah RCT Kali Keluhan
MOMYOY
${getMonthName(rawMeta.lastMonth)} ${rawMeta.lastYearMoM}${getMonthName(rawMeta.currentMonth)} ${rawMeta.currentYear}%s.d ${getMonthName(rawMeta.currentMonth)} ${rawMeta.lastYear}s.d ${getMonthName(rawMeta.currentMonth)} ${rawMeta.currentYear}%
+
+ +
+ ` + + const postHtml = '' + const html = preHtml + body + postHtml + const url = 'data:application/vnd.ms-word;charset=utf-8,' + encodeURIComponent(html) + const downloadLink = document.createElement('a') + + document.body.appendChild(downloadLink) + downloadLink.href = url + downloadLink.download = filename + downloadLink.click() + document.body.removeChild(downloadLink) +} diff --git a/src/report/Monalisa/Keluhan/Rekap/doc/MonalisaKR_ResponseTimeKeluhan.ts b/src/report/Monalisa/Keluhan/Rekap/doc/MonalisaKR_ResponseTimeKeluhan.ts new file mode 100644 index 0000000..1e89e66 --- /dev/null +++ b/src/report/Monalisa/Keluhan/Rekap/doc/MonalisaKR_ResponseTimeKeluhan.ts @@ -0,0 +1,169 @@ +import { getMonthName } from '@/utils/texts' + +export const exportToWord = (rawMeta: any, rawData: any, reportName: String) => { + const filename = 'Laporan ' + reportName + '.doc' + const day = new Date().toLocaleString('id-ID', { weekday: 'long' }) + const date = new Date().getDate() + const month = new Date().toLocaleString('id-ID', { month: 'long' }) + const year = new Date().getFullYear() + + let tbody = '' + + for (let index = 0; index < rawData.length; index++) { + const element = rawData[index] + + let column = `` + let styleTotal = '' + + for (let i = 0; i < element.length; i++) { + const content = element[i] + const colSpan = content?.colSpan !== undefined ? `colspan="${content.colSpan}"` : '' + + if (content && (content.content === 'TOTAL' || content.content === 'GRAND TOTAL')) { + styleTotal = 'style="background-color: #c0c0c0; font-weight: bold;"' + } + + i === 0 + ? (column += `${content.content || content}`) + : (column += `${content}`) + } + + column += `` + tbody += column + } + + let preHtml = ` + + + + ${reportName} + + + + ` + + const body = ` +
+
+
PT. PLN(Persero)
+ + + + + + + + + + + + + + + + + + + + + + +
UNIT INDUK
:
${ + rawMeta.uid + ? rawMeta.uid.name.toUpperCase() + : 'Semua Unit Induk Distribusi/Wilayah'.toUpperCase() + }
UNIT PELAKSANA PELAYANAN PELANGGAN
:
${ + rawMeta.up3 + ? rawMeta.up3.name.toUpperCase() + : 'Semua Unit Pelaksanaan Pelayanan Pelanggan'.toUpperCase() + }
UNIT LAYANAN PELANGGAN
:
${ + rawMeta.ulp + ? rawMeta.ulp.name.toUpperCase() + : 'Semua Unit Layanan Pelanggan'.toUpperCase() + }
REGIONAL
:
${rawMeta.regional.name.toUpperCase()}
+ +
+
+ + + + + + + + +
${reportName.toUpperCase()}
${rawMeta.periode}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + ${tbody} +
NoNama UnitJumlah RPT Kali Keluhan
MOMYOY
${getMonthName(rawMeta.lastMonth)} ${rawMeta.lastYearMoM}${getMonthName(rawMeta.currentMonth)} ${rawMeta.currentYear}%s.d ${getMonthName(rawMeta.currentMonth)} ${rawMeta.lastYear}s.d ${getMonthName(rawMeta.currentMonth)} ${rawMeta.currentYear}%
+
+ +
+ ` + + const postHtml = '' + const html = preHtml + body + postHtml + const url = 'data:application/vnd.ms-word;charset=utf-8,' + encodeURIComponent(html) + const downloadLink = document.createElement('a') + + document.body.appendChild(downloadLink) + downloadLink.href = url + downloadLink.download = filename + downloadLink.click() + document.body.removeChild(downloadLink) +}