diff --git a/src/assets/css/style.css b/src/assets/css/style.css
index bd90444..79a78a4 100755
--- a/src/assets/css/style.css
+++ b/src/assets/css/style.css
@@ -1073,6 +1073,10 @@ body {
visibility: hidden;
}
+.collapse {
+ visibility: collapse;
+}
+
.static {
position: static;
}
@@ -1895,6 +1899,10 @@ body {
table-layout: fixed;
}
+.border-collapse {
+ border-collapse: collapse;
+}
+
.origin-top-left {
transform-origin: top left;
}
diff --git a/src/components/Pages/Keluhan/Rekap/RKeluhan_ALL.vue b/src/components/Pages/Keluhan/Rekap/RKeluhan_ALL.vue
index 3f32559..fb7b7fe 100755
--- a/src/components/Pages/Keluhan/Rekap/RKeluhan_ALL.vue
+++ b/src/components/Pages/Keluhan/Rekap/RKeluhan_ALL.vue
@@ -758,7 +758,9 @@ import {
exportToPDF,
exportDetailToPDF,
exportToXLSX,
- exportDetailToXLSX
+ exportDetailToXLSX,
+ exportToDOCX,
+ exportDetailToDOCX
} from '@/report/Keluhan/Rekap/RKeluhan_ALL'
import BufferDialog from '@/components/Dialogs/BufferDialog.vue'
@@ -995,6 +997,7 @@ const onExporting = (e: any) => {
} else if (e.format === 'xlsx') {
exportToXLSX(reportMeta.value, e)
} else {
+ exportToDOCX(reportMeta.value, data.value)
}
}
@@ -1004,6 +1007,7 @@ const onExportingDetail = (e: any) => {
} else if (e.format === 'xlsx') {
exportDetailToXLSX(reportMeta.value, e)
} else {
+ exportDetailToDOCX(reportMeta.value, dataSub.value)
}
}
diff --git a/src/components/Pages/Keluhan/Rekap/RKeluhan_BerdasarMedia.vue b/src/components/Pages/Keluhan/Rekap/RKeluhan_BerdasarMedia.vue
index f85c5c4..20d7014 100755
--- a/src/components/Pages/Keluhan/Rekap/RKeluhan_BerdasarMedia.vue
+++ b/src/components/Pages/Keluhan/Rekap/RKeluhan_BerdasarMedia.vue
@@ -478,7 +478,9 @@ import {
exportToPDF,
exportToXLSX,
exportDetailToPDF,
- exportDetailToXLSX
+ exportDetailToXLSX,
+ exportToDOCX,
+ exportDetailToDOCX
} from '@/report/Keluhan/Rekap/RKeluhan_BerdasarMedia'
const client = apolloClient()
@@ -615,6 +617,7 @@ const onExporting = (e: any) => {
} else if (e.format === 'xlsx') {
exportToXLSX(reportMeta.value, e)
} else {
+ exportToDOCX(reportMeta.value, data.value)
}
}
@@ -624,6 +627,7 @@ const onExportingDetail = (e: any) => {
} else if (e.format === 'xlsx') {
exportDetailToXLSX(reportMeta.value, e)
} else {
+ exportDetailToDOCX(reportMeta.value, dataSub.value)
}
}
diff --git a/src/components/Pages/Keluhan/Rekap/RKeluhan_PerFungsiBidang.vue b/src/components/Pages/Keluhan/Rekap/RKeluhan_PerFungsiBidang.vue
index 42a16a9..7d6f44d 100755
--- a/src/components/Pages/Keluhan/Rekap/RKeluhan_PerFungsiBidang.vue
+++ b/src/components/Pages/Keluhan/Rekap/RKeluhan_PerFungsiBidang.vue
@@ -799,7 +799,9 @@ import {
exportToPDF,
exportToXLSX,
exportDetailToPDF,
- exportDetailToXLSX
+ exportDetailToXLSX,
+ exportToDOCX,
+ exportDetailToDOCX
} from '@/report/Keluhan/Rekap/RKeluhan_PerFungsiBidang'
const client = apolloClient()
@@ -951,6 +953,7 @@ const onExporting = (e: any) => {
} else if (e.format === 'xlsx') {
exportToXLSX(reportMeta.value, e)
} else {
+ exportToDOCX(reportMeta.value, data.value)
}
}
@@ -960,6 +963,7 @@ const onExportingDetail = (e: any) => {
} else if (e.format === 'xlsx') {
exportDetailToXLSX(reportMeta.value, e)
} else {
+ exportDetailToDOCX(reportMeta.value, dataSub.value)
}
}
diff --git a/src/components/Pages/Keluhan/Rekap/RKeluhan_PerJenisKeluhan.vue b/src/components/Pages/Keluhan/Rekap/RKeluhan_PerJenisKeluhan.vue
index 4cdd0b6..9a92bcf 100755
--- a/src/components/Pages/Keluhan/Rekap/RKeluhan_PerJenisKeluhan.vue
+++ b/src/components/Pages/Keluhan/Rekap/RKeluhan_PerJenisKeluhan.vue
@@ -943,7 +943,9 @@ import {
exportToPDF,
exportToXLSX,
exportDetailToPDF,
- exportDetailToXLSX
+ exportDetailToXLSX,
+ exportToDOCX,
+ exportDetailToDOCX
} from '@/report/Keluhan/Rekap/RKeluhan_PerJenisKeluhan'
const client = apolloClient()
@@ -1081,6 +1083,7 @@ const onExporting = (e: any) => {
} else if (e.format === 'xlsx') {
exportToXLSX(reportMeta.value, e)
} else {
+ exportToDOCX(reportMeta.value, data.value)
}
}
@@ -1090,6 +1093,7 @@ const onExportingDetail = (e: any) => {
} else if (e.format === 'xlsx') {
exportDetailToXLSX(reportMeta.value, e)
} else {
+ exportDetailToDOCX(reportMeta.value, dataSub.value)
}
}
diff --git a/src/components/Pages/Keluhan/Rekap/RKeluhan_PerKelompokKeluhan.vue b/src/components/Pages/Keluhan/Rekap/RKeluhan_PerKelompokKeluhan.vue
index 24644c1..62e2827 100755
--- a/src/components/Pages/Keluhan/Rekap/RKeluhan_PerKelompokKeluhan.vue
+++ b/src/components/Pages/Keluhan/Rekap/RKeluhan_PerKelompokKeluhan.vue
@@ -805,7 +805,9 @@ import {
exportToPDF,
exportToXLSX,
exportDetailToPDF,
- exportDetailToXLSX
+ exportDetailToXLSX,
+ exportToDOCX,
+ exportDetailToDOCX
} from '@/report/Keluhan/Rekap/RKeluhan_PerKelompokKeluhan'
const client = apolloClient()
@@ -952,6 +954,7 @@ const onExporting = (e: any) => {
} else if (e.format === 'xlsx') {
exportToXLSX(reportMeta.value, e)
} else {
+ exportToDOCX(reportMeta.value, data.value)
}
}
@@ -961,6 +964,7 @@ const onExportingDetail = (e: any) => {
} else if (e.format === 'xlsx') {
exportDetailToXLSX(reportMeta.value, e)
} else {
+ exportDetailToDOCX(reportMeta.value, dataSub.value)
}
}
diff --git a/src/components/Pages/Keluhan/Rekap/RKeluhan_PerTanggal.vue b/src/components/Pages/Keluhan/Rekap/RKeluhan_PerTanggal.vue
index 0becdc4..57abaa2 100755
--- a/src/components/Pages/Keluhan/Rekap/RKeluhan_PerTanggal.vue
+++ b/src/components/Pages/Keluhan/Rekap/RKeluhan_PerTanggal.vue
@@ -808,7 +808,9 @@ import {
exportToPDF,
exportToXLSX,
exportDetailToPDF,
- exportDetailToXLSX
+ exportDetailToXLSX,
+ exportToDOCX,
+ exportDetailToDOCX
} from '@/report/Keluhan/Rekap/RKeluhan_PerTanggal'
const client = apolloClient()
@@ -950,6 +952,7 @@ const onExporting = (e: any) => {
} else if (e.format === 'xlsx') {
exportToXLSX(reportMeta.value, e)
} else {
+ exportToDOCX(reportMeta.value, data.value)
}
}
@@ -959,6 +962,7 @@ const onExportingDetail = (e: any) => {
} else if (e.format === 'xlsx') {
exportDetailToXLSX(reportMeta.value, e)
} else {
+ exportDetailToDOCX(reportMeta.value, dataSub.value)
}
}
diff --git a/src/components/Pages/Keluhan/Rekap/RKeluhan_PerUnit.vue b/src/components/Pages/Keluhan/Rekap/RKeluhan_PerUnit.vue
index 4f7ae3b..5ae97ab 100755
--- a/src/components/Pages/Keluhan/Rekap/RKeluhan_PerUnit.vue
+++ b/src/components/Pages/Keluhan/Rekap/RKeluhan_PerUnit.vue
@@ -938,7 +938,9 @@ import {
exportToPDF,
exportToXLSX,
exportDetailToPDF,
- exportDetailToXLSX
+ exportDetailToXLSX,
+ exportToDOCX,
+ exportDetailToDOCX
} from '@/report/Keluhan/Rekap/RKeluhan_PerUnit'
const client = apolloClient()
@@ -1078,6 +1080,7 @@ const onExporting = (e: any) => {
} else if (e.format === 'xlsx') {
exportToXLSX(reportMeta.value, e)
} else {
+ exportToDOCX(reportMeta.value, data.value)
}
}
@@ -1087,6 +1090,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/Gangguan/Rekap/RGangguan_JenisGangguan.ts b/src/report/Gangguan/Rekap/RGangguan_JenisGangguan.ts
index 93e6cad..593a93f 100644
--- a/src/report/Gangguan/Rekap/RGangguan_JenisGangguan.ts
+++ b/src/report/Gangguan/Rekap/RGangguan_JenisGangguan.ts
@@ -40,6 +40,7 @@ const groupingData = (data: any) => {
const formatData = (rawData: any) => {
const data = groupingData(rawData)
+ console.log(data)
const formattedData: any = []
const grandTotal: any = {
total_laporan: 0,
@@ -59,148 +60,150 @@ const formatData = (rawData: any) => {
total_recovery_time_kurang_sla: 0
}
- for (const sub_kelompok of data) {
- const total: any = {
- total_laporan: 0,
- total_laporan_sudah_selesai: 0,
- total_laporan_belum_selesai: 0,
- total_response_time_total: 0,
- total_response_time_rata_rata: [],
- total_response_time_max: [],
- total_response_time_min: [],
- total_response_time_lebih_sla: 0,
- total_response_time_kurang_sla: 0,
- total_recovery_time_total: 0,
- total_recovery_time_rata_rata: [],
- total_recovery_time_max: [],
- total_recovery_time_min: [],
- total_recovery_time_lebih_sla: 0,
- total_recovery_time_kurang_sla: 0
- }
-
- formattedData.push([
- {
- content: `${sub_kelompok} (${data[sub_kelompok][0].nama_sub_kelompok})`,
- colSpan: 20,
- styles: { fontStyle: 'bold' }
+ for (const sub_kelompok of Object.keys(data)) {
+ if (Object.prototype.hasOwnProperty.call(data, sub_kelompok)) {
+ const total: any = {
+ total_laporan: 0,
+ total_laporan_sudah_selesai: 0,
+ total_laporan_belum_selesai: 0,
+ total_response_time_total: 0,
+ total_response_time_rata_rata: [],
+ total_response_time_max: [],
+ total_response_time_min: [],
+ total_response_time_lebih_sla: 0,
+ total_response_time_kurang_sla: 0,
+ total_recovery_time_total: 0,
+ total_recovery_time_rata_rata: [],
+ total_recovery_time_max: [],
+ total_recovery_time_min: [],
+ total_recovery_time_lebih_sla: 0,
+ total_recovery_time_kurang_sla: 0
}
- ])
- for (let i = 0; i < data[sub_kelompok].length; i++) {
formattedData.push([
- { content: i + 1, styles: { halign: 'right' } },
- data[sub_kelompok][i].kode,
- data[sub_kelompok][i].jenisGangguan,
- formatNumber(data[sub_kelompok][i].laporan.total),
- formatNumber(data[sub_kelompok][i].laporan.sudahSelesai.jml),
- formatPercentage(
- !data[sub_kelompok][i].laporan.sudahSelesai.jml || !data[sub_kelompok][i].laporan.total
- ? '0%'
- : (data[sub_kelompok][i].laporan.sudahSelesai.jml /
- data[sub_kelompok][i].laporan.total) *
- 100
- ),
- formatNumber(data[sub_kelompok][i].laporan.belumSelesai.jml),
- formatPercentage(
- !data[sub_kelompok][i].laporan.belumSelesai.jml || !data[sub_kelompok][i].laporan.total
- ? '0%'
- : (data[sub_kelompok][i].laporan.belumSelesai.jml /
- data[sub_kelompok][i].laporan.total) *
- 100
- ),
- formatNumber(data[sub_kelompok][i].responseTime.menit.total),
- formatNumber(data[sub_kelompok][i].responseTime.menit.rataRata),
- formatWaktu(data[sub_kelompok][i].responseTime.menit.max),
- formatWaktu(data[sub_kelompok][i].responseTime.menit.min),
- formatNumber(data[sub_kelompok][i].responseTime.laporan.lebihSla),
- formatNumber(data[sub_kelompok][i].responseTime.laporan.kurangSla),
- formatNumber(data[sub_kelompok][i].recoveryTime.menit.total),
- formatNumber(data[sub_kelompok][i].recoveryTime.menit.rataRata),
- formatWaktu(data[sub_kelompok][i].recoveryTime.menit.max),
- formatWaktu(data[sub_kelompok][i].recoveryTime.menit.min),
- formatNumber(data[sub_kelompok][i].recoveryTime.laporan.lebihSla),
- formatNumber(data[sub_kelompok][i].recoveryTime.laporan.kurangSla)
+ {
+ content: `${sub_kelompok} (${data[sub_kelompok][0].nama_sub_kelompok})`,
+ colSpan: 20,
+ styles: { fontStyle: 'bold' }
+ }
])
- total.total_laporan += data[sub_kelompok][i].laporan.total
- total.total_laporan_sudah_selesai += data[sub_kelompok][i].laporan.sudahSelesai.jml
- total.total_laporan_belum_selesai += data[sub_kelompok][i].laporan.belumSelesai.jml
- total.total_response_time_total += data[sub_kelompok][i].responseTime.menit.total
- total.total_response_time_rata_rata.push(data[sub_kelompok][i].responseTime.menit.rataRata)
- total.total_response_time_max.push(data[sub_kelompok][i].responseTime.menit.max)
- total.total_response_time_min.push(data[sub_kelompok][i].responseTime.menit.min)
- total.total_response_time_lebih_sla += data[sub_kelompok][i].responseTime.laporan.lebihSla
- total.total_response_time_kurang_sla += data[sub_kelompok][i].responseTime.laporan.kurangSla
- total.total_recovery_time_total += data[sub_kelompok][i].recoveryTime.menit.total
- total.total_recovery_time_rata_rata.push(data[sub_kelompok][i].recoveryTime.menit.rataRata)
- total.total_recovery_time_max.push(data[sub_kelompok][i].recoveryTime.menit.max)
- total.total_recovery_time_min.push(data[sub_kelompok][i].recoveryTime.menit.min)
- total.total_recovery_time_lebih_sla += data[sub_kelompok][i].recoveryTime.laporan.lebihSla
- total.total_recovery_time_kurang_sla += data[sub_kelompok][i].recoveryTime.laporan.kurangSla
+ for (let i = 0; i < data[sub_kelompok].length; i++) {
+ formattedData.push([
+ { content: i + 1, styles: { halign: 'right' } },
+ data[sub_kelompok][i].kode,
+ data[sub_kelompok][i].jenisGangguan,
+ formatNumber(data[sub_kelompok][i].laporan.total),
+ formatNumber(data[sub_kelompok][i].laporan.sudahSelesai.jml),
+ formatPercentage(
+ !data[sub_kelompok][i].laporan.sudahSelesai.jml || !data[sub_kelompok][i].laporan.total
+ ? '0%'
+ : (data[sub_kelompok][i].laporan.sudahSelesai.jml /
+ data[sub_kelompok][i].laporan.total) *
+ 100
+ ),
+ formatNumber(data[sub_kelompok][i].laporan.belumSelesai.jml),
+ formatPercentage(
+ !data[sub_kelompok][i].laporan.belumSelesai.jml || !data[sub_kelompok][i].laporan.total
+ ? '0%'
+ : (data[sub_kelompok][i].laporan.belumSelesai.jml /
+ data[sub_kelompok][i].laporan.total) *
+ 100
+ ),
+ formatNumber(data[sub_kelompok][i].responseTime.menit.total),
+ formatNumber(data[sub_kelompok][i].responseTime.menit.rataRata),
+ formatWaktu(data[sub_kelompok][i].responseTime.menit.max),
+ formatWaktu(data[sub_kelompok][i].responseTime.menit.min),
+ formatNumber(data[sub_kelompok][i].responseTime.laporan.lebihSla),
+ formatNumber(data[sub_kelompok][i].responseTime.laporan.kurangSla),
+ formatNumber(data[sub_kelompok][i].recoveryTime.menit.total),
+ formatNumber(data[sub_kelompok][i].recoveryTime.menit.rataRata),
+ formatWaktu(data[sub_kelompok][i].recoveryTime.menit.max),
+ formatWaktu(data[sub_kelompok][i].recoveryTime.menit.min),
+ formatNumber(data[sub_kelompok][i].recoveryTime.laporan.lebihSla),
+ formatNumber(data[sub_kelompok][i].recoveryTime.laporan.kurangSla)
+ ])
- grandTotal.total_laporan_sudah_selesai += data[sub_kelompok][i].laporan.sudahSelesai.jml
- grandTotal.total_laporan += data[sub_kelompok][i].laporan.total
- grandTotal.total_laporan_belum_selesai += data[sub_kelompok][i].laporan.belumSelesai.jml
- grandTotal.total_response_time_total += data[sub_kelompok][i].responseTime.menit.total
- grandTotal.total_response_time_rata_rata.push(
- data[sub_kelompok][i].responseTime.menit.rataRata
- )
- grandTotal.total_response_time_max.push(data[sub_kelompok][i].responseTime.menit.max)
- grandTotal.total_response_time_min.push(data[sub_kelompok][i].responseTime.menit.min)
- grandTotal.total_response_time_lebih_sla +=
- data[sub_kelompok][i].responseTime.laporan.lebihSla
- grandTotal.total_response_time_kurang_sla +=
- data[sub_kelompok][i].responseTime.laporan.kurangSla
- grandTotal.total_recovery_time_total += data[sub_kelompok][i].recoveryTime.menit.total
- grandTotal.total_recovery_time_rata_rata.push(
- data[sub_kelompok][i].recoveryTime.menit.rataRata
- )
- grandTotal.total_recovery_time_max.push(data[sub_kelompok][i].recoveryTime.menit.max)
- grandTotal.total_recovery_time_min.push(data[sub_kelompok][i].recoveryTime.menit.min)
- grandTotal.total_recovery_time_lebih_sla +=
- data[sub_kelompok][i].recoveryTime.laporan.lebihSla
- grandTotal.total_recovery_time_kurang_sla +=
- data[sub_kelompok][i].recoveryTime.laporan.kurangSla
+ total.total_laporan += data[sub_kelompok][i].laporan.total
+ total.total_laporan_sudah_selesai += data[sub_kelompok][i].laporan.sudahSelesai.jml
+ total.total_laporan_belum_selesai += data[sub_kelompok][i].laporan.belumSelesai.jml
+ total.total_response_time_total += data[sub_kelompok][i].responseTime.menit.total
+ total.total_response_time_rata_rata.push(data[sub_kelompok][i].responseTime.menit.rataRata)
+ total.total_response_time_max.push(data[sub_kelompok][i].responseTime.menit.max)
+ total.total_response_time_min.push(data[sub_kelompok][i].responseTime.menit.min)
+ total.total_response_time_lebih_sla += data[sub_kelompok][i].responseTime.laporan.lebihSla
+ total.total_response_time_kurang_sla += data[sub_kelompok][i].responseTime.laporan.kurangSla
+ total.total_recovery_time_total += data[sub_kelompok][i].recoveryTime.menit.total
+ total.total_recovery_time_rata_rata.push(data[sub_kelompok][i].recoveryTime.menit.rataRata)
+ total.total_recovery_time_max.push(data[sub_kelompok][i].recoveryTime.menit.max)
+ total.total_recovery_time_min.push(data[sub_kelompok][i].recoveryTime.menit.min)
+ total.total_recovery_time_lebih_sla += data[sub_kelompok][i].recoveryTime.laporan.lebihSla
+ total.total_recovery_time_kurang_sla += data[sub_kelompok][i].recoveryTime.laporan.kurangSla
+
+ grandTotal.total_laporan_sudah_selesai += data[sub_kelompok][i].laporan.sudahSelesai.jml
+ grandTotal.total_laporan += data[sub_kelompok][i].laporan.total
+ grandTotal.total_laporan_belum_selesai += data[sub_kelompok][i].laporan.belumSelesai.jml
+ grandTotal.total_response_time_total += data[sub_kelompok][i].responseTime.menit.total
+ grandTotal.total_response_time_rata_rata.push(
+ data[sub_kelompok][i].responseTime.menit.rataRata
+ )
+ grandTotal.total_response_time_max.push(data[sub_kelompok][i].responseTime.menit.max)
+ grandTotal.total_response_time_min.push(data[sub_kelompok][i].responseTime.menit.min)
+ grandTotal.total_response_time_lebih_sla +=
+ data[sub_kelompok][i].responseTime.laporan.lebihSla
+ grandTotal.total_response_time_kurang_sla +=
+ data[sub_kelompok][i].responseTime.laporan.kurangSla
+ grandTotal.total_recovery_time_total += data[sub_kelompok][i].recoveryTime.menit.total
+ grandTotal.total_recovery_time_rata_rata.push(
+ data[sub_kelompok][i].recoveryTime.menit.rataRata
+ )
+ grandTotal.total_recovery_time_max.push(data[sub_kelompok][i].recoveryTime.menit.max)
+ grandTotal.total_recovery_time_min.push(data[sub_kelompok][i].recoveryTime.menit.min)
+ grandTotal.total_recovery_time_lebih_sla +=
+ data[sub_kelompok][i].recoveryTime.laporan.lebihSla
+ grandTotal.total_recovery_time_kurang_sla +=
+ data[sub_kelompok][i].recoveryTime.laporan.kurangSla
+ }
+
+ formattedData.push([
+ { content: 'TOTAL', colSpan: 3, styles: { fontStyle: 'bold' } },
+ formatNumber(total.total_laporan),
+ formatNumber(total.total_laporan_sudah_selesai),
+ formatPercentage(
+ !total.total_laporan_sudah_selesai || !total.total_laporan
+ ? '0%'
+ : (total.total_laporan_sudah_selesai / total.total_laporan) * 100
+ ),
+ formatNumber(total.total_laporan_belum_selesai),
+ formatPercentage(
+ !total.total_laporan_belum_selesai || !total.total_laporan
+ ? '0%'
+ : (total.total_laporan_belum_selesai / total.total_laporan) * 100
+ ),
+ formatNumber(total.total_response_time_total),
+ formatNumber(
+ total.total_response_time_rata_rata.length
+ ? total.total_response_time_rata_rata.reduce((a: any, b: any) => a + b) /
+ total.total_response_time_rata_rata.length
+ : 0
+ ),
+ formatWaktu(Math.max(...total.total_response_time_max)),
+ formatWaktu(Math.min(...total.total_response_time_min)),
+ formatNumber(total.total_response_time_lebih_sla),
+ formatNumber(total.total_response_time_kurang_sla),
+ formatNumber(total.total_recovery_time_total),
+ formatNumber(
+ total.total_recovery_time_rata_rata.length
+ ? total.total_recovery_time_rata_rata.reduce((a: any, b: any) => a + b) /
+ total.total_recovery_time_rata_rata.length
+ : 0
+ ),
+ formatWaktu(Math.max(...total.total_recovery_time_max)),
+ formatWaktu(Math.min(...total.total_recovery_time_min)),
+ formatNumber(total.total_recovery_time_lebih_sla),
+ formatNumber(total.total_recovery_time_kurang_sla)
+ ])
}
-
- formattedData.push([
- { content: 'TOTAL', colSpan: 3, styles: { fontStyle: 'bold' } },
- formatNumber(total.total_laporan),
- formatNumber(total.total_laporan_sudah_selesai),
- formatPercentage(
- !total.total_laporan_sudah_selesai || !total.total_laporan
- ? '0%'
- : (total.total_laporan_sudah_selesai / total.total_laporan) * 100
- ),
- formatNumber(total.total_laporan_belum_selesai),
- formatPercentage(
- !total.total_laporan_belum_selesai || !total.total_laporan
- ? '0%'
- : (total.total_laporan_belum_selesai / total.total_laporan) * 100
- ),
- formatNumber(total.total_response_time_total),
- formatNumber(
- total.total_response_time_rata_rata.length
- ? total.total_response_time_rata_rata.reduce((a: any, b: any) => a + b) /
- total.total_response_time_rata_rata.length
- : 0
- ),
- formatWaktu(Math.max(...total.total_response_time_max)),
- formatWaktu(Math.min(...total.total_response_time_min)),
- formatNumber(total.total_response_time_lebih_sla),
- formatNumber(total.total_response_time_kurang_sla),
- formatNumber(total.total_recovery_time_total),
- formatNumber(
- total.total_recovery_time_rata_rata.length
- ? total.total_recovery_time_rata_rata.reduce((a: any, b: any) => a + b) /
- total.total_recovery_time_rata_rata.length
- : 0
- ),
- formatWaktu(Math.max(...total.total_recovery_time_max)),
- formatWaktu(Math.min(...total.total_recovery_time_min)),
- formatNumber(total.total_recovery_time_lebih_sla),
- formatNumber(total.total_recovery_time_kurang_sla)
- ])
}
formattedData.push([
diff --git a/src/report/Keluhan/Rekap/RKeluhan_ALL.ts b/src/report/Keluhan/Rekap/RKeluhan_ALL.ts
index 5975f41..09085b0 100644
--- a/src/report/Keluhan/Rekap/RKeluhan_ALL.ts
+++ b/src/report/Keluhan/Rekap/RKeluhan_ALL.ts
@@ -19,6 +19,7 @@ import { Workbook } from 'exceljs'
import { formatWaktu } from '@/components/Form/FiltersType/reference'
import { setHeaderStyle } from '@/report/utils/xlsx'
import { formatNumber, formatPercentage } from '@/utils/numbers'
+import { exportToWord, exportDetailToWord } from './doc/RKeluhan_ALL'
const reportName = 'Rekapitulasi Keluhan All'
const fontSize = 5
@@ -240,6 +241,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'
@@ -646,4 +648,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/Keluhan/Rekap/RKeluhan_BerdasarMedia.ts b/src/report/Keluhan/Rekap/RKeluhan_BerdasarMedia.ts
index 2654886..1f02fcb 100644
--- a/src/report/Keluhan/Rekap/RKeluhan_BerdasarMedia.ts
+++ b/src/report/Keluhan/Rekap/RKeluhan_BerdasarMedia.ts
@@ -18,6 +18,8 @@ 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/RKeluhan_BerdasarMedia'
+import { formatWaktu } from '@/components/Form/FiltersType/reference'
const reportName = 'Rekapitulasi Keluhan Berdasarkan Media'
const fontSize = 5
@@ -348,8 +350,8 @@ const exportDetailToPDF = (reportMeta: any, rawData: any) => {
item.waktu_lapor,
item.waktu_response,
item.waktu_recovery,
- item.durasi_response_time,
- item.durasi_recovery_time,
+ item.durasi_response_time ? formatWaktu(item.durasi_response_time) : '-',
+ item.durasi_recovery_time ? formatWaktu(item.durasi_recovery_time) : '-',
item.status_akhir,
item.idpel_nometer,
item.nama_pelapor,
@@ -526,4 +528,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/Keluhan/Rekap/RKeluhan_PerFungsiBidang.ts b/src/report/Keluhan/Rekap/RKeluhan_PerFungsiBidang.ts
index b82669d..13f8432 100644
--- a/src/report/Keluhan/Rekap/RKeluhan_PerFungsiBidang.ts
+++ b/src/report/Keluhan/Rekap/RKeluhan_PerFungsiBidang.ts
@@ -19,6 +19,7 @@ import { Workbook } from 'exceljs'
import { formatWaktu } from '@/components/Form/FiltersType/reference'
import { setHeaderStyle } from '@/report/utils/xlsx'
import { formatNumber, formatPercentage } from '@/utils/numbers'
+import { exportToWord, exportDetailToWord } from './doc/RKeluhan_PerFungsiBidang'
const reportName = 'Rekapitulasi Keluhan Per Fungsi Bidang'
const fontSize = 5
@@ -576,8 +577,8 @@ const exportDetailToPDF = (reportMeta: any, rawData: any) => {
item.waktu_lapor,
'',
'',
- item.durasi_response_time,
- item.durasi_recovery_time,
+ item.durasi_response_time ? formatWaktu(item.durasi_response_time) : '-',
+ item.durasi_recovery_time ? formatWaktu(item.durasi_recovery_time) : '-',
'',
item.idpel_nometer,
item.nama_pelapor,
@@ -754,4 +755,21 @@ const exportDetailToXLSX = (reportMeta: any, e: any) => {
e.cancel = true
}
-export { exportToPDF, exportDetailToPDF, exportToXLSX, exportDetailToXLSX }
+const exportToDOCX = (reportMeta: any, rawData: any) => {
+ const meta = formatMetaData(reportMeta)
+ exportToWord(reportMeta, meta, formatData(rawData, reportMeta.groupBy), reportName)
+}
+
+const exportDetailToDOCX = (reportMeta: any, rawData: any) => {
+ const meta = formatMetaData(reportMeta)
+ exportDetailToWord(meta, rawData, reportName)
+}
+
+export {
+ exportToPDF,
+ exportDetailToPDF,
+ exportToXLSX,
+ exportDetailToXLSX,
+ exportToDOCX,
+ exportDetailToDOCX
+}
diff --git a/src/report/Keluhan/Rekap/RKeluhan_PerJenisKeluhan.ts b/src/report/Keluhan/Rekap/RKeluhan_PerJenisKeluhan.ts
index 000d401..b07e6b2 100644
--- a/src/report/Keluhan/Rekap/RKeluhan_PerJenisKeluhan.ts
+++ b/src/report/Keluhan/Rekap/RKeluhan_PerJenisKeluhan.ts
@@ -19,6 +19,7 @@ import { Workbook } from 'exceljs'
import { formatWaktu } from '@/components/Form/FiltersType/reference'
import { setHeaderStyle } from '@/report/utils/xlsx'
import { formatNumber, formatPercentage } from '@/utils/numbers'
+import { exportToWord, exportDetailToWord } from './doc/RKeluhan_PerJenisKeluhan'
const reportName = 'Rekapitulasi Keluhan Per Jenis Keluhan'
const fontSize = 5
@@ -549,8 +550,8 @@ const exportDetailToPDF = (reportMeta: any, rawData: any) => {
item.waktu_lapor,
item.waktu_response,
item.waktu_recovery,
- item.durasi_response_time,
- item.durasi_recovery_time,
+ item.durasi_response_time ? formatWaktu(item.durasi_response_time) : '-',
+ item.durasi_recovery_time ? formatWaktu(item.durasi_recovery_time) : '-',
item.status_akhir,
item.idpel_nometer,
item.nama_pelapor,
@@ -727,4 +728,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/Keluhan/Rekap/RKeluhan_PerKelompokKeluhan.ts b/src/report/Keluhan/Rekap/RKeluhan_PerKelompokKeluhan.ts
index 169c4e2..deff4f9 100644
--- a/src/report/Keluhan/Rekap/RKeluhan_PerKelompokKeluhan.ts
+++ b/src/report/Keluhan/Rekap/RKeluhan_PerKelompokKeluhan.ts
@@ -19,6 +19,7 @@ import { Workbook } from 'exceljs'
import { formatWaktu } from '@/components/Form/FiltersType/reference'
import { setHeaderStyle } from '@/report/utils/xlsx'
import { formatNumber, formatPercentage } from '@/utils/numbers'
+import { exportToWord, exportDetailToWord } from './doc/RKeluhan_PerKelompokKeluhan'
const reportName = 'Rekapitulasi Keluhan Per Kelompok Keluhan'
const fontSize = 5
@@ -576,8 +577,8 @@ const exportDetailToPDF = (reportMeta: any, rawData: any) => {
item.waktu_lapor,
item.waktu_response,
item.waktu_recovery,
- item.durasi_response_time,
- item.durasi_recovery_time,
+ item.durasi_response_time ? formatWaktu(item.durasi_response_time) : '-',
+ item.durasi_recovery_time ? formatWaktu(item.durasi_recovery_time) : '-',
item.status_akhir,
item.idpel_nometer,
item.nama_pelapor,
@@ -754,4 +755,21 @@ const exportDetailToXLSX = (reportMeta: any, e: any) => {
e.cancel = true
}
-export { exportToPDF, exportDetailToPDF, exportToXLSX, exportDetailToXLSX }
+const exportToDOCX = (reportMeta: any, rawData: any) => {
+ const meta = formatMetaData(reportMeta)
+ exportToWord(reportMeta, meta, formatData(rawData, reportMeta.groupBy), reportName)
+}
+
+const exportDetailToDOCX = (reportMeta: any, rawData: any) => {
+ const meta = formatMetaData(reportMeta)
+ exportDetailToWord(meta, rawData, reportName)
+}
+
+export {
+ exportToPDF,
+ exportDetailToPDF,
+ exportToXLSX,
+ exportDetailToXLSX,
+ exportToDOCX,
+ exportDetailToDOCX
+}
diff --git a/src/report/Keluhan/Rekap/RKeluhan_PerTanggal.ts b/src/report/Keluhan/Rekap/RKeluhan_PerTanggal.ts
index 6149313..eca8657 100644
--- a/src/report/Keluhan/Rekap/RKeluhan_PerTanggal.ts
+++ b/src/report/Keluhan/Rekap/RKeluhan_PerTanggal.ts
@@ -19,6 +19,7 @@ import { Workbook } from 'exceljs'
import { formatWaktu } from '@/components/Form/FiltersType/reference'
import { setHeaderStyle } from '@/report/utils/xlsx'
import { formatNumber, formatPercentage } from '@/utils/numbers'
+import { exportToWord, exportDetailToWord } from './doc/RKeluhan_PerTanggal'
const reportName = 'Rekapitulasi Keluhan Per Tanggal'
const fontSize = 5
@@ -576,8 +577,8 @@ const exportDetailToPDF = (reportMeta: any, rawData: any) => {
item.waktu_lapor,
item.waktu_response,
item.waktu_recovery,
- item.durasi_response_time,
- item.durasi_recovery_time,
+ item.durasi_response_time ? formatWaktu(item.durasi_response_time) : '-',
+ item.durasi_recovery_time ? formatWaktu(item.durasi_recovery_time) : '-',
item.status_akhir,
item.idpel_nometer,
item.nama_pelapor,
@@ -754,4 +755,21 @@ const exportDetailToXLSX = (reportMeta: any, e: any) => {
e.cancel = true
}
-export { exportToPDF, exportDetailToPDF, exportToXLSX, exportDetailToXLSX }
+const exportToDOCX = (reportMeta: any, rawData: any) => {
+ const meta = formatMetaData(reportMeta)
+ exportToWord(reportMeta, meta, formatData(rawData, reportMeta.groupBy), reportName)
+}
+
+const exportDetailToDOCX = (reportMeta: any, rawData: any) => {
+ const meta = formatMetaData(reportMeta)
+ exportDetailToWord(meta, rawData, reportName)
+}
+
+export {
+ exportToPDF,
+ exportDetailToPDF,
+ exportToXLSX,
+ exportDetailToXLSX,
+ exportToDOCX,
+ exportDetailToDOCX
+}
diff --git a/src/report/Keluhan/Rekap/RKeluhan_PerUnit.ts b/src/report/Keluhan/Rekap/RKeluhan_PerUnit.ts
index d7ce089..3654bb7 100644
--- a/src/report/Keluhan/Rekap/RKeluhan_PerUnit.ts
+++ b/src/report/Keluhan/Rekap/RKeluhan_PerUnit.ts
@@ -19,6 +19,7 @@ import { Workbook } from 'exceljs'
import { formatWaktu } from '@/components/Form/FiltersType/reference'
import { setHeaderStyle } from '@/report/utils/xlsx'
import { formatNumber, formatPercentage } from '@/utils/numbers'
+import { exportToWord, exportDetailToWord } from './doc/RKeluhan_PerUnit'
const reportName = 'Rekapitulasi Keluhan Per Unit'
const fontSize = 5
@@ -526,8 +527,8 @@ const exportDetailToPDF = (reportMeta: any, rawData: any) => {
item.waktu_lapor,
item.waktu_response,
item.waktu_recovery,
- item.durasi_response_time,
- item.durasi_recovery_time,
+ item.durasi_response_time ? formatWaktu(item.durasi_response_time) : '-',
+ item.durasi_recovery_time ? formatWaktu(item.durasi_recovery_time) : '-',
item.status_akhir,
item.idpel_nometer,
item.nama_pelapor,
@@ -693,4 +694,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/Keluhan/Rekap/doc/RKeluhan_ALL.ts b/src/report/Keluhan/Rekap/doc/RKeluhan_ALL.ts
new file mode 100644
index 0000000..bc286d4
--- /dev/null
+++ b/src/report/Keluhan/Rekap/doc/RKeluhan_ALL.ts
@@ -0,0 +1,298 @@
+import { formatWaktu } from '@/components/Form/FiltersType/reference'
+
+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 === 'TOTAL') {
+ styleTotal = 'style="background-color: #c0c0c0; font-weight: bold;"'
+ }
+
+ i === 0
+ ? (column += `${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}`} |
+
+
+
+
+
+
+
+
+
+ No |
+ Nama Unit |
+ Response Time |
+ Penyelesaian |
+
+
+ Total |
+ Selesai |
+ % |
+ InProses |
+ % |
+ Rata-Rata |
+ Max |
+ Min |
+ >SLA |
+
+ Rata-Rata |
+ Max |
+ Min |
+ >SLA |
+
+ | |
+
+ ${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 |
+ No Laporan |
+ Tgl Lapor |
+ Dalam Proses Bidang |
+ Selesai Bidang Unit |
+ Durasi Response Time |
+ Durasi Recovery Time |
+ Status |
+ IDPEL/NO METER |
+ Nama Pelapor |
+ Alamat Pelapor |
+ No Telp Pelapor |
+ Keterangan Pelapor |
+ Rayon |
+ Uraian |
+ Response Pelanggan |
+
+
+
+ ${rawData
+ .map(
+ (item: any, i: any) => `
+
+ ${i + 1} |
+ ${item.no_laporan} |
+ ${item.waktu_lapor} |
+ ${item.waktu_response} |
+ ${item.waktu_recovery} |
+ ${item.durasi_response_time ? formatWaktu(item.durasi_response_time) : '-'} |
+ ${item.durasi_recovery_time ? formatWaktu(item.durasi_recovery_time) : '-'} |
+ ${item.status_akhir} |
+ ${item.idpel_nometer} |
+ ${item.nama_pelapor} |
+ ${item.alamat_pelapor} |
+ ${item.no_telp_pelapor} |
+ ${item.keterangan_pelapor} |
+ ${item.nama_ulp} |
+ ${item.uraian} |
+ ${item.respon_pelanggan} |
+
+ `
+ )
+ .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/Keluhan/Rekap/doc/RKeluhan_BerdasarMedia.ts b/src/report/Keluhan/Rekap/doc/RKeluhan_BerdasarMedia.ts
new file mode 100644
index 0000000..0fd992d
--- /dev/null
+++ b/src/report/Keluhan/Rekap/doc/RKeluhan_BerdasarMedia.ts
@@ -0,0 +1,288 @@
+import { formatWaktu } from '@/components/Form/FiltersType/reference'
+
+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} | `)
+ : (column += `${content} | `)
+ }
+
+ column += `
`
+ tbody += column
+ }
+
+ let columnTanggal = ''
+ for (let i = 1; i <= 31; i++) {
+ columnTanggal += `${i} | `
+ }
+
+ let preHtml = `
+
+
+
+ ${reportName}
+
+
+
+ `
+
+ const body = `
+
+
+ PT. PLN(Persero)
+
+
+
+
+
+
+
+
+ ${reportName.toUpperCase()} |
+
+
+ ${`PERIODE TANGGAL : ${formattedMeta.dateFromFormat} SD TGL ${formattedMeta.dateToFormat}`} |
+
+
+
+
+
+
+
+
+
+ No |
+ Nama Media |
+ Tanggal |
+
+
+ ${columnTanggal}
+
+
+ ${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 |
+ No Laporan |
+ Tgl Lapor |
+ Dalam Proses Bidang |
+ Selesai Bidang Unit |
+ Durasi Response Time |
+ Durasi Recovery Time |
+ Status |
+ IDPEL/NO METER |
+ Nama Pelapor |
+ Alamat Pelapor |
+ No Telp Pelapor |
+ Keterangan Pelapor |
+ Rayon |
+ Uraian |
+ Response Pelanggan |
+
+
+
+ ${rawData
+ .map(
+ (item: any, i: any) => `
+
+ ${i + 1} |
+ ${item.no_laporan} |
+ ${item.waktu_lapor} |
+ ${item.waktu_response} |
+ ${item.waktu_recovery} |
+ ${item.durasi_response_time ? formatWaktu(item.durasi_response_time) : '-'} |
+ ${item.durasi_recovery_time ? formatWaktu(item.durasi_recovery_time) : '-'} |
+ ${item.status_akhir} |
+ ${item.idpel_nometer} |
+ ${item.nama_pelapor} |
+ ${item.alamat_pelapor} |
+ ${item.no_telp_pelapor} |
+ ${item.keterangan_pelapor} |
+ ${item.nama_ulp} |
+ ${item.uraian} |
+ ${item.respon_pelanggan} |
+
+ `
+ )
+ .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/Keluhan/Rekap/doc/RKeluhan_PerFungsiBidang.ts b/src/report/Keluhan/Rekap/doc/RKeluhan_PerFungsiBidang.ts
new file mode 100644
index 0000000..4fa1fdb
--- /dev/null
+++ b/src/report/Keluhan/Rekap/doc/RKeluhan_PerFungsiBidang.ts
@@ -0,0 +1,303 @@
+import { formatWaktu } from '@/components/Form/FiltersType/reference'
+
+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} | `)
+ : (column += `${content} | `)
+ }
+
+ column += `
`
+ tbody += column
+ }
+
+ let preHtml = `
+
+
+
+ ${reportName}
+
+
+
+ `
+
+ const body = `
+
+
+ PT. PLN(Persero)
+
+
+
+
+
+
+
+
+ ${reportName.toUpperCase()} |
+
+
+ ${`PERIODE TANGGAL : ${formattedMeta.dateFromFormat} SD TGL ${formattedMeta.dateToFormat}`} |
+
+
+
+
+
+
+
+
+
+ No |
+ Fungsi Bidang |
+ Laporan |
+ Response Time |
+ Penyelesaian |
+
+
+ Total |
+ % |
+ Total |
+ % |
+ Hari |
+ Laporan |
+ Hari |
+ Laporan |
+
+
+ Rata-Rata |
+ Max |
+ Min |
+ >Sla |
+
+ Total |
+ Rata-Rata |
+ Max |
+ Min |
+ >Sla |
+
+ | |
+
+ ${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 |
+ No Laporan |
+ Tgl Lapor |
+ Dalam Proses Bidang |
+ Selesai Bidang Unit |
+ Durasi Response Time |
+ Durasi Recovery Time |
+ Status |
+ IDPEL/NO METER |
+ Nama Pelapor |
+ Alamat Pelapor |
+ No Telp Pelapor |
+ Keterangan Pelapor |
+ Rayon |
+ Uraian |
+ Response Pelanggan |
+
+
+
+ ${rawData.map(
+ (item: any, i: any) => `
+
+ ${i + 1} |
+ ${item.no_laporan} |
+ ${item.waktu_lapor} |
+ |
+ |
+ ${item.durasi_response_time ? formatWaktu(item.durasi_response_time) : '-'} |
+ ${item.durasi_recovery_time ? formatWaktu(item.durasi_recovery_time) : '-'} |
+ |
+ ${item.idpel_nometer} |
+ ${item.nama_pelapor} |
+ ${item.alamat_pelapor} |
+ ${item.no_telp_pelapor} |
+ ${item.keterangan_pelapor} |
+ |
+ |
+ |
+
+ `
+ )}
+
+
+
+
+
+ `
+
+ 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/Keluhan/Rekap/doc/RKeluhan_PerJenisKeluhan.ts b/src/report/Keluhan/Rekap/doc/RKeluhan_PerJenisKeluhan.ts
new file mode 100644
index 0000000..0cb232f
--- /dev/null
+++ b/src/report/Keluhan/Rekap/doc/RKeluhan_PerJenisKeluhan.ts
@@ -0,0 +1,307 @@
+import { formatWaktu } from '@/components/Form/FiltersType/reference'
+
+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} | `)
+ : (column += `${content} | `)
+ }
+
+ column += `
`
+ tbody += column
+ }
+
+ let preHtml = `
+
+
+
+ ${reportName}
+
+
+
+ `
+
+ const body = `
+
+
+ PT. PLN(Persero)
+
+
+
+
+
+
+
+
+ ${reportName.toUpperCase()} |
+
+
+ ${`PERIODE TANGGAL : ${formattedMeta.dateFromFormat} SD TGL ${formattedMeta.dateToFormat}`} |
+
+
+
+
+
+
+
+
+
+ No |
+ Jenis Keluhan |
+ Laporan |
+ Response Time |
+ Penyelesaian |
+
+
+ Total |
+ Sudah Selesai |
+ Belum Selesai |
+ Hari |
+ Laporan |
+ Hari |
+ Laporan |
+
+
+ Jml |
+ % |
+ Jml |
+ % |
+ Total |
+ Rata-Rata |
+ Max |
+ Min |
+ >Sla |
+
+ Total |
+ Rata-Rata |
+ Max |
+ Min |
+ >Sla |
+
+ | |
+
+ ${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 |
+ No Laporan |
+ Tgl Lapor |
+ Dalam Proses Bidang |
+ Selesai Bidang Unit |
+ Durasi Response Time |
+ Durasi Recovery Time |
+ Status |
+ IDPEL/NO METER |
+ Nama Pelapor |
+ Alamat Pelapor |
+ No Telp Pelapor |
+ Keterangan Pelapor |
+ Rayon |
+ Uraian |
+ Response Pelanggan |
+
+
+
+ ${rawData.map(
+ (item: any, i: any) => `
+
+ ${i + 1} |
+ ${item.no_laporan} |
+ ${item.waktu_lapor} |
+ ${item.waktu_response} |
+ ${item.waktu_recovery} |
+ ${item.durasi_response_time ? formatWaktu(item.durasi_response_time) : '-'} |
+ ${item.durasi_recovery_time ? formatWaktu(item.durasi_recovery_time) : '-'} |
+ ${item.status_akhir} |
+ ${item.idpel_nometer} |
+ ${item.nama_pelapor} |
+ ${item.alamat_pelapor} |
+ ${item.no_telp_pelapor} |
+ ${item.keterangan_pelapor} |
+ ${item.nama_ulp} |
+ ${item.uraian} |
+ ${item.respon_pelanggan} |
+
+ `
+ )}
+
+
+
+
+
+ `
+
+ 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/Keluhan/Rekap/doc/RKeluhan_PerKelompokKeluhan.ts b/src/report/Keluhan/Rekap/doc/RKeluhan_PerKelompokKeluhan.ts
new file mode 100644
index 0000000..9c4e1ba
--- /dev/null
+++ b/src/report/Keluhan/Rekap/doc/RKeluhan_PerKelompokKeluhan.ts
@@ -0,0 +1,309 @@
+import { formatWaktu } from '@/components/Form/FiltersType/reference'
+
+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} | `)
+ : (column += `${content} | `)
+ }
+
+ column += `
`
+ tbody += column
+ }
+
+ let preHtml = `
+
+
+
+ ${reportName}
+
+
+
+ `
+
+ const body = `
+
+
+ PT. PLN(Persero)
+
+
+
+
+
+
+
+
+ ${reportName.toUpperCase()} |
+
+
+ ${`PERIODE TANGGAL : ${formattedMeta.dateFromFormat} SD TGL ${formattedMeta.dateToFormat}`} |
+
+
+
+
+
+
+
+
+
+ No |
+ Kelompok Keluhan |
+ Laporan |
+ Response Time |
+ Penyelesaian |
+
+
+ Total |
+ Sudah Selesai |
+ Belum Selesai |
+ Hari |
+ Laporan |
+ Hari |
+ Laporan |
+
+
+ Jml |
+ % |
+ Jml |
+ % |
+ Total |
+ Rata-Rata |
+ Max |
+ Min |
+ >Sla |
+
+ Total |
+ Rata-Rata |
+ Max |
+ Min |
+ >Sla |
+
+ | |
+
+ ${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 |
+ No Laporan |
+ Tgl Lapor |
+ Dalam Proses Bidang |
+ Selesai Bidang Unit |
+ Durasi Response Time |
+ Durasi Recovery Time |
+ Status |
+ IDPEL/NO METER |
+ Nama Pelapor |
+ Alamat Pelapor |
+ No Telp Pelapor |
+ Keterangan Pelapor |
+ Rayon |
+ Uraian |
+ Response Pelanggan |
+
+
+
+ ${rawData
+ .map(
+ (item: any, i: any) => `
+
+ ${i + 1} |
+ ${item.no_laporan} |
+ ${item.waktu_lapor} |
+ ${item.waktu_response} |
+ ${item.waktu_recovery} |
+ ${item.durasi_response_time ? formatWaktu(item.durasi_response_time) : '-'} |
+ ${item.durasi_recovery_time ? formatWaktu(item.durasi_recovery_time) : '-'} |
+ ${item.status_akhir} |
+ ${item.idpel_nometer} |
+ ${item.nama_pelapor} |
+ ${item.alamat_pelapor} |
+ ${item.no_telp_pelapor} |
+ ${item.keterangan_pelapor} |
+ ${item.nama_ulp} |
+ ${item.uraian} |
+ ${item.respon_pelanggan} |
+
+ `
+ )
+ .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/Keluhan/Rekap/doc/RKeluhan_PerTanggal.ts b/src/report/Keluhan/Rekap/doc/RKeluhan_PerTanggal.ts
new file mode 100644
index 0000000..df5d5ce
--- /dev/null
+++ b/src/report/Keluhan/Rekap/doc/RKeluhan_PerTanggal.ts
@@ -0,0 +1,309 @@
+import { formatWaktu } from '@/components/Form/FiltersType/reference'
+
+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} | `)
+ : (column += `${content} | `)
+ }
+
+ column += `
`
+ tbody += column
+ }
+
+ let preHtml = `
+
+
+
+ ${reportName}
+
+
+
+ `
+
+ const body = `
+
+
+ PT. PLN(Persero)
+
+
+
+
+
+
+
+
+ ${reportName.toUpperCase()} |
+
+
+ ${`PERIODE TANGGAL : ${formattedMeta.dateFromFormat} SD TGL ${formattedMeta.dateToFormat}`} |
+
+
+
+
+
+
+
+
+
+ No |
+ Tanggal Lapor |
+ Laporan |
+ Response Time |
+ Penyelesaian |
+
+
+ Total |
+ Sudah Selesai |
+ Belum Selesai |
+ Hari |
+ Laporan |
+ Hari |
+ Laporan |
+
+
+ Jml |
+ % |
+ Jml |
+ % |
+ Total |
+ Rata-Rata |
+ Max |
+ Min |
+ >Sla |
+
+ Total |
+ Rata-Rata |
+ Max |
+ Min |
+ >Sla |
+
+ | |
+
+ ${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 |
+ No Laporan |
+ Tgl Lapor |
+ Dalam Proses Bidang |
+ Selesai Bidang Unit |
+ Durasi Response Time |
+ Durasi Recovery Time |
+ Status |
+ IDPEL/NO METER |
+ Nama Pelapor |
+ Alamat Pelapor |
+ No Telp Pelapor |
+ Keterangan Pelapor |
+ Rayon |
+ Uraian |
+ Response Pelanggan |
+
+
+
+ ${rawData
+ .map(
+ (item: any, i: any) => `
+
+ ${i + 1} |
+ ${item.no_laporan} |
+ ${item.waktu_lapor} |
+ ${item.waktu_response} |
+ ${item.waktu_recovery} |
+ ${item.durasi_response_time ? formatWaktu(item.durasi_response_time) : '-'} |
+ ${item.durasi_recovery_time ? formatWaktu(item.durasi_recovery_time) : '-'} |
+ ${item.status_akhir} |
+ ${item.idpel_nometer} |
+ ${item.nama_pelapor} |
+ ${item.alamat_pelapor} |
+ ${item.no_telp_pelapor} |
+ ${item.keterangan_pelapor} |
+ ${item.nama_ulp} |
+ ${item.uraian} |
+ ${item.respon_pelanggan} |
+
+ `
+ )
+ .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/Keluhan/Rekap/doc/RKeluhan_PerUnit.ts b/src/report/Keluhan/Rekap/doc/RKeluhan_PerUnit.ts
new file mode 100644
index 0000000..05291c5
--- /dev/null
+++ b/src/report/Keluhan/Rekap/doc/RKeluhan_PerUnit.ts
@@ -0,0 +1,300 @@
+import { formatWaktu } from '@/components/Form/FiltersType/reference'
+
+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} | `)
+ : (column += `${content} | `)
+ }
+
+ column += `
`
+ tbody += column
+ }
+
+ let preHtml = `
+
+
+
+ ${reportName}
+
+
+
+ `
+
+ const body = `
+
+
+ PT. PLN(Persero)
+
+
+
+
+
+
+
+
+ ${reportName.toUpperCase()} |
+
+
+ ${`PERIODE TANGGAL : ${formattedMeta.dateFromFormat} SD TGL ${formattedMeta.dateToFormat}`} |
+
+
+
+
+
+
+
+
+
+ No |
+ Unit |
+ Laporan |
+ Response Time |
+ Penyelesaian |
+
+
+ Total |
+ Sudah Selesai |
+ Belum Selesai |
+ Hari |
+ Laporan |
+ Hari |
+ Laporan |
+
+
+ Jml |
+ % |
+ Jml |
+ % |
+ Total |
+ Rata-Rata |
+ Max |
+ Min |
+ >Sla |
+ <Sla |
+ Total |
+ Rata-Rata |
+ Max |
+ Min |
+ >Sla |
+ <Sla |
+
+
+ ${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 |
+ No Laporan |
+ Tgl Lapor |
+ Dalam Proses Bidang |
+ Selesai Bidang Unit |
+ Durasi Response Time |
+ Durasi Recovery Time |
+ Status |
+ IDPEL/NO METER |
+ Nama Pelapor |
+ Alamat Pelapor |
+ No Telp Pelapor |
+ Keterangan Pelapor |
+ Rayon |
+ Uraian |
+ Response Pelanggan |
+
+
+
+ ${rawData
+ .map(
+ (item: any, i: any) => `
+
+ ${i + 1} |
+ ${item.no_laporan} |
+ ${item.waktu_lapor} |
+ ${item.waktu_response} |
+ ${item.waktu_recovery} |
+ ${item.durasi_response_time ? formatWaktu(item.durasi_response_time) : '-'} |
+ ${item.durasi_recovery_time ? formatWaktu(item.durasi_recovery_time) : '-'} |
+ ${item.status_akhir} |
+ ${item.idpel_nometer} |
+ ${item.nama_pelapor} |
+ ${item.alamat_pelapor} |
+ ${item.no_telp_pelapor} |
+ ${item.keterangan_pelapor} |
+ ${item.nama_ulp} |
+ ${item.uraian} |
+ ${item.respon_pelanggan} |
+
+ `
+ )
+ .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)
+}