กระบวนการและการควบคุม
รับของไม่ครบ คืนบางส่วน และปิด PO ต้องเหลือหลักฐานอะไร
รักษา ordered, accepted, returned, invoiced และ short-closed quantity แยกกัน พร้อมเหตุผลและผู้ตัดสินใจแทนการแก้ยอดย้อนหลัง
ถ้า PO สั่ง 20 ชิ้น รับ 15 ชิ้น แล้ว supplier แจ้งว่าอีก 5 ชิ้นจะไม่ส่งต่อ ระบบไม่ควรแก้จำนวน PO เหลือ 15 เพื่อให้ดูเหมือนรับครบ เพราะจะสูญเสียหลักฐานว่าครั้งแรกตกลงซื้อ 20 และภายหลังเกิด short-close
บทความนี้ใช้ ERPNext Purchase Receipt/Purchase Invoice เป็นตัวอย่างการออกแบบ ไม่ใช่ข้อบังคับว่าทุกองค์กรต้องใช้เอกสารหรือสถานะชุดเดียวกัน
เก็บ ordered, received, accepted, rejected และ returned แยกกัน
การรับของจริงอาจมีของเสียหรือไม่ผ่านตรวจ จึงควรแยกจำนวนที่มาถึง จำนวนที่ยอมรับ และจำนวน rejected แทนการบันทึก received = ordered ทุกครั้ง ERPNext Purchase Receipt รองรับ Accepted Warehouse และ Rejected Warehouse และอัปเดต pending quantity กลับไปยัง Purchase Order
จำนวนที่แยกชัดทำให้จัดซื้อรู้ว่ายังรอส่งอีกเท่าไร คลังรู้ว่าใช้งานได้เท่าไร และฝ่ายบัญชีตรวจ invoice กับของที่รับจริงได้โดยไม่ต้องย้อนถามความจำของผู้รับของ
แหล่งอ้างอิง: [1]
คืนบางส่วนต้องอ้างถึง receipt เดิมและเหตุผลการคืน
ถ้ารับ 15 แล้วภายหลังพบว่า 2 ชิ้นเสีย ให้สร้าง return ที่อ้าง receipt เดิม ระบุจำนวน 2 ชิ้น เหตุผล หลักฐาน และวันที่ ไม่ควรแก้ receipt เดิมจาก 15 เป็น 13 เพราะจะทำให้ไม่เห็นว่าเคยรับสินค้าเข้าจริงแล้วจึงคืนภายหลัง
ERPNext Purchase Receipt สามารถสร้าง Purchase Return หลัง submit และรองรับ rejected items/return flow นี่เป็นตัวอย่างของการรักษา event lineage แทนการ overwrite ประวัติ
แหล่งอ้างอิง: [1]
ปิด PO คงเหลือเมื่อยืนยันแล้วว่าจะไม่รับหรือไม่บิลต่อ
ถ้าผู้ขายยืนยันว่าจะไม่ส่ง 5 ชิ้นที่เหลือ ให้ผู้มีสิทธิ์ short-close พร้อม reason และ evidence เช่น email/ข้อความยืนยันจากผู้ขาย แล้วคง ordered quantity เดิมไว้ใน history เพื่อบอกว่าขอบเขต commitment เปลี่ยนภายหลัง
ERPNext ระบุสถานะ Closed ของ Purchase Receipt/PO flow สำหรับ short-closing เช่นสั่ง 20 แต่ปิดที่ 15 เมื่อส่วนที่เหลือจะไม่รับหรือไม่บิล แนวคิดสำคัญคือ close เป็นการตัดสินใจ ไม่ใช่การแก้ความจริงย้อนหลัง
แหล่งอ้างอิง: [1]
Invoice ต้องตรวจ quantity/rate กับ receipt และ PO ที่เกี่ยวข้อง
ถ้า supplier invoice เรียกเก็บ 20 แต่รับและยอมรับเพียง 15 ให้เปิด exception แทนการแก้ receiving data ให้ตรง invoice ERPNext Purchase Invoice สามารถสร้างจาก PO หรือ Purchase Receipt และให้ผู้ใช้ตรวจ Accepted Qty, Rate, UOM และ linked rows ก่อน submit
เมื่อ invoice บิลเพียงบางส่วน ระบบควรรักษายอด billed และ outstanding แยกจาก pending receipt เพราะ “ยังไม่บิล” กับ “ยังไม่รับ” ไม่ใช่เหตุการณ์เดียวกัน
แหล่งอ้างอิง: [2]
หลักฐานปิดรายการควรตอบได้ว่าเกิดอะไรกับส่วนต่างทุกหน่วย
ก่อนปิด PO ให้สรุป ordered, accepted, returned, invoiced และ cancelled/short-closed quantity ให้ reconcile กัน พร้อมรายการ exception ที่ยังเปิดอยู่ ถ้ายอดไม่สมดุลต้องบอกได้ว่ากำลังรอ shipment, credit note, return confirmation หรือ approval ใด
เกณฑ์ผ่าน UAT ควรมีอย่างน้อยรับบางส่วน, rejected on receipt, return after receipt, partial invoice และ short-close เพื่อให้มั่นใจว่าระบบไม่ได้รองรับเฉพาะ happy path
เช็กลิสต์เริ่มต้น
- แยก ordered/received/accepted/rejected/returned quantity
- ให้ return อ้าง receipt เดิมและเก็บเหตุผล
- ใช้ short-close พร้อมผู้อนุมัติแทนการแก้ ordered quantity ย้อนหลัง
- ตรวจ invoice quantity/rate/UOM กับ receipt และ PO
- UAT partial receipt, rejection, return, partial billing และ short-close
นำไปใช้กับธุรกิจของคุณ
วงจรจัดซื้อที่ตรวจสอบได้ไม่พยายามทำให้ทุกยอดเท่ากัน แต่รักษาเหตุการณ์แต่ละขั้นไว้ แล้วอธิบายส่วนต่างด้วย status, reason และ evidence ที่ชัดเจน
แหล่งอ้างอิง
- Frappe. (n.d.). Purchase Receipt. สืบค้น 1 ตุลาคม 2026.
- Frappe. (n.d.). Purchase Invoice. สืบค้น 1 ตุลาคม 2026.
แหล่งอ้างอิงรองรับข้อความที่ระบุหมายเลข ส่วนตัวอย่างและแนวทางปฏิบัติเป็นข้อเสนอของ Linda ไม่ใช่ผลลัพธ์ที่รับรองจากลูกค้าจริง
บทความนี้เป็นแนวทางออกแบบงานและตัวอย่างเพื่อการเรียนรู้ ไม่ใช่คำวินิจฉัยบัญชี ภาษี กฎหมาย หรือการรับรองความพร้อมของทุกโมดูล การนำไปใช้ต้องพิจารณาธุรกิจ สิทธิ์ผู้ใช้ และขอบเขตระบบจริง