import { numberToStars } from '@/report/utils/rating' const company = 'PT. PLN (Persero)' const exportToWord = (reportMeta: any, rawData: any, filename: any, periode: any) => { 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() var preHtml = `${filename}
` var tbody = '' for (let index = 0; index < rawData.length; index++) { const element = rawData[index] var column = '' let styleTotal = '' for (let i = 0; i < element.length; i++) { const content = element[i] const colSpan = content?.colSpan !== undefined ? `colspan="${content.colSpan}"` : '' if (content && (content.content === 'TOTAL' || content.content === 'GRAND TOTAL')) { styleTotal = 'style="background-color: #c0c0c0; font-weight: bold;"' } i === 0 ? (column += `${content.content}`) : (column += `${content}`) } column += '' tbody += column } var columnHeader = ` No Kode Nama Regu Laporan Rating Non Rating Total Belum Selesai Sudah Selesai Bintang Jml % Jml % Jml % Jml 1 2 3 4 5 Index ` var body = `
${company.toUpperCase()}
Unit Induk Distribusi/Wilayah : ${ reportMeta.uid ? reportMeta.uid.name.toUpperCase() : 'Semua Unit Induk Distribusi/Wilayah'.toUpperCase() }
Unit Pelaksanaan Pelayanan Pelanggan : ${ reportMeta.up3 ? reportMeta.up3.name.toUpperCase() : 'Semua Unit Pelaksanaan Pelayanan Pelanggan'.toUpperCase() }
Posko : ${reportMeta.posko ? reportMeta.posko.name.toUpperCase() : 'Semua Posko'.toUpperCase()}
${filename.toUpperCase()}
Periode : ${periode.dateFromFormat} s/d ${periode.dateToFormat} (${periode.dayTo})
${columnHeader} ${tbody}
` var postHtml = `
` 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) => { 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() var preHtml = `${filename}
` var tbody = `` var cr = `` rawData.map((item: any, i: any) => { cr += '' cr += `${i + 1}` cr += `${item.no_laporan}` cr += `${numberToStars(item.nilai_rating)}` cr += `${item.waktu_lapor}` cr += `${item.waktu_response}` cr += `${item.waktu_recovery}` cr += `${item.durasi_response_time}` cr += `${item.durasi_recovery_time}` cr += `${item.status_akhir}` cr += `${item.referensi_marking}` cr += `${item.idpel_nometer}` cr += `${item.nama_pelapor}` cr += `${item.alamat_pelapor}` cr += `${item.no_telp_pelapor}` cr += `${item.keterangan_pelapor}` cr += `${item.nama_posko}` cr += `${item.tindakan}` cr += `${item.penyebab}` cr += '' }) tbody += cr var body = `
${company.toUpperCase()}
Unit Induk Distribusi/Wilayah : ${ reportMeta.uid ? reportMeta.uid.name.toUpperCase() : 'Semua Unit Induk Distribusi/Wilayah'.toUpperCase() }
Unit Pelaksanaan Pelayanan Pelanggan : ${ reportMeta.up3 ? reportMeta.up3.name.toUpperCase() : 'Semua Unit Pelaksanaan Pelayanan Pelanggan'.toUpperCase() }
Posko : ${reportMeta.posko ? reportMeta.posko.name.toUpperCase() : 'Semua Posko'.toUpperCase()}
${filename.toUpperCase()}
Periode : ${periode.dateFromFormat} s/d ${periode.dateToFormat} (${periode.dayTo})
${tbody}
No No Laporan Rating Tgl Lapor Tgl Datang Tgl Nyala Durasi Response Time Durasi Recovery Time Status Referensi Marking IDPEL/NO METER Nama Pelapor Alamat Pelapor No Telp Pelapor Keterangan Pelapor Posko Tindakan Penyebab
` var postHtml = `
` 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 }