Domain Model
Entitas Inti
| Entitas | Tabel | Peran |
|---|---|---|
| User | users | akun + role |
| Project | projects | proyek utama |
| SPB | spbs | surat permintaan barang |
| Item | items | item dari SPB |
| PreOrder (PO) | pre_orders | purchase order |
| POItem | po_items | pivot item ke PO + status item PO |
| Supplier | suppliers | vendor/supplier |
| Payment | payments | data pembayaran PO |
| PaymentTerm | payment_terms | termin pembayaran |
| Tax | taxes | data pajak terkait payment |
| PaymentSplit | payment_splits | skema DP/pelunasan |
| PriceChangeRequest | price_change_requests | usulan perubahan total PO |
| SPK | spks | kontrak kerja |
| SPKPayment | spk_payments | pembayaran SPK |
| SPKRevision | spk_revisions | revisi SPK |
| SPKPaymentAccounting | spk_payment_accountings | accounting SPK payment |
| PO/SPK Payment Receipt | po_payment_receipts, spk_payment_receipts | bukti pembayaran |
Relasi Penting
Invariant Bisnis (indikatif)
- SPB approved bisa lanjut ke PO.
- PO received mendorong proses pembayaran.
- Payment status bergerak waiting → approved → verified.
- SPK payment & accounting terpisah tapi terhubung pada
spk_payment_id.
Field Kritikal
| Model | Field | Catatan |
|---|---|---|
PreOrder | status, received_at, approved_by, received_by | lifecycle PO |
Payment | subtotal, total, new_total, is_split, status | final nominal |
SPB | status, delivery_date | lifecycle SPB |
SPK | status, contract_nominal | lifecycle kontrak |
Catatan Verifikasi
- Status: Partial
- Scope: Constraint FK aktual di production belum diverifikasi langsung ke instance DB running.
- Action: Ambil snapshot constraint dari DB live lalu cocokkan dengan model/migration.