Nobile Bureau
Nobile Bureau - Portal AI Legal Somasi & Feedback Tracking
Nobile Bureau Logo

Nobile Bureau

Portal AI Legal Somasi & Feedback Tracking

Ketentuan Layanan Somasi Nobile Bureau (Test Mode):

  • Biaya pengujian / test mode: Rp 1.000.
  • Dikenakan Success Fee maksimal 10% dari dana yang berhasil ditagihkan/dibayarkan debitur.
  • Surat somasi yang sah dikirimkan ke debitur hanya jika Surat Kuasa & Dokumen Pendukung telah lengkap dikirimkan via Google Doc serta disetujui pengacara.
  • Dana yang sudah di bayarkan tidak dapat di kembalikan dalam bentuk apapun.
  • Dengan mengklik berarti anda menyetujui layanan dan ketentuan dari Nobile Bureau.
"; const sourceHTML = header + currentGeneratedHTML + footer;const source = 'data:application/vnd.ms-word;charset=utf-8,' + encodeURIComponent(sourceHTML); const fileDownload = document.createElement("a"); document.body.appendChild(fileDownload); fileDownload.href = source; fileDownload.download = 'Surat_Somasi_Nobile_Bureau.doc'; fileDownload.click(); document.body.removeChild(fileDownload); }function printResult() { if(!currentGeneratedHTML) { alert('Silakan generate draf terlebih dahulu.'); return; } let printWindow = window.open('', '', 'height=700,width=900'); printWindow.document.write('Cetak Surat Somasi'); printWindow.document.write(currentGeneratedHTML); printWindow.document.write(''); printWindow.document.close(); printWindow.print(); }function renderClientTracking() { const container = document.getElementById('client-tracking-list'); let submissions = JSON.parse(localStorage.getItem('nobile_submissions') || '[]'); const isAdmin = ADMIN_EMAILS.includes(currentUser.email) || currentUser.role === 'admin' || currentUser.username === 'admin'; if(!isAdmin) { submissions = submissions.filter(s => s.clientUser === currentUser.username); }if(submissions.length === 0) { container.innerHTML = `
Belum ada riwayat somasi dan feedback yang aktif.
`; return; }let html = ''; submissions.forEach(sub => { let statusColor = 'bg-amber-100 text-amber-800'; if(sub.status.includes('Selesai') || sub.status.includes('Lunas')) statusColor = 'bg-green-100 text-green-800'; else if(sub.status.includes('Dikirim')) statusColor = 'bg-blue-100 text-blue-800'; else if(sub.status.includes('Feedback') || sub.status.includes('Di-ACC')) statusColor = 'bg-purple-100 text-purple-800';let docsComplete = sub.docs && sub.docs.ktpKlien && sub.docs.ktpDebitur && sub.docs.buktiPendukung; let docsBadge = docsComplete ? ' Lengkap (Google Doc Terkirim)' : ' Belum Lengkap (Wajib Kirim 3 Dokumen)';html += `
Tergugat: ${sub.targetName} (${sub.targetAddress})
${sub.status}
Detail Kasus Anda:

${sub.details}

Status Dokumen Persyaratan: ${docsBadge}
${docsComplete ? `
1. KTP Klien: Link KTP Klien
2. KTP Debitur: Link KTP Debitur
3. Bukti Pendukung: Link Bukti
` : ''}
Dikirim pada: ${sub.date}
Feedback / Tanggapan Lawyer Nobile:

${sub.lawyerNotes}

