Lab Praktikum

BAB 06
Purchase
Management

Implementasi P2P Cycle untuk UMKM Mitra

Minggu 7 120 Menit Tim 3–4 Orang

Sistem Informasi Enterprise — ERP Odoo 19.0
dengan Real UMKM Partner Program

Timeline 120 min

01
Konfigurasi Purchase Module
Settings, Approval, Blanket Orders
20 min
02
Setup Vendor Data
Vendor Pricelist, Blanket Order, Prioritas
20 min
03
Siklus P2P Lengkap
3 skenario: Normal, Approval, Partial Delivery
50 min
04
Reorder Rules & RFQ Otomatis
Konfigurasi reorder rule + run scheduler
15 min
05
Purchase Reporting
Purchase Analysis + Aged Payable
15 min

Prasyarat

✅ Dari Lab Sebelumnya

  • Database Odoo 19 aktif
  • Minimal 5 vendor records terdaftar
  • Minimal 5 produk dengan "Can be Purchased" ✅
  • Lab 5 (Sales) selesai

📋 Pekerjaan Rumah

  • PR1: Informasi proses pengadaan UMKM
  • PR2: Data 3–5 vendor aktif
  • PR3: 3 skenario pembelian

⚠️ Data belum lengkap? Gunakan dataset benchmark BBS (Batik Berkah Sentosa) — nilai deliverable dikurangi 15%.

⚠️ Cek Data

DataSumberFallback
5+ vendor aktifLab 4 (Master Data)Import data BBS
5+ produk "Can be Purchased"Lab 4 (Master Data)Buat manual di lab
Chart of Accounts aktifLab 3 (Setup Odoo)Gunakan default CoA
User dengan role ApproverConfig di Langkah 1

Data BBS Quick Reference:

CV Sarana Batik (Kain Mori Rp 14.500/m) · UD Tekstil Makmur (Kain Mori Rp 13.800/m) · CV Kimia Warna (Naphthol Rp 45.000/100g) · UD Kancing Nusantara (Kancing Rp 320/pcs) · Toko Kain Barokah (Kain Mori Rp 15.200/m)

Tujuan Lab

LO1 Mengkonfigurasi Purchase Settings: Billing Policy, Approval threshold, Blanket Orders
LO2 Mengelola vendor pricelists: harga per vendor, minimum order, lead time
LO3 Memproses P2P lengkap: RFQ → PO → Receipt (partial) → Vendor Bill + three-way matching
LO4 Mengkonfigurasi Purchase Approval Workflow dengan threshold UMKM mitra
LO5 Menggunakan Purchase Analysis & Aged Payable untuk menjawab 3+ pertanyaan bisnis
01
Langkah 1 · 20 min

Konfigurasi
Purchase Module

🎯 Atur settings sesuai kebutuhan bisnis UMKM mitra

Purchase Settings

  1. Login sebagai Administrator
  2. Settings → Purchase (tab sidebar kiri)
  3. Aktifkan opsi sesuai tabel →
  4. Klik Save
OpsiSetting
PO Approval✅ Aktif · Rp 3.000.000 (BBS)
PO Lock✅ Aktif — proteksi PO confirmed
Billing PolicyReceived Quantities (produk fisik)
Blanket Orders✅ Aktif — wajib untuk Langkah 2
3-Way Matching✅ Aktif — warning di Vendor Bills

⚠️ Pastikan user approver punya role Purchase: AdministratorSettings → Users → Application Access

Jika berhasil, Anda akan melihat:
  • Purchase Order Approval aktif dengan threshold terisi
  • Billing Policy = Received Quantities
  • Menu Purchase → Orders → Blanket Orders muncul
  • User approver memiliki role Purchase Administrator

📸 SS6-01-settings.png — Screenshot halaman Purchase Settings lengkap

02
Langkah 2 · 20 min

Setup
Vendor Data

🎯 Vendor pricelists + Blanket Order untuk produk utama

Konfigurasi Harga per Vendor

  1. Inventory → Products → Products → pilih produk
  2. Buka tab Purchase
  3. Klik Add a line di bagian Vendor Prices
  4. Isi: Vendor, Price, Quantity (min order), Lead Time
  5. Tambahkan vendor kedua dengan Add a line lagi
ProdukVendorHargaMinLT
Kain Mori 115cmCV Sarana BatikRp 14.500/m50m2hr
UD Tekstil MakmurRp 13.800/m200m5hr
Naphthol BlueCV Kimia WarnaRp 45.000/100g500g3hr
Kancing BatokUD Kancing NusantaraRp 320/pcs1.0003hr

💡 Vendor di baris pertama = prioritas tertinggi untuk Reorder Rules otomatis. Seret dengan ikon ☰ untuk mengatur urutan.

Buat Blanket Order

  1. Purchase → Orders → Blanket Orders → New
  2. Pilih Vendor → isi Agreement Deadline (3 bulan ke depan)
  3. Tab Products → Add a line: produk, qty total, harga terkunci
  4. Klik Confirm → status berubah ke Ongoing

Contoh BBS:

