DOCUMENT rekapitulasi
This commit is contained in:
@ -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 { exportDetailToWord, exportToWord } from '@/report/Gangguan/Rekap/doc/RGangguan_ALL_DOC'
|
||||
|
||||
const reportName = 'Rekapitulasi Gangguan All'
|
||||
const fontSize = 5
|
||||
@ -153,15 +154,15 @@ const formatData = (rawData: any) => {
|
||||
const summary = data[regional][uid].summary
|
||||
const avgDurasiDispatch = summary.avg_durasi_dispatch.length
|
||||
? summary.avg_durasi_dispatch.reduce((a: any, b: any) => a + b) /
|
||||
summary.avg_durasi_dispatch.length
|
||||
summary.avg_durasi_dispatch.length
|
||||
: 0
|
||||
const avgDurasiResponse = summary.avg_durasi_response.length
|
||||
? summary.avg_durasi_response.reduce((a: any, b: any) => a + b) /
|
||||
summary.avg_durasi_response.length
|
||||
summary.avg_durasi_response.length
|
||||
: 0
|
||||
const avgDurasiRecovery = summary.avg_durasi_recovery.length
|
||||
? summary.avg_durasi_recovery.reduce((a: any, b: any) => a + b) /
|
||||
summary.avg_durasi_recovery.length
|
||||
summary.avg_durasi_recovery.length
|
||||
: 0
|
||||
|
||||
formattedData.push([
|
||||
@ -235,7 +236,7 @@ const formatData = (rawData: any) => {
|
||||
formatNumber(
|
||||
total.avg_durasi_dispatch.length
|
||||
? total.avg_durasi_dispatch.reduce((a: any, b: any) => a + b) /
|
||||
total.avg_durasi_dispatch.length
|
||||
total.avg_durasi_dispatch.length
|
||||
: 0
|
||||
),
|
||||
formatWaktu(Math.max(...total.max_durasi_dispatch)),
|
||||
@ -245,7 +246,7 @@ const formatData = (rawData: any) => {
|
||||
formatNumber(
|
||||
total.avg_durasi_response.length
|
||||
? total.avg_durasi_response.reduce((a: any, b: any) => a + b) /
|
||||
total.avg_durasi_response.length
|
||||
total.avg_durasi_response.length
|
||||
: 0
|
||||
),
|
||||
formatWaktu(Math.max(...total.max_durasi_response)),
|
||||
@ -255,7 +256,7 @@ const formatData = (rawData: any) => {
|
||||
formatNumber(
|
||||
total.avg_durasi_recovery.length
|
||||
? total.avg_durasi_recovery.reduce((a: any, b: any) => a + b) /
|
||||
total.avg_durasi_recovery.length
|
||||
total.avg_durasi_recovery.length
|
||||
: 0
|
||||
),
|
||||
formatWaktu(Math.max(...total.max_durasi_recovery)),
|
||||
@ -299,7 +300,7 @@ const exportToPDF = (reportMeta: any, rawData: any, preview: boolean = false) =>
|
||||
const doc = new jsPDF({
|
||||
orientation: 'landscape'
|
||||
})
|
||||
|
||||
console.log(data)
|
||||
autoTable(doc, {
|
||||
head: [
|
||||
['PT. PLN(Persero)', '', ''],
|
||||
@ -642,28 +643,25 @@ const exportToXLSX = (reportMeta: any, e: any) => {
|
||||
worksheet,
|
||||
2,
|
||||
1,
|
||||
`UNIT INDUK : ${
|
||||
reportMeta.uid
|
||||
? reportMeta.uid.name.toUpperCase()
|
||||
: 'Semua Unit Induk Distribusi/Wilayah'.toUpperCase()
|
||||
`UNIT INDUK : ${reportMeta.uid
|
||||
? reportMeta.uid.name.toUpperCase()
|
||||
: 'Semua Unit Induk Distribusi/Wilayah'.toUpperCase()
|
||||
}`
|
||||
)
|
||||
setHeaderStyle(
|
||||
worksheet,
|
||||
3,
|
||||
1,
|
||||
`UNIT PELAKSANA PELAYANAN PELANGGAN : ${
|
||||
reportMeta.up3
|
||||
? reportMeta.up3.name.toUpperCase()
|
||||
: 'Semua Unit Pelaksanaan Pelayanan Pelanggan'.toUpperCase()
|
||||
`UNIT PELAKSANA PELAYANAN PELANGGAN : ${reportMeta.up3
|
||||
? reportMeta.up3.name.toUpperCase()
|
||||
: 'Semua Unit Pelaksanaan Pelayanan Pelanggan'.toUpperCase()
|
||||
}`
|
||||
)
|
||||
setHeaderStyle(
|
||||
worksheet,
|
||||
4,
|
||||
1,
|
||||
`POSKO : ${
|
||||
reportMeta.posko ? reportMeta.posko.name.toUpperCase() : 'Semua Posko'.toUpperCase()
|
||||
`POSKO : ${reportMeta.posko ? reportMeta.posko.name.toUpperCase() : 'Semua Posko'.toUpperCase()
|
||||
}`
|
||||
)
|
||||
|
||||
@ -737,5 +735,10 @@ 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, formatMetaData(reportMeta))
|
||||
}
|
||||
const exportDetailToDOCX = (reportMeta: any, rawData: any) => {
|
||||
exportDetailToWord(reportMeta, rawData, `Detail ${reportName}`, formatMetaData(reportMeta))
|
||||
}
|
||||
export { exportToPDF, exportToXLSX, exportDetailToPDF, exportDetailToXLSX, exportToDOCX, exportDetailToDOCX }
|
||||
|
@ -16,9 +16,9 @@ import { saveAs } from 'file-saver'
|
||||
import { jsPDF } from 'jspdf'
|
||||
import autoTable from 'jspdf-autotable'
|
||||
import { Workbook } from 'exceljs'
|
||||
import { formatWaktu } from '@/components/Form/FiltersType/reference'
|
||||
import { setHeaderStyle } from '@/report/utils/xlsx'
|
||||
import { formatNumber } from '@/utils/numbers'
|
||||
import { exportToWord, exportDetailToWord } from '@/report/Gangguan/Rekap/doc/RGangguan_AlihPosko_DOC'
|
||||
|
||||
const reportName = 'Rekapitulasi Gangguan Alih Posko'
|
||||
const fontSize = 5
|
||||
@ -397,28 +397,25 @@ const exportToXLSX = (reportMeta: any, e: any) => {
|
||||
worksheet,
|
||||
2,
|
||||
1,
|
||||
`UNIT INDUK : ${
|
||||
reportMeta.uid
|
||||
? reportMeta.uid.name.toUpperCase()
|
||||
: 'Semua Unit Induk Distribusi/Wilayah'.toUpperCase()
|
||||
`UNIT INDUK : ${reportMeta.uid
|
||||
? reportMeta.uid.name.toUpperCase()
|
||||
: 'Semua Unit Induk Distribusi/Wilayah'.toUpperCase()
|
||||
}`
|
||||
)
|
||||
setHeaderStyle(
|
||||
worksheet,
|
||||
3,
|
||||
1,
|
||||
`UNIT PELAKSANA PELAYANAN PELANGGAN : ${
|
||||
reportMeta.up3
|
||||
? reportMeta.up3.name.toUpperCase()
|
||||
: 'Semua Unit Pelaksanaan Pelayanan Pelanggan'.toUpperCase()
|
||||
`UNIT PELAKSANA PELAYANAN PELANGGAN : ${reportMeta.up3
|
||||
? reportMeta.up3.name.toUpperCase()
|
||||
: 'Semua Unit Pelaksanaan Pelayanan Pelanggan'.toUpperCase()
|
||||
}`
|
||||
)
|
||||
setHeaderStyle(
|
||||
worksheet,
|
||||
4,
|
||||
1,
|
||||
`POSKO : ${
|
||||
reportMeta.posko ? reportMeta.posko.name.toUpperCase() : 'Semua Posko'.toUpperCase()
|
||||
`POSKO : ${reportMeta.posko ? reportMeta.posko.name.toUpperCase() : 'Semua Posko'.toUpperCase()
|
||||
}`
|
||||
)
|
||||
|
||||
@ -490,5 +487,10 @@ const exportDetailToXLSX = (reportMeta: any, e: any) => {
|
||||
|
||||
e.cancel = true
|
||||
}
|
||||
|
||||
export { exportToPDF, exportDetailToPDF, exportToXLSX, exportDetailToXLSX }
|
||||
const exportToDOCX = (reportMeta: any, rawData: any) => {
|
||||
exportToWord(reportMeta, formatData(rawData), `Laporan ${reportName}`, formatMetaData(reportMeta))
|
||||
}
|
||||
const exportDetailToDOCX = (reportMeta: any, rawData: any) => {
|
||||
exportDetailToWord(reportMeta, rawData, `Laporan Detail ${reportName}`, formatMetaData(reportMeta))
|
||||
}
|
||||
export { exportToPDF, exportDetailToPDF, exportToXLSX, exportDetailToXLSX, exportToDOCX, exportDetailToDOCX }
|
||||
|
@ -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 { exportDetailToWord, exportToWord } from './doc/RGangguan_BerdasarMedia_DOC'
|
||||
|
||||
const reportName = 'Rekapitulasi Gangguan Berdasarkan Media'
|
||||
const fontSize = 5
|
||||
@ -399,28 +400,25 @@ const exportToXLSX = (reportMeta: any, e: any) => {
|
||||
worksheet,
|
||||
2,
|
||||
1,
|
||||
`UNIT INDUK : ${
|
||||
reportMeta.uid
|
||||
? reportMeta.uid.name.toUpperCase()
|
||||
: 'Semua Unit Induk Distribusi/Wilayah'.toUpperCase()
|
||||
`UNIT INDUK : ${reportMeta.uid
|
||||
? reportMeta.uid.name.toUpperCase()
|
||||
: 'Semua Unit Induk Distribusi/Wilayah'.toUpperCase()
|
||||
}`
|
||||
)
|
||||
setHeaderStyle(
|
||||
worksheet,
|
||||
3,
|
||||
1,
|
||||
`UNIT PELAKSANA PELAYANAN PELANGGAN : ${
|
||||
reportMeta.up3
|
||||
? reportMeta.up3.name.toUpperCase()
|
||||
: 'Semua Unit Pelaksanaan Pelayanan Pelanggan'.toUpperCase()
|
||||
`UNIT PELAKSANA PELAYANAN PELANGGAN : ${reportMeta.up3
|
||||
? reportMeta.up3.name.toUpperCase()
|
||||
: 'Semua Unit Pelaksanaan Pelayanan Pelanggan'.toUpperCase()
|
||||
}`
|
||||
)
|
||||
setHeaderStyle(
|
||||
worksheet,
|
||||
4,
|
||||
1,
|
||||
`POSKO : ${
|
||||
reportMeta.posko ? reportMeta.posko.name.toUpperCase() : 'Semua Posko'.toUpperCase()
|
||||
`POSKO : ${reportMeta.posko ? reportMeta.posko.name.toUpperCase() : 'Semua Posko'.toUpperCase()
|
||||
}`
|
||||
)
|
||||
|
||||
@ -494,5 +492,10 @@ const exportDetailToXLSX = (reportMeta: any, e: any) => {
|
||||
|
||||
e.cancel = true
|
||||
}
|
||||
|
||||
export { exportToPDF, exportDetailToPDF, exportToXLSX, exportDetailToXLSX }
|
||||
const exportToDOCX = (reportMeta: any, rawData: any) => {
|
||||
exportToWord(reportMeta, formatData(rawData), `Laporan ${reportName}`, formatMetaData(reportMeta))
|
||||
}
|
||||
const exportDetailToDOCX = (reportMeta: any, rawData: any) => {
|
||||
exportDetailToWord(reportMeta, rawData, `Laporan Detail ${reportName}`, formatMetaData(reportMeta))
|
||||
}
|
||||
export { exportToPDF, exportDetailToPDF, exportToXLSX, exportDetailToXLSX, exportToDOCX, exportDetailToDOCX }
|
||||
|
@ -19,6 +19,7 @@ import { Workbook } from 'exceljs'
|
||||
import { formatWaktu } from '@/components/Form/FiltersType/reference'
|
||||
import { setHeaderStyle } from '@/report/utils/xlsx'
|
||||
import { formatNumber } from '@/utils/numbers'
|
||||
import { exportDetailToWord, exportToWord } from './doc/RGangguan_CTTM_DOC'
|
||||
|
||||
const reportName = 'Rekapitulasi Cleansing Transaksi TM'
|
||||
const fontSize = 5
|
||||
@ -505,5 +506,10 @@ const exportDetailToXLSX = (reportMeta: any, e: any) => {
|
||||
|
||||
e.cancel = true
|
||||
}
|
||||
|
||||
export { exportToPDF, exportToXLSX, exportDetailToPDF, exportDetailToXLSX }
|
||||
const exportToDOCX = (reportMeta: any, rawData: any) => {
|
||||
exportToWord(reportMeta, formatData(rawData), `Laporan ${reportName}`, formatMetaData(reportMeta))
|
||||
}
|
||||
const exportDetailToDOCX = (reportMeta: any, rawData: any) => {
|
||||
exportDetailToWord(reportMeta, rawData, `Laporan Detail ${reportName}`, formatMetaData(reportMeta))
|
||||
}
|
||||
export { exportToPDF, exportToXLSX, exportDetailToPDF, exportDetailToXLSX ,exportToDOCX,exportDetailToDOCX}
|
||||
|
@ -18,6 +18,7 @@ import autoTable from 'jspdf-autotable'
|
||||
import { Workbook } from 'exceljs'
|
||||
import { setHeaderStyle } from '@/report/utils/xlsx'
|
||||
import { formatNumber, formatPercentage } from '@/utils/numbers'
|
||||
import { exportDetailToWord, exportToWord } from './doc/RGangguan_DMAPKT_DOC'
|
||||
|
||||
const reportName = 'Rekapitulasi Gangguan Diselesaikan Mobile APKT'
|
||||
const fontSize = 4
|
||||
@ -557,28 +558,25 @@ const exportToXLSX = (reportMeta: any, e: any) => {
|
||||
worksheet,
|
||||
2,
|
||||
1,
|
||||
`UNIT INDUK : ${
|
||||
reportMeta.uid
|
||||
? reportMeta.uid.name.toUpperCase()
|
||||
: 'Semua Unit Induk Distribusi/Wilayah'.toUpperCase()
|
||||
`UNIT INDUK : ${reportMeta.uid
|
||||
? reportMeta.uid.name.toUpperCase()
|
||||
: 'Semua Unit Induk Distribusi/Wilayah'.toUpperCase()
|
||||
}`
|
||||
)
|
||||
setHeaderStyle(
|
||||
worksheet,
|
||||
3,
|
||||
1,
|
||||
`UNIT PELAKSANA PELAYANAN PELANGGAN : ${
|
||||
reportMeta.up3
|
||||
? reportMeta.up3.name.toUpperCase()
|
||||
: 'Semua Unit Pelaksanaan Pelayanan Pelanggan'.toUpperCase()
|
||||
`UNIT PELAKSANA PELAYANAN PELANGGAN : ${reportMeta.up3
|
||||
? reportMeta.up3.name.toUpperCase()
|
||||
: 'Semua Unit Pelaksanaan Pelayanan Pelanggan'.toUpperCase()
|
||||
}`
|
||||
)
|
||||
setHeaderStyle(
|
||||
worksheet,
|
||||
4,
|
||||
1,
|
||||
`POSKO : ${
|
||||
reportMeta.posko ? reportMeta.posko.name.toUpperCase() : 'Semua Posko'.toUpperCase()
|
||||
`POSKO : ${reportMeta.posko ? reportMeta.posko.name.toUpperCase() : 'Semua Posko'.toUpperCase()
|
||||
}`
|
||||
)
|
||||
|
||||
@ -652,5 +650,10 @@ const exportDetailToXLSX = (reportMeta: any, e: any) => {
|
||||
|
||||
e.cancel = true
|
||||
}
|
||||
|
||||
export { exportToPDF, exportToXLSX, exportDetailToPDF, exportDetailToXLSX }
|
||||
const exportToDOCX = (reportMeta: any, rawData: any) => {
|
||||
exportToWord(reportMeta, formatData(rawData), `Laporan ${reportName}`, formatMetaData(reportMeta))
|
||||
}
|
||||
const exportDetailToDOCX = (reportMeta: any, rawData: any) => {
|
||||
exportDetailToWord(reportMeta, rawData, `Laporan Detail ${reportName}`, formatMetaData(reportMeta))
|
||||
}
|
||||
export { exportToPDF, exportToXLSX, exportDetailToPDF, exportDetailToXLSX, exportToDOCX, exportDetailToDOCX }
|
||||
|
@ -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 } from './doc/RGangguan_JenisGangguan_DOC'
|
||||
|
||||
const reportName = 'Rekapitulasi Gangguan Jenis Gangguan'
|
||||
|
||||
@ -59,7 +60,7 @@ const formatData = (rawData: any) => {
|
||||
total_recovery_time_kurang_sla: 0
|
||||
}
|
||||
|
||||
for (const sub_kelompok of data) {
|
||||
for (const sub_kelompok of Object.keys(data)) {
|
||||
const total: any = {
|
||||
total_laporan: 0,
|
||||
total_laporan_sudah_selesai: 0,
|
||||
@ -97,16 +98,16 @@ const formatData = (rawData: any) => {
|
||||
!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
|
||||
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
|
||||
data[sub_kelompok][i].laporan.total) *
|
||||
100
|
||||
),
|
||||
formatNumber(data[sub_kelompok][i].responseTime.menit.total),
|
||||
formatNumber(data[sub_kelompok][i].responseTime.menit.rataRata),
|
||||
@ -182,7 +183,7 @@ const formatData = (rawData: any) => {
|
||||
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
|
||||
total.total_response_time_rata_rata.length
|
||||
: 0
|
||||
),
|
||||
formatWaktu(Math.max(...total.total_response_time_max)),
|
||||
@ -193,7 +194,7 @@ const formatData = (rawData: any) => {
|
||||
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
|
||||
total.total_recovery_time_rata_rata.length
|
||||
: 0
|
||||
),
|
||||
formatWaktu(Math.max(...total.total_recovery_time_max)),
|
||||
@ -222,7 +223,7 @@ const formatData = (rawData: any) => {
|
||||
formatNumber(
|
||||
grandTotal.total_response_time_rata_rata.length
|
||||
? grandTotal.total_response_time_rata_rata.reduce((a: any, b: any) => a + b) /
|
||||
grandTotal.total_response_time_rata_rata.length
|
||||
grandTotal.total_response_time_rata_rata.length
|
||||
: 0
|
||||
),
|
||||
formatWaktu(Math.max(...grandTotal.total_response_time_max)),
|
||||
@ -233,7 +234,7 @@ const formatData = (rawData: any) => {
|
||||
formatNumber(
|
||||
grandTotal.total_recovery_time_rata_rata.length
|
||||
? grandTotal.total_recovery_time_rata_rata.reduce((a: any, b: any) => a + b) /
|
||||
grandTotal.total_recovery_time_rata_rata.length
|
||||
grandTotal.total_recovery_time_rata_rata.length
|
||||
: 0
|
||||
),
|
||||
formatWaktu(Math.max(...grandTotal.total_recovery_time_max)),
|
||||
@ -492,28 +493,25 @@ const exportToXLSX = (reportMeta: any, e: any) => {
|
||||
worksheet,
|
||||
2,
|
||||
1,
|
||||
`UNIT INDUK : ${
|
||||
reportMeta.uid
|
||||
? reportMeta.uid.name.toUpperCase()
|
||||
: 'Semua Unit Induk Distribusi/Wilayah'.toUpperCase()
|
||||
`UNIT INDUK : ${reportMeta.uid
|
||||
? reportMeta.uid.name.toUpperCase()
|
||||
: 'Semua Unit Induk Distribusi/Wilayah'.toUpperCase()
|
||||
}`
|
||||
)
|
||||
setHeaderStyle(
|
||||
worksheet,
|
||||
3,
|
||||
1,
|
||||
`UNIT PELAKSANA PELAYANAN PELANGGAN : ${
|
||||
reportMeta.up3
|
||||
? reportMeta.up3.name.toUpperCase()
|
||||
: 'Semua Unit Pelaksanaan Pelayanan Pelanggan'.toUpperCase()
|
||||
`UNIT PELAKSANA PELAYANAN PELANGGAN : ${reportMeta.up3
|
||||
? reportMeta.up3.name.toUpperCase()
|
||||
: 'Semua Unit Pelaksanaan Pelayanan Pelanggan'.toUpperCase()
|
||||
}`
|
||||
)
|
||||
setHeaderStyle(
|
||||
worksheet,
|
||||
4,
|
||||
1,
|
||||
`POSKO : ${
|
||||
reportMeta.posko ? reportMeta.posko.name.toUpperCase() : 'Semua Posko'.toUpperCase()
|
||||
`POSKO : ${reportMeta.posko ? reportMeta.posko.name.toUpperCase() : 'Semua Posko'.toUpperCase()
|
||||
}`
|
||||
)
|
||||
|
||||
@ -549,5 +547,7 @@ const exportToXLSX = (reportMeta: any, e: any) => {
|
||||
|
||||
e.cancel = true
|
||||
}
|
||||
|
||||
export { exportToPDF, exportToXLSX }
|
||||
const exportToDOCX = (reportMeta: any, rawData: any) => {
|
||||
exportToWord(reportMeta, formatData(rawData), `Laporan ${reportName}`, formatMetaData(reportMeta))
|
||||
}
|
||||
export { exportToPDF, exportToXLSX, exportToDOCX }
|
||||
|
@ -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 { exportDetailToWord, exportToWord } from './doc/RGangguan_JenisGangguanSE_DOC'
|
||||
|
||||
const reportName = 'Rekapitulasi Gangguan Jenis Gangguan SE 004'
|
||||
const fontSize = 5
|
||||
@ -166,7 +167,7 @@ const formatData = (rawData: any) => {
|
||||
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
|
||||
total.total_response_time_rata_rata.length
|
||||
: 0
|
||||
),
|
||||
formatWaktu(Math.max(...total.total_response_time_max)),
|
||||
@ -177,7 +178,7 @@ const formatData = (rawData: any) => {
|
||||
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
|
||||
total.total_recovery_time_rata_rata.length
|
||||
: 0
|
||||
),
|
||||
formatWaktu(Math.max(...total.total_recovery_time_max)),
|
||||
@ -206,7 +207,7 @@ const formatData = (rawData: any) => {
|
||||
formatNumber(
|
||||
grandTotal.total_response_time_rata_rata.length
|
||||
? grandTotal.total_response_time_rata_rata.reduce((a: any, b: any) => a + b) /
|
||||
grandTotal.total_response_time_rata_rata.length
|
||||
grandTotal.total_response_time_rata_rata.length
|
||||
: 0
|
||||
),
|
||||
formatWaktu(Math.max(...grandTotal.total_response_time_max)),
|
||||
@ -217,7 +218,7 @@ const formatData = (rawData: any) => {
|
||||
formatNumber(
|
||||
grandTotal.total_recovery_time_rata_rata.length
|
||||
? grandTotal.total_recovery_time_rata_rata.reduce((a: any, b: any) => a + b) /
|
||||
grandTotal.total_recovery_time_rata_rata.length
|
||||
grandTotal.total_recovery_time_rata_rata.length
|
||||
: 0
|
||||
),
|
||||
formatWaktu(Math.max(...grandTotal.total_recovery_time_max)),
|
||||
@ -610,28 +611,25 @@ const exportToXLSX = (reportMeta: any, e: any) => {
|
||||
worksheet,
|
||||
2,
|
||||
1,
|
||||
`UNIT INDUK : ${
|
||||
reportMeta.uid
|
||||
? reportMeta.uid.name.toUpperCase()
|
||||
: 'Semua Unit Induk Distribusi/Wilayah'.toUpperCase()
|
||||
`UNIT INDUK : ${reportMeta.uid
|
||||
? reportMeta.uid.name.toUpperCase()
|
||||
: 'Semua Unit Induk Distribusi/Wilayah'.toUpperCase()
|
||||
}`
|
||||
)
|
||||
setHeaderStyle(
|
||||
worksheet,
|
||||
3,
|
||||
1,
|
||||
`UNIT PELAKSANA PELAYANAN PELANGGAN : ${
|
||||
reportMeta.up3
|
||||
? reportMeta.up3.name.toUpperCase()
|
||||
: 'Semua Unit Pelaksanaan Pelayanan Pelanggan'.toUpperCase()
|
||||
`UNIT PELAKSANA PELAYANAN PELANGGAN : ${reportMeta.up3
|
||||
? reportMeta.up3.name.toUpperCase()
|
||||
: 'Semua Unit Pelaksanaan Pelayanan Pelanggan'.toUpperCase()
|
||||
}`
|
||||
)
|
||||
setHeaderStyle(
|
||||
worksheet,
|
||||
4,
|
||||
1,
|
||||
`POSKO : ${
|
||||
reportMeta.posko ? reportMeta.posko.name.toUpperCase() : 'Semua Posko'.toUpperCase()
|
||||
`POSKO : ${reportMeta.posko ? reportMeta.posko.name.toUpperCase() : 'Semua Posko'.toUpperCase()
|
||||
}`
|
||||
)
|
||||
|
||||
@ -706,4 +704,10 @@ const exportDetailToXLSX = (reportMeta: any, e: any) => {
|
||||
e.cancel = true
|
||||
}
|
||||
|
||||
export { exportToPDF, exportToXLSX, exportDetailToPDF, exportDetailToXLSX }
|
||||
const exportToDOCX = (reportMeta: any, rawData: any) => {
|
||||
exportToWord(reportMeta, formatData(rawData), `Laporan ${reportName}`, formatMetaData(reportMeta))
|
||||
}
|
||||
const exportDetailToDOCX = (reportMeta: any, rawData: any) => {
|
||||
exportDetailToWord(reportMeta, rawData, `Laporan Detail ${reportName}`, formatMetaData(reportMeta))
|
||||
}
|
||||
export { exportToPDF, exportToXLSX, exportDetailToPDF, exportDetailToXLSX, exportToDOCX, exportDetailToDOCX }
|
||||
|
@ -19,6 +19,7 @@ import { Workbook } from 'exceljs'
|
||||
import { formatWaktu } from '@/components/Form/FiltersType/reference'
|
||||
import { setHeaderStyle } from '@/report/utils/xlsx'
|
||||
import { formatNumber } from '@/utils/numbers'
|
||||
import { exportDetailToWord, exportToWord } from './doc/RGangguan_KTI_DOC'
|
||||
|
||||
const reportName = 'Rekapitulasi Koreksi Transaksi Individual'
|
||||
const fontSize = 5
|
||||
@ -476,28 +477,25 @@ const exportToXLSX = (reportMeta: any, e: any) => {
|
||||
worksheet,
|
||||
2,
|
||||
1,
|
||||
`UNIT INDUK : ${
|
||||
reportMeta.uid
|
||||
? reportMeta.uid.name.toUpperCase()
|
||||
: 'Semua Unit Induk Distribusi/Wilayah'.toUpperCase()
|
||||
`UNIT INDUK : ${reportMeta.uid
|
||||
? reportMeta.uid.name.toUpperCase()
|
||||
: 'Semua Unit Induk Distribusi/Wilayah'.toUpperCase()
|
||||
}`
|
||||
)
|
||||
setHeaderStyle(
|
||||
worksheet,
|
||||
3,
|
||||
1,
|
||||
`UNIT PELAKSANA PELAYANAN PELANGGAN : ${
|
||||
reportMeta.up3
|
||||
? reportMeta.up3.name.toUpperCase()
|
||||
: 'Semua Unit Pelaksanaan Pelayanan Pelanggan'.toUpperCase()
|
||||
`UNIT PELAKSANA PELAYANAN PELANGGAN : ${reportMeta.up3
|
||||
? reportMeta.up3.name.toUpperCase()
|
||||
: 'Semua Unit Pelaksanaan Pelayanan Pelanggan'.toUpperCase()
|
||||
}`
|
||||
)
|
||||
setHeaderStyle(
|
||||
worksheet,
|
||||
4,
|
||||
1,
|
||||
`POSKO : ${
|
||||
reportMeta.posko ? reportMeta.posko.name.toUpperCase() : 'Semua Posko'.toUpperCase()
|
||||
`POSKO : ${reportMeta.posko ? reportMeta.posko.name.toUpperCase() : 'Semua Posko'.toUpperCase()
|
||||
}`
|
||||
)
|
||||
|
||||
@ -571,5 +569,10 @@ const exportDetailToXLSX = (reportMeta: any, e: any) => {
|
||||
|
||||
e.cancel = true
|
||||
}
|
||||
|
||||
export { exportToPDF, exportToXLSX, exportDetailToPDF, exportDetailToXLSX }
|
||||
const exportToDOCX = (reportMeta: any, rawData: any) => {
|
||||
exportToWord(reportMeta, formatData(rawData), `Laporan ${reportName}`, formatMetaData(reportMeta))
|
||||
}
|
||||
const exportDetailToDOCX = (reportMeta: any, rawData: any) => {
|
||||
exportDetailToWord(reportMeta, rawData, `Laporan Detail ${reportName}`, formatMetaData(reportMeta))
|
||||
}
|
||||
export { exportToPDF, exportToXLSX, exportDetailToPDF, exportDetailToXLSX, exportToDOCX, exportDetailToDOCX }
|
||||
|
@ -1,17 +1,5 @@
|
||||
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 +7,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 { exportDetailToWord, exportToWord } from './doc/RGangguan_PerPosko_DOC'
|
||||
|
||||
const reportName = 'Rekapitulasi Gangguan Per Posko'
|
||||
const fontSize = 5
|
||||
@ -165,7 +154,7 @@ const formatData = (rawData: any) => {
|
||||
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
|
||||
total.total_response_time_rata_rata.length
|
||||
: 0
|
||||
),
|
||||
formatWaktu(Math.max(...total.total_response_time_max)),
|
||||
@ -176,7 +165,7 @@ const formatData = (rawData: any) => {
|
||||
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
|
||||
total.total_recovery_time_rata_rata.length
|
||||
: 0
|
||||
),
|
||||
formatWaktu(Math.max(...total.total_recovery_time_max)),
|
||||
@ -205,7 +194,7 @@ const formatData = (rawData: any) => {
|
||||
formatNumber(
|
||||
grandTotal.total_response_time_rata_rata.length
|
||||
? grandTotal.total_response_time_rata_rata.reduce((a: any, b: any) => a + b) /
|
||||
grandTotal.total_response_time_rata_rata.length
|
||||
grandTotal.total_response_time_rata_rata.length
|
||||
: 0
|
||||
),
|
||||
formatWaktu(Math.max(...grandTotal.total_response_time_max)),
|
||||
@ -216,7 +205,7 @@ const formatData = (rawData: any) => {
|
||||
formatNumber(
|
||||
grandTotal.total_recovery_time_rata_rata.length
|
||||
? grandTotal.total_recovery_time_rata_rata.reduce((a: any, b: any) => a + b) /
|
||||
grandTotal.total_recovery_time_rata_rata.length
|
||||
grandTotal.total_recovery_time_rata_rata.length
|
||||
: 0
|
||||
),
|
||||
formatWaktu(Math.max(...grandTotal.total_recovery_time_max)),
|
||||
@ -599,20 +588,18 @@ const exportToXLSX = (reportMeta: any, e: any) => {
|
||||
worksheet,
|
||||
2,
|
||||
1,
|
||||
`UNIT INDUK : ${
|
||||
reportMeta.uid
|
||||
? reportMeta.uid.name.toUpperCase()
|
||||
: 'Semua Unit Induk Distribusi/Wilayah'.toUpperCase()
|
||||
`UNIT INDUK : ${reportMeta.uid
|
||||
? reportMeta.uid.name.toUpperCase()
|
||||
: 'Semua Unit Induk Distribusi/Wilayah'.toUpperCase()
|
||||
}`
|
||||
)
|
||||
setHeaderStyle(
|
||||
worksheet,
|
||||
3,
|
||||
1,
|
||||
`UNIT PELAKSANA PELAYANAN PELANGGAN : ${
|
||||
reportMeta.up3
|
||||
? reportMeta.up3.name.toUpperCase()
|
||||
: 'Semua Unit Pelaksanaan Pelayanan Pelanggan'.toUpperCase()
|
||||
`UNIT PELAKSANA PELAYANAN PELANGGAN : ${reportMeta.up3
|
||||
? reportMeta.up3.name.toUpperCase()
|
||||
: 'Semua Unit Pelaksanaan Pelayanan Pelanggan'.toUpperCase()
|
||||
}`
|
||||
)
|
||||
|
||||
@ -686,4 +673,10 @@ const exportDetailToXLSX = (reportMeta: any, e: any) => {
|
||||
e.cancel = true
|
||||
}
|
||||
|
||||
export { exportToPDF, exportToXLSX, exportDetailToPDF, exportDetailToXLSX }
|
||||
const exportToDOCX = (reportMeta: any, rawData: any) => {
|
||||
exportToWord(reportMeta, formatData(rawData), `Laporan ${reportName}`, formatMetaData(reportMeta))
|
||||
}
|
||||
const exportDetailToDOCX = (reportMeta: any, rawData: any) => {
|
||||
exportDetailToWord(reportMeta, rawData, `Laporan Detail ${reportName}`, formatMetaData(reportMeta))
|
||||
}
|
||||
export { exportToPDF, exportToXLSX, exportDetailToPDF, exportDetailToXLSX, exportToDOCX, exportDetailToDOCX }
|
||||
|
@ -1,17 +1,5 @@
|
||||
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 +7,8 @@ import { Workbook } from 'exceljs'
|
||||
import { formatWaktu } from '@/components/Form/FiltersType/reference'
|
||||
import { setHeaderStyle } from '@/report/utils/xlsx'
|
||||
import { formatNumber, formatPercentage } from '@/utils/numbers'
|
||||
import { exportDetailToWord } from './doc/RGangguan_PerRegu_DOC'
|
||||
import { exportToWord } from './doc/RGangguan_PerPosko_DOC'
|
||||
|
||||
const reportName = 'Rekapitulasi Gangguan Per Regu'
|
||||
const fontSize = 5
|
||||
@ -168,7 +158,7 @@ const formatData = (rawData: any, groupBy: boolean) => {
|
||||
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
|
||||
total.total_response_time_rata_rata.length
|
||||
: 0
|
||||
),
|
||||
formatWaktu(Math.max(...total.total_response_time_max)),
|
||||
@ -179,7 +169,7 @@ const formatData = (rawData: any, groupBy: boolean) => {
|
||||
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
|
||||
total.total_recovery_time_rata_rata.length
|
||||
: 0
|
||||
),
|
||||
formatWaktu(Math.max(...total.total_recovery_time_max)),
|
||||
@ -258,7 +248,7 @@ const formatData = (rawData: any, groupBy: boolean) => {
|
||||
formatNumber(
|
||||
grandTotal.total_response_time_rata_rata.length
|
||||
? grandTotal.total_response_time_rata_rata.reduce((a: any, b: any) => a + b) /
|
||||
grandTotal.total_response_time_rata_rata.length
|
||||
grandTotal.total_response_time_rata_rata.length
|
||||
: 0
|
||||
),
|
||||
formatWaktu(Math.max(...grandTotal.total_response_time_max)),
|
||||
@ -269,7 +259,7 @@ const formatData = (rawData: any, groupBy: boolean) => {
|
||||
formatNumber(
|
||||
grandTotal.total_recovery_time_rata_rata.length
|
||||
? grandTotal.total_recovery_time_rata_rata.reduce((a: any, b: any) => a + b) /
|
||||
grandTotal.total_recovery_time_rata_rata.length
|
||||
grandTotal.total_recovery_time_rata_rata.length
|
||||
: 0
|
||||
),
|
||||
formatWaktu(Math.max(...grandTotal.total_recovery_time_max)),
|
||||
@ -661,28 +651,25 @@ const exportToXLSX = (reportMeta: any, e: any) => {
|
||||
worksheet,
|
||||
2,
|
||||
1,
|
||||
`UNIT INDUK : ${
|
||||
reportMeta.uid
|
||||
? reportMeta.uid.name.toUpperCase()
|
||||
: 'Semua Unit Induk Distribusi/Wilayah'.toUpperCase()
|
||||
`UNIT INDUK : ${reportMeta.uid
|
||||
? reportMeta.uid.name.toUpperCase()
|
||||
: 'Semua Unit Induk Distribusi/Wilayah'.toUpperCase()
|
||||
}`
|
||||
)
|
||||
setHeaderStyle(
|
||||
worksheet,
|
||||
3,
|
||||
1,
|
||||
`UNIT PELAKSANA PELAYANAN PELANGGAN : ${
|
||||
reportMeta.up3
|
||||
? reportMeta.up3.name.toUpperCase()
|
||||
: 'Semua Unit Pelaksanaan Pelayanan Pelanggan'.toUpperCase()
|
||||
`UNIT PELAKSANA PELAYANAN PELANGGAN : ${reportMeta.up3
|
||||
? reportMeta.up3.name.toUpperCase()
|
||||
: 'Semua Unit Pelaksanaan Pelayanan Pelanggan'.toUpperCase()
|
||||
}`
|
||||
)
|
||||
setHeaderStyle(
|
||||
worksheet,
|
||||
4,
|
||||
1,
|
||||
`POSKO : ${
|
||||
reportMeta.posko ? reportMeta.posko.name.toUpperCase() : 'Semua Posko'.toUpperCase()
|
||||
`POSKO : ${reportMeta.posko ? reportMeta.posko.name.toUpperCase() : 'Semua Posko'.toUpperCase()
|
||||
}`
|
||||
)
|
||||
|
||||
@ -758,4 +745,10 @@ const exportDetailToXLSX = (reportMeta: any, e: any) => {
|
||||
e.cancel = true
|
||||
}
|
||||
|
||||
export { exportToPDF, exportDetailToPDF, exportToXLSX, exportDetailToXLSX }
|
||||
const exportToDOCX = (reportMeta: any, rawData: any) => {
|
||||
exportToWord(reportMeta, formatData(rawData, reportMeta.groupBy), `Laporan ${reportName}`, formatMetaData(reportMeta))
|
||||
}
|
||||
const exportDetailToDOCX = (reportMeta: any, rawData: any) => {
|
||||
exportDetailToWord(reportMeta, rawData, `Laporan Detail ${reportName}`, formatMetaData(reportMeta))
|
||||
}
|
||||
export { exportToPDF, exportToXLSX, exportDetailToPDF, exportDetailToXLSX, exportToDOCX, exportDetailToDOCX }
|
||||
|
@ -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 { exportDetailToWord, exportToWord } from './doc/RGangguan_PerTanggal_DOC'
|
||||
|
||||
const reportName = 'Rekapitulasi Gangguan Per Tanggal'
|
||||
const fontSize = 5
|
||||
@ -167,7 +168,7 @@ const formatData = (rawData: any, groupBy: boolean) => {
|
||||
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
|
||||
total.total_response_time_rata_rata.length
|
||||
: 0
|
||||
),
|
||||
formatWaktu(Math.max(...total.total_response_time_max)),
|
||||
@ -178,7 +179,7 @@ const formatData = (rawData: any, groupBy: boolean) => {
|
||||
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
|
||||
total.total_recovery_time_rata_rata.length
|
||||
: 0
|
||||
),
|
||||
formatWaktu(Math.max(...total.total_recovery_time_max)),
|
||||
@ -256,7 +257,7 @@ const formatData = (rawData: any, groupBy: boolean) => {
|
||||
formatNumber(
|
||||
grandTotal.total_response_time_rata_rata.length
|
||||
? grandTotal.total_response_time_rata_rata.reduce((a: any, b: any) => a + b) /
|
||||
grandTotal.total_response_time_rata_rata.length
|
||||
grandTotal.total_response_time_rata_rata.length
|
||||
: 0
|
||||
),
|
||||
formatWaktu(Math.max(...grandTotal.total_response_time_max)),
|
||||
@ -267,7 +268,7 @@ const formatData = (rawData: any, groupBy: boolean) => {
|
||||
formatNumber(
|
||||
grandTotal.total_recovery_time_rata_rata.length
|
||||
? grandTotal.total_recovery_time_rata_rata.reduce((a: any, b: any) => a + b) /
|
||||
grandTotal.total_recovery_time_rata_rata.length
|
||||
grandTotal.total_recovery_time_rata_rata.length
|
||||
: 0
|
||||
),
|
||||
formatWaktu(Math.max(...grandTotal.total_recovery_time_max)),
|
||||
@ -655,28 +656,25 @@ const exportToXLSX = (reportMeta: any, e: any) => {
|
||||
worksheet,
|
||||
2,
|
||||
1,
|
||||
`UNIT INDUK : ${
|
||||
reportMeta.uid
|
||||
? reportMeta.uid.name.toUpperCase()
|
||||
: 'Semua Unit Induk Distribusi/Wilayah'.toUpperCase()
|
||||
`UNIT INDUK : ${reportMeta.uid
|
||||
? reportMeta.uid.name.toUpperCase()
|
||||
: 'Semua Unit Induk Distribusi/Wilayah'.toUpperCase()
|
||||
}`
|
||||
)
|
||||
setHeaderStyle(
|
||||
worksheet,
|
||||
3,
|
||||
1,
|
||||
`UNIT PELAKSANA PELAYANAN PELANGGAN : ${
|
||||
reportMeta.up3
|
||||
? reportMeta.up3.name.toUpperCase()
|
||||
: 'Semua Unit Pelaksanaan Pelayanan Pelanggan'.toUpperCase()
|
||||
`UNIT PELAKSANA PELAYANAN PELANGGAN : ${reportMeta.up3
|
||||
? reportMeta.up3.name.toUpperCase()
|
||||
: 'Semua Unit Pelaksanaan Pelayanan Pelanggan'.toUpperCase()
|
||||
}`
|
||||
)
|
||||
setHeaderStyle(
|
||||
worksheet,
|
||||
4,
|
||||
1,
|
||||
`POSKO : ${
|
||||
reportMeta.posko ? reportMeta.posko.name.toUpperCase() : 'Semua Posko'.toUpperCase()
|
||||
`POSKO : ${reportMeta.posko ? reportMeta.posko.name.toUpperCase() : 'Semua Posko'.toUpperCase()
|
||||
}`
|
||||
)
|
||||
|
||||
@ -750,5 +748,10 @@ const exportDetailToXLSX = (reportMeta: any, e: any) => {
|
||||
|
||||
e.cancel = true
|
||||
}
|
||||
|
||||
export { exportToPDF, exportDetailToPDF, exportToXLSX, exportDetailToXLSX }
|
||||
const exportToDOCX = (reportMeta: any, rawData: any) => {
|
||||
exportToWord(reportMeta, formatData(rawData, reportMeta.groupBy), `Laporan ${reportName}`, formatMetaData(reportMeta))
|
||||
}
|
||||
const exportDetailToDOCX = (reportMeta: any, rawData: any) => {
|
||||
exportDetailToWord(reportMeta, rawData, `Laporan Detail ${reportName}`, formatMetaData(reportMeta))
|
||||
}
|
||||
export { exportToPDF, exportToXLSX, exportDetailToPDF, exportDetailToXLSX, exportToDOCX, exportDetailToDOCX }
|
||||
|
@ -19,6 +19,7 @@ import { Workbook } from 'exceljs'
|
||||
import { setHeaderStyle } from '@/report/utils/xlsx'
|
||||
import { formatNumber, formatPercentage } from '@/utils/numbers'
|
||||
import { numberToStars } from '@/report/utils/rating'
|
||||
import { exportDetailToWord, exportToWord } from './doc/RGangguan_RatingPerPosko_DOC'
|
||||
|
||||
const reportName = 'Rekapitulasi Rating Per Posko'
|
||||
const fontSize = 5
|
||||
@ -415,20 +416,18 @@ const exportToXLSX = (reportMeta: any, e: any) => {
|
||||
worksheet,
|
||||
2,
|
||||
1,
|
||||
`UNIT INDUK : ${
|
||||
reportMeta.uid
|
||||
? reportMeta.uid.name.toUpperCase()
|
||||
: 'Semua Unit Induk Distribusi/Wilayah'.toUpperCase()
|
||||
`UNIT INDUK : ${reportMeta.uid
|
||||
? reportMeta.uid.name.toUpperCase()
|
||||
: 'Semua Unit Induk Distribusi/Wilayah'.toUpperCase()
|
||||
}`
|
||||
)
|
||||
setHeaderStyle(
|
||||
worksheet,
|
||||
3,
|
||||
1,
|
||||
`UNIT PELAKSANA PELAYANAN PELANGGAN : ${
|
||||
reportMeta.up3
|
||||
? reportMeta.up3.name.toUpperCase()
|
||||
: 'Semua Unit Pelaksanaan Pelayanan Pelanggan'.toUpperCase()
|
||||
`UNIT PELAKSANA PELAYANAN PELANGGAN : ${reportMeta.up3
|
||||
? reportMeta.up3.name.toUpperCase()
|
||||
: 'Semua Unit Pelaksanaan Pelayanan Pelanggan'.toUpperCase()
|
||||
}`
|
||||
)
|
||||
|
||||
@ -501,5 +500,10 @@ const exportDetailToXLSX = (reportMeta: any, e: any) => {
|
||||
|
||||
e.cancel = true
|
||||
}
|
||||
|
||||
export { exportToPDF, exportToXLSX, exportDetailToPDF, exportDetailToXLSX }
|
||||
const exportToDOCX = (reportMeta: any, rawData: any) => {
|
||||
exportToWord(reportMeta, formatData(rawData), `Laporan ${reportName}`, formatMetaData(reportMeta))
|
||||
}
|
||||
const exportDetailToDOCX = (reportMeta: any, rawData: any) => {
|
||||
exportDetailToWord(reportMeta, rawData, `Laporan Detail ${reportName}`, formatMetaData(reportMeta))
|
||||
}
|
||||
export { exportToPDF, exportToXLSX, exportDetailToPDF, exportDetailToXLSX, exportToDOCX, exportDetailToDOCX }
|
||||
|
@ -19,6 +19,7 @@ import { Workbook } from 'exceljs'
|
||||
import { setHeaderStyle } from '@/report/utils/xlsx'
|
||||
import { formatNumber, formatPercentage } from '@/utils/numbers'
|
||||
import { numberToStars } from '@/report/utils/rating'
|
||||
import { exportDetailToWord, exportToWord } from './doc/RGangguan_RatingPerRegu_DOC'
|
||||
|
||||
const reportName = 'Rekapitulasi Rating Per Regu'
|
||||
const fontSize = 5
|
||||
@ -395,28 +396,25 @@ const exportToXLSX = (reportMeta: any, e: any) => {
|
||||
worksheet,
|
||||
2,
|
||||
1,
|
||||
`UNIT INDUK : ${
|
||||
reportMeta.uid
|
||||
? reportMeta.uid.name.toUpperCase()
|
||||
: 'Semua Unit Induk Distribusi/Wilayah'.toUpperCase()
|
||||
`UNIT INDUK : ${reportMeta.uid
|
||||
? reportMeta.uid.name.toUpperCase()
|
||||
: 'Semua Unit Induk Distribusi/Wilayah'.toUpperCase()
|
||||
}`
|
||||
)
|
||||
setHeaderStyle(
|
||||
worksheet,
|
||||
3,
|
||||
1,
|
||||
`UNIT PELAKSANA PELAYANAN PELANGGAN : ${
|
||||
reportMeta.up3
|
||||
? reportMeta.up3.name.toUpperCase()
|
||||
: 'Semua Unit Pelaksanaan Pelayanan Pelanggan'.toUpperCase()
|
||||
`UNIT PELAKSANA PELAYANAN PELANGGAN : ${reportMeta.up3
|
||||
? reportMeta.up3.name.toUpperCase()
|
||||
: 'Semua Unit Pelaksanaan Pelayanan Pelanggan'.toUpperCase()
|
||||
}`
|
||||
)
|
||||
setHeaderStyle(
|
||||
worksheet,
|
||||
4,
|
||||
1,
|
||||
`POSKO : ${
|
||||
reportMeta.posko ? reportMeta.posko.name.toUpperCase() : 'Semua Posko'.toUpperCase()
|
||||
`POSKO : ${reportMeta.posko ? reportMeta.posko.name.toUpperCase() : 'Semua Posko'.toUpperCase()
|
||||
}`
|
||||
)
|
||||
|
||||
@ -491,4 +489,10 @@ const exportDetailToXLSX = (reportMeta: any, e: any) => {
|
||||
e.cancel = true
|
||||
}
|
||||
|
||||
export { exportToPDF, exportToXLSX, exportDetailToPDF, exportDetailToXLSX }
|
||||
const exportToDOCX = (reportMeta: any, rawData: any) => {
|
||||
exportToWord(reportMeta, formatData(rawData), `Laporan ${reportName}`, formatMetaData(reportMeta))
|
||||
}
|
||||
const exportDetailToDOCX = (reportMeta: any, rawData: any) => {
|
||||
exportDetailToWord(reportMeta, rawData, `Laporan Detail ${reportName}`, formatMetaData(reportMeta))
|
||||
}
|
||||
export { exportToPDF, exportToXLSX, exportDetailToPDF, exportDetailToXLSX, exportToDOCX, exportDetailToDOCX }
|
||||
|
282
src/report/Gangguan/Rekap/doc/RGangguan_ALL_DOC.ts
Normal file
282
src/report/Gangguan/Rekap/doc/RGangguan_ALL_DOC.ts
Normal file
@ -0,0 +1,282 @@
|
||||
|
||||
const company = "PT. PLN (Persero)";
|
||||
const exportToWord = (reportMeta: any, rawData: any, filename: any, periode: any) => {
|
||||
var preHtml = `<html xmlns:o='urn:schemas-microsoft-com:office:office' xmlns:w='urn:schemas-microsoft-com:office:word' xmlns='http://www.w3.org/TR/REC-html40'><head><meta charset='utf-8'><title>${filename}</title>
|
||||
<style type="text/css" media="print">
|
||||
@page Section1 {
|
||||
size:841.95pt 21.0cm;
|
||||
mso-page-orientation:landscape;
|
||||
margin:72.0pt 72.0pt 72.0pt 72.0pt;
|
||||
mso-header-margin:35.4pt;
|
||||
mso-footer-margin:35.4pt;
|
||||
mso-paper-source:0;
|
||||
}
|
||||
@page{
|
||||
size: landscape;
|
||||
font-size: 5px;
|
||||
}
|
||||
div.Section1 {
|
||||
page:Section1;
|
||||
}
|
||||
table.main {
|
||||
border-collapse: collapse;
|
||||
width: 100%;
|
||||
text-transform: uppercase;
|
||||
font-size: 8px;
|
||||
}
|
||||
table.main thead tr {
|
||||
background-color: #c0c0c0;
|
||||
}
|
||||
</style>
|
||||
</head><body>
|
||||
<div class="Section1">
|
||||
`;
|
||||
var tbody = ``;
|
||||
for (let index = 0; index < rawData.length; index++) {
|
||||
const element = rawData[index];
|
||||
var column = `<tr>`;
|
||||
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 += `<td ${styleTotal} ${colSpan} align="left">${content.content}</td>`
|
||||
: column += `<td ${styleTotal}>${content}</td>`;
|
||||
}
|
||||
column += `</tr>`;
|
||||
tbody += column;
|
||||
}
|
||||
var body = `
|
||||
<table border=0 style="border:none">
|
||||
<tr>
|
||||
<td colspan="3"> ${company.toUpperCase()}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> Unit Induk Distribusi/Wilayah </td>
|
||||
<td>:</td>
|
||||
<td> ${reportMeta.uid
|
||||
? reportMeta.uid.name.toUpperCase()
|
||||
: 'Semua Unit Induk Distribusi/Wilayah'.toUpperCase()}</td>
|
||||
<tr>
|
||||
<td> Unit Pelaksanaan Pelayanan Pelanggan</td>
|
||||
<td>:</td>
|
||||
<td> ${reportMeta.up3
|
||||
? reportMeta.up3.name.toUpperCase()
|
||||
: 'Semua Unit Pelaksanaan Pelayanan Pelanggan'.toUpperCase()}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> Posko</td>
|
||||
<td>:</td>
|
||||
<td> ${reportMeta.posko ? reportMeta.posko.name.toUpperCase() : 'Semua Posko'.toUpperCase()}</td>
|
||||
</tr>
|
||||
</table>
|
||||
<center><h6>${filename.toUpperCase()}</h6></center>
|
||||
<center><h6>Periode : ${periode.dateFromFormat} s/d ${periode.dateToFormat} (${periode.dayTo})<h6></center>
|
||||
<table class="main">
|
||||
<thead>
|
||||
<tr>
|
||||
<th align="center" rowspan="2">Nama Unit</th>
|
||||
<th align="center" rowspan="2">Total</th>
|
||||
<th align="center" rowspan="2">SELESAI</th>
|
||||
<th align="center" rowspan="2">%</th>
|
||||
<th align="center" rowspan="2">IN PROSES</th>
|
||||
<th align="center" rowspan="2">%</th>
|
||||
<th align="center" colspan="5">DISPATCHING TIME</th>
|
||||
<th align="center" colspan="5">RESPONSE TIME</th>
|
||||
<th align="center" colspan="5">RECOVERY TIME</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th align="center">RATA-RATA</th>
|
||||
<th align="center">MAX</th>
|
||||
<th align="center">MIN</th>
|
||||
<th align="center">>SLA</th>
|
||||
<th align="center"><SLA</th>
|
||||
<th align="center">RATA-RATA</th>
|
||||
<th align="center">MAX</th>
|
||||
<th align="center">MIN</th>
|
||||
<th align="center">>SLA</th>
|
||||
<th align="center"><SLA</th>
|
||||
<th align="center">RATA-RATA</th>
|
||||
<th align="center">MAX</th>
|
||||
<th align="center">MIN</th>
|
||||
<th align="center">>SLA</th>
|
||||
<th align="center"><SLA</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
${tbody}
|
||||
</tbody>
|
||||
</table>
|
||||
`
|
||||
|
||||
var postHtml = "</div></body></html>";
|
||||
|
||||
var html = preHtml + body + postHtml;
|
||||
|
||||
var url =
|
||||
"data:application/vnd.ms-word;charset=utf-8," + encodeURIComponent(html);
|
||||
|
||||
filename = filename ? filename + ".doc" : "document.doc";
|
||||
|
||||
var downloadLink = document.createElement("a");
|
||||
|
||||
document.body.appendChild(downloadLink);
|
||||
|
||||
downloadLink.href = url;
|
||||
|
||||
downloadLink.download = filename;
|
||||
|
||||
downloadLink.click();
|
||||
|
||||
document.body.removeChild(downloadLink);
|
||||
}
|
||||
const exportDetailToWord = (reportMeta: any, rawData: any, filename: any, periode: any) => {
|
||||
var preHtml = `<html xmlns:o='urn:schemas-microsoft-com:office:office' xmlns:w='urn:schemas-microsoft-com:office:word' xmlns='http://www.w3.org/TR/REC-html40'><head><meta charset='utf-8'><title>${filename}</title>
|
||||
<style type="text/css" media="print">
|
||||
@page Section1 {
|
||||
size:841.95pt 21.0cm;
|
||||
mso-page-orientation:landscape;
|
||||
margin:72.0pt 72.0pt 72.0pt 72.0pt;
|
||||
mso-header-margin:35.4pt;
|
||||
mso-footer-margin:35.4pt;
|
||||
mso-paper-source:0;
|
||||
}
|
||||
@page{
|
||||
size: landscape;
|
||||
font-size: 5px;
|
||||
}
|
||||
div.Section1 {
|
||||
page:Section1;
|
||||
}
|
||||
table.main {
|
||||
border-collapse: collapse;
|
||||
width: 100%;
|
||||
text-transform: uppercase;
|
||||
font-size: 8px;
|
||||
}
|
||||
table.main thead tr {
|
||||
background-color: #c0c0c0;
|
||||
}
|
||||
</style>
|
||||
</head><body>
|
||||
<div class="Section1">
|
||||
`;
|
||||
var tbody = ``;
|
||||
var cr = '';
|
||||
rawData.map((item: any, i: any) => {
|
||||
cr += `<tr>`;
|
||||
cr += `<td>${i + 1}</td>`;
|
||||
cr += `<td>${item.nama_posko}</td>`;
|
||||
cr += `<td>${item.no_laporan}</td>`;
|
||||
cr += `<td>${item.waktu_lapor}</td>`;
|
||||
cr += `<td>${item.waktu_response}</td>`;
|
||||
cr += `<td>${item.waktu_recovery}</td>`;
|
||||
cr += `<td>${item.durasi_response_time}</td>`;
|
||||
cr += `<td>${item.durasi_recovery_time}</td>`;
|
||||
cr += `<td></td>`;
|
||||
cr += `<td></td>`;
|
||||
cr += `<td>${item.jarak_closing}</td>`;
|
||||
cr += `<td>${item.dispatch_oleh}</td>`;
|
||||
cr += `<td>${item.idpel_nometer}</td>`;
|
||||
cr += `<td>${item.nama_pelapor}</td>`;
|
||||
cr += `<td>${item.alamat_pelapor}</td>`;
|
||||
cr += `<td>${item.no_telp_pelapor}</td>`;
|
||||
cr += `<td>${item.keterangan_pelapor}</td>`;
|
||||
cr += `<td>${item.pembuat_laporan}</td>`;
|
||||
cr += `<td>${item.diselesaikan_oleh}</td>`;
|
||||
cr += `<td>${item.status_akhir}</td>`;
|
||||
cr += `<td>${item.referensi_marking}</td>`;
|
||||
cr += `<td>${item.kode_gangguan}</td>`;
|
||||
cr += `<td>${item.jenis_gangguan}</td>`;
|
||||
cr += `<td>${item.penyebab}</td>`;
|
||||
cr += `<td>${item.tindakan}</td>`;
|
||||
cr += `</tr>`;
|
||||
})
|
||||
tbody += cr;
|
||||
|
||||
var body = `
|
||||
<table border=0 style="border:none">
|
||||
<tr>
|
||||
<td colspan="3"> ${company.toUpperCase()}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> Unit Induk Distribusi/Wilayah </td>
|
||||
<td>:</td>
|
||||
<td> ${reportMeta.uid
|
||||
? reportMeta.uid.name.toUpperCase()
|
||||
: 'Semua Unit Induk Distribusi/Wilayah'.toUpperCase()}</td>
|
||||
<tr>
|
||||
<td> Unit Pelaksanaan Pelayanan Pelanggan</td>
|
||||
<td>:</td>
|
||||
<td> ${reportMeta.up3
|
||||
? reportMeta.up3.name.toUpperCase()
|
||||
: 'Semua Unit Pelaksanaan Pelayanan Pelanggan'.toUpperCase()}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> Posko</td>
|
||||
<td>:</td>
|
||||
<td> ${reportMeta.posko ? reportMeta.posko.name.toUpperCase() : 'Semua Posko'.toUpperCase()}</td>
|
||||
</tr>
|
||||
</table>
|
||||
<center><h6>${filename.toUpperCase()}</h6></center>
|
||||
<center><h6>Periode : ${periode.dateFromFormat} s/d ${periode.dateToFormat} (${periode.dayTo})<h6></center>
|
||||
<table class="main">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>No</th>
|
||||
<th>Posko</th>
|
||||
<th>No Lapor</th>
|
||||
<th>Tgl/Jam Lapor</th>
|
||||
<th>Tgl/Jam Datang</th>
|
||||
<th>Tgl/Jam Nyala</th>
|
||||
<th>Durasi Response Time</th>
|
||||
<th>Durasi Recovery Time</th>
|
||||
<th>Durasi Penugasan Regu</th>
|
||||
<th>Durasi Perjalanan Regu</th>
|
||||
<th>Jarak Closing (m)</th>
|
||||
<th>Dispatch Oleh</th>
|
||||
<th>IDPEL/NO METER</th>
|
||||
<th>Nama Pelapor</th>
|
||||
<th>Alamat Pelapor</th>
|
||||
<th>No Telp Pelapor</th>
|
||||
<th>Keterangan Pelapor</th>
|
||||
<th>Sumber Lapor</th>
|
||||
<th>Diselesaikan Oleh</th>
|
||||
<th>Status</th>
|
||||
<th>Referensi Marking</th>
|
||||
<th>Kode Gangguan</th>
|
||||
<th>Jenis Gangguan</th>
|
||||
<th>Tindakan</th>
|
||||
<th>Penyebab</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>${tbody}</tbody>
|
||||
</table>
|
||||
`
|
||||
|
||||
var postHtml = "</div></body></html>";
|
||||
|
||||
var html = preHtml + body + postHtml;
|
||||
|
||||
var url =
|
||||
"data:application/vnd.ms-word;charset=utf-8," + encodeURIComponent(html);
|
||||
|
||||
filename = filename ? filename + ".doc" : "document.doc";
|
||||
|
||||
var downloadLink = document.createElement("a");
|
||||
|
||||
document.body.appendChild(downloadLink);
|
||||
|
||||
downloadLink.href = url;
|
||||
|
||||
downloadLink.download = filename;
|
||||
|
||||
downloadLink.click();
|
||||
|
||||
document.body.removeChild(downloadLink);
|
||||
}
|
||||
export { exportToWord, exportDetailToWord }
|
251
src/report/Gangguan/Rekap/doc/RGangguan_AlihPosko_DOC.ts
Executable file
251
src/report/Gangguan/Rekap/doc/RGangguan_AlihPosko_DOC.ts
Executable file
@ -0,0 +1,251 @@
|
||||
|
||||
const company = "PT. PLN (Persero)";
|
||||
const exportToWord = (reportMeta: any, rawData: any, filename: any, periode: any) => {
|
||||
var preHtml = `<html xmlns:o='urn:schemas-microsoft-com:office:office' xmlns:w='urn:schemas-microsoft-com:office:word' xmlns='http://www.w3.org/TR/REC-html40'><head><meta charset='utf-8'><title>${filename}</title>
|
||||
<style type="text/css" media="print">
|
||||
@page Section1 {
|
||||
size:841.95pt 21.0cm;
|
||||
mso-page-orientation:landscape;
|
||||
margin:72.0pt 72.0pt 72.0pt 72.0pt;
|
||||
mso-header-margin:35.4pt;
|
||||
mso-footer-margin:35.4pt;
|
||||
mso-paper-source:0;
|
||||
}
|
||||
@page{
|
||||
size: landscape;
|
||||
font-size: 5px;
|
||||
}
|
||||
div.Section1 {
|
||||
page:Section1;
|
||||
}
|
||||
table.main {
|
||||
border-collapse: collapse;
|
||||
width: 100%;
|
||||
text-transform: uppercase;
|
||||
font-size: 8px;
|
||||
}
|
||||
table.main thead tr {
|
||||
background-color: #c0c0c0;
|
||||
}
|
||||
</style>
|
||||
</head><body>
|
||||
<div class="Section1">
|
||||
`;
|
||||
var tbody = ``;
|
||||
for (let index = 0; index < 5; index++) {
|
||||
const element = rawData[index];
|
||||
var column = `<tr>`;
|
||||
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 += `<td ${styleTotal} ${colSpan} align="left">${content.content}</td>`
|
||||
: column += `<td ${styleTotal}>${content}</td>`;
|
||||
}
|
||||
column += `</tr>`;
|
||||
tbody += column;
|
||||
}
|
||||
var body = `
|
||||
<table border=0 style="border:none">
|
||||
<tr>
|
||||
<td colspan="3"> ${company.toUpperCase()}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> Unit Induk Distribusi/Wilayah </td>
|
||||
<td>:</td>
|
||||
<td> ${reportMeta.uid
|
||||
? reportMeta.uid.name.toUpperCase()
|
||||
: 'Semua Unit Induk Distribusi/Wilayah'.toUpperCase()}</td>
|
||||
<tr>
|
||||
<td> Unit Pelaksanaan Pelayanan Pelanggan</td>
|
||||
<td>:</td>
|
||||
<td> ${reportMeta.up3
|
||||
? reportMeta.up3.name.toUpperCase()
|
||||
: 'Semua Unit Pelaksanaan Pelayanan Pelanggan'.toUpperCase()}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> Posko</td>
|
||||
<td>:</td>
|
||||
<td> ${reportMeta.posko ? reportMeta.posko.name.toUpperCase() : 'Semua Posko'.toUpperCase()}</td>
|
||||
</tr>
|
||||
</table>
|
||||
<center><h6>${filename.toUpperCase()}</h6></center>
|
||||
<center><h6>Periode : ${periode.dateFromFormat} s/d ${periode.dateToFormat} (${periode.dayTo})<h6></center>
|
||||
<table class="main">
|
||||
<thead>
|
||||
<tr>
|
||||
<th align="center">No</th>
|
||||
<th align="center">Nama Up3</th>
|
||||
<th align="center">Nama Posko</th>
|
||||
<th align="center">Posko In</th>
|
||||
<th align="center">Posko Out</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
${tbody}
|
||||
</tbody>
|
||||
</table>
|
||||
`
|
||||
|
||||
var postHtml = "</div></body></html>";
|
||||
|
||||
var html = preHtml + body + postHtml;
|
||||
|
||||
var url =
|
||||
"data:application/vnd.ms-word;charset=utf-8," + encodeURIComponent(html);
|
||||
|
||||
filename = filename ? filename + ".doc" : "document.doc";
|
||||
|
||||
var downloadLink = document.createElement("a");
|
||||
|
||||
document.body.appendChild(downloadLink);
|
||||
|
||||
downloadLink.href = url;
|
||||
|
||||
downloadLink.download = filename;
|
||||
|
||||
downloadLink.click();
|
||||
|
||||
document.body.removeChild(downloadLink);
|
||||
}
|
||||
|
||||
const exportDetailToWord = (reportMeta: any, rawData: any, filename: any, periode: any) => {
|
||||
var preHtml = `<html xmlns:o='urn:schemas-microsoft-com:office:office' xmlns:w='urn:schemas-microsoft-com:office:word' xmlns='http://www.w3.org/TR/REC-html40'><head><meta charset='utf-8'><title>${filename}</title>
|
||||
<style type="text/css" media="print">
|
||||
@page Section1 {
|
||||
size:841.95pt 21.0cm;
|
||||
mso-page-orientation:landscape;
|
||||
margin:72.0pt 72.0pt 72.0pt 72.0pt;
|
||||
mso-header-margin:35.4pt;
|
||||
mso-footer-margin:35.4pt;
|
||||
mso-paper-source:0;
|
||||
}
|
||||
@page{
|
||||
size: landscape;
|
||||
font-size: 5px;
|
||||
}
|
||||
div.Section1 {
|
||||
page:Section1;
|
||||
}
|
||||
table.main {
|
||||
border-collapse: collapse;
|
||||
width: 100%;
|
||||
text-transform: uppercase;
|
||||
font-size: 8px;
|
||||
}
|
||||
table.main thead tr {
|
||||
background-color: #c0c0c0;
|
||||
}
|
||||
</style>
|
||||
</head><body>
|
||||
<div class="Section1">
|
||||
`;
|
||||
var tbody = ``;
|
||||
var cr = ``;
|
||||
rawData.map((item: any, i: any) => {
|
||||
cr += '<tr>';
|
||||
cr += `<td>${i + 1}</td>`;
|
||||
cr += `<td>${item.no_laporan}</td>`;
|
||||
cr += `<td>${item.waktu_lapor}</td>`;
|
||||
cr += `<td>${item.waktu_response}</td>`;
|
||||
cr += `<td>${item.waktu_recovery}</td>`;
|
||||
cr += `<td>${item.durasi_response_time}</td>`;
|
||||
cr += `<td>${item.durasi_recovery_time}</td>`;
|
||||
cr += `<td>${item.status_akhir}</td>`;
|
||||
cr += `<td>${item.idpel_nometer}</td>`;
|
||||
cr += `<td>${item.nama_pelapor}</td>`;
|
||||
cr += `<td>${item.alamat_pelapor}</td>`;
|
||||
cr += `<td>${item.no_telp_pelapor}</td>`;
|
||||
cr += `<td>${item.keterangan_pelapor}</td>`;
|
||||
cr += `<td>${item.nama_posko}</td>`;
|
||||
cr += `<td>${item.media}</td>`;
|
||||
cr += '<td></td>';
|
||||
cr += '<td></td>';
|
||||
cr += '<td></td>';
|
||||
cr += '</tr>';
|
||||
});
|
||||
tbody += cr;
|
||||
|
||||
var body = `
|
||||
<table border=0 style="border:none">
|
||||
<tr>
|
||||
<td colspan="3"> ${company.toUpperCase()}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> Unit Induk Distribusi/Wilayah </td>
|
||||
<td>:</td>
|
||||
<td> ${reportMeta.uid
|
||||
? reportMeta.uid.name.toUpperCase()
|
||||
: 'Semua Unit Induk Distribusi/Wilayah'.toUpperCase()}</td>
|
||||
<tr>
|
||||
<td> Unit Pelaksanaan Pelayanan Pelanggan</td>
|
||||
<td>:</td>
|
||||
<td> ${reportMeta.up3
|
||||
? reportMeta.up3.name.toUpperCase()
|
||||
: 'Semua Unit Pelaksanaan Pelayanan Pelanggan'.toUpperCase()}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> Posko</td>
|
||||
<td>:</td>
|
||||
<td> ${reportMeta.posko ? reportMeta.posko.name.toUpperCase() : 'Semua Posko'.toUpperCase()}</td>
|
||||
</tr>
|
||||
</table>
|
||||
<center><h6>${filename.toUpperCase()}</h6></center>
|
||||
<center><h6>Periode : ${periode.dateFromFormat} s/d ${periode.dateToFormat} (${periode.dayTo})<h6></center>
|
||||
<table class="main">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>No</th>
|
||||
<th>No Laporan</th>
|
||||
<th>Tgl Lapor</th>
|
||||
<th>Tgl Datang</th>
|
||||
<th>Tgl Nyala</th>
|
||||
<th>Durasi Response Time</th>
|
||||
<th>Durasi Recovery Time</th>
|
||||
<th>Status</th>
|
||||
<th>IDPEL/NO METER</th>
|
||||
<th>Nama Pelapor</th>
|
||||
<th>Alamat Pelapor</th>
|
||||
<th>No Telp Pelapor</th>
|
||||
<th>Keterangan Pelapor</th>
|
||||
<th>Posko</th>
|
||||
<th>Sumber Lapor</th>
|
||||
<th>Nama Petugas</th>
|
||||
<th>Posko Asal</th>
|
||||
<th>Posko Tujuan</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
${tbody}
|
||||
</tbody>
|
||||
</table>
|
||||
`
|
||||
|
||||
var postHtml = "</div></body></html>";
|
||||
|
||||
var html = preHtml + body + postHtml;
|
||||
|
||||
var url =
|
||||
"data:application/vnd.ms-word;charset=utf-8," + encodeURIComponent(html);
|
||||
|
||||
filename = filename ? filename + ".doc" : "document.doc";
|
||||
|
||||
var downloadLink = document.createElement("a");
|
||||
|
||||
document.body.appendChild(downloadLink);
|
||||
|
||||
downloadLink.href = url;
|
||||
|
||||
downloadLink.download = filename;
|
||||
|
||||
downloadLink.click();
|
||||
|
||||
document.body.removeChild(downloadLink);
|
||||
}
|
||||
|
||||
export { exportToWord, exportDetailToWord }
|
280
src/report/Gangguan/Rekap/doc/RGangguan_BerdasarMedia_DOC.ts
Normal file
280
src/report/Gangguan/Rekap/doc/RGangguan_BerdasarMedia_DOC.ts
Normal file
@ -0,0 +1,280 @@
|
||||
|
||||
const company = "PT. PLN (Persero)";
|
||||
const exportToWord = (reportMeta: any, rawData: any, filename: any, periode: any) => {
|
||||
console.log(rawData)
|
||||
var preHtml = `<html xmlns:o='urn:schemas-microsoft-com:office:office' xmlns:w='urn:schemas-microsoft-com:office:word' xmlns='http://www.w3.org/TR/REC-html40'><head><meta charset='utf-8'><title>${filename}</title>
|
||||
<style type="text/css" media="print">
|
||||
@page Section1 {
|
||||
size:841.95pt 21.0cm;
|
||||
mso-page-orientation:landscape;
|
||||
margin:72.0pt 72.0pt 72.0pt 72.0pt;
|
||||
mso-header-margin:35.4pt;
|
||||
mso-footer-margin:35.4pt;
|
||||
mso-paper-source:0;
|
||||
}
|
||||
@page{
|
||||
size: landscape;
|
||||
font-size: 5px;
|
||||
}
|
||||
div.Section1 {
|
||||
page:Section1;
|
||||
}
|
||||
table.main {
|
||||
border-collapse: collapse;
|
||||
width: 100%;
|
||||
text-transform: uppercase;
|
||||
font-size: 8px;
|
||||
}
|
||||
table.main thead tr {
|
||||
background-color: #c0c0c0;
|
||||
}
|
||||
</style>
|
||||
</head><body>
|
||||
<div class="Section1">
|
||||
`;
|
||||
var tbody = ``;
|
||||
for (let index = 0; index < rawData.length; index++) {
|
||||
const element = rawData[index];
|
||||
var column = `<tr>`;
|
||||
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 === 'GRAND TOTAL') {
|
||||
styleTotal = 'style="background-color: #c0c0c0"'
|
||||
};
|
||||
i === 0 ?
|
||||
column += `<td ${styleTotal} ${colSpan} align="left">${content.content}</td>`
|
||||
: column += `<td ${styleTotal}>${content}</td>`;
|
||||
}
|
||||
column += `</tr>`;
|
||||
tbody += column;
|
||||
}
|
||||
const header =
|
||||
[
|
||||
{
|
||||
content: 'No',
|
||||
rowSpan: 2
|
||||
},
|
||||
{
|
||||
content: 'Nama Media',
|
||||
rowSpan: 2
|
||||
},
|
||||
{
|
||||
content: 'Tanggal',
|
||||
colSpan: 31
|
||||
},
|
||||
{
|
||||
content: 'Total',
|
||||
rowSpan: 2
|
||||
}
|
||||
];
|
||||
var columnHeader = '';
|
||||
for (let i = 0; i < header.length; i++) {
|
||||
const content = header[i];
|
||||
const rowSpan = content.rowSpan ? `rowspan="${content.rowSpan}"` : '';
|
||||
const colSpan = content?.colSpan !== undefined ? `colspan="${content.colSpan}"` : ''
|
||||
|
||||
columnHeader += `<th ${rowSpan} ${colSpan} align="center">${content.content}</th>`;
|
||||
}
|
||||
var columnTanggal = '';
|
||||
for (let index = 1; index <= 31; index++) {
|
||||
columnTanggal += `<td>${index}</td>`;
|
||||
}
|
||||
var body = `
|
||||
<table border=0 style="border:none">
|
||||
<tr>
|
||||
<td colspan="3"> ${company.toUpperCase()}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> Unit Induk Distribusi/Wilayah </td>
|
||||
<td>:</td>
|
||||
<td> ${reportMeta.uid
|
||||
? reportMeta.uid.name.toUpperCase()
|
||||
: 'Semua Unit Induk Distribusi/Wilayah'.toUpperCase()}</td>
|
||||
<tr>
|
||||
<td> Unit Pelaksanaan Pelayanan Pelanggan</td>
|
||||
<td>:</td>
|
||||
<td> ${reportMeta.up3
|
||||
? reportMeta.up3.name.toUpperCase()
|
||||
: 'Semua Unit Pelaksanaan Pelayanan Pelanggan'.toUpperCase()}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> Posko</td>
|
||||
<td>:</td>
|
||||
<td> ${reportMeta.posko ? reportMeta.posko.name.toUpperCase() : 'Semua Posko'.toUpperCase()}</td>
|
||||
</tr>
|
||||
</table>
|
||||
<center><h6>${filename.toUpperCase()}</h6></center>
|
||||
<center><h6>Periode : ${periode.dateFromFormat} s/d ${periode.dateToFormat} (${periode.dayTo})<h6></center>
|
||||
<table class="main">
|
||||
<thead>
|
||||
<tr>
|
||||
${columnHeader}
|
||||
</tr>
|
||||
<tr>
|
||||
${columnTanggal}
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
${tbody}
|
||||
</tbody>
|
||||
</table>
|
||||
`
|
||||
|
||||
var postHtml = "</div></body></html>";
|
||||
|
||||
var html = preHtml + body + postHtml;
|
||||
|
||||
var url =
|
||||
"data:application/vnd.ms-word;charset=utf-8," + encodeURIComponent(html);
|
||||
|
||||
filename = filename ? filename + ".doc" : "document.doc";
|
||||
|
||||
var downloadLink = document.createElement("a");
|
||||
|
||||
document.body.appendChild(downloadLink);
|
||||
|
||||
downloadLink.href = url;
|
||||
|
||||
downloadLink.download = filename;
|
||||
|
||||
downloadLink.click();
|
||||
|
||||
document.body.removeChild(downloadLink);
|
||||
}
|
||||
|
||||
const exportDetailToWord = (reportMeta: any, rawData: any, filename: any, periode: any) => {
|
||||
var preHtml = `<html xmlns:o='urn:schemas-microsoft-com:office:office' xmlns:w='urn:schemas-microsoft-com:office:word' xmlns='http://www.w3.org/TR/REC-html40'><head><meta charset='utf-8'><title>${filename}</title>
|
||||
<style type="text/css" media="print">
|
||||
@page Section1 {
|
||||
size:841.95pt 21.0cm;
|
||||
mso-page-orientation:landscape;
|
||||
margin:72.0pt 72.0pt 72.0pt 72.0pt;
|
||||
mso-header-margin:35.4pt;
|
||||
mso-footer-margin:35.4pt;
|
||||
mso-paper-source:0;
|
||||
}
|
||||
@page{
|
||||
size: landscape;
|
||||
font-size: 5px;
|
||||
}
|
||||
div.Section1 {
|
||||
page:Section1;
|
||||
}
|
||||
table.main {
|
||||
border-collapse: collapse;
|
||||
width: 100%;
|
||||
text-transform: uppercase;
|
||||
font-size: 8px;
|
||||
}
|
||||
table.main thead tr {
|
||||
background-color: #c0c0c0;
|
||||
}
|
||||
</style>
|
||||
</head><body>
|
||||
<div class="Section1">
|
||||
`;
|
||||
var tbody = ``;
|
||||
var cr = ``;
|
||||
rawData.map((item: any, i: any) => {
|
||||
cr += '<tr>';
|
||||
cr += `<td>${i + 1}</td>`;
|
||||
cr += `<td>${item.no_laporan}</td>`;
|
||||
cr += `<td>${item.waktu_lapor}</td>`;
|
||||
cr += `<td>${item.waktu_response}</td>`;
|
||||
cr += `<td>${item.waktu_recovery}</td>`;
|
||||
cr += `<td>${item.durasi_response_time}</td>`;
|
||||
cr += `<td>${item.durasi_recovery_time}</td>`;
|
||||
cr += `<td>${item.status_akhir}</td>`;
|
||||
cr += `<td>${item.referensi_marking}</td>`;
|
||||
cr += `<td>${item.idpel_nometer}</td>`;
|
||||
cr += `<td>${item.nama_pelapor}</td>`;
|
||||
cr += `<td>${item.alamat_pelapor}</td>`;
|
||||
cr += `<td>${item.no_telp_pelapor}</td>`;
|
||||
cr += `<td>${item.keterangan_pelapor}</td>`;
|
||||
cr += `<td>${item.nama_posko}</td>`;
|
||||
cr += `<td>${item.tindakan}</td>`;
|
||||
cr += `<td>${item.penyebab}</td>`;
|
||||
cr += '</tr>';
|
||||
});
|
||||
tbody += cr;
|
||||
|
||||
var body = `
|
||||
<table border=0 style="border:none">
|
||||
<tr>
|
||||
<td colspan="3"> ${company.toUpperCase()}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> Unit Induk Distribusi/Wilayah </td>
|
||||
<td>:</td>
|
||||
<td> ${reportMeta.uid
|
||||
? reportMeta.uid.name.toUpperCase()
|
||||
: 'Semua Unit Induk Distribusi/Wilayah'.toUpperCase()}</td>
|
||||
<tr>
|
||||
<td> Unit Pelaksanaan Pelayanan Pelanggan</td>
|
||||
<td>:</td>
|
||||
<td> ${reportMeta.up3
|
||||
? reportMeta.up3.name.toUpperCase()
|
||||
: 'Semua Unit Pelaksanaan Pelayanan Pelanggan'.toUpperCase()}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> Posko</td>
|
||||
<td>:</td>
|
||||
<td> ${reportMeta.posko ? reportMeta.posko.name.toUpperCase() : 'Semua Posko'.toUpperCase()}</td>
|
||||
</tr>
|
||||
</table>
|
||||
<center><h6>${filename.toUpperCase()}</h6></center>
|
||||
<center><h6>Periode : ${periode.dateFromFormat} s/d ${periode.dateToFormat} (${periode.dayTo})<h6></center>
|
||||
<table class="main">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>No</th>
|
||||
<th>No Laporan</th>
|
||||
<th>Tgl Lapor</th>
|
||||
<th>Tgl Datang</th>
|
||||
<th>Tgl Nyala</th>
|
||||
<th>Durasi Response Time</th>
|
||||
<th>Durasi Recovery Time</th>
|
||||
<th>Status</th>
|
||||
<th>Referensi Marking</th>
|
||||
<th>IDPEL/NO METER</th>
|
||||
<th>Nama Pelapor</th>
|
||||
<th>Alamat Pelapor</th>
|
||||
<th>No Telp Pelapor</th>
|
||||
<th>Keterangan Pelapor</th>
|
||||
<th>Posko</th>
|
||||
<th>Tidakan</th>
|
||||
<th>Penyebab</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
${tbody}
|
||||
</tbody>
|
||||
</table>
|
||||
`
|
||||
|
||||
var postHtml = "</div></body></html>";
|
||||
|
||||
var html = preHtml + body + postHtml;
|
||||
|
||||
var url =
|
||||
"data:application/vnd.ms-word;charset=utf-8," + encodeURIComponent(html);
|
||||
|
||||
filename = filename ? filename + ".doc" : "document.doc";
|
||||
|
||||
var downloadLink = document.createElement("a");
|
||||
|
||||
document.body.appendChild(downloadLink);
|
||||
|
||||
downloadLink.href = url;
|
||||
|
||||
downloadLink.download = filename;
|
||||
|
||||
downloadLink.click();
|
||||
|
||||
document.body.removeChild(downloadLink);
|
||||
}
|
||||
|
||||
export { exportToWord, exportDetailToWord }
|
279
src/report/Gangguan/Rekap/doc/RGangguan_CTTM_DOC.ts
Normal file
279
src/report/Gangguan/Rekap/doc/RGangguan_CTTM_DOC.ts
Normal file
@ -0,0 +1,279 @@
|
||||
|
||||
const company = "PT. PLN (Persero)";
|
||||
const exportToWord = (reportMeta: any, rawData: any, filename: any, periode: any) => {
|
||||
console.log(rawData)
|
||||
var preHtml = `<html xmlns:o='urn:schemas-microsoft-com:office:office' xmlns:w='urn:schemas-microsoft-com:office:word' xmlns='http://www.w3.org/TR/REC-html40'><head><meta charset='utf-8'><title>${filename}</title>
|
||||
<style type="text/css" media="print">
|
||||
@page Section1 {
|
||||
size:841.95pt 21.0cm;
|
||||
mso-page-orientation:landscape;
|
||||
margin:72.0pt 72.0pt 72.0pt 72.0pt;
|
||||
mso-header-margin:35.4pt;
|
||||
mso-footer-margin:35.4pt;
|
||||
mso-paper-source:0;
|
||||
}
|
||||
@page{
|
||||
size: landscape;
|
||||
font-size: 5px;
|
||||
}
|
||||
div.Section1 {
|
||||
page:Section1;
|
||||
}
|
||||
table.main {
|
||||
border-collapse: collapse;
|
||||
width: 100%;
|
||||
text-transform: uppercase;
|
||||
font-size: 8px;
|
||||
}
|
||||
table.main thead tr {
|
||||
background-color: #c0c0c0;
|
||||
}
|
||||
</style>
|
||||
</head><body>
|
||||
<div class="Section1">
|
||||
`;
|
||||
var tbody = ``;
|
||||
for (let index = 0; index < rawData.length; index++) {
|
||||
const element = rawData[index];
|
||||
var column = `<tr>`;
|
||||
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 === 'GRAND TOTAL') {
|
||||
styleTotal = 'style="background-color: #c0c0c0"'
|
||||
};
|
||||
i === 0 ?
|
||||
column += `<td ${styleTotal} ${colSpan} align="left">${content.content}</td>`
|
||||
: column += `<td ${styleTotal}>${content}</td>`;
|
||||
}
|
||||
column += `</tr>`;
|
||||
tbody += column;
|
||||
}
|
||||
const header =
|
||||
[
|
||||
{
|
||||
content: 'No',
|
||||
rowSpan: 2
|
||||
},
|
||||
{
|
||||
content: 'Nama Unit',
|
||||
rowSpan: 2
|
||||
},
|
||||
{
|
||||
content: 'Bulan',
|
||||
colSpan: 12
|
||||
}
|
||||
];
|
||||
const bulan = [
|
||||
'Januari',
|
||||
'Februari',
|
||||
'Maret',
|
||||
'April',
|
||||
'Mei',
|
||||
'Juni',
|
||||
'Juli',
|
||||
'Agustus',
|
||||
'September',
|
||||
'Oktober',
|
||||
'November',
|
||||
'Desember'
|
||||
];
|
||||
var columnHeader = '';
|
||||
for (let i = 0; i < header.length; i++) {
|
||||
const content = header[i];
|
||||
const rowSpan = content.rowSpan ? `rowspan="${content.rowSpan}"` : '';
|
||||
const colSpan = content?.colSpan !== undefined ? `colspan="${content.colSpan}"` : ''
|
||||
|
||||
columnHeader += `<th ${rowSpan} ${colSpan} align="center">${content.content}</th>`;
|
||||
}
|
||||
var columnBulan = '';
|
||||
for (let index = 0; index < 12; index++) {
|
||||
columnBulan += `<td>${bulan[index]}</td>`;
|
||||
}
|
||||
|
||||
var body = `
|
||||
<table border=0 style="border:none">
|
||||
<tr>
|
||||
<td colspan="3"> ${company.toUpperCase()}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> Unit Induk Distribusi/Wilayah </td>
|
||||
<td>:</td>
|
||||
<td> ${reportMeta.uid
|
||||
? reportMeta.uid.name.toUpperCase()
|
||||
: 'Semua Unit Induk Distribusi/Wilayah'.toUpperCase()}</td>
|
||||
<tr>
|
||||
<td> Unit Pelaksanaan Pelayanan Pelanggan</td>
|
||||
<td>:</td>
|
||||
<td> ${reportMeta.up3
|
||||
? reportMeta.up3.name.toUpperCase()
|
||||
: 'Semua Unit Pelaksanaan Pelayanan Pelanggan'.toUpperCase()}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> Posko</td>
|
||||
<td>:</td>
|
||||
<td> ${reportMeta.posko ? reportMeta.posko.name.toUpperCase() : 'Semua Posko'.toUpperCase()}</td>
|
||||
</tr>
|
||||
</table>
|
||||
<center><h6>${filename.toUpperCase()}</h6></center>
|
||||
<center><h6>Periode : ${periode.dateFromFormat} s/d ${periode.dateToFormat} (${periode.dayTo})<h6></center>
|
||||
<table class="main">
|
||||
<thead>
|
||||
<tr>
|
||||
${columnHeader}
|
||||
</tr>
|
||||
<tr>
|
||||
${columnBulan}
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
${tbody}
|
||||
</tbody>
|
||||
</table>
|
||||
`
|
||||
|
||||
var postHtml = "</div></body></html>";
|
||||
|
||||
var html = preHtml + body + postHtml;
|
||||
|
||||
var url =
|
||||
"data:application/vnd.ms-word;charset=utf-8," + encodeURIComponent(html);
|
||||
|
||||
filename = filename ? filename + ".doc" : "document.doc";
|
||||
|
||||
var downloadLink = document.createElement("a");
|
||||
|
||||
document.body.appendChild(downloadLink);
|
||||
|
||||
downloadLink.href = url;
|
||||
|
||||
downloadLink.download = filename;
|
||||
|
||||
downloadLink.click();
|
||||
|
||||
document.body.removeChild(downloadLink);
|
||||
}
|
||||
|
||||
const exportDetailToWord = (reportMeta: any, rawData: any, filename: any, periode: any) => {
|
||||
var preHtml = `<html xmlns:o='urn:schemas-microsoft-com:office:office' xmlns:w='urn:schemas-microsoft-com:office:word' xmlns='http://www.w3.org/TR/REC-html40'><head><meta charset='utf-8'><title>${filename}</title>
|
||||
<style type="text/css" media="print">
|
||||
@page Section1 {
|
||||
size:841.95pt 21.0cm;
|
||||
mso-page-orientation:landscape;
|
||||
margin:72.0pt 72.0pt 72.0pt 72.0pt;
|
||||
mso-header-margin:35.4pt;
|
||||
mso-footer-margin:35.4pt;
|
||||
mso-paper-source:0;
|
||||
}
|
||||
@page{
|
||||
size: landscape;
|
||||
font-size: 5px;
|
||||
}
|
||||
div.Section1 {
|
||||
page:Section1;
|
||||
}
|
||||
table.main {
|
||||
border-collapse: collapse;
|
||||
width: 100%;
|
||||
text-transform: uppercase;
|
||||
font-size: 8px;
|
||||
}
|
||||
table.main thead tr {
|
||||
background-color: #c0c0c0;
|
||||
}
|
||||
</style>
|
||||
</head><body>
|
||||
<div class="Section1">
|
||||
`;
|
||||
var tbody = ``;
|
||||
var cr = ``;
|
||||
rawData.map((item: any, i: any) => {
|
||||
cr += '<tr>';
|
||||
cr += `<td>${i + 1}</td>`;
|
||||
cr += `<td>${item.no_laporan}</td>`;
|
||||
cr += `<td>${item.tgl_catat}</td>`;
|
||||
cr += `<td>${item.tgl_pekerjaan}</td>`;
|
||||
cr += `<td>${item.tgl_nyala}</td>`;
|
||||
cr += `<td>${item.durasi_pencatatan}</td>`;
|
||||
cr += `<td>${item.durasi_recovery_time}</td>`;
|
||||
cr += `<td>${item.keterangan_cleansing}</td>`;
|
||||
cr += `<td>${item.nama_posko}</td>`;
|
||||
cr += `<td>${item.tindakan}</td>`;
|
||||
cr += `<td>${item.penyebab}</td>`;
|
||||
cr += '</tr>';
|
||||
});
|
||||
tbody += cr;
|
||||
|
||||
var body = `
|
||||
<table border=0 style="border:none">
|
||||
<tr>
|
||||
<td colspan="3"> ${company.toUpperCase()}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> Unit Induk Distribusi/Wilayah </td>
|
||||
<td>:</td>
|
||||
<td> ${reportMeta.uid
|
||||
? reportMeta.uid.name.toUpperCase()
|
||||
: 'Semua Unit Induk Distribusi/Wilayah'.toUpperCase()}</td>
|
||||
<tr>
|
||||
<td> Unit Pelaksanaan Pelayanan Pelanggan</td>
|
||||
<td>:</td>
|
||||
<td> ${reportMeta.up3
|
||||
? reportMeta.up3.name.toUpperCase()
|
||||
: 'Semua Unit Pelaksanaan Pelayanan Pelanggan'.toUpperCase()}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> Posko</td>
|
||||
<td>:</td>
|
||||
<td> ${reportMeta.posko ? reportMeta.posko.name.toUpperCase() : 'Semua Posko'.toUpperCase()}</td>
|
||||
</tr>
|
||||
</table>
|
||||
<center><h6>${filename.toUpperCase()}</h6></center>
|
||||
<center><h6>Periode : ${periode.dateFromFormat} s/d ${periode.dateToFormat} (${periode.dayTo})<h6></center>
|
||||
<table class="main">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>No</th>
|
||||
<th>No Laporan</th>
|
||||
<th>Tgl Catat</th>
|
||||
<th>Tgl Pekerjaan</th>
|
||||
<th>Tgl Nyala</th>
|
||||
<th>Durasi Pencatatan</th>
|
||||
<th>Durasi Recovery Time</th>
|
||||
<th>Keterangan Cleansing</th>
|
||||
<th>Posko</th>
|
||||
<th>Tindakan</th>
|
||||
<th>Penyebab</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
${tbody}
|
||||
</tbody>
|
||||
</table>
|
||||
`
|
||||
|
||||
var postHtml = "</div></body></html>";
|
||||
|
||||
var html = preHtml + body + postHtml;
|
||||
|
||||
var url =
|
||||
"data:application/vnd.ms-word;charset=utf-8," + encodeURIComponent(html);
|
||||
|
||||
filename = filename ? filename + ".doc" : "document.doc";
|
||||
|
||||
var downloadLink = document.createElement("a");
|
||||
|
||||
document.body.appendChild(downloadLink);
|
||||
|
||||
downloadLink.href = url;
|
||||
|
||||
downloadLink.download = filename;
|
||||
|
||||
downloadLink.click();
|
||||
|
||||
document.body.removeChild(downloadLink);
|
||||
}
|
||||
|
||||
export { exportToWord, exportDetailToWord }
|
315
src/report/Gangguan/Rekap/doc/RGangguan_DMAPKT_DOC.ts
Normal file
315
src/report/Gangguan/Rekap/doc/RGangguan_DMAPKT_DOC.ts
Normal file
@ -0,0 +1,315 @@
|
||||
|
||||
const company = "PT. PLN (Persero)";
|
||||
const exportToWord = (reportMeta: any, rawData: any, filename: any, periode: any) => {
|
||||
var preHtml = `<html xmlns:o='urn:schemas-microsoft-com:office:office' xmlns:w='urn:schemas-microsoft-com:office:word' xmlns='http://www.w3.org/TR/REC-html40'><head><meta charset='utf-8'><title>${filename}</title>
|
||||
<style type="text/css" media="print">
|
||||
@page Section1 {
|
||||
size:841.95pt 21.0cm;
|
||||
mso-page-orientation:landscape;
|
||||
margin:72.0pt 72.0pt 72.0pt 72.0pt;
|
||||
mso-header-margin:35.4pt;
|
||||
mso-footer-margin:35.4pt;
|
||||
mso-paper-source:0;
|
||||
}
|
||||
@page{
|
||||
size: landscape;
|
||||
font-size: 5px;
|
||||
}
|
||||
div.Section1 {
|
||||
page:Section1;
|
||||
}
|
||||
table.main {
|
||||
border-collapse: collapse;
|
||||
width: 100%;
|
||||
text-transform: uppercase;
|
||||
font-size: 5px;
|
||||
}
|
||||
table.main thead tr {
|
||||
background-color: #c0c0c0;
|
||||
}
|
||||
</style>
|
||||
</head><body>
|
||||
<div class="Section1">
|
||||
`;
|
||||
var tbody = '';
|
||||
var column = '';
|
||||
for (let index = 0; index < rawData.length; index++) {
|
||||
const content = rawData[index];
|
||||
|
||||
column += '<tr>';
|
||||
|
||||
for (let i = 0; i < content.length; i++) {
|
||||
const item = content[i];
|
||||
const colSpan = item ?
|
||||
item.colSpan ? `colspan="${item.colSpan}"`
|
||||
: '' : '';
|
||||
i === 0 ?
|
||||
column += `<td ${colSpan} align="left">${item.content}</td>`
|
||||
: column += `<td>${item}</td>`;
|
||||
}
|
||||
column += `</tr>`;
|
||||
}
|
||||
tbody += column;
|
||||
|
||||
var body = `
|
||||
<table border=0 style="border:none">
|
||||
<tr>
|
||||
<td colspan="3"> ${company.toUpperCase()}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> Unit Induk Distribusi/Wilayah </td>
|
||||
<td>:</td>
|
||||
<td> ${reportMeta.uid
|
||||
? reportMeta.uid.name.toUpperCase()
|
||||
: 'Semua Unit Induk Distribusi/Wilayah'.toUpperCase()}</td>
|
||||
<tr>
|
||||
<td> Unit Pelaksanaan Pelayanan Pelanggan</td>
|
||||
<td>:</td>
|
||||
<td> ${reportMeta.up3
|
||||
? reportMeta.up3.name.toUpperCase()
|
||||
: 'Semua Unit Pelaksanaan Pelayanan Pelanggan'.toUpperCase()}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> Posko</td>
|
||||
<td>:</td>
|
||||
<td> ${reportMeta.posko ? reportMeta.posko.name.toUpperCase() : 'Semua Posko'.toUpperCase()}</td>
|
||||
</tr>
|
||||
</table>
|
||||
<center><h6>${filename.toUpperCase()}</h6></center>
|
||||
<center><h6>Periode : ${periode.dateFromFormat} s/d ${periode.dateToFormat} (${periode.dayTo})<h6></center>
|
||||
<table class="main">
|
||||
<thead>
|
||||
<tbody><tr>
|
||||
<td height="20" align="center" valign="top"><b><font face="Cambria">NO</font></b></td>
|
||||
<td align="center" valign="top"><b><font face="Cambria">Nama Regu</font></b></td>
|
||||
<td align="center" valign="top"><b><font face="Cambria">Kode Regu</font></b></td>
|
||||
<td colspan="5" align="center" valign="top"><b><font face="Cambria">Laporan</font></b></td>
|
||||
<td colspan="16" align="center" valign="top"><b><font face="Cambria">Penyelesaian</font></b></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="5" height="100" align="center" valign="top"><b><font face="Cambria">a</font></b></td>
|
||||
<td rowspan="5" align="center" valign="top"><b><font face="Cambria">b</font></b></td>
|
||||
<td rowspan="5" align="center" valign="top"><b><font face="Cambria">c</font></b></td>
|
||||
<td align="center" valign="top"><b><font face="Cambria">Total</font></b></td>
|
||||
<td colspan="2" align="center" valign="top"><b><font face="Cambria">Sudah Selesai</font></b></td>
|
||||
<td colspan="2" align="center" valign="top"><b><font face="Cambria">Belum Selesai</font></b></td>
|
||||
<td colspan="8" align="center" valign="top"><b><font face="Cambria">Mobile</font></b></td>
|
||||
<td colspan="8" align="center" valign="top"><b><font face="Cambria">Non Mobile</font></b></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="4" align="center" valign="top"><b><font face="Cambria">d=(e+g)</font></b></td>
|
||||
<td align="center" valign="top"><b><font face="Cambria">Jml</font></b></td>
|
||||
<td align="center" valign="top"><b><font face="Cambria">%</font></b></td>
|
||||
<td align="center" valign="top"><b><font face="Cambria">Jml</font></b></td>
|
||||
<td align="center" valign="top"><b><font face="Cambria">%</font></b></td>
|
||||
<td colspan="4" align="center" valign="top"><b><font face="Cambria">Non Marking</font></b></td>
|
||||
<td colspan="4" align="center" valign="top"><b><font face="Cambria">Marking</font></b></td>
|
||||
<td colspan="4" align="center" valign="top"><b><font face="Cambria">Non Marking</font></b></td>
|
||||
<td colspan="4" align="center" valign="top"><b><font face="Cambria">Marking</font></b></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="3" align="center" valign="top"><b><font face="Cambria">e</font></b></td>
|
||||
<td rowspan="3" align="center" valign="top"><b><font face="Cambria">f=(e/d)*100</font></b></td>
|
||||
<td rowspan="3" align="center" valign="top"><b><font face="Cambria">g</font></b></td>
|
||||
<td rowspan="3" align="center" valign="top"><b><font face="Cambria">h=(g/d)*100</font></b></td>
|
||||
<td colspan="2" align="center" valign="top"><b><font face="Cambria">Total</font></b></td>
|
||||
<td colspan="2" align="center" valign="top"><b><font face="Cambria">Waktu Rata-Rata</font></b></td>
|
||||
<td colspan="2" align="center" valign="top"><b><font face="Cambria">Total</font></b></td>
|
||||
<td colspan="2" align="center" valign="top"><b><font face="Cambria">Waktu Rata-Rata</font></b></td>
|
||||
<td colspan="2" align="center" valign="top"><b><font face="Cambria">Total</font></b></td>
|
||||
<td colspan="2" align="center" valign="top"><b><font face="Cambria">Waktu Rata-Rata</font></b></td>
|
||||
<td colspan="2" align="center" valign="top"><b><font face="Cambria">Total</font></b></td>
|
||||
<td colspan="2" align="center" valign="top"><b><font face="Cambria">Waktu Rata-Rata</font></b></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top"><b><font face="Cambria">Laporan</font></b></td>
|
||||
<td align="center" valign="top"><b><font face="Cambria">%</font></b></td>
|
||||
<td align="center" valign="top"><b><font face="Cambria">Response</font></b></td>
|
||||
<td align="center" valign="top"><b><font face="Cambria">Recovery</font></b></td>
|
||||
<td align="center" valign="top"><b><font face="Cambria">Laporan</font></b></td>
|
||||
<td align="center" valign="top"><b><font face="Cambria">%</font></b></td>
|
||||
<td align="center" valign="top"><b><font face="Cambria">Response</font></b></td>
|
||||
<td align="center" valign="top"><b><font face="Cambria">Recovery</font></b></td>
|
||||
<td align="center" valign="top"><b><font face="Cambria">Laporan</font></b></td>
|
||||
<td align="center" valign="top"><b><font face="Cambria">%</font></b></td>
|
||||
<td align="center" valign="top"><b><font face="Cambria">Response</font></b></td>
|
||||
<td align="center" valign="top"><b><font face="Cambria">Recovery</font></b></td>
|
||||
<td align="center" valign="top"><b><font face="Cambria">Laporan</font></b></td>
|
||||
<td align="center" valign="top"><b><font face="Cambria">%</font></b></td>
|
||||
<td align="center" valign="top"><b><font face="Cambria">Response</font></b></td>
|
||||
<td align="center" valign="top"><b><font face="Cambria">Recovery</font></b></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top"><b><font face="Cambria">i</font></b></td>
|
||||
<td align="center" valign="top"><b><font face="Cambria">j=(i/d)*100</font></b></td>
|
||||
<td align="center" valign="top"><b><font face="Cambria">k</font></b></td>
|
||||
<td align="center" valign="top"><b><font face="Cambria">l</font></b></td>
|
||||
<td align="center" valign="top"><b><font face="Cambria">m</font></b></td>
|
||||
<td align="center" valign="top"><b><font face="Cambria">n=(m/d)*100</font></b></td>
|
||||
<td align="center" valign="top"><b><font face="Cambria">o</font></b></td>
|
||||
<td align="center" valign="top"><b><font face="Cambria">p</font></b></td>
|
||||
<td align="center" valign="top"><b><font face="Cambria">q</font></b></td>
|
||||
<td align="center" valign="top"><b><font face="Cambria">r=(q/d)*100</font></b></td>
|
||||
<td align="center" valign="top"><b><font face="Cambria">s</font></b></td>
|
||||
<td align="center" valign="top"><b><font face="Cambria">t</font></b></td>
|
||||
<td align="center" valign="top"><b><font face="Cambria">u</font></b></td>
|
||||
<td align="center" valign="top"><b><font face="Cambria">v=(u/d)*100</font></b></td>
|
||||
<td align="center" valign="top"><b><font face="Cambria">w</font></b></td>
|
||||
<td align="center" valign="top"><b><font face="Cambria">x</font></b></td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
${tbody}
|
||||
</tbody>
|
||||
</table>
|
||||
`
|
||||
|
||||
var postHtml = "</div></body></html>";
|
||||
|
||||
var html = preHtml + body + postHtml;
|
||||
|
||||
var url =
|
||||
"data:application/vnd.ms-word;charset=utf-8," + encodeURIComponent(html);
|
||||
|
||||
filename = filename ? filename + ".doc" : "document.doc";
|
||||
|
||||
var downloadLink = document.createElement("a");
|
||||
|
||||
document.body.appendChild(downloadLink);
|
||||
|
||||
downloadLink.href = url;
|
||||
|
||||
downloadLink.download = filename;
|
||||
|
||||
downloadLink.click();
|
||||
|
||||
document.body.removeChild(downloadLink);
|
||||
}
|
||||
|
||||
const exportDetailToWord = (reportMeta: any, rawData: any, filename: any, periode: any) => {
|
||||
var preHtml = `<html xmlns:o='urn:schemas-microsoft-com:office:office' xmlns:w='urn:schemas-microsoft-com:office:word' xmlns='http://www.w3.org/TR/REC-html40'><head><meta charset='utf-8'><title>${filename}</title>
|
||||
<style type="text/css" media="print">
|
||||
@page Section1 {
|
||||
size:841.95pt 21.0cm;
|
||||
mso-page-orientation:landscape;
|
||||
margin:72.0pt 72.0pt 72.0pt 72.0pt;
|
||||
mso-header-margin:35.4pt;
|
||||
mso-footer-margin:35.4pt;
|
||||
mso-paper-source:0;
|
||||
}
|
||||
@page{
|
||||
size: landscape;
|
||||
font-size: 5px;
|
||||
}
|
||||
div.Section1 {
|
||||
page:Section1;
|
||||
}
|
||||
table.main {
|
||||
border-collapse: collapse;
|
||||
width: 100%;
|
||||
text-transform: uppercase;
|
||||
font-size: 8px;
|
||||
}
|
||||
table.main thead tr {
|
||||
background-color: #c0c0c0;
|
||||
}
|
||||
</style>
|
||||
</head><body>
|
||||
<div class="Section1">
|
||||
`;
|
||||
var tbody = ``;
|
||||
var cr = ``;
|
||||
rawData.map((item: any, i: any) => {
|
||||
cr += '<tr>';
|
||||
cr += `<td>${i + 1}</td>`;
|
||||
cr += `<td>${item.no_laporan}</td>`;
|
||||
cr += `<td>${item.waktu_lapor}</td>`;
|
||||
cr += `<td>${item.waktu_response}</td>`;
|
||||
cr += `<td>${item.waktu_recovery}</td>`;
|
||||
cr += `<td>${item.durasi_response_time}</td>`;
|
||||
cr += `<td>${item.durasi_recovery_time}</td>`;
|
||||
cr += `<td>${item.status_akhir}</td>`;
|
||||
cr += `<td>${item.referensi_marking}</td>`;
|
||||
cr += `<td>${item.idpel_nometer}</td>`;
|
||||
cr += `<td>${item.nama_pelapor}</td>`;
|
||||
cr += `<td>${item.alamat_pelapor}</td>`;
|
||||
cr += `<td>${item.no_telp_pelapor}</td>`;
|
||||
cr += `<td>${item.keterangan_pelapor}</td>`;
|
||||
cr += `<td>${item.nama_posko}</td>`;
|
||||
cr += `<td>${item.tindakan}</td>`;
|
||||
cr += `<td>${item.penyebab}</td>`;
|
||||
cr += '</tr>';
|
||||
});
|
||||
tbody += cr;
|
||||
|
||||
var body = `
|
||||
<table border=0 style="border:none">
|
||||
<tr>
|
||||
<td colspan="3"> ${company.toUpperCase()}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> Unit Induk Distribusi/Wilayah </td>
|
||||
<td>:</td>
|
||||
<td> ${reportMeta.uid
|
||||
? reportMeta.uid.name.toUpperCase()
|
||||
: 'Semua Unit Induk Distribusi/Wilayah'.toUpperCase()}</td>
|
||||
<tr>
|
||||
<td> Unit Pelaksanaan Pelayanan Pelanggan</td>
|
||||
<td>:</td>
|
||||
<td> ${reportMeta.up3
|
||||
? reportMeta.up3.name.toUpperCase()
|
||||
: 'Semua Unit Pelaksanaan Pelayanan Pelanggan'.toUpperCase()}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> Posko</td>
|
||||
<td>:</td>
|
||||
<td> ${reportMeta.posko ? reportMeta.posko.name.toUpperCase() : 'Semua Posko'.toUpperCase()}</td>
|
||||
</tr>
|
||||
</table>
|
||||
<center><h6>${filename.toUpperCase()}</h6></center>
|
||||
<center><h6>Periode : ${periode.dateFromFormat} s/d ${periode.dateToFormat} (${periode.dayTo})<h6></center>
|
||||
<table class="main">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>No</th>
|
||||
<th>No Laporan</th>
|
||||
<th>Tgl Catat</th>
|
||||
<th>Tgl Pekerjaan</th>
|
||||
<th>Tgl Nyala</th>
|
||||
<th>Durasi Pencatatan</th>
|
||||
<th>Durasi Recovery Time</th>
|
||||
<th>Keterangan Cleansing</th>
|
||||
<th>Posko</th>
|
||||
<th>Tindakan</th>
|
||||
<th>Penyebab</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
${tbody}
|
||||
</tbody>
|
||||
</table>
|
||||
`
|
||||
|
||||
var postHtml = "</div></body></html>";
|
||||
|
||||
var html = preHtml + body + postHtml;
|
||||
|
||||
var url =
|
||||
"data:application/vnd.ms-word;charset=utf-8," + encodeURIComponent(html);
|
||||
|
||||
filename = filename ? filename + ".doc" : "document.doc";
|
||||
|
||||
var downloadLink = document.createElement("a");
|
||||
|
||||
document.body.appendChild(downloadLink);
|
||||
|
||||
downloadLink.href = url;
|
||||
|
||||
downloadLink.download = filename;
|
||||
|
||||
downloadLink.click();
|
||||
|
||||
document.body.removeChild(downloadLink);
|
||||
}
|
||||
|
||||
export { exportToWord, exportDetailToWord }
|
280
src/report/Gangguan/Rekap/doc/RGangguan_JenisGangguanSE_DOC.ts
Normal file
280
src/report/Gangguan/Rekap/doc/RGangguan_JenisGangguanSE_DOC.ts
Normal file
@ -0,0 +1,280 @@
|
||||
|
||||
const company = "PT. PLN (Persero)";
|
||||
const exportToWord = (reportMeta: any, rawData: any, filename: any, periode: any) => {
|
||||
console.log(rawData)
|
||||
var preHtml = `<html xmlns:o='urn:schemas-microsoft-com:office:office' xmlns:w='urn:schemas-microsoft-com:office:word' xmlns='http://www.w3.org/TR/REC-html40'><head><meta charset='utf-8'><title>${filename}</title>
|
||||
<style type="text/css" media="print">
|
||||
@page Section1 {
|
||||
size:841.95pt 21.0cm;
|
||||
mso-page-orientation:landscape;
|
||||
margin:72.0pt 72.0pt 72.0pt 72.0pt;
|
||||
mso-header-margin:35.4pt;
|
||||
mso-footer-margin:35.4pt;
|
||||
mso-paper-source:0;
|
||||
}
|
||||
@page{
|
||||
size: landscape;
|
||||
font-size: 5px;
|
||||
}
|
||||
div.Section1 {
|
||||
page:Section1;
|
||||
}
|
||||
table.main {
|
||||
border-collapse: collapse;
|
||||
width: 100%;
|
||||
text-transform: uppercase;
|
||||
font-size: 8px;
|
||||
}
|
||||
table.main thead tr {
|
||||
background-color: #c0c0c0;
|
||||
}
|
||||
</style>
|
||||
</head><body>
|
||||
<div class="Section1">
|
||||
`;
|
||||
var tbody = '';
|
||||
for (let index = 0; index < rawData.length; index++) {
|
||||
const element = rawData[index];
|
||||
var column = '<tr>';
|
||||
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 += `<td ${styleTotal} ${colSpan} align="left">${content.content}</td>`
|
||||
: column += `<td ${styleTotal}>${content}</td>`;
|
||||
}
|
||||
column += '</tr>';
|
||||
tbody += column;
|
||||
}
|
||||
|
||||
var body = `
|
||||
<table border=0 style="border:none">
|
||||
<tr>
|
||||
<td colspan="3"> ${company.toUpperCase()}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> Unit Induk Distribusi/Wilayah </td>
|
||||
<td>:</td>
|
||||
<td> ${reportMeta.uid
|
||||
? reportMeta.uid.name.toUpperCase()
|
||||
: 'Semua Unit Induk Distribusi/Wilayah'.toUpperCase()}</td>
|
||||
<tr>
|
||||
<td> Unit Pelaksanaan Pelayanan Pelanggan</td>
|
||||
<td>:</td>
|
||||
<td> ${reportMeta.up3
|
||||
? reportMeta.up3.name.toUpperCase()
|
||||
: 'Semua Unit Pelaksanaan Pelayanan Pelanggan'.toUpperCase()}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> Posko</td>
|
||||
<td>:</td>
|
||||
<td> ${reportMeta.posko ? reportMeta.posko.name.toUpperCase() : 'Semua Posko'.toUpperCase()}</td>
|
||||
</tr>
|
||||
</table>
|
||||
<center><h6>${filename.toUpperCase()}</h6></center>
|
||||
<center><h6>Periode : ${periode.dateFromFormat} s/d ${periode.dateToFormat} (${periode.dayTo})<h6></center>
|
||||
<table class="main">
|
||||
<thead>
|
||||
<tr>
|
||||
<th rowspan="3">No</th>
|
||||
<th rowspan="3">Kode</th>
|
||||
<th rowspan="3" style="width: 25%">Sub Kelompok (Equipment)</th>
|
||||
<th colspan="5">Laporan</th>
|
||||
<th colspan="6">Response Time</th>
|
||||
<th colspan="6">Recovery Time</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th rowspan="2">Total</th>
|
||||
<th colspan="2">Sudah Selesai</th>
|
||||
<th colspan="2">Belum Selesai</th>
|
||||
<th colspan="4">Menit</th>
|
||||
<th colspan="2">Laporan</th>
|
||||
<th colspan="4">Menit</th>
|
||||
<th colspan="2">Laporan</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Jml</th>
|
||||
<th>%</th>
|
||||
<th>Jml</th>
|
||||
<th>%</th>
|
||||
<th>Total</th>
|
||||
<th>Rata-Rata</th>
|
||||
<th>Max</th>
|
||||
<th>Min</th>
|
||||
<th>>Sla</th>
|
||||
<th><Sla</th>
|
||||
<th>Total</th>
|
||||
<th>Rata-Rata</th>
|
||||
<th>Max</th>
|
||||
<th>Min</th>
|
||||
<th>>Sla</th>
|
||||
<th><Sla</th>
|
||||
</tr>
|
||||
|
||||
</thead>
|
||||
<tbody>
|
||||
${tbody}
|
||||
</tbody>
|
||||
</table>
|
||||
`
|
||||
|
||||
var postHtml = "</div></body></html>";
|
||||
|
||||
var html = preHtml + body + postHtml;
|
||||
|
||||
var url =
|
||||
"data:application/vnd.ms-word;charset=utf-8," + encodeURIComponent(html);
|
||||
|
||||
filename = filename ? filename + ".doc" : "document.doc";
|
||||
|
||||
var downloadLink = document.createElement("a");
|
||||
|
||||
document.body.appendChild(downloadLink);
|
||||
|
||||
downloadLink.href = url;
|
||||
|
||||
downloadLink.download = filename;
|
||||
|
||||
downloadLink.click();
|
||||
|
||||
document.body.removeChild(downloadLink);
|
||||
}
|
||||
|
||||
const exportDetailToWord = (reportMeta: any, rawData: any, filename: any, periode: any) => {
|
||||
var preHtml = `<html xmlns:o='urn:schemas-microsoft-com:office:office' xmlns:w='urn:schemas-microsoft-com:office:word' xmlns='http://www.w3.org/TR/REC-html40'><head><meta charset='utf-8'><title>${filename}</title>
|
||||
<style type="text/css" media="print">
|
||||
@page Section1 {
|
||||
size:841.95pt 21.0cm;
|
||||
mso-page-orientation:landscape;
|
||||
margin:72.0pt 72.0pt 72.0pt 72.0pt;
|
||||
mso-header-margin:35.4pt;
|
||||
mso-footer-margin:35.4pt;
|
||||
mso-paper-source:0;
|
||||
}
|
||||
@page{
|
||||
size: landscape;
|
||||
font-size: 5px;
|
||||
}
|
||||
div.Section1 {
|
||||
page:Section1;
|
||||
}
|
||||
table.main {
|
||||
border-collapse: collapse;
|
||||
width: 100%;
|
||||
text-transform: uppercase;
|
||||
font-size: 8px;
|
||||
}
|
||||
table.main thead tr {
|
||||
background-color: #c0c0c0;
|
||||
}
|
||||
</style>
|
||||
</head><body>
|
||||
<div class="Section1">
|
||||
`;
|
||||
var tbody = ``;
|
||||
var cr = ``;
|
||||
rawData.map((item: any, i: any) => {
|
||||
cr += '<tr>';
|
||||
cr += `<td>${i + 1}</td>`;
|
||||
cr += `<td> ${item.no_laporan}</td>`;
|
||||
cr += `<td> ${item.waktu_lapor}</td>`;
|
||||
cr += `<td> ${item.waktu_response}</td>`;
|
||||
cr += `<td> ${item.waktu_recovery}</td>`;
|
||||
cr += `<td> ${item.durasi_response_time}</td>`;
|
||||
cr += `<td> ${item.durasi_recovery_time}</td>`;
|
||||
cr += `<td> ${item.status_akhir}</td>`;
|
||||
cr += `<td> ${item.referensi_marking}</td>`;
|
||||
cr += `<td> ${item.id_pelnomormeter}</td>`;
|
||||
cr += `<td> ${item.nama_pelapor}</td>`;
|
||||
cr += `<td> ${item.alamat_pelapor}</td>`;
|
||||
cr += `<td> ${item.no_telp_pelapor}</td>`;
|
||||
cr += `<td> ${item.keterangan_pelapor}</td>`;
|
||||
cr += `<td> ${item.nama_posko}</td>`;
|
||||
cr += `<td> ${item.tindakan}</td>`;
|
||||
cr += `<td> ${item.penyebab}</td>`;
|
||||
cr += '</tr>';
|
||||
});
|
||||
tbody += cr;
|
||||
|
||||
var body = `
|
||||
<table border=0 style="border:none">
|
||||
<tr>
|
||||
<td colspan="3"> ${company.toUpperCase()}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> Unit Induk Distribusi/Wilayah </td>
|
||||
<td>:</td>
|
||||
<td> ${reportMeta.uid
|
||||
? reportMeta.uid.name.toUpperCase()
|
||||
: 'Semua Unit Induk Distribusi/Wilayah'.toUpperCase()}</td>
|
||||
<tr>
|
||||
<td> Unit Pelaksanaan Pelayanan Pelanggan</td>
|
||||
<td>:</td>
|
||||
<td> ${reportMeta.up3
|
||||
? reportMeta.up3.name.toUpperCase()
|
||||
: 'Semua Unit Pelaksanaan Pelayanan Pelanggan'.toUpperCase()}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> Posko</td>
|
||||
<td>:</td>
|
||||
<td> ${reportMeta.posko ? reportMeta.posko.name.toUpperCase() : 'Semua Posko'.toUpperCase()}</td>
|
||||
</tr>
|
||||
</table>
|
||||
<center><h6>${filename.toUpperCase()}</h6></center>
|
||||
<center><h6>Periode : ${periode.dateFromFormat} s/d ${periode.dateToFormat} (${periode.dayTo})<h6></center>
|
||||
<table class="main">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>No</th>
|
||||
<th>No Laporan</th>
|
||||
<th>Tgl Lapor</th>
|
||||
<th>Tgl Datang</th>
|
||||
<th>Tgl Nyala</th>
|
||||
<th>Durasi Response Time</th>
|
||||
<th>Durasi Recovery Time</th>
|
||||
<th>Status</th>
|
||||
<th>Referensi Marking</th>
|
||||
<th>IDPEL/NO METER</th>
|
||||
<th>Nama Pelapor</th>
|
||||
<th>Alamat Pelapor</th>
|
||||
<th>No Telp Pelapor</th>
|
||||
<th>Keterangan Pelapor</th>
|
||||
<th>Posko</th>
|
||||
<th>Tindakan</th>
|
||||
<th>Penyebab</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
${tbody}
|
||||
</tbody>
|
||||
</table>
|
||||
`
|
||||
|
||||
var postHtml = "</div></body></html>";
|
||||
|
||||
var html = preHtml + body + postHtml;
|
||||
|
||||
var url =
|
||||
"data:application/vnd.ms-word;charset=utf-8," + encodeURIComponent(html);
|
||||
|
||||
filename = filename ? filename + ".doc" : "document.doc";
|
||||
|
||||
var downloadLink = document.createElement("a");
|
||||
|
||||
document.body.appendChild(downloadLink);
|
||||
|
||||
downloadLink.href = url;
|
||||
|
||||
downloadLink.download = filename;
|
||||
|
||||
downloadLink.click();
|
||||
|
||||
document.body.removeChild(downloadLink);
|
||||
}
|
||||
|
||||
export { exportToWord, exportDetailToWord }
|
280
src/report/Gangguan/Rekap/doc/RGangguan_JenisGangguan_DOC.ts
Normal file
280
src/report/Gangguan/Rekap/doc/RGangguan_JenisGangguan_DOC.ts
Normal file
@ -0,0 +1,280 @@
|
||||
|
||||
const company = "PT. PLN (Persero)";
|
||||
const exportToWord = (reportMeta: any, rawData: any, filename: any, periode: any) => {
|
||||
console.log(rawData)
|
||||
var preHtml = `<html xmlns:o='urn:schemas-microsoft-com:office:office' xmlns:w='urn:schemas-microsoft-com:office:word' xmlns='http://www.w3.org/TR/REC-html40'><head><meta charset='utf-8'><title>${filename}</title>
|
||||
<style type="text/css" media="print">
|
||||
@page Section1 {
|
||||
size:841.95pt 21.0cm;
|
||||
mso-page-orientation:landscape;
|
||||
margin:72.0pt 72.0pt 72.0pt 72.0pt;
|
||||
mso-header-margin:35.4pt;
|
||||
mso-footer-margin:35.4pt;
|
||||
mso-paper-source:0;
|
||||
}
|
||||
@page{
|
||||
size: landscape;
|
||||
font-size: 5px;
|
||||
}
|
||||
div.Section1 {
|
||||
page:Section1;
|
||||
}
|
||||
table.main {
|
||||
border-collapse: collapse;
|
||||
width: 100%;
|
||||
text-transform: uppercase;
|
||||
font-size: 8px;
|
||||
}
|
||||
table.main thead tr {
|
||||
background-color: #c0c0c0;
|
||||
}
|
||||
</style>
|
||||
</head><body>
|
||||
<div class="Section1">
|
||||
`;
|
||||
var tbody = '';
|
||||
for (let index = 0; index < rawData.length; index++) {
|
||||
const element = rawData[index];
|
||||
var column = '<tr>';
|
||||
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"'
|
||||
};
|
||||
i === 0 ?
|
||||
column += `<td ${styleTotal} ${colSpan} align="left">${content.content}</td>`
|
||||
: column += `<td ${styleTotal}>${content}</td>`;
|
||||
}
|
||||
column += '</tr>';
|
||||
tbody += column;
|
||||
}
|
||||
|
||||
var body = `
|
||||
<table border=0 style="border:none">
|
||||
<tr>
|
||||
<td colspan="3"> ${company.toUpperCase()}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> Unit Induk Distribusi/Wilayah </td>
|
||||
<td>:</td>
|
||||
<td> ${reportMeta.uid
|
||||
? reportMeta.uid.name.toUpperCase()
|
||||
: 'Semua Unit Induk Distribusi/Wilayah'.toUpperCase()}</td>
|
||||
<tr>
|
||||
<td> Unit Pelaksanaan Pelayanan Pelanggan</td>
|
||||
<td>:</td>
|
||||
<td> ${reportMeta.up3
|
||||
? reportMeta.up3.name.toUpperCase()
|
||||
: 'Semua Unit Pelaksanaan Pelayanan Pelanggan'.toUpperCase()}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> Posko</td>
|
||||
<td>:</td>
|
||||
<td> ${reportMeta.posko ? reportMeta.posko.name.toUpperCase() : 'Semua Posko'.toUpperCase()}</td>
|
||||
</tr>
|
||||
</table>
|
||||
<center><h6>${filename.toUpperCase()}</h6></center>
|
||||
<center><h6>Periode : ${periode.dateFromFormat} s/d ${periode.dateToFormat} (${periode.dayTo})<h6></center>
|
||||
<table class="main">
|
||||
<thead>
|
||||
<tr>
|
||||
<th rowspan="3">No</th>
|
||||
<th rowspan="3">Kode</th>
|
||||
<th rowspan="3" style="width: 25%">Sub Kelompok (Equipment)</th>
|
||||
<th colspan="5">Laporan</th>
|
||||
<th colspan="6">Response Time</th>
|
||||
<th colspan="6">Recovery Time</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th rowspan="2">Total</th>
|
||||
<th colspan="2">Sudah Selesai</th>
|
||||
<th colspan="2">Belum Selesai</th>
|
||||
<th colspan="4">Menit</th>
|
||||
<th colspan="2">Laporan</th>
|
||||
<th colspan="4">Menit</th>
|
||||
<th colspan="2">Laporan</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Jml</th>
|
||||
<th>%</th>
|
||||
<th>Jml</th>
|
||||
<th>%</th>
|
||||
<th>Total</th>
|
||||
<th>Rata-Rata</th>
|
||||
<th>Max</th>
|
||||
<th>Min</th>
|
||||
<th>>Sla</th>
|
||||
<th><Sla</th>
|
||||
<th>Total</th>
|
||||
<th>Rata-Rata</th>
|
||||
<th>Max</th>
|
||||
<th>Min</th>
|
||||
<th>>Sla</th>
|
||||
<th><Sla</th>
|
||||
</tr>
|
||||
|
||||
</thead>
|
||||
<tbody>
|
||||
${tbody}
|
||||
</tbody>
|
||||
</table>
|
||||
`
|
||||
|
||||
var postHtml = "</div></body></html>";
|
||||
|
||||
var html = preHtml + body + postHtml;
|
||||
|
||||
var url =
|
||||
"data:application/vnd.ms-word;charset=utf-8," + encodeURIComponent(html);
|
||||
|
||||
filename = filename ? filename + ".doc" : "document.doc";
|
||||
|
||||
var downloadLink = document.createElement("a");
|
||||
|
||||
document.body.appendChild(downloadLink);
|
||||
|
||||
downloadLink.href = url;
|
||||
|
||||
downloadLink.download = filename;
|
||||
|
||||
downloadLink.click();
|
||||
|
||||
document.body.removeChild(downloadLink);
|
||||
}
|
||||
|
||||
const exportDetailToWord = (reportMeta: any, rawData: any, filename: any, periode: any) => {
|
||||
var preHtml = `<html xmlns:o='urn:schemas-microsoft-com:office:office' xmlns:w='urn:schemas-microsoft-com:office:word' xmlns='http://www.w3.org/TR/REC-html40'><head><meta charset='utf-8'><title>${filename}</title>
|
||||
<style type="text/css" media="print">
|
||||
@page Section1 {
|
||||
size:841.95pt 21.0cm;
|
||||
mso-page-orientation:landscape;
|
||||
margin:72.0pt 72.0pt 72.0pt 72.0pt;
|
||||
mso-header-margin:35.4pt;
|
||||
mso-footer-margin:35.4pt;
|
||||
mso-paper-source:0;
|
||||
}
|
||||
@page{
|
||||
size: landscape;
|
||||
font-size: 5px;
|
||||
}
|
||||
div.Section1 {
|
||||
page:Section1;
|
||||
}
|
||||
table.main {
|
||||
border-collapse: collapse;
|
||||
width: 100%;
|
||||
text-transform: uppercase;
|
||||
font-size: 8px;
|
||||
}
|
||||
table.main thead tr {
|
||||
background-color: #c0c0c0;
|
||||
}
|
||||
</style>
|
||||
</head><body>
|
||||
<div class="Section1">
|
||||
`;
|
||||
var tbody = ``;
|
||||
var cr = ``;
|
||||
rawData.map((item: any, i: any) => {
|
||||
cr += '<tr>';
|
||||
cr += `<td>${i + 1}</td>`;
|
||||
cr += `<td> ${item.no_laporan}</td>`;
|
||||
cr += `<td> ${item.waktu_lapor}</td>`;
|
||||
cr += `<td> ${item.waktu_response}</td>`;
|
||||
cr += `<td> ${item.waktu_recovery}</td>`;
|
||||
cr += `<td> ${item.durasi_response_time}</td>`;
|
||||
cr += `<td> ${item.durasi_recovery_time}</td>`;
|
||||
cr += `<td> ${item.status_akhir}</td>`;
|
||||
cr += `<td> ${item.referensi_marking}</td>`;
|
||||
cr += `<td> ${item.id_pelnomormeter}</td>`;
|
||||
cr += `<td> ${item.nama_pelapor}</td>`;
|
||||
cr += `<td> ${item.alamat_pelapor}</td>`;
|
||||
cr += `<td> ${item.no_telp_pelapor}</td>`;
|
||||
cr += `<td> ${item.keterangan_pelapor}</td>`;
|
||||
cr += `<td> ${item.nama_posko}</td>`;
|
||||
cr += `<td> ${item.tindakan}</td>`;
|
||||
cr += `<td> ${item.penyebab}</td>`;
|
||||
cr += '</tr>';
|
||||
});
|
||||
tbody += cr;
|
||||
|
||||
var body = `
|
||||
<table border=0 style="border:none">
|
||||
<tr>
|
||||
<td colspan="3"> ${company.toUpperCase()}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> Unit Induk Distribusi/Wilayah </td>
|
||||
<td>:</td>
|
||||
<td> ${reportMeta.uid
|
||||
? reportMeta.uid.name.toUpperCase()
|
||||
: 'Semua Unit Induk Distribusi/Wilayah'.toUpperCase()}</td>
|
||||
<tr>
|
||||
<td> Unit Pelaksanaan Pelayanan Pelanggan</td>
|
||||
<td>:</td>
|
||||
<td> ${reportMeta.up3
|
||||
? reportMeta.up3.name.toUpperCase()
|
||||
: 'Semua Unit Pelaksanaan Pelayanan Pelanggan'.toUpperCase()}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> Posko</td>
|
||||
<td>:</td>
|
||||
<td> ${reportMeta.posko ? reportMeta.posko.name.toUpperCase() : 'Semua Posko'.toUpperCase()}</td>
|
||||
</tr>
|
||||
</table>
|
||||
<center><h6>${filename.toUpperCase()}</h6></center>
|
||||
<center><h6>Periode : ${periode.dateFromFormat} s/d ${periode.dateToFormat} (${periode.dayTo})<h6></center>
|
||||
<table class="main">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>No</th>
|
||||
<th>No Laporan</th>
|
||||
<th>Tgl Lapor</th>
|
||||
<th>Tgl Datang</th>
|
||||
<th>Tgl Nyala</th>
|
||||
<th>Durasi Response Time</th>
|
||||
<th>Durasi Recovery Time</th>
|
||||
<th>Status</th>
|
||||
<th>Referensi Marking</th>
|
||||
<th>IDPEL/NO METER</th>
|
||||
<th>Nama Pelapor</th>
|
||||
<th>Alamat Pelapor</th>
|
||||
<th>No Telp Pelapor</th>
|
||||
<th>Keterangan Pelapor</th>
|
||||
<th>Posko</th>
|
||||
<th>Tindakan</th>
|
||||
<th>Penyebab</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
${tbody}
|
||||
</tbody>
|
||||
</table>
|
||||
`
|
||||
|
||||
var postHtml = "</div></body></html>";
|
||||
|
||||
var html = preHtml + body + postHtml;
|
||||
|
||||
var url =
|
||||
"data:application/vnd.ms-word;charset=utf-8," + encodeURIComponent(html);
|
||||
|
||||
filename = filename ? filename + ".doc" : "document.doc";
|
||||
|
||||
var downloadLink = document.createElement("a");
|
||||
|
||||
document.body.appendChild(downloadLink);
|
||||
|
||||
downloadLink.href = url;
|
||||
|
||||
downloadLink.download = filename;
|
||||
|
||||
downloadLink.click();
|
||||
|
||||
document.body.removeChild(downloadLink);
|
||||
}
|
||||
|
||||
export { exportToWord, exportDetailToWord }
|
293
src/report/Gangguan/Rekap/doc/RGangguan_KTI_DOC.ts
Normal file
293
src/report/Gangguan/Rekap/doc/RGangguan_KTI_DOC.ts
Normal file
@ -0,0 +1,293 @@
|
||||
|
||||
const company = "PT. PLN (Persero)";
|
||||
const exportToWord = (reportMeta: any, rawData: any, filename: any, periode: any) => {
|
||||
console.log(rawData)
|
||||
var preHtml = `<html xmlns:o='urn:schemas-microsoft-com:office:office' xmlns:w='urn:schemas-microsoft-com:office:word' xmlns='http://www.w3.org/TR/REC-html40'><head><meta charset='utf-8'><title>${filename}</title>
|
||||
<style type="text/css" media="print">
|
||||
@page Section1 {
|
||||
size:841.95pt 21.0cm;
|
||||
mso-page-orientation:landscape;
|
||||
margin:72.0pt 72.0pt 72.0pt 72.0pt;
|
||||
mso-header-margin:35.4pt;
|
||||
mso-footer-margin:35.4pt;
|
||||
mso-paper-source:0;
|
||||
}
|
||||
@page{
|
||||
size: landscape;
|
||||
font-size: 5px;
|
||||
}
|
||||
div.Section1 {
|
||||
page:Section1;
|
||||
}
|
||||
table.main {
|
||||
border-collapse: collapse;
|
||||
width: 100%;
|
||||
text-transform: uppercase;
|
||||
font-size: 8px;
|
||||
}
|
||||
table.main thead tr {
|
||||
background-color: #c0c0c0;
|
||||
}
|
||||
</style>
|
||||
</head><body>
|
||||
<div class="Section1">
|
||||
`;
|
||||
var tbody = '';
|
||||
for (let index = 0; index < rawData.length; index++) {
|
||||
const element = rawData[index];
|
||||
var column = '<tr>';
|
||||
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 += `<td ${styleTotal} ${colSpan} align="left">${content.content}</td>`
|
||||
: column += `<td ${styleTotal}>${content}</td>`;
|
||||
}
|
||||
column += '</tr>';
|
||||
tbody += column;
|
||||
}
|
||||
|
||||
var body = `
|
||||
<table border=0 style="border:none">
|
||||
<tr>
|
||||
<td colspan="3"> ${company.toUpperCase()}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> Unit Induk Distribusi/Wilayah </td>
|
||||
<td>:</td>
|
||||
<td> ${reportMeta.uid
|
||||
? reportMeta.uid.name.toUpperCase()
|
||||
: 'Semua Unit Induk Distribusi/Wilayah'.toUpperCase()}</td>
|
||||
<tr>
|
||||
<td> Unit Pelaksanaan Pelayanan Pelanggan</td>
|
||||
<td>:</td>
|
||||
<td> ${reportMeta.up3
|
||||
? reportMeta.up3.name.toUpperCase()
|
||||
: 'Semua Unit Pelaksanaan Pelayanan Pelanggan'.toUpperCase()}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> Posko</td>
|
||||
<td>:</td>
|
||||
<td> ${reportMeta.posko ? reportMeta.posko.name.toUpperCase() : 'Semua Posko'.toUpperCase()}</td>
|
||||
</tr>
|
||||
</table>
|
||||
<center><h6>${filename.toUpperCase()}</h6></center>
|
||||
<center><h6>Periode : ${periode.dateFromFormat} s/d ${periode.dateToFormat} (${periode.dayTo})<h6></center>
|
||||
<table class="main">
|
||||
<thead>
|
||||
<tr>
|
||||
<th rowspan="2">No</th>
|
||||
<th rowspan="2">Nama Unit</th>
|
||||
<th colspan="12">Bulan</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Januari</th>
|
||||
<th>Februari</th>
|
||||
<th>Maret</th>
|
||||
<th>April</th>
|
||||
<th>Mei</th>
|
||||
<th>Juni</th>
|
||||
<th>Juli</th>
|
||||
<th>Agustus</th>
|
||||
<th>September</th>
|
||||
<th>Oktober</th>
|
||||
<th>November</th>
|
||||
<th>Desember</th>
|
||||
</tr>
|
||||
|
||||
|
||||
</thead>
|
||||
<tbody>
|
||||
${tbody}
|
||||
</tbody>
|
||||
</table>
|
||||
`
|
||||
|
||||
var postHtml = "</div></body></html>";
|
||||
|
||||
var html = preHtml + body + postHtml;
|
||||
|
||||
var url =
|
||||
"data:application/vnd.ms-word;charset=utf-8," + encodeURIComponent(html);
|
||||
|
||||
filename = filename ? filename + ".doc" : "document.doc";
|
||||
|
||||
var downloadLink = document.createElement("a");
|
||||
|
||||
document.body.appendChild(downloadLink);
|
||||
|
||||
downloadLink.href = url;
|
||||
|
||||
downloadLink.download = filename;
|
||||
|
||||
downloadLink.click();
|
||||
|
||||
document.body.removeChild(downloadLink);
|
||||
}
|
||||
|
||||
const exportDetailToWord = (reportMeta: any, rawData: any, filename: any, periode: any) => {
|
||||
var preHtml = `<html xmlns:o='urn:schemas-microsoft-com:office:office' xmlns:w='urn:schemas-microsoft-com:office:word' xmlns='http://www.w3.org/TR/REC-html40'><head><meta charset='utf-8'><title>${filename}</title>
|
||||
<style type="text/css" media="print">
|
||||
@page Section1 {
|
||||
size:841.95pt 21.0cm;
|
||||
mso-page-orientation:landscape;
|
||||
margin:72.0pt 72.0pt 72.0pt 72.0pt;
|
||||
mso-header-margin:35.4pt;
|
||||
mso-footer-margin:35.4pt;
|
||||
mso-paper-source:0;
|
||||
}
|
||||
@page{
|
||||
size: landscape;
|
||||
font-size: 5px;
|
||||
}
|
||||
div.Section1 {
|
||||
page:Section1;
|
||||
}
|
||||
table.main {
|
||||
border-collapse: collapse;
|
||||
width: 100%;
|
||||
text-transform: uppercase;
|
||||
font-size: 8px;
|
||||
}
|
||||
table.main thead tr {
|
||||
background-color: #c0c0c0;
|
||||
}
|
||||
</style>
|
||||
</head><body>
|
||||
<div class="Section1">
|
||||
`;
|
||||
var tbody = ``;
|
||||
var cr = ``;
|
||||
rawData.map((item: any, i: any) => {
|
||||
cr += '<tr>';
|
||||
cr += `<td>${i + 1}</td>`;
|
||||
cr += `<td>${item.no_laporan}</td>`;
|
||||
cr += `<td>${item.tgl_lapor}</td>`;
|
||||
cr += `<td>${item.tgl_lapor_sblm}</td>`;
|
||||
cr += `<td>${item.tgl_lapor_sdh}</td>`;
|
||||
cr += `<td>${item.tgl_penugasan_sblm}</td>`;
|
||||
cr += `<td>${item.tgl_penugasan_sdh}</td>`;
|
||||
cr += `<td>${item.tgl_perjalanan_sblm}</td>`;
|
||||
cr += `<td>${item.tgl_perjalanan_sdh}</td>`;
|
||||
cr += `<td>${item.tgl_pengerjaan_sblm}</td>`;
|
||||
cr += `<td>${item.tgl_pengerjaan_sdh}</td>`;
|
||||
cr += `<td>${item.tgl_nyala_sementara_sblm}</td>`;
|
||||
cr += `<td>${item.tgl_nyala_sementara_sdh}</td>`;
|
||||
cr += `<td>${item.tgl_nyala_sblm}</td>`;
|
||||
cr += `<td>${item.tgl_nyala_sdh}</td>`;
|
||||
cr += `<td>${item.tgl_selesai_sblm}</td>`;
|
||||
cr += `<td>${item.tgl_selesai_sdh}</td>`;
|
||||
cr += `<td>${item.durasi_response_time_sblm}</td>`;
|
||||
cr += `<td>${item.durasi_response_time_sdh}</td>`;
|
||||
cr += `<td>${item.durasi_recovery_time_sdh}</td>`;
|
||||
cr += `<td>${item.kelompok_sblm}</td>`;
|
||||
cr += `<td>${item.kelompok_sdh}</td>`;
|
||||
cr += `<td>${item.sub_kelompok_sblm}</td>`;
|
||||
cr += `<td>${item.sub_kelompok_sdh}</td>`;
|
||||
cr += `<td>${item.fasilitas_id_sblm}</td>`;
|
||||
cr += `<td>${item.fasilitas_id_sdh}</td>`;
|
||||
cr += `<td>${item.sub_fasilitas_id_sblm}</td>`;
|
||||
cr += `<td>${item.sub_fasilitas_id_sdh}</td>`;
|
||||
cr += `<td>${item.equipment_id_sblm}</td>`;
|
||||
cr += `<td>${item.equipment_id_sdh}</td>`;
|
||||
cr += `<td>${item.event_damage_sblm}</td>`;
|
||||
cr += `<td>${item.event_damage_sdh}</td>`;
|
||||
cr += `<td>${item.cause_id_sblm}</td>`;
|
||||
cr += `<td>${item.cause_id_sdh}</td>`;
|
||||
cr += `<td>${item.cause_group_id_sblm}</td>`;
|
||||
cr += `<td>${item.cause_group_id_sdh}</td>`;
|
||||
cr += `<td>${item.weather_id_sblm}</td>`;
|
||||
cr += `<td>${item.weather_id_sdh}</td>`;
|
||||
cr += `<td>${item.group_koreksi}</td>`;
|
||||
cr += `<td>${item.alasan}</td>`;
|
||||
cr += `<td>${item.idpel_no_meter}</td>`;
|
||||
cr += `<td>${item.keterangan_pelapor}</td>`;
|
||||
cr += `<td>${item.nama_posko}</td>`;
|
||||
cr += `<td>${item.tindakan}</td>`;
|
||||
cr += `<td>${item.penyebab}</td>`;
|
||||
cr += '</tr>';
|
||||
});
|
||||
tbody += cr;
|
||||
|
||||
var body = `
|
||||
<table border=0 style="border:none">
|
||||
<tr>
|
||||
<td colspan="3"> ${company.toUpperCase()}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> Unit Induk Distribusi/Wilayah </td>
|
||||
<td>:</td>
|
||||
<td> ${reportMeta.uid
|
||||
? reportMeta.uid.name.toUpperCase()
|
||||
: 'Semua Unit Induk Distribusi/Wilayah'.toUpperCase()}</td>
|
||||
<tr>
|
||||
<td> Unit Pelaksanaan Pelayanan Pelanggan</td>
|
||||
<td>:</td>
|
||||
<td> ${reportMeta.up3
|
||||
? reportMeta.up3.name.toUpperCase()
|
||||
: 'Semua Unit Pelaksanaan Pelayanan Pelanggan'.toUpperCase()}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> Posko</td>
|
||||
<td>:</td>
|
||||
<td> ${reportMeta.posko ? reportMeta.posko.name.toUpperCase() : 'Semua Posko'.toUpperCase()}</td>
|
||||
</tr>
|
||||
</table>
|
||||
<center><h6>${filename.toUpperCase()}</h6></center>
|
||||
<center><h6>Periode : ${periode.dateFromFormat} s/d ${periode.dateToFormat} (${periode.dayTo})<h6></center>
|
||||
<table class="main">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>No</th>
|
||||
<th>No Laporan</th>
|
||||
<th>Tgl Lapor</th>
|
||||
<th>Tgl Datang</th>
|
||||
<th>Tgl Nyala</th>
|
||||
<th>Durasi Response Time</th>
|
||||
<th>Durasi Recovery Time</th>
|
||||
<th>Status</th>
|
||||
<th>Referensi Marking</th>
|
||||
<th>IDPEL/NO METER</th>
|
||||
<th>Nama Pelapor</th>
|
||||
<th>Alamat Pelapor</th>
|
||||
<th>No Telp Pelapor</th>
|
||||
<th>Keterangan Pelapor</th>
|
||||
<th>Posko</th>
|
||||
<th>Tindakan</th>
|
||||
<th>Penyebab</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
${tbody}
|
||||
</tbody>
|
||||
</table>
|
||||
`
|
||||
|
||||
var postHtml = "</div></body></html>";
|
||||
|
||||
var html = preHtml + body + postHtml;
|
||||
|
||||
var url =
|
||||
"data:application/vnd.ms-word;charset=utf-8," + encodeURIComponent(html);
|
||||
|
||||
filename = filename ? filename + ".doc" : "document.doc";
|
||||
|
||||
var downloadLink = document.createElement("a");
|
||||
|
||||
document.body.appendChild(downloadLink);
|
||||
|
||||
downloadLink.href = url;
|
||||
|
||||
downloadLink.download = filename;
|
||||
|
||||
downloadLink.click();
|
||||
|
||||
document.body.removeChild(downloadLink);
|
||||
}
|
||||
|
||||
export { exportToWord, exportDetailToWord }
|
278
src/report/Gangguan/Rekap/doc/RGangguan_PerPosko_DOC.ts
Normal file
278
src/report/Gangguan/Rekap/doc/RGangguan_PerPosko_DOC.ts
Normal file
@ -0,0 +1,278 @@
|
||||
|
||||
const company = "PT. PLN (Persero)";
|
||||
const exportToWord = (reportMeta: any, rawData: any, filename: any, periode: any) => {
|
||||
var preHtml = `<html xmlns:o='urn:schemas-microsoft-com:office:office' xmlns:w='urn:schemas-microsoft-com:office:word' xmlns='http://www.w3.org/TR/REC-html40'><head><meta charset='utf-8'><title>${filename}</title>
|
||||
<style type="text/css" media="print">
|
||||
@page Section1 {
|
||||
size:841.95pt 21.0cm;
|
||||
mso-page-orientation:landscape;
|
||||
margin:72.0pt 72.0pt 72.0pt 72.0pt;
|
||||
mso-header-margin:35.4pt;
|
||||
mso-footer-margin:35.4pt;
|
||||
mso-paper-source:0;
|
||||
}
|
||||
@page{
|
||||
size: landscape;
|
||||
font-size: 5px;
|
||||
}
|
||||
div.Section1 {
|
||||
page:Section1;
|
||||
}
|
||||
table.main {
|
||||
border-collapse: collapse;
|
||||
width: 100%;
|
||||
text-transform: uppercase;
|
||||
font-size: 8px;
|
||||
}
|
||||
table.main thead tr {
|
||||
background-color: #c0c0c0;
|
||||
}
|
||||
</style>
|
||||
</head><body>
|
||||
<div class="Section1">
|
||||
`;
|
||||
var tbody = '';
|
||||
for (let index = 0; index < rawData.length; index++) {
|
||||
const element = rawData[index];
|
||||
var column = '<tr>';
|
||||
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 += `<td ${styleTotal} ${colSpan} align="left">${content.content}</td>`
|
||||
: column += `<td ${styleTotal}>${content}</td>`;
|
||||
}
|
||||
column += '</tr>';
|
||||
tbody += column;
|
||||
}
|
||||
var columnHeader = `<thead>
|
||||
<tr>
|
||||
<th rowspan="3">No</th>
|
||||
<th rowspan="3">Posko</th>
|
||||
<th colspan="5">Laporan</th>
|
||||
<th colspan="6">Response Time</th>
|
||||
<th colspan="6">Recovery Time</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th rowspan="2">Total</th>
|
||||
<th colspan="2">Sudah Selesai</th>
|
||||
<th colspan="2">Belum Selesai</th>
|
||||
<th colspan="4">Menit</th>
|
||||
<th colspan="2">Laporan</th>
|
||||
<th colspan="4">Menit</th>
|
||||
<th colspan="2">Laporan</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Jml</th>
|
||||
<th>%</th>
|
||||
<th>Jml</th>
|
||||
<th>%</th>
|
||||
<th>Total</th>
|
||||
<th>Rata-Rata</th>
|
||||
<th>Max</th>
|
||||
<th>Min</th>
|
||||
<th>>Sla</th>
|
||||
<th><Sla</th>
|
||||
<th>Total</th>
|
||||
<th>Rata-Rata</th>
|
||||
<th>Max</th>
|
||||
<th>Min</th>
|
||||
<th>>Sla</th>
|
||||
<th><Sla</th>
|
||||
</tr>
|
||||
</thead>
|
||||
`;
|
||||
var body = `
|
||||
<table border=0 style="border:none">
|
||||
<tr>
|
||||
<td colspan="3"> ${company.toUpperCase()}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> Unit Induk Distribusi/Wilayah </td>
|
||||
<td>:</td>
|
||||
<td> ${reportMeta.uid
|
||||
? reportMeta.uid.name.toUpperCase()
|
||||
: 'Semua Unit Induk Distribusi/Wilayah'.toUpperCase()}</td>
|
||||
<tr>
|
||||
<td> Unit Pelaksanaan Pelayanan Pelanggan</td>
|
||||
<td>:</td>
|
||||
<td> ${reportMeta.up3
|
||||
? reportMeta.up3.name.toUpperCase()
|
||||
: 'Semua Unit Pelaksanaan Pelayanan Pelanggan'.toUpperCase()}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> Posko</td>
|
||||
<td>:</td>
|
||||
<td> ${reportMeta.posko ? reportMeta.posko.name.toUpperCase() : 'Semua Posko'.toUpperCase()}</td>
|
||||
</tr>
|
||||
</table>
|
||||
<center><h6>${filename.toUpperCase()}</h6></center>
|
||||
<center><h6>Periode : ${periode.dateFromFormat} s/d ${periode.dateToFormat} (${periode.dayTo})<h6></center>
|
||||
<table class="main">
|
||||
${columnHeader}
|
||||
<tbody>
|
||||
${tbody}
|
||||
</tbody>
|
||||
</table>
|
||||
`
|
||||
|
||||
var postHtml = "</div></body></html>";
|
||||
|
||||
var html = preHtml + body + postHtml;
|
||||
|
||||
var url =
|
||||
"data:application/vnd.ms-word;charset=utf-8," + encodeURIComponent(html);
|
||||
|
||||
filename = filename ? filename + ".doc" : "document.doc";
|
||||
|
||||
var downloadLink = document.createElement("a");
|
||||
|
||||
document.body.appendChild(downloadLink);
|
||||
|
||||
downloadLink.href = url;
|
||||
|
||||
downloadLink.download = filename;
|
||||
|
||||
downloadLink.click();
|
||||
|
||||
document.body.removeChild(downloadLink);
|
||||
}
|
||||
|
||||
const exportDetailToWord = (reportMeta: any, rawData: any, filename: any, periode: any) => {
|
||||
var preHtml = `<html xmlns:o='urn:schemas-microsoft-com:office:office' xmlns:w='urn:schemas-microsoft-com:office:word' xmlns='http://www.w3.org/TR/REC-html40'><head><meta charset='utf-8'><title>${filename}</title>
|
||||
<style type="text/css" media="print">
|
||||
@page Section1 {
|
||||
size:841.95pt 21.0cm;
|
||||
mso-page-orientation:landscape;
|
||||
margin:72.0pt 72.0pt 72.0pt 72.0pt;
|
||||
mso-header-margin:35.4pt;
|
||||
mso-footer-margin:35.4pt;
|
||||
mso-paper-source:0;
|
||||
}
|
||||
@page{
|
||||
size: landscape;
|
||||
font-size: 5px;
|
||||
}
|
||||
div.Section1 {
|
||||
page:Section1;
|
||||
}
|
||||
table.main {
|
||||
border-collapse: collapse;
|
||||
width: 100%;
|
||||
text-transform: uppercase;
|
||||
font-size: 8px;
|
||||
}
|
||||
table.main thead tr {
|
||||
background-color: #c0c0c0;
|
||||
}
|
||||
</style>
|
||||
</head><body>
|
||||
<div class="Section1">
|
||||
`;
|
||||
var tbody = ``;
|
||||
var cr = ``;
|
||||
rawData.map((item: any, i: any) => {
|
||||
cr += '<tr>';
|
||||
cr += `<td>${i + 1}</td>`;
|
||||
cr += `<td>${item.no_laporan}</td>`;
|
||||
cr += `<td>${item.waktu_lapor}</td>`;
|
||||
cr += `<td>${item.waktu_response}</td>`;
|
||||
cr += `<td>${item.waktu_recovery}</td>`;
|
||||
cr += `<td>${item.durasi_response_time}</td>`;
|
||||
cr += `<td>${item.durasi_recovery_time}</td>`;
|
||||
cr += `<td>${item.status_akhir}</td>`;
|
||||
cr += `<td>${item.referensi_marking}</td>`;
|
||||
cr += `<td>${item.idpel_nometer}</td>`;
|
||||
cr += `<td>${item.nama_pelapor}</td>`;
|
||||
cr += `<td>${item.alamat_pelapor}</td>`;
|
||||
cr += `<td>${item.no_telp_pelapor}</td>`;
|
||||
cr += `<td>${item.keterangan_pelapor}</td>`;
|
||||
cr += `<td>${item.nama_posko}</td>`;
|
||||
cr += `<td>${item.tindakan}</td>`;
|
||||
cr += `<td>${item.penyebab}</td>`;
|
||||
cr += '</tr>';
|
||||
});
|
||||
tbody += cr;
|
||||
|
||||
var body = `
|
||||
<table border=0 style="border:none">
|
||||
<tr>
|
||||
<td colspan="3"> ${company.toUpperCase()}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> Unit Induk Distribusi/Wilayah </td>
|
||||
<td>:</td>
|
||||
<td> ${reportMeta.uid
|
||||
? reportMeta.uid.name.toUpperCase()
|
||||
: 'Semua Unit Induk Distribusi/Wilayah'.toUpperCase()}</td>
|
||||
<tr>
|
||||
<td> Unit Pelaksanaan Pelayanan Pelanggan</td>
|
||||
<td>:</td>
|
||||
<td> ${reportMeta.up3
|
||||
? reportMeta.up3.name.toUpperCase()
|
||||
: 'Semua Unit Pelaksanaan Pelayanan Pelanggan'.toUpperCase()}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> Posko</td>
|
||||
<td>:</td>
|
||||
<td> ${reportMeta.posko ? reportMeta.posko.name.toUpperCase() : 'Semua Posko'.toUpperCase()}</td>
|
||||
</tr>
|
||||
</table>
|
||||
<center><h6>${filename.toUpperCase()}</h6></center>
|
||||
<center><h6>Periode : ${periode.dateFromFormat} s/d ${periode.dateToFormat} (${periode.dayTo})<h6></center>
|
||||
<table class="main">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>No</th>
|
||||
<th>No Laporan</th>
|
||||
<th>Tgl Lapor</th>
|
||||
<th>Tgl Datang</th>
|
||||
<th>Tgl Nyala</th>
|
||||
<th>Durasi Response Time</th>
|
||||
<th>Durasi Recovery Time</th>
|
||||
<th>Status</th>
|
||||
<th>Referensi Marking</th>
|
||||
<th>IDPEL/NO METER</th>
|
||||
<th>Nama Pelapor</th>
|
||||
<th>Alamat Pelapor</th>
|
||||
<th>No Telp Pelapor</th>
|
||||
<th>Keterangan Pelapor</th>
|
||||
<th>Posko</th>
|
||||
<th>Tindakan</th>
|
||||
<th>Penyebab</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
${tbody}
|
||||
</tbody>
|
||||
</table>
|
||||
`
|
||||
|
||||
var postHtml = "</div></body></html>";
|
||||
|
||||
var html = preHtml + body + postHtml;
|
||||
|
||||
var url =
|
||||
"data:application/vnd.ms-word;charset=utf-8," + encodeURIComponent(html);
|
||||
|
||||
filename = filename ? filename + ".doc" : "document.doc";
|
||||
|
||||
var downloadLink = document.createElement("a");
|
||||
|
||||
document.body.appendChild(downloadLink);
|
||||
|
||||
downloadLink.href = url;
|
||||
|
||||
downloadLink.download = filename;
|
||||
|
||||
downloadLink.click();
|
||||
|
||||
document.body.removeChild(downloadLink);
|
||||
}
|
||||
|
||||
export { exportToWord, exportDetailToWord }
|
281
src/report/Gangguan/Rekap/doc/RGangguan_PerRegu_DOC.ts
Normal file
281
src/report/Gangguan/Rekap/doc/RGangguan_PerRegu_DOC.ts
Normal file
@ -0,0 +1,281 @@
|
||||
import { Column } from "jspdf-autotable";
|
||||
|
||||
const company = "PT. PLN (Persero)";
|
||||
const exportToWord = (reportMeta: any, rawData: any, filename: any, periode: any) => {
|
||||
var preHtml = `<html xmlns:o='urn:schemas-microsoft-com:office:office' xmlns:w='urn:schemas-microsoft-com:office:word' xmlns='http://www.w3.org/TR/REC-html40'><head><meta charset='utf-8'><title>${filename}</title>
|
||||
<style type="text/css" media="print">
|
||||
@page Section1 {
|
||||
size:841.95pt 21.0cm;
|
||||
mso-page-orientation:landscape;
|
||||
margin:72.0pt 72.0pt 72.0pt 72.0pt;
|
||||
mso-header-margin:35.4pt;
|
||||
mso-footer-margin:35.4pt;
|
||||
mso-paper-source:0;
|
||||
}
|
||||
@page{
|
||||
size: landscape;
|
||||
font-size: 5px;
|
||||
}
|
||||
div.Section1 {
|
||||
page:Section1;
|
||||
}
|
||||
table.main {
|
||||
border-collapse: collapse;
|
||||
width: 100%;
|
||||
text-transform: uppercase;
|
||||
font-size: 8px;
|
||||
}
|
||||
table.main thead tr {
|
||||
background-color: #c0c0c0;
|
||||
}
|
||||
</style>
|
||||
</head><body>
|
||||
<div class="Section1">
|
||||
`;
|
||||
var tbody = '';
|
||||
for (let index = 0; index < rawData.length; index++) {
|
||||
const element = rawData[index];
|
||||
var column = '<tr>';
|
||||
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 += `<td ${styleTotal} ${colSpan} align="left">${content.content}</td>`
|
||||
: column += `<td ${styleTotal}>${content}</td>`;
|
||||
}
|
||||
column += '</tr>';
|
||||
tbody += column;
|
||||
}
|
||||
var columnHeader = `<thead>
|
||||
<tr>
|
||||
<th rowspan="3">No</th>
|
||||
<th rowspan="3">Kode</th>
|
||||
<th rowspan="3">Nama Regu</th>
|
||||
<th colspan="5">Laporan</th>
|
||||
<th colspan="6">Response Time</th>
|
||||
<th colspan="6">Recovery Time</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th rowspan="2">Total</th>
|
||||
<th colspan="2">Sudah Selesai</th>
|
||||
<th colspan="2">Belum Selesai</th>
|
||||
<th colspan="4">Menit</th>
|
||||
<th colspan="2">Laporan</th>
|
||||
<th colspan="4">Menit</th>
|
||||
<th colspan="2">Laporan</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Jml</th>
|
||||
<th>%</th>
|
||||
<th>Jml</th>
|
||||
<th>%</th>
|
||||
<th>Total</th>
|
||||
<th>Rata-Rata</th>
|
||||
<th>Max</th>
|
||||
<th>Min</th>
|
||||
<th>>Sla</th>
|
||||
<th><Sla</th>
|
||||
<th>Total</th>
|
||||
<th>Rata-Rata</th>
|
||||
<th>Max</th>
|
||||
<th>Min</th>
|
||||
<th>>Sla</th>
|
||||
<th><Sla</th>
|
||||
</tr>
|
||||
</thead>`;
|
||||
var body = `
|
||||
<table border=0 style="border:none">
|
||||
<tr>
|
||||
<td colspan="3"> ${company.toUpperCase()}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> Unit Induk Distribusi/Wilayah </td>
|
||||
<td>:</td>
|
||||
<td> ${reportMeta.uid
|
||||
? reportMeta.uid.name.toUpperCase()
|
||||
: 'Semua Unit Induk Distribusi/Wilayah'.toUpperCase()}</td>
|
||||
<tr>
|
||||
<td> Unit Pelaksanaan Pelayanan Pelanggan</td>
|
||||
<td>:</td>
|
||||
<td> ${reportMeta.up3
|
||||
? reportMeta.up3.name.toUpperCase()
|
||||
: 'Semua Unit Pelaksanaan Pelayanan Pelanggan'.toUpperCase()}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> Posko</td>
|
||||
<td>:</td>
|
||||
<td> ${reportMeta.posko ? reportMeta.posko.name.toUpperCase() : 'Semua Posko'.toUpperCase()}</td>
|
||||
</tr>
|
||||
</table>
|
||||
<center><h6>${filename.toUpperCase()}</h6></center>
|
||||
<center><h6>Periode : ${periode.dateFromFormat} s/d ${periode.dateToFormat} (${periode.dayTo})<h6></center>
|
||||
<table class="main">
|
||||
${columnHeader}
|
||||
<tbody>
|
||||
${tbody}
|
||||
</tbody>
|
||||
</table>
|
||||
`
|
||||
|
||||
var postHtml = "</div></body></html>";
|
||||
|
||||
var html = preHtml + body + postHtml;
|
||||
|
||||
var url =
|
||||
"data:application/vnd.ms-word;charset=utf-8," + encodeURIComponent(html);
|
||||
|
||||
filename = filename ? filename + ".doc" : "document.doc";
|
||||
|
||||
var downloadLink = document.createElement("a");
|
||||
|
||||
document.body.appendChild(downloadLink);
|
||||
|
||||
downloadLink.href = url;
|
||||
|
||||
downloadLink.download = filename;
|
||||
|
||||
downloadLink.click();
|
||||
|
||||
document.body.removeChild(downloadLink);
|
||||
}
|
||||
|
||||
const exportDetailToWord = (reportMeta: any, rawData: any, filename: any, periode: any) => {
|
||||
var preHtml = `<html xmlns:o='urn:schemas-microsoft-com:office:office' xmlns:w='urn:schemas-microsoft-com:office:word' xmlns='http://www.w3.org/TR/REC-html40'><head><meta charset='utf-8'><title>${filename}</title>
|
||||
<style type="text/css" media="print">
|
||||
@page Section1 {
|
||||
size:841.95pt 21.0cm;
|
||||
mso-page-orientation:landscape;
|
||||
margin:72.0pt 72.0pt 72.0pt 72.0pt;
|
||||
mso-header-margin:35.4pt;
|
||||
mso-footer-margin:35.4pt;
|
||||
mso-paper-source:0;
|
||||
}
|
||||
@page{
|
||||
size: landscape;
|
||||
font-size: 5px;
|
||||
}
|
||||
div.Section1 {
|
||||
page:Section1;
|
||||
}
|
||||
table.main {
|
||||
border-collapse: collapse;
|
||||
width: 100%;
|
||||
text-transform: uppercase;
|
||||
font-size: 8px;
|
||||
}
|
||||
table.main thead tr {
|
||||
background-color: #c0c0c0;
|
||||
}
|
||||
</style>
|
||||
</head><body>
|
||||
<div class="Section1">
|
||||
`;
|
||||
var tbody = ``;
|
||||
var cr = ``;
|
||||
rawData.map((item: any, i: any) => {
|
||||
cr += '<tr>';
|
||||
cr += `<td>${i + 1}</td>`;
|
||||
cr += `<td>${item.no_laporan}</td>`;
|
||||
cr += `<td>${item.waktu_lapor}</td>`;
|
||||
cr += `<td>${item.waktu_response}</td>`;
|
||||
cr += `<td>${item.waktu_recovery}</td>`;
|
||||
cr += `<td>${item.durasi_response_time}</td>`;
|
||||
cr += `<td>${item.durasi_recovery_time}</td>`;
|
||||
cr += `<td>${item.status_akhir}</td>`;
|
||||
cr += `<td>${item.referensi_marking}</td>`;
|
||||
cr += `<td>${item.idpel_nometer}</td>`;
|
||||
cr += `<td>${item.nama_pelapor}</td>`;
|
||||
cr += `<td>${item.alamat_pelapor}</td>`;
|
||||
cr += `<td>${item.no_telp_pelapor}</td>`;
|
||||
cr += `<td>${item.keterangan_pelapor}</td>`;
|
||||
cr += `<td>${item.nama_posko}</td>`;
|
||||
cr += `<td>${item.tindakan}</td>`;
|
||||
cr += `<td>${item.penyebab}</td>`;
|
||||
cr += '</tr>';
|
||||
});
|
||||
tbody += cr;
|
||||
var columnHeader = `<thead>
|
||||
<tr>
|
||||
<th>No</th>
|
||||
<th>No Laporan</th>
|
||||
<th>Tgl Lapor</th>
|
||||
<th>Tgl Datang</th>
|
||||
<th>Tgl Nyala</th>
|
||||
<th>Durasi Response Time</th>
|
||||
<th>Durasi Recovery Time</th>
|
||||
<th>Status</th>
|
||||
<th>Referensi Marking</th>
|
||||
<th>IDPEL/NO METER</th>
|
||||
<th>Nama Pelapor</th>
|
||||
<th>Alamat Pelapor</th>
|
||||
<th>No Telp Pelapor</th>
|
||||
<th>Keterangan Pelapor</th>
|
||||
<th>Posko</th>
|
||||
<th>Tindakan</th>
|
||||
<th>Penyebab</th>
|
||||
</tr>
|
||||
</thead>`;
|
||||
var body = `
|
||||
<table border=0 style="border:none">
|
||||
<tr>
|
||||
<td colspan="3"> ${company.toUpperCase()}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> Unit Induk Distribusi/Wilayah </td>
|
||||
<td>:</td>
|
||||
<td> ${reportMeta.uid
|
||||
? reportMeta.uid.name.toUpperCase()
|
||||
: 'Semua Unit Induk Distribusi/Wilayah'.toUpperCase()}</td>
|
||||
<tr>
|
||||
<td> Unit Pelaksanaan Pelayanan Pelanggan</td>
|
||||
<td>:</td>
|
||||
<td> ${reportMeta.up3
|
||||
? reportMeta.up3.name.toUpperCase()
|
||||
: 'Semua Unit Pelaksanaan Pelayanan Pelanggan'.toUpperCase()}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> Posko</td>
|
||||
<td>:</td>
|
||||
<td> ${reportMeta.posko ? reportMeta.posko.name.toUpperCase() : 'Semua Posko'.toUpperCase()}</td>
|
||||
</tr>
|
||||
</table>
|
||||
<center><h6>${filename.toUpperCase()}</h6></center>
|
||||
<center><h6>Periode : ${periode.dateFromFormat} s/d ${periode.dateToFormat} (${periode.dayTo})<h6></center>
|
||||
<table class="main">
|
||||
<thead>
|
||||
${columnHeader}
|
||||
</thead>
|
||||
<tbody>
|
||||
${tbody}
|
||||
</tbody>
|
||||
</table>
|
||||
`
|
||||
|
||||
var postHtml = "</div></body></html>";
|
||||
|
||||
var html = preHtml + body + postHtml;
|
||||
|
||||
var url =
|
||||
"data:application/vnd.ms-word;charset=utf-8," + encodeURIComponent(html);
|
||||
|
||||
filename = filename ? filename + ".doc" : "document.doc";
|
||||
|
||||
var downloadLink = document.createElement("a");
|
||||
|
||||
document.body.appendChild(downloadLink);
|
||||
|
||||
downloadLink.href = url;
|
||||
|
||||
downloadLink.download = filename;
|
||||
|
||||
downloadLink.click();
|
||||
|
||||
document.body.removeChild(downloadLink);
|
||||
}
|
||||
|
||||
export { exportToWord, exportDetailToWord }
|
278
src/report/Gangguan/Rekap/doc/RGangguan_PerTanggal_DOC.ts
Normal file
278
src/report/Gangguan/Rekap/doc/RGangguan_PerTanggal_DOC.ts
Normal file
@ -0,0 +1,278 @@
|
||||
|
||||
const company = "PT. PLN (Persero)";
|
||||
const exportToWord = (reportMeta: any, rawData: any, filename: any, periode: any) => {
|
||||
var preHtml = `<html xmlns:o='urn:schemas-microsoft-com:office:office' xmlns:w='urn:schemas-microsoft-com:office:word' xmlns='http://www.w3.org/TR/REC-html40'><head><meta charset='utf-8'><title>${filename}</title>
|
||||
<style type="text/css" media="print">
|
||||
@page Section1 {
|
||||
size:841.95pt 21.0cm;
|
||||
mso-page-orientation:landscape;
|
||||
margin:72.0pt 72.0pt 72.0pt 72.0pt;
|
||||
mso-header-margin:35.4pt;
|
||||
mso-footer-margin:35.4pt;
|
||||
mso-paper-source:0;
|
||||
}
|
||||
@page{
|
||||
size: landscape;
|
||||
font-size: 5px;
|
||||
}
|
||||
div.Section1 {
|
||||
page:Section1;
|
||||
}
|
||||
table.main {
|
||||
border-collapse: collapse;
|
||||
width: 100%;
|
||||
text-transform: uppercase;
|
||||
font-size: 8px;
|
||||
}
|
||||
table.main thead tr {
|
||||
background-color: #c0c0c0;
|
||||
}
|
||||
</style>
|
||||
</head><body>
|
||||
<div class="Section1">
|
||||
`;
|
||||
var tbody = '';
|
||||
for (let index = 0; index < rawData.length; index++) {
|
||||
const element = rawData[index];
|
||||
var column = '<tr>';
|
||||
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 += `<td ${styleTotal} ${colSpan} align="left">${content.content}</td>`
|
||||
: column += `<td ${styleTotal}>${content}</td>`;
|
||||
}
|
||||
column += '</tr>';
|
||||
tbody += column;
|
||||
}
|
||||
|
||||
var body = `
|
||||
<table border=0 style="border:none">
|
||||
<tr>
|
||||
<td colspan="3"> ${company.toUpperCase()}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> Unit Induk Distribusi/Wilayah </td>
|
||||
<td>:</td>
|
||||
<td> ${reportMeta.uid
|
||||
? reportMeta.uid.name.toUpperCase()
|
||||
: 'Semua Unit Induk Distribusi/Wilayah'.toUpperCase()}</td>
|
||||
<tr>
|
||||
<td> Unit Pelaksanaan Pelayanan Pelanggan</td>
|
||||
<td>:</td>
|
||||
<td> ${reportMeta.up3
|
||||
? reportMeta.up3.name.toUpperCase()
|
||||
: 'Semua Unit Pelaksanaan Pelayanan Pelanggan'.toUpperCase()}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> Posko</td>
|
||||
<td>:</td>
|
||||
<td> ${reportMeta.posko ? reportMeta.posko.name.toUpperCase() : 'Semua Posko'.toUpperCase()}</td>
|
||||
</tr>
|
||||
</table>
|
||||
<center><h6>${filename.toUpperCase()}</h6></center>
|
||||
<center><h6>Periode : ${periode.dateFromFormat} s/d ${periode.dateToFormat} (${periode.dayTo})<h6></center>
|
||||
<table class="main">
|
||||
<thead>
|
||||
<tr>
|
||||
<th rowspan="3">No</th>
|
||||
<th rowspan="3">Tanggal Lapor</th>
|
||||
<th colspan="5">Laporan</th>
|
||||
<th colspan="6">Response Time</th>
|
||||
<th colspan="6">Recovery Time</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th rowspan="2">Total</th>
|
||||
<th colspan="2">Sudah Selesai</th>
|
||||
<th colspan="2">Belum Selesai</th>
|
||||
<th colspan="4">Menit</th>
|
||||
<th colspan="2">Laporan</th>
|
||||
<th colspan="4">Menit</th>
|
||||
<th colspan="2">Laporan</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Jml</th>
|
||||
<th>%</th>
|
||||
<th>Jml</th>
|
||||
<th>%</th>
|
||||
<th>Total</th>
|
||||
<th>Rata-Rata</th>
|
||||
<th>Max</th>
|
||||
<th>Min</th>
|
||||
<th>>Sla</th>
|
||||
<th><Sla</th>
|
||||
<th>Total</th>
|
||||
<th>Rata-Rata</th>
|
||||
<th>Max</th>
|
||||
<th>Min</th>
|
||||
<th>>Sla</th>
|
||||
<th><Sla</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
${tbody}
|
||||
</tbody>
|
||||
</table>
|
||||
`
|
||||
|
||||
var postHtml = "</div></body></html>";
|
||||
|
||||
var html = preHtml + body + postHtml;
|
||||
|
||||
var url =
|
||||
"data:application/vnd.ms-word;charset=utf-8," + encodeURIComponent(html);
|
||||
|
||||
filename = filename ? filename + ".doc" : "document.doc";
|
||||
|
||||
var downloadLink = document.createElement("a");
|
||||
|
||||
document.body.appendChild(downloadLink);
|
||||
|
||||
downloadLink.href = url;
|
||||
|
||||
downloadLink.download = filename;
|
||||
|
||||
downloadLink.click();
|
||||
|
||||
document.body.removeChild(downloadLink);
|
||||
}
|
||||
|
||||
const exportDetailToWord = (reportMeta: any, rawData: any, filename: any, periode: any) => {
|
||||
var preHtml = `<html xmlns:o='urn:schemas-microsoft-com:office:office' xmlns:w='urn:schemas-microsoft-com:office:word' xmlns='http://www.w3.org/TR/REC-html40'><head><meta charset='utf-8'><title>${filename}</title>
|
||||
<style type="text/css" media="print">
|
||||
@page Section1 {
|
||||
size:841.95pt 21.0cm;
|
||||
mso-page-orientation:landscape;
|
||||
margin:72.0pt 72.0pt 72.0pt 72.0pt;
|
||||
mso-header-margin:35.4pt;
|
||||
mso-footer-margin:35.4pt;
|
||||
mso-paper-source:0;
|
||||
}
|
||||
@page{
|
||||
size: landscape;
|
||||
font-size: 5px;
|
||||
}
|
||||
div.Section1 {
|
||||
page:Section1;
|
||||
}
|
||||
table.main {
|
||||
border-collapse: collapse;
|
||||
width: 100%;
|
||||
text-transform: uppercase;
|
||||
font-size: 8px;
|
||||
}
|
||||
table.main thead tr {
|
||||
background-color: #c0c0c0;
|
||||
}
|
||||
</style>
|
||||
</head><body>
|
||||
<div class="Section1">
|
||||
`;
|
||||
var tbody = ``;
|
||||
var cr = ``;
|
||||
rawData.map((item: any, i: any) => {
|
||||
cr += '<tr>';
|
||||
cr += `<td>${i + 1}</td>`;
|
||||
cr += `<td>${item.no_laporan}</td>`;
|
||||
cr += `<td>${item.waktu_lapor}</td>`;
|
||||
cr += `<td>${item.waktu_response}</td>`;
|
||||
cr += `<td>${item.waktu_recovery}</td>`;
|
||||
cr += `<td>${item.durasi_response_time}</td>`;
|
||||
cr += `<td>${item.durasi_recovery_time}</td>`;
|
||||
cr += `<td>${item.status_akhir}</td>`;
|
||||
cr += `<td>${item.referensi_marking}</td>`;
|
||||
cr += `<td>${item.id_pelnomormeter}</td>`;
|
||||
cr += `<td>${item.nama_pelapor}</td>`;
|
||||
cr += `<td>${item.alamat_pelapor}</td>`;
|
||||
cr += `<td>${item.no_telp_pelapor}</td>`;
|
||||
cr += `<td>${item.keterangan_pelapor}</td>`;
|
||||
cr += `<td>${item.nama_posko}</td>`;
|
||||
cr += `<td>${item.tindakan}</td>`;
|
||||
cr += `<td>${item.penyebab}</td>`;
|
||||
cr += '</tr>';
|
||||
});
|
||||
tbody += cr;
|
||||
|
||||
var body = `
|
||||
<table border=0 style="border:none">
|
||||
<tr>
|
||||
<td colspan="3"> ${company.toUpperCase()}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> Unit Induk Distribusi/Wilayah </td>
|
||||
<td>:</td>
|
||||
<td> ${reportMeta.uid
|
||||
? reportMeta.uid.name.toUpperCase()
|
||||
: 'Semua Unit Induk Distribusi/Wilayah'.toUpperCase()}</td>
|
||||
<tr>
|
||||
<td> Unit Pelaksanaan Pelayanan Pelanggan</td>
|
||||
<td>:</td>
|
||||
<td> ${reportMeta.up3
|
||||
? reportMeta.up3.name.toUpperCase()
|
||||
: 'Semua Unit Pelaksanaan Pelayanan Pelanggan'.toUpperCase()}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> Posko</td>
|
||||
<td>:</td>
|
||||
<td> ${reportMeta.posko ? reportMeta.posko.name.toUpperCase() : 'Semua Posko'.toUpperCase()}</td>
|
||||
</tr>
|
||||
</table>
|
||||
<center><h6>${filename.toUpperCase()}</h6></center>
|
||||
<center><h6>Periode : ${periode.dateFromFormat} s/d ${periode.dateToFormat} (${periode.dayTo})<h6></center>
|
||||
<table class="main">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>No</th>
|
||||
<th>No Laporan</th>
|
||||
<th>Tgl Lapor</th>
|
||||
<th>Tgl Datang</th>
|
||||
<th>Tgl Nyala</th>
|
||||
<th>Durasi Response Time</th>
|
||||
<th>Durasi Recovery Time</th>
|
||||
<th>Status</th>
|
||||
<th>Referensi Marking</th>
|
||||
<th>IDPEL/NO METER</th>
|
||||
<th>Nama Pelapor</th>
|
||||
<th>Alamat Pelapor</th>
|
||||
<th>No Telp Pelapor</th>
|
||||
<th>Keterangan Pelapor</th>
|
||||
<th>Posko</th>
|
||||
<th>Tindakan</th>
|
||||
<th>Penyebab</th>
|
||||
</tr>
|
||||
|
||||
</thead>
|
||||
<tbody>
|
||||
${tbody}
|
||||
</tbody>
|
||||
</table>
|
||||
`
|
||||
|
||||
var postHtml = "</div></body></html>";
|
||||
|
||||
var html = preHtml + body + postHtml;
|
||||
|
||||
var url =
|
||||
"data:application/vnd.ms-word;charset=utf-8," + encodeURIComponent(html);
|
||||
|
||||
filename = filename ? filename + ".doc" : "document.doc";
|
||||
|
||||
var downloadLink = document.createElement("a");
|
||||
|
||||
document.body.appendChild(downloadLink);
|
||||
|
||||
downloadLink.href = url;
|
||||
|
||||
downloadLink.download = filename;
|
||||
|
||||
downloadLink.click();
|
||||
|
||||
document.body.removeChild(downloadLink);
|
||||
}
|
||||
|
||||
export { exportToWord, exportDetailToWord }
|
276
src/report/Gangguan/Rekap/doc/RGangguan_RatingPerPosko_DOC.ts
Normal file
276
src/report/Gangguan/Rekap/doc/RGangguan_RatingPerPosko_DOC.ts
Normal file
@ -0,0 +1,276 @@
|
||||
import { numberToStars } from "@/report/utils/rating";
|
||||
|
||||
const company = "PT. PLN (Persero)";
|
||||
const exportToWord = (reportMeta: any, rawData: any, filename: any, periode: any) => {
|
||||
var preHtml = `<html xmlns:o='urn:schemas-microsoft-com:office:office' xmlns:w='urn:schemas-microsoft-com:office:word' xmlns='http://www.w3.org/TR/REC-html40'><head><meta charset='utf-8'><title>${filename}</title>
|
||||
<style type="text/css" media="print">
|
||||
@page Section1 {
|
||||
size:841.95pt 21.0cm;
|
||||
mso-page-orientation:landscape;
|
||||
margin:72.0pt 72.0pt 72.0pt 72.0pt;
|
||||
mso-header-margin:35.4pt;
|
||||
mso-footer-margin:35.4pt;
|
||||
mso-paper-source:0;
|
||||
}
|
||||
@page{
|
||||
size: landscape;
|
||||
font-size: 5px;
|
||||
}
|
||||
div.Section1 {
|
||||
page:Section1;
|
||||
}
|
||||
table.main {
|
||||
border-collapse: collapse;
|
||||
width: 100%;
|
||||
text-transform: uppercase;
|
||||
font-size: 8px;
|
||||
}
|
||||
table.main thead tr {
|
||||
background-color: #c0c0c0;
|
||||
}
|
||||
</style>
|
||||
</head><body>
|
||||
<div class="Section1">
|
||||
`;
|
||||
var tbody = '';
|
||||
for (let index = 0; index < rawData.length; index++) {
|
||||
const element = rawData[index];
|
||||
var column = '<tr>';
|
||||
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 += `<td ${styleTotal} ${colSpan} align="left">${content.content}</td>`
|
||||
: column += `<td ${styleTotal}>${content}</td>`;
|
||||
}
|
||||
column += '</tr>';
|
||||
tbody += column;
|
||||
}
|
||||
var columnHeader = `<thead>
|
||||
<tr>
|
||||
<th rowspan="3">No</th>
|
||||
<th rowspan="3">Kode</th>
|
||||
<th rowspan="3">Nama Regu</th>
|
||||
<th colspan="5">Laporan</th>
|
||||
<th colspan="7">Rating</th>
|
||||
<th colspan="2">Non Rating</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th rowspan="2">Total</th>
|
||||
<th colspan="2">Belum Selesai</th>
|
||||
<th colspan="2">Sudah Selesai</th>
|
||||
<th colspan="7">Bintang</th>
|
||||
<th rowspan="2">Jml</th>
|
||||
<th rowspan="2">%</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Jml</th>
|
||||
<th>%</th>
|
||||
<th>Jml</th>
|
||||
<th>%</th>
|
||||
<th>Jml</th>
|
||||
<th>1</th>
|
||||
<th>2</th>
|
||||
<th>3</th>
|
||||
<th>4</th>
|
||||
<th>5</th>
|
||||
<th>Index</th>
|
||||
</tr>
|
||||
|
||||
</thead>
|
||||
`;
|
||||
var body = `
|
||||
<table border=0 style="border:none">
|
||||
<tr>
|
||||
<td colspan="3"> ${company.toUpperCase()}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> Unit Induk Distribusi/Wilayah </td>
|
||||
<td>:</td>
|
||||
<td> ${reportMeta.uid
|
||||
? reportMeta.uid.name.toUpperCase()
|
||||
: 'Semua Unit Induk Distribusi/Wilayah'.toUpperCase()}</td>
|
||||
<tr>
|
||||
<td> Unit Pelaksanaan Pelayanan Pelanggan</td>
|
||||
<td>:</td>
|
||||
<td> ${reportMeta.up3
|
||||
? reportMeta.up3.name.toUpperCase()
|
||||
: 'Semua Unit Pelaksanaan Pelayanan Pelanggan'.toUpperCase()}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> Posko</td>
|
||||
<td>:</td>
|
||||
<td> ${reportMeta.posko ? reportMeta.posko.name.toUpperCase() : 'Semua Posko'.toUpperCase()}</td>
|
||||
</tr>
|
||||
</table>
|
||||
<center><h6>${filename.toUpperCase()}</h6></center>
|
||||
<center><h6>Periode : ${periode.dateFromFormat} s/d ${periode.dateToFormat} (${periode.dayTo})<h6></center>
|
||||
<table class="main">
|
||||
${columnHeader}
|
||||
<tbody>
|
||||
${tbody}
|
||||
</tbody>
|
||||
</table>
|
||||
`
|
||||
|
||||
var postHtml = "</div></body></html>";
|
||||
|
||||
var html = preHtml + body + postHtml;
|
||||
|
||||
var url =
|
||||
"data:application/vnd.ms-word;charset=utf-8," + encodeURIComponent(html);
|
||||
|
||||
filename = filename ? filename + ".doc" : "document.doc";
|
||||
|
||||
var downloadLink = document.createElement("a");
|
||||
|
||||
document.body.appendChild(downloadLink);
|
||||
|
||||
downloadLink.href = url;
|
||||
|
||||
downloadLink.download = filename;
|
||||
|
||||
downloadLink.click();
|
||||
|
||||
document.body.removeChild(downloadLink);
|
||||
}
|
||||
|
||||
const exportDetailToWord = (reportMeta: any, rawData: any, filename: any, periode: any) => {
|
||||
var preHtml = `<html xmlns:o='urn:schemas-microsoft-com:office:office' xmlns:w='urn:schemas-microsoft-com:office:word' xmlns='http://www.w3.org/TR/REC-html40'><head><meta charset='utf-8'><title>${filename}</title>
|
||||
<style type="text/css" media="print">
|
||||
@page Section1 {
|
||||
size:841.95pt 21.0cm;
|
||||
mso-page-orientation:landscape;
|
||||
margin:72.0pt 72.0pt 72.0pt 72.0pt;
|
||||
mso-header-margin:35.4pt;
|
||||
mso-footer-margin:35.4pt;
|
||||
mso-paper-source:0;
|
||||
}
|
||||
@page{
|
||||
size: landscape;
|
||||
font-size: 5px;
|
||||
}
|
||||
div.Section1 {
|
||||
page:Section1;
|
||||
}
|
||||
table.main {
|
||||
border-collapse: collapse;
|
||||
width: 100%;
|
||||
text-transform: uppercase;
|
||||
font-size: 8px;
|
||||
}
|
||||
table.main thead tr {
|
||||
background-color: #c0c0c0;
|
||||
}
|
||||
</style>
|
||||
</head><body>
|
||||
<div class="Section1">
|
||||
`;
|
||||
var tbody = ``;
|
||||
var cr = ``;
|
||||
rawData.map((item: any, i: any) => {
|
||||
cr += '<tr>';
|
||||
cr += `<td>${item.no_laporan}</td>`;
|
||||
cr += `<td>${numberToStars(item.nilai_rating)}</td>`;
|
||||
cr += `<td>${item.waktu_lapor}</td>`;
|
||||
cr += `<td>${item.waktu_response}</td>`;
|
||||
cr += `<td>${item.waktu_recovery}</td>`;
|
||||
cr += `<td>${item.durasi_response_time}</td>`;
|
||||
cr += `<td>${item.durasi_recovery_time}</td>`;
|
||||
cr += `<td>${item.status_akhir}</td>`;
|
||||
cr += `<td>${item.referensi_marking}</td>`;
|
||||
cr += `<td>${item.idpel_nometer}</td>`;
|
||||
cr += `<td>${item.nama_pelapor}</td>`;
|
||||
cr += `<td>${item.alamat_pelapor}</td>`;
|
||||
cr += `<td>${item.no_telp_pelapor}</td>`;
|
||||
cr += `<td>${item.keterangan_pelapor}</td>`;
|
||||
cr += `<td>${item.nama_posko}</td>`;
|
||||
cr += `<td>${item.tindakan}</td>`;
|
||||
cr += `<td>${item.penyebab}</td>`;
|
||||
cr += '</tr>';
|
||||
});
|
||||
tbody += cr;
|
||||
|
||||
var body = `
|
||||
<table border=0 style="border:none">
|
||||
<tr>
|
||||
<td colspan="3"> ${company.toUpperCase()}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> Unit Induk Distribusi/Wilayah </td>
|
||||
<td>:</td>
|
||||
<td> ${reportMeta.uid
|
||||
? reportMeta.uid.name.toUpperCase()
|
||||
: 'Semua Unit Induk Distribusi/Wilayah'.toUpperCase()}</td>
|
||||
<tr>
|
||||
<td> Unit Pelaksanaan Pelayanan Pelanggan</td>
|
||||
<td>:</td>
|
||||
<td> ${reportMeta.up3
|
||||
? reportMeta.up3.name.toUpperCase()
|
||||
: 'Semua Unit Pelaksanaan Pelayanan Pelanggan'.toUpperCase()}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> Posko</td>
|
||||
<td>:</td>
|
||||
<td> ${reportMeta.posko ? reportMeta.posko.name.toUpperCase() : 'Semua Posko'.toUpperCase()}</td>
|
||||
</tr>
|
||||
</table>
|
||||
<center><h6>${filename.toUpperCase()}</h6></center>
|
||||
<center><h6>Periode : ${periode.dateFromFormat} s/d ${periode.dateToFormat} (${periode.dayTo})<h6></center>
|
||||
<table class="main">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>No</th>
|
||||
<th>No Laporan</th>
|
||||
<th>Rating</th>
|
||||
<th>Tgl Lapor</th>
|
||||
<th>Tgl Datang</th>
|
||||
<th>Tgl Nyala</th>
|
||||
<th>Durasi Response Time</th>
|
||||
<th>Durasi Recovery Time</th>
|
||||
<th>Status</th>
|
||||
<th>Referensi Marking</th>
|
||||
<th>IDPEL/NO METER</th>
|
||||
<th>Nama Pelapor</th>
|
||||
<th>Alamat Pelapor</th>
|
||||
<th>No Telp Pelapor</th>
|
||||
<th>Keterangan Pelapor</th>
|
||||
<th>Posko</th>
|
||||
<th>Tindakan</th>
|
||||
<th>Penyebab</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
${tbody}
|
||||
</tbody>
|
||||
</table>
|
||||
`
|
||||
|
||||
var postHtml = "</div></body></html>";
|
||||
|
||||
var html = preHtml + body + postHtml;
|
||||
|
||||
var url =
|
||||
"data:application/vnd.ms-word;charset=utf-8," + encodeURIComponent(html);
|
||||
|
||||
filename = filename ? filename + ".doc" : "document.doc";
|
||||
|
||||
var downloadLink = document.createElement("a");
|
||||
|
||||
document.body.appendChild(downloadLink);
|
||||
|
||||
downloadLink.href = url;
|
||||
|
||||
downloadLink.download = filename;
|
||||
|
||||
downloadLink.click();
|
||||
|
||||
document.body.removeChild(downloadLink);
|
||||
}
|
||||
|
||||
export { exportToWord, exportDetailToWord }
|
276
src/report/Gangguan/Rekap/doc/RGangguan_RatingPerRegu_DOC.ts
Normal file
276
src/report/Gangguan/Rekap/doc/RGangguan_RatingPerRegu_DOC.ts
Normal file
@ -0,0 +1,276 @@
|
||||
import { numberToStars } from "@/report/utils/rating";
|
||||
|
||||
const company = "PT. PLN (Persero)";
|
||||
const exportToWord = (reportMeta: any, rawData: any, filename: any, periode: any) => {
|
||||
var preHtml = `<html xmlns:o='urn:schemas-microsoft-com:office:office' xmlns:w='urn:schemas-microsoft-com:office:word' xmlns='http://www.w3.org/TR/REC-html40'><head><meta charset='utf-8'><title>${filename}</title>
|
||||
<style type="text/css" media="print">
|
||||
@page Section1 {
|
||||
size:841.95pt 21.0cm;
|
||||
mso-page-orientation:landscape;
|
||||
margin:72.0pt 72.0pt 72.0pt 72.0pt;
|
||||
mso-header-margin:35.4pt;
|
||||
mso-footer-margin:35.4pt;
|
||||
mso-paper-source:0;
|
||||
}
|
||||
@page{
|
||||
size: landscape;
|
||||
font-size: 5px;
|
||||
}
|
||||
div.Section1 {
|
||||
page:Section1;
|
||||
}
|
||||
table.main {
|
||||
border-collapse: collapse;
|
||||
width: 100%;
|
||||
text-transform: uppercase;
|
||||
font-size: 8px;
|
||||
}
|
||||
table.main thead tr {
|
||||
background-color: #c0c0c0;
|
||||
}
|
||||
</style>
|
||||
</head><body>
|
||||
<div class="Section1">
|
||||
`;
|
||||
var tbody = '';
|
||||
for (let index = 0; index < rawData.length; index++) {
|
||||
const element = rawData[index];
|
||||
var column = '<tr>';
|
||||
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 += `<td ${styleTotal} ${colSpan} align="left">${content.content}</td>`
|
||||
: column += `<td ${styleTotal}>${content}</td>`;
|
||||
}
|
||||
column += '</tr>';
|
||||
tbody += column;
|
||||
}
|
||||
var columnHeader = `<thead>
|
||||
<tr>
|
||||
<th rowspan="3">No</th>
|
||||
<th rowspan="3">Kode</th>
|
||||
<th rowspan="3">Nama Regu</th>
|
||||
<th colspan="5">Laporan</th>
|
||||
<th colspan="7">Rating</th>
|
||||
<th colspan="2">Non Rating</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th rowspan="2">Total</th>
|
||||
<th colspan="2">Belum Selesai</th>
|
||||
<th colspan="2">Sudah Selesai</th>
|
||||
<th colspan="7">Bintang</th>
|
||||
<th rowspan="2">Jml</th>
|
||||
<th rowspan="2">%</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Jml</th>
|
||||
<th>%</th>
|
||||
<th>Jml</th>
|
||||
<th>%</th>
|
||||
<th>Jml</th>
|
||||
<th>1</th>
|
||||
<th>2</th>
|
||||
<th>3</th>
|
||||
<th>4</th>
|
||||
<th>5</th>
|
||||
<th>Index</th>
|
||||
</tr>
|
||||
</thead>
|
||||
`;
|
||||
var body = `
|
||||
<table border=0 style="border:none">
|
||||
<tr>
|
||||
<td colspan="3"> ${company.toUpperCase()}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> Unit Induk Distribusi/Wilayah </td>
|
||||
<td>:</td>
|
||||
<td> ${reportMeta.uid
|
||||
? reportMeta.uid.name.toUpperCase()
|
||||
: 'Semua Unit Induk Distribusi/Wilayah'.toUpperCase()}</td>
|
||||
<tr>
|
||||
<td> Unit Pelaksanaan Pelayanan Pelanggan</td>
|
||||
<td>:</td>
|
||||
<td> ${reportMeta.up3
|
||||
? reportMeta.up3.name.toUpperCase()
|
||||
: 'Semua Unit Pelaksanaan Pelayanan Pelanggan'.toUpperCase()}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> Posko</td>
|
||||
<td>:</td>
|
||||
<td> ${reportMeta.posko ? reportMeta.posko.name.toUpperCase() : 'Semua Posko'.toUpperCase()}</td>
|
||||
</tr>
|
||||
</table>
|
||||
<center><h6>${filename.toUpperCase()}</h6></center>
|
||||
<center><h6>Periode : ${periode.dateFromFormat} s/d ${periode.dateToFormat} (${periode.dayTo})<h6></center>
|
||||
<table class="main">
|
||||
${columnHeader}
|
||||
<tbody>
|
||||
${tbody}
|
||||
</tbody>
|
||||
</table>
|
||||
`
|
||||
|
||||
var postHtml = "</div></body></html>";
|
||||
|
||||
var html = preHtml + body + postHtml;
|
||||
|
||||
var url =
|
||||
"data:application/vnd.ms-word;charset=utf-8," + encodeURIComponent(html);
|
||||
|
||||
filename = filename ? filename + ".doc" : "document.doc";
|
||||
|
||||
var downloadLink = document.createElement("a");
|
||||
|
||||
document.body.appendChild(downloadLink);
|
||||
|
||||
downloadLink.href = url;
|
||||
|
||||
downloadLink.download = filename;
|
||||
|
||||
downloadLink.click();
|
||||
|
||||
document.body.removeChild(downloadLink);
|
||||
}
|
||||
|
||||
const exportDetailToWord = (reportMeta: any, rawData: any, filename: any, periode: any) => {
|
||||
var preHtml = `<html xmlns:o='urn:schemas-microsoft-com:office:office' xmlns:w='urn:schemas-microsoft-com:office:word' xmlns='http://www.w3.org/TR/REC-html40'><head><meta charset='utf-8'><title>${filename}</title>
|
||||
<style type="text/css" media="print">
|
||||
@page Section1 {
|
||||
size:841.95pt 21.0cm;
|
||||
mso-page-orientation:landscape;
|
||||
margin:72.0pt 72.0pt 72.0pt 72.0pt;
|
||||
mso-header-margin:35.4pt;
|
||||
mso-footer-margin:35.4pt;
|
||||
mso-paper-source:0;
|
||||
}
|
||||
@page{
|
||||
size: landscape;
|
||||
font-size: 5px;
|
||||
}
|
||||
div.Section1 {
|
||||
page:Section1;
|
||||
}
|
||||
table.main {
|
||||
border-collapse: collapse;
|
||||
width: 100%;
|
||||
text-transform: uppercase;
|
||||
font-size: 8px;
|
||||
}
|
||||
table.main thead tr {
|
||||
background-color: #c0c0c0;
|
||||
}
|
||||
</style>
|
||||
</head><body>
|
||||
<div class="Section1">
|
||||
`;
|
||||
var tbody = ``;
|
||||
var cr = ``;
|
||||
rawData.map((item: any, i: any) => {
|
||||
cr += '<tr>';
|
||||
cr += `<td>${i + 1}</td>`;
|
||||
cr += `<td>${item.no_laporan}</td>`;
|
||||
cr += `<td>${numberToStars(item.nilai_rating)}</td>`;
|
||||
cr += `<td>${item.waktu_lapor}</td>`;
|
||||
cr += `<td>${item.waktu_response}</td>`;
|
||||
cr += `<td>${item.waktu_recovery}</td>`;
|
||||
cr += `<td>${item.durasi_response_time}</td>`;
|
||||
cr += `<td>${item.durasi_recovery_time}</td>`;
|
||||
cr += `<td>${item.status_akhir}</td>`;
|
||||
cr += `<td>${item.referensi_marking}</td>`;
|
||||
cr += `<td>${item.idpel_nometer}</td>`;
|
||||
cr += `<td>${item.nama_pelapor}</td>`;
|
||||
cr += `<td>${item.alamat_pelapor}</td>`;
|
||||
cr += `<td>${item.no_telp_pelapor}</td>`;
|
||||
cr += `<td>${item.keterangan_pelapor}</td>`;
|
||||
cr += `<td>${item.nama_posko}</td>`;
|
||||
cr += `<td>${item.tindakan}</td>`;
|
||||
cr += `<td>${item.penyebab}</td>`;
|
||||
cr += '</tr>';
|
||||
});
|
||||
tbody += cr;
|
||||
|
||||
var body = `
|
||||
<table border=0 style="border:none">
|
||||
<tr>
|
||||
<td colspan="3"> ${company.toUpperCase()}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> Unit Induk Distribusi/Wilayah </td>
|
||||
<td>:</td>
|
||||
<td> ${reportMeta.uid
|
||||
? reportMeta.uid.name.toUpperCase()
|
||||
: 'Semua Unit Induk Distribusi/Wilayah'.toUpperCase()}</td>
|
||||
<tr>
|
||||
<td> Unit Pelaksanaan Pelayanan Pelanggan</td>
|
||||
<td>:</td>
|
||||
<td> ${reportMeta.up3
|
||||
? reportMeta.up3.name.toUpperCase()
|
||||
: 'Semua Unit Pelaksanaan Pelayanan Pelanggan'.toUpperCase()}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> Posko</td>
|
||||
<td>:</td>
|
||||
<td> ${reportMeta.posko ? reportMeta.posko.name.toUpperCase() : 'Semua Posko'.toUpperCase()}</td>
|
||||
</tr>
|
||||
</table>
|
||||
<center><h6>${filename.toUpperCase()}</h6></center>
|
||||
<center><h6>Periode : ${periode.dateFromFormat} s/d ${periode.dateToFormat} (${periode.dayTo})<h6></center>
|
||||
<table class="main">
|
||||
<thead>
|
||||
<tr>
|
||||
<td>No</td>
|
||||
<td>No Laporan</td>
|
||||
<td>Rating</td>
|
||||
<td>Tgl Lapor</td>
|
||||
<td>Tgl Datang</td>
|
||||
<td>Tgl Nyala</td>
|
||||
<td>Durasi Response Time</td>
|
||||
<td>Durasi Recovery Time</td>
|
||||
<td>Status</td>
|
||||
<td>Referensi Marking</td>
|
||||
<td>IDPEL/NO METER</td>
|
||||
<td>Nama Pelapor</td>
|
||||
<td>Alamat Pelapor</td>
|
||||
<td>No Telp Pelapor</td>
|
||||
<td>Keterangan Pelapor</td>
|
||||
<td>Posko</td>
|
||||
<td>Tindakan</td>
|
||||
<td>Penyebab</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
${tbody}
|
||||
</tbody>
|
||||
</table>
|
||||
`
|
||||
|
||||
var postHtml = "</div></body></html>";
|
||||
|
||||
var html = preHtml + body + postHtml;
|
||||
|
||||
var url =
|
||||
"data:application/vnd.ms-word;charset=utf-8," + encodeURIComponent(html);
|
||||
|
||||
filename = filename ? filename + ".doc" : "document.doc";
|
||||
|
||||
var downloadLink = document.createElement("a");
|
||||
|
||||
document.body.appendChild(downloadLink);
|
||||
|
||||
downloadLink.href = url;
|
||||
|
||||
downloadLink.download = filename;
|
||||
|
||||
downloadLink.click();
|
||||
|
||||
document.body.removeChild(downloadLink);
|
||||
}
|
||||
|
||||
export { exportToWord, exportDetailToWord }
|
Reference in New Issue
Block a user