diff --git a/scripts/sdlc-seed/README.md b/scripts/sdlc-seed/README.md index f6e47cf..bdb3ec3 100644 --- a/scripts/sdlc-seed/README.md +++ b/scripts/sdlc-seed/README.md @@ -18,6 +18,7 @@ Approval signature tables on every document. | `format.mjs` | The shared work-product scaffold | | `figures.mjs` | Software Design diagrams and wireframes, drawn as SVG; `scripts/sdlc-delivery/render-figures.mjs` rasterises them into `figures/*.png` | | `docs-*.mjs` | One generator per work product | +| `timeline.mjs` | Hindsight guard: fails the build when a document cites something that did not exist yet on its date | | `build.mjs` | Writes all documents and checks no folder is left empty | ## Usage @@ -30,3 +31,25 @@ bash scripts/build-sdlc-delivery.sh # seed, render to PDF, then verify The traceability chain is validated at import time: every Customer Requirement must resolve to existing Software Requirements, Software Units, and a Test Case, or the build fails. + +## Write each document as of its own date + +Every work product is dated (`... 25690105 V1.0 ...`) and may only state what was +known on that day. The Statement of Work (5 Jan) cannot name the Git baseline +delivered on 17 Aug, a plan cannot mark future tasks Completed, and the Test Case +document (31 Jul) cannot record results of the 10–14 Aug run. Planned dates in the +future are fine; outcomes, commits and identifiers that came later are not. + +`build.mjs` enforces the checkable part through `timeline.mjs` and stops with a +list of offending documents when a work product cites: + +- a Git commit created after the document date (dates read from `git log`); +- the delivery tag `TAG` before the tag was created; +- an `ISS-nnn` before its detection date in the Correction Register; +- CR, SR, Unit or Test Case IDs before the work product that defines them. + +Prose is not checked automatically. When adding text, write outcomes after the +document date as plans ("กำหนด…", "ตามแผน…") and put the actual result in the later +record that reports it (Progress Status Record, Test Report, Acceptance Report, +Software Configuration). The Work Schedule derives each task's status from its +own date for the same reason. diff --git a/scripts/sdlc-seed/build.mjs b/scripts/sdlc-seed/build.mjs index 64c6679..9efa785 100644 --- a/scripts/sdlc-seed/build.mjs +++ b/scripts/sdlc-seed/build.mjs @@ -8,6 +8,7 @@ import * as pm2 from './docs-pm2.mjs'; import * as si from './docs-si.mjs'; import * as si2 from './docs-si2.mjs'; import * as other from './docs-other.mjs'; +import { hindsightErrors } from './timeline.mjs'; const root = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '../..'); const target = path.join(root, 'sdlc'); @@ -70,6 +71,9 @@ async function main() { if (!FOLDERS.includes(d.dir)) throw new Error(`Unknown folder for ${d.name}: ${d.dir}`); } + const hindsight = hindsightErrors(docs, root); + if (hindsight.length) throw new Error(`Work products cite things that did not exist yet on their date:\n- ${hindsight.join('\n- ')}`); + await fs.rm(target, { recursive: true, force: true }); for (const folder of FOLDERS) await fs.mkdir(path.join(target, folder), { recursive: true }); for (const d of docs) { diff --git a/scripts/sdlc-seed/docs-other.mjs b/scripts/sdlc-seed/docs-other.mjs index 66df14d..4c68ca9 100644 --- a/scripts/sdlc-seed/docs-other.mjs +++ b/scripts/sdlc-seed/docs-other.mjs @@ -1,5 +1,5 @@ // 3-Other Document: Stakeholder Register, Project Charter, Traceability Record Table, Training Report, List of Evidence. -import { P, TEAM, CODE, PROJECT_TH, COMPANY_TH, ORGANIZER_PM, RECORDER, START, END, SCOPE, CRS, TRAINING_DATE, ACCEPT_DATE, TEST_FROM, TEST_TO, BASELINE_COMMIT, ORIGIN, BACKUP, TAG, DEV_START } from './project.mjs'; +import { P, TEAM, CODE, PROJECT_TH, COMPANY_TH, ORGANIZER_PM, RECORDER, START, END, SCOPE, CRS, TRAINING_DATE, ACCEPT_DATE, TEST_FROM, TEST_TO, BASELINE_COMMIT, ORIGIN, BACKUP, DEV_START } from './project.mjs'; import { SRS, UNITS, TEST_CASES, traceOf, srTopic, unitTopic } from './engineering.mjs'; import { CORRECTIONS, PERIODS, MEETINGS, TASKS } from './history.mjs'; import { bud, thLong, thRangeLong, table, bullets, numbered, daysBetween } from './lib.mjs'; @@ -104,8 +104,8 @@ export function projectCharter() { ['อนุมัติกฎบัตรโครงการ', thLong('2026-01-23'), 'Project Sponsor อนุมัติขอบเขตและวัตถุประสงค์'], ['ตั้ง Baseline ความต้องการ', thLong('2026-02-18'), 'อนุมัติ Customer Requirements และแผนงาน'], ['Baseline การพัฒนา', thLong('2026-05-29'), 'พัฒนาครบทุกโมดูลตามขอบเขต'], - ['ทดสอบระบบและ UAT', thRangeLong(TEST_FROM, TEST_TO), 'ผลการทดสอบผ่านครบทุกรายการ'], - ['ตรวจรับส่งมอบ', thLong(ACCEPT_DATE), 'ผลการตรวจรับ Accepted'], + ['ทดสอบระบบและ UAT', thRangeLong(TEST_FROM, TEST_TO), 'Test Case และ UAT ผ่านครบทุกรายการ'], + ['ตรวจรับส่งมอบ', thLong(ACCEPT_DATE), 'Project Sponsor ลงนามตรวจรับสิ่งส่งมอบ'], ['ปิดโครงการ', thLong(END), 'ปิดโครงการอย่างเป็นทางการ'], ], ['', 'c', '']), ].join('\n\n'), @@ -248,7 +248,7 @@ export function listOfEvidence(inventory) { [14, 'Software Components', one('14.Software Components'), 'เอกสารแสดงส่วนประกอบต่าง ๆ ของโปรแกรมแต่ละเวอร์ชัน'], [15, 'Test Cases and Test Procedures', one('15.Test Cases'), 'เอกสารแสดงตัวอย่างชุดข้อมูลที่ใช้ทดสอบ'], [16, 'Test Report', one('16.Test Report'), 'บันทึกผลการทดสอบระบบ'], - [17, 'Software', one('17.Software'), `ซอฟต์แวร์สำหรับส่งมอบให้กับผู้ใช้งาน (Baseline \`${BASELINE_COMMIT}\`, Tag \`${TAG}\`)`], + [17, 'Software', one('17.Software'), `ซอฟต์แวร์สำหรับส่งมอบให้กับผู้ใช้งาน (Baseline \`${BASELINE_COMMIT}\`)`], [18, 'Software User Documentation', one('18.Software User Documentation'), 'เอกสารคู่มือการใช้งานสำหรับผู้ใช้'], [19, 'Product Operation Guide', one('19.Product Operation Guide'), 'เอกสารคู่มือปฏิบัติงานสำหรับผู้ดูแลระบบ'], [20, 'Maintenance Documentation', one('20.Maintenance Documentation'), 'เอกสารคู่มือการบำรุงรักษาระบบ'], @@ -272,7 +272,7 @@ export function listOfEvidence(inventory) { ['เอกสารที่จัดเตรียมครบถ้วน', inventory.length], ['เอกสารที่ยังไม่ได้จัดเตรียม', 0], ], ['', 'r']), - `เอกสารและหลักฐานทั้งหมดจัดเก็บใน Project Repository และสำรองไว้ตามที่ระบุในเอกสาร Project Repository (Backup) โดยชุดเอกสารส่งมอบควบคุมด้วย Tag \`${TAG}\``, + `เอกสารและหลักฐานทั้งหมดจัดเก็บใน Project Repository และสำรองไว้ตามที่ระบุในเอกสาร Project Repository (Backup) โดยชุดเอกสารส่งมอบควบคุมใน Branch \`sdlc\``, ].join('\n\n'), secretary: P.YaB, reviewer: P.ApS, approver: P.SeV, }), diff --git a/scripts/sdlc-seed/docs-pm1.mjs b/scripts/sdlc-seed/docs-pm1.mjs index 5479f85..c417a83 100644 --- a/scripts/sdlc-seed/docs-pm1.mjs +++ b/scripts/sdlc-seed/docs-pm1.mjs @@ -71,7 +71,10 @@ export function statementOfWork() { }; } -/** 2.1 Work Schedule — landscape task table with milestones. */ +/** Task status as known on `date`: the plan cannot report work that has not happened yet. */ +const statusOn = (date, start, finish) => (finish <= date ? 'Completed' : start <= date ? 'In Progress' : 'Not Started'); + +/** 2.1 Work Schedule — landscape task table with milestones, as planned on its issue date. */ export function workSchedule() { const date = '2026-02-13'; return { @@ -88,7 +91,7 @@ export function workSchedule() { body: [ '## แผนการดำเนินงาน (Work Schedule)', table(['No.', 'Phase', 'Task', 'รายละเอียด', 'ผู้รับผิดชอบ', 'Start', 'Finish', 'วัน', 'สิ่งส่งมอบ / หลักฐาน', 'Status', 'หมายเหตุ'], - TASKS.map((t) => [t[0], t[1], t[2], t[3], resp(t[4]), thShort(t[5]), thShort(t[6]), daysBetween(t[5], t[6]), t[7], t[8], t[9]]), + TASKS.map((t) => { const s = statusOn(date, t[5], t[6]); return [t[0], t[1], t[2], t[3], resp(t[4]), thShort(t[5]), thShort(t[6]), daysBetween(t[5], t[6]), t[7], s, s === 'Completed' ? t[9] : '-']; }), ['c', '', '', '', 'c', 'r', 'r', 'r', '', 'c', '']), '## หลักไมล์ของโครงการ (Milestones)', table(['หลักไมล์', 'วันที่', 'เกณฑ์การบรรลุ'], [ @@ -96,10 +99,10 @@ export function workSchedule() { ['อนุมัติกฎบัตรโครงการ', thLong('2026-01-23'), 'Project Sponsor อนุมัติ Project Charter'], ['ตั้ง Baseline ความต้องการและแผนงาน', thLong('2026-02-18'), 'อนุมัติ Customer Requirements และ Work Schedule'], ['เริ่มพัฒนาระบบ', thLong(DEV_START), 'เริ่ม Task 3.1 ตามแผน'], - ['Baseline การพัฒนา', thLong('2026-05-29'), 'พัฒนาครบทุกโมดูล (Git a0677d6)'], - ['ทดสอบระบบและ UAT', thRangeLong(TEST_FROM, TEST_TO), `ทดสอบ 45 Test Case และ UAT ครบ 14 หมวดความต้องการ (${CRS.length} รายการ) ผ่านทั้งหมด`], - ['ตรวจรับส่งมอบระบบ', thLong('2026-08-17'), 'ผลการตรวจรับ Accepted'], - ['อบรมผู้ใช้งาน', thLong('2026-08-22'), 'อบรมผู้ใช้งาน 6 คน'], + ['Baseline การพัฒนา', thLong('2026-05-29'), 'พัฒนาครบทุกโมดูลตามขอบเขต และกำหนด Git Baseline การพัฒนา'], + ['ทดสอบระบบและ UAT', thRangeLong(TEST_FROM, TEST_TO), `Test Case ผ่านครบ และ UAT ผ่านครบ 14 หมวดความต้องการ (${CRS.length} รายการ)`], + ['ตรวจรับส่งมอบระบบ', thLong('2026-08-17'), 'Project Sponsor ลงนามตรวจรับสิ่งส่งมอบครบทุกรายการ'], + ['อบรมผู้ใช้งาน', thLong('2026-08-22'), 'ผู้ใช้งานทุกฝ่ายที่เกี่ยวข้องผ่านการอบรม'], ['ปิดโครงการ', thLong(END), 'ปิดโครงการอย่างเป็นทางการ'], ], ['', 'c', '']), '## หมายเหตุการติดตามแผนงาน', @@ -165,15 +168,15 @@ export function softwareProjectPlan() { '**ด้านคุณภาพของระบบ**', table(['ลำดับ', 'หัวข้อ', 'เกณฑ์คุณภาพ', 'วิธีประเมิน'], [ ['1.1', 'ความถูกต้องของฟังก์ชัน', 'ฟังก์ชันทั้งหมดทำงานตรงตาม Customer Requirements ครบ 100%', 'ทดสอบตาม Test Case และ UAT'], - ['1.2', 'ความถูกต้องของข้อมูลสต๊อกและบัญชี', 'ไม่พบยอดสต๊อกติดลบหรือรายการ GL ที่ไม่สมดุล', 'ทดสอบ Transaction และ Rollback (TC-UN08.002)'], - ['1.3', 'ความปลอดภัยของระบบ', 'ไม่พบข้อบกพร่องระดับวิกฤตด้านสิทธิ์และการแยกข้อมูล', 'ทดสอบสิทธิ์เชิงลบ (TC-UN12.001, TC-UN12.002)'], - ['1.4', 'ประสิทธิภาพการตอบสนอง', 'งานประจำวันตอบสนองภายในเวลาที่ใช้งานได้จริงบนสภาพแวดล้อมที่ตกลง', 'ทดสอบตามปริมาณข้อมูลตัวอย่าง (TC-UN09.001)'], + ['1.2', 'ความถูกต้องของข้อมูลสต๊อกและบัญชี', 'ไม่พบยอดสต๊อกติดลบหรือรายการ GL ที่ไม่สมดุล', 'ทดสอบ Transaction และ Rollback ของการบันทึกบัญชี'], + ['1.3', 'ความปลอดภัยของระบบ', 'ไม่พบข้อบกพร่องระดับวิกฤตด้านสิทธิ์และการแยกข้อมูล', 'ทดสอบสิทธิ์เชิงลบและการแยกข้อมูลระหว่างบริษัท'], + ['1.4', 'ประสิทธิภาพการตอบสนอง', 'งานประจำวันตอบสนองภายในเวลาที่ใช้งานได้จริงบนสภาพแวดล้อมที่ตกลง', 'ทดสอบตามปริมาณข้อมูลตัวอย่างบนแดชบอร์ดและรายงาน'], ['1.5', 'ความสามารถในการเข้าถึง', 'ใช้งานได้บน Desktop, Tablet และ Mobile (Responsive)', 'ทดสอบข้ามอุปกรณ์'], ], ['c']), '**ด้านการดูแลหลังส่งมอบ**', table(['ลำดับ', 'หัวข้อ', 'เกณฑ์คุณภาพ', 'วิธีประเมิน'], [ ['2.1', 'การตอบสนองเหตุขัดข้อง', 'ตอบรับภายใน 4 ชั่วโมง และแก้ไขตามระดับความรุนแรงที่กำหนดใน SLA', 'บันทึกการให้บริการ'], - ['2.2', 'การสำรองข้อมูล', 'มีระบบสำรองข้อมูลอัตโนมัติรายวันและทดสอบกู้คืนได้จริง', 'Backup & Restore Test (TC-UN13.004)'], + ['2.2', 'การสำรองข้อมูล', 'มีระบบสำรองข้อมูลอัตโนมัติรายวันและทดสอบกู้คืนได้จริง', 'ทดสอบสำรองและกู้คืนข้อมูล (Backup & Restore Test)'], ['2.3', 'การเฝ้าระวังระบบ', 'ตรวจสอบสถานะบริการทุก 5 นาที และแจ้งเตือนเมื่อล้มเหลว 2 ครั้งติดกัน', 'บันทึกการเฝ้าระวัง'], ], ['c']), sec(4, 'Software Development Life Cycle Methodology'), @@ -208,9 +211,9 @@ export function softwareProjectPlan() { [1, 'เอกสารบริหารโครงการ (PM Process)', '10 รายการ'], [2, 'เอกสารกระบวนการพัฒนา (SI Process)', '12 รายการ'], [3, 'ความต้องการลูกค้า (Customer Requirements)', `${CRS.length} รายการ (CR01–CR14)`], - [4, 'ความต้องการซอฟต์แวร์ (SRS)', '49 รายการ (SR01–SR09)'], - [5, 'Software Unit', '45 หน่วย (UN01–UN13)'], - [6, 'Test Case', '45 รายการ'], + [4, 'ความต้องการซอฟต์แวร์ (SRS)', 'ประมาณ 50 รายการ แบ่งตามกลุ่มระบบในขอบเขตงาน'], + [5, 'Software Unit', 'ประมาณ 45 หน่วย ใน 13 กลุ่มโมดูล'], + [6, 'Test Case', 'อย่างน้อย 1 รายการต่อ Software Unit'], [7, 'ตารางฐานข้อมูล', 'ประมาณ 50 ตาราง ใน 2 ฐานข้อมูล'], ], ['c']), '### 6.2 Effort Man-Day', diff --git a/scripts/sdlc-seed/docs-pm2.mjs b/scripts/sdlc-seed/docs-pm2.mjs index 6a5cd99..4287e06 100644 --- a/scripts/sdlc-seed/docs-pm2.mjs +++ b/scripts/sdlc-seed/docs-pm2.mjs @@ -1,6 +1,6 @@ // PM work products 3–10: Progress Status Record, Correction Register, Acceptance Report, // Change Report, Meeting Record, Software Configuration, Project Repository (+ Backup). -import { P, CRS, CODE, PROJECT_TH, COMPANY_TH, ORGANIZER, ORGANIZER_PM, RECORDER, START, END, WPS, TEAM, ORIGIN, BACKUP, TAG, BASELINE_COMMIT, TEST_FROM, TEST_TO, ACCEPT_DATE, OPS_CLOSE_DATE } from './project.mjs'; +import { P, CRS, CODE, PROJECT_TH, COMPANY_TH, ORGANIZER, ORGANIZER_PM, RECORDER, START, END, WPS, TEAM, ORIGIN, BACKUP, BASELINE_COMMIT, TEST_FROM, TEST_TO, ACCEPT_DATE, OPS_CLOSE_DATE } from './project.mjs'; import { TASKS, taskById, CORRECTIONS, CHANGE_CRITERIA, CHANGE_REVIEW, LESSONS, PERIODS, MEETINGS } from './history.mjs'; import { bud, thLong, thShort, thRange, thRangeLong, table, bullets, daysBetween } from './lib.mjs'; import { workProduct, head } from './format.mjs'; @@ -115,7 +115,7 @@ export function acceptanceReport() { body: [ '## รายการสิ่งส่งมอบ (Work Products)', table(['ลำดับ', 'รหัส', 'สิ่งส่งมอบ (Work Product)', 'รายละเอียด', 'ผลการตรวจรับ (Accepted / Not Accepted)'], - WPS.map((w, i) => [i + 1, w[0], w[1], w[2], 'Accepted']), ['c', 'c', '', '', 'c']), + WPS.map((w, i) => [i + 1, w[0], w[1], w[0] === 'WP 9.0' ? `${w[2]} (Git baseline \`${BASELINE_COMMIT}\`)` : w[2], 'Accepted']), ['c', 'c', '', '', 'c']), '## ผลการตรวจสอบตามเกณฑ์การตรวจรับ', table(['ลำดับ', 'เกณฑ์การตรวจรับ', 'หลักฐานอ้างอิง', 'ผลการตรวจสอบ'], [ [1, 'ฟังก์ชันในขอบเขตทำงานตรงตาม Customer Requirements ครบทุกรายการ', 'Traceability Record, Test Report', 'ผ่าน'], @@ -134,7 +134,7 @@ export function acceptanceReport() { ['ข้อบกพร่องคงค้าง', 'ไม่มี'], ['ผลการตรวจรับโดยรวม', '**Accepted** — ตรวจรับส่งมอบระบบครบถ้วน'], ]), - `ผู้รับมอบได้ตรวจสอบสิ่งส่งมอบทั้งหมดตามเกณฑ์การตรวจรับที่กำหนดในเอกสาร Statement of Work และ Software Project Plan แล้วเห็นว่าครบถ้วนถูกต้อง จึงมีมติตรวจรับส่งมอบระบบเมื่อวันที่ ${thLong(ACCEPT_DATE)} โดยงานอบรมผู้ใช้งานและการปิดงานควบคุมปฏิบัติการดำเนินการแล้วเสร็จภายในวันที่ ${thLong(END)} ตามแผนปิดโครงการ`, + `ผู้รับมอบได้ตรวจสอบสิ่งส่งมอบทั้งหมดตามเกณฑ์การตรวจรับที่กำหนดในเอกสาร Statement of Work และ Software Project Plan แล้วเห็นว่าครบถ้วนถูกต้อง จึงมีมติตรวจรับส่งมอบระบบเมื่อวันที่ ${thLong(ACCEPT_DATE)} โดยงานอบรมผู้ใช้งานและการปิดงานควบคุมปฏิบัติการจะดำเนินการให้แล้วเสร็จภายในวันที่ ${thLong(END)} ตามแผนปิดโครงการ`, ].join('\n\n'), secretary: P.ApS, reviewer: P.YaB, approver: P.SeV, }), @@ -279,7 +279,6 @@ export function softwareConfiguration() { ['Repository สำรอง (backup)', `\`${BACKUP}\``], ['Branch หลัก', '`main` เป็น Baseline ที่ควบคุม'], ['Baseline ของระบบที่ส่งมอบ', `Commit \`${BASELINE_COMMIT}\``], - ['Tag ของชุดเอกสารส่งมอบ', `\`${TAG}\``], ['สิทธิ์การเข้าถึง', 'ยืนยันตัวตนด้วย SSH Key ตามบทบาทของสมาชิกโครงการ'], ]), '## การเชื่อมโยงกับการเปลี่ยนแปลง', @@ -312,7 +311,6 @@ export function projectRepository() { ['Branch หลัก', '`main`'], ['Branch เอกสารส่งมอบ', '`sdlc`'], ['Baseline ของระบบที่ส่งมอบ', `Commit \`${BASELINE_COMMIT}\``], - ['Tag ของชุดเอกสารส่งมอบ', `\`${TAG}\``], ['สิทธิ์การเข้าถึง', 'ยืนยันตัวตนด้วย SSH Key ตามบทบาทของสมาชิกโครงการ'], ]), '## โครงสร้างการจัดเก็บ', @@ -336,7 +334,7 @@ export function projectRepository() { table(['ลำดับ', 'หลักฐาน', 'รายละเอียด'], [ [1, 'โครงสร้าง Repository และประวัติการเปลี่ยนแปลง', 'ตรวจสอบได้จาก Git Server ตามสิทธิ์ที่ได้รับ'], [2, 'Baseline ของระบบที่ส่งมอบ', `Commit \`${BASELINE_COMMIT}\` บน branch \`main\``], - [3, 'ชุดเอกสารส่งมอบที่ควบคุมแล้ว', `Branch \`sdlc\` และ Tag \`${TAG}\``], + [3, 'ชุดเอกสารส่งมอบที่ควบคุมแล้ว', 'Branch `sdlc`'], ], ['c']), ].join('\n\n'), secretary: P.ThS, reviewer: P.ApS, approver: P.SeV, @@ -364,7 +362,7 @@ export function projectRepositoryBackup() { ['วิธีการสำรอง', 'Git Remote สำรอง (Secondary Remote)'], ['ชื่อ Remote สำรอง', '`backup`'], ['ที่อยู่ Remote สำรอง', `\`${BACKUP}\``], - ['ขอบเขตการสำรอง', `Branch \`main\` (Baseline \`${BASELINE_COMMIT}\`), Branch \`sdlc\` และ Tag \`${TAG}\``], + ['ขอบเขตการสำรอง', `Branch \`main\` (Baseline \`${BASELINE_COMMIT}\`), Branch \`sdlc\``], ['รอบการสำรอง', 'ซิงก์ทุกครั้งที่มีการส่งมอบหรือปรับปรุง Baseline'], ['ผู้รับผิดชอบ', `${P.ThS.th} (Developer)`], ]), @@ -381,14 +379,14 @@ export function projectRepositoryBackup() { ['BK-001', `ตรวจสอบว่า Remote สำรองเข้าถึงได้และมี Baseline \`${BASELINE_COMMIT}\` ตรงกับ Repository หลัก`, P.ThS.id, thLong('2026-08-17'), 'ผ่าน'], ['BK-002', 'ทดสอบ Clone จาก Remote สำรองและตรวจสอบความครบถ้วนของข้อมูล', P.ThS.id, thLong('2026-08-17'), 'ผ่าน'], ['BK-003', 'ทดสอบกู้คืนฐานข้อมูลจากชุดสำรองสู่สภาพแวดล้อมทดสอบ', P.ThS.id, thLong(OPS_CLOSE_DATE), 'ผ่าน'], - ['BK-004', `ซิงก์ Branch \`sdlc\` และ Tag \`${TAG}\` ไปยัง Remote สำรองและตรวจสอบการเรียกคืน`, P.ThS.id, thLong(END), 'ผ่าน'], + ['BK-004', 'ซิงก์ Branch `sdlc` ไปยัง Remote สำรองและตรวจสอบการเรียกคืน', P.ThS.id, thLong(END), 'ผ่าน'], ], ['c', '', 'c', 'c', 'c']), '## ขั้นตอนการกู้คืน', table(['ลำดับ', 'ขั้นตอน', 'รายละเอียด'], [ [1, 'ยืนยันขอบเขตความเสียหาย', 'ตรวจสอบว่าข้อมูลที่สูญหายเป็น Source Code เอกสาร หรือฐานข้อมูล'], [2, 'เลือกชุดสำรองที่จะใช้', 'เลือกชุดสำรองล่าสุดที่ผ่านการตรวจสอบและยืนยันวันที่'], [3, 'กู้คืนสู่สภาพแวดล้อมทดสอบก่อน', 'Clone จาก Remote สำรอง หรือ Restore ฐานข้อมูลสู่เครื่องทดสอบ'], - [4, 'ตรวจสอบความถูกต้อง', 'ตรวจสอบ Baseline, Tag และข้อมูลตัวอย่างว่าครบถ้วน'], + [4, 'ตรวจสอบความถูกต้อง', 'ตรวจสอบ Baseline และข้อมูลตัวอย่างว่าครบถ้วน'], [5, 'กู้คืนสู่สภาพแวดล้อมใช้งานจริง', 'บันทึกจุดกู้คืน หยุดบริการที่เกี่ยวข้อง กู้คืน แล้วตรวจสอบสถานะระบบตามคู่มือผู้ดูแลระบบ'], ], ['c']), ].join('\n\n'), diff --git a/scripts/sdlc-seed/docs-si.mjs b/scripts/sdlc-seed/docs-si.mjs index 66cfaa3..50f0fb1 100644 --- a/scripts/sdlc-seed/docs-si.mjs +++ b/scripts/sdlc-seed/docs-si.mjs @@ -1,9 +1,9 @@ // SI work products 11–22. -import { P, CODE, PROJECT_TH, ORGANIZER, ORGANIZER_PM, RECORDER, START, END, SCOPE, CRS, crTopic, TEST_FROM, TEST_TO, ACCEPT_DATE, BASELINE_COMMIT, TEST_STATE_COMMIT, ORIGIN, BACKUP, TAG } from './project.mjs'; +import { P, CODE, PROJECT_TH, ORGANIZER, ORGANIZER_PM, RECORDER, START, END, SCOPE, CRS, crTopic, TEST_FROM, TEST_TO, ACCEPT_DATE, DEV_BASELINE, BASELINE_COMMIT, TEST_STATE_COMMIT, ORIGIN, BACKUP } from './project.mjs'; import { SR_GROUPS, SRS, srTopic, UNIT_GROUPS, UNITS, unitTopic, unitModule, TEST_CASES, traceOf } from './engineering.mjs'; import { CORRECTIONS } from './history.mjs'; import { figure } from './figures.mjs'; -import { bud, thLong, thShort, thRangeLong, table, bullets, numbered } from './lib.mjs'; +import { bud, thLong, thShort, thRange, thRangeLong, table, bullets, numbered } from './lib.mjs'; import { workProduct, head } from './format.mjs'; const D = '2026-08-17'; @@ -131,20 +131,20 @@ export function softwareDesign() { figure('wfStockIn'), figure('wfReport'), '## Software Baseline', - 'หัวข้อนี้ระบุสิ่งที่ถูกกำหนดเป็น Baseline ของซอฟต์แวร์ วันที่กำหนด และผู้อนุมัติ เพื่อให้ตรวจสอบเส้นทาง Baseline → Configuration → Change ได้ในเอกสารชุดเดียวกัน', + 'หัวข้อนี้กำหนดสิ่งที่จะควบคุมเป็น Baseline ของซอฟต์แวร์ เวลาที่กำหนด Baseline และผู้อนุมัติ เพื่อให้ตรวจสอบเส้นทาง Baseline → Configuration → Change ได้ Commit ที่เป็น Baseline จริงจะบันทึกใน Software Configuration (WP 8) เมื่อกำหนด Baseline แต่ละครั้ง', table(['รายการที่กำหนดเป็น Baseline', 'ค่าที่ควบคุม', 'ที่จัดเก็บ'], [ - ['Source Code ของแอปพลิเคชัน', `Git commit \`${BASELINE_COMMIT}\` บน branch \`main\``, `Repository หลัก \`${ORIGIN}\``], + ['Source Code ของแอปพลิเคชัน', 'Git commit บน branch `main` ณ วันที่กำหนด Baseline', `Repository หลัก \`${ORIGIN}\``], ['โครงสร้างฐานข้อมูล', 'Schema ที่สร้างโดย `setup.php` และ `docker/mariadb/init-wms2.sql`', 'ควบคุมใน Repository เดียวกัน'], ['ค่าตั้งค่าและชุดติดตั้ง', '`docker-compose.yml`, `docker/`, `.env.example` (ไม่รวมค่าความลับ)', 'ควบคุมใน Repository เดียวกัน'], - ['เอกสาร Work Products', `Branch \`sdlc\` และ Tag \`${TAG}\``, `Repository หลักและ Remote สำรอง \`${BACKUP}\``], + ['เอกสาร Work Products', 'Branch `sdlc`', `Repository หลักและ Remote สำรอง \`${BACKUP}\``], ]), table(['หัวข้อ', 'รายละเอียด'], [ - ['วันที่กำหนด Baseline', `${thLong('2026-08-17')} (Baseline ของระบบที่ส่งมอบ)`], + ['เวลาที่กำหนด Baseline', `เมื่อพัฒนาครบทุกโมดูล (Baseline การพัฒนา ตามแผน ${thLong(DEV_BASELINE)}) และเมื่อตรวจรับส่งมอบ (Baseline ของระบบที่ส่งมอบ ตามแผน ${thLong(ACCEPT_DATE)})`], ['ผู้จัดทำ Baseline', `${P.ThS.th} (Developer)`], ['ผู้ตรวจสอบ', `${P.NoC.th} (System Analyst) และ ${P.PaNg.th} (QA/Tester)`], - ['ผู้อนุมัติ', `${P.SeV.th} (Project Sponsor) พร้อมการตรวจรับเมื่อ ${thLong(ACCEPT_DATE)}`], + ['ผู้อนุมัติ', `${P.SeV.th} (Project Sponsor) โดย Baseline ของระบบที่ส่งมอบอนุมัติพร้อมการตรวจรับ`], ['เอกสารควบคุมที่เกี่ยวข้อง', 'Software Configuration (WP 8) ระบุรายการ Configuration Item และการควบคุมเวอร์ชัน'], - ['การสอบกลับ', 'Traceability Record (WP 13) เชื่อมโยงความต้องการกับ Software Unit และ Test Case บน Baseline นี้'], + ['การสอบกลับ', 'Traceability Record (WP 13) เชื่อมโยงความต้องการกับ Software Unit และ Test Case ที่จะกำหนดภายหลัง'], ['การเปลี่ยนแปลง Baseline', 'ต้องพิจารณาตามเกณฑ์ใน Change Report และบันทึกผลใน Correction Register เมื่อเป็นการแก้ไขข้อบกพร่อง'], ]), '## Software Unit', @@ -162,14 +162,13 @@ export function traceabilityRecord() { let group = ''; for (const [id, text] of CRS) { const g = id.slice(0, 4); - if (g !== group) { group = g; const name = SCOPEGROUP(g); rows.push([`${g}: ${name}`, '', '', '', '', '', '', '']); } + if (g !== group) { group = g; const name = SCOPEGROUP(g); rows.push([`${g}: ${name}`, '', '', '', '', '', '']); } const t = traceOf(id); - rows.push([id, text, t.sr.join(', '), t.sr.map(srTopic).join(' / '), t.un.join(', ') || '-', t.un.map(unitTopic).join(' / ') || '-', t.tc, t.ev || '-']); + rows.push([id, text, t.sr.join(', '), t.sr.map(srTopic).join(' / '), t.un.join(', ') || '-', t.un.map(unitTopic).join(' / ') || '-', t.ev || '-']); } const traced = CRS.map(([id]) => traceOf(id)); const withUnits = traced.filter((t) => t.un.length).length; - const withTests = traced.filter((t) => t.tcs.length).length; - const byDocument = traced.filter((t) => !t.tcs.length).length; + const byDocument = traced.filter((t) => !t.un.length).length; return { dir: '2-SI Process (12 Work Product)/13.Traceability record', name: `${CODE} Traceability Record ${bud(date)} V1.0 NoC`, @@ -183,23 +182,20 @@ export function traceabilityRecord() { ]), body: [ '## วัตถุประสงค์ (Objective)', - 'เอกสารที่เชื่อมโยงทุกขั้นตอนของโครงการ ตั้งแต่ความต้องการของลูกค้า → ความต้องการซอฟต์แวร์ → การออกแบบ → การทดสอบ เพื่อยืนยันความครบถ้วนของ Customer Requirements และลดความเสี่ยงของข้อบกพร่องและความต้องการที่ตกหล่น', + 'เอกสารที่เชื่อมโยงความต้องการของลูกค้า → ความต้องการซอฟต์แวร์ → การออกแบบ (Software Unit) ณ วันที่ออกแบบระบบ เพื่อยืนยันความครบถ้วนของ Customer Requirements ก่อนเริ่มพัฒนา และลดความเสี่ยงของความต้องการที่ตกหล่น การสอบกลับไปยัง Test Case และผลการทดสอบจะเพิ่มใน Traceability Record ฉบับส่งมอบ หลังจัดทำ Test Case and Test Procedures', '## Traceability Matrix', - table(['CR ID', 'CR Topic', 'SRS ID', 'SRS Topic', 'Unit ID', 'Unit Topic', 'Test Case ID', 'หลักฐานอื่น (Document)'], rows), + table(['CR ID', 'CR Topic', 'SRS ID', 'SRS Topic', 'Unit ID', 'Unit Topic', 'หลักฐานอื่น (Document)'], rows), 'หมายเหตุ: ความต้องการที่เป็นเอกสาร การอบรม หรือหลักฐานด้านคุณภาพ สอบกลับไปยังเอกสารส่งมอบที่เป็นหลักฐานในคอลัมน์ "หลักฐานอื่น" แทน Software Unit', '## สรุปความครอบคลุม', table(['รายการ', 'จำนวน'], [ ['ความต้องการของลูกค้าทั้งหมด (CR01–CR14)', CRS.length], ['เชื่อมโยงกับความต้องการซอฟต์แวร์ (SRS)', CRS.length], ['เชื่อมโยงกับ Software Unit', withUnits], - ['เชื่อมโยงกับ Test Case', withTests], ['ยืนยันด้วยเอกสารส่งมอบ (ไม่มี Software Unit)', byDocument], - ['มีหลักฐานยืนยันครบ (Test Case หรือเอกสาร)', CRS.length], ['ความต้องการซอฟต์แวร์ทั้งหมด (SR01–SR09)', SRS.length], ['Software Unit ทั้งหมด', UNITS.length], - ['Test Case ทั้งหมด', TEST_CASES.length], ], ['', 'r']), - `ความต้องการทุกรายการมีเส้นทางการสอบกลับที่ครบถ้วนตั้งแต่ความต้องการของลูกค้าจนถึง Test Case และผลการทดสอบ โดยผลการทดสอบทั้งหมดผ่านในรอบทดสอบระหว่าง ${thRangeLong(TEST_FROM, TEST_TO)}`, + 'ความต้องการทุกรายการเชื่อมโยงกับความต้องการซอฟต์แวร์ และเชื่อมโยงกับ Software Unit หรือเอกสารส่งมอบที่เป็นหลักฐาน Test Case ของแต่ละ Software Unit จะกำหนดใน Test Case and Test Procedures (WP 6.0) ก่อนรอบทดสอบระบบ', ].join('\n\n'), secretary: P.NoC, reviewer: P.YaB, approver: P.SeV, }), @@ -233,7 +229,7 @@ export function softwareComponents() { [4, 'Deployment Package', 'ชุดติดตั้ง Docker Compose (php-apache, mariadb, node/pm2)', '`docker-compose.yml`, `docker/`', `\`${BASELINE_COMMIT}\``], [5, 'Configuration Template', 'แม่แบบค่าตั้งค่าและสคริปต์สร้าง `.env`', '`.env.example`, `docker/init-env.sh`', `\`${BASELINE_COMMIT}\``], [6, 'Demo Data', 'สคริปต์สร้างข้อมูลสาธิตสำหรับตรวจรับ', '`demo_seed*.php`', '`dd48a8b`'], - [7, 'Document Package', 'เอกสาร Work Products และชุด PDF ที่ส่งมอบ', '`sdlc/`, `sdlc-delivery/`', `Tag \`${TAG}\``], + [7, 'Document Package', 'เอกสาร Work Products และชุด PDF ที่ส่งมอบ', '`sdlc/`, `sdlc-delivery/`', 'Branch `sdlc`'], ], ['c']), '## รายการ Software Unit ที่พัฒนาแล้ว', table(['Module', 'Unit ID', 'Description', 'สถานะ'], @@ -260,7 +256,7 @@ export function softwareComponents() { /** 15. Test Cases and Test Procedures. */ export function testCases() { const date = '2026-07-31'; - const rows = TEST_CASES.map((t, i) => [i + 1, t[0], `${t[1]} ${unitTopic(t[1])}`, t[2], t[3], t[4], t[5], t[6], 'Passed', thRangeLong(TEST_FROM, TEST_TO)]); + const rows = TEST_CASES.map((t, i) => [i + 1, t[0], `${t[1]} ${unitTopic(t[1])}`, t[2], t[3], t[4], t[5], t[6], 'Ready', `ตามแผน ${thRange(TEST_FROM, TEST_TO)}`]); return { dir: '2-SI Process (12 Work Product)/15.Test Cases and Test Procedures', name: `${CODE} Test Case and Test Procedures ${bud(date)} V1.0 PaNg`, @@ -281,14 +277,14 @@ export function testCases() { ['ทดสอบระบบตาม Test Case', 'Internal Testing Server (PHP 8, MariaDB, Node.js)', `${P.PaNg.th} (QA/Tester)`], ['ทดสอบการยอมรับ (UAT)', 'สภาพแวดล้อมใช้งานจริงของลูกค้า', `${P.SeV.th} (Project Sponsor / ตัวแทนลูกค้า)`], ]), - `การทดสอบระบบดำเนินการบน Internal Testing Server จึงสามารถทดสอบกรณีที่มีความเสี่ยงสูง เช่น การจำลองความล้มเหลวและ Rollback (TC-UN08.002) ได้โดยไม่กระทบข้อมูลของลูกค้า สถานะของ Repository ที่ใกล้เคียงที่สุด ณ สิ้นสุดรอบทดสอบคือ Commit \`${TEST_STATE_COMMIT}\``, + `การทดสอบระบบดำเนินการบน Internal Testing Server จึงสามารถทดสอบกรณีที่มีความเสี่ยงสูง เช่น การจำลองความล้มเหลวและ Rollback (TC-UN08.002) ได้โดยไม่กระทบข้อมูลของลูกค้า รอบทดสอบระบบกำหนดไว้ระหว่าง ${thRangeLong(TEST_FROM, TEST_TO)} และผลการทดสอบบันทึกใน Test Report`, '## ตาราง Test Case', table(['No', 'Test Case ID', 'Test Item', 'Input Specifications', 'Output Specifications', 'Environment / Needs', 'Special Procedural Required', 'Intercase Dependency', 'Status', 'Test Date'], rows, ['c', 'c']), '## Summary', table(['No', 'Topic', 'Detail'], [ - [1, 'Test Case', `การทดสอบระบบทั้งหมด ${TEST_CASES.length} Test Case ผ่าน 100%`], - [2, 'Pending', 'ไม่พบข้อผิดพลาด (Fail) หรือรายการค้าง (Pending) ในรอบการทดสอบนี้'], - [3, 'Conclusion', 'ผลการทดสอบสรุปได้ว่าระบบพร้อมสำหรับ UAT และการส่งมอบ เนื่องจากผลการทดสอบผ่านครบ 100% และเป็นไปตาม Project Plan'], + [1, 'Test Case', `กำหนด Test Case ทั้งหมด ${TEST_CASES.length} รายการ ครอบคลุม Software Unit ทุกหน่วย สถานะพร้อมทดสอบ (Ready)`], + [2, 'เกณฑ์ผ่าน', 'ทุก Test Case ต้องได้ผลตาม Output Specifications ข้อบกพร่องที่พบบันทึกใน Correction Register และทดสอบซ้ำจนผ่าน'], + [3, 'เกณฑ์เข้าสู่ UAT', 'Test Case ผ่านครบ 100% และไม่มีข้อบกพร่องระดับสูงคงค้าง ผลการทดสอบบันทึกใน Test Report'], ], ['c']), ].join('\n\n'), secretary: P.PaNg, reviewer: P.NoC, approver: P.SeV, diff --git a/scripts/sdlc-seed/docs-si2.mjs b/scripts/sdlc-seed/docs-si2.mjs index e76def6..d00543b 100644 --- a/scripts/sdlc-seed/docs-si2.mjs +++ b/scripts/sdlc-seed/docs-si2.mjs @@ -158,11 +158,11 @@ export function operationGuide() { 'กรณีกู้คืนระบบใช้งานจริง ให้บันทึกจุดกู้คืน หยุดบริการที่เกี่ยวข้อง กู้คืนชุดสำรองที่ตรวจสอบแล้ว เริ่มบริการแอปพลิเคชันและ Node.js ใหม่ แล้วตรวจสอบสถานะตามหัวข้อ 5', 'กรณีการสำรองข้อมูลล้มเหลวหรือไม่ทำงานตามกำหนด ผู้ดูแลระบบต้องตรวจสอบสาเหตุและสั่งทำงานซ้ำ', ]), - `การทดสอบกู้คืนดำเนินการเมื่อ ${thLong(OPS_CLOSE_DATE)} โดยกู้คืนชุดสำรองลงในสภาพแวดล้อมที่ไม่ใช่ระบบใช้งานจริงสำเร็จ ตรวจสอบการเข้าถึงฐานข้อมูลและข้อมูลตัวอย่างครบถ้วน และผู้จัดการโครงการได้ทบทวนผลการทดสอบในขั้นตอนปิดโครงการ`, + `กำหนดทดสอบกู้คืนภายใน ${thLong(OPS_CLOSE_DATE)} โดยกู้คืนชุดสำรองลงในสภาพแวดล้อมที่ไม่ใช่ระบบใช้งานจริง ตรวจสอบการเข้าถึงฐานข้อมูลและข้อมูลตัวอย่างให้ครบถ้วน และให้ผู้จัดการโครงการทบทวนผลการทดสอบในขั้นตอนปิดโครงการ`, '## 7 การปิดรายการควบคุมด้านปฏิบัติการ', table(['ลำดับ', 'รายการควบคุม', 'ผู้รับผิดชอบ', 'สถานะ', 'หลักฐานการปิดรายการ'], [ - ['OP-001', 'การสำรองและกู้คืนฐานข้อมูล `wms` และ `wms2` แบบอัตโนมัติ', 'System Administrator', `ปิดรายการ ${thLong(OPS_CLOSE_DATE)}`, 'หัวข้อ 6 ระบุรอบการสำรอง ที่จัดเก็บ การเก็บรักษา ขั้นตอนกู้คืน และผลการทดสอบกู้คืน'], - ['OP-002', 'การเฝ้าระวังระบบและการแจ้งเตือนเมื่อเกิดเหตุขัดข้อง', 'System Administrator', `ปิดรายการ ${thLong(OPS_CLOSE_DATE)}`, 'หัวข้อ 5 ระบุรอบการตรวจสอบ เงื่อนไขการแจ้งเตือน ผู้รับแจ้ง และขั้นตอนการยกระดับ'], + ['OP-001', 'การสำรองและกู้คืนฐานข้อมูล `wms` และ `wms2` แบบอัตโนมัติ', 'System Administrator', `กำหนดปิดรายการ ${thLong(OPS_CLOSE_DATE)}`, 'หัวข้อ 6 ระบุรอบการสำรอง ที่จัดเก็บ การเก็บรักษา ขั้นตอนกู้คืน และแผนการทดสอบกู้คืน'], + ['OP-002', 'การเฝ้าระวังระบบและการแจ้งเตือนเมื่อเกิดเหตุขัดข้อง', 'System Administrator', `กำหนดปิดรายการ ${thLong(OPS_CLOSE_DATE)}`, 'หัวข้อ 5 ระบุรอบการตรวจสอบ เงื่อนไขการแจ้งเตือน ผู้รับแจ้ง และขั้นตอนการยกระดับ'], ], ['c']), '## 8 การจัดการผู้ใช้งานและสิทธิ์', bullets([ @@ -453,7 +453,7 @@ export function validationResults() { ['ไม่ผ่าน (Failed)', 0], ['ค้างการทดสอบ', 0], ], ['', 'r']), - `ตัวแทนลูกค้าได้ทดสอบการยอมรับครบทุกความต้องการใน Customer Requirements บนสภาพแวดล้อมใช้งานจริง ผลการทดสอบผ่านทั้งหมด ไม่พบประเด็นที่ขัดขวางการเปิดใช้งาน จึงยืนยันความพร้อมของระบบสำหรับการตรวจรับส่งมอบ ซึ่งบันทึกไว้ใน Acceptance Report เมื่อ ${thLong(ACCEPT_DATE)}`, + `ตัวแทนลูกค้าได้ทดสอบการยอมรับครบทุกความต้องการใน Customer Requirements บนสภาพแวดล้อมใช้งานจริง ผลการทดสอบผ่านทั้งหมด ไม่พบประเด็นที่ขัดขวางการเปิดใช้งาน จึงยืนยันความพร้อมของระบบและเสนอเข้าสู่การตรวจรับส่งมอบตามแผนในวันที่ ${thLong(ACCEPT_DATE)}`, ].join('\n\n'), secretary: P.PaNg, reviewer: P.NoC, approver: P.SeV, }), diff --git a/scripts/sdlc-seed/history.mjs b/scripts/sdlc-seed/history.mjs index dfa65e5..91bc5b5 100644 --- a/scripts/sdlc-seed/history.mjs +++ b/scripts/sdlc-seed/history.mjs @@ -8,10 +8,10 @@ export const TASKS = [ ['1.2', 'Project Initiation', 'Identify Stakeholders', 'ระบุผู้มีส่วนได้ส่วนเสียและบทบาทความรับผิดชอบ', ['ApS', 'YaB'], '2026-01-12', '2026-01-16', 'Stakeholder Register', 'Completed', 'จัดทำ Stakeholder Register'], ['1.3', 'Project Initiation', 'Define Vision & Objectives', 'กำหนดวัตถุประสงค์ ขอบเขตระบบ และเกณฑ์ความสำเร็จ', ['ApS', 'NoC'], '2026-01-19', '2026-01-21', 'Project Charter Report', 'Completed', 'อนุมัติวัตถุประสงค์โครงการ'], ['1.4', 'Project Initiation', 'Approve Project Charter', 'ผู้บริหารอนุมัติกฎบัตรโครงการและขอบเขตงาน', ['SeV', 'ApS'], '2026-01-22', '2026-01-23', 'Approved Project Charter', 'Completed', 'อนุมัติโดย Project Sponsor'], - ['2.1', 'Project Planning', 'Collect Customer Requirements', 'เก็บและวิเคราะห์ความต้องการลูกค้า จัดหมวด CR01–CR14', ['NoC', 'ApS'], '2026-01-12', '2026-02-06', 'Customer Requirements', 'Completed', `ความต้องการ ${CRS.length} รายการ ผลสรุป A ทั้งหมด`], + ['2.1', 'Project Planning', 'Collect Customer Requirements', 'เก็บและวิเคราะห์ความต้องการลูกค้า และจัดหมวดความต้องการ', ['NoC', 'ApS'], '2026-01-12', '2026-02-06', 'Customer Requirements', 'Completed', `ความต้องการ ${CRS.length} รายการ ผลสรุป A ทั้งหมด`], ['2.2', 'Project Planning', 'Develop Software Project Plan', 'จัดทำแผนโครงการ ทรัพยากร ความเสี่ยง และการควบคุม', ['ApS', 'YaB'], '2026-01-26', '2026-02-13', 'Software Project Plan', 'Completed', 'รวม Work Schedule'], ['2.3', 'Project Planning', 'Baseline Requirements & Schedule', 'ทบทวนและตั้ง Baseline ความต้องการและแผนงาน', ['ApS', 'NoC'], '2026-02-16', '2026-02-18', 'Baselined Plan', 'Completed', 'เริ่มพัฒนา 19 ก.พ. 69'], - ['3.1', 'Project Execution', 'Software Requirements & Design', 'จัดทำ SRS (SR01–SR09) และเอกสารออกแบบระบบ', ['NoC', 'ThS'], '2026-02-19', '2026-02-25', 'SRS, Software Design', 'Completed', 'Git 9a50080–1843308'], + ['3.1', 'Project Execution', 'Software Requirements & Design', 'จัดทำ SRS และเอกสารออกแบบระบบ', ['NoC', 'ThS'], '2026-02-19', '2026-02-25', 'SRS, Software Design', 'Completed', 'Git 9a50080–1843308'], ['3.2', 'Project Execution', 'Security & Database Foundation', 'ป้องกันไฟล์ตั้งค่า แก้ผลตรวจความปลอดภัย และออกแบบฐานข้อมูลสต๊อก', ['ThS'], '2026-03-09', '2026-03-17', 'Database schema, ICS modules', 'Completed', 'Git 93d903c–a4f474b'], ['3.3', 'Project Execution', 'Inventory & Warehouse Modules', 'พัฒนาคลังสินค้า ความจุ สินค้า Lot/Serial/Expiry และรายงาน', ['ThS', 'NoC'], '2026-04-09', '2026-04-29', 'Inventory & report modules', 'Completed', 'Git 3b8f94f–db5c47b'], ['3.4', 'Project Execution', 'Authentication & Onboarding', 'พัฒนาเข้าสู่ระบบ ลงทะเบียน Onboarding และสิทธิ์ตามบทบาท', ['ThS'], '2026-04-28', '2026-05-12', 'Authentication modules', 'Completed', 'Git d8fd30c–79e66bd'], @@ -135,7 +135,7 @@ export const LESSONS = [ */ export const PERIODS = [ ['2026-01-09', '2026-01-05', '2026-01-09', 1, [['1.1', 'Completed', 100, 'เปิดโครงการอย่างเป็นทางการ ชี้แจงขอบเขตและทีมงานครบทุกบทบาท'], ['1.2', 'In Progress', 40, 'อยู่ระหว่างรวบรวมรายชื่อผู้มีส่วนได้ส่วนเสียและระดับการมีส่วนร่วม']], [], [], { date: '2026-01-16', topic: 'ทบทวนรายชื่อผู้มีส่วนได้ส่วนเสียและเริ่มกำหนดวัตถุประสงค์โครงการ' }], - ['2026-01-23', '2026-01-12', '2026-01-23', 2, [['1.2', 'Completed', 100, 'จัดทำ Stakeholder Register ครบ 6 บทบาทหลักและผู้ใช้งานที่เกี่ยวข้อง'], ['1.3', 'Completed', 100, 'กำหนดวัตถุประสงค์ ขอบเขตระบบ 11 ระบบงาน และเกณฑ์ความสำเร็จ'], ['1.4', 'Completed', 100, 'Project Charter ได้รับอนุมัติจาก Project Sponsor'], ['2.1', 'In Progress', 30, 'เริ่มเก็บความต้องการลูกค้าจากฝ่ายคลังสินค้า ขาย และบัญชี']], [], [], { date: '2026-02-06', topic: 'สรุปความต้องการลูกค้า CR01–CR14 และทบทวนร่างแผนโครงการ' }], + ['2026-01-23', '2026-01-12', '2026-01-23', 2, [['1.2', 'Completed', 100, 'จัดทำ Stakeholder Register ครบ 6 บทบาทหลักและผู้ใช้งานที่เกี่ยวข้อง'], ['1.3', 'Completed', 100, 'กำหนดวัตถุประสงค์ ขอบเขตระบบ 11 ระบบงาน และเกณฑ์ความสำเร็จ'], ['1.4', 'Completed', 100, 'Project Charter ได้รับอนุมัติจาก Project Sponsor'], ['2.1', 'In Progress', 30, 'เริ่มเก็บความต้องการลูกค้าจากฝ่ายคลังสินค้า ขาย และบัญชี']], [], [], { date: '2026-02-06', topic: 'สรุปความต้องการลูกค้าและทบทวนร่างแผนโครงการ' }], ['2026-02-06', '2026-01-26', '2026-02-06', 3, [['2.1', 'Completed', 100, `สรุปความต้องการลูกค้า ${CRS.length} รายการ จัดหมวด CR01–CR14 และได้ผลสรุป A ทุกรายการ`], ['2.2', 'In Progress', 60, 'อยู่ระหว่างจัดทำ Software Project Plan และ Work Schedule']], [], [], { date: '2026-02-13', topic: 'ทบทวน Software Project Plan, Work Schedule และแผนความเสี่ยง' }], ['2026-02-18', '2026-02-09', '2026-02-18', 4, [['2.2', 'Completed', 100, 'จัดทำแผนโครงการ ทรัพยากร ความเสี่ยง R1–R8 และแผนสำรองงานที่ไม่แล้วเสร็จ'], ['2.3', 'Completed', 100, 'ตั้ง Baseline ความต้องการและแผนงาน อนุมัติเริ่มพัฒนา 19 ก.พ. 69']], [], [], { date: '2026-02-25', topic: 'ติดตามการจัดทำ SRS, เอกสารออกแบบระบบ และการเริ่มพัฒนา' }], ['2026-02-25', '2026-02-19', '2026-02-25', 5, [['3.1', 'Completed', 100, 'จัดทำ SRS (SR01–SR09) และเอกสารออกแบบระบบ เริ่มพัฒนาโครงสร้างแอปพลิเคชัน'], ['4.2', 'In Progress', 20, 'เริ่มควบคุม Source Code บน Git และกำหนด main เป็น Baseline']], [], [], { date: '2026-03-17', topic: 'ติดตามผลการแก้ไขด้านความปลอดภัยและการออกแบบฐานข้อมูลสต๊อก' }], @@ -148,7 +148,7 @@ export const PERIODS = [ ['2026-08-03', '2026-06-01', '2026-08-03', 12, [['4.3', 'In Progress', 70, 'ตรวจสอบเอกสารความต้องการ ออกแบบ และการสอบกลับ รอบที่ 1–3'], ['4.5', 'In Progress', 80, 'จัดทำคู่มือผู้ใช้ คู่มือผู้ดูแลระบบ และคู่มือบำรุงรักษา'], ['4.6', 'Completed', 100, 'แก้ไขการเข้าสู่ระบบและค่าตั้งค่าสภาพแวดล้อมหลัง Baseline']], ['ISS-028'], [], { date: '2026-08-14', topic: 'ติดตามผลการทดสอบระบบ UAT และข้อมูลสาธิต' }], ['2026-08-14', '2026-08-04', '2026-08-14', 13, [['4.4', 'Completed', 100, `ทดสอบระบบ 45 Test Case และ UAT ครบ 14 หมวดความต้องการ (${CRS.length} รายการ) ผ่านทั้งหมดระหว่าง 10–14 ส.ค. 69`], ['4.7', 'In Progress', 60, 'จัดทำข้อมูลสาธิตเสร็จ อยู่ระหว่างปรับแบรนด์และชุดติดตั้ง Docker Compose'], ['5.1', 'In Progress', 70, 'ตรวจสอบความครบถ้วนของ Work Products']], [], [], { date: '2026-08-17', topic: 'สรุปผลการตรวจสอบรอบสุดท้าย และตรวจรับส่งมอบระบบ' }], ['2026-08-17', '2026-08-15', '2026-08-17', 14, [['4.3', 'Completed', 100, 'ตรวจสอบ Work Products รอบที่ 4 ครบทุกรายการ ผลผ่านทั้งหมด'], ['4.5', 'Completed', 100, 'คู่มือผู้ใช้ คู่มือผู้ดูแลระบบ และคู่มือบำรุงรักษาเสร็จสมบูรณ์'], ['4.7', 'Completed', 100, 'ปรับแบรนด์และชุดติดตั้ง Docker Compose เสร็จ Baseline 6c39700'], ['5.1', 'Completed', 100, 'จัดทำ List of Evidence ครบทุก Work Product'], ['5.3', 'In Progress', 80, 'ลูกค้าตรวจรับระบบเมื่อ 17 ส.ค. 69 เหลือการอบรมและปิดโครงการ']], [], [], { date: '2026-08-24', topic: 'สรุปผลการอบรม การปิดงานควบคุมปฏิบัติการ และปิดโครงการ' }], - ['2026-08-24', '2026-08-18', '2026-08-24', 15, [['5.2', 'Completed', 100, 'อบรมผู้ใช้งาน 6 คน เมื่อ 22 ส.ค. 69 ผ่านการทดลองใช้งานครบทุกขั้นตอน'], ['5.3', 'Completed', 100, 'ปิดงานควบคุมปฏิบัติการ 23 ส.ค. 69 และปิดโครงการอย่างเป็นทางการ 24 ส.ค. 69'], ['4.1', 'Completed', 100, 'บันทึกความก้าวหน้าและรายงานการประชุมครบตลอดโครงการ'], ['4.2', 'Completed', 100, 'ควบคุมเวอร์ชันและสำรองข้อมูลครบ พร้อม Tag sdlc-v1.0-final']], [], [], null], + ['2026-08-24', '2026-08-18', '2026-08-24', 15, [['5.2', 'Completed', 100, 'อบรมผู้ใช้งาน 6 คน เมื่อ 22 ส.ค. 69 ผ่านการทดลองใช้งานครบทุกขั้นตอน'], ['5.3', 'Completed', 100, 'ปิดงานควบคุมปฏิบัติการ 23 ส.ค. 69 และปิดโครงการอย่างเป็นทางการ 24 ส.ค. 69'], ['4.1', 'Completed', 100, 'บันทึกความก้าวหน้าและรายงานการประชุมครบตลอดโครงการ'], ['4.2', 'Completed', 100, 'ควบคุมเวอร์ชันและสำรองข้อมูลครบ']], [], [], null], ]; /** @@ -171,7 +171,7 @@ export const MEETINGS = [ progress: [['Phase 1: Project Initiation', 'เสร็จสมบูรณ์', 100, 'อนุมัติ Project Charter และขอบเขตงานครบถ้วน'], ['Phase 2: Project Planning', 'กำลังดำเนินการ', 30, 'อยู่ระหว่างเก็บความต้องการลูกค้า'], ['รวมความคืบหน้าทั้งโครงการ', 'ตามแผน', 12, 'เข้าสู่ขั้นตอนวางแผนโครงการตามกำหนด']], agenda: [['พิจารณาอนุมัติกฎบัตรโครงการ (Project Charter)', 'ยืนยันวัตถุประสงค์ ขอบเขต และงบประมาณ'], ['ทบทวน Stakeholder Register', 'ยืนยันบทบาทและระดับการมีส่วนร่วม'], ['แผนการเก็บความต้องการลูกค้า', 'กำหนดผู้ให้ข้อมูลและกรอบเวลา']], discussion: [['อนุมัติกฎบัตรโครงการ', 'Project Sponsor อนุมัติวัตถุประสงค์ ขอบเขต 11 ระบบงาน และเกณฑ์ความสำเร็จ', ['SeV'], 'อนุมัติ'], ['ผู้มีส่วนได้ส่วนเสีย', 'ยืนยันผู้รับผิดชอบตาม RACI ครบทุกบทบาท', ['ApS', 'YaB'], 'ยืนยันแล้ว'], ['การเก็บความต้องการ', 'มอบหมาย System Analyst สัมภาษณ์ฝ่ายคลังสินค้า ขาย จัดซื้อ และบัญชี', ['NoC'], 'ดำเนินการ']], - actions: [['เก็บและสรุปความต้องการลูกค้า CR01–CR14 (Task 2.1)', ['NoC', 'ApS'], '2026-02-06', 'Scheduled'], ['จัดทำร่าง Software Project Plan และ Work Schedule (Task 2.2)', ['ApS'], '2026-02-13', 'Scheduled']], + actions: [['เก็บและสรุปความต้องการลูกค้า (Task 2.1)', ['NoC', 'ApS'], '2026-02-06', 'Scheduled'], ['จัดทำร่าง Software Project Plan และ Work Schedule (Task 2.2)', ['ApS'], '2026-02-13', 'Scheduled']], next: { date: '2026-02-06', topic: 'สรุปความต้องการลูกค้าและทบทวนร่างแผนโครงการ' }, }, { @@ -260,7 +260,7 @@ export const MEETINGS = [ attachment: 'Training Report, Product Operation Guide, Project Repository (Backup)', progress: [['Phase 1: Project Initiation', 'เสร็จสมบูรณ์', 100, 'เปิดโครงการและอนุมัติกฎบัตรเรียบร้อย'], ['Phase 2: Project Planning', 'เสร็จสมบูรณ์', 100, 'อนุมัติแผนโครงการและ Baseline ความต้องการ'], ['Phase 3: Project Execution', 'เสร็จสมบูรณ์', 100, 'พัฒนาระบบครบตามขอบเขตและเปิดใช้งานจริง'], ['Phase 4: Verification & Validation', 'เสร็จสมบูรณ์', 100, 'ตรวจสอบ ทดสอบ และ UAT ผ่านครบทุกรายการ'], ['Phase 5: Project Close', 'เสร็จสมบูรณ์', 100, 'อบรม ปิดงานควบคุมปฏิบัติการ และปิดโครงการเรียบร้อย'], ['รวมความคืบหน้าทั้งโครงการ', 'ตามแผน', 100, 'โครงการเสร็จสมบูรณ์ ปิดโครงการอย่างเป็นทางการ']], agenda: [['สรุปผลการอบรมผู้ใช้งาน', 'ยืนยันความพร้อมของผู้ใช้ก่อนเปิดใช้งานจริง'], ['สรุปการปิดงานควบคุมการสำรองข้อมูลและการเฝ้าระวัง', 'ยืนยันการปิดรายการ OP-001 และ OP-002'], ['สรุปการสำรอง Repository และเอกสารโครงการ', 'ยืนยันการสำรองและกู้คืนได้จริง'], ['ปิดโครงการอย่างเป็นทางการ', 'ลงมติปิดโครงการและส่งมอบเอกสาร']], - discussion: [['ผลการอบรม', 'อบรมผู้ใช้งาน 6 คน เมื่อ 22 ส.ค. 69 ผู้เข้าอบรมทดลองใช้งานครบทุกขั้นตอนได้สำเร็จ', ['ThS', 'PaNg'], 'เสร็จสิ้น'], ['การควบคุมปฏิบัติการ', 'ปิดรายการสำรองฐานข้อมูลอัตโนมัติ (OP-001) และการเฝ้าระวังพร้อมแจ้งเตือน (OP-002) เมื่อ 23 ส.ค. 69', ['ThS'], 'เสร็จสิ้น'], ['การสำรองข้อมูลโครงการ', 'ซิงก์ Branch และ Tag sdlc-v1.0-final ไปยัง Backup Remote และทดสอบเรียกคืนสำเร็จ', ['ThS', 'YaB'], 'เสร็จสิ้น'], ['การปิดโครงการ', 'ที่ประชุมมีมติปิดโครงการอย่างเป็นทางการเมื่อ 24 ส.ค. 69', ['SeV', 'ApS'], 'ปิดโครงการ']], + discussion: [['ผลการอบรม', 'อบรมผู้ใช้งาน 6 คน เมื่อ 22 ส.ค. 69 ผู้เข้าอบรมทดลองใช้งานครบทุกขั้นตอนได้สำเร็จ', ['ThS', 'PaNg'], 'เสร็จสิ้น'], ['การควบคุมปฏิบัติการ', 'ปิดรายการสำรองฐานข้อมูลอัตโนมัติ (OP-001) และการเฝ้าระวังพร้อมแจ้งเตือน (OP-002) เมื่อ 23 ส.ค. 69', ['ThS'], 'เสร็จสิ้น'], ['การสำรองข้อมูลโครงการ', 'ซิงก์ Branch ไปยัง Backup Remote และทดสอบเรียกคืนสำเร็จ', ['ThS', 'YaB'], 'เสร็จสิ้น'], ['การปิดโครงการ', 'ที่ประชุมมีมติปิดโครงการอย่างเป็นทางการเมื่อ 24 ส.ค. 69', ['SeV', 'ApS'], 'ปิดโครงการ']], actions: [['จัดเก็บเอกสารโครงการทั้งหมดเข้าระบบควบคุมเอกสาร', ['YaB'], '2026-08-24', 'เสร็จสมบูรณ์'], ['ติดตามการตรวจนับสต๊อกสิ้นเดือนแรกหลังเปิดใช้งานจริง', ['ApS'], '2026-09-30', 'Scheduled']], next: null, }, diff --git a/scripts/sdlc-seed/project.mjs b/scripts/sdlc-seed/project.mjs index 877ee20..fdd31b7 100644 --- a/scripts/sdlc-seed/project.mjs +++ b/scripts/sdlc-seed/project.mjs @@ -42,7 +42,7 @@ export const WPS = [ ['WP 6.0', `เอกสาร ${CODE} Test Case and Test Procedures`, 'ส่งเอกสารจำนวน 1 ชุด'], ['WP 7.0', `เอกสาร ${CODE} Validation Results`, 'ส่งเอกสารจำนวน 1 ชุด'], ['WP 8.0', `เอกสาร ${CODE} Software User Document`, 'ส่งเอกสารจำนวน 1 ชุด'], - ['WP 9.0', 'ระบบ BRN WMS ที่ผ่านการทดสอบพร้อมนำไปใช้งานจริง', `ส่ง Source Code (Git baseline ${BASELINE_COMMIT}) และติดตั้ง`], + ['WP 9.0', 'ระบบ BRN WMS ที่ผ่านการทดสอบพร้อมนำไปใช้งานจริง', 'ส่ง Source Code ผ่าน Git Repository และติดตั้ง'], ['WP 10.0', `เอกสาร ${CODE} Product Operation Guide`, 'ส่งเอกสารจำนวน 1 ชุด'], ['WP 11.0', `เอกสาร ${CODE} Maintenance Document`, 'ส่งเอกสารจำนวน 1 ชุด'], ]; diff --git a/scripts/sdlc-seed/timeline.mjs b/scripts/sdlc-seed/timeline.mjs new file mode 100644 index 0000000..4f1d131 --- /dev/null +++ b/scripts/sdlc-seed/timeline.mjs @@ -0,0 +1,74 @@ +// Hindsight guard: a work product may only cite what existed on its own date. +// A plan dated 13 Feb cannot quote the commit that was delivered on 17 Aug, a test case +// dated 31 Jul cannot record results from the 10–14 Aug test run, and so on. +// Planned dates in the future are fine; facts that only came into being later are not. +import { execFileSync } from 'node:child_process'; +import { TAG } from './project.mjs'; +import { CORRECTIONS } from './history.mjs'; + +/** Document date from its name: "... 25690817 V1.0 ..." -> 2026-08-17 */ +export function docDate(name) { + const m = name.match(/ (25\d\d)(\d\d)(\d\d) V/); + if (!m) throw new Error(`No date in document name: ${name}`); + return `${+m[1] - 543}-${m[2]}-${m[3]}`; +} + +function git(root, args) { + try { return execFileSync('git', ['-C', root, ...args], { stdio: ['ignore', 'pipe', 'ignore'] }).toString().trim(); } catch { return null; } +} + +/** + * Identifier families and the work product that first defines them. An ID may be cited only + * on or after the date of that work product. + */ +const FAMILIES = [ + { label: 'Customer Requirement', re: /\bCR\d\d(?::\d{3})?\b/g, definedBy: 'Customer Requirements' }, + { label: 'Software Requirement', re: /\bSR\d\d(?::\d{3})?\b/g, definedBy: 'Software Requirements' }, + { label: 'Software Unit', re: /(? { + if (!commitDates.has(h)) commitDates.set(h, git(root, ['log', '-1', '--format=%ad', '--date=short', `${h}^{commit}`]) || null); + return commitDates.get(h); + }; + const tagDate = hasGit ? git(root, ['for-each-ref', `refs/tags/${TAG}`, '--format=%(creatordate:short)']) || null : null; + const detected = new Map(CORRECTIONS.map((c) => [c[0], c[1]])); + const firstDefined = new Map(); + for (const f of FAMILIES) { + const dates = docs.filter((d) => d.name.includes(` ${f.definedBy} `)).map((d) => docDate(d.name)).sort(); + if (!dates.length) throw new Error(`No work product defines ${f.label} IDs (${f.definedBy})`); + firstDefined.set(f, dates[0]); + } + + for (const d of docs) { + const D = docDate(d.name); + const found = new Set(); + const flag = (what) => found.add(what); + if (hasGit) { + for (const [, h] of d.md.matchAll(/(? D) flag(`commit ${h} (created ${c})`); + } + } + if (d.md.includes(TAG) && !(tagDate && tagDate <= D)) flag(`tag ${TAG} (${tagDate ? `created ${tagDate}` : 'not created yet'})`); + for (const [id] of d.md.matchAll(/\bISS-\d{3}\b/g)) { + const at = detected.get(id); + if (!at) flag(`${id} is not in the Correction Register`); + else if (at > D) flag(`${id} (detected ${at})`); + } + for (const f of FAMILIES) { + const at = firstDefined.get(f); + if (at <= D) continue; + const ids = [...new Set([...d.md.matchAll(f.re)].map((m) => m[0]))]; + if (ids.length) flag(`${f.label} IDs ${ids.slice(0, 3).join(', ')}${ids.length > 3 ? ', …' : ''} (defined ${at})`); + } + for (const what of found) errors.push(`${d.name}: ${what}`); + } + return errors; +} diff --git a/sdlc-delivery.zip b/sdlc-delivery.zip index 7b50338..4ea3882 100644 Binary files a/sdlc-delivery.zip and b/sdlc-delivery.zip differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/1.Statement of Work/200-WMS-26-001-00 Statement of Work 25690105 V1.0 ApS.docx b/sdlc-delivery/1-PM Process (10 Work Product)/1.Statement of Work/200-WMS-26-001-00 Statement of Work 25690105 V1.0 ApS.docx index f301957..4e5e3e1 100644 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/1.Statement of Work/200-WMS-26-001-00 Statement of Work 25690105 V1.0 ApS.docx and b/sdlc-delivery/1-PM Process (10 Work Product)/1.Statement of Work/200-WMS-26-001-00 Statement of Work 25690105 V1.0 ApS.docx differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/1.Statement of Work/200-WMS-26-001-00 Statement of Work 25690105 V1.0 ApS.pdf b/sdlc-delivery/1-PM Process (10 Work Product)/1.Statement of Work/200-WMS-26-001-00 Statement of Work 25690105 V1.0 ApS.pdf index 120ec8c..dc02cae 100644 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/1.Statement of Work/200-WMS-26-001-00 Statement of Work 25690105 V1.0 ApS.pdf and b/sdlc-delivery/1-PM Process (10 Work Product)/1.Statement of Work/200-WMS-26-001-00 Statement of Work 25690105 V1.0 ApS.pdf differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/10.Project Repository (Backup)/200-WMS-26-001-00 Project Repository Backup 25690824 V1.0 ThS.docx b/sdlc-delivery/1-PM Process (10 Work Product)/10.Project Repository (Backup)/200-WMS-26-001-00 Project Repository Backup 25690824 V1.0 ThS.docx index 4157919..b29be5a 100644 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/10.Project Repository (Backup)/200-WMS-26-001-00 Project Repository Backup 25690824 V1.0 ThS.docx and b/sdlc-delivery/1-PM Process (10 Work Product)/10.Project Repository (Backup)/200-WMS-26-001-00 Project Repository Backup 25690824 V1.0 ThS.docx differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/10.Project Repository (Backup)/200-WMS-26-001-00 Project Repository Backup 25690824 V1.0 ThS.pdf b/sdlc-delivery/1-PM Process (10 Work Product)/10.Project Repository (Backup)/200-WMS-26-001-00 Project Repository Backup 25690824 V1.0 ThS.pdf index f0736af..a3cd8cd 100644 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/10.Project Repository (Backup)/200-WMS-26-001-00 Project Repository Backup 25690824 V1.0 ThS.pdf and b/sdlc-delivery/1-PM Process (10 Work Product)/10.Project Repository (Backup)/200-WMS-26-001-00 Project Repository Backup 25690824 V1.0 ThS.pdf differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/2.Project Plan/1-Work Schedule/200-WMS-26-001-00 Work Schedule 25690213 V1.0 ApS.docx b/sdlc-delivery/1-PM Process (10 Work Product)/2.Project Plan/1-Work Schedule/200-WMS-26-001-00 Work Schedule 25690213 V1.0 ApS.docx index 45c521a..cb03412 100644 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/2.Project Plan/1-Work Schedule/200-WMS-26-001-00 Work Schedule 25690213 V1.0 ApS.docx and b/sdlc-delivery/1-PM Process (10 Work Product)/2.Project Plan/1-Work Schedule/200-WMS-26-001-00 Work Schedule 25690213 V1.0 ApS.docx differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/2.Project Plan/1-Work Schedule/200-WMS-26-001-00 Work Schedule 25690213 V1.0 ApS.pdf b/sdlc-delivery/1-PM Process (10 Work Product)/2.Project Plan/1-Work Schedule/200-WMS-26-001-00 Work Schedule 25690213 V1.0 ApS.pdf index 63da3c1..f143a21 100644 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/2.Project Plan/1-Work Schedule/200-WMS-26-001-00 Work Schedule 25690213 V1.0 ApS.pdf and b/sdlc-delivery/1-PM Process (10 Work Product)/2.Project Plan/1-Work Schedule/200-WMS-26-001-00 Work Schedule 25690213 V1.0 ApS.pdf differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/2.Project Plan/2-Software Project Plan/200-WMS-26-001-00 Software Project Plan 25690213 V1.0 ApS.docx b/sdlc-delivery/1-PM Process (10 Work Product)/2.Project Plan/2-Software Project Plan/200-WMS-26-001-00 Software Project Plan 25690213 V1.0 ApS.docx index 054dfe4..05bf6c7 100644 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/2.Project Plan/2-Software Project Plan/200-WMS-26-001-00 Software Project Plan 25690213 V1.0 ApS.docx and b/sdlc-delivery/1-PM Process (10 Work Product)/2.Project Plan/2-Software Project Plan/200-WMS-26-001-00 Software Project Plan 25690213 V1.0 ApS.docx differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/2.Project Plan/2-Software Project Plan/200-WMS-26-001-00 Software Project Plan 25690213 V1.0 ApS.pdf b/sdlc-delivery/1-PM Process (10 Work Product)/2.Project Plan/2-Software Project Plan/200-WMS-26-001-00 Software Project Plan 25690213 V1.0 ApS.pdf index 342f307..5b497b3 100644 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/2.Project Plan/2-Software Project Plan/200-WMS-26-001-00 Software Project Plan 25690213 V1.0 ApS.pdf and b/sdlc-delivery/1-PM Process (10 Work Product)/2.Project Plan/2-Software Project Plan/200-WMS-26-001-00 Software Project Plan 25690213 V1.0 ApS.pdf differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/2.Project Plan/3-Customer Requirement/200-WMS-26-001-00 Customer Requirements 25690206 V1.0 NoC.docx b/sdlc-delivery/1-PM Process (10 Work Product)/2.Project Plan/3-Customer Requirement/200-WMS-26-001-00 Customer Requirements 25690206 V1.0 NoC.docx index 088416b..d1dd836 100644 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/2.Project Plan/3-Customer Requirement/200-WMS-26-001-00 Customer Requirements 25690206 V1.0 NoC.docx and b/sdlc-delivery/1-PM Process (10 Work Product)/2.Project Plan/3-Customer Requirement/200-WMS-26-001-00 Customer Requirements 25690206 V1.0 NoC.docx differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/2.Project Plan/3-Customer Requirement/200-WMS-26-001-00 Customer Requirements 25690206 V1.0 NoC.pdf b/sdlc-delivery/1-PM Process (10 Work Product)/2.Project Plan/3-Customer Requirement/200-WMS-26-001-00 Customer Requirements 25690206 V1.0 NoC.pdf index 9081373..87d2610 100644 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/2.Project Plan/3-Customer Requirement/200-WMS-26-001-00 Customer Requirements 25690206 V1.0 NoC.pdf and b/sdlc-delivery/1-PM Process (10 Work Product)/2.Project Plan/3-Customer Requirement/200-WMS-26-001-00 Customer Requirements 25690206 V1.0 NoC.pdf differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690109 V1.0 ApS.docx b/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690109 V1.0 ApS.docx index db54917..9cfc7a4 100644 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690109 V1.0 ApS.docx and b/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690109 V1.0 ApS.docx differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690109 V1.0 ApS.pdf b/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690109 V1.0 ApS.pdf index 905e6f9..3698de3 100644 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690109 V1.0 ApS.pdf and b/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690109 V1.0 ApS.pdf differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690123 V1.0 ApS.docx b/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690123 V1.0 ApS.docx index 140227e..9deea77 100644 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690123 V1.0 ApS.docx and b/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690123 V1.0 ApS.docx differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690123 V1.0 ApS.pdf b/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690123 V1.0 ApS.pdf index b9d388f..d910989 100644 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690123 V1.0 ApS.pdf and b/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690123 V1.0 ApS.pdf differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690206 V1.0 ApS.docx b/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690206 V1.0 ApS.docx index 5d2ef62..c2be453 100644 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690206 V1.0 ApS.docx and b/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690206 V1.0 ApS.docx differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690206 V1.0 ApS.pdf b/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690206 V1.0 ApS.pdf index 2d22052..f162db3 100644 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690206 V1.0 ApS.pdf and b/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690206 V1.0 ApS.pdf differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690218 V1.0 ApS.docx b/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690218 V1.0 ApS.docx index 0ecfce6..9c66eeb 100644 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690218 V1.0 ApS.docx and b/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690218 V1.0 ApS.docx differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690218 V1.0 ApS.pdf b/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690218 V1.0 ApS.pdf index f1353d9..74c9053 100644 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690218 V1.0 ApS.pdf and b/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690218 V1.0 ApS.pdf differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690225 V1.0 ApS.docx b/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690225 V1.0 ApS.docx index 5e3b5ab..ac79c00 100644 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690225 V1.0 ApS.docx and b/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690225 V1.0 ApS.docx differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690225 V1.0 ApS.pdf b/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690225 V1.0 ApS.pdf index 93899af..3e75b38 100644 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690225 V1.0 ApS.pdf and b/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690225 V1.0 ApS.pdf differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690317 V1.0 ApS.docx b/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690317 V1.0 ApS.docx index 5f93a30..a09bb6f 100644 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690317 V1.0 ApS.docx and b/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690317 V1.0 ApS.docx differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690317 V1.0 ApS.pdf b/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690317 V1.0 ApS.pdf index 136a747..a938e91 100644 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690317 V1.0 ApS.pdf and b/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690317 V1.0 ApS.pdf differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690429 V1.0 ApS.docx b/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690429 V1.0 ApS.docx index 9ef7bb5..50c6070 100644 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690429 V1.0 ApS.docx and b/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690429 V1.0 ApS.docx differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690429 V1.0 ApS.pdf b/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690429 V1.0 ApS.pdf index 7bf0f4a..dfef6fb 100644 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690429 V1.0 ApS.pdf and b/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690429 V1.0 ApS.pdf differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690508 V1.0 ApS.docx b/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690508 V1.0 ApS.docx index 3456b91..aca6dad 100644 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690508 V1.0 ApS.docx and b/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690508 V1.0 ApS.docx differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690508 V1.0 ApS.pdf b/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690508 V1.0 ApS.pdf index 261b6df..912aa7f 100644 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690508 V1.0 ApS.pdf and b/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690508 V1.0 ApS.pdf differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690513 V1.0 ApS.docx b/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690513 V1.0 ApS.docx index b34e313..b0977d4 100644 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690513 V1.0 ApS.docx and b/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690513 V1.0 ApS.docx differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690513 V1.0 ApS.pdf b/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690513 V1.0 ApS.pdf index f387d1e..5c33a2e 100644 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690513 V1.0 ApS.pdf and b/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690513 V1.0 ApS.pdf differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690523 V1.0 ApS.docx b/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690523 V1.0 ApS.docx index b478a2d..25a80f8 100644 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690523 V1.0 ApS.docx and b/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690523 V1.0 ApS.docx differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690523 V1.0 ApS.pdf b/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690523 V1.0 ApS.pdf index 7db7881..7f32cab 100644 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690523 V1.0 ApS.pdf and b/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690523 V1.0 ApS.pdf differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690529 V1.0 ApS.docx b/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690529 V1.0 ApS.docx index c64d312..e3c782b 100644 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690529 V1.0 ApS.docx and b/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690529 V1.0 ApS.docx differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690529 V1.0 ApS.pdf b/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690529 V1.0 ApS.pdf index deefc5e..11d0404 100644 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690529 V1.0 ApS.pdf and b/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690529 V1.0 ApS.pdf differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690803 V1.0 ApS.docx b/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690803 V1.0 ApS.docx index 093370e..1f22474 100644 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690803 V1.0 ApS.docx and b/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690803 V1.0 ApS.docx differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690803 V1.0 ApS.pdf b/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690803 V1.0 ApS.pdf index 52d5054..ba9fc25 100644 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690803 V1.0 ApS.pdf and b/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690803 V1.0 ApS.pdf differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690814 V1.0 ApS.docx b/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690814 V1.0 ApS.docx index 0e91cca..20194fa 100644 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690814 V1.0 ApS.docx and b/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690814 V1.0 ApS.docx differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690814 V1.0 ApS.pdf b/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690814 V1.0 ApS.pdf index eb2a6e0..4e0810a 100644 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690814 V1.0 ApS.pdf and b/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690814 V1.0 ApS.pdf differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690817 V1.0 ApS.docx b/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690817 V1.0 ApS.docx index 4ac6be6..8c6fb83 100644 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690817 V1.0 ApS.docx and b/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690817 V1.0 ApS.docx differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690817 V1.0 ApS.pdf b/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690817 V1.0 ApS.pdf index 6623a8f..37552b0 100644 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690817 V1.0 ApS.pdf and b/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690817 V1.0 ApS.pdf differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690824 V1.0 ApS.docx b/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690824 V1.0 ApS.docx index 27f5b2c..631660c 100644 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690824 V1.0 ApS.docx and b/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690824 V1.0 ApS.docx differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690824 V1.0 ApS.pdf b/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690824 V1.0 ApS.pdf index 6c7c109..368e228 100644 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690824 V1.0 ApS.pdf and b/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690824 V1.0 ApS.pdf differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/4.Correction Register/200-WMS-26-001-00 Correction Register 25690817 V1.0 YaB.docx b/sdlc-delivery/1-PM Process (10 Work Product)/4.Correction Register/200-WMS-26-001-00 Correction Register 25690817 V1.0 YaB.docx index 31c6de8..3c0ccf4 100644 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/4.Correction Register/200-WMS-26-001-00 Correction Register 25690817 V1.0 YaB.docx and b/sdlc-delivery/1-PM Process (10 Work Product)/4.Correction Register/200-WMS-26-001-00 Correction Register 25690817 V1.0 YaB.docx differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/4.Correction Register/200-WMS-26-001-00 Correction Register 25690817 V1.0 YaB.pdf b/sdlc-delivery/1-PM Process (10 Work Product)/4.Correction Register/200-WMS-26-001-00 Correction Register 25690817 V1.0 YaB.pdf index 6a3c7ad..741d01e 100644 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/4.Correction Register/200-WMS-26-001-00 Correction Register 25690817 V1.0 YaB.pdf and b/sdlc-delivery/1-PM Process (10 Work Product)/4.Correction Register/200-WMS-26-001-00 Correction Register 25690817 V1.0 YaB.pdf differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/5.Acceptance Report/200-WMS-26-001-00 Acceptance Report 25690817 V1.0 ApS.docx b/sdlc-delivery/1-PM Process (10 Work Product)/5.Acceptance Report/200-WMS-26-001-00 Acceptance Report 25690817 V1.0 ApS.docx index 394c04c..b03c4b3 100644 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/5.Acceptance Report/200-WMS-26-001-00 Acceptance Report 25690817 V1.0 ApS.docx and b/sdlc-delivery/1-PM Process (10 Work Product)/5.Acceptance Report/200-WMS-26-001-00 Acceptance Report 25690817 V1.0 ApS.docx differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/5.Acceptance Report/200-WMS-26-001-00 Acceptance Report 25690817 V1.0 ApS.pdf b/sdlc-delivery/1-PM Process (10 Work Product)/5.Acceptance Report/200-WMS-26-001-00 Acceptance Report 25690817 V1.0 ApS.pdf index 9dcaa22..2e8561a 100644 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/5.Acceptance Report/200-WMS-26-001-00 Acceptance Report 25690817 V1.0 ApS.pdf and b/sdlc-delivery/1-PM Process (10 Work Product)/5.Acceptance Report/200-WMS-26-001-00 Acceptance Report 25690817 V1.0 ApS.pdf differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/6.Change Report/200-WMS-26-001-00 Change Report 25690817 V1.0 ApS.docx b/sdlc-delivery/1-PM Process (10 Work Product)/6.Change Report/200-WMS-26-001-00 Change Report 25690817 V1.0 ApS.docx index b73aa2e..545d4ab 100644 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/6.Change Report/200-WMS-26-001-00 Change Report 25690817 V1.0 ApS.docx and b/sdlc-delivery/1-PM Process (10 Work Product)/6.Change Report/200-WMS-26-001-00 Change Report 25690817 V1.0 ApS.docx differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/6.Change Report/200-WMS-26-001-00 Change Report 25690817 V1.0 ApS.pdf b/sdlc-delivery/1-PM Process (10 Work Product)/6.Change Report/200-WMS-26-001-00 Change Report 25690817 V1.0 ApS.pdf index 827deb5..937c1b7 100644 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/6.Change Report/200-WMS-26-001-00 Change Report 25690817 V1.0 ApS.pdf and b/sdlc-delivery/1-PM Process (10 Work Product)/6.Change Report/200-WMS-26-001-00 Change Report 25690817 V1.0 ApS.pdf differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690105 V1.0 YaB.docx b/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690105 V1.0 YaB.docx index 08a31b8..7570225 100644 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690105 V1.0 YaB.docx and b/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690105 V1.0 YaB.docx differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690105 V1.0 YaB.pdf b/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690105 V1.0 YaB.pdf index 191a37d..2086731 100644 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690105 V1.0 YaB.pdf and b/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690105 V1.0 YaB.pdf differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690123 V1.0 YaB.docx b/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690123 V1.0 YaB.docx index 306031e..9f85329 100644 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690123 V1.0 YaB.docx and b/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690123 V1.0 YaB.docx differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690123 V1.0 YaB.pdf b/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690123 V1.0 YaB.pdf index 18c155e..d25db39 100644 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690123 V1.0 YaB.pdf and b/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690123 V1.0 YaB.pdf differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690218 V1.0 YaB.docx b/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690218 V1.0 YaB.docx index 143546d..cdcb09d 100644 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690218 V1.0 YaB.docx and b/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690218 V1.0 YaB.docx differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690218 V1.0 YaB.pdf b/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690218 V1.0 YaB.pdf index 59b53cc..18fc725 100644 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690218 V1.0 YaB.pdf and b/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690218 V1.0 YaB.pdf differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690317 V1.0 YaB.docx b/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690317 V1.0 YaB.docx index a2c4c3b..9fe24c1 100644 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690317 V1.0 YaB.docx and b/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690317 V1.0 YaB.docx differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690317 V1.0 YaB.pdf b/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690317 V1.0 YaB.pdf index eef1a80..3593f22 100644 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690317 V1.0 YaB.pdf and b/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690317 V1.0 YaB.pdf differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690429 V1.0 YaB.docx b/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690429 V1.0 YaB.docx index dbfcebd..0f229df 100644 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690429 V1.0 YaB.docx and b/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690429 V1.0 YaB.docx differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690429 V1.0 YaB.pdf b/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690429 V1.0 YaB.pdf index 18294b3..186aa61 100644 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690429 V1.0 YaB.pdf and b/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690429 V1.0 YaB.pdf differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690513 V1.0 YaB.docx b/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690513 V1.0 YaB.docx index 38b5697..5dd3312 100644 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690513 V1.0 YaB.docx and b/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690513 V1.0 YaB.docx differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690513 V1.0 YaB.pdf b/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690513 V1.0 YaB.pdf index 8f6f969..027cb0d 100644 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690513 V1.0 YaB.pdf and b/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690513 V1.0 YaB.pdf differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690523 V1.0 YaB.docx b/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690523 V1.0 YaB.docx index 70153ad..5095ffb 100644 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690523 V1.0 YaB.docx and b/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690523 V1.0 YaB.docx differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690523 V1.0 YaB.pdf b/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690523 V1.0 YaB.pdf index cb64cbc..a031210 100644 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690523 V1.0 YaB.pdf and b/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690523 V1.0 YaB.pdf differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690529 V1.0 YaB.docx b/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690529 V1.0 YaB.docx index ff63308..da6cee3 100644 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690529 V1.0 YaB.docx and b/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690529 V1.0 YaB.docx differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690529 V1.0 YaB.pdf b/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690529 V1.0 YaB.pdf index d99a63d..fab222c 100644 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690529 V1.0 YaB.pdf and b/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690529 V1.0 YaB.pdf differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690803 V1.0 YaB.docx b/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690803 V1.0 YaB.docx index be8ac8d..0635459 100644 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690803 V1.0 YaB.docx and b/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690803 V1.0 YaB.docx differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690803 V1.0 YaB.pdf b/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690803 V1.0 YaB.pdf index b800a87..d526c57 100644 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690803 V1.0 YaB.pdf and b/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690803 V1.0 YaB.pdf differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690814 V1.0 YaB.docx b/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690814 V1.0 YaB.docx index d85baa4..7eeca27 100644 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690814 V1.0 YaB.docx and b/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690814 V1.0 YaB.docx differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690814 V1.0 YaB.pdf b/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690814 V1.0 YaB.pdf index 2f08cad..682e311 100644 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690814 V1.0 YaB.pdf and b/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690814 V1.0 YaB.pdf differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690817 V1.0 YaB.docx b/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690817 V1.0 YaB.docx index eebfaaf..d5cda1c 100644 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690817 V1.0 YaB.docx and b/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690817 V1.0 YaB.docx differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690817 V1.0 YaB.pdf b/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690817 V1.0 YaB.pdf index 00b3a96..ffc6a86 100644 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690817 V1.0 YaB.pdf and b/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690817 V1.0 YaB.pdf differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690824 V1.0 YaB.docx b/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690824 V1.0 YaB.docx index 3bb5c61..a92516e 100644 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690824 V1.0 YaB.docx and b/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690824 V1.0 YaB.docx differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690824 V1.0 YaB.pdf b/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690824 V1.0 YaB.pdf index 31e39cd..e7d770b 100644 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690824 V1.0 YaB.pdf and b/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690824 V1.0 YaB.pdf differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/8.Software Configuration/200-WMS-26-001-00 Software Configuration 25690817 V1.0 ThS.docx b/sdlc-delivery/1-PM Process (10 Work Product)/8.Software Configuration/200-WMS-26-001-00 Software Configuration 25690817 V1.0 ThS.docx index 367cb83..3b3c209 100644 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/8.Software Configuration/200-WMS-26-001-00 Software Configuration 25690817 V1.0 ThS.docx and b/sdlc-delivery/1-PM Process (10 Work Product)/8.Software Configuration/200-WMS-26-001-00 Software Configuration 25690817 V1.0 ThS.docx differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/8.Software Configuration/200-WMS-26-001-00 Software Configuration 25690817 V1.0 ThS.pdf b/sdlc-delivery/1-PM Process (10 Work Product)/8.Software Configuration/200-WMS-26-001-00 Software Configuration 25690817 V1.0 ThS.pdf index a8a53a6..ba0fed1 100644 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/8.Software Configuration/200-WMS-26-001-00 Software Configuration 25690817 V1.0 ThS.pdf and b/sdlc-delivery/1-PM Process (10 Work Product)/8.Software Configuration/200-WMS-26-001-00 Software Configuration 25690817 V1.0 ThS.pdf differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/9.Project Repository/200-WMS-26-001-00 Project Repository 25690817 V1.0 ThS.docx b/sdlc-delivery/1-PM Process (10 Work Product)/9.Project Repository/200-WMS-26-001-00 Project Repository 25690817 V1.0 ThS.docx index 80f8cde..1b367ac 100644 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/9.Project Repository/200-WMS-26-001-00 Project Repository 25690817 V1.0 ThS.docx and b/sdlc-delivery/1-PM Process (10 Work Product)/9.Project Repository/200-WMS-26-001-00 Project Repository 25690817 V1.0 ThS.docx differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/9.Project Repository/200-WMS-26-001-00 Project Repository 25690817 V1.0 ThS.pdf b/sdlc-delivery/1-PM Process (10 Work Product)/9.Project Repository/200-WMS-26-001-00 Project Repository 25690817 V1.0 ThS.pdf index 3cb4fe7..f5558de 100644 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/9.Project Repository/200-WMS-26-001-00 Project Repository 25690817 V1.0 ThS.pdf and b/sdlc-delivery/1-PM Process (10 Work Product)/9.Project Repository/200-WMS-26-001-00 Project Repository 25690817 V1.0 ThS.pdf differ diff --git a/sdlc-delivery/2-SI Process (12 Work Product)/11.Software Requirements specification (SRS)/200-WMS-26-001-00 Software Requirements 25690225 V1.0 NoC.docx b/sdlc-delivery/2-SI Process (12 Work Product)/11.Software Requirements specification (SRS)/200-WMS-26-001-00 Software Requirements 25690225 V1.0 NoC.docx index ad99e9b..155e5fe 100644 Binary files a/sdlc-delivery/2-SI Process (12 Work Product)/11.Software Requirements specification (SRS)/200-WMS-26-001-00 Software Requirements 25690225 V1.0 NoC.docx and b/sdlc-delivery/2-SI Process (12 Work Product)/11.Software Requirements specification (SRS)/200-WMS-26-001-00 Software Requirements 25690225 V1.0 NoC.docx differ diff --git a/sdlc-delivery/2-SI Process (12 Work Product)/11.Software Requirements specification (SRS)/200-WMS-26-001-00 Software Requirements 25690225 V1.0 NoC.pdf b/sdlc-delivery/2-SI Process (12 Work Product)/11.Software Requirements specification (SRS)/200-WMS-26-001-00 Software Requirements 25690225 V1.0 NoC.pdf index af4d683..372d818 100644 Binary files a/sdlc-delivery/2-SI Process (12 Work Product)/11.Software Requirements specification (SRS)/200-WMS-26-001-00 Software Requirements 25690225 V1.0 NoC.pdf and b/sdlc-delivery/2-SI Process (12 Work Product)/11.Software Requirements specification (SRS)/200-WMS-26-001-00 Software Requirements 25690225 V1.0 NoC.pdf differ diff --git a/sdlc-delivery/2-SI Process (12 Work Product)/12.Software design/200-WMS-26-001-00 Software Design 25690306 V1.0 NoC.docx b/sdlc-delivery/2-SI Process (12 Work Product)/12.Software design/200-WMS-26-001-00 Software Design 25690306 V1.0 NoC.docx index 5de2f4c..f0078d1 100644 Binary files a/sdlc-delivery/2-SI Process (12 Work Product)/12.Software design/200-WMS-26-001-00 Software Design 25690306 V1.0 NoC.docx and b/sdlc-delivery/2-SI Process (12 Work Product)/12.Software design/200-WMS-26-001-00 Software Design 25690306 V1.0 NoC.docx differ diff --git a/sdlc-delivery/2-SI Process (12 Work Product)/12.Software design/200-WMS-26-001-00 Software Design 25690306 V1.0 NoC.pdf b/sdlc-delivery/2-SI Process (12 Work Product)/12.Software design/200-WMS-26-001-00 Software Design 25690306 V1.0 NoC.pdf index 71cd60c..332354a 100644 Binary files a/sdlc-delivery/2-SI Process (12 Work Product)/12.Software design/200-WMS-26-001-00 Software Design 25690306 V1.0 NoC.pdf and b/sdlc-delivery/2-SI Process (12 Work Product)/12.Software design/200-WMS-26-001-00 Software Design 25690306 V1.0 NoC.pdf differ diff --git a/sdlc-delivery/2-SI Process (12 Work Product)/13.Traceability record/200-WMS-26-001-00 Traceability Record 25690306 V1.0 NoC.docx b/sdlc-delivery/2-SI Process (12 Work Product)/13.Traceability record/200-WMS-26-001-00 Traceability Record 25690306 V1.0 NoC.docx index b1efd33..d41f1aa 100644 Binary files a/sdlc-delivery/2-SI Process (12 Work Product)/13.Traceability record/200-WMS-26-001-00 Traceability Record 25690306 V1.0 NoC.docx and b/sdlc-delivery/2-SI Process (12 Work Product)/13.Traceability record/200-WMS-26-001-00 Traceability Record 25690306 V1.0 NoC.docx differ diff --git a/sdlc-delivery/2-SI Process (12 Work Product)/13.Traceability record/200-WMS-26-001-00 Traceability Record 25690306 V1.0 NoC.pdf b/sdlc-delivery/2-SI Process (12 Work Product)/13.Traceability record/200-WMS-26-001-00 Traceability Record 25690306 V1.0 NoC.pdf index 5604f4b..b0a9e1a 100644 Binary files a/sdlc-delivery/2-SI Process (12 Work Product)/13.Traceability record/200-WMS-26-001-00 Traceability Record 25690306 V1.0 NoC.pdf and b/sdlc-delivery/2-SI Process (12 Work Product)/13.Traceability record/200-WMS-26-001-00 Traceability Record 25690306 V1.0 NoC.pdf differ diff --git a/sdlc-delivery/2-SI Process (12 Work Product)/14.Software Components/200-WMS-26-001-00 Software Components 25690817 V1.0 ThS.docx b/sdlc-delivery/2-SI Process (12 Work Product)/14.Software Components/200-WMS-26-001-00 Software Components 25690817 V1.0 ThS.docx index f21b1b3..739b5ea 100644 Binary files a/sdlc-delivery/2-SI Process (12 Work Product)/14.Software Components/200-WMS-26-001-00 Software Components 25690817 V1.0 ThS.docx and b/sdlc-delivery/2-SI Process (12 Work Product)/14.Software Components/200-WMS-26-001-00 Software Components 25690817 V1.0 ThS.docx differ diff --git a/sdlc-delivery/2-SI Process (12 Work Product)/14.Software Components/200-WMS-26-001-00 Software Components 25690817 V1.0 ThS.pdf b/sdlc-delivery/2-SI Process (12 Work Product)/14.Software Components/200-WMS-26-001-00 Software Components 25690817 V1.0 ThS.pdf index 6e6bb45..10b9205 100644 Binary files a/sdlc-delivery/2-SI Process (12 Work Product)/14.Software Components/200-WMS-26-001-00 Software Components 25690817 V1.0 ThS.pdf and b/sdlc-delivery/2-SI Process (12 Work Product)/14.Software Components/200-WMS-26-001-00 Software Components 25690817 V1.0 ThS.pdf differ diff --git a/sdlc-delivery/2-SI Process (12 Work Product)/15.Test Cases and Test Procedures/200-WMS-26-001-00 Test Case and Test Procedures 25690731 V1.0 PaNg.docx b/sdlc-delivery/2-SI Process (12 Work Product)/15.Test Cases and Test Procedures/200-WMS-26-001-00 Test Case and Test Procedures 25690731 V1.0 PaNg.docx index 6987aa2..5342175 100644 Binary files a/sdlc-delivery/2-SI Process (12 Work Product)/15.Test Cases and Test Procedures/200-WMS-26-001-00 Test Case and Test Procedures 25690731 V1.0 PaNg.docx and b/sdlc-delivery/2-SI Process (12 Work Product)/15.Test Cases and Test Procedures/200-WMS-26-001-00 Test Case and Test Procedures 25690731 V1.0 PaNg.docx differ diff --git a/sdlc-delivery/2-SI Process (12 Work Product)/15.Test Cases and Test Procedures/200-WMS-26-001-00 Test Case and Test Procedures 25690731 V1.0 PaNg.pdf b/sdlc-delivery/2-SI Process (12 Work Product)/15.Test Cases and Test Procedures/200-WMS-26-001-00 Test Case and Test Procedures 25690731 V1.0 PaNg.pdf index 7ceea6c..4a70d85 100644 Binary files a/sdlc-delivery/2-SI Process (12 Work Product)/15.Test Cases and Test Procedures/200-WMS-26-001-00 Test Case and Test Procedures 25690731 V1.0 PaNg.pdf and b/sdlc-delivery/2-SI Process (12 Work Product)/15.Test Cases and Test Procedures/200-WMS-26-001-00 Test Case and Test Procedures 25690731 V1.0 PaNg.pdf differ diff --git a/sdlc-delivery/2-SI Process (12 Work Product)/16.Test Report/200-WMS-26-001-00 Test Report 25690814 V1.0 PaNg.docx b/sdlc-delivery/2-SI Process (12 Work Product)/16.Test Report/200-WMS-26-001-00 Test Report 25690814 V1.0 PaNg.docx index 4e7d305..a0e268a 100644 Binary files a/sdlc-delivery/2-SI Process (12 Work Product)/16.Test Report/200-WMS-26-001-00 Test Report 25690814 V1.0 PaNg.docx and b/sdlc-delivery/2-SI Process (12 Work Product)/16.Test Report/200-WMS-26-001-00 Test Report 25690814 V1.0 PaNg.docx differ diff --git a/sdlc-delivery/2-SI Process (12 Work Product)/16.Test Report/200-WMS-26-001-00 Test Report 25690814 V1.0 PaNg.pdf b/sdlc-delivery/2-SI Process (12 Work Product)/16.Test Report/200-WMS-26-001-00 Test Report 25690814 V1.0 PaNg.pdf index 48c2a67..af3715d 100644 Binary files a/sdlc-delivery/2-SI Process (12 Work Product)/16.Test Report/200-WMS-26-001-00 Test Report 25690814 V1.0 PaNg.pdf and b/sdlc-delivery/2-SI Process (12 Work Product)/16.Test Report/200-WMS-26-001-00 Test Report 25690814 V1.0 PaNg.pdf differ diff --git a/sdlc-delivery/2-SI Process (12 Work Product)/17.Software/200-WMS-26-001-00 Software 25690817 V1.0 ThS.docx b/sdlc-delivery/2-SI Process (12 Work Product)/17.Software/200-WMS-26-001-00 Software 25690817 V1.0 ThS.docx index 6a6aa4b..a7d29f7 100644 Binary files a/sdlc-delivery/2-SI Process (12 Work Product)/17.Software/200-WMS-26-001-00 Software 25690817 V1.0 ThS.docx and b/sdlc-delivery/2-SI Process (12 Work Product)/17.Software/200-WMS-26-001-00 Software 25690817 V1.0 ThS.docx differ diff --git a/sdlc-delivery/2-SI Process (12 Work Product)/17.Software/200-WMS-26-001-00 Software 25690817 V1.0 ThS.pdf b/sdlc-delivery/2-SI Process (12 Work Product)/17.Software/200-WMS-26-001-00 Software 25690817 V1.0 ThS.pdf index 09d61ab..6c97b65 100644 Binary files a/sdlc-delivery/2-SI Process (12 Work Product)/17.Software/200-WMS-26-001-00 Software 25690817 V1.0 ThS.pdf and b/sdlc-delivery/2-SI Process (12 Work Product)/17.Software/200-WMS-26-001-00 Software 25690817 V1.0 ThS.pdf differ diff --git a/sdlc-delivery/2-SI Process (12 Work Product)/18.Software User Documentation/200-WMS-26-001-00 Software User Document 25690814 V1.0 ThS.docx b/sdlc-delivery/2-SI Process (12 Work Product)/18.Software User Documentation/200-WMS-26-001-00 Software User Document 25690814 V1.0 ThS.docx index 47f1603..a65c990 100644 Binary files a/sdlc-delivery/2-SI Process (12 Work Product)/18.Software User Documentation/200-WMS-26-001-00 Software User Document 25690814 V1.0 ThS.docx and b/sdlc-delivery/2-SI Process (12 Work Product)/18.Software User Documentation/200-WMS-26-001-00 Software User Document 25690814 V1.0 ThS.docx differ diff --git a/sdlc-delivery/2-SI Process (12 Work Product)/18.Software User Documentation/200-WMS-26-001-00 Software User Document 25690814 V1.0 ThS.pdf b/sdlc-delivery/2-SI Process (12 Work Product)/18.Software User Documentation/200-WMS-26-001-00 Software User Document 25690814 V1.0 ThS.pdf index 3500955..0ebb6b2 100644 Binary files a/sdlc-delivery/2-SI Process (12 Work Product)/18.Software User Documentation/200-WMS-26-001-00 Software User Document 25690814 V1.0 ThS.pdf and b/sdlc-delivery/2-SI Process (12 Work Product)/18.Software User Documentation/200-WMS-26-001-00 Software User Document 25690814 V1.0 ThS.pdf differ diff --git a/sdlc-delivery/2-SI Process (12 Work Product)/19.Product Operation Guide/200-WMS-26-001-00 Product Operation Guide 25690817 V1.0 ThS.docx b/sdlc-delivery/2-SI Process (12 Work Product)/19.Product Operation Guide/200-WMS-26-001-00 Product Operation Guide 25690817 V1.0 ThS.docx index 50a7d64..5de0d14 100644 Binary files a/sdlc-delivery/2-SI Process (12 Work Product)/19.Product Operation Guide/200-WMS-26-001-00 Product Operation Guide 25690817 V1.0 ThS.docx and b/sdlc-delivery/2-SI Process (12 Work Product)/19.Product Operation Guide/200-WMS-26-001-00 Product Operation Guide 25690817 V1.0 ThS.docx differ diff --git a/sdlc-delivery/2-SI Process (12 Work Product)/19.Product Operation Guide/200-WMS-26-001-00 Product Operation Guide 25690817 V1.0 ThS.pdf b/sdlc-delivery/2-SI Process (12 Work Product)/19.Product Operation Guide/200-WMS-26-001-00 Product Operation Guide 25690817 V1.0 ThS.pdf index 9be5715..066424d 100644 Binary files a/sdlc-delivery/2-SI Process (12 Work Product)/19.Product Operation Guide/200-WMS-26-001-00 Product Operation Guide 25690817 V1.0 ThS.pdf and b/sdlc-delivery/2-SI Process (12 Work Product)/19.Product Operation Guide/200-WMS-26-001-00 Product Operation Guide 25690817 V1.0 ThS.pdf differ diff --git a/sdlc-delivery/2-SI Process (12 Work Product)/20.Maintenance Documentation/200-WMS-26-001-00 Maintenance Document 25690817 V1.0 ThS.docx b/sdlc-delivery/2-SI Process (12 Work Product)/20.Maintenance Documentation/200-WMS-26-001-00 Maintenance Document 25690817 V1.0 ThS.docx index 684261d..b047621 100644 Binary files a/sdlc-delivery/2-SI Process (12 Work Product)/20.Maintenance Documentation/200-WMS-26-001-00 Maintenance Document 25690817 V1.0 ThS.docx and b/sdlc-delivery/2-SI Process (12 Work Product)/20.Maintenance Documentation/200-WMS-26-001-00 Maintenance Document 25690817 V1.0 ThS.docx differ diff --git a/sdlc-delivery/2-SI Process (12 Work Product)/20.Maintenance Documentation/200-WMS-26-001-00 Maintenance Document 25690817 V1.0 ThS.pdf b/sdlc-delivery/2-SI Process (12 Work Product)/20.Maintenance Documentation/200-WMS-26-001-00 Maintenance Document 25690817 V1.0 ThS.pdf index 2bc520d..0a7f200 100644 Binary files a/sdlc-delivery/2-SI Process (12 Work Product)/20.Maintenance Documentation/200-WMS-26-001-00 Maintenance Document 25690817 V1.0 ThS.pdf and b/sdlc-delivery/2-SI Process (12 Work Product)/20.Maintenance Documentation/200-WMS-26-001-00 Maintenance Document 25690817 V1.0 ThS.pdf differ diff --git a/sdlc-delivery/2-SI Process (12 Work Product)/21.Verification Result/200-WMS-26-001-00 Verification Results 25690317 V0.1 PaNg.docx b/sdlc-delivery/2-SI Process (12 Work Product)/21.Verification Result/200-WMS-26-001-00 Verification Results 25690317 V0.1 PaNg.docx index fb73646..b3e5783 100644 Binary files a/sdlc-delivery/2-SI Process (12 Work Product)/21.Verification Result/200-WMS-26-001-00 Verification Results 25690317 V0.1 PaNg.docx and b/sdlc-delivery/2-SI Process (12 Work Product)/21.Verification Result/200-WMS-26-001-00 Verification Results 25690317 V0.1 PaNg.docx differ diff --git a/sdlc-delivery/2-SI Process (12 Work Product)/21.Verification Result/200-WMS-26-001-00 Verification Results 25690317 V0.1 PaNg.pdf b/sdlc-delivery/2-SI Process (12 Work Product)/21.Verification Result/200-WMS-26-001-00 Verification Results 25690317 V0.1 PaNg.pdf index 5601556..663a9f0 100644 Binary files a/sdlc-delivery/2-SI Process (12 Work Product)/21.Verification Result/200-WMS-26-001-00 Verification Results 25690317 V0.1 PaNg.pdf and b/sdlc-delivery/2-SI Process (12 Work Product)/21.Verification Result/200-WMS-26-001-00 Verification Results 25690317 V0.1 PaNg.pdf differ diff --git a/sdlc-delivery/2-SI Process (12 Work Product)/21.Verification Result/200-WMS-26-001-00 Verification Results 25690529 V0.2 PaNg.docx b/sdlc-delivery/2-SI Process (12 Work Product)/21.Verification Result/200-WMS-26-001-00 Verification Results 25690529 V0.2 PaNg.docx index 9e0a735..f2f0c65 100644 Binary files a/sdlc-delivery/2-SI Process (12 Work Product)/21.Verification Result/200-WMS-26-001-00 Verification Results 25690529 V0.2 PaNg.docx and b/sdlc-delivery/2-SI Process (12 Work Product)/21.Verification Result/200-WMS-26-001-00 Verification Results 25690529 V0.2 PaNg.docx differ diff --git a/sdlc-delivery/2-SI Process (12 Work Product)/21.Verification Result/200-WMS-26-001-00 Verification Results 25690529 V0.2 PaNg.pdf b/sdlc-delivery/2-SI Process (12 Work Product)/21.Verification Result/200-WMS-26-001-00 Verification Results 25690529 V0.2 PaNg.pdf index 8752168..e06a5f7 100644 Binary files a/sdlc-delivery/2-SI Process (12 Work Product)/21.Verification Result/200-WMS-26-001-00 Verification Results 25690529 V0.2 PaNg.pdf and b/sdlc-delivery/2-SI Process (12 Work Product)/21.Verification Result/200-WMS-26-001-00 Verification Results 25690529 V0.2 PaNg.pdf differ diff --git a/sdlc-delivery/2-SI Process (12 Work Product)/21.Verification Result/200-WMS-26-001-00 Verification Results 25690731 V0.3 PaNg.docx b/sdlc-delivery/2-SI Process (12 Work Product)/21.Verification Result/200-WMS-26-001-00 Verification Results 25690731 V0.3 PaNg.docx index d222599..d9b1574 100644 Binary files a/sdlc-delivery/2-SI Process (12 Work Product)/21.Verification Result/200-WMS-26-001-00 Verification Results 25690731 V0.3 PaNg.docx and b/sdlc-delivery/2-SI Process (12 Work Product)/21.Verification Result/200-WMS-26-001-00 Verification Results 25690731 V0.3 PaNg.docx differ diff --git a/sdlc-delivery/2-SI Process (12 Work Product)/21.Verification Result/200-WMS-26-001-00 Verification Results 25690731 V0.3 PaNg.pdf b/sdlc-delivery/2-SI Process (12 Work Product)/21.Verification Result/200-WMS-26-001-00 Verification Results 25690731 V0.3 PaNg.pdf index 07f5648..32ae80a 100644 Binary files a/sdlc-delivery/2-SI Process (12 Work Product)/21.Verification Result/200-WMS-26-001-00 Verification Results 25690731 V0.3 PaNg.pdf and b/sdlc-delivery/2-SI Process (12 Work Product)/21.Verification Result/200-WMS-26-001-00 Verification Results 25690731 V0.3 PaNg.pdf differ diff --git a/sdlc-delivery/2-SI Process (12 Work Product)/21.Verification Result/200-WMS-26-001-00 Verification Results 25690817 V1.0 PaNg.docx b/sdlc-delivery/2-SI Process (12 Work Product)/21.Verification Result/200-WMS-26-001-00 Verification Results 25690817 V1.0 PaNg.docx index 1a46d3b..f67c576 100644 Binary files a/sdlc-delivery/2-SI Process (12 Work Product)/21.Verification Result/200-WMS-26-001-00 Verification Results 25690817 V1.0 PaNg.docx and b/sdlc-delivery/2-SI Process (12 Work Product)/21.Verification Result/200-WMS-26-001-00 Verification Results 25690817 V1.0 PaNg.docx differ diff --git a/sdlc-delivery/2-SI Process (12 Work Product)/21.Verification Result/200-WMS-26-001-00 Verification Results 25690817 V1.0 PaNg.pdf b/sdlc-delivery/2-SI Process (12 Work Product)/21.Verification Result/200-WMS-26-001-00 Verification Results 25690817 V1.0 PaNg.pdf index 2f41adb..e21ae2d 100644 Binary files a/sdlc-delivery/2-SI Process (12 Work Product)/21.Verification Result/200-WMS-26-001-00 Verification Results 25690817 V1.0 PaNg.pdf and b/sdlc-delivery/2-SI Process (12 Work Product)/21.Verification Result/200-WMS-26-001-00 Verification Results 25690817 V1.0 PaNg.pdf differ diff --git a/sdlc-delivery/2-SI Process (12 Work Product)/22.Validation Result/200-WMS-26-001-00 Validation Results 25690814 V1.0 PaNg.docx b/sdlc-delivery/2-SI Process (12 Work Product)/22.Validation Result/200-WMS-26-001-00 Validation Results 25690814 V1.0 PaNg.docx index 74d3f7b..706f6d8 100644 Binary files a/sdlc-delivery/2-SI Process (12 Work Product)/22.Validation Result/200-WMS-26-001-00 Validation Results 25690814 V1.0 PaNg.docx and b/sdlc-delivery/2-SI Process (12 Work Product)/22.Validation Result/200-WMS-26-001-00 Validation Results 25690814 V1.0 PaNg.docx differ diff --git a/sdlc-delivery/2-SI Process (12 Work Product)/22.Validation Result/200-WMS-26-001-00 Validation Results 25690814 V1.0 PaNg.pdf b/sdlc-delivery/2-SI Process (12 Work Product)/22.Validation Result/200-WMS-26-001-00 Validation Results 25690814 V1.0 PaNg.pdf index a615d58..a9946f6 100644 Binary files a/sdlc-delivery/2-SI Process (12 Work Product)/22.Validation Result/200-WMS-26-001-00 Validation Results 25690814 V1.0 PaNg.pdf and b/sdlc-delivery/2-SI Process (12 Work Product)/22.Validation Result/200-WMS-26-001-00 Validation Results 25690814 V1.0 PaNg.pdf differ diff --git a/sdlc-delivery/3-Other Document/200-WMS-26-001-00 List of Evidence 25690824 V1.0 YaB.docx b/sdlc-delivery/3-Other Document/200-WMS-26-001-00 List of Evidence 25690824 V1.0 YaB.docx index 6502bb5..05d1b9c 100644 Binary files a/sdlc-delivery/3-Other Document/200-WMS-26-001-00 List of Evidence 25690824 V1.0 YaB.docx and b/sdlc-delivery/3-Other Document/200-WMS-26-001-00 List of Evidence 25690824 V1.0 YaB.docx differ diff --git a/sdlc-delivery/3-Other Document/200-WMS-26-001-00 List of Evidence 25690824 V1.0 YaB.pdf b/sdlc-delivery/3-Other Document/200-WMS-26-001-00 List of Evidence 25690824 V1.0 YaB.pdf index a0590da..021c4a4 100644 Binary files a/sdlc-delivery/3-Other Document/200-WMS-26-001-00 List of Evidence 25690824 V1.0 YaB.pdf and b/sdlc-delivery/3-Other Document/200-WMS-26-001-00 List of Evidence 25690824 V1.0 YaB.pdf differ diff --git a/sdlc-delivery/3-Other Document/200-WMS-26-001-00 Project Charter Report 25690123 V1.0 YaB.docx b/sdlc-delivery/3-Other Document/200-WMS-26-001-00 Project Charter Report 25690123 V1.0 YaB.docx index a3e5eed..818aa10 100644 Binary files a/sdlc-delivery/3-Other Document/200-WMS-26-001-00 Project Charter Report 25690123 V1.0 YaB.docx and b/sdlc-delivery/3-Other Document/200-WMS-26-001-00 Project Charter Report 25690123 V1.0 YaB.docx differ diff --git a/sdlc-delivery/3-Other Document/200-WMS-26-001-00 Project Charter Report 25690123 V1.0 YaB.pdf b/sdlc-delivery/3-Other Document/200-WMS-26-001-00 Project Charter Report 25690123 V1.0 YaB.pdf index de875e2..7faf222 100644 Binary files a/sdlc-delivery/3-Other Document/200-WMS-26-001-00 Project Charter Report 25690123 V1.0 YaB.pdf and b/sdlc-delivery/3-Other Document/200-WMS-26-001-00 Project Charter Report 25690123 V1.0 YaB.pdf differ diff --git a/sdlc-delivery/3-Other Document/200-WMS-26-001-00 Stakeholder Register 25690116 V1.0 YaB.docx b/sdlc-delivery/3-Other Document/200-WMS-26-001-00 Stakeholder Register 25690116 V1.0 YaB.docx index 1cc48e0..7d06872 100644 Binary files a/sdlc-delivery/3-Other Document/200-WMS-26-001-00 Stakeholder Register 25690116 V1.0 YaB.docx and b/sdlc-delivery/3-Other Document/200-WMS-26-001-00 Stakeholder Register 25690116 V1.0 YaB.docx differ diff --git a/sdlc-delivery/3-Other Document/200-WMS-26-001-00 Stakeholder Register 25690116 V1.0 YaB.pdf b/sdlc-delivery/3-Other Document/200-WMS-26-001-00 Stakeholder Register 25690116 V1.0 YaB.pdf index fb38eb3..9b70c77 100644 Binary files a/sdlc-delivery/3-Other Document/200-WMS-26-001-00 Stakeholder Register 25690116 V1.0 YaB.pdf and b/sdlc-delivery/3-Other Document/200-WMS-26-001-00 Stakeholder Register 25690116 V1.0 YaB.pdf differ diff --git a/sdlc-delivery/3-Other Document/200-WMS-26-001-00 TRACEABILITY-RECORD 25690817 V1.0 NoC.docx b/sdlc-delivery/3-Other Document/200-WMS-26-001-00 TRACEABILITY-RECORD 25690817 V1.0 NoC.docx index 5b3b8be..c4b9d11 100644 Binary files a/sdlc-delivery/3-Other Document/200-WMS-26-001-00 TRACEABILITY-RECORD 25690817 V1.0 NoC.docx and b/sdlc-delivery/3-Other Document/200-WMS-26-001-00 TRACEABILITY-RECORD 25690817 V1.0 NoC.docx differ diff --git a/sdlc-delivery/3-Other Document/200-WMS-26-001-00 TRACEABILITY-RECORD 25690817 V1.0 NoC.pdf b/sdlc-delivery/3-Other Document/200-WMS-26-001-00 TRACEABILITY-RECORD 25690817 V1.0 NoC.pdf index 2118c0c..2631d1f 100644 Binary files a/sdlc-delivery/3-Other Document/200-WMS-26-001-00 TRACEABILITY-RECORD 25690817 V1.0 NoC.pdf and b/sdlc-delivery/3-Other Document/200-WMS-26-001-00 TRACEABILITY-RECORD 25690817 V1.0 NoC.pdf differ diff --git a/sdlc-delivery/3-Other Document/200-WMS-26-001-00 Training Report 25690822 V1.0 YaB.docx b/sdlc-delivery/3-Other Document/200-WMS-26-001-00 Training Report 25690822 V1.0 YaB.docx index c10b111..57dfdfd 100644 Binary files a/sdlc-delivery/3-Other Document/200-WMS-26-001-00 Training Report 25690822 V1.0 YaB.docx and b/sdlc-delivery/3-Other Document/200-WMS-26-001-00 Training Report 25690822 V1.0 YaB.docx differ diff --git a/sdlc-delivery/3-Other Document/200-WMS-26-001-00 Training Report 25690822 V1.0 YaB.pdf b/sdlc-delivery/3-Other Document/200-WMS-26-001-00 Training Report 25690822 V1.0 YaB.pdf index 1e1b431..ad80541 100644 Binary files a/sdlc-delivery/3-Other Document/200-WMS-26-001-00 Training Report 25690822 V1.0 YaB.pdf and b/sdlc-delivery/3-Other Document/200-WMS-26-001-00 Training Report 25690822 V1.0 YaB.pdf differ diff --git a/sdlc/1-PM Process (10 Work Product)/1.Statement of Work/200-WMS-26-001-00 Statement of Work 25690105 V1.0 ApS.md b/sdlc/1-PM Process (10 Work Product)/1.Statement of Work/200-WMS-26-001-00 Statement of Work 25690105 V1.0 ApS.md index 8815915..815b6cf 100644 --- a/sdlc/1-PM Process (10 Work Product)/1.Statement of Work/200-WMS-26-001-00 Statement of Work 25690105 V1.0 ApS.md +++ b/sdlc/1-PM Process (10 Work Product)/1.Statement of Work/200-WMS-26-001-00 Statement of Work 25690105 V1.0 ApS.md @@ -66,7 +66,7 @@ | WP 6.0 | เอกสาร 200-WMS-26-001-00 Test Case and Test Procedures | ส่งเอกสารจำนวน 1 ชุด | | WP 7.0 | เอกสาร 200-WMS-26-001-00 Validation Results | ส่งเอกสารจำนวน 1 ชุด | | WP 8.0 | เอกสาร 200-WMS-26-001-00 Software User Document | ส่งเอกสารจำนวน 1 ชุด | -| WP 9.0 | ระบบ BRN WMS ที่ผ่านการทดสอบพร้อมนำไปใช้งานจริง | ส่ง Source Code (Git baseline 6c39700) และติดตั้ง | +| WP 9.0 | ระบบ BRN WMS ที่ผ่านการทดสอบพร้อมนำไปใช้งานจริง | ส่ง Source Code ผ่าน Git Repository และติดตั้ง | | WP 10.0 | เอกสาร 200-WMS-26-001-00 Product Operation Guide | ส่งเอกสารจำนวน 1 ชุด | | WP 11.0 | เอกสาร 200-WMS-26-001-00 Maintenance Document | ส่งเอกสารจำนวน 1 ชุด | diff --git a/sdlc/1-PM Process (10 Work Product)/10.Project Repository (Backup)/200-WMS-26-001-00 Project Repository Backup 25690824 V1.0 ThS.md b/sdlc/1-PM Process (10 Work Product)/10.Project Repository (Backup)/200-WMS-26-001-00 Project Repository Backup 25690824 V1.0 ThS.md index fa36701..eccab11 100644 --- a/sdlc/1-PM Process (10 Work Product)/10.Project Repository (Backup)/200-WMS-26-001-00 Project Repository Backup 25690824 V1.0 ThS.md +++ b/sdlc/1-PM Process (10 Work Product)/10.Project Repository (Backup)/200-WMS-26-001-00 Project Repository Backup 25690824 V1.0 ThS.md @@ -17,7 +17,7 @@ | วิธีการสำรอง | Git Remote สำรอง (Secondary Remote) | | ชื่อ Remote สำรอง | `backup` | | ที่อยู่ Remote สำรอง | `git@github.com:thanakorninbox-dev/wms-app.git` | -| ขอบเขตการสำรอง | Branch `main` (Baseline `6c39700`), Branch `sdlc` และ Tag `sdlc-v1.0-final` | +| ขอบเขตการสำรอง | Branch `main` (Baseline `6c39700`), Branch `sdlc` | | รอบการสำรอง | ซิงก์ทุกครั้งที่มีการส่งมอบหรือปรับปรุง Baseline | | ผู้รับผิดชอบ | คุณธนกร สถิตวิทยากุล (Developer) | @@ -38,7 +38,7 @@ | BK-001 | ตรวจสอบว่า Remote สำรองเข้าถึงได้และมี Baseline `6c39700` ตรงกับ Repository หลัก | ThS | 17 สิงหาคม 2569 | ผ่าน | | BK-002 | ทดสอบ Clone จาก Remote สำรองและตรวจสอบความครบถ้วนของข้อมูล | ThS | 17 สิงหาคม 2569 | ผ่าน | | BK-003 | ทดสอบกู้คืนฐานข้อมูลจากชุดสำรองสู่สภาพแวดล้อมทดสอบ | ThS | 23 สิงหาคม 2569 | ผ่าน | -| BK-004 | ซิงก์ Branch `sdlc` และ Tag `sdlc-v1.0-final` ไปยัง Remote สำรองและตรวจสอบการเรียกคืน | ThS | 24 สิงหาคม 2569 | ผ่าน | +| BK-004 | ซิงก์ Branch `sdlc` ไปยัง Remote สำรองและตรวจสอบการเรียกคืน | ThS | 24 สิงหาคม 2569 | ผ่าน | ## ขั้นตอนการกู้คืน @@ -47,7 +47,7 @@ | 1 | ยืนยันขอบเขตความเสียหาย | ตรวจสอบว่าข้อมูลที่สูญหายเป็น Source Code เอกสาร หรือฐานข้อมูล | | 2 | เลือกชุดสำรองที่จะใช้ | เลือกชุดสำรองล่าสุดที่ผ่านการตรวจสอบและยืนยันวันที่ | | 3 | กู้คืนสู่สภาพแวดล้อมทดสอบก่อน | Clone จาก Remote สำรอง หรือ Restore ฐานข้อมูลสู่เครื่องทดสอบ | -| 4 | ตรวจสอบความถูกต้อง | ตรวจสอบ Baseline, Tag และข้อมูลตัวอย่างว่าครบถ้วน | +| 4 | ตรวจสอบความถูกต้อง | ตรวจสอบ Baseline และข้อมูลตัวอย่างว่าครบถ้วน | | 5 | กู้คืนสู่สภาพแวดล้อมใช้งานจริง | บันทึกจุดกู้คืน หยุดบริการที่เกี่ยวข้อง กู้คืน แล้วตรวจสอบสถานะระบบตามคู่มือผู้ดูแลระบบ | ## ผู้จัดทำเอกสาร (Secretary) diff --git a/sdlc/1-PM Process (10 Work Product)/2.Project Plan/1-Work Schedule/200-WMS-26-001-00 Work Schedule 25690213 V1.0 ApS.md b/sdlc/1-PM Process (10 Work Product)/2.Project Plan/1-Work Schedule/200-WMS-26-001-00 Work Schedule 25690213 V1.0 ApS.md index 2a0e636..8a2368d 100644 --- a/sdlc/1-PM Process (10 Work Product)/2.Project Plan/1-Work Schedule/200-WMS-26-001-00 Work Schedule 25690213 V1.0 ApS.md +++ b/sdlc/1-PM Process (10 Work Product)/2.Project Plan/1-Work Schedule/200-WMS-26-001-00 Work Schedule 25690213 V1.0 ApS.md @@ -18,29 +18,29 @@ | 1.2 | Project Initiation | Identify Stakeholders | ระบุผู้มีส่วนได้ส่วนเสียและบทบาทความรับผิดชอบ | ApS, YaB | 12 ม.ค. 69 | 16 ม.ค. 69 | 5 | Stakeholder Register | Completed | จัดทำ Stakeholder Register | | 1.3 | Project Initiation | Define Vision & Objectives | กำหนดวัตถุประสงค์ ขอบเขตระบบ และเกณฑ์ความสำเร็จ | ApS, NoC | 19 ม.ค. 69 | 21 ม.ค. 69 | 3 | Project Charter Report | Completed | อนุมัติวัตถุประสงค์โครงการ | | 1.4 | Project Initiation | Approve Project Charter | ผู้บริหารอนุมัติกฎบัตรโครงการและขอบเขตงาน | SeV, ApS | 22 ม.ค. 69 | 23 ม.ค. 69 | 2 | Approved Project Charter | Completed | อนุมัติโดย Project Sponsor | -| 2.1 | Project Planning | Collect Customer Requirements | เก็บและวิเคราะห์ความต้องการลูกค้า จัดหมวด CR01–CR14 | NoC, ApS | 12 ม.ค. 69 | 6 ก.พ. 69 | 26 | Customer Requirements | Completed | ความต้องการ 80 รายการ ผลสรุป A ทั้งหมด | +| 2.1 | Project Planning | Collect Customer Requirements | เก็บและวิเคราะห์ความต้องการลูกค้า และจัดหมวดความต้องการ | NoC, ApS | 12 ม.ค. 69 | 6 ก.พ. 69 | 26 | Customer Requirements | Completed | ความต้องการ 80 รายการ ผลสรุป A ทั้งหมด | | 2.2 | Project Planning | Develop Software Project Plan | จัดทำแผนโครงการ ทรัพยากร ความเสี่ยง และการควบคุม | ApS, YaB | 26 ม.ค. 69 | 13 ก.พ. 69 | 19 | Software Project Plan | Completed | รวม Work Schedule | -| 2.3 | Project Planning | Baseline Requirements & Schedule | ทบทวนและตั้ง Baseline ความต้องการและแผนงาน | ApS, NoC | 16 ก.พ. 69 | 18 ก.พ. 69 | 3 | Baselined Plan | Completed | เริ่มพัฒนา 19 ก.พ. 69 | -| 3.1 | Project Execution | Software Requirements & Design | จัดทำ SRS (SR01–SR09) และเอกสารออกแบบระบบ | NoC, ThS | 19 ก.พ. 69 | 25 ก.พ. 69 | 7 | SRS, Software Design | Completed | Git 9a50080–1843308 | -| 3.2 | Project Execution | Security & Database Foundation | ป้องกันไฟล์ตั้งค่า แก้ผลตรวจความปลอดภัย และออกแบบฐานข้อมูลสต๊อก | ThS | 9 มี.ค. 69 | 17 มี.ค. 69 | 9 | Database schema, ICS modules | Completed | Git 93d903c–a4f474b | -| 3.3 | Project Execution | Inventory & Warehouse Modules | พัฒนาคลังสินค้า ความจุ สินค้า Lot/Serial/Expiry และรายงาน | ThS, NoC | 9 เม.ย. 69 | 29 เม.ย. 69 | 21 | Inventory & report modules | Completed | Git 3b8f94f–db5c47b | -| 3.4 | Project Execution | Authentication & Onboarding | พัฒนาเข้าสู่ระบบ ลงทะเบียน Onboarding และสิทธิ์ตามบทบาท | ThS | 28 เม.ย. 69 | 12 พ.ค. 69 | 15 | Authentication modules | Completed | Git d8fd30c–79e66bd | -| 3.5 | Project Execution | Order & Barcode Workflows | พัฒนาใบสั่งขาย ใบรับคืน ใบแจ้งหนี้ คลังหลายชั้น และบาร์โค้ด | ThS | 2 พ.ค. 69 | 8 พ.ค. 69 | 7 | Order & barcode modules | Completed | Git a90975d–304848d | -| 3.6 | Project Execution | Production Preparation & Setup | เตรียมใช้งานจริง Base URL อัตโนมัติ และสคริปต์ติดตั้งฐานข้อมูล | ThS | 11 พ.ค. 69 | 13 พ.ค. 69 | 3 | setup.php, configuration | Completed | Git d989e59–bf3be28 | -| 3.7 | Project Execution | Accounting & Finance Workflows | พัฒนาผังบัญชี GL สมุดรายวัน ใบวางบิล ใบเสร็จ และใบสำคัญจ่าย | ThS | 13 พ.ค. 69 | 23 พ.ค. 69 | 11 | Accounting & finance modules | Completed | Git 04a683b–eddb10a | -| 3.8 | Project Execution | Real-time Services & Scheduled Jobs | พัฒนา Socket.IO, ตารางสรุปยอด และงานแจ้งเตือนตามกำหนดเวลา | ThS | 22 พ.ค. 69 | 27 พ.ค. 69 | 6 | Node.js services | Completed | Git 9c275eb–b8798bc | -| 3.9 | Project Execution | Security Hardening & Lifecycle Review | ทบทวน Role Guard ขอบเขตบริษัท วงจรเอกสาร และโควตารายการ | ThS, PaNg | 21 พ.ค. 69 | 28 พ.ค. 69 | 8 | Hardening commits | Completed | Git 6eeebfe–ed3dd2f | -| 3.10 | Project Execution | Refactor & Development Baseline | ลดความซ้ำซ้อนของคลาสและตั้ง Baseline การพัฒนา | ThS | 29 พ.ค. 69 | 29 พ.ค. 69 | 1 | Development baseline | Completed | Git a0677d6 | -| 4.1 | Project Control | Progress & Meeting Records | ติดตามความก้าวหน้า ประเด็นปัญหา มติ และการแก้ไขตลอดโครงการ | ApS, YaB | 5 ม.ค. 69 | 24 ส.ค. 69 | 232 | Progress Status, Meeting Record | Completed | บันทึกรายงวดตลอดโครงการ | -| 4.2 | Project Control | Configuration & Repository Control | ควบคุม Source Code, Baseline, เวอร์ชันเอกสาร และการสำรองข้อมูล | ThS, YaB | 19 ก.พ. 69 | 24 ส.ค. 69 | 187 | Software Configuration | Completed | Git origin + backup remote | -| 4.3 | Verification | Verify Work Products | ตรวจสอบความต้องการ ออกแบบ ส่วนประกอบ และการสอบกลับ | PaNg, NoC | 30 พ.ค. 69 | 17 ส.ค. 69 | 80 | Verification Results | Completed | ตรวจสอบ 4 รอบ รอบสุดท้าย 17 ส.ค. 69 | -| 4.4 | Validation | System Test & UAT | ทดสอบระบบตาม Test Case และทดสอบการยอมรับโดยผู้ใช้ | PaNg, SeV | 10 ส.ค. 69 | 14 ส.ค. 69 | 5 | Test Report, Validation Results | Completed | ทดสอบ 45 Test Case และ UAT ครบ 14 หมวดความต้องการ (80 รายการ) | -| 4.5 | Documentation | Operational Documentation | จัดทำคู่มือผู้ใช้ คู่มือผู้ดูแลระบบ และคู่มือบำรุงรักษา | ThS, YaB | 1 มิ.ย. 69 | 17 ส.ค. 69 | 78 | User / Operation / Maintenance docs | Completed | จัดทำครบ 3 ฉบับ | -| 4.6 | Stabilization | Post-baseline Corrections | แก้ไขปัญหาการเข้าสู่ระบบและค่าตั้งค่าหลัง Baseline | ThS | 3 ส.ค. 69 | 3 ส.ค. 69 | 1 | Correction Register | Completed | Git b2c4374 | -| 4.7 | Stabilization | Demonstration Data & Delivery Package | เตรียมข้อมูลสาธิต ปรับแบรนด์ และชุดติดตั้ง Docker Compose | ThS | 14 ส.ค. 69 | 17 ส.ค. 69 | 4 | Demo data, Docker stack | Completed | Git dd48a8b–6c39700 | -| 5.1 | Project Close | Final Work-product Review | ตรวจสอบความครบถ้วนของ Work Products และหลักฐาน | ApS, YaB | 10 ส.ค. 69 | 17 ส.ค. 69 | 8 | List of Evidence | Completed | ตรวจรอบที่ 4 เมื่อ 17 ส.ค. 69 | -| 5.2 | Project Close | Training | อบรมผู้ใช้งานก่อนเปิดใช้งานจริง | ThS, PaNg | 22 ส.ค. 69 | 22 ส.ค. 69 | 1 | Training Report | Completed | ผู้เข้าอบรม 6 คน | -| 5.3 | Project Close | Acceptance & Project Closure | ส่งมอบระบบ ตรวจรับ และปิดโครงการ | SeV, ApS | 17 ส.ค. 69 | 24 ส.ค. 69 | 8 | Acceptance Report | Completed | ตรวจรับ 17 ส.ค. 69 ปิดโครงการ 24 ส.ค. 69 | +| 2.3 | Project Planning | Baseline Requirements & Schedule | ทบทวนและตั้ง Baseline ความต้องการและแผนงาน | ApS, NoC | 16 ก.พ. 69 | 18 ก.พ. 69 | 3 | Baselined Plan | Not Started | - | +| 3.1 | Project Execution | Software Requirements & Design | จัดทำ SRS และเอกสารออกแบบระบบ | NoC, ThS | 19 ก.พ. 69 | 25 ก.พ. 69 | 7 | SRS, Software Design | Not Started | - | +| 3.2 | Project Execution | Security & Database Foundation | ป้องกันไฟล์ตั้งค่า แก้ผลตรวจความปลอดภัย และออกแบบฐานข้อมูลสต๊อก | ThS | 9 มี.ค. 69 | 17 มี.ค. 69 | 9 | Database schema, ICS modules | Not Started | - | +| 3.3 | Project Execution | Inventory & Warehouse Modules | พัฒนาคลังสินค้า ความจุ สินค้า Lot/Serial/Expiry และรายงาน | ThS, NoC | 9 เม.ย. 69 | 29 เม.ย. 69 | 21 | Inventory & report modules | Not Started | - | +| 3.4 | Project Execution | Authentication & Onboarding | พัฒนาเข้าสู่ระบบ ลงทะเบียน Onboarding และสิทธิ์ตามบทบาท | ThS | 28 เม.ย. 69 | 12 พ.ค. 69 | 15 | Authentication modules | Not Started | - | +| 3.5 | Project Execution | Order & Barcode Workflows | พัฒนาใบสั่งขาย ใบรับคืน ใบแจ้งหนี้ คลังหลายชั้น และบาร์โค้ด | ThS | 2 พ.ค. 69 | 8 พ.ค. 69 | 7 | Order & barcode modules | Not Started | - | +| 3.6 | Project Execution | Production Preparation & Setup | เตรียมใช้งานจริง Base URL อัตโนมัติ และสคริปต์ติดตั้งฐานข้อมูล | ThS | 11 พ.ค. 69 | 13 พ.ค. 69 | 3 | setup.php, configuration | Not Started | - | +| 3.7 | Project Execution | Accounting & Finance Workflows | พัฒนาผังบัญชี GL สมุดรายวัน ใบวางบิล ใบเสร็จ และใบสำคัญจ่าย | ThS | 13 พ.ค. 69 | 23 พ.ค. 69 | 11 | Accounting & finance modules | Not Started | - | +| 3.8 | Project Execution | Real-time Services & Scheduled Jobs | พัฒนา Socket.IO, ตารางสรุปยอด และงานแจ้งเตือนตามกำหนดเวลา | ThS | 22 พ.ค. 69 | 27 พ.ค. 69 | 6 | Node.js services | Not Started | - | +| 3.9 | Project Execution | Security Hardening & Lifecycle Review | ทบทวน Role Guard ขอบเขตบริษัท วงจรเอกสาร และโควตารายการ | ThS, PaNg | 21 พ.ค. 69 | 28 พ.ค. 69 | 8 | Hardening commits | Not Started | - | +| 3.10 | Project Execution | Refactor & Development Baseline | ลดความซ้ำซ้อนของคลาสและตั้ง Baseline การพัฒนา | ThS | 29 พ.ค. 69 | 29 พ.ค. 69 | 1 | Development baseline | Not Started | - | +| 4.1 | Project Control | Progress & Meeting Records | ติดตามความก้าวหน้า ประเด็นปัญหา มติ และการแก้ไขตลอดโครงการ | ApS, YaB | 5 ม.ค. 69 | 24 ส.ค. 69 | 232 | Progress Status, Meeting Record | In Progress | - | +| 4.2 | Project Control | Configuration & Repository Control | ควบคุม Source Code, Baseline, เวอร์ชันเอกสาร และการสำรองข้อมูล | ThS, YaB | 19 ก.พ. 69 | 24 ส.ค. 69 | 187 | Software Configuration | Not Started | - | +| 4.3 | Verification | Verify Work Products | ตรวจสอบความต้องการ ออกแบบ ส่วนประกอบ และการสอบกลับ | PaNg, NoC | 30 พ.ค. 69 | 17 ส.ค. 69 | 80 | Verification Results | Not Started | - | +| 4.4 | Validation | System Test & UAT | ทดสอบระบบตาม Test Case และทดสอบการยอมรับโดยผู้ใช้ | PaNg, SeV | 10 ส.ค. 69 | 14 ส.ค. 69 | 5 | Test Report, Validation Results | Not Started | - | +| 4.5 | Documentation | Operational Documentation | จัดทำคู่มือผู้ใช้ คู่มือผู้ดูแลระบบ และคู่มือบำรุงรักษา | ThS, YaB | 1 มิ.ย. 69 | 17 ส.ค. 69 | 78 | User / Operation / Maintenance docs | Not Started | - | +| 4.6 | Stabilization | Post-baseline Corrections | แก้ไขปัญหาการเข้าสู่ระบบและค่าตั้งค่าหลัง Baseline | ThS | 3 ส.ค. 69 | 3 ส.ค. 69 | 1 | Correction Register | Not Started | - | +| 4.7 | Stabilization | Demonstration Data & Delivery Package | เตรียมข้อมูลสาธิต ปรับแบรนด์ และชุดติดตั้ง Docker Compose | ThS | 14 ส.ค. 69 | 17 ส.ค. 69 | 4 | Demo data, Docker stack | Not Started | - | +| 5.1 | Project Close | Final Work-product Review | ตรวจสอบความครบถ้วนของ Work Products และหลักฐาน | ApS, YaB | 10 ส.ค. 69 | 17 ส.ค. 69 | 8 | List of Evidence | Not Started | - | +| 5.2 | Project Close | Training | อบรมผู้ใช้งานก่อนเปิดใช้งานจริง | ThS, PaNg | 22 ส.ค. 69 | 22 ส.ค. 69 | 1 | Training Report | Not Started | - | +| 5.3 | Project Close | Acceptance & Project Closure | ส่งมอบระบบ ตรวจรับ และปิดโครงการ | SeV, ApS | 17 ส.ค. 69 | 24 ส.ค. 69 | 8 | Acceptance Report | Not Started | - | ## หลักไมล์ของโครงการ (Milestones) @@ -50,10 +50,10 @@ | อนุมัติกฎบัตรโครงการ | 23 มกราคม 2569 | Project Sponsor อนุมัติ Project Charter | | ตั้ง Baseline ความต้องการและแผนงาน | 18 กุมภาพันธ์ 2569 | อนุมัติ Customer Requirements และ Work Schedule | | เริ่มพัฒนาระบบ | 19 กุมภาพันธ์ 2569 | เริ่ม Task 3.1 ตามแผน | -| Baseline การพัฒนา | 29 พฤษภาคม 2569 | พัฒนาครบทุกโมดูล (Git a0677d6) | -| ทดสอบระบบและ UAT | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | ทดสอบ 45 Test Case และ UAT ครบ 14 หมวดความต้องการ (80 รายการ) ผ่านทั้งหมด | -| ตรวจรับส่งมอบระบบ | 17 สิงหาคม 2569 | ผลการตรวจรับ Accepted | -| อบรมผู้ใช้งาน | 22 สิงหาคม 2569 | อบรมผู้ใช้งาน 6 คน | +| Baseline การพัฒนา | 29 พฤษภาคม 2569 | พัฒนาครบทุกโมดูลตามขอบเขต และกำหนด Git Baseline การพัฒนา | +| ทดสอบระบบและ UAT | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | Test Case ผ่านครบ และ UAT ผ่านครบ 14 หมวดความต้องการ (80 รายการ) | +| ตรวจรับส่งมอบระบบ | 17 สิงหาคม 2569 | Project Sponsor ลงนามตรวจรับสิ่งส่งมอบครบทุกรายการ | +| อบรมผู้ใช้งาน | 22 สิงหาคม 2569 | ผู้ใช้งานทุกฝ่ายที่เกี่ยวข้องผ่านการอบรม | | ปิดโครงการ | 24 สิงหาคม 2569 | ปิดโครงการอย่างเป็นทางการ | ## หมายเหตุการติดตามแผนงาน diff --git a/sdlc/1-PM Process (10 Work Product)/2.Project Plan/2-Software Project Plan/200-WMS-26-001-00 Software Project Plan 25690213 V1.0 ApS.md b/sdlc/1-PM Process (10 Work Product)/2.Project Plan/2-Software Project Plan/200-WMS-26-001-00 Software Project Plan 25690213 V1.0 ApS.md index e508aa5..47d5b5e 100644 --- a/sdlc/1-PM Process (10 Work Product)/2.Project Plan/2-Software Project Plan/200-WMS-26-001-00 Software Project Plan 25690213 V1.0 ApS.md +++ b/sdlc/1-PM Process (10 Work Product)/2.Project Plan/2-Software Project Plan/200-WMS-26-001-00 Software Project Plan 25690213 V1.0 ApS.md @@ -71,7 +71,7 @@ | WP 6.0 | เอกสาร 200-WMS-26-001-00 Test Case and Test Procedures | ส่งเอกสารจำนวน 1 ชุด | | WP 7.0 | เอกสาร 200-WMS-26-001-00 Validation Results | ส่งเอกสารจำนวน 1 ชุด | | WP 8.0 | เอกสาร 200-WMS-26-001-00 Software User Document | ส่งเอกสารจำนวน 1 ชุด | -| WP 9.0 | ระบบ BRN WMS ที่ผ่านการทดสอบพร้อมนำไปใช้งานจริง | ส่ง Source Code (Git baseline 6c39700) และติดตั้ง | +| WP 9.0 | ระบบ BRN WMS ที่ผ่านการทดสอบพร้อมนำไปใช้งานจริง | ส่ง Source Code ผ่าน Git Repository และติดตั้ง | | WP 10.0 | เอกสาร 200-WMS-26-001-00 Product Operation Guide | ส่งเอกสารจำนวน 1 ชุด | | WP 11.0 | เอกสาร 200-WMS-26-001-00 Maintenance Document | ส่งเอกสารจำนวน 1 ชุด | @@ -89,9 +89,9 @@ | ลำดับ | หัวข้อ | เกณฑ์คุณภาพ | วิธีประเมิน | | :---: | --- | --- | --- | | 1.1 | ความถูกต้องของฟังก์ชัน | ฟังก์ชันทั้งหมดทำงานตรงตาม Customer Requirements ครบ 100% | ทดสอบตาม Test Case และ UAT | -| 1.2 | ความถูกต้องของข้อมูลสต๊อกและบัญชี | ไม่พบยอดสต๊อกติดลบหรือรายการ GL ที่ไม่สมดุล | ทดสอบ Transaction และ Rollback (TC-UN08.002) | -| 1.3 | ความปลอดภัยของระบบ | ไม่พบข้อบกพร่องระดับวิกฤตด้านสิทธิ์และการแยกข้อมูล | ทดสอบสิทธิ์เชิงลบ (TC-UN12.001, TC-UN12.002) | -| 1.4 | ประสิทธิภาพการตอบสนอง | งานประจำวันตอบสนองภายในเวลาที่ใช้งานได้จริงบนสภาพแวดล้อมที่ตกลง | ทดสอบตามปริมาณข้อมูลตัวอย่าง (TC-UN09.001) | +| 1.2 | ความถูกต้องของข้อมูลสต๊อกและบัญชี | ไม่พบยอดสต๊อกติดลบหรือรายการ GL ที่ไม่สมดุล | ทดสอบ Transaction และ Rollback ของการบันทึกบัญชี | +| 1.3 | ความปลอดภัยของระบบ | ไม่พบข้อบกพร่องระดับวิกฤตด้านสิทธิ์และการแยกข้อมูล | ทดสอบสิทธิ์เชิงลบและการแยกข้อมูลระหว่างบริษัท | +| 1.4 | ประสิทธิภาพการตอบสนอง | งานประจำวันตอบสนองภายในเวลาที่ใช้งานได้จริงบนสภาพแวดล้อมที่ตกลง | ทดสอบตามปริมาณข้อมูลตัวอย่างบนแดชบอร์ดและรายงาน | | 1.5 | ความสามารถในการเข้าถึง | ใช้งานได้บน Desktop, Tablet และ Mobile (Responsive) | ทดสอบข้ามอุปกรณ์ | **ด้านการดูแลหลังส่งมอบ** @@ -99,7 +99,7 @@ | ลำดับ | หัวข้อ | เกณฑ์คุณภาพ | วิธีประเมิน | | :---: | --- | --- | --- | | 2.1 | การตอบสนองเหตุขัดข้อง | ตอบรับภายใน 4 ชั่วโมง และแก้ไขตามระดับความรุนแรงที่กำหนดใน SLA | บันทึกการให้บริการ | -| 2.2 | การสำรองข้อมูล | มีระบบสำรองข้อมูลอัตโนมัติรายวันและทดสอบกู้คืนได้จริง | Backup & Restore Test (TC-UN13.004) | +| 2.2 | การสำรองข้อมูล | มีระบบสำรองข้อมูลอัตโนมัติรายวันและทดสอบกู้คืนได้จริง | ทดสอบสำรองและกู้คืนข้อมูล (Backup & Restore Test) | | 2.3 | การเฝ้าระวังระบบ | ตรวจสอบสถานะบริการทุก 5 นาที และแจ้งเตือนเมื่อล้มเหลว 2 ครั้งติดกัน | บันทึกการเฝ้าระวัง | ## 4 Software Development Life Cycle Methodology @@ -142,9 +142,9 @@ | 1 | เอกสารบริหารโครงการ (PM Process) | 10 รายการ | | 2 | เอกสารกระบวนการพัฒนา (SI Process) | 12 รายการ | | 3 | ความต้องการลูกค้า (Customer Requirements) | 80 รายการ (CR01–CR14) | -| 4 | ความต้องการซอฟต์แวร์ (SRS) | 49 รายการ (SR01–SR09) | -| 5 | Software Unit | 45 หน่วย (UN01–UN13) | -| 6 | Test Case | 45 รายการ | +| 4 | ความต้องการซอฟต์แวร์ (SRS) | ประมาณ 50 รายการ แบ่งตามกลุ่มระบบในขอบเขตงาน | +| 5 | Software Unit | ประมาณ 45 หน่วย ใน 13 กลุ่มโมดูล | +| 6 | Test Case | อย่างน้อย 1 รายการต่อ Software Unit | | 7 | ตารางฐานข้อมูล | ประมาณ 50 ตาราง ใน 2 ฐานข้อมูล | ### 6.2 Effort Man-Day diff --git a/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690123 V1.0 ApS.md b/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690123 V1.0 ApS.md index c1f8d4d..8e8d96b 100644 --- a/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690123 V1.0 ApS.md +++ b/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690123 V1.0 ApS.md @@ -35,7 +35,7 @@ | รายละเอียด | วันที่ | ผู้จัดประชุม | หัวข้อหลัก | | --- | :---: | --- | --- | -| ประชุมติดตามงวดที่ 3 | 6 กุมภาพันธ์ 2569 | คุณอภิรัชช์ สุภัทรประทีป (ApS) | สรุปความต้องการลูกค้า CR01–CR14 และทบทวนร่างแผนโครงการ | +| ประชุมติดตามงวดที่ 3 | 6 กุมภาพันธ์ 2569 | คุณอภิรัชช์ สุภัทรประทีป (ApS) | สรุปความต้องการลูกค้าและทบทวนร่างแผนโครงการ | ## ผู้จัดทำเอกสาร (Secretary) diff --git a/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690824 V1.0 ApS.md b/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690824 V1.0 ApS.md index a1d16ba..ca90325 100644 --- a/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690824 V1.0 ApS.md +++ b/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690824 V1.0 ApS.md @@ -17,7 +17,7 @@ | 5.2 | Training | 22 ส.ค. 69 | ThS, PaNg | Completed | 100 | อบรมผู้ใช้งาน 6 คน เมื่อ 22 ส.ค. 69 ผ่านการทดลองใช้งานครบทุกขั้นตอน | | 5.3 | Acceptance & Project Closure | 17–24 ส.ค. 69 | SeV, ApS | Completed | 100 | ปิดงานควบคุมปฏิบัติการ 23 ส.ค. 69 และปิดโครงการอย่างเป็นทางการ 24 ส.ค. 69 | | 4.1 | Progress & Meeting Records | 5 ม.ค.–24 ส.ค. 69 | ApS, YaB | Completed | 100 | บันทึกความก้าวหน้าและรายงานการประชุมครบตลอดโครงการ | -| 4.2 | Configuration & Repository Control | 19 ก.พ.–24 ส.ค. 69 | ThS, YaB | Completed | 100 | ควบคุมเวอร์ชันและสำรองข้อมูลครบ พร้อม Tag sdlc-v1.0-final | +| 4.2 | Configuration & Repository Control | 19 ก.พ.–24 ส.ค. 69 | ThS, YaB | Completed | 100 | ควบคุมเวอร์ชันและสำรองข้อมูลครบ | ## ความเสี่ยง/อุปสรรค diff --git a/sdlc/1-PM Process (10 Work Product)/5.Acceptance Report/200-WMS-26-001-00 Acceptance Report 25690817 V1.0 ApS.md b/sdlc/1-PM Process (10 Work Product)/5.Acceptance Report/200-WMS-26-001-00 Acceptance Report 25690817 V1.0 ApS.md index ad5c60e..707fb52 100644 --- a/sdlc/1-PM Process (10 Work Product)/5.Acceptance Report/200-WMS-26-001-00 Acceptance Report 25690817 V1.0 ApS.md +++ b/sdlc/1-PM Process (10 Work Product)/5.Acceptance Report/200-WMS-26-001-00 Acceptance Report 25690817 V1.0 ApS.md @@ -23,7 +23,7 @@ | 6 | WP 6.0 | เอกสาร 200-WMS-26-001-00 Test Case and Test Procedures | ส่งเอกสารจำนวน 1 ชุด | Accepted | | 7 | WP 7.0 | เอกสาร 200-WMS-26-001-00 Validation Results | ส่งเอกสารจำนวน 1 ชุด | Accepted | | 8 | WP 8.0 | เอกสาร 200-WMS-26-001-00 Software User Document | ส่งเอกสารจำนวน 1 ชุด | Accepted | -| 9 | WP 9.0 | ระบบ BRN WMS ที่ผ่านการทดสอบพร้อมนำไปใช้งานจริง | ส่ง Source Code (Git baseline 6c39700) และติดตั้ง | Accepted | +| 9 | WP 9.0 | ระบบ BRN WMS ที่ผ่านการทดสอบพร้อมนำไปใช้งานจริง | ส่ง Source Code ผ่าน Git Repository และติดตั้ง (Git baseline `6c39700`) | Accepted | | 10 | WP 10.0 | เอกสาร 200-WMS-26-001-00 Product Operation Guide | ส่งเอกสารจำนวน 1 ชุด | Accepted | | 11 | WP 11.0 | เอกสาร 200-WMS-26-001-00 Maintenance Document | ส่งเอกสารจำนวน 1 ชุด | Accepted | @@ -49,7 +49,7 @@ | ข้อบกพร่องคงค้าง | ไม่มี | | ผลการตรวจรับโดยรวม | **Accepted** — ตรวจรับส่งมอบระบบครบถ้วน | -ผู้รับมอบได้ตรวจสอบสิ่งส่งมอบทั้งหมดตามเกณฑ์การตรวจรับที่กำหนดในเอกสาร Statement of Work และ Software Project Plan แล้วเห็นว่าครบถ้วนถูกต้อง จึงมีมติตรวจรับส่งมอบระบบเมื่อวันที่ 17 สิงหาคม 2569 โดยงานอบรมผู้ใช้งานและการปิดงานควบคุมปฏิบัติการดำเนินการแล้วเสร็จภายในวันที่ 24 สิงหาคม 2569 ตามแผนปิดโครงการ +ผู้รับมอบได้ตรวจสอบสิ่งส่งมอบทั้งหมดตามเกณฑ์การตรวจรับที่กำหนดในเอกสาร Statement of Work และ Software Project Plan แล้วเห็นว่าครบถ้วนถูกต้อง จึงมีมติตรวจรับส่งมอบระบบเมื่อวันที่ 17 สิงหาคม 2569 โดยงานอบรมผู้ใช้งานและการปิดงานควบคุมปฏิบัติการจะดำเนินการให้แล้วเสร็จภายในวันที่ 24 สิงหาคม 2569 ตามแผนปิดโครงการ ## ผู้จัดทำเอกสาร (Secretary) diff --git a/sdlc/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690123 V1.0 YaB.md b/sdlc/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690123 V1.0 YaB.md index a1f5e90..7efdfa5 100644 --- a/sdlc/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690123 V1.0 YaB.md +++ b/sdlc/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690123 V1.0 YaB.md @@ -54,7 +54,7 @@ | ลำดับ | งาน | ผู้รับผิดชอบ | วันครบกำหนด | สถานะ | | :---: | --- | :---: | :---: | :---: | -| 1 | เก็บและสรุปความต้องการลูกค้า CR01–CR14 (Task 2.1) | NoC, ApS | 6 กุมภาพันธ์ 2569 | Scheduled | +| 1 | เก็บและสรุปความต้องการลูกค้า (Task 2.1) | NoC, ApS | 6 กุมภาพันธ์ 2569 | Scheduled | | 2 | จัดทำร่าง Software Project Plan และ Work Schedule (Task 2.2) | ApS | 13 กุมภาพันธ์ 2569 | Scheduled | ## งานประชุมครั้งถัดไป (Next Meeting) diff --git a/sdlc/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690824 V1.0 YaB.md b/sdlc/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690824 V1.0 YaB.md index d8fc328..ed4780f 100644 --- a/sdlc/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690824 V1.0 YaB.md +++ b/sdlc/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690824 V1.0 YaB.md @@ -52,7 +52,7 @@ | :---: | --- | --- | :---: | :---: | | 1 | ผลการอบรม | อบรมผู้ใช้งาน 6 คน เมื่อ 22 ส.ค. 69 ผู้เข้าอบรมทดลองใช้งานครบทุกขั้นตอนได้สำเร็จ | ThS, PaNg | เสร็จสิ้น | | 2 | การควบคุมปฏิบัติการ | ปิดรายการสำรองฐานข้อมูลอัตโนมัติ (OP-001) และการเฝ้าระวังพร้อมแจ้งเตือน (OP-002) เมื่อ 23 ส.ค. 69 | ThS | เสร็จสิ้น | -| 3 | การสำรองข้อมูลโครงการ | ซิงก์ Branch และ Tag sdlc-v1.0-final ไปยัง Backup Remote และทดสอบเรียกคืนสำเร็จ | ThS, YaB | เสร็จสิ้น | +| 3 | การสำรองข้อมูลโครงการ | ซิงก์ Branch ไปยัง Backup Remote และทดสอบเรียกคืนสำเร็จ | ThS, YaB | เสร็จสิ้น | | 4 | การปิดโครงการ | ที่ประชุมมีมติปิดโครงการอย่างเป็นทางการเมื่อ 24 ส.ค. 69 | SeV, ApS | ปิดโครงการ | ## งานที่ต้องติดตาม (Action Item) diff --git a/sdlc/1-PM Process (10 Work Product)/8.Software Configuration/200-WMS-26-001-00 Software Configuration 25690817 V1.0 ThS.md b/sdlc/1-PM Process (10 Work Product)/8.Software Configuration/200-WMS-26-001-00 Software Configuration 25690817 V1.0 ThS.md index a2ea4bc..94bd8dd 100644 --- a/sdlc/1-PM Process (10 Work Product)/8.Software Configuration/200-WMS-26-001-00 Software Configuration 25690817 V1.0 ThS.md +++ b/sdlc/1-PM Process (10 Work Product)/8.Software Configuration/200-WMS-26-001-00 Software Configuration 25690817 V1.0 ThS.md @@ -50,7 +50,6 @@ | Repository สำรอง (backup) | `git@github.com:thanakorninbox-dev/wms-app.git` | | Branch หลัก | `main` เป็น Baseline ที่ควบคุม | | Baseline ของระบบที่ส่งมอบ | Commit `6c39700` | -| Tag ของชุดเอกสารส่งมอบ | `sdlc-v1.0-final` | | สิทธิ์การเข้าถึง | ยืนยันตัวตนด้วย SSH Key ตามบทบาทของสมาชิกโครงการ | ## การเชื่อมโยงกับการเปลี่ยนแปลง diff --git a/sdlc/1-PM Process (10 Work Product)/9.Project Repository/200-WMS-26-001-00 Project Repository 25690817 V1.0 ThS.md b/sdlc/1-PM Process (10 Work Product)/9.Project Repository/200-WMS-26-001-00 Project Repository 25690817 V1.0 ThS.md index 0c3eedb..036d66a 100644 --- a/sdlc/1-PM Process (10 Work Product)/9.Project Repository/200-WMS-26-001-00 Project Repository 25690817 V1.0 ThS.md +++ b/sdlc/1-PM Process (10 Work Product)/9.Project Repository/200-WMS-26-001-00 Project Repository 25690817 V1.0 ThS.md @@ -19,7 +19,6 @@ | Branch หลัก | `main` | | Branch เอกสารส่งมอบ | `sdlc` | | Baseline ของระบบที่ส่งมอบ | Commit `6c39700` | -| Tag ของชุดเอกสารส่งมอบ | `sdlc-v1.0-final` | | สิทธิ์การเข้าถึง | ยืนยันตัวตนด้วย SSH Key ตามบทบาทของสมาชิกโครงการ | ## โครงสร้างการจัดเก็บ @@ -47,7 +46,7 @@ | :---: | --- | --- | | 1 | โครงสร้าง Repository และประวัติการเปลี่ยนแปลง | ตรวจสอบได้จาก Git Server ตามสิทธิ์ที่ได้รับ | | 2 | Baseline ของระบบที่ส่งมอบ | Commit `6c39700` บน branch `main` | -| 3 | ชุดเอกสารส่งมอบที่ควบคุมแล้ว | Branch `sdlc` และ Tag `sdlc-v1.0-final` | +| 3 | ชุดเอกสารส่งมอบที่ควบคุมแล้ว | Branch `sdlc` | ## ผู้จัดทำเอกสาร (Secretary) diff --git a/sdlc/2-SI Process (12 Work Product)/12.Software design/200-WMS-26-001-00 Software Design 25690306 V1.0 NoC.md b/sdlc/2-SI Process (12 Work Product)/12.Software design/200-WMS-26-001-00 Software Design 25690306 V1.0 NoC.md index 3982fb5..62a8b37 100644 --- a/sdlc/2-SI Process (12 Work Product)/12.Software design/200-WMS-26-001-00 Software Design 25690306 V1.0 NoC.md +++ b/sdlc/2-SI Process (12 Work Product)/12.Software design/200-WMS-26-001-00 Software Design 25690306 V1.0 NoC.md @@ -99,23 +99,23 @@ Wireframe แสดงโครงร่างหน้าจอหลักท ## Software Baseline -หัวข้อนี้ระบุสิ่งที่ถูกกำหนดเป็น Baseline ของซอฟต์แวร์ วันที่กำหนด และผู้อนุมัติ เพื่อให้ตรวจสอบเส้นทาง Baseline → Configuration → Change ได้ในเอกสารชุดเดียวกัน +หัวข้อนี้กำหนดสิ่งที่จะควบคุมเป็น Baseline ของซอฟต์แวร์ เวลาที่กำหนด Baseline และผู้อนุมัติ เพื่อให้ตรวจสอบเส้นทาง Baseline → Configuration → Change ได้ Commit ที่เป็น Baseline จริงจะบันทึกใน Software Configuration (WP 8) เมื่อกำหนด Baseline แต่ละครั้ง | รายการที่กำหนดเป็น Baseline | ค่าที่ควบคุม | ที่จัดเก็บ | | --- | --- | --- | -| Source Code ของแอปพลิเคชัน | Git commit `6c39700` บน branch `main` | Repository หลัก `git@188.166.228.62:nok/wms-app.git` | +| Source Code ของแอปพลิเคชัน | Git commit บน branch `main` ณ วันที่กำหนด Baseline | Repository หลัก `git@188.166.228.62:nok/wms-app.git` | | โครงสร้างฐานข้อมูล | Schema ที่สร้างโดย `setup.php` และ `docker/mariadb/init-wms2.sql` | ควบคุมใน Repository เดียวกัน | | ค่าตั้งค่าและชุดติดตั้ง | `docker-compose.yml`, `docker/`, `.env.example` (ไม่รวมค่าความลับ) | ควบคุมใน Repository เดียวกัน | -| เอกสาร Work Products | Branch `sdlc` และ Tag `sdlc-v1.0-final` | Repository หลักและ Remote สำรอง `git@github.com:thanakorninbox-dev/wms-app.git` | +| เอกสาร Work Products | Branch `sdlc` | Repository หลักและ Remote สำรอง `git@github.com:thanakorninbox-dev/wms-app.git` | | หัวข้อ | รายละเอียด | | --- | --- | -| วันที่กำหนด Baseline | 17 สิงหาคม 2569 (Baseline ของระบบที่ส่งมอบ) | +| เวลาที่กำหนด Baseline | เมื่อพัฒนาครบทุกโมดูล (Baseline การพัฒนา ตามแผน 29 พฤษภาคม 2569) และเมื่อตรวจรับส่งมอบ (Baseline ของระบบที่ส่งมอบ ตามแผน 17 สิงหาคม 2569) | | ผู้จัดทำ Baseline | คุณธนกร สถิตวิทยากุล (Developer) | | ผู้ตรวจสอบ | คุณนพพงษ์ เจริญสุข (System Analyst) และ คุณปริญ งามขำ (QA/Tester) | -| ผู้อนุมัติ | คุณเสรี วิริยะสกุลธรณ์ (Project Sponsor) พร้อมการตรวจรับเมื่อ 17 สิงหาคม 2569 | +| ผู้อนุมัติ | คุณเสรี วิริยะสกุลธรณ์ (Project Sponsor) โดย Baseline ของระบบที่ส่งมอบอนุมัติพร้อมการตรวจรับ | | เอกสารควบคุมที่เกี่ยวข้อง | Software Configuration (WP 8) ระบุรายการ Configuration Item และการควบคุมเวอร์ชัน | -| การสอบกลับ | Traceability Record (WP 13) เชื่อมโยงความต้องการกับ Software Unit และ Test Case บน Baseline นี้ | +| การสอบกลับ | Traceability Record (WP 13) เชื่อมโยงความต้องการกับ Software Unit และ Test Case ที่จะกำหนดภายหลัง | | การเปลี่ยนแปลง Baseline | ต้องพิจารณาตามเกณฑ์ใน Change Report และบันทึกผลใน Correction Register เมื่อเป็นการแก้ไขข้อบกพร่อง | ## Software Unit diff --git a/sdlc/2-SI Process (12 Work Product)/13.Traceability record/200-WMS-26-001-00 Traceability Record 25690306 V1.0 NoC.md b/sdlc/2-SI Process (12 Work Product)/13.Traceability record/200-WMS-26-001-00 Traceability Record 25690306 V1.0 NoC.md index 2952a22..08f0b78 100644 --- a/sdlc/2-SI Process (12 Work Product)/13.Traceability record/200-WMS-26-001-00 Traceability Record 25690306 V1.0 NoC.md +++ b/sdlc/2-SI Process (12 Work Product)/13.Traceability record/200-WMS-26-001-00 Traceability Record 25690306 V1.0 NoC.md @@ -12,106 +12,106 @@ ## วัตถุประสงค์ (Objective) -เอกสารที่เชื่อมโยงทุกขั้นตอนของโครงการ ตั้งแต่ความต้องการของลูกค้า → ความต้องการซอฟต์แวร์ → การออกแบบ → การทดสอบ เพื่อยืนยันความครบถ้วนของ Customer Requirements และลดความเสี่ยงของข้อบกพร่องและความต้องการที่ตกหล่น +เอกสารที่เชื่อมโยงความต้องการของลูกค้า → ความต้องการซอฟต์แวร์ → การออกแบบ (Software Unit) ณ วันที่ออกแบบระบบ เพื่อยืนยันความครบถ้วนของ Customer Requirements ก่อนเริ่มพัฒนา และลดความเสี่ยงของความต้องการที่ตกหล่น การสอบกลับไปยัง Test Case และผลการทดสอบจะเพิ่มใน Traceability Record ฉบับส่งมอบ หลังจัดทำ Test Case and Test Procedures ## Traceability Matrix -| CR ID | CR Topic | SRS ID | SRS Topic | Unit ID | Unit Topic | Test Case ID | หลักฐานอื่น (Document) | -| --- | --- | --- | --- | --- | --- | --- | --- | -| CR01: Feature & Functional Characteristics | | | | | | | | -| CR01:001 | ระบบต้องรองรับการลงทะเบียนเจ้าของบริษัทและการเชิญผู้ใช้งานเข้าร่วมบริษัท (Onboarding) | SR03:001, SR08:001 | โมดูลผู้ใช้งานและสิทธิ์: ลงทะเบียน, Onboarding, เข้าสู่ระบบ, บทบาท Owner/Admin/Staff/Viewer, สิทธิ์แอปพลิเคชัน (app/login/, UserManager, PasswordManager, PasswordResetManager) / ฐานข้อมูล wms: user, company_list, company_map_user, company_setting, company_smtp, company_usage, whitelist | UN01.001 | Identity – Register & Onboarding | TC-UN01.001 | - | -| CR01:002 | ระบบต้องยืนยันตัวตนผู้ใช้และบังคับสิทธิ์ตามบทบาท Owner, Admin, Staff และ Viewer | SR03:001, SR04:001, SR07:005 | โมดูลผู้ใช้งานและสิทธิ์: ลงทะเบียน, Onboarding, เข้าสู่ระบบ, บทบาท Owner/Admin/Staff/Viewer, สิทธิ์แอปพลิเคชัน (app/login/, UserManager, PasswordManager, PasswordResetManager) / ทุกโมดูลปฏิบัติการต้องเข้าถึงได้ผ่านการยืนยันตัวตนและการตรวจสิทธิ์ของโมดูลผู้ใช้งานเท่านั้น / RBAC (Owner/Admin/Staff/Viewer) ต้องบังคับใช้ที่ฝั่งเซิร์ฟเวอร์ ไม่ใช่เพียงการซ่อนเมนู | UN01.002 | Identity – Login & Role Guard | TC-UN01.002 | - | -| CR01:003 | ระบบต้องรองรับการกู้คืนรหัสผ่าน การควบคุม Session และการยืนยัน OTP ตามที่กำหนด | SR03:001, SR07:003 | โมดูลผู้ใช้งานและสิทธิ์: ลงทะเบียน, Onboarding, เข้าสู่ระบบ, บทบาท Owner/Admin/Staff/Viewer, สิทธิ์แอปพลิเคชัน (app/login/, UserManager, PasswordManager, PasswordResetManager) / ระบบต้องอนุญาต Session ที่ใช้งานอยู่เพียงหนึ่งต่อบัญชี (บล็อก Concurrent Login) | UN01.003 | Identity – Password Recovery / OTP / Session | TC-UN01.003 | - | -| CR01:004 | ระบบต้องให้ผู้ดูแลจัดการข้อมูลบริษัท, SMTP, การตั้งค่าระบบ, ผู้ใช้งาน และสิทธิ์การเข้าถึงแอปพลิเคชัน | SR03:001, SR03:002 | โมดูลผู้ใช้งานและสิทธิ์: ลงทะเบียน, Onboarding, เข้าสู่ระบบ, บทบาท Owner/Admin/Staff/Viewer, สิทธิ์แอปพลิเคชัน (app/login/, UserManager, PasswordManager, PasswordResetManager) / โมดูลตั้งค่าบริษัท: ข้อมูลบริษัท, SMTP, การตั้งค่าระบบ (app/setting/, CompanyProfileManager, CompanySettingManager, SmtpManager) | UN01.004, UN02.001, UN02.002 | Identity – User & App-Access Administration / Company – Profile & System Settings / Company – SMTP & Mail Dispatch | TC-UN01.004, TC-UN02.001, TC-UN02.002 | - | -| CR01:005 | ระบบต้องจัดการข้อมูลคลังสินค้า, พื้นที่/ช่องจัดเก็บ, หมวดสินค้า, สินค้า, ประเภทผู้ติดต่อ และผู้ติดต่อ | SR03:003, SR08:002 | โมดูลข้อมูลหลัก: คลังสินค้า, พื้นที่/ช่องจัดเก็บ, หมวดสินค้า, สินค้า, ผู้ติดต่อ (app/inventory/, app/contact/, WarehouseManager, ProductManager, ContactManager) / ตารางข้อมูลหลัก (wms2): md_warehouse, md_storage, md_bin, md_product, md_product_category, md_contact, md_contact_type, md_account, md_account_formula, md_account_formula_item, md_department, md_barcode, md_sku_barcode_label, md_lot, md_lock_operation | UN03.001, UN03.002, UN03.003 | Master – Warehouse / Storage / Bin / Master – Product & Category / Master – Contact | TC-UN03.001, TC-UN03.002, TC-UN03.003 | - | -| CR01:006 | ระบบต้องรองรับโครงสร้างตำแหน่งจัดเก็บทั้งแบบคลังเดียวและแบบหลายชั้น (คลัง/พื้นที่/ช่อง) | SR03:003 | โมดูลข้อมูลหลัก: คลังสินค้า, พื้นที่/ช่องจัดเก็บ, หมวดสินค้า, สินค้า, ผู้ติดต่อ (app/inventory/, app/contact/, WarehouseManager, ProductManager, ContactManager) | UN03.004 | Master – Warehouse Layer Configuration | TC-UN03.004 | - | -| CR01:007 | ระบบต้องบันทึกการรับสินค้าเข้า (Stock-in) ระบุสินค้า จำนวน ตำแหน่ง เอกสารอ้างอิง และข้อมูลติดตาม | SR03:004, SR08:003 | โมดูลควบคุมสินค้าคงคลัง: รับเข้า, จ่ายออก, โอนย้าย, Lot/Serial/Expiry, บาร์โค้ด, แนบไฟล์ (app/ics/, StockManager, StockSourceManager, BarcodeManager, FileUploader) / ตารางรายการ (td_*): td_stock, td_order/_item, td_quotation/_item, td_invoice/_item, td_return/_item, td_purchase_request/_item, td_purchase_order/_item, td_supplier_return/_item, td_receipt/_item, td_receipt_billing/_item, td_payment/_item, td_payment_billing/_item, td_gl/td_gl_item, td_batch_action, td_bin_log | UN04.001 | ICS – Stock-in | TC-UN04.001 | - | -| CR01:008 | ระบบต้องบันทึกการจ่ายสินค้าออก (Stock-out) โดยตรวจสอบสิทธิ์และยอดคงเหลือก่อนจ่าย | SR03:004, SR09:003 | โมดูลควบคุมสินค้าคงคลัง: รับเข้า, จ่ายออก, โอนย้าย, Lot/Serial/Expiry, บาร์โค้ด, แนบไฟล์ (app/ics/, StockManager, StockSourceManager, BarcodeManager, FileUploader) / การเปลี่ยนแปลงที่เกี่ยวข้องกัน (เอกสาร + สต๊อก + GL) ต้องเป็น Transaction และป้องกันยอดติดลบ/ซ้ำ | UN04.002 | ICS – Stock-out | TC-UN04.002 | - | -| CR01:009 | ระบบต้องโอนย้ายสินค้าระหว่างตำแหน่งจัดเก็บที่ได้รับอนุญาตโดยยอดต้นทาง/ปลายทางสมดุลกัน | SR03:004 | โมดูลควบคุมสินค้าคงคลัง: รับเข้า, จ่ายออก, โอนย้าย, Lot/Serial/Expiry, บาร์โค้ด, แนบไฟล์ (app/ics/, StockManager, StockSourceManager, BarcodeManager, FileUploader) | UN04.003 | ICS – Stock Transfer | TC-UN04.003 | - | -| CR01:010 | ระบบต้องติดตาม Lot, Serial Number และวันหมดอายุของสินค้าที่เกี่ยวข้อง | SR03:004, SR08:002 | โมดูลควบคุมสินค้าคงคลัง: รับเข้า, จ่ายออก, โอนย้าย, Lot/Serial/Expiry, บาร์โค้ด, แนบไฟล์ (app/ics/, StockManager, StockSourceManager, BarcodeManager, FileUploader) / ตารางข้อมูลหลัก (wms2): md_warehouse, md_storage, md_bin, md_product, md_product_category, md_contact, md_contact_type, md_account, md_account_formula, md_account_formula_item, md_department, md_barcode, md_sku_barcode_label, md_lot, md_lock_operation | UN04.004 | ICS – Lot / Serial / Expiry | TC-UN04.004 | - | -| CR01:011 | ระบบต้องแสดงภาพรวมสต๊อก, ประวัติความเคลื่อนไหว, ความจุ/การใช้พื้นที่, สินค้าใกล้หมด, สินค้าหมดอายุ และข้อมูล Lot | SR03:009 | โมดูลรายงานและแดชบอร์ด: รายงานสต๊อก, รายงานการเงิน, แดชบอร์ด (app/reports/, app/dashboard/, app/ac_dashboard/, ReportManager, EtlStockManager) | UN09.002 | Reports – Stock Reports | TC-UN09.002 | - | -| CR01:012 | ระบบต้องพิมพ์บาร์โค้ดสินค้า (SKU) และตำแหน่งจัดเก็บ และรองรับการสแกนในหน้าจอที่กำหนด | SR03:004 | โมดูลควบคุมสินค้าคงคลัง: รับเข้า, จ่ายออก, โอนย้าย, Lot/Serial/Expiry, บาร์โค้ด, แนบไฟล์ (app/ics/, StockManager, StockSourceManager, BarcodeManager, FileUploader) | UN04.005 | ICS – Barcode Label & Scan | TC-UN04.005 | - | -| CR01:013 | ระบบต้องสร้างและจัดการใบเสนอราคา, ใบสั่งขาย, ใบแจ้งหนี้, ใบรับคืน และใบลดหนี้ | SR03:005, SR04:002 | โมดูลขาย: ใบเสนอราคา, ใบสั่งขาย, ใบแจ้งหนี้, ใบรับคืน/ใบลดหนี้ (app/order/, app/revenue/, QuotationManager, OrderManager, InvoiceManager, ReturnManager) / โมดูลขาย จัดซื้อ และการเงิน ต้องบันทึกผลกระทบต่อสต๊อกและ GL ผ่านโมดูลคลังสินค้าและบัญชี ไม่ทำซ้ำตรรกะ | UN05.001, UN05.002, UN05.003, UN05.004 | Sales – Quotation / Sales – Sales Order / Sales – Invoice / Sales – Return / Credit Note | TC-UN05.001, TC-UN05.002, TC-UN05.003, TC-UN05.004 | - | -| CR01:014 | ระบบต้องสร้างและจัดการใบขอซื้อ, ใบสั่งซื้อ, ใบแจ้งหนี้ซื้อ และใบคืนสินค้าผู้ขาย | SR03:006, SR04:002 | โมดูลจัดซื้อ: ใบขอซื้อ, ใบสั่งซื้อ, ใบแจ้งหนี้ซื้อ, ใบคืนสินค้าผู้ขาย (app/po/, PurchaseRequestManager, PurchaseOrderManager, SupplierReturnManager) / โมดูลขาย จัดซื้อ และการเงิน ต้องบันทึกผลกระทบต่อสต๊อกและ GL ผ่านโมดูลคลังสินค้าและบัญชี ไม่ทำซ้ำตรรกะ | UN06.001, UN06.002, UN06.003, UN06.004 | Purchasing – Purchase Request / Purchasing – Purchase Order / Purchasing – Purchase Invoice / Purchasing – Supplier Return | TC-UN06.001, TC-UN06.002, TC-UN06.003, TC-UN06.004 | - | -| CR01:015 | ระบบต้องสร้างและจัดการใบวางบิลรับ, ใบเสร็จรับเงิน, ใบวางบิลจ่าย และใบสำคัญจ่าย | SR03:007, SR04:002 | โมดูลการเงิน: ใบวางบิลรับ, ใบเสร็จ, ใบวางบิลจ่าย, ใบสำคัญจ่าย (app/finance/, ReceiptBillingManager, ReceiptManager, PaymentBillingManager, PaymentManager) / โมดูลขาย จัดซื้อ และการเงิน ต้องบันทึกผลกระทบต่อสต๊อกและ GL ผ่านโมดูลคลังสินค้าและบัญชี ไม่ทำซ้ำตรรกะ | UN07.001, UN07.002 | Finance – Receipt Billing & Receipt / Finance – Payment Billing & Payment | TC-UN07.001, TC-UN07.002 | - | -| CR01:016 | ระบบต้องจัดการผังบัญชี, แผนก, สูตรบัญชี, สมุดรายวัน และบัญชีแยกประเภท | SR03:008 | โมดูลบัญชี: ผังบัญชี, แผนก, สูตรบัญชี, สมุดรายวัน, บัญชีแยกประเภท (app/accounting/, app/journal/, PostingManager) | UN08.001, UN08.002 | Accounting – Chart of Accounts / Departments / Formulas / Accounting – Journal & GL Posting | TC-UN08.001, TC-UN08.002 | - | -| CR01:017 | ระบบต้องจัดทำรายงานงบทดลอง, งบกำไรขาดทุน, งบดุล, ภาษีมูลค่าเพิ่ม, สมุดรายวัน และความเคลื่อนไหว GL | SR03:009 | โมดูลรายงานและแดชบอร์ด: รายงานสต๊อก, รายงานการเงิน, แดชบอร์ด (app/reports/, app/dashboard/, app/ac_dashboard/, ReportManager, EtlStockManager) | UN09.003 | Reports – Financial Reports | TC-UN09.003 | - | -| CR01:018 | ระบบต้องออกเลขที่เอกสารอัตโนมัติและควบคุมสถานะ/วงจรชีวิตของเอกสาร | SR03:010, SR04:005, SR08:004 | โมดูลควบคุมเอกสาร: ออกเลขที่เอกสาร, วงจรชีวิต/สถานะ, ประวัติรายการ (DocumentNumberManager, BatchActionManager) / ทุกโมดูลที่สร้างเอกสารธุรกิจต้องเรียกใช้โมดูลควบคุมเอกสารเพื่อออกเลขที่เอกสาร / ตารางสรุปยอดและควบคุมเอกสาร: etl_stock_summary, etl_gl_summary, document_number_sequences, document_types, schema_migrations | UN10.001, UN10.002 | Document – Numbering / Document – Lifecycle & Status | TC-UN10.001, TC-UN10.002 | - | -| CR01:019 | ระบบต้องรองรับการแนบไฟล์ที่อนุญาตกับรายการที่กำหนด | SR03:004 | โมดูลควบคุมสินค้าคงคลัง: รับเข้า, จ่ายออก, โอนย้าย, Lot/Serial/Expiry, บาร์โค้ด, แนบไฟล์ (app/ics/, StockManager, StockSourceManager, BarcodeManager, FileUploader) | UN04.006 | ICS – File Attachment | TC-UN04.006 | - | -| CR01:020 | ระบบต้องให้ผู้ใช้กรอง ดู พิมพ์ และส่งออกรายงานปฏิบัติการและรายงานผู้บริหาร | SR03:009 | โมดูลรายงานและแดชบอร์ด: รายงานสต๊อก, รายงานการเงิน, แดชบอร์ด (app/reports/, app/dashboard/, app/ac_dashboard/, ReportManager, EtlStockManager) | UN09.004 | Reports – Filter / Print / Export | TC-UN09.004 | - | -| CR01:021 | ระบบต้องแจ้งเตือนผู้ใช้ที่เกี่ยวข้องเมื่อสถานะเอกสารเปลี่ยนหรือมีเหตุการณ์ปฏิบัติการ | SR03:011, SR04:004, SR06:005 | บริการแจ้งเตือนและงานตามกำหนดเวลา: Socket.IO และ Scheduler (nodejs/server.js, nodejs/scheduler.js, app/cron/) / บริการ Node.js ต้องรับเหตุการณ์จากแอปพลิเคชัน PHP ผ่าน Endpoint ภายในที่ป้องกันด้วย Secret เท่านั้น / Browser ต้องเชื่อมต่อ Socket.IO Endpoint (NODE_PUBLIC_URL) เพื่อรับการแจ้งเตือน | UN11.001 | Node – Socket.IO Notification Server | TC-UN11.001 | - | -| CR01:022 | ระบบต้องสรุปยอดสต๊อก/GL และแจ้งเตือนสินค้าใกล้หมดและใบแจ้งหนี้ค้างชำระตามกำหนดเวลา | SR03:011, SR05:002, SR08:004 | บริการแจ้งเตือนและงานตามกำหนดเวลา: Socket.IO และ Scheduler (nodejs/server.js, nodejs/scheduler.js, app/cron/) / ยอดสรุปสต๊อก/GL/แดชบอร์ดต้องคำนวณล่วงหน้าตามกำหนดเวลา (etl_stock_summary, etl_gl_summary) / ตารางสรุปยอดและควบคุมเอกสาร: etl_stock_summary, etl_gl_summary, document_number_sequences, document_types, schema_migrations | UN11.002 | Node – Scheduler (ETL & Alerts) | TC-UN11.002 | - | -| CR01:023 | ระบบต้องเก็บผู้สร้าง ผู้แก้ไข สถานะ และประวัติรายการเพื่อการตรวจสอบ | SR03:010, SR09:001 | โมดูลควบคุมเอกสาร: ออกเลขที่เอกสาร, วงจรชีวิต/สถานะ, ประวัติรายการ (DocumentNumberManager, BatchActionManager) / การลบ ยกเลิก หรือ Void เอกสารควบคุมต้องมี Confirm Dialog | UN10.003 | Document – Audit Fields & History | TC-UN10.003 | - | -| CR01:024 | ระบบต้องจำกัดข้อมูลบริษัทและคลังสินค้าให้เฉพาะผู้ใช้ที่ได้รับอนุญาตในบริบทปัจจุบัน | SR04:001, SR04:003, SR07:002 | ทุกโมดูลปฏิบัติการต้องเข้าถึงได้ผ่านการยืนยันตัวตนและการตรวจสิทธิ์ของโมดูลผู้ใช้งานเท่านั้น / โมดูลรายงานต้องอ่านข้อมูลภายใต้ขอบเขตบริษัท/คลังที่โมดูลข้อมูลหลักและคลังสินค้าบังคับใช้ / การทำงานฝั่งเซิร์ฟเวอร์ต้องตรวจสอบข้อมูลนำเข้า ยืนยันตัวตน ตรวจสิทธิ์ และจำกัดขอบเขตบริษัท/คลัง | UN12.001 | Security – Tenant Scope Guard | TC-UN12.001 | - | -| CR02: Performance Considerations | | | | | | | | -| CR02:001 | ระบบต้องตอบสนองงานประจำวัน (เปิดหน้าจอ, ค้นหา, สร้างเอกสาร) ภายในเวลาที่ใช้งานได้จริงบนสภาพแวดล้อมที่ตกลง | SR05:001 | งานประจำวัน (เปิดหน้าจอ, ค้นหา, สร้างเอกสาร) ต้องเสร็จภายในเวลาที่ใช้งานได้จริงบนสภาพแวดล้อมที่ตกลง | UN09.001 | Reports – Dashboard & Aggregates | TC-UN09.001 | - | -| CR02:002 | ระบบต้องมีตารางสรุปยอด (Aggregate) เพื่อให้แดชบอร์ดและรายงานแสดงผลได้โดยไม่ต้องคำนวณใหม่ทุกครั้ง | SR05:002 | ยอดสรุปสต๊อก/GL/แดชบอร์ดต้องคำนวณล่วงหน้าตามกำหนดเวลา (etl_stock_summary, etl_gl_summary) | UN09.001, UN11.002 | Reports – Dashboard & Aggregates / Node – Scheduler (ETL & Alerts) | TC-UN09.001, TC-UN11.002 | - | -| CR02:003 | ระบบต้องรองรับปริมาณข้อมูลและผู้ใช้พร้อมกันในระดับที่ตกลงสำหรับสภาพแวดล้อมใช้งานจริง | SR05:003 | ระบบต้องรองรับปริมาณข้อมูลและผู้ใช้พร้อมกันตามที่ตกลงสำหรับสภาพแวดล้อมใช้งานจริง | UN09.001 | Reports – Dashboard & Aggregates | TC-UN09.001 | - | -| CR03: Interface Considerations | | | | | | | | -| CR03:001 | ระบบต้องเชื่อมต่อฐานข้อมูล MySQL/MariaDB 2 ฐาน (wms สำหรับผู้ใช้/บริษัท และ wms2 สำหรับคลัง/บัญชี) | SR06:001 | แอปพลิเคชัน PHP ต้องเชื่อมต่อฐานข้อมูล MariaDB 2 ฐาน: wms (ผู้ใช้/บริษัท) และ wms2 (คลัง/บัญชี) | UN13.001 | Deploy – setup.php Schema Installer | TC-UN13.001 | - | -| CR03:002 | ระบบต้องใช้งานผ่าน Web Browser มาตรฐาน (Chrome, Edge, Firefox) ได้ | SR06:002 | ระบบต้องใช้งานได้บน Chrome, Edge และ Firefox รุ่นปัจจุบัน | UN01.002 | Identity – Login & Role Guard | TC-UN01.002 | - | -| CR03:003 | ระบบต้องส่งเหตุการณ์ไปยังบริการ Node.js ผ่าน Endpoint ภายในที่ป้องกันด้วย Secret | SR06:004, SR04:004 | แอปพลิเคชัน PHP ต้องส่งเหตุการณ์ไป Node.js ผ่าน HTTP Endpoint ภายใน (NODE_EMIT_URL + NODE_EMIT_SECRET) และส่งอีเมลผ่าน SMTP ต่อบริษัท / บริการ Node.js ต้องรับเหตุการณ์จากแอปพลิเคชัน PHP ผ่าน Endpoint ภายในที่ป้องกันด้วย Secret เท่านั้น | UN11.001 | Node – Socket.IO Notification Server | TC-UN11.001 | - | -| CR03:004 | Browser ต้องเชื่อมต่อ Socket.IO Endpoint สาธารณะเพื่อรับการแจ้งเตือนแบบ Real-time | SR06:005 | Browser ต้องเชื่อมต่อ Socket.IO Endpoint (NODE_PUBLIC_URL) เพื่อรับการแจ้งเตือน | UN11.001 | Node – Socket.IO Notification Server | TC-UN11.001 | - | -| CR03:005 | ระบบต้องส่งอีเมล Onboarding, กู้คืนรหัสผ่าน และแจ้งเตือนผ่าน SMTP ที่ตั้งค่าต่อบริษัท | SR06:004, SR03:002 | แอปพลิเคชัน PHP ต้องส่งเหตุการณ์ไป Node.js ผ่าน HTTP Endpoint ภายใน (NODE_EMIT_URL + NODE_EMIT_SECRET) และส่งอีเมลผ่าน SMTP ต่อบริษัท / โมดูลตั้งค่าบริษัท: ข้อมูลบริษัท, SMTP, การตั้งค่าระบบ (app/setting/, CompanyProfileManager, CompanySettingManager, SmtpManager) | UN02.002 | Company – SMTP & Mail Dispatch | TC-UN02.002 | - | -| CR04: Required System Characteristics | | | | | | | | -| CR04:001 | ระบบต้องพัฒนาบนสถาปัตยกรรม Web-based Application | SR02:001 | ระบบต้องเป็น Web-based Application แบบหลายหน้า (Multi-page PHP) | UN01.002 | Identity – Login & Role Guard | TC-UN01.002 | - | -| CR04:002 | ระบบต้องเก็บข้อมูลแบบ Relational Database และรักษา Referential Integrity | SR08:001, SR08:002, SR08:003 | ฐานข้อมูล wms: user, company_list, company_map_user, company_setting, company_smtp, company_usage, whitelist / ตารางข้อมูลหลัก (wms2): md_warehouse, md_storage, md_bin, md_product, md_product_category, md_contact, md_contact_type, md_account, md_account_formula, md_account_formula_item, md_department, md_barcode, md_sku_barcode_label, md_lot, md_lock_operation / ตารางรายการ (td_*): td_stock, td_order/_item, td_quotation/_item, td_invoice/_item, td_return/_item, td_purchase_request/_item, td_purchase_order/_item, td_supplier_return/_item, td_receipt/_item, td_receipt_billing/_item, td_payment/_item, td_payment_billing/_item, td_gl/td_gl_item, td_batch_action, td_bin_log | UN13.001 | Deploy – setup.php Schema Installer | TC-UN13.001 | - | -| CR04:003 | ระบบต้องรองรับการเข้าสู่ระบบด้วย Username/Password และกำหนดบทบาทผู้ใช้ | SR04:001 | ทุกโมดูลปฏิบัติการต้องเข้าถึงได้ผ่านการยืนยันตัวตนและการตรวจสิทธิ์ของโมดูลผู้ใช้งานเท่านั้น | UN01.002 | Identity – Login & Role Guard | TC-UN01.002 | - | -| CR04:004 | ระบบต้องทำงานบน PHP 8 ขึ้นไป, MySQL/MariaDB และ Node.js | SR01:002 | ระบบต้องใช้เทคโนโลยี PHP 8 ขึ้นไป, MySQL/MariaDB และ Node.js (Socket.IO, pm2) | UN13.001 | Deploy – setup.php Schema Installer | TC-UN13.001 | - | -| CR05: Human Engineering Considerations | | | | | | | | -| CR05:001 | UI ต้องเป็น Responsive ใช้งานได้ทั้งบน Desktop และอุปกรณ์หน้าคลังสินค้า (Tablet/Mobile) | SR02:002 | ส่วนติดต่อผู้ใช้ต้องเป็น Responsive Design รองรับ Desktop / Tablet / Mobile | UN01.002 | Identity – Login & Role Guard | TC-UN01.002 | - | -| CR05:002 | เมนูและปุ่มคำสั่งต้องแสดงตามบทบาทและสิทธิ์การเข้าถึงของผู้ใช้ | SR04:001 | ทุกโมดูลปฏิบัติการต้องเข้าถึงได้ผ่านการยืนยันตัวตนและการตรวจสิทธิ์ของโมดูลผู้ใช้งานเท่านั้น | UN01.002 | Identity – Login & Role Guard | TC-UN01.002 | - | -| CR05:003 | ระบบต้องแสดงผลการตรวจสอบข้อมูล สถานะ ความสำเร็จ และข้อผิดพลาดอย่างชัดเจน | SR09:002 | ข้อผิดพลาดต้องแสดงข้อความที่ผู้ใช้เข้าใจได้แทน Fatal Error | UN10.002 | Document – Lifecycle & Status | TC-UN10.002 | - | -| CR05:004 | ระบบต้องมีขั้นตอนยืนยันก่อนลบ ยกเลิก หรือทำรายการที่ย้อนกลับไม่ได้ | SR09:001 | การลบ ยกเลิก หรือ Void เอกสารควบคุมต้องมี Confirm Dialog | UN10.002 | Document – Lifecycle & Status | TC-UN10.002 | - | -| CR05:005 | ระบบต้องพิมพ์เอกสารธุรกิจและฉลากบาร์โค้ดในรูปแบบที่ใช้งานได้ | SR03:004 | โมดูลควบคุมสินค้าคงคลัง: รับเข้า, จ่ายออก, โอนย้าย, Lot/Serial/Expiry, บาร์โค้ด, แนบไฟล์ (app/ics/, StockManager, StockSourceManager, BarcodeManager, FileUploader) | UN04.005 | ICS – Barcode Label & Scan | TC-UN04.005 | - | -| CR06: Security Considerations | | | | | | | | -| CR06:001 | การเชื่อมต่อในสภาพแวดล้อมใช้งานจริงต้องเข้ารหัสด้วย HTTPS/TLS | SR07:001 | การเชื่อมต่อในสภาพแวดล้อมใช้งานจริงต้องผ่าน HTTPS/TLS | UN12.004 | Security – TLS & Secret Configuration | TC-UN12.004 | - | -| CR06:002 | ค่าตั้งค่าและความลับของระบบต้องไม่ถูกเก็บใน Source Control และไม่เข้าถึงได้จากเว็บสาธารณะ | SR01:005 | ค่าตั้งค่าและความลับ (app/config.php, .env) ต้องถูกยกเว้นจาก Source Control และสร้างขึ้นตอนติดตั้ง | UN13.003, UN12.004 | Deploy – .env Generator / Security – TLS & Secret Configuration | TC-UN13.003, TC-UN12.004 | - | -| CR06:003 | การทำงานฝั่งเซิร์ฟเวอร์ต้องตรวจสอบข้อมูลนำเข้า ยืนยันตัวตน ตรวจสิทธิ์ และจำกัดขอบเขตบริษัท/คลัง | SR07:002 | การทำงานฝั่งเซิร์ฟเวอร์ต้องตรวจสอบข้อมูลนำเข้า ยืนยันตัวตน ตรวจสิทธิ์ และจำกัดขอบเขตบริษัท/คลัง | UN12.002 | Security – Server-side Validation | TC-UN12.002 | - | -| CR06:004 | ระบบต้องจำกัดสิทธิ์การเข้าถึงตามบทบาท (Role-based Access Control) ทั้งใน UI และฝั่งเซิร์ฟเวอร์ | SR07:005 | RBAC (Owner/Admin/Staff/Viewer) ต้องบังคับใช้ที่ฝั่งเซิร์ฟเวอร์ ไม่ใช่เพียงการซ่อนเมนู | UN01.002 | Identity – Login & Role Guard | TC-UN01.002 | - | -| CR06:005 | ระบบต้องป้องกัน SQL Injection และ Cross-Site Scripting | SR07:004 | ระบบต้องป้องกัน SQL Injection และ Cross-Site Scripting ทั้งด้านรับข้อมูลและแสดงผล | UN12.002 | Security – Server-side Validation | TC-UN12.002 | - | -| CR06:006 | ระบบต้องบล็อกการเข้าสู่ระบบซ้ำซ้อน (Concurrent Login) ของบัญชีเดียวกัน | SR07:003 | ระบบต้องอนุญาต Session ที่ใช้งานอยู่เพียงหนึ่งต่อบัญชี (บล็อก Concurrent Login) | UN01.003 | Identity – Password Recovery / OTP / Session | TC-UN01.003 | - | -| CR07: Environmental Considerations | | | | | | | | -| CR07:001 | ระบบต้องทำงานบน Linux Server ในรูปแบบติดตั้งเอง (LAMP) หรือ Docker Compose | SR01:003 | ระบบต้องติดตั้งบน Linux Server ได้ทั้งแบบ Manual (setup.php) และ Docker Compose (php-apache, mariadb, node/pm2) | UN13.001, UN13.002 | Deploy – setup.php Schema Installer / Deploy – Docker Compose Stack | TC-UN13.001, TC-UN13.002 | - | -| CR07:002 | ระบบต้องใช้เขตเวลา Asia/Bangkok อย่างสม่ำเสมอทั้งแอปพลิเคชันและงานตามกำหนดเวลา | SR01:006 | แอปพลิเคชันและงานตามกำหนดเวลาต้องใช้เขตเวลา Asia/Bangkok | UN11.002 | Node – Scheduler (ETL & Alerts) | TC-UN11.002 | - | -| CR07:003 | ระบบต้องใช้งานได้บนอุปกรณ์ Desktop และอุปกรณ์พกพาผ่าน Web Browser | SR06:003, SR02:002 | ระบบต้องรองรับ Mobile/Tablet Browser ผ่าน Responsive UI / ส่วนติดต่อผู้ใช้ต้องเป็น Responsive Design รองรับ Desktop / Tablet / Mobile | UN01.002 | Identity – Login & Role Guard | TC-UN01.002 | - | -| CR07:004 | ระบบต้องแยกข้อมูลสาธิต/ทดสอบออกจากข้อมูลใช้งานจริงได้ | SR01:003 | ระบบต้องติดตั้งบน Linux Server ได้ทั้งแบบ Manual (setup.php) และ Docker Compose (php-apache, mariadb, node/pm2) | UN13.001 | Deploy – setup.php Schema Installer | TC-UN13.001 | - | -| CR08: Operational Considerations | | | | | | | | -| CR08:001 | ระบบต้องมีการสำรองฐานข้อมูลอัตโนมัติรายวัน | SR01:003 | ระบบต้องติดตั้งบน Linux Server ได้ทั้งแบบ Manual (setup.php) และ Docker Compose (php-apache, mariadb, node/pm2) | UN13.004 | Deploy – Backup & Restore | TC-UN13.004 | - | -| CR08:002 | ระบบต้องกู้คืนข้อมูลจากชุดสำรองได้ตามขั้นตอนที่จัดทำเป็นเอกสาร | SR01:003 | ระบบต้องติดตั้งบน Linux Server ได้ทั้งแบบ Manual (setup.php) และ Docker Compose (php-apache, mariadb, node/pm2) | UN13.004 | Deploy – Backup & Restore | TC-UN13.004 | - | -| CR08:003 | ระบบต้องมีการเฝ้าระวังสถานะบริการ Web, Database และ Node.js พร้อมแจ้งเตือนเมื่อขัดข้อง | SR05:004 | ระบบต้องมี Health Check ทุก 5 นาที และแจ้งเตือนผู้ดูแลเมื่อล้มเหลวติดต่อกัน 2 ครั้ง | - | - | - | Product Operation Guide (การเฝ้าระวังระบบ) | -| CR08:004 | ระบบต้องรองรับหลายบริษัท (Multi-company) และหลายคลังสินค้าภายใต้การแยกข้อมูล | SR04:003 | โมดูลรายงานต้องอ่านข้อมูลภายใต้ขอบเขตบริษัท/คลังที่โมดูลข้อมูลหลักและคลังสินค้าบังคับใช้ | UN12.001 | Security – Tenant Scope Guard | TC-UN12.001 | - | -| CR08:005 | งานตามกำหนดเวลาต้องทำงานสำเร็จโดยไม่สร้างผลลัพธ์ซ้ำหรือเกินสิทธิ์ | SR05:002 | ยอดสรุปสต๊อก/GL/แดชบอร์ดต้องคำนวณล่วงหน้าตามกำหนดเวลา (etl_stock_summary, etl_gl_summary) | UN11.002 | Node – Scheduler (ETL & Alerts) | TC-UN11.002 | - | -| CR09: Maintenance Considerations | | | | | | | | -| CR09:001 | ซอฟต์แวร์ต้องมีโครงสร้างแบบโมดูล (Manager Classes / API) เพื่อให้แก้ไขได้โดยไม่กระทบส่วนอื่น | SR02:003, SR02:004 | ตรรกะทางธุรกิจต้องจัดเป็น Manager/Service Classes ที่เรียกใช้จาก Page Controller แยกจากส่วนแสดงผล / การเข้าถึงข้อมูลต้องผ่าน Manager Classes ไม่กระจาย SQL ในหน้าเพจ | - | - | - | Software Design (Software Unit), Software Components | -| CR09:002 | ระบบต้องมีแม่แบบค่าตั้งค่า (Configuration Template) และควบคุมเวอร์ชันด้วย Git | SR01:005 | ค่าตั้งค่าและความลับ (app/config.php, .env) ต้องถูกยกเว้นจาก Source Control และสร้างขึ้นตอนติดตั้ง | UN13.003 | Deploy – .env Generator | TC-UN13.003 | - | -| CR09:003 | ระบบต้องมีเอกสารคู่มือการบำรุงรักษาและประวัติข้อบกพร่องที่แก้ไขแล้ว | SR01:001 | ระบบต้องพัฒนาและจัดทำเอกสารให้สอดคล้องกับมาตรฐาน ISO/IEC 29110 Basic Profile และแนวปฏิบัติ Secure Coding | - | - | - | Maintenance Document, Correction Register | -| CR09:004 | การเปลี่ยนแปลงโครงสร้างฐานข้อมูลต้องสะท้อนใน setup.php และตาราง schema_migrations | SR08:005, SR08:004 | ตารางทั้งหมดต้องสร้างซ้ำได้ในสภาพแวดล้อมใหม่ผ่าน setup.php โดยไม่ต้องแก้ Schema ด้วยมือ / ตารางสรุปยอดและควบคุมเอกสาร: etl_stock_summary, etl_gl_summary, document_number_sequences, document_types, schema_migrations | UN13.001 | Deploy – setup.php Schema Installer | TC-UN13.001 | - | -| CR10: Installation Considerations | | | | | | | | -| CR10:001 | ระบบต้องติดตั้งฐานข้อมูลได้ในขั้นตอนเดียวผ่าน setup.php | SR01:003, SR08:005 | ระบบต้องติดตั้งบน Linux Server ได้ทั้งแบบ Manual (setup.php) และ Docker Compose (php-apache, mariadb, node/pm2) / ตารางทั้งหมดต้องสร้างซ้ำได้ในสภาพแวดล้อมใหม่ผ่าน setup.php โดยไม่ต้องแก้ Schema ด้วยมือ | UN13.001 | Deploy – setup.php Schema Installer | TC-UN13.001 | - | -| CR10:002 | ระบบต้องติดตั้งแบบ Container ได้ด้วยคำสั่ง docker compose up -d --build | SR02:005 | ระบบต้องติดตั้งเป็น Container Stack ผ่าน Docker Compose ได้ นอกเหนือจากการติดตั้งแบบ Manual | UN13.002 | Deploy – Docker Compose Stack | TC-UN13.002 | - | -| CR10:003 | ระบบต้องมีสคริปต์สร้างไฟล์ .env และค่าความลับอัตโนมัติ (docker/init-env.sh) | SR01:005 | ค่าตั้งค่าและความลับ (app/config.php, .env) ต้องถูกยกเว้นจาก Source Control และสร้างขึ้นตอนติดตั้ง | UN13.003 | Deploy – .env Generator | TC-UN13.003 | - | -| CR10:004 | ระบบต้องมีเอกสารขั้นตอนการติดตั้งและตั้งค่า | SR01:001 | ระบบต้องพัฒนาและจัดทำเอกสารให้สอดคล้องกับมาตรฐาน ISO/IEC 29110 Basic Profile และแนวปฏิบัติ Secure Coding | UN13.001, UN13.002 | Deploy – setup.php Schema Installer / Deploy – Docker Compose Stack | TC-UN13.001, TC-UN13.002 | Product Operation Guide (ขั้นตอนติดตั้ง) | -| CR11: Support Considerations | | | | | | | | -| CR11:001 | ต้องมีคู่มือผู้ใช้งาน (Software User Document) | SR01:001 | ระบบต้องพัฒนาและจัดทำเอกสารให้สอดคล้องกับมาตรฐาน ISO/IEC 29110 Basic Profile และแนวปฏิบัติ Secure Coding | - | - | - | Software User Document (WP 8.0) | -| CR11:002 | ต้องมีคู่มือปฏิบัติงานสำหรับผู้ดูแลระบบ (Product Operation Guide) | SR01:001 | ระบบต้องพัฒนาและจัดทำเอกสารให้สอดคล้องกับมาตรฐาน ISO/IEC 29110 Basic Profile และแนวปฏิบัติ Secure Coding | - | - | - | Product Operation Guide (WP 10.0) | -| CR11:003 | ต้องมีการอบรมผู้ใช้งานก่อนเปิดใช้งานจริง | SR01:001 | ระบบต้องพัฒนาและจัดทำเอกสารให้สอดคล้องกับมาตรฐาน ISO/IEC 29110 Basic Profile และแนวปฏิบัติ Secure Coding | - | - | - | Training Report | -| CR11:004 | ต้องมีช่องทางสนับสนุนและระดับการให้บริการ (SLA) หลังส่งมอบ | SR01:001 | ระบบต้องพัฒนาและจัดทำเอกสารให้สอดคล้องกับมาตรฐาน ISO/IEC 29110 Basic Profile และแนวปฏิบัติ Secure Coding | - | - | - | Maintenance Document (SLA) | -| CR12: Design Constraints | | | | | | | | -| CR12:001 | ระบบต้องพัฒนาด้วย PHP, MariaDB และ Node.js ตามที่องค์กรอนุมัติ | SR01:002 | ระบบต้องใช้เทคโนโลยี PHP 8 ขึ้นไป, MySQL/MariaDB และ Node.js (Socket.IO, pm2) | UN13.001 | Deploy – setup.php Schema Installer | TC-UN13.001 | - | -| CR12:002 | ระบบต้องควบคุม Source Code ด้วย Git โดยมี main เป็น Baseline หลัก | SR01:001 | ระบบต้องพัฒนาและจัดทำเอกสารให้สอดคล้องกับมาตรฐาน ISO/IEC 29110 Basic Profile และแนวปฏิบัติ Secure Coding | - | - | - | Software Configuration, Project Repository | -| CR12:003 | รหัสผ่านผู้ใช้ต้องเข้ารหัสด้วย bcrypt และไม่เก็บหรือบันทึกเป็นข้อความธรรมดา | SR01:004 | รหัสผ่านผู้ใช้ต้องเข้ารหัสด้วย bcrypt (PASSWORD_BCRYPT) และไม่เก็บหรือบันทึกเป็นข้อความธรรมดา | UN01.003 | Identity – Password Recovery / OTP / Session | TC-UN01.003 | - | -| CR12:004 | โครงการต้องจัดทำ Work Products ตามมาตรฐาน ISO/IEC 29110 Basic Profile | SR01:001 | ระบบต้องพัฒนาและจัดทำเอกสารให้สอดคล้องกับมาตรฐาน ISO/IEC 29110 Basic Profile และแนวปฏิบัติ Secure Coding | - | - | - | List of Evidence, Verification Results | -| CR13: Safety and Reliability Considerations | | | | | | | | -| CR13:001 | การเปลี่ยนแปลงฐานข้อมูลที่เกี่ยวข้องกัน (เอกสาร + สต๊อก + GL) ต้องเป็น Transaction เดียวกัน | SR09:003 | การเปลี่ยนแปลงที่เกี่ยวข้องกัน (เอกสาร + สต๊อก + GL) ต้องเป็น Transaction และป้องกันยอดติดลบ/ซ้ำ | UN08.002 | Accounting – Journal & GL Posting | TC-UN08.002 | - | -| CR13:002 | ระบบต้องป้องกันยอดสต๊อกติดลบและความเคลื่อนไหวซ้ำซ้อน | SR09:003 | การเปลี่ยนแปลงที่เกี่ยวข้องกัน (เอกสาร + สต๊อก + GL) ต้องเป็น Transaction และป้องกันยอดติดลบ/ซ้ำ | UN04.002 | ICS – Stock-out | TC-UN04.002 | - | -| CR13:003 | ระบบต้องรองรับการสำรองและกู้คืน (Backup & Recovery) ทั้ง Source Code และฐานข้อมูล | SR01:003 | ระบบต้องติดตั้งบน Linux Server ได้ทั้งแบบ Manual (setup.php) และ Docker Compose (php-apache, mariadb, node/pm2) | UN13.004 | Deploy – Backup & Restore | TC-UN13.004 | - | -| CR13:004 | ระบบต้องจัดการข้อผิดพลาดโดยแสดงข้อความที่เข้าใจได้แทน Fatal Error | SR09:002 | ข้อผิดพลาดต้องแสดงข้อความที่ผู้ใช้เข้าใจได้แทน Fatal Error | UN10.002 | Document – Lifecycle & Status | TC-UN10.002 | - | -| CR14: Quality Expectations | | | | | | | | -| CR14:001 | ระบบต้องผ่านการทดสอบตาม Test Case ที่กำหนดก่อนส่งมอบ | SR01:001 | ระบบต้องพัฒนาและจัดทำเอกสารให้สอดคล้องกับมาตรฐาน ISO/IEC 29110 Basic Profile และแนวปฏิบัติ Secure Coding | - | - | - | Test Report | -| CR14:002 | ทุกความต้องการต้องสอบกลับได้ถึงการออกแบบ ส่วนประกอบ และหลักฐานการทดสอบ | SR01:001 | ระบบต้องพัฒนาและจัดทำเอกสารให้สอดคล้องกับมาตรฐาน ISO/IEC 29110 Basic Profile และแนวปฏิบัติ Secure Coding | - | - | - | Traceability Record | -| CR14:003 | ระบบต้องผ่านการทดสอบการยอมรับ (UAT) โดยตัวแทนลูกค้าบนสภาพแวดล้อมใช้งานจริง | SR01:001 | ระบบต้องพัฒนาและจัดทำเอกสารให้สอดคล้องกับมาตรฐาน ISO/IEC 29110 Basic Profile และแนวปฏิบัติ Secure Coding | - | - | - | Validation Results, Acceptance Report | -| CR14:004 | ต้องไม่มีข้อบกพร่องระดับวิกฤตค้างอยู่ในด้านความปลอดภัย การแยกข้อมูล และความถูกต้องของสต๊อก/บัญชี | SR07:002 | การทำงานฝั่งเซิร์ฟเวอร์ต้องตรวจสอบข้อมูลนำเข้า ยืนยันตัวตน ตรวจสิทธิ์ และจำกัดขอบเขตบริษัท/คลัง | UN12.001, UN12.002 | Security – Tenant Scope Guard / Security – Server-side Validation | TC-UN12.001, TC-UN12.002 | Test Report, Correction Register | +| CR ID | CR Topic | SRS ID | SRS Topic | Unit ID | Unit Topic | หลักฐานอื่น (Document) | +| --- | --- | --- | --- | --- | --- | --- | +| CR01: Feature & Functional Characteristics | | | | | | | +| CR01:001 | ระบบต้องรองรับการลงทะเบียนเจ้าของบริษัทและการเชิญผู้ใช้งานเข้าร่วมบริษัท (Onboarding) | SR03:001, SR08:001 | โมดูลผู้ใช้งานและสิทธิ์: ลงทะเบียน, Onboarding, เข้าสู่ระบบ, บทบาท Owner/Admin/Staff/Viewer, สิทธิ์แอปพลิเคชัน (app/login/, UserManager, PasswordManager, PasswordResetManager) / ฐานข้อมูล wms: user, company_list, company_map_user, company_setting, company_smtp, company_usage, whitelist | UN01.001 | Identity – Register & Onboarding | - | +| CR01:002 | ระบบต้องยืนยันตัวตนผู้ใช้และบังคับสิทธิ์ตามบทบาท Owner, Admin, Staff และ Viewer | SR03:001, SR04:001, SR07:005 | โมดูลผู้ใช้งานและสิทธิ์: ลงทะเบียน, Onboarding, เข้าสู่ระบบ, บทบาท Owner/Admin/Staff/Viewer, สิทธิ์แอปพลิเคชัน (app/login/, UserManager, PasswordManager, PasswordResetManager) / ทุกโมดูลปฏิบัติการต้องเข้าถึงได้ผ่านการยืนยันตัวตนและการตรวจสิทธิ์ของโมดูลผู้ใช้งานเท่านั้น / RBAC (Owner/Admin/Staff/Viewer) ต้องบังคับใช้ที่ฝั่งเซิร์ฟเวอร์ ไม่ใช่เพียงการซ่อนเมนู | UN01.002 | Identity – Login & Role Guard | - | +| CR01:003 | ระบบต้องรองรับการกู้คืนรหัสผ่าน การควบคุม Session และการยืนยัน OTP ตามที่กำหนด | SR03:001, SR07:003 | โมดูลผู้ใช้งานและสิทธิ์: ลงทะเบียน, Onboarding, เข้าสู่ระบบ, บทบาท Owner/Admin/Staff/Viewer, สิทธิ์แอปพลิเคชัน (app/login/, UserManager, PasswordManager, PasswordResetManager) / ระบบต้องอนุญาต Session ที่ใช้งานอยู่เพียงหนึ่งต่อบัญชี (บล็อก Concurrent Login) | UN01.003 | Identity – Password Recovery / OTP / Session | - | +| CR01:004 | ระบบต้องให้ผู้ดูแลจัดการข้อมูลบริษัท, SMTP, การตั้งค่าระบบ, ผู้ใช้งาน และสิทธิ์การเข้าถึงแอปพลิเคชัน | SR03:001, SR03:002 | โมดูลผู้ใช้งานและสิทธิ์: ลงทะเบียน, Onboarding, เข้าสู่ระบบ, บทบาท Owner/Admin/Staff/Viewer, สิทธิ์แอปพลิเคชัน (app/login/, UserManager, PasswordManager, PasswordResetManager) / โมดูลตั้งค่าบริษัท: ข้อมูลบริษัท, SMTP, การตั้งค่าระบบ (app/setting/, CompanyProfileManager, CompanySettingManager, SmtpManager) | UN01.004, UN02.001, UN02.002 | Identity – User & App-Access Administration / Company – Profile & System Settings / Company – SMTP & Mail Dispatch | - | +| CR01:005 | ระบบต้องจัดการข้อมูลคลังสินค้า, พื้นที่/ช่องจัดเก็บ, หมวดสินค้า, สินค้า, ประเภทผู้ติดต่อ และผู้ติดต่อ | SR03:003, SR08:002 | โมดูลข้อมูลหลัก: คลังสินค้า, พื้นที่/ช่องจัดเก็บ, หมวดสินค้า, สินค้า, ผู้ติดต่อ (app/inventory/, app/contact/, WarehouseManager, ProductManager, ContactManager) / ตารางข้อมูลหลัก (wms2): md_warehouse, md_storage, md_bin, md_product, md_product_category, md_contact, md_contact_type, md_account, md_account_formula, md_account_formula_item, md_department, md_barcode, md_sku_barcode_label, md_lot, md_lock_operation | UN03.001, UN03.002, UN03.003 | Master – Warehouse / Storage / Bin / Master – Product & Category / Master – Contact | - | +| CR01:006 | ระบบต้องรองรับโครงสร้างตำแหน่งจัดเก็บทั้งแบบคลังเดียวและแบบหลายชั้น (คลัง/พื้นที่/ช่อง) | SR03:003 | โมดูลข้อมูลหลัก: คลังสินค้า, พื้นที่/ช่องจัดเก็บ, หมวดสินค้า, สินค้า, ผู้ติดต่อ (app/inventory/, app/contact/, WarehouseManager, ProductManager, ContactManager) | UN03.004 | Master – Warehouse Layer Configuration | - | +| CR01:007 | ระบบต้องบันทึกการรับสินค้าเข้า (Stock-in) ระบุสินค้า จำนวน ตำแหน่ง เอกสารอ้างอิง และข้อมูลติดตาม | SR03:004, SR08:003 | โมดูลควบคุมสินค้าคงคลัง: รับเข้า, จ่ายออก, โอนย้าย, Lot/Serial/Expiry, บาร์โค้ด, แนบไฟล์ (app/ics/, StockManager, StockSourceManager, BarcodeManager, FileUploader) / ตารางรายการ (td_*): td_stock, td_order/_item, td_quotation/_item, td_invoice/_item, td_return/_item, td_purchase_request/_item, td_purchase_order/_item, td_supplier_return/_item, td_receipt/_item, td_receipt_billing/_item, td_payment/_item, td_payment_billing/_item, td_gl/td_gl_item, td_batch_action, td_bin_log | UN04.001 | ICS – Stock-in | - | +| CR01:008 | ระบบต้องบันทึกการจ่ายสินค้าออก (Stock-out) โดยตรวจสอบสิทธิ์และยอดคงเหลือก่อนจ่าย | SR03:004, SR09:003 | โมดูลควบคุมสินค้าคงคลัง: รับเข้า, จ่ายออก, โอนย้าย, Lot/Serial/Expiry, บาร์โค้ด, แนบไฟล์ (app/ics/, StockManager, StockSourceManager, BarcodeManager, FileUploader) / การเปลี่ยนแปลงที่เกี่ยวข้องกัน (เอกสาร + สต๊อก + GL) ต้องเป็น Transaction และป้องกันยอดติดลบ/ซ้ำ | UN04.002 | ICS – Stock-out | - | +| CR01:009 | ระบบต้องโอนย้ายสินค้าระหว่างตำแหน่งจัดเก็บที่ได้รับอนุญาตโดยยอดต้นทาง/ปลายทางสมดุลกัน | SR03:004 | โมดูลควบคุมสินค้าคงคลัง: รับเข้า, จ่ายออก, โอนย้าย, Lot/Serial/Expiry, บาร์โค้ด, แนบไฟล์ (app/ics/, StockManager, StockSourceManager, BarcodeManager, FileUploader) | UN04.003 | ICS – Stock Transfer | - | +| CR01:010 | ระบบต้องติดตาม Lot, Serial Number และวันหมดอายุของสินค้าที่เกี่ยวข้อง | SR03:004, SR08:002 | โมดูลควบคุมสินค้าคงคลัง: รับเข้า, จ่ายออก, โอนย้าย, Lot/Serial/Expiry, บาร์โค้ด, แนบไฟล์ (app/ics/, StockManager, StockSourceManager, BarcodeManager, FileUploader) / ตารางข้อมูลหลัก (wms2): md_warehouse, md_storage, md_bin, md_product, md_product_category, md_contact, md_contact_type, md_account, md_account_formula, md_account_formula_item, md_department, md_barcode, md_sku_barcode_label, md_lot, md_lock_operation | UN04.004 | ICS – Lot / Serial / Expiry | - | +| CR01:011 | ระบบต้องแสดงภาพรวมสต๊อก, ประวัติความเคลื่อนไหว, ความจุ/การใช้พื้นที่, สินค้าใกล้หมด, สินค้าหมดอายุ และข้อมูล Lot | SR03:009 | โมดูลรายงานและแดชบอร์ด: รายงานสต๊อก, รายงานการเงิน, แดชบอร์ด (app/reports/, app/dashboard/, app/ac_dashboard/, ReportManager, EtlStockManager) | UN09.002 | Reports – Stock Reports | - | +| CR01:012 | ระบบต้องพิมพ์บาร์โค้ดสินค้า (SKU) และตำแหน่งจัดเก็บ และรองรับการสแกนในหน้าจอที่กำหนด | SR03:004 | โมดูลควบคุมสินค้าคงคลัง: รับเข้า, จ่ายออก, โอนย้าย, Lot/Serial/Expiry, บาร์โค้ด, แนบไฟล์ (app/ics/, StockManager, StockSourceManager, BarcodeManager, FileUploader) | UN04.005 | ICS – Barcode Label & Scan | - | +| CR01:013 | ระบบต้องสร้างและจัดการใบเสนอราคา, ใบสั่งขาย, ใบแจ้งหนี้, ใบรับคืน และใบลดหนี้ | SR03:005, SR04:002 | โมดูลขาย: ใบเสนอราคา, ใบสั่งขาย, ใบแจ้งหนี้, ใบรับคืน/ใบลดหนี้ (app/order/, app/revenue/, QuotationManager, OrderManager, InvoiceManager, ReturnManager) / โมดูลขาย จัดซื้อ และการเงิน ต้องบันทึกผลกระทบต่อสต๊อกและ GL ผ่านโมดูลคลังสินค้าและบัญชี ไม่ทำซ้ำตรรกะ | UN05.001, UN05.002, UN05.003, UN05.004 | Sales – Quotation / Sales – Sales Order / Sales – Invoice / Sales – Return / Credit Note | - | +| CR01:014 | ระบบต้องสร้างและจัดการใบขอซื้อ, ใบสั่งซื้อ, ใบแจ้งหนี้ซื้อ และใบคืนสินค้าผู้ขาย | SR03:006, SR04:002 | โมดูลจัดซื้อ: ใบขอซื้อ, ใบสั่งซื้อ, ใบแจ้งหนี้ซื้อ, ใบคืนสินค้าผู้ขาย (app/po/, PurchaseRequestManager, PurchaseOrderManager, SupplierReturnManager) / โมดูลขาย จัดซื้อ และการเงิน ต้องบันทึกผลกระทบต่อสต๊อกและ GL ผ่านโมดูลคลังสินค้าและบัญชี ไม่ทำซ้ำตรรกะ | UN06.001, UN06.002, UN06.003, UN06.004 | Purchasing – Purchase Request / Purchasing – Purchase Order / Purchasing – Purchase Invoice / Purchasing – Supplier Return | - | +| CR01:015 | ระบบต้องสร้างและจัดการใบวางบิลรับ, ใบเสร็จรับเงิน, ใบวางบิลจ่าย และใบสำคัญจ่าย | SR03:007, SR04:002 | โมดูลการเงิน: ใบวางบิลรับ, ใบเสร็จ, ใบวางบิลจ่าย, ใบสำคัญจ่าย (app/finance/, ReceiptBillingManager, ReceiptManager, PaymentBillingManager, PaymentManager) / โมดูลขาย จัดซื้อ และการเงิน ต้องบันทึกผลกระทบต่อสต๊อกและ GL ผ่านโมดูลคลังสินค้าและบัญชี ไม่ทำซ้ำตรรกะ | UN07.001, UN07.002 | Finance – Receipt Billing & Receipt / Finance – Payment Billing & Payment | - | +| CR01:016 | ระบบต้องจัดการผังบัญชี, แผนก, สูตรบัญชี, สมุดรายวัน และบัญชีแยกประเภท | SR03:008 | โมดูลบัญชี: ผังบัญชี, แผนก, สูตรบัญชี, สมุดรายวัน, บัญชีแยกประเภท (app/accounting/, app/journal/, PostingManager) | UN08.001, UN08.002 | Accounting – Chart of Accounts / Departments / Formulas / Accounting – Journal & GL Posting | - | +| CR01:017 | ระบบต้องจัดทำรายงานงบทดลอง, งบกำไรขาดทุน, งบดุล, ภาษีมูลค่าเพิ่ม, สมุดรายวัน และความเคลื่อนไหว GL | SR03:009 | โมดูลรายงานและแดชบอร์ด: รายงานสต๊อก, รายงานการเงิน, แดชบอร์ด (app/reports/, app/dashboard/, app/ac_dashboard/, ReportManager, EtlStockManager) | UN09.003 | Reports – Financial Reports | - | +| CR01:018 | ระบบต้องออกเลขที่เอกสารอัตโนมัติและควบคุมสถานะ/วงจรชีวิตของเอกสาร | SR03:010, SR04:005, SR08:004 | โมดูลควบคุมเอกสาร: ออกเลขที่เอกสาร, วงจรชีวิต/สถานะ, ประวัติรายการ (DocumentNumberManager, BatchActionManager) / ทุกโมดูลที่สร้างเอกสารธุรกิจต้องเรียกใช้โมดูลควบคุมเอกสารเพื่อออกเลขที่เอกสาร / ตารางสรุปยอดและควบคุมเอกสาร: etl_stock_summary, etl_gl_summary, document_number_sequences, document_types, schema_migrations | UN10.001, UN10.002 | Document – Numbering / Document – Lifecycle & Status | - | +| CR01:019 | ระบบต้องรองรับการแนบไฟล์ที่อนุญาตกับรายการที่กำหนด | SR03:004 | โมดูลควบคุมสินค้าคงคลัง: รับเข้า, จ่ายออก, โอนย้าย, Lot/Serial/Expiry, บาร์โค้ด, แนบไฟล์ (app/ics/, StockManager, StockSourceManager, BarcodeManager, FileUploader) | UN04.006 | ICS – File Attachment | - | +| CR01:020 | ระบบต้องให้ผู้ใช้กรอง ดู พิมพ์ และส่งออกรายงานปฏิบัติการและรายงานผู้บริหาร | SR03:009 | โมดูลรายงานและแดชบอร์ด: รายงานสต๊อก, รายงานการเงิน, แดชบอร์ด (app/reports/, app/dashboard/, app/ac_dashboard/, ReportManager, EtlStockManager) | UN09.004 | Reports – Filter / Print / Export | - | +| CR01:021 | ระบบต้องแจ้งเตือนผู้ใช้ที่เกี่ยวข้องเมื่อสถานะเอกสารเปลี่ยนหรือมีเหตุการณ์ปฏิบัติการ | SR03:011, SR04:004, SR06:005 | บริการแจ้งเตือนและงานตามกำหนดเวลา: Socket.IO และ Scheduler (nodejs/server.js, nodejs/scheduler.js, app/cron/) / บริการ Node.js ต้องรับเหตุการณ์จากแอปพลิเคชัน PHP ผ่าน Endpoint ภายในที่ป้องกันด้วย Secret เท่านั้น / Browser ต้องเชื่อมต่อ Socket.IO Endpoint (NODE_PUBLIC_URL) เพื่อรับการแจ้งเตือน | UN11.001 | Node – Socket.IO Notification Server | - | +| CR01:022 | ระบบต้องสรุปยอดสต๊อก/GL และแจ้งเตือนสินค้าใกล้หมดและใบแจ้งหนี้ค้างชำระตามกำหนดเวลา | SR03:011, SR05:002, SR08:004 | บริการแจ้งเตือนและงานตามกำหนดเวลา: Socket.IO และ Scheduler (nodejs/server.js, nodejs/scheduler.js, app/cron/) / ยอดสรุปสต๊อก/GL/แดชบอร์ดต้องคำนวณล่วงหน้าตามกำหนดเวลา (etl_stock_summary, etl_gl_summary) / ตารางสรุปยอดและควบคุมเอกสาร: etl_stock_summary, etl_gl_summary, document_number_sequences, document_types, schema_migrations | UN11.002 | Node – Scheduler (ETL & Alerts) | - | +| CR01:023 | ระบบต้องเก็บผู้สร้าง ผู้แก้ไข สถานะ และประวัติรายการเพื่อการตรวจสอบ | SR03:010, SR09:001 | โมดูลควบคุมเอกสาร: ออกเลขที่เอกสาร, วงจรชีวิต/สถานะ, ประวัติรายการ (DocumentNumberManager, BatchActionManager) / การลบ ยกเลิก หรือ Void เอกสารควบคุมต้องมี Confirm Dialog | UN10.003 | Document – Audit Fields & History | - | +| CR01:024 | ระบบต้องจำกัดข้อมูลบริษัทและคลังสินค้าให้เฉพาะผู้ใช้ที่ได้รับอนุญาตในบริบทปัจจุบัน | SR04:001, SR04:003, SR07:002 | ทุกโมดูลปฏิบัติการต้องเข้าถึงได้ผ่านการยืนยันตัวตนและการตรวจสิทธิ์ของโมดูลผู้ใช้งานเท่านั้น / โมดูลรายงานต้องอ่านข้อมูลภายใต้ขอบเขตบริษัท/คลังที่โมดูลข้อมูลหลักและคลังสินค้าบังคับใช้ / การทำงานฝั่งเซิร์ฟเวอร์ต้องตรวจสอบข้อมูลนำเข้า ยืนยันตัวตน ตรวจสิทธิ์ และจำกัดขอบเขตบริษัท/คลัง | UN12.001 | Security – Tenant Scope Guard | - | +| CR02: Performance Considerations | | | | | | | +| CR02:001 | ระบบต้องตอบสนองงานประจำวัน (เปิดหน้าจอ, ค้นหา, สร้างเอกสาร) ภายในเวลาที่ใช้งานได้จริงบนสภาพแวดล้อมที่ตกลง | SR05:001 | งานประจำวัน (เปิดหน้าจอ, ค้นหา, สร้างเอกสาร) ต้องเสร็จภายในเวลาที่ใช้งานได้จริงบนสภาพแวดล้อมที่ตกลง | UN09.001 | Reports – Dashboard & Aggregates | - | +| CR02:002 | ระบบต้องมีตารางสรุปยอด (Aggregate) เพื่อให้แดชบอร์ดและรายงานแสดงผลได้โดยไม่ต้องคำนวณใหม่ทุกครั้ง | SR05:002 | ยอดสรุปสต๊อก/GL/แดชบอร์ดต้องคำนวณล่วงหน้าตามกำหนดเวลา (etl_stock_summary, etl_gl_summary) | UN09.001, UN11.002 | Reports – Dashboard & Aggregates / Node – Scheduler (ETL & Alerts) | - | +| CR02:003 | ระบบต้องรองรับปริมาณข้อมูลและผู้ใช้พร้อมกันในระดับที่ตกลงสำหรับสภาพแวดล้อมใช้งานจริง | SR05:003 | ระบบต้องรองรับปริมาณข้อมูลและผู้ใช้พร้อมกันตามที่ตกลงสำหรับสภาพแวดล้อมใช้งานจริง | UN09.001 | Reports – Dashboard & Aggregates | - | +| CR03: Interface Considerations | | | | | | | +| CR03:001 | ระบบต้องเชื่อมต่อฐานข้อมูล MySQL/MariaDB 2 ฐาน (wms สำหรับผู้ใช้/บริษัท และ wms2 สำหรับคลัง/บัญชี) | SR06:001 | แอปพลิเคชัน PHP ต้องเชื่อมต่อฐานข้อมูล MariaDB 2 ฐาน: wms (ผู้ใช้/บริษัท) และ wms2 (คลัง/บัญชี) | UN13.001 | Deploy – setup.php Schema Installer | - | +| CR03:002 | ระบบต้องใช้งานผ่าน Web Browser มาตรฐาน (Chrome, Edge, Firefox) ได้ | SR06:002 | ระบบต้องใช้งานได้บน Chrome, Edge และ Firefox รุ่นปัจจุบัน | UN01.002 | Identity – Login & Role Guard | - | +| CR03:003 | ระบบต้องส่งเหตุการณ์ไปยังบริการ Node.js ผ่าน Endpoint ภายในที่ป้องกันด้วย Secret | SR06:004, SR04:004 | แอปพลิเคชัน PHP ต้องส่งเหตุการณ์ไป Node.js ผ่าน HTTP Endpoint ภายใน (NODE_EMIT_URL + NODE_EMIT_SECRET) และส่งอีเมลผ่าน SMTP ต่อบริษัท / บริการ Node.js ต้องรับเหตุการณ์จากแอปพลิเคชัน PHP ผ่าน Endpoint ภายในที่ป้องกันด้วย Secret เท่านั้น | UN11.001 | Node – Socket.IO Notification Server | - | +| CR03:004 | Browser ต้องเชื่อมต่อ Socket.IO Endpoint สาธารณะเพื่อรับการแจ้งเตือนแบบ Real-time | SR06:005 | Browser ต้องเชื่อมต่อ Socket.IO Endpoint (NODE_PUBLIC_URL) เพื่อรับการแจ้งเตือน | UN11.001 | Node – Socket.IO Notification Server | - | +| CR03:005 | ระบบต้องส่งอีเมล Onboarding, กู้คืนรหัสผ่าน และแจ้งเตือนผ่าน SMTP ที่ตั้งค่าต่อบริษัท | SR06:004, SR03:002 | แอปพลิเคชัน PHP ต้องส่งเหตุการณ์ไป Node.js ผ่าน HTTP Endpoint ภายใน (NODE_EMIT_URL + NODE_EMIT_SECRET) และส่งอีเมลผ่าน SMTP ต่อบริษัท / โมดูลตั้งค่าบริษัท: ข้อมูลบริษัท, SMTP, การตั้งค่าระบบ (app/setting/, CompanyProfileManager, CompanySettingManager, SmtpManager) | UN02.002 | Company – SMTP & Mail Dispatch | - | +| CR04: Required System Characteristics | | | | | | | +| CR04:001 | ระบบต้องพัฒนาบนสถาปัตยกรรม Web-based Application | SR02:001 | ระบบต้องเป็น Web-based Application แบบหลายหน้า (Multi-page PHP) | UN01.002 | Identity – Login & Role Guard | - | +| CR04:002 | ระบบต้องเก็บข้อมูลแบบ Relational Database และรักษา Referential Integrity | SR08:001, SR08:002, SR08:003 | ฐานข้อมูล wms: user, company_list, company_map_user, company_setting, company_smtp, company_usage, whitelist / ตารางข้อมูลหลัก (wms2): md_warehouse, md_storage, md_bin, md_product, md_product_category, md_contact, md_contact_type, md_account, md_account_formula, md_account_formula_item, md_department, md_barcode, md_sku_barcode_label, md_lot, md_lock_operation / ตารางรายการ (td_*): td_stock, td_order/_item, td_quotation/_item, td_invoice/_item, td_return/_item, td_purchase_request/_item, td_purchase_order/_item, td_supplier_return/_item, td_receipt/_item, td_receipt_billing/_item, td_payment/_item, td_payment_billing/_item, td_gl/td_gl_item, td_batch_action, td_bin_log | UN13.001 | Deploy – setup.php Schema Installer | - | +| CR04:003 | ระบบต้องรองรับการเข้าสู่ระบบด้วย Username/Password และกำหนดบทบาทผู้ใช้ | SR04:001 | ทุกโมดูลปฏิบัติการต้องเข้าถึงได้ผ่านการยืนยันตัวตนและการตรวจสิทธิ์ของโมดูลผู้ใช้งานเท่านั้น | UN01.002 | Identity – Login & Role Guard | - | +| CR04:004 | ระบบต้องทำงานบน PHP 8 ขึ้นไป, MySQL/MariaDB และ Node.js | SR01:002 | ระบบต้องใช้เทคโนโลยี PHP 8 ขึ้นไป, MySQL/MariaDB และ Node.js (Socket.IO, pm2) | UN13.001 | Deploy – setup.php Schema Installer | - | +| CR05: Human Engineering Considerations | | | | | | | +| CR05:001 | UI ต้องเป็น Responsive ใช้งานได้ทั้งบน Desktop และอุปกรณ์หน้าคลังสินค้า (Tablet/Mobile) | SR02:002 | ส่วนติดต่อผู้ใช้ต้องเป็น Responsive Design รองรับ Desktop / Tablet / Mobile | UN01.002 | Identity – Login & Role Guard | - | +| CR05:002 | เมนูและปุ่มคำสั่งต้องแสดงตามบทบาทและสิทธิ์การเข้าถึงของผู้ใช้ | SR04:001 | ทุกโมดูลปฏิบัติการต้องเข้าถึงได้ผ่านการยืนยันตัวตนและการตรวจสิทธิ์ของโมดูลผู้ใช้งานเท่านั้น | UN01.002 | Identity – Login & Role Guard | - | +| CR05:003 | ระบบต้องแสดงผลการตรวจสอบข้อมูล สถานะ ความสำเร็จ และข้อผิดพลาดอย่างชัดเจน | SR09:002 | ข้อผิดพลาดต้องแสดงข้อความที่ผู้ใช้เข้าใจได้แทน Fatal Error | UN10.002 | Document – Lifecycle & Status | - | +| CR05:004 | ระบบต้องมีขั้นตอนยืนยันก่อนลบ ยกเลิก หรือทำรายการที่ย้อนกลับไม่ได้ | SR09:001 | การลบ ยกเลิก หรือ Void เอกสารควบคุมต้องมี Confirm Dialog | UN10.002 | Document – Lifecycle & Status | - | +| CR05:005 | ระบบต้องพิมพ์เอกสารธุรกิจและฉลากบาร์โค้ดในรูปแบบที่ใช้งานได้ | SR03:004 | โมดูลควบคุมสินค้าคงคลัง: รับเข้า, จ่ายออก, โอนย้าย, Lot/Serial/Expiry, บาร์โค้ด, แนบไฟล์ (app/ics/, StockManager, StockSourceManager, BarcodeManager, FileUploader) | UN04.005 | ICS – Barcode Label & Scan | - | +| CR06: Security Considerations | | | | | | | +| CR06:001 | การเชื่อมต่อในสภาพแวดล้อมใช้งานจริงต้องเข้ารหัสด้วย HTTPS/TLS | SR07:001 | การเชื่อมต่อในสภาพแวดล้อมใช้งานจริงต้องผ่าน HTTPS/TLS | UN12.004 | Security – TLS & Secret Configuration | - | +| CR06:002 | ค่าตั้งค่าและความลับของระบบต้องไม่ถูกเก็บใน Source Control และไม่เข้าถึงได้จากเว็บสาธารณะ | SR01:005 | ค่าตั้งค่าและความลับ (app/config.php, .env) ต้องถูกยกเว้นจาก Source Control และสร้างขึ้นตอนติดตั้ง | UN13.003, UN12.004 | Deploy – .env Generator / Security – TLS & Secret Configuration | - | +| CR06:003 | การทำงานฝั่งเซิร์ฟเวอร์ต้องตรวจสอบข้อมูลนำเข้า ยืนยันตัวตน ตรวจสิทธิ์ และจำกัดขอบเขตบริษัท/คลัง | SR07:002 | การทำงานฝั่งเซิร์ฟเวอร์ต้องตรวจสอบข้อมูลนำเข้า ยืนยันตัวตน ตรวจสิทธิ์ และจำกัดขอบเขตบริษัท/คลัง | UN12.002 | Security – Server-side Validation | - | +| CR06:004 | ระบบต้องจำกัดสิทธิ์การเข้าถึงตามบทบาท (Role-based Access Control) ทั้งใน UI และฝั่งเซิร์ฟเวอร์ | SR07:005 | RBAC (Owner/Admin/Staff/Viewer) ต้องบังคับใช้ที่ฝั่งเซิร์ฟเวอร์ ไม่ใช่เพียงการซ่อนเมนู | UN01.002 | Identity – Login & Role Guard | - | +| CR06:005 | ระบบต้องป้องกัน SQL Injection และ Cross-Site Scripting | SR07:004 | ระบบต้องป้องกัน SQL Injection และ Cross-Site Scripting ทั้งด้านรับข้อมูลและแสดงผล | UN12.002 | Security – Server-side Validation | - | +| CR06:006 | ระบบต้องบล็อกการเข้าสู่ระบบซ้ำซ้อน (Concurrent Login) ของบัญชีเดียวกัน | SR07:003 | ระบบต้องอนุญาต Session ที่ใช้งานอยู่เพียงหนึ่งต่อบัญชี (บล็อก Concurrent Login) | UN01.003 | Identity – Password Recovery / OTP / Session | - | +| CR07: Environmental Considerations | | | | | | | +| CR07:001 | ระบบต้องทำงานบน Linux Server ในรูปแบบติดตั้งเอง (LAMP) หรือ Docker Compose | SR01:003 | ระบบต้องติดตั้งบน Linux Server ได้ทั้งแบบ Manual (setup.php) และ Docker Compose (php-apache, mariadb, node/pm2) | UN13.001, UN13.002 | Deploy – setup.php Schema Installer / Deploy – Docker Compose Stack | - | +| CR07:002 | ระบบต้องใช้เขตเวลา Asia/Bangkok อย่างสม่ำเสมอทั้งแอปพลิเคชันและงานตามกำหนดเวลา | SR01:006 | แอปพลิเคชันและงานตามกำหนดเวลาต้องใช้เขตเวลา Asia/Bangkok | UN11.002 | Node – Scheduler (ETL & Alerts) | - | +| CR07:003 | ระบบต้องใช้งานได้บนอุปกรณ์ Desktop และอุปกรณ์พกพาผ่าน Web Browser | SR06:003, SR02:002 | ระบบต้องรองรับ Mobile/Tablet Browser ผ่าน Responsive UI / ส่วนติดต่อผู้ใช้ต้องเป็น Responsive Design รองรับ Desktop / Tablet / Mobile | UN01.002 | Identity – Login & Role Guard | - | +| CR07:004 | ระบบต้องแยกข้อมูลสาธิต/ทดสอบออกจากข้อมูลใช้งานจริงได้ | SR01:003 | ระบบต้องติดตั้งบน Linux Server ได้ทั้งแบบ Manual (setup.php) และ Docker Compose (php-apache, mariadb, node/pm2) | UN13.001 | Deploy – setup.php Schema Installer | - | +| CR08: Operational Considerations | | | | | | | +| CR08:001 | ระบบต้องมีการสำรองฐานข้อมูลอัตโนมัติรายวัน | SR01:003 | ระบบต้องติดตั้งบน Linux Server ได้ทั้งแบบ Manual (setup.php) และ Docker Compose (php-apache, mariadb, node/pm2) | UN13.004 | Deploy – Backup & Restore | - | +| CR08:002 | ระบบต้องกู้คืนข้อมูลจากชุดสำรองได้ตามขั้นตอนที่จัดทำเป็นเอกสาร | SR01:003 | ระบบต้องติดตั้งบน Linux Server ได้ทั้งแบบ Manual (setup.php) และ Docker Compose (php-apache, mariadb, node/pm2) | UN13.004 | Deploy – Backup & Restore | - | +| CR08:003 | ระบบต้องมีการเฝ้าระวังสถานะบริการ Web, Database และ Node.js พร้อมแจ้งเตือนเมื่อขัดข้อง | SR05:004 | ระบบต้องมี Health Check ทุก 5 นาที และแจ้งเตือนผู้ดูแลเมื่อล้มเหลวติดต่อกัน 2 ครั้ง | - | - | Product Operation Guide (การเฝ้าระวังระบบ) | +| CR08:004 | ระบบต้องรองรับหลายบริษัท (Multi-company) และหลายคลังสินค้าภายใต้การแยกข้อมูล | SR04:003 | โมดูลรายงานต้องอ่านข้อมูลภายใต้ขอบเขตบริษัท/คลังที่โมดูลข้อมูลหลักและคลังสินค้าบังคับใช้ | UN12.001 | Security – Tenant Scope Guard | - | +| CR08:005 | งานตามกำหนดเวลาต้องทำงานสำเร็จโดยไม่สร้างผลลัพธ์ซ้ำหรือเกินสิทธิ์ | SR05:002 | ยอดสรุปสต๊อก/GL/แดชบอร์ดต้องคำนวณล่วงหน้าตามกำหนดเวลา (etl_stock_summary, etl_gl_summary) | UN11.002 | Node – Scheduler (ETL & Alerts) | - | +| CR09: Maintenance Considerations | | | | | | | +| CR09:001 | ซอฟต์แวร์ต้องมีโครงสร้างแบบโมดูล (Manager Classes / API) เพื่อให้แก้ไขได้โดยไม่กระทบส่วนอื่น | SR02:003, SR02:004 | ตรรกะทางธุรกิจต้องจัดเป็น Manager/Service Classes ที่เรียกใช้จาก Page Controller แยกจากส่วนแสดงผล / การเข้าถึงข้อมูลต้องผ่าน Manager Classes ไม่กระจาย SQL ในหน้าเพจ | - | - | Software Design (Software Unit), Software Components | +| CR09:002 | ระบบต้องมีแม่แบบค่าตั้งค่า (Configuration Template) และควบคุมเวอร์ชันด้วย Git | SR01:005 | ค่าตั้งค่าและความลับ (app/config.php, .env) ต้องถูกยกเว้นจาก Source Control และสร้างขึ้นตอนติดตั้ง | UN13.003 | Deploy – .env Generator | - | +| CR09:003 | ระบบต้องมีเอกสารคู่มือการบำรุงรักษาและประวัติข้อบกพร่องที่แก้ไขแล้ว | SR01:001 | ระบบต้องพัฒนาและจัดทำเอกสารให้สอดคล้องกับมาตรฐาน ISO/IEC 29110 Basic Profile และแนวปฏิบัติ Secure Coding | - | - | Maintenance Document, Correction Register | +| CR09:004 | การเปลี่ยนแปลงโครงสร้างฐานข้อมูลต้องสะท้อนใน setup.php และตาราง schema_migrations | SR08:005, SR08:004 | ตารางทั้งหมดต้องสร้างซ้ำได้ในสภาพแวดล้อมใหม่ผ่าน setup.php โดยไม่ต้องแก้ Schema ด้วยมือ / ตารางสรุปยอดและควบคุมเอกสาร: etl_stock_summary, etl_gl_summary, document_number_sequences, document_types, schema_migrations | UN13.001 | Deploy – setup.php Schema Installer | - | +| CR10: Installation Considerations | | | | | | | +| CR10:001 | ระบบต้องติดตั้งฐานข้อมูลได้ในขั้นตอนเดียวผ่าน setup.php | SR01:003, SR08:005 | ระบบต้องติดตั้งบน Linux Server ได้ทั้งแบบ Manual (setup.php) และ Docker Compose (php-apache, mariadb, node/pm2) / ตารางทั้งหมดต้องสร้างซ้ำได้ในสภาพแวดล้อมใหม่ผ่าน setup.php โดยไม่ต้องแก้ Schema ด้วยมือ | UN13.001 | Deploy – setup.php Schema Installer | - | +| CR10:002 | ระบบต้องติดตั้งแบบ Container ได้ด้วยคำสั่ง docker compose up -d --build | SR02:005 | ระบบต้องติดตั้งเป็น Container Stack ผ่าน Docker Compose ได้ นอกเหนือจากการติดตั้งแบบ Manual | UN13.002 | Deploy – Docker Compose Stack | - | +| CR10:003 | ระบบต้องมีสคริปต์สร้างไฟล์ .env และค่าความลับอัตโนมัติ (docker/init-env.sh) | SR01:005 | ค่าตั้งค่าและความลับ (app/config.php, .env) ต้องถูกยกเว้นจาก Source Control และสร้างขึ้นตอนติดตั้ง | UN13.003 | Deploy – .env Generator | - | +| CR10:004 | ระบบต้องมีเอกสารขั้นตอนการติดตั้งและตั้งค่า | SR01:001 | ระบบต้องพัฒนาและจัดทำเอกสารให้สอดคล้องกับมาตรฐาน ISO/IEC 29110 Basic Profile และแนวปฏิบัติ Secure Coding | UN13.001, UN13.002 | Deploy – setup.php Schema Installer / Deploy – Docker Compose Stack | Product Operation Guide (ขั้นตอนติดตั้ง) | +| CR11: Support Considerations | | | | | | | +| CR11:001 | ต้องมีคู่มือผู้ใช้งาน (Software User Document) | SR01:001 | ระบบต้องพัฒนาและจัดทำเอกสารให้สอดคล้องกับมาตรฐาน ISO/IEC 29110 Basic Profile และแนวปฏิบัติ Secure Coding | - | - | Software User Document (WP 8.0) | +| CR11:002 | ต้องมีคู่มือปฏิบัติงานสำหรับผู้ดูแลระบบ (Product Operation Guide) | SR01:001 | ระบบต้องพัฒนาและจัดทำเอกสารให้สอดคล้องกับมาตรฐาน ISO/IEC 29110 Basic Profile และแนวปฏิบัติ Secure Coding | - | - | Product Operation Guide (WP 10.0) | +| CR11:003 | ต้องมีการอบรมผู้ใช้งานก่อนเปิดใช้งานจริง | SR01:001 | ระบบต้องพัฒนาและจัดทำเอกสารให้สอดคล้องกับมาตรฐาน ISO/IEC 29110 Basic Profile และแนวปฏิบัติ Secure Coding | - | - | Training Report | +| CR11:004 | ต้องมีช่องทางสนับสนุนและระดับการให้บริการ (SLA) หลังส่งมอบ | SR01:001 | ระบบต้องพัฒนาและจัดทำเอกสารให้สอดคล้องกับมาตรฐาน ISO/IEC 29110 Basic Profile และแนวปฏิบัติ Secure Coding | - | - | Maintenance Document (SLA) | +| CR12: Design Constraints | | | | | | | +| CR12:001 | ระบบต้องพัฒนาด้วย PHP, MariaDB และ Node.js ตามที่องค์กรอนุมัติ | SR01:002 | ระบบต้องใช้เทคโนโลยี PHP 8 ขึ้นไป, MySQL/MariaDB และ Node.js (Socket.IO, pm2) | UN13.001 | Deploy – setup.php Schema Installer | - | +| CR12:002 | ระบบต้องควบคุม Source Code ด้วย Git โดยมี main เป็น Baseline หลัก | SR01:001 | ระบบต้องพัฒนาและจัดทำเอกสารให้สอดคล้องกับมาตรฐาน ISO/IEC 29110 Basic Profile และแนวปฏิบัติ Secure Coding | - | - | Software Configuration, Project Repository | +| CR12:003 | รหัสผ่านผู้ใช้ต้องเข้ารหัสด้วย bcrypt และไม่เก็บหรือบันทึกเป็นข้อความธรรมดา | SR01:004 | รหัสผ่านผู้ใช้ต้องเข้ารหัสด้วย bcrypt (PASSWORD_BCRYPT) และไม่เก็บหรือบันทึกเป็นข้อความธรรมดา | UN01.003 | Identity – Password Recovery / OTP / Session | - | +| CR12:004 | โครงการต้องจัดทำ Work Products ตามมาตรฐาน ISO/IEC 29110 Basic Profile | SR01:001 | ระบบต้องพัฒนาและจัดทำเอกสารให้สอดคล้องกับมาตรฐาน ISO/IEC 29110 Basic Profile และแนวปฏิบัติ Secure Coding | - | - | List of Evidence, Verification Results | +| CR13: Safety and Reliability Considerations | | | | | | | +| CR13:001 | การเปลี่ยนแปลงฐานข้อมูลที่เกี่ยวข้องกัน (เอกสาร + สต๊อก + GL) ต้องเป็น Transaction เดียวกัน | SR09:003 | การเปลี่ยนแปลงที่เกี่ยวข้องกัน (เอกสาร + สต๊อก + GL) ต้องเป็น Transaction และป้องกันยอดติดลบ/ซ้ำ | UN08.002 | Accounting – Journal & GL Posting | - | +| CR13:002 | ระบบต้องป้องกันยอดสต๊อกติดลบและความเคลื่อนไหวซ้ำซ้อน | SR09:003 | การเปลี่ยนแปลงที่เกี่ยวข้องกัน (เอกสาร + สต๊อก + GL) ต้องเป็น Transaction และป้องกันยอดติดลบ/ซ้ำ | UN04.002 | ICS – Stock-out | - | +| CR13:003 | ระบบต้องรองรับการสำรองและกู้คืน (Backup & Recovery) ทั้ง Source Code และฐานข้อมูล | SR01:003 | ระบบต้องติดตั้งบน Linux Server ได้ทั้งแบบ Manual (setup.php) และ Docker Compose (php-apache, mariadb, node/pm2) | UN13.004 | Deploy – Backup & Restore | - | +| CR13:004 | ระบบต้องจัดการข้อผิดพลาดโดยแสดงข้อความที่เข้าใจได้แทน Fatal Error | SR09:002 | ข้อผิดพลาดต้องแสดงข้อความที่ผู้ใช้เข้าใจได้แทน Fatal Error | UN10.002 | Document – Lifecycle & Status | - | +| CR14: Quality Expectations | | | | | | | +| CR14:001 | ระบบต้องผ่านการทดสอบตาม Test Case ที่กำหนดก่อนส่งมอบ | SR01:001 | ระบบต้องพัฒนาและจัดทำเอกสารให้สอดคล้องกับมาตรฐาน ISO/IEC 29110 Basic Profile และแนวปฏิบัติ Secure Coding | - | - | Test Report | +| CR14:002 | ทุกความต้องการต้องสอบกลับได้ถึงการออกแบบ ส่วนประกอบ และหลักฐานการทดสอบ | SR01:001 | ระบบต้องพัฒนาและจัดทำเอกสารให้สอดคล้องกับมาตรฐาน ISO/IEC 29110 Basic Profile และแนวปฏิบัติ Secure Coding | - | - | Traceability Record | +| CR14:003 | ระบบต้องผ่านการทดสอบการยอมรับ (UAT) โดยตัวแทนลูกค้าบนสภาพแวดล้อมใช้งานจริง | SR01:001 | ระบบต้องพัฒนาและจัดทำเอกสารให้สอดคล้องกับมาตรฐาน ISO/IEC 29110 Basic Profile และแนวปฏิบัติ Secure Coding | - | - | Validation Results, Acceptance Report | +| CR14:004 | ต้องไม่มีข้อบกพร่องระดับวิกฤตค้างอยู่ในด้านความปลอดภัย การแยกข้อมูล และความถูกต้องของสต๊อก/บัญชี | SR07:002 | การทำงานฝั่งเซิร์ฟเวอร์ต้องตรวจสอบข้อมูลนำเข้า ยืนยันตัวตน ตรวจสิทธิ์ และจำกัดขอบเขตบริษัท/คลัง | UN12.001, UN12.002 | Security – Tenant Scope Guard / Security – Server-side Validation | Test Report, Correction Register | หมายเหตุ: ความต้องการที่เป็นเอกสาร การอบรม หรือหลักฐานด้านคุณภาพ สอบกลับไปยังเอกสารส่งมอบที่เป็นหลักฐานในคอลัมน์ "หลักฐานอื่น" แทน Software Unit @@ -122,14 +122,11 @@ | ความต้องการของลูกค้าทั้งหมด (CR01–CR14) | 80 | | เชื่อมโยงกับความต้องการซอฟต์แวร์ (SRS) | 80 | | เชื่อมโยงกับ Software Unit | 68 | -| เชื่อมโยงกับ Test Case | 68 | | ยืนยันด้วยเอกสารส่งมอบ (ไม่มี Software Unit) | 12 | -| มีหลักฐานยืนยันครบ (Test Case หรือเอกสาร) | 80 | | ความต้องการซอฟต์แวร์ทั้งหมด (SR01–SR09) | 49 | | Software Unit ทั้งหมด | 45 | -| Test Case ทั้งหมด | 45 | -ความต้องการทุกรายการมีเส้นทางการสอบกลับที่ครบถ้วนตั้งแต่ความต้องการของลูกค้าจนถึง Test Case และผลการทดสอบ โดยผลการทดสอบทั้งหมดผ่านในรอบทดสอบระหว่าง 10 สิงหาคม 2569 – 14 สิงหาคม 2569 +ความต้องการทุกรายการเชื่อมโยงกับความต้องการซอฟต์แวร์ และเชื่อมโยงกับ Software Unit หรือเอกสารส่งมอบที่เป็นหลักฐาน Test Case ของแต่ละ Software Unit จะกำหนดใน Test Case and Test Procedures (WP 6.0) ก่อนรอบทดสอบระบบ ## ผู้จัดทำเอกสาร (Secretary) diff --git a/sdlc/2-SI Process (12 Work Product)/14.Software Components/200-WMS-26-001-00 Software Components 25690817 V1.0 ThS.md b/sdlc/2-SI Process (12 Work Product)/14.Software Components/200-WMS-26-001-00 Software Components 25690817 V1.0 ThS.md index a524bf2..17bd42d 100644 --- a/sdlc/2-SI Process (12 Work Product)/14.Software Components/200-WMS-26-001-00 Software Components 25690817 V1.0 ThS.md +++ b/sdlc/2-SI Process (12 Work Product)/14.Software Components/200-WMS-26-001-00 Software Components 25690817 V1.0 ThS.md @@ -20,7 +20,7 @@ | 4 | Deployment Package | ชุดติดตั้ง Docker Compose (php-apache, mariadb, node/pm2) | `docker-compose.yml`, `docker/` | `6c39700` | | 5 | Configuration Template | แม่แบบค่าตั้งค่าและสคริปต์สร้าง `.env` | `.env.example`, `docker/init-env.sh` | `6c39700` | | 6 | Demo Data | สคริปต์สร้างข้อมูลสาธิตสำหรับตรวจรับ | `demo_seed*.php` | `dd48a8b` | -| 7 | Document Package | เอกสาร Work Products และชุด PDF ที่ส่งมอบ | `sdlc/`, `sdlc-delivery/` | Tag `sdlc-v1.0-final` | +| 7 | Document Package | เอกสาร Work Products และชุด PDF ที่ส่งมอบ | `sdlc/`, `sdlc-delivery/` | Branch `sdlc` | ## รายการ Software Unit ที่พัฒนาแล้ว diff --git a/sdlc/2-SI Process (12 Work Product)/15.Test Cases and Test Procedures/200-WMS-26-001-00 Test Case and Test Procedures 25690731 V1.0 PaNg.md b/sdlc/2-SI Process (12 Work Product)/15.Test Cases and Test Procedures/200-WMS-26-001-00 Test Case and Test Procedures 25690731 V1.0 PaNg.md index 594bfa3..9b7fbee 100644 --- a/sdlc/2-SI Process (12 Work Product)/15.Test Cases and Test Procedures/200-WMS-26-001-00 Test Case and Test Procedures 25690731 V1.0 PaNg.md +++ b/sdlc/2-SI Process (12 Work Product)/15.Test Cases and Test Procedures/200-WMS-26-001-00 Test Case and Test Procedures 25690731 V1.0 PaNg.md @@ -22,65 +22,65 @@ | ทดสอบระบบตาม Test Case | Internal Testing Server (PHP 8, MariaDB, Node.js) | คุณปริญ งามขำ (QA/Tester) | | ทดสอบการยอมรับ (UAT) | สภาพแวดล้อมใช้งานจริงของลูกค้า | คุณเสรี วิริยะสกุลธรณ์ (Project Sponsor / ตัวแทนลูกค้า) | -การทดสอบระบบดำเนินการบน Internal Testing Server จึงสามารถทดสอบกรณีที่มีความเสี่ยงสูง เช่น การจำลองความล้มเหลวและ Rollback (TC-UN08.002) ได้โดยไม่กระทบข้อมูลของลูกค้า สถานะของ Repository ที่ใกล้เคียงที่สุด ณ สิ้นสุดรอบทดสอบคือ Commit `dd48a8b` +การทดสอบระบบดำเนินการบน Internal Testing Server จึงสามารถทดสอบกรณีที่มีความเสี่ยงสูง เช่น การจำลองความล้มเหลวและ Rollback (TC-UN08.002) ได้โดยไม่กระทบข้อมูลของลูกค้า รอบทดสอบระบบกำหนดไว้ระหว่าง 10 สิงหาคม 2569 – 14 สิงหาคม 2569 และผลการทดสอบบันทึกใน Test Report ## ตาราง Test Case | No | Test Case ID | Test Item | Input Specifications | Output Specifications | Environment / Needs | Special Procedural Required | Intercase Dependency | Status | Test Date | | :---: | :---: | --- | --- | --- | --- | --- | --- | --- | --- | -| 1 | TC-UN01.001 | UN01.001 Identity – Register & Onboarding | ลงทะเบียนเจ้าของบริษัทใหม่ → ยืนยันอีเมล → เชิญผู้ใช้ → ผู้ใช้กดลิงก์เชิญ | สร้างบริษัท/บัญชีเจ้าของสำเร็จ ผู้ใช้ที่ถูกเชิญเข้าบริษัทที่ถูกต้อง | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server, SMTP ทดสอบ | ต้องส่งอีเมลได้จริง | - | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | -| 2 | TC-UN01.002 | UN01.002 Identity – Login & Role Guard | เข้าสู่ระบบด้วยบัญชี Owner/Admin/Staff/Viewer แล้วเรียกหน้าและ Action ที่ไม่ได้รับสิทธิ์ | แต่ละบทบาทเข้าถึงได้เฉพาะหน้าจอ/คำสั่งที่อนุญาต คำสั่งที่ไม่ได้รับสิทธิ์ถูกปฏิเสธฝั่งเซิร์ฟเวอร์ | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | ต้องมีบัญชีทดสอบครบ 4 บทบาท | TC-UN01.001 | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | -| 3 | TC-UN01.003 | UN01.003 Identity – Password Recovery / OTP / Session | ขอรีเซ็ตรหัสผ่าน → กรอก OTP → ตั้งรหัสใหม่; เข้าสู่ระบบบัญชีเดิมจาก 2 อุปกรณ์ | รีเซ็ตสำเร็จโดยไม่เปิดเผยรหัสผ่านเดิม Session ที่สองถูกปฏิเสธ | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server, SMTP ทดสอบ | - | TC-UN01.002 | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | -| 4 | TC-UN01.004 | UN01.004 Identity – User & App-Access Administration | Admin เพิ่มผู้ใช้ เปลี่ยนบทบาท และปิดสิทธิ์แอปพลิเคชัน; Staff ลองทำรายการเดียวกัน | การเปลี่ยนแปลงของ Admin ถูกบันทึก Staff ถูกปฏิเสธ | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | - | TC-UN01.002 | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | -| 5 | TC-UN02.001 | UN02.001 Company – Profile & System Settings | แก้ไขข้อมูลบริษัทและค่าตั้งค่าระบบ | ค่าใหม่ถูกบันทึกและมีผลกับบริษัทนั้นเท่านั้น | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | - | TC-UN01.002 | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | -| 6 | TC-UN02.002 | UN02.002 Company – SMTP & Mail Dispatch | ตั้งค่า SMTP แล้วส่งอีเมลทดสอบ/คำเชิญ | อีเมลถูกส่งผ่าน SMTP ของบริษัทและได้รับที่ปลายทาง | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server, SMTP ทดสอบ | ต้องมีบัญชี SMTP ทดสอบ | TC-UN02.001 | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | -| 7 | TC-UN03.001 | UN03.001 Master – Warehouse / Storage / Bin | เพิ่ม/แก้ไข/ปิดใช้ คลังสินค้า พื้นที่ และช่องจัดเก็บ; กรอกความจุไม่ถูกต้อง | รายการถูกต้องถูกบันทึก ข้อมูลผิดถูกปฏิเสธพร้อมข้อความ | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | - | TC-UN01.002 | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | -| 8 | TC-UN03.002 | UN03.002 Master – Product & Category | เพิ่มหมวดสินค้าและสินค้าพร้อมหน่วยนับ | สินค้าแสดงในรายการและเลือกใช้ในรายการสต๊อกได้ | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | - | TC-UN01.002 | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | -| 9 | TC-UN03.003 | UN03.003 Master – Contact | เพิ่มประเภทผู้ติดต่อ ลูกค้า และผู้ขาย | ผู้ติดต่อเลือกใช้ในเอกสารขาย/ซื้อได้ | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | - | TC-UN01.002 | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | -| 10 | TC-UN03.004 | UN03.004 Master – Warehouse Layer Configuration | ตั้งบริษัท A เป็นคลังชั้นเดียว บริษัท B เป็นคลัง/พื้นที่/ช่อง แล้วรับสินค้าเข้า | ทั้งสองบริษัททำรายการได้ถูกต้องตามโครงสร้างของตน | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server, 2 บริษัททดสอบ | - | TC-UN03.001 | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | -| 11 | TC-UN04.001 | UN04.001 ICS – Stock-in | รับสินค้าเข้า ระบุสินค้า จำนวน ตำแหน่ง เอกสารอ้างอิง; กรอกจำนวนติดลบ | สร้างความเคลื่อนไหวและยอดคงเหลือถูกต้อง จำนวนติดลบถูกปฏิเสธ | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | - | TC-UN03.002 | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | -| 12 | TC-UN04.002 | UN04.002 ICS – Stock-out | จ่ายสินค้าออกภายในยอดคงเหลือ และจ่ายเกินยอด | ยอดลดลงถูกต้อง การจ่ายเกินยอดถูกปฏิเสธ | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | - | TC-UN04.001 | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | -| 13 | TC-UN04.003 | UN04.003 ICS – Stock Transfer | โอนย้ายระหว่าง 2 ตำแหน่งที่ได้รับอนุญาต | ต้นทางลด ปลายทางเพิ่ม ผูกเป็นรายการโอนเดียวและสอบกลับได้ | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | - | TC-UN04.001 | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | -| 14 | TC-UN04.004 | UN04.004 ICS – Lot / Serial / Expiry | รับสินค้าเข้าพร้อม Lot, Serial Number, วันหมดอายุ แล้วเปิดรายงาน Lot/หมดอายุ | ข้อมูลติดตามคงอยู่และแสดงในรายงานที่เกี่ยวข้อง | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | - | TC-UN04.001 | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | -| 15 | TC-UN04.005 | UN04.005 ICS – Barcode Label & Scan | พิมพ์ฉลาก SKU/ตำแหน่ง แล้วสแกน (หรือป้อนค่า) ในหน้าจอรับเข้า | ฉลากมีรหัสที่ใช้งานได้ ค่าที่สแกนถูกยอมรับ | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server, เครื่องสแกนหรือจำลอง | เครื่องพิมพ์/สแกน (ถ้ามี) | TC-UN03.002 | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | -| 16 | TC-UN04.006 | UN04.006 ICS – File Attachment | แนบไฟล์ที่อนุญาตและไฟล์ที่ไม่อนุญาตกับรายการ; ผู้ใช้บริษัทอื่นเรียกดู | ไฟล์ที่อนุญาตอัปโหลด/เรียกดูได้เฉพาะผู้มีสิทธิ์ ไฟล์ที่ไม่อนุญาตถูกปฏิเสธ | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | เตรียมไฟล์ตัวอย่าง | TC-UN03.002 | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | -| 17 | TC-UN05.001 | UN05.001 Sales – Quotation | สร้างใบเสนอราคาให้ลูกค้าและแปลงเป็นใบสั่งขาย | ใบสั่งขายถูกสร้างพร้อมอ้างอิงใบเสนอราคา | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | - | TC-UN03.003 | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | -| 18 | TC-UN05.002 | UN05.002 Sales – Sales Order | ยืนยันใบสั่งขายและตรวจสต๊อก | สถานะเปลี่ยนตามที่อนุญาตและตัดสต๊อกถูกต้อง | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | - | TC-UN05.001, TC-UN04.001 | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | -| 19 | TC-UN05.003 | UN05.003 Sales – Invoice | ออกใบแจ้งหนี้จากใบสั่งขาย | ใบแจ้งหนี้ได้เลขที่เอกสารและบันทึก GL สมดุล | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | - | TC-UN05.002 | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | -| 20 | TC-UN05.004 | UN05.004 Sales – Return / Credit Note | รับคืนสินค้าและออกใบลดหนี้ | สต๊อกเพิ่มกลับและบัญชีปรับตามใบลดหนี้ | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | - | TC-UN05.003 | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | -| 21 | TC-UN06.001 | UN06.001 Purchasing – Purchase Request | สร้างและอนุมัติใบขอซื้อ | ใบขอซื้ออยู่ในสถานะอนุมัติ | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | - | TC-UN03.003 | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | -| 22 | TC-UN06.002 | UN06.002 Purchasing – Purchase Order | แปลงใบขอซื้อเป็นใบสั่งซื้อ | ใบสั่งซื้อถูกสร้างพร้อมอ้างอิงใบขอซื้อ | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | - | TC-UN06.001 | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | -| 23 | TC-UN06.003 | UN06.003 Purchasing – Purchase Invoice | บันทึกใบแจ้งหนี้ซื้อและรับสินค้าเข้าคลัง | สต๊อกเพิ่มและ GL บันทึกสมดุล | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | - | TC-UN06.002 | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | -| 24 | TC-UN06.004 | UN06.004 Purchasing – Supplier Return | คืนสินค้าให้ผู้ขาย | สต๊อกลดและบัญชีปรับตามใบคืน | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | - | TC-UN06.003 | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | -| 25 | TC-UN07.001 | UN07.001 Finance – Receipt Billing & Receipt | วางบิลรับและบันทึกใบเสร็จรับเงินกับใบแจ้งหนี้ | ยอดค้างชำระลดลง เอกสารเชื่อมโยงกันและมีประวัติ | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | - | TC-UN05.003 | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | -| 26 | TC-UN07.002 | UN07.002 Finance – Payment Billing & Payment | วางบิลจ่ายและบันทึกใบสำคัญจ่ายกับใบแจ้งหนี้ซื้อ | ยอดค้างจ่ายลดลง เอกสารเชื่อมโยงกันและมีประวัติ | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | - | TC-UN06.003 | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | -| 27 | TC-UN08.001 | UN08.001 Accounting – Chart of Accounts / Departments / Formulas | เพิ่มผังบัญชี แผนก และสูตรบัญชี | โครงสร้างบัญชีถูกบันทึกและใช้กับการผ่านรายการได้ | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | - | TC-UN01.004 | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | -| 28 | TC-UN08.002 | UN08.002 Accounting – Journal & GL Posting | บันทึกสมุดรายวันแบบสมดุลและแบบไม่สมดุล; จำลองความล้มเหลวระหว่างผ่านรายการ | รายการสมดุลถูกผ่าน GL รายการไม่สมดุลถูกปฏิเสธ ความล้มเหลวถูก Rollback ทั้งชุด | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | ต้องจำลองความล้มเหลวบน Testing Server | TC-UN08.001 | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | -| 29 | TC-UN09.001 | UN09.001 Reports – Dashboard & Aggregates | เปิดแดชบอร์ดคลังสินค้าและบัญชีหลังรันงานสรุปยอด | ตัวเลขตรงกับตารางสรุปยอดและแสดงผลภายในเวลาที่ใช้งานได้ | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | - | TC-UN11.002 | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | -| 30 | TC-UN09.002 | UN09.002 Reports – Stock Reports | เปิดรายงานภาพรวมสต๊อก ความเคลื่อนไหว ความจุ สินค้าใกล้หมด หมดอายุ และ Lot พร้อมตัวกรอง | รายงานแสดงข้อมูลที่ได้รับสิทธิ์ตามตัวกรอง | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | - | TC-UN04.001–TC-UN04.004 | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | -| 31 | TC-UN09.003 | UN09.003 Reports – Financial Reports | เปิดงบทดลอง งบกำไรขาดทุน งบดุล VAT สมุดรายวัน และความเคลื่อนไหว GL | ยอดรวมสอดคล้องกันในงวดที่เลือก | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | - | TC-UN08.002 | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | -| 32 | TC-UN09.004 | UN09.004 Reports – Filter / Print / Export | กรอง ดู พิมพ์ และส่งออกรายงาน | ผลลัพธ์ตรงกับขอบเขตและตัวกรองที่เลือก | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | - | TC-UN09.002 | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | -| 33 | TC-UN10.001 | UN10.001 Document – Numbering | สร้างเอกสารควบคุมหลายฉบับติดต่อกัน | เลขที่เอกสารเรียงตามลำดับที่ตั้งค่า ไม่ซ้ำ | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | - | TC-UN05.001 | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | -| 34 | TC-UN10.002 | UN10.002 Document – Lifecycle & Status | พยายามเปลี่ยนสถานะเอกสารข้ามขั้น; ลบเอกสารควบคุม | การเปลี่ยนสถานะที่ไม่ถูกต้องถูกปฏิเสธพร้อมข้อความ การลบต้องยืนยันก่อน | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | - | TC-UN10.001 | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | -| 35 | TC-UN10.003 | UN10.003 Document – Audit Fields & History | สร้างแล้วแก้ไขรายการ แล้วเปิดดูประวัติ | ผู้สร้าง ผู้แก้ไข วันที่ และสถานะถูกบันทึกครบ | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | - | TC-UN03.002 | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | -| 36 | TC-UN11.001 | UN11.001 Node – Socket.IO Notification Server | เปลี่ยนสถานะเอกสารที่ต้องแจ้งเตือน; เรียก Endpoint แจ้งเตือนโดยไม่มี Secret | ผู้ใช้ที่เกี่ยวข้องได้รับแจ้งเตือน Real-time เท่านั้น การเรียกโดยไม่มี Secret ถูกปฏิเสธ | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server, Node.js + pm2, Internal Testing Server | บริการ Node.js ทำงานอยู่ | TC-UN01.002 | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | -| 37 | TC-UN11.002 | UN11.002 Node – Scheduler (ETL & Alerts) | รันงานสรุปยอดสต๊อก/GL และแจ้งเตือนสินค้าใกล้หมด/ใบแจ้งหนี้ค้างชำระ; ตรวจเวลาบันทึกเทียบ Asia/Bangkok | งานเสร็จโดยไม่ซ้ำ ผลลัพธ์อยู่ในขอบเขตสิทธิ์ เวลาถูกต้องตามเขตเวลา | Node.js + pm2, Internal Testing Server | Scheduler ทำงานอยู่ | TC-UN04.001, TC-UN07.001 | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | -| 38 | TC-UN12.001 | UN12.001 Security – Tenant Scope Guard | ผู้ใช้บริษัท A เรียกข้อมูล/รายการของบริษัท B และคลังที่ไม่ได้รับสิทธิ์ ทั้งผ่าน UI และ URL/ API โดยตรง | ถูกปฏิเสธทุกช่องทาง ไม่มีข้อมูลรั่วไหลหรือถูกแก้ไข | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server, 2 บริษัททดสอบ | - | TC-UN01.002, TC-UN03.001 | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | -| 39 | TC-UN12.002 | UN12.002 Security – Server-side Validation | ส่งข้อมูลนำเข้าที่มี SQL/Script และค่าที่ไม่ถูกต้องไปยัง Action ฝั่งเซิร์ฟเวอร์ | ถูกปฏิเสธหรือ Escape โดยไม่มีข้อมูลเปลี่ยนแปลงหรือ Script ทำงาน | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server, เครื่องมือทดสอบ API | - | TC-UN01.002 | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | -| 40 | TC-UN12.003 | UN12.003 Security – Operation Lock & Usage Guard | ผ่านรายการในงวดที่ล็อก; ทำรายการเกินโควตาบริษัท | รายการถูกปฏิเสธพร้อมข้อความ | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | - | TC-UN08.002 | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | -| 41 | TC-UN12.004 | UN12.004 Security – TLS & Secret Configuration | ตรวจ Repository และสภาพแวดล้อมที่ติดตั้งว่ามีความลับหรือไฟล์ตั้งค่าเปิดเผยหรือไม่; เรียกผ่าน HTTPS | ไม่พบความลับใน Git หรือเข้าถึงได้จากเว็บ การเชื่อมต่อผ่าน TLS | Repository, Deployed Environment | - | - | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | -| 42 | TC-UN13.001 | UN13.001 Deploy – setup.php Schema Installer | ติดตั้งบนเครื่องใหม่ด้วย setup.php | ฐานข้อมูลและตารางครบตาม SR08 โดยไม่แก้ Schema ด้วยมือ | Fresh Linux Server, PHP 8, MariaDB | ต้องใช้เครื่องว่าง | - | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | -| 43 | TC-UN13.002 | UN13.002 Deploy – Docker Compose Stack | รัน docker compose up -d --build | Container php-apache, mariadb, node ทำงานและเข้าใช้ระบบได้ | Docker Host | - | TC-UN13.003 | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | -| 44 | TC-UN13.003 | UN13.003 Deploy – .env Generator | รัน docker/init-env.sh โดยเว้นค่าความลับว่าง | .env ถูกสร้างพร้อมความลับสุ่ม และไม่ถูก Git ติดตาม | Docker Host | - | - | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | -| 45 | TC-UN13.004 | UN13.004 Deploy – Backup & Restore | สำรองฐานข้อมูล กู้คืนสู่สภาพแวดล้อมทดสอบ และ Clone จาก Backup Remote | ข้อมูลและ Source Code กู้คืนได้ครบตามขั้นตอนในคู่มือ | Testing Server, Backup Remote | ตาม Product Operation Guide | TC-UN13.001 | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 1 | TC-UN01.001 | UN01.001 Identity – Register & Onboarding | ลงทะเบียนเจ้าของบริษัทใหม่ → ยืนยันอีเมล → เชิญผู้ใช้ → ผู้ใช้กดลิงก์เชิญ | สร้างบริษัท/บัญชีเจ้าของสำเร็จ ผู้ใช้ที่ถูกเชิญเข้าบริษัทที่ถูกต้อง | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server, SMTP ทดสอบ | ต้องส่งอีเมลได้จริง | - | Ready | ตามแผน 10–14 ส.ค. 69 | +| 2 | TC-UN01.002 | UN01.002 Identity – Login & Role Guard | เข้าสู่ระบบด้วยบัญชี Owner/Admin/Staff/Viewer แล้วเรียกหน้าและ Action ที่ไม่ได้รับสิทธิ์ | แต่ละบทบาทเข้าถึงได้เฉพาะหน้าจอ/คำสั่งที่อนุญาต คำสั่งที่ไม่ได้รับสิทธิ์ถูกปฏิเสธฝั่งเซิร์ฟเวอร์ | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | ต้องมีบัญชีทดสอบครบ 4 บทบาท | TC-UN01.001 | Ready | ตามแผน 10–14 ส.ค. 69 | +| 3 | TC-UN01.003 | UN01.003 Identity – Password Recovery / OTP / Session | ขอรีเซ็ตรหัสผ่าน → กรอก OTP → ตั้งรหัสใหม่; เข้าสู่ระบบบัญชีเดิมจาก 2 อุปกรณ์ | รีเซ็ตสำเร็จโดยไม่เปิดเผยรหัสผ่านเดิม Session ที่สองถูกปฏิเสธ | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server, SMTP ทดสอบ | - | TC-UN01.002 | Ready | ตามแผน 10–14 ส.ค. 69 | +| 4 | TC-UN01.004 | UN01.004 Identity – User & App-Access Administration | Admin เพิ่มผู้ใช้ เปลี่ยนบทบาท และปิดสิทธิ์แอปพลิเคชัน; Staff ลองทำรายการเดียวกัน | การเปลี่ยนแปลงของ Admin ถูกบันทึก Staff ถูกปฏิเสธ | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | - | TC-UN01.002 | Ready | ตามแผน 10–14 ส.ค. 69 | +| 5 | TC-UN02.001 | UN02.001 Company – Profile & System Settings | แก้ไขข้อมูลบริษัทและค่าตั้งค่าระบบ | ค่าใหม่ถูกบันทึกและมีผลกับบริษัทนั้นเท่านั้น | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | - | TC-UN01.002 | Ready | ตามแผน 10–14 ส.ค. 69 | +| 6 | TC-UN02.002 | UN02.002 Company – SMTP & Mail Dispatch | ตั้งค่า SMTP แล้วส่งอีเมลทดสอบ/คำเชิญ | อีเมลถูกส่งผ่าน SMTP ของบริษัทและได้รับที่ปลายทาง | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server, SMTP ทดสอบ | ต้องมีบัญชี SMTP ทดสอบ | TC-UN02.001 | Ready | ตามแผน 10–14 ส.ค. 69 | +| 7 | TC-UN03.001 | UN03.001 Master – Warehouse / Storage / Bin | เพิ่ม/แก้ไข/ปิดใช้ คลังสินค้า พื้นที่ และช่องจัดเก็บ; กรอกความจุไม่ถูกต้อง | รายการถูกต้องถูกบันทึก ข้อมูลผิดถูกปฏิเสธพร้อมข้อความ | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | - | TC-UN01.002 | Ready | ตามแผน 10–14 ส.ค. 69 | +| 8 | TC-UN03.002 | UN03.002 Master – Product & Category | เพิ่มหมวดสินค้าและสินค้าพร้อมหน่วยนับ | สินค้าแสดงในรายการและเลือกใช้ในรายการสต๊อกได้ | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | - | TC-UN01.002 | Ready | ตามแผน 10–14 ส.ค. 69 | +| 9 | TC-UN03.003 | UN03.003 Master – Contact | เพิ่มประเภทผู้ติดต่อ ลูกค้า และผู้ขาย | ผู้ติดต่อเลือกใช้ในเอกสารขาย/ซื้อได้ | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | - | TC-UN01.002 | Ready | ตามแผน 10–14 ส.ค. 69 | +| 10 | TC-UN03.004 | UN03.004 Master – Warehouse Layer Configuration | ตั้งบริษัท A เป็นคลังชั้นเดียว บริษัท B เป็นคลัง/พื้นที่/ช่อง แล้วรับสินค้าเข้า | ทั้งสองบริษัททำรายการได้ถูกต้องตามโครงสร้างของตน | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server, 2 บริษัททดสอบ | - | TC-UN03.001 | Ready | ตามแผน 10–14 ส.ค. 69 | +| 11 | TC-UN04.001 | UN04.001 ICS – Stock-in | รับสินค้าเข้า ระบุสินค้า จำนวน ตำแหน่ง เอกสารอ้างอิง; กรอกจำนวนติดลบ | สร้างความเคลื่อนไหวและยอดคงเหลือถูกต้อง จำนวนติดลบถูกปฏิเสธ | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | - | TC-UN03.002 | Ready | ตามแผน 10–14 ส.ค. 69 | +| 12 | TC-UN04.002 | UN04.002 ICS – Stock-out | จ่ายสินค้าออกภายในยอดคงเหลือ และจ่ายเกินยอด | ยอดลดลงถูกต้อง การจ่ายเกินยอดถูกปฏิเสธ | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | - | TC-UN04.001 | Ready | ตามแผน 10–14 ส.ค. 69 | +| 13 | TC-UN04.003 | UN04.003 ICS – Stock Transfer | โอนย้ายระหว่าง 2 ตำแหน่งที่ได้รับอนุญาต | ต้นทางลด ปลายทางเพิ่ม ผูกเป็นรายการโอนเดียวและสอบกลับได้ | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | - | TC-UN04.001 | Ready | ตามแผน 10–14 ส.ค. 69 | +| 14 | TC-UN04.004 | UN04.004 ICS – Lot / Serial / Expiry | รับสินค้าเข้าพร้อม Lot, Serial Number, วันหมดอายุ แล้วเปิดรายงาน Lot/หมดอายุ | ข้อมูลติดตามคงอยู่และแสดงในรายงานที่เกี่ยวข้อง | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | - | TC-UN04.001 | Ready | ตามแผน 10–14 ส.ค. 69 | +| 15 | TC-UN04.005 | UN04.005 ICS – Barcode Label & Scan | พิมพ์ฉลาก SKU/ตำแหน่ง แล้วสแกน (หรือป้อนค่า) ในหน้าจอรับเข้า | ฉลากมีรหัสที่ใช้งานได้ ค่าที่สแกนถูกยอมรับ | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server, เครื่องสแกนหรือจำลอง | เครื่องพิมพ์/สแกน (ถ้ามี) | TC-UN03.002 | Ready | ตามแผน 10–14 ส.ค. 69 | +| 16 | TC-UN04.006 | UN04.006 ICS – File Attachment | แนบไฟล์ที่อนุญาตและไฟล์ที่ไม่อนุญาตกับรายการ; ผู้ใช้บริษัทอื่นเรียกดู | ไฟล์ที่อนุญาตอัปโหลด/เรียกดูได้เฉพาะผู้มีสิทธิ์ ไฟล์ที่ไม่อนุญาตถูกปฏิเสธ | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | เตรียมไฟล์ตัวอย่าง | TC-UN03.002 | Ready | ตามแผน 10–14 ส.ค. 69 | +| 17 | TC-UN05.001 | UN05.001 Sales – Quotation | สร้างใบเสนอราคาให้ลูกค้าและแปลงเป็นใบสั่งขาย | ใบสั่งขายถูกสร้างพร้อมอ้างอิงใบเสนอราคา | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | - | TC-UN03.003 | Ready | ตามแผน 10–14 ส.ค. 69 | +| 18 | TC-UN05.002 | UN05.002 Sales – Sales Order | ยืนยันใบสั่งขายและตรวจสต๊อก | สถานะเปลี่ยนตามที่อนุญาตและตัดสต๊อกถูกต้อง | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | - | TC-UN05.001, TC-UN04.001 | Ready | ตามแผน 10–14 ส.ค. 69 | +| 19 | TC-UN05.003 | UN05.003 Sales – Invoice | ออกใบแจ้งหนี้จากใบสั่งขาย | ใบแจ้งหนี้ได้เลขที่เอกสารและบันทึก GL สมดุล | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | - | TC-UN05.002 | Ready | ตามแผน 10–14 ส.ค. 69 | +| 20 | TC-UN05.004 | UN05.004 Sales – Return / Credit Note | รับคืนสินค้าและออกใบลดหนี้ | สต๊อกเพิ่มกลับและบัญชีปรับตามใบลดหนี้ | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | - | TC-UN05.003 | Ready | ตามแผน 10–14 ส.ค. 69 | +| 21 | TC-UN06.001 | UN06.001 Purchasing – Purchase Request | สร้างและอนุมัติใบขอซื้อ | ใบขอซื้ออยู่ในสถานะอนุมัติ | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | - | TC-UN03.003 | Ready | ตามแผน 10–14 ส.ค. 69 | +| 22 | TC-UN06.002 | UN06.002 Purchasing – Purchase Order | แปลงใบขอซื้อเป็นใบสั่งซื้อ | ใบสั่งซื้อถูกสร้างพร้อมอ้างอิงใบขอซื้อ | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | - | TC-UN06.001 | Ready | ตามแผน 10–14 ส.ค. 69 | +| 23 | TC-UN06.003 | UN06.003 Purchasing – Purchase Invoice | บันทึกใบแจ้งหนี้ซื้อและรับสินค้าเข้าคลัง | สต๊อกเพิ่มและ GL บันทึกสมดุล | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | - | TC-UN06.002 | Ready | ตามแผน 10–14 ส.ค. 69 | +| 24 | TC-UN06.004 | UN06.004 Purchasing – Supplier Return | คืนสินค้าให้ผู้ขาย | สต๊อกลดและบัญชีปรับตามใบคืน | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | - | TC-UN06.003 | Ready | ตามแผน 10–14 ส.ค. 69 | +| 25 | TC-UN07.001 | UN07.001 Finance – Receipt Billing & Receipt | วางบิลรับและบันทึกใบเสร็จรับเงินกับใบแจ้งหนี้ | ยอดค้างชำระลดลง เอกสารเชื่อมโยงกันและมีประวัติ | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | - | TC-UN05.003 | Ready | ตามแผน 10–14 ส.ค. 69 | +| 26 | TC-UN07.002 | UN07.002 Finance – Payment Billing & Payment | วางบิลจ่ายและบันทึกใบสำคัญจ่ายกับใบแจ้งหนี้ซื้อ | ยอดค้างจ่ายลดลง เอกสารเชื่อมโยงกันและมีประวัติ | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | - | TC-UN06.003 | Ready | ตามแผน 10–14 ส.ค. 69 | +| 27 | TC-UN08.001 | UN08.001 Accounting – Chart of Accounts / Departments / Formulas | เพิ่มผังบัญชี แผนก และสูตรบัญชี | โครงสร้างบัญชีถูกบันทึกและใช้กับการผ่านรายการได้ | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | - | TC-UN01.004 | Ready | ตามแผน 10–14 ส.ค. 69 | +| 28 | TC-UN08.002 | UN08.002 Accounting – Journal & GL Posting | บันทึกสมุดรายวันแบบสมดุลและแบบไม่สมดุล; จำลองความล้มเหลวระหว่างผ่านรายการ | รายการสมดุลถูกผ่าน GL รายการไม่สมดุลถูกปฏิเสธ ความล้มเหลวถูก Rollback ทั้งชุด | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | ต้องจำลองความล้มเหลวบน Testing Server | TC-UN08.001 | Ready | ตามแผน 10–14 ส.ค. 69 | +| 29 | TC-UN09.001 | UN09.001 Reports – Dashboard & Aggregates | เปิดแดชบอร์ดคลังสินค้าและบัญชีหลังรันงานสรุปยอด | ตัวเลขตรงกับตารางสรุปยอดและแสดงผลภายในเวลาที่ใช้งานได้ | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | - | TC-UN11.002 | Ready | ตามแผน 10–14 ส.ค. 69 | +| 30 | TC-UN09.002 | UN09.002 Reports – Stock Reports | เปิดรายงานภาพรวมสต๊อก ความเคลื่อนไหว ความจุ สินค้าใกล้หมด หมดอายุ และ Lot พร้อมตัวกรอง | รายงานแสดงข้อมูลที่ได้รับสิทธิ์ตามตัวกรอง | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | - | TC-UN04.001–TC-UN04.004 | Ready | ตามแผน 10–14 ส.ค. 69 | +| 31 | TC-UN09.003 | UN09.003 Reports – Financial Reports | เปิดงบทดลอง งบกำไรขาดทุน งบดุล VAT สมุดรายวัน และความเคลื่อนไหว GL | ยอดรวมสอดคล้องกันในงวดที่เลือก | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | - | TC-UN08.002 | Ready | ตามแผน 10–14 ส.ค. 69 | +| 32 | TC-UN09.004 | UN09.004 Reports – Filter / Print / Export | กรอง ดู พิมพ์ และส่งออกรายงาน | ผลลัพธ์ตรงกับขอบเขตและตัวกรองที่เลือก | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | - | TC-UN09.002 | Ready | ตามแผน 10–14 ส.ค. 69 | +| 33 | TC-UN10.001 | UN10.001 Document – Numbering | สร้างเอกสารควบคุมหลายฉบับติดต่อกัน | เลขที่เอกสารเรียงตามลำดับที่ตั้งค่า ไม่ซ้ำ | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | - | TC-UN05.001 | Ready | ตามแผน 10–14 ส.ค. 69 | +| 34 | TC-UN10.002 | UN10.002 Document – Lifecycle & Status | พยายามเปลี่ยนสถานะเอกสารข้ามขั้น; ลบเอกสารควบคุม | การเปลี่ยนสถานะที่ไม่ถูกต้องถูกปฏิเสธพร้อมข้อความ การลบต้องยืนยันก่อน | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | - | TC-UN10.001 | Ready | ตามแผน 10–14 ส.ค. 69 | +| 35 | TC-UN10.003 | UN10.003 Document – Audit Fields & History | สร้างแล้วแก้ไขรายการ แล้วเปิดดูประวัติ | ผู้สร้าง ผู้แก้ไข วันที่ และสถานะถูกบันทึกครบ | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | - | TC-UN03.002 | Ready | ตามแผน 10–14 ส.ค. 69 | +| 36 | TC-UN11.001 | UN11.001 Node – Socket.IO Notification Server | เปลี่ยนสถานะเอกสารที่ต้องแจ้งเตือน; เรียก Endpoint แจ้งเตือนโดยไม่มี Secret | ผู้ใช้ที่เกี่ยวข้องได้รับแจ้งเตือน Real-time เท่านั้น การเรียกโดยไม่มี Secret ถูกปฏิเสธ | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server, Node.js + pm2, Internal Testing Server | บริการ Node.js ทำงานอยู่ | TC-UN01.002 | Ready | ตามแผน 10–14 ส.ค. 69 | +| 37 | TC-UN11.002 | UN11.002 Node – Scheduler (ETL & Alerts) | รันงานสรุปยอดสต๊อก/GL และแจ้งเตือนสินค้าใกล้หมด/ใบแจ้งหนี้ค้างชำระ; ตรวจเวลาบันทึกเทียบ Asia/Bangkok | งานเสร็จโดยไม่ซ้ำ ผลลัพธ์อยู่ในขอบเขตสิทธิ์ เวลาถูกต้องตามเขตเวลา | Node.js + pm2, Internal Testing Server | Scheduler ทำงานอยู่ | TC-UN04.001, TC-UN07.001 | Ready | ตามแผน 10–14 ส.ค. 69 | +| 38 | TC-UN12.001 | UN12.001 Security – Tenant Scope Guard | ผู้ใช้บริษัท A เรียกข้อมูล/รายการของบริษัท B และคลังที่ไม่ได้รับสิทธิ์ ทั้งผ่าน UI และ URL/ API โดยตรง | ถูกปฏิเสธทุกช่องทาง ไม่มีข้อมูลรั่วไหลหรือถูกแก้ไข | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server, 2 บริษัททดสอบ | - | TC-UN01.002, TC-UN03.001 | Ready | ตามแผน 10–14 ส.ค. 69 | +| 39 | TC-UN12.002 | UN12.002 Security – Server-side Validation | ส่งข้อมูลนำเข้าที่มี SQL/Script และค่าที่ไม่ถูกต้องไปยัง Action ฝั่งเซิร์ฟเวอร์ | ถูกปฏิเสธหรือ Escape โดยไม่มีข้อมูลเปลี่ยนแปลงหรือ Script ทำงาน | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server, เครื่องมือทดสอบ API | - | TC-UN01.002 | Ready | ตามแผน 10–14 ส.ค. 69 | +| 40 | TC-UN12.003 | UN12.003 Security – Operation Lock & Usage Guard | ผ่านรายการในงวดที่ล็อก; ทำรายการเกินโควตาบริษัท | รายการถูกปฏิเสธพร้อมข้อความ | Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server | - | TC-UN08.002 | Ready | ตามแผน 10–14 ส.ค. 69 | +| 41 | TC-UN12.004 | UN12.004 Security – TLS & Secret Configuration | ตรวจ Repository และสภาพแวดล้อมที่ติดตั้งว่ามีความลับหรือไฟล์ตั้งค่าเปิดเผยหรือไม่; เรียกผ่าน HTTPS | ไม่พบความลับใน Git หรือเข้าถึงได้จากเว็บ การเชื่อมต่อผ่าน TLS | Repository, Deployed Environment | - | - | Ready | ตามแผน 10–14 ส.ค. 69 | +| 42 | TC-UN13.001 | UN13.001 Deploy – setup.php Schema Installer | ติดตั้งบนเครื่องใหม่ด้วย setup.php | ฐานข้อมูลและตารางครบตาม SR08 โดยไม่แก้ Schema ด้วยมือ | Fresh Linux Server, PHP 8, MariaDB | ต้องใช้เครื่องว่าง | - | Ready | ตามแผน 10–14 ส.ค. 69 | +| 43 | TC-UN13.002 | UN13.002 Deploy – Docker Compose Stack | รัน docker compose up -d --build | Container php-apache, mariadb, node ทำงานและเข้าใช้ระบบได้ | Docker Host | - | TC-UN13.003 | Ready | ตามแผน 10–14 ส.ค. 69 | +| 44 | TC-UN13.003 | UN13.003 Deploy – .env Generator | รัน docker/init-env.sh โดยเว้นค่าความลับว่าง | .env ถูกสร้างพร้อมความลับสุ่ม และไม่ถูก Git ติดตาม | Docker Host | - | - | Ready | ตามแผน 10–14 ส.ค. 69 | +| 45 | TC-UN13.004 | UN13.004 Deploy – Backup & Restore | สำรองฐานข้อมูล กู้คืนสู่สภาพแวดล้อมทดสอบ และ Clone จาก Backup Remote | ข้อมูลและ Source Code กู้คืนได้ครบตามขั้นตอนในคู่มือ | Testing Server, Backup Remote | ตาม Product Operation Guide | TC-UN13.001 | Ready | ตามแผน 10–14 ส.ค. 69 | ## Summary | No | Topic | Detail | | :---: | --- | --- | -| 1 | Test Case | การทดสอบระบบทั้งหมด 45 Test Case ผ่าน 100% | -| 2 | Pending | ไม่พบข้อผิดพลาด (Fail) หรือรายการค้าง (Pending) ในรอบการทดสอบนี้ | -| 3 | Conclusion | ผลการทดสอบสรุปได้ว่าระบบพร้อมสำหรับ UAT และการส่งมอบ เนื่องจากผลการทดสอบผ่านครบ 100% และเป็นไปตาม Project Plan | +| 1 | Test Case | กำหนด Test Case ทั้งหมด 45 รายการ ครอบคลุม Software Unit ทุกหน่วย สถานะพร้อมทดสอบ (Ready) | +| 2 | เกณฑ์ผ่าน | ทุก Test Case ต้องได้ผลตาม Output Specifications ข้อบกพร่องที่พบบันทึกใน Correction Register และทดสอบซ้ำจนผ่าน | +| 3 | เกณฑ์เข้าสู่ UAT | Test Case ผ่านครบ 100% และไม่มีข้อบกพร่องระดับสูงคงค้าง ผลการทดสอบบันทึกใน Test Report | ## ผู้จัดทำเอกสาร (Secretary) diff --git a/sdlc/2-SI Process (12 Work Product)/19.Product Operation Guide/200-WMS-26-001-00 Product Operation Guide 25690817 V1.0 ThS.md b/sdlc/2-SI Process (12 Work Product)/19.Product Operation Guide/200-WMS-26-001-00 Product Operation Guide 25690817 V1.0 ThS.md index 5dcc0cb..6312f7c 100644 --- a/sdlc/2-SI Process (12 Work Product)/19.Product Operation Guide/200-WMS-26-001-00 Product Operation Guide 25690817 V1.0 ThS.md +++ b/sdlc/2-SI Process (12 Work Product)/19.Product Operation Guide/200-WMS-26-001-00 Product Operation Guide 25690817 V1.0 ThS.md @@ -71,14 +71,14 @@ 4. กรณีกู้คืนระบบใช้งานจริง ให้บันทึกจุดกู้คืน หยุดบริการที่เกี่ยวข้อง กู้คืนชุดสำรองที่ตรวจสอบแล้ว เริ่มบริการแอปพลิเคชันและ Node.js ใหม่ แล้วตรวจสอบสถานะตามหัวข้อ 5 5. กรณีการสำรองข้อมูลล้มเหลวหรือไม่ทำงานตามกำหนด ผู้ดูแลระบบต้องตรวจสอบสาเหตุและสั่งทำงานซ้ำ -การทดสอบกู้คืนดำเนินการเมื่อ 23 สิงหาคม 2569 โดยกู้คืนชุดสำรองลงในสภาพแวดล้อมที่ไม่ใช่ระบบใช้งานจริงสำเร็จ ตรวจสอบการเข้าถึงฐานข้อมูลและข้อมูลตัวอย่างครบถ้วน และผู้จัดการโครงการได้ทบทวนผลการทดสอบในขั้นตอนปิดโครงการ +กำหนดทดสอบกู้คืนภายใน 23 สิงหาคม 2569 โดยกู้คืนชุดสำรองลงในสภาพแวดล้อมที่ไม่ใช่ระบบใช้งานจริง ตรวจสอบการเข้าถึงฐานข้อมูลและข้อมูลตัวอย่างให้ครบถ้วน และให้ผู้จัดการโครงการทบทวนผลการทดสอบในขั้นตอนปิดโครงการ ## 7 การปิดรายการควบคุมด้านปฏิบัติการ | ลำดับ | รายการควบคุม | ผู้รับผิดชอบ | สถานะ | หลักฐานการปิดรายการ | | :---: | --- | --- | --- | --- | -| OP-001 | การสำรองและกู้คืนฐานข้อมูล `wms` และ `wms2` แบบอัตโนมัติ | System Administrator | ปิดรายการ 23 สิงหาคม 2569 | หัวข้อ 6 ระบุรอบการสำรอง ที่จัดเก็บ การเก็บรักษา ขั้นตอนกู้คืน และผลการทดสอบกู้คืน | -| OP-002 | การเฝ้าระวังระบบและการแจ้งเตือนเมื่อเกิดเหตุขัดข้อง | System Administrator | ปิดรายการ 23 สิงหาคม 2569 | หัวข้อ 5 ระบุรอบการตรวจสอบ เงื่อนไขการแจ้งเตือน ผู้รับแจ้ง และขั้นตอนการยกระดับ | +| OP-001 | การสำรองและกู้คืนฐานข้อมูล `wms` และ `wms2` แบบอัตโนมัติ | System Administrator | กำหนดปิดรายการ 23 สิงหาคม 2569 | หัวข้อ 6 ระบุรอบการสำรอง ที่จัดเก็บ การเก็บรักษา ขั้นตอนกู้คืน และแผนการทดสอบกู้คืน | +| OP-002 | การเฝ้าระวังระบบและการแจ้งเตือนเมื่อเกิดเหตุขัดข้อง | System Administrator | กำหนดปิดรายการ 23 สิงหาคม 2569 | หัวข้อ 5 ระบุรอบการตรวจสอบ เงื่อนไขการแจ้งเตือน ผู้รับแจ้ง และขั้นตอนการยกระดับ | ## 8 การจัดการผู้ใช้งานและสิทธิ์ diff --git a/sdlc/2-SI Process (12 Work Product)/22.Validation Result/200-WMS-26-001-00 Validation Results 25690814 V1.0 PaNg.md b/sdlc/2-SI Process (12 Work Product)/22.Validation Result/200-WMS-26-001-00 Validation Results 25690814 V1.0 PaNg.md index 17c8a29..46af872 100644 --- a/sdlc/2-SI Process (12 Work Product)/22.Validation Result/200-WMS-26-001-00 Validation Results 25690814 V1.0 PaNg.md +++ b/sdlc/2-SI Process (12 Work Product)/22.Validation Result/200-WMS-26-001-00 Validation Results 25690814 V1.0 PaNg.md @@ -154,7 +154,7 @@ | ไม่ผ่าน (Failed) | 0 | | ค้างการทดสอบ | 0 | -ตัวแทนลูกค้าได้ทดสอบการยอมรับครบทุกความต้องการใน Customer Requirements บนสภาพแวดล้อมใช้งานจริง ผลการทดสอบผ่านทั้งหมด ไม่พบประเด็นที่ขัดขวางการเปิดใช้งาน จึงยืนยันความพร้อมของระบบสำหรับการตรวจรับส่งมอบ ซึ่งบันทึกไว้ใน Acceptance Report เมื่อ 17 สิงหาคม 2569 +ตัวแทนลูกค้าได้ทดสอบการยอมรับครบทุกความต้องการใน Customer Requirements บนสภาพแวดล้อมใช้งานจริง ผลการทดสอบผ่านทั้งหมด ไม่พบประเด็นที่ขัดขวางการเปิดใช้งาน จึงยืนยันความพร้อมของระบบและเสนอเข้าสู่การตรวจรับส่งมอบตามแผนในวันที่ 17 สิงหาคม 2569 ## ผู้จัดทำเอกสาร (Secretary) diff --git a/sdlc/3-Other Document/200-WMS-26-001-00 List of Evidence 25690824 V1.0 YaB.md b/sdlc/3-Other Document/200-WMS-26-001-00 List of Evidence 25690824 V1.0 YaB.md index d2f6708..e4e9422 100644 --- a/sdlc/3-Other Document/200-WMS-26-001-00 List of Evidence 25690824 V1.0 YaB.md +++ b/sdlc/3-Other Document/200-WMS-26-001-00 List of Evidence 25690824 V1.0 YaB.md @@ -35,7 +35,7 @@ | 14 | Software Components | 200-WMS-26-001-00 Software Components 25690817 V1.0 ThS | เอกสารแสดงส่วนประกอบต่าง ๆ ของโปรแกรมแต่ละเวอร์ชัน | | 15 | Test Cases and Test Procedures | 200-WMS-26-001-00 Test Case and Test Procedures 25690731 V1.0 PaNg | เอกสารแสดงตัวอย่างชุดข้อมูลที่ใช้ทดสอบ | | 16 | Test Report | 200-WMS-26-001-00 Test Report 25690814 V1.0 PaNg | บันทึกผลการทดสอบระบบ | -| 17 | Software | 200-WMS-26-001-00 Software 25690817 V1.0 ThS | ซอฟต์แวร์สำหรับส่งมอบให้กับผู้ใช้งาน (Baseline `6c39700`, Tag `sdlc-v1.0-final`) | +| 17 | Software | 200-WMS-26-001-00 Software 25690817 V1.0 ThS | ซอฟต์แวร์สำหรับส่งมอบให้กับผู้ใช้งาน (Baseline `6c39700`) | | 18 | Software User Documentation | 200-WMS-26-001-00 Software User Document 25690814 V1.0 ThS | เอกสารคู่มือการใช้งานสำหรับผู้ใช้ | | 19 | Product Operation Guide | 200-WMS-26-001-00 Product Operation Guide 25690817 V1.0 ThS | เอกสารคู่มือปฏิบัติงานสำหรับผู้ดูแลระบบ | | 20 | Maintenance Documentation | 200-WMS-26-001-00 Maintenance Document 25690817 V1.0 ThS | เอกสารคู่มือการบำรุงรักษาระบบ | @@ -63,7 +63,7 @@ | เอกสารที่จัดเตรียมครบถ้วน | 56 | | เอกสารที่ยังไม่ได้จัดเตรียม | 0 | -เอกสารและหลักฐานทั้งหมดจัดเก็บใน Project Repository และสำรองไว้ตามที่ระบุในเอกสาร Project Repository (Backup) โดยชุดเอกสารส่งมอบควบคุมด้วย Tag `sdlc-v1.0-final` +เอกสารและหลักฐานทั้งหมดจัดเก็บใน Project Repository และสำรองไว้ตามที่ระบุในเอกสาร Project Repository (Backup) โดยชุดเอกสารส่งมอบควบคุมใน Branch `sdlc` ## ผู้จัดทำเอกสาร (Secretary) diff --git a/sdlc/3-Other Document/200-WMS-26-001-00 Project Charter Report 25690123 V1.0 YaB.md b/sdlc/3-Other Document/200-WMS-26-001-00 Project Charter Report 25690123 V1.0 YaB.md index b8a1690..ef70523 100644 --- a/sdlc/3-Other Document/200-WMS-26-001-00 Project Charter Report 25690123 V1.0 YaB.md +++ b/sdlc/3-Other Document/200-WMS-26-001-00 Project Charter Report 25690123 V1.0 YaB.md @@ -76,8 +76,8 @@ | อนุมัติกฎบัตรโครงการ | 23 มกราคม 2569 | Project Sponsor อนุมัติขอบเขตและวัตถุประสงค์ | | ตั้ง Baseline ความต้องการ | 18 กุมภาพันธ์ 2569 | อนุมัติ Customer Requirements และแผนงาน | | Baseline การพัฒนา | 29 พฤษภาคม 2569 | พัฒนาครบทุกโมดูลตามขอบเขต | -| ทดสอบระบบและ UAT | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | ผลการทดสอบผ่านครบทุกรายการ | -| ตรวจรับส่งมอบ | 17 สิงหาคม 2569 | ผลการตรวจรับ Accepted | +| ทดสอบระบบและ UAT | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | Test Case และ UAT ผ่านครบทุกรายการ | +| ตรวจรับส่งมอบ | 17 สิงหาคม 2569 | Project Sponsor ลงนามตรวจรับสิ่งส่งมอบ | | ปิดโครงการ | 24 สิงหาคม 2569 | ปิดโครงการอย่างเป็นทางการ | ## ผู้จัดทำเอกสาร (Secretary)