Lab 4 · ทฤษฎีที่เกี่ยวข้อง: บทที่ 4a/4b
Purchase App: Requisition ถึง Payment ใน Odoo
RFQ → Purchase Order → Receipt → Vendor Bill → Payment — ฝั่งตรงข้ามของ Lab 3 พอดี บริษัทเดียวกันสวมบทบาท "ผู้ซื้อ" แทน "ผู้ขาย"
🎯
เป้าหมาย: สร้างและยืนยัน RFQ/PO หนึ่งใบ รับสินค้าเข้าคลัง สร้าง Vendor Bill พร้อมตรวจสอบ 3-way match และบันทึกจ่ายเงิน
1Request for Quotation (RFQ) → Purchase Order
ขั้นตอน
- เปิดแอป Purchase → New
- เลือก Vendor = "Spy Gear Supplies" (จาก Lab 2)
- เพิ่มบรรทัด: "Bicycle Frame — Aluminum" จำนวน 100 ชิ้น
- สังเกตสถานะเอกสาร RFQ (Request for Quotation) — เทียบเท่าขั้นตอนก่อน Order Processing ในบทที่ 4b ที่ยังไม่มีข้อผูกพัน
- กด Confirm Order — สถานะเปลี่ยนเป็น Purchase Order
จุดที่ Odoo รวบขั้นตอนเข้าด้วยกัน
ทฤษฎีบทที่ 4b แยก Requirements Determination (สร้าง Purchase Requisition) ออกจาก Source of Supply Determination (เลือกซัพพลายเออร์) และ Order Processing (สร้าง PO) เป็นสามขั้นตอนต่างกัน — Odoo ไม่มี object "Purchase Requisition" แยกต่างหากใน Community edition (มีเพิ่มเติมผ่านโมดูล "Purchase Requisition/Requests" ที่ต้องติดตั้งเสริม) ปกติผู้ใช้ Odoo จะสร้าง RFQ ตรงจากความต้องการเลย ข้ามขั้นตอน "คำขอที่ยังไม่ผูกกับซัพพลายเออร์" ไปเลย — เป็นตัวอย่างที่ดีของการที่ระบบ ERP แบบเบากว่าตัดขั้นตอนที่ไม่จำเป็นสำหรับธุรกิจขนาดเล็ก-กลางออกไป2Receipt ≈ Goods Receipt
ขั้นตอน
- จาก Purchase Order ที่ confirm แล้ว คลิกปุ่ม Receipt (smart button)
- ดูเอกสาร Receipt (Stock Picking ประเภท Incoming) — เทียบเท่า Goods Receipt ในบทที่ 4b
- กด Validate
ตรวจผลลัพธ์ทางบัญชี
ไปที่ Inventory → Reporting → Valuation หรือ Accounting → Journal Entries — จะเห็นรายการที่ตรงกับทฤษฎีบทที่ 4b: บัญชี Stock/Inventory ถูกเดบิต คู่กับบัญชี Stock Interim (Received) ที่ถูกเครดิต ซึ่งเทียบเท่ากับบัญชี GR/IR ของ SAP ที่อธิบายในทฤษฎี — บัญชีนี้จะถูกเคลียร์เมื่อสร้าง Vendor Bill ในขั้นถัดไป (เทียบเท่าตอน Invoice Verification เดบิตปิดยอด GR/IR)3Vendor Bill ≈ Invoice Verification (Three-Way Match)
ขั้นตอน
- กลับไปที่ Purchase Order กด Create Bill
- ตรวจสอบว่าปริมาณในบิลตรงกับปริมาณที่ระบุใน PO และปริมาณที่รับจริงจาก Receipt
- กด Confirm
Bill Control: กลไก Three-Way Match ของ Odoo
ไปที่ Purchase → Configuration → Settings ดูตัวเลือก Bill Control — ถ้าตั้งเป็น "Ordered quantities" ระบบจะยอมให้สร้าง bill ตามปริมาณที่สั่งได้เลย (คล้าย Two-Way Match: PO+Invoice) ถ้าตั้งเป็น "Received quantities" ระบบจะบังคับให้ bill อ้างอิงปริมาณที่รับจริงเท่านั้น (เทียบเท่า Three-Way Match เต็มรูปแบบ: PO + Receipt + Invoice ตามทฤษฎีบทที่ 4b) — ลองเปลี่ยนการตั้งค่านี้แล้วสังเกตพฤติกรรมที่เปลี่ยนไปเมื่อพยายามสร้าง bill ก่อน validate receiptทดลอง: จงใจให้ปริมาณไม่ตรงกัน
ลองแก้ Receipt ให้รับของจริงแค่ 95 ชิ้น (จาก PO ที่สั่ง 100) แล้วสร้าง Vendor Bill ด้วยการตั้งค่า Bill Control = "Received quantities" — สังเกตว่า Odoo จะเสนอบิลตามยอดที่รับจริง (95) ไม่ใช่ยอดที่สั่ง (100) โดยอัตโนมัติ — นี่คือกลไก Three-Way Match ที่ทำงานจริง ตรงกับสิ่งที่ทฤษฎีบทที่ 4b อธิบายว่า "ตรวจสอบว่าปริมาณและราคาตรงกันทั้งสามเอกสาร"4Register Payment
เปิด Vendor Bill ที่ confirm แล้ว กด Register Payment — ตรวจ Journal Items จะเห็นบัญชี Accounts Payable ถูกเดบิต และบัญชี Bank ถูกเครดิต ตรงกับทฤษฎีบทที่ 4b พอดี (ทิศทางตรงข้ามกับฝั่ง Fulfillment ใน Lab 3 เพราะตอนนี้บริษัทเป็น "ลูกหนี้" ไม่ใช่ "เจ้าหนี้")
5สรุปการเทียบคำศัพท์
| ขั้นตอนทฤษฎี (บทที่ 4b) | ปุ่ม/เอกสารใน Odoo |
|---|---|
| Requirements Determination (Purchase Requisition) | ไม่มีใน Community โดยตรง — ข้ามไปสร้าง RFQ เลย |
| Source of Supply Determination | เลือก Vendor ตอนสร้าง RFQ |
| Order Processing | ปุ่ม Confirm Order (RFQ → PO) |
| Goods Receipt | Receipt (Stock Picking) + ปุ่ม Validate |
| Invoice Verification (Three-Way Match) | Create Bill + การตั้งค่า Bill Control |
| Payment Processing | ปุ่ม Register Payment |
เช็คลิสต์ก่อนไป Lab 5
- สร้างและ confirm PO สำเร็จหนึ่งใบ
- Validate Receipt สำเร็จ และเห็นสต็อกวัตถุดิบเพิ่มขึ้น
- ทดลองตั้งค่า Bill Control ทั้งสองแบบและสังเกตความต่าง
- สร้าง Vendor Bill และ Register Payment สำเร็จ
- อธิบายความต่างของทิศทางเดบิต/เครดิตระหว่าง Lab 3 (Fulfillment) กับ Lab 4 (Procurement) ได้