const company = "PT. PLN (Persero)";
const exportToWord = (reportMeta: any, rawData: any, filename: any, periode: any) => {
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 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})
Nama Unit |
Total |
SELESAI |
% |
IN PROSES |
% |
DISPATCHING TIME |
RESPONSE TIME |
RECOVERY TIME |
RATA-RATA |
MAX |
MIN |
>SLA |
RATA-RATA |
MAX |
MIN |
>SLA |
RATA-RATA |
MAX |
MIN |
>SLA |
| | |
${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) => {
var preHtml = `${filename}
`;
var tbody = ``;
var cr = '';
rawData.map((item: any, i: any) => {
cr += `
`;
cr += `${i + 1} | `;
cr += `${item.nama_posko} | `;
cr += `${item.no_laporan} | `;
cr += `${item.waktu_lapor} | `;
cr += `${item.waktu_response} | `;
cr += `${item.waktu_recovery} | `;
cr += `${item.durasi_response_time} | `;
cr += `${item.durasi_recovery_time} | `;
cr += ` | `;
cr += ` | `;
cr += `${item.jarak_closing} | `;
cr += `${item.dispatch_oleh} | `;
cr += `${item.idpel_nometer} | `;
cr += `${item.nama_pelapor} | `;
cr += `${item.alamat_pelapor} | `;
cr += `${item.no_telp_pelapor} | `;
cr += `${item.keterangan_pelapor} | `;
cr += `${item.pembuat_laporan} | `;
cr += `${item.diselesaikan_oleh} | `;
cr += `${item.status_akhir} | `;
cr += `${item.referensi_marking} | `;
cr += `${item.kode_gangguan} | `;
cr += `${item.jenis_gangguan} | `;
cr += `${item.penyebab} | `;
cr += `${item.tindakan} | `;
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})
No |
Posko |
No Lapor |
Tgl/Jam Lapor |
Tgl/Jam Datang |
Tgl/Jam Nyala |
Durasi Response Time |
Durasi Recovery Time |
Durasi Penugasan Regu |
Durasi Perjalanan Regu |
Jarak Closing (m) |
Dispatch Oleh |
IDPEL/NO METER |
Nama Pelapor |
Alamat Pelapor |
No Telp Pelapor |
Keterangan Pelapor |
Sumber Lapor |
Diselesaikan Oleh |
Status |
Referensi Marking |
Kode Gangguan |
Jenis Gangguan |
Tindakan |
Penyebab |
${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);
}
export { exportToWord, exportDetailToWord }