🛒 Procurement Module (po_*)
Modul Procurement mengelola siklus pengadaan: Purchase Request (PR), Purchase Order (PO), dan Goods Receipt (GR), serta menjadi sumber data untuk AP dan inventory.
1. Module Purpose
- Menyimpan master vendor per company.
- Menangani lifecycle PR → PO → GR.
- Memberikan data dasar untuk pembentukan AP invoice (
fi_ap_inv) dan movement stok (inv_move).
2. Tables & Structure
| Tabel | Deskripsi singkat |
|---|---|
po_vendor | Master vendor/supplier |
po_req | Purchase Request header |
po_req_line | Detail PR per material |
po_order | Purchase Order header |
po_order_line | Detail PO per material |
po_gr | Goods Receipt header |
po_gr_line | Detail barang diterima per material |
3. Key Fields & Relationships
3.1 po_vendor
- Fields:
company_id,code,name,address,tax_id,is_active. - FK:
company_id→core_company.id.
3.2 PR & PO
-
po_req- Fields:
company_id,branch_id,req_no,req_date,status,requester_id.
- Fields:
-
po_req_line- FK:
req_id→po_req.id. - Fields:
mat_id→inv_mat.id,qty,uom,note.
- FK:
-
po_order- Fields:
company_id,branch_id,vendor_id,po_no,po_date,status,currency. - FK:
vendor_id→po_vendor.id.
- Fields:
-
po_order_line- FK:
po_id→po_order.id. - Fields:
mat_id,qty,unit_price,amount,tax_id.
- FK:
3.3 Goods Receipt
-
po_gr- Fields:
company_id,branch_id,vendor_id,gr_no,gr_date,status.
- Fields:
-
po_gr_line- FK:
gr_id→po_gr.id. - Fields:
po_line_id,mat_id,qty_received,qty_rejected.
- FK:
-
Integrasi ke modul lain:
- Setiap
po_gr_lineakan memicuinv_movedengantype = 'IN_PURCHASE'. - GR dapat menjadi basis pembentukan
fi_ap_inv.
- Setiap
4. Business Flows
4.1 PR → PO
- User cabang membuat PR (
po_req+po_req_line). - Buyer melakukan review dan approval PR.
- PR yang approved dikonversi menjadi PO (
po_order+po_order_line).
4.2 PO → GR → Inventory & AP
- Barang datang, staf gudang membuat GR (
po_gr+po_gr_line). - Sistem:
- Membuat movement
IN_PURCHASEdiinv_move. - Mengupdate
inv_stock. - Menyiapkan data dasar untuk
fi_ap_inv(AP invoice).
- Membuat movement
5. Example Reports (SQL)
Query berikut hanya contoh SELECT untuk analisa pengadaan.