คู่มือผู้ใช้
เริ่มใช้งานและทดลองทุกเมนู
ฉบับ 1.5 · โปรแกรม 3.0.0 · อัปเดต 4 ตุลาคม 2026 (เพิ่มหน้า ผู้ใช้งาน + Super Admin)
สถานะเครื่อง Mac ล่าสุด: เปิดรุ่นใหม่พร้อมแผน/งบ/หมวดสินค้าได้ที่ URL เดิมพอร์ต 8000 ใช้ฐานข้อมูลเดิมแล้ว พอร์ต 8003 เป็น preview ระหว่างพัฒนาและไม่ได้ใช้ส่งมอบ
คู่มือสำหรับอ่านใน Browser: เปิดฉบับ HTML มีสารบัญ ค้นหา สลับเอกสาร และพิมพ์/บันทึก PDF ไฟล์ส่งมอบ VEXINIO_CRM_USER_GUIDE.html ฝังภาพไว้แล้ว จึงเปิดอ่านออฟไลน์ได้
คู่มือนี้อ้างอิงหน้าจอและโค้ดที่มีจริง อ่านเฉพาะหัวข้อที่เกี่ยวกับบทบาทของคุณได้ การมีขั้นตอนในคู่มือไม่ได้หมายความว่าทุกกรณีผ่านการทดสอบแล้ว ให้บันทึกผลจริงใน เช็กลิสต์ UAT
เริ่มตรงไหน
| คุณต้องการ | เปิดหัวข้อ |
|---|---|
| เริ่มใช้งานครั้งแรก | 1. เข้าใช้งาน |
| ทดลองขายตั้งแต่ต้นจนออก SO | 2. เส้นทางทดสอบหลัก |
| ลูกค้าและผู้ติดต่อ | 4. ลูกค้า, 5. ผู้ติดต่อ |
| รับเรื่องและเข้าพบ | 6. Inquiry, 7. เข้าพบลูกค้า |
| จัดการดีล | 8. Pipeline |
| ราคาและสินค้า | 9. สินค้า / บริการ / Price List |
| เอกสารเสนอราคาและอนุมัติ | 10. ใบเสนอราคา, 11. อนุมัติ, 12. Sales Order |
| งานติดตามและแจ้งเตือน | 13. Activity, 14. Notifications |
| วางแผนและงบประมาณ | 21. แผนยอดขาย, 22. งบโครงการ |
| ดูรายงาน | 15. รายงาน |
| ผู้ดูแลระบบ | 16. ศูนย์ควบคุม, หน้า ผู้ใช้งาน, 17. Audit |
| แนบไฟล์หรือพบปัญหา | 18. ไฟล์แนบ, 19. แก้ปัญหา |
| ฟังก์ชันที่ยังไม่มีปุ่ม | 20. งานที่ทีมเทคนิคช่วยทดสอบ |
1. เข้าใช้งาน
- เปิด Vexinio CRM บนเครื่องที่รันโปรแกรมอยู่
- ใส่ Email และ Password แล้วกด Sign in
- เลือก TH หรือ EN ด้านบน ภาษาเก็บตามบัญชีผู้ใช้
- ใช้เมนูทางซ้ายซึ่งจัดเป็นหมวดงาน หากเมนูยาวให้เลื่อนภายในแถบเมนู บนมือถือกดปุ่ม เปิดเมนู มุมซ้ายบน เลือกหน้าแล้วเมนูจะปิดเอง ปิดด้วยปุ่ม ×, แตะพื้นหลัง หรือกด Escape ได้
- เมื่อต้องการเปลี่ยนบัญชี กดไอคอนลูกศรออกจากระบบด้านขวาบน ซึ่งมีชื่อ Sign out
127.0.0.1 หมายถึงเครื่องของผู้เปิดเว็บ ถ้าลูกค้าเปิดจากอีกเครื่อง ต้องให้ผู้ดูแลจัด URL ที่เข้าถึงได้ก่อน
เมนู 7 หมวด
รวม 19 เมนูใน 7 หมวด (เห็นเฉพาะเมนูที่บทบาทมีสิทธิ์)
| หมวด | เมนูภายใน | ใช้เมื่อ |
|---|---|---|
| ภาพรวม | แดชบอร์ด, รายงานการขาย | ดูยอดขาย งานสำคัญ และภาพรวมทีม |
| ลูกค้าสัมพันธ์ | ลูกค้า, ผู้ติดต่อ | ดูแลบริษัทและผู้ประสานงาน |
| กระบวนการขาย | Inquiry, เข้าพบลูกค้า, Sales Pipeline, ใบเสนอราคา, อนุมัติ, Sales Order | ทำงานขายตามลำดับตั้งแต่รับเรื่องจนออก SO |
| แผนและงบประมาณ | แผนยอดขาย, งบโครงการ | วางเป้าและติดตามค่าใช้จ่าย |
| สินค้าและราคา | สินค้า / บริการ, หมวดหมู่สินค้า | จัดหมวดสินค้า ต้นทุน และ Price List |
| งานติดตาม | ติดตามงาน, การแจ้งเตือน | จัดการสิ่งที่ต้องทำต่อ |
| จัดการระบบ | ศูนย์ควบคุม, ผู้ใช้งาน, Audit Trail | ตั้งค่า จัดการบัญชีผู้ใช้ และตรวจประวัติสำหรับบทบาทที่มีสิทธิ์ |
เมนูและหมวดที่ไม่มีสิทธิ์จะไม่แสดง เช่น Sales ไม่มีหมวดจัดการระบบและเมนูอนุมัติ ตำแหน่งหมวด/หน้าปัจจุบันอยู่ด้านบน กด คู่มือการใช้งาน ใต้เมนูเพื่อเปิด HTML ในแท็บใหม่
ค้นหาและใช้คีย์บอร์ด
- ช่องค้นหาด้านบนค้นข้ามหมวด กดปุ่ม
/ขณะไม่ได้พิมพ์ในฟอร์มเพื่อย้ายไปช่องนี้ - ช่อง ค้นหาในรายการนี้… อยู่เหนือแผนยอดขาย หมวดหมู่สินค้า และรายการลูกค้า ผู้ติดต่อ Inquiry Visit สินค้า ใบเสนอราคา SO Activity และ Audit ค้นเฉพาะข้อความในข้อมูลที่หน้าโหลดแล้ว จำนวนแสดงเป็นพบ/ทั้งหมด
- ถ้าไม่พบรายการ กด ล้างคำค้น เพื่อกลับมาดูทั้งหมด การค้นหานี้ไม่เปลี่ยนข้อมูลและไม่เปลี่ยน filter ของ Reports
- ตารางกว้างเลื่อนแนวนอนภายในตารางได้ ใช้ Tab ไปยังตารางและปุ่มต่าง ๆ; dialog ปิดด้วย Escape และคืน focus ไปปุ่มเดิม
- เมนูมือถือปิดอยู่จะไม่รับ Tab เมื่อเปิดแล้ว Tab อยู่ภายในเมนูจนปิด
บัญชีตัวอย่าง
รหัสผ่านเริ่มต้นทุกบัญชี: Demo@123 ใช้สำหรับฐานข้อมูลตัวอย่างนี้ หากผู้ดูแลเปลี่ยนรหัสแล้วให้ใช้รหัสที่ได้รับ
| บทบาท | งานที่ใช้ทดสอบ | |
|---|---|---|
| Sales A | sales.a@example.com | สร้างลูกค้า/ดีล/ใบเสนอราคาของตน |
| Sales B | sales.b@example.com | ตรวจขอบเขตข้อมูลกับ Sales A |
| Manager | manager@example.com | ดูภาพรวม, อนุมัติระดับ Manager, สร้าง SO, เป้าการขาย, โอนพอร์ต |
| Sales Admin | salesadmin@example.com | งานสินค้า/ราคา/ใบเสนอราคา/SO |
| Management | management@example.com | Dashboard, รายงาน, Audit และดูข้อมูล |
| Admin | admin@example.com | จัดการผู้ใช้ กฎอนุมัติ Master Data และงานทั้งหมด |
สิทธิ์: Management ดูข้อมูลได้ แต่ API ปฏิเสธการแก้งาน และหน้าหลักซ่อนปุ่มแก้ไข หน้า Admin Center ของ Sales Admin เปิดได้โดยแสดงเฉพาะข้อมูลที่มีสิทธิ์ ใน Customer 360/รายละเอียดใบเสนอราคา Management ไม่มีปุ่มเพิ่มไฟล์และส่งอีเมล ยังดูรายละเอียดและดาวน์โหลด PDF ได้
ข้อมูลบริษัท บุคคล และงานในชุดตัวอย่างเป็นข้อมูลสมมติสำหรับ UAT ปรับชื่อและเนื้อหาให้อ่านเป็นงานขายปกติ อีเมลธุรกิจใช้โดเมน .example บัญชี Login และรหัสเดิมยังใช้ได้
เตรียมข้อมูลทดสอบ
- ตั้งชื่อข้อมูลใหม่ขึ้นต้น
UAT-ชื่อผู้ทดสอบ-วันที่-ลำดับเช่นUAT-Mali-20261003-01 - ใช้ข้อมูลสมมติและบัญชีอีเมลสำหรับทดสอบ
- สร้างข้อมูลของตัวเองแทนแก้รายการตัวอย่างที่ผู้ทดสอบคนอื่นใช้
- จดเลข Customer, Inquiry, Opportunity, Quotation/Rev. และ SO ที่ได้
- แบบทดสอบ Reset Password, Deactivate, Transfer และ Archive ให้ใช้ผู้ใช้/ข้อมูล UAT ที่แยกไว้
2. เส้นทางทดสอบหลัก
ใช้ Sales A, Manager และ Sales Admin สลับบัญชีตามตาราง หากใช้ browser เดียว ให้ Sign out ก่อนเปลี่ยนบัญชี
| ขั้น | บัญชี | ทำอะไร | ควรได้ |
|---|---|---|---|
| 1 | Sales A | สร้าง Customer และ Contact | บริษัทและบุคคลเชื่อมกัน |
| 2 | Sales A | สร้าง Inquiry ของลูกค้านี้ | ได้เลข Inquiry |
| 3 | Sales A | บันทึก Visit ผูก Inquiry | ได้เลข Visit และรายละเอียดการเข้าพบ |
| 4 | Sales A | สร้าง Opportunity จาก Inquiry | เริ่มที่ Inquiry, probability 10% |
| 5 | Sales A | Move ไป Contacted แล้ว Visit | ย้ายตามลำดับสำเร็จ |
| 6 | Sales A | สร้าง Quotation ใช้รายการตัวอย่างด้านล่าง | Draft, Rev.0 |
| 7 | Sales A | กด Submit | ส่วนลด 8% เป็น Pending ให้ Manager |
| 8 | Manager | เมนูอนุมัติ → Approve | Approval = Approved |
| 9 | Sales A | กลับใบเสนอราคา → Send → Negotiate | สถานะ Sent แล้ว Negotiation |
| 10 | Sales A | ทดสอบ Revise ก่อน Accept | Rev.ใหม่เป็น Draft, Rev.เก่า Superseded |
| 11 | Sales A/Manager | แก้ Rev.ใหม่ → Submit → Approve → Send → Accept | Rev.ปัจจุบัน Accepted / Approved |
| 12 | Sales Admin | Sales Order → + Sales Order → เลือก Rev.ปัจจุบัน | สร้าง SO ได้หนึ่งครั้ง และดีลเป็น Won |
| 13 | Manager | ตรวจรายงาน, Customer 360, Audit | พบข้อมูลจากรายการ UAT |
ตัวอย่างตรวจยอดด้วยตัวเอง
สร้าง Custom item จำนวน 2, ราคา/หน่วย 1,000 บาท, ส่วนลด 8%, VAT 7%
| รายการคำนวณ | ยอดที่ควรได้ |
|---|---|
| ก่อนส่วนลด 2 × 1,000 | 2,000.00 |
| ส่วนลด 8% | 160.00 |
| Subtotal หลังส่วนลด | 1,840.00 |
| VAT 7% | 128.80 |
| Grand Total | 1,968.80 |
หน้ารายการบางจุดปัดเป็นจำนวนเต็ม ให้ดูยอดทศนิยมจาก PDF/ข้อมูลรายละเอียดที่ทีมเทคนิคช่วยตรวจ ถ้า Rev.ใหม่เพิ่มราคาต่อหน่วยเป็น 1,200 โดยค่าอื่นเท่าเดิม ยอดรวมควรเป็น 2,362.56
3. Dashboard และค้นหา
หน้าเมนู แดชบอร์ด ใช้หัวข้อ ภาพรวมการขาย ด้านบน มีสรุปยอด 4 ช่อง กราฟขั้นตอนขาย งานที่ต้องทำต่อ ใบเสนอราคาปัจจุบันล่าสุด 3 รายการ และทางลัด ลูกค้า/Pipeline/สินค้า/Activity คลิกเลขใบเสนอราคาเพื่อดูรายละเอียด หรือ ดูทั้งหมด ไปหน้ารายการ ตัวเลขในทางลัดเป็นจำนวนข้อมูลตามสิทธิ์ของบัญชี ไม่ใช่เป้าการขายหรืออัตราเติบโต
- มูลค่า Pipeline: มูลค่าดีลที่ยังไม่ Won/Lost
- Pipeline ถ่วงน้ำหนัก: มูลค่าดีล × probability
- ยอดขายจาก Sales Order: ยอด SO รวมภาษีในระบบปัจจุบัน
- งานเกินกำหนด: Activity ที่เปิดอยู่และพ้น due date
- ภาพรวมขั้นตอนการขาย: แยกดีลตาม stage
- งานที่ต้องทำต่อ: รายการ Activity ที่เปิดอยู่
ค้นหาจากช่องด้านบนโดยพิมพ์อย่างน้อย 2 ตัวอักษร เช่นชื่อลูกค้าหรือเลข Inquiry แล้วคลิกผลลัพธ์ ลูกค้าจะเปิด Customer 360 ส่วน Inquiry/Opportunity/Product จะพาไปหน้ารายการของหมวดนั้น ยังไม่ได้เปิดรายละเอียดของรายการนั้นโดยตรง
ทดสอบ: ดูก่อน/หลังสร้างข้อมูล UAT และเปรียบเทียบยอดของตนกับ Manager
ขอบเขต: Dashboard ไม่นับดีลที่ archive และยอดขายนับ SO ที่ Confirmed เท่านั้น Sales ค้นหาสินค้าที่ไม่ถูก archive จากช่อง global search ได้
4. ลูกค้าและ Customer 360
สร้าง: ลูกค้า → + ลูกค้าใหม่ → กรอกบริษัท, New/Existing, Industry, Tax ID, ติดต่อ, ที่อยู่, Source, ผู้รับผิดชอบ, Price List, Active/Inactive → บันทึก
แก้ไข: กด แก้ไข ในแถว → เปลี่ยนข้อมูล → บันทึก → กลับมาตรวจค่า
ดูภาพรวม: กด 360° → ดู Customer Profile, Contacts และ Timeline ของ Inquiry/Visit/Quotation/SO → แนบไฟล์ได้ในส่วน Attachments
Archive: กด เก็บเข้าคลัง → ใส่เหตุผล → ยืนยัน รายการจะออกจากรายการปกติ ถ้ามีดีลเปิดอยู่ระบบควรปฏิเสธ
ทดสอบ: สร้างใหม่, แก้เบอร์ติดต่อ, ดู 360°, ทดลองสร้างใหม่ด้วย Tax ID เดิม ต้องถูกปฏิเสธ การตรวจ Tax ID ตอนแก้ลูกค้ายังต้องทดสอบเป็นกรณีต่างหาก
ทดสอบ: เลือก Price List แล้วรีสตาร์ตโปรแกรม ราคาที่เลือกต้องคงอยู่ Restore ยังไม่มีปุ่มบนจอ ให้ทีมเทคนิคช่วยและคืน Parent ก่อน Child
5. ผู้ติดต่อ
ผู้ติดต่อ → + Contact → เลือกลูกค้า → กรอก Name, Position, Phone, Email และ Primary Contact → บันทึก
- บริษัทหนึ่งมีหลาย Contact ได้
- กด แก้ไข เพื่อปรับข้อมูลหรือ Primary
- กด เก็บเข้าคลัง เพื่อ archive ข้อมูล UAT ที่แยกไว้
- เมื่อเลือก Contact ใน Inquiry/Visit ต้องเป็นคนของลูกค้ารายเดียวกัน
ทดสอบ: เพิ่มสองคนในบริษัทเดียว ดูใน Customer 360; แก้คนหนึ่งเป็น Primary; archive คนที่ไม่ได้ใช้ใน flow หลัก
6. Inquiry
Inquiry → + Inquiry ใหม่ → เลือกลูกค้าและ Contact → กรอกเรื่อง, Source, Estimated Value, Priority, Status, Owner, Expected Close, Next Action/Date และ Notes → บันทึก
กด แก้ไข เพื่อเพิ่มความต้องการลูกค้า/next action กด เก็บเข้าคลัง ได้เมื่อไม่มีดีลเปิดที่ขัดกับเงื่อนไข
ทดสอบ: ข้อมูลครบแล้วบันทึกได้, ไม่กรอกเรื่องแล้วบันทึกไม่ได้, เปลี่ยนลูกค้าแล้วรายการ Contact ควรตรงกับบริษัทใหม่
Inquiry คือเรื่องที่ลูกค้าสอบถาม ยังไม่ใช่ดีลการขาย การสร้าง Opportunity ต้องทำอีกขั้น
7. เข้าพบลูกค้า / Visit
เข้าพบลูกค้า → + Visit ใหม่ → เลือก Inquiry → เลือก Contact ที่ตรงบริษัท → กรอก Visit Date, Purpose, Participants, Result, Requirement, Next Action/Date, Owner → บันทึก
- เพิ่มหลาย Visit ให้ Inquiry เดียวได้
- กด แก้ไข เพื่อบันทึกผลหลังเข้าพบ
- กด เก็บเข้าคลัง สำหรับ Visit UAT ที่ไม่ใช้แล้ว
ทดสอบ: เปลี่ยน Inquiry ในฟอร์ม Visit แล้ว Contact ต้องเปลี่ยนตามบริษัท หากบริษัทไม่มี Contact ให้เลือก - การเพิ่ม Visit ต้องไม่ลดสถานะ Inquiry ที่อยู่ QUOTATION/NEGOTIATION/WON/LOST
8. Opportunity / Sales Pipeline
Sales Pipeline → + Opportunity → เลือก Inquiry ที่ยังไม่มีดีลในหน้าจอ → กรอกชื่อ, Value, Expected Close, Owner → บันทึก
แก้รายละเอียด: กด แก้ไข บนการ์ด ไม่ใช่การย้าย stage
ย้าย stage: กด Move → เลือก stage, probability ถ้าต้องการ, Reason → Move
| Stage ปัจจุบัน | Stage ที่ย้ายได้ด้วย Move |
|---|---|
| Inquiry | Contacted / Lost |
| Contacted | Visit / Quotation / Lost |
| Visit | Quotation / Lost |
| Quotation | Negotiation / Lost |
| Negotiation | Lost; Won ต้องเกิดจาก SO |
| Won / Lost | ปิดแล้ว ไม่ย้ายต่อด้วย Move |
หากเลือก Lost ต้องใส่ Lost Reason probability ต้องอยู่ 0–100 เมนู Move อาจเสนอ stage ที่กระโดดข้ามได้ แต่ backend จะปฏิเสธตามตาราง
ทดสอบ: Inquiry → Contacted → Visit; ทดลองกระโดด Inquiry → Negotiation ต้องถูกปฏิเสธ; ทดสอบ Lost บนอีกดีล; ห้ามกด Won เอง ให้สร้าง SO ตาม flow
การสร้าง Quotation/เข้าสู่ Negotiation/สร้าง SO อาจย้าย stage อัตโนมัติและบันทึกประวัติด้วย
9. สินค้า / บริการ / Price List
Product
ใช้ Admin, Manager หรือ Sales Admin → สินค้า / บริการ → + สินค้า/บริการ → กรอก SKU, Unit, Name TH/EN, หมวดหมู่สินค้า, ราคา, ต้นทุน, Active/Inactive และรายละเอียด → บันทึก
กด แก้ไข เพื่อปรับ master data หรือ เก็บเข้าคลัง เพื่อ archive สินค้า UAT รายการในใบเสนอราคาเก่าควรเก็บ snapshot เดิม
ทดสอบ: SKU ซ้ำถูกปฏิเสธ; ราคา/ต้นทุนติดลบถูกปฏิเสธ; เปลี่ยน master price แล้วตรวจใบเสนอราคาเดิม; สินค้า Inactive ไม่ควรเลือกเพิ่มใน quote ใหม่
Price List
หน้าสินค้า → Price List → ดูรายการและราคา → แก้ช่องราคาของรายการที่มีอยู่ → ออกจากช่อง ระบบบันทึกทันทีและแจ้ง Price updated
กด + Price List → Name, Currency, Active → บันทึก จากนั้นเลือก price list ให้ลูกค้าในฟอร์มลูกค้า
เปิด Price List → + สินค้า → เลือก Product และ Unit Price → บันทึก หน้า Quotation ใช้ราคาของลูกค้าจาก Opportunity ที่เลือก หากไม่มีราคาลูกค้าที่ใช้งานได้จะใช้ Standard Price การเปลี่ยน Opportunity โหลดราคาใหม่ ตรวจราคาให้ครบก่อนส่งอนุมัติ หากโหลดราคาล้มเหลวให้เลือกสินค้าอีกครั้ง
จัดหมวดหลัก–หมวดย่อย
- เปิด สินค้าและราคา → หมวดหมู่สินค้า ใช้ Admin, Manager หรือ Sales Admin เพื่อจัดการ
- กด + เพิ่มหมวดหมู่ กรอกรหัส (อังกฤษ/ตัวเลข/-/_) ชื่อ TH/EN และสถานะ
- ถ้าเป็นหมวดหลัก เลือก เป็นหมวดหลัก ถ้าเป็นหมวดย่อย เลือกหมวดหลักที่ใช้งานอยู่ แล้วบันทึก
- เปิด สินค้า / บริการ → แก้ไข เลือกหมวด เช่น Hardware / อุปกรณ์ควบคุม แล้วบันทึก
- ใช้ กรองหมวดหมู่ (รวมหมวดย่อย) ในหน้าสินค้า เลือกหมวดหลักเพื่อดูสินค้าในหมวดย่อยด้วย เลือกทุกหมวดเพื่อกลับมาแสดงทั้งหมด
- กดแก้ไขหมวดเพื่อเปลี่ยนชื่อ หมวดหลัก หรือปิดใช้ ต้องย้าย/ปิดสินค้าที่ยัง Active และหมวดย่อยที่ Active ก่อนปิดหมวด
Sales และ Management ดูหมวดและกรองสินค้าได้ แต่แก้หมวดไม่ได้ รหัสหมวดห้ามซ้ำแม้ใช้ตัวพิมพ์เล็ก/ใหญ่ต่างกัน และระบบไม่อนุญาตหมวดวนกลับมาหาตัวเอง จำนวนสินค้าในหน้าหมวดเป็นการผูกโดยตรง ไม่รวมหมวดย่อย
Product Group เดิมถูกย้ายเป็นหมวดโดยรักษาสินค้า ราคา และต้นทุนเดิม จัดหมวดใหม่ผ่านหน้านี้แทน Master Data ใบเสนอราคา/SO เก่ายังคง snapshot เดิม การเปลี่ยนหมวดไม่ใช่การจัดประเภทประวัติยอดขายย้อนหลัง
10. ใบเสนอราคา
สร้างและแก้ไข Draft
ใบเสนอราคา → + ใบเสนอราคา → เลือก Opportunity → Validity Days, Payment Term, Delivery Term, Currency, VAT และ Owner
เพิ่มรายการโดยเลือก Product หรือ Custom item → Description, Qty, Unit, Unit Price, Discount → + Item เพิ่มบรรทัด / × ลบบรรทัด → บันทึก
รอบนี้รองรับ THB เท่านั้น ทั้งใบเสนอราคาและ Price List การส่ง currency อื่นผ่าน API ถูกปฏิเสธ ยังไม่มีการแปลงค่าเงิน
แก้ไขได้: Rev.ปัจจุบันที่เป็น Draft และไม่อยู่ Pending Approval การแก้ Draft ที่เคย approved จะกลับเป็น Not Requested ต้อง Submit ใหม่
การคำนวณปัดจำนวนเงินแต่ละบรรทัดและส่วนลดเป็นสองตำแหน่งแบบ HALF_UP จากนั้นรวมยอดสุทธิแล้วปัด VAT สองตำแหน่ง ผลรวมบรรทัดต้องตรงกับ Subtotal โอกาสการขายใหม่เริ่มที่ Inquiry เท่านั้น งานที่ Parent ถูก archive หรือดีล Lost ไม่สามารถสร้างหรือดำเนินเอกสารขายต่อได้
ปุ่มแต่ละตัว
| ปุ่ม | ใช้เมื่อ | ผลที่ควรได้ |
|---|---|---|
| ดู | มีใบเสนอราคา | เห็นรายการ ยอด เงื่อนไข Approval History และ Attachments |
| มีสิทธิ์ดู | เปิดไฟล์ใบเสนอราคาในอีกแท็บ | |
| แก้ไข | Current Draft ไม่ Pending | บันทึกรายการและยอดใหม่ |
| Submit | Current Draft | Auto-approved หรือ Pending ตามส่วนลด |
| Send | Current Draft ที่ Approved | เปลี่ยนสถานะเป็น Sent |
| Negotiate | Sent | เปลี่ยนเป็น Negotiation |
| Accept | Sent / Negotiation ที่ Approved | บันทึกรับข้อเสนอ |
| Revise | Current revision ที่ยังไม่ Accepted และยังไม่มี SO | สร้าง Rev.ใหม่ ไม่ทับประวัติเดิม |
Send ไม่ได้ส่งอีเมล ต้องใช้ปุ่มอีเมลด้านล่างแยกต่างหาก
Revision
- ก่อน Accept ให้กด Revise
- ตรวจเลข Quotation เดิมและ Rev.เพิ่มขึ้น
- Rev.เก่าควรเป็น Superseded; Rev.ใหม่ Draft / Not Requested
- แก้ Rev.ใหม่แล้ว Submit → อนุมัติ → Send → Accept อีกครั้ง
PDF และอีเมล
- PDF: เปิดไฟล์แล้วตรวจบริษัท, ลูกค้า, เลข/Rev., รายการ, VAT, ยอดรวม และการตัดบรรทัด PDF ไทยบน Mac ยังต้องตรวจฟอนต์ หากเห็นสี่เหลี่ยมหรืออักษรหายให้รายงาน
- อีเมล: กด ดู → อีเมล → Recipient, Subject, Message → Action = Save preview only → Process ควรได้ Preview ไม่มีอีเมลออกจริง
- Send via configured SMTP: ใช้เฉพาะเมื่อผู้ดูแลเตรียม mail server และผู้รับทดสอบไว้แล้ว สถานะ Sent/Failed ต้องให้ผู้ดูแลช่วยตรวจ ไม่เท่ากับการกด Send ในตาราง
11. อนุมัติ
Sales กด Submit จากใบเสนอราคา ส่วน Manager/Admin เข้าเมนู อนุมัติ → ตรวจเลข/Rev., Total, Max Discount, Required Role → Approve หรือ Reject → ใส่ Comment/Reason
| ส่วนลดสูงสุดต่อบรรทัดในกฎตัวอย่าง | ผลหลัง Submit | ผู้ตัดสินใจ |
|---|---|---|
| 0–5% | Approved อัตโนมัติ | ระบบตาม matrix |
| มากกว่า 5 ถึง 10% | Pending | Manager หรือ Admin |
| มากกว่า 10% | Pending | Admin |
กรณีส่วนลดทศนิยมตกในช่องว่างของกฎ เช่น 5.00001% ระบบส่งให้ Admin ตรวจแทนการอนุมัติด้วยสิทธิ์ต่ำกว่า กฎปรับได้โดย Admin ใช้ค่าทดสอบ 5%, 8%, 12% และตรวจ Required Role ก่อนอนุมัติ กฎใช้ ส่วนลดสูงสุดของบรรทัด ไม่ใช่ค่าเฉลี่ยทั้งเอกสาร
ทดสอบ: Approve หนึ่งรายการ, Reject อีกหนึ่งรายการ, Manager ทดลองอนุมัติรายการ Required Role=Admin ต้องถูกปฏิเสธ ใบเสนอราคาที่ reject approval ยังเป็น Draft ผู้ขายแก้แล้ว Submit ใหม่ได้
12. Sales Order
Admin / Manager / Sales Admin → Sales Order → + Sales Order → เลือก Accepted Quotation → ใส่ PO Number, Order Date, Notes → Create Sales Order
ระบบคัดยอดและรายการจาก quote ให้ ไม่ต้องกรอกยอดขายซ้ำ ต้องเป็น Current + Accepted + Approved และ family นั้นยังไม่มี SO
ทดสอบ: SO ได้เลขใหม่และยอดตรง quote; Opportunity เป็น Won; Inquiry เป็น WON; สร้างซ้ำไม่ได้; Draft/Rev.เก่าไม่ควรมีสิทธิ์สร้าง
ถ้าไม่มี quote ให้เลือก ให้ตรวจ Accept/Approval/Current revision และ SO ที่เคยสร้าง หน้า SO ปัจจุบันเป็นรายการ ยังไม่มีแก้ไข ยกเลิก หรือพิมพ์ SO จากหน้าจอ
13. ติดตามงาน / Activity
ติดตามงาน → + Activity → Customer, Type, Subject, Due Date, Owner, Notes → บันทึก
Type มี Call, Email, Meeting, Visit, Follow-up, Task เมื่อทำงานแล้วกด เสร็จสิ้น สถานะควรเปลี่ยนจาก Open เป็น Completed
ทดสอบ: สร้างงานครบกำหนดเมื่อวาน ดู Overdue และ notification; Complete แล้วไม่ควรนับเป็นงานเกินกำหนดที่ยังเปิดอยู่
หน้าเว็บปัจจุบันยังไม่มี edit/reschedule/calendar และฟอร์มสร้างยังไม่ผูก Inquiry/Opportunity การผูกผ่าน API ต้องให้ทีมเทคนิคตรวจความสัมพันธ์บริษัทด้วย
14. การแจ้งเตือน
กดไอคอนแจ้งเตือนด้านบนหรือเมนู การแจ้งเตือน → ดูหัวข้อ/รายละเอียด/เวลา → กด อ่านแล้ว → badge ควรลดลง กด รีเฟรช เพื่อประเมินกฎใหม่
กฎมี Overdue Activity, ใบเสนอราคาใกล้หมดอายุ 3 วัน, Approval pending เกิน 24 ชั่วโมง และ Opportunity ไม่มี activity 14 วัน
ข้อสังเกตสำหรับทดสอบ: ดีลที่ยังไม่เคยมี Activity ผูกผ่าน opportunity_id อาจแจ้งเตือนทันทีตามกฎปัจจุบัน; Activity ที่สร้างจากฟอร์มทั่วไปยังไม่ได้ผูกดีล และการ Complete งานไม่ได้ลบแจ้งเตือนเก่าที่สร้างไว้ ให้แยกตรวจสถานะงานกับสถานะอ่านแจ้งเตือน
ทดสอบ: รีเฟรชซ้ำไม่ควรสร้างรายการเดียวกันซ้ำ; สลับ Sales A/B ต้องเห็นการแจ้งเตือนของบัญชีตน
ข้อจำกัด: ยังไม่มี jump-to-record/snooze ดีลใหม่ที่ยังไม่มี Activity ใช้วันสร้างดีลเป็นจุดเริ่มนับ stale 14 วัน ให้ทีมเทคนิคเตรียมข้อมูลเวลาแยกเพื่อทดสอบ ไม่ต้องรอจริง
15. รายงานการขาย
รายงานการขาย → เลือก From / To / Sales / Customer → Apply ผู้ใช้ Sales ถูกจำกัดเป็นข้อมูลของตน
ตรวจ Sales Value, Average Deal, Win Rate, Avg. Sales Cycle, Conversion Funnel, Sales Performance, Quotation Aging, Opportunity Aging, Target vs Actual, Lost Reasons, Sales by Customer/Industry/Product และ Activity Performance
- Sales Value: ยอด SO รวมภาษี ไม่ใช่ pipeline หรือมูลค่า quote ทั้งหมด
- Export CSV: ดาวน์โหลด sales_orders.csv และเปิดตรวจเลข SO/ลูกค้า/ยอด/Owner
- ตัวกรอง: CSV ใช้ From/To/Sales/Customer เดียวกับฟอร์ม และนับเฉพาะ SO Confirmed เช่นเดียวกับยอดรายงาน Sales เห็นเฉพาะงานของตน แม้เปลี่ยนตัวกรอง Owner ผ่าน API
- SO ใช้วัน Order; Quote ใช้วัน Quotation; Pipeline/Aging ใช้วันสร้าง Opportunity; Activity ใช้ Due Date หรือวันสร้างถ้าไม่มี Due Date
- Conversion ติดตาม Inquiry ที่เปิดในช่วงที่เลือกจนถึง To: Inquiry→Visit เป็นสัดส่วนที่เข้าพบ; Visit→Quote เป็นสัดส่วนของ Inquiry ที่เข้าพบแล้วมี quote; Quote→Won เป็นสัดส่วน Inquiry ที่มี quote แล้วมี SO Confirmed รวมงานที่ไม่ต้อง Visit
- Target ใช้ช่วงเป้าหมายที่ทับกับตัวกรอง ยอดจริงนับเฉพาะช่วงที่ทับกัน หน้าจอระบุช่วงทั้งสองแยกกัน ไม่แบ่งยอดเป้าหมายตามสัดส่วนวัน ถ้าเลือก Customer จะไม่แสดง Target เพราะยังไม่มีเป้ารายบริษัท
- Quotation Status, Lead Source และ Monthly Sales มีข้อมูล API แต่ยังไม่มีตารางแยกในหน้ารายงานนี้ ให้ทีมเทคนิคช่วยทดสอบ
ทดสอบ: ใช้ช่วงวันที่ของ SO UAT แล้วเทียบยอดกับรายการ SO, เปลี่ยน Owner/Customer, ดูช่วงไม่มีรายการ, ดาวน์โหลด CSV และรายงานความต่างของ filter
16. ศูนย์ควบคุม / Admin Center
ใช้ Admin เป็นบัญชีหลักสำหรับหน้ารวมนี้
| ฟังก์ชัน | ขั้นตอน | สิ่งที่ต้องตรวจ |
|---|---|---|
| System Readiness | เปิดหน้า | Healthy, integrity ok, FK 0, version, SMTP และ migration |
| การ์ดผู้ใช้งาน | ดูการ์ดสรุป (จำนวน + avatar) → จัดการผู้ใช้งาน | เปิดหน้า ผู้ใช้งาน; งานสร้าง/แก้/ปิดบัญชี/รีเซ็ต/ลบ ย้ายไปหน้านั้นแล้ว ดู หน้า ผู้ใช้งาน |
| เปลี่ยนรหัสของตน | Login หลัง Reset → Password change required → Current/New → Change Password | รหัสใหม่ใช้ได้ |
| เป้าการขาย | + Target → Sales/Start/End/Target Value → บันทึก | เห็นใน Target vs Actual; End ต้องไม่ก่อน Start |
| กฎอนุมัติ | + Rule → Min/Max/Required Role/Auto/Active/Sort → บันทึก | ส่ง quote ใหม่แล้วจับกฎที่ตั้ง |
| Master Data | + Value → Category/Value/Label TH/EN/Sort/Active → บันทึก | Source/Lost Reason ที่รองรับปรากฏในฟอร์ม; สินค้าจัดผ่านหมวดหมู่สินค้า |
| โอนพอร์ต | Open Transfer Tool → From/To/Reason → Transfer Portfolio → ยืนยัน | Owner ของข้อมูลที่เกี่ยวข้องย้าย แต่ผู้กระทำใน Audit เดิมไม่เปลี่ยน |
ทดลองเปลี่ยน matrix/โอนพอร์ตเฉพาะข้อมูลและ user ที่แยกไว้ และให้ผู้ดูแลบันทึกค่าเดิมก่อนเริ่ม
รหัสผ่าน: บัญชีที่ถูก Force Change เปิดงานอื่นไม่ได้ทั้งหน้าจอและ API จนเปลี่ยนรหัสสำเร็จ หลังเปลี่ยนระบบยกเลิกทุก Session ของบัญชีนั้น ให้ Login ใหม่
ข้อจำกัด: ไม่มีหน้า Change Password ทั่วไปถ้าไม่ถูก flag; Edit Target อยู่หน้าแผนยอดขายแล้ว; ปุ่ม Edit Rule/Edit Master ยังไม่มีใน UI (Revoke Sessions ใช้ปุ่ม ออกจากระบบ ในหน้า ผู้ใช้งาน); Industry ในฟอร์ม Customer ยังเป็นช่องกรอก ไม่ใช่ dropdown จาก Master Data
หน้า ผู้ใช้งาน
เมนู จัดการระบบ → ผู้ใช้งาน (อยู่ระหว่างศูนย์ควบคุมกับ Audit Trail) เห็นได้เฉพาะ Admin, Manager, Management โดย Manager/Management ดูอย่างเดียว ปุ่มทุกปุ่มเป็นของ Admin ทุกการเปลี่ยนแปลงบันทึกใน Audit Trail
ภาพรวมหน้า: การ์ด KPI 4 ใบ — ผู้ใช้ทั้งหมด, ใช้งานอยู่, กำลังเข้าระบบ (มี session ที่ยังไม่หมดอายุ), รอเปลี่ยนรหัสผ่าน แถบเครื่องมือค้นหาชื่อ/อีเมล, กรองบทบาท (รวม Super Admin) และสถานะ ทั้งหมด/ใช้งาน/ปิดบัญชี ตารางแสดงผู้ใช้ (avatar, ชื่อ, ป้าย คุณ/รอเปลี่ยนรหัส/ออนไลน์, อีเมล · ภาษา), บทบาท, สถานะ, เข้าระบบล่าสุด และปุ่มจัดการ จอกว้างน้อยกว่า 760px แต่ละแถวแสดงเป็นการ์ด
ปุ่มในแถวเรียงตามลำดับ: แก้ไข · รีเซ็ตรหัส · ออกจากระบบ · ปิดบัญชี/เปิดบัญชี · ลบถาวร แถวของตัวเองไม่มีปุ่มปิดบัญชีและลบถาวร
| งาน | ขั้นตอน | สิ่งที่ต้องตรวจ |
|---|---|---|
| เพิ่มผู้ใช้ | เพิ่มผู้ใช้ → ชื่อ-นามสกุล, อีเมล (ใช้เข้าสู่ระบบ), บทบาท (มีคำอธิบายบทบาทใต้ช่อง), ภาษา, รหัสผ่านชั่วคราว (ระบบสุ่มให้ 12 ตัว กด สุ่มใหม่/คัดลอก ได้) → สร้างผู้ใช้ | รหัสชั่วคราวถูกคัดลอกเข้าคลิปบอร์ด ส่งให้ผู้ใช้ทางช่องทางที่ปลอดภัย; ผู้ใช้ใหม่ต้องตั้งรหัสผ่านของตนเองเมื่อเข้าใช้ครั้งแรก |
| แก้ไข | แก้ไข → ปรับชื่อ/อีเมล/บทบาท/ภาษา → บันทึก | ค่าถูกบันทึก; ถ้าเปลี่ยนบทบาท ผู้ใช้ถูกออกจากระบบทุกอุปกรณ์ |
| รีเซ็ตรหัส | รีเซ็ตรหัส → ใช้รหัสสุ่มหรือกรอกเอง (อย่างน้อย 8 ตัว) → ติ๊ก บังคับให้ผู้ใช้ตั้งรหัสใหม่ (ค่าเริ่มต้นติ๊กไว้) → ยืนยัน | รหัสใหม่ถูกคัดลอก รหัสเก่าใช้ไม่ได้ ผู้ใช้ถูกออกจากระบบทุกอุปกรณ์ |
| ออกจากระบบ | ออกจากระบบ → ยืนยัน | ทุก session ของผู้ใช้ถูกยกเลิก บัญชียังใช้ได้ตามปกติ; ปุ่มกดไม่ได้ถ้าไม่มี session |
| ปิด/เปิดบัญชี | ปิดบัญชี → ใส่เหตุผล (ไม่บังคับ บันทึกใน Audit) → ยืนยัน; เปิดบัญชี เพื่อคืนสิทธิ์ | บัญชีที่ปิด Login ไม่ได้และถูกออกจากระบบทันที ข้อมูลลูกค้า/ดีล/เอกสารยังอยู่ครบ |
| ลบถาวร | ลบถาวร → ระบบตรวจข้อมูลที่ผูกกับบัญชีก่อน → พิมพ์อีเมลของผู้ใช้นั้นให้ตรง → ลบถาวร | ดูกติกาด้านล่าง |
ลบถาวร: ลบได้เฉพาะบัญชีที่ไม่มีข้อมูลธุรกิจผูกอยู่ ถ้ายังเป็นเจ้าของหรือถูกอ้างอิงใน ลูกค้า, Inquiry, การเข้าพบ, ดีล, ใบเสนอราคา, Sales Order, งานติดตาม, คำขออนุมัติ, ไฟล์แนบ, ประวัติ Stage, ประวัติโอนงาน, แผน/งบ ฯลฯ หน้าต่างจะแสดงจำนวนแต่ละประเภท และให้เลือก ไปหน้าโอนงาน (โอนพอร์ตที่ศูนย์ควบคุม แล้วกลับมาลบ) หรือ ปิดบัญชีแทน บัญชีของตัวเอง, Super Admin และ Admin ที่ใช้งานอยู่คนสุดท้ายลบไม่ได้ เมื่อลบได้ หน้าต่างเตือนว่า การลบย้อนกลับไม่ได้: ลบบัญชี, session, เป้าการขาย และการแจ้งเตือนของผู้ใช้ ส่วนประวัติ Audit เดิมเก็บไว้แต่ไม่ผูกกับบัญชีนี้อีก ต้องพิมพ์อีเมลของผู้ใช้เอง (วางข้อความไม่ได้) ปุ่ม ลบถาวร จึงกดได้ แนะนำให้ปิดบัญชีแทนถ้าต้องเก็บประวัติ
Super Admin: บัญชี Admin ที่มีสิทธิ์สูงสุด ผ่านการตรวจสิทธิ์ทุกบทบาท แสดงป้ายสีเข้ม Super Admin ในตารางและแถบบน มีเฉพาะ Super Admin เท่านั้นที่แก้ไข/ปิดบัญชี/รีเซ็ตรหัส/ออกจากระบบ ให้ Super Admin คนอื่นได้ Admin ทั่วไปจะเห็นแถวนั้นเป็น สงวนสิทธิ์ Super Admin บทบาทของ Super Admin คงเป็น Admin และลบไม่ได้ สร้างจากหน้าจอไม่ได้ ต้องให้ทีมเทคนิคใช้เครื่องมือ tools/create_superadmin.py ตาม ภาคผนวก
ทดสอบ: ใช้บัญชี UAT ที่แยกไว้ทุกครั้ง ทดลองลบเฉพาะบัญชีที่เพิ่งสร้างและยังไม่มีข้อมูล บันทึกผลใน USR-01–USR-17 ของ เช็กลิสต์ UAT
17. Audit Trail
Admin / Manager / Management → Audit Trail → ตรวจ Time, Actor, Entity, Action, Detail, Before, After
ให้ตรวจหลังสร้าง/แก้ลูกค้า, Move Stage, Revise, อนุมัติ, สร้าง SO, แนบไฟล์ และโอนพอร์ต ชี้เมาส์ที่ Before/After เพื่อดูข้อความเพิ่มเติม
ผู้ใช้ Sales ไม่ควรเข้าดู Audit ได้ หน้าปัจจุบันโหลดรายการล่าสุดจำนวนจำกัด ไม่มี filter/export Audit แยกบนจอ
18. ไฟล์แนบ
เปิด Customer → 360° หรือ ใบเสนอราคา → ดู → Attachments → + File → เลือกไฟล์ → ตรวจชื่อ/ขนาด/ผู้ upload → Download แล้วตรวจเนื้อหา
ขนาดสูงสุด 15 MB; ไฟล์ใหญ่กว่าควรถูกปฏิเสธ ผู้ใช้ต้องมีสิทธิ์ใน parent record
ทดสอบ: ไฟล์ข้อความ/PDF ขนาดเล็ก, download ตรงต้นฉบับ, ไฟล์เกินขนาด, Sales คนอื่นไม่ควรอ่านไฟล์ของข้อมูลที่ไม่มีสิทธิ์
API รองรับไฟล์ของ Inquiry/Opportunity/SO/Activity ด้วย แต่ยังไม่มี upload panel ของ entity เหล่านี้ใน UI ไม่มีปุ่ม delete attachment ในเวอร์ชันนี้
19. เมื่อพบปัญหา
| สิ่งที่เห็น | ตรวจ/ทำต่อ |
|---|---|
| เข้าเว็บไม่ได้ | ให้ผู้ดูแลตรวจว่า server รันและ URL ถูกเครื่อง |
| ยังเห็นชื่อ ASTER หรือหน้าตาเก่า | Refresh/โหลดใหม่; ตรวจว่าเปิด URL เดียวกับผู้ดูแล |
| Invalid email or password | ตรวจบัญชี/รหัส/Active ไม่ทดลองเดาสุ่มซ้ำ |
| Too many failed login attempts | บันทึกเวลาและรอช่วงพัก; ให้ผู้ดูแลช่วย |
| 403 / ไม่มีสิทธิ์ | ตรวจ role และ Owner; บางปุ่มยังไม่ถูกซ่อน |
| Invalid transition | ใช้ลำดับ stage/quote ตามคู่มือ |
| Contact/customer mismatch | เลือก Contact ของบริษัทเดียวกัน |
| เลือก quote เพื่อ SO ไม่ได้ | ต้อง Current + Accepted + Approved และยังไม่มี SO |
| ข้อมูล archive แล้วหาย | ให้ทีมเทคนิค Restore; อย่าสร้างซ้ำเพื่อแก้ปัญหา |
| PDF ไทยผิด/ตัวเลขดูปัดเศษ | เก็บภาพหรือไฟล์และตรวจยอดจริงร่วมผู้ดูแล |
| ยอดรายงานไม่ตรงรายการ | บันทึก filter/Owner/เลข SO/ยอดที่คำนวณเอง |
บันทึก feedback แบบสั้น: บัญชี/บทบาท → หน้าจอ → ขั้นตอน → ผลที่คาดหวัง → ผลจริง → เลขรายการ → ภาพประกอบ แล้วลงเช็กลิสต์เป็น Pass / Fail / Blocked / Not tested ไม่ใส่รหัสผ่านใน feedback
20. งานที่ทีมเทคนิคช่วยทดสอบ
ผู้ใช้ไม่ต้องค้นหาปุ่มที่ยังไม่มี ให้ขอทีมเทคนิคช่วยตาม รายการฟังก์ชันที่มีเฉพาะ API/เครื่องมือ เช่น Restore, Stage History, Pagination, การแก้กฎ/เป้า/Master, Email Logs และ Backup/Restore
ภาพรวมขอบเขต route ทั้งหมดอยู่ใน แผนที่ฟังก์ชัน เพื่อให้ทีมตรวจว่าไม่มีฟังก์ชันตกหล่น
การดูแลคู่มือ
ทุกครั้งที่หน้าจอ โปรแกรม สิทธิ์ ขั้นตอน หรือโครงสร้างไฟล์เปลี่ยน ต้องแก้คู่มือ หัวข้อทดสอบ รูปประกอบ/ลิงก์ และภาคผนวกที่เกี่ยวข้อง พร้อมบันทึกวันที่และสรุปการเปลี่ยนแปลง แล้วซิงก์เข้า Obsidian ก่อนส่งมอบ
หลังแก้ Markdown ให้เรียก python3 tools/build_user_guide.py เพื่อสร้าง static/user-guide.html ใหม่ สคริปต์ซิงก์ Obsidian จะทำขั้นตอนนี้ให้อัตโนมัติก่อนคัดลอกคู่มือ HTML ไปยัง outputs และ Vault
คู่มือเป็นเอกสารของ build 3.0.0 ณ วันที่ข้างต้น ข้อจำกัดที่เปิดอยู่ให้ดู CORE_REVIEW.md ควบคู่ ไม่ตีความข้อความ “ควรได้” ว่าเป็นผลทดสอบที่ผ่านแล้ว
21. แผนยอดขาย / Sales Plans
แผนและงบประมาณ → แผนยอดขาย ทุกบทบาทดูได้ Sales เห็นเฉพาะแผนของตน Admin/Manager สร้างและแก้แผนได้
- กด + ตั้งเป้ายอดขาย เลือกผู้รับผิดชอบ
- เลือกประเภท รายเดือน และปี/เดือน, รายปี และปี หรือ กำหนดเอง แล้วกรอกวันเริ่ม–สิ้นสุด ระบบเติมวันที่เมื่อเลือกประเภท/ปี/เดือน
- กรอกยอดเป้าหมาย THB รวม VAT แล้วบันทึก วันที่สิ้นสุดต้องไม่น้อยกว่าวันเริ่ม และยอดอย่างน้อย 0.01 บาท
- ตารางแสดงเป้า ยอดจริง ยังขาดจากเป้า และ % สำเร็จ กด แก้ไข เพื่อแก้แผนเดิม
สูตร: ยอดจริง = ผลรวม grand_total ของ SO Confirmed ที่มีเจ้าของตรงกับแผนและ order_date อยู่ในช่วงวันที่รวมวันแรก/สุดท้าย; % สำเร็จ = ยอดจริง ÷ เป้า × 100; ยังขาด = ค่าสูงสุดระหว่าง 0 กับเป้า−จริง
เจ้าของเดียวกันสร้างแผนทับช่วงเวลาไม่ได้ เช่น ไม่เพิ่มแผนรายปีซ้อนรายเดือนเดิม ให้เลือกใช้ช่วงแผนแบบเดียวกันเพื่อไม่ให้นับซ้ำ แผนไม่ใช่ Forecast หรือยอดใบเสนอราคา และยังไม่มีเป้ารายทีม/ลูกค้า การแก้เป้าบันทึก Audit; ไม่มีปุ่มลบเป้า
22. งบโครงการ / Project Budgets
แผนและงบประมาณ → งบโครงการ สรุปงบ Approved/Closed ยอดใช้จริง คงเหลือ และจำนวนรออนุมัติ กรองสถานะได้ ตัวเลขทั้งหมดเป็น THB
สร้างและส่งงบ
- Sales, Sales Admin, Manager หรือ Admin กด + สร้างงบโครงการ กรอกชื่อ เจ้าของ และวันเริ่ม–สิ้นสุด
- เลือกลูกค้าหรือโครงการภายใน หากเลือกบริษัท ระบบตั้งเจ้าของตามบริษัท เจ้าของงบต้องตรงเจ้าของบริษัท/ดีล เลือกโอกาสขายได้เฉพาะบริษัทนั้น (ไม่บังคับ)
- กรอกรายได้ตามแผนและต้นทุน ไม่รวม VAT ที่ขอคืนได้ แยกจากเป้ายอดขายซึ่งใช้ยอดรวม VAT
- เพิ่มรายการต้นทุนอย่างน้อยหนึ่งรายการ: วัสดุ/สินค้า, ค่าแรง, ผู้รับเหมาช่วง, เดินทาง หรืออื่น ๆ กรอกรายละเอียด/ยอด กดเพิ่มรายการหรือลบรายการที่ไม่ใช้ งบรวมต้องมากกว่า 0
- บันทึกเป็น Draft → เปิดรายละเอียด → ส่งอนุมัติ เป็น Pending
อนุมัติและบันทึกใช้จริง
- เปลี่ยนเป็นบัญชี Manager/Admin ซึ่งไม่ใช่เจ้าของหรือผู้ส่งงบ → เปิดรายการ Pending → เปิดรายละเอียด
- กด อนุมัติ หรือ ไม่อนุมัติ (ต้องกรอกเหตุผล) งบ Rejected แก้ไขแล้วกลับ Draft หรือส่งอีกครั้งได้
- หลัง Approved เจ้าของ Sales หรือ Admin/Manager/Sales Admin กด + บันทึกค่าใช้จ่าย เลือกรายการงบ วันที่ ยอด รายละเอียด และเลขเอกสารอ้างอิง
- วันที่ค่าใช้จ่ายต้องอยู่ในช่วงงบ ยอดอย่างน้อย 0.01 บาท ระบบปัดทศนิยม 2 ตำแหน่งแบบ HALF_UP
- ค่าใช้จ่ายเกินงบบันทึกได้ ระบบเตือนและแสดงยอดคงเหลือติดลบ ดูยอดแผน/จริง/คงเหลือทั้งรายรายการและโครงการ
- ถ้าบันทึกผิด กด ยกเลิกรายการ กรอกเหตุผล ระบบหักรายการนั้นออกจากยอดจริง แต่เก็บประวัติและ Audit ไม่ลบรายการทิ้ง ให้บันทึกรายการใหม่ที่ถูกต้อง
- Manager/Admin กด ปิดโครงการ หลังทบทวนค่าใช้จ่าย เปลี่ยนเป็น Closed แล้วเพิ่ม/ยกเลิกค่าใช้จ่ายไม่ได้
Sales เห็นและทำงานเฉพาะงบที่ตนเป็นเจ้าของ Management อ่านได้อย่างเดียว งบ Approved/Pending/Closed แก้แผนไม่ได้ ผู้อนุมัติเป็นอิสระจากผู้ส่งและเจ้าของงบ การย้าย portfolio ย้ายเจ้าของงบไปด้วยโดยรักษาประวัติผู้อนุมัติ/ผู้บันทึก
สูตร: งบ = ผลรวมรายการแผน; จริง = ค่าใช้จ่ายที่ยังไม่ถูกยกเลิก; คงเหลือ = งบ−จริง; ผลต่างเกินแผน = จริง−งบ; ส่วนต่างรายได้–ต้นทุนตามแผน = รายได้ที่กรอก−งบ เช่น งบ 100,000 ใช้ 105,000.25 จะแสดงคงเหลือ −5,000.25 และเตือนเกินงบ 5,000.25
ขอบเขตของรุ่นนี้
รายได้โครงการเป็นแผนที่กรอกเอง ไม่ใช่รายได้จริงจากบัญชีหรือกำไรจริง ไม่ดึงต้นทุนสินค้าใน SO มาเป็นค่าใช้จ่ายอัตโนมัติ ยังไม่มีเชื่อมบัญชี ภาระผูกพัน/ใบสั่งซื้อ การแก้งบหลังอนุมัติ การเปิดงบ Closed ใหม่ การแบ่งงบทีม หรือ Export งบโดยเฉพาะ เมนูอนุมัติเดิมเป็นใบเสนอราคา; งบอนุมัติในหน้างบโครงการและยังไม่มี notification งบ
ภาพประกอบของฟีเจอร์ใหม่ถ่ายจากฐานข้อมูลทดสอบสำเนา ไม่ได้เพิ่มรายการทดลองเหล่านี้ในข้อมูลจริง หลัง deploy ต้อง restart backend ด้วย app.py และ planning_schema.py ใหม่พร้อม static/planning.js, workspace.js, workspace.css และ index.html
23. คู่มือ Obsidian และการส่งต่อ ZIP
ไฟล์คู่มือสำหรับเปิดทันทีคือ outputs/02_User_Manual/VEXINIO_CRM_USER_GUIDE.html หน้าเลือกเอกสารอยู่ outputs/00_START_HERE.html ส่วน Vault เดิมอยู่ outputs/Vexinio CRM Vault เลือก Open folder as vault ใน Obsidian ที่โฟลเดอร์นั้นแล้วเปิด 01 - Current Project.md
เมื่อต้องส่งให้น้อง ให้ส่ง outputs/01_Ready_to_Send/2026-10-04/Vexinio CRM.zip แตกแล้วเปิด 00_START_HERE.html ภายใน จะเห็น 01_Application (โปรแกรม), 02_User_Manual (คู่มือ), 03_Obsidian/Vexinio CRM Vault (Obsidian) ครบใน ZIP เดียว อ่านคู่มือ HTML ได้โดยไม่ติดตั้งโปรแกรม ภาพฝังอยู่ใน HTML แล้ว
ตำแหน่ง outputs ด้านบนเป็นของแชทผู้ส่ง เมื่อรับ ZIP ให้ใช้โครงสร้างที่แตกไฟล์แทน ห้ามเปิดโปรแกรมจากใน ZIP ต้องแตกทั้งหมดก่อน และต้องมี Python/pip/อินเทอร์เน็ตสำหรับติดตั้ง dependencies ครั้งแรก รายละเอียดและวิธีทำแพ็กใหม่อยู่ HANDOFF_GUIDE.md