> คู่มือนี้เป็นแผนการสอนและชุด Workshop จำลองเท่านั้น ทุกแอป ไฟล์ และผลลัพธ์เป็น Classroom Prototype จากข้อมูลสังเคราะห์ ไม่ใช่ระบบ Payroll, Accounting, Storefront หรือเครื่องมือ Production และห้ามใช้กับงานจริง

# HR Payroll Sandbox

Local-only Day 2 training prototype for synthetic `regular-monthly` employees in the Bangkok 2026 rule scope. It calculates draft gross pay, estimated employee SSO, estimated PIT withholding, deductions, net pay, a reconciliation summary, and exception evidence. It cannot send a payslip, pay an employee, file a form, remit to an agency, store browser data, or call a remote service.

## Start locally

```bash
node serve.mjs
```

Open `http://127.0.0.1:4177`. The Node server binds to loopback only and reads `rules.json` and `test-cases.json` from this folder. All employee names, codes, and amounts are fictional training data.

## Human review boundary

Classroom Prototype นี้ใช้ข้อมูลสังเคราะห์เพื่อการเรียนรู้เท่านั้น ไม่ใช่คำแนะนำด้านภาษีหรือกฎหมาย ตัวเลขภาษีและประกันสังคมเป็นประมาณการ ตลอดหลักสูตรห้ามจ่ายเงินจริง ส่งหรือมอบ Payslip ให้พนักงาน ยื่นแบบ นำส่งหน่วยงานรัฐ ส่งข้อมูลเข้าสู่ระบบหรือหน่วยงานใด หรือใช้ artifact ในกระบวนการ Payroll จริงโดยเด็ดขาด การตรวจของ HR/Payroll/Finance เป็นเพียงหลักฐานในชั้นเรียน และไม่อนุญาตให้นำ artifact ไปใช้ปฏิบัติงานจริง

The screen, print layout, Payroll Summary CSV, and Exception Log CSV repeat this boundary. These files are classroom review evidence only. Human review does not convert them into operational payroll records or authorize employee delivery, payment, filing, or submission. Any later operational project requires separate design, validation, governance, and approval outside this course.

## Source hierarchy

1. An approved, effective local rule record with reviewer, scope, and date.
2. Official Revenue Department, Social Security Office, Ministry of Labour, and Personal Data Protection Committee references stored in `rules.json`.
3. The twelve independent golden scenarios in `test-cases.json`.
4. The pure calculation functions and reconciliation check in `logic.mjs`.

If a mapping, evidence reference, supported class, approved rule, source URL, effective date, reviewer, or non-negative net result is missing, the calculation returns `blocked` with an exception. The classroom rule values are examples and must not be treated as current legal advice.
