# MANUAL PENGGUNA SIPIUTANG

**Sistem Informasi Piutang, Average Collection Period, Monitoring Penagihan, dan Pelaporan Keuangan Fleksibel**
Versi 1.0.0 — PT Roto-Rooter Indonesia

---

## Daftar Isi

1. [Pengenalan Sistem](#1-pengenalan-sistem)
2. [Masuk ke Sistem](#2-masuk-ke-sistem)
3. [Mengenal Antarmuka](#3-mengenal-antarmuka)
4. [Dashboard](#4-dashboard)
5. [Modul Piutang](#5-modul-piutang)
6. [Aging Piutang](#6-aging-piutang)
7. [Kartu Piutang per Customer](#7-kartu-piutang-per-customer)
8. [ACP / Kinerja Penagihan](#8-acp--kinerja-penagihan)
9. [Perkiraan Penerimaan Kas](#9-perkiraan-penerimaan-kas)
10. [Kualitas Data](#10-kualitas-data)
11. [Invoice](#11-invoice)
12. [Pembayaran](#12-pembayaran)
13. [Penagihan (Collection)](#13-penagihan-collection)
14. [Revisi Invoice (RF)](#14-revisi-invoice-rf)
15. [Nota Kredit](#15-nota-kredit)
16. [Import Data Excel](#16-import-data-excel)
17. [Laporan Siap Pakai](#17-laporan-siap-pakai)
18. [Pembuat Laporan Fleksibel](#18-pembuat-laporan-fleksibel)
19. [Data Master](#19-data-master)
20. [Persetujuan](#20-persetujuan)
21. [Pengguna & Hak Akses](#21-pengguna--hak-akses)
22. [Log Aktivitas](#22-log-aktivitas)
23. [Pengaturan](#23-pengaturan)
24. [Pencadangan Data](#24-pencadangan-data)
25. [Aturan Perhitungan yang Dipakai Sistem](#25-aturan-perhitungan-yang-dipakai-sistem)
26. [Pertanyaan yang Sering Diajukan](#26-pertanyaan-yang-sering-diajukan)

---

## 1. Pengenalan Sistem

SIPIUTANG menggantikan pengelolaan piutang berbasis workbook Excel dengan sistem berbasis web
yang dapat diakses banyak pengguna secara bersamaan. Perbedaan mendasarnya:

| Aspek | Excel Lama | SIPIUTANG |
|---|---|---|
| Perhitungan umur piutang | Rumus di dalam sel, mudah rusak | Dihitung ulang oleh server memakai aturan baku |
| Pembayaran | Kolom nominal tunggal | Tabel transaksi tersendiri (bisa bertahap, DP, retensi, refund) |
| Revisi invoice (RF) | Lembar terpisah, berisiko pendapatan terhitung dua kali | Tautan lama–baru otomatis, pendapatan hanya dihitung sekali |
| Aging | Bucket tetap 0–45/46–90/91–120/>120 | Bucket tersebut tetap tersedia, ditambah bucket yang dapat dikonfigurasi |
| Hak akses | Siapa pun yang punya berkas | 6 peran, 99 hak akses, pembatasan data per pengguna |
| Jejak audit | Tidak ada | Setiap perubahan tercatat beserta nilai lama dan nilai baru |
| Laporan | Manual dengan pivot | 25 laporan siap pakai + pembuat laporan fleksibel |

**Prinsip penting:** sistem **tidak pernah mempercayai** kolom hasil rumus dari Excel.
Setiap nilai turunan (DPP, PPN, potongan, nilai bersih, saldo, umur piutang, status pembayaran)
dihitung ulang oleh server dari data mentah.

---

## 2. Masuk ke Sistem

1. Buka alamat sistem di peramban, misalnya `https://piutang.perusahaan.co.id`.
2. Masukkan **nama pengguna** dan **kata sandi**, lalu klik **Masuk**.
3. Pada login pertama, sistem meminta Anda mengganti kata sandi. Kata sandi baru harus:
   - minimal 8 karakter;
   - memuat huruf besar, huruf kecil, dan angka;
   - berbeda dari kata sandi lama.

**Keamanan login:**

- Setelah 5 kali gagal berturut-turut, akun terkunci selama 15 menit (dapat diubah di Pengaturan → Keamanan).
- Sesi berakhir otomatis setelah 30 menit tanpa aktivitas.
- Sistem mengikat sesi ke peramban Anda; membuka sesi yang sama dari perangkat lain akan ditolak.

**Keluar:** klik nama Anda di pojok kanan atas → **Keluar**.

**Lupa kata sandi:** hubungi administrator. Administrator dapat menyetel ulang kata sandi Anda
melalui menu Pengguna, dan sistem akan meminta Anda menggantinya saat login berikutnya.

---

## 3. Mengenal Antarmuka

```
┌─────────────────────────────────────────────────────────────┐
│  [Logo] SIPIUTANG        [Pencarian]      [Nama Anda ▾]     │  ← Bilah atas
├───────────────┬─────────────────────────────────────────────┤
│ Dashboard     │  Judul Halaman                              │
│ Piutang     ▸ │  Subjudul penjelas                          │
│ Invoice       │  ┌────────┬────────┬────────┬────────┐      │
│ Pembayaran    │  │ KPI 1  │ KPI 2  │ KPI 3  │ KPI 4  │      │
│ Penagihan   ▸ │  └────────┴────────┴────────┴────────┘      │
│ ...           │  [Filter]                    [Ekspor ▾]     │
│               │  ┌───────────────────────────────────┐      │
│  ← Menu       │  │ Tabel data                        │      │
│    samping    │  └───────────────────────────────────┘      │
└───────────────┴─────────────────────────────────────────────┘
```

**Yang perlu diketahui:**

- **Menu samping** hanya menampilkan modul yang boleh Anda akses. Bila sebuah menu tidak terlihat,
  peran Anda memang tidak memiliki haknya.
- **Bilah filter** ada di hampir setiap halaman daftar. Filter yang aktif ikut terbawa ke ekspor
  dan pencetakan — apa yang Anda lihat di layar itulah yang tercetak.
- **Tombol Ekspor** menyediakan Excel (.xlsx), CSV, PDF, dan Cetak.
- **Pengatur kolom** (ikon tabel) memungkinkan Anda menyembunyikan kolom. Pilihan ini tersimpan
  di peramban Anda sendiri.
- **Format angka**: Rupiah ditulis `Rp 1.250.000`, nilai negatif dalam kurung `(Rp 500.000)`,
  nol ditulis `-`. Tanggal ditulis `DD-MM-YYYY`. Zona waktu Asia/Jakarta.

**Arti warna indikator:**

| Warna | Makna |
|---|---|
| Hijau | Sehat / lunas / tepat waktu / di bawah target |
| Kuning | Perlu perhatian / mendekati jatuh tempo / mendekati batas target |
| Merah | Kritis / terlambat / melewati target |
| Abu-abu | Netral / tidak berlaku |

---

## 4. Dashboard

Halaman utama berisi ringkasan kondisi piutang secara menyeluruh.

**16 kartu KPI**, di antaranya:

| KPI | Arti |
|---|---|
| Total Tagihan Bruto | Seluruh nilai invoice sebelum potongan |
| Total Nilai Bersih | Bruto dikurangi PPh 23 dan potongan lain |
| Saldo Piutang | Nilai yang masih harus ditagih |
| Sudah Tertagih | Total pembayaran yang diterima |
| Persentase Tertagih | Tertagih ÷ nilai bersih |
| Piutang Jatuh Tempo | Saldo yang sudah melewati tanggal jatuh tempo |
| Piutang > 120 Hari | Saldo dalam bucket paling berisiko |
| ACP (hari) | Rata-rata lama penagihan pada periode berjalan |
| Jumlah Invoice Aktif | Invoice yang masih berstatus aktif |
| Rata-rata Nilai Invoice | Nilai bersih ÷ jumlah invoice |
| Customer Bersaldo | Jumlah customer yang masih memiliki saldo |
| Invoice Terlambat | Jumlah invoice melewati jatuh tempo |
| Perkiraan Kas 30 Hari | Estimasi penerimaan 30 hari ke depan |
| Total PPh 23 | Akumulasi potongan PPh 23 |
| Nota Kredit | Total nota kredit yang disetujui |
| Temuan Kualitas Data | Jumlah baris bermasalah yang perlu ditindaklanjuti |

**13 grafik**, meliputi: komposisi aging, tren saldo piutang bulanan, tren ACP, penagihan per area,
per unit bisnis, per sales, per kategori pekerjaan, 10 customer dengan saldo terbesar,
distribusi status pembayaran, perbandingan tagihan vs penerimaan, perkiraan kas mingguan,
umur piutang per area, dan realisasi terhadap target ACP.

**Cara memakai:**

- Klik segmen grafik atau angka KPI untuk melihat rincian invoicenya (drill-down).
- Gunakan **13 filter** di bagian atas (periode, area, unit bisnis, sales, petugas penagihan,
  customer, outlet, kategori & jenis pekerjaan, kategori pendapatan, status pembayaran,
  bucket aging, rentang nilai) untuk mempersempit seluruh dashboard sekaligus.
- Tombol **Ekspor** menyimpan seluruh angka dashboard sesuai filter yang sedang aktif.

---

## 5. Modul Piutang

**Menu: Piutang → Daftar Piutang**

Daftar seluruh invoice beserta saldonya. Ini adalah layar kerja harian bagian keuangan.

**Kolom utama:** nomor invoice, tanggal invoice, tanggal kirim, customer, outlet, area,
unit bisnis, sales, jatuh tempo, nilai bruto, PPh 23, potongan lain, nilai bersih,
terbayar, saldo, umur piutang, bucket aging, dan status pembayaran.

**Filter yang tersedia:** periode (tanggal invoice / kirim / jatuh tempo), status pembayaran,
area, unit bisnis, sales, petugas penagihan, customer, outlet, kategori & jenis pekerjaan,
rentang umur piutang, rentang nilai, ada/tidaknya faktur pajak, dan pencarian bebas.

**Kartu ringkasan** di atas tabel selalu menampilkan total dari **hasil filter**, bukan total
seluruh data — sehingga angka yang Anda lihat selalu konsisten dengan tabel di bawahnya.

**Tindakan:** klik nomor invoice untuk membuka rinciannya, atau centang beberapa baris untuk
tindakan massal (bila peran Anda mengizinkan).

---

## 6. Aging Piutang

**Menu: Piutang → Aging Piutang**

Mengelompokkan saldo piutang menurut umurnya.

**Bucket bawaan** (sesuai workbook Excel lama):

| Bucket | Rentang hari sejak jatuh tempo |
|---|---|
| 0–45 hari | sampai dengan 45 hari |
| 46–90 hari | 46 sampai 90 hari |
| 91–120 hari | 91 sampai 120 hari |
| > 120 hari | lebih dari 120 hari |

**Hal penting:** umur piutang dihitung terhadap **saldo yang masih terutang**, bukan terhadap
nilai invoice penuh. Invoice yang sudah lunas tidak lagi muncul dalam aging.

**Pengelompokan** dapat diubah ke 15 dimensi: area, unit bisnis, customer, outlet, sales,
petugas penagihan, kategori pekerjaan, jenis pekerjaan, kategori pendapatan, termin,
bulan invoice, bulan jatuh tempo, status pembayaran, saluran pengiriman, dan tanpa pengelompokan.

**Tanggal pelaporan** dapat dimundurkan untuk melihat posisi aging pada tanggal tertentu di masa lalu.

**Konfigurasi bucket lain** dapat dibuat di Pengaturan → Konfigurasi Bucket Aging, lalu dipilih
dari daftar di halaman ini. Total nilai selalu sama pada konfigurasi mana pun — yang berubah
hanya cara pengelompokannya.

**Drill-down:** klik angka pada sebuah bucket untuk melihat daftar invoice di dalamnya.

---

## 7. Kartu Piutang per Customer

**Menu: Piutang → Kartu Piutang**

Menampilkan posisi piutang satu customer secara lengkap dalam satu halaman:

- 6 kartu KPI: total tagihan, terbayar, saldo, saldo jatuh tempo, rata-rata hari penagihan, jumlah invoice;
- data master customer: NPWP, alamat penagihan, kontak, termin, batas kredit dan pemakaiannya;
- **skor risiko** customer (0–100) beserta faktor pembentuknya;
- grafik komposisi aging customer tersebut;
- lini masa aktivitas penagihan;
- tabel seluruh invoice beserta saldo;
- riwayat seluruh pembayaran.

Halaman ini cocok dicetak dan dilampirkan saat menagih atau saat rapat dengan customer.

---

## 8. ACP / Kinerja Penagihan

**Menu: Piutang → ACP / Kinerja**

*Average Collection Period* (ACP), sering disebut juga DSO, mengukur rata-rata lama piutang
tertagih. Sistem menyediakan **dua metode** karena keduanya menjawab pertanyaan berbeda.

### Metode 1 — Standar Finansial

```
ACP = (Rata-rata Piutang ÷ Penjualan Kredit Bersih) × Jumlah Hari Periode

Rata-rata Piutang = (Saldo Awal Periode + Saldo Akhir Periode) ÷ 2
```

Metode ini adalah standar akuntansi dan cocok untuk pelaporan ke manajemen atau pihak luar.
Kelebihannya: memperhitungkan seluruh piutang, termasuk yang belum dibayar sama sekali.

### Metode 2 — Operasional Penagihan

```
ACP = Rata-rata (Tanggal Bayar Terakhir − Tanggal Dasar) untuk invoice yang lunas pada periode
```

Metode ini mengukur kinerja nyata tim penagihan. Sistem menampilkan sekaligus:
rata-rata sederhana, rata-rata tertimbang nilai, median, tercepat, terlama,
persentase tepat waktu, persentase terlambat, dan rata-rata keterlambatan.

> **Catatan:** angka kedua metode akan berbeda, dan itu wajar. Metode 1 memperhitungkan piutang
> macet yang belum tertagih sehingga hasilnya lebih besar; metode 2 hanya melihat invoice
> yang benar-benar sudah lunas.

### Target dan indikator

Target ACP diatur di **ACP → Target ACP**, dan dapat ditetapkan per tahun, per bulan, serta
per lingkup (global, area, unit bisnis, sales, kategori pekerjaan, atau customer). Sistem
mencari target dari lingkup paling spesifik ke paling umum.

| Indikator | Kondisi |
|---|---|
| Hijau | ACP ≤ target |
| Kuning | target < ACP ≤ target + toleransi |
| Merah | ACP > target + toleransi |

### Analisis lain di halaman ini

- Tren ACP bulanan sepanjang tahun berjalan;
- Perbandingan bulan ini vs bulan lalu, kuartal ini vs kuartal lalu, dan YTD;
- ACP per area, unit bisnis, sales, kategori pekerjaan, dan customer.

---

## 9. Perkiraan Penerimaan Kas

**Menu: Piutang → Perkiraan Kas**

Memproyeksikan penerimaan kas beberapa minggu ke depan berdasarkan tanggal jatuh tempo
dan janji bayar yang tercatat.

Setiap kelompok diberi **bobot keyakinan** yang dapat diatur di Pengaturan → Penagihan:

| Kelompok | Bobot bawaan |
|---|---|
| Ada janji bayar | 90% |
| Belum jatuh tempo | 85% |
| Terlambat 1–30 hari | 70% |
| Terlambat 31–90 hari | 45% |
| Terlambat > 90 hari | 20% |

Perkiraan ditampilkan sebagai grafik gabungan (nominal per minggu dan akumulasi) serta tabel
rincian per minggu, ditambah tabel jatuh tempo per bulan.

---

## 10. Kualitas Data

**Menu: Piutang → Kualitas Data**

Menjalankan 20 pemeriksaan otomatis terhadap seluruh data, misalnya:

- saldo piutang negatif (kelebihan bayar);
- status pembayaran tidak sesuai saldo;
- pembayaran melebihi tagihan;
- invoice tanpa tanggal kirim;
- invoice tanpa nomor faktur pajak;
- tarif PPh 23 tidak standar;
- nominal nol atau negatif;
- jatuh tempo lebih awal daripada tanggal invoice;
- customer atau area belum terpetakan;
- nomor invoice duplikat;
- invoice sangat lama yang belum ditutup.

Setiap temuan menampilkan jumlah baris, nilai bruto, nilai saldo, tingkat keparahan
(kritis/tinggi/sedang/rendah), serta **saran tindakan**. Klik sebuah temuan untuk melihat
daftar invoicenya, dan gunakan **Ekspor** untuk mengirimkan daftar itu ke tim terkait.

Halaman ini juga memuat **rekonsiliasi terhadap nilai Excel asli**: sistem membandingkan
nilai hasil perhitungannya sendiri dengan nilai kolom rumus pada berkas Excel sumber,
sehingga setiap selisih dapat ditelusuri.

---

## 11. Invoice

**Menu: Invoice**

Mengelola data invoice satu per satu.

**Menambah invoice:** klik **Tambah Invoice**, isi data wajib (nomor invoice, tanggal invoice,
customer, nilai bruto), lalu simpan. Sistem otomatis menghitung DPP, PPN, potongan,
nilai bersih, tanggal jatuh tempo, umur piutang, dan status pembayaran.

**Rincian invoice** menampilkan: data pokok, rincian potongan, riwayat pembayaran,
riwayat revisi, nota kredit terkait, lampiran, dan jejak audit perubahan.

**Tindakan yang tersedia** (bergantung hak akses):

| Tindakan | Keterangan |
|---|---|
| Ubah | Mengubah data invoice; nilai turunan dihitung ulang otomatis |
| Batalkan | Menandai invoice dibatalkan; saldo menjadi nol dan tidak dihitung sebagai pendapatan |
| Hitung Ulang | Memaksa perhitungan ulang untuk satu invoice |
| Cetak | Mencetak lembar rincian invoice |
| Hapus | Penghapusan lunak; data tetap tersimpan dan dapat diaudit |

**Kolom nomor faktur pajak** disimpan sebagai teks agar nol di depan (misalnya
`04002600029966887`) tidak hilang, baik di layar, di Excel, maupun di CSV.

---

## 12. Pembayaran

**Menu: Pembayaran**

Pembayaran disimpan pada tabel transaksi tersendiri, bukan sebagai kolom pada invoice.
Satu pembayaran dapat dialokasikan ke beberapa invoice sekaligus.

**Jenis transaksi yang didukung:**

| Jenis | Penggunaan |
|---|---|
| Pembayaran | Penerimaan biasa |
| Pembayaran sebagian | Sebagian dari nilai invoice |
| Uang muka (DP) | Diterima sebelum pekerjaan selesai |
| Retensi | Bagian yang ditahan sampai masa pemeliharaan berakhir |
| Pelunasan | Menutup sisa saldo |
| Refund | Pengembalian kelebihan bayar |
| Pembalikan | Membatalkan pembayaran yang salah, tanpa menghapus jejaknya |
| Penyesuaian | Koreksi nilai |

**Mencatat pembayaran:**

1. Klik **Tambah Pembayaran**.
2. Pilih customer, tanggal, metode, bank, dan nomor referensi.
3. Masukkan nilai pembayaran.
4. Pada bagian alokasi, cari invoice dan isi nominal untuk masing-masing.
   Tombol **Saran Alokasi** akan mengisikan otomatis mulai dari invoice tertua.
5. Total alokasi harus sama dengan nilai pembayaran; sistem menolak bila tidak seimbang.
6. Simpan. Saldo dan status seluruh invoice terkait langsung diperbarui.

**Pembalikan pembayaran:** buka pembayaran → **Balikkan**, isi alasannya. Pembayaran ditandai
dibalik, saldo invoice dipulihkan, dan seluruh riwayat tetap tersimpan.

Bila nilai pembayaran melampaui ambang yang diatur di Pengaturan, sistem membuat
**permintaan persetujuan** terlebih dahulu sebelum pembayaran dianggap sah.

---

## 13. Penagihan (Collection)

**Menu: Penagihan**

### Worklist Penagihan

Membagi invoice bersaldo menjadi 7 kategori prioritas:

| Kategori | Isi |
|---|---|
| Jatuh tempo hari ini | Perlu dihubungi hari ini |
| Akan jatuh tempo (7 hari) | Pengingat proaktif |
| Terlambat 1–30 hari | Penagihan rutin |
| Terlambat 31–90 hari | Perlu eskalasi |
| Terlambat > 90 hari | Berisiko tinggi |
| Janji bayar hari ini | Janji yang jatuh temponya hari ini |
| Janji bayar ingkar | Janji yang sudah lewat tanpa pembayaran |

### Mencatat tindak lanjut

Klik **Tindak Lanjut** pada sebuah invoice, lalu isi: tanggal, metode (telepon, WhatsApp,
email, kunjungan, surat), nama dan nomor kontak yang dihubungi, hasil pembicaraan,
status penagihan, prioritas, serta tanggal tindak lanjut berikutnya.

Bila customer berjanji membayar, aktifkan **Janji Bayar** dan isi tanggal serta nominalnya.
Sistem akan mengevaluasi janji tersebut secara otomatis setelah tanggalnya lewat, dan
menandainya **dipenuhi**, **sebagian**, atau **ingkar** berdasarkan pembayaran yang tercatat.

### 10 status penagihan

Belum dihubungi, sudah dihubungi, janji bayar, sebagian dibayar, sengketa/dispute,
menunggu dokumen, menunggu tukar faktur, eskalasi, bermasalah, dan lunas.

---

## 14. Revisi Invoice (RF)

**Menu: Revisi Invoice**

Modul ini menangani proses *revised invoice* (RF): satu invoice lama digantikan oleh
invoice baru karena koreksi nilai, koreksi data customer, koreksi faktur pajak, dan sebagainya.

**Masalah yang dicegah:** pada workbook Excel lama, invoice lama dan invoice penggantinya
sama-sama tercatat sebagai pendapatan, sehingga pendapatan terhitung dua kali.

**Cara kerja sistem:** ketika sebuah revisi **diterapkan**,

1. invoice lama diberi status *digantikan*, saldonya dinolkan, dan penandanya
   `dihitung sebagai pendapatan` dimatikan;
2. invoice baru menyimpan tautan ke invoice lama;
3. hanya invoice baru yang dihitung sebagai pendapatan;
4. seluruh langkah dijalankan dalam satu transaksi basis data — bila salah satu gagal,
   semuanya dibatalkan.

**Penerapan dapat dibatalkan** (*unapply*) bila keliru; invoice lama kembali aktif beserta saldonya.

**Pencocokan otomatis:** saat mengimport lembar RF, sistem mencocokkan nomor invoice lama dan
baru dengan data yang ada. Baris yang belum berpasangan diberi status *menunggu pencocokan*
dan dapat dicocokkan ulang kapan saja melalui tombol **Cocokkan Ulang**.

Halaman ini juga menampilkan **statistik revisi** per jenis serta **celah penomoran RF**
sehingga nomor yang terlewat mudah terdeteksi.

---

## 15. Nota Kredit

**Menu: Nota Kredit**

Digunakan untuk mengurangi nilai tagihan tanpa membatalkan invoice — misalnya karena
potongan harga setelah negosiasi, klaim kualitas pekerjaan, atau pembulatan.

Nota kredit baru memengaruhi saldo piutang **setelah disetujui**. Alurnya:
dibuat → menunggu persetujuan → disetujui/ditolak. Setelah disetujui, saldo invoice
langsung berkurang dan perubahan tercatat di jejak audit.

---

## 16. Import Data Excel

**Menu: Import Data**

Wizard 10 langkah untuk memasukkan data dari berkas Excel.

| Langkah | Isi |
|---|---|
| 1 | Unggah berkas (.xlsx / .xls / .csv) |
| 2 | Pilih worksheet |
| 3 | Tentukan baris header dan baris awal data |
| 4 | Pilih jenis import: data invoice atau data revisi (RF) |
| 5 | Pemetaan kolom (sistem menebak otomatis, Anda dapat memperbaikinya) |
| 6 | Opsi import: perbarui data yang sudah ada, buat data master otomatis, dan sebagainya |
| 7 | Pratinjau 15 baris pertama beserta hasil pembacaannya |
| 8 | Uji coba (*dry run*) — tidak ada data yang disimpan |
| 9 | Jalankan import sungguhan |
| 10 | Ringkasan hasil dan unduh baris yang gagal |

### 24 validasi yang dijalankan

Nomor invoice wajib dan unik; deteksi duplikat di dalam berkas dan di basis data;
nama customer wajib; tanggal wajib dapat dibaca; tanggal kirim tidak boleh mendahului
tanggal invoice; nilai bruto harus angka positif; nilai error Excel (`#REF!`, `#VALUE!`,
`#DIV/0!`, `#N/A`) dinormalkan menjadi nol; tarif PPh 23 diperiksa terhadap tarif standar;
pembayaran tidak boleh melebihi nilai bersih tanpa penandaan; area dan unit bisnis
dipetakan; jenis pekerjaan dinormalkan; nomor faktur pajak dipertahankan sebagai teks;
kolom hasil rumus Excel diabaikan; baris kosong dan baris hantu berisi rumus dilewati;
serta beberapa pemeriksaan lain.

### Bila tanggal invoice rusak

Sistem tidak langsung menolak baris tersebut. Ia mencari tanggal pengganti secara berurutan:
tanggal kirim → tanggal WR → tanggal faktur pajak → tanggal cetak → tanggal input.
Baris ditandai `TGL_INVOICE_DARI_CADANGAN` agar dapat ditelusuri di menu Kualitas Data.
Baris hanya ditolak bila **tidak ada satu pun tanggal** yang dapat dibaca.

### Riwayat dan pembatalan

Setiap import tercatat sebagai satu batch berisi jumlah baris sukses, gagal, duplikat,
dan peringatan. Baris yang gagal dapat **diunduh sebagai berkas Excel** lengkap dengan
kolom penjelasan kesalahannya, sehingga dapat diperbaiki lalu diimport ulang.

Satu batch dapat **dibatalkan seluruhnya** (*rollback*) selama data yang dihasilkannya
belum diubah oleh transaksi lain.

---

## 17. Laporan Siap Pakai

**Menu: Laporan**

25 laporan yang sudah dirancang untuk kebutuhan rutin:

| Kelompok | Laporan |
|---|---|
| Piutang | Aging Piutang, Saldo Piutang, Piutang Jatuh Tempo, Akan Jatuh Tempo, Perkiraan Kas |
| Pembayaran | Riwayat Pembayaran, Pembayaran Sebagian, Rekening Koran Customer |
| Kinerja | ACP / DSO, Penagihan per Sales, Penagihan per Area, Kinerja Customer |
| Pendapatan | Pendapatan per Jenis Pekerjaan, PMSC per Kasus, Pendapatan Bulanan, Penerimaan Bulanan |
| Pajak & Potongan | Rekap PPh 23, Rekap Potongan Lain |
| Dokumen | Revisi Invoice, Invoice Dibatalkan, Piutang Tak Tertagih |
| Peringkat | 10 Saldo Terbesar, 10 Tunggakan Terlama |
| Operasional | Aktivitas Penagihan, Kualitas Data |

Setiap laporan memiliki bilah filter sendiri, dapat diurutkan, dan dapat diekspor ke
Excel, CSV, PDF, atau dicetak. Filter yang aktif selalu ikut terbawa ke hasil ekspor.

---

## 18. Pembuat Laporan Fleksibel

**Menu: Pembuat Laporan**

Bila 25 laporan siap pakai belum cukup, Anda dapat menyusun laporan sendiri tanpa menulis rumus.

**Langkah penyusunan:**

1. **Pilih sumber data** — invoice, pembayaran, alokasi pembayaran, customer, revisi,
   aktivitas penagihan, atau aging.
2. **Pilih kolom** dari katalog field, lalu susun urutannya dengan menggeser (*drag and drop*).
3. **Tetapkan agregasi** per kolom bila diperlukan: jumlah (SUM), cacah (COUNT), cacah unik,
   rata-rata (AVG), minimum, maksimum, rata-rata tertimbang, atau persentase terhadap total.
4. **Tambahkan filter** memakai 15 operator: sama dengan, tidak sama dengan, lebih besar,
   lebih besar atau sama, lebih kecil, lebih kecil atau sama, mengandung, diawali, diakhiri,
   termasuk dalam daftar, tidak termasuk daftar, di antara, kosong, tidak kosong, dan
   rentang tanggal.
5. **Kelompokkan** berdasarkan satu atau beberapa dimensi.
6. **Aktifkan subtotal per kelompok dan grand total** bila diperlukan.
7. **Gunakan mode pivot** untuk menyilangkan dua dimensi.
8. **Tambahkan grafik**: batang, batang bertumpuk, garis, area, lingkaran, donat, radar, atau campuran.
9. **Pratinjau** hasilnya secara langsung.
10. **Simpan sebagai template**, lalu duplikasi atau bagikan kepada rekan kerja.

**Visibilitas template:** pribadi (hanya Anda), dibagikan (pengguna tertentu), atau
publik (seluruh pengguna yang punya hak melihat laporan).

**Keamanan:** seluruh nama kolom, operator, dan fungsi agregasi diambil dari daftar putih
internal, sehingga tidak mungkin menyisipkan perintah SQL berbahaya melalui pembuat laporan.

---

## 19. Data Master

**Menu: Data Master**

18 kelompok data acuan yang dipakai di seluruh sistem:

| Kelompok | Isi |
|---|---|
| Area | Jakarta, Bali, Bandung |
| Unit Bisnis | Komersial, Residensial |
| Customer | Nama, NPWP, NITKU, alamat, kontak, termin, batas kredit |
| Outlet | Cabang/lokasi milik customer |
| Sales | Petugas penjualan |
| Petugas Penagihan | Petugas collection dan wilayah tugasnya |
| Kategori Pekerjaan | Pengelompokan besar jenis pekerjaan |
| Jenis Pekerjaan | Jenis pekerjaan terperinci |
| Kategori Pendapatan | PMSC, proyek, kontrak, dan sebagainya |
| Termin Pembayaran | 0, 14, 30, 45, 60, 90 hari |
| Bank | Rekening penerimaan |
| Jenis Potongan | PPh 23, administrasi, materai, biaya bank, diskon, PPh 4(2), retensi, lain-lain |
| Jenis Revisi | Klasifikasi alasan revisi invoice |
| Status Penagihan | 10 status worklist |
| Jenis Lampiran | Klasifikasi berkas lampiran |
| Pemetaan Nilai | Penyeragaman penulisan yang berbeda-beda dari Excel |
| Konfigurasi Aging | Kumpulan bucket umur piutang |
| Target ACP | Target dan toleransi per periode dan lingkup |

**Pemetaan Nilai** adalah kunci kebersihan data: bila pada Excel tertulis `JKT`, `Jkt`,
`JAKARTA`, dan `Jakarta Pusat` untuk area yang sama, tabel ini memetakan semuanya
ke satu nilai baku.

Setiap kelompok mendukung tambah, ubah, nonaktifkan, hapus (lunak), cari, dan ekspor.

---

## 20. Persetujuan

**Menu: Persetujuan**

Transaksi tertentu memerlukan persetujuan sebelum berlaku. Sembilan jenis alur tersedia:

pembayaran di atas ambang nilai; pembalikan pembayaran; penghapusan pembayaran;
penerbitan nota kredit; pembatalan invoice; penghapusan invoice; penerapan revisi invoice;
penghapusbukuan piutang (*write-off*); dan pembatalan batch import.

Kotak masuk menampilkan permintaan yang menunggu keputusan Anda, lengkap dengan
data entitas terkait sehingga Anda dapat menilai tanpa berpindah halaman.
Setujui atau tolak dengan mengisi catatan — **alasan penolakan wajib diisi**.

Setelah disetujui, sistem langsung menjalankan tindakan yang tertunda tersebut.
Setiap keputusan tercatat di jejak audit beserta waktu, pengambil keputusan, dan catatannya.

---

## 21. Pengguna & Hak Akses

**Menu: Pengguna**

### Enam peran bawaan

| Peran | Hak akses | Cakupan data | Penggunaan |
|---|---|---|---|
| SUPERADMIN | 99 | Seluruh data | Administrator sistem |
| FINANCE_AR | 84 | Seluruh data | Staf keuangan piutang |
| AUDITOR | 56 | Seluruh data (hanya baca) | Audit internal |
| MANAGEMENT | 52 | Seluruh data (hanya baca) | Manajemen |
| COLLECTION | 34 | Penugasan sendiri | Petugas penagihan |
| SALES | 18 | Portofolio sendiri | Staf penjualan |

Hak akses diatur per modul dan per tindakan (lihat, tambah, ubah, hapus, setujui,
ekspor, cetak, import). Peran baru dapat dibuat dan hak aksesnya disusun sendiri.

### Cakupan data

Selain hak akses per menu, setiap peran memiliki **cakupan data**:

- `all` — melihat seluruh data;
- `own_sales` — hanya invoice yang salesnya adalah dirinya;
- `own_collection` — hanya invoice yang ditugaskan kepadanya;
- `own_area` — hanya invoice pada areanya.

> **Penting:** akun dengan cakupan terbatas **wajib ditautkan** ke data master yang sesuai
> (sales / petugas penagihan / area) melalui form pengguna. Bila belum ditautkan, sistem
> dalam mode ketat (bawaan) tidak menampilkan data apa pun dan memunculkan peringatan.
> Mode ini dapat diubah di Pengaturan → Keamanan → Mode Ketat Cakupan Data.

### Mengelola pengguna

Tambah pengguna, tetapkan peran, tautkan ke data master, aktifkan/nonaktifkan,
setel ulang kata sandi (pengguna diminta menggantinya saat login berikutnya), dan
lihat riwayat login.

---

## 22. Log Aktivitas

**Menu: Log Aktivitas**

Mencatat setiap perubahan data penting: siapa, kapan, dari alamat IP mana, modul apa,
tindakan apa, dan **nilai lama serta nilai baru** dalam bentuk perbandingan.

Kata sandi dan data sensitif lain otomatis disamarkan sebelum disimpan.

Log dapat difilter berdasarkan periode, pengguna, modul, dan tindakan, serta dapat diekspor
untuk keperluan audit.

---

## 23. Pengaturan

**Menu: Pengaturan**

66 pengaturan yang dikelompokkan dalam 12 kelompok:

| Kelompok | Contoh isi |
|---|---|
| Umum & Identitas | Nama perusahaan, NPWP, alamat, logo, nama aplikasi |
| Format Angka & Tanggal | Simbol mata uang, pemisah ribuan, format tanggal |
| Perpajakan | Tarif PPN, tarif PPh 23, batas kewajaran tarif |
| Aturan Piutang | Termin bawaan, dasar jatuh tempo, toleransi lunas, izin kelebihan bayar |
| Aging | Konfigurasi bucket bawaan |
| ACP | Metode bawaan, dasar hari penagihan |
| Penagihan | Bobot keyakinan perkiraan kas, ambang eskalasi |
| Keamanan | Batas gagal login, durasi kunci, timeout, kebijakan kata sandi, mode ketat cakupan data |
| Import | Batas baris per batch, pembuatan master otomatis, perbarui duplikat |
| Laporan & Ekspor | Batas baris ekspor, orientasi PDF bawaan |
| Dashboard | Periode bawaan, jumlah data pada grafik peringkat |
| Pencadangan | Jumlah berkas cadangan yang disimpan |

### Konfigurasi Bucket Aging

Submenu tersendiri untuk membuat kumpulan bucket baru: tentukan nama, dasar perhitungan
(saldo/nilai bersih/bruto), acuan hari (jatuh tempo/tanggal invoice/tanggal kirim),
lalu susun bucket beserta rentang hari dan warnanya. Satu konfigurasi dapat dijadikan bawaan.

### Hitung Ulang Piutang

Tombol **Hitung Ulang** menghitung ulang seluruh nilai turunan untuk semua invoice.
Jalankan setelah mengubah tarif pajak, termin bawaan, atau dasar jatuh tempo.
Anda dapat memilih apakah tanggal jatuh tempo ikut dihitung ulang.

---

## 24. Pencadangan Data

**Menu: Pencadangan Data**

- **Cadangkan Sekarang** membuat berkas `.sql` di folder `storage/backups`.
- Sistem memakai `mysqldump` bila tersedia di server; bila tidak, ia memakai
  metode internal berbasis PDO sehingga tetap berfungsi di shared hosting yang membatasi
  perintah sistem.
- Berkas cadangan dapat diunduh, dipulihkan, atau dihapus dari halaman ini.
- Jumlah berkas yang disimpan diatur di Pengaturan → Pencadangan; berkas terlama otomatis dihapus.

**Penjadwalan otomatis melalui cron cPanel:**

```
0 2 * * * /usr/local/bin/php /home/namaakun/sipiutang/database/backup.php --quiet
```

Panduan lengkap ada pada berkas `PANDUAN_BACKUP_RESTORE.md`.

---

## 25. Aturan Perhitungan yang Dipakai Sistem

Ringkasan aturan agar angka pada layar dapat Anda verifikasi sendiri.
Uraian lengkap ada pada `02_ARSITEKTUR_DAN_ATURAN.md` (aturan R-01 sampai R-14).

### Nilai invoice

```
DPP          = Nilai Bruto ÷ 1,11
PPN          = Nilai Bruto − DPP
PPh 23       = DPP × tarif PPh 23   (bukan dari nilai bruto)
Total Potongan = PPh 23 + biaya administrasi + potongan lain
Nilai Bersih = Nilai Bruto − Total Potongan
Saldo        = Nilai Bersih − Terbayar − Nota Kredit disetujui
```

> Nilai bruto pada workbook sudah termasuk PPN 11%, karena itu DPP diperoleh dengan membagi 1,11.

### Tanggal jatuh tempo

```
Jatuh Tempo = Tanggal Dasar + Termin (hari)
```

Tanggal dasar bawaan adalah **tanggal kirim**; bila kosong, sistem memakai **tanggal invoice**.
Termin dicari berurutan dari yang paling spesifik: termin invoice → termin outlet →
termin customer → termin jenis pekerjaan → termin unit bisnis → termin area → termin bawaan sistem.

### Status pembayaran

Dievaluasi berurutan dan berhenti pada kondisi pertama yang terpenuhi:

1. dokumen dibatalkan → **DIBATALKAN**
2. dokumen digantikan/direvisi → **DIREVISI**
3. dokumen dihapusbukukan → **DIHAPUSKAN**
4. saldo ≤ toleransi lunas → **LUNAS**
5. sudah ada pembayaran namun saldo masih ada → **PEMBAYARAN_SEBAGIAN**
6. belum ada pembayaran dan sudah lewat jatuh tempo → **JATUH_TEMPO** / **TERLAMBAT**
7. selain itu → **BELUM_JATUH_TEMPO**

Urutan ini penting: karena itulah sistem dapat mengoreksi invoice yang pada Excel
ditandai lunas padahal saldonya masih ada.

### Umur piutang dan hari penagihan

```
Umur Piutang   = Tanggal Pelaporan − Tanggal Jatuh Tempo   (hanya untuk invoice bersaldo)
Hari Penagihan = Tanggal Bayar Terakhir − Tanggal Dasar     (hanya untuk invoice lunas)
Hari Terlambat = Tanggal Bayar Terakhir − Tanggal Jatuh Tempo
```

---

## 26. Pertanyaan yang Sering Diajukan

**Mengapa total sistem berbeda dengan total pada Excel lama?**
Karena sistem memperbaiki kesalahan yang ada pada workbook. Perbedaan yang telah
diidentifikasi dan diverifikasi terangkum di menu Kualitas Data → Rekonsiliasi Excel,
sehingga setiap rupiah selisih dapat ditelusuri sumbernya.

**Mengapa ada invoice yang di Excel berstatus LUNAS tetapi di sistem tidak?**
Karena saldonya memang belum nol. Sistem menentukan status dari saldo hasil perhitungan,
bukan dari kolom status yang diketik manual di Excel.

**Mengapa ACP metode 1 dan metode 2 berbeda jauh?**
Metode 1 memperhitungkan seluruh piutang termasuk yang belum dibayar sama sekali,
sedangkan metode 2 hanya melihat invoice yang sudah lunas. Gunakan metode 1 untuk
pelaporan keuangan dan metode 2 untuk menilai kinerja tim penagihan.

**Apakah bucket aging bisa diubah tanpa kehilangan data lama?**
Bisa. Bucket hanyalah cara pengelompokan; nilai dasarnya tidak berubah. Anda dapat
membuat konfigurasi baru dan berpindah-pindah kapan saja.

**Bisakah data bulan berikutnya ditambahkan?**
Bisa. Sistem tidak dibatasi pada Januari–Juli 2026. Tambahkan invoice satu per satu
atau import berkas Excel bulan berikutnya.

**Apa yang terjadi bila saya salah import?**
Buka Import Data → pilih batch tersebut → **Batalkan Import**. Seluruh data dari batch
itu dihapus, selama belum ada transaksi lain yang mengubahnya.

**Bagaimana bila nomor faktur pajak kehilangan nol di depannya?**
Tidak akan terjadi. Kolom tersebut disimpan sebagai teks dan ditulis dengan format teks
paksa pada ekspor Excel maupun CSV.

**Siapa yang dapat melihat data saya?**
Bergantung peran. Pengguna dengan peran SALES hanya melihat invoice yang salesnya
adalah dirinya; COLLECTION hanya melihat penugasannya. Peran FINANCE_AR, MANAGEMENT,
AUDITOR, dan SUPERADMIN melihat seluruh data.

**Apakah sistem mencatat siapa yang mengubah data?**
Ya. Setiap perubahan tercatat di Log Aktivitas beserta nilai lama dan nilai barunya.

---

*Dokumen ini merupakan bagian dari paket SIPIUTANG v1.0.0.
Dokumen terkait: `PANDUAN_INSTALASI_CPANEL.md`, `CHECKLIST_PENGUJIAN.md`,
`PANDUAN_BACKUP_RESTORE.md`, `01_ANALISIS_EXCEL.md`, `02_ARSITEKTUR_DAN_ATURAN.md`.*
