GovDocs AI Malaysia | TNT Document Generator - Cross Browser Fixed v13
G
GovDocs AI Malaysia
TNT Document Generator • Auto Save • Final Error-Fixed
Disimpan secara automatik
WP1.4 • Tuntutan Perjalanan • Kenderaan Sendiri • Lampiran A

Generator Dokumen TNT Dengan Kotak, Jadual & Preview A4.

Isi maklumat sekali sahaja. Sistem akan susun semula kepada borang tuntutan perjalanan, kenyataan tuntutan, borang kebenaran menggunakan kenderaan sendiri dan Lampiran A bertugas luar pejabat.

1Maklumat Pegawai
Isi maklumat pegawai.
2Maklumat Tuntutan & Kenderaan
Kadar Elaun Kenderaan
3Senarai Perjalanan Rasmi
Isi satu perjalanan rasmi bagi setiap rekod.
4Elaun, Penginapan & Belanja Lain
Kemudahan Makan Minum
Kemudahan Penginapan
Tambang Pengangkutan Awam
Kemudahan Lain
5Prompt AI Sokongan
Jana dan salin prompt jika diperlukan.
Preview Dokumen A4 Portrait
Klik “Cetak / Simpan PDF” dan pilih Save as PDF. Format kotak dijana melalui HTML/CSS.
Disimpan
'; try{ const blob=new Blob([html],{type:'text/html'}); const url=URL.createObjectURL(blob); const a=document.createElement('a'); a.href=url; a.download='dokumen-tnt-print-ready.html'; document.body.appendChild(a); a.click(); setTimeout(()=>{document.body.removeChild(a);URL.revokeObjectURL(url);},200); }catch(e){showToast('Muat turun gagal: '+e.message);} } function generatePrompt(){ var nl='\n'; var tripData=state.trips.map(function(t){return { tarikhPermohonan:t.tarikhMohon, lokasiDaripada:tripOrigin(t), tarikhPerjalananPergi:tripDateGo(t), masaBertolakPergi:timeDisplay(tripGoDepart(t)), masaTibaPergi:timeDisplay(tripGoArrive(t)), tarikhPerjalananBalik:tripDateBack(t), masaBertolakBalik:timeDisplay(tripBackDepart(t)), masaTibaBalik:timeDisplay(tripBackArrive(t)), tarikhTugasUrusanRasmi:tripTaskDate(t), tempatBertugas:tripPlace(t), tugasUrusanRasmi:upper(t.tugasan), kenderaan:tripVehicle(t), jarakPergiKm:tripKmGo(t), jarakBalikKm:tripKmBack(t), jumlahKm:tripKm(t), suratArahanLampiran:t.suratArahan, noFailRujukan:t.noFail };}); var text='Bertindak sebagai pembantu penyedia dokumen tuntutan perjalanan rasmi kerajaan Malaysia. Sediakan kandungan tuntutan perjalanan rasmi berdasarkan maklumat yang diberikan. Gunakan bahasa rasmi kerajaan Malaysia, jangan mereka-reka maklumat, dan kekalkan susunan borang WP1.4, Permohonan Kebenaran Menggunakan Kenderaan Sendiri serta Lampiran A. Semua helaian output hendaklah A4 Portrait.'+nl+nl +'ARAHAN OUTPUT WAJIB'+nl +'1. Jana Kenyataan Tuntutan mengikut kolum Tarikh, Waktu Bertolak, Waktu Tiba, Butiran Tuntutan dan Jarak (km).'+nl +'2. Gunakan satu rekod untuk satu perjalanan rasmi, dengan ayat PERGI dan BALIK dalam Butiran Tuntutan.'+nl +'3. Ayat PERGI: "Perjalanan PERGI daripada LOKASI DARIPADA ke TEMPAT BERTUGAS bagi menghadiri TUGAS / URUSAN RASMI pada TARIKH TUGAS menaiki KENDERAAN."'+nl +'4. Ayat BALIK: "Perjalanan BALIK daripada TEMPAT BERTUGAS ke LOKASI DARIPADA menaiki KENDERAAN."'+nl +'5. Hanya PERGI/BALIK, lokasi, tempat bertugas, tugas/urusan rasmi, tarikh tugas dan kenderaan diboldkan dalam huruf besar.'+nl +'6. Jana jumlah kilometer bagi setiap perjalanan dan jumlah keseluruhan kilometer.'+nl +'7. Jana kandungan Bahagian A, B, C dan D tanpa membuang seksyen rasmi walaupun nilai kosong.'+nl +'8. Jana kandungan Permohonan Kebenaran Menggunakan Kenderaan Sendiri bagi setiap perjalanan kenderaan sendiri.'+nl +'9. Jana kandungan Lampiran A Permohonan Bertugas Di Luar Pejabat bagi setiap perjalanan.'+nl +'10. Jana teks Pengakuan dan Pengesahan.'+nl +'11. Semak konsistensi tarikh, hari, masa, lokasi, tujuan, jarak, jumlah kilometer dan dokumen sokongan.'+nl +'12. Senaraikan maklumat yang masih kosong atau perlu disemak oleh pengguna.'+nl+nl +'MAKLUMAT PEGAWAI'+nl+JSON.stringify(state.pegawai,null,2)+nl+nl +'MAKLUMAT TUNTUTAN'+nl+JSON.stringify(state.claim,null,2)+nl+nl +'KENDERAAN UTAMA'+nl+JSON.stringify(state.vehicle,null,2)+nl+nl +'SENARAI PERJALANAN RASMI'+nl+JSON.stringify(tripData,null,2)+nl+nl +'ELAUN DAN KEMUDAHAN LAIN'+nl+JSON.stringify({allowance:state.allowance,misc:state.misc},null,2)+nl+nl +'KIRAAN'+nl +'Jumlah KM: '+km(totalKm())+' km'+nl +'Elaun Kenderaan: '+money(vehicleAllowance())+nl +'Tambang Pengangkutan Awam: '+money(publicTransportTotal())+nl +'Elaun Makan/Harian: '+money(mealAllowance())+nl +'Penginapan/Lojing: '+money(lodgingAllowance())+nl +'Kemudahan Lain: '+money(miscTotal())+nl +'Jumlah Keseluruhan: '+money(grandTotal()); var out=document.getElementById('promptOutput'); out.style.display='block'; out.value=text; showToast('Prompt dijana'); } async function copyPrompt(){ generatePrompt(); const text=document.getElementById('promptOutput').value; if(navigator.clipboard && navigator.clipboard.writeText){ try{ await navigator.clipboard.writeText(text); showToast('Prompt disalin'); return; }catch(e){} } // Fallback for Edge/older browsers try{ const ta=document.createElement('textarea'); ta.value=text; ta.style.cssText='position:fixed;top:0;left:0;opacity:0;'; document.body.appendChild(ta); ta.focus(); ta.select(); document.execCommand('copy'); document.body.removeChild(ta); showToast('Prompt disalin'); }catch(e){showToast('Sila salin manual');} } function initDefaults(){if(!state.claim.tarikhPengakuan)state.claim.tarikhPengakuan=todayIso();if(!state.claim.tarikhPengesahan)state.claim.tarikhPengesahan='';if(!state.claim.bulan){const d=new Date();state.claim.bulan=d.getFullYear()+'-'+String(d.getMonth()+1).padStart(2,'0');}if(!state.rates.kmPertama)state.rates.kmPertama=500;if(state.rates.kadarPertama===undefined)state.rates.kadarPertama=0.90;if(state.rates.kadarSeterusnya===undefined)state.rates.kadarSeterusnya=0.80;if(!state.vehicle.sebab)state.vehicle.sebab='KENDERAAN TIDAK DISEDIAKAN';if(!state.misc.catatan)state.misc.catatan='SEPERTI DI LAMPIRAN';} function boot(){loadSaved();initDefaults();bindInputs();renderTripForms();render();setInterval(()=>saveNow(false),30000);}boot(); //]]>