Purchase Order Component
Responsibilities
Section titled “Responsibilities”Mengelola dokumen pembelian sebagai sumber demand inbound dan referensi perencanaan penerimaan barang.
Interfaces/APIs
Section titled “Interfaces/APIs”Inputs
Section titled “Inputs”- Nomor PO
- Business Partner (vendor)
- Tanggal order dan target kedatangan
- Nilai total dan mata uang
- Catatan operasional
Outputs
Section titled “Outputs”- Dokumen purchase order tervalidasi untuk proses inbound dan monitoring pemenuhan item.
Error Handling
Section titled “Error Handling”- Menolak nomor PO duplikat
- Menolak vendor tidak valid atau nonaktif
- Menolak status transisi yang tidak sah.
Data Structures:
Section titled “Data Structures:”| Field | Data Type | Constraints | Nullable | Description |
|---|---|---|---|---|
| purchase_order_id | ULID | Primary Key | Tidak | Identifier unik purchase order |
| po_number | VARCHAR(50) | Unique, Not Null | Tidak | Nomor dokumen PO |
| partner_id | ULID | Foreign Key -> business_partner.partner_id | Tidak | Vendor pemasok untuk PO |
| order_date | DATE | Not Null | Tidak | Tanggal pembuatan PO |
| expected_delivery_date | DATE | Not Null | Tidak | Tanggal estimasi kedatangan |
| status | ENUM(‘DRAFT’,‘OPEN’,‘PARTIAL’,‘CLOSED’,‘VOID’) | Not Null | Tidak | Status siklus hidup PO |
| total_amount | DECIMAL(15,2) | >= 0 | Tidak | Nilai total PO |
| currency_code | CHAR(3) | ISO 4217, Not Null | Tidak | Mata uang transaksi |
Algorithms/Logic
Section titled “Algorithms/Logic”Memastikan validasi header PO, transisi status yang legal, dan konsistensi vendor sebelum PO diterbitkan ke proses inbound.
State Management
Section titled “State Management”Menyimpan state dokumen dari draft hingga closed atau void untuk menjaga jejak proses pembelian.