UOM Conversions Component
Responsibilities
Section titled “Responsibilities”Mengelola rasio konversi antar satuan ukur untuk normalisasi kuantitas operasional.
Interfaces/APIs
Section titled “Interfaces/APIs”Inputs
Section titled “Inputs”- UOM asal
- UOM tujuan
- Rasio konversi
- Aturan pembulatan
- Kategori konversi
Outputs
Section titled “Outputs”- Nilai konversi tervalidasi untuk proses transaksi, perhitungan stok, dan laporan.
Error Handling
Section titled “Error Handling”- Menolak pasangan UOM lintas kategori
- Menolak rasio konversi tidak valid
- Menolak duplikasi pasangan konversi aktif.
Data Structures:
Section titled “Data Structures:”| Field | Data Type | Constraints | Nullable | Description |
|---|---|---|---|---|
| uom_conversion_id | ULID | Primary Key | Tidak | Identifier unik aturan konversi |
| uom_category_id | ULID | Foreign Key -> uom_category.uom_category_id | Tidak | Kategori domain konversi |
| from_uom_id | ULID | Foreign Key -> uom.uom_id | Tidak | Satuan asal |
| to_uom_id | ULID | Foreign Key -> uom.uom_id | Tidak | Satuan tujuan |
| conversion_ratio | DECIMAL(15,6) | > 0, Not Null | Tidak | Rasio konversi dari asal ke tujuan |
| rounding_mode | ENUM(‘UP’,‘DOWN’,‘HALF_UP’) | Not Null | Tidak | Metode pembulatan hasil konversi |
| level | INT | >= 0 | Tidak | Urutan prioritas konversi dalam kategori |
| is_active | BOOLEAN | Default true | Tidak | Status aturan konversi |
Algorithms/Logic
Section titled “Algorithms/Logic”Menghitung nilai turunan berbasis rasio aktif, menerapkan pembulatan sesuai aturan, dan memastikan rantai konversi tetap berada dalam kategori yang sama.
State Management
Section titled “State Management”Menyimpan versi konversi aktif agar hasil kalkulasi konsisten antar proses dan periode operasional.