Material Request Component
Responsibilities
Section titled “Responsibilities”Mengelola permintaan material internal sebagai sumber demand non-penjualan untuk replenishment, transfer internal, dan kebutuhan operasional gudang.
Interfaces/APIs
Section titled “Interfaces/APIs”Inputs
Section titled “Inputs”- Nomor material request
- Requester dan unit peminta
- Warehouse asal dan tujuan
- Daftar item beserta kuantitas request
- Prioritas dan tanggal kebutuhan
Outputs
Section titled “Outputs”- Dokumen material request tervalidasi untuk proses approval, alokasi, dan tindak lanjut outbound internal.
Error Handling
Section titled “Error Handling”- Menolak nomor request duplikat
- Menolak warehouse asal atau tujuan tidak valid
- Menolak item request tidak valid atau kuantitas tidak logis
- Menolak transisi status yang tidak sesuai alur approval.
Data Structures:
Section titled “Data Structures:”| Field | Data Type | Constraints | Nullable | Description |
|---|---|---|---|---|
| material_request_id | ULID | Primary Key | Tidak | Identifier unik material request |
| mr_number | VARCHAR(50) | Unique, Not Null | Tidak | Nomor dokumen material request |
| requester_id | ULID | Foreign Key -> user.user_id | Tidak | Pengguna yang membuat request |
| source_warehouse_id | ULID | Foreign Key -> warehouse.warehouse_id | Tidak | Gudang asal pemenuhan |
| target_warehouse_id | ULID | Foreign Key -> warehouse.warehouse_id | Tidak | Gudang atau area tujuan |
| required_date | DATE | Not Null | Tidak | Tanggal kebutuhan material |
| priority | ENUM(‘LOW’,‘MEDIUM’,‘HIGH’,‘URGENT’) | Default ‘MEDIUM’ | Tidak | Prioritas pemenuhan request |
| status | ENUM(‘DRAFT’,‘SUBMITTED’,‘APPROVED’,‘ALLOCATED’,‘FULFILLED’,‘CANCELLED’) | Not Null | Tidak | Status workflow material request |
Algorithms/Logic
Section titled “Algorithms/Logic”Memvalidasi kebutuhan material terhadap aturan stok dan cakupan gudang, menerapkan alur approval bertahap, lalu meneruskan request yang disetujui ke proses outbound internal.
State Management
Section titled “State Management”Menyimpan state material request dari draft hingga fulfilled atau cancelled agar jejak keputusan dan eksekusi permintaan tetap terlacak.