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)
+
+
+
+
+
+
+
+
+ ${reportName.toUpperCase()} |
+
+
+ ${rawMeta.periode} |
+
+
+
+
+
+
+
+
+
+ No |
+ ID Gangguan |
+ Jenis Gangguan |
+ Jumlah |
+ % |
+
+
+ ${tbody}
+
+
+
+
+ `
+
+ 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)
+
+
+
+
+
+
+
+
+ ${reportName.toUpperCase()} |
+
+
+ ${rawMeta.periode} |
+
+
+
+
+
+
+
+
+
+ Nama Unit |
+ Jumlah dan Durasi RPT & RCT Keluhan |
+
+
+ ${getMonthName(rawMeta.currentMonth) + ' ' + rawMeta.currentYear} |
+ s.d ${getMonthName(rawMeta.currentMonth) + ' ' + rawMeta.currentYear} |
+
+
+ Total RPT |
+ Jumlah Keluhan |
+ RPT Keluhan |
+ Total RCT |
+ Jumlah Keluhan |
+ RCT Keluhan |
+ Total RPT |
+ Jumlah Keluhan |
+ RPT Keluhan |
+ Total RCT |
+ Jumlah Keluhan |
+ RCT Keluhan |
+
+
+ a |
+ b |
+ c=a/b |
+ d |
+ e |
+ f=d/e |
+ a |
+ b |
+ c=a/b |
+ d |
+ e |
+ f=d/e |
+
+
+ ${tbody}
+
+
+
+
+ `
+
+ 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)
+
+
+
+
+
+
+
+
+ ${reportName.toUpperCase()} |
+
+
+ ${rawMeta.periode} |
+
+
+
+
+
+
+
+
+
+ No |
+ Nama Unit |
+ Jumlah Kali Gangguan |
+
+
+ MOM |
+ YOY |
+
+
+ ${getMonthName(rawMeta.lastMonth)} ${rawMeta.lastYearMoM} |
+ ${getMonthName(rawMeta.currentMonth)} ${rawMeta.currentYear} |
+ % |
+ s.d ${getMonthName(rawMeta.currentMonth)} ${rawMeta.lastYear} |
+ s.d ${getMonthName(rawMeta.currentMonth)} ${rawMeta.currentYear} |
+ % |
+
+
+ ${tbody}
+
+
+
+
+ `
+
+ 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)
+
+
+
+
+
+
+
+
+ ${reportName.toUpperCase()} |
+
+
+ ${rawMeta.periode} |
+
+
+
+
+
+
+
+
+
+ No |
+ Nama Unit |
+ Tahun |
+
+
+ Keluhan |
+ Informasi |
+ Total |
+
+
+ ${tbody}
+
+
+
+
+ `
+
+ 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} |
+
+
+
+
+
+
+
+
+
+ No |
+ No Laporan |
+ UID/UIW |
+ UP3 |
+ ULP |
+ ID Pelanggan |
+ Nama Pelapor |
+ Alamat Pelapor |
+ No Telp Pelapor |
+ Keterangan Pelapor |
+ Penyebab |
+ Kode Gangguan |
+ Jenis Gangguan |
+ Durasi Response Time |
+ Durasi Recovery Time |
+ Tgl Lapor |
+
+
+
+ ${rawData
+ .map(
+ (item: any, i: any) => `
+
+ ${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} |
+
+ `
+ )
+ .join('')}
+
+
+
+
+
+ `
+
+ 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)
+
+
+
+
+
+
+
+
+ ${reportName.toUpperCase()} |
+
+
+ ${rawMeta.periode} |
+
+
+
+
+
+
+
+
+
+ No |
+ Nama Unit |
+ Lapor Ulang Keluhan |
+
+
+ MOM |
+ YOY |
+
+
+ ${getMonthName(rawMeta.lastMonth)} ${rawMeta.lastYearMoM} |
+ ${getMonthName(rawMeta.currentMonth)} ${rawMeta.currentYear} |
+ % |
+ s.d ${getMonthName(rawMeta.currentMonth)} ${rawMeta.lastYear} |
+ s.d ${getMonthName(rawMeta.currentMonth)} ${rawMeta.currentYear} |
+ % |
+
+
+ ${tbody}
+
+
+
+
+ `
+
+ 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)
+
+
+
+
+
+
+
+
+ ${reportName.toUpperCase()} |
+
+
+ ${rawMeta.periode} |
+
+
+
+
+
+
+
+
+
+ No |
+ Nama Unit |
+ Jumlah RCT Kali Keluhan |
+
+
+ MOM |
+ YOY |
+
+
+ ${getMonthName(rawMeta.lastMonth)} ${rawMeta.lastYearMoM} |
+ ${getMonthName(rawMeta.currentMonth)} ${rawMeta.currentYear} |
+ % |
+ s.d ${getMonthName(rawMeta.currentMonth)} ${rawMeta.lastYear} |
+ s.d ${getMonthName(rawMeta.currentMonth)} ${rawMeta.currentYear} |
+ % |
+
+
+ ${tbody}
+
+
+
+
+ `
+
+ 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)
+
+
+
+
+
+
+
+
+ ${reportName.toUpperCase()} |
+
+
+ ${rawMeta.periode} |
+
+
+
+
+
+
+
+
+
+ No |
+ Nama Unit |
+ Jumlah RPT Kali Keluhan |
+
+
+ MOM |
+ YOY |
+
+
+ ${getMonthName(rawMeta.lastMonth)} ${rawMeta.lastYearMoM} |
+ ${getMonthName(rawMeta.currentMonth)} ${rawMeta.currentYear} |
+ % |
+ s.d ${getMonthName(rawMeta.currentMonth)} ${rawMeta.lastYear} |
+ s.d ${getMonthName(rawMeta.currentMonth)} ${rawMeta.currentYear} |
+ % |
+
+
+ ${tbody}
+
+
+
+
+ `
+
+ 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)
+}