Odoo HR & Payroll จัดการเงินเดือน ประกันสังคม และภาษีสำหรับ SME ไทย
Odoo HR & Payroll ทำให้การจ่ายเงินเดือนพนักงานและการหักภาษีถูกต้องตามกฎหมายไทยไม่ใช่งานที่ต้องนั่งคำนวณด้วย Excel ทุกเดือน บทความนี้อธิบายว่า module ทั้งสองทำงานอย่างไร SME ไทยได้ประโยชน์อะไร และตั้งค่าตั้งแต่ต้นทีละขั้นอย่างไร
Odoo HR & Payroll คืออะไร
Odoo HR & Payroll ประกอบด้วย 2 module ที่ทำงานร่วมกัน
Employees (HR) — จัดเก็บข้อมูลพนักงาน สัญญาจ้าง โครงสร้างองค์กร และการลาหยุด ทุกการเปลี่ยนแปลง เช่น ปรับเงินเดือนหรืองวดสัญญาใหม่ บันทึกในระบบมีประวัติย้อนหลังเสมอ
Payroll — สร้างสลิปเงินเดือน (Payslip) ตาม Salary Structure ที่ตั้งไว้ คำนวณทุก component ในสลิปตาม Salary Rules ได้แก่
- เงินเดือนพื้นฐาน (Basic Salary)
- ค่าล่วงเวลา (OT) และเบี้ยเลี้ยง
- ประกันสังคม (หักฝั่งลูกจ้าง 5% สูงสุด 750 บาท/เดือน)
- ภาษีเงินได้บุคคลธรรมดา PND1 (อัตราก้าวหน้า 0–35%)
- เงินสมทบกองทุนสำรองเลี้ยงชีพ (ถ้ามี)
เมื่อ Confirm payslip ระบบสร้าง Journal Entry ส่งเข้า Odoo Accounting โดยอัตโนมัติ ไม่ต้องกรอกซ้ำ
ทำไม SME ไทยถึงยังใช้ Excel คำนวณเงินเดือน และปัญหาที่เกิดขึ้น
SME ส่วนใหญ่ยังใช้ Excel เพราะคุ้นเคยและไม่มีค่าใช้จ่าย แต่เมื่อจำนวนพนักงานเพิ่มขึ้น ปัญหาที่พบบ่อยคือ
- คำนวณผิด — สูตร Excel ที่ใครต่อใครแก้ไขสะสมไว้เกิดข้อผิดพลาดที่ตรวจสอบยาก โดยเฉพาะการคำนวณ PND1 แบบอัตราก้าวหน้าตามยอดสะสมรายปี
- กระทบยอดช้า — บัญชีต้องรับไฟล์ Excel จาก HR แล้ว re-key เข้าโปรแกรมบัญชีแยก เพิ่มโอกาสผิดพลาดและใช้เวลาหลายวัน
- ไม่มี audit trail — ถ้าตัวเลขในสลิปเดือนก่อนถูกแก้ ไม่มีบันทึกว่าใครแก้เมื่อไร
- วันลาสะสมผิด — ถ้า HR บันทึกวันลาในไฟล์แยก วันลาคงเหลือมักไม่ตรงกับความเป็นจริง
ประโยชน์ที่ SME ได้จากการใช้ Odoo Payroll
- คำนวณอัตโนมัติ ไม่ต้องทำสูตร Excel — ตั้ง Salary Rules ครั้งเดียว ระบบคำนวณทุกรอบให้อัตโนมัติ รวมถึงเงินเดือนปรับกลางเดือนและพนักงานเข้า-ออกระหว่างงวด
- ประกันสังคมและ PND1 ถูกต้องตามกฎหมาย — rule สำหรับ SSF และ PND1 ตั้งค่าได้ตรงตามอัตราที่กระทรวงแรงงานและกรมสรรพากรกำหนด
- Journal Entry เข้าบัญชีทันที — ไม่มีขั้นตอน re-key ระหว่าง HR กับ Finance ลด error และประหยัดเวลา (ผู้ให้บริการระบุ / ผลจริงขึ้นกับบริบท)
- Leave Balance แม่นยำ — วันลาเชื่อมกับ Payroll โดยตรง ถ้าพนักงานลาป่วยหรือลาพักร้อน ยอดสะสมลดทันทีและสะท้อนใน payslip รอบนั้น
- Payslip ส่ง email ได้ — พนักงานรับสลิปถึง inbox ไม่ต้องแจกเอกสาร
- Audit trail ครบ — ทุก payslip มีสถานะ Draft → Confirmed → Paid พร้อม log ว่าใคร Confirm เมื่อไร
วิธีตั้งค่า Odoo HR & Payroll สำหรับ SME ไทยทีละขั้น
ขั้นที่ 1: ติดตั้ง HR และ Payroll module
ไปที่ Apps ค้นหา Employees แล้วติดตั้ง จากนั้นค้นหา Payroll และติดตั้งเพิ่ม ระบบจะสร้าง menu Employees และ Payroll ขึ้นทันที
สำหรับ Thai Localization ตรวจสอบที่ Settings → Companies → [ชื่อบริษัท] ว่า Country ตั้งเป็น Thailand แล้ว เพื่อให้ระบบโหลด localization ที่ถูกต้อง
ขั้นที่ 2: สร้าง Salary Structure สำหรับองค์กร
ไปที่ Payroll → Configuration → Salary Structures กด New สร้าง Structure ชื่อ "พนักงานรายเดือน" เลือก Type เป็น Employee ระบบสร้าง rule Basic Salary ให้อัตโนมัติ
ถ้าองค์กรมีพนักงานหลายประเภท เช่น รายเดือน รายวัน หรือ part-time ให้สร้าง Structure แยกกันเพื่อให้ rule คำนวณตามฐานที่ต่างกัน
ขั้นที่ 3: ตั้งค่า Salary Rules สำหรับประกันสังคมและ PND1
ใน Salary Structure เพิ่ม Rule ใหม่สำหรับแต่ละ component
ประกันสังคม (ลูกจ้าง):
Category: Deductions
Computation: Python Expression
Code: result = min(contract.wage * 0.05, 750)
อัตรา 5% คำนวณจากค่าจ้างฐาน สูงสุดไม่เกิน 750 บาทต่อเดือน ตามที่กฎหมายประกันสังคมกำหนด
ภาษีเงินได้ PND1:
PND1 คำนวณแบบอัตราก้าวหน้า 0–35% จากรายได้สุทธิสะสมทั้งปีหลังหักค่าลดหย่อน Rule ส่วนนี้ซับซ้อนกว่า แนะนำให้ใช้ module Thai Payroll จาก OCA หรือ Odoo Partner ที่รองรับ localization สำหรับ Enterprise Edition มี Thai Payroll ให้ติดตั้งได้โดยตรงผ่าน Apps
ขั้นที่ 4: ตั้งค่า Leave Types และ Allocation
ไปที่ Time Off → Configuration → Leave Types สร้างประเภทการลาตามกฎหมายแรงงาน ได้แก่
| ประเภทการลา | ขั้นต่ำตามกฎหมาย | หมายเหตุ | |-------------|-----------------|---------| | ลาพักร้อน | 6 วัน/ปี | พนักงานที่ทำงานครบ 1 ปี | | ลาป่วย | 30 วัน/ปี | ลาป่วยได้รับค่าจ้าง | | ลากิจ | แล้วแต่นโยบายบริษัท | กฎหมายไม่บังคับ | | ลาคลอด | 98 วัน | นายจ้างจ่าย 45 วัน SSF อีก 45 วัน |
จากนั้นไปที่ Time Off → Managers → Allocation สร้าง Allocation ให้พนักงานหรือใช้ Accrual Plan ให้วันหยุดพักร้อนสะสมอัตโนมัติตามอายุงาน
ขั้นที่ 5: รัน Payroll และออก Payslip รายเดือน
ไปที่ Payroll → Payslips → Batch Payslips กด New ตั้งค่า
- Pay Period: เลือกเดือนที่ต้องการ (เช่น มิ.ย. 2026)
- Salary Structure: เลือก Structure ที่สร้างไว้
- Employees: เลือกทุกคนในรอบหรือกรองแผนก
กด Generate Payslips ระบบสร้าง draft payslip ให้พนักงานทุกคนพร้อมกัน
ตรวจสอบตัวเลขแต่ละสลิป ถ้าใครมี OT หรือโบนัส กรอกใน Other Inputs แล้วกด Compute Sheet เพื่ออัปเดต เมื่อตรวจสอบครบกด Confirm ทั้ง Batch
ขั้นที่ 6: บันทึก Journal Entry เข้า Accounting อัตโนมัติ
หลัง Confirm payslip แล้วใน Payslip Batch กด Make Accounting Entries ระบบสร้าง Journal Entry แยกบัญชีให้อัตโนมัติ
| รายการ | Debit | Credit | |--------|-------|--------| | ค่าแรงพนักงาน | Salaries Expense | — | | ประกันสังคม (นายจ้าง) | Social Security Expense | — | | เงินเดือนสุทธิที่จ่าย | — | Salaries Payable | | ประกันสังคมที่หัก (ลูกจ้าง + นายจ้าง) | — | SSF Payable | | ภาษีหัก ณ ที่จ่าย PND1 | — | Tax Withholding Payable |
บัญชีจะเห็น journal entry ใน Accounting module โดยไม่ต้องรับไฟล์จาก HR
สรุปและขั้นตอนถัดไป
Odoo HR & Payroll แก้ปัญหาหลักของ SME ไทยที่ใช้ Excel คำนวณเงินเดือน นั่นคือความผิดพลาดในการคำนวณ PND1 และการ re-key ข้อมูลซ้ำระหว่าง HR กับ Finance Salary Rules ตั้งค่าครั้งเดียวและใช้ได้ทุกรอบ Leave Balance อัปเดตอัตโนมัติเมื่อพนักงานลา และ Journal Entry เข้าบัญชีทันทีหลัง Confirm
หาก Accounting module ยังไม่ได้ตั้งค่า Thai Localization ให้อ่านบทความ Odoo Accounting คืออะไร? ระบบบัญชีอัตโนมัติ VAT และ WHT สำหรับ SME ไทย ก่อน เพราะ Payroll Journal Entry จะ post ไปยัง account ที่ตั้งไว้ใน Accounting configuration
คำถามที่พบบ่อย
Odoo Payroll รองรับประกันสังคมและ PND1 ของไทยได้ไหม
ได้ Odoo รองรับการหักประกันสังคมฝั่งลูกจ้าง 5% (สูงสุด 750 บาท/เดือน) และนายจ้าง 5% ผ่าน Salary Rules ที่ตั้งค่าได้ ส่วน PND1 (ภาษีเงินได้บุคคลธรรมดา) ตั้งเป็น rule คำนวณอัตราก้าวหน้า 0–35% ตามฐานเงินได้สะสม Odoo Enterprise พร้อม Thai Localization รองรับได้โดยตรง ส่วน Community อาจต้องใช้ OCA module เพิ่ม
Odoo Community (ฟรี) มี Payroll module ไหม
Odoo Community มี Payroll module พื้นฐานอยู่แล้ว แต่ Thai Localization สำหรับประกันสังคมและ PND1 ต้องติดตั้ง OCA (Odoo Community Association) module เพิ่มเติมเอง ฟีเจอร์ขั้นสูง เช่น Payslip Batch แบบ multi-company, Salary Attachment (อายัดเงินเดือน), และรายงาน PND1 ก. พร้อม export ไฟล์ DBD ต้องใช้ Enterprise Edition
ถ้าพนักงานมีค่าล่วงเวลา (OT) และโบนัส จัดการใน Odoo ได้อย่างไร
สร้าง Salary Rule แยกสำหรับ OT และโบนัสใน Salary Structure คำนวณ OT ได้จากจำนวนชั่วโมงที่บันทึกใน Attendance หรือใส่ตัวเลขโดยตรงใน payslip ส่วนโบนัสตั้งเป็น Other Input ให้ HR กรอกจำนวนในแต่ละรอบ ระบบจะรวมทุก component เข้าในสลิปเงินเดือนอัตโนมัติและหัก ภาษีตามฐานที่เพิ่มขึ้น
Payslip ใน Odoo ส่งให้พนักงานผ่าน email ได้ไหม
ได้ เมื่อ Confirm payslip แล้วสามารถกด Send by Email ให้ระบบส่ง PDF สลิปเงินเดือนถึง email พนักงานโดยตรง ใน Odoo Enterprise ยังมี Employee Self-Service Portal ให้พนักงานเข้าดู payslip ย้อนหลังเองได้โดยไม่ต้องรบกวน HR