docs(sdlc): record real test results, open defects ISS-029–032, conditional acceptance

This commit is contained in:
Thanakorn
2026-10-02 17:12:47 +07:00
parent 5d3a7a655b
commit 1a065013b0
138 changed files with 406 additions and 326 deletions
@@ -27,7 +27,7 @@
| Actor | คำอธิบาย | การใช้งานหลัก |
| --- | --- | --- |
| Owner | เจ้าของบริษัท สิทธิ์สูงสุดภายในบริษัท | ตั้งค่าบริษัท จัดการผู้ใช้ และใช้งานทุกโมดูล |
| Admin | ผู้ดูแลระบบภายในบริษัท | จัดการข้อมูลหลัก ผู้ใช้ สิทธิ์ และใช้งานทุกโมดูลปฏิบัติการ |
| Admin | ผู้ดูแลระบบภายในบริษัท | จัดการข้อมูลหลักและใช้งานทุกโมดูลปฏิบัติการ (การจัดการผู้ใช้และสิทธิ์เป็นของ Owner) |
| Staff | ผู้ปฏิบัติงาน | บันทึกรายการคลังสินค้า ขาย จัดซื้อ และการเงินตามสิทธิ์ |
| Viewer | ผู้ใช้แบบอ่านอย่างเดียว | ดูหน้าจอและรายงานที่ได้รับสิทธิ์ |
| System Scheduler | ผู้กระทำอัตโนมัติ (Node.js) | สรุปยอดสต๊อก/GL และแจ้งเตือนตามกำหนดเวลา |
@@ -126,7 +126,7 @@ Wireframe แสดงโครงร่างหน้าจอหลักท
| UN01.001 | Identity – Register & Onboarding | ลงทะเบียนเจ้าของบริษัท, ยืนยันอีเมล, เชิญผู้ใช้และรับคำเชิญเข้าบริษัทที่ถูกต้อง | SR03:001, SR08:001 | app/login/, UserManager.php |
| UN01.002 | Identity – Login & Role Guard | เข้าสู่ระบบด้วย Username/Password, ตรวจบทบาทและสิทธิ์แอปพลิเคชันฝั่งเซิร์ฟเวอร์ก่อนเข้าทุกหน้า | SR03:001, SR04:001, SR07:005 | app/login/, UserManager.php, app/assets/utils/ |
| UN01.003 | Identity – Password Recovery / OTP / Session | ลืมรหัสผ่านผ่านอีเมล, OTP, Hash รหัสผ่าน bcrypt, บล็อก Concurrent Login | SR03:001, SR01:004, SR07:003 | PasswordManager.php, PasswordResetManager.php |
| UN01.004 | Identity – User & App-Access Administration | เพิ่ม/แก้ไข/ปิดใช้ผู้ใช้, กำหนดบทบาทและสิทธิ์การเข้าถึงแอปพลิเคชัน | SR03:001, SR08:001 | app/setting/, UserManager.php |
| UN01.004 | Identity – User & App-Access Administration | Owner เชิญ/แก้ไขบทบาทและสิทธิ์แอปพลิเคชัน/ลบผู้ใช้ และส่งคำเชิญซ้ำ | SR03:001, SR08:001 | app/setting/api/engine/manage_users.php, UserManager.php |
| UN02 — ตั้งค่าบริษัท (Company Settings) | | | | |
| UN02.001 | Company – Profile & System Settings | แก้ไขข้อมูลบริษัท, โลโก้, ค่าตั้งค่าระบบต่อบริษัท | SR03:002 | CompanyProfileManager.php, CompanySettingManager.php |
| UN02.002 | Company – SMTP & Mail Dispatch | ตั้งค่า SMTP ต่อบริษัท และส่งอีเมล Onboarding/กู้คืนรหัสผ่าน/แจ้งเตือน | SR03:002, SR06:004 | SmtpManager.php |
@@ -137,7 +137,7 @@ Wireframe แสดงโครงร่างหน้าจอหลักท
| UN03.004 | Master – Warehouse Layer Configuration | สลับโครงสร้างคลังแบบชั้นเดียว/หลายชั้นต่อบริษัท | SR03:003 | CompanySettingManager.php, WarehouseManager.php |
| UN04 — ควบคุมสินค้าคงคลัง (Inventory Control) | | | | |
| UN04.001 | ICS – Stock-in | รับสินค้าเข้าตามสินค้า จำนวน ตำแหน่ง เอกสารอ้างอิง สร้างความเคลื่อนไหวและยอดคงเหลือ | SR03:004, SR08:003 | app/ics/, StockManager.php, StockTablesTrait.php |
| UN04.002 | ICS – Stock-out | จ่ายสินค้าออกโดยตรวจสิทธิ์และยอดคงเหลือ ปฏิเสธจำนวนเกิน | SR03:004, SR09:003 | StockManager.php |
| UN04.002 | ICS – Stock-out | จ่ายสินค้าออกทั้งยอดของช่องจัดเก็บโดยตรวจสิทธิ์ ยอดคงเหลือไม่ติดลบ | SR03:004, SR09:003 | StockManager.php, OrderManager.php |
| UN04.003 | ICS – Stock Transfer | โอนย้ายระหว่างตำแหน่ง ต้นทาง/ปลายทางผูกเป็นรายการเดียว | SR03:004 | StockManager.php |
| UN04.004 | ICS – Lot / Serial / Expiry | บันทึกและสอบกลับ Lot, Serial Number, วันหมดอายุ | SR03:004, SR08:002 | StockSourceManager.php, md_lot |
| UN04.005 | ICS – Barcode Label & Scan | พิมพ์ฉลากบาร์โค้ด SKU/ตำแหน่ง และรับค่าจากเครื่องสแกน | SR03:004 | BarcodeManager.php, location_barcode_label.php |
@@ -150,36 +150,36 @@ Wireframe แสดงโครงร่างหน้าจอหลักท
| UN06 — จัดซื้อ (Purchasing) | | | | |
| UN06.001 | Purchasing – Purchase Request | สร้างและอนุมัติใบขอซื้อ | SR03:006 | app/po/, PurchaseRequestManager.php |
| UN06.002 | Purchasing – Purchase Order | แปลงใบขอซื้อเป็นใบสั่งซื้อ และติดตามสถานะ | SR03:006, SR04:002 | PurchaseOrderManager.php |
| UN06.003 | Purchasing – Purchase Invoice | บันทึกใบแจ้งหนี้ซื้อ รับสินค้าเข้า และบันทึก GL | SR03:006, SR04:002 | PurchaseOrderManager.php, StockManager.php |
| UN06.003 | Purchasing – Purchase Invoice | รับสินค้าตามใบสั่งซื้อ และบันทึกใบแจ้งหนี้ซื้อพร้อมผ่าน GL | SR03:006, SR04:002 | PurchaseOrderManager.php, app/expense/purchase_invoice.php, PurchaseInvoicePosting.php |
| UN06.004 | Purchasing – Supplier Return | คืนสินค้าผู้ขาย พร้อมปรับสต๊อก/บัญชี | SR03:006, SR04:002 | SupplierReturnManager.php |
| UN07 — การเงิน (Finance) | | | | |
| UN07.001 | Finance – Receipt Billing & Receipt | วางบิลรับและบันทึกใบเสรจรับเงินผูกกับใบแจ้งหนี้ | SR03:007, SR04:002 | app/finance/, ReceiptBillingManager.php, ReceiptManager.php |
| UN07.002 | Finance – Payment Billing & Payment | วางบิลจ่ายและบันทึกใบสำคัญจ่ายผูกกับใบแจ้งหนี้ซื้อ | SR03:007, SR04:002 | PaymentBillingManager.php, PaymentManager.php |
| UN08 — บัญชี (Accounting) | | | | |
| UN08.001 | Accounting – Chart of Accounts / Departments / Formulas | จัดการผังบัญชี แผนก และสูตรบัญชีอัตโนมัติ | SR03:008, SR08:002 | app/accounting/, PostingManager.php |
| UN08.002 | Accounting – Journal & GL Posting | บันทึกสมุดรายวันและผ่านรายการ GL แบบสมดุลภายใน Transaction | SR03:008, SR09:003 | app/journal/, PostingManager.php |
| UN08.001 | Accounting – Chart of Accounts / Departments / Formulas | จัดการผังบัญชี แผนก และสูตรบัญชีอัตโนมัติ | SR03:008, SR08:002 | app/accounting/, GlManager.php |
| UN08.002 | Accounting – Journal & GL Posting | บันทึกสมุดรายวันและผ่านรายการ GL ตามช่วงเวลาที่เปิดผ่านรายการ | SR03:008, SR09:003 | app/accounting/api/engine/save_manual_journal.php, GlManager.php, BasePosting.php, PostingWindowGuard.php |
| UN09 — รายงานและแดชบอร์ด (Reports & Dashboard) | | | | |
| UN09.001 | Reports – Dashboard & Aggregates | แดชบอร์ดคลังสินค้าและบัญชีจากตารางสรุปยอด | SR03:009, SR05:001, SR05:002 | app/dashboard/, app/ac_dashboard/, EtlStockManager.php |
| UN09.002 | Reports – Stock Reports | ภาพรวมสต๊อก, ความเคลื่อนไหว, ความจุ, สินค้าใกล้หมด, หมดอายุ, Lot | SR03:009 | app/reports/, ReportManager.php |
| UN09.003 | Reports – Financial Reports | งบทดลอง, งบกำไรขาดทุน, งบดุล, VAT, สมุดรายวัน, ความเคลื่อนไหว GL | SR03:009 | ReportManager.php |
| UN09.003 | Reports – Financial Reports | งบทดลอง, งบกำไรขาดทุน, งบดุล, VAT, สมุดรายวัน, ความเคลื่อนไหว GL | SR03:009 | app/accounting/ (trial_balance, pl_statement, balance_sheet, vat_report, journal_listing, gl_movement) |
| UN09.004 | Reports – Filter / Print / Export | กรอง ดู พิมพ์ และส่งออกรายงานตามขอบเขตสิทธิ์ | SR03:009, SR04:003 | app/reports/ |
| UN10 — ควบคุมเอกสาร (Document Control) | | | | |
| UN10.001 | Document – Numbering | ออกเลขที่เอกสารตามลำดับที่กำหนด (document_number_sequences) | SR03:010, SR04:005, SR08:004 | DocumentNumberManager.php |
| UN10.002 | Document – Lifecycle & Status | ควบคุมสถานะเอกสาร ปฏิเสธการเปลี่ยนสถานะที่ไม่ถูกต้อง พร้อม Confirm Dialog และข้อความข้อผิดพลาด | SR03:010, SR09:001, SR09:002 | BatchActionManager.php, Manager classes |
| UN10.003 | Document – Audit Fields & History | บันทึกผู้สร้าง ผู้แก้ไข วันที่ และประวัติรายการ | SR03:010, SR09:001 | td_* tables, td_bin_log |
| UN10.003 | Document – Audit Fields & History | บันทึกผู้ทำรายการ วันเวลา และข้อมูลที่ส่งในคอลัมน์ log ของรายการ และประวัติช่องจัดเก็บ | SR03:010, SR09:001 | db_auth.php (log), td_* tables, td_bin_log |
| UN11 — แจ้งเตือนและงานตามกำหนดเวลา (Notification & Scheduler) | | | | |
| UN11.001 | Node – Socket.IO Notification Server | รับเหตุการณ์จาก PHP ผ่าน Endpoint ที่ป้องกันด้วย Secret และส่งต่อไปยัง Browser ของผู้ใช้ที่เกี่ยวข้อง | SR03:011, SR04:004, SR06:004, SR06:005 | nodejs/server.js |
| UN11.002 | Node – Scheduler (ETL & Alerts) | สรุปยอดสต๊อก/GL, แจ้งเตือนสินค้าใกล้หมดและใบแจ้งหนี้ค้างชำระ ตามกำหนดเวลา Asia/Bangkok | SR03:011, SR05:002, SR01:006 | nodejs/scheduler.js, app/cron/ |
| UN12 — ความปลอดภัยและการแยกข้อมูล (Security & Tenant Scope) | | | | |
| UN12.001 | Security – Tenant Scope Guard | จำกัดทุก Query และ Action ให้อยู่ในบริษัท/คลังที่ผู้ใช้ได้รับอนุญาต | SR04:001, SR04:003, SR07:002 | StockTablesTrait.php, Manager classes |
| UN12.002 | Security – Server-side Validation | ตรวจสอบข้อมูลนำเข้า, Prepared Statements, Escape Output ป้องกัน SQLi/XSS | SR07:002, SR07:004 | Manager classes, app/assets/utils/ |
| UN12.003 | Security – Operation Lock & Usage Guard | ล็อกช่วงเวลาผ่านรายการ และจำกัดโควตารายการต่อบริษัท | SR07:002, SR09:003 | OperationLockManager.php, UsageGuard.php |
| UN12.003 | Security – Posting Window & Usage Guard | ปฏิเสธการผ่านรายการนอกช่วงเวลาที่เปิด และล็อกแดชบอร์ด/รายงานเมื่อใช้งานเกินแพ็กเกจ | SR07:002, SR09:003 | PostingWindowGuard.php, UsageGuard.php |
| UN12.004 | Security – TLS & Secret Configuration | ค่าตั้งค่า TLS, NODE_EMIT_SECRET และ Secrets ที่สร้างตอนติดตั้ง | SR07:001, SR01:005 | docker/php/config.php.template, .env |
| UN13 — ติดตั้งและสำรองข้อมูล (Deployment & Backup) | | | | |
| UN13.001 | Deploy – setup.php Schema Installer | สร้างฐานข้อมูล wms/wms2 และตารางทั้งหมดในขั้นตอนเดียว | SR01:003, SR08:005, SR06:001 | setup.php, docker/mariadb/init-wms2.sql |
| UN13.002 | Deploy – Docker Compose Stack | Container php-apache, mariadb, node/pm2 พร้อม Entrypoint สร้าง config.php | SR02:005, SR01:003 | docker-compose.yml, docker/ |
| UN13.002 | Deploy – Docker Compose Stack | Service db, php, node พร้อม Entrypoint สร้าง config.php | SR02:005, SR01:003 | docker-compose.yml, docker/ |
| UN13.003 | Deploy – .env Generator | สร้าง .env และความลับอัตโนมัติ ไม่เก็บใน Git | SR01:005 | docker/init-env.sh, .env.example |
| UN13.004 | Deploy – Backup & Restore | สำรอง Git 2 Remote, mysqldump รายวัน, ขั้นตอนกู้คืน | SR01:003 | Product Operation Guide, backup remote |
| UN13.004 | Deploy – Backup & Restore | สำรอง Git 2 Remote, สำรองฐานข้อมูลด้วย mysqldump และขั้นตอนกู้คืน | SR01:003 | Product Operation Guide, backup remote |
## ผู้จัดทำเอกสาร (Secretary)