diff --git a/src/components/Pages/Ctt/CTT_LaporanCttKwhPeriksa.vue b/src/components/Pages/Ctt/CTT_LaporanCttKwhPeriksa.vue
index ef949f7..466790b 100755
--- a/src/components/Pages/Ctt/CTT_LaporanCttKwhPeriksa.vue
+++ b/src/components/Pages/Ctt/CTT_LaporanCttKwhPeriksa.vue
@@ -939,7 +939,9 @@ import {
exportToPDF,
exportToXLSX,
exportDetailToPDF,
- exportDetailToXLSX
+ exportDetailToXLSX,
+ exportToDOCX,
+ exportDetailToDOCX
} from '@/report/Ctt/CTT_LaporanCttKwhPeriksa'
const client = apolloClient()
@@ -1013,10 +1015,11 @@ const calculateCustomSummary = (options: any) => {
const onExporting = (e: any) => {
if (e.format === 'pdf') {
- exportToPDF(reportMeta.value, data.value, true)
+ exportToPDF(reportMeta.value, data.value)
} else if (e.format === 'xlsx') {
exportToXLSX(reportMeta.value, e)
} else {
+ exportToDOCX(reportMeta.value, data.value)
}
}
@@ -1026,6 +1029,7 @@ const onExportingDetail = (e: any) => {
} else if (e.format === 'xlsx') {
exportDetailToXLSX(reportMeta.value, e)
} else {
+ exportDetailToDOCX(reportMeta.value, dataSub.value)
}
}
diff --git a/src/report/Ctt/CTT_LaporanCttKwhPeriksa.ts b/src/report/Ctt/CTT_LaporanCttKwhPeriksa.ts
index c3a7066..32b760f 100644
--- a/src/report/Ctt/CTT_LaporanCttKwhPeriksa.ts
+++ b/src/report/Ctt/CTT_LaporanCttKwhPeriksa.ts
@@ -18,6 +18,7 @@ import autoTable from 'jspdf-autotable'
import { Workbook } from 'exceljs'
import { setHeaderStyle } from '@/report/utils/xlsx'
import { formatNumber } from '@/utils/numbers'
+import { exportToWord, exportDetailToWord } from './doc/CTT_LaporanCttKwhPeriksa'
const reportName = 'Laporan CTT & KWH Periksa'
const fontSize = 5
@@ -90,6 +91,7 @@ const formatMetaData = (reportMeta: any) => {
const exportToPDF = (reportMeta: any, rawData: any, preview: boolean = false) => {
const data = formatData(rawData)
+ console.log(data)
const meta = formatMetaData(reportMeta)
const doc = new jsPDF({
orientation: 'landscape'
@@ -522,4 +524,21 @@ const exportDetailToXLSX = (reportMeta: any, e: any) => {
e.cancel = true
}
-export { exportToPDF, exportToXLSX, exportDetailToPDF, exportDetailToXLSX }
+const exportToDOCX = (reportMeta: any, rawData: any) => {
+ const meta = formatMetaData(reportMeta)
+ exportToWord(reportMeta, meta, formatData(rawData), reportName)
+}
+
+const exportDetailToDOCX = (reportMeta: any, rawData: any) => {
+ const meta = formatMetaData(reportMeta)
+ exportDetailToWord(meta, rawData, reportName)
+}
+
+export {
+ exportToPDF,
+ exportToXLSX,
+ exportDetailToPDF,
+ exportDetailToXLSX,
+ exportToDOCX,
+ exportDetailToDOCX
+}
diff --git a/src/report/Ctt/doc/CTT_LaporanCttKwhPeriksa.ts b/src/report/Ctt/doc/CTT_LaporanCttKwhPeriksa.ts
new file mode 100644
index 0000000..ad6ef95
--- /dev/null
+++ b/src/report/Ctt/doc/CTT_LaporanCttKwhPeriksa.ts
@@ -0,0 +1,330 @@
+export const exportToWord = (
+ rawMeta: any,
+ formattedMeta: any,
+ rawData: any,
+ reportName: String
+) => {
+ const filename = 'Laporan ' + reportName + '.doc'
+
+ 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()} |
+
+
+ ${`PERIODE TANGGAL : ${formattedMeta.dateFromFormat} SD TGL ${formattedMeta.dateToFormat}`} |
+
+
+
+
+
+
+
+
+
+ | Nama Unit |
+ Total WO |
+ Rekomendasi Sistem |
+ DLPD |
+ Histori P2LT |
+
+
+ | CC 123 |
+ PLN Mobile |
+ Comcen |
+ Total |
+ Mendatangkan Petugas |
+ Diberikan ke Pelanggan |
+ g |
+ h |
+
+
+ | a |
+ b |
+ c |
+ d=a+b+c |
+ e |
+ f |
+
+
+ ${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 = (formattedMeta: any, rawData: any, reportName: String) => {
+ const filename = 'Laporan Detail ' + reportName + '.doc'
+
+ let preHtml = `
+
+
+
+ Daftar Detail ${reportName}
+
+
+
+ `
+
+ const body = `
+
+
+ PT. PLN(Persero)
+
+
+
+ ${'DAFTAR DETAIL ' + reportName.toUpperCase()} |
+
+
+ ${`PERIODE TANGGAL : ${formattedMeta.dateFromFormat} SD TGL ${formattedMeta.dateToFormat}`} |
+
+
+
+
+
+
+
+
+
+ | No |
+ UIW/D |
+ UP3 |
+ Rayon |
+ IDPEL |
+ NOMETER |
+ No. Telepon |
+ Nama |
+ Alamat |
+ Sumber Lapor |
+ No Laporan |
+ 08 |
+ 70 |
+ 71 |
+ 41 |
+ 44 |
+ 45 |
+ 46 |
+ 37 |
+ 47 |
+ Jenis DLPD |
+ Keterangan DLPD |
+ Bulan Tahun DLPD |
+ No. Agenda P2TL |
+ Tgl Mohon P2T |
+ Tgl Sah P2TL |
+ Rekomendasi Sistem |
+ Tgl/Jam Lapor |
+ Petugas Regu |
+ User VCC |
+
+
+
+ ${
+ rawData
+ ? rawData
+ .map(
+ (item: any, i: any) => `
+
+ | ${i + 1} |
+ ${item.nama_uid} |
+ ${item.nama_up3} |
+ ${item.nama_ulp} |
+ ${item.id_pelanggan} |
+ ${item.nomormeter} |
+ ${item.no_telp_pelapor} |
+ ${item.nama_pelapor} |
+ ${item.alamat_pelapor} |
+ ${item.media} |
+ ${item.no_laporan} |
+ ${item.r08} |
+ ${item.r70} |
+ ${item.r71} |
+ ${item.r41} |
+ ${item.r44} |
+ ${item.r45} |
+ ${item.r46} |
+ ${item.r37} |
+ ${item.r47} |
+ ${item.jenis_dlpd} |
+ ${item.keterangan_dlpd} |
+ ${item.blth_dlpd} |
+ ${item.no_agenda_p2tl} |
+ ${item.tgl_mohon_p2tl} |
+ ${item.tgl_sah_p2tl} |
+ ${item.rekomendasi_sistem} |
+ ${item.waktu_lapor} |
+ ${item.petugas_regu} |
+ ${item.user_vcc} |
+
+ `
+ )
+ .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)
+}