JBAC Bank ← หน้าคู่มือ

คู่มือการใช้งาน — JBAC Bank

ระบบบัญชีรับ–จ่าย–แลกเปลี่ยนเงินบาท (THB) และ USDT สำหรับทีมงานภายใน ออกแบบสำหรับ มือถือเป็นหลัก (ติดตั้งเป็นแอปผ่าน "เพิ่มไปยังหน้าจอโฮม" ได้)

📊 ดูแผนภาพระบบแบบอินเทอร์แอกทีฟ: jbac-bank-architecture.html


1. บทบาทและสิทธิ์

บทบาท บัญชีตัวอย่าง ทำอะไรได้
เจ้าของ (OWNER) admin@jbac.work ทุกอย่าง: อนุมัติ · เพิ่ม/ลบบัญชี · เพิ่ม/แก้ไข/ลบผู้ใช้ · รีเซ็ตรหัสและลายเส้น · ดู audit
การเงิน (FINANCE) account@jbac.work สร้าง/ส่งอนุมัติรายการ · ขอกลับรายการ · เพิ่ม/ลบบัญชี · ออกรายงาน · แนบหลักฐาน
ผู้ตรวจสอบ (VIEWER) audit@jbac.work อ่านภาพรวม/ประวัติ/รายงาน และ audit log — สร้างหรือแก้ไขไม่ได้

ระบบตรวจสิทธิ์ที่เซิร์ฟเวอร์ทุกคำขอ (ไม่ใช่แค่ซ่อนปุ่มในหน้าจอ)


2. เข้าสู่ระบบครั้งแรก

หน้าเข้าสู่ระบบ — กรอกอีเมลและรหัสผ่านเริ่มต้น

▲ หน้าเข้าสู่ระบบ — กรอกอีเมลและรหัสผ่านเริ่มต้น

ตั้งลายเส้น 9 จุด — วาดสองครั้งให้ตรงกัน

▲ ตั้งลายเส้น 9 จุด — วาดสองครั้งให้ตรงกัน

เมื่อตั้งรหัสผ่านและลายเส้นเสร็จ ระบบจะแสดงป๊อปอัปให้บันทึกแอปลงหน้าจอโฮม (แสดงครั้งเดียวต่อเครื่อง และไม่แสดงถ้าเปิดจากแอปที่ติดตั้งแล้ว)

ป๊อปอัปบันทึกแอปลงหน้าจอโฮม

▲ ป๊อปอัป "บันทึกแอปลงหน้าจอมือถือ" — บอกวิธีตามแพลตฟอร์ม พร้อมปุ่มคัดลอกลิงก์

เปิดป๊อปอัปนี้อีกครั้งได้ที่ ตั้งค่า → แอปบนมือถือ → บันทึกแอปลงหน้าจอโฮม

  1. เปิด /login → กรอกอีเมล + รหัสผ่านเริ่มต้น admin@pass2026
  2. ระบบบังคับ "ตั้งรหัสผ่านใหม่" (อย่างน้อย 8 ตัวอักษร และต้องไม่ซ้ำรหัสเดิม)
  3. ระบบพาไปหน้า "ตั้งลายเส้นปลดล็อก" → ลากผ่านจุดอย่างน้อย 4 จุด แล้ววาดซ้ำอีกครั้งให้ตรงกัน
  4. เข้าสู่หน้าภาพรวม

ระหว่างที่ยังไม่เปลี่ยนรหัส ระบบจะไม่ยอมให้เข้าใช้งานหน้าอื่น (เด้งกลับหน้าล็อกอิน)

3. เข้าสู่ระบบครั้งถัดไป

หน้าปลดล็อกด้วยลายเส้น พร้อมทางออกกรณีลืม

▲ หน้าปลดล็อกด้วยลายเส้น พร้อมทางออกกรณีลืม


4. เมนูหลัก

แถบเมนูล่าง 5 ปุ่ม — ปุ่มที่ใช้งานอยู่ไฮไลต์สีฟ้า

▲ แถบเมนูล่าง 5 ปุ่ม — ปุ่มที่ใช้งานอยู่ไฮไลต์สีฟ้า

