import { formatWaktu } from '@/components/Form/FiltersType/reference'
export const exportToWord = (
rawMeta: any,
formattedMeta: any,
rawData: any,
reportName: String
) => {
const day = new Date().toLocaleString('id-ID', { weekday: 'long' })
const date = new Date().getDate()
const month = new Date().toLocaleString('id-ID', { month: 'long' })
const year = new Date().getFullYear()
const filename = 'Laporan ' + reportName + '.doc'
let tbody = ''
for (let index = 0; index < rawData.length; index++) {
const element = rawData[index]
let column = `
`
let styleTotal = ''
for (let i = 0; i < element.length; i++) {
const content = element[i]
const colSpan = content?.colSpan !== undefined ? `colspan="${content.colSpan}"` : ''
if (content && (content.content === 'TOTAL' || content.content === 'GRAND TOTAL')) {
styleTotal = 'style="background-color: #c0c0c0; font-weight: bold;"'
}
i === 0
? (column += `${content.content || content} | `)
: (column += `${content} | `)
}
column += `
`
tbody += column
}
let preHtml = `
${reportName}
`
const body = `
PT. PLN(Persero)
${reportName.toUpperCase()} |
${`PERIODE TANGGAL : ${formattedMeta.dateFromFormat} SD TGL ${formattedMeta.dateToFormat}`} |
Nama Unit |
Total WO |
Total Pengaduan Yang Diselesaikan Secara Anomali |
% Pengaduan Yang Diselesaikan Secara Anomali |
CC 123 |
PLN Mobile |
Loket |
Lainnya |
Total |
PLN Mobile |
CC 123 |
Total |
PLN Mobile |
CC 123 |
Total |
a |
b |
c |
d |
e=a+b+c+d |
f |
g |
h=f+g |
i=f/e |
j=g/e |
k=i+j |
${tbody}
`
const postHtml = ''
const html = preHtml + body + postHtml
const url = 'data:application/vnd.ms-word;charset=utf-8,' + encodeURIComponent(html)
const downloadLink = document.createElement('a')
document.body.appendChild(downloadLink)
downloadLink.href = url
downloadLink.download = filename
downloadLink.click()
document.body.removeChild(downloadLink)
}
export const exportDetailToWord = (formattedMeta: any, rawData: any, reportName: String) => {
const day = new Date().toLocaleString('id-ID', { weekday: 'long' })
const date = new Date().getDate()
const month = new Date().toLocaleString('id-ID', { month: 'long' })
const year = new Date().getFullYear()
const filename = 'Laporan Detail ' + reportName + '.doc'
let preHtml = `
Daftar Detail ${reportName}
`
const body = `
PT. PLN(Persero)
${'DAFTAR DETAIL ' + reportName.toUpperCase()} |
${`PERIODE TANGGAL : ${formattedMeta.dateFromFormat} SD TGL ${formattedMeta.dateToFormat}`} |
No |
UIW/D |
UP3 |
Rayon |
No Laporan |
No Laporan Referensi |
Tgl Lapor |
Dalam Proses Bidang |
Selesai Bidang Unit |
Durasi Response Time |
Durasi Recovery Time |
Status |
IDPEL/NO METER |
Nama Pelapor |
Alamat Pelapor |
No Telp Pelapor |
Keterangan Pelapor |
Uraian |
Response Pelanggan |
${rawData
.map(
(item: any, i: any) => `
${i + 1} |
${item.nama_uid} |
${item.nama_up3} |
${item.nama_ulp} |
${item.no_laporan} |
${item.referensi_marking} |
${item.waktu_lapor} |
${item.waktu_response} |
${item.waktu_recovery} |
${item.durasi_response_time ? formatWaktu(item.durasi_response_time) : '-'} |
${item.durasi_recovery_time ? formatWaktu(item.durasi_recovery_time) : '-'} |
${item.status_akhir} |
${item.idpel_nometer} |
${item.nama_pelapor} |
${item.alamat_pelapor} |
${item.no_telp_pelapor} |
${item.keterangan_pelapor} |
${item.uraian} |
${item.respon_pelanggan} |
`
)
.join('')}
`
const postHtml = ''
const html = preHtml + body + postHtml
const url = 'data:application/vnd.ms-word;charset=utf-8,' + encodeURIComponent(html)
const downloadLink = document.createElement('a')
document.body.appendChild(downloadLink)
downloadLink.href = url
downloadLink.download = filename
downloadLink.click()
document.body.removeChild(downloadLink)
}