Files
accounting_dev_v2/docs/PRODUCTION-DB-WORKFLOW-PEMBELIAN.md
T
2026-09-11 16:03:00 +07:00

41 lines
2.6 KiB
Markdown

# Catatan Production — Penyatuan Workflow Pembelian
## Perubahan konsep
- `Barang Pending` hanya membuat master/rencana barang gudang dengan stok `0`.
- Tidak ada barcode, stock log, jurnal, atau pembayaran ketika master pending dibuat.
- Stok menjadi tersedia hanya setelah Goods Receipt untuk PO gudang diposting.
- Pembelian aset tidak masuk stok gudang; Goods Receipt membuat data pada asset register.
- Pembayaran dilakukan melalui tagihan supplier/hutang, bukan dari master barang.
## Migrasi wajib
Jalankan migration sampai versi `20260902000500` setelah backup dan uji staging. Migrasi menambah tujuan pembelian (`warehouse`/`asset`), metadata kapitalisasi aset, relasi receipt ke aset, serta kolom rencana pada `items`. Kolom item dan gudang pada detail transaksi terkait dibuat nullable agar pembelian aset tidak dipaksa mempunyai master barang gudang.
```bash
php index.php migrate latest
php index.php migrate status
```
## Pemeriksaan sebelum cut-over
1. Pastikan semua item berstatus `draft` mempunyai stok nol dan tidak digunakan pada penjualan.
2. Item draft legacy yang sudah mempunyai stok harus diklasifikasikan sebagai item aktif.
3. Pastikan mapping akun `inventory`, `accounts_payable`, dan `purchase_input_tax` aktif.
4. Pastikan akun aset dan lokasi aset tersedia sebelum membuat PO aset.
5. Uji satu siklus gudang dan satu siklus aset di staging: PR, approval, PO, approval, receipt, tagihan, posting hutang, lalu pembayaran.
6. Rekonsiliasi stock ledger dengan akun persediaan dan asset register dengan akun aset setelah cut-over.
Rollback migration ini tidak dilakukan dengan menghapus kolom pada database aktif. Gunakan backup terverifikasi apabila deployment harus dibatalkan.
## Biaya administrasi bank pada pembayaran
Migration `20260905000700` wajib dijalankan sebelum kode pembayaran terbaru digunakan. Migration ini menambahkan `bank_charge_amount`, `bank_charge_account_id`, dan `total_cash_out` pada `supplier_payments`, serta mapping `bank_charge_expense`.
Sebelum Production:
1. Cocokkan mapping `bank_charge_expense` dengan akun beban administrasi bank resmi pada COA perusahaan; jangan mengandalkan kode seed Development `6298` bila COA Production berbeda.
2. Pastikan `supplier_payments.amount` tetap diperlakukan sebagai pokok pembayaran yang mengurangi PO/invoice. `total_cash_out` adalah pokok ditambah biaya admin.
3. Rekonsiliasi total `purchase_payment_sources` dengan `supplier_payments.total_cash_out` dan alokasi invoice dengan `supplier_payments.amount`.
4. Uji masing-masing satu transaksi pembayaran awal/DP, pembayaran setelah penerimaan, dan pelunasan Hutang & Pembayaran dengan admin bank sebelum cut-over.