Biaya Test Mode: Rp 1.000 + Success Fee maks 10% dari dana tertagih.
`; }); container.innerHTML = html; }let activeDocSubmissionId = null;function openDocModal(id) { activeDocSubmissionId = id; let submissions = JSON.parse(localStorage.getItem('nobile_submissions') || '[]'); let sub = submissions.find(s => s.id === id); if(sub && sub.docs) { document.getElementById('doc-ktp-klien').value = sub.docs.ktpKlien || ''; document.getElementById('doc-ktp-debitur').value = sub.docs.ktpDebitur || ''; document.getElementById('doc-bukti').value = sub.docs.buktiPendukung || ''; } document.getElementById('doc-submission-modal').classList.remove('hidden'); }function closeDocModal() { document.getElementById('doc-submission-modal').classList.add('hidden'); activeDocSubmissionId = null; }function saveClientDocuments(e) { e.preventDefault(); if(!activeDocSubmissionId) return;let ktpKlien = document.getElementById('doc-ktp-klien').value.trim(); let ktpDebitur = document.getElementById('doc-ktp-debitur').value.trim(); let buktiPendukung = document.getElementById('doc-bukti').value.trim();let submissions = JSON.parse(localStorage.getItem('nobile_submissions') || '[]'); let idx = submissions.findIndex(s => s.id === activeDocSubmissionId); if(idx !== -1) { submissions[idx].docs = { ktpKlien, ktpDebitur, buktiPendukung }; submissions[idx].docsStatus = 'Lengkap'; if(submissions[idx].status.includes('Menunggu Verifikasi')) { submissions[idx].status = '🔍 Draf Direviu & Dianalisis Lawyer (Menunggu ACC)'; } localStorage.setItem('nobile_submissions', JSON.stringify(submissions)); alert('Dokumen persyaratan Google Doc berhasil dikirimkan ke Nobile Bureau secara real-time!'); closeDocModal(); renderClientTracking(); } }function previewSavedDraft(id) { let submissions = JSON.parse(localStorage.getItem('nobile_submissions') || '[]'); let sub = submissions.find(s => s.id === id); if(sub) { currentGeneratedHTML = sub.htmlContent; switchAppView('generator'); document.getElementById('result-container').innerHTML = sub.htmlContent; } }function renderLawyerClientsTable() { const tbody = document.getElementById('lawyer-clients-table-body'); const badge = document.getElementById('total-clients-badge'); let users = JSON.parse(localStorage.getItem('nobile_users') || '[]'); let clients = users.filter(u => u.role !== 'admin');badge.innerText = clients.length + ' Klien';if(clients.length === 0) { tbody.innerHTML = `Belum ada klien terdaftar.`; return; }let html = ''; clients.forEach((c) => { html += `
${c.fullname || c.username}
@${c.username}
${c.email} `; }); tbody.innerHTML = html; }function lawyerResetPassword(username) { let users = JSON.parse(localStorage.getItem('nobile_users') || '[]'); let idx = users.findIndex(u => u.username === username); if(idx !== -1) { const newPass = Math.random().toString(36).slice(-8); users[idx].password = newPass; localStorage.setItem('nobile_users', JSON.stringify(users));alert(`BERHASIL RESET PASSWORD!\n\nAkun: ${users[idx].fullname} (@${users[idx].username})\nEmail: ${users[idx].email}\n\nPassword Baru: [ ${newPass} ]\n\n(Silakan beritahukan password baru ini kepada klien melalui WhatsApp / Email).`); renderLawyerClientsTable(); } }function renderLawyerDashboard() { renderLawyerClientsTable();const tbody = document.getElementById('lawyer-table-body'); const badge = document.getElementById('total-submissions-badge'); let submissions = JSON.parse(localStorage.getItem('nobile_submissions') || '[]'); badge.innerText = submissions.length + ' Kasus Masuk';if(submissions.length === 0) { tbody.innerHTML = `Belum ada draf somasi yang masuk untuk ditinjau.`; return; }let html = ''; submissions.forEach(sub => { let statusColor = 'bg-amber-100 text-amber-800'; if(sub.status.includes('Selesai') || sub.status.includes('Lunas')) statusColor = 'bg-green-100 text-green-800'; else if(sub.status.includes('Dikirim')) statusColor = 'bg-blue-100 text-blue-800'; else if(sub.status.includes('Feedback') || sub.status.includes('Di-ACC')) statusColor = 'bg-purple-100 text-purple-800';let docsComplete = sub.docs && sub.docs.ktpKlien && sub.docs.ktpDebitur && sub.docs.buktiPendukung; let docStatusText = docsComplete ? ' Google Doc Lengkap' : ' Belum Lengkap';html += `
${sub.clientName}
${sub.date}
${sub.targetName}
${sub.targetAddress}
${sub.details}
${sub.status}
Dokumen: ${docStatusText}
`; }); tbody.innerHTML = html; }function openLawyerModal(id) { let submissions = JSON.parse(localStorage.getItem('nobile_submissions') || '[]'); let sub = submissions.find(s => s.id === id); if(sub) { activeModalSubmissionId = id; document.getElementById('modal-update-status').value = sub.status; document.getElementById('modal-lawyer-notes').value = sub.lawyerNotes !== 'Belum ada tanggapan feedback dari lawyer.' ? sub.lawyerNotes : ''; document.getElementById('modal-draft-preview').innerHTML = sub.htmlContent; let docsBox = document.getElementById('modal-docs-info'); if(sub.docs && (sub.docs.ktpKlien || sub.docs.ktpDebitur || sub.docs.buktiPendukung)) { docsBox.innerHTML = ` `; } else { docsBox.innerHTML = `Klien belum mengirimkan tautan dokumen Google Doc.`; }document.getElementById('lawyer-action-modal').classList.remove('hidden'); } }function closeLawyerModal() { document.getElementById('lawyer-action-modal').classList.add('hidden'); activeModalSubmissionId = null; }function saveLawyerUpdate() { if(!activeModalSubmissionId) return;let newStatus = document.getElementById('modal-update-status').value; let newNotes = document.getElementById('modal-lawyer-notes').value || 'Test Mode catatan feedback tambahan.';let submissions = JSON.parse(localStorage.getItem('nobile_submissions') || '[]'); let idx = submissions.findIndex(s => s.id === activeModalSubmissionId); if(idx !== -1) { submissions[idx].status = newStatus; submissions[idx].lawyerNotes = newNotes; localStorage.setItem('nobile_submissions', JSON.stringify(submissions)); alert('Feedback dan tracking progress berhasil diperbarui secara live!'); closeLawyerModal(); renderLawyerDashboard(); } }window.onload = function() { if(localStorage.getItem('nobile_session')) { initApp(); } }