Vendor: CV Sarana Batik · Produk: Kain Mori 115cm · Qty: 1.200m / 3 bulan · Harga: Rp 13.800/m

Hemat: Rp 700/m × 1.200m = Rp 840.000 per kontrak

Checkpoint 2: Tab Purchase produk menampilkan 2+ vendor entries dengan harga berbeda.
📸 SS6-02-vendor-pricelist.png
03
Langkah 3 · 50 min

Siklus P2P
Lengkap

🎯 3 skenario: Normal · Approval · Partial Delivery

Data Skenario BBS

A — NORMAL ⏱15 min

CV Sarana Batik
100m Kain Mori × Rp 14.500
= Rp 1.450.000

Di bawah threshold → tanpa approval

B — APPROVAL ⏱15 min

CV Kimia Warna
2.000g Naphthol × Rp 45.000/100g
= Rp 9.000.000

Di atas Rp 3 juta → butuh approval

C — BACKORDER ⏱20 min

UD Tekstil Makmur
300m Kain Mori → kirim 200m dulu
= Partial + Backorder

Backorder 100m + 2× vendor bill

Buat RFQ → Konfirmasi PO

  1. Purchase → Orders → Purchase Orders → New
  2. Isi VendorOrder Deadline (3 hari) → Receipt Date (otomatis dari lead time)
  3. Tab Order Lines → Add a product → pilih produk, qty, verifikasi harga auto-fill
  4. Klik Save
  5. Klik Send by Email → review PDF → Send → status "RFQ Sent"
  6. Klik Confirm Order
  • Nomor PO permanen muncul (P00001…)
  • Smart button Receipt muncul dengan angka "1"
  • Status Receipt = "Waiting"

Validasi Receipt & Buat Bill

📦 Receipt

  1. Klik smart button Receipt di PO
  2. Isi kolom Done = sama dengan Demand
  3. Klik Validate
  4. Verifikasi status = Done

💰 Vendor Bill

  1. Kembali ke PO → klik Create Bill
  2. Isi Bill Date + Bill Reference
  3. Verifikasi tidak ada warning 3-way matching
  4. Klik Confirm → status "Posted"

📸 SS6-03-po-confirmed.png (PO lengkap) + SS6-04-vendor-bill.png (Bill Posted, tanpa warning)

Approval Workflow

  1. Buat PO baru — pastikan total > Rp 3.000.000 (threshold BBS)
  2. Klik Confirm Order → status berubah ke "Waiting Approval"
  3. Cek chatter — log entry menunjukkan siapa & kapan

❌ Simulasi Penolakan

Login sebagai approver → buka PO → klik Refuse → isi alasan → status = Refused

✅ Kemudian Setujui

Buat PO baru > threshold → approver klik Approve Order → status = Purchase Order (aktif)

📸 SS6-05-approval.png — (1) PO "Waiting Approval" + (2) PO setelah approved

Backorder Handling

  1. Buat PO: 300m Kain Mori → Confirm Order
  2. Buka Receipt → isi Done = 200 (bukan 300)
  3. Klik Validate → dialog muncul: "What to do with remaining 100?"
  4. Klik "Create Backorder"

✅ Receipt 1: Done (200m)

✅ Receipt 2 (backorder): Waiting (100m)

✅ PO → Received Qty = 200/300

⚠️ Jangan klik "No Backorder" kecuali vendor konfirmasi tidak akan kirim sisa!

⚠️ Input qty yang benar-benar diterima — jangan inflate!

Bill + Selesaikan Backorder

Bill #1 (200m)

  1. PO → Create Bill
  2. Qty otomatis = 200 (sesuai Receipt)
  3. Three-way matching ✅
  4. Confirm

Selesaikan Backorder

  1. PO → smart button Receipt (menunjukkan "2")
  2. Buka Receipt Waiting → Done = 100
  3. Validate → PO Received = 300 ✅
  4. Create Bill untuk sisa 100m

📸 SS6-06-backorder.png — (1) PO partial receipt + (2) Backorder Receipt otomatis

04
Langkah 4 · 15 min

Reorder Rules
& RFQ Otomatis

🎯 Konfigurasi reorder rule + simulasi scheduler

Konfigurasi & Simulasi

  1. Inventory → Operations → Replenishment → New
  2. Isi data reorder rule:
FieldNilai BBS
ProductKain Mori Putih 115cm
LocationWH/Stock
RouteBuy
Min Quantity150 meter
Max Quantity500 meter
Quantity Multiple50 meter
  1. Simpan → klik Order Once atau Run Scheduler
  2. Purchase → Orders → Purchase Orders → filter status = RFQ
  3. Verifikasi: RFQ Draft baru otomatis terbuat untuk vendor prioritas
📸 SS6-07-reorder-rfq.png — Reorder rule + RFQ Draft otomatis

Reorder Tidak Bekerja?

⚠️ RFQ tidak terbuat setelah Run Scheduler

✅ Cek: Stok aktual > Min Quantity → naikkan Min Qty sementara di atas stok aktual, run scheduler, kembalikan nilai normal

