Lewati ke konten utama

Perakitan Paket (Bundle Assembly) & BOM

Fitur Perakitan Bundle (Assembly) digunakan untuk mengonversi beberapa bahan baku atau barang dagangan individual menjadi sebuah produk paket fisik baru yang siap jual (misalnya: Hampers Lebaran, Paket Komputer Rakitan, atau Bundle Gift Set).


1. Bill of Materials (BOM) pada Master Produk

Sebelum melakukan proses fisik perakitan, definisi resep atau komponen penyusun (Bill of Materials) harus dikonfigurasikan pada Master Produk bertipe bundle:

  1. Buka produk bertipe bundle di menu Master Produk.
  2. Masuk ke tab Komponen Penyusun (BOM).
  3. Tambahkan item komponen:
    • Komponen Barang Fisik (storable): Barang yang akan diambil dari gudang fisik (misal: 1 Kaleng Biskuit, 1 Botol Sirup).
    • Komponen Jasa (service): Biaya jasa pengerjaan atau ongkos rakit (misal: Ongkos Packing Rp 15.000). Jasa tidak memotong stok fisik, namun menambah nilai HPP paket jadi.
  4. Simpan konfigurasi komponen.

2. Formulir Perakitan Bundle (Bundle Assembly)

Ketika staf gudang merakit barang fisik di area produksi/gudang, staf mencatatnya melalui menu Gudang > Perakitan Bundle:

Nama FieldTipe DataWajib?Keterangan & Validasi
Produk Bundle (bundleProductId)Relasi (Product)WajibHanya menampilkan produk dengan tipe bundle yang telah memiliki komponen BOM.
Gudang Asal Komponen (sourceLocationId)Relasi (Location)WajibLokasi fisik rak tempat bahan baku/komponen diambil.
Gudang Tujuan Paket (destLocationId)Relasi (Location)WajibLokasi fisik rak tempat barang bundle yang telah selesai dirakit akan disimpan.
Kuantitas Rakit (qtyToAssemble)DecimalWajibJumlah paket bundle jadi yang dirakit. Angka harus positif ($> 0$).
Tanggal Perakitan (assemblyDate)DateWajibTanggal aktual pelaksanaan perakitan fisik.
Catatan / Nomor Batch (notes)StringOpsionalKeterangan tambahan atau nomor lot produksi.

3. Proses Validasi & Eksekusi: Tombol "Confirm Assembly"

Saat petugas menekan tombol Confirm Assembly (Konfirmasi Perakitan), backend sistem menjalankan proses transaksional berantai secara atomik:

A. Pengecekan Stok Komponen (Fail-Fast Check)

Sistem secara instan mengalikan kuantitas komponen BOM dengan qtyToAssemble. Jika salah satu bahan penyusun tidak mencukupi di sourceLocationId (dan produk tidak mengaktifkan allowNegativeStock), sistem seketika membatalkan transaksi tanpa mengubah data apa pun.

B. Mekanisme 2-Picking Internal Otomatis

Untuk menjaga prinsip akuntansi berpasangan (Double-Entry), mutasi stok tidak terjadi secara magis di satu titik, melainkan melalui lokasi perantara sistem:

  1. Picking Keluar (Pengurangan Bahan): Pergerakan stok dari Gudang Fisik Asal $\to$ Lokasi Virtual Produksi (VIRTUAL-PRODUCTION). Saldo fisik bahan baku berkurang.
  2. Picking Masuk (Penerbitan Produk Jadi): Pergerakan stok dari Lokasi Virtual Produksi (VIRTUAL-PRODUCTION) $\to$ Gudang Fisik Tujuan. Saldo produk paket bertambah.

C. Pembaruan Otomatis HPP (Harga Pokok Penjualan)

Sistem menjumlahkan total biaya perolehan dari seluruh bahan baku yang terpakai ditambah biaya jasa yang tertera di BOM. Nilai tersebut kemudian di-update ke field defaultCost produk bundle tersebut, sehingga margin keuntungan penjualan dapat dihitung dengan presisi.