1. Requirement Summary

Dynamics 369 Sales & Margin Intelligence Enterprise Platform • v2.6.4 (Release 2026.08.18)
Go to App
1. วัตถุประสงค์และขอบเขตทางธุรกิจ (Business Objectives & Scope)

ระบบ Dynamics 369 Sales & Margin Intelligence Enterprise Platform ได้รับการออกแบบและพัฒนาขึ้นเพื่อทำหน้าที่เป็นศูนย์กลางการบริหารจัดการยอดขาย (Sales Orders), คำนวณต้นทุนสินค้าตามมาตรฐาน (Standard Cost %), วิเคราะห์ผลกำไรขั้นต้น (Gross Margin), และประมวลผลจ่ายเงินรางวัลค่าคอมมิชชั่นพนักงานขายประจำ 10 สาขาหลักทั่วประเทศแบบอัตโนมัติ Real-Time พร้อมกลไกควบคุมการอนุมัติและล็อคข้อมูล (Strict Transaction Lock) และระบบความปลอดภัยระดับสถาบันการเงิน (Multi-Tier RBAC & Audit Trail).

1. Standard Cost & Margin Engine
• ต้นทุนมาตรฐาน: Cost = Price * (Standard Cost % / 100)
• กำไรขั้นต้นต่อหน่วย: Margin = Price - Cost
• ยอดรวมบิล (Header) สรุปจากผลรวม Line Items เสมอ
2. Real-Time Commission Calculation
• คำนวณทันทีเมื่อมีบิลขายเข้าสู่ระบบ
• สูตรคำนวณ: Commission = Total Margin * (Rate % / 100)
• รองรับเรทแยกตามพนักงานขายแต่ละบุคคล (3% - 8%)
3. Approved Commission Lock Protection
• เมื่อสถานะ Commission ได้รับการอนุมัติ (APPROVED)
• บิลขายทั้งหมดของพนักงานท่านนั้นจะถูก ล็อคห้ามแก้ไขหรือลบ (Freeze) ทันที
• ป้องกันการทุจริตและการเปลี่ยนแปลงตัวเลขย้อนหลัง
4. Multi-Role RBAC & Audit Trail
• สิทธิ์ 4 ระดับ: ADMIN, SALES_MANAGER, SALES, EXECUTIVE
• บันทึกประวัติการกระทำ (Audit Log) พร้อม IP Address ทุกขั้นตอน
• ระบบจัดการ Active Sessions และ Force Logout
2. ข้อกำหนดฟังก์ชันการทำงานหลักของระบบ (Functional Requirements Matrix)
รายการฟังก์ชันและข้อกำหนดทางเทคนิคแยกตามโมดูลหลักทั้งหมดในระบบ:
FR-1: ระบบบริหารบิลขายและรายการสินค้า (Sales Orders & Transaction Management) CORE SALES
FR-1.1 Header & Line Items Architecture: โครงสร้างบิลขายแยกข้อมูลหัวบิล (sales_transactions) และรายการสินค้าแต่ละชิ้น (sales_transaction_items) รองรับการซื้อสินค้าหลายรายการใน 1 ใบเสร็จ
FR-1.2 Line Items Drilldown: ผู้ใช้สามารถคลิกดูรายละเอียดสินค้า จำนวน ราคาต่อหน่วย ต้นทุนมาตรฐาน และ Margin ของแต่ละบิลได้ทันที
FR-1.3 Manual Sales Entry Modal: รองรับการบันทึกบิลขายสดผ่านหน้าต่าง Modal พร้อมระบบคำนวณและตรวจสอบข้อมูลก่อนบันทึก
FR-1.4 Sales Export: รองรับการส่งออกข้อมูลบิลขายทั้งหมดเป็นไฟล์ Excel (.xlsx) และ CSV
FR-2: เครื่องมือคำนวณต้นทุนและกำไรขั้นต้น (Costing & Margin Engine) CALC ENGINE
FR-2.1 Standard Costing: คำนวณต้นทุนสินค้าตามอัตราร้อยละมาตรฐาน (Standard Cost %) ที่กำหนดไว้ใน Item Master โดยอัตโนมัติ
FR-2.2 Gross Margin Calculation: คำนวณกำไรขั้นต้นระดับรายการสินค้า Margin = Amount - (Amount * Cost% / 100)
FR-2.3 Automatic Header Aggregation: ยอดขายรวม (Total Amount), ต้นทุนรวม (Total Cost), และกำไรขั้นต้นรวม (Total Margin) ของบิลจะถูกสรุปผลรวมจาก Line Items อย่างถูกต้องแม่นยำ
FR-3: ระบบนำเข้าและตรวจสอบไฟล์ Excel อัจฉริยะ (Multi-File Ingestion & Validation) DATA IMPORT
FR-3.1 Multi-File Batch Ingestion: รองรับการลากไฟล์ Excel หลายสาขามาวางพร้อมกัน (Multi-File Dropzone)
FR-3.2 Salesperson Master Validation: ระบบจะตรวจสอบชื่อ/รหัสพนักงานขายในไฟล์กับฐานข้อมูล หากไม่พบพนักงานจะระงับการนำเข้าและแสดงข้อความแจ้งเตือนทันที
FR-3.3 Deduplication Guarantee: ตรวจจับเลขที่บิลซ้ำซ้อน (Duplicate Invoice Numbers) ทั้งในไฟล์และที่มีอยู่ในฐานข้อมูล เพื่อป้องกันการบันทึกยอดซ้ำ
FR-3.4 Data Staging Preview: แสดงตารางจำลองผลลัพธ์การนำเข้าพร้อมสถานะ VALID / INVALID ก่อนกดยืนยันบันทึกจริง (Commit to Production D1)
FR-4: ระบบประมวลผล อนุมัติ และล็อคบิลขาย (Commission Approval & Strict Lock) APPROVAL & LOCK
FR-4.1 Margin-Based Commission: คำนวณเงินรางวัลคอมมิชชั่นตามอัตรากำไรจริง (Margin) คูณด้วยอัตราเฉพาะบุคคลของพนักงานขาย (Commission Rate %)
FR-4.2 Review Sales Modal: ผู้จัดการสามารถกดปุ่ม [ตรวจสอบบิล] เพื่อดูรายละเอียดบิลขายทั้งหมดที่นำมาคิดคอมมิชชั่นก่อนตัดสินใจอนุมัติ
FR-4.3 Strict Transaction Lock: เมื่อกดอนุมัติ (Status = APPROVED) ระบบจะทำการล็อคบิลขายทั้งหมดในงวดนั้นทันที (Locked = True) ไม่อนุญาตให้แก้ไขหรือลบ
FR-4.4 Non-Merging Integrity: หากมีการนำเข้าบิลขายใหม่หลังจากที่งวดเดิมได้รับการอนุมัติแล้ว บิลใหม่จะถูกแยกเป็นงวดรอดำเนินการ (PENDING_APPROVAL) ใหม่โดยไม่ปะปนกับงวดที่อนุมัติแล้ว
FR-5: ระบบรายงานสำหรับผู้บริหารและรายงานพนักงานขาย (Executive & Sales Reporting) REPORTING
FR-5.1 Executive Dashboard: แสดง 5 Core KPI Cards (Target, Actual Sales, % Achievement, Margin ฿, Commission ฿) พร้อมกราฟแนวโน้ม
FR-5.2 Dynamic Period Filter: ตัวกรองอัจฉริยะเลือกดูผลงานรายปี (Year) และรายเดือน (Month) หรือเลือกกรองเฉพาะสาขา/พนักงานได้แบบ Multi-Select
FR-5.3 3-Dimensional Top 10 Leaderboards: กระดานจัดอันดับ Top 10 พนักงานขาย, Top 10 สาขา และ Top 10 สินค้ายอดนิยมทำกำไรสูงสุด
FR-5.4 Branch Report & Executive Statement: รายงานเปรียบเทียบ Target vs Actual ของ 10 สาขาหลัก พร้อมหน้ารายงานสำหรับสั่งพิมพ์ PDF
FR-5.5 Sales Report & 3-Party Sign-off: รายงานสรุปผลงานรายบุคคล พร้อมหลอดแสดง % Achievement และช่องลงนามอนุมัติ 3 ฝ่าย (ผู้จัดทำ, ผู้จัดการฝ่ายขาย, ผู้บริหาร)
FR-6: ระบบบริหารข้อมูลหลักและคลังสินค้า (Master Data & Inventory Management) MASTER DATA
FR-6.1 Branch Master & Monthly Targets: จัดการข้อมูล 10 สาขา พร้อมระบบแก้ไขเป้ายอดขายประจำเดือนแบบ Inline Table Editing
FR-6.2 Sales Staff Master & Rates: จัดการข้อมูลพนักงานขาย ผูกสังกัดสาขา และกำหนดอัตราคอมมิชชั่นรายบุคคล
FR-6.3 Thailand Geography & Address: ฐานข้อมูล 77 จังหวัด อำเภอ ตำบล และรหัสไปรษณีย์ สำหรับผูกกับที่ตั้งสาขา
FR-6.4 Item Master & Standard Cost %: กำหนดข้อมูลสินค้า 20 รายการ, ราคาขายมาตรฐาน, และอัตราต้นทุนมาตรฐาน
FR-6.5 Categories & Units: บริหารจัดการหมวดหมู่สินค้า (Skincare, Makeup, Perfume) และหน่วยนับ (Piece, Bottle, Pack)
FR-7: ระบบความปลอดภัยและการดูแลระบบขั้นสูง (Security, RBAC & Administration) SECURITY & ADMIN
FR-7.1 Role-Based Access Control (RBAC): แยกสิทธิ์การใช้งาน 4 บทบาทชัดเจน (Admin, Manager, Sales, Executive)
FR-7.2 Session & IP Security Monitor: ตรวจสอบผู้ใช้ออนไลน์แบบเรียลไทม์ พร้อมแสดงหมายเลข IP Address, Browser User Agent และปุ่ม Force Terminate
FR-7.3 System Audit Trail: บันทึกประวัติการใช้งานแบบวินาทีต่อวินาที (Timestamp, User, Action, Entity, JSON Details) สำหรับตรวจสอบย้อนหลัง 100%
FR-7.4 SQL Query Console: หน้าต่างรันคำสั่ง SQL Query กับฐานข้อมูล Cloudflare D1 โดยตรง พร้อมปุ่ม Export ผลลัพธ์เป็น JSON/CSV
FR-7.5 1-Click Transaction & Audit Wipe Tool: เครื่องมือล้างข้อมูลธุรกรรมทดสอบในคลิกเดียวสำหรับ Admin เพื่อเตรียมระบบให้พร้อมสำหรับข้อมูลจริง
FR-7.6 Interactive ERD Viewer: แผนผังความสัมพันธ์ของทั้ง 15 ตารางในฐานข้อมูลแบบ Interactive Dynamic Graph
3. ข้อกำหนดด้านคุณภาพและประสิทธิภาพของระบบ (Non-Functional Requirements)
Performance
เวลาตอบสนองของระบบ (Response Time) < 500ms ผ่าน Edge Computing Network และ Client-Side Caching
Security & Integrity
การป้องกัน SQL Injection ด้วย Parameterized Queries, การเข้ารหัส Session Token และ Strict Lock
Responsiveness & UI
รองรับการทำงานทั้งบน Desktop, Tablet และ Mobile พร้อม Dark Mode / Light Mode สมบูรณ์แบบ
Availability
ความพร้อมใช้งาน 99.9% ผ่าน Cloudflare Pages Global CDN และ D1 Serverless SQL Replication
4. ตารางสรุปสิทธิ์การเข้าถึงระบบตามบทบาท (RBAC Matrix)
เมนูในระบบจริง (System Sidebar Menu) ADMIN SALES_MANAGER SALES EXECUTIVE
1. Sales & Operations
  • Dashboard ✅ Full Access ✅ Full Access ✅ Full Access ✅ Full Access
  • Sales orders ✅ All Branches ✅ All Branches ⚠️ Own Branch / Rep ❌ Read Only
  • Import Sales orders ✅ Allow Import ✅ Allow Import ✅ Allow Import ❌ Denied
  • Approve Commission ✅ Review & Approve ✅ Review & Approve ❌ Denied ❌ Denied
  • Branch Report ✅ Full View ✅ Full View ❌ Denied ✅ Full View
  • Sales Report ✅ Full View ✅ Full View ❌ Denied ✅ Full View
