Skip to main content

KTN-15

FieldIsi
Dokumen IDKTN-15
DeskripsiExpired date saat barang keluar
Nomor Revisi1
Tanggal2026-10-04
KeteranganPemilihan lot keluar (FIFO expired date / kustom) pada penjualan, penjualan kasir, dan mutasi gudang

1. Ringkasan​

a. In scope​

  • Saat barang keluar, user memilih metode pemotongan lot: FIFO expired date atau kustom
  • Metode FIFO expired date memotong lot dengan expired_date paling baru terlebih dahulu
  • Metode kustom: user memilih Barang_Masuk_Rinci mana yang dipakai
  • Berlaku pada penjualan dan penjualan kasir
  • Mutasi gudang tidak memakai pilihan FIFO; tiap baris barang yang dipilih, user wajib memilih Barang_Masuk_Rinci terkait
  • Baris Penjualans menyimpan field yang menunjuk Barang_Masuk_Rinci sumber barang keluar

b. Catatan​

c. Kesimpulan​

  • [FE] Pada penjualan dan penjualan kasir, tambah pilihan metode keluar: FIFO expired date atau kustom
  • [FE] Pada metode kustom, user memilih Barang_Masuk_Rinci per baris / pemotongan
  • [FE] Pada mutasi gudang, wajib pilih Barang_Masuk_Rinci per baris (tanpa opsi FIFO)
  • [FE] Kirim barang_masuk_rinci_id pada baris Penjualans / payload mutasi
  • [BE] FIFO expired date: alokasi potong stok dari lot expired_date paling baru
  • [BE] Simpan tautan barang_masuk_rinci_id pada Penjualans
  • [BE] Mutasi gudang menerima barang_masuk_rinci_id wajib per baris

2. Functional Requirement​

KodeDeskripsi
FR-01Penjualan dan penjualan kasir menyediakan pilihan metode keluar: FIFO expired date atau kustom
FR-02FIFO expired date memotong lot dengan expired_date paling baru terlebih dahulu
FR-03Metode kustom mewajibkan pemilihan Barang_Masuk_Rinci
FR-04Penjualans menyimpan field penunjuk Barang_Masuk_Rinci sumber keluar
FR-05Mutasi gudang mewajibkan pemilihan Barang_Masuk_Rinci per baris tanpa opsi FIFO
FR-06Sistem menolak keluar jika lot terpilih tidak mencukupi / tidak valid

3. Use Case List​

KodeDeskripsi
UC-01Mengeluarkan barang pada penjualan dengan FIFO expired date
UC-02Mengeluarkan barang pada penjualan dengan metode kustom
UC-03Mengeluarkan barang pada penjualan kasir
UC-04Mengeluarkan barang pada mutasi gudang dengan pilih lot

4. Use Case Scenario​

UC-01 : Mengeluarkan barang pada penjualan dengan FIFO expired date​

AktorUser penjualan
DeskripsiUser menyimpan penjualan; sistem memotong lot berdasar FIFO expired date
PrekondisiStok lot Barang_Masuk_Rinci tersedia
Hak buat penjualan
Alur utama1. User membuka form penjualan dan menambah baris barang.
2. User memilih metode FIFO expired date.
3. User menyimpan penjualan.
4. Sistem mengalokasikan potong stok dari lot dengan expired_date paling baru terlebih dahulu.
5. Sistem menyimpan barang_masuk_rinci_id pada baris Penjualans (pecah baris bila lebih dari satu lot).
Alur negatif- Jika stok lot tidak mencukupi, simpan ditolak.
- Jika tidak ada lot valid, muncul pesan error.
Bisnis rule- Urutan potong: expired_date paling baru dulu.
- Setiap potongan lot tercatat lewat barang_masuk_rinci_id di Penjualans.
PostkondisiPenjualan tersimpan; stok lot terpotong; tautan lot tercatat
TriggerUser simpan penjualan dengan metode FIFO expired date
Kode FRFR-01
FR-02
FR-04
FR-06

UC-02 : Mengeluarkan barang pada penjualan dengan metode kustom​