⚠️ Route tidak tersedia

✅ Cek: Produk → tab Inventory → Route harus ada "Buy" → aktifkan multi-step routes di Inventory Settings jika belum ada

💡 Reorder Rules bukan "autopilot" — RFQ tetap Draft dan perlu review manusia sebelum dikonfirmasi menjadi PO. Ini desain keamanan, bukan bug.

05
Langkah 5 · 15 min

Purchase
Reporting

🎯 Jawab 3+ pertanyaan bisnis dari data hari ini

2 Laporan Utama

📊 Purchase Analysis

  1. Q1: Mode Graph (Bar) → Group By: Vendor → Measure: Total → "Vendor mana terbesar?"
  2. Q2: Mode Pivot → Group By: Product → Measures: Qty Ordered + Received + Billed → "Gap ordered vs received?"

📸 SS6-08 + SS6-09

📅 Aged Payable

  1. Identifikasi vendor dengan tagihan Not Due
  2. Cek apakah ada utang lewat jatuh tempo (bucket 0–30+)

📸 SS6-10

⚠️ Vendor Bills yang masih Draft tidak muncul di Aged Payable — pastikan sudah klik Confirm (status Posted).

Jawab dari Laporan

PertanyaanJawaban dari Laporan
Berapa total nilai pembelian yang diproses hari ini?[isi dari Purchase Analysis]
Produk partial delivery: berapa diterima vs outstanding?[isi dari Pivot Table]
Ada Vendor Bill jatuh/mendekati tempo?[isi dari Aged Payable]
2 vendor produk sama — mana harga lebih baik?[isi dari Avg Cost]
Checkpoint Final: Isi tabel di atas sebagai bagian deliverable Laporan P2P

Adaptasi per Tipe UMKM

AspekF&B / KafeManufakturRetailJasa
Billing PolicyReceivedReceivedReceivedOrdered
Approval ThresholdRp 2–5 jtRp 3–8 jtRp 5–10 jtRp 10–20 jt
Blanket OrdersYa (kopi)Ya (bahan baku)JarangTidak
Reorder RulesYa (rutin)Ya (produksi)Ya (fast-moving)Tidak
BackorderJarangSeringKadangN/A
3-Way MatchSedangSangat tinggiTinggiRendah

💡 Hybrid UMKM? Jika mitra Anda gabungan (misal kafe + roastery), baca dua kolom yang relevan dan gabungkan elemen sesuai konteks bisnis.

Deliverables

#ItemFormat
1SS6-01 s/d SS6-10 (10 screenshot)PNG
2Catatan Konfigurasi PurchaseTXT/DOC — template dari lab
3Laporan P2P Cycle (½ halaman naratif)DOC
4Tabel Pertanyaan Analisis (Langkah 5)Bagian dari laporan

Catatan Konfigurasi berisi:

• Billing Policy + alasan • Approval Threshold + alasan • Blanket Orders aktif/tidak + alasan • Vendor Pricelist per produk (harga, min, LT) • Reorder Rule (min/max/multiple) • Catatan khusus perbedaan vs BBS benchmark

Rubrik Penilaian

KriteriaBaik (3)Cukup (2)Kurang (1)
Ketepatan KonfigurasiSemua settings benar + sesuai UMKM70% benar< 70% benar
Kelengkapan DataSemua vendor + pricelist terisiField wajib terisiBanyak kosong
P2P Cycle3 skenario lengkap + 3-way matching2 skenario selesai1 skenario / tidak tuntas
DokumentasiScreenshot + penjelasan lengkapScreenshot sajaTidak lengkap
Ketepatan WaktuSelesai tepat waktu+15 minTidak selesai
Kerjasama TimSemua kontribusiSebagian aktif1 orang dominan

Troubleshooting Quick Ref

PO langsung aktif tanpa Waiting Approval

✅ Cek Settings → Purchase → Approval aktif? → Nilai PO > threshold?

Harga tidak terisi otomatis di Order Lines

✅ Buka produk → tab Purchase → pastikan vendor sudah ada di Vendor Prices (harga ≠ 0)

Dialog backorder tidak muncul saat Validate

✅ Kolom Done harus < Demand. Jika Done = Demand → tidak ada partial.

Three-way matching warning di Vendor Bill

✅ Harga/qty di Bill ≠ PO/Receipt → sesuaikan qty Bill dengan Receipt Done quantity

Preview Minggu Depan

BAB 07

Inventory & Warehouse Management

📦

Warehouse Config
Lokasi, routes, multi-step

🔄

Stock Moves
Transfer internal, adjustment

📊

Inventory Reports
Stock valuation, forecasting

PR: Pelajari alur gudang UMKM mitra — lokasi penyimpanan, proses bongkar muat, stock opname terakhir

Selamat
Praktikum!

Dari RFQ hingga Payment — Anda baru saja memproses siklus pengadaan lengkap yang digunakan perusahaan di seluruh dunia.

Sistem Informasi Enterprise — ERP Odoo 19.0
dengan Real UMKM Partner Program