2. Master Data Management
  • Branch ✅ Full CRUD ✅ View & Target ❌ Read Only ❌ Read Only
  • Sales Staff ✅ Full CRUD ✅ View & Rate % ❌ Read Only ❌ Read Only
  • Address ✅ Full CRUD ✅ View ❌ Read Only ❌ Read Only
3. Inventory
  • Item Master ✅ Full CRUD & Cost % ✅ View Price & Cost ❌ Read Only ❌ Read Only
  • Item Category ✅ Full CRUD ✅ View ❌ Read Only ❌ Read Only
  • Unit of measure ✅ Full CRUD ✅ View ❌ Read Only ❌ Read Only
4. Security & Administration
  • User ✅ Full Admin ❌ Denied ❌ Denied ❌ Denied
  • Role ✅ Full Admin ❌ Denied ❌ Denied ❌ Denied
  • Session & IP Monitor ✅ Full Admin ❌ Denied ❌ Denied ❌ Denied
  • System Audit Trail ✅ Full Admin ❌ Denied ❌ Denied ❌ Denied
  • SQL Query Console ✅ Full Admin ❌ Denied ❌ Denied ❌ Denied
5. Architecture & Documentation
  • Interactive ERD Viewer ✅ Admin Only ❌ Denied ❌ Denied ❌ Denied
  • System Documentation & Manual ✅ Admin Only ❌ Denied ❌ Denied ❌ Denied
สถาปัตยกรรมระบบระดับองค์กรและการวิเคราะห์ฟังก์ชัน (Enterprise Multi-Tier Architecture & Functional Decomposition)

ระบบ Dynamics 369 Sales & Margin Intelligence Platform ถูกออกแบบด้วยสถาปัตยกรรม Modern Serverless Cloud Architecture แบบ 5-Tier ผสานรวม 6 Micro-Engines อัจฉริยะ และระบบจัดเก็บข้อมูลแบบ Dual-Store (Cloudflare D1 SQL + LocalStorage Reactive Cache) เพื่อรับประกันความเร็วระดับ Edge Computing (Latency < 50ms) และความปลอดภัยระดับ Zero-Trust:

แผนภาพผังสถาปัตยกรรมและทราฟฟิกข้อมูล 5 เลเยอร์ (5-Tier Architecture Topology)