เมนู (มือถือ) หน้า ใช้ทำอะไร
หน้าหลัก / ดูยอดคงเหลือ สรุปวันนี้ กราฟ 7 วัน รายการล่าสุด
ทำรายการ /transactions/new บันทึกรับเงิน / แลกเงิน / จ่ายออก
รายงาน /reports รายวัน · รายเดือน · รายปี
ผู้ใช้งาน /members ดูสมาชิก (เจ้าของจัดการได้)
ตั้งค่า /settings ข้อมูล workspace นโยบาย เซสชัน

บนเดสก์ท็อปมีแถบด้านข้างเพิ่ม ประวัติ, รออนุมัติ, บัญชี และเมนู ☰ เปิดรายการทั้งหมด


5. ภาพรวม (Dashboard)

ภาพรวม: การ์ดยอดเงิน · ปุ่มลัด · สรุปรายวัน · กราฟ 7 วัน

▲ ภาพรวม: การ์ดยอดเงิน · ปุ่มลัด · สรุปรายวัน · กราฟ 7 วัน


6. ทำรายการ

หน้าทำรายการ: การ์ดเลือกประเภท · ช่องจำนวนเงิน · ปุ่มบันทึกติดล่าง

▲ หน้าทำรายการ: การ์ดเลือกประเภท · ช่องจำนวนเงิน · ปุ่มบันทึกติดล่าง

เลือกประเภทจาก 3 การ์ด: รับเงิน (THB) · แลกเงิน THB→USDT · จ่ายออก (THB/USDT)

ฟิลด์ร่วม

วันที่ทำรายการ (ปฏิทิน) · เลขอ้างอิง (ไม่บังคับ, ≤120 ตัวอักษร) · หมายเหตุ (≤2000) · หลักฐานแนบ

6.1 รับเงิน (THB)

บัญชีรับเงิน · จำนวนเงิน (จำนวนเต็ม)

6.2 จ่ายออก

สกุลเงินที่จ่าย · บัญชีต้นทาง · ยอดจ่าย · ค่าธรรมเนียม ระบบแสดง ยอดตัดจากบัญชี = เงินต้น + ค่าธรรมเนียม ให้เห็นก่อนบันทึก

6.3 แลกเงิน THB → USDT

ฟิลด์ คำอธิบาย
บัญชีต้นทาง / ปลายทาง ต้องเป็นคนละบัญชี
รูปแบบค่าธรรมเนียม เพิ่มจากเงินแลก (จ่ายเพิ่ม) หรือ รวมอยู่ในยอดเงินบาท (หักจากยอด)
ยอดเงินบาทที่กรอก ตามรูปแบบค่าธรรมเนียมที่เลือก
เรท (THB ต่อ 1 USDT) ใส่ทศนิยมได้ (เช่น 33.50)
USDT สุทธิที่ได้รับจริง ยืนยันจากหลักฐานจริง — กด "ใช้ค่าประมาณ" เพื่อเติมค่าคำนวณได้
คู่ค้า บังคับ

สูตรที่ระบบใช้

รูปแบบ ADDITIONAL      : เงินต้น = ยอดที่กรอก, ตัดบัญชี = เงินต้น + ค่าธรรมเนียม
รูปแบบ INCLUDED_IN_TOTAL: เงินต้น = ยอดที่กรอก − ค่าธรรมเนียม
ประมาณการ USDT          = floor(เงินต้น ÷ เรท)
เรทจริง (implied)        = เงินต้น ÷ (USDT สุทธิ + ค่าธรรมเนียม USDT)

ตัวอย่าง: แลก 300,000 บาท ค่าธรรมเนียม 500 เรท 33.50 (แบบเพิ่มค่าธรรมเนียม) → ตัดบัญชี 300,500 บาท, ได้ประมาณ 8,955 USDT (ปัดลง)

6.4 หลักฐานแนบ

6.5 บันทึกและส่งอนุมัติ

  1. กด "บันทึกฉบับร่าง" → ระบบสร้างรายการสถานะ ฉบับร่าง
  2. หน้าตรวจสอบแสดงสรุป → กด "ส่งอนุมัติ" → สถานะ รออนุมัติ
  3. ฉบับร่างยังไม่กระทบยอดคงเหลือ

7. อนุมัติ (maker-checker)

คิวอนุมัติ: ตรวจรายละเอียดก่อนกดอนุมัติหรือตีกลับ

▲ คิวอนุมัติ: ตรวจรายละเอียดก่อนกดอนุมัติหรือตีกลับ


8. ประวัติรายการ


9. รายงาน

