Outbound Order Component
Responsibilities
Section titled “Responsibilities”Mengelola rencana pengeluaran barang untuk penjualan, transfer, atau kebutuhan operasional lain.
Interfaces/APIs
Section titled “Interfaces/APIs”Inputs
Section titled “Inputs”- Nomor outbound
- Tipe outbound
- Referensi order
- Gudang asal dan tujuan
- Customer dan jadwal dispatch
Outputs
Section titled “Outputs”- Dokumen outbound tervalidasi untuk proses alokasi, picking, packing, dan pengiriman.
Error Handling
Section titled “Error Handling”- Menolak referensi order tidak valid
- Menolak konfigurasi asal atau tujuan tidak sesuai tipe outbound
- Menolak status outbound tidak valid.
Data Structures:
Section titled “Data Structures:”| Field | Data Type | Constraints | Nullable | Description |
|---|---|---|---|---|
| outbound_order_id | ULID | Primary Key | Tidak | Identifier unik outbound order |
| ob_number | VARCHAR(50) | Unique, Not Null | Tidak | Nomor dokumen outbound |
| order_type | ENUM(‘SALES’,‘TRANSFER’,‘RTV’,‘SCRAP’) | Not Null | Tidak | Jenis outbound |
| reference_number | VARCHAR(100) | Indexed, Not Null | Tidak | Referensi sumber order |
| origin_warehouse_id | ULID | Foreign Key -> warehouse.warehouse_id | Tidak | Gudang asal barang |
| target_warehouse_id | ULID | Foreign Key -> warehouse.warehouse_id | Ya | Gudang tujuan untuk transfer |
| customer_id | ULID | Foreign Key -> business_partner.partner_id | Ya | Customer tujuan pengiriman |
| status | ENUM(‘DRAFT’,‘ALLOCATED’,‘PICKING’,‘PACKED’,‘SHIPPED’,‘DELIVERED’,‘CANCELLED’) | Not Null | Tidak | Status proses outbound |
Algorithms/Logic
Section titled “Algorithms/Logic”Mengelola validasi tipe outbound, orkestrasi alokasi ke picking, dan transisi status hingga pengiriman selesai.
State Management
Section titled “State Management”Menyimpan state outbound untuk memastikan sinkronisasi antar proses reservasi, picking, packing, dan dispatch.