sequenceDiagram
    autonumber
    participant UI as Tier 1: Client SPA Layer (Browser UI)
    participant CDN as Tier 2: Cloudflare Edge CDN (300+ PoPs)
    participant API as Tier 3: Cloudflare Worker API Gateway
    participant Engine as Tier 4: Core Business Logic Engines
    participant DB as Tier 5: Cloudflare D1 SQL Database
    participant Local as Tier 1.5: LocalStorage Fallback Store

    Note over UI,Local: 1. การส่งคำขอและการเข้าถึงหน้าเว็บ (Static Assets Delivery)
    UI->>CDN: ส่งคำขอ HTTPS Request เพื่อโหลดหน้าเว็บและ Assets
    CDN-->>UI: ส่งคืน Static Bundle (HTML5, Vanilla CSS, ES6 JS) ด้วยความเร็ว Edge Caching

    Note over UI,DB: 2. การประมวลผลธุรกรรมและ API (Dynamic Data Processing)
    UI->>API: ส่ง REST API Request (/api/db/*) พร้อม Session Token
    API->>API: ตรวจสอบ Security Gateway, Rate Limit และ Input Validation
    API->>Engine: ส่งข้อมูลเข้าสู่ Core Engine (Ingestion, Costing, Comm, Filter, Reports)
    Engine->>DB: รันคำสั่ง Prepared SQL Statement สู่ตาราง Relational 15 ตาราง
    DB-->>Engine: ส่งคืนผลลัพธ์ชุดข้อมูลที่ผ่านการประมวลผล
    Engine-->>API: ประกอบ JSON Response กลับสู่เกตเวย์
    API-->>UI: ส่งคืน JSON Response อัปเดตหน้าจอแบบ Reactive Real-Time

    Note over UI,Local: 3. กลไกสำรองกรณี Offline (Offline Resilience Fallback)
    opt เครือข่ายขัดข้อง หรือ D1 มี Latency ชั่วคราว
        UI->>Local: สลับไปอ่านและเขียนข้อมูลบน LocalStorage Engine ทันที
        Local-->>UI: ส่งคืนข้อมูลและบันทึก User Preferences ใช้งานต่อได้ไม่สะดุด
    end
            

การวิเคราะห์โครงสร้าง 5 สถาปัตยกรรมหลัก (5 Architectural Tiers Analysis)

Tier 1: Presentation Layer
Single Page Application (SPA)
  • สร้างด้วย Pure HTML5 / Vanilla CSS / ES6+ JavaScript ปราศจาก Framework Bloat
  • State Management: Reactive State Store ติดตามตัวกรองและการคำนวณสด
  • UI Engine: Sticky Table Headers, Custom Modal Controllers, Toast Notifications
  • Security Interceptor: ซ่อน/แสดงองค์ประกอบตาม 4 RBAC Roles
Tier 2: Global Edge CDN
Cloudflare Pages & Edge Acceleration
  • กระจายไฟล์แอปพลิเคชันทั่วโลกกว่า 300+ Edge Data Centers
  • Zero-Cold-Start Latency: ให้บริการหน้าเว็บในระดับ Milliseconds
  • Security at Edge: มาตรฐาน HTTPS TLS 1.3, DDoS Mitigation และ Bot Protection
  • Atomic Deployments: ระบบ Rollback อัตโนมัติและ Zero-Downtime Releases
Tier 3: Serverless API Gateway
Cloudflare Worker API Layer
  • เกตเวย์ Serverless Micro-APIs (`/api/db/*`) ประมวลผลที่ Edge ใกล้ผู้ใช้ที่สุด
  • Security Barrier: ตรวจสอบสิทธิ์ RBAC, Session Validity และบล็อกคำขอที่ไม่ได้รับอนุญาต
  • SQL Parameterization: ป้องกัน SQL Injection ด้วย Prepared Statements 100%
  • Audit Interceptor: บันทึก User Event ทุกคำขอลง Audit Log แบบอัตโนมัติ
Tier 4: Business Logic Engines
6 Core Intelligence Micro-Engines
  • Ingestion Engine: Multi-Sheet Parser และ Deduplication Matrix
  • Costing Engine: คำนวณ Standard Cost % และ Margin อัตโนมัติ
  • Commission Engine: คำนวณเงินรางวัลและสั่ง Strict Transaction Lock
  • Reporting Engine: วิเคราะห์ KPIs, จัดอันดับ Top 10 และสร้างเอกสาร A4 Statement
Tier 5: Relational Persistence
Cloudflare D1 SQL Relational Engine
  • ฐานข้อมูล Cloudflare D1 (SQLite Engine) โครงสร้าง 15 ตาราง 3NF
  • ACID Guarantees: รองรับ Transactions, Foreign Keys และ Unique Constraints
  • Admin Tools: รองรับ SQL Console สด และ 1-Click Data Wipe Tool
  • Dual-Store Sync: สำรองและซิงค์ข้อมูลคู่ขนานกับ LocalStorage Engine

การวิเคราะห์การทำงานของ 6 กลไกประมวลผลอัจฉริยะ (6 Core Intelligence Micro-Engines)

Core Engine Name โมดูลและฟังก์ชันที่รองรับ อัลกอริทึมและตรรกะการประมวลผล (Algorithm & Processing Logic) ตารางฐานข้อมูลที่เกี่ยวข้อง
1. Ingestion & Validation Engine Import Sales Orders, Data Staging Matrix อ่านไฟล์ Excel/CSV หลาย Sheet พร้อมกัน ตรวจสอบความถูกต้องของ Foreign Key พนักงานขาย (Reject เป็น INVALID ❌ หากไม่มีใน Master) และตรวจสอบเลขที่บิลซ้ำซ้อน (Reject เป็น DUPLICATE ❌) ก่อนอนุญาตให้กดยืนยันบันทึก Commit sales_transactions, sales_transaction_items, employees
2. Costing & Margin Engine Sales Orders, Item Master Cost %, Staging ดึงราคาขายมาตรฐานและ Standard Cost % จาก Item Master คำนวณต้นทุนต่อหน่วย: Cost = Price * (Standard Cost% / 100) และกำไรขั้นต้น: Margin = Amount - Cost พร้อม Aggregate สรุปยอด Total Amount, Total Cost, Total Margin สู่ระดับหัวบิล products, sales_transaction_items, sales_transactions
3. Commission & Strict Lock Engine Approve Commission, Monthly Cycles, Lock Pipeline คำนวณเงินรางวัลคอมมิชชั่นรายเดือน: Commission = Total Margin * Staff Rate % เมื่อผู้จัดการกด Approve จะเปลี่ยนสถานะงวดเป็น APPROVED บันทึกผู้อนุมัติลง Audit และทำการล็อคบิลขายในงวดนั้นทันที (Locked = True) ปิดปุ่มแก้ไขและลบ 100% monthly_commissions, employees, sales_transactions
4. Dynamic Period & KPI Engine Dashboard, Filter Bar, Top 10 Leaderboards แปลงค่าตัวกรอง ปี/เดือน เป็นช่วงวันที่ StartDate - EndDate แบบ Real-Time คำนวณ 5 Core KPIs (Target รวม, Actual Sales รวม, % Achieved, Margin รวม, Comm รวม) และจัดอันดับ 3 มิติ: Top 10 Staff, Top 10 Branches และ Top 10 Products sales_transactions, branches, employees, products
5. Performance Report & Print Engine Branch Report, Sales Report, A4 Print, Excel Export ประมวลผลรายงาน Matrix เปรียบเทียบ Target vs Actual Sales, Margin %, Commission รายสาขาและรายบุคคล จัดหน้าพิมพ์เอกสาร A4 Statement พร้อมหัวกระดาษและช่องลงนามอนุมัติ 3 ฝ่าย พร้อมแปลงข้อมูลเป็นตารางสเปรดชีต Excel (.xlsx) branches, employees, sales_transactions
6. Security, Audit & Admin Engine RBAC Security Gate, Audit Logs, Sessions, SQL, Wipe Tool ดักจับ User Event ทุกชนิด บันทึกเวลา ผู้ใช้ และรายละเอียดลงตาราง Audit Logs ตรวจสอบ Active Sessions และ IP Address พร้อมคำสั่ง Force Terminate รองรับการรัน SQL สด และปุ่ม 1-Click Wipe ล้างข้อมูลธุรกรรมโดยรักษา Master Data ปลอดภัย 100% system_audit_logs, user_sessions, users, All 15 Tables

ตารางวิเคราะห์การจับคู่ฟังก์ชันสู่สถาปัตยกรรมระบบ (Functional Decomposition & Architectural Mapping Matrix)

Req ID System Function Frontend UI Component Backend Processing Engine API Endpoints Database Entity
FR-1 Authentication & RBAC #loginView, #authGateBarrier, Profile Dropdown Auth Gateway & Session Validator /api/db/auth/login, /logout users, user_sessions
FR-2 Excel Multi-File Ingestion #importDropzone, #stagingDataTable Multi-File Parser & Deduplication Engine /api/db/sales/bulk-import sales_transactions, sales_transaction_items
FR-3 Costing & Margin Matrix #salesOrdersTable, #itemMasterTable Standard Cost % & Margin Rollup Engine /api/db/products, /transactions products, sales_transaction_items
FR-4 Commission & Strict Lock #commissionCyclesTable, #reviewSalesModal Commission Calculator & Lock Mutator /api/db/commissions/approve monthly_commissions, sales_transactions
FR-5 Dashboard & Top 10 Sorters #filterBar, #kpiCardsGrid, Top 10 Tables Dynamic Period Evaluator & KPI Aggregator /api/db/dashboard/kpis, /leaderboards sales_transactions, branches, employees
FR-6 Branch & Sales Reports #branchReportTable, #salesReportTable, Print A4 Matrix Compiler & 3-Way Sign-off Renderer /api/db/reports/branch, /sales branches, employees, sales_transactions
FR-7 Master Data Management Branch, Staff, Item, Category, Unit, Address Grids Master Data CRUD & Inline Edit Listener /api/db/master/* (CRUD endpoints) All Master Data Entities (8 Tables)
FR-8 Security, Audit & Admin Audit Trail Grid, Session IP Monitor, SQL Console, Wipe Event Interceptor, SQL Runner, Wipe Controller /api/db/audit, /sql/query, /wipe system_audit_logs, user_sessions
โครงสร้างฐานข้อมูล 15 ตาราง (Relational Database Schema)

ฐานข้อมูล Cloudflare D1 (SQLite Engine) ประกอบด้วย 15 ตารางที่มีความสัมพันธ์แบบ 3NF (Third Normal Form) ชัดเจน:

-- 1. Master สาขาและเป้าหมาย CREATE TABLE branches ( branch_id INTEGER PRIMARY KEY AUTOINCREMENT, branch_code TEXT UNIQUE NOT NULL, branch_name TEXT NOT NULL, address_line TEXT, phone TEXT, monthly_target REAL DEFAULT 300000, is_active INTEGER DEFAULT 1 ); -- 2. Master สินค้าและต้นทุนมาตรฐาน CREATE TABLE products ( product_id INTEGER PRIMARY KEY AUTOINCREMENT, product_code TEXT UNIQUE NOT NULL, product_name TEXT NOT NULL, category_id INTEGER REFERENCES item_categories(category_id), unit_id INTEGER REFERENCES item_units(unit_id), base_price REAL DEFAULT 500, standard_cost_pct REAL NOT NULL, is_active INTEGER DEFAULT 1 ); -- 3. Master พนักงานและเรทคอมมิชชั่น CREATE TABLE employees ( employee_id INTEGER PRIMARY KEY AUTOINCREMENT, branch_id INTEGER REFERENCES branches(branch_id), employee_code TEXT UNIQUE NOT NULL, full_name TEXT NOT NULL, role TEXT DEFAULT 'SALES', commission_rate_pct REAL DEFAULT 5.0, monthly_target REAL DEFAULT 50000, is_active INTEGER DEFAULT 1 ); -- 4. บิลขาย Header & Line Items CREATE TABLE sales_transactions ( transaction_id INTEGER PRIMARY KEY AUTOINCREMENT, invoice_no TEXT UNIQUE NOT NULL, branch_id INTEGER REFERENCES branches(branch_id), employee_id INTEGER REFERENCES employees(employee_id), transaction_date TEXT NOT NULL, total_amount REAL NOT NULL, total_cost REAL NOT NULL, total_margin REAL NOT NULL ); CREATE TABLE sales_transaction_items ( item_id INTEGER PRIMARY KEY AUTOINCREMENT, transaction_id INTEGER REFERENCES sales_transactions(transaction_id), product_id INTEGER REFERENCES products(product_id), quantity INTEGER NOT NULL, unit_price REAL NOT NULL, standard_cost_pct REAL NOT NULL, subtotal_amount REAL NOT NULL, subtotal_cost REAL NOT NULL, subtotal_margin REAL NOT NULL ); -- 5. สรุปค่าคอมมิชชั่นและการอนุมัติ CREATE TABLE monthly_commissions ( commission_id INTEGER PRIMARY KEY AUTOINCREMENT, employee_id INTEGER REFERENCES employees(employee_id), period_year INTEGER NOT NULL, period_month INTEGER NOT NULL, total_sales_amount REAL NOT NULL, total_margin_amount REAL NOT NULL, commission_rate_pct REAL NOT NULL, calculated_commission REAL NOT NULL, approval_status TEXT DEFAULT 'PENDING_APPROVAL', approved_by INTEGER, approved_at TEXT );
พจนานุกรมข้อมูลระบบ (Data Dictionary - 15 Entities)

รายละเอียดโครงสร้างฟิลด์ ชนิดข้อมูล (Data Types), ข้อกำหนดคีย์ (Key Constraints), และคำอธิบายการใช้งานของทั้ง 15 ตารางในระบบ:

1. sales_transactions (หัวบิลขาย Header) Transaction Entity
Column Name Data Type Constraints Description (คำอธิบาย) Sample Data
transaction_idINTEGERPRIMARY KEY AUTOรหัสธุรกรรมบิลขายภายในระบบ1
invoice_noTEXTUNIQUE, NOT NULLเลขที่บิลขาย (ป้องกันการบันทึกซ้ำ)BR01-IV2608001
branch_idINTEGERFK → branchesรหัสสาขาที่เกิดรายการขาย1
employee_idINTEGERFK → employeesรหัสพนักงานขายผู้รับผิดชอบบิล1
transaction_dateTEXTNOT NULLวันที่ขาย (รูปแบบ YYYY-MM-DD)2026-08-18
total_amountREALNOT NULLยอดเงินขายรวมทั้งบิล (บาท)10700.00
total_costREALNOT NULLต้นทุนสินค้ารวมตาม Standard Cost %5780.00
total_marginREALNOT NULLกำไรขั้นต้นของบิล (ยอดขาย - ต้นทุน)4920.00
commission_statusTEXTDEFAULT 'PENDING'สถานะการจ่ายคอมมิชชั่น ('PENDING', 'APPROVED')APPROVED
commission_idINTEGERFK → monthly_commissionsรหัสชุดการอนุมัติ Commission ที่บิลนี้สังกัด1
is_lockedINTEGERDEFAULT 0แฟล็กการล็อคบิล (1 = ล็อคห้ามแก้ไข/ลบ)1
2. sales_transaction_items (รายการสินค้าในบิล Lines) Line Item Entity
Column Name Data Type Constraints Description (คำอธิบาย) Sample Data
item_idINTEGERPRIMARY KEY AUTOรหัสรายการสินค้าในบิล101
transaction_idINTEGERFK → sales_transactionsรหัสอ้างอิงหัวบิลขาย Header1
product_idINTEGERFK → productsรหัสสินค้าที่ขาย5
quantityINTEGERNOT NULL, > 0จำนวนชิ้นที่ขาย10
unit_priceREALNOT NULL, > 0ราคาขายต่อหน่วย ณ วันที่ทำรายการ (บาท)400.00
standard_cost_pctREALNOT NULLอัตราต้นทุนมาตรฐาน ณ ขณะขาย (%)45.0
subtotal_amountREALNOT NULLยอดขายรวมของรายการ (Qty x Price)4000.00
subtotal_costREALNOT NULLต้นทุนรวมของรายการ (Subtotal x Cost%)1800.00
subtotal_marginREALNOT NULLกำไรขั้นต้นของรายการ (Subtotal - Cost)2200.00
3. monthly_commissions (สรุปค่าคอมมิชชั่นและการอนุมัติ) Calculation & Approval
Column Name Data Type Constraints Description (คำอธิบาย) Sample Data
commission_idINTEGERPRIMARY KEY AUTOรหัสชุดคำนวณและแจ้งยอด Commission1
employee_idINTEGERFK → employeesรหัสพนักงานขายผู้รับเงินรางวัล1
period_yearINTEGERNOT NULLปีประจำรอบการประเมิน (ค.ศ.)2026
period_monthINTEGERNOT NULL (1-12)เดือนประจำรอบการประเมิน (1-12)8
total_sales_amountREALNOT NULLยอดขายจริงรวมในรอบการอนุมัตินี้ (บาท)129860.00
total_margin_amountREALNOT NULLกำไรขั้นต้นรวมในรอบการอนุมัตินี้ (บาท)65662.50
commission_rate_pctREALNOT NULLอัตราคอมมิชชั่นของพนักงาน (%)5.0
calculated_commissionREALNOT NULLยอดเงินคอมมิชชั่นที่คำนวณได้ (Margin x Rate%)3283.13
approval_statusTEXT'PENDING_APPROVAL' / 'APPROVED' / 'REJECTED'สถานะการพิจารณาอนุมัติAPPROVED
approved_byINTEGERFK → user_accountsรหัสผู้ใช้งานที่ทำการอนุมัติ (Manager/Admin)2
approved_atTEXTNULLABLEวัน-เวลาที่อนุมัติ (ISO Timestamp)2026-08-18 14:30:00
approval_notesTEXTNULLABLEบันทึกข้อความเหตุผลการอนุมัติ/ปฏิเสธตรวจสอบบิลครบถ้วน อนุมัติจ่าย
4. branches (ข้อมูลสาขา)
ColumnTypeDesc
branch_idINT (PK)รหัสสาขาภายใน
branch_codeTEXT (UQ)รหัสสาขา เช่น BR-01
branch_nameTEXTชื่อสาขาภาษาไทย/อังกฤษ
address_lineTEXTที่อยู่สาขา
phoneTEXTเบอร์โทรศัพท์ติดต่อ
monthly_targetREALเป้ายอดขายรายเดือน (บาท)
is_activeINTสถานะเปิดใช้งาน (1/0)
5. employees (พนักงานขาย)
ColumnTypeDesc
employee_idINT (PK)รหัสพนักงานภายใน
branch_idINT (FK)รหัสสาขาที่สังกัด
employee_codeTEXT (UQ)รหัสพนักงาน เช่น ID-001
full_nameTEXTชื่อ-นามสกุลพนักงาน
roleTEXTตำแหน่ง เช่น SALES
commission_rate_pctREALอัตราคอมมิชชั่น %
monthly_targetREALเป้ายอดขายรายบุคคล (บาท)
is_activeINTสถานะปฏิบัติงาน (1/0)
6. products (สินค้า & Cost %)
ColumnTypeDesc
product_idINT (PK)รหัสสินค้าภายใน
product_codeTEXT (UQ)รหัสสินค้า เช่น Item-01
product_nameTEXTชื่อสินค้า
category_idINT (FK)รหัสหมวดหมู่สินค้า
unit_idINT (FK)รหัสหน่วยนับสินค้า
base_priceREALราคาขายมาตรฐาน (บาท)
standard_cost_pctREALอัตราต้นทุนมาตรฐาน (%)
7. item_categories & item_units
EntityColumnsDesc
item_categoriescategory_id (PK)
category_code (UQ)
category_name
หมวดหมู่สินค้า เช่น Skincare, Makeup, Perfume
item_unitsunit_id (PK)
unit_code (UQ)
unit_name
หน่วยนับสินค้า เช่น Piece (ชิ้น), Bottle (ขวด), Pack
8. Geography Tables (ภูมิศาสตร์)
TableKeys & ColumnsDesc
countriescountry_id (PK), country_code, country_nameประเทศ (Thailand)
provincesprovince_id (PK), province_name_thจังหวัด (77 จังหวัด)
districtsdistrict_id (PK), province_id (FK)อำเภอ/เขต
sub_districtssub_district_id (PK), district_id, zipcodeตำบล/แขวง และรหัสไปรษณีย์
9. Security & Audit Trail
TableKeys & ColumnsDesc
user_accountsuser_id (PK), username, password_hash, role_codeบัญชีผู้ใช้งานระบบ
roles & permissionsrole_code (PK), perm_id (PK)สิทธิ์การเข้าถึงเมนู (RBAC Matrix)
system_audit_logsaudit_id (PK), action, entity, details, created_atประวัติการกระทำของผู้ใช้ (Audit Trail)
คู่มือการใช้งานระบบฉบับละเอียด (User Manual Breakdown & UI Pictures)

1 ขั้นตอนที่ 1: การเข้าสู่ระบบและการยืนยันตัวตน (Authentication & Role Gateway)

1.1 กรอก Username และ Password ในหน้าเข้าสู่ระบบ

เข้าสู่เว็บไซต์ https://dynamics369-sales.pages.dev จากนั้นกรอก Username (เช่น admin) และ Password (password123) เพื่อเข้าสู่ระบบผ่าน Security Gateway

Security Gateway • Sign In Screen Dynamics 369 Platform
Logo
Dynamics 369
Sales & Margin Intelligence
admin
••••••••
1.2 การเปิดดูรหัสผ่าน และการใช้ 1-Click Demo Login

คลิกที่ ไอคอนดวงตา 👁️ เพื่อตรวจสอบความถูกต้องของรหัสผ่าน หรือคลิกปุ่ม 1-Click Demo Login เพื่อเข้าใช้งานตามบทบาท (Admin, Manager, Sales Rep, Executive) ได้ทันที

1-Click Fast Login Shortcuts Role Based Entry
1-Click Demo Login:
👑
adminAdministrator
👔
managerSales Manager
1.3 การสลับโหมดการแสดงผล (Dark Mode / Light Mode)

คลิกปุ่ม Theme Toggle (🌙 / ☀️) ที่มุมขวาบนของแถบ Header เพื่อเปลี่ยนระหว่างธีมมืดและธีมสว่าง โดยระบบจะบันทึกสถานะลงใน LocalStorage ของเบราว์เซอร์อัตโนมัติ

2 ขั้นตอนที่ 2: การติดตามผลงานบน Dashboard (Executive Dashboard & Filter Intelligence)

2.1 ตรวจสอบการ์ดสรุปตัวชี้วัดหลัก 5 ด้าน (5 Core KPI Cards)

หน้า Dashboard แสดงผลภาพรวมตัวชี้วัดสำคัญ 5 ด้านแบบ Real-time: 1. เป้ายอดขาย (Target), 2. ยอดขายจริง (Actual Sales), 3. อัตราความสำเร็จ (% Achievement Bar), 4. กำไรขั้นต้น (Total Margin & % Margin), 5. คอมมิชชั่นสุทธิ (Approved Commission)

Executive KPI Metrics Overview Real-Time Engine
เป้าหมายรวม (Target)
฿3,000,000
ยอดขายจริง (Actual)
฿3,245,600
% บรรลุเป้าหมาย
108.2%
กำไรขั้นต้น (Margin)
฿1,622,800
Commission สุทธิ
฿81,140
2.2 การใช้งานตัวกรอง Dynamic Period Filter (Year / Month) และ Multi-Select

เลือก [ปี] และ [เดือน] จากเมนูดรอปดาวน์ หรือกดปุ่ม [เดือนนี้ | ทั้งปี | ทั้งหมด] เพื่อคำนวณผลงานตามช่วงเวลาที่ต้องการ พร้อมเลือกกรองเฉพาะบางสาขาหรือพนักงานขายแบบ Multi-Select ได้อิสระ

2.3 การดูกระดานจัดอันดับ Top 10 (Sales Staff, Branches, Products)

ตรวจสอบกระดานผู้นำผลงาน 3 มิติ ได้แก่ Top 10 Sales Staff (พนักงานขายยอดเยี่ยม), Top 10 Branches (สาขาทำกำไรสูงสุด), และ Top 10 Products (สินค้ายอดนิยมทำกำไรสูงสุด) พร้อมเหรียญ 🥇, 🥈, 🥉

3 ขั้นตอนที่ 3: การบันทึกและจัดการบิลขาย (Sales Transactions & Manual Entry)

3.1 ตรวจสอบรายการบิลขายในระบบ (Sales Explorer & Line Items Drilldown)

ไปที่เมนู Sales Transactions เพื่อดูตารางบิลขายทั้งหมด สามารถคลิกที่แถวบิลเพื่อขยายดูรายละเอียดรายการสินค้า (Line Items), จำนวน, ราคาขาย, และต้นทุน Standard Cost % ของแต่ละรายการ

Sales Transactions Explorer Header & Line Items Matrix
เลขที่บิล (Invoice) วันที่ สาขา พนักงานขาย ยอดขาย (฿) กำไร (Margin) สถานะ
BR01-IV2608001 2026-08-18 Central Ladprao Sasiprapa Jansuay ฿10,700.00 ฿4,920.00 APPROVED
3.2 การบันทึกบิลขายใหม่แบบ Manual (Header & Dynamic Lines Modal)

คลิกปุ่ม [+ บันทึกบิลขายใหม่ (Manual)] กรอกข้อมูลหัวบิล (เลขที่บิล, สาขา, พนักงานขาย, วันที่) และเพิ่มรายการสินค้าตามจำนวนจริง ระบบจะคำนวณยอดขายรวม, ต้นทุนรวม และกำไรขั้นต้นให้อัตโนมัติทันที

4 ขั้นตอนที่ 4: การนำเข้าบิลขายจากไฟล์ Excel (Import Sales Orders & Deduplication)

4.1 การอัปโหลดไฟล์ Excel หลายสาขาพร้อมกัน (Multi-File Ingestion)

ไปที่เมนู Import Sales orders ลากไฟล์ Excel รายงานยอดขายประจำสาขา (.xlsx / .csv) มาวางในกล่อง Dropzone หรือคลิกปุ่มโหลดชุดข้อมูลตัวอย่าง

Multi-File Excel Dropzone Active Drag & Drop
ลากไฟล์ Excel หลายสาขามาวางพร้อมกัน หรือคลิกเพื่อเลือกไฟล์ รองรับไฟล์ .XLSX, .CSV พร้อมระบบตรวจสอบ Header & Data Types อัตโนมัติ
4.2 การตรวจสอบความถูกต้อง, ลบรายการผิดพลาด และคัดกรองบิลซ้ำ (Validation & Staging Cleanup)

ระบบจะตรวจสอบใน Data Staging โดยอัตโนมัติ: 1. ตรวจสอบรหัสพนักงานขายว่ามีอยู่ในฐานข้อมูลหรือไม่, 2. ตรวจจับเลขที่บิลซ้ำซ้อน (Deduplication Check) และ 3. คำนวณ Standard Cost % และกำไรขั้นต้น พร้อมเครื่องมือจัดการความสะอาดของข้อมูล:

  • ปุ่ม [ลบ] ประจำแถว: ลบเฉพาะรายการที่ต้องการออกจากตาราง Staging แบบเจาะจงรายบรรทัด
  • ปุ่ม [ลบรายการที่ผิดพลาด (Remove Errors)]: ลบทุกแถวที่ติดสถานะ INVALID หรือ Error ในคลิกเดียว คงเหลือเฉพาะข้อมูลที่ถูกต้อง (Ready to Commit)
  • ปุ่ม [ลบรายการบิลซ้ำ (Remove Duplicates)]: กรองและลบแถวที่มีเลขที่บิลซ้ำกับในระบบออกจาก Staging อย่างรวดเร็ว
4.3 ยืนยันบันทึกข้อมูลเข้าฐานข้อมูลจริง (Commit to Production D1)

เมื่อข้อมูลใน Staging ผ่านการตรวจสอบทั้งหมด (สถานะ VALID) ให้คลิกปุ่ม [💾 ยืนยันบันทึกข้อมูลเข้าระบบ (Commit)] เพื่อบันทึกเข้าสู่ Cloudflare D1 SQL อย่างถาวร

5 ขั้นตอนที่ 5: การคำนวณ ตรวจสอบ และอนุมัติค่าคอมมิชชั่น (Commission Approval & Lock)

5.1 ตรวจสอบยอดคอมมิชชั่นที่คำนวณอัตโนมัติ และการกรองตามรอบเวลา (Month, Year, All)

เปิดเมนู Approve Commission ระบบจะดึงยอดกำไรขั้นต้น (Margin) ของบิลขายตามรอบเดือน/ปีที่เลือก มาคำนวณตามอัตรา (%) ของพนักงานขายแต่ละคน พร้อมแถบตัวกรองรอบเวลา (Period Range) ให้เลือกดูเฉพาะเดือน, ทั้งปี, หรือทั้งหมด (All) เพื่อตรวจทานและพิจารณาอนุมัติจ่ายเป็นรายงวดได้อย่างแม่นยำ

Commission Approval Matrix Manager / Admin Authority
คุณศศิประภา จันทร์สวย (ID-001)
สาขา: Central Ladprao • กำไรขั้นต้น ฿65,662.50 • เรท 5.0%
ยอดคอมมิชชั่น ฿3,283.13
5.2 การกดอนุมัติและการล็อคบิลขายอัตโนมัติ (Strict Transaction Lock)

เมื่อคลิก [อนุมัติ (Approve)] ระบบจะเปลี่ยนสถานะเป็น APPROVED บันทึกชื่อผู้อนุมัติและเวลา Timestamp พร้อมทำการ **ล็อคบิลขายในงวดนั้นอัตโนมัติ (Locked = True)** เพื่อป้องกันการแก้ไขหรือลบย้อนหลัง

6 ขั้นตอนที่ 6: การดูรายงานตามสาขาสำหรับผู้บริหาร (Branch Report & Print Statement)

6.1 ตรวจสอบรายงานเปรียบเทียบ Target vs Actual และสั่งพิมพ์เอกสารรายงานผู้บริหาร

เปิดเมนู Branch Report เพื่อดูผลงานเปรียบเทียบยอดขายจริงกับเป้าหมายประจำ 10 สาขา พร้อมปุ่มกดสั่งพิมพ์เอกสารรายงานสรุปผู้บริหารพร้อมช่องลงนามอนุมัติ

Executive Branch Performance Report Print & Statement Ready
เป้าหมายรวม 10 สาขา
฿3,200,000
ยอดขายจริงรวม
฿3,450,000
บรรลุเป้าหมาย (Achieved)
107.8%

7 ขั้นตอนที่ 7: การดูรายงานสรุปผลงานระดับพนักงานขาย (Sales Report)

7.1 ตรวจสอบรายงานเปรียบเทียบ Target, Actual, % Margin และยอด Commission รายบุคคล

เปิดแถบเมนู Sales Report ใต้หมวด Sales & Operations เพื่อดูตารางสรุปผลงานของพนักงานขายทุกคนในองค์กรแบบ Real-Time ประกอบด้วยเป้าหมาย (Monthly Target), ยอดขายจริง (Actual Sales), หลอดแสดง % ความสำเร็จ (Achievement Bar), กำไรขั้นต้น (Margin ฿), % Margin ต่อยอดขาย, และสถานะการอนุมัติ Commission

รายงานสรุปผลงานระดับพนักงานขาย (Sales Report) Sales & Operations
รหัส ชื่อพนักงาน / สาขา เป้ายอดขาย ยอดขายจริง % ความสำเร็จ กำไรขั้นต้น (Margin) Commission สถานะ
EMP-001 สมชาย สิทธิโชค (สาขาสำนักงานใหญ่) ฿50,000 ฿125,000 250.0% ฿45,000 ฿2,250.00 APPROVED
7.2 การเลือกกรองรอบเวลา (Month & Year Range) และการสั่งพิมพ์รายงานสรุปพร้อมช่องลงนามอนุมัติ

ผู้ใช้สามารถเลือกกรองรอบเวลาได้จากตัวเลือก รอบเวลา (Period Range): ทั้งการเลือกปี (Year), เลือกเดือน (Month) หรือปุ่ม Preset ด่วน (เดือนนี้, ทั้งปี, ทั้งหมด) ซึ่งยอด Commission รวมจะคำนวณรวมทั้งรอบที่อนุมัติแล้ว (Approved) และรอบที่รออนุมัติ (Pending) จัดกลุ่มตามพนักงานขาย พร้อมคลิกปุ่ม [พิมพ์รายงานสรุปผลงานพนักงาน (Print Report)] เพื่อออกเอกสารพร้อมส่วนลงนาม 3 ฝ่าย

Sales Staff Performance Report (Print View Preview) Print & Statement Engine

รายงานสรุปผลงานระดับพนักงานขายประจำเดือน

Dynamics 369 Sales & Margin Intelligence Platform
รอบประเมิน: สิงหาคม 2026
วันที่ออกรายงาน: 18 สิงหาคม 2026
เป้ารวม (Target)
฿600,000
ยอดขายจริง (Actual)
฿628,500
% สำเร็จภาพรวม
104.8%
Commission รวม
฿16,245.00
( System Administrator )
ผู้จัดทำรายงาน (Prepared By)
( .................................................... )
ผู้จัดการฝ่ายขาย (Sales Manager)
( .................................................... )
ผู้อำนวยการฝ่ายบริหาร (Executive Director)

6 ขั้นตอนที่ 6: การดูกระดานจัดอันดับ Top 10 (Sales Staff, Branches, Products) บน Dashboard

6.1 ตรวจสอบ 10 อันดับพนักงานขาย, 10 อันดับสาขา และ 10 อันดับสินค้าทำกำไรสูงสุด

ที่หน้า Dashboard ด้านล่างจะแสดงกระดานจัดอันดับผู้นำผลงาน (Leaderboard) ครบทั้ง 3 มิติ พร้อมเหรียญรางวัล 🥇, 🥈, 🥉 ได้แก่:
1. Top 10 Sales Staff: พนักงานขายที่ทำกำไรขั้นต้น (Margin ฿) และยอดขายสูงสุด
2. Top 10 Branches: สาขาที่ทำกำไรขั้นต้นสูงสุดและอัตราการบรรลุเป้าหมาย (% Achievement)
3. Top 10 Products: สินค้าที่สร้างกำไรขั้นต้นสูงสุด (Margin ฿), ยอดขายรวม และจำนวนชิ้นที่จำหน่าย

Dashboard Top 10 Leaderboards (3-Dimensional Rankings) Real-Time Intelligence
Top Sales Staff
🥇 คุณศศิประภา (ID-001) ฿158,400
🥈 คุณกนกวรรณ (ID-002) ฿142,100
Top Branches
🥇 Central Ladprao ฿320,500
🥈 Central World ฿295,000
Top 10 Products
🥇 Item-10 (Serum) ฿85,200
🥈 Item-02 (Cream) ฿62,800

8 ขั้นตอนที่ 8: การจัดการข้อมูลหลัก (Master Data Management)

8.1 Branch: ข้อมูลสาขาและเป้าหมายยอดขายรายเดือน (Monthly Target Inline Edit)

เมนู Branch ใช้จัดการข้อมูลสาขา 10 สาขาหลัก กำหนดรหัสสาขา (Branch Code), ชื่อสาขา, เบอร์โทรศัพท์ และ **เป้ายอดขายรายเดือน (Monthly Target)** โดยสามารถแก้ไขเป้าหมายได้โดยตรงในตาราง (Inline Edit) และมีปุ่มนำเข้า/ส่งออก Excel

Branch Master & Monthly Target Management Master Data View
ตารางข้อมูลสาขาและเป้ายอดขาย
รหัสสาขาชื่อสาขาเบอร์โทรศัพท์เป้ายอดขายประจำเดือนสถานะ
BR-01 Central Ladprao 02-555-0101 ฿300,000.00 Active
BR-02 Central World 02-555-0102 ฿350,000.00 Active
8.2 Sales Staff: ข้อมูลพนักงานขาย, สังกัดสาขา และอัตราคอมมิชชั่น (Commission Rate %)

เมนู Sales Staff ใช้บริหารจัดการข้อมูลพนักงานขายรายบุคคล กำหนดรหัสพนักงาน (เช่น ID-001), ชื่อ-นามสกุล, ผูกสังกัดสาขา, เป้ายอดขายรายบุคคล และ **อัตราคอมมิชชั่น (Commission Rate % เช่น 5.0%)**

Sales Staff Master & Commission Rate Salesperson Entity
รหัสพนักงานชื่อ-นามสกุลสาขาที่สังกัดเรท Commission (%)เป้ายอดขายสถานะ
ID-001 คุณศศิประภา จันทร์สวย Central Ladprao 5.0% ฿50,000.00 Active
8.3 Address: ข้อมูลภูมิศาสตร์และที่อยู่ (จังหวัด, อำเภอ, ตำบล, รหัสไปรษณีย์)

เมนู Address รวบรวมข้อมูลภูมิศาสตร์ 77 จังหวัดทั่วประเทศไทย อำเภอ ตำบล และรหัสไปรษณีย์ สำหรับใช้ผูกกับข้อมูลที่ตั้งสาขาและข้อมูลลูกค้า

Thailand Geography & Address Master Address Entity
จังหวัด (Province)อำเภอ/เขต (District)ตำบล/แขวง (Sub-District)รหัสไปรษณีย์
กรุงเทพมหานคร จตุจักร จอมพล 10900
เชียงใหม่ เมืองเชียงใหม่ สุเทพ 50200

9 ขั้นตอนที่ 9: การบริหารคลังสินค้า (Inventory Management)

9.1 Item Master: จัดการข้อมูลสินค้า, ราคาขาย และอัตราต้นทุนมาตรฐาน (Standard Cost %)

เมนู Item Master ใช้กำหนดข้อมูลสินค้า 20 รายการหลัก (Item-01 ถึง Item-20) ประกอบด้วยชื่อสินค้า, หมวดหมู่, ราคาขายมาตรฐาน และ **อัตราต้นทุนมาตรฐาน (Standard Cost % เช่น 45%, 50%)** ซึ่งเป็นหัวใจสำคัญในการคำนวณกำไรขั้นต้น (Margin)

Item Master & Standard Cost Percentage Costing Engine
รหัสสินค้าชื่อสินค้าหมวดหมู่ราคาขายมาตรฐานต้นทุนมาตรฐาน (%)หน่วยนับ
Item-10 Facial Treatment Serum 50ml Skincare ฿400.00 45.0% Piece (ชิ้น)
Item-02 Hydrating Glow Cream 50g Skincare ฿220.00 50.0% Piece (ชิ้น)
9.2 Item Category & Unit of measure: หมวดหมู่สินค้าและหน่วยนับ

Item Category: จัดการกลุ่มผลิตภัณฑ์ เช่น Skincare, Makeup, Bodycare, Haircare, Perfume
Unit of measure: จัดการหน่วยนับสินค้า เช่น Piece (ชิ้น), Bottle (ขวด), Box (กล่อง), Pack (แพ็ค)

Item Categories & Units of Measure Classification Master
หมวดหมู่สินค้า (Categories)
• Skincare (สกินแคร์)
• Makeup (เครื่องสำอาง)
• Perfume (น้ำหอม)
หน่วยนับ (Units of Measure)
• Piece (ชิ้น)
• Bottle (ขวด)
• Pack (แพ็ค/ชุด)

10 ขั้นตอนที่ 10: ความปลอดภัยและการดูแลระบบ (Security & Administration)

10.1 User & Role: การจัดการบัญชีผู้ใช้และกำหนดสิทธิ์เข้าถึง (RBAC Matrix)

User: เพิ่ม แก้ไข รีเซ็ตรหัสผ่าน และกำหนดบทบาทผู้ใช้งาน (ADMIN, MANAGER, SALES, EXECUTIVE)
Role: ควบคุมสิทธิ์การเข้าถึงเมนูและการแก้ไขข้อมูล (Role-Based Access Control)

User Accounts & RBAC Roles Center Security Gateway
Usernameชื่อผู้ใช้งานบทบาท (Role)อีเมลสถานะ
admin System Administrator ADMIN admin@company.com Active
manager Sales Manager MANAGER manager@company.com Active
10.2 Session & IP Monitor: ตรวจสอบผู้ใช้ออนไลน์, IP Address และการตัดการเชื่อมต่อ

เมนู Session & IP Monitor แสดงรายการผู้ใช้งานที่กำลังเข้าสู่ระบบอยู่ในขณะนั้น พร้อมหมายเลข IP Address, ชนิดอุปกรณ์/เบราว์เซอร์ และปุ่ม [Force Terminate] สำหรับผู้ดูแลระบบในการบังคับตัดการเชื่อมต่อของผู้ใช้ที่มีพฤติกรรมผิดปกติ

Active Session & IP Security Monitor Live Tracking
UserRoleIP AddressBrowser / Agentเวลาเข้าสู่ระบบAction
admin ADMIN 125.25.100.88 Chrome 128 / Windows 2026-08-18 16:20:00 Online
10.3 System Audit Trail: ตรวจสอบประวัติการกระทำของผู้ใช้ (Audit Logs)

เมนู System Audit Trail บันทึกประวัติการกระทำสำคัญทั้งหมด (Action, Entity, Timestamp, User, Details) เช่น การเข้าสู่ระบบ, การนำเข้าไฟล์ Excel, การอนุมัติคอมมิชชั่น และการแก้ไขข้อมูลหลัก เพื่อความโปร่งใสและตรวจสอบย้อนหลังได้ 100%

Security Audit Trail Monitor Compliance & Integrity
เวลา (Timestamp)ผู้ใช้งานActionEntityรายละเอียด
2026-08-18 14:30:15 admin APPROVE_COMMISSION COMMISSION อนุมัติค่าคอมมิชชั่นรอบเดือน 8/2026 พนักงาน ID-001 (ยอด ฿3,283.13)
10.4 SQL Query Console & Admin 1-Click Wipe Tool

SQL Query Console: หน้าต่างเขียนคำสั่ง SQL Query เพื่อสืบค้นหรือวิเคราะห์ข้อมูล Cloudflare D1 โดยตรง พร้อมตารางแสดงผลลัพธ์และปุ่มส่งออกเป็นไฟล์ JSON / CSV
1-Click Transaction & Audit Wipe: ปุ่มล้างข้อมูลธุรกรรมทดสอบในหน้า Setting เพื่อเตรียมระบบให้พร้อมสำหรับการเริ่มบันทึกข้อมูลจริงขององค์กร

SQL Query Console & Live D1 Query Engine Admin SQL Console
SELECT e.employee_code, e.full_name, b.branch_name, COUNT(t.transaction_id) AS total_orders, SUM(t.total_amount) AS revenue, SUM(t.total_margin) AS total_margin
FROM employees e
JOIN branches b ON e.branch_id = b.branch_id
LEFT JOIN sales_transactions t ON e.employee_id = t.employee_id
GROUP BY e.employee_id ORDER BY total_margin DESC;
Executed in 12ms • 10 rows returned

11 ขั้นตอนที่ 11: ผังโครงสร้างระบบ (Architecture & Interactive ERD)

11.1 Interactive ERD Viewer: แผนผังความสัมพันธ์ฐานข้อมูลเชิงโต้ตอบ 15 ตาราง

คลิกเมนู Interactive ERD Viewer (เปิดแท็บใหม่ erd_viewer.html) เพื่อดูผัง Entity Relationship Diagram แบบโต้ตอบได้ สามารถลากย้ายตำแหน่งตาราง ซูมเข้า-ออก และคลิกดูรายละเอียดความสัมพันธ์ Foreign Key ระหว่างตารางได้แบบ 360 องศา

Interactive Relational ERD Visualizer 15 Relational Entities
Interactive 15-Table Relational Schema Graph
คลิกเปิดดูผังความสัมพันธ์แบบ Real-Time Canvas ได้ที่เมนู Interactive ERD Viewer
แผนภาพผังกระบวนการทำงานครบทุกฟังก์ชัน (End-to-End Process Flow Diagrams)

ผังกระบวนการทำงานครอบคลุมทุกโมดูลและการทำงานแบบครบวงจรในระบบ Dynamics 369 ตั้งแต่ Authentication, Data Ingestion, Costing, Commission Lock, Reporting ไปจนถึง Security & Administration:

1. กระบวนการยืนยันตัวตนและการกระจายสิทธิ์ (Authentication & Role Gateway Flow)

sequenceDiagram
    autonumber
    actor User as ผู้ใช้งานระบบ
    participant LoginUI as หน้าจอล็อกอิน
    participant Auth as ระบบตรวจสอบสิทธิ์
    participant Session as ตัวจัดการเซสชัน
    participant Audit as บันทึกประวัติระบบ

    User->>LoginUI: กรอก Username และ Password หรือกด 1-Click Login
    LoginUI->>Auth: ตรวจสอบความถูกต้องของบัญชีผู้ใช้
    alt ข้อมูลถูกต้อง
        Auth->>Session: สร้าง Session Token และบันทึก IP Address
        Auth->>Audit: บันทึก Audit Log เหตุการณ์ USER_LOGIN
        Auth-->>LoginUI: ผ่านการตรวจสอบ และส่งคืนสิทธิ์ตาม Role
        LoginUI-->>User: เปิดสิทธิ์เข้าใช้งานเมนูตามบทบาท (Admin, Manager, Sales, Executive)
    else ข้อมูลไม่ถูกต้อง
        Auth-->>LoginUI: แจ้งเตือนข้อผิดพลาด Invalid Credentials
        LoginUI-->>User: แสดงข้อความแจ้งเตือนรหัสผ่านไม่ถูกต้อง
    end
            

2. กระบวนการนำเข้าไฟล์ Excel และตรวจสอบความถูกต้อง (Excel Ingestion & Validation Flow)

sequenceDiagram
    autonumber
    actor User as Sales Staff หรือ Admin
    participant Dropzone as จุดวางไฟล์ Dropzone
    participant Parser as ตัวอ่านไฟล์ Excel
    participant DB as ฐานข้อมูล Cloudflare D1
    participant Staging as ตารางตรวจสอบ Staging

    User->>Dropzone: ลากไฟล์ Excel หลายสาขามาวางพร้อมกัน
    Dropzone->>Parser: แยก Sheet และอ่านข้อมูล Header และ Rows
    Parser->>DB: ตรวจสอบความถูกต้องของรหัสและชื่อพนักงานขาย
    alt ไม่พบพนักงานในระบบ
        DB-->>Parser: Error ไม่พบพนักงานขายใน Master Data
        Parser->>Staging: ทำเครื่องหมายแถวเป็น INVALID
    else พบพนักงานในระบบ
        Parser->>DB: ตรวจสอบเลขที่บิลซ้ำซ้อนในฐานข้อมูล
        alt บิลซ้ำในระบบ
            DB-->>Parser: Error พบเลขที่บิลซ้ำ
            Parser->>Staging: ทำเครื่องหมายแถวเป็น DUPLICATE
        else บิลถูกต้อง
            Parser->>DB: ดึงราคาขายและ Standard Cost % จาก Item Master
            Parser->>Staging: คำนวณ Margin และแสดงสถานะ VALID
        end
    end
    User->>Staging: กดยืนยันบันทึกข้อมูล Commit
    Staging->>DB: บันทึกลงตาราง sales_transactions และ sales_transaction_items
    DB-->>User: บันทึกข้อมูลสำเร็จ และอัปเดต Dashboard ทันที
            

3. กระบวนการคำนวณต้นทุนมาตรฐานและกำไรขั้นต้น (Costing & Margin Calculation Flow)

sequenceDiagram
    autonumber
    participant ItemLine as รายการสินค้า Line Item
    participant Master as ข้อมูลสินค้า Item Master
    participant Calc as ระบบคำนวณกำไร Margin Engine
    participant Header as หัวบิล Sales Order Header

    ItemLine->>Master: ดึงราคาขายมาตรฐาน และ Standard Cost %
    Master-->>Calc: ส่งค่า Price และ Cost % (เช่น 45%)
    Calc->>Calc: คำนวณต้นทุนต่อหน่วย Cost = Price * (Cost % / 100)
    Calc->>Calc: คำนวณยอดขายรวม Item Amount = Qty * Price
    Calc->>Calc: คำนวณต้นทุนรวม Item Cost = Qty * Cost
    Calc->>Calc: คำนวณกำไรขั้นต้น Item Margin = Amount - Cost
    Calc->>Header: รวมยอดสู่ระดับหัวบิล Total Amount, Total Cost, Total Margin
    Header-->>Header: อัปเดต % Margin ประจำบิลขาย
            

4. กระบวนการคำนวณคอมมิชชั่นและการล็อคบิลขาย (Commission Approval & Strict Lock Flow)

sequenceDiagram
    autonumber
    actor Manager as ผู้จัดการฝ่ายขาย
    participant CommUI as หน้าจออนุมัติคอมมิชชั่น
    participant CommEngine as ระบบคำนวณเงินรางวัล
    participant DB as ฐานข้อมูล Cloudflare D1
    participant Audit as บันทึกประวัติ Audit Trail

    DB->>CommEngine: รวบรวมยอด Margin ของบิลที่ยังไม่อนุมัติ
    CommEngine->>CommEngine: คำนวณ Commission = Total Margin * Rate %
    CommEngine->>DB: บันทึกงวดคอมมิชชั่น สถานะ PENDING_APPROVAL
    Manager->>CommUI: กดปุ่ม ตรวจสอบบิล (Review Sales)
    CommUI-->>Manager: แสดงรายการบิลขายทั้งหมดในงวด
    Manager->>CommUI: กดปุ่ม อนุมัติ (Approve)
    CommUI->>DB: ปรับสถานะรอบคอมมิชชั่นเป็น APPROVED
    CommUI->>DB: สั่งล็อคบิลขายในงวดนั้นทันที (Locked = True)
    CommUI->>Audit: บันทึกชื่อผู้อนุมัติ และ Timestamp ลง Audit Log
    DB-->>Manager: ยืนยันการอนุมัติสำเร็จ บิลขายถูกล็อคห้ามแก้ไขหรือลบ
            

5. กระบวนการประมวลผลตัวกรองช่วงเวลาและจัดอันดับ Top 10 (Dynamic Period & Leaderboard Flow)

sequenceDiagram
    autonumber
    actor User as ผู้บริหาร หรือ ผู้ใช้งาน
    participant FilterUI as ตัวกรอง ปี เดือน สาขา พนักงาน
    participant Engine as ตัวประมวลผลช่วงเวลา
    participant DB as ฐานข้อมูลยอดขาย
    participant Dash as หน้าจอแดชบอร์ด

    User->>FilterUI: เลือก ปี และ เดือน หรือเลือกสาขาเฉพาะ
    FilterUI->>Engine: ส่งเงื่อนไขการกรองช่วงวันที่ StartDate - EndDate
    Engine->>DB: ดึงรายการบิลขายที่ตรงกับเงื่อนไข
    DB-->>Engine: ส่งชุดข้อมูลบิลขายและรายการสินค้า
    Engine->>Engine: คำนวณ 5 Core KPIs (Target, Actual, % Achieved, Margin, Comm)
    Engine->>Engine: จัดอันดับ Top 10 พนักงานขาย, Top 10 สาขา, Top 10 สินค้า
    Engine->>Dash: อัปเดตกราฟิก แผนภูมิ และกระดานจัดอันดับแบบ Real-Time
    Dash-->>User: แสดงผลสรุปภาพรวมผู้บริหารทันที
            

6. กระบวนการออกรายงานผลงานและพิมพ์เอกสารทางการ (Performance Reporting & Print Flow)

sequenceDiagram
    autonumber
    actor User as ผู้บริหาร หรือ ผู้จัดการ
    participant UI as หน้ารายงาน Branch หรือ Sales Report
    participant Calc as ระบบประมวลผลรายงาน
    participant Print as เครื่องมือจัดหน้าพิมพ์ PDF

    User->>UI: เปิดเมนู Branch Report หรือ Sales Report
    UI->>Calc: รวบรวมข้อมูล Target, Actual Sales, Margin %, Commission
    Calc-->>UI: แสดงตาราง Matrix พร้อมหลอดแสดง % Achievement
    alt สั่งพิมพ์รายงานทางการ
        User->>UI: กดปุ่ม พิมพ์รายงานสรุปผลงาน (Print Statement)
        UI->>Print: จัดรูปแบบเอกสารรายงานขนาด A4 พร้อมหัวเอกสารทางการ
        Print->>Print: ใส่ช่องลงนามอนุมัติ 3 ฝ่าย (ผู้จัดทำ, ผู้จัดการ, ผู้อำนวยการ)
        Print-->>User: เปิดหน้าต่างพิมพ์ของเบราว์เซอร์เพื่อบันทึกเป็น PDF
    else ส่งออกไฟล์ Excel
        User->>UI: กดปุ่ม ส่งออก Excel
        UI-->>User: ดาวน์โหลดไฟล์ .xlsx สรุปยอดทันที
    end
            

7. กระบวนการจัดการข้อมูลหลักและคลังสินค้า (Master Data & Inventory Flow)

sequenceDiagram
    autonumber
    actor Admin as ผู้ดูแลระบบ Admin
    participant MasterUI as เมนูข้อมูลหลักและคลังสินค้า
    participant Validator as ตัวตรวจสอบ Foreign Key
    participant DB as ฐานข้อมูล Cloudflare D1
    participant Audit as บันทึกประวัติ Audit Log

    Admin->>MasterUI: เพิ่ม หรือแก้ไข สาขา, พนักงาน, สินค้า, หรือที่อยู่
    alt แก้ไขในตาราง Inline Edit
        Admin->>MasterUI: แก้ไขเป้ายอดขาย Target หรือเรท Commission ในตาราง
        MasterUI->>DB: บันทึกค่าใหม่ลงตาราง branches หรือ employees ทันที
    else เพิ่มข้อมูลใหม่ผ่าน Modal
        Admin->>MasterUI: กรอกแบบฟอร์มข้อมูลหลัก
        MasterUI->>Validator: ตรวจสอบความถูกต้องของรหัสและ Foreign Key
        Validator->>DB: บันทึกข้อมูลใหม่ลงฐานข้อมูล
    end
    DB->>Audit: บันทึกประวัติเหตุการณ์ MASTER_DATA_UPDATE
    DB-->>Admin: แสดงข้อความแจ้งเตือนบันทึกข้อมูลหลักสำเร็จ
            

8. กระบวนการตรวจสอบความปลอดภัยและประวัติการใช้งาน (Security, Session & Audit Flow)

sequenceDiagram
    autonumber
    actor User as ผู้ใช้งานในระบบ
    participant App as ระบบแอปพลิเคชัน
    participant Interceptor as ตัวดักจับความปลอดภัย
    participant AuditDB as ตาราง Audit Logs
    participant SessionDB as ตัวติดตาม Session และ IP
    actor Admin as ผู้ดูแลระบบ

    User->>App: ดำเนินกิจกรรม เช่น บันทึกบิล, นำเข้า Excel, อนุมัติ
    App->>Interceptor: ส่ง Event การกระทำของผู้ใช้
    Interceptor->>AuditDB: บันทึกเวลา Timestamp, ผู้ใช้, การกระทำ และรายละเอียด
    Interceptor->>SessionDB: อัปเดตสถานะ Active Session และหมายเลข IP Address
    Admin->>SessionDB: ตรวจสอบผู้ใช้งานที่กำลังออนไลน์
    alt พบพฤติกรรมผิดปกติ
        Admin->>SessionDB: กดปุ่ม Force Terminate ตัดการเชื่อมต่อ
        SessionDB->>App: ยกเลิก Session Token ของผู้ใช้นั้น
        App-->>User: บังคับ Logout และนำกลับสู่หน้าล็อกอินทันที
    end
            

9. กระบวนการสืบค้น SQL และการล้างข้อมูลธุรกรรม (SQL Console & Admin Wipe Flow)

sequenceDiagram
    autonumber
    actor Admin as ผู้ดูแลระบบ Admin
    participant SQLUI as หน้าจอ SQL Query Console
    participant D1 as ฐานข้อมูล Cloudflare D1
    participant WipeTool as เครื่องมือล้างข้อมูลใน Setting

    alt รันคำสั่ง SQL Query สด
        Admin->>SQLUI: เขียนคำสั่ง SELECT ... FROM ...
        SQLUI->>D1: ส่งคำสั่ง Query ไปประมวลผลที่ Cloudflare D1
        D1-->>SQLUI: ส่งชุดข้อมูลผลลัพธ์กลับมา
        SQLUI-->>Admin: แสดงผลลัพธ์เป็นตารางและปุ่มส่งออก JSON และ CSV
    else 1-Click Wipe Tool ล้างข้อมูลธุรกรรม
        Admin->>WipeTool: คลิกปุ่ม ล้างข้อมูลธุรกรรมและบันทึกประวัติ
        WipeTool->>Admin: แสดงกล่องยืนยันการล้างข้อมูลแบบ Double Confirm
        Admin->>WipeTool: กดยืนยันการล้างข้อมูล
        WipeTool->>D1: ล้างข้อมูลธุรกรรม บิลขาย คอมมิชชั่น และประวัติการใช้งาน
        WipeTool->>WipeTool: คงรักษาข้อมูลหลักสาขา พนักงาน และสินค้าไว้ครบถ้วน
        WipeTool-->>Admin: แจ้งเตือนสำเร็จ และรีเซ็ตหน้าจอแดชบอร์ดให้พร้อมใช้งานจริง
    end
            
เอกสารชุดทดสอบระบบและกระบวนการทดสอบมาตรฐาน (System Test Process & 45 Test Scenarios)

ชุดทดสอบระดับองค์กร (Enterprise Test Matrix) รวม 45 Test Scenarios ครอบคลุม 100% Core Functionalities, Security Gates, RBAC, Calculations, Strict Locking, Auditing และ Admin Tools พร้อมผังกระบวนการทดสอบ (Test Execution Lifecycle):

แผนภาพผังกระบวนการทดสอบระบบ (Test Execution Process Flow)

sequenceDiagram
    autonumber
    actor QA as ผู้ทดสอบระบบ (QA / Tester)
    participant UI as ระบบ Dynamics 369 UI
    participant Validator as เครื่องมือตรวจความถูกต้อง
    participant DB as ฐานข้อมูล Cloudflare D1
    participant Audit as บันทึก System Audit Log
    actor Lead as หัวหน้าโครงการ (QA Lead / PM)

    QA->>UI: ขั้นตอนที่ 1: ตระเตรียมข้อมูลตั้งต้น (Master Data: สาขา, พนักงาน, สินค้า)
    UI->>DB: บันทึกข้อมูลหลักเข้าสู่ระบบให้พร้อมทดสอบ
    QA->>UI: ขั้นตอนที่ 2: รันกรณีทดสอบตามลำดับ (Suite 1 -> Suite 9: TC-01 ถึง TC-45)
    UI->>Validator: ส่งค่าและเงื่อนไขทดสอบไปประมวลผล
    Validator->>DB: บันทึกและดึงข้อมูลธุรกรรม
    Validator->>Audit: บันทึกประวัติการกระทำลง System Audit Logs
    Validator-->>UI: แสดงผลลัพธ์บนหน้าจอ (Actual Result)
    QA->>QA: ขั้นตอนที่ 3: เปรียบเทียบผลลัพธ์จริงกับผลลัพธ์ที่คาดหวัง (Expected Result)
    alt ผลลัพธ์ตรงกัน 100%
        QA->>UI: ทำเครื่องหมายสถานะเป็น PASS ✅
    else พบข้อผิดพลาด
        QA->>UI: บันทึก Defect Issue และแจ้งทีมพัฒนาแก้ไข ❌
    end
    QA->>Lead: ขั้นตอนที่ 4: สรุปรายงานผลการทดสอบครบ 45 Scenarios และลงนามอนุมัติ
    Lead-->>QA: อนุมัติผ่านการทดสอบพร้อมขึ้นระบบจริง (Production Release)
            

ขั้นตอนและแนวทางปฏิบัติในการทดสอบระบบ 5 ขั้นตอน (5-Step Test Execution Protocol)

1. Pre-Conditions & Data Setup:

ตรวจสอบให้แน่ใจว่า Master Data (สาขา, พนักงาน, สินค้า) มีข้อมูลถูกต้อง และใช้เครื่องมือ 1-Click Wipe Tool เพื่อเริ่มการทดสอบจาก Clean State

2. Functional & Role Testing:

สลับบทบาทผู้ใช้ (Admin, Manager, Sales, Executive) เพื่อทดสอบการเปิด-ปิดเมนู และการจำกัดสิทธิ์เข้าถึงตาม RBAC Matrix

3. Ingestion & Calculation Verification:

นำเข้าไฟล์ Excel หลายสาขา ตรวจสอบการกรอง Invalid Staff, Duplicate Invoices และคำนวณ Margin % ตามสูตรบัญชี

4. Commission & Lock Pipeline:

ตรวจสอบ Review Sales Modal, กด Approve Commission และทดสอบการล็อคบิลขายห้ามแก้ไขหรือลบ 100%

5. Security Audit & Report Sign-off:

ตรวจสอบประวัติ Audit Logs ทุกกิจกรรม, ทดสอบพิมพ์ Statement พร้อมช่องลงนาม 3 ฝ่าย และรัน SQL Console

จำนวน Test Cases ทั้งหมด
45 Scenarios
สถานะการทดสอบ (Passed)
45 / 45 (100%)
จำนวนโมดูลที่ครอบคลุม
9 Functional Suites
ระดับความปลอดภัยและการล็อค
Strict Zero-Defect
Test ID หมวดหมู่ฟังก์ชัน ขั้นตอนและกรณีทดสอบ (Scenario & Steps) ผลลัพธ์ที่คาดหวัง (Expected Result) ผลการทดสอบจริง (Actual Result) สถานะ
Suite 1: Authentication & Access Control (การยืนยันตัวตนและการกระจายสิทธิ์)
TC-01 Authentication เข้าสู่ระบบด้วย Username/Password ปกติ และกรอกข้อมูลผิด หากถูกต้องเข้าสู่หน้า Dashboard, หากผิดแสดง Error ทันที ตรวจสอบความถูกต้องแม่นยำ พร้อมแสดง Alert สวยงาม PASS
TC-02 Authentication ทดสอบปุ่ม 1-Click Fast Login ทั้ง 4 สิทธิ์ (Admin, Manager, Sales, Executive) สลับสิทธิ์ได้ทันทีโดยไม่ต้องพิมพ์รหัสผ่าน พร้อมเปลี่ยน Profile ใน Header สลับสิทธิ์ได้ราบรื่น ค่าสิทธิ์ Role อัปเดตทันที PASS
TC-03 Authentication ทดสอบปุ่มเปิด-ปิดแสดงรหัสผ่าน (Show/Hide Password Eye Toggle) คลิกไอคอน 👁️ แล้วสลับแสดงตัวอักษร / จุดรหัสผ่านอย่างถูกต้อง โดยไม่มีไอคอนซ้ำ ทำงานราบรื่น ไอคอน Edge ซ้ำถูกซ่อนสมบูรณ์ PASS
TC-04 Security RBAC ผู้ใช้สิทธิ์ Sales หรือ Executive พยายามเปิดหน้า ERD Viewer หรือ Docs URL ตรง ระบบต้องปิดกั้นและแสดงหน้า 403 Forbidden Gate Barrier ป้องกันการเข้าถึง ระบบขึ้น Barrier ปิดกั้น 100% สิทธิ์ Admin เท่านั้นที่ผ่านได้ PASS
TC-05 Session Security กดปุ่ม Sign Out จากแถบ Sidebar หรือ Header Profile ล้าง User Session และ Token นำผู้ใช้กลับสู่หน้า Login สะอาด ล้างข้อมูล Session สำเร็จ ไม่เหลือสิทธิ์ค้างในหน่วยความจำ PASS
Suite 2: Sales Ingestion & Excel Multi-File Upload (การนำเข้าบิลขาย)
TC-06 Excel Ingestion ลากไฟล์ Excel หลายสาขา (.xlsx, .csv) มาวางที่ Multi-File Dropzone พร้อมกัน ระบบอ่านทุกไฟล์และทุก Sheet แสดงรายการในตาราง Data Staging Matrix อ่านข้อมูลได้รวดเร็ว รวมหลายไฟล์เป็นชุดข้อมูลเดียวได้ถูกต้อง PASS
TC-07 Data Validation นำเข้าไฟล์ Excel ที่มีชื่อหรือรหัสพนักงานขายที่ไม่มีใน Master Data ระบบแจ้งเตือนสีแดง ไม่พบพนักงานในระบบ และขึ้นสถานะ INVALID ❌ ตรวจจับพนักงานที่ไม่ถูกต้องได้แม่นยำ ป้องกันข้อมูลขยะเข้าระบบ PASS
TC-08 Deduplication นำเข้าไฟล์ที่มีเลขที่บิลขาย (Invoice No) ซ้ำกับบิลที่มีอยู่แล้วในฐานข้อมูล ระบบแจ้งเตือนสีส้ม พบเลขที่บิลซ้ำในระบบ และขึ้นสถานะ DUPLICATE ❌ กรองบิลซ้ำออกอัตโนมัติ ไม่บันทึกยอดซ้ำซ้อน PASS
TC-09 Auto Cost Lookup นำเข้าบิลขายที่มีรหัสสินค้าใน Item Master ระบบดึงราคาและ Standard Cost % มาคำนวณต้นทุนและ Margin ให้อัตโนมัติ คำนวณ Margin อัตโนมัติทันทีในหน้า Staging Matrix PASS
TC-10 Batch Commit กดปุ่ม ยืนยันบันทึกข้อมูล (Commit) บิลที่ผ่านการตรวจสอบทั้งหมด บันทึกรายการลงฐานข้อมูล Cloudflare D1 และอัปเดตหน้า Dashboard ทันที บันทึกสำเร็จ รวดเร็ว และอัปเดตสถิติ Real-Time PASS
Suite 3: Sales Orders & Cost/Margin Calculations (การคำนวณต้นทุนและกำไร)
TC-11 Costing Engine ทดสอบสูตรต้นทุน: Unit Cost = Unit Price * (Standard Cost % / 100) ต้นทุนต่อหน่วยคำนวณตรงตามเปอร์เซ็นต์ของสินค้านั้นๆ 100% คำนวณแม่นยำทุกรายการสินค้า PASS
TC-12 Margin Engine ทดสอบสูตรกำไรขั้นต้น: Line Margin = Item Amount - Total Cost กำไรขั้นต้นของแต่ละรายการคำนวณถูกต้องตามยอดขายหักต้นทุนจริง ยอด Margin ถูกต้องตรงตามหลักบัญชี PASS
TC-13 Header Aggregation รวมยอดระดับบิล: Total Amount, Total Cost, Total Margin, Margin % ยอดรวมระดับหัวบิลตรงกับผลบวกของรายการสินค้าย่อยทุกบรรทัด รวมยอดถูกต้องแม่นยำ ไม่พบเศษทศนิยมคลาดเคลื่อน PASS
TC-14 Order Management แก้ไขหรือลบบิลขายที่ยังไม่ถูกล็อค (Unlocked Sales Orders) สามารถแก้ไขจำนวน รายการสินค้า หรือลบบิลได้ และระบบคำนวณยอดใหม่ทันที แก้ไขและลบได้สมบูรณ์ พร้อมบันทึก Audit Log PASS
TC-15 Table Usability ตรึงหัวตารางขณะเลื่อนหน้าจอ (Sticky Header on Scroll) ในตารางบิลขาย หัวตารางคอลัมน์ต้องตรึงคงที่อยู่ด้านบน ไม่เลื่อนหลุดสายตา Sticky Header ตรึงมั่นคง ใช้งานง่ายบนข้อมูลขนาดใหญ่ PASS
Suite 4: Commission Lifecycle & Strict Locking (วงจรคอมมิชชั่นและการล็อคบิล)
TC-16 Commission Calc คำนวณเงินรางวัลคอมมิชชั่น: Commission = Total Margin * Staff Rate % คำนวณเงินรางวัลของพนักงานแต่ละคนตามอัตราเรทเฉพาะตัวอย่างแม่นยำ คำนวณถูกต้องตามเรทของพนักงานแต่ละคน PASS
TC-17 Review Modal คลิกปุ่ม ตรวจสอบบิล (Review Sales) ในหน้ารอบเดือนคอมมิชชั่น เปิด Modal แสดงรายการบิลขายทั้งหมดของพนักงานในงวดนั้นอย่างครบถ้วน แสดงบิลขายและยอด Margin รายบิลครบถ้วน PASS
TC-18 Approve & Print Gate ทดสอบสั่งพิมพ์ Statement ก่อนอนุมัติ และกดปุ่ม อนุมัติ (Approve) คอมมิชชั่น ก่อนอนุมัติปุ่มพิมพ์ Statement ถูก Lock ปิดกั้น 100%, เมื่ออนุมัติสำเร็จสถานะเป็น APPROVED และเปิดให้พิมพ์ Statement ทางการได้ ปิดกั้นการพิมพ์ก่อนอนุมัติ 100% และเปิดให้พิมพ์หลังอนุมัติสำเร็จสมบูรณ์ PASS
TC-19 Strict Lock ตรวจสอบบิลขายในงวดที่ได้รับการอนุมัติคอมมิชชั่นแล้ว บิลขายถูกล็อค (Locked = True) ปุ่มแก้ไขและปุ่มลบถูก Disable 100% ปุ่มแก้ไขและลบถูกปิดใช้งาน ป้องกันการแก้บิลย้อนหลัง PASS
TC-20 Post-Approve Import นำเข้าบิลขายใหม่หลังจากที่มีการอนุมัติคอมมิชชั่นของงวดนั้นไปแล้ว บิลที่อนุมัติแล้วคงล็อค บิลใหม่จะสร้างยอดคอมมิชชั่นส่วนเพิ่มในสถานะ Pending แยกต่างหาก ไม่รบกวนยอดบิลเดิมที่อนุมัติแล้ว แยกงวดส่วนเพิ่มอย่างถูกต้อง PASS
Suite 5: Dashboard & Dynamic Leaderboards (แดชบอร์ดและการจัดอันดับ)
TC-21 Date Filtering เลือกตัวกรอง ปี และ เดือน ในแถบตัวกรองด้านบนของ Dashboard ระบบคำนวณช่วงวันที่และประมวลผลข้อมูลบิลขายเฉพาะช่วงเวลาที่เลือกทันที กรองช่วงวันที่รวดเร็ว ข้อมูลอัปเดตสอดคล้องกับตัวกรอง PASS
TC-22 Core KPIs ตรวจสอบการคำนวณการ์ดสรุป 5 Core KPIs ด้านบน Target รวม, Actual Sales รวม, % Achieved, Margin รวม, Commission รวม คำนวณตรง 100% ตัวเลขการ์ดสรุปตรงกับฐานข้อมูลจริงทุกจุด PASS
TC-23 Top 10 Staff ตรวจสอบตารางจัดอันดับ Top 10 Sales Staff เรียงลำดับพนักงานตามยอดกำไรขั้นต้น Margin (฿) สูงสุด 10 อันดับแรกพร้อมเหรียญรางวัล จัดอันดับแม่นยำ พร้อมแสดงเรทและยอดคอมมิชชั่น PASS
TC-24 Top 10 Branches ตรวจสอบตารางจัดอันดับ Top 10 Branches เรียงลำดับสาขาตามยอดกำไรขั้นต้น Margin (฿) และ % Achievement เทียบเป้า จัดอันดับถูกต้อง พร้อมหลอดแสดง % Achievement PASS
TC-25 Top 10 Products ตรวจสอบตารางจัดอันดับ Top 10 Products เรียงลำดับสินค้าขายดีตามยอดกำไรขั้นต้น Margin (฿) และจำนวนชิ้นที่จำหน่ายได้ แสดงสินค้ายอดนิยม 10 อันดับแรกพร้อมต้นทุนและ Margin PASS
Suite 6: Executive Reports & Statement Print (รายงานผู้บริหารและการพิมพ์)
TC-26 Branch Report เปิดเมนู Branch Report สำหรับผู้บริหาร แสดงตารางเปรียบเทียบ Target, Actual, Margin %, Commission รายสาขา พร้อม Progress Bar รายงานแสดงผลละเอียด ครบทุกมิติทางการเงิน PASS
TC-27 Sales Report เปิดเมนู Sales Report สำหรับฝ่ายขาย แสดงรายงานผลงานรายบุคคล เปรียบเทียบยอดขาย กำไร และค่าคอมมิชชั่น รายงานรายบุคคลแสดงผลถูกต้องตามสังกัดสาขา PASS
TC-28 Print Statement กดปุ่ม พิมพ์รายงานสรุปผลงาน (Print Statement) จัดรูปแบบเป็นเอกสาร A4 Statement พร้อมหัวเอกสารทางการ และเปิด Print Dialog จัดหน้าพิมพ์สวยงาม ไม่มีส่วนประกอบ UI แถบข้างปะปน PASS
TC-29 3-Way Sign-off ตรวจสอบช่องลงนามท้ายเอกสารรายงาน มีช่องลงนามอนุมัติ 3 ฝ่าย (ผู้จัดทำรายงาน, ผู้จัดการฝ่ายขาย, ผู้อำนวยการฝ่ายบริหาร) ช่องลงนามสมบูรณ์แบบตามมาตรฐานเอกสารทางการ PASS
TC-30 Excel Export กดปุ่ม ส่งออก Excel จากหน้ารายงาน ดาวน์โหลดไฟล์ .xlsx สรุปตารางรายงานพร้อมสูตรและตัวเลขสมบูรณ์ ส่งออกไฟล์ Excel ได้อย่างรวดเร็ว เปิดดูใน MS Excel ได้ทันที PASS
Suite 7: Master Data & Inventory Management (ข้อมูลหลักและคลังสินค้า)
TC-31 Branch Master เพิ่ม ลบ แก้ไขสาขา และแก้ไขเป้ายอดขาย Target ในตารางแบบ Inline Edit บันทึกข้อมูลสาขาลง D1 ทันที และเป้าใหม่มีผลต่อการคำนวณ % Achievement ทันที แก้ไข Inline Target และบันทึกลง D1 สำเร็จ PASS
TC-32 Sales Staff Master เพิ่ม ลบ แก้ไขพนักงาน และแก้ไขเรทคอมมิชชั่น Commission Rate % แบบ Inline Edit บันทึกข้อมูลพนักงานลง D1 และเรทใหม่มีผลต่อการคำนวณงวดคอมมิชชั่นถัดไปทันที แก้ไข Inline Rate % และบันทึกลง D1 สำเร็จ PASS
TC-33 Address Master จัดการข้อมูลที่อยู่ 77 จังหวัด อำเภอ ตำบล และรหัสไปรษณีย์ ค้นหาและจัดการที่อยู่ของสาขาได้อย่างถูกต้องตามมาตรฐานไปรษณีย์ไทย จัดการข้อมูลที่อยู่ได้ครบถ้วนทั้ง 77 จังหวัด PASS
TC-34 Item Master เพิ่ม ลบ แก้ไขสินค้า และแก้ไข Standard Cost % ในตารางแบบ Inline Edit บันทึกต้นทุนมาตรฐานและราคาสินค้าลง D1 เพื่อใช้คำนวณ Margin อัตโนมัติ แก้ไขราคาและ Standard Cost % สำเร็จ มีผลต่อการคำนวณบิลใหม่ทันที PASS
TC-35 Category & Unit จัดการหมวดหมู่สินค้า (Item Category) และหน่วยนับ (Unit of Measure) สามารถจัดกลุ่มประเภทสินค้าและกำหนดหน่วยนับมาตรฐานได้สมบูรณ์ บันทึกหมวดหมู่และหน่วยนับได้อย่างถูกต้อง PASS
Suite 8: Security, Auditing, Admin Tools & DB Wipe (ความปลอดภัยและเครื่องมือผู้ดูแล)
TC-36 Audit Logging ทำกิจกรรมในระบบ (Login, Import, Approve, Edit, Delete, Master Update) ระบบบันทึก Timestamp, ผู้กระทำ, Action Type, Target Entity และ JSON Details ลงตาราง Audit Logs บันทึก Audit Logs ครบทุก Event แบบ Real-Time PASS
TC-37 Session Monitor เปิดเมนู Sessions & IP Monitor สำหรับ Admin แสดงรายการผู้ใช้ที่กำลัง Active ในระบบ พร้อมหมายเลข IP Address และเวลา Login ล่าสุด แสดงรายการ Active Sessions และ IP ได้แม่นยำ PASS
TC-38 Force Terminate Admin กดปุ่ม Force Terminate ตัดการเชื่อมต่อของเซสชันที่ผิดปกติ เซสชันถูกยกเลิกทันที ผู้ใช้ฝั่งปลายทางถูกตัดการเชื่อมต่อและ Redirect กลับสู่หน้า Login บังคับ Logout สำเร็จทันที ป้องกันภัยคุกคาม PASS
TC-39 SQL Console Admin รันคำสั่ง SQL Query สดในหน้า SQL Query Console ส่งคำสั่งประมวลผลที่ Cloudflare D1 แสดงผลลัพธ์เป็น Interactive Table พร้อมปุ่ม Export JSON/CSV รัน SQL ได้แม่นยำ และส่งออกชุดข้อมูล JSON/CSV ได้ทันที PASS
TC-40 1-Click DB Wipe Admin กดปุ่ม ล้างข้อมูลธุรกรรมและบันทึกประวัติ ในหน้า Settings ล้างข้อมูลบิลขาย รายการสินค้า คอมมิชชั่น และ Audit Logs โดยคงรักษา Master Data ไว้ 100% ล้างข้อมูลธุรกรรมสะอาดหมดจด Master Data ปลอดภัย 100% PASS
Suite 9: Personalization, Responsive UI & Architecture (การปรับแต่งและสถาปัตยกรรม)
TC-41 Theme Mode สลับธีมระหว่าง Dark Mode, Light Mode และ System Sync ใน Settings UI เปลี่ยนโทนสีทันที และบันทึกการตั้งค่าลง LocalStorage ประจำ User สลับธีมลื่นไหล ไม่พบปัญหากะพริบของสี PASS
TC-42 Accent Color เลือกเปลี่ยนสีเน้น (Indigo, Cyan, Emerald, Amber, Rose) ปุ่ม, ไอคอน, แถบเมนู และกราฟิกเปลี่ยนสีเน้นตามที่เลือกทันที สีเน้นเปลี่ยนครอบคลุมทั้งระบบอย่างสวยงาม PASS
TC-43 Offline Fallback ทดสอบการทำงานเมื่อเครือข่ายหลุดหรือ D1 ไม่ตอบสนองชั่วคราว ระบบสลับใช้ LocalStorage State Store เป็น Fallback ช่วยให้ผู้ใช้ทำงานต่อได้ไม่สะดุด สลับใช้ Local Database Store ได้อย่างราบรื่น PASS
TC-44 ERD Viewer เปิดดูแผนภาพสถาปัตยกรรมฐานข้อมูล Interactive 15-Table ERD Viewer แสดงความสัมพันธ์ Primary Key / Foreign Key ของ 15 ตารางอย่างครบถ้วน ERD Viewer แสดงผลโครงสร้างตารางได้คมชัดและสมบูรณ์ PASS
TC-45 Responsive Layout ทดสอบการเปิดใช้งานบนหน้าจอความละเอียดต่างๆ (Desktop, Laptop, Tablet, Mobile) Layout ปรับตัวแบบ Responsive Sidebar ย่อ/ขยาย และตารางมีแนวนอน Scroll Bar รองรับ แสดงผลได้อย่างสมบูรณ์แบบทุกขนาดหน้าจอ PASS