รายงานรายเดือน: เลือกเดือน · สรุป 4 ตัวเลข · คงเหลือสิ้นเดือน

▲ รายงานรายเดือน: เลือกเดือน · สรุป 4 ตัวเลข · คงเหลือสิ้นเดือน

แท็บ เนื้อหา
รายเดือน (ค่าเริ่มต้น) เลือกปี + 12 ปุ่มเดือน · สรุป 4 ช่อง (รับเข้า THB / แลกเป็น USDT / จ่ายออก THB / จ่ายออก USDT) · ยอดคงเหลือสิ้นเดือน · ตารางรายวัน
รายวัน เลือกวันที่ → ยอดยกมา/รับ/จ่าย/ยกไป ต่อบัญชี + ยอดรวมต่อสกุล
รายปี เคลื่อนไหวสุทธิ 12 เดือน แยกสกุลเงิน

รายงานอ่านจาก รายการที่บันทึกแล้วเท่านั้น และอ้างอิง ledger เดียวกันกับหน้าภาพรวม


10. บัญชี

หน้าบัญชี: เพิ่มเลขบัญชีและดูลยอดรายบัญชี

▲ หน้าบัญชี: เพิ่มเลขบัญชีและดูลยอดรายบัญชี


11. ผู้ใช้งาน

หน้าผู้ใช้งาน: สรุปตามบทบาท · การ์ดสมาชิก · ปุ่มจัดการ

▲ หน้าผู้ใช้งาน: สรุปตามบทบาท · การ์ดสมาชิก · ปุ่มจัดการ

เฉพาะ เจ้าของ จัดการได้ (คนอื่นเห็นแบบอ่านอย่างเดียว)


12. ตั้งค่า


13. กฎที่ระบบบังคับ (สำคัญ)

กฎ ผลกับผู้ใช้
เงินเป็น จำนวนเต็ม (ไม่ใส่ทศนิยม) กรอกทศนิยมจะถูกปฏิเสธ — เรทเป็นข้อยกเว้น ใส่ทศนิยมได้
ต้องมีผู้อนุมัติที่ไม่ใช่ผู้สร้าง อนุมัติเองไม่ได้
ห้ามยอดติดลบทุกวัน บันทึกย้อนหลังที่ทำให้ยอดติดลบจะถูกปฏิเสธ
ledger แก้ไขย้อนหลังไม่ได้ ต้อง "กลับรายการ" (reversal) แทน
งวดที่ปิดแล้วลงย้อนหลังไม่ได้ ระบบแจ้งว่างวดปิด
หลักฐาน ≤ 5 MB, รูป/PDF ไฟล์อื่นถูกปฏิเสธ
ผิดลายเส้น 3 ครั้ง กลับไปล็อกอินด้วยอีเมล

14. ข้อจำกัดที่ยังไม่มีในรุ่นนี้


15. ภาคผนวก — สำหรับผู้ดูแลระบบ

คำสั่งที่ใช้บ่อย

npm run dev            # พัฒนา
npm run build && npm start
npm run check          # type-check + unit + integration
npm run check:http     # ทดสอบ HTTP กับเซิร์ฟเวอร์ที่รันอยู่

Endpoint หลัก (/api/v1): auth/login, auth/pattern, auth/pattern-login, auth/change-password, bootstrap, transactions, members, accounts, attachments, reports, audit, health

ข้อมูลตัวอย่างที่ติดตั้งมาพร้อมระบบ

รายการ ค่า
บัญชี THB กระเป๋าหลัก 250,000 · บัญชีสำรอง 120,000
แลกไปแล้ว 300,000 THB → 8,955.22388059 USDT (เรท 33.50)
ยอดคงเหลือตัวอย่าง THB 524,350 · USDT 6,954

เอกสารนี้สรุปจากโค้ดจริงในรีโป (API, ledger, RBAC, หน้าจอ) ณ วันที่ปรับปรุงล่าสุด


16. การอัปเดตภาพประกอบ

ภาพทั้งหมดจับจากแอปจริง (มือถือ 390×844, DPR 2) แล้ววาดลูกศรชี้ด้วยสคริปต์

# ต้องมี dev server รันอยู่ที่ http://127.0.0.1:3000
python scripts/shoot-manual.py

ไฟล์ภาพอยู่ใน docs/shots/ (annotated) และ docs/shots/raw/ (ภาพดิบ)