AktorUser penjualan
DeskripsiUser memilih sendiri lot Barang_Masuk_Rinci yang akan dipotong
PrekondisiLot tersedia untuk SKU / gudang terkait
Alur utama1. User menambah baris penjualan.
2. User memilih metode kustom.
3. User memilih Barang_Masuk_Rinci untuk baris tersebut.
4. User menyimpan penjualan.
5. Sistem memotong lot terpilih dan menyimpan barang_masuk_rinci_id di Penjualans.
Alur negatif- Jika user belum memilih lot, simpan ditolak.
- Jika qty melebihi sisa lot, simpan ditolak.
Bisnis rule- Satu baris penjualan menunjuk lot yang dipilih user.
- Jika perlu lebih dari satu lot, user / sistem memecah baris per lot.
PostkondisiPenjualan tersimpan dengan lot kustom
TriggerUser simpan penjualan metode kustom
Kode FRFR-01
FR-03
FR-04
FR-06

UC-03 : Mengeluarkan barang pada penjualan kasir​

AktorKasir
DeskripsiPenjualan kasir memakai metode FIFO expired date atau kustom sama seperti penjualan
PrekondisiMode kasir aktif
Stok tersedia
Alur utama1. Kasir menambah barang di penjualan kasir.
2. Kasir / sistem memakai metode keluar FIFO expired date atau kustom.
3. Kasir menyelesaikan pembayaran / simpan.
4. Sistem memotong lot sesuai metode dan menyimpan barang_masuk_rinci_id di Penjualans.
Alur negatif- Stok tidak cukup → transaksi ditolak.
- Metode kustom tanpa lot → ditolak.
Bisnis rule- Aturan FIFO / kustom sama dengan penjualan biasa.
- Field tautan lot tetap di Penjualans.
PostkondisiPenjualan kasir tersimpan dengan tautan lot
TriggerKasir menyelesaikan transaksi
Kode FRFR-01
FR-02
FR-03
FR-04
FR-06

UC-04 : Mengeluarkan barang pada mutasi gudang dengan pilih lot​

AktorUser gudang
DeskripsiPada mutasi gudang, user wajib memilih Barang_Masuk_Rinci per baris barang
PrekondisiGudang asal punya lot
Hak buat mutasi gudang
Alur utama1. User membuka form mutasi gudang.
2. User menambah baris barang.
3. Untuk tiap baris, user memilih Barang_Masuk_Rinci sumber.
4. User menyimpan mutasi.
5. Sistem memotong lot terpilih di gudang asal.
Alur negatif- Jika ada baris tanpa pilihan lot, simpan ditolak.
- Jika sisa lot tidak cukup, simpan ditolak.
Bisnis rule- Mutasi gudang tidak memakai opsi FIFO expired date.
- Pemilihan lot wajib per baris.
PostkondisiMutasi tersimpan; lot asal terpotong sesuai pilihan
TriggerUser simpan mutasi gudang
Kode FRFR-05
FR-06

5. Data Flow Diagram​

DFD-01 — Expired date saat barang keluar​

6. Sequence Diagram​

SD-01 — UC-01 : Mengeluarkan barang pada penjualan dengan FIFO expired date​

SD-02 — UC-02 : Mengeluarkan barang pada penjualan dengan metode kustom​

SD-03 — UC-03 : Mengeluarkan barang pada penjualan kasir​

SD-04 — UC-04 : Mengeluarkan barang pada mutasi gudang dengan pilih lot​

7. Table Schema​

TableFieldStatusDeskripsi
Penjualansbarang_masuk_rinci_idnewMenunjuk lot Barang_Masuk_Rinci yang dipotong untuk baris penjualan
Mutasi_Gudangs / baris mutasibarang_masuk_rinci_idnewLot sumber wajib dipilih user per baris mutasi

8. API Schema​

EndpointStatusPerubahan
POST /penjualanchangedTerima metode_keluar + barang_masuk_rinci_id; FIFO expired date alokasi lot expired_date paling baru
POST /invoice-penjualanchangedSama untuk penjualan kasir
POST /mutasi-gudangchangedWajib barang_masuk_rinci_id per baris; tanpa FIFO
GET /barang-masukexistingSumber daftar lot + expired_date + sisa qty