Order Pembelian Masal
Panduan untuk membuat banyak Order Pembelian dari hasil analisa stok minimum reorder. Halaman ini membantu bagian pembelian meninjau produk yang perlu dibeli ulang, mengelompokkan data per divisi, departemen, dan pemasok, lalu membuat PO sekaligus.
Ringkasan Proses
Filter stok minimum reorder
Review supplier, harga, pajak, dan quantity
Grouped Data lalu Buat Order Pembelian
Kapan Halaman Ini Dipakai
Gunakan halaman ini saat bagian pembelian ingin membuat Order Pembelian sekaligus untuk banyak produk yang stoknya sudah di bawah minimum reorder. Halaman ini membaca hasil analisa stok, menghitung saran pembelian, lalu membuat PO dari baris yang dipilih.
Hubungan dengan Modul Pembelian
sum(invin-invout).purchaseorder dan detail purchaseorderdetail.Prasyarat Data
- Paket aplikasi harus memiliki
pre_transactionsdantools, karena menu ini hanya tampil bila dua paket itu aktif. - Produk harus aktif dan memiliki supplier default, minimum reorder, maximum, dan satuan dengan quantity 1.
- Inventory sudah terposting dengan benar per divisi dan departemen.
- Master Divisi harus memiliki format nomor Order Pembelian
frmpurchaseorderiddan sequencepurchaseorderidno. - Supplier yang dipakai harus aktif dan masih ada di master supplier.
Alur Penggunaan
- Buka menu Pembelian / Order Pembelian Masal.
- Isi filter analisa stok minimum reorder pada komponen report di bagian atas halaman.
- Jalankan report sampai data muncul di tabel bawah.
- Periksa setiap baris: divisi, departemen, supplier, produk, saran pembelian, satuan, harga, diskon, pajak, minimum reorder, maximum, dan saldo stok.
- Jika supplier default tidak sesuai, ubah supplier pada baris terkait. Sistem akan mengambil harga beli terakhir dari histori pembelian supplier tersebut untuk produk itu.
- Klik tombol Grouped Data. Langkah ini wajib sebelum tombol Buat Order Pembelian aktif.
- Centang baris produk yang ingin dibuatkan PO.
- Klik Buat Order Pembelian, baca konfirmasi, lalu pilih OK jika sudah yakin.
- Setelah berhasil, sistem menampilkan notifikasi berisi nomor PO yang dibuat.
Filter Analisa Stok
Bagian atas halaman memakai laporan analisa stok minimum reorder. Laporan ini menampilkan produk aktif yang saldo stoknya sudah di bawah batas minimum reorder.
| Filter | Penjelasan |
|---|---|
| Tanggal Transaksi | Membatasi saldo inventory sampai tanggal tertentu. Query report memakai field a.transdate. |
| Divisi | Membatasi hasil per divisi. Default mengikuti role user dan bisa terkunci bila role mengunci divisi. |
| Departemen | Membatasi hasil per departemen dalam divisi yang dipilih. |
| Supplier | Membatasi produk berdasarkan supplier default di master produk. |
| Produk | Membatasi hasil ke produk tertentu. |
Baris tampil jika:
produk aktif
saldo inventory < minimum reorder
Saldo inventory = sum(invin - invout)
Saran pembelian = maximum - saldo inventory
Baris dengan saran pembelian <= 0 dibuang dari tabel
Tabel Hasil
Tabel di bawah report adalah tabel kerja. Pengguna memilih baris dari tabel ini untuk dibuatkan PO.
| Kolom | Penjelasan |
|---|---|
| Divisi | Divisi stok dan divisi PO yang akan dibuat. |
| Departemen | Departemen stok dan detail PO. |
| Kode Supplier | Supplier yang akan menjadi pemasok PO. Kolom ini bisa diubah lewat autocomplete. |
| Nama Supplier | Nama supplier dari master atau dari histori pembelian yang dipilih. |
| Kode Produk dan Nama Produk | Produk yang stoknya perlu dibeli ulang. |
| Saran Pembelian | Quantity yang akan dipakai sebagai purchaseqty di detail PO. |
| Satuan Produk | Satuan yang dikirim ke PO. Default dari unit quantity 1, bisa berubah saat supplier diganti dari histori pembelian. |
| Cost Price | Harga yang menjadi price di detail PO. |
| Percent Disc | Diskon persen yang menjadi percentdisc. |
| Purchase Disc | Diskon nominal per unit. Saat PO dibuat, nilai diskon detail dihitung purchasedisc x purchaserecomm. |
| Purchase Tax | Pajak per unit. Saat PO dibuat, nilai pajak detail dihitung purchasetax x purchaserecomm. |
| Minimum Reorder | Batas minimum reorder dari master produk. |
| Default Reorder | Nilai default reorder dari master produk, ditampilkan sebagai referensi. |
| Maximum | Target stok maksimum. Dipakai untuk menghitung saran pembelian. |
| Saldo Persediaan | Saldo inventory saat filter report dijalankan. |
Mengganti Supplier pada Baris
Kolom Supplier memakai autocomplete yang membaca histori pembelian terakhir untuk produk tersebut dari tabel purchasedetail dan purchase. Saat pengguna memilih supplier dari daftar, sistem mengganti beberapa nilai baris.
- Nama supplier diisi dari histori supplier yang dipilih.
- Cost price diisi dari harga pembelian terakhir supplier tersebut.
- Percent disc, value disc, pajak per unit, satuan, dan unit quantity ikut diganti.
Kenapa Harus Klik Grouped Data
Tombol Grouped Data mengurutkan tabel berdasarkan Divisi, Departemen, lalu Supplier. Setelah tombol ini diklik, sistem memberi tanda hasgrouped=true sehingga tombol Buat Order Pembelian bisa digunakan.
Pembuatan Order Pembelian
Tombol Buat Order Pembelian hanya aktif bila ada baris terpilih dan data sudah digrouping. Sistem hanya mengirim baris yang dipilih dan memiliki purchaserecomm > 0.
- Hanya baris yang dicentang yang diproses.
- Baris dengan saran pembelian kosong atau nol tidak dibuatkan PO.
- Data yang sudah digrouping membantu sistem memisahkan PO per divisi, departemen, dan supplier.
Setelah pengguna menyetujui konfirmasi, sistem membuat satu atau beberapa PO. Jika berhasil, notifikasi menampilkan daftar nomor PO. Jika gagal, notifikasi menampilkan pesan error yang perlu diperbaiki sebelum proses diulang.
Hasil Setelah OK
- Sistem memproses data dalam satu proses agar hasilnya konsisten.
- Untuk setiap kombinasi baru Divisi, Departemen, dan Supplier, sistem membuat header Order Pembelian baru.
- Nomor PO dibuat dari format
frmpurchaseorderiddan sequencepurchaseorderidnodi master Divisi, lalu sequence dinaikkan. - Header PO memakai tanggal dan jam server saat proses berjalan.
- Data supplier pada header diisi dari master supplier: nama, alamat, limit kredit, tax ID, dan saldo supplier.
- Setiap baris produk masuk sebagai detail PO dengan quantity, satuan, harga, pajak, diskon, gross, dan net amount dari tabel kerja.
- Total PO dihitung dari penjumlahan
netamountdetail untuk PO tersebut. - Jika semua berhasil, PO terbentuk. Jika ada error, proses dibatalkan agar tidak ada PO setengah jadi.
Batasan yang Perlu Dipahami
- Halaman ini membuat Order Pembelian, bukan Pembelian final. Stok dan hutang belum berubah sampai alur Goods Receipt atau Pembelian diproses.
- Tanggal PO memakai tanggal server saat tombol diproses, bukan tanggal filter report.
- Saran pembelian dihitung ke target maximum. Field default reorder hanya ditampilkan sebagai referensi pada halaman ini.
- Halaman tidak membuat pembayaran, biaya, reward, atau extra tax PO. Yang dibuat utama adalah header PO dan detail barang.
- Jika format nomor PO di Divisi kosong, proses gagal dengan pesan format ID Purchase Order belum diatur.
Masalah Umum
frmpurchaseorderid harus berisi format dengan tanda #, dan sequence purchaseorderidno harus valid.purchasedetail. Jika histori lama tidak sesuai, edit supplier/harga dari PO hasil generate atau buat PO manual.