# Tahap 5 — Invoice dan Piutang ## Cakupan yang diterapkan - Quotation dan sales order, termasuk konversi menjadi draft invoice. - Draft, submit, approval, posting, jatuh tempo, dan reversal invoice. - Pajak dan diskon per item; ringkasan pajak pada invoice. - Penerimaan pelanggan dengan cicilan/partial payment dan alokasi satu pembayaran ke banyak invoice. - Kelebihan pembayaran hanya diterima jika ditandai sebagai uang muka pelanggan. - Credit note, refund uang muka, dan bad debt/write-off dengan jurnal otomatis. - Aging piutang, customer statement, credit limit/block, reminder queue, receipt, dan lampiran. - Nomor invoice/pembayaran/dokumen unik dan audit trail. - Stok/jurnal draft dinonaktifkan; keduanya hanya diposting satu kali saat invoice approved diposting. ## Perilaku data Development Data lama dipertahankan. Invoice `paid`, `partial`, dan `unpaid` di-backfill sebagai `workflow_status=posted`, tetapi tidak dibuatkan jurnal atau mutasi stok ulang. Pembayaran lama diberi nomor `LEG-PAY-{id}` dan dialokasikan ke invoice asal di `payment_allocations`. Invoice draft lama tetap draft. Stock log yang sudah pernah dibuat oleh alur lama ditandai pada detail agar posting baru tidak mengurangi stok dua kali. ## Menu - Invoice → Penawaran & Sales Order - Invoice → Piutang & Penerimaan - Invoice → Draft/Riwayat Invoice - Approval → persetujuan invoice ## Reminder Tahap ini menyediakan antrean reminder. Pengiriman email/WhatsApp aktual memerlukan provider dan credential Production; worker pengiriman tidak mengirim otomatis sebelum provider disetujui. ## Lampiran Jenis yang diterima: PDF, JPG, PNG, WEBP; maksimum 5 MB. File disimpan dengan nama acak, hash SHA-256, dan hanya dapat diunduh setelah login.