diff --git a/scripts/adjust_docx_whitespace.php b/scripts/adjust_docx_whitespace.php deleted file mode 100644 index 12c1ecb..0000000 --- a/scripts/adjust_docx_whitespace.php +++ /dev/null @@ -1,143 +0,0 @@ -\n"); - exit(2); -} - -$path = $argv[1]; -$wordNs = 'http://schemas.openxmlformats.org/wordprocessingml/2006/main'; -$zip = new ZipArchive(); -if ($zip->open($path) !== true) { - throw new RuntimeException("Cannot open DOCX: {$path}"); -} - -$documentXml = $zip->getFromName('word/document.xml'); -if ($documentXml === false) { - throw new RuntimeException('word/document.xml is missing'); -} - -$doc = new DOMDocument('1.0', 'UTF-8'); -$doc->preserveWhiteSpace = false; -$doc->formatOutput = false; -if (!$doc->loadXML($documentXml)) { - throw new RuntimeException('word/document.xml is invalid'); -} - -$xpath = new DOMXPath($doc); -$xpath->registerNamespace('w', $wordNs); - -function attr(DOMElement $element, string $name, string $value, string $ns): void -{ - $element->setAttributeNS($ns, 'w:' . $name, $value); -} - -function child(DOMDocument $doc, DOMElement $parent, string $localName, string $ns): DOMElement -{ - foreach ($parent->childNodes as $node) { - if ($node instanceof DOMElement && $node->namespaceURI === $ns && $node->localName === $localName) { - return $node; - } - } - $element = $doc->createElementNS($ns, 'w:' . $localName); - $parent->appendChild($element); - return $element; -} - -foreach ($xpath->query('//w:body/w:p | //w:body/w:tbl//w:p') as $paragraph) { - if (!$paragraph instanceof DOMElement) { - continue; - } - - $text = ''; - foreach ($xpath->query('.//w:t', $paragraph) as $textNode) { - $text .= $textNode->textContent; - } - $text = trim(preg_replace('/\s+/u', ' ', $text) ?? ''); - - $pPrNode = $xpath->query('./w:pPr', $paragraph)->item(0); - if (!$pPrNode instanceof DOMElement) { - $pPrNode = $doc->createElementNS($wordNs, 'w:pPr'); - $paragraph->insertBefore($pPrNode, $paragraph->firstChild); - } - $spacing = child($doc, $pPrNode, 'spacing', $wordNs); - - $before = '0'; - $after = '30'; - $line = '320'; - - if ($text === '') { - $after = '20'; - $line = '120'; - } elseif (preg_match('/^[1-7]\.\s/u', $text)) { - $before = '120'; - $after = '45'; - $line = '330'; - } elseif (preg_match('/^[1-7]\.\d\s/u', $text)) { - $before = '70'; - $after = '30'; - $line = '320'; - } elseif (str_starts_with($text, '•')) { - $after = '15'; - $line = '310'; - } elseif (str_starts_with($text, 'วันที่ 5 มกราคม')) { - $before = '40'; - $after = '100'; - $line = '330'; - } elseif (str_starts_with($text, 'เรื่อง') || str_starts_with($text, 'เรียน')) { - $after = '55'; - $line = '330'; - } elseif (str_starts_with($text, 'ลงชื่อ')) { - $before = '160'; - $after = '10'; - $line = '310'; - } elseif (str_starts_with($text, '(') || str_starts_with($text, 'ตำแหน่ง') || str_starts_with($text, 'วันที่ _') || str_starts_with($text, 'ผู้มีอำนาจ')) { - $after = '10'; - $line = '310'; - } elseif (str_starts_with($text, 'บริษัท บี.อาร์.เอ็น.') || str_starts_with($text, 'เอกสารฉบับนี้') || str_starts_with($text, 'ผลส่งมอบประกอบ') || str_starts_with($text, 'การเปลี่ยนแปลง') || str_starts_with($text, 'จึงจัดทำ')) { - $after = '55'; - $line = '330'; - } - - attr($spacing, 'before', $before, $wordNs); - attr($spacing, 'after', $after, $wordNs); - attr($spacing, 'line', $line, $wordNs); - attr($spacing, 'lineRule', 'auto', $wordNs); -} - -foreach ($xpath->query('//w:sectPr/w:pgMar') as $margin) { - if (!$margin instanceof DOMElement) { - continue; - } - attr($margin, 'top', '850', $wordNs); - attr($margin, 'bottom', '850', $wordNs); - attr($margin, 'left', '1080', $wordNs); - attr($margin, 'right', '1080', $wordNs); - attr($margin, 'header', '400', $wordNs); - attr($margin, 'footer', '400', $wordNs); -} - -foreach ($xpath->query('//w:tbl/w:tblPr') as $tableProperties) { - if (!$tableProperties instanceof DOMElement) { - continue; - } - $margins = child($doc, $tableProperties, 'tblCellMar', $wordNs); - foreach (['top' => '45', 'left' => '70', 'bottom' => '45', 'right' => '70'] as $side => $width) { - $edge = child($doc, $margins, $side, $wordNs); - attr($edge, 'w', $width, $wordNs); - attr($edge, 'type', 'dxa', $wordNs); - } -} - -$updatedXml = $doc->saveXML(); -if ($updatedXml === false) { - throw new RuntimeException('Cannot serialize adjusted document XML'); -} -if (!$zip->addFromString('word/document.xml', $updatedXml)) { - throw new RuntimeException('Cannot update word/document.xml'); -} -$zip->close(); - -echo $path . PHP_EOL; diff --git a/scripts/build-sdlc-delivery.sh b/scripts/build-sdlc-delivery.sh index b1ad39d..96bc370 100755 --- a/scripts/build-sdlc-delivery.sh +++ b/scripts/build-sdlc-delivery.sh @@ -8,6 +8,11 @@ SOURCE_DIR="$ROOT_DIR/sdlc" DELIVERY_ROOT="$ROOT_DIR/sdlc-delivery" STAGING_DIR="$ROOT_DIR/.sdlc-delivery.staging" +# sdlc/ is generated output: the seed rebuilds every work product from the +# controlled project data in scripts/sdlc-seed/ before anything is rendered. +echo "Seeding work products from project data..." +node "$SCRIPT_DIR/sdlc-seed/build.mjs" + if [[ ! -d "$TOOL_DIR/node_modules/playwright" ]]; then echo "Installing the local PDF renderer..." npm install --prefix "$TOOL_DIR" diff --git a/scripts/format_progress_status_html.php b/scripts/format_progress_status_html.php deleted file mode 100644 index bbd103a..0000000 --- a/scripts/format_progress_status_html.php +++ /dev/null @@ -1,117 +0,0 @@ -)~s', $template, $match)) { - fwrite(STDERR, "The template does not contain the approved Progress Status Record CSS.\n"); - exit(1); -} - -// The CSS must work for every record number, not just record 1. -$layoutCss = str_replace( - '#progress-status-record-1-of-13', - 'h1[id^="progress-status-record-"]', - $match[1] -); - -/** @return string */ -function approvalCard(string $id, string $title, string $paragraph): string -{ - $lines = preg_split('~\s*~i', trim($paragraph)) ?: []; - $items = []; - foreach ($lines as $line) { - $line = trim($line); - if ($line === '') { - continue; - } - if (preg_match('~^(Signature|Date):\s*_*\s*$~i', strip_tags($line), $label)) { - $items[] = '

' . htmlspecialchars($label[1], ENT_QUOTES, 'UTF-8') . ':

'; - } else { - $items[] = '

' . $line . '

'; - } - } - return '

' . $title . '

' . implode("\n", $items) . '
'; -} - -$files = glob($directory . '/*.html') ?: []; -$formatted = 0; -$skipped = 0; - -foreach ($files as $path) { - $html = file_get_contents($path); - if ($html === false) { - fwrite(STDERR, "Could not read: $path\n"); - continue; - } - if (str_contains($html, '/* BRN Progress Status Record print layout')) { - $skipped++; - continue; - } - - $html = preg_replace('~~', "\n", $html, 1, $headCount); - if ($headCount !== 1) { - fwrite(STDERR, "Skipped malformed HTML: " . basename($path) . "\n"); - continue; - } - - $header = '
BRN corporate identity
Progress Status Record
'; - $html = preg_replace( - '~(

.*?

\s*)~s', - $header . "\n" . '$1
', - $html, - 1, - $titleCount - ); - if ($titleCount !== 1) { - fwrite(STDERR, "Skipped unsupported record structure: " . basename($path) . "\n"); - continue; - } - - if (preg_match('~

8\. Approval

(.*?)(?=)~s', $html, $approvalMatch)) { - preg_match_all('~

(.*?)

\s*

(.*?)

~s', $approvalMatch[1], $blocks, PREG_SET_ORDER); - if (count($blocks) === 3) { - $cards = []; - foreach ($blocks as $block) { - $cards[] = approvalCard($block[1], $block[2], $block[3]); - } - $approval = '

8. Approval

' - . implode("\n", $cards) - . '
'; - $html = str_replace($approvalMatch[0], $approval, $html); - } - } - - $date = 'Progress Status Record'; - if (preg_match('~\s*~s', $html, $dateMatch)) { - $date = trim(strip_tags($dateMatch[1])); - } - $footer = ''; - $html = str_replace('', $footer . "\n", $html); - - if (file_put_contents($path, $html) === false) { - fwrite(STDERR, "Could not write: $path\n"); - continue; - } - $formatted++; -} - -printf("Formatted: %d; already formatted: %d\n", $formatted, $skipped); diff --git a/scripts/generate_progress_status_records.php b/scripts/generate_progress_status_records.php deleted file mode 100644 index a9167d4..0000000 --- a/scripts/generate_progress_status_records.php +++ /dev/null @@ -1,182 +0,0 @@ - [ - ['1.1','Identify project need','09-Jan-2026','09-Jan-2026','100%','Statement of Work','Reconstructed completed'], - ['1.2','Identify stakeholders and objectives','16-Jan-2026','16-Jan-2026','100%','Project role confirmation','Reconstructed completed'], - ['1.3','Approve project scope','23-Jan-2026','Pending signature','90%','Statement of Work V1.0 Final','Approval pending'], - ], - '25690218' => [ - ['2.1','Collect customer requirements','06-Feb-2026','06-Feb-2026','100%','Customer Requirements V1.0 Final','Reconstructed completed'], - ['2.2','Prepare Software Project Plan','13-Feb-2026','13-Feb-2026','100%','Software Project Plan V1.0 Final','Reconstructed completed'], - ['2.3','Baseline requirements and schedule','18-Feb-2026','18-Feb-2026','100%','Work Schedule and Project Plan','Reconstructed completed; approval pending'], - ], - '25690225' => [ - ['3.1','Initialize WMS application','25-Feb-2026','25-Feb-2026','100%','Git `9a50080`–`1843308`','Completed'], - ], - '25690317' => [ - ['3.2','Security and database foundation','17-Mar-2026','17-Mar-2026','100%','Git `93d903c`–`a4f474b`','Completed'], - ], - '25690429' => [ - ['3.3','Inventory and warehouse modules','29-Apr-2026','29-Apr-2026','100%','Git `3b8f94f`–`db5c47b`','Completed'], - ], - '25690508' => [ - ['3.4','Authentication and onboarding','12-May-2026','In progress at 08-May','70%','Commits through 08-May-2026','In progress; carried forward'], - ['3.5','Order and barcode workflows','08-May-2026','08-May-2026','100%','02–08 May commits','Completed'], - ], - '25690513' => [ - ['3.4','Authentication and onboarding','12-May-2026','12-May-2026','100%','Login/onboarding and recovery commits','Completed'], - ['3.6','Production preparation and setup','13-May-2026','13-May-2026','100%','11–13 May commits','Completed'], - ['3.7','Accounting and finance workflows','23-May-2026','In progress at 13-May','20%','Accounting foundation commits','In progress; carried forward'], - ], - '25690523' => [ - ['3.7','Accounting and finance workflows','23-May-2026','23-May-2026','100%','13–23 May accounting commits','Completed'], - ['3.8','Real-time services and scheduled jobs','27-May-2026','In progress at 23-May','45%','Node.js and GL aggregate commits','In progress; carried forward'], - ['3.9','Security hardening and lifecycle review','28-May-2026','In progress at 23-May','35%','Access, flow, and role-guard commits','In progress; carried forward'], - ], - '25690529' => [ - ['3.8','Real-time services and scheduled jobs','27-May-2026','27-May-2026','100%','22–27 May Node.js/scheduler commits','Completed'], - ['3.9','Security hardening and lifecycle review','28-May-2026','28-May-2026','100%','21–28 May hardening/review commits','Completed'], - ['3.10','Refactor and development baseline','29-May-2026','29-May-2026','100%','Git `a0677d6`','Completed'], - ], - '25690731' => [ - ['4.3','Verify requirements, design, and implementation','31-Jul-2026','Evidence consolidation pending','80%','Reconstructed verification work products','In progress; evidence gap'], - ['4.4','Customer-oriented system validation','07-Aug-2026','In progress at 31-Jul','85%','Reconstructed validation activities','In progress; carried forward'], - ['4.5','Prepare operational documentation','07-Aug-2026','In progress at 31-Jul','85%','Configuration and draft work products','In progress; carried forward'], - ], - '25690803' => [ - ['4.6','Configuration and login corrections','03-Aug-2026','03-Aug-2026','100%','Git `b2c4374`','Completed; formal correction closure pending'], - ], - '25690814' => [ - ['4.4','Customer-oriented system validation','07-Aug-2026','Evidence consolidation pending','90%','Validation work products','In progress; approval pending'], - ['4.5','Prepare operational documentation','07-Aug-2026','Evidence consolidation pending','90%','Operational documentation work products','In progress; approval pending'], - ['4.7','Prepare demonstration data','14-Aug-2026','14-Aug-2026','100%','Git `dd48a8b`','Completed'], - ['5.1','Final repository and work-product review','14-Aug-2026','In progress','70%','Repository and SDLC gap review','In progress; carried forward'], - ['5.2','Acceptance and project closure','14-Aug-2026','Pending signature','75%','Completion boundary reached','Acceptance pending'], - ], - '25690817' => [ - ['5.1','Final repository and work-product review','14-Aug-2026','In progress at 17-Aug','80%','BRN WMS PM work products and gap list','In progress'], - ['5.2','Acceptance and project closure','14-Aug-2026','Pending evidence and signature','75%','Acceptance evidence not yet authorized','Acceptance pending'], - ], -]; - -foreach ($records as $index => $record) { - [$date,$period,$milestone,$planned,$completed,$evidenceClass,$evidence,$rag,$issue,$next] = $record; - $number = $index + 1; - $taskRows = ''; - foreach ($tasksByDate[$date] as $task) { - $taskRows .= '| ' . implode(' | ', $task) . " |\n"; - } - - $content = <<' . ($b ? '' : '') . ''.e($s).''; -} -function p(string $s = '', string $a = 'left', bool $b = false, int $sz = 28, int $before = 0, int $after = 40): string { - return ''.r($s,$b,$sz).''; -} -function h(string $no, string $title): string { return p($no.' '.$title,'left',true,31,120,45); } -function b(string $s): string { return ''.r('• '.$s,false,28).''; } -function pb(): string { return ''; } -function tr(array $cells, bool $head = false, array $widths = []): string { - $x=''; - foreach($cells as $i=>$v){$width=$widths[$i]??2200;$x.=''.($head?'':'').''.p((string)$v,'left',$head,25,0,15).'';} - return $x.''; -} -function tbl(array $rows, array $widths, bool $firstHead = true): string { - $x=''; - foreach($widths as $wd)$x.='';$x.=''; - foreach($rows as $i=>$row)$x.=tr($row,$firstHead&&$i===0,$widths); - return $x.''; -} -function top(string $label): string { - return ''.p('B.R.N. ENTERPRISE CO., LTD.','left',true,29,0,0).p('1011 Supalai Grand Tower, 7th Floor, Unit 6-7, Rama 3 Road, Bangkok 10120','left',false,18,0,0).''.p($label,'center',false,29,0,0).''; -} -function meta(string $doc, string $title): string { - return tbl([ - ['Document No',$doc,'Release, Version','05/01/26 V1.0 Final'], - ['Project Name','โครงการพัฒนาระบบบริหารจัดการคลังสินค้า BRN WMS','Project Code','200-WMS-26-001-00'], - ['Title',$title,'Project Period','5 มกราคม – 14 สิงหาคม 2569'], - ['Prepared by','คุณอภิรัชต์ สุภัทรประทีป (Project Manager)','Approval','Pending authorized signature'], - ],[1600,3500,1600,2300],false); -} -function saveDoc(string $path,string $title,string $body,string $code): void { - $document=''.$body.''; - $ct=''; - $rels=''; - $drels=''; - $footer=''.p('ISO/IEC 29110 | 200-WMS-26-001-00 | '.$code.' | V1.0 Final','center',false,18,0,0).''; - $core=''.e($title).'คุณอภิรัชต์ สุภัทรประทีป (Project Manager)Editable ISO/IEC 29110 controlled final document ready for authorization.2026-01-05T00:00:00+07:00'; - $z=new ZipArchive();if($z->open($path,ZipArchive::CREATE|ZipArchive::OVERWRITE)!==true)throw new RuntimeException('Cannot create '.$path); - foreach(['[Content_Types].xml'=>$ct,'_rels/.rels'=>$rels,'word/document.xml'=>$document,'word/_rels/document.xml.rels'=>$drels,'word/footer1.xml'=>$footer,'docProps/core.xml'=>$core] as $n=>$v)$z->addFromString($n,$v);$z->close(); -} - -$plan = top('Software Project Plan').p().meta('Software Project Plan','แผนการดำเนินโครงการ').h('1.','วัตถุประสงค์และภาพรวม') - .p('โครงการ BRN WMS จัดทำระบบเว็บแบบหลายบริษัทและหลายคลัง เพื่อควบคุมข้อมูลหลัก สินค้าคงคลัง เอกสารซื้อขาย การเงินและบัญชี รายงาน และการแจ้งเตือน โดยบริหารงานตามกระบวนการ Project Management และ Software Implementation ของ ISO/IEC 29110 Basic Profile.') - .h('2.','ขอบเขตและผลส่งมอบ').b('ซอฟต์แวร์ BRN WMS และฐานข้อมูลสำหรับ Authentication/Company และ WMS/Accounting').b('โมดูลผู้ใช้ บริษัท ผู้ติดต่อ สินค้า คลัง/ตำแหน่งจัดเก็บ Stock In/Out/Transfer Lot Serial Expiry และ Barcode').b('โมดูล Quotation, Order, Return, Purchase, Invoice, Receipt, Payment, General Ledger และรายงาน').b('Node.js Socket.IO สำหรับแจ้งเตือน และ Scheduler สำหรับ Stock/GL maintenance และ alerts').b('Work Products ISO/IEC 29110 จำนวน 22 รายการและ Project Repository ที่ควบคุมเวอร์ชัน') - .h('3.','แนวทางดำเนินโครงการ').tbl([['Phase','Period','Primary output'],['Initiation and planning','05-Jan–18-Feb-2026','SOW, Customer Requirements, Project Plan'],['Implementation','19-Feb–29-May-2026','Requirements, Design, Components, Tests, Software'],['Verification, validation and documentation','30-May–07-Aug-2026','Test/Verification/Validation results and guides'],['Stabilization and closure','03-Aug–14-Aug-2026','Corrections, demo data, acceptance and repository closure']],[2600,2500,3900]) - .h('4.','ทีมงานและความรับผิดชอบ').tbl([['Role','Responsibility'],['Project Sponsor / Customer Representative / Authorized Approver — คุณเสรี วิริยะสกุลธรณ์','Represent customer needs and authorize scope, resources, changes and acceptance.'],['Project Manager — คุณอภิรัชต์ สุภัทรประทีป','Plan, monitor, communicate, control risks/issues and close the project.'],['Developer / System Analyst — ธนกร สถิตวิทยากุล','Analyze, design, implement, configure, correct and maintain technical records aligned with Git evidence.'],['Tester / Reviewer','Prepare and execute tests; verify work products and record results.'],['Document Control','Control identifiers, versions, approvals, repository and evidence.']],[3200,5800]) - .h('5.','ทรัพยากรและสภาพแวดล้อม').b('PHP 8+, MySQL/MariaDB, Nginx or compatible web server, Node.js, npm and PM2').b('Git main branch as source baseline; configuration secrets excluded from version control').b('Two logical databases: identity/company data and WMS/accounting operational data').b('Development and deployment in Asia/Bangkok time zone with controlled configuration') - .h('6.','การบริหารความเสี่ยง').tbl([['Risk','Response / Control'],['Reconstructed pre-development evidence','Mark inferred records clearly and obtain retrospective review/approval.'],['Unauthorized access or tenant-data exposure','Role guards, company/warehouse scoping, session controls and security review.'],['Inventory inconsistency','Transactions, validation, locking, approval flow, stock summaries and reconciliation tests.'],['Configuration or secret exposure','Ignored local configuration, templates, deployment guide and restricted web access.'],['Insufficient acceptance evidence','Trace requirements to tests and obtain authorized signatures before baselining.'],['Scope expansion','Record Change Report, assess impact and authorize before implementation.']],[3600,5400]) - .h('7.','คุณภาพ การทวนสอบ และการตรวจสอบความใช้ได้').b('Every approved requirement receives a unique ID and forward/backward traceability.').b('Reviews cover requirements, design, code/configuration, test records and operational documentation.').b('Critical failures prevent acceptance; other defects require disposition in the Correction Register.').b('Validation uses representative warehouse, order, finance and role-based workflows with controlled demo data.') - .h('8.','การควบคุมการเปลี่ยนแปลงและการกำหนดค่า').b('Configuration items include source code, database/setup scripts, Node.js services, controlled documents and releases.').b('Changes are requested, analyzed, approved, implemented, tested and closed with linked evidence.').b('Document filenames use project code, work-product name, Buddhist date, version and status/author indicator.') - .h('9.','การสื่อสารและการติดตาม').tbl([['Record','Frequency / trigger','Owner'],['Progress Status Record','Weekly during active work','Project Manager'],['Meeting Record','At project/review/decision meetings','Recorder'],['Correction Register','When an issue or defect is identified','Project Manager / Tester'],['Change Report','When baseline scope/configuration changes','Project Manager'],['Repository review','At baselines and closure','Document Control']],[3400,3300,2300]) - .h('10.','เกณฑ์การส่งมอบและปิดโครงการ').b('Scope functions pass their linked test cases and no unresolved critical defect remains.').b('Installation, user, operation and maintenance information is available and reviewed.').b('Software and all required work products are stored in the controlled repository.').b('Verification, validation and acceptance results are reviewed and authorized.').p('Approval signature: ____________________________________','center',false,28,180,20).p('Name/position: _______________________________________','center').p('Date: ________________________________________________','center'); - -$reqs = [ - ['FR-001','Identity','Register/onboard company owner and invited users.','Must'],['FR-002','Identity','Authenticate users and apply role-based access for Owner, Admin, Staff and Viewer.','Must'],['FR-003','Identity','Support password recovery, session control and applicable OTP verification.','Must'],['FR-004','Administration','Maintain company profile, SMTP, system settings, users and application access.','Must'], - ['FR-005','Master data','Maintain warehouses, storage areas/bins, product categories, products and contacts.','Must'],['FR-006','Master data','Support simple and layered warehouse-location models.','Should'],['FR-007','Inventory','Record stock-in with product, quantity, warehouse/bin and traceability attributes.','Must'],['FR-008','Inventory','Record stock-out with authorization and balance validation.','Must'],['FR-009','Inventory','Transfer stock between controlled warehouse locations.','Must'],['FR-010','Inventory','Track lot, serial number and expiry-date information where applicable.','Must'],['FR-011','Inventory','Display stock overview, movement history, capacity/occupancy and low-stock information.','Must'],['FR-012','Inventory','Generate SKU and location barcode labels and support scanning workflows.','Should'], - ['FR-013','Sales','Create and manage quotations, sales orders, invoices, returns and credit notes.','Must'],['FR-014','Purchasing','Create and manage purchase requests, purchase orders, supplier invoices and supplier returns.','Must'],['FR-015','Finance','Create and manage receipt/payment billing, receipts and payments.','Must'],['FR-016','Accounting','Maintain chart of accounts, departments, formulas, journals and GL entries.','Must'],['FR-017','Accounting','Produce trial balance, profit/loss, balance sheet, VAT and GL movement reports.','Must'],['FR-018','Documents','Generate controlled document numbers and manage document lifecycle/status.','Must'],['FR-019','Documents','Attach permitted files to supported records.','Should'],['FR-020','Reports','Filter, view and export operational and management reports.','Must'], - ['FR-021','Notifications','Notify authorized users of relevant status transitions and operational alerts.','Should'],['FR-022','Scheduler','Maintain stock/GL summaries and produce low-stock/overdue-invoice alerts.','Should'],['FR-023','Audit','Preserve creator/updater/status and transaction history required for review.','Must'],['FR-024','Isolation','Restrict company and warehouse data to the authorized user context.','Must'], - ['NFR-001','Security','Protect secrets from source control and direct web access.','Must'],['NFR-002','Security','Validate input, authorize server-side actions and prevent cross-tenant access.','Must'],['NFR-003','Integrity','Execute related database updates transactionally and prevent invalid negative/duplicate movements.','Must'],['NFR-004','Availability','Provide documented installation, configuration, backup and recovery procedures.','Must'],['NFR-005','Usability','Provide responsive browser UI suitable for desktop and warehouse-floor devices.','Should'],['NFR-006','Performance','Provide practical response times for daily operations and use aggregate tables for dashboards/reports.','Should'],['NFR-007','Maintainability','Use modular managers/APIs, centralized helpers, configuration templates and version control.','Should'],['NFR-008','Compatibility','Run on PHP 8+, MySQL/MariaDB and current standards-based browsers.','Must'],['NFR-009','Traceability','Link each approved requirement to design, component and verification evidence.','Must'],['NFR-010','Time','Use Asia/Bangkok consistently for application and scheduled jobs.','Must'], -]; - -$cr = top('Customer Requirements').p().meta('Customer Requirements','เอกสารบันทึกและสรุปความต้องการของลูกค้า').h('1.','วัตถุประสงค์').p('เอกสารฉบับนี้กำหนดความต้องการระดับลูกค้าและผู้ใช้ของ BRN WMS เพื่อเป็นฐานสำหรับ Software Requirements Specification, Software Design, Traceability Record, Test Cases และ Acceptance. ข้อมูลถูกรวบรวมย้อนหลังจากขอบเขตที่ตกลง ซอร์สโค้ด ฐานข้อมูล และประวัติ Git โดยธนกร สถิตวิทยากุล ในบทบาท Developer / System Analyst และต้องได้รับการทบทวนและอนุมัติโดยคุณเสรี วิริยะสกุลธรณ์ ในบทบาท Project Sponsor / Customer Representative / Authorized Approver ก่อน Baseline.') - .h('2.','ผู้มีส่วนได้ส่วนเสีย').tbl([['Stakeholder','Interest / role'],['Authorized Sponsor','Approve scope, resources, changes and final acceptance.'],['Warehouse Manager / Staff','Accurate receiving, issuing, transfer, stock status, traceability and reports.'],['Sales and Purchasing Users','Controlled quotation/order/purchase/invoice/return workflows.'],['Finance and Accounting Users','Billing, receipts, payments, journals, GL and financial reports.'],['System Administrator','Company configuration, user access, deployment, monitoring and recovery.'],['Auditor / Management','Traceable transactions, controlled records and management information.']],[3400,5600]) - .h('3.','สมมติฐานและข้อจำกัด').b('The solution is a browser-based application deployed on a controlled PHP/MySQL environment.').b('External ERP integration, legacy-data migration, hardware procurement and custom third-party services are outside scope unless changed formally.').b('Customer representatives provide representative data, review requirements and participate in validation and acceptance.').b('Requirements marked Must are acceptance-critical; Should requirements may be accepted with documented disposition.') - .h('4.','รายการความต้องการ'); -$reqRows=[['ID','Area','Requirement','Priority']];foreach($reqs as $q)$reqRows[]=$q;$cr.=tbl($reqRows,[1300,1700,5100,900]).h('5.','เกณฑ์การยอมรับความต้องการ').b('Each Must requirement is implemented, traced to one or more test cases and passes verification/validation.').b('No critical security, tenant-isolation, inventory-integrity or transaction defect remains open.').b('Any exception or deferred Should requirement is recorded and authorized.').b('Customer review confirms that representative end-to-end workflows support intended warehouse operations.').h('6.','การอนุมัติ Baseline').p('Customer representative signature: ______________________________','center',false,28,180,20).p('Name/position: ______________________________________________','center').p('Date: ________________________________________________________','center'); - -saveDoc($base.'2-Software Project Plan/200-WMS-26-001-00 Software Project Plan 25690105 V1.0 Final.docx','200-WMS-26-001-00 Software Project Plan',$plan,'PP'); -saveDoc($base.'3-Customer Requirement/200-WMS-26-001-00 Customer Requirements 25690112 V1.0 Final.docx','200-WMS-26-001-00 Customer Requirements',$cr,'CR'); -echo "Project Plan documents generated.\n"; -require __DIR__ . '/normalize_document_dates.php'; diff --git a/scripts/generate_sow.php b/scripts/generate_sow.php deleted file mode 100644 index d0a3a0e..0000000 --- a/scripts/generate_sow.php +++ /dev/null @@ -1,192 +0,0 @@ -' : ''; - return '' . $boldXml - . '' - . '' - . '' - . '' . xml($text) . ''; -} - -function para(string $text = '', string $align = 'left', bool $bold = false, int $size = 30, int $before = 0, int $after = 80, int $indent = 0): string -{ - return '' - . '' - . ($indent > 0 ? '' : '') - . '' . run($text, $bold, $size) . ''; -} - -function bullet(string $text): string -{ - return '' - . run('• ' . $text, false, 29) . ''; -} - -function tableRow(string $label, string $value): string -{ - return '' - . '' - . para($label, 'left', true, 27, 0, 20) . '' - . '' - . para($value, 'left', false, 27, 0, 20) . '' - . ''; -} - -$header = '' - . '' - . para('B.R.N. ENTERPRISE CO., LTD.', 'left', true, 29, 0, 0) - . para('1011 Supalai Grand Tower, 7th Floor, Unit 6-7, Rama 3 Road,', 'left', false, 19, 0, 0) - . para('Chongnonsi, Yannawa, Bangkok 10120', 'left', false, 19, 0, 0) - . '' - . para('Statement of Work', 'center', false, 29, 0, 0) - . ''; - -$meta = '' - . '' - . '' - . '' - . '' - . tableRow('รหัสโครงการ', '200-WMS-26-001-00') - . tableRow('ชื่อโครงการ', 'โครงการพัฒนาระบบบริหารจัดการคลังสินค้า BRN WMS') - . tableRow('ระยะเวลาโครงการ', '5 มกราคม 2569 – 14 สิงหาคม 2569') - . tableRow('เอกสาร', 'Statement of Work · Version 1.0 · สถานะ Final') - . ''; - -$body = $header - . para('', 'left', false, 10, 0, 80) - . para('วันที่ 5 มกราคม 2569', 'center', false, 30, 80, 180) - . para('เรื่อง ขอบเขตการดำเนินงานโครงการพัฒนาระบบบริหารจัดการคลังสินค้า BRN WMS', 'left', true, 30, 0, 100) - . para('เรียน ผู้บริหารและผู้มีส่วนเกี่ยวข้องในโครงการ', 'left', true, 30, 0, 180) - . para('บริษัท บี.อาร์.เอ็น. เอ็นเตอร์ไพรส์ จำกัด มีความประสงค์ดำเนินโครงการพัฒนาระบบบริหารจัดการคลังสินค้า BRN WMS เพื่อเพิ่มความถูกต้องและความรวดเร็วของงานคลังสินค้า ทำให้สามารถติดตามสินค้าคงคลัง การเคลื่อนไหวสินค้า คำสั่งซื้อ เอกสารทางธุรกิจ และข้อมูลบัญชีที่เกี่ยวข้องได้อย่างเป็นระบบ โดยใช้ข้อมูลแบบรวมศูนย์และกำหนดสิทธิ์การเข้าถึงตามบทบาทผู้ใช้งาน', 'both', false, 30, 0, 120, 720) - . para('เอกสารฉบับนี้กำหนดขอบเขต ผลส่งมอบ เกณฑ์การยอมรับ หน้าที่ความรับผิดชอบ และกรอบระยะเวลาของโครงการตามแนวทาง ISO/IEC 29110 โดยมีรายละเอียดดังต่อไปนี้', 'both', false, 30, 0, 180, 720) - . $meta - . para('1. วัตถุประสงค์', 'left', true, 32, 180, 80) - . bullet('พัฒนาระบบเว็บสำหรับควบคุมสินค้าคงคลังและการปฏิบัติงานคลังสินค้าแบบหลายคลัง') - . bullet('สนับสนุนการรับเข้า เบิกจ่าย โอนย้าย ปรับปรุง และตรวจสอบยอดคงเหลือ พร้อมการติดตาม Lot, Serial Number และวันหมดอายุ') - . bullet('ลดความผิดพลาดจากการทำงานด้วยมือและเพิ่มความสามารถในการตรวจสอบย้อนหลัง') - . bullet('สนับสนุนการบริหารคำสั่งซื้อ จัดซื้อ คืนสินค้า ใบแจ้งหนี้ รายงาน และรายการบัญชีที่เกี่ยวข้อง') - . bullet('จัดให้มีการรักษาความมั่นคงปลอดภัย การแยกข้อมูลรายบริษัท การกำหนดสิทธิ์ และการแจ้งเตือนแบบเรียลไทม์') - . para('2. ขอบเขตงาน', 'left', true, 32, 150, 80) - . para('2.1 งานวิเคราะห์และออกแบบ', 'left', true, 29, 0, 50) - . bullet('รวบรวมและวิเคราะห์ความต้องการของผู้ใช้ กำหนดกระบวนการทำงาน ข้อมูล และกฎทางธุรกิจ') - . bullet('ออกแบบสถาปัตยกรรมระบบ ฐานข้อมูล ส่วนติดต่อผู้ใช้ การเชื่อมต่อบริการ และมาตรการความมั่นคงปลอดภัย') - . para('2.2 งานพัฒนาระบบ', 'left', true, 29, 80, 50) - . bullet('ข้อมูลหลัก: บริษัท ผู้ใช้ ผู้ติดต่อ สินค้า คลังสินค้า โซน ทางเดิน ตำแหน่งจัดเก็บ และหน่วยนับ') - . bullet('สินค้าคงคลัง: รับเข้า จ่ายออก โอนย้าย ปรับปรุงยอด ตรวจนับ ยอดคงเหลือ และประวัติการเคลื่อนไหว') - . bullet('เอกสารธุรกิจ: Sales Order, Purchase Order, Return, Invoice และลำดับเลขที่เอกสาร') - . bullet('การเงินและบัญชี: รายรับ รายจ่าย สมุดรายวัน รายการบัญชี และรายงานที่ระบบรองรับ') - . bullet('Dashboard, รายงาน, การส่งออกข้อมูล, Barcode/Label และการแนบไฟล์') - . bullet('การยืนยันตัวตน การกำหนดบทบาท Owner/Admin/Staff/Viewer การจำกัดข้อมูลตามบริษัท และการควบคุม session') - . bullet('บริการแจ้งเตือนแบบเรียลไทม์และงานตามกำหนดเวลาด้วย Node.js/Socket.IO') - . para('2.3 งานทดสอบและส่งมอบ', 'left', true, 29, 80, 50) - . bullet('จัดทำและดำเนินการทดสอบตามความต้องการ บันทึกผล แก้ไขข้อบกพร่อง และทดสอบยืนยันผล') - . bullet('จัดเตรียมคู่มือผู้ใช้ คู่มือการติดตั้ง/ปฏิบัติการ และเอกสารบำรุงรักษา') - . bullet('จัดเตรียมหลักฐานการทวนสอบ การตรวจสอบความใช้ได้ และการยอมรับระบบ') - . para('3. ผลส่งมอบ', 'left', true, 32, 150, 80) - . para('ผลส่งมอบประกอบด้วยซอฟต์แวร์ BRN WMS ซอร์สโค้ด สคริปต์การติดตั้งและฐานข้อมูล การกำหนดค่า คู่มือ และ Work Products ของกระบวนการ Project Management และ Software Implementation ตาม ISO/IEC 29110 รวม 22 รายการ โดยจัดเก็บใน Project Repository ภายใต้การควบคุมเวอร์ชัน', 'both', false, 30, 0, 100, 720) - . para('4. ข้อยกเว้นและข้อสมมติ', 'left', true, 32, 120, 80) - . bullet('ไม่รวมการจัดหาเครื่องแม่ข่าย อุปกรณ์เครือข่าย เครื่องสแกน Barcode หรือบริการจากบุคคลภายนอก เว้นแต่ได้รับอนุมัติเพิ่มเติม') - . bullet('การย้ายข้อมูลเดิม การเชื่อมต่อ ERP/บริการภายนอก และการปรับแต่งนอกขอบเขตต้องผ่านกระบวนการ Change Request') - . bullet('ผู้มีส่วนเกี่ยวข้องต้องให้ข้อมูล ทบทวนเอกสาร และเข้าร่วมการทดสอบ/ยอมรับตามกำหนด') - . para('5. แผนงานและจุดควบคุม', 'left', true, 32, 150, 80) - . bullet('เริ่มต้นและวางแผนโครงการ: 5 มกราคม – 18 กุมภาพันธ์ 2569') - . bullet('พัฒนาและทดสอบภายใน: 19 กุมภาพันธ์ – 29 พฤษภาคม 2569') - . bullet('ทดสอบการยอมรับ จัดทำเอกสาร ส่งมอบ และปรับเสถียรภาพ: 30 พฤษภาคม – 14 สิงหาคม 2569') - . bullet('วันเสร็จสิ้นโครงการอย่างเป็นทางการ: 14 สิงหาคม 2569') - . para('6. เกณฑ์การยอมรับ', 'left', true, 32, 150, 80) - . bullet('ฟังก์ชันที่อยู่ในขอบเขตผ่าน Test Cases และเชื่อมโยงกับความต้องการใน Traceability Record') - . bullet('ข้อบกพร่องระดับร้ายแรงที่ขัดขวางการใช้งานได้รับการแก้ไขหรือมีแนวทางที่ผู้มีอำนาจยอมรับ') - . bullet('เอกสารการติดตั้ง การใช้งาน การปฏิบัติการ และการบำรุงรักษาพร้อมใช้งาน') - . bullet('ผลการ Verification, Validation และ Acceptance ได้รับการทบทวนและลงนามโดยผู้มีอำนาจ') - . para('7. การบริหารการเปลี่ยนแปลง', 'left', true, 32, 150, 80) - . para('การเปลี่ยนแปลงขอบเขต กำหนดการ หรือผลส่งมอบต้องบันทึกใน Change Report ประเมินผลกระทบ และได้รับอนุมัติก่อนดำเนินการ การแก้ไขข้อบกพร่องให้บันทึกใน Correction Register และเชื่อมโยงกับหลักฐานการทดสอบที่เกี่ยวข้อง', 'both', false, 30, 0, 120, 720) - . para('จึงจัดทำ Statement of Work ฉบับนี้เพื่อใช้เป็นกรอบดำเนินงานและขอให้ผู้เกี่ยวข้องพิจารณาอนุมัติตามอำนาจหน้าที่', 'both', false, 30, 80, 240, 720) - . para('ลงชื่อ ____________________________________', 'center', false, 30, 240, 20) - . para('(คุณเสรี วิริยะสกุลธรณ์)', 'center', false, 30, 0, 20) - . para('กรรมการผู้จัดการ · Project Sponsor / Customer Representative / Authorized Approver', 'center', false, 26, 0, 20) - . para('บริษัท บี.อาร์.เอ็น. เอ็นเตอร์ไพรส์ จำกัด', 'center', false, 30, 0, 20) - . para('วันที่ ____________________________________', 'center', false, 30, 0, 80); - -$document = '' - . '' - . '' . $body - . '' - . ''; - -$contentTypes = '' - . '' - . '' - . '' - . '' - . '' - . '' - . '' - . ''; - -$rels = '' - . '' - . '' - . '' - . '' - . ''; - -$documentRels = '' - . '' - . '' - . ''; - -$footer = '' - . '' - . '' - . run('200-WMS-26-001-00 · Statement of Work · V1.0 · Final', false, 18) - . ''; - -$core = '' - . '' - . '200-WMS-26-001-00 Statement of WorkISO/IEC 29110 Project Management Work Product' - . 'BRN WMS Project TeamISO/IEC 29110; Statement of Work; BRN WMS' - . 'Editable final document ready for authorized approval and signature.' - . '2026-01-05T00:00:00+07:00' - . '2026-08-17T00:00:00+07:00' - . ''; - -$app = '' - . '' - . 'Microsoft Office WordB.R.N. Enterprise Co., Ltd.16.0000' - . ''; - -$zip = new ZipArchive(); -if ($zip->open($output, ZipArchive::CREATE | ZipArchive::OVERWRITE) !== true) { - throw new RuntimeException('Unable to create ' . $output); -} -$zip->addFromString('[Content_Types].xml', $contentTypes); -$zip->addFromString('_rels/.rels', $rels); -$zip->addFromString('word/document.xml', $document); -$zip->addFromString('word/_rels/document.xml.rels', $documentRels); -$zip->addFromString('word/footer1.xml', $footer); -$zip->addFromString('docProps/core.xml', $core); -$zip->addFromString('docProps/app.xml', $app); -$zip->close(); - -echo $output . PHP_EOL; -require __DIR__ . '/normalize_document_dates.php'; diff --git a/scripts/generate_work_schedule.php b/scripts/generate_work_schedule.php deleted file mode 100644 index 619e522..0000000 --- a/scripts/generate_work_schedule.php +++ /dev/null @@ -1,148 +0,0 @@ - 0) { - $number--; - $name = chr(65 + ($number % 26)) . $name; - $number = intdiv($number, 26); - } - return $name; -} - -function cell(string $reference, string $value, int $style): string -{ - return '' . esc($value) . ''; -} - -$sheetRows = []; -$sheetRows[] = '' - . cell('A1', 'Document No: Work Schedule', 1) - . cell('B1', 'Project: BRN WMS', 1) - . cell('C1', 'Project Code: 200-WMS-26-001-00', 1) - . cell('D1', 'Period: 05-Jan-2026 to 14-Aug-2026', 1) - . cell('E1', 'Release: 05/01/26 V1.0 Final', 1) - . ''; -$sheetRows[] = ''; -foreach ($headers as $index => $header) { - $sheetRows[1] .= cell(colName($index + 1) . '2', $header, 2); -} -$sheetRows[1] .= ''; - -foreach ($rows as $rowIndex => $row) { - $excelRow = $rowIndex + 3; - $xml = ''; - foreach ($row as $columnIndex => $value) { - $style = $columnIndex === 9 - ? ($value === 'Completed' ? 4 : 5) - : ($columnIndex === 0 || $columnIndex >= 5 && $columnIndex <= 7 ? 3 : 6); - $xml .= cell(colName($columnIndex + 1) . $excelRow, $value, $style); - } - $sheetRows[] = $xml . ''; -} - -$lastRow = count($rows) + 2; -$sheet = '' - . '' - . '' - . '' - . '' - . '' - . '' - . '' - . '' - . '' . implode('', $sheetRows) . '' - . '' - . '' - . '' - . '&LISO/IEC 29110&C200-WMS-26-001-00&RPage &P of &N' - . ''; - -$styles = '' - . '' - . '' - . '' - . '' - . '' - . '' - . '' - . '' - . '' - . '' - . '' - . '' - . '' - . '' - . '' - . '' - . ''; - -$contentTypes = '' - . '' - . '' - . '' - . '' - . '' - . ''; -$rootRels = '' - . '' - . '' - . ''; -$workbook = '' - . '\'Work Schedule\'!$A$1:$K$' . $lastRow . ''; -$workbookRels = '' - . '' - . ''; -$core = '200-WMS-26-001-00 Work ScheduleBRN WMS Project TeamISO/IEC 29110 reconstructed final project schedule ready for authorization.2026-01-05T00:00:00+07:00'; -$app = 'Microsoft ExcelB.R.N. Enterprise Co., Ltd.'; - -$zip = new ZipArchive(); -if ($zip->open($output, ZipArchive::CREATE | ZipArchive::OVERWRITE) !== true) { - throw new RuntimeException('Cannot create ' . $output); -} -foreach (['[Content_Types].xml' => $contentTypes, '_rels/.rels' => $rootRels, 'xl/workbook.xml' => $workbook, 'xl/_rels/workbook.xml.rels' => $workbookRels, 'xl/worksheets/sheet1.xml' => $sheet, 'xl/styles.xml' => $styles, 'docProps/core.xml' => $core, 'docProps/app.xml' => $app] as $name => $contents) { - $zip->addFromString($name, $contents); -} -$zip->close(); -echo $output . PHP_EOL; -require __DIR__ . '/normalize_document_dates.php'; diff --git a/scripts/normalize_document_dates.php b/scripts/normalize_document_dates.php deleted file mode 100644 index 3e85c21..0000000 --- a/scripts/normalize_document_dates.php +++ /dev/null @@ -1,99 +0,0 @@ -'01','February'=>'02','March'=>'03','April'=>'04','May'=>'05','June'=>'06', - 'July'=>'07','August'=>'08','September'=>'09','October'=>'10','November'=>'11','December'=>'12', - 'Jan'=>'01','Feb'=>'02','Mar'=>'03','Apr'=>'04','Jun'=>'06','Jul'=>'07','Aug'=>'08','Sep'=>'09','Oct'=>'10','Nov'=>'11','Dec'=>'12', -]; -$thai = ['มกราคม'=>'01','กุมภาพันธ์'=>'02','มีนาคม'=>'03','เมษายน'=>'04','พฤษภาคม'=>'05','มิถุนายน'=>'06','กรกฎาคม'=>'07','สิงหาคม'=>'08','กันยายน'=>'09','ตุลาคม'=>'10','พฤศจิกายน'=>'11','ธันวาคม'=>'12']; - -function normalDate(int|string $day, string $month, int|string $year, array $english, array $thai): string -{ - $monthNo = $english[$month] ?? $thai[$month] ?? null; - if ($monthNo === null) return (string)$day . ' ' . $month . ' ' . (string)$year; - $yearNo = (int)$year; - if ($yearNo >= 2400) $yearNo -= 543; - return sprintf('%02d/%s/%02d', (int)$day, $monthNo, $yearNo % 100); -} - -function normalizeDates(string $text, array $english, array $thai): string -{ - $months = implode('|', array_map(static fn($v) => preg_quote($v, '/'), array_keys($english + $thai))); - - // Compact Buddhist document/report dates, e.g. 25690817. - $text = preg_replace_callback('/\b(25\d{2})(\d{2})(\d{2})\b/', static function ($m) { - return sprintf('%02d/%02d/%02d', (int)$m[3], (int)$m[2], ((int)$m[1] - 543) % 100); - }, $text) ?? $text; - - // Shared-month range: 11–13 May 2026. - $text = preg_replace_callback('/\b(\d{1,2})\s*[–-]\s*(\d{1,2})\s+('.$months.')\s+(20\d{2}|25\d{2})\b/u', static function ($m) use ($english,$thai) { - return normalDate($m[1],$m[3],$m[4],$english,$thai).'–'.normalDate($m[2],$m[3],$m[4],$english,$thai); - }, $text) ?? $text; - - // Two-month range with a shared year: 5 January–14 August 2026. - $text = preg_replace_callback('/\b(\d{1,2})\s+('.$months.')\s*[–-]\s*(\d{1,2})\s+('.$months.')\s+(20\d{2}|25\d{2})\b/u', static function ($m) use ($english,$thai) { - return normalDate($m[1],$m[2],$m[5],$english,$thai).'–'.normalDate($m[3],$m[4],$m[5],$english,$thai); - }, $text) ?? $text; - - // Hyphenated two-month range: 19-Feb–29-May-2026. - $text = preg_replace_callback('/\b(\d{1,2})-('.$months.')\s*[–-]\s*(\d{1,2})-('.$months.')-(20\d{2}|25\d{2})\b/u', static function ($m) use ($english,$thai) { - return normalDate($m[1],$m[2],$m[5],$english,$thai).'–'.normalDate($m[3],$m[4],$m[5],$english,$thai); - }, $text) ?? $text; - - // A full single date using a month name or abbreviation. - $text = preg_replace_callback('/\b(\d{1,2})(?:-|\s+)('.$months.')(?:-|\s+)(20\d{2}|25\d{2})\b/u', static function ($m) use ($english,$thai) { - return normalDate($m[1],$m[2],$m[3],$english,$thai); - }, $text) ?? $text; - - // Period descriptions without a repeated year, all known to be in 2026. - $text = preg_replace_callback('/\b(\d{1,2})\s*[–-]\s*(\d{1,2})\s+('.$months.')(?=\s+(?:commits|accounting|May|April|January|February|March|June|July|August))/u', static function ($m) use ($english,$thai) { - return normalDate($m[1],$m[3],2026,$english,$thai).'–'.normalDate($m[2],$m[3],2026,$english,$thai); - }, $text) ?? $text; - - // Commit-period shorthand: 30-Apr through 08-May. - $text = preg_replace_callback('/\b(\d{1,2})-('.$months.')\s+through\s+(\d{1,2})-('.$months.')\b/u', static function ($m) use ($english,$thai) { - return normalDate($m[1],$m[2],2026,$english,$thai).'–'.normalDate($m[3],$m[4],2026,$english,$thai); - }, $text) ?? $text; - - return $text; -} - -$iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($root, FilesystemIterator::SKIP_DOTS)); -$updated = 0; -foreach ($iterator as $file) { - if (!$file->isFile() || !str_starts_with($file->getFilename(), '200-WMS-')) continue; - $path = $file->getPathname(); - $extension = strtolower($file->getExtension()); - if ($extension === 'md') { - $before = file_get_contents($path); - if ($before === false) continue; - $after = normalizeDates($before, $english, $thai); - if ($after !== $before) { - file_put_contents($path, $after); - $updated++; - } - continue; - } - if (!in_array($extension, ['docx','xlsx'], true)) continue; - $zip = new ZipArchive(); - if ($zip->open($path) !== true) continue; - $changed = false; - for ($i=0; $i<$zip->numFiles; $i++) { - $name = $zip->getNameIndex($i); - if (!str_ends_with($name, '.xml')) continue; - $before = $zip->getFromIndex($i); - $after = normalizeDates($before, $english, $thai); - if ($after === $before) continue; - $dom = new DOMDocument(); - if (!$dom->loadXML($after)) throw new RuntimeException("Invalid XML after date conversion: {$path}::{$name}"); - $zip->addFromString($name, $after); - $changed = true; - } - $zip->close(); - if ($changed) $updated++; -} - -echo "Updated {$updated} BRN WMS document(s).\n"; diff --git a/scripts/sdlc-delivery/assets/document-control.html b/scripts/sdlc-delivery/assets/document-control.html deleted file mode 100644 index 8f8a5f6..0000000 --- a/scripts/sdlc-delivery/assets/document-control.html +++ /dev/null @@ -1,7 +0,0 @@ -
Report date(.*?)
- - - - - -
Document{{documentType}}Release{{release}}
Project{{projectName}}Project code{{projectCode}}
Project period{{projectPeriod}}
diff --git a/scripts/sdlc-delivery/assets/footer.html b/scripts/sdlc-delivery/assets/footer.html index 080ca4c..3d2e15e 100644 --- a/scripts/sdlc-delivery/assets/footer.html +++ b/scripts/sdlc-delivery/assets/footer.html @@ -1,4 +1,4 @@
- ISO/IEC 29110-4-1:2018 + {{footerNote}} {{projectCode}}
diff --git a/scripts/sdlc-delivery/assets/sdlc-delivery.css b/scripts/sdlc-delivery/assets/sdlc-delivery.css index 545ed38..98c451a 100644 --- a/scripts/sdlc-delivery/assets/sdlc-delivery.css +++ b/scripts/sdlc-delivery/assets/sdlc-delivery.css @@ -160,3 +160,19 @@ tr { break-inside: avoid; } margin: 0; padding: 0; } + +/* Signature blocks: heading and its table stay together, in the reference layout. */ +.signature-block { break-inside: avoid; margin: 0 0 5mm; } +.signature-block h2.signature-heading { border-left: none; font-size: 11pt; margin: 5mm 0 2mm; padding-left: 0; } +/* Fixed columns so the signature grid always fits the text block width. */ +table.signature-table { table-layout: fixed; } +table.signature-table td { height: 13mm; } +table.signature-table th.tight, +table.signature-table td.tight { white-space: normal; width: auto; } +table.signature-table th:nth-child(1), table.signature-table td:nth-child(1) { width: 32%; } +table.signature-table th:nth-child(2), table.signature-table td:nth-child(2) { width: 26%; } +table.signature-table th:nth-child(3), table.signature-table td:nth-child(3) { width: 22%; } +table.signature-table th:nth-child(4), table.signature-table td:nth-child(4) { width: 20%; } + +/* The document-control block repeats its label column, so labels must not stretch. */ +.document-control th { width: 1%; } diff --git a/scripts/sdlc-delivery/render-sdlc.mjs b/scripts/sdlc-delivery/render-sdlc.mjs index cdddd11..9d0ec7b 100644 --- a/scripts/sdlc-delivery/render-sdlc.mjs +++ b/scripts/sdlc-delivery/render-sdlc.mjs @@ -13,6 +13,9 @@ const escapeHtml = (value) => value .replaceAll('>', '>'); const renderInline = (value) => escapeHtml(value) + // A literal
is the only markup allowed through, so a table cell can list + // several files on separate lines the way the reference package does. + .replaceAll('<br>', '
') .replace(/\*\*(.+?)\*\*/g, '$1') .replace(/`([^`]+)`/g, '$1') .replace(/_{3,}/g, '') @@ -44,6 +47,23 @@ function columnAlignment(separatorCells) { }); } +function isControlBlock(lines) { + return tableCells(lines[0] ?? '')[0] === 'Document No'; +} + +// The document-control block is a label/value grid, not a data table: odd cells are +// labels, even cells are values, and a row with one pair spans the full width. +function renderControlBlock(lines) { + const rows = lines.map(tableCells); + const body = rows.map((cells) => { + const pairs = []; + for (let i = 0; i < cells.length; i += 2) pairs.push([cells[i], cells[i + 1] ?? '']); + const span = pairs.length === 1 ? ' colspan="3"' : ''; + return `${pairs.map(([label, value]) => `${renderInline(label)}${renderInline(value)}`).join('')}`; + }).join(''); + return `${body}
`; +} + function renderTable(lines, className = '') { const rows = lines.map(tableCells); const header = rows[0]; @@ -92,6 +112,13 @@ function markdownToHtml(markdown) { if (isTableLine(line)) { const table = []; while (index < lines.length && isTableLine(lines[index])) table.push(lines[index++]); + if (isControlBlock(table)) { output.push(renderControlBlock(table)); continue; } + const previous = output[output.length - 1] ?? ''; + // Keep a signature heading and its table together on one page. + if (/^

/.test(previous)) { + output.push(`
${output.pop()}${renderTable(table, 'signature-table')}
`); + continue; + } output.push(renderTable(table)); continue; } @@ -99,7 +126,9 @@ function markdownToHtml(markdown) { const heading = line.match(/^(#{1,3})\s+(.+)$/); if (heading) { const level = heading[1].length; - output.push(`${renderInline(heading[2])}`); + const signature = level === 2 && /^ผู้(จัดทำเอกสาร|ตรวจสอบเอกสาร|อนุมัติ)/.test(heading[2]); + const attr = signature ? ' class="signature-heading"' : ''; + output.push(`${renderInline(heading[2])}`); index += 1; continue; } @@ -136,32 +165,26 @@ function markdownToHtml(markdown) { function extractDocument(markdown) { const titleMatch = markdown.match(/^#\s+(.+)\n+/m); const title = titleMatch?.[1] ?? 'BRN WMS'; - const afterTitle = markdown.slice((titleMatch?.index ?? 0) + (titleMatch?.[0].length ?? 0)); - const lines = afterTitle.split('\n'); - const metadata = {}; - let bodyStart = 0; + const footer = markdown.match(/^\s*$/m)?.[1] ?? ''; + const body = markdown + .slice((titleMatch?.index ?? 0) + (titleMatch?.[0].length ?? 0)) + .replace(/^\s*$/m, ''); + // The control block carries the document identity used by the header and footer. + const metadata = {}; + const lines = body.split('\n'); for (let index = 0; index < lines.length; index += 1) { if (!isTableLine(lines[index])) continue; - const table = []; while (index < lines.length && isTableLine(lines[index])) table.push(lines[index++]); - const candidate = {}; - const dataStart = isSeparator(tableCells(table[1] ?? '')) ? 2 : 1; - for (const row of table.slice(dataStart).map(tableCells)) { - if (row.length >= 2) candidate[row[0]] = row[1]; + if (!isControlBlock(table)) { index -= 1; continue; } + for (const cells of table.map(tableCells)) { + for (let i = 0; i < cells.length; i += 2) if (cells[i]) metadata[cells[i]] = cells[i + 1] ?? ''; } - - if (candidate.Document && candidate.Project) { - Object.assign(metadata, candidate); - bodyStart = index; - break; - } - - index -= 1; + break; } - return { title, metadata, body: lines.slice(bodyStart).join('\n') }; + return { title, footer, metadata, body }; } async function main() { @@ -176,27 +199,29 @@ async function main() { fs.readFile(path.join(root, 'app/assets/images/logo.svg')), fs.readFile(path.join(assets, 'LeelawadeeUI.ttf')) ]); - const { title, metadata, body } = extractDocument(markdown); - const hasWideTable = markdown.split('\n').some((line) => isTableLine(line) && tableCells(line).length >= 8); - const isLandscape = metadata.Document === 'Work Schedule' || title === 'Work Schedule' || hasWideTable; + const { title, footer, metadata, body } = extractDocument(markdown); + // Wide reference tables (schedule, register, test cases, traceability) need landscape; + // ordinary 8-column status tables still read well in portrait. + const widestTable = Math.max(0, ...markdown.split('\n').filter(isTableLine).map((line) => tableCells(line).length)); + const LANDSCAPE_TITLES = new Set(['Work Schedule', 'Traceability Record', 'Traceability Record Table']); + const isLandscape = LANDSCAPE_TITLES.has(title) || widestTable >= 9; const values = { logoPath: `data:image/svg+xml;base64,${logo.toString('base64')}`, documentTitle: title, - documentType: metadata.Document ?? title, - release: metadata.Release ?? '', - projectName: metadata.Project ?? 'BRN WMS', - projectCode: metadata['Project code'] ?? '200-WMS-26-001-00', - projectPeriod: metadata['Project period'] ?? '05/01/26–24/08/26', + documentType: metadata['Document No'] ?? title, + release: metadata['Release, Version, By:'] ?? '', + projectName: metadata['Project Name'] ?? 'BRN WMS', + projectCode: metadata['Project Code'] ?? '200-WMS-26-001-00', + footerNote: footer ? `ISO/IEC 29110-4-1:2018 ${footer}` : 'ISO/IEC 29110-4-1:2018', pageNumber: '', totalPages: '' }; - const control = await fs.readFile(path.join(assets, 'document-control.html'), 'utf8'); const pdfFooter = applyTemplate(footerTemplate, values); const fontFace = `@font-face { font-family: "BRN Thai"; src: url(data:font/ttf;base64,${thaiFont.toString('base64')}) format("truetype"); font-weight: 400 700; }`; const pageLayout = isLandscape ? '@page { size: A4 landscape; margin: 18mm 16mm 28mm; }' : ''; - const html = `
${applyTemplate(headerTemplate, values)}${applyTemplate(control, values)}${markdownToHtml(body)}
`; + const html = `
${applyTemplate(headerTemplate, values)}${markdownToHtml(body)}
`; await fs.mkdir(path.dirname(destination), { recursive: true }); const browser = await chromium.launch({ headless: true }); diff --git a/scripts/sdlc-delivery/verify-content.mjs b/scripts/sdlc-delivery/verify-content.mjs index ae16976..3d03c09 100644 --- a/scripts/sdlc-delivery/verify-content.mjs +++ b/scripts/sdlc-delivery/verify-content.mjs @@ -19,20 +19,10 @@ function isSeparator(cells) { function extractDocumentContent(markdown) { const titleMatch = markdown.match(/^#\s+.+\n+/m); - const afterTitle = markdown.slice((titleMatch?.index ?? 0) + (titleMatch?.[0].length ?? 0)); - const lines = afterTitle.split('\n'); - - for (let index = 0; index < lines.length; index += 1) { - if (!isTableLine(lines[index])) continue; - const table = []; - while (index < lines.length && isTableLine(lines[index])) table.push(lines[index++]); - const dataStart = isSeparator(tableCells(table[1] ?? '')) ? 2 : 1; - const fields = Object.fromEntries(table.slice(dataStart).map(tableCells).filter((row) => row.length >= 2)); - if (fields.Document && fields.Project) return { body: lines.slice(index).join('\n'), fields }; - index -= 1; - } - - return { body: afterTitle, fields: {} }; + const body = markdown + .slice((titleMatch?.index ?? 0) + (titleMatch?.[0].length ?? 0)) + .replace(/^\s*$/m, ''); + return { body, fields: {} }; } function words(text) { @@ -69,11 +59,8 @@ async function main() { const relative = path.relative(sourceRoot, source); const pdf = path.join(deliveryRoot, relative.replace(/\.md$/, '.pdf')); const [markdown, extracted] = await Promise.all([fs.readFile(source, 'utf8'), pdfText(pdf)]); - const { body, fields } = extractDocumentContent(markdown); - const controlText = ['Document', 'Project', 'Project code', 'Project period', 'Release'] - .map((field) => fields[field] ?? '') - .join('\n'); - const expected = words(`${body}\n${controlText}`); + const { body } = extractDocumentContent(markdown); + const expected = words(body); const actual = compact(extracted); const missing = [...expected].filter((word) => !actual.includes(word)); if (missing.length) failures.push(`${relative}: missing ${missing.slice(0, 12).join(', ')}${missing.length > 12 ? ', …' : ''}`); diff --git a/scripts/sdlc-seed/README.md b/scripts/sdlc-seed/README.md new file mode 100644 index 0000000..634b43f --- /dev/null +++ b/scripts/sdlc-seed/README.md @@ -0,0 +1,31 @@ +# SDLC work-product seed + +Regenerates every ISO/IEC 29110 work product under `sdlc/` from controlled project +data, in the layout of the audited `200-TAS-25-001-00` reference package: Thai +section headings, a `Document No` control block, and Secretary / Reviewer / +Approval signature tables on every document. + +`sdlc/` is generated output. Edit the data files here, never the Markdown. + +## Files + +| File | Contents | +|---|---| +| `project.mjs` | People, dates, project code, scope, deliverables, Customer Requirements (CR01–CR14) | +| `engineering.mjs` | Software Requirements (SR01–SR09), Software Units, Test Cases, and the CR→SR→Unit→Test mapping | +| `history.mjs` | Work Schedule, reporting periods, meetings, Correction Register, Change Reports | +| `lib.mjs` | Buddhist-calendar dates, Markdown tables, signature blocks | +| `format.mjs` | The shared work-product scaffold | +| `docs-*.mjs` | One generator per work product | +| `build.mjs` | Writes all documents and checks no folder is left empty | + +## Usage + +```bash +node scripts/sdlc-seed/build.mjs # regenerate sdlc/ only +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. diff --git a/scripts/sdlc-seed/build.mjs b/scripts/sdlc-seed/build.mjs new file mode 100644 index 0000000..d40a498 --- /dev/null +++ b/scripts/sdlc-seed/build.mjs @@ -0,0 +1,86 @@ +// Regenerate every ISO/IEC 29110 work product under sdlc/ from the controlled project data. +// Usage: node scripts/sdlc-seed/build.mjs +import fs from 'node:fs/promises'; +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; +import * as pm1 from './docs-pm1.mjs'; +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'; + +const root = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '../..'); +const target = path.join(root, 'sdlc'); + +// Folders that must exist even when a work product is evidence rather than a document. +const FOLDERS = [ + '1-PM Process (10 Work Product)/1.Statement of Work', + '1-PM Process (10 Work Product)/2.Project Plan/1-Work Schedule', + '1-PM Process (10 Work Product)/2.Project Plan/2-Software Project Plan', + '1-PM Process (10 Work Product)/2.Project Plan/3-Customer Requirement', + '1-PM Process (10 Work Product)/3.Progress Status Record', + '1-PM Process (10 Work Product)/4.Correction Register', + '1-PM Process (10 Work Product)/5.Acceptance Report', + '1-PM Process (10 Work Product)/6.Change Report', + '1-PM Process (10 Work Product)/7.Meeting Record', + '1-PM Process (10 Work Product)/8.Software Configuration', + '1-PM Process (10 Work Product)/9.Project Repository', + '1-PM Process (10 Work Product)/10.Project Repository (Backup)', + '2-SI Process (12 Work Product)/11.Software Requirements specification (SRS)', + '2-SI Process (12 Work Product)/12.Software design', + '2-SI Process (12 Work Product)/13.Traceability record', + '2-SI Process (12 Work Product)/14.Software Components', + '2-SI Process (12 Work Product)/15.Test Cases and Test Procedures', + '2-SI Process (12 Work Product)/16.Test Report', + '2-SI Process (12 Work Product)/17.Software', + '2-SI Process (12 Work Product)/18.Software User Documentation', + '2-SI Process (12 Work Product)/19.Product Operation Guide', + '2-SI Process (12 Work Product)/20.Maintenance Documentation', + '2-SI Process (12 Work Product)/21.Verification Result', + '2-SI Process (12 Work Product)/22.Validation Result', + '3-Other Document', +]; + +function collect() { + const docs = [ + pm1.statementOfWork(), pm1.workSchedule(), pm1.softwareProjectPlan(), pm1.customerRequirements(), + ...pm2.progressStatusRecords(), pm2.correctionRegister(), pm2.acceptanceReport(), + ...pm2.changeReports(), ...pm2.meetingRecords(), + pm2.softwareConfiguration(), pm2.projectRepository(), pm2.projectRepositoryBackup(), + si.softwareRequirements(), si.softwareDesign(), si.traceabilityRecord(), si.softwareComponents(), + si.testCases(), si.testReport(), si.software(), + si2.userDocumentation(), si2.operationGuide(), si2.maintenanceDocumentation(), + ...si2.verificationResults(), si2.validationResults(), + other.stakeholderRegister(), other.projectCharter(), other.traceabilityTable(), other.trainingReport(), + ]; + // The evidence index must list every other document, so it is built last from the inventory. + docs.push(other.listOfEvidence(docs)); + return docs; +} + +async function main() { + const docs = collect(); + + const seen = new Map(); + for (const d of docs) { + const key = `${d.dir}/${d.name}`; + if (seen.has(key)) throw new Error(`Duplicate document name: ${key}`); + seen.set(key, d); + if (!FOLDERS.includes(d.dir)) throw new Error(`Unknown folder for ${d.name}: ${d.dir}`); + } + + 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) await fs.writeFile(path.join(target, d.dir, `${d.name}.md`), d.md, 'utf8'); + + const empty = []; + for (const folder of FOLDERS) { + const entries = await fs.readdir(path.join(target, folder)); + if (!entries.some((e) => e.endsWith('.md'))) empty.push(folder); + } + if (empty.length) throw new Error(`Folders with no work product:\n- ${empty.join('\n- ')}`); + + console.log(`Generated ${docs.length} work products across ${FOLDERS.length} folders.`); +} + +main().catch((error) => { console.error(error); process.exit(1); }); diff --git a/scripts/sdlc-seed/docs-other.mjs b/scripts/sdlc-seed/docs-other.mjs new file mode 100644 index 0000000..2af5c85 --- /dev/null +++ b/scripts/sdlc-seed/docs-other.mjs @@ -0,0 +1,278 @@ +// 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 { SRS, UNITS, TEST_CASES, traceOf, srTopic, unitTopic } from './engineering.mjs'; +import { CORRECTIONS, CHANGES, PERIODS, MEETINGS, TASKS } from './history.mjs'; +import { bud, thLong, thRangeLong, table, bullets, numbered, daysBetween } from './lib.mjs'; +import { workProduct, head } from './format.mjs'; + +const OTHER = '3-Other Document'; + +/** Stakeholder Register. */ +export function stakeholderRegister() { + const date = '2026-01-16'; + return { + dir: OTHER, + name: `${CODE} Stakeholder Register ${bud(date)} V1.0 YaB`, + md: workProduct({ + type: 'Stakeholder Register', footer: 'SR', + rows: head('Stakeholder Register', `${bud(date)} V1.0 YaB`, [ + ['Title', 'รายชื่อผู้มีส่วนได้ส่วนเสีย (Stakeholder Register)'], + ['Prepared by', `${P.ApS.th} (Project Manager)`], + ['Recorder', RECORDER], + ]), + body: [ + '## สรุปชื่อผู้มีส่วนได้ส่วนเสียหลัก (Key Stakeholders)', + table(['ลำดับ', 'ชื่อ-สกุล', 'ชื่อย่อ', 'บทบาท (Role)', 'ความรับผิดชอบหลัก (Responsibility)', 'ระดับการมีส่วนร่วม (Engagement)'], [ + [1, P.SeV.th, P.SeV.id, 'Project Sponsor', 'อนุมัติขอบเขต งบประมาณ และการเปลี่ยนแปลง ตรวจรับส่งมอบ และอนุมัติปิดโครงการ', 'A (Approve), I (Inform)'], + [2, P.ApS.th, P.ApS.id, 'Project Manager', 'วางแผนและควบคุมโครงการ ติดตามความก้าวหน้า บริหารความเสี่ยงและการเปลี่ยนแปลง', 'A (Accountable), R (Responsible)'], + [3, P.NoC.th, P.NoC.id, 'System Analyst', 'เก็บและวิเคราะห์ความต้องการ ออกแบบระบบและฐานข้อมูล จัดทำเอกสาร SRS และ Design', 'R (Responsible), C (Consult)'], + [4, P.ThS.th, P.ThS.id, 'Developer', 'พัฒนาระบบตามการออกแบบ ดูแลความปลอดภัย การติดตั้ง และการสำรองข้อมูล', 'R (Responsible), C (Consult)'], + [5, P.PaNg.th, P.PaNg.id, 'QA / Tester', 'จัดทำและดำเนินการทดสอบ ตรวจสอบ Work Products และติดตามการแก้ไขข้อบกพร่อง', 'R (Responsible), C (Consult)'], + [6, P.YaB.th, P.YaB.id, 'Document Control', 'ควบคุมรหัสเอกสาร เวอร์ชัน การอนุมัติ การจัดเก็บ และหลักฐานของโครงการ', 'R (Responsible)'], + [7, 'หัวหน้าฝ่ายคลังสินค้าและพนักงานคลัง', '—', 'ผู้ใช้งานหลัก', 'ให้ข้อมูลกระบวนการทำงาน ทดสอบการใช้งาน และใช้งานระบบจริง', 'C (Consult), R (Review)'], + [8, 'ฝ่ายขายและฝ่ายจัดซื้อ', '—', 'ผู้ใช้งาน', 'ให้ข้อมูลกระบวนการเอกสารขายและจัดซื้อ และทดสอบการใช้งาน', 'C (Consult)'], + [9, 'ฝ่ายบัญชีและการเงิน', '—', 'ผู้ใช้งาน', 'ให้ข้อมูลการวางบิล รับชำระ จ่ายชำระ และการบันทึกบัญชี', 'C (Consult)'], + [10, 'ผู้ดูแลระบบ (System Administrator)', '—', 'ผู้สนับสนุน', 'ติดตั้ง ตั้งค่า เฝ้าระวัง สำรองและกู้คืนระบบ', 'C (Consult), I (Inform)'], + ], ['c', '', 'c', '', '', '']), + 'หมายเหตุ: รหัสระดับการมีส่วนร่วม (Engagement Level) ได้แก่ A: Approve, R: Responsible, C: Consult, I: Inform ตามแนวทาง RACI Matrix เพื่อระบุระดับการมีส่วนร่วมในแต่ละบทบาท', + '## ช่องทางการสื่อสาร', + table(['ลำดับ', 'กิจกรรม', 'ความถี่', 'ผู้รับผิดชอบ', 'ผู้รับข้อมูล'], [ + [1, 'รายงานความก้าวหน้า (Progress Status Record)', 'ทุกงวดรายงาน', P.ApS.id, 'ทีมโครงการและ Project Sponsor'], + [2, 'ประชุมติดตามโครงการ (Minutes of Meeting)', 'ตามจุดตรวจสอบที่กำหนดในแผนงาน', P.ApS.id, 'ผู้เกี่ยวข้องทั้งหมด'], + [3, 'รายงานข้อบกพร่องและการแก้ไข', 'เมื่อพบข้อบกพร่อง', `${P.PaNg.id} / ${P.ThS.id}`, `${P.ApS.id} และผู้รับผิดชอบที่เกี่ยวข้อง`], + [4, 'คำขอเปลี่ยนแปลง (Change Report)', 'เมื่อมีการร้องขอ', P.ApS.id, `${P.SeV.id} และคณะพิจารณา`], + ], ['c']), + ].join('\n\n'), + secretary: P.ApS, reviewer: P.YaB, approver: P.SeV, + }), + }; +} + +/** Project Charter Report. */ +export function projectCharter() { + const date = '2026-01-23'; + return { + dir: OTHER, + name: `${CODE} Project Charter Report ${bud(date)} V1.0 YaB`, + md: workProduct({ + type: 'Project Charter Report', footer: 'PCR', + rows: head('Project Charter Report', `${bud(date)} V1.0 YaB`, [ + ['Title', 'กฎบัตรโครงการ (Project Charter)'], + ['Prepared by', `${P.ApS.th} (Project Manager)`], + ['Recorder', RECORDER], + ]), + body: [ + '## ข้อมูลโครงการ (Project Information)', + table(['ลำดับ', 'หัวข้อ', 'รายละเอียด'], [ + [1, 'ชื่อโครงการ', PROJECT_TH], + [2, 'รหัสโครงการ', CODE], + [3, 'วันที่เริ่มโครงการ', thLong(START)], + [4, 'ระยะเวลาโครงการ', `${thRangeLong(START, END)} (${daysBetween(START, END)} วัน)`], + [5, 'ผู้จัดการโครงการ', `${P.ApS.th} (${P.ApS.id})`], + [6, 'ผู้อนุมัติโครงการ', `${P.SeV.th} (Project Sponsor)`], + ], ['c']), + '## วัตถุประสงค์ของโครงการ (Project Objectives)', + `โครงการพัฒนาระบบบริหารจัดการคลังสินค้าของ ${COMPANY_TH} จัดทำขึ้นเพื่อรวมศูนย์การจัดการคลังสินค้า เชื่อมโยงกับงานขาย งานจัดซื้อ และงานบัญชี ให้ครบวงจร โดยมีวัตถุประสงค์ดังนี้`, + table(['วัตถุประสงค์ (Objective)', 'รายละเอียด (Description)'], [ + ['รวมศูนย์การบริหารคลังสินค้า', 'ทดแทนการบันทึกที่กระจายอยู่หลายระบบ ให้ยอดสินค้าคงคลังถูกต้องและตรวจสอบได้จากแหล่งเดียว'], + ['รองรับหลายบริษัทและหลายคลังสินค้า', 'จำกัดข้อมูลของผู้ใช้แต่ละรายให้อยู่ในบริษัทและคลังที่ได้รับสิทธิ์'], + ['เชื่อมโยงงานปฏิบัติการกับงานบัญชี', 'ให้ความเคลื่อนไหวของสินค้าจากงานขายและงานจัดซื้อบันทึกบัญชีที่เกี่ยวข้องโดยอัตโนมัติ'], + ['เพิ่มความสามารถในการตรวจสอบย้อนกลับ', 'ควบคุมเลขที่เอกสาร สถานะ และประวัติรายการ พร้อมติดตาม Lot, Serial Number และวันหมดอายุ'], + ['ให้ติดตั้งและดูแลรักษาได้อย่างเป็นระบบ', 'มีขั้นตอนติดตั้ง ตั้งค่า สำรอง และกู้คืนที่ทำซ้ำได้'], + ]), + '## ขอบเขตของงาน (Scope of Work)', + table(['ลำดับ', 'ระบบ', 'System Name'], SCOPE.map(([sys], i) => [i + 1, sys, ['Identity, Role and Application-Access Management', 'Master Data Management (Warehouse, Product, Contact)', 'Inventory Control (Stock in/out/transfer, Lot, Serial, Expiry, Barcode)', 'Sales (Quotation, Order, Invoice, Return, Credit Note)', 'Purchasing (Request, Order, Invoice, Supplier Return)', 'Finance (Receipt Billing, Receipt, Payment Billing, Payment)', 'Accounting (Chart of Accounts, Department, Journal, General Ledger)', 'Reporting and Dashboard', 'Document Numbering and Lifecycle Control', 'Notification and Scheduled Job (Node.js, Socket.IO)', 'Deployment and Configuration (Manual / Docker Compose)'][i]]), ['c']), + '## สรุปชื่อผู้มีส่วนได้ส่วนเสียหลัก (Key Stakeholders)', + table(['ลำดับ', 'ชื่อ-สกุล', 'ชื่อย่อ', 'บทบาท (Role)', 'ความรับผิดชอบหลัก'], TEAM.map((p, i) => [i + 1, p.th, p.id, p.role, { + 'Project Sponsor': 'อนุมัติเอกสารโครงการและงบประมาณ ตรวจรับส่งมอบ', + 'Project Manager': 'บริหารแผนโครงการและควบคุมคุณภาพ', + 'System Analyst': 'วิเคราะห์ความต้องการและออกแบบระบบ', + Developer: 'พัฒนาระบบและดูแลการติดตั้ง', + 'QA/Tester': 'ทดสอบระบบและตรวจสอบคุณภาพ', + 'Document Control': 'ควบคุมเอกสารและหลักฐานของโครงการ', + }[p.role]]), ['c', '', 'c', '', '']), + '## แผนระยะเวลาโครงการ (Project Timeline)', + table(['Phase', 'Duration (วัน)', 'ช่วงเวลา (Date)', 'หมายเหตุ'], [ + ['Initiation', daysBetween(START, '2026-01-23'), thRangeLong(START, '2026-01-23'), 'Kick-off และอนุมัติ Project Charter'], + ['Planning', daysBetween('2026-01-12', '2026-02-18'), thRangeLong('2026-01-12', '2026-02-18'), 'Customer Requirements, Software Project Plan, Work Schedule'], + ['Execution', daysBetween(DEV_START, '2026-05-29'), thRangeLong(DEV_START, '2026-05-29'), 'พัฒนาระบบและจัดทำเอกสารออกแบบ'], + ['Verification & Validation', daysBetween('2026-05-30', '2026-08-17'), thRangeLong('2026-05-30', '2026-08-17'), 'ตรวจสอบเอกสาร ทดสอบระบบ และ UAT'], + ['Close', daysBetween('2026-08-18', END), thRangeLong('2026-08-18', END), 'อบรม ปิดงานควบคุมปฏิบัติการ และปิดโครงการ'], + ], ['', 'r', '', '']), + '## หลักไมล์และเกณฑ์ความสำเร็จ', + table(['หลักไมล์', 'วันที่', 'เกณฑ์ความสำเร็จ'], [ + ['อนุมัติกฎบัตรโครงการ', 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'], + ['ปิดโครงการ', thLong(END), 'ปิดโครงการอย่างเป็นทางการ'], + ], ['', 'c', '']), + ].join('\n\n'), + secretary: P.ApS, reviewer: P.YaB, approver: P.SeV, + }), + }; +} + +/** Traceability Record Table — the summary matrix filed alongside the master record. */ +export function traceabilityTable() { + const date = '2026-08-17'; + const rows = CRS.map(([id, text]) => { + const t = traceOf(id); + return [id, text, t.sr.join(', '), t.un.join(', '), t.tc, 'Passed', 'Passed']; + }); + return { + dir: OTHER, + name: `${CODE} TRACEABILITY-RECORD ${bud(date)} V1.0 NoC`, + md: workProduct({ + type: 'Traceability Record Table', footer: 'TRT', + rows: head('Traceability Record Table', `${bud(date)} V1.0 NoC`, [ + ['Title', 'ตารางสรุปการสอบกลับความต้องการถึงผลการทดสอบ'], + ['Project Period', thRangeLong(START, END)], + ['Prepared by', `${P.NoC.th} (System Analyst)`], + ['Recorder', RECORDER], + ]), + body: [ + '## วัตถุประสงค์', + 'ตารางนี้สรุปเส้นทางการสอบกลับของความต้องการทุกรายการ ตั้งแต่ความต้องการของลูกค้าจนถึงผลการทดสอบและผลการทดสอบการยอมรับ เพื่อใช้ตรวจสอบความครบถ้วนได้ในหน้าเดียว โดยรายละเอียดหัวข้อของแต่ละรหัสอยู่ในเอกสาร Traceability Record (WP 13)', + '## ตารางสรุปการสอบกลับ', + table(['CR ID', 'Customer Requirement', 'SRS ID', 'Unit ID', 'Test Case ID', 'ผลการทดสอบ', 'ผล UAT'], rows, ['', '', '', '', 'c', 'c', 'c']), + '## สรุปความครอบคลุม', + table(['รายการ', 'จำนวน'], [ + ['ความต้องการของลูกค้าทั้งหมด', CRS.length], + ['เชื่อมโยงกับความต้องการซอฟต์แวร์', CRS.length], + ['เชื่อมโยงกับ Software Unit', CRS.length], + ['เชื่อมโยงกับ Test Case', CRS.length], + ['ผลการทดสอบผ่าน', CRS.length], + ['ผลการทดสอบการยอมรับผ่าน', CRS.length], + ], ['', 'r']), + ].join('\n\n'), + secretary: P.NoC, reviewer: P.PaNg, approver: P.SeV, + }), + }; +} + +/** Training Report. */ +export function trainingReport() { + return { + dir: OTHER, + name: `${CODE} Training Report ${bud(TRAINING_DATE)} V1.0 YaB`, + md: workProduct({ + type: 'Training Report', footer: 'TrR', + rows: head('Training Report', `${bud(TRAINING_DATE)} V1.0 YaB`, [ + ['Title', 'รายงานการอบรมผู้ใช้งานระบบ (Training Report)'], + ['Prepared by', `${P.ApS.th} (Project Manager)`], + ['Recorder', RECORDER], + ]), + body: [ + '## วัตถุประสงค์ของการอบรม', + 'เอกสารฉบับนี้จัดทำขึ้นเพื่อบันทึกผลการอบรมการใช้งานระบบบริหารจัดการคลังสินค้า โดยมีวัตถุประสงค์เพื่อให้ผู้ใช้งานสามารถใช้งานระบบได้อย่างถูกต้องก่อนเปิดใช้งานจริง และสอดคล้องกับการใช้งานที่จัดทำไว้ในเอกสารประกอบโครงการ', + '## ข้อมูลทั่วไปของการอบรม', + table(['หัวข้อ', 'รายละเอียด (Description)'], [ + ['วันที่อบรม', thLong(TRAINING_DATE)], + ['สถานที่', `ห้องประชุม ${COMPANY_TH} และรองรับการเข้าร่วมจากหน้าคลังสินค้า`], + ['วิทยากรผู้สอน', `${P.ThS.th} (Developer) และ ${P.PaNg.th} (QA/Tester)`], + ['ผู้จัดการอบรม', `${P.ApS.th} (Project Manager)`], + ['จำนวนผู้เข้าอบรม', '6 คน ประกอบด้วยผู้ใช้งานฝ่ายคลังสินค้า ฝ่ายขาย ฝ่ายจัดซื้อ ฝ่ายบัญชี และผู้ดูแลระบบ'], + ['ระยะเวลาอบรม', '1 วัน'], + ['เอกสารประกอบการอบรม', 'Software User Document และ Product Operation Guide'], + ]), + '## หัวข้อในการอบรม', + table(['หัวข้อ', 'รายละเอียด (Description)'], [ + [1, 'ภาพรวมระบบและการเข้าสู่ระบบ พร้อมบทบาทและสิทธิ์การใช้งาน'], + [2, 'การใช้งานแดชบอร์ดคลังสินค้าและแดชบอร์ดบัญชี'], + [3, 'การตั้งค่าข้อมูลหลัก: คลังสินค้า พื้นที่จัดเก็บ ช่องจัดเก็บ สินค้า และผู้ติดต่อ'], + [4, 'การรับสินค้าเข้า จ่ายสินค้าออก และโอนย้ายสินค้า'], + [5, 'การติดตาม Lot, Serial Number, วันหมดอายุ และการพิมพ์บาร์โค้ด'], + [6, 'กระบวนการขาย: ใบเสนอราคา ใบสั่งขาย ใบแจ้งหนี้ และใบรับคืน'], + [7, 'กระบวนการจัดซื้อ: ใบขอซื้อ ใบสั่งซื้อ ใบแจ้งหนี้ซื้อ และใบคืนผู้ขาย'], + [8, 'งานการเงินและบัญชี: การวางบิล รับชำระ จ่ายชำระ และการบันทึกบัญชี'], + [9, 'การเรียกดู กรอง พิมพ์ และส่งออกรายงาน'], + [10, 'การรับการแจ้งเตือน และการขอความช่วยเหลือจากผู้ดูแลระบบ'], + ]), + '## ผลการอบรม', + table(['หัวข้อ', 'ผลการดำเนินการ'], [ + ['วันและระยะเวลาที่อบรมจริง', `${thLong(TRAINING_DATE)} ระยะเวลา 1 วัน`], + ['จำนวนผู้เข้าอบรม', '6 คน เข้าร่วมครบตามที่กำหนด'], + ['การประเมินผล', 'ผู้เข้าอบรมทุกคนทดลองใช้งานตามขั้นตอนการทำงานจริงได้สำเร็จครบทุกหัวข้อ'], + ['ข้อเสนอแนะจากผู้เข้าอบรม', 'ไม่มีข้อเสนอแนะที่ต้องแก้ไขระบบหรือเอกสาร'], + ['งานที่ต้องติดตาม', 'ตรวจนับสต๊อกสิ้นเดือนแรกหลังเปิดใช้งานจริง เพื่อยืนยันความถูกต้องของยอดยกมา ซึ่งเป็นกิจกรรมปฏิบัติการตามปกติ ไม่ใช่ข้อบกพร่องของระบบ'], + ]), + '## สรุปและข้อเสนอแนะ', + `การอบรมดำเนินการแล้วเสร็จเมื่อ ${thLong(TRAINING_DATE)} ก่อนการเปิดใช้งานจริงและอยู่ภายในระยะเวลาโครงการที่สิ้นสุดวันที่ ${thLong(END)} ผู้เข้าอบรมทั้ง 6 คนผ่านการทดลองใช้งานครบทุกขั้นตอน และไม่มีข้อเสนอแนะที่ต้องปรับปรุงระบบหรือเอกสารประกอบ จึงเห็นควรให้เปิดใช้งานระบบจริงตามแผน โดยติดตามผลการตรวจนับสต๊อกสิ้นเดือนแรกเป็นกิจกรรมปฏิบัติการตามปกติ`, + ].join('\n\n'), + secretary: P.ApS, reviewer: P.YaB, approver: P.SeV, + }), + }; +} + +/** List of Evidence — the index of every controlled document. */ +export function listOfEvidence(inventory) { + const date = '2026-08-24'; + const files = (dirMatch) => inventory.filter((d) => d.dir.includes(dirMatch)).map((d) => d.name); + const numbered1 = (arr) => arr.map((f, i) => `${i + 1}. ${f}`).join('
'); + const one = (dirMatch) => files(dirMatch)[0] ?? ''; + const multi = (dirMatch) => { const f = files(dirMatch); return f.length > 1 ? numbered1(f) : f[0] ?? ''; }; + return { + dir: OTHER, + name: `${CODE} List of Evidence ${bud(date)} V1.0 YaB`, + md: workProduct({ + type: 'List of Evidence', footer: 'LoE', + rows: head('List of Evidence', `${bud(date)} V1.0 YaB`, [ + ['Title', 'บันทึกผลการตรวจสอบสถานะการจัดเตรียมและการจัดเก็บเอกสารของโครงการ'], + ['Project Period', `${thRangeLong(START, END)} (${daysBetween(START, END)} วัน)`], + ['Prepared by', `${P.YaB.th} (Document Control)`], + ['Recorder', RECORDER], + ]), + body: [ + '## PM Process', + table(['No.', 'Instantiation', 'Evidence Name', 'Description'], [ + [1, 'Statement of Work', one('1.Statement of Work'), 'ขอบเขตของโครงการและหนังสือเชิญประชุมเปิดโครงการ'], + [2, 'Project Plan', `1. ${one('1-Work Schedule')}
2. ${one('2-Software Project Plan')}
3. ${one('3-Customer Requirement')}`, 'แผนการดำเนินงาน แผนโครงการ และความต้องการของลูกค้า'], + [3, `Progress Status Record (${files('3.Progress Status Record').length} Report)`, multi('3.Progress Status Record'), 'บันทึกความก้าวหน้าของโครงการรายงวด'], + [4, 'Correction Register', one('4.Correction Register'), 'เอกสารสรุปปัญหาที่พบระหว่างดำเนินโครงการ'], + [5, 'Acceptance Record', one('5.Acceptance Report'), 'บันทึกการส่งมอบงาน (Sign off Letter)'], + [6, `Change Requests (${files('6.Change Report').length} ฉบับ)`, multi('6.Change Report'), 'บันทึกขอการเปลี่ยนแปลงความต้องการ'], + [7, `Meeting Record (${files('7.Meeting Record').length} MoM Report)`, multi('7.Meeting Record'), 'รายงานการประชุมตามแผนการทำงานใน Work Schedule'], + [8, 'Software Configuration', one('8.Software Configuration'), 'บันทึกการกำหนดค่าและความเปลี่ยนแปลงต่าง ๆ ที่เกิดขึ้นของระบบ'], + [9, 'Project Repository', one('9.Project Repository'), `พื้นที่เก็บข้อมูล เอกสาร และหลักฐานทุกอย่างของโครงการ (Git Server: \`${ORIGIN}\`)`], + [10, 'Project Repository (Backup)', one('10.Project Repository (Backup)'), `พื้นที่สำรองสำหรับกู้คืนข้อมูล (Git Remote สำรอง: \`${BACKUP}\` และชุดสำรองฐานข้อมูลบนคลาวด์)`], + ], ['c']), + '## SI Process', + table(['No.', 'Instantiation', 'Evidence Name', 'Description'], [ + [11, 'Requirements specification (SRS)', one('11.Software Requirements'), 'เอกสารแสดงความต้องการซอฟต์แวร์ของระบบ'], + [12, 'Software design', one('12.Software design'), 'เอกสารการออกแบบระบบ พร้อมหัวข้อ Software Baseline'], + [13, 'Traceability record', one('13.Traceability record'), 'เอกสารบันทึกการสอบกลับได้ของระบบ (Traceability Matrix)'], + [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}\`)`], + [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'), 'เอกสารคู่มือการบำรุงรักษาระบบ'], + [21, `Verification result (${files('21.Verification Result').length} รอบ)`, multi('21.Verification Result'), 'บันทึกผลการตรวจสอบสถานะการจัดเตรียมและการจัดเก็บเอกสารของโครงการ'], + [22, 'Validation result', one('22.Validation Result'), 'บันทึกการยืนยันความต้องการกับผู้ใช้งาน (UAT)'], + ], ['c']), + '## Other Document', + table(['No.', 'Instantiation', 'Evidence Name', 'Description'], [ + [1, 'Stakeholder Register', `${CODE} Stakeholder Register ${bud('2026-01-16')} V1.0 YaB`, 'รายชื่อผู้มีส่วนได้ส่วนเสียและระดับการมีส่วนร่วม'], + [2, 'Project Charter Report', `${CODE} Project Charter Report ${bud('2026-01-23')} V1.0 YaB`, 'กฎบัตรโครงการ'], + [3, 'TRACEABILITY-RECORD-Table', `${CODE} TRACEABILITY-RECORD ${bud('2026-08-17')} V1.0 NoC`, 'ตารางสรุปการสอบกลับความต้องการถึงผลการทดสอบ'], + [4, 'Training Report', `${CODE} Training Report ${bud(TRAINING_DATE)} V1.0 YaB`, 'รายงานการอบรมผู้ใช้งานระบบ'], + [5, 'List of Evidence', 'เอกสารฉบับนี้', 'ดัชนีเอกสารและหลักฐานทั้งหมดของโครงการ'], + ], ['c']), + '## สรุปความครบถ้วนของหลักฐาน', + table(['รายการ', 'จำนวน'], [ + ['Work Products กระบวนการ PM', 10], + ['Work Products กระบวนการ SI', 12], + ['เอกสารประกอบเพิ่มเติม (Other Document)', 5], + ['ไฟล์เอกสารที่จัดเก็บทั้งหมด', inventory.length], + ['เอกสารที่จัดเตรียมครบถ้วน', inventory.length], + ['เอกสารที่ยังไม่ได้จัดเตรียม', 0], + ], ['', 'r']), + `เอกสารและหลักฐานทั้งหมดจัดเก็บใน Project Repository และสำรองไว้ตามที่ระบุในเอกสาร Project Repository (Backup) โดยชุดเอกสารส่งมอบควบคุมด้วย Tag \`${TAG}\``, + ].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 new file mode 100644 index 0000000..89238e9 --- /dev/null +++ b/scripts/sdlc-seed/docs-pm1.mjs @@ -0,0 +1,346 @@ +// PM work products 1–2: Statement of Work, Work Schedule, Software Project Plan, Customer Requirements. +import { P, TEAM, CODE, PROJECT_TH, COMPANY_TH, ORGANIZER, ORGANIZER_PM, RECORDER, START, END, WPS, SCOPE, CR_GROUPS, CRS, DEV_START, TEST_FROM, TEST_TO } from './project.mjs'; +import { TASKS } from './history.mjs'; +import { bud, thLong, thRangeLong, thShort, table, bullets, numbered, daysBetween, doc } from './lib.mjs'; +import { workProduct, head } from './format.mjs'; + +const DURATION = daysBetween(START, END); +const resp = (ids) => ids.map((i) => P[i].id).join(', '); + +/** 1. Statement of Work — the meeting invitation that opened the project, as in the audited package. */ +export function statementOfWork() { + const date = '2026-01-05'; + return { + dir: '1-PM Process (10 Work Product)/1.Statement of Work', + name: `${CODE} Statement of Work ${bud(date)} V1.0 ApS`, + md: workProduct({ + type: 'Statement of Work', footer: 'SoW', + rows: head('Statement of Work', `${bud(date)} V1.0 ApS`, [ + ['Title', 'ขอบเขตงานและหนังสือเชิญประชุมเปิดโครงการ'], + ['Project Period', thRangeLong(START, END), 'Project Duration', `${DURATION} วัน`], + ['Organizer', ORGANIZER_PM], + ['Recorder', RECORDER], + ]), + body: [ + `วันที่ ${thLong(date)}`, + '**เรื่อง:** ขอบเขตงานโครงการพัฒนาระบบบริหารจัดการคลังสินค้า และนัดประชุมเปิดโครงการ', + '**เรียน:** ผู้บริหาร หัวหน้าฝ่าย และผู้เกี่ยวข้องทุกฝ่าย', + `ตามที่ ${COMPANY_TH} ได้ใช้การบันทึกข้อมูลคลังสินค้าด้วยกระบวนการที่กระจายอยู่หลายระบบและบางส่วนยังใช้เอกสารกระดาษ ซึ่งปัจจุบันพบว่ามีข้อจำกัดด้านความถูกต้องของยอดสินค้าคงคลัง ความรวดเร็วในการตรวจสอบ และการเชื่อมโยงกับงานขาย งานจัดซื้อ และงานบัญชี ผู้บริหารจึงเล็งเห็นความจำเป็นในการพัฒนาระบบบริหารจัดการคลังสินค้า (Warehouse Management System) ขึ้นใหม่ เพื่อให้การปฏิบัติงานมีความถูกต้อง ตรวจสอบย้อนกลับได้ และรองรับการเติบโตของธุรกิจ`, + 'ดังนั้น จึงขอนัดประชุมเพื่อหารือร่วมกันระหว่างทุกฝ่ายที่เกี่ยวข้อง เพื่อ', + bullets(['รับฟังข้อเสนอแนะจากฝ่ายคลังสินค้า ฝ่ายขาย ฝ่ายจัดซื้อ และฝ่ายบัญชี', 'กำหนดแนวทางและกรอบความต้องการของระบบ', 'วางแผนดำเนินการพัฒนาและกำหนดผู้รับผิดชอบ']), + '## รายละเอียดการประชุม', + bullets([`วัน เวลา: ${thLong('2026-01-05')} เวลา 09.00 – 11.00 น.`, `สถานที่: ห้องประชุม ${COMPANY_TH}`, 'ผู้เข้าร่วม: ผู้บริหาร / ผู้จัดการ / หัวหน้าฝ่ายที่เกี่ยวข้อง และทีมพัฒนาระบบ']), + '## 1 วัตถุประสงค์ของโครงการ', + bullets([ + 'พัฒนาระบบบริหารจัดการคลังสินค้าแบบ Web-based รองรับหลายบริษัทและหลายคลังสินค้า', + 'รองรับการรับเข้า จ่ายออก โอนย้าย ตรวจนับ พร้อมติดตาม Lot, Serial Number และวันหมดอายุ', + 'ลดข้อผิดพลาดจากการทำงานด้วยมือ และเพิ่มความสามารถในการตรวจสอบย้อนกลับ', + 'รองรับงานขาย งานจัดซื้อ งานการเงิน และการบันทึกบัญชีที่เกี่ยวข้อง', + 'ควบคุมความปลอดภัย การแยกข้อมูลระหว่างบริษัท สิทธิ์การใช้งาน และการแจ้งเตือนแบบ Real-time', + ]), + '## 2 ขอบเขตงาน (Scope of Work)', + table(['ลำดับ', 'ระบบ', 'ระบบย่อย'], SCOPE.map(([sys, subs], i) => [i + 1, sys, subs.join(' / ')]), ['c']), + '## 3 สิ่งส่งมอบ (Work Products)', + table(['รหัส', 'สิ่งส่งมอบ (Work Product)', 'รายละเอียด'], WPS), + '## 4 ข้อยกเว้นและข้อสมมติ', + bullets([ + 'ไม่รวมการจัดหาเครื่องแม่ข่าย อุปกรณ์เครือข่าย เครื่องอ่านบาร์โค้ด หรือบริการภายนอก เว้นแต่ได้รับอนุมัติแยกต่างหาก', + 'การย้ายข้อมูลจากระบบเดิม การเชื่อมต่อ ERP หรือบริการภายนอก ต้องผ่านกระบวนการ Change Request', + 'ผู้มีส่วนได้ส่วนเสียต้องให้ข้อมูล ตรวจสอบเอกสาร และร่วมทดสอบตามกำหนดเวลา', + ]), + '## 5 แผนงานและหลักไมล์', + table(['ช่วงงาน', 'ระยะเวลา'], [ + ['เริ่มต้นและวางแผนโครงการ', thRangeLong(START, '2026-02-18')], + ['พัฒนาและทดสอบภายใน', thRangeLong(DEV_START, '2026-05-29')], + ['ตรวจสอบ ทดสอบ จัดทำเอกสาร และส่งมอบ', thRangeLong('2026-05-30', END)], + ['วันสิ้นสุดโครงการอย่างเป็นทางการ', thLong(END)], + ]), + '## 6 เกณฑ์การตรวจรับ', + bullets([ + 'ฟังก์ชันในขอบเขตผ่าน Test Case และเชื่อมโยงกับความต้องการใน Traceability Record', + 'ไม่มีข้อบกพร่องระดับวิกฤตที่ขัดขวางการใช้งานคงค้าง', + 'มีคู่มือติดตั้ง คู่มือผู้ใช้ คู่มือผู้ดูแลระบบ และคู่มือบำรุงรักษาครบถ้วน', + 'ผลการตรวจสอบ (Verification) การทดสอบการยอมรับ (Validation) และการตรวจรับได้รับการลงนามโดยผู้มีอำนาจ', + ]), + '## 7 การควบคุมการเปลี่ยนแปลง', + 'การเปลี่ยนแปลงขอบเขต กำหนดเวลา หรือสิ่งส่งมอบ ต้องบันทึกใน Change Report ประเมินผลกระทบ และได้รับอนุมัติก่อนดำเนินการ ส่วนการแก้ไขข้อบกพร่องต้องบันทึกใน Correction Register และเชื่อมโยงกับหลักฐานการทดสอบที่เกี่ยวข้อง', + 'จึงเรียนมาเพื่อโปรดพิจารณาและเข้าร่วมประชุมโดยพร้อมเพรียงกัน', + ].join('\n\n'), + secretary: P.ApS, reviewer: P.YaB, approver: P.SeV, + }), + }; +} + +/** 2.1 Work Schedule — landscape task table with milestones. */ +export function workSchedule() { + const date = '2026-02-13'; + return { + dir: '1-PM Process (10 Work Product)/2.Project Plan/1-Work Schedule', + name: `${CODE} Work Schedule ${bud(date)} V1.0 ApS`, + md: workProduct({ + type: 'Work Schedule', footer: 'WS', + rows: head('Work Schedule', `${bud(date)} V1.0 ApS`, [ + ['Title', 'แผนการดำเนินงานโครงการ (Work Schedule)'], + ['Project Period', thRangeLong(START, END), 'Project Duration', `${DURATION} วัน`], + ['Organizer', ORGANIZER_PM], + ['Recorder', RECORDER], + ]), + 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]]), + ['c', '', '', '', 'c', 'r', 'r', 'r', '', 'c', '']), + '## หลักไมล์ของโครงการ (Milestones)', + table(['หลักไมล์', 'วันที่', 'เกณฑ์การบรรลุ'], [ + ['เปิดโครงการอย่างเป็นทางการ', thLong(START), 'ประชุม Kick-off และชี้แจงขอบเขตงาน'], + ['อนุมัติกฎบัตรโครงการ', 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 และ 12 สถานการณ์ UAT ผ่านทั้งหมด'], + ['ตรวจรับส่งมอบระบบ', thLong('2026-08-17'), 'ผลการตรวจรับ Accepted'], + ['อบรมผู้ใช้งาน', thLong('2026-08-22'), 'อบรมผู้ใช้งาน 6 คน'], + ['ปิดโครงการ', thLong(END), 'ปิดโครงการอย่างเป็นทางการ'], + ], ['', 'c', '']), + '## หมายเหตุการติดตามแผนงาน', + bullets([ + 'สถานะงานได้รับการปรับปรุงทุกงวดรายงานตาม Progress Status Record', + 'งานที่ไม่แล้วเสร็จตามกำหนดต้องดำเนินการตามแผนสำรองใน Software Project Plan หัวข้อ 10', + 'การเปลี่ยนแปลงแผนงานที่กระทบกำหนดส่งมอบต้องผ่าน Change Report', + ]), + ].join('\n\n'), + secretary: P.ApS, reviewer: P.YaB, approver: P.SeV, + }), + }; +} + +/** 2.2 Software Project Plan — sections 1–11 in the reference order. */ +export function softwareProjectPlan() { + const date = '2026-02-13'; + const sec = (n, title) => `## ${n} ${title}`; + return { + dir: '1-PM Process (10 Work Product)/2.Project Plan/2-Software Project Plan', + name: `${CODE} Software Project Plan ${bud(date)} V1.0 ApS`, + md: workProduct({ + type: 'Software Project Plan', footer: 'PP', + rows: head('Software Project Plan', `${bud(date)} V1.0 ApS`, [ + ['Title', 'แผนการดำเนินโครงการ'], + ['Project Period', thRangeLong(START, END), 'Project Duration', `${DURATION} วัน`], + ['Organizer', ORGANIZER], + ['Recorder', RECORDER], + ]), + body: [ + sec(1, 'Manufacture'), + `${COMPANY_TH} เป็นบริษัทผู้ประกอบธุรกิจด้านเทคโนโลยีสารสนเทศ ซึ่งมีประสบการณ์ในการส่งมอบผลิตภัณฑ์และบริการด้านเทคโนโลยีให้แก่หน่วยงานภาครัฐและเอกชนอย่างต่อเนื่อง บริษัทประกอบธุรกิจหลัก 3 ด้าน ได้แก่`, + bullets([ + 'พัฒนาซอฟต์แวร์ตามความต้องการของหน่วยงาน (Software Development)', + 'จำหน่ายผลิตภัณฑ์ซอฟต์แวร์สำเร็จรูป (Software Package) เช่น ระบบบริหารจัดการสินทรัพย์', + 'ให้บริการบำรุงรักษาระบบ (Service Maintenance: MA) ครอบคลุมโครงสร้างพื้นฐาน เครื่องแม่ข่าย และศูนย์ข้อมูล', + ]), + sec(2, 'Overview'), + 'เพื่อยกระดับการบริหารจัดการคลังสินค้าของบริษัทให้มีความถูกต้อง รวดเร็ว และตรวจสอบย้อนกลับได้ บริษัทมีความประสงค์จะพัฒนา ระบบบริหารจัดการคลังสินค้า (BRN WMS) ขึ้นใหม่ โดยมีวัตถุประสงค์เพื่อ', + bullets([ + 'รวมศูนย์ข้อมูลคลังสินค้า สินค้าคงคลัง และความเคลื่อนไหวของสินค้าไว้ในระบบเดียว', + 'เชื่อมโยงงานขาย งานจัดซื้อ งานการเงิน และการบันทึกบัญชีเข้ากับความเคลื่อนไหวของสินค้า', + 'ควบคุมสิทธิ์การเข้าถึงและแยกข้อมูลระหว่างบริษัทและคลังสินค้าอย่างชัดเจน', + 'ให้ผู้บริหารเห็นภาพรวมสถานะคลังสินค้าและสถานะทางการเงินได้ตามเวลาจริง', + ]), + sec(3, 'Goals and Scope'), + '### 3.1 เป้าหมายของโครงการ', + '**เป้าหมายด้านองค์กร**', + bullets(['ลดข้อผิดพลาดของยอดสินค้าคงคลังที่เกิดจากการบันทึกด้วยมือ', 'เพิ่มความสามารถในการตรวจสอบย้อนกลับของสินค้าตาม Lot, Serial Number และวันหมดอายุ', 'ทำให้ข้อมูลคลังสินค้าและข้อมูลบัญชีสอดคล้องกันโดยไม่ต้องบันทึกซ้ำ']), + '**เป้าหมายด้านผู้ใช้งาน**', + bullets(['ให้พนักงานคลังสินค้าบันทึกรายการรับเข้า จ่ายออก และโอนย้ายได้สะดวกจากอุปกรณ์หน้าคลัง', 'ให้ฝ่ายขายและฝ่ายจัดซื้อจัดทำเอกสารและติดตามสถานะได้ในระบบเดียว', 'ให้ฝ่ายบัญชีได้ข้อมูลรายการที่ผ่านการตรวจสอบแล้วโดยอัตโนมัติ']), + '### 3.2 ขอบเขตของโครงการ (SOW)', + table(['ลำดับ', 'ระบบ', 'ระบบย่อย'], SCOPE.map(([sys, subs], i) => [i + 1, sys, subs.join(' / ')]), ['c']), + '### 3.3 สิ่งส่งมอบ (Work Products)', + table(['รหัส', 'สิ่งส่งมอบ (Work Product)', 'รายละเอียด'], WPS), + '### 3.4 Delivery Instruction', + 'ในการส่งมอบตามสิ่งส่งมอบ (Work Product) เมื่อแล้วเสร็จและถึงกำหนดเวลา (Due Date) ผู้จัดการโครงการต้องจัดเตรียมเครื่องมือและสถานที่เพื่อให้ลูกค้าทำการทดสอบการยอมรับผู้ใช้ (Validation Result หรือ User Acceptance Test – UAT) โดยทดสอบตามข้อกำหนดในเอกสารความต้องการผู้ใช้ (Customer Requirements) ทีละข้อ และลงนามยืนยันเมื่อผ่านการทดสอบ', + bullets([ + '**กรณีสิ่งส่งมอบไม่แล้วเสร็จตามกำหนด (Delay)** ผู้จัดการโครงการต้องนัดประชุมรายงานความคืบหน้าและอธิบายสาเหตุให้ลูกค้าทราบ พร้อมทั้งตกลงกำหนดวันส่งมอบใหม่อย่างเป็นทางการร่วมกัน', + '**การปิดโครงการ (Project Closure)** เมื่อสิ่งส่งมอบทั้งหมดผ่านการตรวจรับและได้รับลายเซ็นอนุมัติจากลูกค้าครบทุกชุดแล้ว ผู้จัดการโครงการจัดประชุมปิดโครงการอย่างเป็นทางการ พร้อมจัดทำเอกสารสรุปผลการดำเนินงานเพื่อเก็บเป็นหลักฐาน', + ]), + '### 3.5 เกณฑ์คุณภาพ (Quality Criteria)', + '**ด้านคุณภาพของระบบ**', + 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.5', 'ความสามารถในการเข้าถึง', 'ใช้งานได้บน Desktop, Tablet และ Mobile (Responsive)', 'ทดสอบข้ามอุปกรณ์'], + ], ['c']), + '**ด้านการดูแลหลังส่งมอบ**', + table(['ลำดับ', 'หัวข้อ', 'เกณฑ์คุณภาพ', 'วิธีประเมิน'], [ + ['2.1', 'การตอบสนองเหตุขัดข้อง', 'ตอบรับภายใน 4 ชั่วโมง และแก้ไขตามระดับความรุนแรงที่กำหนดใน SLA', 'บันทึกการให้บริการ'], + ['2.2', 'การสำรองข้อมูล', 'มีระบบสำรองข้อมูลอัตโนมัติรายวันและทดสอบกู้คืนได้จริง', 'Backup & Restore Test (TC-UN13.004)'], + ['2.3', 'การเฝ้าระวังระบบ', 'ตรวจสอบสถานะบริการทุก 5 นาที และแจ้งเตือนเมื่อล้มเหลว 2 ครั้งติดกัน', 'บันทึกการเฝ้าระวัง'], + ], ['c']), + sec(4, 'Software Development Life Cycle Methodology'), + 'โครงการเลือกใช้แนวทาง Incremental / Evolutionary ภายใต้ขั้นตอนหลักของ Waterfall เนื่องจาก', + bullets([ + 'ขอบเขตและสิ่งส่งมอบกำหนดชัดเจนตั้งแต่ต้นโครงการ จึงวางแผนและตรวจรับเป็นงวดได้', + 'ระบบมีหลายโมดูลที่ส่งมอบต่อเนื่องกัน จึงพัฒนาและทดสอบทีละส่วนเพื่อลดความเสี่ยง', + 'เอกสารครบถ้วนตามมาตรฐาน ISO/IEC 29110 ที่เน้น Work Products และ Traceability', + 'ตรวจสอบย้อนกลับ (Audit) และตรวจรับงานได้อย่างเป็นทางการ', + ]), + table(['ขั้นตอน', 'แนวทางที่ใช้จริงในโครงการ'], [ + ['Requirements', 'เก็บความต้องการและตั้ง Baseline ก่อนเริ่มพัฒนา การเปลี่ยนแปลงภายหลังผ่าน Change Report (CH-001–CH-003)'], + ['Design', 'ออกแบบสถาปัตยกรรม โครงสร้างฐานข้อมูล และ Software Unit ก่อนพัฒนาแต่ละโมดูล'], + ['Implementation', 'พัฒนาเป็นโมดูลต่อเนื่องระหว่าง 19 ก.พ. – 29 พ.ค. 69 พร้อมทบทวนและแก้ไขระหว่างทาง'], + ['Verification', 'ตรวจสอบ Work Products 4 รอบ ควบคู่กับการพัฒนา และรอบสุดท้ายก่อนส่งมอบ'], + ['Validation', 'ทดสอบระบบและ UAT ระหว่าง 10–14 ส.ค. 69 บนสภาพแวดล้อมที่กำหนด'], + ['Closure', 'ตรวจรับ อบรม ปิดงานควบคุมปฏิบัติการ และปิดโครงการภายใน 24 ส.ค. 69'], + ]), + sec(5, 'Organization'), + '### 5.1 Role & Responsibility', + table(['ลำดับ', 'บทบาท', 'ชื่อ-นามสกุล (ชื่อย่อ)', 'อีเมล', 'รายละเอียดหน้าที่'], [ + [1, `Project Manager (${P.ApS.id})`, P.ApS.th, P.ApS.email, 'จัดทำ Project Charter และแผนโครงการ / วางแผน Timeline, Resource, Risk, Quality / จัดประชุมและติดตามความคืบหน้า / ควบคุมการเปลี่ยนแปลงและการปิดโครงการ'], + [2, `System Analyst (${P.NoC.id})`, P.NoC.th, P.NoC.email, 'เก็บและวิเคราะห์ความต้องการ / จัดทำ SRS และเอกสารออกแบบระบบ / ออกแบบฐานข้อมูลและความสัมพันธ์ของโมดูล / ตรวจสอบความสอดคล้องของงานพัฒนากับความต้องการ'], + [3, `Developer (${P.ThS.id})`, P.ThS.th, P.ThS.email, 'พัฒนาโมดูลและ API ตามการออกแบบ / จัดการฐานข้อมูลและประสิทธิภาพ / ดูแลความปลอดภัยและการติดตั้ง / แก้ไขข้อบกพร่องที่พบจากการทดสอบ'], + [4, `QA / Tester (${P.PaNg.id})`, P.PaNg.th, P.PaNg.email, 'จัดทำ Test Case และ Test Procedures / ทดสอบระบบและบันทึกผล / ติดตามการแก้ไขข้อบกพร่องและทดสอบซ้ำ / สนับสนุนผู้ใช้งานช่วง UAT'], + [5, `Document Control (${P.YaB.id})`, P.YaB.th, P.YaB.email, 'ควบคุมรหัสเอกสารและเวอร์ชัน / จัดเก็บและตรวจสอบความครบถ้วนของเอกสาร / ประสานการทบทวนและอนุมัติ / บันทึกประวัติการเปลี่ยนแปลงเอกสาร'], + [6, `Project Sponsor (${P.SeV.id})`, P.SeV.th, P.SeV.email, 'อนุมัติขอบเขต งบประมาณ และการเปลี่ยนแปลง / ตัดสินใจเชิงกลยุทธ์ / ทดสอบการยอมรับและตรวจรับส่งมอบ / อนุมัติปิดโครงการ'], + ], ['c']), + sec(6, 'Project Estimate'), + '### 6.1 Size of the Software Work Products', + table(['ลำดับ', 'Work Product', 'ปริมาณ (ประมาณการ)'], [ + [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 รายการ'], + [7, 'ตารางฐานข้อมูล', 'ประมาณ 50 ตาราง ใน 2 ฐานข้อมูล'], + ], ['c']), + '### 6.2 Effort Man-Day', + table(['ลำดับ', 'ตำแหน่ง', 'หน้าที่หลัก', 'ระยะเวลา (Man-Day)'], [ + [1, 'Project Manager', 'ควบคุมงาน ประสานงาน ติดตามแผน', 120], + [2, 'System Analyst', 'วิเคราะห์ความต้องการ ออกแบบระบบ', 60], + [3, 'Developer', 'พัฒนาระบบและแก้ไขข้อบกพร่อง', 100], + [4, 'QA / Tester', 'วางแผนทดสอบ ทดสอบระบบ UAT', 40], + [5, 'Document Control', 'ควบคุมเอกสารและหลักฐานโครงการ', 60], + ], ['c', '', '', 'r']), + sec(7, 'Project Resources'), + '**Human Resource**', + table(['ลำดับ', 'Team', 'จำนวน (คน)'], [[1, 'Project Management (PM, Document Control)', 2], [2, 'Software Implementation (SA, Developer, QA)', 3], [3, 'Project Sponsor / ตัวแทนลูกค้า', 1]], ['c', '', 'r']), + '**Computer Resource**', + table(['ลำดับ', 'รายการ', 'จำนวน'], [ + [1, 'Notebook สำหรับทีมพัฒนาและทดสอบ', '5 เครื่อง'], + [2, 'Git Server (Repository หลัก)', '1 ระบบ'], + [3, 'Internal Testing Server (PHP 8, MariaDB, Node.js)', '1 เครื่อง'], + [4, 'Production Server สำหรับใช้งานจริง', '1 เครื่อง'], + [5, 'เครื่องอ่านบาร์โค้ดสำหรับทดสอบ', '1 เครื่อง'], + ], ['c']), + sec(8, 'Work Schedule'), + `แผนการดำเนินงานของโครงการ รวม ${DURATION} วัน ตั้งแต่ ${thLong(START)} ถึง ${thLong(END)} รายละเอียดกิจกรรม ผู้รับผิดชอบ และสิ่งส่งมอบรายกิจกรรม อยู่ในเอกสาร ${CODE} Work Schedule ซึ่งเป็นส่วนหนึ่งของ Project Plan`, + table(['Phase', 'ช่วงเวลา', 'ผลลัพธ์หลัก'], [ + ['Project Initiation', thRangeLong(START, '2026-01-23'), 'Statement of Work, Stakeholder Register, Project Charter'], + ['Project Planning', thRangeLong('2026-01-12', '2026-02-18'), 'Customer Requirements, Software Project Plan, Work Schedule'], + ['Project Execution', thRangeLong(DEV_START, '2026-05-29'), 'SRS, Software Design, ระบบที่พัฒนาแล้ว, Software Components'], + ['Verification & Validation', thRangeLong('2026-05-30', '2026-08-17'), 'Test Case, Test Report, Verification Results, Validation Results'], + ['Project Close', thRangeLong('2026-08-10', END), 'Acceptance Report, Training Report, List of Evidence'], + ]), + sec(9, 'Risk Management Plan'), + 'วัตถุประสงค์ของแผนบริหารความเสี่ยง คือระบุแนวทางจัดการความเสี่ยงของโครงการ เพื่อให้โครงการบรรลุเป้าหมายภายในเวลา งบประมาณ และคุณภาพที่กำหนด', + table(['ลำดับ', 'หมวด', 'รายการ', 'รายละเอียด'], [ + [1, 'ขอบเขต', 'ครอบคลุมทุกกิจกรรมของโครงการ', 'ตั้งแต่ Initiation, Planning, Execution จนถึง Close'], + [2, 'บทบาทผู้รับผิดชอบ', 'Project Manager (Owner), ทีมพัฒนา, Project Sponsor', 'PM ติดตามและควบคุมความเสี่ยง ทีมพัฒนารายงานความเสี่ยงให้ PM'], + [3, 'รอบการทบทวน', 'ทบทวนทุกงวดรายงานความก้าวหน้า', 'บันทึกความเสี่ยงใหม่และการเปลี่ยนแปลงระดับความเสี่ยงใน Progress Status Record'], + ], ['c']), + '**ตารางระบุความเสี่ยงหลักของโครงการ**', + table(['ลำดับ', 'ความเสี่ยง (Risk)', 'ประเภท', 'โอกาสเกิด', 'ผลกระทบ', 'ระดับความเสี่ยง', 'แนวทางป้องกัน (Mitigation)', 'แผนรับมือ (Contingency Plan)', 'ผู้รับผิดชอบ'], [ + ['R1', 'ความต้องการเปลี่ยนแปลงระหว่างพัฒนา', 'กระบวนการ', 'High', 'High', 'High', 'ตั้ง Baseline ความต้องการและทบทวนทุกงวด', 'จัดทำ Change Report และจัดลำดับความสำคัญใหม่', `${P.ApS.id} / ${P.NoC.id}`], + ['R2', 'ทีมพัฒนาไม่เพียงพอหรือขาดทักษะเฉพาะทาง', 'บุคลากร', 'Middle', 'High', 'High', 'ถ่ายทอดความรู้ภายในทีมและจัดทำเอกสารประกอบ', 'ขออนุมัติจัดหาผู้เชี่ยวชาญเพิ่มเฉพาะงาน', P.ApS.id], + ['R3', 'ยอดสินค้าคงคลังไม่ถูกต้อง', 'เทคโนโลยี', 'Middle', 'High', 'High', 'ใช้ Transaction, ตรวจสอบข้อมูลนำเข้า และล็อกรายการ', 'ตรวจสอบและปรับปรุงยอดพร้อมบันทึก Correction Register', `${P.ThS.id} / ${P.PaNg.id}`], + ['R4', 'ข้อมูลรั่วไหลข้ามบริษัทหรือสิทธิ์ไม่รัดกุม', 'ความปลอดภัย', 'Middle', 'High', 'High', 'บังคับ Role Guard และขอบเขตบริษัทฝั่งเซิร์ฟเวอร์', 'ปิดช่องโหว่ทันทีและทดสอบสิทธิ์เชิงลบซ้ำ', `${P.ThS.id} / ${P.PaNg.id}`], + ['R5', 'ค่าตั้งค่าหรือความลับรั่วไหล', 'ความปลอดภัย', 'Middle', 'High', 'High', 'ยกเว้นไฟล์ตั้งค่าจาก Git และสร้างความลับตอนติดตั้ง', 'เปลี่ยนค่าความลับและตรวจสอบประวัติการเข้าถึง', P.ThS.id], + ['R6', 'ข้อมูลสูญหายระหว่างพัฒนาหรือใช้งาน', 'เทคโนโลยี', 'Middle', 'High', 'High', 'สำรอง Git 2 Remote และสำรองฐานข้อมูลรายวัน', 'กู้คืนจากชุดสำรองตามขั้นตอนในคู่มือ', P.ThS.id], + ['R7', 'หลักฐานการทดสอบและตรวจรับไม่ครบถ้วน', 'กระบวนการ', 'Middle', 'High', 'High', 'รักษาการสอบกลับสองทิศทางและบันทึกผลทุกครั้ง', 'ทดสอบซ้ำและบันทึกหลักฐานก่อนตรวจรับ', `${P.PaNg.id} / ${P.YaB.id}`], + ['R8', 'ผู้ใช้ไม่ยอมรับระบบ (UAT ไม่ผ่าน)', 'ผู้ใช้งาน', 'Middle', 'High', 'High', 'ให้ผู้ใช้ร่วมทบทวนความต้องการและสาธิตระบบระหว่างพัฒนา', 'ปรับปรุงตาม Feedback และทดสอบการยอมรับใหม่', `${P.ApS.id} / ${P.SeV.id}`], + ], ['c', '', '', 'c', 'c', 'c', '', '', 'c']), + sec(10, 'Contingency Actions for Non-Completed Tasks'), + 'แผนรองรับสำหรับกรณีงานไม่แล้วเสร็จตามกำหนด (Non-Completed Task)', + table(['ลำดับ', 'สถานการณ์', 'สาเหตุที่พบบ่อย', 'ผลกระทบที่อาจเกิด', 'แผนรองรับเมื่อเกิดเหตุ', 'ผู้รับผิดชอบ'], [ + [1, 'งานไม่เสร็จภายในกำหนด (Due Date)', 'ประเมินเวลาผิดพลาด หรือทรัพยากรไม่เพียงพอ', 'กระทบ Timeline และกำหนดส่งมอบ', 'ประชุมด่วนเพื่อประเมินสถานะ จัดลำดับความสำคัญใหม่ ปรับแผน และแจ้งลูกค้าอย่างเป็นทางการ', P.ApS.id], + [2, 'งานล่าช้าเพราะขาดบุคลากร', 'ลาป่วย ลาออก หรือไม่พร้อมปฏิบัติงาน', 'งานค้างสะสมและภาระงานกระจุกตัว', 'จัดทำเอกสารส่งมอบงาน ถ่ายทอดความรู้ให้ผู้ปฏิบัติแทน และขออนุมัติจัดหาผู้ช่วยเฉพาะงาน', `${P.ApS.id} / ฝ่ายบุคคล`], + [3, 'งานค้างเพราะรอข้อมูลจากผู้ใช้', 'ผู้ให้ข้อมูลส่งความต้องการหรือข้อมูลตั้งต้นล่าช้า', 'ไม่สามารถพัฒนาหรือทดสอบต่อได้', 'แจ้งเตือนเป็นลายลักษณ์อักษร แยกงานที่ยังไม่พร้อมออก และนัดยืนยัน Timeline ใหม่', `${P.ApS.id} / ${P.SeV.id}`], + [4, 'งานไม่เสร็จเพราะพบข้อบกพร่องซ้ำซ้อน', 'ความซับซ้อนสูงหรือขาดการทดสอบระยะแรก', 'เกิดความล่าช้าในการพัฒนาและทดสอบ', 'จัดลำดับข้อบกพร่องตามความรุนแรง แยกงานแก้ไขออกจากงานพัฒนาใหม่ และทดสอบซ้ำ', `${P.ThS.id} / ${P.PaNg.id}`], + [5, 'งานล่าช้าเพราะต้องแก้ความต้องการ', 'ขอบเขตเปลี่ยนหลังเริ่มงาน', 'กระทบแผนงานและสิ่งส่งมอบ', 'จัดทำ Change Report อย่างเป็นทางการ ประเมินผลกระทบ และขออนุมัติก่อนดำเนินการต่อ', `${P.ApS.id} / ${P.SeV.id}`], + ], ['c']), + sec(11, 'Document and Repository'), + '**รูปแบบไฟล์ (File Format)** การกำหนดชื่อไฟล์ให้ใช้รูปแบบดังนี้', + '`[Project code] [Document name] [yyyymmdd] V[version] [editor name].[ext.]`', + table(['หัวข้อ', 'รายละเอียด'], [ + ['[Project code]', `รหัสโครงการตามส่วนงานบัญชี เช่น ${CODE}`], + ['[Document name]', 'ชื่อเอกสาร เช่น Progress Status Record'], + ['[yyyymmdd]', 'วันที่ของเอกสารตามปีพุทธศักราช เช่น 25690817'], + ['[version]', 'เวอร์ชันของเอกสาร เช่น 1.0'], + ['[editor name]', 'ตัวย่อของชื่อผู้จัดทำ เช่น ApS'], + ['[ext.]', 'นามสกุลไฟล์ เช่น pdf'], + ]), + '**การประกาศเวอร์ชัน (Version Declaration)** เก็บเอกสารแต่ละเวอร์ชันแยกไฟล์เพื่อให้ตรวจสอบย้อนหลังได้ โดยใช้รูปแบบ Major.Minor', + table(['เวอร์ชัน (Version)', 'รายละเอียด'], [ + ['0.1 (Draft)', 'ร่างเอกสารฉบับแรก'], + ['0.2 (Draft)', 'ปรับปรุงตามผลการทบทวน'], + ['1.0 (Release)', 'อนุมัติใช้เป็นเอกสารทางการ'], + ['1.1 (Revision)', 'ปรับปรุงเอกสารหลังอนุมัติ'], + ]), + '**Project Repository** ใช้ Git Server เป็นศูนย์กลางในการจัดเก็บและควบคุมเวอร์ชันของ Source Code และเอกสารทั้งหมดที่เกี่ยวข้องกับโครงการ', + table(['ลำดับ', 'หัวข้อ', 'รายละเอียด'], [ + [1, 'ที่เก็บข้อมูล (Repository Location)', 'ทีมงานเข้าถึง Repository ผ่าน Git Server โดย Repository ของโครงการนี้เก็บทั้ง Source Code และเอกสาร ISO'], + [2, 'สิทธิ์การเข้าถึง (Access Control)', 'สมาชิกโครงการได้รับสิทธิ์ตามบทบาท โดย Project Manager และ System Analyst มีสิทธิ์อนุมัติการ Merge'], + [3, 'การจัดเก็บไฟล์งาน (File Storage Rules)', 'ไฟล์ที่เกี่ยวข้องกับโครงการต้องจัดเก็บใน Repository และไฟล์ที่สร้างจากเครื่องส่วนบุคคลต้องนำขึ้น Repository ภายในเวลาที่กำหนด'], + ], ['c']), + '**Project Repository Backup** เพื่อป้องกันการสูญหายของข้อมูลใน Git Server', + table(['ลำดับ', 'หัวข้อ', 'รายละเอียด'], [ + [1, 'ผู้รับผิดชอบ (Responsibility)', 'มอบหมาย Developer ตรวจสอบความถูกต้องของข้อมูลสำรองอย่างสม่ำเสมอ'], + [2, 'วิธีการสำรองข้อมูล (Backup Methods)', 'ซิงก์ Repository ไปยัง Backup Remote และสำรองฐานข้อมูลด้วยการ Export อัตโนมัติ'], + [3, 'รอบการสำรองข้อมูล (Backup Frequency)', 'ฐานข้อมูลสำรองทุกวันเวลา 02:00 น. และ Repository ซิงก์ทุกครั้งที่มีการส่งมอบ'], + ], ['c']), + ].join('\n\n'), + secretary: P.ApS, reviewer: P.YaB, approver: P.SeV, + }), + }; +} + +/** 2.3 Customer Requirements — CR01–CR14 in the reference table layout. */ +export function customerRequirements() { + const date = '2026-02-06'; + const rows = []; + for (const [gid, gname, items] of CR_GROUPS) { + rows.push([`${gid}: ${gname}`, '', '', '']); + for (const [id, text, remark] of items) rows.push([id, text, 'A', remark]); + } + return { + dir: '1-PM Process (10 Work Product)/2.Project Plan/3-Customer Requirement', + name: `${CODE} Customer Requirements ${bud(date)} V1.0 NoC`, + md: workProduct({ + type: 'Customer Requirements', footer: 'CR', + rows: head('Customer Requirements', `${bud(date)} V1.0 NoC`, [ + ['Title', 'เอกสารบันทึกและสรุปความต้องการของลูกค้า (Customer Requirements)'], + ['Project Period', thRangeLong(START, END)], + ['Organizer', ORGANIZER], + ['Recorder', RECORDER], + ]), + body: [ + '## วัตถุประสงค์ (Objective)', + `เอกสารฉบับนี้จัดทำขึ้นเพื่อบันทึกและสรุปความต้องการของลูกค้า (Customer Requirements) ตามกระบวนการ ISO/IEC 29110 สำหรับใช้เป็นพื้นฐานในการจัดทำ Software Requirements Specification, การออกแบบระบบ, การทดสอบ และการตรวจรับ ของ${PROJECT_TH}`, + '## ผู้มีส่วนได้ส่วนเสีย (Stakeholders)', + table(['ลำดับ', 'ชื่อ', 'ตำแหน่ง', 'บทบาท'], [ + [1, P.SeV.th, 'ผู้บริหาร (CEO)', 'Project Sponsor อนุมัติและตัดสินใจเชิงกลยุทธ์'], + [2, P.ApS.th, 'ผู้จัดการโครงการ', 'บริหารโครงการและควบคุมการเปลี่ยนแปลง'], + [3, P.NoC.th, 'นักวิเคราะห์ระบบ', 'เก็บและวิเคราะห์ความต้องการ จัดทำเอกสาร'], + [4, 'หัวหน้าฝ่ายคลังสินค้าและพนักงานคลัง', 'ผู้ใช้งานหลัก', 'ให้ข้อมูลกระบวนการรับเข้า จ่ายออก โอนย้าย และตรวจนับ'], + [5, 'ฝ่ายขายและฝ่ายจัดซื้อ', 'ผู้ใช้งาน', 'ให้ข้อมูลกระบวนการเอกสารขายและจัดซื้อ'], + [6, 'ฝ่ายบัญชีและการเงิน', 'ผู้ใช้งาน', 'ให้ข้อมูลการวางบิล รับชำระ จ่ายชำระ และการบันทึกบัญชี'], + ], ['c']), + '## ความต้องการเชิงหน้าที่และไม่ใช่หน้าที่ (Functional and Non-Functional Requirements)', + table(['ID', 'Topic', 'Result*', 'Remark'], rows, ['', '', 'c', '']), + '## Remark', + bullets(['\\* Result : A = Accepted, U = Unaccepted, N/A = Not Applicable', 'เอกสารฉบับนี้รวมความต้องการที่ได้จากการทบทวนขอบเขตงานร่วมกับลูกค้า', 'การเปลี่ยนแปลงความต้องการหลังอนุมัติต้องดำเนินการผ่าน Change Report']), + ].join('\n\n'), + secretary: P.NoC, reviewer: P.YaB, approver: P.SeV, + }), + }; +} diff --git a/scripts/sdlc-seed/docs-pm2.mjs b/scripts/sdlc-seed/docs-pm2.mjs new file mode 100644 index 0000000..ec16c4d --- /dev/null +++ b/scripts/sdlc-seed/docs-pm2.mjs @@ -0,0 +1,409 @@ +// PM work products 3–10: Progress Status Record, Correction Register, Acceptance Report, +// Change Report, Meeting Record, Software Configuration, Project Repository (+ Backup). +import { P, 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 { TASKS, taskById, CORRECTIONS, CHANGES, PERIODS, MEETINGS } from './history.mjs'; +import { bud, thLong, thShort, thRange, thRangeLong, table, bullets, daysBetween } from './lib.mjs'; +import { workProduct, head } from './format.mjs'; + +const ids = (arr) => arr.map((i) => P[i].id).join(', '); +const dir3 = '1-PM Process (10 Work Product)/3.Progress Status Record'; + +/** 3. Progress Status Record — one per reporting period. */ +export function progressStatusRecords() { + return PERIODS.map(([date, from, to, weekNo, taskRows, issueIds, changeIds, next]) => { + const tasks = taskRows.map(([tid, status, pct, remark]) => { + const t = taskById(tid); + const icon = status === 'Completed' ? 'Completed' : status === 'In Progress' ? 'In Progress' : 'Planned'; + return [tid, t[2], thRange(t[5], t[6]), ids(t[4]), icon, pct, remark]; + }); + const issues = issueIds.map((iid, n) => { + const c = CORRECTIONS.find((x) => x[0] === iid); + return [n + 1, `${c[0]} (${thShort(c[1])})`, c[3], c[4], c[5], `${c[6]} (${thShort(c[2])})`, P[c[7]].id, 'เสร็จสิ้น']; + }); + const changes = changeIds.map((cid) => { + const c = CHANGES.find((x) => x.id === cid); + return [c.id, c.titleTh, 'อนุมัติ', c.impact[0][1]]; + }); + return { + dir: dir3, + name: `${CODE} Progress Status Record ${bud(date)} V1.0 ApS`, + md: workProduct({ + type: 'Progress Status Record', footer: 'PR', + rows: head('Progress Status Record', `${bud(date)} V1.0 ApS`, [ + ['Title', `รายงานสรุปงวดที่ ${weekNo} : ${thLong(date)}`], + ['Reporting Period', thRangeLong(from, to)], + ['Organizer', ORGANIZER_PM], + ['Recorder', RECORDER], + ]), + body: [ + '## สรุปสถานะโครงการ', + table(['Task ID', 'Task Name', 'Period', 'Responsible', 'Status', 'Progress (%)', 'Remarks'], tasks, ['c', '', 'c', 'c', 'c', 'r', '']), + '## ความเสี่ยง/อุปสรรค', + issues.length + ? table(['ลำดับ', 'Issue ID', 'ประเด็น', 'รายละเอียด', 'สาเหตุที่พบ', 'แนวทางการแก้ไข', 'ผู้รับผิดชอบ', 'สถานะ'], issues, ['c', '', '', '', '', '', 'c', 'c']) + : table(['ลำดับ', 'Issue ID', 'ประเด็น', 'รายละเอียด', 'สาเหตุที่พบ', 'แนวทางการแก้ไข', 'ผู้รับผิดชอบ', 'สถานะ'], [['-', '-', 'ไม่พบประเด็นความเสี่ยงหรืออุปสรรคในงวดนี้', '-', '-', '-', '-', '-']], ['c', '', '', '', '', '', 'c', 'c']), + '## สรุป CR/Change (ถ้ามี)', + changes.length + ? table(['CR ID', 'หัวข้อ', 'สถานะ', 'ผลกระทบ'], changes, ['c', '', 'c', '']) + : table(['CR ID', 'หัวข้อ', 'สถานะ', 'ผลกระทบ'], [['-', 'ไม่มีคำขอเปลี่ยนแปลงในงวดนี้', '-', '-']], ['c', '', 'c', '']), + '## Next Meeting', + next + ? table(['รายละเอียด', 'วันที่', 'ผู้จัดประชุม', 'หัวข้อหลัก'], [[`ประชุมติดตามงวดที่ ${weekNo + 1}`, thLong(next.date), `${P.ApS.th} (${P.ApS.id})`, next.topic]], ['', 'c', '', '']) + : table(['รายละเอียด', 'วันที่', 'ผู้จัดประชุม', 'หัวข้อหลัก'], [['ไม่มีการประชุมถัดไป โครงการปิดอย่างเป็นทางการแล้ว', '-', '-', '-']], ['', 'c', '', '']), + ].join('\n\n'), + secretary: P.YaB, reviewer: P.ApS, approver: P.SeV, + }), + }; + }); +} + +/** 4. Correction Register — all issues found during the project. */ +export function correctionRegister() { + const date = '2026-08-17'; + const rows = CORRECTIONS.map((c, i) => [i + 1, c[0], thShort(c[1]), c[4], c[5], c[6], P[c[7]].id, thShort(c[2]), 'เสร็จสิ้น']); + const bySev = (s) => CORRECTIONS.filter((c) => c[3] === s).length; + return { + dir: '1-PM Process (10 Work Product)/4.Correction Register', + name: `${CODE} Correction Register ${bud(date)} V1.0 YaB`, + md: workProduct({ + type: 'Correction Register', footer: 'CoR', + rows: head('Correction Register', `${bud(date)} V1.0 YaB`, [ + ['Title', 'เอกสารสรุปปัญหาที่พบระหว่างดำเนินโครงการ'], + ['Date', thLong(date)], + ['Organizer', ORGANIZER], + ['Recorder', RECORDER], + ]), + body: [ + '## ตารางแสดงปัญหาที่พบระหว่างดำเนินโครงการ', + table(['No', 'เลขที่', 'วันที่พบปัญหา', 'คำอธิบายปัญหา', 'สาเหตุที่พบ', 'การดำเนินการแก้ไข', 'ผู้รับผิดชอบ', 'วันแก้ไขแล้วเสร็จ', 'สถานะ'], rows, ['c', 'c', 'c', '', '', '', 'c', 'c', 'c']), + '## สรุปผลการแก้ไข', + table(['รายการ', 'จำนวน'], [ + ['ปัญหาที่บันทึกทั้งหมด', CORRECTIONS.length], + ['ระดับความรุนแรงสูง', bySev('สูง')], + ['ระดับความรุนแรงกลาง', bySev('กลาง')], + ['ระดับความรุนแรงต่ำ', bySev('ต่ำ')], + ['แก้ไขแล้วเสร็จและตรวจสอบผลแล้ว', CORRECTIONS.length], + ['คงค้าง', 0], + ], ['', 'r']), + `ปัญหาทุกรายการได้รับการแก้ไขและตรวจสอบผลด้วย Test Case ที่เกี่ยวข้อง โดยผลการทดสอบผ่านทั้งหมดในรอบทดสอบระหว่าง ${thRangeLong(TEST_FROM, TEST_TO)} ไม่มีข้อบกพร่องระดับวิกฤตคงค้าง ณ วันตรวจรับ`, + '## การเชื่อมโยงกับหลักฐานการทดสอบ', + table(['เลขที่', 'การแก้ไขอ้างอิง (Commit)', 'Test Case ที่ใช้ตรวจสอบ', 'ผลการทดสอบ'], CORRECTIONS.map((c) => [c[0], `\`${c[8]}\``, c[9], 'Passed']), ['c', '', 'c', 'c']), + ].join('\n\n'), + secretary: P.YaB, reviewer: P.ApS, approver: P.SeV, + }), + }; +} + +/** 5. Acceptance Report — the sign-off record. */ +export function acceptanceReport() { + return { + dir: '1-PM Process (10 Work Product)/5.Acceptance Report', + name: `${CODE} Acceptance Report ${bud(ACCEPT_DATE)} V1.0 ApS`, + md: workProduct({ + type: 'Acceptance Report', footer: 'AR', + rows: head('Acceptance Report', `${bud(ACCEPT_DATE)} V1.0 ApS`, [ + ['Title', 'บันทึกการส่งมอบงาน (Acceptance Record)'], + ['ระยะเวลา', thRangeLong(START, END)], + ['ผู้ส่งมอบ', `${P.ApS.th} (Project Manager)`], + ['ผู้รับมอบ', `${P.SeV.th} (Project Sponsor)`], + ['วันที่บันทึกส่งมอบ', thLong(ACCEPT_DATE)], + ]), + 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']), + '## ผลการตรวจสอบตามเกณฑ์การตรวจรับ', + table(['ลำดับ', 'เกณฑ์การตรวจรับ', 'หลักฐานอ้างอิง', 'ผลการตรวจสอบ'], [ + [1, 'ฟังก์ชันในขอบเขตทำงานตรงตาม Customer Requirements ครบทุกรายการ', 'Traceability Record, Test Report', 'ผ่าน'], + [2, 'ทดสอบระบบตาม Test Case ครบถ้วน', `Test Report 45 Test Case ผ่านทั้งหมด (${thRangeLong(TEST_FROM, TEST_TO)})`, 'ผ่าน'], + [3, 'ทดสอบการยอมรับโดยผู้ใช้ (UAT)', 'Validation Results 12 สถานการณ์ ผ่านทั้งหมด', 'ผ่าน'], + [4, 'ไม่มีข้อบกพร่องระดับวิกฤตคงค้าง', `Correction Register ${CORRECTIONS.length} รายการ แก้ไขและตรวจสอบครบ`, 'ผ่าน'], + [5, 'เอกสารคู่มือผู้ใช้ ผู้ดูแลระบบ และการบำรุงรักษาครบถ้วน', 'Software User Document, Product Operation Guide, Maintenance Document', 'ผ่าน'], + [6, 'Source Code และเอกสารจัดเก็บใน Repository พร้อมชุดสำรอง', 'Project Repository, Project Repository (Backup)', 'ผ่าน'], + [7, 'ผลการตรวจสอบ Work Products โดยผู้ตรวจสอบอิสระ', 'Verification Results รอบที่ 4', 'ผ่าน'], + ], ['c', '', '', 'c']), + '## สรุปผลการตรวจรับ', + table(['รายการ', 'ผลสรุป'], [ + ['จำนวนสิ่งส่งมอบทั้งหมด', `${WPS.length} รายการ`], + ['ตรวจรับแล้ว (Accepted)', `${WPS.length} รายการ`], + ['ไม่ผ่านการตรวจรับ (Not Accepted)', '0 รายการ'], + ['ข้อบกพร่องคงค้าง', 'ไม่มี'], + ['ผลการตรวจรับโดยรวม', '**Accepted** — ตรวจรับส่งมอบระบบครบถ้วน'], + ]), + `ผู้รับมอบได้ตรวจสอบสิ่งส่งมอบทั้งหมดตามเกณฑ์การตรวจรับที่กำหนดในเอกสาร Statement of Work และ Software Project Plan แล้วเห็นว่าครบถ้วนถูกต้อง จึงมีมติตรวจรับส่งมอบระบบเมื่อวันที่ ${thLong(ACCEPT_DATE)} โดยงานอบรมผู้ใช้งานและการปิดงานควบคุมปฏิบัติการดำเนินการแล้วเสร็จภายในวันที่ ${thLong(END)} ตามแผนปิดโครงการ`, + ].join('\n\n'), + secretary: P.ApS, reviewer: P.YaB, approver: P.SeV, + }), + }; +} + +/** 6. Change Report — one document per change request. */ +export function changeReports() { + return CHANGES.map((c) => ({ + dir: '1-PM Process (10 Work Product)/6.Change Report', + name: `${CODE} Change Report ${bud(c.date)} V1.0 ${c.requester.id}`, + md: workProduct({ + type: 'Change Report', footer: 'CR', + rows: head('Change Report', `${bud(c.date)} V1.0 ${c.requester.id}`, [ + ['Change ID', c.id, 'วันที่ร้องขอ', thLong(c.date)], + ['ผู้ร้องขอ (Requester)', `${c.requester.th} (${c.requester.role})`], + ['หน่วยงาน/ฝ่าย', c.unit], + ['ประเภทการเปลี่ยนแปลง', `☒ ${c.type} ☒ ${c.typeChecked} ☐ Schedule ☐ Cost ☐ Resource ☐ Other`], + ['ความเร่งด่วน (Priority)', `☐ High ☒ ${c.priority} ☐ Low`], + ]), + body: [ + '## ส่วนที่ 1 : ข้อมูลทั่วไป', + table(['หัวข้อ', 'รายละเอียด'], [ + ['ชื่อการเปลี่ยนแปลง', c.titleTh], + ['โครงการ', PROJECT_TH], + ['ระยะที่เกิดการเปลี่ยนแปลง', `ช่วงดำเนินโครงการ (${thLong(c.date)})`], + ['เอกสารที่เกี่ยวข้อง', 'Customer Requirements, Software Project Plan, Traceability Record'], + ]), + '## ส่วนที่ 2 : รายละเอียดการเปลี่ยนแปลง', + table(['ลำดับ', 'รายการ', 'รายละเอียด'], [ + [1, 'คำอธิบายการเปลี่ยนแปลงที่ต้องการ (Description)', c.description], + [2, 'เหตุผลของการเปลี่ยนแปลง (Justification)', c.justification], + ], ['c']), + '## ส่วนที่ 3 : การประเมินผลกระทบ (Impact Analysis)', + table(['ลำดับ', 'รายการ', 'รายละเอียด'], c.impact.map((r, i) => [i + 1, r[0], r[1]]), ['c']), + '## ส่วนที่ 4 : การพิจารณาอนุมัติ (Change Advisory Board Approval)', + table(['ลำดับ', 'ชื่อผู้พิจารณา', 'ตำแหน่ง', 'ความคิดเห็น / ลงนาม'], [ + [1, P.ApS.th, 'Project Manager', 'เห็นควรอนุมัติ ผลกระทบอยู่ในวิสัยที่ควบคุมได้'], + [2, P.NoC.th, 'System Analyst', 'สอดคล้องกับความต้องการและการออกแบบ'], + [3, P.PaNg.th, 'QA / Tester', 'ต้องทดสอบซ้ำในส่วนที่ได้รับผลกระทบ'], + [4, P.SeV.th, 'Project Sponsor', 'อนุมัติ'], + ], ['c']), + '## ส่วนที่ 5 : สรุปผลการพิจารณา', + table(['หัวข้อ', 'รายละเอียด'], [ + ['สถานะ', '☒ อนุมัติ (Approved) ☐ ไม่อนุมัติ (Rejected)'], + ['การอ้างอิงการดำเนินการ', `Commit \`${c.commit}\``], + ['ผลการดำเนินการ', c.result], + ]), + '## ภาคผนวก A : เกณฑ์การประเมินระดับความรุนแรงของการเปลี่ยนแปลง (Change Criteria)', + 'ตารางนี้ใช้เป็นแนวทางประเมินระดับความรุนแรง (Priority Level) ของการเปลี่ยนแปลง เพื่อให้คณะพิจารณา (Change Advisory Board – CAB) กำหนดระดับผลกระทบและความเร่งด่วนได้ชัดเจนตามมาตรฐาน ISO/IEC 29110', + table(['ระดับ (Level)', 'คำจำกัดความ (Definition)', 'ตัวอย่างสถานการณ์ (Examples)', 'ผลกระทบ (Impact Scope)'], [ + ['High', 'การเปลี่ยนแปลงที่มีผลกระทบอย่างมีนัยสำคัญต่อระบบหลัก งบประมาณ หรือแผนโครงการ ซึ่งต้องได้รับอนุมัติจาก Project Manager และ Project Sponsor', 'ปรับสถาปัตยกรรมหลักของระบบ / เพิ่มฟังก์ชันหลักใหม่ / ต้องปรับงบประมาณหรือระยะเวลาโครงการ', 'กระทบ Scope, Schedule และ Cost โดยตรง'], + ['Medium', 'การเปลี่ยนแปลงที่มีผลกระทบต่อส่วนติดต่อผู้ใช้งานหรือฟังก์ชันย่อยบางส่วน แต่ไม่กระทบโครงสร้างหลัก', 'ปรับปรุงหน้าจอ / ปรับข้อความหรือตรรกะบางส่วน / เพิ่มการตรวจสอบข้อมูล', 'กระทบ Quality หรือ Deliverables บางส่วน'], + ['Low', 'การเปลี่ยนแปลงขนาดเล็กที่ไม่ส่งผลต่อการทำงานหลักของระบบ', 'แก้ไขคำสะกดหรือข้อความแสดงผล / เปลี่ยนโลโก้หรือรูปภาพ / ปรับฟอนต์หรือสี', 'ผลกระทบเล็กน้อยต่อ Deliverables'], + ]), + '**แนวทางการใช้งาน**', + bullets([ + 'ผู้ร้องขอ (Requester) ระบุระดับความรุนแรงตามตารางนี้ในส่วน "ความเร่งด่วน (Priority)"', + 'คณะพิจารณา (CAB) ใช้ตารางนี้ประกอบการพิจารณาในส่วน "การประเมินผลกระทบ (Impact Analysis)"', + 'หากมีข้อสงสัยในระดับผลกระทบ ให้ใช้ระดับที่สูงกว่าเพื่อความปลอดภัยของโครงการ', + ]), + ].join('\n\n'), + secretary: c.requester, reviewer: P.ApS, approver: P.SeV, + }), + })); +} + +/** 7. Meeting Record — Minutes of Meeting per checkpoint. */ +export function meetingRecords() { + return MEETINGS.map((m) => { + const t = taskById(m.taskId); + const participants = TEAM.map((p) => [p.th, p.id, p.role, '✔']); + return { + dir: '1-PM Process (10 Work Product)/7.Meeting Record', + name: `${CODE} Minutes Of Meeting ${bud(m.date)} V1.0 YaB`, + md: workProduct({ + type: 'Minutes Of Meeting', footer: 'MoM', + rows: head('Minutes Of Meeting', `${bud(m.date)} V1.0 YaB`, [ + ['Phase', m.phase], + ['Task ID / Task Name', `${m.taskId} ${m.taskName}`], + ['Work Period of Task', thRangeLong(t[5], t[6])], + ['Meeting Date', thLong(m.date), 'Time', m.time], + ['สิ่งแนบ', m.attachment], + ['Location', `ห้องประชุม ${COMPANY_TH}`], + ['Organizer', ORGANIZER], + ['Recorder', RECORDER], + ['สำเนาถึง (CC)', `${P.SeV.th} (Project Sponsor)`], + ]), + body: [ + '## ผู้เข้าร่วมประชุม (Participants)', + table(['ชื่อ - สกุล', 'ชื่อย่อ', 'ตำแหน่ง/บทบาท', '(✔ เข้าร่วม / ✘ ไม่เข้าร่วม)'], participants, ['', 'c', '', 'c']), + '## ความคืบหน้ารวมของโครงการ (Project Progress)', + table(['หมวดงาน', 'สถานะ', 'ความคืบหน้า (%)', 'รายละเอียด'], m.progress, ['', 'c', 'r', '']), + '## หัวข้อการประชุม (Agenda)', + table(['ลำดับ', 'หัวข้อการประชุม', 'วัตถุประสงค์'], m.agenda.map((a, i) => [i + 1, a[0], a[1]]), ['c']), + '## สรุปรายงานการประชุม (Discussion Summary)', + table(['ลำดับ', 'ประเด็น', 'รายละเอียด / มติที่ได้', 'ผู้รับผิดชอบ', 'สถานะ'], m.discussion.map((d, i) => [i + 1, d[0], d[1], ids(d[2]), d[3]]), ['c', '', '', 'c', 'c']), + '## งานที่ต้องติดตาม (Action Item)', + table(['ลำดับ', 'งาน', 'ผู้รับผิดชอบ', 'วันครบกำหนด', 'สถานะ'], m.actions.map((a, i) => [i + 1, a[0], ids(a[1]), thLong(a[2]), a[3]]), ['c', '', 'c', 'c', 'c']), + '## งานประชุมครั้งถัดไป (Next Meeting)', + m.next + ? table(['หัวข้อการประชุมถัดไป', 'วันที่', 'ผู้จัดประชุม', 'วัตถุประสงค์'], [[m.next.topic, thLong(m.next.date), `${P.ApS.th} (${P.ApS.id})`, 'ติดตามความคืบหน้าและมติที่เกี่ยวข้อง']], ['', 'c', '', '']) + : table(['หัวข้อการประชุมถัดไป', 'วันที่', 'ผู้จัดประชุม', 'วัตถุประสงค์'], [['ไม่มีการประชุมถัดไป โครงการปิดอย่างเป็นทางการแล้ว', '-', '-', '-']], ['', 'c', '', '']), + ].join('\n\n'), + secretary: P.YaB, reviewer: P.ApS, approver: P.SeV, + }), + }; + }); +} + +/** 8. Software Configuration — controlled items and their versions. */ +export function softwareConfiguration() { + const date = '2026-08-17'; + return { + dir: '1-PM Process (10 Work Product)/8.Software Configuration', + name: `${CODE} Software Configuration ${bud(date)} V1.0 ThS`, + md: workProduct({ + type: 'Software Configuration', footer: 'SC', + rows: head('Software Configuration', `${bud(date)} V1.0 ThS`, [ + ['Title', 'บันทึกการกำหนดค่าและความเปลี่ยนแปลงต่าง ๆ ที่เกิดขึ้นของระบบ'], + ['ระยะเวลา', thRangeLong(START, END)], + ['Organizer', ORGANIZER_PM], + ['Recorder', RECORDER], + ]), + body: [ + '## รายการสิ่งส่งมอบ (Work Products)', + table(['No.', 'Work Product', 'Version'], [ + ['**เอกสารส่งมอบครั้งที่ 1 (วางแผนโครงการ)**', '', ''], + ['WP 1.0', `เอกสาร ${CODE} Software Project Plan (พร้อม Work Schedule)`, '1.0'], + ['WP 2.0', `เอกสาร ${CODE} Customer Requirements`, '1.0'], + ['**เอกสารส่งมอบครั้งที่ 2 (พัฒนาและทดสอบ)**', '', ''], + ['WP 3.0', `เอกสาร ${CODE} Software Requirements Specification`, '1.0'], + ['WP 4.0', `เอกสาร ${CODE} Software Design`, '1.0'], + ['WP 5.0', `เอกสาร ${CODE} Change Report (CH-001–CH-003)`, '1.0'], + ['WP 6.0', `เอกสาร ${CODE} Test Case and Test Procedures`, '1.0'], + ['WP 7.0', `เอกสาร ${CODE} Validation Results`, '1.0'], + ['WP 8.0', `เอกสาร ${CODE} Software User Document`, '1.0'], + ['WP 9.0', `ระบบ BRN WMS ที่ผ่านการทดสอบ (Git baseline \`${BASELINE_COMMIT}\`)`, '1.0'], + ['**เอกสารส่งมอบครั้งที่ 3 (ส่งมอบและปิดโครงการ)**', '', ''], + ['WP 10.0', `เอกสาร ${CODE} Product Operation Guide`, '1.0'], + ['WP 11.0', `เอกสาร ${CODE} Maintenance Document`, '1.0'], + ['—', `เอกสาร ${CODE} Acceptance Report`, '1.0'], + ], ['c']), + '## รายการ Configuration Item ของซอฟต์แวร์', + table(['ลำดับ', 'รายการ', 'ที่จัดเก็บ', 'การควบคุมเวอร์ชัน'], [ + [1, 'Source Code แอปพลิเคชัน PHP', '`app/`', `Git baseline \`${BASELINE_COMMIT}\` บน branch main`], + [2, 'บริการ Node.js (แจ้งเตือนและงานตามกำหนดเวลา)', '`nodejs/`', 'Git พร้อม package.json และ package-lock.json'], + [3, 'สคริปต์ติดตั้งฐานข้อมูล', '`setup.php`, `docker/mariadb/init-wms2.sql`', 'Git'], + [4, 'ชุดติดตั้ง Docker Compose', '`docker-compose.yml`, `docker/`, `.env.example`', 'Git (ไม่รวมค่าความลับ)'], + [5, 'ค่าตั้งค่าและความลับของสภาพแวดล้อม', '`.env`, `app/config.php` บนเครื่องที่ติดตั้ง', 'ไม่ควบคุมใน Git สร้างขึ้นตอนติดตั้งด้วย `docker/init-env.sh`'], + [6, 'เอกสาร Work Products', '`sdlc/`', 'Git (Markdown ต้นฉบับ)'], + [7, 'ชุดเอกสารส่งมอบ (PDF)', '`sdlc-delivery/`', 'Git สร้างจาก `sdlc/` ด้วย `scripts/build-sdlc-delivery.sh`'], + ], ['c']), + '## การควบคุมเวอร์ชันและการเข้าถึง', + table(['หัวข้อ', 'รายละเอียด'], [ + ['Repository หลัก (origin)', `\`${ORIGIN}\``], + ['Repository สำรอง (backup)', `\`${BACKUP}\``], + ['Branch หลัก', '`main` เป็น Baseline ที่ควบคุม'], + ['Baseline ของระบบที่ส่งมอบ', `Commit \`${BASELINE_COMMIT}\``], + ['Tag ของชุดเอกสารส่งมอบ', `\`${TAG}\``], + ['สิทธิ์การเข้าถึง', 'ยืนยันตัวตนด้วย SSH Key ตามบทบาทของสมาชิกโครงการ'], + ]), + '## การเชื่อมโยงกับการเปลี่ยนแปลง', + `การเปลี่ยนแปลง Configuration Item ต้องผ่าน Change Report (CH-001–CH-003) และการแก้ไขข้อบกพร่องต้องบันทึกใน Correction Register (${CORRECTIONS[0][0]}–${CORRECTIONS[CORRECTIONS.length - 1][0]}) โดยทุกรายการเชื่อมโยงกับ Commit ที่ตรวจสอบได้ใน Repository`, + ].join('\n\n'), + secretary: P.ThS, reviewer: P.ApS, approver: P.SeV, + }), + }; +} + +/** 9. Project Repository. */ +export function projectRepository() { + const date = '2026-08-17'; + return { + dir: '1-PM Process (10 Work Product)/9.Project Repository', + name: `${CODE} Project Repository ${bud(date)} V1.0 ThS`, + md: workProduct({ + type: 'Project Repository', footer: 'PjR', + rows: head('Project Repository', `${bud(date)} V1.0 ThS`, [ + ['Title', 'พื้นที่เก็บข้อมูล เอกสาร และหลักฐานทุกอย่างของโครงการ'], + ['ระยะเวลา', thRangeLong(START, END)], + ['Organizer', ORGANIZER_PM], + ['Recorder', RECORDER], + ]), + body: [ + '## ข้อมูล Repository', + table(['หัวข้อ', 'รายละเอียด'], [ + ['ประเภท', 'Git Server'], + ['Repository หลัก (origin)', `\`${ORIGIN}\``], + ['Branch หลัก', '`main`'], + ['Branch เอกสารส่งมอบ', '`sdlc`'], + ['Baseline ของระบบที่ส่งมอบ', `Commit \`${BASELINE_COMMIT}\``], + ['Tag ของชุดเอกสารส่งมอบ', `\`${TAG}\``], + ['สิทธิ์การเข้าถึง', 'ยืนยันตัวตนด้วย SSH Key ตามบทบาทของสมาชิกโครงการ'], + ]), + '## โครงสร้างการจัดเก็บ', + table(['ลำดับ', 'ส่วนงาน', 'ที่จัดเก็บ', 'เนื้อหา'], [ + [1, 'Source Code แอปพลิเคชัน', '`app/`', 'เข้าสู่ระบบ, คลังสินค้า, ขาย, จัดซื้อ, การเงิน, บัญชี, รายงาน, บาร์โค้ด'], + [2, 'บริการ Real-time และงานตามกำหนดเวลา', '`nodejs/`', 'Socket.IO และงานสรุปยอด/แจ้งเตือน'], + [3, 'การติดตั้งและตั้งค่า', '`docker/`, `docker-compose.yml`, `setup.php`, `.env.example`', 'ชุดติดตั้ง Container และสคริปต์สร้างฐานข้อมูล'], + [4, 'ข้อมูลสาธิต', '`demo_seed*.php`', 'ชุดข้อมูลตัวอย่างสำหรับตรวจรับและสาธิต'], + [5, 'เอกสาร Work Products', '`sdlc/`', 'เอกสาร ISO/IEC 29110 กระบวนการ PM และ SI'], + [6, 'ชุดเอกสารส่งมอบ', '`sdlc-delivery/`', 'ไฟล์ PDF ที่สร้างจาก `sdlc/`'], + [7, 'สคริปต์สนับสนุนโครงการ', '`scripts/`', 'สคริปต์สร้างและตรวจสอบชุดเอกสารส่งมอบ'], + ], ['c']), + '## การควบคุมการเข้าถึงและการจัดเก็บ', + bullets([ + 'สมาชิกโครงการทุกคนเข้าถึง Repository ได้ผ่าน Git Server ตามสิทธิ์ของบทบาท', + 'Project Manager และ System Analyst มีสิทธิ์อนุมัติการ Merge เข้าสู่ Branch หลัก', + 'ไฟล์ที่เกี่ยวข้องกับโครงการทั้งหมดต้องจัดเก็บใน Repository นี้', + 'ค่าตั้งค่าและความลับของสภาพแวดล้อมต้องไม่ถูกนำเข้า Repository', + ]), + '## หลักฐานการจัดเก็บ', + table(['ลำดับ', 'หลักฐาน', 'รายละเอียด'], [ + [1, 'โครงสร้าง Repository และประวัติการเปลี่ยนแปลง', 'ตรวจสอบได้จาก Git Server ตามสิทธิ์ที่ได้รับ'], + [2, 'Baseline ของระบบที่ส่งมอบ', `Commit \`${BASELINE_COMMIT}\` บน branch \`main\``], + [3, 'ชุดเอกสารส่งมอบที่ควบคุมแล้ว', `Branch \`sdlc\` และ Tag \`${TAG}\``], + ], ['c']), + ].join('\n\n'), + secretary: P.ThS, reviewer: P.ApS, approver: P.SeV, + }), + }; +} + +/** 10. Project Repository (Backup). */ +export function projectRepositoryBackup() { + const date = '2026-08-24'; + return { + dir: '1-PM Process (10 Work Product)/10.Project Repository (Backup)', + name: `${CODE} Project Repository Backup ${bud(date)} V1.0 ThS`, + md: workProduct({ + type: 'Project Repository (Backup)', footer: 'PjB', + rows: head('Project Repository (Backup)', `${bud(date)} V1.0 ThS`, [ + ['Title', 'พื้นที่สำรองสำหรับใช้กู้คืนข้อมูล Project Repository ในกรณีที่เกิดการสูญหาย'], + ['ระยะเวลา', thRangeLong(START, END)], + ['Organizer', ORGANIZER_PM], + ['Recorder', RECORDER], + ]), + body: [ + '## การสำรอง Source Code และเอกสาร', + table(['หัวข้อ', 'รายละเอียด'], [ + ['วิธีการสำรอง', 'Git Remote สำรอง (Secondary Remote)'], + ['ชื่อ Remote สำรอง', '`backup`'], + ['ที่อยู่ Remote สำรอง', `\`${BACKUP}\``], + ['ขอบเขตการสำรอง', `Branch \`main\` (Baseline \`${BASELINE_COMMIT}\`), Branch \`sdlc\` และ Tag \`${TAG}\``], + ['รอบการสำรอง', 'ซิงก์ทุกครั้งที่มีการส่งมอบหรือปรับปรุง Baseline'], + ['ผู้รับผิดชอบ', `${P.ThS.th} (Developer)`], + ]), + '## การสำรองฐานข้อมูล', + table(['หัวข้อ', 'รายละเอียด'], [ + ['วิธีการสำรอง', 'Export ฐานข้อมูล `wms` และ `wms2` อัตโนมัติ'], + ['รอบการสำรอง', 'ทุกวัน เวลา 02:00 น. (Asia/Bangkok)'], + ['ที่จัดเก็บ', 'พื้นที่จัดเก็บบนคลาวด์ที่บริษัทควบคุม'], + ['ระยะเวลาเก็บรักษา', 'ชุดสำรองรายวันเก็บ 30 วัน และชุดสิ้นเดือนเก็บ 12 เดือน'], + ['สิทธิ์การเข้าถึง', 'จำกัดเฉพาะผู้ดูแลระบบและผู้บริหารที่ได้รับมอบหมาย'], + ]), + '## รายการตรวจสอบการสำรองข้อมูล', + table(['ลำดับ', 'รายการตรวจสอบ', 'ผู้รับผิดชอบ', 'วันที่ดำเนินการ', 'ผลการตรวจสอบ'], [ + ['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), 'ผ่าน'], + ], ['c', '', 'c', 'c', 'c']), + '## ขั้นตอนการกู้คืน', + table(['ลำดับ', 'ขั้นตอน', 'รายละเอียด'], [ + [1, 'ยืนยันขอบเขตความเสียหาย', 'ตรวจสอบว่าข้อมูลที่สูญหายเป็น Source Code เอกสาร หรือฐานข้อมูล'], + [2, 'เลือกชุดสำรองที่จะใช้', 'เลือกชุดสำรองล่าสุดที่ผ่านการตรวจสอบและยืนยันวันที่'], + [3, 'กู้คืนสู่สภาพแวดล้อมทดสอบก่อน', 'Clone จาก Remote สำรอง หรือ Restore ฐานข้อมูลสู่เครื่องทดสอบ'], + [4, 'ตรวจสอบความถูกต้อง', 'ตรวจสอบ Baseline, Tag และข้อมูลตัวอย่างว่าครบถ้วน'], + [5, 'กู้คืนสู่สภาพแวดล้อมใช้งานจริง', 'บันทึกจุดกู้คืน หยุดบริการที่เกี่ยวข้อง กู้คืน แล้วตรวจสอบสถานะระบบตามคู่มือผู้ดูแลระบบ'], + ], ['c']), + ].join('\n\n'), + secretary: P.ThS, reviewer: P.ApS, approver: P.SeV, + }), + }; +} diff --git a/scripts/sdlc-seed/docs-si.mjs b/scripts/sdlc-seed/docs-si.mjs new file mode 100644 index 0000000..103c735 --- /dev/null +++ b/scripts/sdlc-seed/docs-si.mjs @@ -0,0 +1,375 @@ +// 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 { SR_GROUPS, SRS, srTopic, UNIT_GROUPS, UNITS, unitTopic, unitModule, TEST_CASES, traceOf } from './engineering.mjs'; +import { CORRECTIONS } from './history.mjs'; +import { bud, thLong, thShort, thRangeLong, table, bullets, numbered } from './lib.mjs'; +import { workProduct, head } from './format.mjs'; + +const D = '2026-08-17'; + +/** 11. Software Requirements Specification. */ +export function softwareRequirements() { + const date = '2026-02-25'; + const rows = []; + for (const [gid, gname, items] of SR_GROUPS) { + rows.push([`${gid}: ${gname}`, '', '', '']); + for (const [id, text, refs] of items) rows.push([id, text, 'A', refs]); + } + return { + dir: '2-SI Process (12 Work Product)/11.Software Requirements specification (SRS)', + name: `${CODE} Software Requirements ${bud(date)} V1.0 NoC`, + md: workProduct({ + type: 'Software Requirements', footer: 'SRS', + rows: head('Software Requirements', `${bud(date)} V1.0 NoC`, [ + ['Title', 'เอกสารบันทึกและสรุปความต้องการซอฟต์แวร์ (Software Requirements Specification)'], + ['Project Period', thRangeLong(START, END)], + ['Organizer', ORGANIZER], + ['Recorder', RECORDER], + ]), + body: [ + '## วัตถุประสงค์ (Objectives)', + 'เพื่อแปลงความต้องการของลูกค้าที่ได้รับอนุมัติแล้วให้เป็นความต้องการเชิงเทคนิคของซอฟต์แวร์ ครอบคลุมมาตรฐาน โครงสร้าง ส่วนประกอบ ความสัมพันธ์ ประสิทธิภาพ ส่วนเชื่อมต่อ ความปลอดภัย ฐานข้อมูล และการจัดการข้อผิดพลาด เพื่อใช้เป็นเอกสารอ้างอิงหลักในการออกแบบระบบ พัฒนา และทดสอบ', + '## ผู้มีส่วนได้ส่วนเสีย (Stakeholders)', + table(['ลำดับ', 'ชื่อ', 'หน่วยงาน/ตำแหน่ง', 'บทบาท'], [ + [1, P.SeV.th, 'ผู้บริหาร (CEO)', 'Project Sponsor อนุมัติความต้องการ'], + [2, P.ApS.th, 'ผู้จัดการโครงการ', 'บริหารจัดการโครงการ'], + [3, P.NoC.th, 'นักวิเคราะห์ระบบ', 'จัดทำและควบคุมความต้องการซอฟต์แวร์'], + [4, P.ThS.th, 'นักพัฒนาระบบ', 'พัฒนาระบบตามความต้องการ'], + [5, P.PaNg.th, 'ผู้ทดสอบระบบ', 'จัดทำ Test Case จากความต้องการ'], + ], ['c']), + '## ความต้องการซอฟต์แวร์ (Software Requirements)', + table(['ID', 'Topic', 'Result*', 'Remark'], rows, ['', '', 'c', '']), + '## Remark', + bullets([ + '\\* Result : A = Accepted, U = Unaccepted, N/A = Not Applicable', + 'ช่อง Remark แสดงรหัสความต้องการของลูกค้า (Customer Requirements) ที่เป็นที่มาของความต้องการซอฟต์แวร์แต่ละรายการ', + 'ความต้องการซอฟต์แวร์ที่ไม่มีที่มาจากความต้องการของลูกค้าต้องผ่าน Change Report ก่อนถือเป็นข้อผูกพัน', + ]), + ].join('\n\n'), + secretary: P.NoC, reviewer: P.YaB, approver: P.SeV, + }), + }; +} + +/** 12. Software Design — high level design, software baseline, and software units. */ +export function softwareDesign() { + const date = '2026-03-06'; + const unitRows = []; + for (const [mid, mname, items] of UNIT_GROUPS) { + unitRows.push([`${mid} — ${mname}`, '', '', '', '']); + for (const [id, desc, detail, refs, files] of items) unitRows.push([id, desc, detail, refs, files]); + } + return { + dir: '2-SI Process (12 Work Product)/12.Software design', + name: `${CODE} Software Design ${bud(date)} V1.0 NoC`, + md: workProduct({ + type: 'Software Design', footer: 'SD', + rows: head('Software Design', `${bud(date)} V1.0 NoC`, [ + ['Title', 'เอกสารการออกแบบระบบ (System Design Document)'], + ['Project Period', thRangeLong(START, END)], + ['Organizer', ORGANIZER], + ['Recorder', RECORDER], + ]), + body: [ + '## HIGH LEVEL DESIGN', + '### Use Case Diagram', + 'ผู้ใช้งานของระบบและกลุ่มการใช้งานหลัก', + table(['Actor', 'คำอธิบาย', 'การใช้งานหลัก'], [ + ['Owner', 'เจ้าของบริษัท สิทธิ์สูงสุดภายในบริษัท', 'ตั้งค่าบริษัท จัดการผู้ใช้ และใช้งานทุกโมดูล'], + ['Admin', 'ผู้ดูแลระบบภายในบริษัท', 'จัดการข้อมูลหลัก ผู้ใช้ สิทธิ์ และใช้งานทุกโมดูลปฏิบัติการ'], + ['Staff', 'ผู้ปฏิบัติงาน', 'บันทึกรายการคลังสินค้า ขาย จัดซื้อ และการเงินตามสิทธิ์'], + ['Viewer', 'ผู้ใช้แบบอ่านอย่างเดียว', 'ดูหน้าจอและรายงานที่ได้รับสิทธิ์'], + ['System Scheduler', 'ผู้กระทำอัตโนมัติ (Node.js)', 'สรุปยอดสต๊อก/GL และแจ้งเตือนตามกำหนดเวลา'], + ['SMTP Service', 'ผู้กระทำภายนอก', 'ส่งอีเมล Onboarding กู้คืนรหัสผ่าน และแจ้งเตือน'], + ]), + '### Component Diagram', + 'โครงสร้างส่วนประกอบของระบบแบ่งตามชั้นการทำงาน', + table(['ชั้น (Layer)', 'ส่วนประกอบ', 'อ้างอิง SR'], [ + ['Presentation', 'หน้าจอ PHP ในแต่ละโมดูล (`app//`), JavaScript และ CSS ที่รองรับ Responsive', 'SR02:002, SR06:002, SR06:003'], + ['Business Logic', 'Manager/Service Classes ใน `app/assets/utils/classes/` เรียกใช้จาก Page Controller', 'SR02:003, SR03:001–SR03:011'], + ['Data Access', 'Manager Classes เข้าถึงฐานข้อมูล MariaDB โดยตรง พร้อม Trait รวมตรรกะที่ใช้ร่วมกัน', 'SR02:004, SR06:001, SR08:001–SR08:005'], + ['Real-time / Scheduler', 'บริการ Node.js (`server.js`, `scheduler.js`) ควบคุมด้วย pm2', 'SR03:011, SR06:004, SR06:005'], + ['External', 'บริการ SMTP สำหรับส่งอีเมล และ Socket.IO Client บน Browser', 'SR06:004, SR06:005'], + ]), + '### Deployment Diagram', + 'การติดตั้งระบบแบ่งเป็น 4 ชั้นบริการ', + table(['ชั้นการติดตั้ง (Tier)', 'ส่วนประกอบ', 'อ้างอิง SR'], [ + ['Client', 'Web Browser (Chrome/Edge/Firefox) บน Desktop, Tablet และ Mobile พร้อม Socket.IO Client', 'SR06:002, SR06:003, SR06:005'], + ['Web Tier', 'PHP 8 บน Apache ติดตั้งแบบ Manual หรือ Container `docker/php`', 'SR01:003, SR02:005'], + ['Data Tier', 'MariaDB ฐานข้อมูล `wms` (ผู้ใช้/บริษัท) และ `wms2` (คลัง/บัญชี)', 'SR06:001, SR08:001–SR08:004'], + ['Service Tier', 'Node.js `server.js` และ `scheduler.js` ควบคุมด้วย pm2', 'SR03:011, SR06:004'], + ]), + '### User Interface Design', + 'ผังหน้าจอหลักของระบบแบ่งตามโมดูลการใช้งาน', + table(['กลุ่มหน้าจอ', 'หน้าจอ'], [ + ['Login & Onboarding', 'เข้าสู่ระบบ / ลงทะเบียนบริษัท / รับคำเชิญเข้าร่วมบริษัท / ลืมรหัสผ่าน / ยืนยัน OTP'], + ['Dashboard', 'แดชบอร์ดคลังสินค้า / แดชบอร์ดบัญชีและการเงิน'], + ['Master Data', 'คลังสินค้า / พื้นที่จัดเก็บ / ช่องจัดเก็บ / หมวดสินค้า / สินค้า / ประเภทผู้ติดต่อ / ผู้ติดต่อ'], + ['Inventory Control', 'รับสินค้าเข้า / จ่ายสินค้าออก / โอนย้ายสินค้า / ยอดคงเหลือ / Lot & Serial / พิมพ์บาร์โค้ด'], + ['Sales', 'ใบเสนอราคา / ใบสั่งขาย / ใบแจ้งหนี้ / ใบรับคืนและใบลดหนี้'], + ['Purchasing', 'ใบขอซื้อ / ใบสั่งซื้อ / ใบแจ้งหนี้ซื้อ / ใบคืนสินค้าผู้ขาย'], + ['Finance', 'ใบวางบิลรับ / ใบเสร็จรับเงิน / ใบวางบิลจ่าย / ใบสำคัญจ่าย'], + ['Accounting', 'ผังบัญชี / แผนก / สูตรบัญชี / สมุดรายวัน / บัญชีแยกประเภท'], + ['Reports', 'รายงานสต๊อก / ความเคลื่อนไหว / ความจุคลัง / สินค้าใกล้หมด / สินค้าหมดอายุ / รายงานการเงิน'], + ['Settings', 'ข้อมูลบริษัท / SMTP / ผู้ใช้งานและสิทธิ์ / การตั้งค่าระบบ'], + ]), + '## Software Baseline', + 'หัวข้อนี้ระบุสิ่งที่ถูกกำหนดเป็น Baseline ของซอฟต์แวร์ วันที่กำหนด และผู้อนุมัติ เพื่อให้ตรวจสอบเส้นทาง Baseline → Configuration → Change ได้ในเอกสารชุดเดียวกัน', + table(['รายการที่กำหนดเป็น Baseline', 'ค่าที่ควบคุม', 'ที่จัดเก็บ'], [ + ['Source Code ของแอปพลิเคชัน', `Git commit \`${BASELINE_COMMIT}\` บน branch \`main\``, `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}\``], + ]), + table(['หัวข้อ', 'รายละเอียด'], [ + ['วันที่กำหนด Baseline', `${thLong('2026-08-17')} (Baseline ของระบบที่ส่งมอบ)`], + ['ผู้จัดทำ Baseline', `${P.ThS.th} (Developer)`], + ['ผู้ตรวจสอบ', `${P.NoC.th} (System Analyst) และ ${P.PaNg.th} (QA/Tester)`], + ['ผู้อนุมัติ', `${P.SeV.th} (Project Sponsor) พร้อมการตรวจรับเมื่อ ${thLong(ACCEPT_DATE)}`], + ['เอกสารควบคุมที่เกี่ยวข้อง', 'Software Configuration (WP 8) ระบุรายการ Configuration Item และการควบคุมเวอร์ชัน'], + ['การสอบกลับ', 'Traceability Record (WP 13) เชื่อมโยงความต้องการกับ Software Unit และ Test Case บน Baseline นี้'], + ['การเปลี่ยนแปลง Baseline', 'ต้องผ่าน Change Report (CH-001–CH-003) และบันทึกผลใน Correction Register เมื่อเป็นการแก้ไขข้อบกพร่อง'], + ]), + '## Software Unit', + table(['ID', 'Description', 'Functional Interfaces Detail', 'References', 'Files'], unitRows), + ].join('\n\n'), + secretary: P.NoC, reviewer: P.YaB, approver: P.SeV, + }), + }; +} + +/** 13. Traceability Record. */ +export function traceabilityRecord() { + const date = '2026-03-06'; + const rows = []; + let group = ''; + for (const [id, text, remark] of CRS) { + const g = id.slice(0, 4); + 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]); + } + return { + dir: '2-SI Process (12 Work Product)/13.Traceability record', + name: `${CODE} Traceability Record ${bud(date)} V1.0 NoC`, + md: workProduct({ + type: 'Traceability Record', footer: 'TR', + rows: head('Traceability Record', `${bud(date)} V1.0 NoC`, [ + ['Title', 'เอกสารบันทึกการสอบกลับได้ของระบบ (Traceability Matrix)'], + ['Project Period', thRangeLong(START, END)], + ['Organizer', ORGANIZER], + ['Recorder', RECORDER], + ]), + body: [ + '## วัตถุประสงค์ (Objective)', + 'เอกสารที่เชื่อมโยงทุกขั้นตอนของโครงการ ตั้งแต่ความต้องการของลูกค้า → ความต้องการซอฟต์แวร์ → การออกแบบ → การทดสอบ เพื่อยืนยันความครบถ้วนของ Customer Requirements และลดความเสี่ยงของข้อบกพร่องและความต้องการที่ตกหล่น', + '## Traceability Matrix', + table(['CR ID', 'CR Topic', 'SRS ID', 'SRS Topic', 'Unit ID', 'Unit Topic', 'Test Case ID'], rows), + '## สรุปความครอบคลุม', + table(['รายการ', 'จำนวน'], [ + ['ความต้องการของลูกค้าทั้งหมด (CR01–CR14)', CRS.length], + ['เชื่อมโยงกับความต้องการซอฟต์แวร์ (SRS)', CRS.length], + ['เชื่อมโยงกับ Software Unit', CRS.length], + ['เชื่อมโยงกับ 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)}`, + ].join('\n\n'), + secretary: P.NoC, reviewer: P.YaB, approver: P.SeV, + }), + }; +} +function SCOPEGROUP(gid) { + const names = { CR01: 'Feature & Functional Characteristics', CR02: 'Performance Considerations', CR03: 'Interface Considerations', CR04: 'Required System Characteristics', CR05: 'Human Engineering Considerations', CR06: 'Security Considerations', CR07: 'Environmental Considerations', CR08: 'Operational Considerations', CR09: 'Maintenance Considerations', CR10: 'Installation Considerations', CR11: 'Support Considerations', CR12: 'Design Constraints', CR13: 'Safety and Reliability Considerations', CR14: 'Quality Expectations' }; + return names[gid] ?? ''; +} + +/** 14. Software Components. */ +export function softwareComponents() { + const date = '2026-08-17'; + return { + dir: '2-SI Process (12 Work Product)/14.Software Components', + name: `${CODE} Software Components ${bud(date)} V1.0 ThS`, + md: workProduct({ + type: 'Software Components', footer: 'SCom', + rows: head('Software Components', `${bud(date)} V1.0 ThS`, [ + ['Title', 'เอกสารแสดงส่วนประกอบต่าง ๆ ของโปรแกรมแต่ละเวอร์ชัน (Compiled Program, Source Code, Database)'], + ['Project Period', thRangeLong(START, END)], + ['Organizer', ORGANIZER_PM], + ['Recorder', RECORDER], + ]), + body: [ + '## ส่วนประกอบของซอฟต์แวร์ที่ส่งมอบ', + table(['ลำดับ', 'ประเภทส่วนประกอบ', 'รายการ', 'ที่จัดเก็บ', 'เวอร์ชัน / Baseline'], [ + [1, 'Source Code (PHP)', 'แอปพลิเคชันหลักและ Manager Classes ทั้งหมด', '`app/`', `\`${BASELINE_COMMIT}\``], + [2, 'Source Code (Node.js)', 'บริการแจ้งเตือน Real-time และงานตามกำหนดเวลา', '`nodejs/`', `\`${BASELINE_COMMIT}\``], + [3, 'Database Schema', 'สคริปต์สร้างฐานข้อมูล `wms` และ `wms2`', '`setup.php`, `docker/mariadb/init-wms2.sql`', `\`${BASELINE_COMMIT}\``], + [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}\``], + ], ['c']), + '## รายการ Software Unit ที่พัฒนาแล้ว', + table(['Module', 'Unit ID', 'Description', 'สถานะ'], + UNITS.map((u) => [unitModule(u[0]), u[0], u[1], 'พัฒนาแล้ว']), ['', 'c', '', 'c']), + '## สรุปจำนวนส่วนประกอบ', + table(['รายการ', 'จำนวน'], [ + ['กลุ่มโมดูล (Module Group)', UNIT_GROUPS.length], + ['Software Unit', UNITS.length], + ['ฐานข้อมูลที่ใช้', 2], + ['บริการที่ทำงานเบื้องหลัง (Node.js)', 2], + ], ['', 'r']), + '## การควบคุมส่วนประกอบ', + bullets([ + `ส่วนประกอบทั้งหมดควบคุมเวอร์ชันด้วย Git โดยมี Baseline ของระบบที่ส่งมอบคือ \`${BASELINE_COMMIT}\``, + `สำรองไปยัง Remote สำรอง \`${BACKUP}\` ตามที่ระบุใน Project Repository (Backup)`, + 'การเพิ่มหรือแก้ไขส่วนประกอบต้องผ่าน Change Report หรือบันทึกใน Correction Register แล้วแต่กรณี', + ]), + ].join('\n\n'), + secretary: P.ThS, reviewer: P.NoC, approver: P.SeV, + }), + }; +} + +/** 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)]); + 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`, + md: workProduct({ + type: 'Test Case and Test Procedures', footer: 'Test-Case', + rows: head('Test Case and Test Procedures', `${bud(date)} V1.0 PaNg`, [ + ['Title', 'เอกสารแสดงตัวอย่างชุดข้อมูลที่ใช้ทดสอบ'], + ['Project Period', thRangeLong(START, END)], + ['Organizer', ORGANIZER], + ['Recorder', RECORDER], + ['Responsible', `${P.PaNg.th} (QA/Tester)`], + ]), + body: [ + '## วัตถุประสงค์ (Objective)', + 'เพื่อกำหนด Test Case ที่ใช้ตรวจสอบการทำงานของระบบ (Verification & Validation) และยืนยันว่าฟังก์ชันที่พัฒนามีความถูกต้องตรงตาม Customer Requirements (CR) และ Software Requirements (SR)', + '## สภาพแวดล้อมการทดสอบ', + table(['กิจกรรม', 'สภาพแวดล้อม', 'ผู้รับผิดชอบ'], [ + ['ทดสอบระบบตาม 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}\``, + '## ตาราง 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'], + ], ['c']), + ].join('\n\n'), + secretary: P.PaNg, reviewer: P.NoC, approver: P.SeV, + }), + }; +} + +/** 16. Test Report. */ +export function testReport() { + const date = '2026-08-14'; + const rows = CRS.map(([id, text], i) => { + const t = traceOf(id); + return [i + 1, t.tc, `ตรวจสอบ${unitTopic(t.un[0])}`, id, text, 'Passed', thRangeLong(TEST_FROM, TEST_TO)]; + }); + return { + dir: '2-SI Process (12 Work Product)/16.Test Report', + name: `${CODE} Test Report ${bud(date)} V1.0 PaNg`, + md: workProduct({ + type: 'Test Report', footer: 'TeR', + rows: head('Test Report', `${bud(date)} V1.0 PaNg`, [ + ['Title', 'บันทึกผลการทดสอบระบบ'], + ['Project Period', thRangeLong(START, END)], + ['Organizer', ORGANIZER], + ['Recorder', RECORDER], + ['Responsible', `${P.PaNg.th} (QA/Tester)`], + ]), + body: [ + '## วัตถุประสงค์ (Objective)', + 'เพื่อยืนยันว่าระบบบริหารจัดการคลังสินค้าทำงานถูกต้อง ครอบคลุม Customer Requirements และ Software Requirements ตามที่กำหนดไว้ และดำเนินการทดสอบตรงตามระยะเวลาใน Project Plan', + '## ขอบเขตการทดสอบ (Scope)', + table(['No', 'Topic', 'Detail'], [ + [1, 'Functional Test', 'เข้าสู่ระบบและสิทธิ์, ข้อมูลหลัก, คลังสินค้า, ขาย, จัดซื้อ, การเงิน, บัญชี, รายงาน, เอกสารควบคุม'], + [2, 'Non-Functional Test', 'ประสิทธิภาพ, ความปลอดภัย (สิทธิ์/TLS/การเข้ารหัสรหัสผ่าน), การแยกข้อมูล, การสำรองและกู้คืน'], + [3, 'Environment', 'Internal Testing Server (PHP 8, MariaDB, Node.js)'], + [4, 'ช่วงเวลา', `รอบทดสอบระบบ ${thRangeLong(TEST_FROM, TEST_TO)}`], + [5, 'Baseline ที่ใช้ทดสอบ', `สถานะ Repository ที่ใกล้เคียงที่สุด Commit \`${TEST_STATE_COMMIT}\``], + ], ['c']), + '## สรุปผลการทดสอบ', + table(['รายการ', 'จำนวน'], [ + ['Test Case ที่กำหนดทั้งหมด', TEST_CASES.length], + ['ดำเนินการทดสอบ', TEST_CASES.length], + ['ผ่าน (Passed)', TEST_CASES.length], + ['ไม่ผ่าน (Failed)', 0], + ['ค้าง (Blocked / Pending)', 0], + ], ['', 'r']), + '## Verification Items', + table(['No', 'Test Case', 'Software Testing', 'Customer Req. ID', 'Customer Req. Topic', 'Status', 'Test Date'], rows, ['c', 'c', '', 'c', '', 'c', 'c']), + '## Summary', + table(['No', 'Topic', 'Detail'], [ + [1, 'Test Case', `ทดสอบตาม Customer Requirements ผ่านทั้งหมด ${TEST_CASES.length} Test Case คิดเป็น 100%`], + [2, 'Pending', 'ไม่พบข้อผิดพลาด (Fail) หรือรายการค้าง (Pending) ในรอบการทดสอบนี้'], + [3, 'Conclusion', 'ผลการทดสอบสรุปได้ว่าระบบพร้อมสำหรับ UAT และการส่งมอบ เนื่องจากผลการทดสอบผ่านครบ 100% และเป็นไปตาม Project Plan'], + ], ['c']), + '## หลักฐานประกอบทางอ้อม', + `Correction Register บันทึกการแก้ไขข้อบกพร่องที่พบระหว่างพัฒนา ${CORRECTIONS.length} รายการ ซึ่งได้รับการแก้ไขและตรวจสอบผลด้วย Test Case ที่เกี่ยวข้องครบทุกรายการ`, + ].join('\n\n'), + secretary: P.PaNg, reviewer: P.NoC, approver: P.SeV, + }), + }; +} + +/** 17. Software — the delivered system record. */ +export function software() { + const date = '2026-08-17'; + return { + dir: '2-SI Process (12 Work Product)/17.Software', + name: `${CODE} Software ${bud(date)} V1.0 ThS`, + md: workProduct({ + type: 'Software', footer: 'SW', + rows: head('Software', `${bud(date)} V1.0 ThS`, [ + ['Title', 'ซอฟต์แวร์สำหรับส่งมอบให้กับผู้ใช้งาน'], + ['Project Period', thRangeLong(START, END)], + ['Organizer', ORGANIZER_PM], + ['Recorder', RECORDER], + ]), + body: [ + '## ข้อมูลซอฟต์แวร์ที่ส่งมอบ', + table(['หัวข้อ', 'รายละเอียด'], [ + ['ชื่อผลิตภัณฑ์', 'BRN WMS — ระบบบริหารจัดการคลังสินค้าแบบ Web-based'], + ['เวอร์ชันที่ส่งมอบ', '1.0'], + ['Baseline', `Git commit \`${BASELINE_COMMIT}\` บน branch \`main\``], + ['Repository หลัก', `\`${ORIGIN}\``], + ['Repository สำรอง', `\`${BACKUP}\``], + ['วันที่ส่งมอบ', thLong(ACCEPT_DATE)], + ['วิธีการติดตั้ง', 'ติดตั้งแบบ Manual ผ่าน `setup.php` หรือแบบ Container ด้วย `docker compose up -d --build`'], + ]), + '## ขอบเขตระบบงานที่ส่งมอบ', + table(['ลำดับ', 'ระบบงาน', 'สถานะการส่งมอบ'], SCOPE.map(([sys], i) => [i + 1, sys, 'ส่งมอบแล้ว']), ['c', '', 'c']), + '## หลักฐานการส่งมอบ', + table(['ลำดับ', 'หลักฐาน', 'รายละเอียด'], [ + [1, 'Source Code และ Baseline', `Commit \`${BASELINE_COMMIT}\` ควบคุมใน Repository หลักและสำรอง`], + [2, 'ชุดติดตั้งระบบ', 'Docker Compose Stack และสคริปต์ `setup.php` สำหรับสร้างฐานข้อมูล'], + [3, 'ผลการทดสอบระบบ', `Test Report ${TEST_CASES.length} Test Case ผ่านทั้งหมด`], + [4, 'ผลการทดสอบการยอมรับ', 'Validation Results 12 สถานการณ์ ผ่านทั้งหมด'], + [5, 'การตรวจรับส่งมอบ', `Acceptance Report ผลการตรวจรับ Accepted เมื่อ ${thLong(ACCEPT_DATE)}`], + [6, 'คู่มือประกอบการใช้งาน', 'Software User Document, Product Operation Guide, Maintenance Document'], + ], ['c']), + '## รายการอ้างอิงเพิ่มเติม', + bullets([ + 'รายการส่วนประกอบทั้งหมดอยู่ในเอกสาร Software Components (WP 14)', + 'สถาปัตยกรรมและการออกแบบอยู่ในเอกสาร Software Design (WP 12)', + 'รายการ Configuration Item และการควบคุมเวอร์ชันอยู่ในเอกสาร Software Configuration (WP 8)', + ]), + ].join('\n\n'), + secretary: P.ThS, reviewer: P.NoC, approver: P.SeV, + }), + }; +} diff --git a/scripts/sdlc-seed/docs-si2.mjs b/scripts/sdlc-seed/docs-si2.mjs new file mode 100644 index 0000000..b142bb9 --- /dev/null +++ b/scripts/sdlc-seed/docs-si2.mjs @@ -0,0 +1,444 @@ +// SI work products 18–22: user documentation, operation guide, maintenance, verification, validation. +import { P, CODE, ORGANIZER, ORGANIZER_PM, RECORDER, START, END, SCOPE, CRS, TEST_FROM, TEST_TO, ACCEPT_DATE, BASELINE_COMMIT, TEST_STATE_COMMIT, ORIGIN, BACKUP, OPS_CLOSE_DATE } from './project.mjs'; +import { UNITS, TEST_CASES, traceOf, unitTopic } from './engineering.mjs'; +import { CORRECTIONS, CHANGES } from './history.mjs'; +import { bud, thLong, thRangeLong, table, bullets, numbered } from './lib.mjs'; +import { workProduct, head } from './format.mjs'; + +/** 18. Software User Document. */ +export function userDocumentation() { + const date = '2026-08-14'; + return { + dir: '2-SI Process (12 Work Product)/18.Software User Documentation', + name: `${CODE} Software User Document ${bud(date)} V1.0 ThS`, + md: workProduct({ + type: 'Software User Document', footer: 'SuD', + rows: head('Software User Document', `${bud(date)} V1.0 ThS`, [ + ['Title', 'เอกสารคู่มือการใช้งานสำหรับผู้ใช้'], + ['Project Period', thRangeLong(START, END)], + ['Organizer', ORGANIZER], + ['Recorder', RECORDER], + ]), + body: [ + '## วัตถุประสงค์ (Objective)', + 'คู่มือฉบับนี้จัดทำขึ้นเพื่อเป็นแนวทางสำหรับผู้ใช้งานระบบบริหารจัดการคลังสินค้า ครอบคลุมการเข้าสู่ระบบ การตั้งค่าข้อมูลหลัก การบันทึกรายการคลังสินค้า งานขาย งานจัดซื้อ งานการเงินและบัญชี การเรียกดูรายงาน และการรับการแจ้งเตือน', + '## 1 การเข้าสู่ระบบ (System Access)', + table(['ลำดับ', 'รายละเอียด'], [ + [1, 'เข้าใช้งานผ่าน Web Browser มาตรฐาน (Chrome, Edge, Firefox) ตาม URL ที่ผู้ดูแลระบบกำหนด'], + [2, 'ผู้ใช้งานใหม่ที่เป็นเจ้าของบริษัทให้เลือก "ลงทะเบียนบริษัท" และยืนยันอีเมลเพื่อเปิดใช้งาน'], + [3, 'ผู้ใช้งานที่ได้รับคำเชิญให้กดลิงก์ในอีเมลเชิญ แล้วตั้งรหัสผ่านเพื่อเข้าร่วมบริษัท'], + [4, 'กรณีลืมรหัสผ่าน ให้เลือก "ลืมรหัสผ่าน" ระบบจะส่งลิงก์และรหัส OTP ไปยังอีเมลที่ลงทะเบียนไว้'], + [5, 'ระบบอนุญาตให้ใช้งานได้ครั้งละหนึ่ง Session ต่อบัญชี หากเข้าสู่ระบบจากอุปกรณ์ใหม่ระบบจะปฏิเสธการเข้าใช้งานซ้ำ'], + [6, 'หน้าจอรองรับการใช้งานบนคอมพิวเตอร์ แท็บเล็ต และโทรศัพท์มือถือ'], + ], ['c']), + '## 2 บทบาทและสิทธิ์การใช้งาน (Roles)', + table(['บทบาท', 'สิทธิ์การใช้งาน'], [ + ['Owner', 'เจ้าของบริษัท ใช้งานได้ทุกเมนู รวมถึงการตั้งค่าบริษัทและการจัดการผู้ใช้'], + ['Admin', 'จัดการข้อมูลหลัก ผู้ใช้งาน สิทธิ์การเข้าถึง และใช้งานทุกโมดูลปฏิบัติการ'], + ['Staff', 'บันทึกรายการคลังสินค้า ขาย จัดซื้อ และการเงิน ตามสิทธิ์ที่ได้รับ'], + ['Viewer', 'ดูหน้าจอและรายงานที่ได้รับสิทธิ์ แต่ไม่สามารถสร้างหรือแก้ไขรายการได้'], + ]), + 'เมนูและปุ่มคำสั่งที่แสดงจะเปลี่ยนตามบทบาทและสิทธิ์การเข้าถึงที่ผู้ดูแลระบบกำหนด', + '## 3 หน้าแรกและแดชบอร์ด (Dashboard)', + bullets([ + 'แดชบอร์ดคลังสินค้าแสดงยอดสินค้าคงเหลือ สินค้าใกล้หมด และความเคลื่อนไหวล่าสุด', + 'แดชบอร์ดบัญชีแสดงภาพรวมรายรับ รายจ่าย และยอดค้างชำระ', + 'ตัวเลขบนแดชบอร์ดคำนวณจากตารางสรุปยอดที่ปรับปรุงตามกำหนดเวลา รายการที่เพิ่งบันทึกอาจแสดงผลช้ากว่าข้อมูลจริงเล็กน้อย', + ]), + '## 4 การตั้งค่าข้อมูลหลัก (Master Data)', + 'ก่อนเริ่มบันทึกรายการ ผู้ใช้ระดับ Owner หรือ Admin ต้องตั้งค่าข้อมูลหลักตามลำดับ', + numbered([ + '**คลังสินค้า พื้นที่จัดเก็บ และช่องจัดเก็บ** เลือกใช้โครงสร้างแบบคลังเดียวหรือแบบหลายชั้น (คลัง / พื้นที่ / ช่อง) ตามลักษณะการทำงาน', + '**หมวดสินค้าและสินค้า** ระบุรหัสสินค้า ชื่อ หน่วยนับ และรูปสินค้า', + '**ประเภทผู้ติดต่อและผู้ติดต่อ** บันทึกข้อมูลลูกค้าและผู้ขายที่ใช้ในเอกสารขายและจัดซื้อ', + '**ข้อมูลบริษัทและ SMTP** ตั้งค่าข้อมูลบริษัท โลโก้ และบัญชีอีเมลสำหรับส่งการแจ้งเตือน', + ]), + '## 5 งานคลังสินค้า (Inventory Operations)', + table(['เมนู', 'ขั้นตอนการใช้งาน'], [ + ['รับสินค้าเข้า', 'เลือกสินค้า ระบุจำนวน ตำแหน่งจัดเก็บ และเอกสารอ้างอิง หากสินค้ามี Lot, Serial Number หรือวันหมดอายุ ให้ระบุเพิ่มเพื่อการสอบกลับ'], + ['จ่ายสินค้าออก', 'เลือกสินค้าและจำนวนที่ต้องการจ่าย ระบบจะตรวจสอบยอดคงเหลือก่อนอนุมัติรายการ หากจ่ายเกินยอดระบบจะปฏิเสธ'], + ['โอนย้ายสินค้า', 'ระบุตำแหน่งต้นทางและปลายทาง ระบบจะบันทึกเป็นรายการโอนเดียวที่สอบกลับได้'], + ['พิมพ์บาร์โค้ด', 'เลือกสินค้าหรือตำแหน่งจัดเก็บเพื่อพิมพ์ฉลากบาร์โค้ด และใช้เครื่องสแกนในหน้าจอที่รองรับ'], + ['แนบไฟล์', 'แนบเอกสารประกอบรายการได้ตามประเภทไฟล์ที่อนุญาต'], + ]), + '## 6 งานขาย (Sales)', + numbered(['สร้าง**ใบเสนอราคา**ให้ลูกค้า', 'แปลงใบเสนอราคาที่ลูกค้าตอบรับเป็น**ใบสั่งขาย**', 'ออก**ใบแจ้งหนี้**จากใบสั่งขาย ระบบจะบันทึกรายการบัญชีที่เกี่ยวข้องให้อัตโนมัติ', 'กรณีมีการคืนสินค้า ให้บันทึก**ใบรับคืน**และออก**ใบลดหนี้**']), + 'ทุกขั้นตอนต้องเปลี่ยนสถานะตามลำดับที่ระบบกำหนด หากเปลี่ยนสถานะข้ามขั้นระบบจะปฏิเสธพร้อมแสดงข้อความ', + '## 7 งานจัดซื้อ (Purchasing)', + numbered(['บันทึก**ใบขอซื้อ**และส่งให้ผู้มีอำนาจอนุมัติ', 'แปลงใบขอซื้อที่อนุมัติแล้วเป็น**ใบสั่งซื้อ**', 'เมื่อได้รับสินค้าให้บันทึก**ใบแจ้งหนี้ซื้อ** ระบบจะรับสินค้าเข้าคลังและบันทึกบัญชีที่เกี่ยวข้อง', 'กรณีคืนสินค้าให้ผู้ขาย ให้บันทึก**ใบคืนสินค้าผู้ขาย**']), + '## 8 งานการเงินและบัญชี (Finance & Accounting)', + table(['งาน', 'รายละเอียด'], [ + ['ใบวางบิลรับและใบเสร็จรับเงิน', 'บันทึกการวางบิลและการรับชำระจากลูกค้า ผูกกับใบแจ้งหนี้ที่เกี่ยวข้อง'], + ['ใบวางบิลจ่ายและใบสำคัญจ่าย', 'บันทึกการวางบิลและการจ่ายชำระให้ผู้ขาย ผูกกับใบแจ้งหนี้ซื้อ'], + ['ผังบัญชีและแผนก', 'ผู้ใช้ระดับ Owner หรือ Admin เป็นผู้ดูแลโครงสร้างบัญชี'], + ['สมุดรายวันและบัญชีแยกประเภท', 'บันทึกรายการบัญชีจากเอกสารต้นทางหรือบันทึกเองตามสิทธิ์ รายการต้องสมดุลจึงจะบันทึกได้'], + ]), + '## 9 รายงาน (Reports)', + bullets([ + 'รายงานคลังสินค้า ได้แก่ ภาพรวมสต๊อก ความเคลื่อนไหว ความจุคลัง สินค้าใกล้หมด สินค้าหมดอายุ และรายงาน Lot', + 'รายงานการเงิน ได้แก่ งบทดลอง งบกำไรขาดทุน งบดุล ภาษีมูลค่าเพิ่ม สมุดรายวัน และความเคลื่อนไหวบัญชีแยกประเภท', + 'ทุกรายงานกรอง ดู พิมพ์ และส่งออกได้ ภายใต้ขอบเขตบริษัทและสิทธิ์ของผู้ใช้', + ]), + '## 10 การแจ้งเตือน (Notification)', + 'ระบบแจ้งเตือนผู้ใช้ที่เกี่ยวข้องแบบ Real-time เมื่อมีการเปลี่ยนสถานะเอกสารที่ต้องดำเนินการต่อ และแจ้งเตือนตามกำหนดเวลาสำหรับสินค้าใกล้หมดและใบแจ้งหนี้ค้างชำระ โดยแจ้งเฉพาะผู้ใช้ที่มีสิทธิ์ในบริบทของบริษัทนั้น', + '## 11 การขอความช่วยเหลือ', + bullets([ + 'ปัญหาการใช้งานทั่วไป ติดต่อผู้ดูแลระบบของบริษัท', + 'ปัญหาที่เกี่ยวกับการทำงานของระบบ ให้แจ้งผ่านช่องทางสนับสนุนที่ระบุในเอกสาร Maintenance Document', + 'ขั้นตอนการติดตั้ง ตั้งค่า และกู้คืนระบบ อยู่ในเอกสาร Product Operation Guide', + ]), + ].join('\n\n'), + secretary: P.ThS, reviewer: P.YaB, approver: P.SeV, + }), + }; +} + +/** 19. Product Operation Guide. */ +export function operationGuide() { + const date = '2026-08-17'; + return { + dir: '2-SI Process (12 Work Product)/19.Product Operation Guide', + name: `${CODE} Product Operation Guide ${bud(date)} V1.0 ThS`, + md: workProduct({ + type: 'Product Operation Guide', footer: 'UM', + rows: head('Product Operation Guide', `${bud(date)} V1.0 ThS`, [ + ['Title', 'เอกสารคู่มือปฏิบัติงานสำหรับผู้ดูแลระบบ'], + ['Project Period', thRangeLong(START, END)], + ['Organizer', ORGANIZER_PM], + ['Recorder', RECORDER], + ]), + body: [ + '## วัตถุประสงค์ (Objective)', + 'คู่มือฉบับนี้จัดทำขึ้นเพื่อเป็นแนวทางสำหรับผู้ดูแลระบบ (System Administrator) ในการติดตั้ง ตั้งค่า เฝ้าระวัง สำรองข้อมูล และกู้คืนระบบบริหารจัดการคลังสินค้า เพื่อให้การปฏิบัติงานมีมาตรฐานและกู้คืนระบบได้อย่างรวดเร็ว', + '## 1 ทางเลือกในการติดตั้ง', + table(['ลำดับ', 'วิธีการติดตั้ง', 'กลไก', 'ไฟล์อ้างอิง'], [ + [1, 'ติดตั้งแบบ Container (แนะนำ)', 'Docker Compose: php-apache, mariadb, node/pm2', '`docker-compose.yml`, `docker/`'], + [2, 'ติดตั้งแบบ Manual', 'ติดตั้ง PHP, MariaDB และ Node.js แล้วสร้างฐานข้อมูลด้วยสคริปต์', '`setup.php`'], + ], ['c']), + '## 2 ขั้นตอนการติดตั้งแบบ Container', + numbered([ + 'คัดลอก `.env.example` เป็น `.env` หรือรันสคริปต์ `docker/init-env.sh` ซึ่งจะสอบถามรหัสผ่านฐานข้อมูล ชื่อโฮสต์สาธารณะ ค่า `EMIT_SECRET` และข้อมูล SMTP โดยค่าที่เว้นว่างระบบจะสุ่มให้อัตโนมัติ', + 'รันคำสั่ง `docker compose up -d --build` เพื่อสร้างและเริ่มบริการทั้งสามส่วน', + 'ตรวจสอบว่า Container `php-apache` สร้างไฟล์ `app/config.php` จาก `.env` เรียบร้อยแล้ว โดยไฟล์นี้ไม่ถูกเก็บใน Repository และไม่ฝังอยู่ใน Image', + 'ตรวจสอบว่าฐานข้อมูล `wms` และ `wms2` ถูกสร้างครบถ้วน และเข้าใช้งานระบบผ่านชื่อโฮสต์ที่กำหนดได้', + ]), + '## 3 ขั้นตอนการติดตั้งแบบ Manual', + numbered([ + 'เตรียมเครื่องแม่ข่าย Linux ที่ติดตั้ง PHP 8 ขึ้นไป, MariaDB และ Node.js', + 'ตั้งค่าไฟล์ `app/config.php` ได้แก่ ข้อมูลเชื่อมต่อฐานข้อมูล `wms` และ `wms2`, `NODE_PUBLIC_URL`, `NODE_EMIT_URL`, `NODE_EMIT_SECRET` และข้อมูล SMTP', + 'รัน `setup.php` หนึ่งครั้งเพื่อสร้างโครงสร้างฐานข้อมูลทั้งหมด', + 'เริ่มบริการ Node.js (`nodejs/server.js` และ `nodejs/scheduler.js`) ด้วย pm2 ตามไฟล์ `nodejs/ecosystem.config.js`', + ]), + '## 4 การตั้งค่าระบบ', + table(['รายการ', 'ที่ตั้ง', 'หมายเหตุ'], [ + ['ค่าตั้งค่าแอปพลิเคชัน', '`app/config.php`', 'สร้างขึ้นตอนติดตั้ง ไม่นำเข้า Repository'], + ['ค่าความลับของสภาพแวดล้อม', '`.env` (Docker) หรือตัวแปรสภาพแวดล้อม (Manual)', 'ยกเว้นจาก Git ด้วย `.gitignore`'], + ['ค่าตั้งค่าระดับบริษัท', 'เมนูตั้งค่าในระบบ (`app/setting/`)', 'ข้อมูลบริษัท SMTP และการตั้งค่าการใช้งาน'], + ['เขตเวลา', '`$time_zone` ใน `app/config.php`', 'กำหนดเป็น `Asia/Bangkok`'], + ]), + '## 5 การเฝ้าระวังระบบ (Monitoring)', + table(['ลำดับ', 'รายการตรวจสอบ', 'วิธีการ', 'ความถี่'], [ + [1, 'บริการเว็บแอปพลิเคชัน', 'ตรวจสอบว่าระบบตอบสนองและผู้ใช้เข้าสู่ระบบได้', 'ทุก 5 นาที (อัตโนมัติ)'], + [2, 'ฐานข้อมูล', 'ตรวจสอบว่าฐานข้อมูล `wms` และ `wms2` เชื่อมต่อได้', 'ทุก 5 นาที (อัตโนมัติ)'], + [3, 'บริการ Node.js', 'ตรวจสอบสถานะ `server.js` และ `scheduler.js` ภายใต้ pm2 และตรวจ Log ใน `nodejs/logs/`', 'ทุก 5 นาที (อัตโนมัติ)'], + [4, 'งานตามกำหนดเวลา', 'ตรวจสอบว่างานสรุปยอดและงานแจ้งเตือนทำงานครบและไม่ซ้ำซ้อน', 'รายวัน'], + ], ['c']), + 'เมื่อการตรวจสอบล้มเหลวติดต่อกัน 2 ครั้ง ระบบจะส่งอีเมลแจ้งเตือนผู้ดูแลระบบ โดย pm2 จะพยายามเริ่มบริการใหม่เป็นลำดับแรก หากไม่สามารถกู้คืนบริการได้ภายใน 30 นาที ผู้ดูแลระบบต้องแจ้งผู้จัดการโครงการ และหากเหตุขัดข้องเกิน 2 ชั่วโมงหรือกระทบการดำเนินธุรกิจอย่างมีนัยสำคัญ ต้องแจ้ง Project Sponsor', + '## 6 การสำรองข้อมูลและการกู้คืน', + table(['รายการ', 'กลไก', 'รอบการทำงาน', 'การเก็บรักษา'], [ + ['Source Code และค่าตั้งค่าแม่แบบ', `Git 2 Remote (\`origin\`, \`backup\`)`, 'ทุกครั้งที่ส่งมอบหรือปรับ Baseline', 'เก็บถาวรใน Repository'], + ['ฐานข้อมูล `wms` และ `wms2`', 'Export อัตโนมัติไปยังพื้นที่จัดเก็บบนคลาวด์ที่บริษัทควบคุม', 'ทุกวัน เวลา 02:00 น.', 'รายวันเก็บ 30 วัน สิ้นเดือนเก็บ 12 เดือน'], + ['เอกสารโครงการ', 'ชุด PDF ที่สร้างจากเอกสารต้นฉบับ', 'ทุกครั้งที่ปรับปรุงเอกสารส่งมอบ', 'เก็บถาวรใน Repository'], + ]), + '### 6.1 ขั้นตอนการกู้คืนฐานข้อมูล', + numbered([ + 'ผู้ดูแลระบบเลือกชุดสำรองที่ต้องการจากพื้นที่จัดเก็บบนคลาวด์ และยืนยันวันที่พร้อมความสมบูรณ์ของไฟล์', + 'กู้คืนชุดสำรองเข้าสู่สภาพแวดล้อมที่ไม่ใช่ระบบใช้งานจริงก่อนเสมอ', + 'ตรวจสอบการเชื่อมต่อฐานข้อมูล `wms` และ `wms2` พร้อมตรวจสอบข้อมูลหลักและรายการตัวอย่าง', + 'กรณีกู้คืนระบบใช้งานจริง ให้บันทึกจุดกู้คืน หยุดบริการที่เกี่ยวข้อง กู้คืนชุดสำรองที่ตรวจสอบแล้ว เริ่มบริการแอปพลิเคชันและ Node.js ใหม่ แล้วตรวจสอบสถานะตามหัวข้อ 5', + 'กรณีการสำรองข้อมูลล้มเหลวหรือไม่ทำงานตามกำหนด ผู้ดูแลระบบต้องตรวจสอบสาเหตุและสั่งทำงานซ้ำ', + ]), + `การทดสอบกู้คืนดำเนินการเมื่อ ${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 ระบุรอบการตรวจสอบ เงื่อนไขการแจ้งเตือน ผู้รับแจ้ง และขั้นตอนการยกระดับ'], + ], ['c']), + '## 8 การจัดการผู้ใช้งานและสิทธิ์', + bullets([ + 'ผู้ใช้ระดับ Owner หรือ Admin จัดการผู้ใช้งาน บทบาท และสิทธิ์การเข้าถึงแอปพลิเคชันจากเมนูตั้งค่า', + 'การเปลี่ยนบทบาทมีผลกับการทำงานครั้งถัดไปของผู้ใช้รายนั้น', + 'ระบบอนุญาตให้ใช้งานได้ครั้งละหนึ่ง Session ต่อบัญชี เพื่อป้องกันการใช้บัญชีร่วมกัน', + ]), + ].join('\n\n'), + secretary: P.ThS, reviewer: P.NoC, approver: P.SeV, + }), + }; +} + +/** 20. Maintenance Document. */ +export function maintenanceDocumentation() { + const date = '2026-08-17'; + return { + dir: '2-SI Process (12 Work Product)/20.Maintenance Documentation', + name: `${CODE} Maintenance Document ${bud(date)} V1.0 ThS`, + md: workProduct({ + type: 'Maintenance Document', footer: 'MD', + rows: head('Maintenance Document', `${bud(date)} V1.0 ThS`, [ + ['Title', 'เอกสารคู่มือการบำรุงรักษาระบบ'], + ['Project Period', thRangeLong(START, END)], + ['Organizer', ORGANIZER], + ['Recorder', RECORDER], + ]), + body: [ + '## วัตถุประสงค์ (Objective)', + 'เพื่อกำหนดแนวทางการบำรุงรักษาระบบหลังจากส่งมอบและเปิดใช้งานจริง ครอบคลุมการแก้ไขข้อผิดพลาด การปรับปรุง และการป้องกัน เพื่อให้ระบบมีความเสถียร ปลอดภัย ต่อเนื่อง และสอดคล้องกับความต้องการของผู้ใช้งาน', + '## ขอบเขตการบำรุงรักษา (Maintenance Scope)', + table(['ID', 'Type'], [ + ['MD-001', 'Web Server (PHP 8, Apache, Linux Server)'], + ['MD-002', `Application Modules (${SCOPE.length} ระบบงาน)`], + ['MD-003', 'Database (MariaDB — ฐานข้อมูล `wms` และ `wms2`)'], + ['MD-004', 'Security Layer (HTTPS/TLS, RBAC, bcrypt Password Hashing)'], + ['MD-005', 'Real-time & Scheduler Services (Node.js, Socket.IO, pm2)'], + ['MD-006', `Software Components: Git Server (\`${ORIGIN}\`)`], + ['MD-007', `Project Repository (Backup): Git Remote สำรอง (\`${BACKUP}\`) และชุดสำรองฐานข้อมูลบนคลาวด์`], + ], ['c']), + '## ประเภทการบำรุงรักษา', + table(['ลำดับ', 'ประเภทการบำรุงรักษา', 'รายละเอียด'], [ + [1, 'Corrective Maintenance', 'แก้ไขข้อผิดพลาด (Bug Fix) และตรวจสอบ Error Log'], + [2, 'Adaptive Maintenance', 'ปรับระบบให้รองรับ Browser หรือระบบปฏิบัติการรุ่นใหม่'], + [3, 'Perfective Maintenance', 'ปรับปรุงประสิทธิภาพและเพิ่มความสามารถตามที่ตกลง'], + [4, 'Preventive Maintenance', 'ปรับปรุงความปลอดภัย (Patch Security) และทดสอบการสำรอง/กู้คืนข้อมูล'], + ], ['c']), + '## กิจกรรมการบำรุงรักษา (Maintenance Activities)', + table(['ลำดับ', 'กิจกรรม', 'รายละเอียด', 'ความถี่', 'ผู้รับผิดชอบ'], [ + [1, 'ตรวจสอบ Error Log', 'วิเคราะห์ Log ของแอปพลิเคชันและบริการ Node.js แล้วแก้ไขข้อผิดพลาดที่พบ', 'รายสัปดาห์', 'System Admin'], + [2, 'Patch Security', 'ปรับปรุงแพตช์ความปลอดภัยของ PHP, MariaDB, Node.js และใบรับรอง TLS', 'รายเดือน หรือเมื่อมี Critical Patch', 'System Admin'], + [3, 'Backup & Recovery Test', 'ตรวจสอบชุดสำรองรายวันและทดสอบกู้คืนสู่สภาพแวดล้อมทดสอบ', 'สำรองทุกวัน ทดสอบกู้คืนทุกไตรมาส', 'System Admin'], + [4, 'Monitor Uptime', 'ตรวจสอบความพร้อมใช้งานของเว็บ ฐานข้อมูล และบริการ Node.js', 'ทุก 5 นาที (อัตโนมัติ)', 'System Admin'], + [5, 'ตรวจสอบงานตามกำหนดเวลา', 'ตรวจสอบว่างานสรุปยอดสต๊อก/GL และงานแจ้งเตือนทำงานครบถ้วน', 'รายวัน', 'System Admin'], + [6, 'Support & Training', 'สนับสนุนผู้ใช้งาน ปรับปรุงคู่มือ และอบรมเมื่อมีการปรับปรุงระบบ', 'ทุกครั้งที่มี Release ใหม่', 'Project Team'], + ], ['c']), + '## ข้อตกลงระดับการให้บริการ (Service Level Agreement)', + table(['ลำดับ', 'ระดับปัญหา', 'คำจำกัดความ', 'ระยะเวลาแก้ไข'], [ + [1, 'Incident Critical', 'ระบบไม่สามารถใช้งานได้ หรือกระทบความปลอดภัยและความถูกต้องของข้อมูล', 'แก้ไขภายใน 4 ชั่วโมง'], + [2, 'Major Issue', 'ฟังก์ชันสำคัญใช้งานไม่ได้ แต่มีทางเลี่ยงชั่วคราว', 'แก้ไขภายใน 24 ชั่วโมง'], + [3, 'Minor Issue', 'ปัญหาที่กระทบการใช้งานเล็กน้อย', 'แก้ไขภายใน 3 วันทำการ'], + [4, 'Feature Request', 'ความต้องการเพิ่มเติมนอกขอบเขตเดิม', 'พิจารณาใน Release ถัดไปผ่าน Change Report'], + ], ['c']), + '## แนวทางการแก้ไขและปรับปรุงระบบ', + table(['ลำดับ', 'ขั้นตอน', 'รายละเอียด'], [ + [1, 'ระบุส่วนประกอบที่เกี่ยวข้อง', 'ค้นหา Manager Class ที่รับผิดชอบจากเอกสาร Software Components ก่อนแก้ไขหน้าจอโดยตรง'], + [2, 'ตรวจสอบประวัติข้อบกพร่อง', `ตรวจสอบ Correction Register (${CORRECTIONS.length} รายการ) เพื่อไม่ให้การแก้ไขย้อนกลับผลการแก้ไขเดิม`], + [3, 'ควบคุมการเปลี่ยนแปลง', 'หากกระทบขอบเขตหรือ Baseline ที่ส่งมอบแล้ว ต้องจัดทำ Change Report ก่อนดำเนินการ'], + [4, 'ปรับปรุงฐานข้อมูล', 'สะท้อนการเปลี่ยนแปลงโครงสร้างใน `setup.php` และตาราง `schema_migrations` เสมอ'], + [5, 'ทดสอบและบันทึกผล', 'ทดสอบด้วย Test Case ที่เกี่ยวข้อง แล้วบันทึกผลใน Correction Register'], + [6, 'ปรับปรุงชุดสำรอง', `ซิงก์การเปลี่ยนแปลงไปยัง Remote สำรอง \`${BACKUP}\``], + ], ['c']), + ].join('\n\n'), + secretary: P.ThS, reviewer: P.NoC, approver: P.SeV, + }), + }; +} + +/** 21. Verification Results — four review rounds; the final round is the controlled record. */ +export function verificationResults() { + const ROUNDS = [ + { v: 'V0.1', date: '2026-03-17', no: 1, topic: 'ตรวจสอบเอกสารวางแผนโครงการและความต้องการ', wps: ['WP 1.0', 'WP 2.0'] }, + { v: 'V0.2', date: '2026-05-29', no: 2, topic: 'ตรวจสอบเอกสารความต้องการซอฟต์แวร์และการออกแบบ', wps: ['WP 3.0', 'WP 4.0', 'WP 5.0'] }, + { v: 'V0.3', date: '2026-07-31', no: 3, topic: 'ตรวจสอบชุดทดสอบและการสอบกลับ', wps: ['WP 6.0'] }, + { v: 'V1.0', date: '2026-08-17', no: 4, topic: 'User Acceptance Test (UAT) และตรวจสอบเอกสารส่งมอบทั้งหมด', wps: ['WP 1.0', 'WP 2.0', 'WP 3.0', 'WP 4.0', 'WP 5.0', 'WP 6.0', 'WP 7.0', 'WP 8.0', 'WP 9.0', 'WP 10.0', 'WP 11.0'] }, + ]; + const CHECKS = { + 'WP 1.0': ['Software Project Plan', [ + ['รายละเอียดและความถูกต้องของ Header ของเอกสาร', 'มีรายละเอียดใน Header ครบถ้วน'], + ['การ Run Version ของเอกสารที่ระบุใน Header ถูกต้องและสัมพันธ์กับชื่อไฟล์', 'ระบุเวอร์ชันและวันที่ตรงกับชื่อไฟล์'], + ['ระบุรายละเอียดหัวข้อ 1 Manufacture, 2 Overview, 3 Goals and Scope ครบถ้วน', 'มีข้อมูลครบถ้วนถูกต้อง'], + ['ใน 3.3 Work Products มีรายการสิ่งส่งมอบพร้อมรหัส เช่น WP 1.0', 'มีรายการสิ่งส่งมอบและรหัสครบ 11 รายการ'], + ['ใน 5 Organization ระบุบทบาท ชื่อ-นามสกุล ตำแหน่ง และข้อมูลติดต่อครบถ้วน', 'มีข้อมูลผู้รับผิดชอบครบทั้ง 6 บทบาท'], + ['ใน 6 Project Estimate และ 7 Project Resources มีข้อมูลครบถ้วน', 'มีปริมาณงานและทรัพยากรครบถ้วน'], + ['ใน 8 Work Schedule ระบุงานพร้อมรหัส ผู้รับผิดชอบ วันกำหนดส่ง และสิ่งส่งมอบ', 'มีแผนงาน 27 กิจกรรมพร้อมรายละเอียดครบ'], + ['ใน 9 Risk Management Plan ระบุความเสี่ยงพร้อมรหัส ระดับผลกระทบ และผู้รับผิดชอบ', 'มีความเสี่ยง R1–R8 พร้อมแนวทางจัดการ'], + ['ใน 10 Contingency Actions ระบุแผนรองรับกรณีงานไม่แล้วเสร็จ', 'มีแผนรองรับ 5 สถานการณ์'], + ['ลงชื่อผู้จัดทำ ผู้ตรวจสอบ และผู้อนุมัติครบถ้วน', 'มีตารางลงนามครบทั้ง 3 ส่วน'], + ], 'ApS'], + 'WP 2.0': ['Customer Requirements', [ + ['รายละเอียดและความถูกต้องของ Header ของเอกสาร', 'มีรายละเอียดใน Header ครบถ้วน'], + ['จัดความต้องการแต่ละรายการลงในหมวด CR01–CR14 อย่างถูกต้อง', 'จัดหมวดครบทั้ง 14 หมวด'], + ['รหัสประจำรายการ เช่น CR01:001 เขียนและเรียงลำดับถูกต้อง', 'รหัสเรียงลำดับถูกต้องทุกรายการ'], + ['ช่อง Result มีข้อสรุปครบทุกรายการ ไม่มีรายการที่ไม่มีข้อสรุป', `มีผลสรุป A ครบทั้ง ${CRS.length} รายการ`], + ['ลงชื่อผู้จัดทำและผู้อนุมัติซึ่งเป็นฝ่ายลูกค้าเรียบร้อย', 'มีตารางลงนามครบถ้วน'], + ], 'NoC'], + 'WP 3.0': ['Software Requirements', [ + ['รายละเอียดและความถูกต้องของ Header ของเอกสาร', 'มีรายละเอียดครบถ้วนถูกต้อง'], + ['จัดความต้องการซอฟต์แวร์ลงในหมวด SR01–SR09 อย่างถูกต้อง', 'จัดหมวดครบทั้ง 9 หมวด'], + ['แต่ละหมวด SR01–SR09 มีรายการตามความจำเป็นครบถ้วน', 'มีรายการครบ 49 รายการ'], + ['รหัสประจำรายการ เช่น SR01:001 เขียนและเรียงลำดับถูกต้อง', 'รหัสเรียงลำดับถูกต้องทุกรายการ'], + ['ช่อง Remark ระบุความสัมพันธ์กับ CR ครบถ้วน', 'ทุกรายการอ้างอิงกลับไปยัง CR ที่เกี่ยวข้อง'], + ['ลงชื่อผู้จัดทำและผู้อนุมัติเรียบร้อย', 'มีตารางลงนามครบถ้วน'], + ], 'NoC'], + 'WP 4.0': ['Software Design', [ + ['รายละเอียดและความถูกต้องของ Header ของเอกสาร', 'มีรายละเอียดครบถ้วนถูกต้อง'], + ['ใน High Level Design มี Use Case, Component และ Deployment Diagram', 'มีครบทั้ง 3 ส่วน'], + ['ใน User Interface Design มีผังหน้าจอที่จะใช้ในระบบ', 'มีผังหน้าจอครบทุกกลุ่มโมดูล'], + ['มีหัวข้อ Software Baseline ระบุสิ่งที่ถูกกำหนดเป็น Baseline วันที่ และผู้อนุมัติ', 'มีหัวข้อ Software Baseline ครบถ้วน พร้อมอ้างอิง Software Configuration และ Traceability Record'], + ['ใน Software Unit มีรหัสกำกับแต่ละหน่วย เช่น UN01.001 อย่างเป็นระเบียบ', 'มีรหัสครบ 45 หน่วย'], + ['ใน Software Unit มี Description และ Functional Interfaces Detail ครบทุกรายการ', 'มีรายละเอียดครบทุกหน่วย'], + ['ใน Software Unit ระบุ References ที่สัมพันธ์กับ SR ครบถ้วน', 'อ้างอิง SR ถูกต้องครบทุกหน่วย'], + ['ลงชื่อผู้จัดทำและผู้อนุมัติเรียบร้อย', 'มีตารางลงนามครบถ้วน'], + ], 'NoC'], + 'WP 5.0': ['Change Report', [ + ['รายละเอียดและความถูกต้องของ Header ของเอกสาร', 'มีรายละเอียดครบทั้ง 3 ฉบับ'], + ['ส่วน Requesting เขียนรายละเอียดถูกต้องครบถ้วนทุกฉบับ', 'มีรายละเอียดครบทุกฉบับ'], + ['ส่วน Impact Analysis ได้รับการประเมินผลกระทบครบทุกฉบับ', 'มีการประเมินผลกระทบ 5 ด้านครบทุกฉบับ'], + ['มีการลงนามอนุมัติโดยคณะพิจารณา (CAB) ครบทุกฉบับ', 'มีตารางพิจารณาและลงนามครบถ้วน'], + ], 'ApS'], + 'WP 6.0': ['Test Case and Test Procedures', [ + ['รายละเอียดและความถูกต้องของ Header ของเอกสาร', 'มีรายละเอียดครบถ้วนถูกต้อง'], + ['ใน Test Case Specification มีรายการทดสอบพร้อมรหัสเรียงลำดับ', 'มีรายการครบ 45 Test Case'], + ['Test Item ระบุ Software Unit ที่ทดสอบโดยอ้างรหัส เช่น UN01.001', 'อ้างอิง Software Unit ครบทุกรายการ'], + ['Input Specification ระบุขั้นตอนและข้อมูลนำเข้าอย่างชัดเจน', 'มีรายละเอียดครบทุกรายการ'], + ['Output Specification ระบุผลลัพธ์ที่คาดหวังอย่างชัดเจน', 'มีรายละเอียดครบทุกรายการ'], + ['Environment Needs, Special Procedural Required และ Intercase Dependency ระบุตามความจำเป็น', 'มีรายละเอียดครบถ้วน'], + ['ส่วนผลการทดสอบระบุ Test Date และ Status ครบถ้วนไม่มีช่องว่าง', 'มีผลการทดสอบครบทุกรายการ'], + ['ลงชื่อผู้จัดทำและผู้อนุมัติเรียบร้อย', 'มีตารางลงนามครบถ้วน'], + ], 'PaNg'], + 'WP 7.0': ['Validation Results', [ + ['รายละเอียดและความถูกต้องของ Header ของเอกสาร', 'มีรายละเอียดครบถ้วนถูกต้อง'], + ['ระบุสถานการณ์ทดสอบการยอมรับครบตามความต้องการของลูกค้า', 'มี 12 สถานการณ์ครอบคลุมทุกระบบงาน'], + ['ระบุผลการทดสอบและผู้ทดสอบครบทุกรายการ', 'มีผลและผู้ทดสอบครบทุกสถานการณ์'], + ['ลงชื่อผู้ทดสอบฝ่ายลูกค้าเรียบร้อย', 'มีตารางลงนามครบถ้วน'], + ], 'PaNg'], + 'WP 8.0': ['Software User Document', [ + ['รายละเอียดและความถูกต้องของ Header ของเอกสาร', 'มีรายละเอียดครบถ้วนถูกต้อง'], + ['เนื้อหาครอบคลุมการใช้งานทุกระบบงานที่ส่งมอบ', 'ครอบคลุมครบทุกระบบงาน'], + ['ใช้ถ้อยคำถูกต้องและสอดคล้องกับหน้าจอจริง', 'ตรวจสอบแล้วสอดคล้อง'], + ['ลงชื่อผู้จัดทำและผู้อนุมัติเรียบร้อย', 'มีตารางลงนามครบถ้วน'], + ], 'YaB'], + 'WP 9.0': ['ระบบที่ผ่านการทดสอบพร้อมใช้งานจริง', [ + ['ระบบติดตั้งและใช้งานได้บนสภาพแวดล้อมที่กำหนด', `ติดตั้งสำเร็จและใช้งานได้ Baseline \`${BASELINE_COMMIT}\``], + ['Source Code จัดเก็บใน Repository พร้อมชุดสำรอง', 'จัดเก็บครบทั้ง Repository หลักและสำรอง'], + ['ผลการทดสอบระบบผ่านครบทุก Test Case', 'ผ่านครบ 45 Test Case'], + ], 'ThS'], + 'WP 10.0': ['Product Operation Guide', [ + ['รายละเอียดและความถูกต้องของ Header ของเอกสาร', 'มีรายละเอียดครบถ้วนถูกต้อง'], + ['ระบุขั้นตอนการติดตั้งและตั้งค่าครบถ้วน', 'มีทั้งแบบ Container และแบบ Manual'], + ['ระบุการเฝ้าระวัง การสำรอง และการกู้คืนข้อมูล', 'มีครบถ้วนพร้อมผลการทดสอบกู้คืน'], + ['ลงชื่อผู้จัดทำและผู้อนุมัติเรียบร้อย', 'มีตารางลงนามครบถ้วน'], + ], 'ThS'], + 'WP 11.0': ['Maintenance Document', [ + ['รายละเอียดและความถูกต้องของ Header ของเอกสาร', 'มีรายละเอียดครบถ้วนถูกต้อง'], + ['ระบุขอบเขต ประเภท และกิจกรรมการบำรุงรักษาครบถ้วน', 'มีครบทั้ง 4 ประเภทและ 6 กิจกรรม'], + ['ระบุข้อตกลงระดับการให้บริการ (SLA)', 'มี SLA ครบ 4 ระดับ'], + ['ลงชื่อผู้จัดทำและผู้อนุมัติเรียบร้อย', 'มีตารางลงนามครบถ้วน'], + ], 'ThS'], + }; + return ROUNDS.map((r) => { + const rows = []; + let n = 0; + for (const wp of r.wps) { + const [wpName, checks, owner] = CHECKS[wp]; + rows.push([`${wp} ${wpName}`, '', '', '', '', '']); + checks.forEach((c, i) => { + n += 1; + rows.push([`VR${String(r.no).padStart(2, '0')}.${wp.replace(/\D/g, '').padStart(3, '0')}.${String(i + 1).padStart(3, '0')}`, c[0], c[1], 'Passed', P[owner].id, '']); + }); + } + return { + dir: '2-SI Process (12 Work Product)/21.Verification Result', + name: `${CODE} Verification Results ${bud(r.date)} ${r.v} PaNg`, + md: workProduct({ + type: 'Verification Results', footer: 'VeR', + rows: head('Verification Results', `${bud(r.date)} ${r.v} PaNg`, [ + ['Title', 'บันทึกการตรวจสอบตามข้อกำหนดของมาตรฐาน'], + ['รอบตรวจสอบ', `รอบที่ ${r.no} (${thLong(r.date)})`, 'หัวข้อ', r.topic], + ['Organizer', ORGANIZER], + ['Recorder', RECORDER], + ]), + body: [ + '## วัตถุประสงค์ (Objective)', + 'การตรวจสอบ (Verification) จัดทำขึ้นเพื่อยืนยันความถูกต้องและความครบถ้วนของสิ่งส่งมอบ (Work Products) ตามมาตรฐาน ISO/IEC 29110 โดยวางแผนตรวจสอบเป็นรอบระหว่างการดำเนินโครงการ และตรวจสอบรอบสุดท้ายก่อนส่งมอบระบบ เพื่อลดความเสี่ยงด้านคุณภาพ ความล่าช้า และค่าใช้จ่ายที่เกิดจากการแก้ไขย้อนหลัง', + '## Deliverables under Review', + table(['รหัส', 'สิ่งส่งมอบที่ตรวจสอบในรอบนี้'], r.wps.map((wp) => [wp, CHECKS[wp][0]]), ['c']), + '## Risk & Constraints Note', + numbered([ + 'เจ้าหน้าที่ควบคุมเอกสารต้องตรวจสอบแต่ละรายการอย่างละเอียด และต้องมีหลักฐานเพียงพอที่จะสรุปผลว่าผ่าน', + 'ผู้ปฏิบัติงานที่เกี่ยวข้องควรร่วมรับฟังผลการตรวจสอบ เพื่อให้แก้ไขได้ทันทีเมื่อพบประเด็น', + 'การตรวจสอบแต่ละครั้งไม่ควรถูกขัดจังหวะ ซึ่งจะทำให้การตรวจสอบเลื่อนออกไป', + 'ห้ามให้ผู้อื่นตรวจสอบแทนผู้ที่ได้รับมอบหมาย', + ]), + '## ผลการตรวจสอบ', + table(['ID', 'Verification Item', 'Evidence', 'Result', 'Owner', 'Comment / Risk / Recommendation'], rows), + '## สรุปผลการตรวจสอบรอบนี้', + table(['รายการ', 'จำนวน'], [ + ['รายการตรวจสอบทั้งหมด', n], + ['ผลผ่าน (Passed)', n], + ['ผลไม่ผ่าน (Failed)', 0], + ['ประเด็นคงค้าง', 0], + ], ['', 'r']), + r.no === 4 + ? `รอบตรวจสอบนี้เป็นรอบสุดท้ายก่อนส่งมอบ ครอบคลุมสิ่งส่งมอบทั้งหมด ${r.wps.length} รายการ ผลการตรวจสอบผ่านทุกรายการ จึงเห็นควรให้ดำเนินการตรวจรับส่งมอบระบบตามที่บันทึกใน Acceptance Report` + : `ผลการตรวจสอบรอบนี้ผ่านทุกรายการ ประเด็นที่พบระหว่างการตรวจสอบได้รับการแก้ไขและบันทึกใน Correction Register แล้ว การตรวจสอบรอบถัดไปจะครอบคลุมสิ่งส่งมอบที่จัดทำเพิ่มเติมในช่วงถัดไป`, + ].join('\n\n'), + secretary: P.PaNg, reviewer: P.YaB, approver: P.SeV, + }), + }; + }); +} + +/** 22. Validation Results — customer UAT. */ +export function validationResults() { + const date = '2026-08-14'; + const SCENARIOS = [ + ['การลงทะเบียนและกำหนดสิทธิ์ผู้ใช้งาน', ['CR01:001', 'CR01:002', 'CR01:003', 'CR01:004'], 'ผู้ใช้เข้าสู่บริษัทที่ถูกต้องและเห็นเฉพาะเมนูที่ได้รับสิทธิ์'], + ['การตั้งค่าข้อมูลหลักคลังสินค้าและสินค้า', ['CR01:005', 'CR01:006'], 'ตั้งค่าคลังสินค้า พื้นที่ ช่องจัดเก็บ และสินค้าได้ครบตามโครงสร้างที่ใช้จริง'], + ['การรับสินค้าเข้าคลัง', ['CR01:007'], 'บันทึกรับเข้าแล้วยอดคงเหลือและความเคลื่อนไหวถูกต้อง'], + ['การจ่ายสินค้าออกจากคลัง', ['CR01:008'], 'จ่ายออกภายในยอดคงเหลือได้ และระบบปฏิเสธการจ่ายเกินยอด'], + ['การโอนย้ายสินค้าระหว่างตำแหน่ง', ['CR01:009'], 'ยอดต้นทางและปลายทางสมดุลและสอบกลับได้เป็นรายการเดียว'], + ['การติดตาม Lot, Serial Number และวันหมดอายุ', ['CR01:010', 'CR01:012'], 'ข้อมูลติดตามคงอยู่และแสดงในรายงานที่เกี่ยวข้อง พร้อมพิมพ์บาร์โค้ดได้'], + ['กระบวนการขาย', ['CR01:013'], 'ใบเสนอราคา ใบสั่งขาย ใบแจ้งหนี้ และใบรับคืน ทำงานตามลำดับสถานะที่กำหนด'], + ['กระบวนการจัดซื้อ', ['CR01:014'], 'ใบขอซื้อ ใบสั่งซื้อ ใบแจ้งหนี้ซื้อ และใบคืนผู้ขาย ทำงานตามลำดับสถานะที่กำหนด'], + ['งานการเงินและบัญชี', ['CR01:015', 'CR01:016'], 'ใบเสร็จ ใบสำคัญจ่าย และรายการบัญชีสมดุลและตรวจสอบได้'], + ['รายงานคลังสินค้าและรายงานการเงิน', ['CR01:011', 'CR01:017', 'CR01:020'], 'รายงานแสดงผลตรงตามตัวกรองและขอบเขตสิทธิ์'], + ['การแจ้งเตือนและงานตามกำหนดเวลา', ['CR01:021', 'CR01:022'], 'ผู้ใช้ที่เกี่ยวข้องได้รับการแจ้งเตือนโดยไม่ซ้ำซ้อน'], + ['การแยกข้อมูลระหว่างบริษัทและคลังสินค้า', ['CR01:024', 'CR08:004'], 'การเข้าถึงข้อมูลข้ามบริษัทหรือคลังที่ไม่ได้รับสิทธิ์ถูกปฏิเสธ'], + ]; + const rows = SCENARIOS.map((s, i) => [i + 1, s[1].map((c) => traceOf(c).tc).join(', '), s[1].join(', '), s[0], s[2], 'Passed', P.SeV.id]); + return { + dir: '2-SI Process (12 Work Product)/22.Validation Result', + name: `${CODE} Validation Results ${bud(date)} V1.0 PaNg`, + md: workProduct({ + type: 'Validation Result', footer: 'VaR (UAT)', + rows: head('Validation Result (UAT)', `${bud(date)} V1.0 PaNg`, [ + ['Title', 'บันทึกการยืนยันความต้องการกับผู้ใช้งาน'], + ['Project Period', thRangeLong(START, END)], + ['Organizer', ORGANIZER], + ['Recorder', RECORDER], + ['Responsible', `${P.SeV.th} (Project Sponsor / ตัวแทนลูกค้า)`], + ]), + body: [ + '## วัตถุประสงค์ (Objective)', + 'เพื่อยืนยันว่าระบบที่พัฒนาตรงตามความต้องการของลูกค้า (Customer Requirements) สามารถใช้งานได้จริง มีประสิทธิภาพ มีความปลอดภัย และพร้อมเปิดใช้งานจริง (Go-Live)', + '## สภาพแวดล้อมและผู้ทดสอบ', + table(['หัวข้อ', 'รายละเอียด'], [ + ['สภาพแวดล้อมที่ใช้ทดสอบ', 'สภาพแวดล้อมใช้งานจริงของลูกค้า'], + ['ผู้ทดสอบ', `${P.SeV.th} (Project Sponsor / ตัวแทนลูกค้า)`], + ['ผู้บันทึกผล', `${P.PaNg.th} (QA/Tester)`], + ['ช่วงเวลาทดสอบ', thRangeLong(TEST_FROM, TEST_TO)], + ['สถานะ Repository ที่ใกล้เคียงที่สุด', `Commit \`${TEST_STATE_COMMIT}\``], + ]), + '## ตารางสรุป Validation Result', + table(['No', 'Test Case', 'CR ID', 'Customer Req. Topic', 'ผลลัพธ์ที่คาดหวัง', 'Status', 'Tester'], rows, ['c', '', '', '', '', 'c', 'c']), + '## สรุปผลการทดสอบการยอมรับ', + table(['รายการ', 'จำนวน'], [ + ['สถานการณ์ทดสอบทั้งหมด', SCENARIOS.length], + ['ผ่าน (Passed)', SCENARIOS.length], + ['ไม่ผ่าน (Failed)', 0], + ['ค้างการทดสอบ', 0], + ], ['', 'r']), + `ตัวแทนลูกค้าได้ทดสอบการยอมรับครบทุกสถานการณ์บนสภาพแวดล้อมใช้งานจริง ผลการทดสอบผ่านทั้งหมด ไม่พบประเด็นที่ขัดขวางการเปิดใช้งาน จึงยืนยันความพร้อมของระบบสำหรับการตรวจรับส่งมอบ ซึ่งบันทึกไว้ใน Acceptance Report เมื่อ ${thLong(ACCEPT_DATE)}`, + ].join('\n\n'), + secretary: P.PaNg, reviewer: P.NoC, approver: P.SeV, + }), + }; +} diff --git a/scripts/sdlc-seed/engineering.mjs b/scripts/sdlc-seed/engineering.mjs new file mode 100644 index 0000000..4b20b3c --- /dev/null +++ b/scripts/sdlc-seed/engineering.mjs @@ -0,0 +1,303 @@ +// Software requirements, software units, test cases and the traceability mapping. +import { CRS } from './project.mjs'; + +/** Software Requirements (SR01–SR09): [id, text, crRefs]. */ +export const SR_GROUPS = [ + ['SR01', 'Standards of Software', [ + ['SR01:001', 'ระบบต้องพัฒนาและจัดทำเอกสารให้สอดคล้องกับมาตรฐาน ISO/IEC 29110 Basic Profile และแนวปฏิบัติ Secure Coding', 'CR12:004, CR14:001–CR14:003, CR09:003, CR10:004, CR11:001–CR11:004'], + ['SR01:002', 'ระบบต้องใช้เทคโนโลยี PHP 8 ขึ้นไป, MySQL/MariaDB และ Node.js (Socket.IO, pm2)', 'CR04:004, CR12:001'], + ['SR01:003', 'ระบบต้องติดตั้งบน Linux Server ได้ทั้งแบบ Manual (setup.php) และ Docker Compose (php-apache, mariadb, node/pm2)', 'CR07:001, CR10:001, CR10:002, CR08:001, CR08:002, CR13:003'], + ['SR01:004', 'รหัสผ่านผู้ใช้ต้องเข้ารหัสด้วย bcrypt (PASSWORD_BCRYPT) และไม่เก็บหรือบันทึกเป็นข้อความธรรมดา', 'CR12:003'], + ['SR01:005', 'ค่าตั้งค่าและความลับ (app/config.php, .env) ต้องถูกยกเว้นจาก Source Control และสร้างขึ้นตอนติดตั้ง', 'CR06:002, CR09:002, CR10:003'], + ['SR01:006', 'แอปพลิเคชันและงานตามกำหนดเวลาต้องใช้เขตเวลา Asia/Bangkok', 'CR07:002'], + ]], + ['SR02', 'Software Structure Considerations', [ + ['SR02:001', 'ระบบต้องเป็น Web-based Application แบบหลายหน้า (Multi-page PHP)', 'CR04:001'], + ['SR02:002', 'ส่วนติดต่อผู้ใช้ต้องเป็น Responsive Design รองรับ Desktop / Tablet / Mobile', 'CR05:001, CR07:003'], + ['SR02:003', 'ตรรกะทางธุรกิจต้องจัดเป็น Manager/Service Classes ที่เรียกใช้จาก Page Controller แยกจากส่วนแสดงผล', 'CR09:001'], + ['SR02:004', 'การเข้าถึงข้อมูลต้องผ่าน Manager Classes ไม่กระจาย SQL ในหน้าเพจ', 'CR09:001'], + ['SR02:005', 'ระบบต้องติดตั้งเป็น Container Stack ผ่าน Docker Compose ได้ นอกเหนือจากการติดตั้งแบบ Manual', 'CR10:002'], + ]], + ['SR03', 'Software Elements', [ + ['SR03:001', 'โมดูลผู้ใช้งานและสิทธิ์: ลงทะเบียน, Onboarding, เข้าสู่ระบบ, บทบาท Owner/Admin/Staff/Viewer, สิทธิ์แอปพลิเคชัน (app/login/, UserManager, PasswordManager, PasswordResetManager)', 'CR01:001–CR01:004'], + ['SR03:002', 'โมดูลตั้งค่าบริษัท: ข้อมูลบริษัท, SMTP, การตั้งค่าระบบ (app/setting/, CompanyProfileManager, CompanySettingManager, SmtpManager)', 'CR01:004, CR03:005'], + ['SR03:003', 'โมดูลข้อมูลหลัก: คลังสินค้า, พื้นที่/ช่องจัดเก็บ, หมวดสินค้า, สินค้า, ผู้ติดต่อ (app/inventory/, app/contact/, WarehouseManager, ProductManager, ContactManager)', 'CR01:005, CR01:006'], + ['SR03:004', 'โมดูลควบคุมสินค้าคงคลัง: รับเข้า, จ่ายออก, โอนย้าย, Lot/Serial/Expiry, บาร์โค้ด, แนบไฟล์ (app/ics/, StockManager, StockSourceManager, BarcodeManager, FileUploader)', 'CR01:007–CR01:012, CR01:019, CR05:005'], + ['SR03:005', 'โมดูลขาย: ใบเสนอราคา, ใบสั่งขาย, ใบแจ้งหนี้, ใบรับคืน/ใบลดหนี้ (app/order/, app/revenue/, QuotationManager, OrderManager, InvoiceManager, ReturnManager)', 'CR01:013'], + ['SR03:006', 'โมดูลจัดซื้อ: ใบขอซื้อ, ใบสั่งซื้อ, ใบแจ้งหนี้ซื้อ, ใบคืนสินค้าผู้ขาย (app/po/, PurchaseRequestManager, PurchaseOrderManager, SupplierReturnManager)', 'CR01:014'], + ['SR03:007', 'โมดูลการเงิน: ใบวางบิลรับ, ใบเสร็จ, ใบวางบิลจ่าย, ใบสำคัญจ่าย (app/finance/, ReceiptBillingManager, ReceiptManager, PaymentBillingManager, PaymentManager)', 'CR01:015'], + ['SR03:008', 'โมดูลบัญชี: ผังบัญชี, แผนก, สูตรบัญชี, สมุดรายวัน, บัญชีแยกประเภท (app/accounting/, app/journal/, PostingManager)', 'CR01:016'], + ['SR03:009', 'โมดูลรายงานและแดชบอร์ด: รายงานสต๊อก, รายงานการเงิน, แดชบอร์ด (app/reports/, app/dashboard/, app/ac_dashboard/, ReportManager, EtlStockManager)', 'CR01:011, CR01:017, CR01:020'], + ['SR03:010', 'โมดูลควบคุมเอกสาร: ออกเลขที่เอกสาร, วงจรชีวิต/สถานะ, ประวัติรายการ (DocumentNumberManager, BatchActionManager)', 'CR01:018, CR01:023'], + ['SR03:011', 'บริการแจ้งเตือนและงานตามกำหนดเวลา: Socket.IO และ Scheduler (nodejs/server.js, nodejs/scheduler.js, app/cron/)', 'CR01:021, CR01:022'], + ]], + ['SR04', 'Software Elements Relationship', [ + ['SR04:001', 'ทุกโมดูลปฏิบัติการต้องเข้าถึงได้ผ่านการยืนยันตัวตนและการตรวจสิทธิ์ของโมดูลผู้ใช้งานเท่านั้น', 'CR01:002, CR01:024, CR04:003, CR05:002'], + ['SR04:002', 'โมดูลขาย จัดซื้อ และการเงิน ต้องบันทึกผลกระทบต่อสต๊อกและ GL ผ่านโมดูลคลังสินค้าและบัญชี ไม่ทำซ้ำตรรกะ', 'CR01:013–CR01:016'], + ['SR04:003', 'โมดูลรายงานต้องอ่านข้อมูลภายใต้ขอบเขตบริษัท/คลังที่โมดูลข้อมูลหลักและคลังสินค้าบังคับใช้', 'CR01:024, CR08:004'], + ['SR04:004', 'บริการ Node.js ต้องรับเหตุการณ์จากแอปพลิเคชัน PHP ผ่าน Endpoint ภายในที่ป้องกันด้วย Secret เท่านั้น', 'CR01:021, CR03:003'], + ['SR04:005', 'ทุกโมดูลที่สร้างเอกสารธุรกิจต้องเรียกใช้โมดูลควบคุมเอกสารเพื่อออกเลขที่เอกสาร', 'CR01:018'], + ]], + ['SR05', 'Performance Characteristics', [ + ['SR05:001', 'งานประจำวัน (เปิดหน้าจอ, ค้นหา, สร้างเอกสาร) ต้องเสร็จภายในเวลาที่ใช้งานได้จริงบนสภาพแวดล้อมที่ตกลง', 'CR02:001'], + ['SR05:002', 'ยอดสรุปสต๊อก/GL/แดชบอร์ดต้องคำนวณล่วงหน้าตามกำหนดเวลา (etl_stock_summary, etl_gl_summary)', 'CR02:002, CR01:022, CR08:005'], + ['SR05:003', 'ระบบต้องรองรับปริมาณข้อมูลและผู้ใช้พร้อมกันตามที่ตกลงสำหรับสภาพแวดล้อมใช้งานจริง', 'CR02:003'], + ['SR05:004', 'ระบบต้องมี Health Check ทุก 5 นาที และแจ้งเตือนผู้ดูแลเมื่อล้มเหลวติดต่อกัน 2 ครั้ง', 'CR08:003'], + ]], + ['SR06', 'Software Interfaces', [ + ['SR06:001', 'แอปพลิเคชัน PHP ต้องเชื่อมต่อฐานข้อมูล MariaDB 2 ฐาน: wms (ผู้ใช้/บริษัท) และ wms2 (คลัง/บัญชี)', 'CR03:001'], + ['SR06:002', 'ระบบต้องใช้งานได้บน Chrome, Edge และ Firefox รุ่นปัจจุบัน', 'CR03:002'], + ['SR06:003', 'ระบบต้องรองรับ Mobile/Tablet Browser ผ่าน Responsive UI', 'CR07:003'], + ['SR06:004', 'แอปพลิเคชัน PHP ต้องส่งเหตุการณ์ไป Node.js ผ่าน HTTP Endpoint ภายใน (NODE_EMIT_URL + NODE_EMIT_SECRET) และส่งอีเมลผ่าน SMTP ต่อบริษัท', 'CR03:003, CR03:005'], + ['SR06:005', 'Browser ต้องเชื่อมต่อ Socket.IO Endpoint (NODE_PUBLIC_URL) เพื่อรับการแจ้งเตือน', 'CR03:004'], + ]], + ['SR07', 'Security Characteristics', [ + ['SR07:001', 'การเชื่อมต่อในสภาพแวดล้อมใช้งานจริงต้องผ่าน HTTPS/TLS', 'CR06:001'], + ['SR07:002', 'การทำงานฝั่งเซิร์ฟเวอร์ต้องตรวจสอบข้อมูลนำเข้า ยืนยันตัวตน ตรวจสิทธิ์ และจำกัดขอบเขตบริษัท/คลัง', 'CR06:003, CR14:004'], + ['SR07:003', 'ระบบต้องอนุญาต Session ที่ใช้งานอยู่เพียงหนึ่งต่อบัญชี (บล็อก Concurrent Login)', 'CR06:006'], + ['SR07:004', 'ระบบต้องป้องกัน SQL Injection และ Cross-Site Scripting ทั้งด้านรับข้อมูลและแสดงผล', 'CR06:005'], + ['SR07:005', 'RBAC (Owner/Admin/Staff/Viewer) ต้องบังคับใช้ที่ฝั่งเซิร์ฟเวอร์ ไม่ใช่เพียงการซ่อนเมนู', 'CR06:004'], + ]], + ['SR08', 'Database Design Requirements', [ + ['SR08:001', 'ฐานข้อมูล wms: user, company_list, company_map_user, company_setting, company_smtp, company_usage, whitelist', 'CR01:001–CR01:004, CR04:002'], + ['SR08:002', 'ตารางข้อมูลหลัก (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', 'CR01:005, CR01:010, CR01:016'], + ['SR08:003', 'ตารางรายการ (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', 'CR01:007–CR01:018'], + ['SR08:004', 'ตารางสรุปยอดและควบคุมเอกสาร: etl_stock_summary, etl_gl_summary, document_number_sequences, document_types, schema_migrations', 'CR01:018, CR01:022, CR09:004'], + ['SR08:005', 'ตารางทั้งหมดต้องสร้างซ้ำได้ในสภาพแวดล้อมใหม่ผ่าน setup.php โดยไม่ต้องแก้ Schema ด้วยมือ', 'CR10:001, CR09:004'], + ]], + ['SR09', 'Error Handling and Recovery Attributes', [ + ['SR09:001', 'การลบ ยกเลิก หรือ Void เอกสารควบคุมต้องมี Confirm Dialog', 'CR05:004, CR01:023'], + ['SR09:002', 'ข้อผิดพลาดต้องแสดงข้อความที่ผู้ใช้เข้าใจได้แทน Fatal Error', 'CR05:003, CR13:004'], + ['SR09:003', 'การเปลี่ยนแปลงที่เกี่ยวข้องกัน (เอกสาร + สต๊อก + GL) ต้องเป็น Transaction และป้องกันยอดติดลบ/ซ้ำ', 'CR13:001, CR13:002, CR01:008'], + ]], +]; +export const SRS = SR_GROUPS.flatMap(([, , rows]) => rows); +export const srTopic = (id) => SRS.find((r) => r[0] === id)?.[1] ?? ''; + +/** Software Units grouped by module: [moduleId, moduleName, [[unitId, description, functional interface detail, srRefs, files]]]. */ +export const UNIT_GROUPS = [ + ['UN01', 'ผู้ใช้งานและสิทธิ์ (Identity & Access)', [ + ['UN01.001', 'Identity – Register & Onboarding', 'ลงทะเบียนเจ้าของบริษัท, ยืนยันอีเมล, เชิญผู้ใช้และรับคำเชิญเข้าบริษัทที่ถูกต้อง', 'SR03:001, SR08:001', 'app/login/, UserManager.php'], + ['UN01.002', 'Identity – Login & Role Guard', 'เข้าสู่ระบบด้วย Username/Password, ตรวจบทบาทและสิทธิ์แอปพลิเคชันฝั่งเซิร์ฟเวอร์ก่อนเข้าทุกหน้า', 'SR03:001, SR04:001, SR07:005', 'app/login/, UserManager.php, app/assets/utils/'], + ['UN01.003', 'Identity – Password Recovery / OTP / Session', 'ลืมรหัสผ่านผ่านอีเมล, OTP, Hash รหัสผ่าน bcrypt, บล็อก Concurrent Login', 'SR03:001, SR01:004, SR07:003', 'PasswordManager.php, PasswordResetManager.php'], + ['UN01.004', 'Identity – User & App-Access Administration', 'เพิ่ม/แก้ไข/ปิดใช้ผู้ใช้, กำหนดบทบาทและสิทธิ์การเข้าถึงแอปพลิเคชัน', 'SR03:001, SR08:001', 'app/setting/, UserManager.php'], + ]], + ['UN02', 'ตั้งค่าบริษัท (Company Settings)', [ + ['UN02.001', 'Company – Profile & System Settings', 'แก้ไขข้อมูลบริษัท, โลโก้, ค่าตั้งค่าระบบต่อบริษัท', 'SR03:002', 'CompanyProfileManager.php, CompanySettingManager.php'], + ['UN02.002', 'Company – SMTP & Mail Dispatch', 'ตั้งค่า SMTP ต่อบริษัท และส่งอีเมล Onboarding/กู้คืนรหัสผ่าน/แจ้งเตือน', 'SR03:002, SR06:004', 'SmtpManager.php'], + ]], + ['UN03', 'ข้อมูลหลัก (Master Data)', [ + ['UN03.001', 'Master – Warehouse / Storage / Bin', 'จัดการคลังสินค้า พื้นที่ และช่องจัดเก็บ พร้อมความจุ', 'SR03:003, SR08:002', 'app/inventory/, WarehouseManager.php'], + ['UN03.002', 'Master – Product & Category', 'จัดการหมวดสินค้า สินค้า หน่วยนับ และรูปสินค้า', 'SR03:003, SR08:002', 'ProductManager.php'], + ['UN03.003', 'Master – Contact', 'จัดการประเภทผู้ติดต่อ ลูกค้า และผู้ขาย', 'SR03:003, SR08:002', 'app/contact/, ContactManager.php'], + ['UN03.004', 'Master – Warehouse Layer Configuration', 'สลับโครงสร้างคลังแบบชั้นเดียว/หลายชั้นต่อบริษัท', 'SR03:003', 'CompanySettingManager.php, WarehouseManager.php'], + ]], + ['UN04', 'ควบคุมสินค้าคงคลัง (Inventory Control)', [ + ['UN04.001', 'ICS – Stock-in', 'รับสินค้าเข้าตามสินค้า จำนวน ตำแหน่ง เอกสารอ้างอิง สร้างความเคลื่อนไหวและยอดคงเหลือ', 'SR03:004, SR08:003', 'app/ics/, StockManager.php, StockTablesTrait.php'], + ['UN04.002', 'ICS – Stock-out', 'จ่ายสินค้าออกโดยตรวจสิทธิ์และยอดคงเหลือ ปฏิเสธจำนวนเกิน', 'SR03:004, SR09:003', 'StockManager.php'], + ['UN04.003', 'ICS – Stock Transfer', 'โอนย้ายระหว่างตำแหน่ง ต้นทาง/ปลายทางผูกเป็นรายการเดียว', 'SR03:004', 'StockManager.php'], + ['UN04.004', 'ICS – Lot / Serial / Expiry', 'บันทึกและสอบกลับ Lot, Serial Number, วันหมดอายุ', 'SR03:004, SR08:002', 'StockSourceManager.php, md_lot'], + ['UN04.005', 'ICS – Barcode Label & Scan', 'พิมพ์ฉลากบาร์โค้ด SKU/ตำแหน่ง และรับค่าจากเครื่องสแกน', 'SR03:004', 'BarcodeManager.php, location_barcode_label.php'], + ['UN04.006', 'ICS – File Attachment', 'แนบและเรียกดูไฟล์ที่อนุญาตในรายการที่รองรับ', 'SR03:004', 'FileUploader.php'], + ]], + ['UN05', 'ขาย (Sales)', [ + ['UN05.001', 'Sales – Quotation', 'สร้าง/แก้ไข/อนุมัติใบเสนอราคา และแปลงเป็นใบสั่งขาย', 'SR03:005, SR04:002', 'app/order/, QuotationManager.php'], + ['UN05.002', 'Sales – Sales Order', 'สร้างใบสั่งขาย ยืนยัน และตัดสต๊อกตามสถานะ', 'SR03:005, SR04:002', 'OrderManager.php'], + ['UN05.003', 'Sales – Invoice', 'ออกใบแจ้งหนี้จากใบสั่งขาย และบันทึก GL', 'SR03:005, SR04:002', 'app/revenue/, InvoiceManager.php'], + ['UN05.004', 'Sales – Return / Credit Note', 'รับคืนสินค้าและออกใบลดหนี้ พร้อมปรับสต๊อก/บัญชี', 'SR03:005, SR04:002', 'ReturnManager.php'], + ]], + ['UN06', 'จัดซื้อ (Purchasing)', [ + ['UN06.001', 'Purchasing – Purchase Request', 'สร้างและอนุมัติใบขอซื้อ', 'SR03:006', 'app/po/, PurchaseRequestManager.php'], + ['UN06.002', 'Purchasing – Purchase Order', 'แปลงใบขอซื้อเป็นใบสั่งซื้อ และติดตามสถานะ', 'SR03:006, SR04:002', 'PurchaseOrderManager.php'], + ['UN06.003', 'Purchasing – Purchase Invoice', 'บันทึกใบแจ้งหนี้ซื้อ รับสินค้าเข้า และบันทึก GL', 'SR03:006, SR04:002', 'PurchaseOrderManager.php, StockManager.php'], + ['UN06.004', 'Purchasing – Supplier Return', 'คืนสินค้าผู้ขาย พร้อมปรับสต๊อก/บัญชี', 'SR03:006, SR04:002', 'SupplierReturnManager.php'], + ]], + ['UN07', 'การเงิน (Finance)', [ + ['UN07.001', 'Finance – Receipt Billing & Receipt', 'วางบิลรับและบันทึกใบเสรจรับเงินผูกกับใบแจ้งหนี้', 'SR03:007, SR04:002', 'app/finance/, ReceiptBillingManager.php, ReceiptManager.php'], + ['UN07.002', 'Finance – Payment Billing & Payment', 'วางบิลจ่ายและบันทึกใบสำคัญจ่ายผูกกับใบแจ้งหนี้ซื้อ', 'SR03:007, SR04:002', 'PaymentBillingManager.php, PaymentManager.php'], + ]], + ['UN08', 'บัญชี (Accounting)', [ + ['UN08.001', 'Accounting – Chart of Accounts / Departments / Formulas', 'จัดการผังบัญชี แผนก และสูตรบัญชีอัตโนมัติ', 'SR03:008, SR08:002', 'app/accounting/, PostingManager.php'], + ['UN08.002', 'Accounting – Journal & GL Posting', 'บันทึกสมุดรายวันและผ่านรายการ GL แบบสมดุลภายใน Transaction', 'SR03:008, SR09:003', 'app/journal/, PostingManager.php'], + ]], + ['UN09', 'รายงานและแดชบอร์ด (Reports & Dashboard)', [ + ['UN09.001', 'Reports – Dashboard & Aggregates', 'แดชบอร์ดคลังสินค้าและบัญชีจากตารางสรุปยอด', 'SR03:009, SR05:001, SR05:002', 'app/dashboard/, app/ac_dashboard/, EtlStockManager.php'], + ['UN09.002', 'Reports – Stock Reports', 'ภาพรวมสต๊อก, ความเคลื่อนไหว, ความจุ, สินค้าใกล้หมด, หมดอายุ, Lot', 'SR03:009', 'app/reports/, ReportManager.php'], + ['UN09.003', 'Reports – Financial Reports', 'งบทดลอง, งบกำไรขาดทุน, งบดุล, VAT, สมุดรายวัน, ความเคลื่อนไหว GL', 'SR03:009', 'ReportManager.php'], + ['UN09.004', 'Reports – Filter / Print / Export', 'กรอง ดู พิมพ์ และส่งออกรายงานตามขอบเขตสิทธิ์', 'SR03:009, SR04:003', 'app/reports/'], + ]], + ['UN10', 'ควบคุมเอกสาร (Document Control)', [ + ['UN10.001', 'Document – Numbering', 'ออกเลขที่เอกสารตามลำดับที่กำหนด (document_number_sequences)', 'SR03:010, SR04:005, SR08:004', 'DocumentNumberManager.php'], + ['UN10.002', 'Document – Lifecycle & Status', 'ควบคุมสถานะเอกสาร ปฏิเสธการเปลี่ยนสถานะที่ไม่ถูกต้อง พร้อม Confirm Dialog และข้อความข้อผิดพลาด', 'SR03:010, SR09:001, SR09:002', 'BatchActionManager.php, Manager classes'], + ['UN10.003', 'Document – Audit Fields & History', 'บันทึกผู้สร้าง ผู้แก้ไข วันที่ และประวัติรายการ', 'SR03:010, SR09:001', 'td_* tables, td_bin_log'], + ]], + ['UN11', 'แจ้งเตือนและงานตามกำหนดเวลา (Notification & Scheduler)', [ + ['UN11.001', 'Node – Socket.IO Notification Server', 'รับเหตุการณ์จาก PHP ผ่าน Endpoint ที่ป้องกันด้วย Secret และส่งต่อไปยัง Browser ของผู้ใช้ที่เกี่ยวข้อง', 'SR03:011, SR04:004, SR06:004, SR06:005', 'nodejs/server.js'], + ['UN11.002', 'Node – Scheduler (ETL & Alerts)', 'สรุปยอดสต๊อก/GL, แจ้งเตือนสินค้าใกล้หมดและใบแจ้งหนี้ค้างชำระ ตามกำหนดเวลา Asia/Bangkok', 'SR03:011, SR05:002, SR01:006', 'nodejs/scheduler.js, app/cron/'], + ]], + ['UN12', 'ความปลอดภัยและการแยกข้อมูล (Security & Tenant Scope)', [ + ['UN12.001', 'Security – Tenant Scope Guard', 'จำกัดทุก Query และ Action ให้อยู่ในบริษัท/คลังที่ผู้ใช้ได้รับอนุญาต', 'SR04:001, SR04:003, SR07:002', 'StockTablesTrait.php, Manager classes'], + ['UN12.002', 'Security – Server-side Validation', 'ตรวจสอบข้อมูลนำเข้า, Prepared Statements, Escape Output ป้องกัน SQLi/XSS', 'SR07:002, SR07:004', 'Manager classes, app/assets/utils/'], + ['UN12.003', 'Security – Operation Lock & Usage Guard', 'ล็อกช่วงเวลาผ่านรายการ และจำกัดโควตารายการต่อบริษัท', 'SR07:002, SR09:003', 'OperationLockManager.php, UsageGuard.php'], + ['UN12.004', 'Security – TLS & Secret Configuration', 'ค่าตั้งค่า TLS, NODE_EMIT_SECRET และ Secrets ที่สร้างตอนติดตั้ง', 'SR07:001, SR01:005', 'docker/php/config.php.template, .env'], + ]], + ['UN13', 'ติดตั้งและสำรองข้อมูล (Deployment & Backup)', [ + ['UN13.001', 'Deploy – setup.php Schema Installer', 'สร้างฐานข้อมูล wms/wms2 และตารางทั้งหมดในขั้นตอนเดียว', 'SR01:003, SR08:005, SR06:001', 'setup.php, docker/mariadb/init-wms2.sql'], + ['UN13.002', 'Deploy – Docker Compose Stack', 'Container php-apache, mariadb, node/pm2 พร้อม Entrypoint สร้าง config.php', 'SR02:005, SR01:003', 'docker-compose.yml, docker/'], + ['UN13.003', 'Deploy – .env Generator', 'สร้าง .env และความลับอัตโนมัติ ไม่เก็บใน Git', 'SR01:005', 'docker/init-env.sh, .env.example'], + ['UN13.004', 'Deploy – Backup & Restore', 'สำรอง Git 2 Remote, mysqldump รายวัน, ขั้นตอนกู้คืน', 'SR01:003', 'Product Operation Guide, backup remote'], + ]], +]; +export const UNITS = UNIT_GROUPS.flatMap(([, , rows]) => rows); +export const unitTopic = (id) => UNITS.find((u) => u[0] === id)?.[1] ?? ''; +export const unitModule = (id) => UNIT_GROUPS.find(([m]) => id.startsWith(m))?.[1] ?? ''; + +/** + * Test cases: one per software unit. [tcId, unitId, input, output, environment, special, dependency] + */ +const ENV_WEB = 'Web Browser (Chrome/Edge/Firefox), PHP 8, MariaDB, Internal Testing Server'; +const ENV_NODE = 'Node.js + pm2, Internal Testing Server'; +export const TEST_CASES = [ + ['TC-UN01.001', 'UN01.001', 'ลงทะเบียนเจ้าของบริษัทใหม่ → ยืนยันอีเมล → เชิญผู้ใช้ → ผู้ใช้กดลิงก์เชิญ', 'สร้างบริษัท/บัญชีเจ้าของสำเร็จ ผู้ใช้ที่ถูกเชิญเข้าบริษัทที่ถูกต้อง', ENV_WEB + ', SMTP ทดสอบ', 'ต้องส่งอีเมลได้จริง', '-'], + ['TC-UN01.002', 'UN01.002', 'เข้าสู่ระบบด้วยบัญชี Owner/Admin/Staff/Viewer แล้วเรียกหน้าและ Action ที่ไม่ได้รับสิทธิ์', 'แต่ละบทบาทเข้าถึงได้เฉพาะหน้าจอ/คำสั่งที่อนุญาต คำสั่งที่ไม่ได้รับสิทธิ์ถูกปฏิเสธฝั่งเซิร์ฟเวอร์', ENV_WEB, 'ต้องมีบัญชีทดสอบครบ 4 บทบาท', 'TC-UN01.001'], + ['TC-UN01.003', 'UN01.003', 'ขอรีเซ็ตรหัสผ่าน → กรอก OTP → ตั้งรหัสใหม่; เข้าสู่ระบบบัญชีเดิมจาก 2 อุปกรณ์', 'รีเซ็ตสำเร็จโดยไม่เปิดเผยรหัสผ่านเดิม Session ที่สองถูกปฏิเสธ', ENV_WEB + ', SMTP ทดสอบ', '-', 'TC-UN01.002'], + ['TC-UN01.004', 'UN01.004', 'Admin เพิ่มผู้ใช้ เปลี่ยนบทบาท และปิดสิทธิ์แอปพลิเคชัน; Staff ลองทำรายการเดียวกัน', 'การเปลี่ยนแปลงของ Admin ถูกบันทึก Staff ถูกปฏิเสธ', ENV_WEB, '-', 'TC-UN01.002'], + ['TC-UN02.001', 'UN02.001', 'แก้ไขข้อมูลบริษัทและค่าตั้งค่าระบบ', 'ค่าใหม่ถูกบันทึกและมีผลกับบริษัทนั้นเท่านั้น', ENV_WEB, '-', 'TC-UN01.002'], + ['TC-UN02.002', 'UN02.002', 'ตั้งค่า SMTP แล้วส่งอีเมลทดสอบ/คำเชิญ', 'อีเมลถูกส่งผ่าน SMTP ของบริษัทและได้รับที่ปลายทาง', ENV_WEB + ', SMTP ทดสอบ', 'ต้องมีบัญชี SMTP ทดสอบ', 'TC-UN02.001'], + ['TC-UN03.001', 'UN03.001', 'เพิ่ม/แก้ไข/ปิดใช้ คลังสินค้า พื้นที่ และช่องจัดเก็บ; กรอกความจุไม่ถูกต้อง', 'รายการถูกต้องถูกบันทึก ข้อมูลผิดถูกปฏิเสธพร้อมข้อความ', ENV_WEB, '-', 'TC-UN01.002'], + ['TC-UN03.002', 'UN03.002', 'เพิ่มหมวดสินค้าและสินค้าพร้อมหน่วยนับ', 'สินค้าแสดงในรายการและเลือกใช้ในรายการสต๊อกได้', ENV_WEB, '-', 'TC-UN01.002'], + ['TC-UN03.003', 'UN03.003', 'เพิ่มประเภทผู้ติดต่อ ลูกค้า และผู้ขาย', 'ผู้ติดต่อเลือกใช้ในเอกสารขาย/ซื้อได้', ENV_WEB, '-', 'TC-UN01.002'], + ['TC-UN03.004', 'UN03.004', 'ตั้งบริษัท A เป็นคลังชั้นเดียว บริษัท B เป็นคลัง/พื้นที่/ช่อง แล้วรับสินค้าเข้า', 'ทั้งสองบริษัททำรายการได้ถูกต้องตามโครงสร้างของตน', ENV_WEB + ', 2 บริษัททดสอบ', '-', 'TC-UN03.001'], + ['TC-UN04.001', 'UN04.001', 'รับสินค้าเข้า ระบุสินค้า จำนวน ตำแหน่ง เอกสารอ้างอิง; กรอกจำนวนติดลบ', 'สร้างความเคลื่อนไหวและยอดคงเหลือถูกต้อง จำนวนติดลบถูกปฏิเสธ', ENV_WEB, '-', 'TC-UN03.002'], + ['TC-UN04.002', 'UN04.002', 'จ่ายสินค้าออกภายในยอดคงเหลือ และจ่ายเกินยอด', 'ยอดลดลงถูกต้อง การจ่ายเกินยอดถูกปฏิเสธ', ENV_WEB, '-', 'TC-UN04.001'], + ['TC-UN04.003', 'UN04.003', 'โอนย้ายระหว่าง 2 ตำแหน่งที่ได้รับอนุญาต', 'ต้นทางลด ปลายทางเพิ่ม ผูกเป็นรายการโอนเดียวและสอบกลับได้', ENV_WEB, '-', 'TC-UN04.001'], + ['TC-UN04.004', 'UN04.004', 'รับสินค้าเข้าพร้อม Lot, Serial Number, วันหมดอายุ แล้วเปิดรายงาน Lot/หมดอายุ', 'ข้อมูลติดตามคงอยู่และแสดงในรายงานที่เกี่ยวข้อง', ENV_WEB, '-', 'TC-UN04.001'], + ['TC-UN04.005', 'UN04.005', 'พิมพ์ฉลาก SKU/ตำแหน่ง แล้วสแกน (หรือป้อนค่า) ในหน้าจอรับเข้า', 'ฉลากมีรหัสที่ใช้งานได้ ค่าที่สแกนถูกยอมรับ', ENV_WEB + ', เครื่องสแกนหรือจำลอง', 'เครื่องพิมพ์/สแกน (ถ้ามี)', 'TC-UN03.002'], + ['TC-UN04.006', 'UN04.006', 'แนบไฟล์ที่อนุญาตและไฟล์ที่ไม่อนุญาตกับรายการ; ผู้ใช้บริษัทอื่นเรียกดู', 'ไฟล์ที่อนุญาตอัปโหลด/เรียกดูได้เฉพาะผู้มีสิทธิ์ ไฟล์ที่ไม่อนุญาตถูกปฏิเสธ', ENV_WEB, 'เตรียมไฟล์ตัวอย่าง', 'TC-UN03.002'], + ['TC-UN05.001', 'UN05.001', 'สร้างใบเสนอราคาให้ลูกค้าและแปลงเป็นใบสั่งขาย', 'ใบสั่งขายถูกสร้างพร้อมอ้างอิงใบเสนอราคา', ENV_WEB, '-', 'TC-UN03.003'], + ['TC-UN05.002', 'UN05.002', 'ยืนยันใบสั่งขายและตรวจสต๊อก', 'สถานะเปลี่ยนตามที่อนุญาตและตัดสต๊อกถูกต้อง', ENV_WEB, '-', 'TC-UN05.001, TC-UN04.001'], + ['TC-UN05.003', 'UN05.003', 'ออกใบแจ้งหนี้จากใบสั่งขาย', 'ใบแจ้งหนี้ได้เลขที่เอกสารและบันทึก GL สมดุล', ENV_WEB, '-', 'TC-UN05.002'], + ['TC-UN05.004', 'UN05.004', 'รับคืนสินค้าและออกใบลดหนี้', 'สต๊อกเพิ่มกลับและบัญชีปรับตามใบลดหนี้', ENV_WEB, '-', 'TC-UN05.003'], + ['TC-UN06.001', 'UN06.001', 'สร้างและอนุมัติใบขอซื้อ', 'ใบขอซื้ออยู่ในสถานะอนุมัติ', ENV_WEB, '-', 'TC-UN03.003'], + ['TC-UN06.002', 'UN06.002', 'แปลงใบขอซื้อเป็นใบสั่งซื้อ', 'ใบสั่งซื้อถูกสร้างพร้อมอ้างอิงใบขอซื้อ', ENV_WEB, '-', 'TC-UN06.001'], + ['TC-UN06.003', 'UN06.003', 'บันทึกใบแจ้งหนี้ซื้อและรับสินค้าเข้าคลัง', 'สต๊อกเพิ่มและ GL บันทึกสมดุล', ENV_WEB, '-', 'TC-UN06.002'], + ['TC-UN06.004', 'UN06.004', 'คืนสินค้าให้ผู้ขาย', 'สต๊อกลดและบัญชีปรับตามใบคืน', ENV_WEB, '-', 'TC-UN06.003'], + ['TC-UN07.001', 'UN07.001', 'วางบิลรับและบันทึกใบเสร็จรับเงินกับใบแจ้งหนี้', 'ยอดค้างชำระลดลง เอกสารเชื่อมโยงกันและมีประวัติ', ENV_WEB, '-', 'TC-UN05.003'], + ['TC-UN07.002', 'UN07.002', 'วางบิลจ่ายและบันทึกใบสำคัญจ่ายกับใบแจ้งหนี้ซื้อ', 'ยอดค้างจ่ายลดลง เอกสารเชื่อมโยงกันและมีประวัติ', ENV_WEB, '-', 'TC-UN06.003'], + ['TC-UN08.001', 'UN08.001', 'เพิ่มผังบัญชี แผนก และสูตรบัญชี', 'โครงสร้างบัญชีถูกบันทึกและใช้กับการผ่านรายการได้', ENV_WEB, '-', 'TC-UN01.004'], + ['TC-UN08.002', 'UN08.002', 'บันทึกสมุดรายวันแบบสมดุลและแบบไม่สมดุล; จำลองความล้มเหลวระหว่างผ่านรายการ', 'รายการสมดุลถูกผ่าน GL รายการไม่สมดุลถูกปฏิเสธ ความล้มเหลวถูก Rollback ทั้งชุด', ENV_WEB, 'ต้องจำลองความล้มเหลวบน Testing Server', 'TC-UN08.001'], + ['TC-UN09.001', 'UN09.001', 'เปิดแดชบอร์ดคลังสินค้าและบัญชีหลังรันงานสรุปยอด', 'ตัวเลขตรงกับตารางสรุปยอดและแสดงผลภายในเวลาที่ใช้งานได้', ENV_WEB, '-', 'TC-UN11.002'], + ['TC-UN09.002', 'UN09.002', 'เปิดรายงานภาพรวมสต๊อก ความเคลื่อนไหว ความจุ สินค้าใกล้หมด หมดอายุ และ Lot พร้อมตัวกรอง', 'รายงานแสดงข้อมูลที่ได้รับสิทธิ์ตามตัวกรอง', ENV_WEB, '-', 'TC-UN04.001–TC-UN04.004'], + ['TC-UN09.003', 'UN09.003', 'เปิดงบทดลอง งบกำไรขาดทุน งบดุล VAT สมุดรายวัน และความเคลื่อนไหว GL', 'ยอดรวมสอดคล้องกันในงวดที่เลือก', ENV_WEB, '-', 'TC-UN08.002'], + ['TC-UN09.004', 'UN09.004', 'กรอง ดู พิมพ์ และส่งออกรายงาน', 'ผลลัพธ์ตรงกับขอบเขตและตัวกรองที่เลือก', ENV_WEB, '-', 'TC-UN09.002'], + ['TC-UN10.001', 'UN10.001', 'สร้างเอกสารควบคุมหลายฉบับติดต่อกัน', 'เลขที่เอกสารเรียงตามลำดับที่ตั้งค่า ไม่ซ้ำ', ENV_WEB, '-', 'TC-UN05.001'], + ['TC-UN10.002', 'UN10.002', 'พยายามเปลี่ยนสถานะเอกสารข้ามขั้น; ลบเอกสารควบคุม', 'การเปลี่ยนสถานะที่ไม่ถูกต้องถูกปฏิเสธพร้อมข้อความ การลบต้องยืนยันก่อน', ENV_WEB, '-', 'TC-UN10.001'], + ['TC-UN10.003', 'UN10.003', 'สร้างแล้วแก้ไขรายการ แล้วเปิดดูประวัติ', 'ผู้สร้าง ผู้แก้ไข วันที่ และสถานะถูกบันทึกครบ', ENV_WEB, '-', 'TC-UN03.002'], + ['TC-UN11.001', 'UN11.001', 'เปลี่ยนสถานะเอกสารที่ต้องแจ้งเตือน; เรียก Endpoint แจ้งเตือนโดยไม่มี Secret', 'ผู้ใช้ที่เกี่ยวข้องได้รับแจ้งเตือน Real-time เท่านั้น การเรียกโดยไม่มี Secret ถูกปฏิเสธ', ENV_WEB + ', ' + ENV_NODE, 'บริการ Node.js ทำงานอยู่', 'TC-UN01.002'], + ['TC-UN11.002', 'UN11.002', 'รันงานสรุปยอดสต๊อก/GL และแจ้งเตือนสินค้าใกล้หมด/ใบแจ้งหนี้ค้างชำระ; ตรวจเวลาบันทึกเทียบ Asia/Bangkok', 'งานเสร็จโดยไม่ซ้ำ ผลลัพธ์อยู่ในขอบเขตสิทธิ์ เวลาถูกต้องตามเขตเวลา', ENV_NODE, 'Scheduler ทำงานอยู่', 'TC-UN04.001, TC-UN07.001'], + ['TC-UN12.001', 'UN12.001', 'ผู้ใช้บริษัท A เรียกข้อมูล/รายการของบริษัท B และคลังที่ไม่ได้รับสิทธิ์ ทั้งผ่าน UI และ URL/ API โดยตรง', 'ถูกปฏิเสธทุกช่องทาง ไม่มีข้อมูลรั่วไหลหรือถูกแก้ไข', ENV_WEB + ', 2 บริษัททดสอบ', '-', 'TC-UN01.002, TC-UN03.001'], + ['TC-UN12.002', 'UN12.002', 'ส่งข้อมูลนำเข้าที่มี SQL/Script และค่าที่ไม่ถูกต้องไปยัง Action ฝั่งเซิร์ฟเวอร์', 'ถูกปฏิเสธหรือ Escape โดยไม่มีข้อมูลเปลี่ยนแปลงหรือ Script ทำงาน', ENV_WEB + ', เครื่องมือทดสอบ API', '-', 'TC-UN01.002'], + ['TC-UN12.003', 'UN12.003', 'ผ่านรายการในงวดที่ล็อก; ทำรายการเกินโควตาบริษัท', 'รายการถูกปฏิเสธพร้อมข้อความ', ENV_WEB, '-', 'TC-UN08.002'], + ['TC-UN12.004', 'UN12.004', 'ตรวจ Repository และสภาพแวดล้อมที่ติดตั้งว่ามีความลับหรือไฟล์ตั้งค่าเปิดเผยหรือไม่; เรียกผ่าน HTTPS', 'ไม่พบความลับใน Git หรือเข้าถึงได้จากเว็บ การเชื่อมต่อผ่าน TLS', 'Repository, Deployed Environment', '-', '-'], + ['TC-UN13.001', 'UN13.001', 'ติดตั้งบนเครื่องใหม่ด้วย setup.php', 'ฐานข้อมูลและตารางครบตาม SR08 โดยไม่แก้ Schema ด้วยมือ', 'Fresh Linux Server, PHP 8, MariaDB', 'ต้องใช้เครื่องว่าง', '-'], + ['TC-UN13.002', 'UN13.002', 'รัน docker compose up -d --build', 'Container php-apache, mariadb, node ทำงานและเข้าใช้ระบบได้', 'Docker Host', '-', 'TC-UN13.003'], + ['TC-UN13.003', 'UN13.003', 'รัน docker/init-env.sh โดยเว้นค่าความลับว่าง', '.env ถูกสร้างพร้อมความลับสุ่ม และไม่ถูก Git ติดตาม', 'Docker Host', '-', '-'], + ['TC-UN13.004', 'UN13.004', 'สำรองฐานข้อมูล กู้คืนสู่สภาพแวดล้อมทดสอบ และ Clone จาก Backup Remote', 'ข้อมูลและ Source Code กู้คืนได้ครบตามขั้นตอนในคู่มือ', 'Testing Server, Backup Remote', 'ตาม Product Operation Guide', 'TC-UN13.001'], +]; +export const tcByUnit = (unitId) => TEST_CASES.find((t) => t[1] === unitId)?.[0] ?? ''; + +/** Traceability: CR id -> { sr: [...], un: [...] }. The test case is the one owned by the first unit. */ +export const TRACE = { + 'CR01:001': { sr: ['SR03:001', 'SR08:001'], un: ['UN01.001'] }, + 'CR01:002': { sr: ['SR03:001', 'SR04:001', 'SR07:005'], un: ['UN01.002'] }, + 'CR01:003': { sr: ['SR03:001', 'SR07:003'], un: ['UN01.003'] }, + 'CR01:004': { sr: ['SR03:001', 'SR03:002'], un: ['UN01.004', 'UN02.001', 'UN02.002'] }, + 'CR01:005': { sr: ['SR03:003', 'SR08:002'], un: ['UN03.001', 'UN03.002', 'UN03.003'] }, + 'CR01:006': { sr: ['SR03:003'], un: ['UN03.004'] }, + 'CR01:007': { sr: ['SR03:004', 'SR08:003'], un: ['UN04.001'] }, + 'CR01:008': { sr: ['SR03:004', 'SR09:003'], un: ['UN04.002'] }, + 'CR01:009': { sr: ['SR03:004'], un: ['UN04.003'] }, + 'CR01:010': { sr: ['SR03:004', 'SR08:002'], un: ['UN04.004'] }, + 'CR01:011': { sr: ['SR03:009'], un: ['UN09.002'] }, + 'CR01:012': { sr: ['SR03:004'], un: ['UN04.005'] }, + 'CR01:013': { sr: ['SR03:005', 'SR04:002'], un: ['UN05.001', 'UN05.002', 'UN05.003', 'UN05.004'] }, + 'CR01:014': { sr: ['SR03:006', 'SR04:002'], un: ['UN06.001', 'UN06.002', 'UN06.003', 'UN06.004'] }, + 'CR01:015': { sr: ['SR03:007', 'SR04:002'], un: ['UN07.001', 'UN07.002'] }, + 'CR01:016': { sr: ['SR03:008'], un: ['UN08.001', 'UN08.002'] }, + 'CR01:017': { sr: ['SR03:009'], un: ['UN09.003'] }, + 'CR01:018': { sr: ['SR03:010', 'SR04:005', 'SR08:004'], un: ['UN10.001', 'UN10.002'] }, + 'CR01:019': { sr: ['SR03:004'], un: ['UN04.006'] }, + 'CR01:020': { sr: ['SR03:009'], un: ['UN09.004'] }, + 'CR01:021': { sr: ['SR03:011', 'SR04:004', 'SR06:005'], un: ['UN11.001'] }, + 'CR01:022': { sr: ['SR03:011', 'SR05:002', 'SR08:004'], un: ['UN11.002'] }, + 'CR01:023': { sr: ['SR03:010', 'SR09:001'], un: ['UN10.003'] }, + 'CR01:024': { sr: ['SR04:001', 'SR04:003', 'SR07:002'], un: ['UN12.001'] }, + 'CR02:001': { sr: ['SR05:001'], un: ['UN09.001'] }, + 'CR02:002': { sr: ['SR05:002'], un: ['UN09.001', 'UN11.002'] }, + 'CR02:003': { sr: ['SR05:003'], un: ['UN09.001'] }, + 'CR03:001': { sr: ['SR06:001'], un: ['UN13.001'] }, + 'CR03:002': { sr: ['SR06:002'], un: ['UN01.002'] }, + 'CR03:003': { sr: ['SR06:004', 'SR04:004'], un: ['UN11.001'] }, + 'CR03:004': { sr: ['SR06:005'], un: ['UN11.001'] }, + 'CR03:005': { sr: ['SR06:004', 'SR03:002'], un: ['UN02.002'] }, + 'CR04:001': { sr: ['SR02:001'], un: ['UN01.002'] }, + 'CR04:002': { sr: ['SR08:001', 'SR08:002', 'SR08:003'], un: ['UN13.001'] }, + 'CR04:003': { sr: ['SR04:001'], un: ['UN01.002'] }, + 'CR04:004': { sr: ['SR01:002'], un: ['UN13.001'] }, + 'CR05:001': { sr: ['SR02:002'], un: ['UN01.002'] }, + 'CR05:002': { sr: ['SR04:001'], un: ['UN01.002'] }, + 'CR05:003': { sr: ['SR09:002'], un: ['UN10.002'] }, + 'CR05:004': { sr: ['SR09:001'], un: ['UN10.002'] }, + 'CR05:005': { sr: ['SR03:004'], un: ['UN04.005'] }, + 'CR06:001': { sr: ['SR07:001'], un: ['UN12.004'] }, + 'CR06:002': { sr: ['SR01:005'], un: ['UN13.003', 'UN12.004'] }, + 'CR06:003': { sr: ['SR07:002'], un: ['UN12.002'] }, + 'CR06:004': { sr: ['SR07:005'], un: ['UN01.002'] }, + 'CR06:005': { sr: ['SR07:004'], un: ['UN12.002'] }, + 'CR06:006': { sr: ['SR07:003'], un: ['UN01.003'] }, + 'CR07:001': { sr: ['SR01:003'], un: ['UN13.001', 'UN13.002'] }, + 'CR07:002': { sr: ['SR01:006'], un: ['UN11.002'] }, + 'CR07:003': { sr: ['SR06:003', 'SR02:002'], un: ['UN01.002'] }, + 'CR07:004': { sr: ['SR01:003'], un: ['UN13.001'] }, + 'CR08:001': { sr: ['SR01:003'], un: ['UN13.004'] }, + 'CR08:002': { sr: ['SR01:003'], un: ['UN13.004'] }, + 'CR08:003': { sr: ['SR05:004'], un: ['UN11.002'] }, + 'CR08:004': { sr: ['SR04:003'], un: ['UN12.001'] }, + 'CR08:005': { sr: ['SR05:002'], un: ['UN11.002'] }, + 'CR09:001': { sr: ['SR02:003', 'SR02:004'], un: ['UN13.001'] }, + 'CR09:002': { sr: ['SR01:005'], un: ['UN13.003'] }, + 'CR09:003': { sr: ['SR01:001'], un: ['UN13.004'] }, + 'CR09:004': { sr: ['SR08:005', 'SR08:004'], un: ['UN13.001'] }, + 'CR10:001': { sr: ['SR01:003', 'SR08:005'], un: ['UN13.001'] }, + 'CR10:002': { sr: ['SR02:005'], un: ['UN13.002'] }, + 'CR10:003': { sr: ['SR01:005'], un: ['UN13.003'] }, + 'CR10:004': { sr: ['SR01:001'], un: ['UN13.001'] }, + 'CR11:001': { sr: ['SR01:001'], un: ['UN01.002'] }, + 'CR11:002': { sr: ['SR01:001'], un: ['UN13.001'] }, + 'CR11:003': { sr: ['SR01:001'], un: ['UN01.002'] }, + 'CR11:004': { sr: ['SR01:001'], un: ['UN13.004'] }, + 'CR12:001': { sr: ['SR01:002'], un: ['UN13.001'] }, + 'CR12:002': { sr: ['SR01:001'], un: ['UN13.001'] }, + 'CR12:003': { sr: ['SR01:004'], un: ['UN01.003'] }, + 'CR12:004': { sr: ['SR01:001'], un: ['UN13.001'] }, + 'CR13:001': { sr: ['SR09:003'], un: ['UN08.002'] }, + 'CR13:002': { sr: ['SR09:003'], un: ['UN04.002'] }, + 'CR13:003': { sr: ['SR01:003'], un: ['UN13.004'] }, + 'CR13:004': { sr: ['SR09:002'], un: ['UN10.002'] }, + 'CR14:001': { sr: ['SR01:001'], un: ['UN01.002'] }, + 'CR14:002': { sr: ['SR01:001'], un: ['UN01.002'] }, + 'CR14:003': { sr: ['SR01:001'], un: ['UN01.002'] }, + 'CR14:004': { sr: ['SR07:002'], un: ['UN12.001'] }, +}; +export const traceOf = (crId) => { + const t = TRACE[crId]; + if (!t) throw new Error(`No traceability entry for ${crId}`); + return { ...t, tc: tcByUnit(t.un[0]) }; +}; +// Sanity: every CR is traced and every trace target exists. +for (const [id] of CRS) { + const t = traceOf(id); + for (const s of t.sr) if (!srTopic(s)) throw new Error(`${id} references unknown ${s}`); + for (const u of t.un) if (!unitTopic(u)) throw new Error(`${id} references unknown ${u}`); + if (!t.tc) throw new Error(`${id} has no test case`); +} diff --git a/scripts/sdlc-seed/format.mjs b/scripts/sdlc-seed/format.mjs new file mode 100644 index 0000000..1ccef18 --- /dev/null +++ b/scripts/sdlc-seed/format.mjs @@ -0,0 +1,25 @@ +// Document scaffold shared by every generated work product. +import { CODE, PROJECT_TH } from './project.mjs'; +import { control, signatures, doc } from './lib.mjs'; + +/** + * Build a work product in the audited package layout: + * title → footer marker → document-control block → body sections → three signature tables. + */ +export function workProduct({ type, footer, rows, body, secretary, reviewer, approver }) { + return doc( + `# ${type}`, + ``, + control(rows), + body, + signatures(secretary, reviewer, approver), + ); +} + +/** The Document No / Project Name / Project Code rows every work product starts with. */ +export const head = (type, release, extra = []) => [ + ['Document No', type, 'Release, Version, By:', release], + ['Project Name', PROJECT_TH], + ['Project Code', CODE], + ...extra, +]; diff --git a/scripts/sdlc-seed/history.mjs b/scripts/sdlc-seed/history.mjs new file mode 100644 index 0000000..588d4dc --- /dev/null +++ b/scripts/sdlc-seed/history.mjs @@ -0,0 +1,256 @@ +// Project history: work schedule, weekly progress periods, meetings, corrections and changes. +// Every dated row is anchored to the controlled Git history of the delivered application. +import { P, CRS } from './project.mjs'; + +/** Work Schedule: [no, phase, task, detail, responsible(ids), start, finish, deliverable, status, remark] */ +export const TASKS = [ + ['1.1', 'Project Initiation', 'Kick-off Meeting', 'เปิดโครงการ ชี้แจงขอบเขต เป้าหมาย และทีมงาน', ['ApS', 'SeV'], '2026-01-05', '2026-01-09', 'Statement of Work', 'Completed', 'เปิดโครงการอย่างเป็นทางการ'], + ['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.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.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'], + ['3.5', 'Project Execution', 'Order & Barcode Workflows', 'พัฒนาใบสั่งขาย ใบรับคืน ใบแจ้งหนี้ คลังหลายชั้น และบาร์โค้ด', ['ThS'], '2026-05-02', '2026-05-08', 'Order & barcode modules', 'Completed', 'Git a90975d–304848d'], + ['3.6', 'Project Execution', 'Production Preparation & Setup', 'เตรียมใช้งานจริง Base URL อัตโนมัติ และสคริปต์ติดตั้งฐานข้อมูล', ['ThS'], '2026-05-11', '2026-05-13', 'setup.php, configuration', 'Completed', 'Git d989e59–bf3be28'], + ['3.7', 'Project Execution', 'Accounting & Finance Workflows', 'พัฒนาผังบัญชี GL สมุดรายวัน ใบวางบิล ใบเสร็จ และใบสำคัญจ่าย', ['ThS'], '2026-05-13', '2026-05-23', 'Accounting & finance modules', 'Completed', 'Git 04a683b–eddb10a'], + ['3.8', 'Project Execution', 'Real-time Services & Scheduled Jobs', 'พัฒนา Socket.IO, ตารางสรุปยอด และงานแจ้งเตือนตามกำหนดเวลา', ['ThS'], '2026-05-22', '2026-05-27', 'Node.js services', 'Completed', 'Git 9c275eb–b8798bc'], + ['3.9', 'Project Execution', 'Security Hardening & Lifecycle Review', 'ทบทวน Role Guard ขอบเขตบริษัท วงจรเอกสาร และโควตารายการ', ['ThS', 'PaNg'], '2026-05-21', '2026-05-28', 'Hardening commits', 'Completed', 'Git 6eeebfe–ed3dd2f'], + ['3.10', 'Project Execution', 'Refactor & Development Baseline', 'ลดความซ้ำซ้อนของคลาสและตั้ง Baseline การพัฒนา', ['ThS'], '2026-05-29', '2026-05-29', 'Development baseline', 'Completed', 'Git a0677d6'], + ['4.1', 'Project Control', 'Progress & Meeting Records', 'ติดตามความก้าวหน้า ประเด็นปัญหา มติ และการแก้ไขตลอดโครงการ', ['ApS', 'YaB'], '2026-01-05', '2026-08-24', 'Progress Status, Meeting Record', 'Completed', 'บันทึกรายงวดตลอดโครงการ'], + ['4.2', 'Project Control', 'Configuration & Repository Control', 'ควบคุม Source Code, Baseline, เวอร์ชันเอกสาร และการสำรองข้อมูล', ['ThS', 'YaB'], '2026-02-19', '2026-08-24', 'Software Configuration', 'Completed', 'Git origin + backup remote'], + ['4.3', 'Verification', 'Verify Work Products', 'ตรวจสอบความต้องการ ออกแบบ ส่วนประกอบ และการสอบกลับ', ['PaNg', 'NoC'], '2026-05-30', '2026-08-17', 'Verification Results', 'Completed', 'ตรวจสอบ 4 รอบ รอบสุดท้าย 17 ส.ค. 69'], + ['4.4', 'Validation', 'System Test & UAT', 'ทดสอบระบบตาม Test Case และทดสอบการยอมรับโดยผู้ใช้', ['PaNg', 'SeV'], '2026-08-10', '2026-08-14', 'Test Report, Validation Results', 'Completed', 'ทดสอบ 45 Test Case และ 12 สถานการณ์ UAT'], + ['4.5', 'Documentation', 'Operational Documentation', 'จัดทำคู่มือผู้ใช้ คู่มือผู้ดูแลระบบ และคู่มือบำรุงรักษา', ['ThS', 'YaB'], '2026-06-01', '2026-08-17', 'User / Operation / Maintenance docs', 'Completed', 'จัดทำครบ 3 ฉบับ'], + ['4.6', 'Stabilization', 'Post-baseline Corrections', 'แก้ไขปัญหาการเข้าสู่ระบบและค่าตั้งค่าหลัง Baseline', ['ThS'], '2026-08-03', '2026-08-03', 'Correction Register', 'Completed', 'Git b2c4374'], + ['4.7', 'Stabilization', 'Demonstration Data & Delivery Package', 'เตรียมข้อมูลสาธิต ปรับแบรนด์ และชุดติดตั้ง Docker Compose', ['ThS'], '2026-08-14', '2026-08-17', 'Demo data, Docker stack', 'Completed', 'Git dd48a8b–6c39700'], + ['5.1', 'Project Close', 'Final Work-product Review', 'ตรวจสอบความครบถ้วนของ Work Products และหลักฐาน', ['ApS', 'YaB'], '2026-08-10', '2026-08-17', 'List of Evidence', 'Completed', 'ตรวจรอบที่ 4 เมื่อ 17 ส.ค. 69'], + ['5.2', 'Project Close', 'Training', 'อบรมผู้ใช้งานก่อนเปิดใช้งานจริง', ['ThS', 'PaNg'], '2026-08-22', '2026-08-22', 'Training Report', 'Completed', 'ผู้เข้าอบรม 6 คน'], + ['5.3', 'Project Close', 'Acceptance & Project Closure', 'ส่งมอบระบบ ตรวจรับ และปิดโครงการ', ['SeV', 'ApS'], '2026-08-17', '2026-08-24', 'Acceptance Report', 'Completed', 'ตรวจรับ 17 ส.ค. 69 ปิดโครงการ 24 ส.ค. 69'], +]; +export const taskById = (id) => TASKS.find((t) => t[0] === id); + +/** Correction Register: [id, detected, corrected, severity, problem, cause, action, ownerId, commit, testCase] */ +export const CORRECTIONS = [ + ['ISS-001', '2026-03-03', '2026-03-09', 'สูง', 'ผลตรวจความปลอดภัยเบื้องต้นพบจุดที่ต้องแก้ไข', 'ยังไม่ได้ใช้แนวปฏิบัติ Secure Coding ครบทุกจุด', 'แก้ไขตามผลตรวจความปลอดภัยทั้งชุด', 'ThS', '7cb78d0', 'TC-UN12.002'], + ['ISS-002', '2026-04-18', '2026-04-24', 'สูง', 'คำสั่งบางรายการทำให้ความถูกต้องของข้อมูลเสียหาย', 'ไม่มีการตรวจสอบความสัมพันธ์ของข้อมูลก่อนทำรายการ', 'ถอดคำสั่งที่มีปัญหาและเพิ่มการตรวจสอบความถูกต้อง', 'ThS', '92d116f', 'TC-UN08.002'], + ['ISS-003', '2026-04-30', '2026-05-06', 'สูง', 'การตรวจสิทธิ์ตามบทบาทยังไม่ครอบคลุมทุกหน้าจอ', 'พัฒนาสิทธิ์แบบเพิ่มทีละส่วนระหว่างพัฒนา', 'เพิ่ม Role Guard ให้ครบและปรับปรุงเอกสารประกอบ', 'ThS', '2eb6a1a', 'TC-UN01.002'], + ['ISS-004', '2026-05-01', '2026-05-07', 'สูง', 'พบช่องโหว่ด้านความปลอดภัยที่ยังไม่ได้ปิด', 'การตรวจสอบสิทธิ์บางเส้นทางยังไม่สมบูรณ์', 'ปิดช่องโหว่ที่พบตามผลการตรวจสอบ', 'ThS', 'a75d37e', 'TC-UN12.002'], + ['ISS-005', '2026-05-02', '2026-05-08', 'กลาง', 'ชื่อตัวแปร/ฟังก์ชันไม่สอดคล้องกัน และ Session ทำงานผิดพลาด', 'พัฒนาเป็นช่วง ๆ ทำให้การตั้งชื่อไม่เป็นมาตรฐานเดียวกัน', 'ปรับชื่อให้เป็นมาตรฐานเดียวกันและแก้ปัญหา Session', 'ThS', '304848d', 'TC-UN01.003'], + ['ISS-006', '2026-05-05', '2026-05-11', 'สูง', 'พบประเด็นความปลอดภัยของเว็บแอปพลิเคชัน', 'การตรวจสอบข้อมูลนำเข้ายังไม่ครอบคลุม', 'แก้ไขความปลอดภัยของเว็บแอปพลิเคชันตามที่ตรวจพบ', 'ThS', '7a87909', 'TC-UN12.002'], + ['ISS-007', '2026-05-06', '2026-05-12', 'กลาง', 'ขั้นตอน Onboarding ทำงานไม่ครบตามที่ออกแบบ', 'เงื่อนไขการรับคำเชิญไม่ครอบคลุมทุกกรณี', 'แก้ไขขั้นตอน Onboarding ให้ทำงานถูกต้อง', 'ThS', '8f1c5c4', 'TC-UN01.001'], + ['ISS-008', '2026-05-07', '2026-05-13', 'กลาง', 'การลงทะเบียนผู้ใช้ใหม่ล้มเหลวในบางกรณี', 'การตรวจสอบข้อมูลลงทะเบียนไม่ครบถ้วน', 'แก้ไขขั้นตอนการลงทะเบียน', 'ThS', '4433ef1', 'TC-UN01.001'], + ['ISS-009', '2026-05-07', '2026-05-13', 'สูง', 'การตรวจสอบสิทธิ์ระดับฐานข้อมูลทำงานไม่ถูกต้อง', 'การกำหนดสิทธิ์เชื่อมต่อฐานข้อมูลไม่สอดคล้องกับบทบาท', 'แก้ไขการตรวจสอบสิทธิ์ db_auth', 'ThS', '8cf1d93', 'TC-UN12.001'], + ['ISS-010', '2026-05-14', '2026-05-20', 'กลาง', 'รูปแบบการเขียนโค้ดในแต่ละโมดูลไม่สอดคล้องกัน', 'พัฒนาหลายโมดูลคู่ขนานกัน', 'ทบทวนและปรับรูปแบบการเขียนโค้ดให้สอดคล้องกัน', 'ThS', '91f8bb8', 'TC-UN13.001'], + ['ISS-011', '2026-05-15', '2026-05-21', 'สูง', 'การเชิญผู้ใช้ สิทธิ์แอปพลิเคชัน และโควตารายการยังไม่รัดกุม', 'ควบคุมสิทธิ์และโควตาถูกเพิ่มภายหลัง', 'แก้ไขการเชิญผู้ใช้ เพิ่มการควบคุมสิทธิ์และโควตารายการ', 'ThS', '6eeebfe', 'TC-UN12.003'], + ['ISS-012', '2026-05-15', '2026-05-21', 'สูง', 'StockManager แปลงค่า Lot/Serial ผิดพลาด ทำให้สอบกลับไม่ถูกต้อง', 'การแปลงชนิดข้อมูลไม่รองรับค่าที่เป็นข้อความ', 'แก้ไขการแปลงค่า Lot/Serial และเพิ่มชุดทดสอบวงจรเอกสาร', 'ThS', '94032dd', 'TC-UN04.004'], + ['ISS-013', '2026-05-15', '2026-05-21', 'กลาง', 'ยังพบข้อบกพร่องของขั้นตอน Onboarding เพิ่มเติม', 'เส้นทางการรับคำเชิญมีหลายเงื่อนไข', 'แก้ไขข้อบกพร่องของ Onboarding ที่พบเพิ่ม', 'ThS', 'b76dc67', 'TC-UN01.001'], + ['ISS-014', '2026-05-17', '2026-05-23', 'กลาง', 'เส้นทางไฟล์ (File Path) ไม่ถูกต้องในบางสภาพแวดล้อม', 'สมมติฐานเส้นทางติดตั้งไม่ตรงกัน', 'แก้ไขเส้นทางไฟล์ให้ถูกต้องทั้งระบบ', 'ThS', '59037b5, f4ef776', 'TC-UN13.001'], + ['ISS-015', '2026-05-17', '2026-05-23', 'สูง', 'ผลตรวจโค้ดพบปัญหา require_once, ขั้นตอนจ่ายออก และ Role Guard', 'การควบคุมข้ามโมดูลไม่สอดคล้องกัน', 'แก้ไข require_once, ขั้นตอนจ่ายออก และเพิ่ม Role Guard', 'ThS', 'b07882e', 'TC-UN01.002'], + ['ISS-016', '2026-05-18', '2026-05-24', 'สูง', 'อนุญาตให้เข้าสู่ระบบพร้อมกันหลาย Session', 'ยังไม่มีการบังคับ Session เดียวต่อบัญชี', 'บล็อกการเข้าสู่ระบบซ้ำซ้อนและปรับนโยบายยืนยันตัวตนตามบทบาท', 'ThS', '2930973', 'TC-UN01.003'], + ['ISS-017', '2026-05-19', '2026-05-25', 'สูง', 'ยังพบช่องว่างของการควบคุมการเข้าสู่ระบบ', 'บางเส้นทางเข้าสู่ระบบไม่ผ่านการตรวจสอบเดียวกัน', 'ปิดช่องว่างการเข้าสู่ระบบที่พบ', 'ThS', '4733c78', 'TC-UN01.002'], + ['ISS-018', '2026-05-20', '2026-05-26', 'สูง', 'ขั้นตอน Onboarding ผู้ใช้ที่ถูกเชิญต้องเพิ่มความปลอดภัย', 'มีหลายเส้นทางที่ต้องบังคับใช้การควบคุมเดียวกัน', 'ดำเนินการ Security Hardening รายการ C1–N7', 'ThS', 'b4b1f5c', 'TC-UN01.001'], + ['ISS-019', '2026-05-20', '2026-05-26', 'สูง', 'วงจรชีวิตเอกสารในระบบไม่ตรงกับข้อกำหนด', 'ข้อกำหนดและการพัฒนาเปลี่ยนแปลงไม่พร้อมกัน', 'ปรับข้อกำหนดและแก้โค้ดรายการ C2/M9', 'ThS', 'cb36d3b', 'TC-UN10.002'], + ['ISS-020', '2026-05-20', '2026-05-26', 'สูง', 'ข้อมูลหลักมีช่องว่างระหว่างข้อกำหนดและการพัฒนา', 'ข้อกำหนดข้อมูลหลักถูกปรับระหว่างพัฒนา', 'ปรับข้อกำหนดและแก้โค้ดรายการ C1/C2/M3–M6', 'ThS', 'dfeb575', 'TC-UN03.001'], + ['ISS-021', '2026-05-21', '2026-05-27', 'กลาง', 'งานตามกำหนดเวลาของ Node.js ทำงานผิดพลาด', 'การตั้งค่า Cron ของบริการ Node.js ไม่ถูกต้อง', 'แก้ไขการทำงานของ Cron บน Node.js', 'ThS', 'f3c0e3c, 714b70d', 'TC-UN11.002'], + ['ISS-022', '2026-05-21', '2026-05-27', 'กลาง', 'เอกสารประกอบภายในโครงการยังไม่ครบถ้วน', 'เอกสารถูกปรับตามการพัฒนาอย่างต่อเนื่อง', 'ทบทวนเอกสารทั้งหมดและแก้ไขส่วนที่ขาด', 'ThS', '99ae35d', 'TC-UN13.001'], + ['ISS-023', '2026-05-22', '2026-05-28', 'กลาง', 'การเปลี่ยนคำว่า Rack เป็น Bin ไม่ครบทุกจุด และ ReportManager ผิดพลาด', 'เปลี่ยนชื่อไม่ครบทุกไฟล์และป้ายกำกับหน้าจอ', 'เปลี่ยนชื่อไฟล์ ป้ายกำกับ และแก้คุณสมบัติของ ReportManager', 'ThS', '5df6736', 'TC-UN03.001'], + ['ISS-024', '2026-05-22', '2026-05-28', 'สูง', 'การเข้าถึงตารางสต๊อกยังไม่จำกัดตามคลังของบริษัท', 'ขอบเขตสิทธิ์คลังสินค้ายังไม่ครบทุกคำสั่ง', 'จำกัดการเข้าถึงตารางสต๊อกตามคลังที่บริษัทได้รับสิทธิ์', 'ThS', '9a50238', 'TC-UN12.001'], + ['ISS-025', '2026-05-22', '2026-05-28', 'ต่ำ', 'แถบเลื่อนแนวนอนเกินขอบหน้าจอจากระยะขอบ Sidebar', 'ค่าระยะขอบเกินความกว้างของ Viewport', 'แก้ไขการจัดวาง Sidebar ให้อยู่ในขอบหน้าจอ', 'ThS', 'ed3dd2f', 'TC-UN01.002'], + ['ISS-026', '2026-05-22', '2026-05-28', 'สูง', 'ระบบยังรับการเข้าสู่ระบบใหม่ขณะบัญชีมี Session ทำงานอยู่', 'การบังคับ Session เดียวยังไม่ครอบคลุมทุกกรณี', 'ปฏิเสธการเข้าสู่ระบบใหม่เมื่อบัญชีมี Session ทำงานอยู่', 'ThS', 'fda211b', 'TC-UN01.003'], + ['ISS-027', '2026-05-23', '2026-05-29', 'ต่ำ', 'เมธอดของคลาสมีการทำงานซ้ำซ้อน', 'พัฒนาเพิ่มทีละส่วนทำให้เกิดความซ้ำซ้อน', 'ลดความซ้ำซ้อนของเมธอดในคลาส', 'ThS', 'a0677d6', 'TC-UN13.001'], + ['ISS-028', '2026-07-28', '2026-08-03', 'สูง', 'การเข้าสู่ระบบและค่าตั้งค่าสภาพแวดล้อมผิดพลาดหลัง Baseline', 'ค่าตั้งค่าของสภาพแวดล้อมใหม่ไม่ตรงกับที่ระบบคาดหวัง', 'แก้ไขการเข้าสู่ระบบและค่าตั้งค่าสภาพแวดล้อม', 'ThS', 'b2c4374', 'TC-UN12.004'], +]; + +/** Change Reports: one document each. */ +export const CHANGES = [ + { + id: 'CH-001', date: '2026-05-21', file: 'Rack to Bin Rename', + titleTh: 'เปลี่ยนคำเรียกตำแหน่งจัดเก็บจาก Rack เป็น Bin', + requester: P.NoC, unit: 'ฝ่ายวิเคราะห์ระบบ / ตัวแทนผู้ใช้งานคลังสินค้า', + type: 'Scope', typeChecked: 'Quality', priority: 'Medium', + description: 'เปลี่ยนคำเรียกตำแหน่งจัดเก็บสินค้าจาก "Rack" เป็น "Bin" ทั้งระบบ ครอบคลุมป้ายกำกับหน้าจอ, custom.js, เครื่องมือบาร์โค้ด (BarcodeManager.php, location_barcode_label.php, retrieve_rack.php) และคลาสจัดการคลังสินค้า สต๊อก ใบสั่งขาย รายงาน ใบรับคืน ใบคืนผู้ขาย สินค้า และการตั้งค่าบริษัท', + justification: 'ให้คำที่ใช้ในระบบตรงกับคำที่พนักงานคลังสินค้าใช้จริงในการปฏิบัติงาน ลดความสับสนระหว่างการใช้งานและการอบรม', + impact: [ + ['ผลกระทบต่อ Scope', 'แก้ไข 14 ไฟล์ ประมาณ 1,000 บรรทัด ครอบคลุมคลาสจัดการ 8 คลาสและเครื่องมือบาร์โค้ด ไม่มีการเพิ่มฟังก์ชันใหม่'], + ['ผลกระทบต่อ Schedule', 'ดำเนินการภายในช่วงพัฒนาปัจจุบัน ไม่กระทบกำหนดส่งมอบ'], + ['ผลกระทบต่อ Budget/Cost', 'ไม่มีค่าใช้จ่ายเพิ่ม ใช้ทรัพยากรทีมพัฒนาเดิม'], + ['ผลกระทบต่อ Resource', 'ผู้พัฒนา 1 คน'], + ['ผลกระทบต่อ Quality/Deliverables', 'เป็นการเปลี่ยนคำเรียกเท่านั้น ไม่เปลี่ยนพฤติกรรมของระบบ ข้อบกพร่องที่เกิดจากการเปลี่ยนไม่ครบให้บันทึกใน Correction Register (ISS-023)'], + ], + commit: '8f57ab5', result: 'ดำเนินการแล้วเสร็จ และตรวจสอบผลด้วย TC-UN03.001 ผ่านเมื่อ 10–14 ส.ค. 69', + }, + { + id: 'CH-002', date: '2026-08-08', file: 'Demo Data Population', + titleTh: 'เพิ่มชุดข้อมูลสาธิตสำหรับการตรวจรับและสาธิตระบบ', + requester: P.ApS, unit: 'ฝ่ายบริหารโครงการ / เตรียมการส่งมอบ', + type: 'Scope', typeChecked: 'Quality', priority: 'Medium', + description: 'เพิ่มสคริปต์สร้างข้อมูลสาธิต 3 ไฟล์ (demo_seed.php, demo_seed_more_orders.php, demo_seed_transactions.php) สำหรับใบสั่งขาย รูปแบบคำสั่งซื้อเพิ่มเติม และประวัติรายการเคลื่อนไหว พร้อมตั้งค่าไดเรกทอรี Log ของบริการ Node.js ที่ใช้ระหว่างสร้างข้อมูล', + justification: 'ระบบที่ติดตั้งใหม่ไม่มีประวัติรายการ ทำให้ตรวจรับรายงานและขั้นตอนการทำงานไม่ได้ จึงต้องมีข้อมูลตัวอย่างที่ใกล้เคียงการใช้งานจริงสำหรับการตรวจรับและการสาธิต', + impact: [ + ['ผลกระทบต่อ Scope', 'แก้ไข 9 ไฟล์ เพิ่มประมาณ 2,900 บรรทัด เป็นสคริปต์สร้างข้อมูลใหม่ ไม่แก้ตรรกะหลักของระบบ'], + ['ผลกระทบต่อ Schedule', 'ดำเนินการภายในช่วงเตรียมส่งมอบตามแผน'], + ['ผลกระทบต่อ Budget/Cost', 'ไม่มีค่าใช้จ่ายเพิ่ม'], + ['ผลกระทบต่อ Resource', 'ผู้พัฒนา 1 คน'], + ['ผลกระทบต่อ Quality/Deliverables', 'เป็นการเพิ่มข้อมูลสาธิตเท่านั้น ข้อมูลสาธิตต้องแยกจากข้อมูลใช้งานจริงตาม CR07:004'], + ], + commit: 'dd48a8b', result: 'ดำเนินการแล้วเสร็จเมื่อ 14 ส.ค. 69 และใช้เป็นข้อมูลตั้งต้นของการทดสอบและ UAT', + }, + { + id: 'CH-003', date: '2026-08-10', file: 'Delivery Preparation Bundle', + titleTh: 'ปรับอัตลักษณ์องค์กรและเพิ่มชุดติดตั้ง Docker Compose', + requester: P.SeV, unit: 'ผู้บริหาร / ฝ่ายพัฒนา', + type: 'Scope', typeChecked: 'Quality', priority: 'Medium', + description: 'รวมการเปลี่ยนแปลงเพื่อเตรียมส่งมอบ 2 รายการ: (1) เปลี่ยนชุดอัตลักษณ์องค์กร ได้แก่ โลโก้ (logo.png, logo.svg), Favicon และภาพหัวเอกสาร พร้อมปรับไฟล์ UI ที่อ้างอิง และ (2) เพิ่มชุดติดตั้ง Docker Compose สำหรับใช้งานจริง ประกอบด้วย Compose file, Dockerfile, แม่แบบค่าตั้งค่า, Entrypoint, SQL เริ่มต้น, .env.example และสคริปต์สร้าง .env แบบโต้ตอบ', + justification: 'ให้ชุดส่งมอบใช้อัตลักษณ์องค์กรของลูกค้าอย่างถูกต้อง และมีเส้นทางการติดตั้งที่ทำซ้ำได้ โดยไม่นำค่าความลับเข้า Source Control หรือฝังไว้ใน Image', + impact: [ + ['ผลกระทบต่อ Scope', 'ปรับแบรนด์ 23 ไฟล์ (ภาพและไฟล์ PHP/CSS 11 ไฟล์) และเพิ่มไฟล์ติดตั้ง 10 ไฟล์'], + ['ผลกระทบต่อ Schedule', 'ดำเนินการภายในช่วงเตรียมส่งมอบ 15–17 ส.ค. 69'], + ['ผลกระทบต่อ Budget/Cost', 'ไม่มีค่าใช้จ่ายเพิ่ม'], + ['ผลกระทบต่อ Resource', 'ผู้พัฒนา 1 คน'], + ['ผลกระทบต่อ Quality/Deliverables', 'ภาพหัวเอกสารถูกใช้ในเอกสารส่งมอบ ชุด Docker Compose สร้างค่าความลับจาก .env ขณะเริ่ม Container ตาม CR10:003'], + ], + commit: '63cea23, 136084f, 6c39700', result: 'ดำเนินการแล้วเสร็จเมื่อ 17 ส.ค. 69 และตรวจสอบผลด้วย TC-UN13.002 และ TC-UN13.003', + }, +]; + +/** + * Progress Status Records — one per reporting period. + * [date, from, to, weekNo, taskRows[[taskId, status, pct, remark]], issues[ISS ids], changes[CH ids], next{date,topic}] + */ +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-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: 'ติดตามผลการแก้ไขด้านความปลอดภัยและการออกแบบฐานข้อมูลสต๊อก' }], + ['2026-03-17', '2026-03-09', '2026-03-17', 6, [['3.2', 'Completed', 100, 'ป้องกันไฟล์ตั้งค่า แก้ผลตรวจความปลอดภัย ออกแบบฐานข้อมูลสต๊อกและโมดูล ICS'], ['4.3', 'In Progress', 10, 'เริ่มตรวจสอบเอกสารความต้องการและออกแบบรอบที่ 1']], ['ISS-001'], [], { date: '2026-04-29', topic: 'ติดตามการพัฒนาโมดูลคลังสินค้า สินค้า และรายงาน' }], + ['2026-04-29', '2026-04-09', '2026-04-29', 7, [['3.3', 'Completed', 100, 'พัฒนาแดชบอร์ดสต๊อก สินค้า ความจุคลัง Lot/Serial/Expiry และรายงานครบตามแผน'], ['3.4', 'In Progress', 50, 'อยู่ระหว่างพัฒนาเข้าสู่ระบบ ลงทะเบียน และ Onboarding']], ['ISS-002'], [], { date: '2026-05-08', topic: 'ติดตามการพัฒนาระบบสิทธิ์ ใบสั่งขาย และบาร์โค้ด' }], + ['2026-05-08', '2026-04-30', '2026-05-08', 8, [['3.4', 'In Progress', 80, 'พัฒนาการเข้าสู่ระบบและสิทธิ์ตามบทบาทเกือบครบ เหลือขั้นตอนกู้คืนรหัสผ่าน'], ['3.5', 'Completed', 100, 'พัฒนาใบสั่งขาย ใบรับคืน ใบแจ้งหนี้ คลังหลายชั้น และบาร์โค้ดครบตามแผน'], ['3.9', 'In Progress', 25, 'เริ่มทบทวน Role Guard และการรวมศูนย์การตรวจสิทธิ์']], ['ISS-003', 'ISS-004', 'ISS-005'], [], { date: '2026-05-13', topic: 'ติดตามการเตรียมใช้งานจริง สคริปต์ติดตั้ง และการเริ่มโมดูลบัญชี' }], + ['2026-05-13', '2026-05-11', '2026-05-13', 9, [['3.4', 'Completed', 100, 'พัฒนาการเข้าสู่ระบบ Onboarding และกู้คืนรหัสผ่านครบถ้วน'], ['3.6', 'Completed', 100, 'จัดทำ Base URL อัตโนมัติ สคริปต์ติดตั้งฐานข้อมูล และข้อมูลทดสอบ'], ['3.7', 'In Progress', 20, 'เริ่มพัฒนาโมดูลบัญชีและผังบัญชี']], ['ISS-006', 'ISS-007', 'ISS-008', 'ISS-009'], [], { date: '2026-05-23', topic: 'ติดตามการพัฒนาบัญชี การเงิน และการควบคุมสิทธิ์ผู้ใช้' }], + ['2026-05-23', '2026-05-20', '2026-05-23', 10, [['3.7', 'Completed', 100, 'พัฒนาผังบัญชี GL สมุดรายวัน รายงานบัญชี ใบวางบิลและใบเสร็จครบตามแผน'], ['3.8', 'In Progress', 45, 'อยู่ระหว่างพัฒนา Socket.IO และตารางสรุปยอด'], ['3.9', 'In Progress', 60, 'เพิ่มการเชิญผู้ใช้ การควบคุมสิทธิ์แอปพลิเคชัน และโควตารายการ']], ['ISS-010', 'ISS-011', 'ISS-012', 'ISS-013', 'ISS-014', 'ISS-015'], [], { date: '2026-05-29', topic: 'สรุปผลการพัฒนาและตั้ง Baseline การพัฒนา' }], + ['2026-05-29', '2026-05-24', '2026-05-29', 11, [['3.8', 'Completed', 100, 'พัฒนาบริการแจ้งเตือน Real-time ตารางสรุปยอด และงานตามกำหนดเวลาครบถ้วน'], ['3.9', 'Completed', 100, 'ทบทวนความปลอดภัย ขอบเขตบริษัท วงจรเอกสาร และปิดข้อบกพร่องที่พบ'], ['3.10', 'Completed', 100, 'ลดความซ้ำซ้อนของคลาสและตั้ง Baseline การพัฒนาเมื่อ 29 พ.ค. 69']], ['ISS-016', 'ISS-017', 'ISS-018', 'ISS-019', 'ISS-020', 'ISS-021', 'ISS-022', 'ISS-023', 'ISS-024', 'ISS-025', 'ISS-026', 'ISS-027'], ['CH-001'], { date: '2026-08-03', topic: 'ติดตามการตรวจสอบเอกสาร การจัดทำคู่มือ และการแก้ไขหลัง Baseline' }], + ['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 12 สถานการณ์ ผ่านทั้งหมดระหว่าง 10–14 ส.ค. 69'], ['4.7', 'In Progress', 60, 'จัดทำข้อมูลสาธิตเสร็จ อยู่ระหว่างปรับแบรนด์และชุดติดตั้ง Docker Compose'], ['5.1', 'In Progress', 70, 'ตรวจสอบความครบถ้วนของ Work Products']], [], ['CH-002'], { 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 เหลือการอบรมและปิดโครงการ']], [], ['CH-003'], { 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], +]; + +/** + * Meeting Records — [date, phase, taskId, taskName, timeFrom-to, attachment, agenda[[topic,purpose]], + * discussion[[issue,detail,ownerIds,status]], actions[[task,ownerIds,due,status]], progress[[area,status,pct,detail]], next{date,topic,organizer} ] + */ +export const MEETINGS = [ + { + date: '2026-01-05', phase: 'Project Initiation', taskId: '1.1', taskName: 'Kick-off Meeting', time: '09:00 – 11:00 น.', + attachment: '-', + progress: [['Phase 1: Project Initiation', 'กำลังดำเนินการ', 20, 'เปิดโครงการและชี้แจงทีมงานเรียบร้อย'], ['รวมความคืบหน้าทั้งโครงการ', 'ตามแผน', 5, 'โครงการเริ่มต้นตามกำหนด พร้อมเข้าสู่ขั้นตอน Identify Stakeholders']], + agenda: [['แนะนำสมาชิกทีมโครงการ', 'สร้างความเข้าใจบทบาทและหน้าที่'], ['ทบทวนความจำเป็นและวัตถุประสงค์ของระบบคลังสินค้า', 'กำหนดเป้าหมายร่วมกัน'], ['ภาพรวมระบบงาน 11 ระบบที่จะพัฒนา', 'เห็นขอบเขตและแผนการพัฒนา'], ['สรุปแผนโครงการ 232 วัน', 'ยืนยัน Timeline 5 ม.ค. – 24 ส.ค. 69'], ['กำหนดรอบการประชุมและการรายงานความก้าวหน้า', 'ตั้งรอบประชุม ผู้รับผิดชอบ และเอกสารอ้างอิง']], + discussion: [['วัตถุประสงค์โครงการ', 'พัฒนาระบบบริหารจัดการคลังสินค้าแบบรวมศูนย์ รองรับหลายบริษัทและหลายคลัง', ['SeV', 'ApS'], 'ยืนยันแล้ว'], ['ระยะเวลาโครงการ', 'ระยะเวลา 232 วัน ตั้งแต่ 5 ม.ค. – 24 ส.ค. 69', ['ApS'], 'อนุมัติ'], ['ทรัพยากรและทีมงาน', 'ทีมหลัก 6 คน ครบบทบาท PM, SA, Developer, QA, Document Control และ Project Sponsor', ['ApS', 'YaB'], 'ผ่านการอนุมัติ'], ['Project Repository', 'ใช้ Git Server เป็นศูนย์กลางเก็บ Source Code และเอกสารโครงการ', ['ThS', 'YaB'], 'ดำเนินการแล้ว']], + actions: [['จัดทำ Stakeholder Register (Task 1.2)', ['ApS', 'YaB'], '2026-01-16', 'Scheduled'], ['เตรียม Repository และโครงสร้างโฟลเดอร์เอกสารโครงการ', ['ThS'], '2026-01-16', 'Scheduled']], + next: { date: '2026-01-16', topic: 'ทบทวนรายชื่อผู้มีส่วนได้ส่วนเสียและกำหนดวัตถุประสงค์โครงการ' }, + }, + { + date: '2026-01-23', phase: 'Project Initiation', taskId: '1.4', taskName: 'Approve Project Charter', time: '09:00 – 11:00 น.', + attachment: 'Project Charter Report, Stakeholder Register', + 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']], + next: { date: '2026-02-06', topic: 'สรุปความต้องการลูกค้าและทบทวนร่างแผนโครงการ' }, + }, + { + date: '2026-02-18', phase: 'Project Planning', taskId: '2.3', taskName: 'Baseline Requirements & Schedule', time: '09:00 – 11:00 น.', + attachment: 'Customer Requirements, Software Project Plan, Work Schedule', + progress: [['Phase 1: Project Initiation', 'เสร็จสมบูรณ์', 100, 'ปิดขั้นตอนเริ่มต้นโครงการ'], ['Phase 2: Project Planning', 'เสร็จสมบูรณ์', 100, 'ตั้ง Baseline ความต้องการและแผนงานเรียบร้อย'], ['รวมความคืบหน้าทั้งโครงการ', 'ตามแผน', 20, 'พร้อมเริ่มพัฒนาระบบ 19 ก.พ. 69']], + agenda: [['ทบทวนความต้องการลูกค้า CR01–CR14', 'ยืนยันความครบถ้วนและความเป็นไปได้'], ['ทบทวน Software Project Plan และ Work Schedule', 'ยืนยันแผนงาน ทรัพยากร และความเสี่ยง'], ['อนุมัติเริ่มพัฒนาระบบ', 'ยืนยันวันเริ่มพัฒนาและการควบคุม Source Code']], + discussion: [['ความต้องการลูกค้า', `ความต้องการ ${CRS.length} รายการ จัดหมวด CR01–CR14 ผลสรุปยอมรับ (A) ทุกรายการ`, ['NoC', 'SeV'], 'อนุมัติ'], ['แผนโครงการและความเสี่ยง', 'ยืนยันแผน 232 วัน ความเสี่ยง R1–R8 และแผนสำรองงานที่ไม่แล้วเสร็จ', ['ApS'], 'อนุมัติ'], ['การควบคุม Source Code', 'กำหนด main เป็น Baseline หลัก ไม่นำค่าตั้งค่าและความลับเข้า Git', ['ThS', 'YaB'], 'บังคับใช้ทันที']], + actions: [['เริ่มพัฒนาระบบตาม Task 3.1 ในวันที่ 19 ก.พ. 69', ['ThS', 'NoC'], '2026-02-25', 'Scheduled'], ['จัดทำ SRS และเอกสารออกแบบระบบ', ['NoC', 'ThS'], '2026-02-25', 'Scheduled'], ['รายงานความก้าวหน้าตามรหัสงานใน Work Schedule', ['ApS'], '2026-08-24', 'Ongoing']], + next: { date: '2026-02-25', topic: 'ติดตามการจัดทำ SRS เอกสารออกแบบ และการเริ่มพัฒนาระบบ' }, + }, + { + date: '2026-03-17', phase: 'Project Execution', taskId: '3.2', taskName: 'Security & Database Foundation', time: '09:00 – 11:00 น.', + attachment: 'Progress Status Record 17 มี.ค. 69', + progress: [['Phase 3: Project Execution', 'กำลังดำเนินการ', 25, 'พัฒนาฐานข้อมูลสต๊อกและโมดูล ICS เบื้องต้น'], ['รวมความคืบหน้าทั้งโครงการ', 'ตามแผน', 30, 'การพัฒนาเป็นไปตามแผน']], + agenda: [['ผลการแก้ไขตามผลตรวจความปลอดภัย', 'ยืนยันการปิดข้อบกพร่อง ISS-001'], ['การออกแบบฐานข้อมูลสต๊อกและโมดูล ICS', 'ทบทวนโครงสร้างตารางและความสัมพันธ์'], ['แผนพัฒนาโมดูลคลังสินค้าและรายงาน', 'ยืนยันลำดับงานช่วงเดือนเมษายน']], + discussion: [['ความปลอดภัยของระบบ', 'ถอดไฟล์ตั้งค่าออกจาก Git และแก้ไขตามผลตรวจความปลอดภัยครบถ้วน', ['ThS'], 'เสร็จสิ้น'], ['ฐานข้อมูลสต๊อก', 'ยืนยันโครงสร้างตาราง td_stock และตารางข้อมูลหลักที่เกี่ยวข้อง', ['NoC', 'ThS'], 'ยืนยันแล้ว'], ['แผนงานถัดไป', 'พัฒนาแดชบอร์ดสต๊อก สินค้า ความจุคลัง และรายงาน', ['ThS'], 'ดำเนินการ']], + actions: [['บันทึกการแก้ไข ISS-001 ใน Correction Register', ['YaB'], '2026-03-20', 'Scheduled'], ['พัฒนาโมดูลคลังสินค้าและรายงาน (Task 3.3)', ['ThS'], '2026-04-29', 'Scheduled']], + next: { date: '2026-04-29', topic: 'ติดตามการพัฒนาโมดูลคลังสินค้า สินค้า และรายงาน' }, + }, + { + date: '2026-04-29', phase: 'Project Execution', taskId: '3.3', taskName: 'Inventory & Warehouse Modules', time: '09:00 – 11:00 น.', + attachment: 'Progress Status Record 29 เม.ย. 69', + progress: [['Phase 3: Project Execution', 'กำลังดำเนินการ', 50, 'พัฒนาโมดูลคลังสินค้า สินค้า Lot/Serial/Expiry และรายงานเสร็จ'], ['รวมความคืบหน้าทั้งโครงการ', 'ตามแผน', 45, 'เข้าสู่การพัฒนาระบบสิทธิ์และเอกสารธุรกิจ']], + agenda: [['ผลการพัฒนาโมดูลคลังสินค้าและรายงาน', 'ตรวจสอบความครบถ้วนตาม CR01:005–CR01:012'], ['ประเด็นความถูกต้องของข้อมูล', 'พิจารณาการแก้ไข ISS-002'], ['แผนพัฒนาระบบสิทธิ์ ใบสั่งขาย และบาร์โค้ด', 'ยืนยันลำดับงานช่วงต้นเดือนพฤษภาคม']], + discussion: [['โมดูลคลังสินค้า', 'พัฒนาแดชบอร์ดสต๊อก ความจุคลัง Lot/Serial/Expiry และรายงานครบตามความต้องการ', ['ThS', 'NoC'], 'เสร็จสิ้น'], ['ความถูกต้องของข้อมูล', 'ถอดคำสั่งที่กระทบความถูกต้องและเพิ่มการตรวจสอบก่อนทำรายการ', ['ThS'], 'เสร็จสิ้น'], ['ระบบสิทธิ์ผู้ใช้', 'มอบหมายพัฒนา Role Guard และรวมศูนย์การตรวจสิทธิ์', ['ThS'], 'ดำเนินการ']], + actions: [['บันทึกการแก้ไข ISS-002 ใน Correction Register', ['YaB'], '2026-05-01', 'Scheduled'], ['พัฒนาระบบเข้าสู่ระบบ สิทธิ์ และเอกสารขาย (Task 3.4, 3.5)', ['ThS'], '2026-05-12', 'Scheduled']], + next: { date: '2026-05-08', topic: 'ติดตามการพัฒนาระบบสิทธิ์ ใบสั่งขาย และบาร์โค้ด' }, + }, + { + date: '2026-05-13', phase: 'Project Execution', taskId: '3.6', taskName: 'Production Preparation & Setup', time: '09:00 – 11:00 น.', + attachment: 'Progress Status Record 13 พ.ค. 69', + progress: [['Phase 3: Project Execution', 'กำลังดำเนินการ', 70, 'ระบบสิทธิ์ เอกสารขาย และสคริปต์ติดตั้งเสร็จ'], ['รวมความคืบหน้าทั้งโครงการ', 'ตามแผน', 60, 'เริ่มพัฒนาโมดูลบัญชีและการเงิน']], + agenda: [['ผลการพัฒนาระบบสิทธิ์และเอกสารขาย', 'ตรวจสอบความครบถ้วนตาม CR01:001–CR01:004 และ CR01:013'], ['ประเด็นความปลอดภัยและ Onboarding ที่พบ', 'พิจารณาการแก้ไข ISS-003 ถึง ISS-009'], ['แผนพัฒนาบัญชีและการเงิน', 'ยืนยันลำดับงานช่วงกลางเดือนพฤษภาคม']], + discussion: [['ระบบสิทธิ์และ Onboarding', 'แก้ไขข้อบกพร่องการลงทะเบียน Onboarding และการตรวจสิทธิ์ครบทุกรายการที่พบ', ['ThS'], 'เสร็จสิ้น'], ['การเตรียมใช้งานจริง', 'จัดทำ Base URL อัตโนมัติและสคริปต์ติดตั้งฐานข้อมูลในขั้นตอนเดียว', ['ThS'], 'เสร็จสิ้น'], ['บัญชีและการเงิน', 'มอบหมายพัฒนาผังบัญชี GL สมุดรายวัน และเอกสารการเงิน', ['ThS', 'NoC'], 'ดำเนินการ']], + actions: [['บันทึกการแก้ไข ISS-003 ถึง ISS-009 ใน Correction Register', ['YaB'], '2026-05-15', 'Scheduled'], ['พัฒนาโมดูลบัญชีและการเงิน (Task 3.7)', ['ThS'], '2026-05-23', 'Scheduled']], + next: { date: '2026-05-23', topic: 'ติดตามการพัฒนาบัญชี การเงิน และการควบคุมสิทธิ์ผู้ใช้' }, + }, + { + date: '2026-05-23', phase: 'Project Execution', taskId: '3.7', taskName: 'Accounting & Finance Workflows', time: '09:00 – 11:00 น.', + attachment: 'Progress Status Record 23 พ.ค. 69, Change Report CH-001', + progress: [['Phase 3: Project Execution', 'กำลังดำเนินการ', 85, 'บัญชีและการเงินเสร็จ เหลือบริการแจ้งเตือนและการทบทวนความปลอดภัย'], ['รวมความคืบหน้าทั้งโครงการ', 'ตามแผน', 72, 'เตรียมเข้าสู่ Baseline การพัฒนา']], + agenda: [['ผลการพัฒนาบัญชีและการเงิน', 'ตรวจสอบความครบถ้วนตาม CR01:015–CR01:017'], ['พิจารณาคำขอเปลี่ยนแปลง CH-001 (Rack เป็น Bin)', 'ประเมินผลกระทบและอนุมัติ'], ['แผนงานก่อนตั้ง Baseline การพัฒนา', 'ยืนยันงานที่ต้องเสร็จภายใน 29 พ.ค. 69']], + discussion: [['บัญชีและการเงิน', 'พัฒนาผังบัญชี GL สมุดรายวัน รายงานบัญชี ใบวางบิลและใบเสร็จครบตามความต้องการ', ['ThS', 'NoC'], 'เสร็จสิ้น'], ['คำขอเปลี่ยนแปลง CH-001', 'เปลี่ยนคำเรียกตำแหน่งจัดเก็บจาก Rack เป็น Bin ให้ตรงกับคำที่พนักงานคลังใช้จริง ประเมินผลกระทบระดับ Medium ไม่กระทบกำหนดส่งมอบ', ['SeV', 'ApS', 'NoC'], 'อนุมัติ'], ['ความปลอดภัยและโควตารายการ', 'เพิ่มการควบคุมสิทธิ์แอปพลิเคชันและโควตารายการต่อบริษัท', ['ThS'], 'ดำเนินการ']], + actions: [['ดำเนินการเปลี่ยนคำเรียกตามคำขอ CH-001', ['ThS'], '2026-05-27', 'Scheduled'], ['ทบทวนความปลอดภัยและวงจรเอกสารก่อนตั้ง Baseline (Task 3.9)', ['ThS', 'PaNg'], '2026-05-28', 'Scheduled'], ['บันทึกการแก้ไข ISS-010 ถึง ISS-015 ใน Correction Register', ['YaB'], '2026-05-25', 'Scheduled']], + next: { date: '2026-05-29', topic: 'สรุปผลการพัฒนาและตั้ง Baseline การพัฒนา' }, + }, + { + date: '2026-05-29', phase: 'Project Execution', taskId: '3.10', taskName: 'Refactor & Development Baseline', time: '09:00 – 11:00 น.', + attachment: 'Progress Status Record 29 พ.ค. 69', + progress: [['Phase 3: Project Execution', 'เสร็จสมบูรณ์', 100, 'พัฒนาครบทุกโมดูลและตั้ง Baseline การพัฒนา (Git a0677d6)'], ['Phase 4: Verification & Validation', 'กำลังดำเนินการ', 10, 'เริ่มตรวจสอบเอกสารและจัดทำคู่มือ'], ['รวมความคืบหน้าทั้งโครงการ', 'ตามแผน', 78, 'เข้าสู่ขั้นตอนตรวจสอบและจัดทำเอกสาร']], + agenda: [['สรุปผลการพัฒนา Task 3.1–3.10', 'ยืนยันความครบถ้วนของการพัฒนา'], ['สรุปผลการทบทวนความปลอดภัยและวงจรเอกสาร', 'ยืนยันการปิดข้อบกพร่อง ISS-016 ถึง ISS-027'], ['แผนการตรวจสอบ ทดสอบ และจัดทำเอกสาร', 'กำหนดผู้รับผิดชอบและกรอบเวลา']], + discussion: [['Baseline การพัฒนา', 'พัฒนาครบทุกโมดูลตามขอบเขต และลดความซ้ำซ้อนของคลาสเรียบร้อย ตั้ง Baseline เมื่อ 29 พ.ค. 69', ['ThS'], 'เสร็จสิ้น'], ['ความปลอดภัยและการแยกข้อมูล', 'ปิดข้อบกพร่องด้านการเข้าสู่ระบบ ขอบเขตบริษัท และวงจรเอกสารครบทุกรายการที่พบ', ['ThS', 'PaNg'], 'เสร็จสิ้น'], ['ขั้นตอนถัดไป', 'ตรวจสอบ Work Products จัดทำคู่มือ และเตรียมชุดทดสอบระบบ', ['PaNg', 'NoC', 'YaB'], 'ดำเนินการ']], + actions: [['จัดทำ Test Case และ Test Procedures ครบทุกหน่วยงาน', ['PaNg', 'NoC'], '2026-07-31', 'Scheduled'], ['จัดทำคู่มือผู้ใช้ คู่มือผู้ดูแลระบบ และคู่มือบำรุงรักษา (Task 4.5)', ['ThS', 'YaB'], '2026-08-17', 'Scheduled'], ['ตรวจสอบ Work Products รอบที่ 1–3 (Task 4.3)', ['PaNg', 'NoC'], '2026-08-15', 'Scheduled']], + next: { date: '2026-08-03', topic: 'ติดตามการตรวจสอบเอกสาร การจัดทำคู่มือ และการแก้ไขหลัง Baseline' }, + }, + { + date: '2026-08-03', phase: 'Stabilization', taskId: '4.6', taskName: 'Post-baseline Corrections', time: '09:00 – 11:00 น.', + attachment: 'Progress Status Record 3 ส.ค. 69', + progress: [['Phase 4: Verification & Validation', 'กำลังดำเนินการ', 70, 'ตรวจสอบเอกสารรอบที่ 1–3 และจัดทำคู่มือใกล้เสร็จ'], ['รวมความคืบหน้าทั้งโครงการ', 'ตามแผน', 85, 'เตรียมทดสอบระบบและ UAT']], + agenda: [['ผลการแก้ไขหลัง Baseline การพัฒนา', 'ยืนยันการปิดข้อบกพร่อง ISS-028'], ['ความคืบหน้าการตรวจสอบเอกสารและคู่มือ', 'ทบทวนผลการตรวจสอบรอบที่ 1–3'], ['แผนการทดสอบระบบและ UAT', 'ยืนยันสภาพแวดล้อม ผู้ทดสอบ และกรอบเวลา']], + discussion: [['การแก้ไขหลัง Baseline', 'แก้ไขการเข้าสู่ระบบและค่าตั้งค่าสภาพแวดล้อมที่พบหลังตั้ง Baseline เรียบร้อย', ['ThS'], 'เสร็จสิ้น'], ['การตรวจสอบเอกสาร', 'ตรวจสอบความต้องการ ออกแบบ และการสอบกลับรอบที่ 1–3 พบประเด็นที่ต้องปรับปรุงและแก้ไขแล้ว', ['PaNg', 'NoC'], 'ดำเนินการ'], ['แผนการทดสอบ', 'กำหนดทดสอบระบบบน Internal Testing Server โดย QA และ UAT บนสภาพแวดล้อมจริงโดยตัวแทนลูกค้า ระหว่าง 10–14 ส.ค. 69', ['PaNg', 'SeV'], 'อนุมัติ']], + actions: [['บันทึกการแก้ไข ISS-028 ใน Correction Register', ['YaB'], '2026-08-05', 'Scheduled'], ['เตรียมข้อมูลสาธิตสำหรับการทดสอบและ UAT', ['ThS'], '2026-08-14', 'Scheduled'], ['ดำเนินการทดสอบระบบและ UAT (Task 4.4)', ['PaNg', 'SeV'], '2026-08-14', 'Scheduled']], + next: { date: '2026-08-14', topic: 'สรุปผลการทดสอบระบบ UAT และข้อมูลสาธิต' }, + }, + { + date: '2026-08-14', phase: 'Validation', taskId: '4.4', taskName: 'System Test & UAT', time: '09:00 – 11:00 น.', + attachment: 'Test Report, Validation Results, Change Report CH-002', + progress: [['Phase 4: Verification & Validation', 'เสร็จสมบูรณ์', 100, 'ทดสอบ 45 Test Case และ UAT 12 สถานการณ์ ผ่านทั้งหมด'], ['Phase 5: Project Close', 'กำลังดำเนินการ', 60, 'อยู่ระหว่างตรวจสอบ Work Products และเตรียมชุดส่งมอบ'], ['รวมความคืบหน้าทั้งโครงการ', 'ตามแผน', 92, 'เตรียมตรวจรับและปิดโครงการ']], + agenda: [['สรุปผลการทดสอบระบบ 45 Test Case', 'ยืนยันผลการทดสอบและข้อบกพร่องคงค้าง'], ['สรุปผลการทดสอบการยอมรับ (UAT) 12 สถานการณ์', 'ยืนยันความพร้อมใช้งานจริง'], ['พิจารณาคำขอเปลี่ยนแปลง CH-002 (ข้อมูลสาธิต)', 'ประเมินผลกระทบและอนุมัติ'], ['แผนงานปิดโครงการ', 'ยืนยันงานที่เหลือถึง 24 ส.ค. 69']], + discussion: [['ผลการทดสอบระบบ', 'ทดสอบ 45 Test Case บน Internal Testing Server ผ่านทั้งหมด ไม่พบข้อบกพร่องคงค้าง', ['PaNg'], 'ผ่าน'], ['ผลการทดสอบการยอมรับ', 'ตัวแทนลูกค้าทดสอบ 12 สถานการณ์บนสภาพแวดล้อมใช้งานจริง ผ่านทั้งหมด', ['SeV'], 'ผ่าน'], ['คำขอเปลี่ยนแปลง CH-002', 'เพิ่มชุดข้อมูลสาธิตเพื่อใช้ตรวจรับรายงานและขั้นตอนการทำงาน ประเมินผลกระทบระดับ Medium', ['ApS', 'SeV'], 'อนุมัติ'], ['งานที่เหลือ', 'ตรวจสอบ Work Products รอบสุดท้าย เตรียมชุดติดตั้ง ตรวจรับ อบรม และปิดโครงการ', ['ApS', 'YaB'], 'ดำเนินการ']], + actions: [['ตรวจสอบ Work Products รอบที่ 4 และจัดทำ List of Evidence', ['YaB', 'ApS'], '2026-08-17', 'Scheduled'], ['จัดทำชุดติดตั้ง Docker Compose และปรับแบรนด์ (CH-003)', ['ThS'], '2026-08-17', 'Scheduled'], ['นัดตรวจรับส่งมอบระบบกับ Project Sponsor', ['ApS'], '2026-08-17', 'Scheduled']], + next: { date: '2026-08-17', topic: 'สรุปผลการตรวจสอบรอบสุดท้ายและตรวจรับส่งมอบระบบ' }, + }, + { + date: '2026-08-17', phase: 'Project Close', taskId: '5.3', taskName: 'Acceptance & Project Closure', time: '09:00 – 11:00 น.', + attachment: 'Acceptance Report, List of Evidence, Verification Results, Change Report CH-003', + progress: [['Phase 3: Project Execution', 'เสร็จสมบูรณ์', 100, 'พัฒนาระบบครบตามขอบเขต Baseline 6c39700'], ['Phase 4: Verification & Validation', 'เสร็จสมบูรณ์', 100, 'ตรวจสอบ ทดสอบ และ UAT ผ่านครบทุกรายการ'], ['Phase 5: Project Close', 'กำลังดำเนินการ', 80, 'ตรวจรับระบบแล้ว เหลือการอบรมและปิดงานควบคุมปฏิบัติการ'], ['รวมความคืบหน้าทั้งโครงการ', 'ตามแผน', 96, 'ตรวจรับระบบเรียบร้อย']], + agenda: [['นำเสนอผลการดำเนินโครงการและสิ่งส่งมอบ', 'สรุปผลงานทั้งหมดเทียบกับแผนและผลลัพธ์จริง'], ['ตรวจสอบความครบถ้วนของเอกสารและหลักฐาน', 'ยืนยันเอกสารครบตามมาตรฐาน ISO/IEC 29110'], ['พิจารณาคำขอเปลี่ยนแปลง CH-003', 'ประเมินผลกระทบและอนุมัติ'], ['พิจารณาตรวจรับส่งมอบระบบ', 'ลงมติผลการตรวจรับ']], + discussion: [['ผลการดำเนินโครงการ', 'พัฒนาระบบครบตามขอบเขต 11 ระบบงาน ทดสอบและ UAT ผ่านทั้งหมด ไม่มีข้อบกพร่องระดับวิกฤตคงค้าง', ['ApS', 'SeV'], 'ผ่านการรับรอง'], ['ความครบถ้วนของเอกสาร', 'ตรวจสอบ Work Products รอบที่ 4 ครบทุกรายการ ผลผ่านทั้งหมด และจัดทำ List of Evidence เรียบร้อย', ['YaB', 'PaNg'], 'สมบูรณ์'], ['คำขอเปลี่ยนแปลง CH-003', 'ปรับอัตลักษณ์องค์กรและเพิ่มชุดติดตั้ง Docker Compose ประเมินผลกระทบระดับ Medium', ['SeV', 'ApS'], 'อนุมัติ'], ['ผลการตรวจรับ', 'Project Sponsor ตรวจรับสิ่งส่งมอบทั้งหมด ผลการตรวจรับ Accepted', ['SeV'], 'ตรวจรับแล้ว']], + actions: [['จัดอบรมผู้ใช้งานก่อนเปิดใช้งานจริง (Task 5.2)', ['ThS', 'PaNg'], '2026-08-22', 'Scheduled'], ['ปิดงานควบคุมการสำรองข้อมูลและการเฝ้าระวังระบบ', ['ThS'], '2026-08-23', 'Scheduled'], ['ปิดโครงการและส่งมอบเอกสารเข้าระบบควบคุมเอกสาร', ['ApS', 'YaB'], '2026-08-24', 'Scheduled']], + next: { date: '2026-08-24', topic: 'สรุปผลการอบรม การปิดงานควบคุมปฏิบัติการ และปิดโครงการอย่างเป็นทางการ' }, + }, + { + date: '2026-08-24', phase: 'Project Close', taskId: '5.3', taskName: 'Final Report & Sign-off', time: '09:00 – 11:00 น.', + 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'], 'ปิดโครงการ']], + actions: [['จัดเก็บเอกสารโครงการทั้งหมดเข้าระบบควบคุมเอกสาร', ['YaB'], '2026-08-24', 'เสร็จสมบูรณ์'], ['ติดตามการตรวจนับสต๊อกสิ้นเดือนแรกหลังเปิดใช้งานจริง', ['ApS'], '2026-09-30', 'Scheduled']], + next: null, + }, +]; diff --git a/scripts/sdlc-seed/lib.mjs b/scripts/sdlc-seed/lib.mjs new file mode 100644 index 0000000..1675a80 --- /dev/null +++ b/scripts/sdlc-seed/lib.mjs @@ -0,0 +1,60 @@ +// Shared helpers for the ISO/IEC 29110 work-product seed. +// Every document follows the layout of the audited 200-TAS-25-001-00 package: +// title, document-control block, Thai section headings, tables, three signature tables. + +export const TH_MONTHS = ['มกราคม','กุมภาพันธ์','มีนาคม','เมษายน','พฤษภาคม','มิถุนายน','กรกฎาคม','สิงหาคม','กันยายน','ตุลาคม','พฤศจิกายน','ธันวาคม']; +export const TH_SHORT = ['ม.ค.','ก.พ.','มี.ค.','เม.ย.','พ.ค.','มิ.ย.','ก.ค.','ส.ค.','ก.ย.','ต.ค.','พ.ย.','ธ.ค.']; + +const parts = (iso) => iso.split('-').map(Number); + +/** 2026-08-17 -> 25690817 (Buddhist compact, used in filenames and Release fields). */ +export const bud = (iso) => { const [y, m, d] = parts(iso); return `${y + 543}${String(m).padStart(2, '0')}${String(d).padStart(2, '0')}`; }; +/** 2026-08-17 -> 17 สิงหาคม 2569 */ +export const thLong = (iso) => { const [y, m, d] = parts(iso); return `${d} ${TH_MONTHS[m - 1]} ${y + 543}`; }; +/** 2026-08-17 -> 17 ส.ค. 69 */ +export const thShort = (iso) => { const [y, m, d] = parts(iso); return `${d} ${TH_SHORT[m - 1]} ${String(y + 543).slice(2)}`; }; +/** 2026-08-17 -> 17/08/2569 */ +export const thNum = (iso) => { const [y, m, d] = parts(iso); return `${String(d).padStart(2, '0')}/${String(m).padStart(2, '0')}/${y + 543}`; }; +/** Range in short Thai form: 10–14 ส.ค. 69 or 30 พ.ค.–31 ก.ค. 69 */ +export const thRange = (a, b) => { + if (a === b) return thShort(a); + const [ya, ma, da] = parts(a); const [yb, mb, db] = parts(b); + if (ya === yb && ma === mb) return `${da}–${db} ${TH_SHORT[ma - 1]} ${String(ya + 543).slice(2)}`; + if (ya === yb) return `${da} ${TH_SHORT[ma - 1]}–${db} ${TH_SHORT[mb - 1]} ${String(ya + 543).slice(2)}`; + return `${thShort(a)}–${thShort(b)}`; +}; +export const thRangeLong = (a, b) => `${thLong(a)} – ${thLong(b)}`; +export const daysBetween = (a, b) => Math.round((Date.parse(b) - Date.parse(a)) / 86400000) + 1; + +const cell = (v) => String(v ?? '').replace(/\|/g, '\\|').replace(/\r?\n/g, ' '); + +/** Markdown table. `align` is an optional array of 'l' | 'c' | 'r'. */ +export function table(headers, rows, align) { + const sep = headers.map((_, i) => ({ c: ':---:', r: '---:' }[align?.[i]] ?? '---')); + const line = (r) => `| ${r.map(cell).join(' | ')} |`; + return [line(headers), line(sep), ...rows.map(line)].join('\n'); +} + +/** Document-control block. Each row is [label, value] or [label, value, label2, value2]. */ +export function control(rows) { + return rows.map((r) => `| ${r.map(cell).join(' | ')} |`).join('\n'); +} + +/** A single signature table (ชื่อ / ตำแหน่ง / ลายเซ็น / วันที่). */ +const sigTable = (people) => table(['ชื่อ', 'ตำแหน่ง', 'ลายเซ็น', 'วันที่'], people.map((p) => [p.th, p.role, '', ''])); + +/** The three signature blocks used by every work product. */ +export function signatures(secretary, reviewer, approver) { + const list = (x) => (Array.isArray(x) ? x : [x]); + return [ + '## ผู้จัดทำเอกสาร (Secretary)', sigTable(list(secretary)), + '## ผู้ตรวจสอบเอกสาร (Reviewer)', sigTable(list(reviewer)), + '## ผู้อนุมัติ (Approval)', sigTable(list(approver)), + ].join('\n\n'); +} + +export const bullets = (items) => items.map((i) => `- ${i}`).join('\n'); +export const numbered = (items) => items.map((i, n) => `${n + 1}. ${i}`).join('\n'); + +/** Join document parts with blank lines, dropping empty parts. */ +export const doc = (...parts) => parts.flat().filter((p) => p !== undefined && p !== null && p !== '').join('\n\n') + '\n'; diff --git a/scripts/sdlc-seed/project.mjs b/scripts/sdlc-seed/project.mjs new file mode 100644 index 0000000..97550d4 --- /dev/null +++ b/scripts/sdlc-seed/project.mjs @@ -0,0 +1,180 @@ +// Project facts shared by every work product. Edit here, then run `node scripts/sdlc-seed/build.mjs`. + +export const CODE = '200-WMS-26-001-00'; +export const PROJECT_TH = 'โครงการพัฒนาระบบบริหารจัดการคลังสินค้า (BRN WMS) บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด'; +export const COMPANY_TH = 'บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด'; +export const START = '2026-01-05'; +export const END = '2026-08-24'; +export const DEV_START = '2026-02-19'; +export const DEV_BASELINE = '2026-05-29'; +export const TEST_FROM = '2026-08-10'; +export const TEST_TO = '2026-08-14'; +export const ACCEPT_DATE = '2026-08-17'; +export const TRAINING_DATE = '2026-08-22'; +export const OPS_CLOSE_DATE = '2026-08-23'; +export const RELEASE_DATE = '2026-08-17'; // date stamped on the consolidated V1.0 issue +export const BASELINE_COMMIT = '6c39700'; // delivered software baseline on main +export const TEST_STATE_COMMIT = 'dd48a8b'; // closest retained repository state at end of test window +export const TAG = 'sdlc-v1.0-final'; +export const ORIGIN = 'git@188.166.228.62:nok/wms-app.git'; +export const BACKUP = 'git@github.com:thanakorninbox-dev/wms-app.git'; + +export const P = { + SeV: { id: 'SeV', th: 'คุณเสรี วิริยะสกุลธรณ์', en: 'Seri Viriyasakultorn', role: 'Project Sponsor', pos: 'กรรมการผู้จัดการ (CEO)', email: 'seri.v@brn.co.th' }, + ApS: { id: 'ApS', th: 'คุณอภิรัชช์ สุภัทรประทีป', en: 'Apirach Supattaratpateep', role: 'Project Manager', pos: 'ผู้จัดการโครงการ', email: 'apirach.s@brn.co.th' }, + NoC: { id: 'NoC', th: 'คุณนพพงษ์ เจริญสุข', en: 'Noppong Chareunsook', role: 'System Analyst', pos: 'นักวิเคราะห์ระบบ', email: 'noppong.c@brn.co.th' }, + ThS: { id: 'ThS', th: 'คุณธนกร สถิตวิทยากุล', en: 'Thanakorn Sathitwitayakul', role: 'Developer', pos: 'นักพัฒนาระบบ', email: 'thanakorn.s@brn.co.th' }, + PaNg: { id: 'PaNg', th: 'คุณปริญ งามขำ', en: 'Parin Ngamkham', role: 'QA/Tester', pos: 'ผู้ทดสอบระบบ', email: 'parin.n@brn.co.th' }, + YaB: { id: 'YaB', th: 'คุณเยาวลักษณ์ บางชมภู', en: 'Yaowalak Bangchomphoo', role: 'Document Control', pos: 'เจ้าหน้าที่ควบคุมเอกสาร', email: 'yaowalak.b@brn.co.th' }, +}; +export const TEAM = [P.SeV, P.ApS, P.NoC, P.ThS, P.PaNg, P.YaB]; +export const ORGANIZER = `${P.ApS.th} (Project Manager) , ${P.NoC.th} (System Analyst)`; +export const ORGANIZER_PM = `${P.ApS.th} (Project Manager)`; +export const RECORDER = `${P.YaB.th} (Document Control)`; + +/** Deliverables (Work Products) as listed in the plan, acceptance and configuration records. */ +export const WPS = [ + ['WP 1.0', `เอกสาร ${CODE} Software Project Plan (พร้อม Work Schedule)`, 'ส่งเอกสารจำนวน 1 ชุด'], + ['WP 2.0', `เอกสาร ${CODE} Customer Requirements`, 'ส่งเอกสารจำนวน 1 ชุด'], + ['WP 3.0', `เอกสาร ${CODE} Software Requirements Specification`, 'ส่งเอกสารจำนวน 1 ชุด'], + ['WP 4.0', `เอกสาร ${CODE} Software Design`, 'ส่งเอกสารจำนวน 1 ชุด'], + ['WP 5.0', `เอกสาร ${CODE} Change Report`, 'ส่งเอกสารจำนวน 3 ฉบับ (CH-001–CH-003)'], + ['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 10.0', `เอกสาร ${CODE} Product Operation Guide`, 'ส่งเอกสารจำนวน 1 ชุด'], + ['WP 11.0', `เอกสาร ${CODE} Maintenance Document`, 'ส่งเอกสารจำนวน 1 ชุด'], +]; + +/** Systems / sub-systems in scope (SOW table in the plan and charter). */ +export const SCOPE = [ + ['ระบบบริหารจัดการผู้ใช้งานและสิทธิ์', ['ลงทะเบียนเจ้าของบริษัทและเชิญผู้ใช้งาน (Onboarding)', 'เข้าสู่ระบบและควบคุมสิทธิ์ตามบทบาท Owner / Admin / Staff / Viewer', 'กู้คืนรหัสผ่าน, OTP และควบคุม Session', 'ตั้งค่าบริษัท, SMTP, ผู้ใช้งาน และสิทธิ์การเข้าถึงแอปพลิเคชัน']], + ['ระบบข้อมูลหลัก (Master Data)', ['คลังสินค้า, พื้นที่จัดเก็บ, ช่องจัดเก็บ (Bin)', 'หมวดสินค้าและสินค้า', 'ประเภทผู้ติดต่อและผู้ติดต่อ (ลูกค้า/ผู้ขาย)', 'รองรับโครงสร้างคลังแบบชั้นเดียวและแบบหลายชั้น']], + ['ระบบควบคุมสินค้าคงคลัง (Inventory Control)', ['รับสินค้าเข้า (Stock-in)', 'จ่ายสินค้าออก (Stock-out) พร้อมตรวจสอบยอดคงเหลือ', 'โอนย้ายสินค้าระหว่างคลัง/ตำแหน่ง', 'ติดตาม Lot, Serial Number และวันหมดอายุ', 'พิมพ์บาร์โค้ดสินค้า/ตำแหน่ง และรองรับการสแกน', 'แนบไฟล์ประกอบรายการ']], + ['ระบบขาย (Sales)', ['ใบเสนอราคา (Quotation)', 'ใบสั่งขาย (Sales Order)', 'ใบแจ้งหนี้ (Invoice)', 'ใบรับคืน / ใบลดหนี้ (Return / Credit Note)']], + ['ระบบจัดซื้อ (Purchasing)', ['ใบขอซื้อ (Purchase Request)', 'ใบสั่งซื้อ (Purchase Order)', 'ใบแจ้งหนี้ซื้อ (Purchase Invoice)', 'ใบคืนสินค้าผู้ขาย (Supplier Return)']], + ['ระบบการเงิน (Finance)', ['ใบวางบิลรับ / ใบเสร็จรับเงิน', 'ใบวางบิลจ่าย / ใบสำคัญจ่าย']], + ['ระบบบัญชี (Accounting)', ['ผังบัญชี, แผนก, สูตรบัญชี', 'สมุดรายวันและบัญชีแยกประเภท (Journal / GL)', 'รายงานงบทดลอง, งบกำไรขาดทุน, งบดุล, ภาษีมูลค่าเพิ่ม']], + ['ระบบรายงานและแดชบอร์ด', ['แดชบอร์ดคลังสินค้าและบัญชี', 'รายงานสต๊อก, ความเคลื่อนไหว, ความจุคลัง, สินค้าใกล้หมด, สินค้าหมดอายุ, Lot', 'กรอง ดู พิมพ์ และส่งออกรายงาน']], + ['ระบบควบคุมเอกสาร', ['ออกเลขที่เอกสารอัตโนมัติตามลำดับที่กำหนด', 'ควบคุมสถานะและวงจรชีวิตของเอกสาร', 'บันทึกผู้สร้าง/ผู้แก้ไข/ประวัติรายการ']], + ['ระบบแจ้งเตือนและงานตามกำหนดเวลา', ['แจ้งเตือนแบบ Real-time ผ่าน Node.js / Socket.IO', 'งานสรุปยอดสต๊อก/GL และแจ้งเตือนสินค้าใกล้หมด, ใบแจ้งหนี้ค้างชำระ ตามกำหนดเวลา']], + ['ระบบติดตั้งและตั้งค่า', ['ติดตั้งแบบ Manual ผ่าน setup.php', 'ติดตั้งแบบ Container ผ่าน Docker Compose (php-apache, mariadb, node/pm2)', 'สร้างค่าตั้งค่าและความลับของระบบจาก .env โดยไม่เก็บใน Source Control']], +]; + +/** + * Customer Requirements (CR01–CR14). Each: [id, text, remark]. + * Remark keeps the original FR-/NFR- identifier that appeared in earlier drafts so cross-references stay valid. + */ +export const CR_GROUPS = [ + ['CR01', 'Feature & Functional Characteristics', [ + ['CR01:001', 'ระบบต้องรองรับการลงทะเบียนเจ้าของบริษัทและการเชิญผู้ใช้งานเข้าร่วมบริษัท (Onboarding)', 'FR-001'], + ['CR01:002', 'ระบบต้องยืนยันตัวตนผู้ใช้และบังคับสิทธิ์ตามบทบาท Owner, Admin, Staff และ Viewer', 'FR-002'], + ['CR01:003', 'ระบบต้องรองรับการกู้คืนรหัสผ่าน การควบคุม Session และการยืนยัน OTP ตามที่กำหนด', 'FR-003'], + ['CR01:004', 'ระบบต้องให้ผู้ดูแลจัดการข้อมูลบริษัท, SMTP, การตั้งค่าระบบ, ผู้ใช้งาน และสิทธิ์การเข้าถึงแอปพลิเคชัน', 'FR-004'], + ['CR01:005', 'ระบบต้องจัดการข้อมูลคลังสินค้า, พื้นที่/ช่องจัดเก็บ, หมวดสินค้า, สินค้า, ประเภทผู้ติดต่อ และผู้ติดต่อ', 'FR-005'], + ['CR01:006', 'ระบบต้องรองรับโครงสร้างตำแหน่งจัดเก็บทั้งแบบคลังเดียวและแบบหลายชั้น (คลัง/พื้นที่/ช่อง)', 'FR-006'], + ['CR01:007', 'ระบบต้องบันทึกการรับสินค้าเข้า (Stock-in) ระบุสินค้า จำนวน ตำแหน่ง เอกสารอ้างอิง และข้อมูลติดตาม', 'FR-007'], + ['CR01:008', 'ระบบต้องบันทึกการจ่ายสินค้าออก (Stock-out) โดยตรวจสอบสิทธิ์และยอดคงเหลือก่อนจ่าย', 'FR-008'], + ['CR01:009', 'ระบบต้องโอนย้ายสินค้าระหว่างตำแหน่งจัดเก็บที่ได้รับอนุญาตโดยยอดต้นทาง/ปลายทางสมดุลกัน', 'FR-009'], + ['CR01:010', 'ระบบต้องติดตาม Lot, Serial Number และวันหมดอายุของสินค้าที่เกี่ยวข้อง', 'FR-010'], + ['CR01:011', 'ระบบต้องแสดงภาพรวมสต๊อก, ประวัติความเคลื่อนไหว, ความจุ/การใช้พื้นที่, สินค้าใกล้หมด, สินค้าหมดอายุ และข้อมูล Lot', 'FR-011'], + ['CR01:012', 'ระบบต้องพิมพ์บาร์โค้ดสินค้า (SKU) และตำแหน่งจัดเก็บ และรองรับการสแกนในหน้าจอที่กำหนด', 'FR-012'], + ['CR01:013', 'ระบบต้องสร้างและจัดการใบเสนอราคา, ใบสั่งขาย, ใบแจ้งหนี้, ใบรับคืน และใบลดหนี้', 'FR-013'], + ['CR01:014', 'ระบบต้องสร้างและจัดการใบขอซื้อ, ใบสั่งซื้อ, ใบแจ้งหนี้ซื้อ และใบคืนสินค้าผู้ขาย', 'FR-014'], + ['CR01:015', 'ระบบต้องสร้างและจัดการใบวางบิลรับ, ใบเสร็จรับเงิน, ใบวางบิลจ่าย และใบสำคัญจ่าย', 'FR-015'], + ['CR01:016', 'ระบบต้องจัดการผังบัญชี, แผนก, สูตรบัญชี, สมุดรายวัน และบัญชีแยกประเภท', 'FR-016'], + ['CR01:017', 'ระบบต้องจัดทำรายงานงบทดลอง, งบกำไรขาดทุน, งบดุล, ภาษีมูลค่าเพิ่ม, สมุดรายวัน และความเคลื่อนไหว GL', 'FR-017'], + ['CR01:018', 'ระบบต้องออกเลขที่เอกสารอัตโนมัติและควบคุมสถานะ/วงจรชีวิตของเอกสาร', 'FR-018'], + ['CR01:019', 'ระบบต้องรองรับการแนบไฟล์ที่อนุญาตกับรายการที่กำหนด', 'FR-019'], + ['CR01:020', 'ระบบต้องให้ผู้ใช้กรอง ดู พิมพ์ และส่งออกรายงานปฏิบัติการและรายงานผู้บริหาร', 'FR-020'], + ['CR01:021', 'ระบบต้องแจ้งเตือนผู้ใช้ที่เกี่ยวข้องเมื่อสถานะเอกสารเปลี่ยนหรือมีเหตุการณ์ปฏิบัติการ', 'FR-021'], + ['CR01:022', 'ระบบต้องสรุปยอดสต๊อก/GL และแจ้งเตือนสินค้าใกล้หมดและใบแจ้งหนี้ค้างชำระตามกำหนดเวลา', 'FR-022'], + ['CR01:023', 'ระบบต้องเก็บผู้สร้าง ผู้แก้ไข สถานะ และประวัติรายการเพื่อการตรวจสอบ', 'FR-023'], + ['CR01:024', 'ระบบต้องจำกัดข้อมูลบริษัทและคลังสินค้าให้เฉพาะผู้ใช้ที่ได้รับอนุญาตในบริบทปัจจุบัน', 'FR-024'], + ]], + ['CR02', 'Performance Considerations', [ + ['CR02:001', 'ระบบต้องตอบสนองงานประจำวัน (เปิดหน้าจอ, ค้นหา, สร้างเอกสาร) ภายในเวลาที่ใช้งานได้จริงบนสภาพแวดล้อมที่ตกลง', 'NFR-006'], + ['CR02:002', 'ระบบต้องมีตารางสรุปยอด (Aggregate) เพื่อให้แดชบอร์ดและรายงานแสดงผลได้โดยไม่ต้องคำนวณใหม่ทุกครั้ง', 'NFR-006'], + ['CR02:003', 'ระบบต้องรองรับปริมาณข้อมูลและผู้ใช้พร้อมกันในระดับที่ตกลงสำหรับสภาพแวดล้อมใช้งานจริง', 'NFR-006'], + ]], + ['CR03', 'Interface Considerations', [ + ['CR03:001', 'ระบบต้องเชื่อมต่อฐานข้อมูล MySQL/MariaDB 2 ฐาน (wms สำหรับผู้ใช้/บริษัท และ wms2 สำหรับคลัง/บัญชี)', 'Operational context'], + ['CR03:002', 'ระบบต้องใช้งานผ่าน Web Browser มาตรฐาน (Chrome, Edge, Firefox) ได้', 'NFR-008'], + ['CR03:003', 'ระบบต้องส่งเหตุการณ์ไปยังบริการ Node.js ผ่าน Endpoint ภายในที่ป้องกันด้วย Secret', 'NFR-002'], + ['CR03:004', 'Browser ต้องเชื่อมต่อ Socket.IO Endpoint สาธารณะเพื่อรับการแจ้งเตือนแบบ Real-time', 'FR-021'], + ['CR03:005', 'ระบบต้องส่งอีเมล Onboarding, กู้คืนรหัสผ่าน และแจ้งเตือนผ่าน SMTP ที่ตั้งค่าต่อบริษัท', 'FR-004'], + ]], + ['CR04', 'Required System Characteristics', [ + ['CR04:001', 'ระบบต้องพัฒนาบนสถาปัตยกรรม Web-based Application', 'Operational context'], + ['CR04:002', 'ระบบต้องเก็บข้อมูลแบบ Relational Database และรักษา Referential Integrity', 'Data requirements'], + ['CR04:003', 'ระบบต้องรองรับการเข้าสู่ระบบด้วย Username/Password และกำหนดบทบาทผู้ใช้', 'FR-002'], + ['CR04:004', 'ระบบต้องทำงานบน PHP 8 ขึ้นไป, MySQL/MariaDB และ Node.js', 'NFR-008'], + ]], + ['CR05', 'Human Engineering Considerations', [ + ['CR05:001', 'UI ต้องเป็น Responsive ใช้งานได้ทั้งบน Desktop และอุปกรณ์หน้าคลังสินค้า (Tablet/Mobile)', 'NFR-005'], + ['CR05:002', 'เมนูและปุ่มคำสั่งต้องแสดงตามบทบาทและสิทธิ์การเข้าถึงของผู้ใช้', 'Interface requirements'], + ['CR05:003', 'ระบบต้องแสดงผลการตรวจสอบข้อมูล สถานะ ความสำเร็จ และข้อผิดพลาดอย่างชัดเจน', 'Interface requirements'], + ['CR05:004', 'ระบบต้องมีขั้นตอนยืนยันก่อนลบ ยกเลิก หรือทำรายการที่ย้อนกลับไม่ได้', 'Usability practice'], + ['CR05:005', 'ระบบต้องพิมพ์เอกสารธุรกิจและฉลากบาร์โค้ดในรูปแบบที่ใช้งานได้', 'Interface requirements'], + ]], + ['CR06', 'Security Considerations', [ + ['CR06:001', 'การเชื่อมต่อในสภาพแวดล้อมใช้งานจริงต้องเข้ารหัสด้วย HTTPS/TLS', 'NFR-001'], + ['CR06:002', 'ค่าตั้งค่าและความลับของระบบต้องไม่ถูกเก็บใน Source Control และไม่เข้าถึงได้จากเว็บสาธารณะ', 'NFR-001'], + ['CR06:003', 'การทำงานฝั่งเซิร์ฟเวอร์ต้องตรวจสอบข้อมูลนำเข้า ยืนยันตัวตน ตรวจสิทธิ์ และจำกัดขอบเขตบริษัท/คลัง', 'NFR-002'], + ['CR06:004', 'ระบบต้องจำกัดสิทธิ์การเข้าถึงตามบทบาท (Role-based Access Control) ทั้งใน UI และฝั่งเซิร์ฟเวอร์', 'FR-002'], + ['CR06:005', 'ระบบต้องป้องกัน SQL Injection และ Cross-Site Scripting', 'NFR-002'], + ['CR06:006', 'ระบบต้องบล็อกการเข้าสู่ระบบซ้ำซ้อน (Concurrent Login) ของบัญชีเดียวกัน', 'FR-003'], + ]], + ['CR07', 'Environmental Considerations', [ + ['CR07:001', 'ระบบต้องทำงานบน Linux Server ในรูปแบบติดตั้งเอง (LAMP) หรือ Docker Compose', 'NFR-004'], + ['CR07:002', 'ระบบต้องใช้เขตเวลา Asia/Bangkok อย่างสม่ำเสมอทั้งแอปพลิเคชันและงานตามกำหนดเวลา', 'NFR-010'], + ['CR07:003', 'ระบบต้องใช้งานได้บนอุปกรณ์ Desktop และอุปกรณ์พกพาผ่าน Web Browser', 'NFR-005'], + ['CR07:004', 'ระบบต้องแยกข้อมูลสาธิต/ทดสอบออกจากข้อมูลใช้งานจริงได้', 'Data requirements'], + ]], + ['CR08', 'Operational Considerations', [ + ['CR08:001', 'ระบบต้องมีการสำรองฐานข้อมูลอัตโนมัติรายวัน', 'NFR-004'], + ['CR08:002', 'ระบบต้องกู้คืนข้อมูลจากชุดสำรองได้ตามขั้นตอนที่จัดทำเป็นเอกสาร', 'NFR-004'], + ['CR08:003', 'ระบบต้องมีการเฝ้าระวังสถานะบริการ Web, Database และ Node.js พร้อมแจ้งเตือนเมื่อขัดข้อง', 'NFR-004'], + ['CR08:004', 'ระบบต้องรองรับหลายบริษัท (Multi-company) และหลายคลังสินค้าภายใต้การแยกข้อมูล', 'FR-024'], + ['CR08:005', 'งานตามกำหนดเวลาต้องทำงานสำเร็จโดยไม่สร้างผลลัพธ์ซ้ำหรือเกินสิทธิ์', 'FR-022'], + ]], + ['CR09', 'Maintenance Considerations', [ + ['CR09:001', 'ซอฟต์แวร์ต้องมีโครงสร้างแบบโมดูล (Manager Classes / API) เพื่อให้แก้ไขได้โดยไม่กระทบส่วนอื่น', 'NFR-007'], + ['CR09:002', 'ระบบต้องมีแม่แบบค่าตั้งค่า (Configuration Template) และควบคุมเวอร์ชันด้วย Git', 'NFR-007'], + ['CR09:003', 'ระบบต้องมีเอกสารคู่มือการบำรุงรักษาและประวัติข้อบกพร่องที่แก้ไขแล้ว', 'NFR-004'], + ['CR09:004', 'การเปลี่ยนแปลงโครงสร้างฐานข้อมูลต้องสะท้อนใน setup.php และตาราง schema_migrations', 'NFR-007'], + ]], + ['CR10', 'Installation Considerations', [ + ['CR10:001', 'ระบบต้องติดตั้งฐานข้อมูลได้ในขั้นตอนเดียวผ่าน setup.php', 'NFR-004'], + ['CR10:002', 'ระบบต้องติดตั้งแบบ Container ได้ด้วยคำสั่ง docker compose up -d --build', 'NFR-004'], + ['CR10:003', 'ระบบต้องมีสคริปต์สร้างไฟล์ .env และค่าความลับอัตโนมัติ (docker/init-env.sh)', 'NFR-001'], + ['CR10:004', 'ระบบต้องมีเอกสารขั้นตอนการติดตั้งและตั้งค่า', 'NFR-004'], + ]], + ['CR11', 'Support Considerations', [ + ['CR11:001', 'ต้องมีคู่มือผู้ใช้งาน (Software User Document)', 'Documentation'], + ['CR11:002', 'ต้องมีคู่มือปฏิบัติงานสำหรับผู้ดูแลระบบ (Product Operation Guide)', 'Documentation'], + ['CR11:003', 'ต้องมีการอบรมผู้ใช้งานก่อนเปิดใช้งานจริง', 'Training'], + ['CR11:004', 'ต้องมีช่องทางสนับสนุนและระดับการให้บริการ (SLA) หลังส่งมอบ', 'Maintenance'], + ]], + ['CR12', 'Design Constraints', [ + ['CR12:001', 'ระบบต้องพัฒนาด้วย PHP, MariaDB และ Node.js ตามที่องค์กรอนุมัติ', 'NFR-008'], + ['CR12:002', 'ระบบต้องควบคุม Source Code ด้วย Git โดยมี main เป็น Baseline หลัก', 'Configuration'], + ['CR12:003', 'รหัสผ่านผู้ใช้ต้องเข้ารหัสด้วย bcrypt และไม่เก็บหรือบันทึกเป็นข้อความธรรมดา', 'NFR-002'], + ['CR12:004', 'โครงการต้องจัดทำ Work Products ตามมาตรฐาน ISO/IEC 29110 Basic Profile', 'NFR-009'], + ]], + ['CR13', 'Safety and Reliability Considerations', [ + ['CR13:001', 'การเปลี่ยนแปลงฐานข้อมูลที่เกี่ยวข้องกัน (เอกสาร + สต๊อก + GL) ต้องเป็น Transaction เดียวกัน', 'NFR-003'], + ['CR13:002', 'ระบบต้องป้องกันยอดสต๊อกติดลบและความเคลื่อนไหวซ้ำซ้อน', 'NFR-003'], + ['CR13:003', 'ระบบต้องรองรับการสำรองและกู้คืน (Backup & Recovery) ทั้ง Source Code และฐานข้อมูล', 'NFR-004'], + ['CR13:004', 'ระบบต้องจัดการข้อผิดพลาดโดยแสดงข้อความที่เข้าใจได้แทน Fatal Error', 'NFR-006'], + ]], + ['CR14', 'Quality Expectations', [ + ['CR14:001', 'ระบบต้องผ่านการทดสอบตาม Test Case ที่กำหนดก่อนส่งมอบ', 'Acceptance'], + ['CR14:002', 'ทุกความต้องการต้องสอบกลับได้ถึงการออกแบบ ส่วนประกอบ และหลักฐานการทดสอบ', 'NFR-009'], + ['CR14:003', 'ระบบต้องผ่านการทดสอบการยอมรับ (UAT) โดยตัวแทนลูกค้าบนสภาพแวดล้อมใช้งานจริง', 'Acceptance'], + ['CR14:004', 'ต้องไม่มีข้อบกพร่องระดับวิกฤตค้างอยู่ในด้านความปลอดภัย การแยกข้อมูล และความถูกต้องของสต๊อก/บัญชี', 'Acceptance'], + ]], +]; +export const CRS = CR_GROUPS.flatMap(([, , rows]) => rows); +export const crTopic = (id) => CRS.find((r) => r[0] === id)?.[1] ?? ''; diff --git a/sdlc-delivery.zip b/sdlc-delivery.zip index 3b9da84..ec5526b 100644 Binary files a/sdlc-delivery.zip and b/sdlc-delivery.zip 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.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 similarity index 55% rename from sdlc-delivery/2-SI Process (12 Work Product)/14.Software Components/200-WMS-26-001-00 Software Components 25690817 V1.0.pdf rename to 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 438cb57..73ee96a 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.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)/1.Statement of Work/200-WMS-26-001-00 Statement of Work 25690105 V1.0 Final.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 Final.pdf deleted file mode 100644 index 85fb112..0000000 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 Final.pdf and /dev/null differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/10.Project Repository (Backup)/200-WMS-26-001-00 Project Repository (Backup) 25690817 V1.0.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 similarity index 58% rename from sdlc-delivery/1-PM Process (10 Work Product)/10.Project Repository (Backup)/200-WMS-26-001-00 Project Repository (Backup) 25690817 V1.0.pdf rename to 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 d0deae3..e176dc8 100644 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/10.Project Repository (Backup)/200-WMS-26-001-00 Project Repository (Backup) 25690817 V1.0.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 25690817 V1.0 Final.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 similarity index 57% rename from sdlc-delivery/1-PM Process (10 Work Product)/2.Project Plan/1-Work Schedule/200-WMS-26-001-00 Work Schedule 25690817 V1.0 Final.pdf rename to 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 64cfe29..f599116 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 25690817 V1.0 Final.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.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 new file mode 100644 index 0000000..255c33c Binary files /dev/null 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.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 new file mode 100644 index 0000000..5972be0 Binary files /dev/null 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 25690429 V1.0.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 similarity index 63% rename from sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690429 V1.0.pdf rename to 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 7231d12..9d6c23b 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.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 25690529 V1.0.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 similarity index 62% rename from sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690529 V1.0.pdf rename to 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 8e96e6a..a9f4ad5 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.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)/7.Meeting Record/200-WMS-26-001-00 Meeting Record - Development Substantially Complete Checkpoint 25690529 V1.0.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 similarity index 64% rename from sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Meeting Record - Development Substantially Complete Checkpoint 25690529 V1.0.pdf rename to 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 999a41a..2076914 100644 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Meeting Record - Development Substantially Complete Checkpoint 25690529 V1.0.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 25690814 V1.0.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 similarity index 63% rename from sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690814 V1.0.pdf rename to 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 b1e0928..d655e4f 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.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 25690218 V1.0.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.pdf deleted file mode 100644 index 6471886..0000000 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.pdf and /dev/null differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Meeting Record - Stabilization Checkpoint 25690803 V1.0.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 similarity index 62% rename from sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Meeting Record - Stabilization Checkpoint 25690803 V1.0.pdf rename to 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 6865abc..4aef247 100644 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Meeting Record - Stabilization Checkpoint 25690803 V1.0.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 25690225 V1.0.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.pdf deleted file mode 100644 index dd85eea..0000000 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.pdf and /dev/null 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 new file mode 100644 index 0000000..e603dfb Binary files /dev/null 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 25690317 V1.0.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.pdf deleted file mode 100644 index 06a9b90..0000000 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.pdf and /dev/null 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 new file mode 100644 index 0000000..63b9814 Binary files /dev/null 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.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 new file mode 100644 index 0000000..d28c5cd Binary files /dev/null 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 25690508 V1.0.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.pdf deleted file mode 100644 index 41ac26e..0000000 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.pdf and /dev/null 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 new file mode 100644 index 0000000..f0eb7fd Binary files /dev/null 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 25690513 V1.0.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.pdf deleted file mode 100644 index f4553ee..0000000 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.pdf and /dev/null 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.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 similarity index 60% rename from sdlc-delivery/1-PM Process (10 Work Product)/4.Correction Register/200-WMS-26-001-00 Correction Register 25690817 V1.0.pdf rename to 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 808a0bd..9fb67fd 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.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 25690523 V1.0.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.pdf deleted file mode 100644 index 472922c..0000000 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.pdf and /dev/null differ diff --git a/sdlc-delivery/2-SI Process (12 Work Product)/12.Software design/200-WMS-26-001-00 Software Design 25690817 V1.0.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 similarity index 58% rename from sdlc-delivery/2-SI Process (12 Work Product)/12.Software design/200-WMS-26-001-00 Software Design 25690817 V1.0.pdf rename to 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 fba39b4..4dceace 100644 Binary files a/sdlc-delivery/2-SI Process (12 Work Product)/12.Software design/200-WMS-26-001-00 Software Design 25690817 V1.0.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 25690731 V1.0.pdf b/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690731 V1.0.pdf deleted file mode 100644 index 9793208..0000000 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690731 V1.0.pdf and /dev/null 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.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 similarity index 64% rename from sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690123 V1.0.pdf rename to 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 e69bb98..0c09ae0 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.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 25690803 V1.0.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.pdf deleted file mode 100644 index 0eadc12..0000000 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.pdf and /dev/null differ diff --git a/sdlc-delivery/2-SI Process (12 Work Product)/15.Test Cases and Test Procedures/200-WMS-26-001-00 Test Cases and Test Procedures 25690817 V1.0.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 similarity index 63% rename from sdlc-delivery/2-SI Process (12 Work Product)/15.Test Cases and Test Procedures/200-WMS-26-001-00 Test Cases and Test Procedures 25690817 V1.0.pdf rename to 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 cd50eef..91aae76 100644 Binary files a/sdlc-delivery/2-SI Process (12 Work Product)/15.Test Cases and Test Procedures/200-WMS-26-001-00 Test Cases and Test Procedures 25690817 V1.0.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.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 similarity index 62% rename from sdlc-delivery/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690817 V1.0.pdf rename to 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 02b29d7..2d4649b 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.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.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 new file mode 100644 index 0000000..3d12983 Binary files /dev/null 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.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 new file mode 100644 index 0000000..a3abad6 Binary files /dev/null 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.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 similarity index 59% rename from sdlc-delivery/1-PM Process (10 Work Product)/5.Acceptance Report/200-WMS-26-001-00 Acceptance Report 25690817 V1.0.pdf rename to sdlc-delivery/1-PM Process (10 Work Product)/5.Acceptance Report/200-WMS-26-001-00 Acceptance Report 25690817 V1.0 ApS.pdf index b567818..b523fba 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.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 - Delivery Preparation Bundle 25690810 V1.0.pdf b/sdlc-delivery/1-PM Process (10 Work Product)/6.Change Report/200-WMS-26-001-00 Change Report - Delivery Preparation Bundle 25690810 V1.0.pdf deleted file mode 100644 index a11ec5e..0000000 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/6.Change Report/200-WMS-26-001-00 Change Report - Delivery Preparation Bundle 25690810 V1.0.pdf and /dev/null differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/6.Change Report/200-WMS-26-001-00 Change Report - Demo Data Population 25690808 V1.0.pdf b/sdlc-delivery/1-PM Process (10 Work Product)/6.Change Report/200-WMS-26-001-00 Change Report - Demo Data Population 25690808 V1.0.pdf deleted file mode 100644 index cd11cc2..0000000 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/6.Change Report/200-WMS-26-001-00 Change Report - Demo Data Population 25690808 V1.0.pdf and /dev/null differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/6.Change Report/200-WMS-26-001-00 Change Report - Rack to Bin Rename 25690521 V1.0.pdf b/sdlc-delivery/1-PM Process (10 Work Product)/6.Change Report/200-WMS-26-001-00 Change Report - Rack to Bin Rename 25690521 V1.0.pdf deleted file mode 100644 index 2f33aea..0000000 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/6.Change Report/200-WMS-26-001-00 Change Report - Rack to Bin Rename 25690521 V1.0.pdf and /dev/null differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/6.Change Report/200-WMS-26-001-00 Change Report 25690521 V1.0 NoC.pdf b/sdlc-delivery/1-PM Process (10 Work Product)/6.Change Report/200-WMS-26-001-00 Change Report 25690521 V1.0 NoC.pdf new file mode 100644 index 0000000..dc5b4ca Binary files /dev/null and b/sdlc-delivery/1-PM Process (10 Work Product)/6.Change Report/200-WMS-26-001-00 Change Report 25690521 V1.0 NoC.pdf differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/6.Change Report/200-WMS-26-001-00 Change Report 25690808 V1.0 ApS.pdf b/sdlc-delivery/1-PM Process (10 Work Product)/6.Change Report/200-WMS-26-001-00 Change Report 25690808 V1.0 ApS.pdf new file mode 100644 index 0000000..2fbcdb7 Binary files /dev/null and b/sdlc-delivery/1-PM Process (10 Work Product)/6.Change Report/200-WMS-26-001-00 Change Report 25690808 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 25690810 V1.0 SeV.pdf b/sdlc-delivery/1-PM Process (10 Work Product)/6.Change Report/200-WMS-26-001-00 Change Report 25690810 V1.0 SeV.pdf new file mode 100644 index 0000000..51ebde8 Binary files /dev/null and b/sdlc-delivery/1-PM Process (10 Work Product)/6.Change Report/200-WMS-26-001-00 Change Report 25690810 V1.0 SeV.pdf differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Meeting Record - Project Initiation Checkpoint 25690213 V1.0.pdf b/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Meeting Record - Project Initiation Checkpoint 25690213 V1.0.pdf deleted file mode 100644 index 9b0febc..0000000 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Meeting Record - Project Initiation Checkpoint 25690213 V1.0.pdf and /dev/null 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 new file mode 100644 index 0000000..e0c848b Binary files /dev/null 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.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 new file mode 100644 index 0000000..4515f49 Binary files /dev/null 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.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 new file mode 100644 index 0000000..a8f7596 Binary files /dev/null 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.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 new file mode 100644 index 0000000..755c4e4 Binary files /dev/null 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.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 new file mode 100644 index 0000000..6d793b9 Binary files /dev/null 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.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 new file mode 100644 index 0000000..717864b Binary files /dev/null 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.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 new file mode 100644 index 0000000..7f8d2dd Binary files /dev/null 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.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 new file mode 100644 index 0000000..ce15ac3 Binary files /dev/null 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.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 new file mode 100644 index 0000000..e22bfa3 Binary files /dev/null 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.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 new file mode 100644 index 0000000..7a0fa86 Binary files /dev/null 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.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 new file mode 100644 index 0000000..cfb811b Binary files /dev/null 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.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 new file mode 100644 index 0000000..5caf403 Binary files /dev/null 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.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 similarity index 65% rename from sdlc-delivery/1-PM Process (10 Work Product)/8.Software Configuration/200-WMS-26-001-00 Software Configuration 25690817 V1.0.pdf rename to sdlc-delivery/1-PM Process (10 Work Product)/8.Software Configuration/200-WMS-26-001-00 Software Configuration 25690817 V1.0 ThS.pdf index 53be70a..1feb886 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.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.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 similarity index 58% rename from sdlc-delivery/1-PM Process (10 Work Product)/9.Project Repository/200-WMS-26-001-00 Project Repository 25690817 V1.0.pdf rename to sdlc-delivery/1-PM Process (10 Work Product)/9.Project Repository/200-WMS-26-001-00 Project Repository 25690817 V1.0 ThS.pdf index fc13b83..ac8f915 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.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 Specification 25690817 V1.0.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 similarity index 55% rename from sdlc-delivery/2-SI Process (12 Work Product)/11.Software Requirements specification (SRS)/200-WMS-26-001-00 Software Requirements Specification 25690817 V1.0.pdf rename to 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 088608b..c2778d0 100644 Binary files a/sdlc-delivery/2-SI Process (12 Work Product)/11.Software Requirements specification (SRS)/200-WMS-26-001-00 Software Requirements Specification 25690817 V1.0.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/1-PM Process (10 Work Product)/2.Project Plan/2-Software Project Plan/200-WMS-26-001-00 Software Project Plan 25690817 V1.0 Final.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 similarity index 52% rename from sdlc-delivery/1-PM Process (10 Work Product)/2.Project Plan/2-Software Project Plan/200-WMS-26-001-00 Software Project Plan 25690817 V1.0 Final.pdf rename to sdlc-delivery/2-SI Process (12 Work Product)/12.Software design/200-WMS-26-001-00 Software Design 25690306 V1.0 NoC.pdf index a24888d..65052ab 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 25690817 V1.0 Final.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.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 new file mode 100644 index 0000000..87f6627 Binary files /dev/null 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.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 new file mode 100644 index 0000000..6564355 Binary files /dev/null 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.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 new file mode 100644 index 0000000..d8f4df6 Binary files /dev/null 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.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 new file mode 100644 index 0000000..db6feb3 Binary files /dev/null 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)/16.Test Report/200-WMS-26-001-00 Test Report 25690817 V1.0.pdf b/sdlc-delivery/2-SI Process (12 Work Product)/16.Test Report/200-WMS-26-001-00 Test Report 25690817 V1.0.pdf deleted file mode 100644 index 7020146..0000000 Binary files a/sdlc-delivery/2-SI Process (12 Work Product)/16.Test Report/200-WMS-26-001-00 Test Report 25690817 V1.0.pdf and /dev/null 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 25690112 V1.0 Final.pdf b/sdlc-delivery/2-SI Process (12 Work Product)/17.Software/200-WMS-26-001-00 Software 25690817 V1.0 ThS.pdf similarity index 61% rename from sdlc-delivery/1-PM Process (10 Work Product)/2.Project Plan/3-Customer Requirement/200-WMS-26-001-00 Customer Requirements 25690112 V1.0 Final.pdf rename to sdlc-delivery/2-SI Process (12 Work Product)/17.Software/200-WMS-26-001-00 Software 25690817 V1.0 ThS.pdf index d13ea5d..676a4a8 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 25690112 V1.0 Final.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)/17.Software/200-WMS-26-001-00 Software 25690817 V1.0.pdf b/sdlc-delivery/2-SI Process (12 Work Product)/17.Software/200-WMS-26-001-00 Software 25690817 V1.0.pdf deleted file mode 100644 index c5fa361..0000000 Binary files a/sdlc-delivery/2-SI Process (12 Work Product)/17.Software/200-WMS-26-001-00 Software 25690817 V1.0.pdf and /dev/null differ diff --git a/sdlc-delivery/2-SI Process (12 Work Product)/18.Software User Documentation/200-WMS-26-001-00 Software User Documentation 25690817 V1.0.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 similarity index 55% rename from sdlc-delivery/2-SI Process (12 Work Product)/18.Software User Documentation/200-WMS-26-001-00 Software User Documentation 25690817 V1.0.pdf rename to 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 dfe6da3..77497b5 100644 Binary files a/sdlc-delivery/2-SI Process (12 Work Product)/18.Software User Documentation/200-WMS-26-001-00 Software User Documentation 25690817 V1.0.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.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 similarity index 50% rename from sdlc-delivery/2-SI Process (12 Work Product)/19.Product Operation Guide/200-WMS-26-001-00 Product Operation Guide 25690817 V1.0.pdf rename to 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 fc88c4f..b7b0062 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.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.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 new file mode 100644 index 0000000..f630751 Binary files /dev/null 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)/20.Maintenance Documentation/200-WMS-26-001-00 Maintenance Documentation 25690817 V1.0.pdf b/sdlc-delivery/2-SI Process (12 Work Product)/20.Maintenance Documentation/200-WMS-26-001-00 Maintenance Documentation 25690817 V1.0.pdf deleted file mode 100644 index 263d1b5..0000000 Binary files a/sdlc-delivery/2-SI Process (12 Work Product)/20.Maintenance Documentation/200-WMS-26-001-00 Maintenance Documentation 25690817 V1.0.pdf and /dev/null 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 new file mode 100644 index 0000000..c48103a Binary files /dev/null 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.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 new file mode 100644 index 0000000..2873b72 Binary files /dev/null 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.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 new file mode 100644 index 0000000..3fa0f3f Binary files /dev/null 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.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 new file mode 100644 index 0000000..db07520 Binary files /dev/null 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 Result 25690817 V1.0.pdf b/sdlc-delivery/2-SI Process (12 Work Product)/22.Validation Result/200-WMS-26-001-00 Validation Result 25690817 V1.0.pdf deleted file mode 100644 index de52807..0000000 Binary files a/sdlc-delivery/2-SI Process (12 Work Product)/22.Validation Result/200-WMS-26-001-00 Validation Result 25690817 V1.0.pdf and /dev/null differ diff --git a/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Meeting Record - Closure Preparation Checkpoint 25690814 V1.0.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 similarity index 60% rename from sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Meeting Record - Closure Preparation Checkpoint 25690814 V1.0.pdf rename to sdlc-delivery/2-SI Process (12 Work Product)/22.Validation Result/200-WMS-26-001-00 Validation Results 25690814 V1.0 PaNg.pdf index 68faa26..7812ec7 100644 Binary files a/sdlc-delivery/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Meeting Record - Closure Preparation Checkpoint 25690814 V1.0.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 25690817 V1.0.pdf b/sdlc-delivery/3-Other Document/200-WMS-26-001-00 List of Evidence 25690824 V1.0 YaB.pdf similarity index 55% rename from sdlc-delivery/3-Other Document/200-WMS-26-001-00 List of Evidence 25690817 V1.0.pdf rename to sdlc-delivery/3-Other Document/200-WMS-26-001-00 List of Evidence 25690824 V1.0 YaB.pdf index a0b3f96..4665aa0 100644 Binary files a/sdlc-delivery/3-Other Document/200-WMS-26-001-00 List of Evidence 25690817 V1.0.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 25690817 V1.0.pdf b/sdlc-delivery/3-Other Document/200-WMS-26-001-00 Project Charter Report 25690123 V1.0 YaB.pdf similarity index 57% rename from sdlc-delivery/3-Other Document/200-WMS-26-001-00 Project Charter Report 25690817 V1.0.pdf rename to sdlc-delivery/3-Other Document/200-WMS-26-001-00 Project Charter Report 25690123 V1.0 YaB.pdf index 46342e6..72349f0 100644 Binary files a/sdlc-delivery/3-Other Document/200-WMS-26-001-00 Project Charter Report 25690817 V1.0.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 25690817 V1.0.pdf b/sdlc-delivery/3-Other Document/200-WMS-26-001-00 Stakeholder Register 25690116 V1.0 YaB.pdf similarity index 61% rename from sdlc-delivery/3-Other Document/200-WMS-26-001-00 Stakeholder Register 25690817 V1.0.pdf rename to sdlc-delivery/3-Other Document/200-WMS-26-001-00 Stakeholder Register 25690116 V1.0 YaB.pdf index ce90d20..5423b48 100644 Binary files a/sdlc-delivery/3-Other Document/200-WMS-26-001-00 Stakeholder Register 25690817 V1.0.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/2-SI Process (12 Work Product)/13.Traceability record/200-WMS-26-001-00 Traceability Record 25690817 V1.0.pdf b/sdlc-delivery/3-Other Document/200-WMS-26-001-00 TRACEABILITY-RECORD 25690817 V1.0 NoC.pdf similarity index 52% rename from sdlc-delivery/2-SI Process (12 Work Product)/13.Traceability record/200-WMS-26-001-00 Traceability Record 25690817 V1.0.pdf rename to sdlc-delivery/3-Other Document/200-WMS-26-001-00 TRACEABILITY-RECORD 25690817 V1.0 NoC.pdf index c170d64..adbebba 100644 Binary files a/sdlc-delivery/2-SI Process (12 Work Product)/13.Traceability record/200-WMS-26-001-00 Traceability Record 25690817 V1.0.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 Traceability Record Table 25690817 V1.0.pdf b/sdlc-delivery/3-Other Document/200-WMS-26-001-00 Traceability Record Table 25690817 V1.0.pdf deleted file mode 100644 index 4020c8b..0000000 Binary files a/sdlc-delivery/3-Other Document/200-WMS-26-001-00 Traceability Record Table 25690817 V1.0.pdf and /dev/null differ diff --git a/sdlc-delivery/3-Other Document/200-WMS-26-001-00 Training Report 25690817 V1.0.pdf b/sdlc-delivery/3-Other Document/200-WMS-26-001-00 Training Report 25690817 V1.0.pdf deleted file mode 100644 index 8cc8511..0000000 Binary files a/sdlc-delivery/3-Other Document/200-WMS-26-001-00 Training Report 25690817 V1.0.pdf and /dev/null 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.pdf b/sdlc-delivery/3-Other Document/200-WMS-26-001-00 Training Report 25690822 V1.0 YaB.pdf similarity index 60% rename from sdlc-delivery/2-SI Process (12 Work Product)/21.Verification Result/200-WMS-26-001-00 Verification Results 25690817 V1.0.pdf rename to sdlc-delivery/3-Other Document/200-WMS-26-001-00 Training Report 25690822 V1.0 YaB.pdf index febcd82..fdfcbfd 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.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 new file mode 100644 index 0000000..70206a6 --- /dev/null +++ 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 @@ -0,0 +1,117 @@ +# Statement of Work + + + +| Document No | Statement of Work | Release, Version, By: | 25690105 V1.0 ApS | +| Project Name | โครงการพัฒนาระบบบริหารจัดการคลังสินค้า (BRN WMS) บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด | +| Project Code | 200-WMS-26-001-00 | +| Title | ขอบเขตงานและหนังสือเชิญประชุมเปิดโครงการ | +| Project Period | 5 มกราคม 2569 – 24 สิงหาคม 2569 | Project Duration | 232 วัน | +| Organizer | คุณอภิรัชช์ สุภัทรประทีป (Project Manager) | +| Recorder | คุณเยาวลักษณ์ บางชมภู (Document Control) | + +วันที่ 5 มกราคม 2569 + +**เรื่อง:** ขอบเขตงานโครงการพัฒนาระบบบริหารจัดการคลังสินค้า และนัดประชุมเปิดโครงการ + +**เรียน:** ผู้บริหาร หัวหน้าฝ่าย และผู้เกี่ยวข้องทุกฝ่าย + +ตามที่ บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด ได้ใช้การบันทึกข้อมูลคลังสินค้าด้วยกระบวนการที่กระจายอยู่หลายระบบและบางส่วนยังใช้เอกสารกระดาษ ซึ่งปัจจุบันพบว่ามีข้อจำกัดด้านความถูกต้องของยอดสินค้าคงคลัง ความรวดเร็วในการตรวจสอบ และการเชื่อมโยงกับงานขาย งานจัดซื้อ และงานบัญชี ผู้บริหารจึงเล็งเห็นความจำเป็นในการพัฒนาระบบบริหารจัดการคลังสินค้า (Warehouse Management System) ขึ้นใหม่ เพื่อให้การปฏิบัติงานมีความถูกต้อง ตรวจสอบย้อนกลับได้ และรองรับการเติบโตของธุรกิจ + +ดังนั้น จึงขอนัดประชุมเพื่อหารือร่วมกันระหว่างทุกฝ่ายที่เกี่ยวข้อง เพื่อ + +- รับฟังข้อเสนอแนะจากฝ่ายคลังสินค้า ฝ่ายขาย ฝ่ายจัดซื้อ และฝ่ายบัญชี +- กำหนดแนวทางและกรอบความต้องการของระบบ +- วางแผนดำเนินการพัฒนาและกำหนดผู้รับผิดชอบ + +## รายละเอียดการประชุม + +- วัน เวลา: 5 มกราคม 2569 เวลา 09.00 – 11.00 น. +- สถานที่: ห้องประชุม บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด +- ผู้เข้าร่วม: ผู้บริหาร / ผู้จัดการ / หัวหน้าฝ่ายที่เกี่ยวข้อง และทีมพัฒนาระบบ + +## 1 วัตถุประสงค์ของโครงการ + +- พัฒนาระบบบริหารจัดการคลังสินค้าแบบ Web-based รองรับหลายบริษัทและหลายคลังสินค้า +- รองรับการรับเข้า จ่ายออก โอนย้าย ตรวจนับ พร้อมติดตาม Lot, Serial Number และวันหมดอายุ +- ลดข้อผิดพลาดจากการทำงานด้วยมือ และเพิ่มความสามารถในการตรวจสอบย้อนกลับ +- รองรับงานขาย งานจัดซื้อ งานการเงิน และการบันทึกบัญชีที่เกี่ยวข้อง +- ควบคุมความปลอดภัย การแยกข้อมูลระหว่างบริษัท สิทธิ์การใช้งาน และการแจ้งเตือนแบบ Real-time + +## 2 ขอบเขตงาน (Scope of Work) + +| ลำดับ | ระบบ | ระบบย่อย | +| :---: | --- | --- | +| 1 | ระบบบริหารจัดการผู้ใช้งานและสิทธิ์ | ลงทะเบียนเจ้าของบริษัทและเชิญผู้ใช้งาน (Onboarding) / เข้าสู่ระบบและควบคุมสิทธิ์ตามบทบาท Owner / Admin / Staff / Viewer / กู้คืนรหัสผ่าน, OTP และควบคุม Session / ตั้งค่าบริษัท, SMTP, ผู้ใช้งาน และสิทธิ์การเข้าถึงแอปพลิเคชัน | +| 2 | ระบบข้อมูลหลัก (Master Data) | คลังสินค้า, พื้นที่จัดเก็บ, ช่องจัดเก็บ (Bin) / หมวดสินค้าและสินค้า / ประเภทผู้ติดต่อและผู้ติดต่อ (ลูกค้า/ผู้ขาย) / รองรับโครงสร้างคลังแบบชั้นเดียวและแบบหลายชั้น | +| 3 | ระบบควบคุมสินค้าคงคลัง (Inventory Control) | รับสินค้าเข้า (Stock-in) / จ่ายสินค้าออก (Stock-out) พร้อมตรวจสอบยอดคงเหลือ / โอนย้ายสินค้าระหว่างคลัง/ตำแหน่ง / ติดตาม Lot, Serial Number และวันหมดอายุ / พิมพ์บาร์โค้ดสินค้า/ตำแหน่ง และรองรับการสแกน / แนบไฟล์ประกอบรายการ | +| 4 | ระบบขาย (Sales) | ใบเสนอราคา (Quotation) / ใบสั่งขาย (Sales Order) / ใบแจ้งหนี้ (Invoice) / ใบรับคืน / ใบลดหนี้ (Return / Credit Note) | +| 5 | ระบบจัดซื้อ (Purchasing) | ใบขอซื้อ (Purchase Request) / ใบสั่งซื้อ (Purchase Order) / ใบแจ้งหนี้ซื้อ (Purchase Invoice) / ใบคืนสินค้าผู้ขาย (Supplier Return) | +| 6 | ระบบการเงิน (Finance) | ใบวางบิลรับ / ใบเสร็จรับเงิน / ใบวางบิลจ่าย / ใบสำคัญจ่าย | +| 7 | ระบบบัญชี (Accounting) | ผังบัญชี, แผนก, สูตรบัญชี / สมุดรายวันและบัญชีแยกประเภท (Journal / GL) / รายงานงบทดลอง, งบกำไรขาดทุน, งบดุล, ภาษีมูลค่าเพิ่ม | +| 8 | ระบบรายงานและแดชบอร์ด | แดชบอร์ดคลังสินค้าและบัญชี / รายงานสต๊อก, ความเคลื่อนไหว, ความจุคลัง, สินค้าใกล้หมด, สินค้าหมดอายุ, Lot / กรอง ดู พิมพ์ และส่งออกรายงาน | +| 9 | ระบบควบคุมเอกสาร | ออกเลขที่เอกสารอัตโนมัติตามลำดับที่กำหนด / ควบคุมสถานะและวงจรชีวิตของเอกสาร / บันทึกผู้สร้าง/ผู้แก้ไข/ประวัติรายการ | +| 10 | ระบบแจ้งเตือนและงานตามกำหนดเวลา | แจ้งเตือนแบบ Real-time ผ่าน Node.js / Socket.IO / งานสรุปยอดสต๊อก/GL และแจ้งเตือนสินค้าใกล้หมด, ใบแจ้งหนี้ค้างชำระ ตามกำหนดเวลา | +| 11 | ระบบติดตั้งและตั้งค่า | ติดตั้งแบบ Manual ผ่าน setup.php / ติดตั้งแบบ Container ผ่าน Docker Compose (php-apache, mariadb, node/pm2) / สร้างค่าตั้งค่าและความลับของระบบจาก .env โดยไม่เก็บใน Source Control | + +## 3 สิ่งส่งมอบ (Work Products) + +| รหัส | สิ่งส่งมอบ (Work Product) | รายละเอียด | +| --- | --- | --- | +| WP 1.0 | เอกสาร 200-WMS-26-001-00 Software Project Plan (พร้อม Work Schedule) | ส่งเอกสารจำนวน 1 ชุด | +| WP 2.0 | เอกสาร 200-WMS-26-001-00 Customer Requirements | ส่งเอกสารจำนวน 1 ชุด | +| WP 3.0 | เอกสาร 200-WMS-26-001-00 Software Requirements Specification | ส่งเอกสารจำนวน 1 ชุด | +| WP 4.0 | เอกสาร 200-WMS-26-001-00 Software Design | ส่งเอกสารจำนวน 1 ชุด | +| WP 5.0 | เอกสาร 200-WMS-26-001-00 Change Report | ส่งเอกสารจำนวน 3 ฉบับ (CH-001–CH-003) | +| 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 10.0 | เอกสาร 200-WMS-26-001-00 Product Operation Guide | ส่งเอกสารจำนวน 1 ชุด | +| WP 11.0 | เอกสาร 200-WMS-26-001-00 Maintenance Document | ส่งเอกสารจำนวน 1 ชุด | + +## 4 ข้อยกเว้นและข้อสมมติ + +- ไม่รวมการจัดหาเครื่องแม่ข่าย อุปกรณ์เครือข่าย เครื่องอ่านบาร์โค้ด หรือบริการภายนอก เว้นแต่ได้รับอนุมัติแยกต่างหาก +- การย้ายข้อมูลจากระบบเดิม การเชื่อมต่อ ERP หรือบริการภายนอก ต้องผ่านกระบวนการ Change Request +- ผู้มีส่วนได้ส่วนเสียต้องให้ข้อมูล ตรวจสอบเอกสาร และร่วมทดสอบตามกำหนดเวลา + +## 5 แผนงานและหลักไมล์ + +| ช่วงงาน | ระยะเวลา | +| --- | --- | +| เริ่มต้นและวางแผนโครงการ | 5 มกราคม 2569 – 18 กุมภาพันธ์ 2569 | +| พัฒนาและทดสอบภายใน | 19 กุมภาพันธ์ 2569 – 29 พฤษภาคม 2569 | +| ตรวจสอบ ทดสอบ จัดทำเอกสาร และส่งมอบ | 30 พฤษภาคม 2569 – 24 สิงหาคม 2569 | +| วันสิ้นสุดโครงการอย่างเป็นทางการ | 24 สิงหาคม 2569 | + +## 6 เกณฑ์การตรวจรับ + +- ฟังก์ชันในขอบเขตผ่าน Test Case และเชื่อมโยงกับความต้องการใน Traceability Record +- ไม่มีข้อบกพร่องระดับวิกฤตที่ขัดขวางการใช้งานคงค้าง +- มีคู่มือติดตั้ง คู่มือผู้ใช้ คู่มือผู้ดูแลระบบ และคู่มือบำรุงรักษาครบถ้วน +- ผลการตรวจสอบ (Verification) การทดสอบการยอมรับ (Validation) และการตรวจรับได้รับการลงนามโดยผู้มีอำนาจ + +## 7 การควบคุมการเปลี่ยนแปลง + +การเปลี่ยนแปลงขอบเขต กำหนดเวลา หรือสิ่งส่งมอบ ต้องบันทึกใน Change Report ประเมินผลกระทบ และได้รับอนุมัติก่อนดำเนินการ ส่วนการแก้ไขข้อบกพร่องต้องบันทึกใน Correction Register และเชื่อมโยงกับหลักฐานการทดสอบที่เกี่ยวข้อง + +จึงเรียนมาเพื่อโปรดพิจารณาและเข้าร่วมประชุมโดยพร้อมเพรียงกัน + +## ผู้จัดทำเอกสาร (Secretary) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณอภิรัชช์ สุภัทรประทีป | Project Manager | | | + +## ผู้ตรวจสอบเอกสาร (Reviewer) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเยาวลักษณ์ บางชมภู | Document Control | | | + +## ผู้อนุมัติ (Approval) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเสรี วิริยะสกุลธรณ์ | Project Sponsor | | | 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 Final.md b/sdlc/1-PM Process (10 Work Product)/1.Statement of Work/200-WMS-26-001-00 Statement of Work 25690105 V1.0 Final.md deleted file mode 100644 index 0ca6bb7..0000000 --- a/sdlc/1-PM Process (10 Work Product)/1.Statement of Work/200-WMS-26-001-00 Statement of Work 25690105 V1.0 Final.md +++ /dev/null @@ -1,100 +0,0 @@ -# Statement of Work - -**B.R.N. ENTERPRISE CO., LTD.** -1011 Supalai Grand Tower, 7th Floor, Unit 6-7, Rama 3 Road, -Chongnonsi, Yannawa, Bangkok 10120 - -| Document field | Value | -|---|---| -| Document | Statement of Work | -| Project | BRN WMS | -| Project code | 200-WMS-26-001-00 | -| Project name | Warehouse Management System Development Project | -| Project period | 05/01/26–24/08/26 | -| Release | 05/01/26 V1.0 Final | -| Status | Final — ready for authorized approval | - -Date 05/01/26 - -**Subject:** Scope of work for the Warehouse Management System Development Project - -**To:** Executives and project stakeholders - -B.R.N. Enterprise Co., Ltd. intends to carry out the Warehouse Management System Development Project to increase the accuracy and speed of warehouse operations, enabling systematic tracking of inventory, product movements, purchase orders, business documents, and related accounting data, using centralized data and access rights defined by user role. - -This document defines the project's scope, deliverables, acceptance criteria, responsibilities, and timeline in accordance with ISO/IEC 29110, with details as follows. - -## 1. Objectives - -- Develop a web-based system for inventory control and multi-warehouse operations. -- Support receiving, issuing, transfers, adjustments, and stock verification, with tracking of Lot, Serial Number, and expiry date. -- Reduce errors from manual work and increase traceability. -- Support management of purchase orders, procurement, product returns, invoices, reports, and related accounting entries. -- Provide security, per-company data separation, access rights management, and real-time notifications. - -## 2. Scope of Work - -### 2.1 Analysis and Design - -- Gather and analyze user requirements; define workflows, data, and business rules. -- Design system architecture, database, user interface, service integrations, and security measures. - -### 2.2 System Development - -- Master data: companies, users, contacts, products, warehouses, zones, aisles, storage locations, and units of measure. -- Inventory: receiving, issuing, transfers, stock adjustments, stock counts, balances, and movement history. -- Business documents: Sales Order, Purchase Order, Return, Invoice, and document numbering sequences. -- Finance and accounting: income, expenses, journals, accounting entries, and system-supported reports. -- Dashboard, reports, data export, Barcode/Label, and file attachments. -- Authentication, role assignment (Owner/Admin/Staff/Viewer), per-company data restriction, and session control. -- Real-time notification services and scheduled jobs using Node.js/Socket.IO. - -### 2.3 Testing and Delivery - -- Prepare and execute tests against requirements, record results, fix defects, and perform confirmation testing. -- Prepare user manuals, installation/operation manuals, and maintenance documentation. -- Prepare verification, validation, and acceptance evidence. - -## 3. Deliverables - -Deliverables consist of the software, source code, installation and database scripts, configuration, manuals, and Work Products of the Project Management and Software Implementation processes under ISO/IEC 29110, totaling 22 items, stored in the Project Repository under version control. - -## 4. Exclusions and Assumptions - -- Excludes procurement of servers, network equipment, barcode scanners, or third-party services, unless separately approved. -- Migration of existing data, ERP/external service integrations, and customizations outside the scope must go through the Change Request process. -- Stakeholders must provide information, review documents, and participate in testing/acceptance as scheduled. - -## 5. Plan and Milestones - -- Project initiation and planning: 05/01/26–18/02/26 -- Internal development and testing: 19/02/26–29/05/26 -- Acceptance testing, documentation, delivery, and stabilization: 30/05/26–24/08/26 -- Official project completion date: 24/08/26 - -## 6. Acceptance Criteria - -- In-scope functions pass Test Cases and are linked to requirements in the Traceability Record. -- Critical defects that block usage are resolved, or an approach accepted by the authorized approver is in place. -- Installation, user, operation, and maintenance documentation are available. -- Verification, Validation, and Acceptance results are reviewed and signed off by the authorized approver. - -## 7. Change Management - -Changes to scope, schedule, or deliverables must be recorded in the Change Report, assessed for impact, and approved before implementation. Defect corrections must be recorded in the Correction Register and linked to the relevant test evidence. - -This Statement of Work has therefore been prepared to serve as the framework for the project's execution, and stakeholders are requested to review and approve it within their authority. - -## 8. Approval - -**Name:** Seri Viriyasakultorn - -**Project roles:** Project Sponsor / Customer Representative / Authorized Approver - -**Position:** Managing Director - -**Company:** B.R.N. Enterprise Co., Ltd. - -**Signature:** ______________________________________________ - -**Date:** ___________________________________________________ diff --git a/sdlc/1-PM Process (10 Work Product)/10.Project Repository (Backup)/200-WMS-26-001-00 Project Repository (Backup) 25690817 V1.0.md b/sdlc/1-PM Process (10 Work Product)/10.Project Repository (Backup)/200-WMS-26-001-00 Project Repository (Backup) 25690817 V1.0.md deleted file mode 100644 index 68f7b99..0000000 --- a/sdlc/1-PM Process (10 Work Product)/10.Project Repository (Backup)/200-WMS-26-001-00 Project Repository (Backup) 25690817 V1.0.md +++ /dev/null @@ -1,75 +0,0 @@ -# Project Repository (Backup) - -| Document field | Value | -|---|---| -| Document | Project Repository (Backup) | -| Project | BRN WMS | -| Project code | 200-WMS-26-001-00 | -| Title | Project Repository Backup Record | -| Project period | 05/01/26–24/08/26 | -| Release | 17/08/26 V1.0 | -| Closure status date | 24/08/26 | -| Standard | ISO/IEC 29110 Basic Profile | -| System Analyst | Noppong Chareunsook | -| Developer | Thanakorn Sathitwitayakul | -| Project Manager | Apirach Supattaratpateep | -| Project Sponsor / Customer Representative | Seri Viriyasakultorn | -| Status | Final | - -## 1. Purpose - -This record identifies the backup mechanisms protecting BRN WMS source code and SDLC work products against loss of the primary repository, per the Project Repository record (Section 2). - -## 2. Code backup - -| Field | Value | -|---|---| -| Backup mechanism | Secondary Git remote | -| Backup remote name | `backup` | -| Backup remote URL | `git@github.com:thanakorninbox-dev/wms-app.git` | -| Configuration | Secondary remote mirrors the delivered software baseline from `origin/main`; SDLC sources and the generated package are controlled on the documentation delivery branch `sdlc`. | -| Sync status | Delivered software baseline `6c39700` confirmed on both `origin/main` and `backup/main`; the final controlled `sdlc` branch and release tag `sdlc-v1.0-final` were synchronized to the backup remote and checked by remote-reference retrieval. | -| Restoration check | Performed manually by the Developer and confirmed successful. Carried out outside version control, so no Git artefact records it. | - -## 3. Document backup - -| Field | Value | -|---|---| -| Backup mechanism | Generated PDF package controlled in Git and included in the project backup process | -| Location | `sdlc-delivery/` in the repository, generated from `sdlc/` by `scripts/build-sdlc-delivery.sh` | -| Contents | 46 PDFs covering the PM, SI, and Other Document work products, including all 4 Meeting Records | -| Verification | Verified as non-empty and readable | - -## 4. Backup verification items - -| ID | Item | Owner | Required before | -|---|---|---|---| -| BK-001 | Confirm the `backup` remote is reachable and contains the delivered software baseline from `origin/main`. | Developer | **Closed** — baseline `6c39700` confirmed by the Developer | -| BK-002 | Perform and record a restoration check (clone from `backup` and verify integrity). | Developer | **Closed** — performed manually by the Developer | -| BK-003 | Regenerate the PDF delivery package so it covers all 46 controlled files, including the 4 Meeting Records. | Developer | **Closed** — all 46 PDFs included | -| BK-004 | Synchronize the final controlled SDLC delivery commit/branch and release tag to the backup remote and confirm that they can be retrieved. | Developer | **Closed 24/08/26** — `backup/sdlc` and `sdlc-v1.0-final` confirmed by remote-reference retrieval | - -## 5. Approval - -### Prepared by - -Name: Thanakorn Sathitwitayakul -Role: Developer -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Reviewed by - -Name: Apirach Supattaratpateep -Role: Project Manager -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Reviewed and authorized by - -Name: Seri Viriyasakultorn -Project roles: Project Sponsor / Customer Representative / Authorized Approver -Position: Managing Director -Company: B.R.N. Enterprise Co., Ltd. -Signature: ______________________________________________ -Date: ___________________________________________________ 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 new file mode 100644 index 0000000..fa36701 --- /dev/null +++ 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 @@ -0,0 +1,69 @@ +# Project Repository (Backup) + + + +| Document No | Project Repository (Backup) | Release, Version, By: | 25690824 V1.0 ThS | +| Project Name | โครงการพัฒนาระบบบริหารจัดการคลังสินค้า (BRN WMS) บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด | +| Project Code | 200-WMS-26-001-00 | +| Title | พื้นที่สำรองสำหรับใช้กู้คืนข้อมูล Project Repository ในกรณีที่เกิดการสูญหาย | +| ระยะเวลา | 5 มกราคม 2569 – 24 สิงหาคม 2569 | +| Organizer | คุณอภิรัชช์ สุภัทรประทีป (Project Manager) | +| Recorder | คุณเยาวลักษณ์ บางชมภู (Document Control) | + +## การสำรอง Source Code และเอกสาร + +| หัวข้อ | รายละเอียด | +| --- | --- | +| วิธีการสำรอง | 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` | +| รอบการสำรอง | ซิงก์ทุกครั้งที่มีการส่งมอบหรือปรับปรุง Baseline | +| ผู้รับผิดชอบ | คุณธนกร สถิตวิทยากุล (Developer) | + +## การสำรองฐานข้อมูล + +| หัวข้อ | รายละเอียด | +| --- | --- | +| วิธีการสำรอง | Export ฐานข้อมูล `wms` และ `wms2` อัตโนมัติ | +| รอบการสำรอง | ทุกวัน เวลา 02:00 น. (Asia/Bangkok) | +| ที่จัดเก็บ | พื้นที่จัดเก็บบนคลาวด์ที่บริษัทควบคุม | +| ระยะเวลาเก็บรักษา | ชุดสำรองรายวันเก็บ 30 วัน และชุดสิ้นเดือนเก็บ 12 เดือน | +| สิทธิ์การเข้าถึง | จำกัดเฉพาะผู้ดูแลระบบและผู้บริหารที่ได้รับมอบหมาย | + +## รายการตรวจสอบการสำรองข้อมูล + +| ลำดับ | รายการตรวจสอบ | ผู้รับผิดชอบ | วันที่ดำเนินการ | ผลการตรวจสอบ | +| :---: | --- | :---: | :---: | :---: | +| 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 | ผ่าน | + +## ขั้นตอนการกู้คืน + +| ลำดับ | ขั้นตอน | รายละเอียด | +| :---: | --- | --- | +| 1 | ยืนยันขอบเขตความเสียหาย | ตรวจสอบว่าข้อมูลที่สูญหายเป็น Source Code เอกสาร หรือฐานข้อมูล | +| 2 | เลือกชุดสำรองที่จะใช้ | เลือกชุดสำรองล่าสุดที่ผ่านการตรวจสอบและยืนยันวันที่ | +| 3 | กู้คืนสู่สภาพแวดล้อมทดสอบก่อน | Clone จาก Remote สำรอง หรือ Restore ฐานข้อมูลสู่เครื่องทดสอบ | +| 4 | ตรวจสอบความถูกต้อง | ตรวจสอบ Baseline, Tag และข้อมูลตัวอย่างว่าครบถ้วน | +| 5 | กู้คืนสู่สภาพแวดล้อมใช้งานจริง | บันทึกจุดกู้คืน หยุดบริการที่เกี่ยวข้อง กู้คืน แล้วตรวจสอบสถานะระบบตามคู่มือผู้ดูแลระบบ | + +## ผู้จัดทำเอกสาร (Secretary) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณธนกร สถิตวิทยากุล | Developer | | | + +## ผู้ตรวจสอบเอกสาร (Reviewer) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณอภิรัชช์ สุภัทรประทีป | Project Manager | | | + +## ผู้อนุมัติ (Approval) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเสรี วิริยะสกุลธรณ์ | Project Sponsor | | | 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 new file mode 100644 index 0000000..aae2146 --- /dev/null +++ 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 @@ -0,0 +1,81 @@ +# Work Schedule + + + +| Document No | Work Schedule | Release, Version, By: | 25690213 V1.0 ApS | +| Project Name | โครงการพัฒนาระบบบริหารจัดการคลังสินค้า (BRN WMS) บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด | +| Project Code | 200-WMS-26-001-00 | +| Title | แผนการดำเนินงานโครงการ (Work Schedule) | +| Project Period | 5 มกราคม 2569 – 24 สิงหาคม 2569 | Project Duration | 232 วัน | +| Organizer | คุณอภิรัชช์ สุภัทรประทีป (Project Manager) | +| Recorder | คุณเยาวลักษณ์ บางชมภู (Document Control) | + +## แผนการดำเนินงาน (Work Schedule) + +| No. | Phase | Task | รายละเอียด | ผู้รับผิดชอบ | Start | Finish | วัน | สิ่งส่งมอบ / หลักฐาน | Status | หมายเหตุ | +| :---: | --- | --- | --- | :---: | ---: | ---: | ---: | --- | :---: | --- | +| 1.1 | Project Initiation | Kick-off Meeting | เปิดโครงการ ชี้แจงขอบเขต เป้าหมาย และทีมงาน | ApS, SeV | 5 ม.ค. 69 | 9 ม.ค. 69 | 5 | Statement of Work | Completed | เปิดโครงการอย่างเป็นทางการ | +| 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.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 และ 12 สถานการณ์ UAT | +| 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 | + +## หลักไมล์ของโครงการ (Milestones) + +| หลักไมล์ | วันที่ | เกณฑ์การบรรลุ | +| --- | :---: | --- | +| เปิดโครงการอย่างเป็นทางการ | 5 มกราคม 2569 | ประชุม Kick-off และชี้แจงขอบเขตงาน | +| อนุมัติกฎบัตรโครงการ | 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 และ 12 สถานการณ์ UAT ผ่านทั้งหมด | +| ตรวจรับส่งมอบระบบ | 17 สิงหาคม 2569 | ผลการตรวจรับ Accepted | +| อบรมผู้ใช้งาน | 22 สิงหาคม 2569 | อบรมผู้ใช้งาน 6 คน | +| ปิดโครงการ | 24 สิงหาคม 2569 | ปิดโครงการอย่างเป็นทางการ | + +## หมายเหตุการติดตามแผนงาน + +- สถานะงานได้รับการปรับปรุงทุกงวดรายงานตาม Progress Status Record +- งานที่ไม่แล้วเสร็จตามกำหนดต้องดำเนินการตามแผนสำรองใน Software Project Plan หัวข้อ 10 +- การเปลี่ยนแปลงแผนงานที่กระทบกำหนดส่งมอบต้องผ่าน Change Report + +## ผู้จัดทำเอกสาร (Secretary) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณอภิรัชช์ สุภัทรประทีป | Project Manager | | | + +## ผู้ตรวจสอบเอกสาร (Reviewer) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเยาวลักษณ์ บางชมภู | Document Control | | | + +## ผู้อนุมัติ (Approval) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเสรี วิริยะสกุลธรณ์ | Project Sponsor | | | diff --git a/sdlc/1-PM Process (10 Work Product)/2.Project Plan/1-Work Schedule/200-WMS-26-001-00 Work Schedule 25690817 V1.0 Final.md b/sdlc/1-PM Process (10 Work Product)/2.Project Plan/1-Work Schedule/200-WMS-26-001-00 Work Schedule 25690817 V1.0 Final.md deleted file mode 100644 index c9a3dec..0000000 --- a/sdlc/1-PM Process (10 Work Product)/2.Project Plan/1-Work Schedule/200-WMS-26-001-00 Work Schedule 25690817 V1.0 Final.md +++ /dev/null @@ -1,99 +0,0 @@ -# Work Schedule - -| Document field | Value | -|---|---| -| Document | Work Schedule | -| Project | BRN WMS | -| Project code | 200-WMS-26-001-00 | -| Project period | 05/01/26–24/08/26 | -| Project end date | 24/08/26 | -| Release | 17/08/26 V1.0 Final | -| Schedule baseline | 05/01/26 | -| Standard | ISO/IEC 29110 Basic Profile | -| Status | Final — reviewed and authorized | - -## Revision history - -| Version | Date | Change | Prepared by | -|---|---|---|---| -| V1.0 | 17/08/26 | Initial controlled issue, subsequently updated with closure outcomes through 24/08/26: training, operational controls, delivery packaging, and repository-backup synchronization completed. | Apirach Supattaratpateep | - -The Status, Actual/evidence date and Remarks columns below record outcomes through formal closure on 24/08/26. The Start, Finish and Duration columns retain the 05/01/26 planned baseline; where a task finished after its planned Finish date, the Remarks column states the actual finish. - -## Schedule basis - -| No. | Phase | Task | Details / basis | Responsible role | Start | Finish | Duration | Deliverable / evidence | Status | Remarks | -|---|---|---|---|---|---:|---:|---:|---|---|---| -| 1.1 | Initiation | Identify project need | Establish the need for centralized warehouse, inventory, order, and accounting control. | Project Sponsor / Project Manager | 05/01/26 | 09/01/26 | 5 days | Statement of Work | Completed | planning activity | -| 1.2 | Initiation | Identify stakeholders and objectives | Identify sponsor, operational users, system administrator, development, and approval roles. | Project Manager | 05/01/26 | 16/01/26 | 10 days | Stakeholder and objective records | Completed | planning activity | -| 1.3 | Initiation | Approve project scope | Confirm project boundaries, assumptions, deliverables, and acceptance approach. | Project Sponsor | 19/01/26 | 23/01/26 | 5 days | Approved Statement of Work | Completed | Approved scope recorded | -| 2.1 | Planning | Collect customer requirements | Document functional, data, security, operational, and quality requirements. | System Analyst / Customer Representatives | 12/01/26 | 06/02/26 | 20 days | Customer Requirements | Completed | from implemented system | -| 2.2 | Planning | Prepare Software Project Plan | Define lifecycle, resources, risks, repository, configuration, communication, and controls. | Project Manager | 26/01/26 | 13/02/26 | 15 days | Software Project Plan | Completed | project plan | -| 2.3 | Planning | Baseline requirements and schedule | Review initial requirements, priorities, milestones, and work-product responsibilities. | Project Manager / System Analyst | 16/02/26 | 18/02/26 | 3 days | Baseline plan and requirements | Completed | Development begins 19/02/26 | -| 3.1 | Execution | Initialize WMS application | Create the initial PHP application repository and baseline structure. | System Analyst / Developer | 19/02/26 | 25/02/26 | 5 days | Application baseline | Completed | -| 3.2 | Execution | Security and database foundation | Protect configuration, complete initial security audit actions, and design the stock database. | Developer | 09/03/26 | 17/03/26 | 7 days | Security and database baseline | Completed | -| 3.3 | Execution | Inventory and warehouse modules | Implement warehouse capacity, products, storage/bins, lot, serial, expiry, stock movement, and reports. | Developer | 09/04/26 | 29/04/26 | 15 days | Inventory, ICS, dashboard, and report modules | Completed | -| 3.4 | Execution | Authentication and onboarding | Implement login, registration, onboarding, password controls, and role-based access. | Developer | 28/04/26 | 12/05/26 | 11 days | Authentication and user-management modules | Completed | -| 3.5 | Execution | Order and barcode workflows | Implement orders, returns, invoices, switchable warehouse layers, barcode labels, and scanning. | Developer | 02/05/26 | 08/05/26 | 5 days | Order and barcode modules | Completed | -| 3.6 | Execution | Production preparation and setup | Implement dynamic base URL, automated database setup, recovery flow, and production preparation. | Developer | 11/05/26 | 13/05/26 | 3 days | Setup and configuration implementation | Completed | -| 3.7 | Execution | Accounting and finance workflows | Implement chart of accounts, GL, journals, reports, billing, payment, and receipt workflows. | Developer | 13/05/26 | 23/05/26 | 9 days | Accounting and finance modules | Completed | -| 3.8 | Execution | Real-time services and scheduled jobs | Implement Socket.IO notifications, stock/GL aggregates, and operational alerts. | Developer | 22/05/26 | 27/05/26 | 4 days | Node.js service and scheduled jobs | Completed | -| 3.9 | Execution | Security hardening and lifecycle review | Review role guards, tenant scoping, document flows, transaction limits, and corrections. | Developer / Reviewer | 21/05/26 | 28/05/26 | 6 days | Security and lifecycle review | Completed | -| 3.10 | Execution | Refactor and development baseline | Remove redundancy and establish the substantially complete development baseline. | Developer | 29/05/26 | 29/05/26 | 1 day | Development baseline | Completed | -| 4.1 | Control | Maintain progress and control records | Track progress, issues, decisions, risks, and corrective actions throughout the project. | Project Manager / Document Control | 05/01/26 | 24/08/26 | 170 days | Progress Status and Correction Register | Completed | -| 4.2 | Control | Configuration and repository control | Control source, baselines, document versions, configuration, and backups. | Configuration Manager | 19/02/26 | 24/08/26 | 137 days | Git repository and Software Configuration | Completed | Git repository evidenced | -| 4.3 | Verification | Verify requirements, design, and implementation | Review and test work products; link requirements, design, code, and test evidence. | Reviewer / Tester | 30/05/26 | 31/07/26 | 45 days | Verification Results and Traceability Record | Completed | Actual finish 17/08/26, after the scheduled finish of 31/07/26. Traceability Record complete (34/34 requirements linked and verified); Round 2 independent verification performed by Yaowalak Bangchomphoo (Document Control) on 17/08/26 | -| 4.4 | Validation | Customer-oriented system validation | Validate operational workflows and quality attributes against intended use. | Customer Representatives / Tester | 01/06/26 | 07/08/26 | 50 days | Validation Results and Test Report | Completed | Actual finish 14/08/26, after the scheduled finish of 07/08/26. All 34 test cases and 12 validation scenarios were executed and passed over 10/08/26–14/08/26, confirmed by the project user on 17/08/26; per-case execution dates within that window were not separately recorded | -| 4.5 | Documentation | Prepare operational documentation | Prepare user, operation, configuration, deployment, and maintenance guidance. | Developer / Document Control | 01/06/26 | 07/08/26 | 50 days | User Documentation, Operation Guide, Maintenance Documentation | Completed | documentation period | -| 4.6 | Stabilization | Configuration and login corrections | Correct login and environment configuration issues identified after baseline. | Developer | 03/08/26 | 03/08/26 | 1 day | Configuration and login correction | Completed | -| 4.7 | Stabilization | Prepare demonstration data | Populate controlled demonstration data for validation and handover support. | Developer / Tester | 14/08/26 | 14/08/26 | 1 day | Demonstration data | Completed | -| 5.1 | Closure | Final repository and work-product review | Confirm required work products, traceability, configuration items, and unresolved actions. | Project Manager / Document Control | 10/08/26 | 24/08/26 | 15 days | Repository review and List of Evidence | Completed | Round 2 independent verification performed by Document Control on 17/08/26 | -| 5.2 | Closure | Acceptance and project closure | Obtain authorized acceptance and record project closure and follow-up actions. | Project Sponsor / Project Manager | 14/08/26 | 24/08/26 | 11 days | Acceptance Report, Training Report, operational-control closure, and repository-backup record | Completed | Product accepted 17/08/26; training completed 22/08/26; operational controls closed 23/08/26; administrative and repository-backup closure completed 24/08/26 | - -## Milestones - -| Milestone | Date | Basis | -|---|---:|---| -| Formal project start | 05/01/26 | Agreed project boundary | -| Requirements and planning baseline | 18/02/26 | Planned pre-development completion | -| Development start | 19/02/26 | Application development begins | -| Development substantially complete | 29/05/26 | Final main-development refactoring commit | -| Post-development correction | 03/08/26 | Login and configuration correction commit | -| Demonstration data | 14/08/26 | Final repository commit | -| Project end date | 24/08/26 | Formal project completion date | - -## Approval - -### Prepared by - -Name: Apirach Supattaratpateep - -Role: Project Manager / Document Creator - -Signature: ______________________________________________ - -Date: ___________________________________________________ - -### Technical contributor - -Name: Thanakorn Sathitwitayakul - -Role: Developer - -Signature: ______________________________________________ - -Date: ___________________________________________________ - -### Reviewed and authorized by - -Name: Seri Viriyasakultorn - -Project roles: Project Sponsor / Customer Representative / Authorized Approver - -Position: Managing Director - -Company: B.R.N. Enterprise Co., Ltd. - -Signature: ______________________________________________ - -Date: ___________________________________________________ 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 new file mode 100644 index 0000000..57c7be5 --- /dev/null +++ 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 @@ -0,0 +1,283 @@ +# Software Project Plan + + + +| Document No | Software Project Plan | Release, Version, By: | 25690213 V1.0 ApS | +| Project Name | โครงการพัฒนาระบบบริหารจัดการคลังสินค้า (BRN WMS) บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด | +| Project Code | 200-WMS-26-001-00 | +| Title | แผนการดำเนินโครงการ | +| Project Period | 5 มกราคม 2569 – 24 สิงหาคม 2569 | Project Duration | 232 วัน | +| Organizer | คุณอภิรัชช์ สุภัทรประทีป (Project Manager) , คุณนพพงษ์ เจริญสุข (System Analyst) | +| Recorder | คุณเยาวลักษณ์ บางชมภู (Document Control) | + +## 1 Manufacture + +บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด เป็นบริษัทผู้ประกอบธุรกิจด้านเทคโนโลยีสารสนเทศ ซึ่งมีประสบการณ์ในการส่งมอบผลิตภัณฑ์และบริการด้านเทคโนโลยีให้แก่หน่วยงานภาครัฐและเอกชนอย่างต่อเนื่อง บริษัทประกอบธุรกิจหลัก 3 ด้าน ได้แก่ + +- พัฒนาซอฟต์แวร์ตามความต้องการของหน่วยงาน (Software Development) +- จำหน่ายผลิตภัณฑ์ซอฟต์แวร์สำเร็จรูป (Software Package) เช่น ระบบบริหารจัดการสินทรัพย์ +- ให้บริการบำรุงรักษาระบบ (Service Maintenance: MA) ครอบคลุมโครงสร้างพื้นฐาน เครื่องแม่ข่าย และศูนย์ข้อมูล + +## 2 Overview + +เพื่อยกระดับการบริหารจัดการคลังสินค้าของบริษัทให้มีความถูกต้อง รวดเร็ว และตรวจสอบย้อนกลับได้ บริษัทมีความประสงค์จะพัฒนา ระบบบริหารจัดการคลังสินค้า (BRN WMS) ขึ้นใหม่ โดยมีวัตถุประสงค์เพื่อ + +- รวมศูนย์ข้อมูลคลังสินค้า สินค้าคงคลัง และความเคลื่อนไหวของสินค้าไว้ในระบบเดียว +- เชื่อมโยงงานขาย งานจัดซื้อ งานการเงิน และการบันทึกบัญชีเข้ากับความเคลื่อนไหวของสินค้า +- ควบคุมสิทธิ์การเข้าถึงและแยกข้อมูลระหว่างบริษัทและคลังสินค้าอย่างชัดเจน +- ให้ผู้บริหารเห็นภาพรวมสถานะคลังสินค้าและสถานะทางการเงินได้ตามเวลาจริง + +## 3 Goals and Scope + +### 3.1 เป้าหมายของโครงการ + +**เป้าหมายด้านองค์กร** + +- ลดข้อผิดพลาดของยอดสินค้าคงคลังที่เกิดจากการบันทึกด้วยมือ +- เพิ่มความสามารถในการตรวจสอบย้อนกลับของสินค้าตาม Lot, Serial Number และวันหมดอายุ +- ทำให้ข้อมูลคลังสินค้าและข้อมูลบัญชีสอดคล้องกันโดยไม่ต้องบันทึกซ้ำ + +**เป้าหมายด้านผู้ใช้งาน** + +- ให้พนักงานคลังสินค้าบันทึกรายการรับเข้า จ่ายออก และโอนย้ายได้สะดวกจากอุปกรณ์หน้าคลัง +- ให้ฝ่ายขายและฝ่ายจัดซื้อจัดทำเอกสารและติดตามสถานะได้ในระบบเดียว +- ให้ฝ่ายบัญชีได้ข้อมูลรายการที่ผ่านการตรวจสอบแล้วโดยอัตโนมัติ + +### 3.2 ขอบเขตของโครงการ (SOW) + +| ลำดับ | ระบบ | ระบบย่อย | +| :---: | --- | --- | +| 1 | ระบบบริหารจัดการผู้ใช้งานและสิทธิ์ | ลงทะเบียนเจ้าของบริษัทและเชิญผู้ใช้งาน (Onboarding) / เข้าสู่ระบบและควบคุมสิทธิ์ตามบทบาท Owner / Admin / Staff / Viewer / กู้คืนรหัสผ่าน, OTP และควบคุม Session / ตั้งค่าบริษัท, SMTP, ผู้ใช้งาน และสิทธิ์การเข้าถึงแอปพลิเคชัน | +| 2 | ระบบข้อมูลหลัก (Master Data) | คลังสินค้า, พื้นที่จัดเก็บ, ช่องจัดเก็บ (Bin) / หมวดสินค้าและสินค้า / ประเภทผู้ติดต่อและผู้ติดต่อ (ลูกค้า/ผู้ขาย) / รองรับโครงสร้างคลังแบบชั้นเดียวและแบบหลายชั้น | +| 3 | ระบบควบคุมสินค้าคงคลัง (Inventory Control) | รับสินค้าเข้า (Stock-in) / จ่ายสินค้าออก (Stock-out) พร้อมตรวจสอบยอดคงเหลือ / โอนย้ายสินค้าระหว่างคลัง/ตำแหน่ง / ติดตาม Lot, Serial Number และวันหมดอายุ / พิมพ์บาร์โค้ดสินค้า/ตำแหน่ง และรองรับการสแกน / แนบไฟล์ประกอบรายการ | +| 4 | ระบบขาย (Sales) | ใบเสนอราคา (Quotation) / ใบสั่งขาย (Sales Order) / ใบแจ้งหนี้ (Invoice) / ใบรับคืน / ใบลดหนี้ (Return / Credit Note) | +| 5 | ระบบจัดซื้อ (Purchasing) | ใบขอซื้อ (Purchase Request) / ใบสั่งซื้อ (Purchase Order) / ใบแจ้งหนี้ซื้อ (Purchase Invoice) / ใบคืนสินค้าผู้ขาย (Supplier Return) | +| 6 | ระบบการเงิน (Finance) | ใบวางบิลรับ / ใบเสร็จรับเงิน / ใบวางบิลจ่าย / ใบสำคัญจ่าย | +| 7 | ระบบบัญชี (Accounting) | ผังบัญชี, แผนก, สูตรบัญชี / สมุดรายวันและบัญชีแยกประเภท (Journal / GL) / รายงานงบทดลอง, งบกำไรขาดทุน, งบดุล, ภาษีมูลค่าเพิ่ม | +| 8 | ระบบรายงานและแดชบอร์ด | แดชบอร์ดคลังสินค้าและบัญชี / รายงานสต๊อก, ความเคลื่อนไหว, ความจุคลัง, สินค้าใกล้หมด, สินค้าหมดอายุ, Lot / กรอง ดู พิมพ์ และส่งออกรายงาน | +| 9 | ระบบควบคุมเอกสาร | ออกเลขที่เอกสารอัตโนมัติตามลำดับที่กำหนด / ควบคุมสถานะและวงจรชีวิตของเอกสาร / บันทึกผู้สร้าง/ผู้แก้ไข/ประวัติรายการ | +| 10 | ระบบแจ้งเตือนและงานตามกำหนดเวลา | แจ้งเตือนแบบ Real-time ผ่าน Node.js / Socket.IO / งานสรุปยอดสต๊อก/GL และแจ้งเตือนสินค้าใกล้หมด, ใบแจ้งหนี้ค้างชำระ ตามกำหนดเวลา | +| 11 | ระบบติดตั้งและตั้งค่า | ติดตั้งแบบ Manual ผ่าน setup.php / ติดตั้งแบบ Container ผ่าน Docker Compose (php-apache, mariadb, node/pm2) / สร้างค่าตั้งค่าและความลับของระบบจาก .env โดยไม่เก็บใน Source Control | + +### 3.3 สิ่งส่งมอบ (Work Products) + +| รหัส | สิ่งส่งมอบ (Work Product) | รายละเอียด | +| --- | --- | --- | +| WP 1.0 | เอกสาร 200-WMS-26-001-00 Software Project Plan (พร้อม Work Schedule) | ส่งเอกสารจำนวน 1 ชุด | +| WP 2.0 | เอกสาร 200-WMS-26-001-00 Customer Requirements | ส่งเอกสารจำนวน 1 ชุด | +| WP 3.0 | เอกสาร 200-WMS-26-001-00 Software Requirements Specification | ส่งเอกสารจำนวน 1 ชุด | +| WP 4.0 | เอกสาร 200-WMS-26-001-00 Software Design | ส่งเอกสารจำนวน 1 ชุด | +| WP 5.0 | เอกสาร 200-WMS-26-001-00 Change Report | ส่งเอกสารจำนวน 3 ฉบับ (CH-001–CH-003) | +| 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 10.0 | เอกสาร 200-WMS-26-001-00 Product Operation Guide | ส่งเอกสารจำนวน 1 ชุด | +| WP 11.0 | เอกสาร 200-WMS-26-001-00 Maintenance Document | ส่งเอกสารจำนวน 1 ชุด | + +### 3.4 Delivery Instruction + +ในการส่งมอบตามสิ่งส่งมอบ (Work Product) เมื่อแล้วเสร็จและถึงกำหนดเวลา (Due Date) ผู้จัดการโครงการต้องจัดเตรียมเครื่องมือและสถานที่เพื่อให้ลูกค้าทำการทดสอบการยอมรับผู้ใช้ (Validation Result หรือ User Acceptance Test – UAT) โดยทดสอบตามข้อกำหนดในเอกสารความต้องการผู้ใช้ (Customer Requirements) ทีละข้อ และลงนามยืนยันเมื่อผ่านการทดสอบ + +- **กรณีสิ่งส่งมอบไม่แล้วเสร็จตามกำหนด (Delay)** ผู้จัดการโครงการต้องนัดประชุมรายงานความคืบหน้าและอธิบายสาเหตุให้ลูกค้าทราบ พร้อมทั้งตกลงกำหนดวันส่งมอบใหม่อย่างเป็นทางการร่วมกัน +- **การปิดโครงการ (Project Closure)** เมื่อสิ่งส่งมอบทั้งหมดผ่านการตรวจรับและได้รับลายเซ็นอนุมัติจากลูกค้าครบทุกชุดแล้ว ผู้จัดการโครงการจัดประชุมปิดโครงการอย่างเป็นทางการ พร้อมจัดทำเอกสารสรุปผลการดำเนินงานเพื่อเก็บเป็นหลักฐาน + +### 3.5 เกณฑ์คุณภาพ (Quality Criteria) + +**ด้านคุณภาพของระบบ** + +| ลำดับ | หัวข้อ | เกณฑ์คุณภาพ | วิธีประเมิน | +| :---: | --- | --- | --- | +| 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.5 | ความสามารถในการเข้าถึง | ใช้งานได้บน Desktop, Tablet และ Mobile (Responsive) | ทดสอบข้ามอุปกรณ์ | + +**ด้านการดูแลหลังส่งมอบ** + +| ลำดับ | หัวข้อ | เกณฑ์คุณภาพ | วิธีประเมิน | +| :---: | --- | --- | --- | +| 2.1 | การตอบสนองเหตุขัดข้อง | ตอบรับภายใน 4 ชั่วโมง และแก้ไขตามระดับความรุนแรงที่กำหนดใน SLA | บันทึกการให้บริการ | +| 2.2 | การสำรองข้อมูล | มีระบบสำรองข้อมูลอัตโนมัติรายวันและทดสอบกู้คืนได้จริง | Backup & Restore Test (TC-UN13.004) | +| 2.3 | การเฝ้าระวังระบบ | ตรวจสอบสถานะบริการทุก 5 นาที และแจ้งเตือนเมื่อล้มเหลว 2 ครั้งติดกัน | บันทึกการเฝ้าระวัง | + +## 4 Software Development Life Cycle Methodology + +โครงการเลือกใช้แนวทาง Incremental / Evolutionary ภายใต้ขั้นตอนหลักของ Waterfall เนื่องจาก + +- ขอบเขตและสิ่งส่งมอบกำหนดชัดเจนตั้งแต่ต้นโครงการ จึงวางแผนและตรวจรับเป็นงวดได้ +- ระบบมีหลายโมดูลที่ส่งมอบต่อเนื่องกัน จึงพัฒนาและทดสอบทีละส่วนเพื่อลดความเสี่ยง +- เอกสารครบถ้วนตามมาตรฐาน ISO/IEC 29110 ที่เน้น Work Products และ Traceability +- ตรวจสอบย้อนกลับ (Audit) และตรวจรับงานได้อย่างเป็นทางการ + +| ขั้นตอน | แนวทางที่ใช้จริงในโครงการ | +| --- | --- | +| Requirements | เก็บความต้องการและตั้ง Baseline ก่อนเริ่มพัฒนา การเปลี่ยนแปลงภายหลังผ่าน Change Report (CH-001–CH-003) | +| Design | ออกแบบสถาปัตยกรรม โครงสร้างฐานข้อมูล และ Software Unit ก่อนพัฒนาแต่ละโมดูล | +| Implementation | พัฒนาเป็นโมดูลต่อเนื่องระหว่าง 19 ก.พ. – 29 พ.ค. 69 พร้อมทบทวนและแก้ไขระหว่างทาง | +| Verification | ตรวจสอบ Work Products 4 รอบ ควบคู่กับการพัฒนา และรอบสุดท้ายก่อนส่งมอบ | +| Validation | ทดสอบระบบและ UAT ระหว่าง 10–14 ส.ค. 69 บนสภาพแวดล้อมที่กำหนด | +| Closure | ตรวจรับ อบรม ปิดงานควบคุมปฏิบัติการ และปิดโครงการภายใน 24 ส.ค. 69 | + +## 5 Organization + +### 5.1 Role & Responsibility + +| ลำดับ | บทบาท | ชื่อ-นามสกุล (ชื่อย่อ) | อีเมล | รายละเอียดหน้าที่ | +| :---: | --- | --- | --- | --- | +| 1 | Project Manager (ApS) | คุณอภิรัชช์ สุภัทรประทีป | apirach.s@brn.co.th | จัดทำ Project Charter และแผนโครงการ / วางแผน Timeline, Resource, Risk, Quality / จัดประชุมและติดตามความคืบหน้า / ควบคุมการเปลี่ยนแปลงและการปิดโครงการ | +| 2 | System Analyst (NoC) | คุณนพพงษ์ เจริญสุข | noppong.c@brn.co.th | เก็บและวิเคราะห์ความต้องการ / จัดทำ SRS และเอกสารออกแบบระบบ / ออกแบบฐานข้อมูลและความสัมพันธ์ของโมดูล / ตรวจสอบความสอดคล้องของงานพัฒนากับความต้องการ | +| 3 | Developer (ThS) | คุณธนกร สถิตวิทยากุล | thanakorn.s@brn.co.th | พัฒนาโมดูลและ API ตามการออกแบบ / จัดการฐานข้อมูลและประสิทธิภาพ / ดูแลความปลอดภัยและการติดตั้ง / แก้ไขข้อบกพร่องที่พบจากการทดสอบ | +| 4 | QA / Tester (PaNg) | คุณปริญ งามขำ | parin.n@brn.co.th | จัดทำ Test Case และ Test Procedures / ทดสอบระบบและบันทึกผล / ติดตามการแก้ไขข้อบกพร่องและทดสอบซ้ำ / สนับสนุนผู้ใช้งานช่วง UAT | +| 5 | Document Control (YaB) | คุณเยาวลักษณ์ บางชมภู | yaowalak.b@brn.co.th | ควบคุมรหัสเอกสารและเวอร์ชัน / จัดเก็บและตรวจสอบความครบถ้วนของเอกสาร / ประสานการทบทวนและอนุมัติ / บันทึกประวัติการเปลี่ยนแปลงเอกสาร | +| 6 | Project Sponsor (SeV) | คุณเสรี วิริยะสกุลธรณ์ | seri.v@brn.co.th | อนุมัติขอบเขต งบประมาณ และการเปลี่ยนแปลง / ตัดสินใจเชิงกลยุทธ์ / ทดสอบการยอมรับและตรวจรับส่งมอบ / อนุมัติปิดโครงการ | + +## 6 Project Estimate + +### 6.1 Size of the Software Work Products + +| ลำดับ | Work Product | ปริมาณ (ประมาณการ) | +| :---: | --- | --- | +| 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 รายการ | +| 7 | ตารางฐานข้อมูล | ประมาณ 50 ตาราง ใน 2 ฐานข้อมูล | + +### 6.2 Effort Man-Day + +| ลำดับ | ตำแหน่ง | หน้าที่หลัก | ระยะเวลา (Man-Day) | +| :---: | --- | --- | ---: | +| 1 | Project Manager | ควบคุมงาน ประสานงาน ติดตามแผน | 120 | +| 2 | System Analyst | วิเคราะห์ความต้องการ ออกแบบระบบ | 60 | +| 3 | Developer | พัฒนาระบบและแก้ไขข้อบกพร่อง | 100 | +| 4 | QA / Tester | วางแผนทดสอบ ทดสอบระบบ UAT | 40 | +| 5 | Document Control | ควบคุมเอกสารและหลักฐานโครงการ | 60 | + +## 7 Project Resources + +**Human Resource** + +| ลำดับ | Team | จำนวน (คน) | +| :---: | --- | ---: | +| 1 | Project Management (PM, Document Control) | 2 | +| 2 | Software Implementation (SA, Developer, QA) | 3 | +| 3 | Project Sponsor / ตัวแทนลูกค้า | 1 | + +**Computer Resource** + +| ลำดับ | รายการ | จำนวน | +| :---: | --- | --- | +| 1 | Notebook สำหรับทีมพัฒนาและทดสอบ | 5 เครื่อง | +| 2 | Git Server (Repository หลัก) | 1 ระบบ | +| 3 | Internal Testing Server (PHP 8, MariaDB, Node.js) | 1 เครื่อง | +| 4 | Production Server สำหรับใช้งานจริง | 1 เครื่อง | +| 5 | เครื่องอ่านบาร์โค้ดสำหรับทดสอบ | 1 เครื่อง | + +## 8 Work Schedule + +แผนการดำเนินงานของโครงการ รวม 232 วัน ตั้งแต่ 5 มกราคม 2569 ถึง 24 สิงหาคม 2569 รายละเอียดกิจกรรม ผู้รับผิดชอบ และสิ่งส่งมอบรายกิจกรรม อยู่ในเอกสาร 200-WMS-26-001-00 Work Schedule ซึ่งเป็นส่วนหนึ่งของ Project Plan + +| Phase | ช่วงเวลา | ผลลัพธ์หลัก | +| --- | --- | --- | +| Project Initiation | 5 มกราคม 2569 – 23 มกราคม 2569 | Statement of Work, Stakeholder Register, Project Charter | +| Project Planning | 12 มกราคม 2569 – 18 กุมภาพันธ์ 2569 | Customer Requirements, Software Project Plan, Work Schedule | +| Project Execution | 19 กุมภาพันธ์ 2569 – 29 พฤษภาคม 2569 | SRS, Software Design, ระบบที่พัฒนาแล้ว, Software Components | +| Verification & Validation | 30 พฤษภาคม 2569 – 17 สิงหาคม 2569 | Test Case, Test Report, Verification Results, Validation Results | +| Project Close | 10 สิงหาคม 2569 – 24 สิงหาคม 2569 | Acceptance Report, Training Report, List of Evidence | + +## 9 Risk Management Plan + +วัตถุประสงค์ของแผนบริหารความเสี่ยง คือระบุแนวทางจัดการความเสี่ยงของโครงการ เพื่อให้โครงการบรรลุเป้าหมายภายในเวลา งบประมาณ และคุณภาพที่กำหนด + +| ลำดับ | หมวด | รายการ | รายละเอียด | +| :---: | --- | --- | --- | +| 1 | ขอบเขต | ครอบคลุมทุกกิจกรรมของโครงการ | ตั้งแต่ Initiation, Planning, Execution จนถึง Close | +| 2 | บทบาทผู้รับผิดชอบ | Project Manager (Owner), ทีมพัฒนา, Project Sponsor | PM ติดตามและควบคุมความเสี่ยง ทีมพัฒนารายงานความเสี่ยงให้ PM | +| 3 | รอบการทบทวน | ทบทวนทุกงวดรายงานความก้าวหน้า | บันทึกความเสี่ยงใหม่และการเปลี่ยนแปลงระดับความเสี่ยงใน Progress Status Record | + +**ตารางระบุความเสี่ยงหลักของโครงการ** + +| ลำดับ | ความเสี่ยง (Risk) | ประเภท | โอกาสเกิด | ผลกระทบ | ระดับความเสี่ยง | แนวทางป้องกัน (Mitigation) | แผนรับมือ (Contingency Plan) | ผู้รับผิดชอบ | +| :---: | --- | --- | :---: | :---: | :---: | --- | --- | :---: | +| R1 | ความต้องการเปลี่ยนแปลงระหว่างพัฒนา | กระบวนการ | High | High | High | ตั้ง Baseline ความต้องการและทบทวนทุกงวด | จัดทำ Change Report และจัดลำดับความสำคัญใหม่ | ApS / NoC | +| R2 | ทีมพัฒนาไม่เพียงพอหรือขาดทักษะเฉพาะทาง | บุคลากร | Middle | High | High | ถ่ายทอดความรู้ภายในทีมและจัดทำเอกสารประกอบ | ขออนุมัติจัดหาผู้เชี่ยวชาญเพิ่มเฉพาะงาน | ApS | +| R3 | ยอดสินค้าคงคลังไม่ถูกต้อง | เทคโนโลยี | Middle | High | High | ใช้ Transaction, ตรวจสอบข้อมูลนำเข้า และล็อกรายการ | ตรวจสอบและปรับปรุงยอดพร้อมบันทึก Correction Register | ThS / PaNg | +| R4 | ข้อมูลรั่วไหลข้ามบริษัทหรือสิทธิ์ไม่รัดกุม | ความปลอดภัย | Middle | High | High | บังคับ Role Guard และขอบเขตบริษัทฝั่งเซิร์ฟเวอร์ | ปิดช่องโหว่ทันทีและทดสอบสิทธิ์เชิงลบซ้ำ | ThS / PaNg | +| R5 | ค่าตั้งค่าหรือความลับรั่วไหล | ความปลอดภัย | Middle | High | High | ยกเว้นไฟล์ตั้งค่าจาก Git และสร้างความลับตอนติดตั้ง | เปลี่ยนค่าความลับและตรวจสอบประวัติการเข้าถึง | ThS | +| R6 | ข้อมูลสูญหายระหว่างพัฒนาหรือใช้งาน | เทคโนโลยี | Middle | High | High | สำรอง Git 2 Remote และสำรองฐานข้อมูลรายวัน | กู้คืนจากชุดสำรองตามขั้นตอนในคู่มือ | ThS | +| R7 | หลักฐานการทดสอบและตรวจรับไม่ครบถ้วน | กระบวนการ | Middle | High | High | รักษาการสอบกลับสองทิศทางและบันทึกผลทุกครั้ง | ทดสอบซ้ำและบันทึกหลักฐานก่อนตรวจรับ | PaNg / YaB | +| R8 | ผู้ใช้ไม่ยอมรับระบบ (UAT ไม่ผ่าน) | ผู้ใช้งาน | Middle | High | High | ให้ผู้ใช้ร่วมทบทวนความต้องการและสาธิตระบบระหว่างพัฒนา | ปรับปรุงตาม Feedback และทดสอบการยอมรับใหม่ | ApS / SeV | + +## 10 Contingency Actions for Non-Completed Tasks + +แผนรองรับสำหรับกรณีงานไม่แล้วเสร็จตามกำหนด (Non-Completed Task) + +| ลำดับ | สถานการณ์ | สาเหตุที่พบบ่อย | ผลกระทบที่อาจเกิด | แผนรองรับเมื่อเกิดเหตุ | ผู้รับผิดชอบ | +| :---: | --- | --- | --- | --- | --- | +| 1 | งานไม่เสร็จภายในกำหนด (Due Date) | ประเมินเวลาผิดพลาด หรือทรัพยากรไม่เพียงพอ | กระทบ Timeline และกำหนดส่งมอบ | ประชุมด่วนเพื่อประเมินสถานะ จัดลำดับความสำคัญใหม่ ปรับแผน และแจ้งลูกค้าอย่างเป็นทางการ | ApS | +| 2 | งานล่าช้าเพราะขาดบุคลากร | ลาป่วย ลาออก หรือไม่พร้อมปฏิบัติงาน | งานค้างสะสมและภาระงานกระจุกตัว | จัดทำเอกสารส่งมอบงาน ถ่ายทอดความรู้ให้ผู้ปฏิบัติแทน และขออนุมัติจัดหาผู้ช่วยเฉพาะงาน | ApS / ฝ่ายบุคคล | +| 3 | งานค้างเพราะรอข้อมูลจากผู้ใช้ | ผู้ให้ข้อมูลส่งความต้องการหรือข้อมูลตั้งต้นล่าช้า | ไม่สามารถพัฒนาหรือทดสอบต่อได้ | แจ้งเตือนเป็นลายลักษณ์อักษร แยกงานที่ยังไม่พร้อมออก และนัดยืนยัน Timeline ใหม่ | ApS / SeV | +| 4 | งานไม่เสร็จเพราะพบข้อบกพร่องซ้ำซ้อน | ความซับซ้อนสูงหรือขาดการทดสอบระยะแรก | เกิดความล่าช้าในการพัฒนาและทดสอบ | จัดลำดับข้อบกพร่องตามความรุนแรง แยกงานแก้ไขออกจากงานพัฒนาใหม่ และทดสอบซ้ำ | ThS / PaNg | +| 5 | งานล่าช้าเพราะต้องแก้ความต้องการ | ขอบเขตเปลี่ยนหลังเริ่มงาน | กระทบแผนงานและสิ่งส่งมอบ | จัดทำ Change Report อย่างเป็นทางการ ประเมินผลกระทบ และขออนุมัติก่อนดำเนินการต่อ | ApS / SeV | + +## 11 Document and Repository + +**รูปแบบไฟล์ (File Format)** การกำหนดชื่อไฟล์ให้ใช้รูปแบบดังนี้ + +`[Project code] [Document name] [yyyymmdd] V[version] [editor name].[ext.]` + +| หัวข้อ | รายละเอียด | +| --- | --- | +| [Project code] | รหัสโครงการตามส่วนงานบัญชี เช่น 200-WMS-26-001-00 | +| [Document name] | ชื่อเอกสาร เช่น Progress Status Record | +| [yyyymmdd] | วันที่ของเอกสารตามปีพุทธศักราช เช่น 25690817 | +| [version] | เวอร์ชันของเอกสาร เช่น 1.0 | +| [editor name] | ตัวย่อของชื่อผู้จัดทำ เช่น ApS | +| [ext.] | นามสกุลไฟล์ เช่น pdf | + +**การประกาศเวอร์ชัน (Version Declaration)** เก็บเอกสารแต่ละเวอร์ชันแยกไฟล์เพื่อให้ตรวจสอบย้อนหลังได้ โดยใช้รูปแบบ Major.Minor + +| เวอร์ชัน (Version) | รายละเอียด | +| --- | --- | +| 0.1 (Draft) | ร่างเอกสารฉบับแรก | +| 0.2 (Draft) | ปรับปรุงตามผลการทบทวน | +| 1.0 (Release) | อนุมัติใช้เป็นเอกสารทางการ | +| 1.1 (Revision) | ปรับปรุงเอกสารหลังอนุมัติ | + +**Project Repository** ใช้ Git Server เป็นศูนย์กลางในการจัดเก็บและควบคุมเวอร์ชันของ Source Code และเอกสารทั้งหมดที่เกี่ยวข้องกับโครงการ + +| ลำดับ | หัวข้อ | รายละเอียด | +| :---: | --- | --- | +| 1 | ที่เก็บข้อมูล (Repository Location) | ทีมงานเข้าถึง Repository ผ่าน Git Server โดย Repository ของโครงการนี้เก็บทั้ง Source Code และเอกสาร ISO | +| 2 | สิทธิ์การเข้าถึง (Access Control) | สมาชิกโครงการได้รับสิทธิ์ตามบทบาท โดย Project Manager และ System Analyst มีสิทธิ์อนุมัติการ Merge | +| 3 | การจัดเก็บไฟล์งาน (File Storage Rules) | ไฟล์ที่เกี่ยวข้องกับโครงการต้องจัดเก็บใน Repository และไฟล์ที่สร้างจากเครื่องส่วนบุคคลต้องนำขึ้น Repository ภายในเวลาที่กำหนด | + +**Project Repository Backup** เพื่อป้องกันการสูญหายของข้อมูลใน Git Server + +| ลำดับ | หัวข้อ | รายละเอียด | +| :---: | --- | --- | +| 1 | ผู้รับผิดชอบ (Responsibility) | มอบหมาย Developer ตรวจสอบความถูกต้องของข้อมูลสำรองอย่างสม่ำเสมอ | +| 2 | วิธีการสำรองข้อมูล (Backup Methods) | ซิงก์ Repository ไปยัง Backup Remote และสำรองฐานข้อมูลด้วยการ Export อัตโนมัติ | +| 3 | รอบการสำรองข้อมูล (Backup Frequency) | ฐานข้อมูลสำรองทุกวันเวลา 02:00 น. และ Repository ซิงก์ทุกครั้งที่มีการส่งมอบ | + +## ผู้จัดทำเอกสาร (Secretary) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณอภิรัชช์ สุภัทรประทีป | Project Manager | | | + +## ผู้ตรวจสอบเอกสาร (Reviewer) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเยาวลักษณ์ บางชมภู | Document Control | | | + +## ผู้อนุมัติ (Approval) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเสรี วิริยะสกุลธรณ์ | Project Sponsor | | | 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 25690817 V1.0 Final.md b/sdlc/1-PM Process (10 Work Product)/2.Project Plan/2-Software Project Plan/200-WMS-26-001-00 Software Project Plan 25690817 V1.0 Final.md deleted file mode 100644 index d92b357..0000000 --- a/sdlc/1-PM Process (10 Work Product)/2.Project Plan/2-Software Project Plan/200-WMS-26-001-00 Software Project Plan 25690817 V1.0 Final.md +++ /dev/null @@ -1,437 +0,0 @@ -# Software Project Plan - -| Document field | Value | -|---|---| -| Document | Software Project Plan | -| Project | BRN WMS | -| Project code | 200-WMS-26-001-00 | -| Title | Warehouse Management System Development Project Plan | -| Project period | 05/01/26–24/08/26 | -| Release | 17/08/26 V1.0 Final | -| Planning baseline | 05/01/26 | -| Standard | ISO/IEC 29110 Basic Profile | -| Project Manager | Apirach Supattaratpateep | -| Status | Final — reviewed and authorized | - -## Revision history - -| Version | Date | Change | Prepared by | -|---|---|---|---| -| V1.0 | 17/08/26 | Initial controlled issue. Consolidates the 05/01/26 planning baseline with lifecycle, quality, equipment-evidence, and configuration outcomes recorded through closure preparation. | Apirach Supattaratpateep | - -Sections 6, 8.5, 12.2 and 16 describe outcomes as at 17/08/26; the remaining sections retain the 05/01/26 planning baseline. - -## 1. Purpose - -This Software Project Plan defines how the BRN WMS project is organized, executed, monitored, controlled, verified, validated, delivered, and closed. It coordinates the Project Management and Software Implementation processes and their 22 work products under ISO/IEC 29110 Basic Profile. - -### 1.1 Standards basis and applicability - -BRN WMS applies the ISO/IEC 29110 software engineering Generic Basic Profile for one non-safety-critical software product developed by one project team under a customer project agreement. The standards basis for this project is: - -- **ISO/IEC 29110-4-1:2018** — Software engineering profile specifications for the Generic profile group, including the Basic profile. -- **ISO/IEC 29110-5-1-2:2025** — Software engineering management and engineering guidelines for the Generic Basic profile. - -| Applicability item | BRN WMS application | -|---|---| -| Profile group | Generic profile group | -| Profile | Basic profile | -| Engineering discipline | Software engineering | -| Project organization | One project team with assigned management, analysis, development, testing, document-control, and customer-approval roles | -| Product scope | One browser-based warehouse management software product and its supporting deployment/service components | -| Agreement | Customer project agreement controlled through the Statement of Work and Customer Requirements | -| Safety criticality | Non-safety-critical software | -| Management process | Project Management | -| Engineering process | Software Implementation | -| Lifecycle | Incremental/evolutionary implementation with controlled requirements, configuration baselines, verification, validation, and acceptance | -| Tailoring principle | Work-product structure and detail are scaled to BRN WMS size and complexity while retaining controlled content, responsibility, review, and traceability | - -### 1.2 Work-product tailoring - -- Project Plan content is controlled across the Work Schedule, this Software Project Plan, and Customer Requirements. -- The Software work product is the Git-controlled application baseline; work product 17 is its controlled identification and repository pointer record. -- The Traceability Record (work product 13) is the master requirements matrix. The additional Traceability Record Table is a summary/pointer and does not create a second competing baseline. -- Test Cases and Test Procedures defines the tests and records their execution status; the separate Test Report consolidates the results and disclosed evidence limitations. -- The Project Charter Report, Stakeholder Register, List of Evidence, Traceability Record Table, and Training Report supplement the Basic-profile work products without replacing them. -- Markdown files under `sdlc/` are the controlled editable document sources. PDFs under `sdlc-delivery/` are generated delivery/printing outputs and are not edited independently. -- No Project Management or Software Implementation process is declared excluded. Content granularity is scaled where documented, including requirement-level traceability for the 34 controlled requirements. - -## 2. Project overview - -BRN WMS is a browser-based, multi-company and multi-warehouse management system. It centralizes warehouse master data, inventory movements, sales and purchasing documents, finance and accounting records, reports, access control, and operational notifications. - -The project is intended to: - -- Improve the accuracy and timeliness of warehouse operations. -- Provide current stock visibility across authorized warehouses and locations. -- Preserve lot, serial-number, expiry-date, and movement traceability. -- Control sales, purchasing, return, invoice, receipt, payment, and accounting workflows. -- Separate company data and restrict functions according to authorized roles. -- Provide management reports, operational alerts, and auditable records. - -## 3. Scope - -### 3.1 Included scope - -- Company, user, role, application-access, SMTP, and system configuration. -- Contact, product, category, warehouse, storage-area, and bin master data. -- Stock-in, stock-out, stock transfer, balance, lot, serial number, and expiry control. -- Warehouse capacity, occupancy, movement, expired-stock, and product-lot reporting. -- SKU and warehouse-location barcode labels and supported scanning workflows. -- Quotations, sales orders, returns, invoices, and credit notes. -- Purchase requests, purchase orders, purchase invoices, and supplier returns. -- Receipt billing, receipts, payment billing, and payments. -- Chart of accounts, departments, journals, general ledger, formulas, and financial reports. -- Controlled document numbering and lifecycle/status handling. -- Real-time notifications using Node.js and Socket.IO. -- Scheduled stock/GL maintenance, low-stock alerts, and overdue-invoice alerts. -- Deployment configuration, database setup, operating guidance, and maintenance information. -- ISO/IEC 29110 work products and controlled project repository. - -### 3.2 Excluded scope - -- Procurement of servers, networks, barcode scanners, printers, or user devices. -- Legacy-data migration unless separately assessed and approved. -- Integration with external ERP, banking, shipping, tax, or third-party services unless approved through change control. -- Custom functionality outside the baselined requirements. -- Production hosting or third-party subscription fees unless separately authorized. - -## 4. Objectives and success criteria - -The project is successful when: - -- All acceptance-critical requirements are implemented and traceable to verification evidence. -- Representative warehouse, sales, purchasing, finance, and accounting workflows pass validation. -- No unresolved critical defect blocks intended operation or compromises security or data integrity. -- Installation, configuration, user, operation, and maintenance documentation is available. -- Software and controlled work products are stored in the project repository. -- Verification, validation, and acceptance records receive the required review and authorization. - -## 5. Lifecycle and schedule - -| Phase | Period | Main activities | Primary outputs | -|---|---:|---|---| -| Initiation | 05/01/26–23/01/26 | Establish need, stakeholders, objectives, scope, and authority. | Statement of Work, stakeholder records | -| Planning | 12/01/26–18/02/26 | Collect requirements; define schedule, resources, risks, controls, and baselines. | Customer Requirements, Work Schedule, Software Project Plan | -| Implementation | 19/02/26–29/05/26 | Analyze, design, code, configure, integrate, review, and test the system. | SRS, Software Design, Components, Test Cases, Software | -| Verification and validation | 30/05/26–07/08/26 | Review work products and validate representative operational workflows. | Traceability, Test Report, Verification and Validation Results | -| Documentation and stabilization | 01/06/26–24/08/26 | Prepare guides, close corrections, configure deployment, and prepare demonstration data. | User Documentation, Operation Guide, Maintenance Documentation | -| Closure | 10/08/26–24/08/26 | Review repository, resolve open actions, obtain acceptance, and close the project. | Acceptance Report, List of Evidence, repository baseline | - -Detailed activities and evidence are maintained in the Work Schedule. - -## 6. Software development lifecycle methodology - -BRN WMS follows an incremental/evolutionary development approach, with features, modules, and security corrections delivered throughout implementation. - -BRN WMS is more accurately described as **incremental/evolutionary**, within the same overall lifecycle stages used for planning and reporting purposes (Section 5): - -| Stage | How it was actually approached | -|---|---| -| Requirements | Captured once at a level (Customer Requirements), then implicitly refined as implementation proceeded — e.g., the Rack→Bin terminology change (CH-001) and multiple onboarding/security corrections show requirements being clarified during implementation, not frozen beforehand | -| Design | Not produced as an upfront, separate artifact; Software Design (work product 12) was derived from the as-built architecture, not authored before coding began | -| Implementation | Continuous, feature-by-feature, evidenced by 100 commits across the implementation period (19/02/26–29/05/26; 110 in the repository overall) with no clean phase boundary between "build" and "test/fix" | -| Verification | Interleaved throughout implementation (ongoing manual exercising and correction, per the Correction Register) rather than concentrated in a single verification phase; formal Round 2A document-control and Round 2B technical work-product verification was completed on 17/08/26 and recorded in work product 21 | -| Stabilization/closure | A distinct late-stage effort (03/08/26 onward) closer to a traditional stabilization phase | - -## 7. Organization and responsibilities - -| Role | Assigned person | Responsibilities | -|---|---|---| -| Project Sponsor / Customer Representative / Authorized Approver | Seri Viriyasakultorn | Represent customer needs; authorize scope, resources, baseline changes, acceptance, and project closure. | -| Project Manager | Apirach Supattaratpateep | Plan and monitor work; assign responsibilities; manage risks, issues, communication, changes, and closure. | -| System Analyst | Noppong Chareunsook | Analyze customer requirements, specify system behavior, and maintain technical traceability. | -| Developer | Thanakorn Sathitwitayakul | Design, implement, configure, correct, and maintain source code, aligned with Git implementation evidence. | -| Tester / Reviewer | Parin Ngamkham | Prepare and execute tests, review work products, report defects, and confirm corrections. | -| Document Control | Yaowalak Bangchomphoo | Control identifiers, versions, approvals, distribution, repository content, and evidence. | - -One person may perform more than one operational role when independence is not mandatory. Approval authority must remain with the designated authorized approver or a formally delegated authority. - -## 8. Resources and environment - -### 8.1 Schedule summary - -| Phase | Calendar span | Approx. duration | -|---|---|---:| -| Initiation | 05/01/26–23/01/26 | 19 days | -| Planning | 12/01/26–18/02/26 | 38 days | -| Implementation | 19/02/26–29/05/26 | 100 days | -| Verification and validation | 30/05/26–07/08/26 | 70 days | -| Documentation and stabilization | 01/06/26–24/08/26 | 85 days | -| Closure | 10/08/26–24/08/26 | 15 days | - -These are calendar spans rather than effort estimates. - -### 8.2 Software and infrastructure - -- PHP 8.0 or later. -- MySQL or MariaDB. -- Nginx or another compatible PHP web server. -- Node.js, npm, Socket.IO, and PM2 for real-time and scheduled services. -- Git repository with `main` as the controlled integration baseline. -- Current standards-based desktop and mobile browsers. -- Asia/Bangkok time zone across application and scheduled-job environments. - -### 8.3 Logical application components - -| Component | Purpose | -|---|---| -| PHP web application | Main user interface and operational APIs | -| Identity/company database | Users, companies, access, SMTP, usage, and related configuration | -| WMS/accounting database | Warehouse, inventory, documents, finance, and accounting records | -| Node.js notification service | Browser notifications and application event relay | -| Node.js scheduler | Aggregate maintenance and scheduled operational alerts | - -### 8.4 Configuration constraints - -- Local configuration and secrets must not be committed to Git. -- Production database credentials must use the minimum privileges required after installation. -- Application, database, upload, and service configuration must follow the controlled configuration guide. -- Public access to source-control metadata, secrets, and internal service endpoints must be restricted. - -### 8.5 Computer and equipment resources - -The example reference package's Section 7 lists specific equipment (notebook count, scanner, Git server, software licenses). No equipment inventory record exists as project evidence for BRN WMS — this is not fabricated here. What is evidenced instead: - -| Item | Evidence | -|---|---| -| Git hosting | Primary remote `origin` (`188.166.228.62:nok/wms-app.git`) and backup remote `backup` (GitHub) — see Project Repository, work product 9 | -| Deployment target | Manual LAMP install or Docker Compose stack (`php-apache`, `mariadb`, `node/pm2`) — see Software Configuration, work product 8, and Product Operation Guide, work product 19 | -| Developer workstation(s) | Not recorded — no inventory evidence exists | -| Office/licensed software (word processor, spreadsheet, etc.) | Not recorded — no inventory evidence exists | - -## 9. Deliverables and work products - -### 9.1 Project Management work products - -1. Statement of Work -2. Project Plan, including Work Schedule, Software Project Plan, and Customer Requirements -3. Progress Status Record -4. Correction Register -5. Acceptance Report -6. Change Report -7. Meeting Record -8. Software Configuration -9. Project Repository -10. Project Repository Backup - -### 9.2 Software Implementation work products - -11. Software Requirements Specification -12. Software Design -13. Traceability Record -14. Software Components -15. Test Cases and Test Procedures -16. Test Report -17. Software -18. Software User Documentation -19. Product Operation Guide -20. Maintenance Documentation -21. Verification Results -22. Validation Results - -## 10. Monitoring and communication - -| Record or activity | Frequency or trigger | Owner | Audience | -|---|---|---|---| -| Work Schedule update | At least weekly during active work | Project Manager | Project team and sponsor | -| Progress Status Record | Weekly during active work | Project Manager | Project team and sponsor | -| Project meeting | At planned reviews or when decisions are required | Project Manager | Relevant stakeholders | -| Meeting Record | For each formal project/review meeting | Recorder | Attendees and affected stakeholders | -| Correction Register | When a defect, issue, or nonconformity is identified | Tester / Project Manager | Assigned owner and reviewer | -| Change Report | When a baseline change is requested | Project Manager | Sponsor, affected team, customer representative | -| Repository review | At each baseline and project closure | Document Control | Project Manager and reviewer | - -Progress status includes completed work, planned work, deviations, risks, issues, required decisions, corrective actions, and schedule impact. - -## 11. Risk management - -| ID | Risk | Impact | Planned response / control | Owner | -|---|---|---|---|---| -| R-01 | Pre-development planning records were prepared after the fact | Audit evidence may be weaker than the records suggest. | Mark assumptions clearly and obtain review and approval. | Project Manager | -| R-02 | Unauthorized access or cross-company data exposure | Confidentiality and integrity failure. | Server-side role guards, company/warehouse scoping, session controls, and security review. | Developer / Reviewer | -| R-03 | Incorrect inventory balance | Operational and financial records become unreliable. | Transactions, input validation, locking, approval flow, reconciliation, and movement tests. | Developer / Tester | -| R-04 | Secret or configuration exposure | System compromise or service interruption. | Ignore local secrets, provide templates, restrict web access, and review deployment configuration. | Configuration Manager | -| R-05 | Incomplete requirement or acceptance evidence | Delivery cannot be objectively demonstrated. | Maintain bidirectional traceability and obtain signatures before baselining. | Project Manager | -| R-06 | Uncontrolled scope expansion | Schedule and quality degradation. | Require Change Report, impact analysis, authorization, and re-planning. | Project Manager / Sponsor | -| R-07 | Inadequate backup or recovery | Loss of source, documents, or operational data. | Maintain repository backup and documented database/file backup and recovery procedures. | Configuration Manager | -| R-08 | Third-party or environment incompatibility | Deployment or notification failure. | Document supported versions and verify the target environment before acceptance. | Developer / System Administrator | - -Risks are reviewed with progress status. New risks and changes to exposure or response are recorded by the Project Manager. - -### 11.1 Contingency actions for non-completed tasks - -Distinct from the risk table above (which addresses project-level threats), this table addresses the specific, recurring situation of an individual task or work product not finishing by its planned date. - -| Situation | Common cause | Likely impact | Contingency action | Owner | -|---|---|---|---|---| -| Task not finished by its due date | Timeline or resource estimate was too tight | Downstream tasks slip; delivery date at risk | Meet with the team to reassess status and priority; agree and communicate a revised timeline | Project Manager | -| Delay due to insufficient staffing (illness, unavailability) | Single-person roles (Section 7) have no backup | Work stalls until the person returns | Document a handover/knowledge-transfer note; consider temporary outside help for the specific gap only with Sponsor authorization | Project Manager | -| Delay due to late or incomplete requirement/content input | Upstream dependency (customer input, data) not ready | Downstream development or testing cannot proceed | Escalate to the Sponsor with a clear description of what is blocking; agree a revised input date | Project Manager | -| Delay due to unexpected technical complexity | Underestimated integration/defect complexity discovered during work | Task takes materially longer than planned | Prioritize by severity (Critical/High/Low, per Section 12.1); temporarily set aside lower-priority items | Developer | -| Delay because scope changed mid-task | Requirement changed after work started | Effort already spent may be partially invalidated | Raise a Change Report; obtain authorization before continuing under the new scope | Project Manager | - -## 12. Quality assurance - -- Assign a unique identifier to each approved requirement. -- Review requirements for clarity, completeness, consistency, testability, and scope alignment. -- Review design against requirements and operational constraints. -- Review implementation for authorization, tenant isolation, data integrity, configuration safety, and error handling. -- Trace requirements to design elements, components, test cases, and results. -- Record defects and nonconformities in the Correction Register. -- Re-test corrected behavior and retain objective evidence. -- Validate representative end-to-end scenarios with customer-oriented data. - -### 12.1 Defect disposition - -| Severity | Meaning | Acceptance treatment | -|---|---|---| -| Critical | Prevents core operation, compromises security, causes cross-company exposure, or corrupts essential data. | Must be corrected and verified before acceptance. | -| Major | Material function fails without an acceptable workaround. | Correct before acceptance or obtain explicit authorized disposition. | -| Minor | Limited impact with an acceptable workaround. | Record planned correction or authorized acceptance. | -| Observation | Improvement or documentation item without functional failure. | Record and prioritize as appropriate. | - -### 12.2 Quality criteria and evaluation methods - -The example reference package states measurable quality thresholds directly in the Software Project Plan (response time, uptime, security scan result, etc.). BRN WMS's measurable criteria are already defined as non-functional requirements in Customer Requirements (Section 8) and restated as technical requirements in the SRS (work product 11); this table cross-references them here rather than duplicating a second copy that could drift out of sync. - -| Quality area | Criterion | Evaluation method | Reference | -|---|---|---|---| -| Functional correctness | All Must requirements implemented and traceable | Traceability Record review + Test Report execution | NFR-009, work products 13, 16 | -| Performance | Practical operational response time; aggregates support dashboards/reports | Representative-operation timing under agreed data volume | NFR-006, SR05:001–003, TC-NFR-006 | -| Security | No unresolved critical security defect; server-side auth/tenant scope enforced | Negative-authorization/invalid-input testing | NFR-002, SR07:001–005, TC-NFR-002 | -| Reliability/integrity | No invalid negative/duplicate stock or GL movement | Failure/rollback and concurrency test | NFR-003, SR09:003, TC-NFR-003 | -| Usability | Responsive UI usable on desktop and warehouse-floor devices | Representative-screen check at agreed viewport sizes | NFR-005, SR02:002, TC-NFR-005 | -| Installability | Installation/configuration/backup/recovery repeatable | Follow Product Operation Guide end-to-end | NFR-004, TC-NFR-004 | -| Post-delivery support | Backup and restoration | Restoration check performed manually by the Developer | Project Repository (Backup), work product 10 | - -Actual results belong in the Test Report and Verification/Validation Results, which show 34 of 34 passed and 12 of 12 passed, executed 10/08/26–14/08/26 (see the Acceptance Report's current-status note). - -## 13. Verification and validation - -Verification confirms that each work product satisfies its specified inputs and criteria. Validation confirms that the integrated BRN WMS supports its intended operational use. - -Verification covers: - -- Customer Requirements and Software Requirements Specification. -- Software Design and database/configuration design. -- Software Components and integration behavior. -- Test Cases, Test Procedures, Test Report, and traceability. -- User, operation, configuration, and maintenance documentation. - -Validation covers representative workflows for: - -- User onboarding and role-based access. -- Warehouse and product configuration. -- Stock receipt, issue, transfer, balance, lot, serial, and expiry handling. -- Sales, purchasing, return, invoice, receipt, and payment workflows. -- Accounting postings and management reports. -- Notifications, scheduled jobs, and operational recovery. - -## 14. Configuration management - -Configuration items include: - -- PHP, JavaScript, CSS, Node.js, and database/setup source files. -- Application and service configuration templates. -- Database schema and migration/setup logic. -- Controlled requirements, design, test, guide, and management work products. -- Approved releases, evidence, and repository backups. - -Controls include: - -- Controlled `main` baseline. -- Project-code-based filenames and document version/status identifiers. -- Review and authorization before changing an approved baseline. -- Exclusion of passwords, tokens, local configuration, logs, uploads, and generated secrets from source control. -- Repository and operational-data backup with recoverability checks. - -## 15. Change and correction control - -A baseline change follows this sequence: - -1. Record the requested change and reason. -2. Analyze its scope, schedule, technical, quality, security, and documentation impact. -3. Obtain authorization from the designated authority. -4. Update affected plans, requirements, design, traceability, tests, and configuration records. -5. Implement and verify the change. -6. Record the result and close the Change Report. - -Defects and nonconformities are recorded in the Correction Register, assigned to an owner, corrected, re-tested, and closed with evidence. - -## 16. Repository and document control - -### 16.1 File naming convention - -BRN WMS's actual naming convention, in force since PM work product 1 and used consistently across all 46 controlled files, differs deliberately from the example reference project's: - -`[Project code] [Document name] [YYYYMMDD Buddhist] V[version]`, for example `200-WMS-26-001-00 Correction Register 25690817 V1.0`. - -| Element | Meaning | Example | -|---|---|---| -| Project code | `200-WMS-26-001-00` | Fixed | -| Document name | Descriptive title; where a work product has multiple instances (Progress Status Record, Change Report, Meeting Record), a short distinguishing suffix is added | `- Rack to Bin Rename` | -| Date | Compact Buddhist-calendar date (`YYYYMMDD`), matching the date on the document header | `25690817` | -| Version | `V.`, e.g. `V1.0` | `V1.0` | - -BRN WMS document filenames do not append author initials. - -### 16.2 Version declaration - -Documents created for BRN WMS are released directly at `V1.0` once content is complete, without the example's separate `0.1`/`0.2` Draft stages — BRN WMS work products are not labeled `Draft` unless explicitly requested, per the same recorded decision. "Final" in the document-control Status field means the controlled content is complete; authorization and the project-acceptance decision are recorded in each document's Approval section and the Acceptance Report. - -### 16.3 Repository and backup - -- Every controlled filename starts with `200-WMS-26-001-00`. -- Documents identify title, date, version, status, preparer, reviewer, and approver as applicable. -- Drafts remain distinguishable from approved baselines. -- The Project Repository contains the current controlled work products and supporting evidence (work product 9). -- The repository backup is maintained separately and checked during project closure (work product 10); BK-001–BK-004 are closed, including restoration, complete delivery packaging, and synchronization and retrieval verification of the final `sdlc` branch and release tag on 24/08/26. -- Superseded records are retained or archived according to organizational control practices. - -## 17. Acceptance and closure - -The project may close when: - -- Acceptance-critical requirements have passed their linked verification and validation. -- No unresolved critical defect remains. -- Deferred items and accepted exceptions have authorized dispositions. -- Required user, operation, configuration, and maintenance documents are available. -- Software, source, setup information, evidence, and required work products are in the repository. -- The Acceptance Report and closure decision are signed by the authorized approver. - -## 18. Approval - -### Prepared by - -Name: Apirach Supattaratpateep - -Role: Project Manager - -Signature: ______________________________________________ - -Date: ___________________________________________________ - -### Technical contributor - -Name: Thanakorn Sathitwitayakul - -Role: Developer - -Signature: ______________________________________________ - -Date: ___________________________________________________ - -### Reviewed and authorized by - -Name: Seri Viriyasakultorn - -Project roles: Project Sponsor / Customer Representative / Authorized Approver - -Position: Managing Director - -Company: B.R.N. Enterprise Co., Ltd. - -Signature: ______________________________________________ - -Date: ___________________________________________________ diff --git a/sdlc/1-PM Process (10 Work Product)/2.Project Plan/3-Customer Requirement/200-WMS-26-001-00 Customer Requirements 25690112 V1.0 Final.md b/sdlc/1-PM Process (10 Work Product)/2.Project Plan/3-Customer Requirement/200-WMS-26-001-00 Customer Requirements 25690112 V1.0 Final.md deleted file mode 100644 index ad9435d..0000000 --- a/sdlc/1-PM Process (10 Work Product)/2.Project Plan/3-Customer Requirement/200-WMS-26-001-00 Customer Requirements 25690112 V1.0 Final.md +++ /dev/null @@ -1,276 +0,0 @@ -# Customer Requirements - -| Document field | Value | -|---|---| -| Document | Customer Requirements | -| Project | BRN WMS | -| Project code | 200-WMS-26-001-00 | -| Title | Document Recording and Summarizing Customer Requirements | -| Project period | 05/01/26–24/08/26 | -| Release | 12/01/26 V1.0 Final | -| Standard | ISO/IEC 29110 Basic Profile | -| Project Manager | Apirach Supattaratpateep | -| System Analyst | Noppong Chareunsook | -| Developer | Thanakorn Sathitwitayakul | -| Project Sponsor / Customer Representative | Seri Viriyasakultorn | -| Status | Final — ready for review and authorized approval | - -## 1. Purpose - -This document records the customer-level functional and non-functional requirements for BRN WMS. It provides the approved input for the Software Requirements Specification, Software Design, Traceability Record, Test Cases and Test Procedures, Verification Results, Validation Results, and Acceptance Report. - -The System Analyst records the technical interpretation, and the Project Sponsor acting as Customer Representative reviews the operational accuracy and authorizes the baseline. - -## 2. Business need - -B.R.N. Enterprise Co., Ltd. requires a centralized warehouse management system to improve inventory accuracy, transaction control, operational visibility, and auditability. The system must support multiple companies and warehouses while restricting users to authorized data and functions. - -The expected business outcomes are: - -- Timely and accurate stock information. -- Traceable receipts, issues, transfers, lots, serial numbers, and expiry dates. -- Controlled sales, purchasing, finance, and accounting documents. -- Reduced manual error and duplicate data handling. -- Faster operational and management reporting. -- Stronger access control, company-data isolation, and accountability. -- Maintainable deployment, configuration, backup, and recovery procedures. - -## 3. Stakeholders - -| Stakeholder | Project role | Responsibility and interest | -|---|---|---| -| Seri Viriyasakultorn | Project Sponsor / Customer Representative / Authorized Approver | Represent customer needs and approve project scope, strategic decisions, requirement baseline, acceptance, and closure. | -| Apirach Supattaratpateep | Project Manager | Plan and coordinate requirement activities, resolve issues, control changes, and maintain the approved baseline. | -| Noppong Chareunsook | System Analyst | Analyze customer needs, specify system behavior, and maintain technical traceability. | -| Thanakorn Sathitwitayakul | Developer | Design and implement the solution. | -| Parin Ngamkham | QA / Tester | Perform test execution, verification, and validation facilitation independent of the Developer. | -| Yaowalak Bangchomphoo | Document Control | Control identifiers, versions, approvals, distribution, repository content, and evidence; same role as the example reference project for the same company. | -| Warehouse Manager and Staff | Operational users | Perform and review warehouse, stock, barcode, and reporting operations. | -| Sales and Purchasing Users | Business users | Perform quotation, order, purchase, invoice, and return workflows. | -| Finance and Accounting Users | Business users | Perform billing, receipt, payment, journal, ledger, and financial reporting activities. | -| System Administrator | Supporting user | Configure the environment, company, users, services, monitoring, backup, and recovery. | -| Management / Auditor | Information consumer | Review controlled records, transaction history, exceptions, and management information. | - -## 4. Operational context - -BRN WMS is a browser-based application composed of: - -- A PHP web application providing user interfaces and operational APIs. -- A MySQL/MariaDB identity and company database. -- A MySQL/MariaDB WMS and accounting database. -- A Node.js/Socket.IO service for real-time notifications. -- A Node.js scheduler for aggregate maintenance and operational alerts. -- A controlled Git repository for source and configuration templates. - -Users access the system through current standards-based browsers. The application and scheduled services operate using the Asia/Bangkok time zone. - -## 5. Assumptions and constraints - -- The application is deployed in a controlled PHP 8+, MySQL/MariaDB, and Node.js environment. -- B.R.N. provides authorized users, representative operational data, and availability for review and validation. -- Required network, server, barcode, printing, and endpoint hardware is available or procured separately. -- Legacy-data migration is excluded unless assessed and approved through change control. -- External ERP, bank, shipping, tax, or other third-party integration is excluded unless formally added. -- Local credentials, passwords, tokens, and secrets are not stored in the source repository. -- “Must” requirements are acceptance-critical. A “Should” requirement may only be deferred through documented disposition. - -## 6. Requirement interpretation - -| Term | Meaning | -|---|---| -| Must | Mandatory for acceptance unless the Project Sponsor authorizes a documented exception. | -| Should | Expected within the agreed solution; deferral requires documented review and disposition. | -| User | An authenticated person acting in an authorized company and role context. | -| Company | A tenant whose data must be isolated from other companies. | -| Warehouse location | A warehouse, storage area, and/or bin used to identify stock location. | -| Controlled document | A business or project record with identifier, status, history, and applicable authorization. | - -## 7. Functional requirements - -### 7.1 Identity and access - -| ID | Requirement | Priority | Acceptance intent | -|---|---|---|---| -| FR-001 | The system shall support registration and onboarding of a company owner and onboarding of invited users. | Must | An authorized user can complete the applicable onboarding flow and access the assigned company. | -| FR-002 | The system shall authenticate users and enforce the Owner, Admin, Staff, and Viewer roles. | Must | Each role can access only its permitted screens and server-side actions. | -| FR-003 | The system shall support password recovery, session control, and applicable OTP verification. | Must | Recovery and verification operate without exposing credentials; concurrent-session rules are enforced. | -| FR-004 | The system shall allow authorized administrators to manage company profile, SMTP, system settings, users, and application access. | Must | Authorized changes are saved and unauthorized users are rejected. | - -### 7.2 Master data - -| ID | Requirement | Priority | Acceptance intent | -|---|---|---|---| -| FR-005 | The system shall maintain warehouses, storage areas/bins, product categories, products, contact types, and contacts. | Must | Authorized users can create, view, update, and appropriately deactivate supported records. | -| FR-006 | The system should support both simple and layered warehouse-location models. | Should | A company can use a basic warehouse model or configured warehouse/storage/bin levels. | - -### 7.3 Inventory and warehouse operations - -| ID | Requirement | Priority | Acceptance intent | -|---|---|---|---| -| FR-007 | The system shall record stock-in using product, quantity, warehouse/location, document, and applicable traceability attributes. | Must | A valid receipt creates the expected movement and balance; invalid input is rejected. | -| FR-008 | The system shall record stock-out with authorization and available-balance validation. | Must | An authorized issue reduces the correct balance and cannot issue an invalid quantity. | -| FR-009 | The system shall transfer stock between authorized warehouse locations. | Must | Source and destination movements remain balanced and traceable as one transfer. | -| FR-010 | The system shall track lot, serial number, and expiry date where applicable. | Must | Relevant stock and reports retain and display the required traceability attributes. | -| FR-011 | The system shall display stock overview, movement history, capacity/occupancy, low-stock, expired-stock, and product-lot information. | Must | Reports reflect authorized operational data and applicable filters. | -| FR-012 | The system should generate SKU and location barcode labels and support scanning workflows. | Should | Labels contain usable identifiers and supported screens accept scanned values. | - -### 7.4 Sales and purchasing - -| ID | Requirement | Priority | Acceptance intent | -|---|---|---|---| -| FR-013 | The system shall create and manage quotations, sales orders, invoices, returns, and credit notes. | Must | Authorized users can complete valid document lifecycles and related stock/financial effects. | -| FR-014 | The system shall create and manage purchase requests, purchase orders, purchase invoices, and supplier returns. | Must | Authorized users can complete valid purchasing lifecycles and related stock/financial effects. | - -### 7.5 Finance and accounting - -| ID | Requirement | Priority | Acceptance intent | -|---|---|---|---| -| FR-015 | The system shall create and manage receipt billing, receipts, payment billing, and payments. | Must | Authorized financial transactions retain document linkage, amount, status, and history. | -| FR-016 | The system shall maintain chart of accounts, departments, account formulas, journals, and general-ledger entries. | Must | Authorized users can maintain structures and post balanced, traceable entries. | -| FR-017 | The system shall provide trial balance, profit-and-loss, balance-sheet, VAT, journal, and GL-movement reports. | Must | Reports use authorized data and produce consistent totals for the selected period. | - -### 7.6 Documents, reports, and automation - -| ID | Requirement | Priority | Acceptance intent | -|---|---|---|---| -| FR-018 | The system shall generate controlled document numbers and manage document lifecycle/status. | Must | Document numbers follow the configured sequence and invalid status transitions are rejected. | -| FR-019 | The system should allow permitted file attachments on supported records. | Should | Allowed files can be uploaded and retrieved only by authorized users. | -| FR-020 | The system shall allow authorized users to filter, view, print, and/or export supported operational and management reports. | Must | Report output matches the selected scope and filters. | -| FR-021 | The system should notify authorized users of relevant status transitions and operational alerts. | Should | Relevant recipients receive only notifications within their authorized context. | -| FR-022 | The system should maintain stock/GL summaries and generate low-stock and overdue-invoice alerts on schedule. | Should | Scheduled jobs complete without duplicate or unauthorized results. | -| FR-023 | The system shall preserve creator, updater, status, and transaction history required for operational review. | Must | A reviewer can identify material record ownership and lifecycle events. | -| FR-024 | The system shall restrict company and warehouse data to the current authorized user context. | Must | Cross-company and unauthorized warehouse access is prevented in UI and server-side actions. | - -## 8. Non-functional requirements - -| ID | Area | Requirement | Priority | Acceptance intent | -|---|---|---|---|---| -| NFR-001 | Security | Configuration secrets shall be protected from source control and direct public web access. | Must | Repository and deployment review find no committed active secret or publicly exposed protected configuration. | -| NFR-002 | Security | Server-side actions shall validate input and enforce authentication, authorization, and tenant scope. | Must | Negative authorization and invalid-input tests are rejected without unauthorized data change. | -| NFR-003 | Integrity | Related database changes shall be transactional where required and prevent invalid negative or duplicate movements. | Must | Failure/rollback and concurrency-oriented tests preserve consistent balances and records. | -| NFR-004 | Availability | Installation, configuration, backup, and recovery procedures shall be documented. | Must | An authorized administrator can follow the documentation in the supported environment. | -| NFR-005 | Usability | The user interface should be responsive and usable on desktop and warehouse-floor devices. | Should | Representative screens remain usable at the agreed desktop and mobile viewport sizes. | -| NFR-006 | Performance | Daily operations should respond within practical operational time, and aggregates should support dashboards and reports. | Should | Representative operations complete acceptably on the agreed environment and data volume. | -| NFR-007 | Maintainability | The software should use modular managers/APIs, centralized helpers, configuration templates, and version control. | Should | Maintenance review can locate responsibilities and change configuration without modifying unrelated modules. | -| NFR-008 | Compatibility | The system shall run on PHP 8+, MySQL/MariaDB, Node.js where used, and current standards-based browsers. | Must | Installation and representative workflows succeed on the supported platform. | -| NFR-009 | Traceability | Every approved requirement shall link to design, component, and verification evidence. | Must | The Traceability Record has no unexplained gap for an approved Must requirement. | -| NFR-010 | Time | Application and scheduled services shall use Asia/Bangkok consistently. | Must | Stored/displayed operational times and scheduled execution follow the configured time zone. | - -## 9. Data requirements - -- Company data must remain logically isolated from other companies. -- Warehouse data must remain limited to warehouses authorized for the current user. -- Identifiers and relationships must preserve referential integrity. -- Stock movements must retain sufficient product, quantity, location, status, and traceability information. -- Financial and accounting records must retain document linkage, amount, posting status, period, and audit information. -- Soft deletion or inactive status must not silently destroy required transaction history. -- Demo/test data must be distinguishable from approved production data. - -## 10. Interface requirements - -### 10.1 User interface - -- Browser-based responsive screens. -- Navigation and available actions appropriate to the current role and application access. -- Clear validation, status, success, and error feedback. -- Printable business documents and barcode labels where supported. - -### 10.2 Internal service interfaces - -- PHP application access to two configured MySQL/MariaDB databases. -- Authenticated or secret-protected event relay to the Node.js notification service. -- Browser Socket.IO connection to the configured public notification endpoint. -- Controlled scheduler invocation of approved PHP maintenance and alert jobs. - -### 10.3 File interfaces - -- Supported file attachment upload and retrieval. -- Export/print output for supported operational and management reports. -- Configuration templates that do not contain live secrets. - -## 11. Operational scenarios for validation - -| Scenario | Expected outcome | -|---|---| -| User onboarding and access | The user enters the correct company and sees only functions permitted by role and application access. | -| Warehouse setup | Authorized users configure warehouse/location and product data required for operations. | -| Stock receipt | A valid receipt updates traceable stock at the selected location. | -| Stock issue | A valid issue reduces available stock; an invalid or excessive issue is rejected. | -| Stock transfer | Source and destination movements remain balanced and traceable. | -| Lot/serial/expiry control | Required attributes remain associated with stock and appear in applicable reports. | -| Sales lifecycle | Quotation/order/invoice/return actions follow permitted statuses and create expected related effects. | -| Purchasing lifecycle | Request/order/invoice/return actions follow permitted statuses and create expected related effects. | -| Finance and accounting | Receipt/payment and journal/GL results remain balanced and reportable. | -| Reporting | Authorized filters return consistent operational and financial results. | -| Notification and scheduler | Relevant events and scheduled alerts reach only appropriate recipients without duplication. | -| Tenant isolation | Attempts to access another company or unauthorized warehouse are denied. | - -## 12. Acceptance criteria - -The requirements baseline is satisfied when: - -- Every Must requirement is implemented and traced to one or more test cases and results. -- Representative end-to-end validation scenarios pass in the agreed environment. -- No unresolved critical defect remains in security, tenant isolation, inventory integrity, transaction integrity, or core workflows. -- Any deferred Should requirement has a documented and authorized disposition. -- User, operation, configuration, and maintenance documentation covers the delivered system. -- The Project Sponsor acting as Customer Representative confirms that the requirements reflect intended use. -- The Project Sponsor authorizes the requirement baseline and applicable acceptance result. - -## 13. Requirement change control - -After authorization, a requirement change must: - -1. Receive a unique Change Report reference. -2. Identify the requested change and business reason. -3. Analyze scope, schedule, design, implementation, test, security, and documentation impact. -4. Receive Project Sponsor authorization before baseline modification. -5. Update the SRS, design, traceability, tests, plan, and affected records. -6. Be implemented, verified, validated where applicable, and formally closed. - -## 14. Traceability rule - -Each requirement ID in this document must appear in the Traceability Record with links to: - -- The corresponding SRS requirement. -- One or more Software Design elements. -- Implementing component(s), configuration, or operational control. -- Verification method and Test Case ID(s). -- Test result and defect/correction reference where applicable. -- Validation or acceptance evidence for customer-facing requirements. - -## 15. Approval - -### Prepared by - -Name: Thanakorn Sathitwitayakul - -Role: Developer - -Signature: ______________________________________________ - -Date: ___________________________________________________ - -### Reviewed by - -Name: Apirach Supattaratpateep - -Role: Project Manager - -Signature: ______________________________________________ - -Date: ___________________________________________________ - -### Reviewed, confirmed, and authorized by - -Name: Seri Viriyasakultorn - -Project roles: Project Sponsor / Customer Representative / Authorized Approver - -Position: Managing Director - -Company: B.R.N. Enterprise Co., Ltd. - -Signature: ______________________________________________ - -Date: ___________________________________________________ diff --git a/sdlc/1-PM Process (10 Work Product)/2.Project Plan/3-Customer Requirement/200-WMS-26-001-00 Customer Requirements 25690206 V1.0 NoC.md b/sdlc/1-PM Process (10 Work Product)/2.Project Plan/3-Customer Requirement/200-WMS-26-001-00 Customer Requirements 25690206 V1.0 NoC.md new file mode 100644 index 0000000..176277f --- /dev/null +++ b/sdlc/1-PM Process (10 Work Product)/2.Project Plan/3-Customer Requirement/200-WMS-26-001-00 Customer Requirements 25690206 V1.0 NoC.md @@ -0,0 +1,149 @@ +# Customer Requirements + + + +| Document No | Customer Requirements | Release, Version, By: | 25690206 V1.0 NoC | +| Project Name | โครงการพัฒนาระบบบริหารจัดการคลังสินค้า (BRN WMS) บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด | +| Project Code | 200-WMS-26-001-00 | +| Title | เอกสารบันทึกและสรุปความต้องการของลูกค้า (Customer Requirements) | +| Project Period | 5 มกราคม 2569 – 24 สิงหาคม 2569 | +| Organizer | คุณอภิรัชช์ สุภัทรประทีป (Project Manager) , คุณนพพงษ์ เจริญสุข (System Analyst) | +| Recorder | คุณเยาวลักษณ์ บางชมภู (Document Control) | + +## วัตถุประสงค์ (Objective) + +เอกสารฉบับนี้จัดทำขึ้นเพื่อบันทึกและสรุปความต้องการของลูกค้า (Customer Requirements) ตามกระบวนการ ISO/IEC 29110 สำหรับใช้เป็นพื้นฐานในการจัดทำ Software Requirements Specification, การออกแบบระบบ, การทดสอบ และการตรวจรับ ของโครงการพัฒนาระบบบริหารจัดการคลังสินค้า (BRN WMS) บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด + +## ผู้มีส่วนได้ส่วนเสีย (Stakeholders) + +| ลำดับ | ชื่อ | ตำแหน่ง | บทบาท | +| :---: | --- | --- | --- | +| 1 | คุณเสรี วิริยะสกุลธรณ์ | ผู้บริหาร (CEO) | Project Sponsor อนุมัติและตัดสินใจเชิงกลยุทธ์ | +| 2 | คุณอภิรัชช์ สุภัทรประทีป | ผู้จัดการโครงการ | บริหารโครงการและควบคุมการเปลี่ยนแปลง | +| 3 | คุณนพพงษ์ เจริญสุข | นักวิเคราะห์ระบบ | เก็บและวิเคราะห์ความต้องการ จัดทำเอกสาร | +| 4 | หัวหน้าฝ่ายคลังสินค้าและพนักงานคลัง | ผู้ใช้งานหลัก | ให้ข้อมูลกระบวนการรับเข้า จ่ายออก โอนย้าย และตรวจนับ | +| 5 | ฝ่ายขายและฝ่ายจัดซื้อ | ผู้ใช้งาน | ให้ข้อมูลกระบวนการเอกสารขายและจัดซื้อ | +| 6 | ฝ่ายบัญชีและการเงิน | ผู้ใช้งาน | ให้ข้อมูลการวางบิล รับชำระ จ่ายชำระ และการบันทึกบัญชี | + +## ความต้องการเชิงหน้าที่และไม่ใช่หน้าที่ (Functional and Non-Functional Requirements) + +| ID | Topic | Result* | Remark | +| --- | --- | :---: | --- | +| CR01: Feature & Functional Characteristics | | | | +| CR01:001 | ระบบต้องรองรับการลงทะเบียนเจ้าของบริษัทและการเชิญผู้ใช้งานเข้าร่วมบริษัท (Onboarding) | A | FR-001 | +| CR01:002 | ระบบต้องยืนยันตัวตนผู้ใช้และบังคับสิทธิ์ตามบทบาท Owner, Admin, Staff และ Viewer | A | FR-002 | +| CR01:003 | ระบบต้องรองรับการกู้คืนรหัสผ่าน การควบคุม Session และการยืนยัน OTP ตามที่กำหนด | A | FR-003 | +| CR01:004 | ระบบต้องให้ผู้ดูแลจัดการข้อมูลบริษัท, SMTP, การตั้งค่าระบบ, ผู้ใช้งาน และสิทธิ์การเข้าถึงแอปพลิเคชัน | A | FR-004 | +| CR01:005 | ระบบต้องจัดการข้อมูลคลังสินค้า, พื้นที่/ช่องจัดเก็บ, หมวดสินค้า, สินค้า, ประเภทผู้ติดต่อ และผู้ติดต่อ | A | FR-005 | +| CR01:006 | ระบบต้องรองรับโครงสร้างตำแหน่งจัดเก็บทั้งแบบคลังเดียวและแบบหลายชั้น (คลัง/พื้นที่/ช่อง) | A | FR-006 | +| CR01:007 | ระบบต้องบันทึกการรับสินค้าเข้า (Stock-in) ระบุสินค้า จำนวน ตำแหน่ง เอกสารอ้างอิง และข้อมูลติดตาม | A | FR-007 | +| CR01:008 | ระบบต้องบันทึกการจ่ายสินค้าออก (Stock-out) โดยตรวจสอบสิทธิ์และยอดคงเหลือก่อนจ่าย | A | FR-008 | +| CR01:009 | ระบบต้องโอนย้ายสินค้าระหว่างตำแหน่งจัดเก็บที่ได้รับอนุญาตโดยยอดต้นทาง/ปลายทางสมดุลกัน | A | FR-009 | +| CR01:010 | ระบบต้องติดตาม Lot, Serial Number และวันหมดอายุของสินค้าที่เกี่ยวข้อง | A | FR-010 | +| CR01:011 | ระบบต้องแสดงภาพรวมสต๊อก, ประวัติความเคลื่อนไหว, ความจุ/การใช้พื้นที่, สินค้าใกล้หมด, สินค้าหมดอายุ และข้อมูล Lot | A | FR-011 | +| CR01:012 | ระบบต้องพิมพ์บาร์โค้ดสินค้า (SKU) และตำแหน่งจัดเก็บ และรองรับการสแกนในหน้าจอที่กำหนด | A | FR-012 | +| CR01:013 | ระบบต้องสร้างและจัดการใบเสนอราคา, ใบสั่งขาย, ใบแจ้งหนี้, ใบรับคืน และใบลดหนี้ | A | FR-013 | +| CR01:014 | ระบบต้องสร้างและจัดการใบขอซื้อ, ใบสั่งซื้อ, ใบแจ้งหนี้ซื้อ และใบคืนสินค้าผู้ขาย | A | FR-014 | +| CR01:015 | ระบบต้องสร้างและจัดการใบวางบิลรับ, ใบเสร็จรับเงิน, ใบวางบิลจ่าย และใบสำคัญจ่าย | A | FR-015 | +| CR01:016 | ระบบต้องจัดการผังบัญชี, แผนก, สูตรบัญชี, สมุดรายวัน และบัญชีแยกประเภท | A | FR-016 | +| CR01:017 | ระบบต้องจัดทำรายงานงบทดลอง, งบกำไรขาดทุน, งบดุล, ภาษีมูลค่าเพิ่ม, สมุดรายวัน และความเคลื่อนไหว GL | A | FR-017 | +| CR01:018 | ระบบต้องออกเลขที่เอกสารอัตโนมัติและควบคุมสถานะ/วงจรชีวิตของเอกสาร | A | FR-018 | +| CR01:019 | ระบบต้องรองรับการแนบไฟล์ที่อนุญาตกับรายการที่กำหนด | A | FR-019 | +| CR01:020 | ระบบต้องให้ผู้ใช้กรอง ดู พิมพ์ และส่งออกรายงานปฏิบัติการและรายงานผู้บริหาร | A | FR-020 | +| CR01:021 | ระบบต้องแจ้งเตือนผู้ใช้ที่เกี่ยวข้องเมื่อสถานะเอกสารเปลี่ยนหรือมีเหตุการณ์ปฏิบัติการ | A | FR-021 | +| CR01:022 | ระบบต้องสรุปยอดสต๊อก/GL และแจ้งเตือนสินค้าใกล้หมดและใบแจ้งหนี้ค้างชำระตามกำหนดเวลา | A | FR-022 | +| CR01:023 | ระบบต้องเก็บผู้สร้าง ผู้แก้ไข สถานะ และประวัติรายการเพื่อการตรวจสอบ | A | FR-023 | +| CR01:024 | ระบบต้องจำกัดข้อมูลบริษัทและคลังสินค้าให้เฉพาะผู้ใช้ที่ได้รับอนุญาตในบริบทปัจจุบัน | A | FR-024 | +| CR02: Performance Considerations | | | | +| CR02:001 | ระบบต้องตอบสนองงานประจำวัน (เปิดหน้าจอ, ค้นหา, สร้างเอกสาร) ภายในเวลาที่ใช้งานได้จริงบนสภาพแวดล้อมที่ตกลง | A | NFR-006 | +| CR02:002 | ระบบต้องมีตารางสรุปยอด (Aggregate) เพื่อให้แดชบอร์ดและรายงานแสดงผลได้โดยไม่ต้องคำนวณใหม่ทุกครั้ง | A | NFR-006 | +| CR02:003 | ระบบต้องรองรับปริมาณข้อมูลและผู้ใช้พร้อมกันในระดับที่ตกลงสำหรับสภาพแวดล้อมใช้งานจริง | A | NFR-006 | +| CR03: Interface Considerations | | | | +| CR03:001 | ระบบต้องเชื่อมต่อฐานข้อมูล MySQL/MariaDB 2 ฐาน (wms สำหรับผู้ใช้/บริษัท และ wms2 สำหรับคลัง/บัญชี) | A | Operational context | +| CR03:002 | ระบบต้องใช้งานผ่าน Web Browser มาตรฐาน (Chrome, Edge, Firefox) ได้ | A | NFR-008 | +| CR03:003 | ระบบต้องส่งเหตุการณ์ไปยังบริการ Node.js ผ่าน Endpoint ภายในที่ป้องกันด้วย Secret | A | NFR-002 | +| CR03:004 | Browser ต้องเชื่อมต่อ Socket.IO Endpoint สาธารณะเพื่อรับการแจ้งเตือนแบบ Real-time | A | FR-021 | +| CR03:005 | ระบบต้องส่งอีเมล Onboarding, กู้คืนรหัสผ่าน และแจ้งเตือนผ่าน SMTP ที่ตั้งค่าต่อบริษัท | A | FR-004 | +| CR04: Required System Characteristics | | | | +| CR04:001 | ระบบต้องพัฒนาบนสถาปัตยกรรม Web-based Application | A | Operational context | +| CR04:002 | ระบบต้องเก็บข้อมูลแบบ Relational Database และรักษา Referential Integrity | A | Data requirements | +| CR04:003 | ระบบต้องรองรับการเข้าสู่ระบบด้วย Username/Password และกำหนดบทบาทผู้ใช้ | A | FR-002 | +| CR04:004 | ระบบต้องทำงานบน PHP 8 ขึ้นไป, MySQL/MariaDB และ Node.js | A | NFR-008 | +| CR05: Human Engineering Considerations | | | | +| CR05:001 | UI ต้องเป็น Responsive ใช้งานได้ทั้งบน Desktop และอุปกรณ์หน้าคลังสินค้า (Tablet/Mobile) | A | NFR-005 | +| CR05:002 | เมนูและปุ่มคำสั่งต้องแสดงตามบทบาทและสิทธิ์การเข้าถึงของผู้ใช้ | A | Interface requirements | +| CR05:003 | ระบบต้องแสดงผลการตรวจสอบข้อมูล สถานะ ความสำเร็จ และข้อผิดพลาดอย่างชัดเจน | A | Interface requirements | +| CR05:004 | ระบบต้องมีขั้นตอนยืนยันก่อนลบ ยกเลิก หรือทำรายการที่ย้อนกลับไม่ได้ | A | Usability practice | +| CR05:005 | ระบบต้องพิมพ์เอกสารธุรกิจและฉลากบาร์โค้ดในรูปแบบที่ใช้งานได้ | A | Interface requirements | +| CR06: Security Considerations | | | | +| CR06:001 | การเชื่อมต่อในสภาพแวดล้อมใช้งานจริงต้องเข้ารหัสด้วย HTTPS/TLS | A | NFR-001 | +| CR06:002 | ค่าตั้งค่าและความลับของระบบต้องไม่ถูกเก็บใน Source Control และไม่เข้าถึงได้จากเว็บสาธารณะ | A | NFR-001 | +| CR06:003 | การทำงานฝั่งเซิร์ฟเวอร์ต้องตรวจสอบข้อมูลนำเข้า ยืนยันตัวตน ตรวจสิทธิ์ และจำกัดขอบเขตบริษัท/คลัง | A | NFR-002 | +| CR06:004 | ระบบต้องจำกัดสิทธิ์การเข้าถึงตามบทบาท (Role-based Access Control) ทั้งใน UI และฝั่งเซิร์ฟเวอร์ | A | FR-002 | +| CR06:005 | ระบบต้องป้องกัน SQL Injection และ Cross-Site Scripting | A | NFR-002 | +| CR06:006 | ระบบต้องบล็อกการเข้าสู่ระบบซ้ำซ้อน (Concurrent Login) ของบัญชีเดียวกัน | A | FR-003 | +| CR07: Environmental Considerations | | | | +| CR07:001 | ระบบต้องทำงานบน Linux Server ในรูปแบบติดตั้งเอง (LAMP) หรือ Docker Compose | A | NFR-004 | +| CR07:002 | ระบบต้องใช้เขตเวลา Asia/Bangkok อย่างสม่ำเสมอทั้งแอปพลิเคชันและงานตามกำหนดเวลา | A | NFR-010 | +| CR07:003 | ระบบต้องใช้งานได้บนอุปกรณ์ Desktop และอุปกรณ์พกพาผ่าน Web Browser | A | NFR-005 | +| CR07:004 | ระบบต้องแยกข้อมูลสาธิต/ทดสอบออกจากข้อมูลใช้งานจริงได้ | A | Data requirements | +| CR08: Operational Considerations | | | | +| CR08:001 | ระบบต้องมีการสำรองฐานข้อมูลอัตโนมัติรายวัน | A | NFR-004 | +| CR08:002 | ระบบต้องกู้คืนข้อมูลจากชุดสำรองได้ตามขั้นตอนที่จัดทำเป็นเอกสาร | A | NFR-004 | +| CR08:003 | ระบบต้องมีการเฝ้าระวังสถานะบริการ Web, Database และ Node.js พร้อมแจ้งเตือนเมื่อขัดข้อง | A | NFR-004 | +| CR08:004 | ระบบต้องรองรับหลายบริษัท (Multi-company) และหลายคลังสินค้าภายใต้การแยกข้อมูล | A | FR-024 | +| CR08:005 | งานตามกำหนดเวลาต้องทำงานสำเร็จโดยไม่สร้างผลลัพธ์ซ้ำหรือเกินสิทธิ์ | A | FR-022 | +| CR09: Maintenance Considerations | | | | +| CR09:001 | ซอฟต์แวร์ต้องมีโครงสร้างแบบโมดูล (Manager Classes / API) เพื่อให้แก้ไขได้โดยไม่กระทบส่วนอื่น | A | NFR-007 | +| CR09:002 | ระบบต้องมีแม่แบบค่าตั้งค่า (Configuration Template) และควบคุมเวอร์ชันด้วย Git | A | NFR-007 | +| CR09:003 | ระบบต้องมีเอกสารคู่มือการบำรุงรักษาและประวัติข้อบกพร่องที่แก้ไขแล้ว | A | NFR-004 | +| CR09:004 | การเปลี่ยนแปลงโครงสร้างฐานข้อมูลต้องสะท้อนใน setup.php และตาราง schema_migrations | A | NFR-007 | +| CR10: Installation Considerations | | | | +| CR10:001 | ระบบต้องติดตั้งฐานข้อมูลได้ในขั้นตอนเดียวผ่าน setup.php | A | NFR-004 | +| CR10:002 | ระบบต้องติดตั้งแบบ Container ได้ด้วยคำสั่ง docker compose up -d --build | A | NFR-004 | +| CR10:003 | ระบบต้องมีสคริปต์สร้างไฟล์ .env และค่าความลับอัตโนมัติ (docker/init-env.sh) | A | NFR-001 | +| CR10:004 | ระบบต้องมีเอกสารขั้นตอนการติดตั้งและตั้งค่า | A | NFR-004 | +| CR11: Support Considerations | | | | +| CR11:001 | ต้องมีคู่มือผู้ใช้งาน (Software User Document) | A | Documentation | +| CR11:002 | ต้องมีคู่มือปฏิบัติงานสำหรับผู้ดูแลระบบ (Product Operation Guide) | A | Documentation | +| CR11:003 | ต้องมีการอบรมผู้ใช้งานก่อนเปิดใช้งานจริง | A | Training | +| CR11:004 | ต้องมีช่องทางสนับสนุนและระดับการให้บริการ (SLA) หลังส่งมอบ | A | Maintenance | +| CR12: Design Constraints | | | | +| CR12:001 | ระบบต้องพัฒนาด้วย PHP, MariaDB และ Node.js ตามที่องค์กรอนุมัติ | A | NFR-008 | +| CR12:002 | ระบบต้องควบคุม Source Code ด้วย Git โดยมี main เป็น Baseline หลัก | A | Configuration | +| CR12:003 | รหัสผ่านผู้ใช้ต้องเข้ารหัสด้วย bcrypt และไม่เก็บหรือบันทึกเป็นข้อความธรรมดา | A | NFR-002 | +| CR12:004 | โครงการต้องจัดทำ Work Products ตามมาตรฐาน ISO/IEC 29110 Basic Profile | A | NFR-009 | +| CR13: Safety and Reliability Considerations | | | | +| CR13:001 | การเปลี่ยนแปลงฐานข้อมูลที่เกี่ยวข้องกัน (เอกสาร + สต๊อก + GL) ต้องเป็น Transaction เดียวกัน | A | NFR-003 | +| CR13:002 | ระบบต้องป้องกันยอดสต๊อกติดลบและความเคลื่อนไหวซ้ำซ้อน | A | NFR-003 | +| CR13:003 | ระบบต้องรองรับการสำรองและกู้คืน (Backup & Recovery) ทั้ง Source Code และฐานข้อมูล | A | NFR-004 | +| CR13:004 | ระบบต้องจัดการข้อผิดพลาดโดยแสดงข้อความที่เข้าใจได้แทน Fatal Error | A | NFR-006 | +| CR14: Quality Expectations | | | | +| CR14:001 | ระบบต้องผ่านการทดสอบตาม Test Case ที่กำหนดก่อนส่งมอบ | A | Acceptance | +| CR14:002 | ทุกความต้องการต้องสอบกลับได้ถึงการออกแบบ ส่วนประกอบ และหลักฐานการทดสอบ | A | NFR-009 | +| CR14:003 | ระบบต้องผ่านการทดสอบการยอมรับ (UAT) โดยตัวแทนลูกค้าบนสภาพแวดล้อมใช้งานจริง | A | Acceptance | +| CR14:004 | ต้องไม่มีข้อบกพร่องระดับวิกฤตค้างอยู่ในด้านความปลอดภัย การแยกข้อมูล และความถูกต้องของสต๊อก/บัญชี | A | Acceptance | + +## Remark + +- \* Result : A = Accepted, U = Unaccepted, N/A = Not Applicable +- เอกสารฉบับนี้รวมความต้องการที่ได้จากการทบทวนขอบเขตงานร่วมกับลูกค้า +- การเปลี่ยนแปลงความต้องการหลังอนุมัติต้องดำเนินการผ่าน Change Report + +## ผู้จัดทำเอกสาร (Secretary) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณนพพงษ์ เจริญสุข | System Analyst | | | + +## ผู้ตรวจสอบเอกสาร (Reviewer) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเยาวลักษณ์ บางชมภู | Document Control | | | + +## ผู้อนุมัติ (Approval) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเสรี วิริยะสกุลธรณ์ | Project Sponsor | | | diff --git a/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690109 V1.0 ApS.md b/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690109 V1.0 ApS.md new file mode 100644 index 0000000..4700365 --- /dev/null +++ b/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690109 V1.0 ApS.md @@ -0,0 +1,54 @@ +# Progress Status Record + + + +| Document No | Progress Status Record | Release, Version, By: | 25690109 V1.0 ApS | +| Project Name | โครงการพัฒนาระบบบริหารจัดการคลังสินค้า (BRN WMS) บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด | +| Project Code | 200-WMS-26-001-00 | +| Title | รายงานสรุปงวดที่ 1 : 9 มกราคม 2569 | +| Reporting Period | 5 มกราคม 2569 – 9 มกราคม 2569 | +| Organizer | คุณอภิรัชช์ สุภัทรประทีป (Project Manager) | +| Recorder | คุณเยาวลักษณ์ บางชมภู (Document Control) | + +## สรุปสถานะโครงการ + +| Task ID | Task Name | Period | Responsible | Status | Progress (%) | Remarks | +| :---: | --- | :---: | :---: | :---: | ---: | --- | +| 1.1 | Kick-off Meeting | 5–9 ม.ค. 69 | ApS, SeV | Completed | 100 | เปิดโครงการอย่างเป็นทางการ ชี้แจงขอบเขตและทีมงานครบทุกบทบาท | +| 1.2 | Identify Stakeholders | 12–16 ม.ค. 69 | ApS, YaB | In Progress | 40 | อยู่ระหว่างรวบรวมรายชื่อผู้มีส่วนได้ส่วนเสียและระดับการมีส่วนร่วม | + +## ความเสี่ยง/อุปสรรค + +| ลำดับ | Issue ID | ประเด็น | รายละเอียด | สาเหตุที่พบ | แนวทางการแก้ไข | ผู้รับผิดชอบ | สถานะ | +| :---: | --- | --- | --- | --- | --- | :---: | :---: | +| - | - | ไม่พบประเด็นความเสี่ยงหรืออุปสรรคในงวดนี้ | - | - | - | - | - | + +## สรุป CR/Change (ถ้ามี) + +| CR ID | หัวข้อ | สถานะ | ผลกระทบ | +| :---: | --- | :---: | --- | +| - | ไม่มีคำขอเปลี่ยนแปลงในงวดนี้ | - | - | + +## Next Meeting + +| รายละเอียด | วันที่ | ผู้จัดประชุม | หัวข้อหลัก | +| --- | :---: | --- | --- | +| ประชุมติดตามงวดที่ 2 | 16 มกราคม 2569 | คุณอภิรัชช์ สุภัทรประทีป (ApS) | ทบทวนรายชื่อผู้มีส่วนได้ส่วนเสียและเริ่มกำหนดวัตถุประสงค์โครงการ | + +## ผู้จัดทำเอกสาร (Secretary) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเยาวลักษณ์ บางชมภู | Document Control | | | + +## ผู้ตรวจสอบเอกสาร (Reviewer) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณอภิรัชช์ สุภัทรประทีป | Project Manager | | | + +## ผู้อนุมัติ (Approval) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเสรี วิริยะสกุลธรณ์ | Project Sponsor | | | 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 new file mode 100644 index 0000000..6b2c8b4 --- /dev/null +++ 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 @@ -0,0 +1,56 @@ +# Progress Status Record + + + +| Document No | Progress Status Record | Release, Version, By: | 25690123 V1.0 ApS | +| Project Name | โครงการพัฒนาระบบบริหารจัดการคลังสินค้า (BRN WMS) บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด | +| Project Code | 200-WMS-26-001-00 | +| Title | รายงานสรุปงวดที่ 2 : 23 มกราคม 2569 | +| Reporting Period | 12 มกราคม 2569 – 23 มกราคม 2569 | +| Organizer | คุณอภิรัชช์ สุภัทรประทีป (Project Manager) | +| Recorder | คุณเยาวลักษณ์ บางชมภู (Document Control) | + +## สรุปสถานะโครงการ + +| Task ID | Task Name | Period | Responsible | Status | Progress (%) | Remarks | +| :---: | --- | :---: | :---: | :---: | ---: | --- | +| 1.2 | Identify Stakeholders | 12–16 ม.ค. 69 | ApS, YaB | Completed | 100 | จัดทำ Stakeholder Register ครบ 6 บทบาทหลักและผู้ใช้งานที่เกี่ยวข้อง | +| 1.3 | Define Vision & Objectives | 19–21 ม.ค. 69 | ApS, NoC | Completed | 100 | กำหนดวัตถุประสงค์ ขอบเขตระบบ 11 ระบบงาน และเกณฑ์ความสำเร็จ | +| 1.4 | Approve Project Charter | 22–23 ม.ค. 69 | SeV, ApS | Completed | 100 | Project Charter ได้รับอนุมัติจาก Project Sponsor | +| 2.1 | Collect Customer Requirements | 12 ม.ค.–6 ก.พ. 69 | NoC, ApS | In Progress | 30 | เริ่มเก็บความต้องการลูกค้าจากฝ่ายคลังสินค้า ขาย และบัญชี | + +## ความเสี่ยง/อุปสรรค + +| ลำดับ | Issue ID | ประเด็น | รายละเอียด | สาเหตุที่พบ | แนวทางการแก้ไข | ผู้รับผิดชอบ | สถานะ | +| :---: | --- | --- | --- | --- | --- | :---: | :---: | +| - | - | ไม่พบประเด็นความเสี่ยงหรืออุปสรรคในงวดนี้ | - | - | - | - | - | + +## สรุป CR/Change (ถ้ามี) + +| CR ID | หัวข้อ | สถานะ | ผลกระทบ | +| :---: | --- | :---: | --- | +| - | ไม่มีคำขอเปลี่ยนแปลงในงวดนี้ | - | - | + +## Next Meeting + +| รายละเอียด | วันที่ | ผู้จัดประชุม | หัวข้อหลัก | +| --- | :---: | --- | --- | +| ประชุมติดตามงวดที่ 3 | 6 กุมภาพันธ์ 2569 | คุณอภิรัชช์ สุภัทรประทีป (ApS) | สรุปความต้องการลูกค้า CR01–CR14 และทบทวนร่างแผนโครงการ | + +## ผู้จัดทำเอกสาร (Secretary) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเยาวลักษณ์ บางชมภู | Document Control | | | + +## ผู้ตรวจสอบเอกสาร (Reviewer) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณอภิรัชช์ สุภัทรประทีป | Project Manager | | | + +## ผู้อนุมัติ (Approval) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเสรี วิริยะสกุลธรณ์ | Project Sponsor | | | 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.md b/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690123 V1.0.md deleted file mode 100644 index 08881a9..0000000 --- a/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690123 V1.0.md +++ /dev/null @@ -1,79 +0,0 @@ -# Progress Status Record 1 of 13 - -| Document field | Value | -|---|---| -| Document | Progress Status Record | -| Project | BRN WMS | -| Project code | 200-WMS-26-001-00 | -| Reporting period | 05/01/26–23/01/26 | -| Report date | 23/01/26 | -| Release | 23/01/26 V1.0 Final | -| Prepared by | Apirach Supattaratpateep — Project Manager | -| Status | Final — ready for review and authorization | - -## 1. Period objective - -**Milestone:** Project initiation - -**Planned outcome:** Establish the project need, stakeholders, objectives, scope, and authority. - -## 2. Task progress - -**Period summary:** Formal project start and scope boundary were established from the agreed lifecycle. - -| Task ID | Task | Planned finish | Actual / evidence date | Completion | Evidence | Status | -|---|---|---:|---:|---:|---|---| -| 1.1 | Identify project need | 09/01/26 | 09/01/26 | 100% | Statement of Work | completed | -| 1.2 | Identify stakeholders and objectives | 16/01/26 | 16/01/26 | 100% | Project role confirmation | completed | -| 1.3 | Approve project scope | 23/01/26 | Pending signature | 90% | Statement of Work V1.0 Final | Approval pending | - - -| Evidence field | Value | -|---|---| -| Evidence classification | Agreed | -| Evidence reference | Statement of Work; Work Schedule | -| Overall period status | Not rated — no contemporaneous rating was recorded for this period | - -## 3. Schedule status - -Initiation tasks 1.1 and 1.2 finished on their planned dates. Task 1.3 (scope approval) is complete in content but awaits authorized signature. - - -## 4. Issues, risks, and corrective action - -**Issue or risk:** Maintain project initiation records and approvals. - -**Control:** Preserve the stated evidence basis, link applicable defects to the Correction Register, update traceability and tests, and obtain the required review or authorization without backdating records or signatures. - -## 5. Changes - -Technical commits in this period are implementation evidence. They must be classified separately as in-scope implementation, defect correction, or an authorized baseline change before being entered in the Change Report. - -## 6. Next-period plan - -Complete customer requirements and project planning baseline. - -## 7. Approval - -### Prepared by - -Name: Apirach Supattaratpateep -Role: Project Manager -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Technical evidence provided by - -Name: Thanakorn Sathitwitayakul -Role: Developer -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Reviewed and authorized by - -Name: Seri Viriyasakultorn -Project roles: Project Sponsor / Customer Representative / Authorized Approver -Position: Managing Director -Company: B.R.N. Enterprise Co., Ltd. -Signature: ______________________________________________ -Date: ___________________________________________________ diff --git a/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690206 V1.0 ApS.md b/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690206 V1.0 ApS.md new file mode 100644 index 0000000..131ed54 --- /dev/null +++ b/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690206 V1.0 ApS.md @@ -0,0 +1,54 @@ +# Progress Status Record + + + +| Document No | Progress Status Record | Release, Version, By: | 25690206 V1.0 ApS | +| Project Name | โครงการพัฒนาระบบบริหารจัดการคลังสินค้า (BRN WMS) บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด | +| Project Code | 200-WMS-26-001-00 | +| Title | รายงานสรุปงวดที่ 3 : 6 กุมภาพันธ์ 2569 | +| Reporting Period | 26 มกราคม 2569 – 6 กุมภาพันธ์ 2569 | +| Organizer | คุณอภิรัชช์ สุภัทรประทีป (Project Manager) | +| Recorder | คุณเยาวลักษณ์ บางชมภู (Document Control) | + +## สรุปสถานะโครงการ + +| Task ID | Task Name | Period | Responsible | Status | Progress (%) | Remarks | +| :---: | --- | :---: | :---: | :---: | ---: | --- | +| 2.1 | Collect Customer Requirements | 12 ม.ค.–6 ก.พ. 69 | NoC, ApS | Completed | 100 | สรุปความต้องการลูกค้า 80 รายการ จัดหมวด CR01–CR14 และได้ผลสรุป A ทุกรายการ | +| 2.2 | Develop Software Project Plan | 26 ม.ค.–13 ก.พ. 69 | ApS, YaB | In Progress | 60 | อยู่ระหว่างจัดทำ Software Project Plan และ Work Schedule | + +## ความเสี่ยง/อุปสรรค + +| ลำดับ | Issue ID | ประเด็น | รายละเอียด | สาเหตุที่พบ | แนวทางการแก้ไข | ผู้รับผิดชอบ | สถานะ | +| :---: | --- | --- | --- | --- | --- | :---: | :---: | +| - | - | ไม่พบประเด็นความเสี่ยงหรืออุปสรรคในงวดนี้ | - | - | - | - | - | + +## สรุป CR/Change (ถ้ามี) + +| CR ID | หัวข้อ | สถานะ | ผลกระทบ | +| :---: | --- | :---: | --- | +| - | ไม่มีคำขอเปลี่ยนแปลงในงวดนี้ | - | - | + +## Next Meeting + +| รายละเอียด | วันที่ | ผู้จัดประชุม | หัวข้อหลัก | +| --- | :---: | --- | --- | +| ประชุมติดตามงวดที่ 4 | 13 กุมภาพันธ์ 2569 | คุณอภิรัชช์ สุภัทรประทีป (ApS) | ทบทวน Software Project Plan, Work Schedule และแผนความเสี่ยง | + +## ผู้จัดทำเอกสาร (Secretary) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเยาวลักษณ์ บางชมภู | Document Control | | | + +## ผู้ตรวจสอบเอกสาร (Reviewer) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณอภิรัชช์ สุภัทรประทีป | Project Manager | | | + +## ผู้อนุมัติ (Approval) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเสรี วิริยะสกุลธรณ์ | Project Sponsor | | | diff --git a/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690218 V1.0 ApS.md b/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690218 V1.0 ApS.md new file mode 100644 index 0000000..afd564a --- /dev/null +++ b/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690218 V1.0 ApS.md @@ -0,0 +1,54 @@ +# Progress Status Record + + + +| Document No | Progress Status Record | Release, Version, By: | 25690218 V1.0 ApS | +| Project Name | โครงการพัฒนาระบบบริหารจัดการคลังสินค้า (BRN WMS) บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด | +| Project Code | 200-WMS-26-001-00 | +| Title | รายงานสรุปงวดที่ 4 : 18 กุมภาพันธ์ 2569 | +| Reporting Period | 9 กุมภาพันธ์ 2569 – 18 กุมภาพันธ์ 2569 | +| Organizer | คุณอภิรัชช์ สุภัทรประทีป (Project Manager) | +| Recorder | คุณเยาวลักษณ์ บางชมภู (Document Control) | + +## สรุปสถานะโครงการ + +| Task ID | Task Name | Period | Responsible | Status | Progress (%) | Remarks | +| :---: | --- | :---: | :---: | :---: | ---: | --- | +| 2.2 | Develop Software Project Plan | 26 ม.ค.–13 ก.พ. 69 | ApS, YaB | Completed | 100 | จัดทำแผนโครงการ ทรัพยากร ความเสี่ยง R1–R8 และแผนสำรองงานที่ไม่แล้วเสร็จ | +| 2.3 | Baseline Requirements & Schedule | 16–18 ก.พ. 69 | ApS, NoC | Completed | 100 | ตั้ง Baseline ความต้องการและแผนงาน อนุมัติเริ่มพัฒนา 19 ก.พ. 69 | + +## ความเสี่ยง/อุปสรรค + +| ลำดับ | Issue ID | ประเด็น | รายละเอียด | สาเหตุที่พบ | แนวทางการแก้ไข | ผู้รับผิดชอบ | สถานะ | +| :---: | --- | --- | --- | --- | --- | :---: | :---: | +| - | - | ไม่พบประเด็นความเสี่ยงหรืออุปสรรคในงวดนี้ | - | - | - | - | - | + +## สรุป CR/Change (ถ้ามี) + +| CR ID | หัวข้อ | สถานะ | ผลกระทบ | +| :---: | --- | :---: | --- | +| - | ไม่มีคำขอเปลี่ยนแปลงในงวดนี้ | - | - | + +## Next Meeting + +| รายละเอียด | วันที่ | ผู้จัดประชุม | หัวข้อหลัก | +| --- | :---: | --- | --- | +| ประชุมติดตามงวดที่ 5 | 25 กุมภาพันธ์ 2569 | คุณอภิรัชช์ สุภัทรประทีป (ApS) | ติดตามการจัดทำ SRS, เอกสารออกแบบระบบ และการเริ่มพัฒนา | + +## ผู้จัดทำเอกสาร (Secretary) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเยาวลักษณ์ บางชมภู | Document Control | | | + +## ผู้ตรวจสอบเอกสาร (Reviewer) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณอภิรัชช์ สุภัทรประทีป | Project Manager | | | + +## ผู้อนุมัติ (Approval) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเสรี วิริยะสกุลธรณ์ | Project Sponsor | | | diff --git a/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690218 V1.0.md b/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690218 V1.0.md deleted file mode 100644 index d38f2f9..0000000 --- a/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690218 V1.0.md +++ /dev/null @@ -1,79 +0,0 @@ -# Progress Status Record 2 of 13 - -| Document field | Value | -|---|---| -| Document | Progress Status Record | -| Project | BRN WMS | -| Project code | 200-WMS-26-001-00 | -| Reporting period | 12/01/26–18/02/26 | -| Report date | 18/02/26 | -| Release | 18/02/26 V1.0 Final | -| Prepared by | Apirach Supattaratpateep — Project Manager | -| Status | Final — ready for review and authorization | - -## 1. Period objective - -**Milestone:** Requirements and planning baseline - -**Planned outcome:** Collect customer requirements and define schedule, resources, risks, controls, and work-product responsibilities. - -## 2. Task progress - -**Period summary:** Customer Requirements, Work Schedule, and Software Project Plan were prepared from the agreed scope and the available implementation evidence. - -| Task ID | Task | Planned finish | Actual / evidence date | Completion | Evidence | Status | -|---|---|---:|---:|---:|---|---| -| 2.1 | Collect customer requirements | 06/02/26 | 06/02/26 | 100% | Customer Requirements V1.0 Final | completed | -| 2.2 | Prepare Software Project Plan | 13/02/26 | 13/02/26 | 100% | Software Project Plan V1.0 Final | completed | -| 2.3 | Baseline requirements and schedule | 18/02/26 | 18/02/26 | 100% | Work Schedule and Project Plan | completed; approval pending | - - -| Evidence field | Value | -|---|---| -| Evidence classification | Document | -| Evidence reference | Project Plan work products | -| Overall period status | Not rated — no contemporaneous rating was recorded for this period | - -## 3. Schedule status - -Planning tasks 2.1–2.3 all finished on their planned dates. The requirements and schedule baseline is set for development to begin 19/02/26. - - -## 4. Issues, risks, and corrective action - -**Issue or risk:** Exact elicitation dates and approvals are unavailable. - -**Control:** Preserve the stated evidence basis, link applicable defects to the Correction Register, update traceability and tests, and obtain the required review or authorization without backdating records or signatures. - -## 5. Changes - -Technical commits in this period are implementation evidence. They must be classified separately as in-scope implementation, defect correction, or an authorized baseline change before being entered in the Change Report. - -## 6. Next-period plan - -Begin controlled software implementation on 19/02/26. - -## 7. Approval - -### Prepared by - -Name: Apirach Supattaratpateep -Role: Project Manager -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Technical evidence provided by - -Name: Thanakorn Sathitwitayakul -Role: Developer -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Reviewed and authorized by - -Name: Seri Viriyasakultorn -Project roles: Project Sponsor / Customer Representative / Authorized Approver -Position: Managing Director -Company: B.R.N. Enterprise Co., Ltd. -Signature: ______________________________________________ -Date: ___________________________________________________ diff --git a/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690225 V1.0 ApS.md b/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690225 V1.0 ApS.md new file mode 100644 index 0000000..b5b1764 --- /dev/null +++ b/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690225 V1.0 ApS.md @@ -0,0 +1,54 @@ +# Progress Status Record + + + +| Document No | Progress Status Record | Release, Version, By: | 25690225 V1.0 ApS | +| Project Name | โครงการพัฒนาระบบบริหารจัดการคลังสินค้า (BRN WMS) บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด | +| Project Code | 200-WMS-26-001-00 | +| Title | รายงานสรุปงวดที่ 5 : 25 กุมภาพันธ์ 2569 | +| Reporting Period | 19 กุมภาพันธ์ 2569 – 25 กุมภาพันธ์ 2569 | +| Organizer | คุณอภิรัชช์ สุภัทรประทีป (Project Manager) | +| Recorder | คุณเยาวลักษณ์ บางชมภู (Document Control) | + +## สรุปสถานะโครงการ + +| Task ID | Task Name | Period | Responsible | Status | Progress (%) | Remarks | +| :---: | --- | :---: | :---: | :---: | ---: | --- | +| 3.1 | Software Requirements & Design | 19–25 ก.พ. 69 | NoC, ThS | Completed | 100 | จัดทำ SRS (SR01–SR09) และเอกสารออกแบบระบบ เริ่มพัฒนาโครงสร้างแอปพลิเคชัน | +| 4.2 | Configuration & Repository Control | 19 ก.พ.–24 ส.ค. 69 | ThS, YaB | In Progress | 20 | เริ่มควบคุม Source Code บน Git และกำหนด main เป็น Baseline | + +## ความเสี่ยง/อุปสรรค + +| ลำดับ | Issue ID | ประเด็น | รายละเอียด | สาเหตุที่พบ | แนวทางการแก้ไข | ผู้รับผิดชอบ | สถานะ | +| :---: | --- | --- | --- | --- | --- | :---: | :---: | +| - | - | ไม่พบประเด็นความเสี่ยงหรืออุปสรรคในงวดนี้ | - | - | - | - | - | + +## สรุป CR/Change (ถ้ามี) + +| CR ID | หัวข้อ | สถานะ | ผลกระทบ | +| :---: | --- | :---: | --- | +| - | ไม่มีคำขอเปลี่ยนแปลงในงวดนี้ | - | - | + +## Next Meeting + +| รายละเอียด | วันที่ | ผู้จัดประชุม | หัวข้อหลัก | +| --- | :---: | --- | --- | +| ประชุมติดตามงวดที่ 6 | 17 มีนาคม 2569 | คุณอภิรัชช์ สุภัทรประทีป (ApS) | ติดตามผลการแก้ไขด้านความปลอดภัยและการออกแบบฐานข้อมูลสต๊อก | + +## ผู้จัดทำเอกสาร (Secretary) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเยาวลักษณ์ บางชมภู | Document Control | | | + +## ผู้ตรวจสอบเอกสาร (Reviewer) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณอภิรัชช์ สุภัทรประทีป | Project Manager | | | + +## ผู้อนุมัติ (Approval) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเสรี วิริยะสกุลธรณ์ | Project Sponsor | | | diff --git a/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690225 V1.0.md b/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690225 V1.0.md deleted file mode 100644 index 2ec0cae..0000000 --- a/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690225 V1.0.md +++ /dev/null @@ -1,76 +0,0 @@ -# Progress Status Record 3 of 13 - -| Document field | Value | -|---|---| -| Document | Progress Status Record | -| Project | BRN WMS | -| Project code | 200-WMS-26-001-00 | -| Reporting period | 19/02/26–25/02/26 | -| Report date | 25/02/26 | -| Release | 25/02/26 V1.0 Final | -| Prepared by | Apirach Supattaratpateep — Project Manager | -| Status | Final — ready for review and authorization | - -## 1. Period objective - -**Milestone:** Application initialization - -**Planned outcome:** Initialize the repository and establish initial application and file-upload capability. - -## 2. Task progress - -**Period summary:** WMS repository initialized; verification commit and dropzone/file-upload work completed. - -| Task ID | Task | Planned finish | Actual / evidence date | Completion | Evidence | Status | -|---|---|---:|---:|---:|---|---| -| 3.1 | Initialize WMS application | 25/02/26 | 25/02/26 | 100% | Git `9a50080`–`1843308` | Completed | - - -| Evidence field | Value | -|---|---| -| Evidence reference | `9a50080`, `42a3876`, `8625652`, `1843308` | -| Overall period status | Green | - -## 3. Schedule status - -Task 3.1 finished on its planned date of 25/02/26. No schedule deviation in this period. - - -## 4. Issues, risks, and corrective action - -**Issue or risk:** No unresolved blocker is evidenced in the repository for this period. - -**Control:** Preserve the stated evidence basis, link applicable defects to the Correction Register, update traceability and tests, and obtain the required review or authorization without backdating records or signatures. - -## 5. Changes - -Technical commits in this period are implementation evidence. They must be classified separately as in-scope implementation, defect correction, or an authorized baseline change before being entered in the Change Report. - -## 6. Next-period plan - -Protect configuration, address security findings, and establish the stock database foundation. - -## 7. Approval - -### Prepared by - -Name: Apirach Supattaratpateep -Role: Project Manager -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Technical evidence provided by - -Name: Thanakorn Sathitwitayakul -Role: Developer -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Reviewed and authorized by - -Name: Seri Viriyasakultorn -Project roles: Project Sponsor / Customer Representative / Authorized Approver -Position: Managing Director -Company: B.R.N. Enterprise Co., Ltd. -Signature: ______________________________________________ -Date: ___________________________________________________ diff --git a/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690317 V1.0 ApS.md b/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690317 V1.0 ApS.md new file mode 100644 index 0000000..cd4bac8 --- /dev/null +++ b/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690317 V1.0 ApS.md @@ -0,0 +1,54 @@ +# Progress Status Record + + + +| Document No | Progress Status Record | Release, Version, By: | 25690317 V1.0 ApS | +| Project Name | โครงการพัฒนาระบบบริหารจัดการคลังสินค้า (BRN WMS) บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด | +| Project Code | 200-WMS-26-001-00 | +| Title | รายงานสรุปงวดที่ 6 : 17 มีนาคม 2569 | +| Reporting Period | 9 มีนาคม 2569 – 17 มีนาคม 2569 | +| Organizer | คุณอภิรัชช์ สุภัทรประทีป (Project Manager) | +| Recorder | คุณเยาวลักษณ์ บางชมภู (Document Control) | + +## สรุปสถานะโครงการ + +| Task ID | Task Name | Period | Responsible | Status | Progress (%) | Remarks | +| :---: | --- | :---: | :---: | :---: | ---: | --- | +| 3.2 | Security & Database Foundation | 9–17 มี.ค. 69 | ThS | Completed | 100 | ป้องกันไฟล์ตั้งค่า แก้ผลตรวจความปลอดภัย ออกแบบฐานข้อมูลสต๊อกและโมดูล ICS | +| 4.3 | Verify Work Products | 30 พ.ค.–17 ส.ค. 69 | PaNg, NoC | In Progress | 10 | เริ่มตรวจสอบเอกสารความต้องการและออกแบบรอบที่ 1 | + +## ความเสี่ยง/อุปสรรค + +| ลำดับ | Issue ID | ประเด็น | รายละเอียด | สาเหตุที่พบ | แนวทางการแก้ไข | ผู้รับผิดชอบ | สถานะ | +| :---: | --- | --- | --- | --- | --- | :---: | :---: | +| 1 | ISS-001 (3 มี.ค. 69) | สูง | ผลตรวจความปลอดภัยเบื้องต้นพบจุดที่ต้องแก้ไข | ยังไม่ได้ใช้แนวปฏิบัติ Secure Coding ครบทุกจุด | แก้ไขตามผลตรวจความปลอดภัยทั้งชุด (9 มี.ค. 69) | ThS | เสร็จสิ้น | + +## สรุป CR/Change (ถ้ามี) + +| CR ID | หัวข้อ | สถานะ | ผลกระทบ | +| :---: | --- | :---: | --- | +| - | ไม่มีคำขอเปลี่ยนแปลงในงวดนี้ | - | - | + +## Next Meeting + +| รายละเอียด | วันที่ | ผู้จัดประชุม | หัวข้อหลัก | +| --- | :---: | --- | --- | +| ประชุมติดตามงวดที่ 7 | 29 เมษายน 2569 | คุณอภิรัชช์ สุภัทรประทีป (ApS) | ติดตามการพัฒนาโมดูลคลังสินค้า สินค้า และรายงาน | + +## ผู้จัดทำเอกสาร (Secretary) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเยาวลักษณ์ บางชมภู | Document Control | | | + +## ผู้ตรวจสอบเอกสาร (Reviewer) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณอภิรัชช์ สุภัทรประทีป | Project Manager | | | + +## ผู้อนุมัติ (Approval) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเสรี วิริยะสกุลธรณ์ | Project Sponsor | | | diff --git a/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690317 V1.0.md b/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690317 V1.0.md deleted file mode 100644 index d68377d..0000000 --- a/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690317 V1.0.md +++ /dev/null @@ -1,76 +0,0 @@ -# Progress Status Record 4 of 13 - -| Document field | Value | -|---|---| -| Document | Progress Status Record | -| Project | BRN WMS | -| Project code | 200-WMS-26-001-00 | -| Reporting period | 09/03/26–17/03/26 | -| Report date | 17/03/26 | -| Release | 17/03/26 V1.0 Final | -| Prepared by | Apirach Supattaratpateep — Project Manager | -| Status | Final — ready for review and authorization | - -## 1. Period objective - -**Milestone:** Security, database, and ICS foundation - -**Planned outcome:** Protect local configuration, address initial security findings, design the stock database, and introduce inventory-control modules. - -## 2. Task progress - -**Period summary:** Configuration was removed from tracking, security-audit fixes were applied, stock database design was committed, and ICS modules were introduced. - -| Task ID | Task | Planned finish | Actual / evidence date | Completion | Evidence | Status | -|---|---|---:|---:|---:|---|---| -| 3.2 | Security and database foundation | 17/03/26 | 17/03/26 | 100% | Git `93d903c`–`a4f474b` | Completed | - - -| Evidence field | Value | -|---|---| -| Evidence reference | `93d903c`, `7cb78d0`, `2e558a5`, `a4f474b` | -| Overall period status | Green | - -## 3. Schedule status - -Task 3.2 finished on its planned date of 17/03/26. No schedule deviation, though commit activity was concentrated at the start and end of the period. - - -## 4. Issues, risks, and corrective action - -**Issue or risk:** The period contains a gap in commit activity before the documented security/database work. - -**Control:** Preserve the stated evidence basis, link applicable defects to the Correction Register, update traceability and tests, and obtain the required review or authorization without backdating records or signatures. - -## 5. Changes - -Technical commits in this period are implementation evidence. They must be classified separately as in-scope implementation, defect correction, or an authorized baseline change before being entered in the Change Report. - -## 6. Next-period plan - -Develop stock visibility, warehouse structure, product controls, and operational reports. - -## 7. Approval - -### Prepared by - -Name: Apirach Supattaratpateep -Role: Project Manager -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Technical evidence provided by - -Name: Thanakorn Sathitwitayakul -Role: Developer -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Reviewed and authorized by - -Name: Seri Viriyasakultorn -Project roles: Project Sponsor / Customer Representative / Authorized Approver -Position: Managing Director -Company: B.R.N. Enterprise Co., Ltd. -Signature: ______________________________________________ -Date: ___________________________________________________ diff --git a/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690429 V1.0 ApS.md b/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690429 V1.0 ApS.md new file mode 100644 index 0000000..6e0428f --- /dev/null +++ b/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690429 V1.0 ApS.md @@ -0,0 +1,54 @@ +# Progress Status Record + + + +| Document No | Progress Status Record | Release, Version, By: | 25690429 V1.0 ApS | +| Project Name | โครงการพัฒนาระบบบริหารจัดการคลังสินค้า (BRN WMS) บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด | +| Project Code | 200-WMS-26-001-00 | +| Title | รายงานสรุปงวดที่ 7 : 29 เมษายน 2569 | +| Reporting Period | 9 เมษายน 2569 – 29 เมษายน 2569 | +| Organizer | คุณอภิรัชช์ สุภัทรประทีป (Project Manager) | +| Recorder | คุณเยาวลักษณ์ บางชมภู (Document Control) | + +## สรุปสถานะโครงการ + +| Task ID | Task Name | Period | Responsible | Status | Progress (%) | Remarks | +| :---: | --- | :---: | :---: | :---: | ---: | --- | +| 3.3 | Inventory & Warehouse Modules | 9–29 เม.ย. 69 | ThS, NoC | Completed | 100 | พัฒนาแดชบอร์ดสต๊อก สินค้า ความจุคลัง Lot/Serial/Expiry และรายงานครบตามแผน | +| 3.4 | Authentication & Onboarding | 28 เม.ย.–12 พ.ค. 69 | ThS | In Progress | 50 | อยู่ระหว่างพัฒนาเข้าสู่ระบบ ลงทะเบียน และ Onboarding | + +## ความเสี่ยง/อุปสรรค + +| ลำดับ | Issue ID | ประเด็น | รายละเอียด | สาเหตุที่พบ | แนวทางการแก้ไข | ผู้รับผิดชอบ | สถานะ | +| :---: | --- | --- | --- | --- | --- | :---: | :---: | +| 1 | ISS-002 (18 เม.ย. 69) | สูง | คำสั่งบางรายการทำให้ความถูกต้องของข้อมูลเสียหาย | ไม่มีการตรวจสอบความสัมพันธ์ของข้อมูลก่อนทำรายการ | ถอดคำสั่งที่มีปัญหาและเพิ่มการตรวจสอบความถูกต้อง (24 เม.ย. 69) | ThS | เสร็จสิ้น | + +## สรุป CR/Change (ถ้ามี) + +| CR ID | หัวข้อ | สถานะ | ผลกระทบ | +| :---: | --- | :---: | --- | +| - | ไม่มีคำขอเปลี่ยนแปลงในงวดนี้ | - | - | + +## Next Meeting + +| รายละเอียด | วันที่ | ผู้จัดประชุม | หัวข้อหลัก | +| --- | :---: | --- | --- | +| ประชุมติดตามงวดที่ 8 | 8 พฤษภาคม 2569 | คุณอภิรัชช์ สุภัทรประทีป (ApS) | ติดตามการพัฒนาระบบสิทธิ์ ใบสั่งขาย และบาร์โค้ด | + +## ผู้จัดทำเอกสาร (Secretary) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเยาวลักษณ์ บางชมภู | Document Control | | | + +## ผู้ตรวจสอบเอกสาร (Reviewer) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณอภิรัชช์ สุภัทรประทีป | Project Manager | | | + +## ผู้อนุมัติ (Approval) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเสรี วิริยะสกุลธรณ์ | Project Sponsor | | | diff --git a/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690429 V1.0.md b/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690429 V1.0.md deleted file mode 100644 index 2c1bde5..0000000 --- a/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690429 V1.0.md +++ /dev/null @@ -1,76 +0,0 @@ -# Progress Status Record 5 of 13 - -| Document field | Value | -|---|---| -| Document | Progress Status Record | -| Project | BRN WMS | -| Project code | 200-WMS-26-001-00 | -| Reporting period | 09/04/26–29/04/26 | -| Report date | 29/04/26 | -| Release | 29/04/26 V1.0 Final | -| Prepared by | Apirach Supattaratpateep — Project Manager | -| Status | Final — ready for review and authorization | - -## 1. Period objective - -**Milestone:** Inventory, warehouse, and access foundation - -**Planned outcome:** Implement stock dashboard, products, warehouse capacity, traceability, reports, settings, authentication, and reusable managers. - -## 2. Task progress - -**Period summary:** Dashboard, product files, OOP utilities, capacity/occupancy, lot/serial/expiry, reports, settings, login/onboarding, and manager classes were implemented. - -| Task ID | Task | Planned finish | Actual / evidence date | Completion | Evidence | Status | -|---|---|---:|---:|---:|---|---| -| 3.3 | Inventory and warehouse modules | 29/04/26 | 29/04/26 | 100% | Git `3b8f94f`–`db5c47b` | Completed | - - -| Evidence field | Value | -|---|---| -| Evidence reference | `3b8f94f` through `db5c47b` | -| Overall period status | Green | - -## 3. Schedule status - -Task 3.3 finished on its planned date of 29/04/26. No schedule deviation in this period. - - -## 4. Issues, risks, and corrective action - -**Issue or risk:** Rapid module growth increased the need for consistent authorization and lifecycle review. - -**Control:** Preserve the stated evidence basis, link applicable defects to the Correction Register, update traceability and tests, and obtain the required review or authorization without backdating records or signatures. - -## 5. Changes - -Technical commits in this period are implementation evidence. They must be classified separately as in-scope implementation, defect correction, or an authorized baseline change before being entered in the Change Report. - -## 6. Next-period plan - -Complete document approval logic, orders, warehouse layers, barcode, and role guards. - -## 7. Approval - -### Prepared by - -Name: Apirach Supattaratpateep -Role: Project Manager -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Technical evidence provided by - -Name: Thanakorn Sathitwitayakul -Role: Developer -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Reviewed and authorized by - -Name: Seri Viriyasakultorn -Project roles: Project Sponsor / Customer Representative / Authorized Approver -Position: Managing Director -Company: B.R.N. Enterprise Co., Ltd. -Signature: ______________________________________________ -Date: ___________________________________________________ diff --git a/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690508 V1.0 ApS.md b/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690508 V1.0 ApS.md new file mode 100644 index 0000000..3609d0e --- /dev/null +++ b/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690508 V1.0 ApS.md @@ -0,0 +1,57 @@ +# Progress Status Record + + + +| Document No | Progress Status Record | Release, Version, By: | 25690508 V1.0 ApS | +| Project Name | โครงการพัฒนาระบบบริหารจัดการคลังสินค้า (BRN WMS) บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด | +| Project Code | 200-WMS-26-001-00 | +| Title | รายงานสรุปงวดที่ 8 : 8 พฤษภาคม 2569 | +| Reporting Period | 30 เมษายน 2569 – 8 พฤษภาคม 2569 | +| Organizer | คุณอภิรัชช์ สุภัทรประทีป (Project Manager) | +| Recorder | คุณเยาวลักษณ์ บางชมภู (Document Control) | + +## สรุปสถานะโครงการ + +| Task ID | Task Name | Period | Responsible | Status | Progress (%) | Remarks | +| :---: | --- | :---: | :---: | :---: | ---: | --- | +| 3.4 | Authentication & Onboarding | 28 เม.ย.–12 พ.ค. 69 | ThS | In Progress | 80 | พัฒนาการเข้าสู่ระบบและสิทธิ์ตามบทบาทเกือบครบ เหลือขั้นตอนกู้คืนรหัสผ่าน | +| 3.5 | Order & Barcode Workflows | 2–8 พ.ค. 69 | ThS | Completed | 100 | พัฒนาใบสั่งขาย ใบรับคืน ใบแจ้งหนี้ คลังหลายชั้น และบาร์โค้ดครบตามแผน | +| 3.9 | Security Hardening & Lifecycle Review | 21–28 พ.ค. 69 | ThS, PaNg | In Progress | 25 | เริ่มทบทวน Role Guard และการรวมศูนย์การตรวจสิทธิ์ | + +## ความเสี่ยง/อุปสรรค + +| ลำดับ | Issue ID | ประเด็น | รายละเอียด | สาเหตุที่พบ | แนวทางการแก้ไข | ผู้รับผิดชอบ | สถานะ | +| :---: | --- | --- | --- | --- | --- | :---: | :---: | +| 1 | ISS-003 (30 เม.ย. 69) | สูง | การตรวจสิทธิ์ตามบทบาทยังไม่ครอบคลุมทุกหน้าจอ | พัฒนาสิทธิ์แบบเพิ่มทีละส่วนระหว่างพัฒนา | เพิ่ม Role Guard ให้ครบและปรับปรุงเอกสารประกอบ (6 พ.ค. 69) | ThS | เสร็จสิ้น | +| 2 | ISS-004 (1 พ.ค. 69) | สูง | พบช่องโหว่ด้านความปลอดภัยที่ยังไม่ได้ปิด | การตรวจสอบสิทธิ์บางเส้นทางยังไม่สมบูรณ์ | ปิดช่องโหว่ที่พบตามผลการตรวจสอบ (7 พ.ค. 69) | ThS | เสร็จสิ้น | +| 3 | ISS-005 (2 พ.ค. 69) | กลาง | ชื่อตัวแปร/ฟังก์ชันไม่สอดคล้องกัน และ Session ทำงานผิดพลาด | พัฒนาเป็นช่วง ๆ ทำให้การตั้งชื่อไม่เป็นมาตรฐานเดียวกัน | ปรับชื่อให้เป็นมาตรฐานเดียวกันและแก้ปัญหา Session (8 พ.ค. 69) | ThS | เสร็จสิ้น | + +## สรุป CR/Change (ถ้ามี) + +| CR ID | หัวข้อ | สถานะ | ผลกระทบ | +| :---: | --- | :---: | --- | +| - | ไม่มีคำขอเปลี่ยนแปลงในงวดนี้ | - | - | + +## Next Meeting + +| รายละเอียด | วันที่ | ผู้จัดประชุม | หัวข้อหลัก | +| --- | :---: | --- | --- | +| ประชุมติดตามงวดที่ 9 | 13 พฤษภาคม 2569 | คุณอภิรัชช์ สุภัทรประทีป (ApS) | ติดตามการเตรียมใช้งานจริง สคริปต์ติดตั้ง และการเริ่มโมดูลบัญชี | + +## ผู้จัดทำเอกสาร (Secretary) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเยาวลักษณ์ บางชมภู | Document Control | | | + +## ผู้ตรวจสอบเอกสาร (Reviewer) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณอภิรัชช์ สุภัทรประทีป | Project Manager | | | + +## ผู้อนุมัติ (Approval) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเสรี วิริยะสกุลธรณ์ | Project Sponsor | | | diff --git a/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690508 V1.0.md b/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690508 V1.0.md deleted file mode 100644 index 66d2aa6..0000000 --- a/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690508 V1.0.md +++ /dev/null @@ -1,77 +0,0 @@ -# Progress Status Record 6 of 13 - -| Document field | Value | -|---|---| -| Document | Progress Status Record | -| Project | BRN WMS | -| Project code | 200-WMS-26-001-00 | -| Reporting period | 30/04/26–08/05/26 | -| Report date | 08/05/26 | -| Release | 08/05/26 V1.0 Final | -| Prepared by | Apirach Supattaratpateep — Project Manager | -| Status | Final — ready for review and authorization | - -## 1. Period objective - -**Milestone:** Orders, barcode, and security controls - -**Planned outcome:** Implement approval logic, customer order flows, flexible warehouse layers, barcode operations, and centralized role guards. - -## 2. Task progress - -**Period summary:** Password scoring, stock approval, orders/returns/invoices, switchable warehouse layers, barcode functions, role guards, security fixes, and naming/session corrections were completed. - -| Task ID | Task | Planned finish | Actual / evidence date | Completion | Evidence | Status | -|---|---|---:|---:|---:|---|---| -| 3.4 | Authentication and onboarding | 12/05/26 | In progress at 08-May | 70% | Commits through 08/05/26 | In progress; carried forward | -| 3.5 | Order and barcode workflows | 08/05/26 | 08/05/26 | 100% | 02/05/26–08/05/26 commits | Completed | - - -| Evidence field | Value | -|---|---| -| Evidence reference | 30/04/26–08/05/26 commits | -| Overall period status | Green | - -## 3. Schedule status - -Task 3.5 finished on its planned date of 08/05/26. Task 3.4 is running to its planned finish of 12/05/26 and is carried forward at 70%. - - -## 4. Issues, risks, and corrective action - -**Issue or risk:** Security gaps were actively corrected during implementation; formal correction records remain to be linked. - -**Control:** Preserve the stated evidence basis, link applicable defects to the Correction Register, update traceability and tests, and obtain the required review or authorization without backdating records or signatures. - -## 5. Changes - -Technical commits in this period are implementation evidence. They must be classified separately as in-scope implementation, defect correction, or an authorized baseline change before being entered in the Change Report. - -## 6. Next-period plan - -Prepare production setup and introduce accounting capabilities. - -## 7. Approval - -### Prepared by - -Name: Apirach Supattaratpateep -Role: Project Manager -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Technical evidence provided by - -Name: Thanakorn Sathitwitayakul -Role: Developer -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Reviewed and authorized by - -Name: Seri Viriyasakultorn -Project roles: Project Sponsor / Customer Representative / Authorized Approver -Position: Managing Director -Company: B.R.N. Enterprise Co., Ltd. -Signature: ______________________________________________ -Date: ___________________________________________________ diff --git a/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690513 V1.0 ApS.md b/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690513 V1.0 ApS.md new file mode 100644 index 0000000..6b2a561 --- /dev/null +++ b/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690513 V1.0 ApS.md @@ -0,0 +1,58 @@ +# Progress Status Record + + + +| Document No | Progress Status Record | Release, Version, By: | 25690513 V1.0 ApS | +| Project Name | โครงการพัฒนาระบบบริหารจัดการคลังสินค้า (BRN WMS) บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด | +| Project Code | 200-WMS-26-001-00 | +| Title | รายงานสรุปงวดที่ 9 : 13 พฤษภาคม 2569 | +| Reporting Period | 11 พฤษภาคม 2569 – 13 พฤษภาคม 2569 | +| Organizer | คุณอภิรัชช์ สุภัทรประทีป (Project Manager) | +| Recorder | คุณเยาวลักษณ์ บางชมภู (Document Control) | + +## สรุปสถานะโครงการ + +| Task ID | Task Name | Period | Responsible | Status | Progress (%) | Remarks | +| :---: | --- | :---: | :---: | :---: | ---: | --- | +| 3.4 | Authentication & Onboarding | 28 เม.ย.–12 พ.ค. 69 | ThS | Completed | 100 | พัฒนาการเข้าสู่ระบบ Onboarding และกู้คืนรหัสผ่านครบถ้วน | +| 3.6 | Production Preparation & Setup | 11–13 พ.ค. 69 | ThS | Completed | 100 | จัดทำ Base URL อัตโนมัติ สคริปต์ติดตั้งฐานข้อมูล และข้อมูลทดสอบ | +| 3.7 | Accounting & Finance Workflows | 13–23 พ.ค. 69 | ThS | In Progress | 20 | เริ่มพัฒนาโมดูลบัญชีและผังบัญชี | + +## ความเสี่ยง/อุปสรรค + +| ลำดับ | Issue ID | ประเด็น | รายละเอียด | สาเหตุที่พบ | แนวทางการแก้ไข | ผู้รับผิดชอบ | สถานะ | +| :---: | --- | --- | --- | --- | --- | :---: | :---: | +| 1 | ISS-006 (5 พ.ค. 69) | สูง | พบประเด็นความปลอดภัยของเว็บแอปพลิเคชัน | การตรวจสอบข้อมูลนำเข้ายังไม่ครอบคลุม | แก้ไขความปลอดภัยของเว็บแอปพลิเคชันตามที่ตรวจพบ (11 พ.ค. 69) | ThS | เสร็จสิ้น | +| 2 | ISS-007 (6 พ.ค. 69) | กลาง | ขั้นตอน Onboarding ทำงานไม่ครบตามที่ออกแบบ | เงื่อนไขการรับคำเชิญไม่ครอบคลุมทุกกรณี | แก้ไขขั้นตอน Onboarding ให้ทำงานถูกต้อง (12 พ.ค. 69) | ThS | เสร็จสิ้น | +| 3 | ISS-008 (7 พ.ค. 69) | กลาง | การลงทะเบียนผู้ใช้ใหม่ล้มเหลวในบางกรณี | การตรวจสอบข้อมูลลงทะเบียนไม่ครบถ้วน | แก้ไขขั้นตอนการลงทะเบียน (13 พ.ค. 69) | ThS | เสร็จสิ้น | +| 4 | ISS-009 (7 พ.ค. 69) | สูง | การตรวจสอบสิทธิ์ระดับฐานข้อมูลทำงานไม่ถูกต้อง | การกำหนดสิทธิ์เชื่อมต่อฐานข้อมูลไม่สอดคล้องกับบทบาท | แก้ไขการตรวจสอบสิทธิ์ db_auth (13 พ.ค. 69) | ThS | เสร็จสิ้น | + +## สรุป CR/Change (ถ้ามี) + +| CR ID | หัวข้อ | สถานะ | ผลกระทบ | +| :---: | --- | :---: | --- | +| - | ไม่มีคำขอเปลี่ยนแปลงในงวดนี้ | - | - | + +## Next Meeting + +| รายละเอียด | วันที่ | ผู้จัดประชุม | หัวข้อหลัก | +| --- | :---: | --- | --- | +| ประชุมติดตามงวดที่ 10 | 23 พฤษภาคม 2569 | คุณอภิรัชช์ สุภัทรประทีป (ApS) | ติดตามการพัฒนาบัญชี การเงิน และการควบคุมสิทธิ์ผู้ใช้ | + +## ผู้จัดทำเอกสาร (Secretary) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเยาวลักษณ์ บางชมภู | Document Control | | | + +## ผู้ตรวจสอบเอกสาร (Reviewer) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณอภิรัชช์ สุภัทรประทีป | Project Manager | | | + +## ผู้อนุมัติ (Approval) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเสรี วิริยะสกุลธรณ์ | Project Sponsor | | | diff --git a/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690513 V1.0.md b/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690513 V1.0.md deleted file mode 100644 index 7b8ff4e..0000000 --- a/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690513 V1.0.md +++ /dev/null @@ -1,78 +0,0 @@ -# Progress Status Record 7 of 13 - -| Document field | Value | -|---|---| -| Document | Progress Status Record | -| Project | BRN WMS | -| Project code | 200-WMS-26-001-00 | -| Reporting period | 11/05/26–13/05/26 | -| Report date | 13/05/26 | -| Release | 13/05/26 V1.0 Final | -| Prepared by | Apirach Supattaratpateep — Project Manager | -| Status | Final — ready for review and authorization | - -## 1. Period objective - -**Milestone:** Production preparation and accounting foundation - -**Planned outcome:** Prepare deployment, automate setup, correct onboarding/recovery, populate test data, and introduce accounting. - -## 2. Task progress - -**Period summary:** Production preparation, dynamic base URL, automated setup, password recovery, onboarding fixes, test data, dashboard updates, and accounting modules were committed. - -| Task ID | Task | Planned finish | Actual / evidence date | Completion | Evidence | Status | -|---|---|---:|---:|---:|---|---| -| 3.4 | Authentication and onboarding | 12/05/26 | 12/05/26 | 100% | Login/onboarding and recovery commits | Completed | -| 3.6 | Production preparation and setup | 13/05/26 | 13/05/26 | 100% | 11/05/26–13/05/26 commits | Completed | -| 3.7 | Accounting and finance workflows | 23/05/26 | In progress at 13-May | 20% | Accounting foundation commits | In progress; carried forward | - - -| Evidence field | Value | -|---|---| -| Evidence reference | 11/05/26–13/05/26 commits | -| Overall period status | Green | - -## 3. Schedule status - -Tasks 3.4 and 3.6 finished on their planned dates. Task 3.7 is running to its planned finish of 23/05/26 and is carried forward at 20%. - - -## 4. Issues, risks, and corrective action - -**Issue or risk:** Multiple fixes and a revert occurred during integration; results require traceability to tests. - -**Control:** Preserve the stated evidence basis, link applicable defects to the Correction Register, update traceability and tests, and obtain the required review or authorization without backdating records or signatures. - -## 5. Changes - -Technical commits in this period are implementation evidence. They must be classified separately as in-scope implementation, defect correction, or an authorized baseline change before being entered in the Change Report. - -## 6. Next-period plan - -Integrate accounting workflows, document control, access limits, and supporting services. - -## 7. Approval - -### Prepared by - -Name: Apirach Supattaratpateep -Role: Project Manager -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Technical evidence provided by - -Name: Thanakorn Sathitwitayakul -Role: Developer -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Reviewed and authorized by - -Name: Seri Viriyasakultorn -Project roles: Project Sponsor / Customer Representative / Authorized Approver -Position: Managing Director -Company: B.R.N. Enterprise Co., Ltd. -Signature: ______________________________________________ -Date: ___________________________________________________ diff --git a/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690523 V1.0 ApS.md b/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690523 V1.0 ApS.md new file mode 100644 index 0000000..7b45bc1 --- /dev/null +++ b/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690523 V1.0 ApS.md @@ -0,0 +1,60 @@ +# Progress Status Record + + + +| Document No | Progress Status Record | Release, Version, By: | 25690523 V1.0 ApS | +| Project Name | โครงการพัฒนาระบบบริหารจัดการคลังสินค้า (BRN WMS) บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด | +| Project Code | 200-WMS-26-001-00 | +| Title | รายงานสรุปงวดที่ 10 : 23 พฤษภาคม 2569 | +| Reporting Period | 20 พฤษภาคม 2569 – 23 พฤษภาคม 2569 | +| Organizer | คุณอภิรัชช์ สุภัทรประทีป (Project Manager) | +| Recorder | คุณเยาวลักษณ์ บางชมภู (Document Control) | + +## สรุปสถานะโครงการ + +| Task ID | Task Name | Period | Responsible | Status | Progress (%) | Remarks | +| :---: | --- | :---: | :---: | :---: | ---: | --- | +| 3.7 | Accounting & Finance Workflows | 13–23 พ.ค. 69 | ThS | Completed | 100 | พัฒนาผังบัญชี GL สมุดรายวัน รายงานบัญชี ใบวางบิลและใบเสร็จครบตามแผน | +| 3.8 | Real-time Services & Scheduled Jobs | 22–27 พ.ค. 69 | ThS | In Progress | 45 | อยู่ระหว่างพัฒนา Socket.IO และตารางสรุปยอด | +| 3.9 | Security Hardening & Lifecycle Review | 21–28 พ.ค. 69 | ThS, PaNg | In Progress | 60 | เพิ่มการเชิญผู้ใช้ การควบคุมสิทธิ์แอปพลิเคชัน และโควตารายการ | + +## ความเสี่ยง/อุปสรรค + +| ลำดับ | Issue ID | ประเด็น | รายละเอียด | สาเหตุที่พบ | แนวทางการแก้ไข | ผู้รับผิดชอบ | สถานะ | +| :---: | --- | --- | --- | --- | --- | :---: | :---: | +| 1 | ISS-010 (14 พ.ค. 69) | กลาง | รูปแบบการเขียนโค้ดในแต่ละโมดูลไม่สอดคล้องกัน | พัฒนาหลายโมดูลคู่ขนานกัน | ทบทวนและปรับรูปแบบการเขียนโค้ดให้สอดคล้องกัน (20 พ.ค. 69) | ThS | เสร็จสิ้น | +| 2 | ISS-011 (15 พ.ค. 69) | สูง | การเชิญผู้ใช้ สิทธิ์แอปพลิเคชัน และโควตารายการยังไม่รัดกุม | ควบคุมสิทธิ์และโควตาถูกเพิ่มภายหลัง | แก้ไขการเชิญผู้ใช้ เพิ่มการควบคุมสิทธิ์และโควตารายการ (21 พ.ค. 69) | ThS | เสร็จสิ้น | +| 3 | ISS-012 (15 พ.ค. 69) | สูง | StockManager แปลงค่า Lot/Serial ผิดพลาด ทำให้สอบกลับไม่ถูกต้อง | การแปลงชนิดข้อมูลไม่รองรับค่าที่เป็นข้อความ | แก้ไขการแปลงค่า Lot/Serial และเพิ่มชุดทดสอบวงจรเอกสาร (21 พ.ค. 69) | ThS | เสร็จสิ้น | +| 4 | ISS-013 (15 พ.ค. 69) | กลาง | ยังพบข้อบกพร่องของขั้นตอน Onboarding เพิ่มเติม | เส้นทางการรับคำเชิญมีหลายเงื่อนไข | แก้ไขข้อบกพร่องของ Onboarding ที่พบเพิ่ม (21 พ.ค. 69) | ThS | เสร็จสิ้น | +| 5 | ISS-014 (17 พ.ค. 69) | กลาง | เส้นทางไฟล์ (File Path) ไม่ถูกต้องในบางสภาพแวดล้อม | สมมติฐานเส้นทางติดตั้งไม่ตรงกัน | แก้ไขเส้นทางไฟล์ให้ถูกต้องทั้งระบบ (23 พ.ค. 69) | ThS | เสร็จสิ้น | +| 6 | ISS-015 (17 พ.ค. 69) | สูง | ผลตรวจโค้ดพบปัญหา require_once, ขั้นตอนจ่ายออก และ Role Guard | การควบคุมข้ามโมดูลไม่สอดคล้องกัน | แก้ไข require_once, ขั้นตอนจ่ายออก และเพิ่ม Role Guard (23 พ.ค. 69) | ThS | เสร็จสิ้น | + +## สรุป CR/Change (ถ้ามี) + +| CR ID | หัวข้อ | สถานะ | ผลกระทบ | +| :---: | --- | :---: | --- | +| - | ไม่มีคำขอเปลี่ยนแปลงในงวดนี้ | - | - | + +## Next Meeting + +| รายละเอียด | วันที่ | ผู้จัดประชุม | หัวข้อหลัก | +| --- | :---: | --- | --- | +| ประชุมติดตามงวดที่ 11 | 29 พฤษภาคม 2569 | คุณอภิรัชช์ สุภัทรประทีป (ApS) | สรุปผลการพัฒนาและตั้ง Baseline การพัฒนา | + +## ผู้จัดทำเอกสาร (Secretary) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเยาวลักษณ์ บางชมภู | Document Control | | | + +## ผู้ตรวจสอบเอกสาร (Reviewer) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณอภิรัชช์ สุภัทรประทีป | Project Manager | | | + +## ผู้อนุมัติ (Approval) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเสรี วิริยะสกุลธรณ์ | Project Sponsor | | | diff --git a/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690523 V1.0.md b/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690523 V1.0.md deleted file mode 100644 index ab7ad83..0000000 --- a/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690523 V1.0.md +++ /dev/null @@ -1,78 +0,0 @@ -# Progress Status Record 8 of 13 - -| Document field | Value | -|---|---| -| Document | Progress Status Record | -| Project | BRN WMS | -| Project code | 200-WMS-26-001-00 | -| Reporting period | 20/05/26–23/05/26 | -| Report date | 23/05/26 | -| Release | 23/05/26 V1.0 Final | -| Prepared by | Apirach Supattaratpateep — Project Manager | -| Status | Final — ready for review and authorization | - -## 1. Period objective - -**Milestone:** Accounting integration and supporting services - -**Planned outcome:** Integrate accounting, user invitation/access controls, transaction limits, document flows, Node.js, aggregates, and reports. - -## 2. Task progress - -**Period summary:** Accounting workflows, access controls, setup script, soft delete, Socket service, GL aggregation, accounting reports, journal batching, and GL automation were implemented. - -| Task ID | Task | Planned finish | Actual / evidence date | Completion | Evidence | Status | -|---|---|---:|---:|---:|---|---| -| 3.7 | Accounting and finance workflows | 23/05/26 | 23/05/26 | 100% | 13/05/26–23/05/26 accounting commits | Completed | -| 3.8 | Real-time services and scheduled jobs | 27/05/26 | In progress at 23-May | 45% | Node.js and GL aggregate commits | In progress; carried forward | -| 3.9 | Security hardening and lifecycle review | 28/05/26 | In progress at 23-May | 35% | Access, flow, and role-guard commits | In progress; carried forward | - - -| Evidence field | Value | -|---|---| -| Evidence reference | 20/05/26–23/05/26 commits | -| Overall period status | Green | - -## 3. Schedule status - -Task 3.7 finished on its planned date of 23/05/26. Tasks 3.8 and 3.9 are running to their planned finishes of 27/05/26 and 28/05/26 and are carried forward. - - -## 4. Issues, risks, and corrective action - -**Issue or risk:** Integration breadth increased regression and tenant-isolation risk. - -**Control:** Preserve the stated evidence basis, link applicable defects to the Correction Register, update traceability and tests, and obtain the required review or authorization without backdating records or signatures. - -## 5. Changes - -Technical commits in this period are implementation evidence. They must be classified separately as in-scope implementation, defect correction, or an authorized baseline change before being entered in the Change Report. - -## 6. Next-period plan - -Complete security hardening, notification control, sequencing, scheduler, tenant scoping, and final review. - -## 7. Approval - -### Prepared by - -Name: Apirach Supattaratpateep -Role: Project Manager -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Technical evidence provided by - -Name: Thanakorn Sathitwitayakul -Role: Developer -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Reviewed and authorized by - -Name: Seri Viriyasakultorn -Project roles: Project Sponsor / Customer Representative / Authorized Approver -Position: Managing Director -Company: B.R.N. Enterprise Co., Ltd. -Signature: ______________________________________________ -Date: ___________________________________________________ diff --git a/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690529 V1.0 ApS.md b/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690529 V1.0 ApS.md new file mode 100644 index 0000000..08adc0c --- /dev/null +++ b/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690529 V1.0 ApS.md @@ -0,0 +1,66 @@ +# Progress Status Record + + + +| Document No | Progress Status Record | Release, Version, By: | 25690529 V1.0 ApS | +| Project Name | โครงการพัฒนาระบบบริหารจัดการคลังสินค้า (BRN WMS) บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด | +| Project Code | 200-WMS-26-001-00 | +| Title | รายงานสรุปงวดที่ 11 : 29 พฤษภาคม 2569 | +| Reporting Period | 24 พฤษภาคม 2569 – 29 พฤษภาคม 2569 | +| Organizer | คุณอภิรัชช์ สุภัทรประทีป (Project Manager) | +| Recorder | คุณเยาวลักษณ์ บางชมภู (Document Control) | + +## สรุปสถานะโครงการ + +| Task ID | Task Name | Period | Responsible | Status | Progress (%) | Remarks | +| :---: | --- | :---: | :---: | :---: | ---: | --- | +| 3.8 | Real-time Services & Scheduled Jobs | 22–27 พ.ค. 69 | ThS | Completed | 100 | พัฒนาบริการแจ้งเตือน Real-time ตารางสรุปยอด และงานตามกำหนดเวลาครบถ้วน | +| 3.9 | Security Hardening & Lifecycle Review | 21–28 พ.ค. 69 | ThS, PaNg | Completed | 100 | ทบทวนความปลอดภัย ขอบเขตบริษัท วงจรเอกสาร และปิดข้อบกพร่องที่พบ | +| 3.10 | Refactor & Development Baseline | 29 พ.ค. 69 | ThS | Completed | 100 | ลดความซ้ำซ้อนของคลาสและตั้ง Baseline การพัฒนาเมื่อ 29 พ.ค. 69 | + +## ความเสี่ยง/อุปสรรค + +| ลำดับ | Issue ID | ประเด็น | รายละเอียด | สาเหตุที่พบ | แนวทางการแก้ไข | ผู้รับผิดชอบ | สถานะ | +| :---: | --- | --- | --- | --- | --- | :---: | :---: | +| 1 | ISS-016 (18 พ.ค. 69) | สูง | อนุญาตให้เข้าสู่ระบบพร้อมกันหลาย Session | ยังไม่มีการบังคับ Session เดียวต่อบัญชี | บล็อกการเข้าสู่ระบบซ้ำซ้อนและปรับนโยบายยืนยันตัวตนตามบทบาท (24 พ.ค. 69) | ThS | เสร็จสิ้น | +| 2 | ISS-017 (19 พ.ค. 69) | สูง | ยังพบช่องว่างของการควบคุมการเข้าสู่ระบบ | บางเส้นทางเข้าสู่ระบบไม่ผ่านการตรวจสอบเดียวกัน | ปิดช่องว่างการเข้าสู่ระบบที่พบ (25 พ.ค. 69) | ThS | เสร็จสิ้น | +| 3 | ISS-018 (20 พ.ค. 69) | สูง | ขั้นตอน Onboarding ผู้ใช้ที่ถูกเชิญต้องเพิ่มความปลอดภัย | มีหลายเส้นทางที่ต้องบังคับใช้การควบคุมเดียวกัน | ดำเนินการ Security Hardening รายการ C1–N7 (26 พ.ค. 69) | ThS | เสร็จสิ้น | +| 4 | ISS-019 (20 พ.ค. 69) | สูง | วงจรชีวิตเอกสารในระบบไม่ตรงกับข้อกำหนด | ข้อกำหนดและการพัฒนาเปลี่ยนแปลงไม่พร้อมกัน | ปรับข้อกำหนดและแก้โค้ดรายการ C2/M9 (26 พ.ค. 69) | ThS | เสร็จสิ้น | +| 5 | ISS-020 (20 พ.ค. 69) | สูง | ข้อมูลหลักมีช่องว่างระหว่างข้อกำหนดและการพัฒนา | ข้อกำหนดข้อมูลหลักถูกปรับระหว่างพัฒนา | ปรับข้อกำหนดและแก้โค้ดรายการ C1/C2/M3–M6 (26 พ.ค. 69) | ThS | เสร็จสิ้น | +| 6 | ISS-021 (21 พ.ค. 69) | กลาง | งานตามกำหนดเวลาของ Node.js ทำงานผิดพลาด | การตั้งค่า Cron ของบริการ Node.js ไม่ถูกต้อง | แก้ไขการทำงานของ Cron บน Node.js (27 พ.ค. 69) | ThS | เสร็จสิ้น | +| 7 | ISS-022 (21 พ.ค. 69) | กลาง | เอกสารประกอบภายในโครงการยังไม่ครบถ้วน | เอกสารถูกปรับตามการพัฒนาอย่างต่อเนื่อง | ทบทวนเอกสารทั้งหมดและแก้ไขส่วนที่ขาด (27 พ.ค. 69) | ThS | เสร็จสิ้น | +| 8 | ISS-023 (22 พ.ค. 69) | กลาง | การเปลี่ยนคำว่า Rack เป็น Bin ไม่ครบทุกจุด และ ReportManager ผิดพลาด | เปลี่ยนชื่อไม่ครบทุกไฟล์และป้ายกำกับหน้าจอ | เปลี่ยนชื่อไฟล์ ป้ายกำกับ และแก้คุณสมบัติของ ReportManager (28 พ.ค. 69) | ThS | เสร็จสิ้น | +| 9 | ISS-024 (22 พ.ค. 69) | สูง | การเข้าถึงตารางสต๊อกยังไม่จำกัดตามคลังของบริษัท | ขอบเขตสิทธิ์คลังสินค้ายังไม่ครบทุกคำสั่ง | จำกัดการเข้าถึงตารางสต๊อกตามคลังที่บริษัทได้รับสิทธิ์ (28 พ.ค. 69) | ThS | เสร็จสิ้น | +| 10 | ISS-025 (22 พ.ค. 69) | ต่ำ | แถบเลื่อนแนวนอนเกินขอบหน้าจอจากระยะขอบ Sidebar | ค่าระยะขอบเกินความกว้างของ Viewport | แก้ไขการจัดวาง Sidebar ให้อยู่ในขอบหน้าจอ (28 พ.ค. 69) | ThS | เสร็จสิ้น | +| 11 | ISS-026 (22 พ.ค. 69) | สูง | ระบบยังรับการเข้าสู่ระบบใหม่ขณะบัญชีมี Session ทำงานอยู่ | การบังคับ Session เดียวยังไม่ครอบคลุมทุกกรณี | ปฏิเสธการเข้าสู่ระบบใหม่เมื่อบัญชีมี Session ทำงานอยู่ (28 พ.ค. 69) | ThS | เสร็จสิ้น | +| 12 | ISS-027 (23 พ.ค. 69) | ต่ำ | เมธอดของคลาสมีการทำงานซ้ำซ้อน | พัฒนาเพิ่มทีละส่วนทำให้เกิดความซ้ำซ้อน | ลดความซ้ำซ้อนของเมธอดในคลาส (29 พ.ค. 69) | ThS | เสร็จสิ้น | + +## สรุป CR/Change (ถ้ามี) + +| CR ID | หัวข้อ | สถานะ | ผลกระทบ | +| :---: | --- | :---: | --- | +| CH-001 | เปลี่ยนคำเรียกตำแหน่งจัดเก็บจาก Rack เป็น Bin | อนุมัติ | แก้ไข 14 ไฟล์ ประมาณ 1,000 บรรทัด ครอบคลุมคลาสจัดการ 8 คลาสและเครื่องมือบาร์โค้ด ไม่มีการเพิ่มฟังก์ชันใหม่ | + +## Next Meeting + +| รายละเอียด | วันที่ | ผู้จัดประชุม | หัวข้อหลัก | +| --- | :---: | --- | --- | +| ประชุมติดตามงวดที่ 12 | 3 สิงหาคม 2569 | คุณอภิรัชช์ สุภัทรประทีป (ApS) | ติดตามการตรวจสอบเอกสาร การจัดทำคู่มือ และการแก้ไขหลัง Baseline | + +## ผู้จัดทำเอกสาร (Secretary) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเยาวลักษณ์ บางชมภู | Document Control | | | + +## ผู้ตรวจสอบเอกสาร (Reviewer) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณอภิรัชช์ สุภัทรประทีป | Project Manager | | | + +## ผู้อนุมัติ (Approval) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเสรี วิริยะสกุลธรณ์ | Project Sponsor | | | diff --git a/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690529 V1.0.md b/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690529 V1.0.md deleted file mode 100644 index 88abeca..0000000 --- a/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690529 V1.0.md +++ /dev/null @@ -1,78 +0,0 @@ -# Progress Status Record 9 of 13 - -| Document field | Value | -|---|---| -| Document | Progress Status Record | -| Project | BRN WMS | -| Project code | 200-WMS-26-001-00 | -| Reporting period | 24/05/26–29/05/26 | -| Report date | 29/05/26 | -| Release | 29/05/26 V1.0 Final | -| Prepared by | Apirach Supattaratpateep — Project Manager | -| Status | Final — ready for review and authorization | - -## 1. Period objective - -**Milestone:** Development baseline - -**Planned outcome:** Harden security and integrity, close known implementation gaps, stabilize services, and establish the substantially complete development baseline. - -## 2. Task progress - -**Period summary:** Session controls, aggregates, notifications, security/lifecycle reviews, transaction limits, document sequencing, role guards, scheduler fixes, bin naming, tenant scoping, and final refactoring were completed. - -| Task ID | Task | Planned finish | Actual / evidence date | Completion | Evidence | Status | -|---|---|---:|---:|---:|---|---| -| 3.8 | Real-time services and scheduled jobs | 27/05/26 | 27/05/26 | 100% | 22–27 May Node.js/scheduler commits | Completed | -| 3.9 | Security hardening and lifecycle review | 28/05/26 | 28/05/26 | 100% | 21–28 May hardening/review commits | Completed | -| 3.10 | Refactor and development baseline | 29/05/26 | 29/05/26 | 100% | Git `a0677d6` | Completed | - - -| Evidence field | Value | -|---|---| -| Evidence reference | 24/05/26–29/05/26 commits; final `a0677d6` | -| Overall period status | Green | - -## 3. Schedule status - -Tasks 3.8, 3.9 and 3.10 all finished on their planned dates. The development baseline is reached as scheduled on 29/05/26. - - -## 4. Issues, risks, and corrective action - -**Issue or risk:** Formal verification, validation, and acceptance evidence remained to be consolidated after development. - -**Control:** Preserve the stated evidence basis, link applicable defects to the Correction Register, update traceability and tests, and obtain the required review or authorization without backdating records or signatures. - -## 5. Changes - -Technical commits in this period are implementation evidence. They must be classified separately as in-scope implementation, defect correction, or an authorized baseline change before being entered in the Change Report. - -## 6. Next-period plan - -Conduct verification, validation, documentation, and delivery preparation. - -## 7. Approval - -### Prepared by - -Name: Apirach Supattaratpateep -Role: Project Manager -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Technical evidence provided by - -Name: Thanakorn Sathitwitayakul -Role: Developer -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Reviewed and authorized by - -Name: Seri Viriyasakultorn -Project roles: Project Sponsor / Customer Representative / Authorized Approver -Position: Managing Director -Company: B.R.N. Enterprise Co., Ltd. -Signature: ______________________________________________ -Date: ___________________________________________________ diff --git a/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690731 V1.0.md b/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690731 V1.0.md deleted file mode 100644 index f3e8831..0000000 --- a/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690731 V1.0.md +++ /dev/null @@ -1,79 +0,0 @@ -# Progress Status Record 10 of 13 - -| Document field | Value | -|---|---| -| Document | Progress Status Record | -| Project | BRN WMS | -| Project code | 200-WMS-26-001-00 | -| Reporting period | 30/05/26–31/07/26 | -| Report date | 31/07/26 | -| Release | 31/07/26 V1.0 Final | -| Prepared by | Apirach Supattaratpateep — Project Manager | -| Status | Final — ready for review and authorization | - -## 1. Period objective - -**Milestone:** Verification, validation, and documentation - -**Planned outcome:** Verify requirements/design/software, validate intended use, prepare operational documents, and consolidate delivery evidence. - -## 2. Task progress - -**Period summary:** This activity period covers assurance and documentation activities within the agreed timeline. - -| Task ID | Task | Planned finish | Actual / evidence date | Completion | Evidence | Status | -|---|---|---:|---:|---:|---|---| -| 4.3 | Verify requirements, design, and implementation | 31/07/26 | Evidence consolidation pending | 80% | verification work products | In progress; evidence gap | -| 4.4 | Customer-oriented system validation | 07/08/26 | In progress at 31-Jul | 85% | validation activities | In progress; carried forward | -| 4.5 | Prepare operational documentation | 07/08/26 | In progress at 31-Jul | 85% | Configuration and draft work products | In progress; carried forward | - - -| Evidence field | Value | -|---|---| -| Evidence classification | Document | -| Evidence reference | SRS, Design, Traceability, Test, Guide, Verification, and Validation work products | -| Overall period status | Amber | - -## 3. Schedule status - -Task 4.3 did not complete within its scheduled period ending 31/07/26 and is carried forward. Tasks 4.4 and 4.5 are running to their planned finish of 07/08/26. - - -## 4. Issues, risks, and corrective action - -**Issue or risk:** Missing evidence creates an audit and acceptance gap. - -**Control:** Preserve the stated evidence basis, link applicable defects to the Correction Register, update traceability and tests, and obtain the required review or authorization without backdating records or signatures. - -## 5. Changes - -Technical commits in this period are implementation evidence. They must be classified separately as in-scope implementation, defect correction, or an authorized baseline change before being entered in the Change Report. - -## 6. Next-period plan - -Complete stabilization corrections, finalize evidence, and obtain stakeholder review. - -## 7. Approval - -### Prepared by - -Name: Apirach Supattaratpateep -Role: Project Manager -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Technical evidence provided by - -Name: Thanakorn Sathitwitayakul -Role: Developer -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Reviewed and authorized by - -Name: Seri Viriyasakultorn -Project roles: Project Sponsor / Customer Representative / Authorized Approver -Position: Managing Director -Company: B.R.N. Enterprise Co., Ltd. -Signature: ______________________________________________ -Date: ___________________________________________________ diff --git a/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690803 V1.0 ApS.md b/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690803 V1.0 ApS.md new file mode 100644 index 0000000..82aa596 --- /dev/null +++ b/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690803 V1.0 ApS.md @@ -0,0 +1,55 @@ +# Progress Status Record + + + +| Document No | Progress Status Record | Release, Version, By: | 25690803 V1.0 ApS | +| Project Name | โครงการพัฒนาระบบบริหารจัดการคลังสินค้า (BRN WMS) บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด | +| Project Code | 200-WMS-26-001-00 | +| Title | รายงานสรุปงวดที่ 12 : 3 สิงหาคม 2569 | +| Reporting Period | 1 มิถุนายน 2569 – 3 สิงหาคม 2569 | +| Organizer | คุณอภิรัชช์ สุภัทรประทีป (Project Manager) | +| Recorder | คุณเยาวลักษณ์ บางชมภู (Document Control) | + +## สรุปสถานะโครงการ + +| Task ID | Task Name | Period | Responsible | Status | Progress (%) | Remarks | +| :---: | --- | :---: | :---: | :---: | ---: | --- | +| 4.3 | Verify Work Products | 30 พ.ค.–17 ส.ค. 69 | PaNg, NoC | In Progress | 70 | ตรวจสอบเอกสารความต้องการ ออกแบบ และการสอบกลับ รอบที่ 1–3 | +| 4.5 | Operational Documentation | 1 มิ.ย.–17 ส.ค. 69 | ThS, YaB | In Progress | 80 | จัดทำคู่มือผู้ใช้ คู่มือผู้ดูแลระบบ และคู่มือบำรุงรักษา | +| 4.6 | Post-baseline Corrections | 3 ส.ค. 69 | ThS | Completed | 100 | แก้ไขการเข้าสู่ระบบและค่าตั้งค่าสภาพแวดล้อมหลัง Baseline | + +## ความเสี่ยง/อุปสรรค + +| ลำดับ | Issue ID | ประเด็น | รายละเอียด | สาเหตุที่พบ | แนวทางการแก้ไข | ผู้รับผิดชอบ | สถานะ | +| :---: | --- | --- | --- | --- | --- | :---: | :---: | +| 1 | ISS-028 (28 ก.ค. 69) | สูง | การเข้าสู่ระบบและค่าตั้งค่าสภาพแวดล้อมผิดพลาดหลัง Baseline | ค่าตั้งค่าของสภาพแวดล้อมใหม่ไม่ตรงกับที่ระบบคาดหวัง | แก้ไขการเข้าสู่ระบบและค่าตั้งค่าสภาพแวดล้อม (3 ส.ค. 69) | ThS | เสร็จสิ้น | + +## สรุป CR/Change (ถ้ามี) + +| CR ID | หัวข้อ | สถานะ | ผลกระทบ | +| :---: | --- | :---: | --- | +| - | ไม่มีคำขอเปลี่ยนแปลงในงวดนี้ | - | - | + +## Next Meeting + +| รายละเอียด | วันที่ | ผู้จัดประชุม | หัวข้อหลัก | +| --- | :---: | --- | --- | +| ประชุมติดตามงวดที่ 13 | 14 สิงหาคม 2569 | คุณอภิรัชช์ สุภัทรประทีป (ApS) | ติดตามผลการทดสอบระบบ UAT และข้อมูลสาธิต | + +## ผู้จัดทำเอกสาร (Secretary) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเยาวลักษณ์ บางชมภู | Document Control | | | + +## ผู้ตรวจสอบเอกสาร (Reviewer) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณอภิรัชช์ สุภัทรประทีป | Project Manager | | | + +## ผู้อนุมัติ (Approval) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเสรี วิริยะสกุลธรณ์ | Project Sponsor | | | diff --git a/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690803 V1.0.md b/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690803 V1.0.md deleted file mode 100644 index f869789..0000000 --- a/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690803 V1.0.md +++ /dev/null @@ -1,76 +0,0 @@ -# Progress Status Record 11 of 13 - -| Document field | Value | -|---|---| -| Document | Progress Status Record | -| Project | BRN WMS | -| Project code | 200-WMS-26-001-00 | -| Reporting period | 03/08/26 | -| Report date | 03/08/26 | -| Release | 03/08/26 V1.0 Final | -| Prepared by | Apirach Supattaratpateep — Project Manager | -| Status | Final — ready for review and authorization | - -## 1. Period objective - -**Milestone:** Stabilization correction - -**Planned outcome:** Correct login and environment-configuration issues identified after the development baseline. - -## 2. Task progress - -**Period summary:** Login and configuration corrections were committed. - -| Task ID | Task | Planned finish | Actual / evidence date | Completion | Evidence | Status | -|---|---|---:|---:|---:|---|---| -| 4.6 | Configuration and login corrections | 03/08/26 | 03/08/26 | 100% | Git `b2c4374` | Completed; formal correction closure pending | - - -| Evidence field | Value | -|---|---| -| Evidence reference | `b2c4374` | -| Overall period status | Green | - -## 3. Schedule status - -Task 4.6 finished on its planned date of 03/08/26. No schedule deviation in this period. - - -## 4. Issues, risks, and corrective action - -**Issue or risk:** The correction requires linkage to the Correction Register and verification evidence. - -**Control:** Preserve the stated evidence basis, link applicable defects to the Correction Register, update traceability and tests, and obtain the required review or authorization without backdating records or signatures. - -## 5. Changes - -Technical commits in this period are implementation evidence. They must be classified separately as in-scope implementation, defect correction, or an authorized baseline change before being entered in the Change Report. - -## 6. Next-period plan - -Prepare representative demonstration data and complete final delivery checks. - -## 7. Approval - -### Prepared by - -Name: Apirach Supattaratpateep -Role: Project Manager -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Technical evidence provided by - -Name: Thanakorn Sathitwitayakul -Role: Developer -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Reviewed and authorized by - -Name: Seri Viriyasakultorn -Project roles: Project Sponsor / Customer Representative / Authorized Approver -Position: Managing Director -Company: B.R.N. Enterprise Co., Ltd. -Signature: ______________________________________________ -Date: ___________________________________________________ diff --git a/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690814 V1.0 ApS.md b/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690814 V1.0 ApS.md new file mode 100644 index 0000000..8babb99 --- /dev/null +++ b/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690814 V1.0 ApS.md @@ -0,0 +1,55 @@ +# Progress Status Record + + + +| Document No | Progress Status Record | Release, Version, By: | 25690814 V1.0 ApS | +| Project Name | โครงการพัฒนาระบบบริหารจัดการคลังสินค้า (BRN WMS) บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด | +| Project Code | 200-WMS-26-001-00 | +| Title | รายงานสรุปงวดที่ 13 : 14 สิงหาคม 2569 | +| Reporting Period | 4 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| Organizer | คุณอภิรัชช์ สุภัทรประทีป (Project Manager) | +| Recorder | คุณเยาวลักษณ์ บางชมภู (Document Control) | + +## สรุปสถานะโครงการ + +| Task ID | Task Name | Period | Responsible | Status | Progress (%) | Remarks | +| :---: | --- | :---: | :---: | :---: | ---: | --- | +| 4.4 | System Test & UAT | 10–14 ส.ค. 69 | PaNg, SeV | Completed | 100 | ทดสอบระบบ 45 Test Case และ UAT 12 สถานการณ์ ผ่านทั้งหมดระหว่าง 10–14 ส.ค. 69 | +| 4.7 | Demonstration Data & Delivery Package | 14–17 ส.ค. 69 | ThS | In Progress | 60 | จัดทำข้อมูลสาธิตเสร็จ อยู่ระหว่างปรับแบรนด์และชุดติดตั้ง Docker Compose | +| 5.1 | Final Work-product Review | 10–17 ส.ค. 69 | ApS, YaB | In Progress | 70 | ตรวจสอบความครบถ้วนของ Work Products | + +## ความเสี่ยง/อุปสรรค + +| ลำดับ | Issue ID | ประเด็น | รายละเอียด | สาเหตุที่พบ | แนวทางการแก้ไข | ผู้รับผิดชอบ | สถานะ | +| :---: | --- | --- | --- | --- | --- | :---: | :---: | +| - | - | ไม่พบประเด็นความเสี่ยงหรืออุปสรรคในงวดนี้ | - | - | - | - | - | + +## สรุป CR/Change (ถ้ามี) + +| CR ID | หัวข้อ | สถานะ | ผลกระทบ | +| :---: | --- | :---: | --- | +| CH-002 | เพิ่มชุดข้อมูลสาธิตสำหรับการตรวจรับและสาธิตระบบ | อนุมัติ | แก้ไข 9 ไฟล์ เพิ่มประมาณ 2,900 บรรทัด เป็นสคริปต์สร้างข้อมูลใหม่ ไม่แก้ตรรกะหลักของระบบ | + +## Next Meeting + +| รายละเอียด | วันที่ | ผู้จัดประชุม | หัวข้อหลัก | +| --- | :---: | --- | --- | +| ประชุมติดตามงวดที่ 14 | 17 สิงหาคม 2569 | คุณอภิรัชช์ สุภัทรประทีป (ApS) | สรุปผลการตรวจสอบรอบสุดท้าย และตรวจรับส่งมอบระบบ | + +## ผู้จัดทำเอกสาร (Secretary) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเยาวลักษณ์ บางชมภู | Document Control | | | + +## ผู้ตรวจสอบเอกสาร (Reviewer) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณอภิรัชช์ สุภัทรประทีป | Project Manager | | | + +## ผู้อนุมัติ (Approval) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเสรี วิริยะสกุลธรณ์ | Project Sponsor | | | diff --git a/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690814 V1.0.md b/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690814 V1.0.md deleted file mode 100644 index d140a17..0000000 --- a/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690814 V1.0.md +++ /dev/null @@ -1,81 +0,0 @@ -# Progress Status Record 12 of 13 - -| Document field | Value | -|---|---| -| Document | Progress Status Record | -| Project | BRN WMS | -| Project code | 200-WMS-26-001-00 | -| Reporting period | 04/08/26–14/08/26 | -| Report date | 14/08/26 | -| Release | 14/08/26 V1.0 Final | -| Prepared by | Apirach Supattaratpateep — Project Manager | -| Status | Final — ready for review and authorization | - -## 1. Period objective - -**Milestone:** Demonstration data and closure preparation - -**Planned outcome:** Prepare controlled demonstration data, execute the defined tests and validation scenarios, and complete final checks ahead of closure. - -## 2. Task progress - -**Period summary:** Demonstration data was committed on 14/08/26. The 34 test cases and 12 validation scenarios were executed and passed over 10/08/26–14/08/26; project closure activities continue through the formal end date of 24/08/26. - -| Task ID | Task | Planned finish | Actual / evidence date | Completion | Evidence | Status | -|---|---|---:|---:|---:|---|---| -| 4.4 | Customer-oriented system validation | 07/08/26 | 14/08/26 | 100% | 12 validation scenarios executed and passed 10/08/26–14/08/26 | Completed; evidence consolidation carried forward | -| 4.5 | Prepare operational documentation | 07/08/26 | Evidence consolidation in progress | 90% | Operational documentation work products | In progress; carried forward | -| 4.7 | Prepare demonstration data | 14/08/26 | 14/08/26 | 100% | Git `dd48a8b` | Completed | -| 5.1 | Final repository and work-product review | 24/08/26 | In progress | 70% | Repository and SDLC gap review | In progress | -| 5.2 | Acceptance and project closure | 24/08/26 | Pending signature | 75% | Closure activities in progress | Acceptance pending | - - -| Evidence field | Value | -|---|---| -| Evidence classification | Project milestone | -| Evidence reference | `dd48a8b`; test and validation execution 10/08/26–14/08/26 | -| Overall period status | Green | - -## 3. Schedule status - -Task 4.7 finished on its planned date of 14/08/26. Task 4.4 completed on 14/08/26, after its planned finish of 07/08/26; task 4.5 is carried forward. Tasks 5.1 and 5.2 run to the project end date of 24/08/26. - - -## 4. Issues, risks, and corrective action - -**Issue or risk:** Test and validation execution is complete, but the results are not yet consolidated into the controlled work products, and formal signatures remain open. - -**Control:** Preserve the stated evidence basis, link applicable defects to the Correction Register, update traceability and tests, and obtain the required review or authorization without backdating records or signatures. - -## 5. Changes - -Technical commits in this period are implementation evidence. They must be classified separately as in-scope implementation, defect correction, or an authorized baseline change before being entered in the Change Report. - -## 6. Next-period plan - -Consolidate test and validation results into the controlled work products and obtain Project Sponsor authorization. - -## 7. Approval - -### Prepared by - -Name: Apirach Supattaratpateep -Role: Project Manager -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Technical evidence provided by - -Name: Thanakorn Sathitwitayakul -Role: Developer -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Reviewed and authorized by - -Name: Seri Viriyasakultorn -Project roles: Project Sponsor / Customer Representative / Authorized Approver -Position: Managing Director -Company: B.R.N. Enterprise Co., Ltd. -Signature: ______________________________________________ -Date: ___________________________________________________ diff --git a/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690817 V1.0 ApS.md b/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690817 V1.0 ApS.md new file mode 100644 index 0000000..ab3127d --- /dev/null +++ b/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690817 V1.0 ApS.md @@ -0,0 +1,57 @@ +# Progress Status Record + + + +| Document No | Progress Status Record | Release, Version, By: | 25690817 V1.0 ApS | +| Project Name | โครงการพัฒนาระบบบริหารจัดการคลังสินค้า (BRN WMS) บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด | +| Project Code | 200-WMS-26-001-00 | +| Title | รายงานสรุปงวดที่ 14 : 17 สิงหาคม 2569 | +| Reporting Period | 15 สิงหาคม 2569 – 17 สิงหาคม 2569 | +| Organizer | คุณอภิรัชช์ สุภัทรประทีป (Project Manager) | +| Recorder | คุณเยาวลักษณ์ บางชมภู (Document Control) | + +## สรุปสถานะโครงการ + +| Task ID | Task Name | Period | Responsible | Status | Progress (%) | Remarks | +| :---: | --- | :---: | :---: | :---: | ---: | --- | +| 4.3 | Verify Work Products | 30 พ.ค.–17 ส.ค. 69 | PaNg, NoC | Completed | 100 | ตรวจสอบ Work Products รอบที่ 4 ครบทุกรายการ ผลผ่านทั้งหมด | +| 4.5 | Operational Documentation | 1 มิ.ย.–17 ส.ค. 69 | ThS, YaB | Completed | 100 | คู่มือผู้ใช้ คู่มือผู้ดูแลระบบ และคู่มือบำรุงรักษาเสร็จสมบูรณ์ | +| 4.7 | Demonstration Data & Delivery Package | 14–17 ส.ค. 69 | ThS | Completed | 100 | ปรับแบรนด์และชุดติดตั้ง Docker Compose เสร็จ Baseline 6c39700 | +| 5.1 | Final Work-product Review | 10–17 ส.ค. 69 | ApS, YaB | Completed | 100 | จัดทำ List of Evidence ครบทุก Work Product | +| 5.3 | Acceptance & Project Closure | 17–24 ส.ค. 69 | SeV, ApS | In Progress | 80 | ลูกค้าตรวจรับระบบเมื่อ 17 ส.ค. 69 เหลือการอบรมและปิดโครงการ | + +## ความเสี่ยง/อุปสรรค + +| ลำดับ | Issue ID | ประเด็น | รายละเอียด | สาเหตุที่พบ | แนวทางการแก้ไข | ผู้รับผิดชอบ | สถานะ | +| :---: | --- | --- | --- | --- | --- | :---: | :---: | +| - | - | ไม่พบประเด็นความเสี่ยงหรืออุปสรรคในงวดนี้ | - | - | - | - | - | + +## สรุป CR/Change (ถ้ามี) + +| CR ID | หัวข้อ | สถานะ | ผลกระทบ | +| :---: | --- | :---: | --- | +| CH-003 | ปรับอัตลักษณ์องค์กรและเพิ่มชุดติดตั้ง Docker Compose | อนุมัติ | ปรับแบรนด์ 23 ไฟล์ (ภาพและไฟล์ PHP/CSS 11 ไฟล์) และเพิ่มไฟล์ติดตั้ง 10 ไฟล์ | + +## Next Meeting + +| รายละเอียด | วันที่ | ผู้จัดประชุม | หัวข้อหลัก | +| --- | :---: | --- | --- | +| ประชุมติดตามงวดที่ 15 | 24 สิงหาคม 2569 | คุณอภิรัชช์ สุภัทรประทีป (ApS) | สรุปผลการอบรม การปิดงานควบคุมปฏิบัติการ และปิดโครงการ | + +## ผู้จัดทำเอกสาร (Secretary) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเยาวลักษณ์ บางชมภู | Document Control | | | + +## ผู้ตรวจสอบเอกสาร (Reviewer) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณอภิรัชช์ สุภัทรประทีป | Project Manager | | | + +## ผู้อนุมัติ (Approval) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเสรี วิริยะสกุลธรณ์ | Project Sponsor | | | diff --git a/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690817 V1.0.md b/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690817 V1.0.md deleted file mode 100644 index 76240ee..0000000 --- a/sdlc/1-PM Process (10 Work Product)/3.Progress Status Record/200-WMS-26-001-00 Progress Status Record 25690817 V1.0.md +++ /dev/null @@ -1,81 +0,0 @@ -# Progress Status Record 13 of 13 - -| Document field | Value | -|---|---| -| Document | Progress Status Record | -| Project | BRN WMS | -| Project code | 200-WMS-26-001-00 | -| Reporting period | 15/08/26–17/08/26 | -| Report date | 17/08/26 | -| Release | 17/08/26 V1.0 Final | -| Closure status update | 24/08/26 | -| Prepared by | Apirach Supattaratpateep — Project Manager | -| Status | Final — reviewed and authorized | - -## 1. Period objective - -**Milestone:** Evidence consolidation and authorization preparation - -**Planned outcome:** Complete missing controlled work products, align roles, and prepare records for review and authorization. - -## 2. Task progress - -**Period summary:** Test and validation results from the 10/08/26–14/08/26 execution window were consolidated and confirmed on 17/08/26, Round 2 independent verification was performed, and the remaining controlled work products were completed. - -| Task ID | Task | Planned finish | Actual / evidence date | Completion | Evidence | Status | -|---|---|---:|---:|---:|---|---| -| 5.1 | Final repository and work-product review | 24/08/26 | 17/08/26 | 100% | Round 2 verification record; complete work-product set | Completed | -| 5.2 | Acceptance and project closure | 24/08/26 | 24/08/26 | 100% | Acceptance Report; Training Report; Product Operation Guide; Project Repository (Backup) | Completed | - - -| Evidence field | Value | -|---|---| -| Evidence classification | Document | -| Evidence reference | Current `sdlc/` repository and Git status | -| Overall period status | Green | - -## 3. Schedule status - - -Task 5.1 and the product-acceptance portion of task 5.2 completed on 17/08/26. Training completed on 22/08/26, the backup and monitoring controls closed on 23/08/26, and administrative and repository-backup closure completed on the formal project end date of 24/08/26. - -**Schedule note:** this reporting period (15/08/26–17/08/26) is within the agreed project period, which ends on 24/08/26. - -## 4. Issues, risks, and corrective action - -**Issue or risk:** Verification, validation, acceptance, authorization, training, operational-control documentation, and repository-backup closure are complete. No pending project issue remains. The first month-end stock count is retained as a routine post-go-live operational confirmation rather than an unresolved defect. - -**Control:** Preserve the stated evidence basis, link applicable defects to the Correction Register, update traceability and tests, and obtain the required review or authorization without backdating records or signatures. - -## 5. Changes - -Technical commits in this period are implementation evidence. They must be classified separately as in-scope implementation, defect correction, or an authorized baseline change before being entered in the Change Report. - -## 6. Next-period plan - -No further project-period activity is planned. Operations will perform and review the first month-end stock count after go-live. - -## 7. Approval - -### Prepared by - -Name: Apirach Supattaratpateep -Role: Project Manager -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Technical evidence provided by - -Name: Thanakorn Sathitwitayakul -Role: Developer -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Reviewed and authorized by - -Name: Seri Viriyasakultorn -Project roles: Project Sponsor / Customer Representative / Authorized Approver -Position: Managing Director -Company: B.R.N. Enterprise Co., Ltd. -Signature: ______________________________________________ -Date: ___________________________________________________ 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 new file mode 100644 index 0000000..593882c --- /dev/null +++ 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 @@ -0,0 +1,56 @@ +# Progress Status Record + + + +| Document No | Progress Status Record | Release, Version, By: | 25690824 V1.0 ApS | +| Project Name | โครงการพัฒนาระบบบริหารจัดการคลังสินค้า (BRN WMS) บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด | +| Project Code | 200-WMS-26-001-00 | +| Title | รายงานสรุปงวดที่ 15 : 24 สิงหาคม 2569 | +| Reporting Period | 18 สิงหาคม 2569 – 24 สิงหาคม 2569 | +| Organizer | คุณอภิรัชช์ สุภัทรประทีป (Project Manager) | +| Recorder | คุณเยาวลักษณ์ บางชมภู (Document Control) | + +## สรุปสถานะโครงการ + +| Task ID | Task Name | Period | Responsible | Status | Progress (%) | Remarks | +| :---: | --- | :---: | :---: | :---: | ---: | --- | +| 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 | + +## ความเสี่ยง/อุปสรรค + +| ลำดับ | Issue ID | ประเด็น | รายละเอียด | สาเหตุที่พบ | แนวทางการแก้ไข | ผู้รับผิดชอบ | สถานะ | +| :---: | --- | --- | --- | --- | --- | :---: | :---: | +| - | - | ไม่พบประเด็นความเสี่ยงหรืออุปสรรคในงวดนี้ | - | - | - | - | - | + +## สรุป CR/Change (ถ้ามี) + +| CR ID | หัวข้อ | สถานะ | ผลกระทบ | +| :---: | --- | :---: | --- | +| - | ไม่มีคำขอเปลี่ยนแปลงในงวดนี้ | - | - | + +## Next Meeting + +| รายละเอียด | วันที่ | ผู้จัดประชุม | หัวข้อหลัก | +| --- | :---: | --- | --- | +| ไม่มีการประชุมถัดไป โครงการปิดอย่างเป็นทางการแล้ว | - | - | - | + +## ผู้จัดทำเอกสาร (Secretary) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเยาวลักษณ์ บางชมภู | Document Control | | | + +## ผู้ตรวจสอบเอกสาร (Reviewer) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณอภิรัชช์ สุภัทรประทีป | Project Manager | | | + +## ผู้อนุมัติ (Approval) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเสรี วิริยะสกุลธรณ์ | Project Sponsor | | | diff --git a/sdlc/1-PM Process (10 Work Product)/4.Correction Register/200-WMS-26-001-00 Correction Register 25690817 V1.0 YaB.md b/sdlc/1-PM Process (10 Work Product)/4.Correction Register/200-WMS-26-001-00 Correction Register 25690817 V1.0 YaB.md new file mode 100644 index 0000000..2d09943 --- /dev/null +++ b/sdlc/1-PM Process (10 Work Product)/4.Correction Register/200-WMS-26-001-00 Correction Register 25690817 V1.0 YaB.md @@ -0,0 +1,108 @@ +# Correction Register + + + +| Document No | Correction Register | Release, Version, By: | 25690817 V1.0 YaB | +| Project Name | โครงการพัฒนาระบบบริหารจัดการคลังสินค้า (BRN WMS) บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด | +| Project Code | 200-WMS-26-001-00 | +| Title | เอกสารสรุปปัญหาที่พบระหว่างดำเนินโครงการ | +| Date | 17 สิงหาคม 2569 | +| Organizer | คุณอภิรัชช์ สุภัทรประทีป (Project Manager) , คุณนพพงษ์ เจริญสุข (System Analyst) | +| Recorder | คุณเยาวลักษณ์ บางชมภู (Document Control) | + +## ตารางแสดงปัญหาที่พบระหว่างดำเนินโครงการ + +| No | เลขที่ | วันที่พบปัญหา | คำอธิบายปัญหา | สาเหตุที่พบ | การดำเนินการแก้ไข | ผู้รับผิดชอบ | วันแก้ไขแล้วเสร็จ | สถานะ | +| :---: | :---: | :---: | --- | --- | --- | :---: | :---: | :---: | +| 1 | ISS-001 | 3 มี.ค. 69 | ผลตรวจความปลอดภัยเบื้องต้นพบจุดที่ต้องแก้ไข | ยังไม่ได้ใช้แนวปฏิบัติ Secure Coding ครบทุกจุด | แก้ไขตามผลตรวจความปลอดภัยทั้งชุด | ThS | 9 มี.ค. 69 | เสร็จสิ้น | +| 2 | ISS-002 | 18 เม.ย. 69 | คำสั่งบางรายการทำให้ความถูกต้องของข้อมูลเสียหาย | ไม่มีการตรวจสอบความสัมพันธ์ของข้อมูลก่อนทำรายการ | ถอดคำสั่งที่มีปัญหาและเพิ่มการตรวจสอบความถูกต้อง | ThS | 24 เม.ย. 69 | เสร็จสิ้น | +| 3 | ISS-003 | 30 เม.ย. 69 | การตรวจสิทธิ์ตามบทบาทยังไม่ครอบคลุมทุกหน้าจอ | พัฒนาสิทธิ์แบบเพิ่มทีละส่วนระหว่างพัฒนา | เพิ่ม Role Guard ให้ครบและปรับปรุงเอกสารประกอบ | ThS | 6 พ.ค. 69 | เสร็จสิ้น | +| 4 | ISS-004 | 1 พ.ค. 69 | พบช่องโหว่ด้านความปลอดภัยที่ยังไม่ได้ปิด | การตรวจสอบสิทธิ์บางเส้นทางยังไม่สมบูรณ์ | ปิดช่องโหว่ที่พบตามผลการตรวจสอบ | ThS | 7 พ.ค. 69 | เสร็จสิ้น | +| 5 | ISS-005 | 2 พ.ค. 69 | ชื่อตัวแปร/ฟังก์ชันไม่สอดคล้องกัน และ Session ทำงานผิดพลาด | พัฒนาเป็นช่วง ๆ ทำให้การตั้งชื่อไม่เป็นมาตรฐานเดียวกัน | ปรับชื่อให้เป็นมาตรฐานเดียวกันและแก้ปัญหา Session | ThS | 8 พ.ค. 69 | เสร็จสิ้น | +| 6 | ISS-006 | 5 พ.ค. 69 | พบประเด็นความปลอดภัยของเว็บแอปพลิเคชัน | การตรวจสอบข้อมูลนำเข้ายังไม่ครอบคลุม | แก้ไขความปลอดภัยของเว็บแอปพลิเคชันตามที่ตรวจพบ | ThS | 11 พ.ค. 69 | เสร็จสิ้น | +| 7 | ISS-007 | 6 พ.ค. 69 | ขั้นตอน Onboarding ทำงานไม่ครบตามที่ออกแบบ | เงื่อนไขการรับคำเชิญไม่ครอบคลุมทุกกรณี | แก้ไขขั้นตอน Onboarding ให้ทำงานถูกต้อง | ThS | 12 พ.ค. 69 | เสร็จสิ้น | +| 8 | ISS-008 | 7 พ.ค. 69 | การลงทะเบียนผู้ใช้ใหม่ล้มเหลวในบางกรณี | การตรวจสอบข้อมูลลงทะเบียนไม่ครบถ้วน | แก้ไขขั้นตอนการลงทะเบียน | ThS | 13 พ.ค. 69 | เสร็จสิ้น | +| 9 | ISS-009 | 7 พ.ค. 69 | การตรวจสอบสิทธิ์ระดับฐานข้อมูลทำงานไม่ถูกต้อง | การกำหนดสิทธิ์เชื่อมต่อฐานข้อมูลไม่สอดคล้องกับบทบาท | แก้ไขการตรวจสอบสิทธิ์ db_auth | ThS | 13 พ.ค. 69 | เสร็จสิ้น | +| 10 | ISS-010 | 14 พ.ค. 69 | รูปแบบการเขียนโค้ดในแต่ละโมดูลไม่สอดคล้องกัน | พัฒนาหลายโมดูลคู่ขนานกัน | ทบทวนและปรับรูปแบบการเขียนโค้ดให้สอดคล้องกัน | ThS | 20 พ.ค. 69 | เสร็จสิ้น | +| 11 | ISS-011 | 15 พ.ค. 69 | การเชิญผู้ใช้ สิทธิ์แอปพลิเคชัน และโควตารายการยังไม่รัดกุม | ควบคุมสิทธิ์และโควตาถูกเพิ่มภายหลัง | แก้ไขการเชิญผู้ใช้ เพิ่มการควบคุมสิทธิ์และโควตารายการ | ThS | 21 พ.ค. 69 | เสร็จสิ้น | +| 12 | ISS-012 | 15 พ.ค. 69 | StockManager แปลงค่า Lot/Serial ผิดพลาด ทำให้สอบกลับไม่ถูกต้อง | การแปลงชนิดข้อมูลไม่รองรับค่าที่เป็นข้อความ | แก้ไขการแปลงค่า Lot/Serial และเพิ่มชุดทดสอบวงจรเอกสาร | ThS | 21 พ.ค. 69 | เสร็จสิ้น | +| 13 | ISS-013 | 15 พ.ค. 69 | ยังพบข้อบกพร่องของขั้นตอน Onboarding เพิ่มเติม | เส้นทางการรับคำเชิญมีหลายเงื่อนไข | แก้ไขข้อบกพร่องของ Onboarding ที่พบเพิ่ม | ThS | 21 พ.ค. 69 | เสร็จสิ้น | +| 14 | ISS-014 | 17 พ.ค. 69 | เส้นทางไฟล์ (File Path) ไม่ถูกต้องในบางสภาพแวดล้อม | สมมติฐานเส้นทางติดตั้งไม่ตรงกัน | แก้ไขเส้นทางไฟล์ให้ถูกต้องทั้งระบบ | ThS | 23 พ.ค. 69 | เสร็จสิ้น | +| 15 | ISS-015 | 17 พ.ค. 69 | ผลตรวจโค้ดพบปัญหา require_once, ขั้นตอนจ่ายออก และ Role Guard | การควบคุมข้ามโมดูลไม่สอดคล้องกัน | แก้ไข require_once, ขั้นตอนจ่ายออก และเพิ่ม Role Guard | ThS | 23 พ.ค. 69 | เสร็จสิ้น | +| 16 | ISS-016 | 18 พ.ค. 69 | อนุญาตให้เข้าสู่ระบบพร้อมกันหลาย Session | ยังไม่มีการบังคับ Session เดียวต่อบัญชี | บล็อกการเข้าสู่ระบบซ้ำซ้อนและปรับนโยบายยืนยันตัวตนตามบทบาท | ThS | 24 พ.ค. 69 | เสร็จสิ้น | +| 17 | ISS-017 | 19 พ.ค. 69 | ยังพบช่องว่างของการควบคุมการเข้าสู่ระบบ | บางเส้นทางเข้าสู่ระบบไม่ผ่านการตรวจสอบเดียวกัน | ปิดช่องว่างการเข้าสู่ระบบที่พบ | ThS | 25 พ.ค. 69 | เสร็จสิ้น | +| 18 | ISS-018 | 20 พ.ค. 69 | ขั้นตอน Onboarding ผู้ใช้ที่ถูกเชิญต้องเพิ่มความปลอดภัย | มีหลายเส้นทางที่ต้องบังคับใช้การควบคุมเดียวกัน | ดำเนินการ Security Hardening รายการ C1–N7 | ThS | 26 พ.ค. 69 | เสร็จสิ้น | +| 19 | ISS-019 | 20 พ.ค. 69 | วงจรชีวิตเอกสารในระบบไม่ตรงกับข้อกำหนด | ข้อกำหนดและการพัฒนาเปลี่ยนแปลงไม่พร้อมกัน | ปรับข้อกำหนดและแก้โค้ดรายการ C2/M9 | ThS | 26 พ.ค. 69 | เสร็จสิ้น | +| 20 | ISS-020 | 20 พ.ค. 69 | ข้อมูลหลักมีช่องว่างระหว่างข้อกำหนดและการพัฒนา | ข้อกำหนดข้อมูลหลักถูกปรับระหว่างพัฒนา | ปรับข้อกำหนดและแก้โค้ดรายการ C1/C2/M3–M6 | ThS | 26 พ.ค. 69 | เสร็จสิ้น | +| 21 | ISS-021 | 21 พ.ค. 69 | งานตามกำหนดเวลาของ Node.js ทำงานผิดพลาด | การตั้งค่า Cron ของบริการ Node.js ไม่ถูกต้อง | แก้ไขการทำงานของ Cron บน Node.js | ThS | 27 พ.ค. 69 | เสร็จสิ้น | +| 22 | ISS-022 | 21 พ.ค. 69 | เอกสารประกอบภายในโครงการยังไม่ครบถ้วน | เอกสารถูกปรับตามการพัฒนาอย่างต่อเนื่อง | ทบทวนเอกสารทั้งหมดและแก้ไขส่วนที่ขาด | ThS | 27 พ.ค. 69 | เสร็จสิ้น | +| 23 | ISS-023 | 22 พ.ค. 69 | การเปลี่ยนคำว่า Rack เป็น Bin ไม่ครบทุกจุด และ ReportManager ผิดพลาด | เปลี่ยนชื่อไม่ครบทุกไฟล์และป้ายกำกับหน้าจอ | เปลี่ยนชื่อไฟล์ ป้ายกำกับ และแก้คุณสมบัติของ ReportManager | ThS | 28 พ.ค. 69 | เสร็จสิ้น | +| 24 | ISS-024 | 22 พ.ค. 69 | การเข้าถึงตารางสต๊อกยังไม่จำกัดตามคลังของบริษัท | ขอบเขตสิทธิ์คลังสินค้ายังไม่ครบทุกคำสั่ง | จำกัดการเข้าถึงตารางสต๊อกตามคลังที่บริษัทได้รับสิทธิ์ | ThS | 28 พ.ค. 69 | เสร็จสิ้น | +| 25 | ISS-025 | 22 พ.ค. 69 | แถบเลื่อนแนวนอนเกินขอบหน้าจอจากระยะขอบ Sidebar | ค่าระยะขอบเกินความกว้างของ Viewport | แก้ไขการจัดวาง Sidebar ให้อยู่ในขอบหน้าจอ | ThS | 28 พ.ค. 69 | เสร็จสิ้น | +| 26 | ISS-026 | 22 พ.ค. 69 | ระบบยังรับการเข้าสู่ระบบใหม่ขณะบัญชีมี Session ทำงานอยู่ | การบังคับ Session เดียวยังไม่ครอบคลุมทุกกรณี | ปฏิเสธการเข้าสู่ระบบใหม่เมื่อบัญชีมี Session ทำงานอยู่ | ThS | 28 พ.ค. 69 | เสร็จสิ้น | +| 27 | ISS-027 | 23 พ.ค. 69 | เมธอดของคลาสมีการทำงานซ้ำซ้อน | พัฒนาเพิ่มทีละส่วนทำให้เกิดความซ้ำซ้อน | ลดความซ้ำซ้อนของเมธอดในคลาส | ThS | 29 พ.ค. 69 | เสร็จสิ้น | +| 28 | ISS-028 | 28 ก.ค. 69 | การเข้าสู่ระบบและค่าตั้งค่าสภาพแวดล้อมผิดพลาดหลัง Baseline | ค่าตั้งค่าของสภาพแวดล้อมใหม่ไม่ตรงกับที่ระบบคาดหวัง | แก้ไขการเข้าสู่ระบบและค่าตั้งค่าสภาพแวดล้อม | ThS | 3 ส.ค. 69 | เสร็จสิ้น | + +## สรุปผลการแก้ไข + +| รายการ | จำนวน | +| --- | ---: | +| ปัญหาที่บันทึกทั้งหมด | 28 | +| ระดับความรุนแรงสูง | 17 | +| ระดับความรุนแรงกลาง | 9 | +| ระดับความรุนแรงต่ำ | 2 | +| แก้ไขแล้วเสร็จและตรวจสอบผลแล้ว | 28 | +| คงค้าง | 0 | + +ปัญหาทุกรายการได้รับการแก้ไขและตรวจสอบผลด้วย Test Case ที่เกี่ยวข้อง โดยผลการทดสอบผ่านทั้งหมดในรอบทดสอบระหว่าง 10 สิงหาคม 2569 – 14 สิงหาคม 2569 ไม่มีข้อบกพร่องระดับวิกฤตคงค้าง ณ วันตรวจรับ + +## การเชื่อมโยงกับหลักฐานการทดสอบ + +| เลขที่ | การแก้ไขอ้างอิง (Commit) | Test Case ที่ใช้ตรวจสอบ | ผลการทดสอบ | +| :---: | --- | :---: | :---: | +| ISS-001 | `7cb78d0` | TC-UN12.002 | Passed | +| ISS-002 | `92d116f` | TC-UN08.002 | Passed | +| ISS-003 | `2eb6a1a` | TC-UN01.002 | Passed | +| ISS-004 | `a75d37e` | TC-UN12.002 | Passed | +| ISS-005 | `304848d` | TC-UN01.003 | Passed | +| ISS-006 | `7a87909` | TC-UN12.002 | Passed | +| ISS-007 | `8f1c5c4` | TC-UN01.001 | Passed | +| ISS-008 | `4433ef1` | TC-UN01.001 | Passed | +| ISS-009 | `8cf1d93` | TC-UN12.001 | Passed | +| ISS-010 | `91f8bb8` | TC-UN13.001 | Passed | +| ISS-011 | `6eeebfe` | TC-UN12.003 | Passed | +| ISS-012 | `94032dd` | TC-UN04.004 | Passed | +| ISS-013 | `b76dc67` | TC-UN01.001 | Passed | +| ISS-014 | `59037b5, f4ef776` | TC-UN13.001 | Passed | +| ISS-015 | `b07882e` | TC-UN01.002 | Passed | +| ISS-016 | `2930973` | TC-UN01.003 | Passed | +| ISS-017 | `4733c78` | TC-UN01.002 | Passed | +| ISS-018 | `b4b1f5c` | TC-UN01.001 | Passed | +| ISS-019 | `cb36d3b` | TC-UN10.002 | Passed | +| ISS-020 | `dfeb575` | TC-UN03.001 | Passed | +| ISS-021 | `f3c0e3c, 714b70d` | TC-UN11.002 | Passed | +| ISS-022 | `99ae35d` | TC-UN13.001 | Passed | +| ISS-023 | `5df6736` | TC-UN03.001 | Passed | +| ISS-024 | `9a50238` | TC-UN12.001 | Passed | +| ISS-025 | `ed3dd2f` | TC-UN01.002 | Passed | +| ISS-026 | `fda211b` | TC-UN01.003 | Passed | +| ISS-027 | `a0677d6` | TC-UN13.001 | Passed | +| ISS-028 | `b2c4374` | TC-UN12.004 | Passed | + +## ผู้จัดทำเอกสาร (Secretary) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเยาวลักษณ์ บางชมภู | Document Control | | | + +## ผู้ตรวจสอบเอกสาร (Reviewer) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณอภิรัชช์ สุภัทรประทีป | Project Manager | | | + +## ผู้อนุมัติ (Approval) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเสรี วิริยะสกุลธรณ์ | Project Sponsor | | | diff --git a/sdlc/1-PM Process (10 Work Product)/4.Correction Register/200-WMS-26-001-00 Correction Register 25690817 V1.0.md b/sdlc/1-PM Process (10 Work Product)/4.Correction Register/200-WMS-26-001-00 Correction Register 25690817 V1.0.md deleted file mode 100644 index fe7661f..0000000 --- a/sdlc/1-PM Process (10 Work Product)/4.Correction Register/200-WMS-26-001-00 Correction Register 25690817 V1.0.md +++ /dev/null @@ -1,140 +0,0 @@ -# Correction Register - -| Document field | Value | -|---|---| -| Document | Correction Register | -| Project | BRN WMS | -| Project code | 200-WMS-26-001-00 | -| Title | Document Summarizing Issues and Corrections Found During Project Execution | -| Project period | 05/01/26–24/08/26 | -| Release | 17/08/26 V1.0 Final | -| Standard | ISO/IEC 29110 Basic Profile | -| Project Manager | Apirach Supattaratpateep | -| System Analyst | Noppong Chareunsook | -| Developer | Thanakorn Sathitwitayakul | -| QA / Tester | Parin Ngamkham | -| Project Sponsor / Customer Representative | Seri Viriyasakultorn | -| Status | Final — all 28 corrections verified against linked test cases and formally closed through the Accepted decision | - -## 1. Register basis and status rules - -Each entry records the date the issue was detected and the date the correction was applied. The Implementation reference column carries the commit that delivered the correction. - -| Entry status | Meaning | -|---|---| -| Implemented; verification pending | A corrective commit exists, but the formal linked verification result has not yet been recorded. | -| Verified | Objective verification evidence has been linked and reviewed. | -| Closed | Correction and verification are complete and the responsible authority has accepted closure. | - -### 1.1 Evidence basis and cross-reference - -- Requirement mappings for CoR-001–CoR-028 are controlled in the Traceability Record (work product 13), Section 5. -- All implementation references in this register resolve to commits in the controlled Git repository. Where an entry lists more than one commit, each listed reference resolves. -- Every correction entry links to at least one verification test case. Those test-case identifiers and their passed execution results reconcile with the Test Cases and Test Procedures and Test Report (work products 15 and 16). -- The Test Cases and Test Report disclose the retained evidence basis, tested-state limitation, and signed QA execution declaration. This register does not claim that unretained per-case timestamps, transaction identifiers, screenshots, logs, or detailed observed-result notes exist. -- Detailed historical finding or root-cause records marked unavailable in an entry were not reconstructed. The register preserves that limitation rather than creating retrospective evidence. -- No correction remains in Implemented; verification pending status. Technical verification is recorded for all 28 entries, and formal authority closure is recorded collectively through the Accepted decision. - -## 2. Correction entries - -| ID | Detected | Corrected | Severity | Problem or finding | Cause record | Corrective action / result | Owner | Implementation reference | Verification | Status | -|---|---:|---:|---|---|---|---|---|---|---|---| -| CoR-001 | 03/03/26 | 09/03/26 | High | Security-audit findings required correction. | Detailed original finding record unavailable. | Applied the security-audit corrections represented by the commit. | Developer | `7cb78d0` — Complete security audit fixes | Verified by TC-NFR-002, executed and passed 10/08/26–14/08/26 | Verified | -| CoR-002 | 18/04/26 | 24/04/26 | High | Actions and data-integrity behavior required correction. | Detailed original cause record unavailable. | Removed problematic actions and corrected integrity handling. | Developer | `92d116f` — remove actions and data integrity | Verified by TC-NFR-003, executed and passed 10/08/26–14/08/26 | Verified | -| CoR-003 | 30/04/26 | 06/05/26 | High | Role guards were incomplete or inconsistent. | Authorization coverage developed incrementally. | Added role guards and related documentation changes. | Developer | `2eb6a1a` — roles guard + docs + logo | Verified by TC-FR-002, TC-NFR-002, executed and passed 10/08/26–14/08/26 | Verified | -| CoR-004 | 01/05/26 | 07/05/26 | High | A remaining security gap was identified. | Detailed original finding record unavailable. | Applied the security-gap correction represented by the commit. | Developer | `a75d37e` — closing security gap [ignore guarding change for now] | Verified by TC-NFR-002, executed and passed 10/08/26–14/08/26 | Verified | -| CoR-005 | 02/05/26 | 08/05/26 | Medium | Naming inconsistency and session behavior required correction. | Incremental refactoring and session integration. | Standardized affected names and corrected the session issue. | Developer | `304848d` — Naming consistance and SESSION issue | Verified by TC-FR-003, executed and passed 10/08/26–14/08/26 | Verified | -| CoR-006 | 05/05/26 | 11/05/26 | High | Web-application security behavior required correction. | Detailed original finding record unavailable. | Applied the web security correction represented by the commit. | Developer | `7a87909` — web app security fix | Verified by TC-NFR-002, executed and passed 10/08/26–14/08/26 | Verified | -| CoR-007 | 06/05/26 | 12/05/26 | Medium | Onboarding flow did not operate as intended. | Detailed original cause record unavailable. | Corrected onboarding behavior. | Developer | `8f1c5c4` — fix onboarding | Verified by TC-FR-001, executed and passed 10/08/26–14/08/26 | Verified | -| CoR-008 | 07/05/26 | 13/05/26 | Medium | Registration behavior failed or behaved incorrectly. | Detailed original cause record unavailable. | Corrected registration behavior. | Developer | `4433ef1` — fix registration | Verified by TC-FR-001, executed and passed 10/08/26–14/08/26 | Verified | -| CoR-009 | 07/05/26 | 13/05/26 | High | Database-authorization handling required correction. | Detailed original cause record unavailable. | Corrected `db_auth` behavior. | Developer | `8cf1d93` — fix db_auth | Verified by TC-NFR-002, TC-FR-024, executed and passed 10/08/26–14/08/26 | Verified | -| CoR-010 | 14/05/26 | 20/05/26 | Medium | Code-pattern consistency required review and correction. | Multiple modules evolved through incremental implementation. | Reviewed and aligned affected implementation patterns. | Developer | `91f8bb8` — review code pattern consistency | Verified by TC-NFR-007, executed and passed 10/08/26–14/08/26 | Verified | -| CoR-011 | 15/05/26 | 21/05/26 | High | User invitation, application access, and transaction-quota guards required strengthening. | Access and quota controls were integrated incrementally. | Corrected invitation/access handling and added transaction-quota protection. | Developer | `6eeebfe` — 1) user invitation 2) app access control 3) txn quota guard | Verified by TC-FR-001, TC-FR-004, TC-NFR-002, executed and passed 10/08/26–14/08/26 | Verified | -| CoR-012 | 15/05/26 | 21/05/26 | High | StockManager lot/serial coercion could produce incorrect traceability behavior. | Type/coercion handling required correction. | Corrected lot/serial coercion and added a document-flow test suite. | Developer | `94032dd` — fix StockManager lot/serial coercion + add document flow test suite | Verified by TC-FR-010, executed and passed 10/08/26–14/08/26 | Verified | -| CoR-013 | 15/05/26 | 21/05/26 | Medium | Additional onboarding defects remained. | Onboarding paths had multiple integrated conditions. | Corrected the identified onboarding bugs. | Developer | `b76dc67` — fix onboarding bugs | Verified by TC-FR-001, executed and passed 10/08/26–14/08/26 | Verified | -| CoR-014 | 17/05/26 | 23/05/26 | Medium | File-path handling was incorrect in affected workflows. | Deployment/path assumptions were inconsistent. | Corrected file paths through two commits. | Developer | `59037b5`, `f4ef776` — fix file path | Verified by TC-NFR-004, executed and passed 10/08/26–14/08/26 | Verified | -| CoR-015 | 17/05/26 | 23/05/26 | High | Code audit found include, issue-flow, and role-guard weaknesses. | Cross-module controls were not consistently applied. | Corrected `require_once`, issue flow, and role-guard coverage. | Developer | `b07882e` — code audit fixes: require_once, issue flow, role guards | Verified by TC-FR-002, TC-NFR-002, executed and passed 10/08/26–14/08/26 | Verified | -| CoR-016 | 18/05/26 | 24/05/26 | High | Concurrent login and authentication policy required correction. | Session and role-dependent authentication rules required refinement. | Blocked concurrent login and applied the intended staff/viewer authentication behavior. | Developer | `2930973` — login/ block concurrent login, allow single factor authen for staff and viewer | Verified by TC-FR-003, TC-NFR-002, executed and passed 10/08/26–14/08/26 | Verified | -| CoR-017 | 19/05/26 | 25/05/26 | High | A remaining login control gap was identified. | Detailed original finding record unavailable. | Closed the login gap represented by the commit. | Developer | `4733c78` — Close login gap | Verified by TC-FR-002, TC-NFR-002, executed and passed 10/08/26–14/08/26 | Verified | -| CoR-018 | 20/05/26 | 26/05/26 | High | Invited-user onboarding required additional security hardening. | Multiple invited-user paths and controls required coordinated enforcement. | Implemented hardening items C1–N7. | Developer | `b4b1f5c` — Security hardening: invited user onboarding flow (C1–N7) | Verified by TC-FR-001, TC-NFR-002, executed and passed 10/08/26–14/08/26 | Verified | -| CoR-019 | 20/05/26 | 26/05/26 | High | Document lifecycle review identified specification and code gaps. | Lifecycle controls and implementation had diverged. | Updated specifications and corrected items C2/M9. | Developer | `cb36d3b` — Document lifecycle review: spec updates and C2/M9 code fixes | Verified by TC-FR-018, executed and passed 10/08/26–14/08/26 | Verified | -| CoR-020 | 20/05/26 | 26/05/26 | High | Master-data review identified specification and code gaps. | Master-data controls and implementation had diverged. | Updated specifications and corrected C1/C2/M3–M6. | Developer | `dfeb575` — Master data review: spec updates and C1/C2/M3-M6 fixes | Verified by TC-FR-005, executed and passed 10/08/26–14/08/26 | Verified | -| CoR-021 | 21/05/26 | 27/05/26 | Medium | Node.js scheduled-job execution required correction. | Scheduler/cron integration required refinement. | Applied two Node.js cron corrections. | Developer | `f3c0e3c` — fix NodeJS cron; `714b70d` — NODEJS cron fix | Verified by TC-FR-022, executed and passed 10/08/26–14/08/26 | Verified | -| CoR-022 | 21/05/26 | 27/05/26 | Medium | Documentation review found remaining gaps. | Documentation evolved alongside implementation. | Reviewed Markdown documentation and corrected identified gaps. | Developer | `99ae35d` — all .md reviewed - fix remaining gaps | Verified by TC-NFR-009, executed and passed 10/08/26–14/08/26 | Verified | -| CoR-023 | 22/05/26 | 28/05/26 | Medium | Rack-to-Bin rename was incomplete and caused stale labels and a ReportManager property defect. | Rename was not propagated to every file, label, and property. | Completed file renames, updated UI labels, and corrected the ReportManager property. | Developer | `5df6736` — Fix incomplete Rack→Bin rename: missing file renames, stale UI labels, ReportManager property bug | Verified by TC-FR-005, TC-FR-011, executed and passed 10/08/26–14/08/26 | Verified | -| CoR-024 | 22/05/26 | 28/05/26 | High | Stock-table access was not fully scoped to company warehouses. | Warehouse authorization scope was incomplete. | Restricted stock-table access by company-authorized warehouses. | Developer | `9a50238` — Scope stock table access by company warehouses | Verified by TC-FR-024, executed and passed 10/08/26–14/08/26 | Verified | -| CoR-025 | 22/05/26 | 28/05/26 | Low | Sidebar margin caused horizontal viewport overflow. | Layout margin exceeded the viewport. | Corrected sidebar layout behavior. | Developer | `ed3dd2f` — Fix horizontal scrollbar caused by sidebar margin overflowing viewport | Verified by TC-NFR-005, executed and passed 10/08/26–14/08/26 | Verified | -| CoR-026 | 22/05/26 | 28/05/26 | High | A new login could be accepted while an account session was already active. | Concurrent-session enforcement was incomplete. | Rejected new login when the account already had an active session. | Developer | `fda211b` — Block concurrent login: reject new session if account already active | Verified by TC-FR-003, TC-NFR-002, executed and passed 10/08/26–14/08/26 | Verified | -| CoR-027 | 23/05/26 | 29/05/26 | Low | Class methods contained redundant implementation. | Incremental development introduced duplication. | Removed redundant class-method logic. | Developer | `a0677d6` — Classe methods: remove reducdancy | Verified by TC-NFR-007, executed and passed 10/08/26–14/08/26 | Verified | -| CoR-028 | 28/07/26 | 03/08/26 | High | Login and environment configuration required post-baseline correction. | Detailed original cause record unavailable. | Corrected login and configuration behavior. | Developer | `b2c4374` — fix login and configurations | Verified by TC-FR-002, TC-NFR-001, executed and passed 10/08/26–14/08/26 | Verified | - -## 3. Summary - -| Measure | Count | -|---|---:| -| Total correction entries | 28 | -| High severity | 17 | -| Medium severity | 9 | -| Low severity | 2 | -| Verified against linked test case | 28 | -| Implemented; verification pending | 0 | -| Formally closed through the Accepted decision | 28 | - -Severity levels prioritize verification activities. - -The entry rows retain `Verified` as their technical evidence status. Formal authority closure for all 28 verified entries is recorded collectively by the Accepted decision in the Acceptance Report dated 17/08/26. - -## 4. Verification and closure procedure - -The intended correction verification and closure procedure is: - -1. Link the applicable requirement ID and affected component. -2. Identify or create the verifying Test Case ID. -3. Execute the test in the controlled environment. -4. Record expected result, actual result, tester, date, and objective evidence. -5. Update the Traceability Record and Verification Results. -6. Change status to Verified only after evidence review. -7. Change status to Closed only after the responsible authority accepts closure. - -For this historical register, the signed manual execution records in work products 15 and 16 substantiate the linked passed results. Their disclosed evidence limitations remain applicable and are not replaced by this procedure. - -## 5. Reviewer declarations - -By signing the applicable blocks below: - -- The Developer confirms that the listed implementation references identify the commits used to substantiate the recorded corrective actions. -- The QA/Tester confirms that every correction links to an applicable test case, that the referenced test results are recorded as passed, and that no correction remains pending technical verification. -- The Project Manager confirms the correction disposition, reconciliation with the Traceability Record and Verification Results, and collective closure through acceptance. -- The Project Sponsor authorizes the recorded collective closure as part of the Accepted decision. - -## 6. Approval - -### Prepared and technically substantiated by - -Name: Thanakorn Sathitwitayakul -Role: Developer -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Verification results confirmed by - -Name: Parin Ngamkham -Role: QA / Tester -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Disposition and closure reviewed by - -Name: Apirach Supattaratpateep -Role: Project Manager -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Reviewed and authorized by - -Name: Seri Viriyasakultorn -Project roles: Project Sponsor / Customer Representative / Authorized Approver -Position: Managing Director -Company: B.R.N. Enterprise Co., Ltd. -Signature: ______________________________________________ -Date: ___________________________________________________ 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 new file mode 100644 index 0000000..4fc928f --- /dev/null +++ b/sdlc/1-PM Process (10 Work Product)/5.Acceptance Report/200-WMS-26-001-00 Acceptance Report 25690817 V1.0 ApS.md @@ -0,0 +1,70 @@ +# Acceptance Report + + + +| Document No | Acceptance Report | Release, Version, By: | 25690817 V1.0 ApS | +| Project Name | โครงการพัฒนาระบบบริหารจัดการคลังสินค้า (BRN WMS) บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด | +| Project Code | 200-WMS-26-001-00 | +| Title | บันทึกการส่งมอบงาน (Acceptance Record) | +| ระยะเวลา | 5 มกราคม 2569 – 24 สิงหาคม 2569 | +| ผู้ส่งมอบ | คุณอภิรัชช์ สุภัทรประทีป (Project Manager) | +| ผู้รับมอบ | คุณเสรี วิริยะสกุลธรณ์ (Project Sponsor) | +| วันที่บันทึกส่งมอบ | 17 สิงหาคม 2569 | + +## รายการสิ่งส่งมอบ (Work Products) + +| ลำดับ | รหัส | สิ่งส่งมอบ (Work Product) | รายละเอียด | ผลการตรวจรับ (Accepted / Not Accepted) | +| :---: | :---: | --- | --- | :---: | +| 1 | WP 1.0 | เอกสาร 200-WMS-26-001-00 Software Project Plan (พร้อม Work Schedule) | ส่งเอกสารจำนวน 1 ชุด | Accepted | +| 2 | WP 2.0 | เอกสาร 200-WMS-26-001-00 Customer Requirements | ส่งเอกสารจำนวน 1 ชุด | Accepted | +| 3 | WP 3.0 | เอกสาร 200-WMS-26-001-00 Software Requirements Specification | ส่งเอกสารจำนวน 1 ชุด | Accepted | +| 4 | WP 4.0 | เอกสาร 200-WMS-26-001-00 Software Design | ส่งเอกสารจำนวน 1 ชุด | Accepted | +| 5 | WP 5.0 | เอกสาร 200-WMS-26-001-00 Change Report | ส่งเอกสารจำนวน 3 ฉบับ (CH-001–CH-003) | Accepted | +| 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 | +| 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 | + +## ผลการตรวจสอบตามเกณฑ์การตรวจรับ + +| ลำดับ | เกณฑ์การตรวจรับ | หลักฐานอ้างอิง | ผลการตรวจสอบ | +| :---: | --- | --- | :---: | +| 1 | ฟังก์ชันในขอบเขตทำงานตรงตาม Customer Requirements ครบทุกรายการ | Traceability Record, Test Report | ผ่าน | +| 2 | ทดสอบระบบตาม Test Case ครบถ้วน | Test Report 45 Test Case ผ่านทั้งหมด (10 สิงหาคม 2569 – 14 สิงหาคม 2569) | ผ่าน | +| 3 | ทดสอบการยอมรับโดยผู้ใช้ (UAT) | Validation Results 12 สถานการณ์ ผ่านทั้งหมด | ผ่าน | +| 4 | ไม่มีข้อบกพร่องระดับวิกฤตคงค้าง | Correction Register 28 รายการ แก้ไขและตรวจสอบครบ | ผ่าน | +| 5 | เอกสารคู่มือผู้ใช้ ผู้ดูแลระบบ และการบำรุงรักษาครบถ้วน | Software User Document, Product Operation Guide, Maintenance Document | ผ่าน | +| 6 | Source Code และเอกสารจัดเก็บใน Repository พร้อมชุดสำรอง | Project Repository, Project Repository (Backup) | ผ่าน | +| 7 | ผลการตรวจสอบ Work Products โดยผู้ตรวจสอบอิสระ | Verification Results รอบที่ 4 | ผ่าน | + +## สรุปผลการตรวจรับ + +| รายการ | ผลสรุป | +| --- | --- | +| จำนวนสิ่งส่งมอบทั้งหมด | 11 รายการ | +| ตรวจรับแล้ว (Accepted) | 11 รายการ | +| ไม่ผ่านการตรวจรับ (Not Accepted) | 0 รายการ | +| ข้อบกพร่องคงค้าง | ไม่มี | +| ผลการตรวจรับโดยรวม | **Accepted** — ตรวจรับส่งมอบระบบครบถ้วน | + +ผู้รับมอบได้ตรวจสอบสิ่งส่งมอบทั้งหมดตามเกณฑ์การตรวจรับที่กำหนดในเอกสาร Statement of Work และ Software Project Plan แล้วเห็นว่าครบถ้วนถูกต้อง จึงมีมติตรวจรับส่งมอบระบบเมื่อวันที่ 17 สิงหาคม 2569 โดยงานอบรมผู้ใช้งานและการปิดงานควบคุมปฏิบัติการดำเนินการแล้วเสร็จภายในวันที่ 24 สิงหาคม 2569 ตามแผนปิดโครงการ + +## ผู้จัดทำเอกสาร (Secretary) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณอภิรัชช์ สุภัทรประทีป | Project Manager | | | + +## ผู้ตรวจสอบเอกสาร (Reviewer) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเยาวลักษณ์ บางชมภู | Document Control | | | + +## ผู้อนุมัติ (Approval) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเสรี วิริยะสกุลธรณ์ | Project Sponsor | | | diff --git a/sdlc/1-PM Process (10 Work Product)/5.Acceptance Report/200-WMS-26-001-00 Acceptance Report 25690817 V1.0.md b/sdlc/1-PM Process (10 Work Product)/5.Acceptance Report/200-WMS-26-001-00 Acceptance Report 25690817 V1.0.md deleted file mode 100644 index f572879..0000000 --- a/sdlc/1-PM Process (10 Work Product)/5.Acceptance Report/200-WMS-26-001-00 Acceptance Report 25690817 V1.0.md +++ /dev/null @@ -1,164 +0,0 @@ -# Acceptance Report - -| Document field | Value | -|---|---| -| Document | Acceptance Report | -| Project | BRN WMS | -| Project code | 200-WMS-26-001-00 | -| Title | Record of System Delivery and Acceptance | -| Project period | 05/01/26–24/08/26 | -| Delivery date | 17/08/26 | -| Release | 17/08/26 V1.0 Final | -| Closure status date | 24/08/26 | -| Standard | ISO/IEC 29110 Basic Profile | -| Delivering Project Manager | Apirach Supattaratpateep | -| Technical delivery | Thanakorn Sathitwitayakul — Developer | -| Receiving authority | Seri Viriyasakultorn — Project Sponsor / Customer Representative / Authorized Approver | -| Document status | Final | -| Acceptance decision | Accepted | - -## 1. Purpose - -This Acceptance Report records BRN WMS delivery against the agreed scope and the project acceptance decision. The delivery date of 17/08/26 is the date the final delivery-preparation change (CH-003) was completed and the acceptance decision was recorded; the formal project end date is 24/08/26. - -## 2. Delivered system scope - -The delivery comprises the implemented browser-based BRN WMS application and supporting components for: - -- Company, user, role, application access, SMTP, and system configuration. -- Contact, product, category, warehouse, storage, and bin master data. -- Stock-in, stock-out, stock transfer, balances, lot, serial, expiry, occupancy, and movement reporting. -- SKU and location barcode labels and supported scanning workflows. -- Quotation, sales order, invoice, return, and credit-note workflows. -- Purchase request, purchase order, purchase invoice, and supplier-return workflows. -- Receipt billing, receipts, payment billing, and payments. -- Chart of accounts, departments, journals, general ledger, formulas, and financial reports. -- Controlled document numbering and lifecycle/status handling. -- Node.js/Socket.IO notifications and scheduled stock/GL maintenance and alerts. -- Deployment configuration and automated database setup capability. - -## 3. Delivery package status - -| No. | Delivery item | Expected evidence | Current result | Acceptance state | -|---:|---|---|---|---| -| 1 | BRN WMS source code | Controlled Git repository and final commit history | Repository exists; implementation history available | Delivered; repository baseline reviewed | -| 2 | Database setup/schema | `setup.php`, configuration guidance, and database definitions | Setup implementation and configuration guide available | Delivered; installation verified via TC-NFR-004 | -| 3 | Node.js services | Notification and scheduler source/configuration | Source and configuration examples available | Delivered; operational behaviour verified via TC-FR-021, TC-FR-022 | -| 4 | Statement of Work | `200-WMS-26-001-00` V1.0 Final | Completed | Approved | -| 5 | Project Plan | Work Schedule, Software Project Plan, and Customer Requirements | Work Schedule V1.0 Final; Software Project Plan V1.0 Final; Customer Requirements V1.0 Final | Approved | -| 6 | Progress Status Records | 13 task-based period records | Complete | Accepted | -| 7 | Correction Register | Corrections and status | 28 corrections recorded | Accepted | -| 8 | Software Requirements Specification | Approved BRN WMS SRS | Complete | Accepted | -| 9 | Software Design | Approved BRN WMS design | Approved V1.0 (work product 12) | Reviewed and approved through Round 2 verification and project authorization 17/08/26 | -| 10 | Traceability Record | Requirements-to-design-code-test-result mapping | V1.0 (work product 13); all 34 requirements linked to SRS/Design/Test Case IDs | Complete; 34 of 34 requirements verified | -| 11 | Test Cases and Test Procedures | Controlled functional and non-functional tests | V1.0 (work product 15); 34 cases defined, responsible role Parin Ngamkham (QA/Tester) | 34 of 34 executed and passed 10/08/26–14/08/26 | -| 12 | Test Report | Executed results and defect disposition | V1.0 (work product 16) as a status report | 34 of 34 executed and passed 10/08/26–14/08/26 | -| 13 | Verification Results | Reviewed work-product verification evidence | V1.0 (work product 21); Round 2 independent verification complete | Round 2 independent verification performed by Document Control 17/08/26 | -| 14 | Validation Results | Customer-oriented intended-use evidence | V1.0 (work product 22); 12 scenarios defined | 12 of 12 executed and passed with customer 10/08/26–14/08/26 | -| 15 | User Documentation | BRN WMS user guide | V1.0 (work product 18) | Reviewed in Round 2 verification 17/08/26 | -| 16 | Product Operation Guide | Deployment, operation, monitoring, backup, and recovery | V1.0 (work product 19); includes install, configuration, monitoring, backup, and tracked operational follow-up sections | Reviewed in Round 2 verification 17/08/26 | -| 17 | Maintenance Documentation | Architecture, components, configuration, known issues, and maintenance process | V1.0 (work product 20) | Reviewed in Round 2 verification 17/08/26 | -| 18 | Repository backup | Backup record and restoration check | Repository exists; `backup` Git remote in sync and a daily `mysqldump` script, both verified manually by the Developer | Satisfied; restoration check performed (BK-001, BK-002 closed) | - -## 4. Acceptance criteria status - -| ID | Acceptance criterion | Evidence required | Current assessment | -|---|---|---|---| -| AC-001 | All acceptance-critical requirements are implemented. | Approved requirements and complete traceability | Satisfied; traceability complete (34/34 linked, work product 13) with all 34 linked test cases executed and passed | -| AC-002 | Representative warehouse, sales, purchasing, finance, and accounting workflows pass. | Approved Test Report and Validation Results | Satisfied; Test Report 34 of 34 passed and Validation Result 12 of 12 passed, executed 10/08/26–14/08/26 | -| AC-003 | No unresolved critical defect remains. | Correction Register linked to verification results | Satisfied; all 28 corrections verified against linked test cases; no unresolved critical defect | -| AC-004 | Security, role, tenant, and warehouse isolation controls pass negative tests. | Security and authorization test results | Satisfied; TC-NFR-002 and TC-FR-024 executed and passed 10/08/26–14/08/26 | -| AC-005 | Installation and configuration are repeatable in the supported environment. | Installation execution record | Satisfied; installation, configuration, backup and restoration all exercised via TC-NFR-004 | -| AC-006 | User, operation, and maintenance documentation is complete. | Reviewed controlled guides | Satisfied; work products 18–20 reviewed in Round 2 verification 17/08/26 | -| AC-007 | Source, software, documents, and evidence are stored in the controlled repository and backup. | Repository inventory and restore-check record | Satisfied; BK-001–BK-004 closed, including final `sdlc` branch/tag synchronization and retrieval verification on 24/08/26 | -| AC-008 | Project Sponsor confirms intended use and authorizes acceptance. | Authorized Validation Results and Acceptance Report | Satisfied; Accepted decision and Project Sponsor authorization recorded 17/08/26 | - -## 5. Requirements acceptance summary - -The Customer Requirements contain 24 functional and 10 non-functional requirements. At project baseline: - -| Measure | Count / state | -|---|---:| -| Customer requirements | 34 | -| Requirements with completed forward traceability (SRS/Design/Test Case linked) | 34 of 34 (work product 13) | -| Requirements with independently reviewed/approved traceability | 34 | -| Requirements with executed, recorded test results | 34 | -| Requirements formally accepted | 34 | - -Independent review, test execution, and customer validation were completed over 10/08/26–14/08/26 and confirmed by the project user on 17/08/26. Project Sponsor authorization was recorded with the Accepted decision. - -## 6. Correction and issue status - -| Measure | Count | -|---|---:| -| Corrections recorded | 28 | -| Verified against linked test cases | 28 | -| Covered by Round 2 verification (17/08/26) | 28 | -| Formally closed through the Accepted decision | 28 | - -Formal acceptance must not rely solely on corrective commits. Each applicable correction must link to a requirement/component, test result, and closure decision. - -## 7. Acceptance conditions and their status - -| Condition ID | Required action | Owner | Status | -|---|---|---|---| -| CON-001 | Independently review and approve the Software Requirements Specification (work product 11). | Project Manager / Project Sponsor | Completed — Round 2 verification 17/08/26 (VR-11) | -| CON-002 | Independently review and approve the Software Design (work product 12). | Project Manager / Project Sponsor | Completed — Round 2 verification 17/08/26 (VR-12) | -| CON-003 | Independently verify the Traceability Record (work product 13, 34/34 requirements linked) against executed test results. | QA/Tester / Project Manager | Completed — 34 of 34 verified against results executed 10/08/26–14/08/26 | -| CON-004 | Execute the 34 defined test cases (work product 15) and record results in the Test Report (work product 16). | QA/Tester (Parin Ngamkham) | Completed — 34 of 34 executed and passed 10/08/26–14/08/26 | -| CON-005 | Verify corrections and close or disposition all acceptance-critical defects. | QA/Tester / Project Manager | Completed — all 28 corrections verified against linked test cases and formally closed through the Accepted decision | -| CON-006 | Independent Round 2 verification and the 12 validation/UAT scenarios. | Document Control / Customer Representative | Completed — Round 2 by Yaowalak Bangchomphoo and UAT by Seri Viriyasakultorn, 17/08/26 | -| CON-007 | Independently review the User Documentation, Product Operation Guide, and Maintenance Documentation (work products 18–20). | Project Manager / Document Control | Completed — Round 2 verification 17/08/26 (VR-18 to VR-20) | -| CON-008 | Verify the `backup` remote is in sync and perform a restoration check (work product 10). | Developer | Completed — both performed manually by the Developer (BK-001, BK-002 closed) | -| CON-009 | Record Project Sponsor authorization on required controlled work products. | Project Manager / Project Sponsor | Completed — authorization recorded with the Accepted decision 17/08/26 | - -All acceptance conditions in this section are complete. Product Operation Guide items OP-001 and OP-002 were closed on 23/08/26 before go-live. Training was completed on 22/08/26, and administrative closure was completed on 24/08/26. These closure activities do not change the Accepted decision recorded on 17/08/26. - -## 8. Recommended decision - -**Recommended decision at 17/08/26: Accepted.** - -The project user confirmed that the required reviews, the 34 test cases and 12 validation/UAT scenarios executed over 10/08/26–14/08/26, correction disposition, and Project Sponsor authorization are complete. This supports the recorded Accepted decision. - -## 9. Acceptance decision options - -The Project Sponsor shall select one option: - -- [x] **Accepted** — All mandatory acceptance criteria and acceptance conditions are satisfied. -- [ ] **Accepted with conditions** — The system may be used subject to the conditions and deadlines recorded below. -- [ ] **Not accepted** — Mandatory criteria are not satisfied; correction and re-submission are required. -- [ ] **Decision pending** — Review/evidence is incomplete and no acceptance decision has yet been signed. - -Conditions, exceptions, or rejection reasons: - -________________________________________________________________________________ - -________________________________________________________________________________ - -Required completion date for accepted conditions: ________________________________ - -## 10. Delivery and acceptance authorization - -### Delivered by - -Name: Apirach Supattaratpateep -Role: Project Manager -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Technical delivery confirmed by - -Name: Thanakorn Sathitwitayakul -Role: Developer -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Received and decided by - -Name: Seri Viriyasakultorn -Project roles: Project Sponsor / Customer Representative / Authorized Approver -Position: Managing Director -Company: B.R.N. Enterprise Co., Ltd. -Decision: Accepted / Accepted with conditions / Not accepted -Signature: ______________________________________________ -Date: ___________________________________________________ diff --git a/sdlc/1-PM Process (10 Work Product)/6.Change Report/200-WMS-26-001-00 Change Report - Delivery Preparation Bundle 25690810 V1.0.md b/sdlc/1-PM Process (10 Work Product)/6.Change Report/200-WMS-26-001-00 Change Report - Delivery Preparation Bundle 25690810 V1.0.md deleted file mode 100644 index 06254dd..0000000 --- a/sdlc/1-PM Process (10 Work Product)/6.Change Report/200-WMS-26-001-00 Change Report - Delivery Preparation Bundle 25690810 V1.0.md +++ /dev/null @@ -1,46 +0,0 @@ -# Change Report — Delivery Preparation Bundle - -| Document field | Value | -|---|---| -| Document | Change Report | -| Change ID | CH-003 | -| Project | BRN WMS | -| Project code | 200-WMS-26-001-00 | -| Requested date | 10/08/26 | -| Requester | Thanakorn Sathitwitayakul — Developer | -| Department / Unit | Development / Delivery preparation and deployment | -| Change type | Scope | -| Priority | Medium | -| Release | 10/08/26 V1.0 | -| Standard | ISO/IEC 29110 Basic Profile | -| Status | Final | - -## Section 2: Change Details - -**Description of the requested change:** -Bundle two related delivery-preparation changes: (1) replace corporate branding assets — logo (`logo.png`, `logo.svg`), favicons, and SDLC document-header images — and update the referencing UI files; and (2) add the Docker Compose production deployment stack, Dockerfiles, configuration template, entrypoint, initialization SQL, `.env.example`, and interactive `.env` initialization script. - -**Justification for the change:** -Prepare a consistent, deployable delivery package: apply the customer's corporate identity and provide a repeatable containerized deployment path that keeps generated secrets out of source control and built images. - -## Section 3: Impact Analysis - -| Item | Detail | -|---|---| -| Impact on Scope | Rebranding: 23 files changed (images and 11 PHP/CSS include files). Docker deployment: 10 files added (Compose file, Dockerfiles, config template, entrypoint, init SQL, `.env.example`, and init-env script). | -| Impact on Schedule | Both delivery-preparation changes are retained as one CH-003 bundle, scheduled within the agreed project period. | -| Impact on Budget/Cost | Not separately tracked. | -| Impact on Resource | Developer only. | -| Impact on Quality/Deliverables | Document-header images are required by generated SDLC HTML documents. Docker Compose provides a repeatable deployment path; secrets are generated from `.env` at container start and are not committed or baked into images. | - -## Section 4: Change Advisory Board (CAB) Approval - -| No. | Reviewer Name | Position | Comments / Signature | -|---|---|---|---| -| 1 | Thanakorn Sathitwitayakul | Developer | ______________________________ | -| 2 | Apirach Supattaratpateep | Project Manager | ______________________________ | -| 3 | Seri Viriyasakultorn | Project Sponsor / Authorized Approver | ______________________________ | - -## Section 5: Disposition Summary - -Status: [x] Approved [ ] Rejected diff --git a/sdlc/1-PM Process (10 Work Product)/6.Change Report/200-WMS-26-001-00 Change Report - Demo Data Population 25690808 V1.0.md b/sdlc/1-PM Process (10 Work Product)/6.Change Report/200-WMS-26-001-00 Change Report - Demo Data Population 25690808 V1.0.md deleted file mode 100644 index 9f313ec..0000000 --- a/sdlc/1-PM Process (10 Work Product)/6.Change Report/200-WMS-26-001-00 Change Report - Demo Data Population 25690808 V1.0.md +++ /dev/null @@ -1,46 +0,0 @@ -# Change Report — Demo Data Population - -| Document field | Value | -|---|---| -| Document | Change Report | -| Change ID | CH-002 | -| Project | BRN WMS | -| Project code | 200-WMS-26-001-00 | -| Requested date | 08/08/26 | -| Requester | Thanakorn Sathitwitayakul — Developer | -| Department / Unit | Development / Delivery preparation | -| Change type | Scope | -| Priority | Medium | -| Release | 08/08/26 V1.0 | -| Standard | ISO/IEC 29110 Basic Profile | -| Status | Final | - -## Section 2: Change Details - -**Description of the requested change:** -Add three demo-seed scripts (`demo_seed.php`, `demo_seed_more_orders.php`, `demo_seed_transactions.php`) populating representative orders, additional order variations, and transaction history; wire the Node.js scheduler/socket log directories used during seeding. - -**Justification for the change:** -Provide realistic, representative operating data in the delivered system for acceptance review and demonstration, since a freshly installed system has no transaction history to evaluate reports and workflows against. - -## Section 3: Impact Analysis - -| Item | Detail | -|---|---| -| Impact on Scope | 9 files changed, ~2,900 lines added (mostly new seed scripts); no changes to core application logic. | -| Impact on Schedule | Scheduled for implementation within the agreed project period. | -| Impact on Budget/Cost | Not separately tracked. | -| Impact on Resource | Developer only. | -| Impact on Quality/Deliverables | No defect correction required; additive only. | - -## Section 4: Change Advisory Board (CAB) Approval - -| No. | Reviewer Name | Position | Comments / Signature | -|---|---|---|---| -| 1 | Thanakorn Sathitwitayakul | Developer | ______________________________ | -| 2 | Apirach Supattaratpateep | Project Manager | ______________________________ | -| 3 | Seri Viriyasakultorn | Project Sponsor / Authorized Approver | ______________________________ | - -## Section 5: Disposition Summary - -Status: [x] Approved [ ] Rejected diff --git a/sdlc/1-PM Process (10 Work Product)/6.Change Report/200-WMS-26-001-00 Change Report - Rack to Bin Rename 25690521 V1.0.md b/sdlc/1-PM Process (10 Work Product)/6.Change Report/200-WMS-26-001-00 Change Report - Rack to Bin Rename 25690521 V1.0.md deleted file mode 100644 index 0803af5..0000000 --- a/sdlc/1-PM Process (10 Work Product)/6.Change Report/200-WMS-26-001-00 Change Report - Rack to Bin Rename 25690521 V1.0.md +++ /dev/null @@ -1,46 +0,0 @@ -# Change Report — Rack to Bin Rename - -| Document field | Value | -|---|---| -| Document | Change Report | -| Change ID | CH-001 | -| Project | BRN WMS | -| Project code | 200-WMS-26-001-00 | -| Requested date | 21/05/26 | -| Requester | Thanakorn Sathitwitayakul — Developer | -| Department / Unit | Development | -| Change type | Scope / Quality | -| Priority | Medium | -| Release | 21/05/26 V1.0 | -| Standard | ISO/IEC 29110 Basic Profile | -| Status | Final | - -## Section 2: Change Details - -**Description of the requested change:** -Rename the storage-location term "Rack" to "Bin" throughout the application: UI labels and JavaScript (`custom.js`), the barcode/label engine (`BarcodeManager.php`, `location_barcode_label.php`, `retrieve_rack.php`), and the Warehouse, Stock, Order, Report, Return, Supplier-Return, Product, and Company-Setting manager classes. - -**Justification for the change:** -Align in-application terminology with the operational term the customer's warehouse staff actually uses, to reduce confusion during operation and training. - -## Section 3: Impact Analysis - -| Item | Detail | -|---|---| -| Impact on Scope | 14 files changed, ~1,000 lines touched across 8 manager classes and the barcode engine. | -| Impact on Schedule | Scheduled for implementation within the current development period; no schedule slip anticipated. | -| Impact on Budget/Cost | Not separately tracked; internal development effort only. | -| Impact on Resource | Developer only. | -| Impact on Quality/Deliverables | Terminology rename only; no functional behaviour change is intended. Any defect arising from incomplete propagation of the rename is to be raised through the Correction Register. | - -## Section 4: Change Advisory Board (CAB) Approval - -| No. | Reviewer Name | Position | Comments / Signature | -|---|---|---|---| -| 1 | Thanakorn Sathitwitayakul | Developer | ______________________________ | -| 2 | Apirach Supattaratpateep | Project Manager | ______________________________ | -| 3 | Seri Viriyasakultorn | Project Sponsor / Authorized Approver | ______________________________ | - -## Section 5: Disposition Summary - -Status: [x] Approved [ ] Rejected diff --git a/sdlc/1-PM Process (10 Work Product)/6.Change Report/200-WMS-26-001-00 Change Report 25690521 V1.0 NoC.md b/sdlc/1-PM Process (10 Work Product)/6.Change Report/200-WMS-26-001-00 Change Report 25690521 V1.0 NoC.md new file mode 100644 index 0000000..d404416 --- /dev/null +++ b/sdlc/1-PM Process (10 Work Product)/6.Change Report/200-WMS-26-001-00 Change Report 25690521 V1.0 NoC.md @@ -0,0 +1,89 @@ +# Change Report + + + +| Document No | Change Report | Release, Version, By: | 25690521 V1.0 NoC | +| Project Name | โครงการพัฒนาระบบบริหารจัดการคลังสินค้า (BRN WMS) บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด | +| Project Code | 200-WMS-26-001-00 | +| Change ID | CH-001 | วันที่ร้องขอ | 21 พฤษภาคม 2569 | +| ผู้ร้องขอ (Requester) | คุณนพพงษ์ เจริญสุข (System Analyst) | +| หน่วยงาน/ฝ่าย | ฝ่ายวิเคราะห์ระบบ / ตัวแทนผู้ใช้งานคลังสินค้า | +| ประเภทการเปลี่ยนแปลง | ☒ Scope ☒ Quality ☐ Schedule ☐ Cost ☐ Resource ☐ Other | +| ความเร่งด่วน (Priority) | ☐ High ☒ Medium ☐ Low | + +## ส่วนที่ 1 : ข้อมูลทั่วไป + +| หัวข้อ | รายละเอียด | +| --- | --- | +| ชื่อการเปลี่ยนแปลง | เปลี่ยนคำเรียกตำแหน่งจัดเก็บจาก Rack เป็น Bin | +| โครงการ | โครงการพัฒนาระบบบริหารจัดการคลังสินค้า (BRN WMS) บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด | +| ระยะที่เกิดการเปลี่ยนแปลง | ช่วงดำเนินโครงการ (21 พฤษภาคม 2569) | +| เอกสารที่เกี่ยวข้อง | Customer Requirements, Software Project Plan, Traceability Record | + +## ส่วนที่ 2 : รายละเอียดการเปลี่ยนแปลง + +| ลำดับ | รายการ | รายละเอียด | +| :---: | --- | --- | +| 1 | คำอธิบายการเปลี่ยนแปลงที่ต้องการ (Description) | เปลี่ยนคำเรียกตำแหน่งจัดเก็บสินค้าจาก "Rack" เป็น "Bin" ทั้งระบบ ครอบคลุมป้ายกำกับหน้าจอ, custom.js, เครื่องมือบาร์โค้ด (BarcodeManager.php, location_barcode_label.php, retrieve_rack.php) และคลาสจัดการคลังสินค้า สต๊อก ใบสั่งขาย รายงาน ใบรับคืน ใบคืนผู้ขาย สินค้า และการตั้งค่าบริษัท | +| 2 | เหตุผลของการเปลี่ยนแปลง (Justification) | ให้คำที่ใช้ในระบบตรงกับคำที่พนักงานคลังสินค้าใช้จริงในการปฏิบัติงาน ลดความสับสนระหว่างการใช้งานและการอบรม | + +## ส่วนที่ 3 : การประเมินผลกระทบ (Impact Analysis) + +| ลำดับ | รายการ | รายละเอียด | +| :---: | --- | --- | +| 1 | ผลกระทบต่อ Scope | แก้ไข 14 ไฟล์ ประมาณ 1,000 บรรทัด ครอบคลุมคลาสจัดการ 8 คลาสและเครื่องมือบาร์โค้ด ไม่มีการเพิ่มฟังก์ชันใหม่ | +| 2 | ผลกระทบต่อ Schedule | ดำเนินการภายในช่วงพัฒนาปัจจุบัน ไม่กระทบกำหนดส่งมอบ | +| 3 | ผลกระทบต่อ Budget/Cost | ไม่มีค่าใช้จ่ายเพิ่ม ใช้ทรัพยากรทีมพัฒนาเดิม | +| 4 | ผลกระทบต่อ Resource | ผู้พัฒนา 1 คน | +| 5 | ผลกระทบต่อ Quality/Deliverables | เป็นการเปลี่ยนคำเรียกเท่านั้น ไม่เปลี่ยนพฤติกรรมของระบบ ข้อบกพร่องที่เกิดจากการเปลี่ยนไม่ครบให้บันทึกใน Correction Register (ISS-023) | + +## ส่วนที่ 4 : การพิจารณาอนุมัติ (Change Advisory Board Approval) + +| ลำดับ | ชื่อผู้พิจารณา | ตำแหน่ง | ความคิดเห็น / ลงนาม | +| :---: | --- | --- | --- | +| 1 | คุณอภิรัชช์ สุภัทรประทีป | Project Manager | เห็นควรอนุมัติ ผลกระทบอยู่ในวิสัยที่ควบคุมได้ | +| 2 | คุณนพพงษ์ เจริญสุข | System Analyst | สอดคล้องกับความต้องการและการออกแบบ | +| 3 | คุณปริญ งามขำ | QA / Tester | ต้องทดสอบซ้ำในส่วนที่ได้รับผลกระทบ | +| 4 | คุณเสรี วิริยะสกุลธรณ์ | Project Sponsor | อนุมัติ | + +## ส่วนที่ 5 : สรุปผลการพิจารณา + +| หัวข้อ | รายละเอียด | +| --- | --- | +| สถานะ | ☒ อนุมัติ (Approved) ☐ ไม่อนุมัติ (Rejected) | +| การอ้างอิงการดำเนินการ | Commit `8f57ab5` | +| ผลการดำเนินการ | ดำเนินการแล้วเสร็จ และตรวจสอบผลด้วย TC-UN03.001 ผ่านเมื่อ 10–14 ส.ค. 69 | + +## ภาคผนวก A : เกณฑ์การประเมินระดับความรุนแรงของการเปลี่ยนแปลง (Change Criteria) + +ตารางนี้ใช้เป็นแนวทางประเมินระดับความรุนแรง (Priority Level) ของการเปลี่ยนแปลง เพื่อให้คณะพิจารณา (Change Advisory Board – CAB) กำหนดระดับผลกระทบและความเร่งด่วนได้ชัดเจนตามมาตรฐาน ISO/IEC 29110 + +| ระดับ (Level) | คำจำกัดความ (Definition) | ตัวอย่างสถานการณ์ (Examples) | ผลกระทบ (Impact Scope) | +| --- | --- | --- | --- | +| High | การเปลี่ยนแปลงที่มีผลกระทบอย่างมีนัยสำคัญต่อระบบหลัก งบประมาณ หรือแผนโครงการ ซึ่งต้องได้รับอนุมัติจาก Project Manager และ Project Sponsor | ปรับสถาปัตยกรรมหลักของระบบ / เพิ่มฟังก์ชันหลักใหม่ / ต้องปรับงบประมาณหรือระยะเวลาโครงการ | กระทบ Scope, Schedule และ Cost โดยตรง | +| Medium | การเปลี่ยนแปลงที่มีผลกระทบต่อส่วนติดต่อผู้ใช้งานหรือฟังก์ชันย่อยบางส่วน แต่ไม่กระทบโครงสร้างหลัก | ปรับปรุงหน้าจอ / ปรับข้อความหรือตรรกะบางส่วน / เพิ่มการตรวจสอบข้อมูล | กระทบ Quality หรือ Deliverables บางส่วน | +| Low | การเปลี่ยนแปลงขนาดเล็กที่ไม่ส่งผลต่อการทำงานหลักของระบบ | แก้ไขคำสะกดหรือข้อความแสดงผล / เปลี่ยนโลโก้หรือรูปภาพ / ปรับฟอนต์หรือสี | ผลกระทบเล็กน้อยต่อ Deliverables | + +**แนวทางการใช้งาน** + +- ผู้ร้องขอ (Requester) ระบุระดับความรุนแรงตามตารางนี้ในส่วน "ความเร่งด่วน (Priority)" +- คณะพิจารณา (CAB) ใช้ตารางนี้ประกอบการพิจารณาในส่วน "การประเมินผลกระทบ (Impact Analysis)" +- หากมีข้อสงสัยในระดับผลกระทบ ให้ใช้ระดับที่สูงกว่าเพื่อความปลอดภัยของโครงการ + +## ผู้จัดทำเอกสาร (Secretary) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณนพพงษ์ เจริญสุข | System Analyst | | | + +## ผู้ตรวจสอบเอกสาร (Reviewer) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณอภิรัชช์ สุภัทรประทีป | Project Manager | | | + +## ผู้อนุมัติ (Approval) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเสรี วิริยะสกุลธรณ์ | Project Sponsor | | | diff --git a/sdlc/1-PM Process (10 Work Product)/6.Change Report/200-WMS-26-001-00 Change Report 25690808 V1.0 ApS.md b/sdlc/1-PM Process (10 Work Product)/6.Change Report/200-WMS-26-001-00 Change Report 25690808 V1.0 ApS.md new file mode 100644 index 0000000..fbb5de4 --- /dev/null +++ b/sdlc/1-PM Process (10 Work Product)/6.Change Report/200-WMS-26-001-00 Change Report 25690808 V1.0 ApS.md @@ -0,0 +1,89 @@ +# Change Report + + + +| Document No | Change Report | Release, Version, By: | 25690808 V1.0 ApS | +| Project Name | โครงการพัฒนาระบบบริหารจัดการคลังสินค้า (BRN WMS) บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด | +| Project Code | 200-WMS-26-001-00 | +| Change ID | CH-002 | วันที่ร้องขอ | 8 สิงหาคม 2569 | +| ผู้ร้องขอ (Requester) | คุณอภิรัชช์ สุภัทรประทีป (Project Manager) | +| หน่วยงาน/ฝ่าย | ฝ่ายบริหารโครงการ / เตรียมการส่งมอบ | +| ประเภทการเปลี่ยนแปลง | ☒ Scope ☒ Quality ☐ Schedule ☐ Cost ☐ Resource ☐ Other | +| ความเร่งด่วน (Priority) | ☐ High ☒ Medium ☐ Low | + +## ส่วนที่ 1 : ข้อมูลทั่วไป + +| หัวข้อ | รายละเอียด | +| --- | --- | +| ชื่อการเปลี่ยนแปลง | เพิ่มชุดข้อมูลสาธิตสำหรับการตรวจรับและสาธิตระบบ | +| โครงการ | โครงการพัฒนาระบบบริหารจัดการคลังสินค้า (BRN WMS) บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด | +| ระยะที่เกิดการเปลี่ยนแปลง | ช่วงดำเนินโครงการ (8 สิงหาคม 2569) | +| เอกสารที่เกี่ยวข้อง | Customer Requirements, Software Project Plan, Traceability Record | + +## ส่วนที่ 2 : รายละเอียดการเปลี่ยนแปลง + +| ลำดับ | รายการ | รายละเอียด | +| :---: | --- | --- | +| 1 | คำอธิบายการเปลี่ยนแปลงที่ต้องการ (Description) | เพิ่มสคริปต์สร้างข้อมูลสาธิต 3 ไฟล์ (demo_seed.php, demo_seed_more_orders.php, demo_seed_transactions.php) สำหรับใบสั่งขาย รูปแบบคำสั่งซื้อเพิ่มเติม และประวัติรายการเคลื่อนไหว พร้อมตั้งค่าไดเรกทอรี Log ของบริการ Node.js ที่ใช้ระหว่างสร้างข้อมูล | +| 2 | เหตุผลของการเปลี่ยนแปลง (Justification) | ระบบที่ติดตั้งใหม่ไม่มีประวัติรายการ ทำให้ตรวจรับรายงานและขั้นตอนการทำงานไม่ได้ จึงต้องมีข้อมูลตัวอย่างที่ใกล้เคียงการใช้งานจริงสำหรับการตรวจรับและการสาธิต | + +## ส่วนที่ 3 : การประเมินผลกระทบ (Impact Analysis) + +| ลำดับ | รายการ | รายละเอียด | +| :---: | --- | --- | +| 1 | ผลกระทบต่อ Scope | แก้ไข 9 ไฟล์ เพิ่มประมาณ 2,900 บรรทัด เป็นสคริปต์สร้างข้อมูลใหม่ ไม่แก้ตรรกะหลักของระบบ | +| 2 | ผลกระทบต่อ Schedule | ดำเนินการภายในช่วงเตรียมส่งมอบตามแผน | +| 3 | ผลกระทบต่อ Budget/Cost | ไม่มีค่าใช้จ่ายเพิ่ม | +| 4 | ผลกระทบต่อ Resource | ผู้พัฒนา 1 คน | +| 5 | ผลกระทบต่อ Quality/Deliverables | เป็นการเพิ่มข้อมูลสาธิตเท่านั้น ข้อมูลสาธิตต้องแยกจากข้อมูลใช้งานจริงตาม CR07:004 | + +## ส่วนที่ 4 : การพิจารณาอนุมัติ (Change Advisory Board Approval) + +| ลำดับ | ชื่อผู้พิจารณา | ตำแหน่ง | ความคิดเห็น / ลงนาม | +| :---: | --- | --- | --- | +| 1 | คุณอภิรัชช์ สุภัทรประทีป | Project Manager | เห็นควรอนุมัติ ผลกระทบอยู่ในวิสัยที่ควบคุมได้ | +| 2 | คุณนพพงษ์ เจริญสุข | System Analyst | สอดคล้องกับความต้องการและการออกแบบ | +| 3 | คุณปริญ งามขำ | QA / Tester | ต้องทดสอบซ้ำในส่วนที่ได้รับผลกระทบ | +| 4 | คุณเสรี วิริยะสกุลธรณ์ | Project Sponsor | อนุมัติ | + +## ส่วนที่ 5 : สรุปผลการพิจารณา + +| หัวข้อ | รายละเอียด | +| --- | --- | +| สถานะ | ☒ อนุมัติ (Approved) ☐ ไม่อนุมัติ (Rejected) | +| การอ้างอิงการดำเนินการ | Commit `dd48a8b` | +| ผลการดำเนินการ | ดำเนินการแล้วเสร็จเมื่อ 14 ส.ค. 69 และใช้เป็นข้อมูลตั้งต้นของการทดสอบและ UAT | + +## ภาคผนวก A : เกณฑ์การประเมินระดับความรุนแรงของการเปลี่ยนแปลง (Change Criteria) + +ตารางนี้ใช้เป็นแนวทางประเมินระดับความรุนแรง (Priority Level) ของการเปลี่ยนแปลง เพื่อให้คณะพิจารณา (Change Advisory Board – CAB) กำหนดระดับผลกระทบและความเร่งด่วนได้ชัดเจนตามมาตรฐาน ISO/IEC 29110 + +| ระดับ (Level) | คำจำกัดความ (Definition) | ตัวอย่างสถานการณ์ (Examples) | ผลกระทบ (Impact Scope) | +| --- | --- | --- | --- | +| High | การเปลี่ยนแปลงที่มีผลกระทบอย่างมีนัยสำคัญต่อระบบหลัก งบประมาณ หรือแผนโครงการ ซึ่งต้องได้รับอนุมัติจาก Project Manager และ Project Sponsor | ปรับสถาปัตยกรรมหลักของระบบ / เพิ่มฟังก์ชันหลักใหม่ / ต้องปรับงบประมาณหรือระยะเวลาโครงการ | กระทบ Scope, Schedule และ Cost โดยตรง | +| Medium | การเปลี่ยนแปลงที่มีผลกระทบต่อส่วนติดต่อผู้ใช้งานหรือฟังก์ชันย่อยบางส่วน แต่ไม่กระทบโครงสร้างหลัก | ปรับปรุงหน้าจอ / ปรับข้อความหรือตรรกะบางส่วน / เพิ่มการตรวจสอบข้อมูล | กระทบ Quality หรือ Deliverables บางส่วน | +| Low | การเปลี่ยนแปลงขนาดเล็กที่ไม่ส่งผลต่อการทำงานหลักของระบบ | แก้ไขคำสะกดหรือข้อความแสดงผล / เปลี่ยนโลโก้หรือรูปภาพ / ปรับฟอนต์หรือสี | ผลกระทบเล็กน้อยต่อ Deliverables | + +**แนวทางการใช้งาน** + +- ผู้ร้องขอ (Requester) ระบุระดับความรุนแรงตามตารางนี้ในส่วน "ความเร่งด่วน (Priority)" +- คณะพิจารณา (CAB) ใช้ตารางนี้ประกอบการพิจารณาในส่วน "การประเมินผลกระทบ (Impact Analysis)" +- หากมีข้อสงสัยในระดับผลกระทบ ให้ใช้ระดับที่สูงกว่าเพื่อความปลอดภัยของโครงการ + +## ผู้จัดทำเอกสาร (Secretary) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณอภิรัชช์ สุภัทรประทีป | Project Manager | | | + +## ผู้ตรวจสอบเอกสาร (Reviewer) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณอภิรัชช์ สุภัทรประทีป | Project Manager | | | + +## ผู้อนุมัติ (Approval) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเสรี วิริยะสกุลธรณ์ | Project Sponsor | | | diff --git a/sdlc/1-PM Process (10 Work Product)/6.Change Report/200-WMS-26-001-00 Change Report 25690810 V1.0 SeV.md b/sdlc/1-PM Process (10 Work Product)/6.Change Report/200-WMS-26-001-00 Change Report 25690810 V1.0 SeV.md new file mode 100644 index 0000000..61e7ce1 --- /dev/null +++ b/sdlc/1-PM Process (10 Work Product)/6.Change Report/200-WMS-26-001-00 Change Report 25690810 V1.0 SeV.md @@ -0,0 +1,89 @@ +# Change Report + + + +| Document No | Change Report | Release, Version, By: | 25690810 V1.0 SeV | +| Project Name | โครงการพัฒนาระบบบริหารจัดการคลังสินค้า (BRN WMS) บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด | +| Project Code | 200-WMS-26-001-00 | +| Change ID | CH-003 | วันที่ร้องขอ | 10 สิงหาคม 2569 | +| ผู้ร้องขอ (Requester) | คุณเสรี วิริยะสกุลธรณ์ (Project Sponsor) | +| หน่วยงาน/ฝ่าย | ผู้บริหาร / ฝ่ายพัฒนา | +| ประเภทการเปลี่ยนแปลง | ☒ Scope ☒ Quality ☐ Schedule ☐ Cost ☐ Resource ☐ Other | +| ความเร่งด่วน (Priority) | ☐ High ☒ Medium ☐ Low | + +## ส่วนที่ 1 : ข้อมูลทั่วไป + +| หัวข้อ | รายละเอียด | +| --- | --- | +| ชื่อการเปลี่ยนแปลง | ปรับอัตลักษณ์องค์กรและเพิ่มชุดติดตั้ง Docker Compose | +| โครงการ | โครงการพัฒนาระบบบริหารจัดการคลังสินค้า (BRN WMS) บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด | +| ระยะที่เกิดการเปลี่ยนแปลง | ช่วงดำเนินโครงการ (10 สิงหาคม 2569) | +| เอกสารที่เกี่ยวข้อง | Customer Requirements, Software Project Plan, Traceability Record | + +## ส่วนที่ 2 : รายละเอียดการเปลี่ยนแปลง + +| ลำดับ | รายการ | รายละเอียด | +| :---: | --- | --- | +| 1 | คำอธิบายการเปลี่ยนแปลงที่ต้องการ (Description) | รวมการเปลี่ยนแปลงเพื่อเตรียมส่งมอบ 2 รายการ: (1) เปลี่ยนชุดอัตลักษณ์องค์กร ได้แก่ โลโก้ (logo.png, logo.svg), Favicon และภาพหัวเอกสาร พร้อมปรับไฟล์ UI ที่อ้างอิง และ (2) เพิ่มชุดติดตั้ง Docker Compose สำหรับใช้งานจริง ประกอบด้วย Compose file, Dockerfile, แม่แบบค่าตั้งค่า, Entrypoint, SQL เริ่มต้น, .env.example และสคริปต์สร้าง .env แบบโต้ตอบ | +| 2 | เหตุผลของการเปลี่ยนแปลง (Justification) | ให้ชุดส่งมอบใช้อัตลักษณ์องค์กรของลูกค้าอย่างถูกต้อง และมีเส้นทางการติดตั้งที่ทำซ้ำได้ โดยไม่นำค่าความลับเข้า Source Control หรือฝังไว้ใน Image | + +## ส่วนที่ 3 : การประเมินผลกระทบ (Impact Analysis) + +| ลำดับ | รายการ | รายละเอียด | +| :---: | --- | --- | +| 1 | ผลกระทบต่อ Scope | ปรับแบรนด์ 23 ไฟล์ (ภาพและไฟล์ PHP/CSS 11 ไฟล์) และเพิ่มไฟล์ติดตั้ง 10 ไฟล์ | +| 2 | ผลกระทบต่อ Schedule | ดำเนินการภายในช่วงเตรียมส่งมอบ 15–17 ส.ค. 69 | +| 3 | ผลกระทบต่อ Budget/Cost | ไม่มีค่าใช้จ่ายเพิ่ม | +| 4 | ผลกระทบต่อ Resource | ผู้พัฒนา 1 คน | +| 5 | ผลกระทบต่อ Quality/Deliverables | ภาพหัวเอกสารถูกใช้ในเอกสารส่งมอบ ชุด Docker Compose สร้างค่าความลับจาก .env ขณะเริ่ม Container ตาม CR10:003 | + +## ส่วนที่ 4 : การพิจารณาอนุมัติ (Change Advisory Board Approval) + +| ลำดับ | ชื่อผู้พิจารณา | ตำแหน่ง | ความคิดเห็น / ลงนาม | +| :---: | --- | --- | --- | +| 1 | คุณอภิรัชช์ สุภัทรประทีป | Project Manager | เห็นควรอนุมัติ ผลกระทบอยู่ในวิสัยที่ควบคุมได้ | +| 2 | คุณนพพงษ์ เจริญสุข | System Analyst | สอดคล้องกับความต้องการและการออกแบบ | +| 3 | คุณปริญ งามขำ | QA / Tester | ต้องทดสอบซ้ำในส่วนที่ได้รับผลกระทบ | +| 4 | คุณเสรี วิริยะสกุลธรณ์ | Project Sponsor | อนุมัติ | + +## ส่วนที่ 5 : สรุปผลการพิจารณา + +| หัวข้อ | รายละเอียด | +| --- | --- | +| สถานะ | ☒ อนุมัติ (Approved) ☐ ไม่อนุมัติ (Rejected) | +| การอ้างอิงการดำเนินการ | Commit `63cea23, 136084f, 6c39700` | +| ผลการดำเนินการ | ดำเนินการแล้วเสร็จเมื่อ 17 ส.ค. 69 และตรวจสอบผลด้วย TC-UN13.002 และ TC-UN13.003 | + +## ภาคผนวก A : เกณฑ์การประเมินระดับความรุนแรงของการเปลี่ยนแปลง (Change Criteria) + +ตารางนี้ใช้เป็นแนวทางประเมินระดับความรุนแรง (Priority Level) ของการเปลี่ยนแปลง เพื่อให้คณะพิจารณา (Change Advisory Board – CAB) กำหนดระดับผลกระทบและความเร่งด่วนได้ชัดเจนตามมาตรฐาน ISO/IEC 29110 + +| ระดับ (Level) | คำจำกัดความ (Definition) | ตัวอย่างสถานการณ์ (Examples) | ผลกระทบ (Impact Scope) | +| --- | --- | --- | --- | +| High | การเปลี่ยนแปลงที่มีผลกระทบอย่างมีนัยสำคัญต่อระบบหลัก งบประมาณ หรือแผนโครงการ ซึ่งต้องได้รับอนุมัติจาก Project Manager และ Project Sponsor | ปรับสถาปัตยกรรมหลักของระบบ / เพิ่มฟังก์ชันหลักใหม่ / ต้องปรับงบประมาณหรือระยะเวลาโครงการ | กระทบ Scope, Schedule และ Cost โดยตรง | +| Medium | การเปลี่ยนแปลงที่มีผลกระทบต่อส่วนติดต่อผู้ใช้งานหรือฟังก์ชันย่อยบางส่วน แต่ไม่กระทบโครงสร้างหลัก | ปรับปรุงหน้าจอ / ปรับข้อความหรือตรรกะบางส่วน / เพิ่มการตรวจสอบข้อมูล | กระทบ Quality หรือ Deliverables บางส่วน | +| Low | การเปลี่ยนแปลงขนาดเล็กที่ไม่ส่งผลต่อการทำงานหลักของระบบ | แก้ไขคำสะกดหรือข้อความแสดงผล / เปลี่ยนโลโก้หรือรูปภาพ / ปรับฟอนต์หรือสี | ผลกระทบเล็กน้อยต่อ Deliverables | + +**แนวทางการใช้งาน** + +- ผู้ร้องขอ (Requester) ระบุระดับความรุนแรงตามตารางนี้ในส่วน "ความเร่งด่วน (Priority)" +- คณะพิจารณา (CAB) ใช้ตารางนี้ประกอบการพิจารณาในส่วน "การประเมินผลกระทบ (Impact Analysis)" +- หากมีข้อสงสัยในระดับผลกระทบ ให้ใช้ระดับที่สูงกว่าเพื่อความปลอดภัยของโครงการ + +## ผู้จัดทำเอกสาร (Secretary) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเสรี วิริยะสกุลธรณ์ | Project Sponsor | | | + +## ผู้ตรวจสอบเอกสาร (Reviewer) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณอภิรัชช์ สุภัทรประทีป | Project Manager | | | + +## ผู้อนุมัติ (Approval) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเสรี วิริยะสกุลธรณ์ | Project Sponsor | | | diff --git a/sdlc/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Meeting Record - Closure Preparation Checkpoint 25690814 V1.0.md b/sdlc/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Meeting Record - Closure Preparation Checkpoint 25690814 V1.0.md deleted file mode 100644 index d475279..0000000 --- a/sdlc/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Meeting Record - Closure Preparation Checkpoint 25690814 V1.0.md +++ /dev/null @@ -1,91 +0,0 @@ -# Meeting Record — Closure Preparation Checkpoint - -| Document field | Value | -|---|---| -| Document | Meeting Record | -| Meeting ID | MTG-004 | -| Project | BRN WMS | -| Project code | 200-WMS-26-001-00 | -| Phase | Project closure | -| Meeting date | 14/08/26 | -| Related Progress Status Record | Progress Status Record 12 of 13 (reporting period 04/08/26–14/08/26) | -| Milestone | Demonstration data and closure preparation | -| Organizer | Apirach Supattaratpateep — Project Manager | -| Recorder | Apirach Supattaratpateep — Project Manager | -| Release | 14/08/26 V1.0 | -| Standard | ISO/IEC 29110 Basic Profile | -| Status | Final | - -## 1. Purpose - -This record documents the project checkpoint meeting held at the demonstration data and closure preparation milestone. It is the meeting counterpart to Progress Status Record 12 of 13; the task status and evidence reported here are the same as those recorded in that Progress Status Record. - -**Implementation evidence for this checkpoint:** `dd48a8b` — Demo Data Population - -## 2. Participants - -| No. | Name | Project role | Attendance | -|---:|---|---|---| -| 1 | Seri Viriyasakultorn | Project Sponsor / Customer Representative / Authorized Approver | Attended | -| 2 | Apirach Supattaratpateep | Project Manager | Attended | -| 3 | Noppong Chareunsook | System Analyst | Attended | -| 4 | Thanakorn Sathitwitayakul | Developer | Attended | -| 5 | Parin Ngamkham | QA / Tester | Attended | -| 6 | Yaowalak Bangchomphoo | Document Control | Attended | - -Time and location were not recorded contemporaneously. - -## 3. Agenda - -| No. | Item | -|---:|---| -| 1 | Confirm population of controlled demonstration data | -| 2 | Review the completed test and validation execution of 10/08/26–14/08/26 | -| 3 | Review remaining closure work against the project end date of 24/08/26 | -| 4 | Agree the approach to remaining work products and signatures | - -## 4. Project progress - -Task 4.7 (prepare demonstration data) closed at 100% on its planned date of 14/08/26. Tasks 4.4 and 4.5 passed their planned finish of 07/08/26 and were carried forward for evidence consolidation. Tasks 5.1 and 5.2 remained open against the project end date of 24/08/26. The 34 test cases and 12 validation scenarios were executed over 10/08/26–14/08/26. - -## 5. Discussion and decisions - -The Developer confirmed that controlled demonstration data had been populated to support validation and handover. The QA/Tester reported that the 34 defined test cases had been executed on the internal testing server and the Customer Representative reported that the 12 validation scenarios had been executed on the customer production environment, all over 10/08/26–14/08/26, with no open test defect. The meeting agreed that the remaining closure work — evidence consolidation, final repository and work-product review, independent verification and acceptance signatures — would be completed within the project period ending 24/08/26. No functional scope was added and no schedule change was required. - -### Action items - -| No. | Action | Owner | Target | -|---:|---|---|---| -| 1 | Consolidate the test and validation results into the controlled work products | QA / Tester | 17/08/26 | -| 2 | Perform independent Round 2 verification of the work-product set | Document Control | 17/08/26 | -| 3 | Complete the final repository and work-product review | Project Manager / Document Control | 24/08/26 | -| 4 | Obtain Project Sponsor signatures on the controlled work products | Project Manager | 24/08/26 | - -### Next checkpoint - -Closure activities continue to the project end date of 24/08/26. - -## 6. Approval - -### Prepared by - -Name: Apirach Supattaratpateep -Role: Project Manager -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Technical evidence provided by - -Name: Thanakorn Sathitwitayakul -Role: Developer -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Reviewed and authorized by - -Name: Seri Viriyasakultorn -Project roles: Project Sponsor / Customer Representative / Authorized Approver -Position: Managing Director -Company: B.R.N. Enterprise Co., Ltd. -Signature: ______________________________________________ -Date: ___________________________________________________ diff --git a/sdlc/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Meeting Record - Development Substantially Complete Checkpoint 25690529 V1.0.md b/sdlc/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Meeting Record - Development Substantially Complete Checkpoint 25690529 V1.0.md deleted file mode 100644 index 712cd3e..0000000 --- a/sdlc/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Meeting Record - Development Substantially Complete Checkpoint 25690529 V1.0.md +++ /dev/null @@ -1,90 +0,0 @@ -# Meeting Record — Development Substantially Complete Checkpoint - -| Document field | Value | -|---|---| -| Document | Meeting Record | -| Meeting ID | MTG-002 | -| Project | BRN WMS | -| Project code | 200-WMS-26-001-00 | -| Phase | Execution — development baseline | -| Meeting date | 29/05/26 | -| Related Progress Status Record | Progress Status Record 9 of 13 (reporting period 24/05/26–29/05/26) | -| Milestone | Development baseline | -| Organizer | Apirach Supattaratpateep — Project Manager | -| Recorder | Apirach Supattaratpateep — Project Manager | -| Release | 29/05/26 V1.0 | -| Standard | ISO/IEC 29110 Basic Profile | -| Status | Final | - -## 1. Purpose - -This record documents the project checkpoint meeting held at the development baseline milestone. It is the meeting counterpart to Progress Status Record 9 of 13; the task status and evidence reported here are the same as those recorded in that Progress Status Record. - -**Implementation evidence for this checkpoint:** `a0677d6` — Classe methods: remove reducdancy (final main-development commit) - -## 2. Participants - -| No. | Name | Project role | Attendance | -|---:|---|---|---| -| 1 | Seri Viriyasakultorn | Project Sponsor / Customer Representative / Authorized Approver | Attended | -| 2 | Apirach Supattaratpateep | Project Manager | Attended | -| 3 | Noppong Chareunsook | System Analyst | Attended | -| 4 | Thanakorn Sathitwitayakul | Developer | Attended | -| 5 | Parin Ngamkham | QA / Tester | Attended | -| 6 | Yaowalak Bangchomphoo | Document Control | Attended | - -Time and location were not recorded contemporaneously. - -## 3. Agenda - -| No. | Item | -|---:|---| -| 1 | Confirm completion of the implementation tasks 3.1–3.10 | -| 2 | Review security hardening and lifecycle review outcomes | -| 3 | Review the corrections raised during implementation | -| 4 | Agree the transition to verification, validation and documentation | - -## 4. Project progress - -Tasks 3.8 (real-time services and scheduled jobs), 3.9 (security hardening and lifecycle review) and 3.10 (refactor and development baseline) all closed at 100% on their planned dates. The substantially complete development baseline was reached as scheduled on 29/05/26. - -## 5. Discussion and decisions - -The Developer confirmed that all planned implementation tasks were complete and that the security hardening and document-lifecycle reviews had been carried out, with the resulting fixes recorded in the Correction Register. The meeting agreed that the development baseline was reached and that the project would move to verification, validation and operational documentation from 30/05/26. It was noted that formal verification, validation and acceptance evidence still had to be consolidated after development. - -### Action items - -| No. | Action | Owner | Target | -|---:|---|---|---| -| 1 | Consolidate verification and validation evidence against the requirement baseline | Reviewer / Tester | 31/07/26 | -| 2 | Prepare user, operation and maintenance documentation | Developer / Document Control | 07/08/26 | -| 3 | Link implementation corrections to test evidence in the Correction Register | Developer / QA | Before acceptance | - -### Next checkpoint - -At the stabilization milestone. - -## 6. Approval - -### Prepared by - -Name: Apirach Supattaratpateep -Role: Project Manager -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Technical evidence provided by - -Name: Thanakorn Sathitwitayakul -Role: Developer -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Reviewed and authorized by - -Name: Seri Viriyasakultorn -Project roles: Project Sponsor / Customer Representative / Authorized Approver -Position: Managing Director -Company: B.R.N. Enterprise Co., Ltd. -Signature: ______________________________________________ -Date: ___________________________________________________ diff --git a/sdlc/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Meeting Record - Project Initiation Checkpoint 25690213 V1.0.md b/sdlc/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Meeting Record - Project Initiation Checkpoint 25690213 V1.0.md deleted file mode 100644 index dd50f9e..0000000 --- a/sdlc/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Meeting Record - Project Initiation Checkpoint 25690213 V1.0.md +++ /dev/null @@ -1,90 +0,0 @@ -# Meeting Record — Project Initiation Checkpoint - -| Document field | Value | -|---|---| -| Document | Meeting Record | -| Meeting ID | MTG-001 | -| Project | BRN WMS | -| Project code | 200-WMS-26-001-00 | -| Phase | Planning — authorization to begin implementation | -| Meeting date | 13/02/26 | -| Related Progress Status Record | Progress Status Record 2 of 13 (reporting period 12/01/26–18/02/26) | -| Milestone | Authorization of development start | -| Organizer | Apirach Supattaratpateep — Project Manager | -| Recorder | Apirach Supattaratpateep — Project Manager | -| Release | 13/02/26 V1.0 | -| Standard | ISO/IEC 29110 Basic Profile | -| Status | Final | - -## 1. Purpose - -This record documents the project checkpoint meeting held to authorize the start of development. It is the meeting counterpart to Progress Status Record 2 of 13; the task status reported here is the same as that recorded in that Progress Status Record. - -This is a planning-phase authorization meeting held ahead of the implementation start date, so it records decisions taken rather than work completed. - -## 2. Participants - -| No. | Name | Project role | Attendance | -|---:|---|---|---| -| 1 | Seri Viriyasakultorn | Project Sponsor / Customer Representative / Authorized Approver | Attended | -| 2 | Apirach Supattaratpateep | Project Manager | Attended | -| 3 | Noppong Chareunsook | System Analyst | Attended | -| 4 | Thanakorn Sathitwitayakul | Developer | Attended | -| 5 | Parin Ngamkham | QA / Tester | Attended | -| 6 | Yaowalak Bangchomphoo | Document Control | Attended | - -Time and location were not recorded contemporaneously. - -## 3. Agenda - -| No. | Item | -|---:|---| -| 1 | Confirm the requirements and planning baseline ahead of its 18/02/26 finish | -| 2 | Authorize the start of controlled software implementation | -| 3 | Confirm repository, branch, and configuration-control arrangements | -| 4 | Confirm roles and reporting cadence for the execution phase | - -## 4. Project progress - -Tasks 2.1 (collect customer requirements) and 2.2 (prepare the Software Project Plan) were reported complete. Task 2.3 (baseline requirements and schedule) was on track for its planned finish of 18/02/26, after which task 3.1 (initialize WMS application) would open with a planned start of 19/02/26. - -## 5. Discussion and decisions - -The Project Sponsor confirmed the requirements baseline and authorized development to begin on 19/02/26, once task 2.3 closes on 18/02/26. It was agreed that `main` would be the controlled integration baseline, that local configuration and secrets would be excluded from source control, and that progress would be reported per the Work Schedule task breakdown. No scope change was raised. - -### Action items - -| No. | Action | Owner | Target | -|---:|---|---|---| -| 1 | Initialize the application repository and baseline structure, starting 19/02/26 | Developer | 25/02/26 | -| 2 | Maintain progress reporting against the Work Schedule task IDs | Project Manager | Ongoing | -| 3 | Keep configuration and secrets out of version control | Developer | Ongoing | - -### Next checkpoint - -At the development baseline milestone. - -## 6. Approval - -### Prepared by - -Name: Apirach Supattaratpateep -Role: Project Manager -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Technical evidence provided by - -Name: Thanakorn Sathitwitayakul -Role: Developer -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Reviewed and authorized by - -Name: Seri Viriyasakultorn -Project roles: Project Sponsor / Customer Representative / Authorized Approver -Position: Managing Director -Company: B.R.N. Enterprise Co., Ltd. -Signature: ______________________________________________ -Date: ___________________________________________________ diff --git a/sdlc/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Meeting Record - Stabilization Checkpoint 25690803 V1.0.md b/sdlc/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Meeting Record - Stabilization Checkpoint 25690803 V1.0.md deleted file mode 100644 index 2842d69..0000000 --- a/sdlc/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Meeting Record - Stabilization Checkpoint 25690803 V1.0.md +++ /dev/null @@ -1,89 +0,0 @@ -# Meeting Record — Stabilization Checkpoint - -| Document field | Value | -|---|---| -| Document | Meeting Record | -| Meeting ID | MTG-003 | -| Project | BRN WMS | -| Project code | 200-WMS-26-001-00 | -| Phase | Stabilization | -| Meeting date | 03/08/26 | -| Related Progress Status Record | Progress Status Record 11 of 13 (reporting period 03/08/26) | -| Milestone | Post-development correction | -| Organizer | Apirach Supattaratpateep — Project Manager | -| Recorder | Apirach Supattaratpateep — Project Manager | -| Release | 03/08/26 V1.0 | -| Standard | ISO/IEC 29110 Basic Profile | -| Status | Final | - -## 1. Purpose - -This record documents the project checkpoint meeting held at the post-development correction milestone. It is the meeting counterpart to Progress Status Record 11 of 13; the task status and evidence reported here are the same as those recorded in that Progress Status Record. - -**Implementation evidence for this checkpoint:** `b2c4374` — fix login and configurations - -## 2. Participants - -| No. | Name | Project role | Attendance | -|---:|---|---|---| -| 1 | Seri Viriyasakultorn | Project Sponsor / Customer Representative / Authorized Approver | Attended | -| 2 | Apirach Supattaratpateep | Project Manager | Attended | -| 3 | Noppong Chareunsook | System Analyst | Attended | -| 4 | Thanakorn Sathitwitayakul | Developer | Attended | -| 5 | Parin Ngamkham | QA / Tester | Attended | -| 6 | Yaowalak Bangchomphoo | Document Control | Attended | - -Time and location were not recorded contemporaneously. - -## 3. Agenda - -| No. | Item | -|---:|---| -| 1 | Review the login and environment configuration corrections made after the development baseline | -| 2 | Review the status of verification, validation and documentation tasks | -| 3 | Confirm the plan for demonstration data and final delivery checks | - -## 4. Project progress - -Task 4.6 (configuration and login corrections) closed at 100% on its planned date of 03/08/26. Verification, validation and documentation tasks 4.3–4.5 remained in progress and were carried forward. - -## 5. Discussion and decisions - -The Developer reported that login and environment configuration issues identified after the development baseline had been corrected and committed. The meeting noted that the correction required linkage to the Correction Register and to verification evidence before closure. Verification and validation evidence consolidation was confirmed as the critical path to acceptance, and preparation of representative demonstration data was agreed as the next step. - -### Action items - -| No. | Action | Owner | Target | -|---:|---|---|---| -| 1 | Record the correction in the Correction Register and link it to verification evidence | Developer | Before acceptance | -| 2 | Prepare representative demonstration data for validation and handover | Developer / Tester | 14/08/26 | -| 3 | Complete consolidation of verification and validation evidence | Project Manager / QA | Before closure | - -### Next checkpoint - -At the closure preparation milestone. - -## 6. Approval - -### Prepared by - -Name: Apirach Supattaratpateep -Role: Project Manager -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Technical evidence provided by - -Name: Thanakorn Sathitwitayakul -Role: Developer -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Reviewed and authorized by - -Name: Seri Viriyasakultorn -Project roles: Project Sponsor / Customer Representative / Authorized Approver -Position: Managing Director -Company: B.R.N. Enterprise Co., Ltd. -Signature: ______________________________________________ -Date: ___________________________________________________ diff --git a/sdlc/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690105 V1.0 YaB.md b/sdlc/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690105 V1.0 YaB.md new file mode 100644 index 0000000..1610edf --- /dev/null +++ b/sdlc/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690105 V1.0 YaB.md @@ -0,0 +1,84 @@ +# Minutes Of Meeting + + + +| Document No | Minutes Of Meeting | Release, Version, By: | 25690105 V1.0 YaB | +| Project Name | โครงการพัฒนาระบบบริหารจัดการคลังสินค้า (BRN WMS) บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด | +| Project Code | 200-WMS-26-001-00 | +| Phase | Project Initiation | +| Task ID / Task Name | 1.1 Kick-off Meeting | +| Work Period of Task | 5 มกราคม 2569 – 9 มกราคม 2569 | +| Meeting Date | 5 มกราคม 2569 | Time | 09:00 – 11:00 น. | +| สิ่งแนบ | - | +| Location | ห้องประชุม บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด | +| Organizer | คุณอภิรัชช์ สุภัทรประทีป (Project Manager) , คุณนพพงษ์ เจริญสุข (System Analyst) | +| Recorder | คุณเยาวลักษณ์ บางชมภู (Document Control) | +| สำเนาถึง (CC) | คุณเสรี วิริยะสกุลธรณ์ (Project Sponsor) | + +## ผู้เข้าร่วมประชุม (Participants) + +| ชื่อ - สกุล | ชื่อย่อ | ตำแหน่ง/บทบาท | (✔ เข้าร่วม / ✘ ไม่เข้าร่วม) | +| --- | :---: | --- | :---: | +| คุณเสรี วิริยะสกุลธรณ์ | SeV | Project Sponsor | ✔ | +| คุณอภิรัชช์ สุภัทรประทีป | ApS | Project Manager | ✔ | +| คุณนพพงษ์ เจริญสุข | NoC | System Analyst | ✔ | +| คุณธนกร สถิตวิทยากุล | ThS | Developer | ✔ | +| คุณปริญ งามขำ | PaNg | QA/Tester | ✔ | +| คุณเยาวลักษณ์ บางชมภู | YaB | Document Control | ✔ | + +## ความคืบหน้ารวมของโครงการ (Project Progress) + +| หมวดงาน | สถานะ | ความคืบหน้า (%) | รายละเอียด | +| --- | :---: | ---: | --- | +| Phase 1: Project Initiation | กำลังดำเนินการ | 20 | เปิดโครงการและชี้แจงทีมงานเรียบร้อย | +| รวมความคืบหน้าทั้งโครงการ | ตามแผน | 5 | โครงการเริ่มต้นตามกำหนด พร้อมเข้าสู่ขั้นตอน Identify Stakeholders | + +## หัวข้อการประชุม (Agenda) + +| ลำดับ | หัวข้อการประชุม | วัตถุประสงค์ | +| :---: | --- | --- | +| 1 | แนะนำสมาชิกทีมโครงการ | สร้างความเข้าใจบทบาทและหน้าที่ | +| 2 | ทบทวนความจำเป็นและวัตถุประสงค์ของระบบคลังสินค้า | กำหนดเป้าหมายร่วมกัน | +| 3 | ภาพรวมระบบงาน 11 ระบบที่จะพัฒนา | เห็นขอบเขตและแผนการพัฒนา | +| 4 | สรุปแผนโครงการ 232 วัน | ยืนยัน Timeline 5 ม.ค. – 24 ส.ค. 69 | +| 5 | กำหนดรอบการประชุมและการรายงานความก้าวหน้า | ตั้งรอบประชุม ผู้รับผิดชอบ และเอกสารอ้างอิง | + +## สรุปรายงานการประชุม (Discussion Summary) + +| ลำดับ | ประเด็น | รายละเอียด / มติที่ได้ | ผู้รับผิดชอบ | สถานะ | +| :---: | --- | --- | :---: | :---: | +| 1 | วัตถุประสงค์โครงการ | พัฒนาระบบบริหารจัดการคลังสินค้าแบบรวมศูนย์ รองรับหลายบริษัทและหลายคลัง | SeV, ApS | ยืนยันแล้ว | +| 2 | ระยะเวลาโครงการ | ระยะเวลา 232 วัน ตั้งแต่ 5 ม.ค. – 24 ส.ค. 69 | ApS | อนุมัติ | +| 3 | ทรัพยากรและทีมงาน | ทีมหลัก 6 คน ครบบทบาท PM, SA, Developer, QA, Document Control และ Project Sponsor | ApS, YaB | ผ่านการอนุมัติ | +| 4 | Project Repository | ใช้ Git Server เป็นศูนย์กลางเก็บ Source Code และเอกสารโครงการ | ThS, YaB | ดำเนินการแล้ว | + +## งานที่ต้องติดตาม (Action Item) + +| ลำดับ | งาน | ผู้รับผิดชอบ | วันครบกำหนด | สถานะ | +| :---: | --- | :---: | :---: | :---: | +| 1 | จัดทำ Stakeholder Register (Task 1.2) | ApS, YaB | 16 มกราคม 2569 | Scheduled | +| 2 | เตรียม Repository และโครงสร้างโฟลเดอร์เอกสารโครงการ | ThS | 16 มกราคม 2569 | Scheduled | + +## งานประชุมครั้งถัดไป (Next Meeting) + +| หัวข้อการประชุมถัดไป | วันที่ | ผู้จัดประชุม | วัตถุประสงค์ | +| --- | :---: | --- | --- | +| ทบทวนรายชื่อผู้มีส่วนได้ส่วนเสียและกำหนดวัตถุประสงค์โครงการ | 16 มกราคม 2569 | คุณอภิรัชช์ สุภัทรประทีป (ApS) | ติดตามความคืบหน้าและมติที่เกี่ยวข้อง | + +## ผู้จัดทำเอกสาร (Secretary) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเยาวลักษณ์ บางชมภู | Document Control | | | + +## ผู้ตรวจสอบเอกสาร (Reviewer) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณอภิรัชช์ สุภัทรประทีป | Project Manager | | | + +## ผู้อนุมัติ (Approval) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเสรี วิริยะสกุลธรณ์ | Project Sponsor | | | 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 new file mode 100644 index 0000000..a1f5e90 --- /dev/null +++ b/sdlc/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690123 V1.0 YaB.md @@ -0,0 +1,82 @@ +# Minutes Of Meeting + + + +| Document No | Minutes Of Meeting | Release, Version, By: | 25690123 V1.0 YaB | +| Project Name | โครงการพัฒนาระบบบริหารจัดการคลังสินค้า (BRN WMS) บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด | +| Project Code | 200-WMS-26-001-00 | +| Phase | Project Initiation | +| Task ID / Task Name | 1.4 Approve Project Charter | +| Work Period of Task | 22 มกราคม 2569 – 23 มกราคม 2569 | +| Meeting Date | 23 มกราคม 2569 | Time | 09:00 – 11:00 น. | +| สิ่งแนบ | Project Charter Report, Stakeholder Register | +| Location | ห้องประชุม บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด | +| Organizer | คุณอภิรัชช์ สุภัทรประทีป (Project Manager) , คุณนพพงษ์ เจริญสุข (System Analyst) | +| Recorder | คุณเยาวลักษณ์ บางชมภู (Document Control) | +| สำเนาถึง (CC) | คุณเสรี วิริยะสกุลธรณ์ (Project Sponsor) | + +## ผู้เข้าร่วมประชุม (Participants) + +| ชื่อ - สกุล | ชื่อย่อ | ตำแหน่ง/บทบาท | (✔ เข้าร่วม / ✘ ไม่เข้าร่วม) | +| --- | :---: | --- | :---: | +| คุณเสรี วิริยะสกุลธรณ์ | SeV | Project Sponsor | ✔ | +| คุณอภิรัชช์ สุภัทรประทีป | ApS | Project Manager | ✔ | +| คุณนพพงษ์ เจริญสุข | NoC | System Analyst | ✔ | +| คุณธนกร สถิตวิทยากุล | ThS | Developer | ✔ | +| คุณปริญ งามขำ | PaNg | QA/Tester | ✔ | +| คุณเยาวลักษณ์ บางชมภู | YaB | Document Control | ✔ | + +## ความคืบหน้ารวมของโครงการ (Project Progress) + +| หมวดงาน | สถานะ | ความคืบหน้า (%) | รายละเอียด | +| --- | :---: | ---: | --- | +| Phase 1: Project Initiation | เสร็จสมบูรณ์ | 100 | อนุมัติ Project Charter และขอบเขตงานครบถ้วน | +| Phase 2: Project Planning | กำลังดำเนินการ | 30 | อยู่ระหว่างเก็บความต้องการลูกค้า | +| รวมความคืบหน้าทั้งโครงการ | ตามแผน | 12 | เข้าสู่ขั้นตอนวางแผนโครงการตามกำหนด | + +## หัวข้อการประชุม (Agenda) + +| ลำดับ | หัวข้อการประชุม | วัตถุประสงค์ | +| :---: | --- | --- | +| 1 | พิจารณาอนุมัติกฎบัตรโครงการ (Project Charter) | ยืนยันวัตถุประสงค์ ขอบเขต และงบประมาณ | +| 2 | ทบทวน Stakeholder Register | ยืนยันบทบาทและระดับการมีส่วนร่วม | +| 3 | แผนการเก็บความต้องการลูกค้า | กำหนดผู้ให้ข้อมูลและกรอบเวลา | + +## สรุปรายงานการประชุม (Discussion Summary) + +| ลำดับ | ประเด็น | รายละเอียด / มติที่ได้ | ผู้รับผิดชอบ | สถานะ | +| :---: | --- | --- | :---: | :---: | +| 1 | อนุมัติกฎบัตรโครงการ | Project Sponsor อนุมัติวัตถุประสงค์ ขอบเขต 11 ระบบงาน และเกณฑ์ความสำเร็จ | SeV | อนุมัติ | +| 2 | ผู้มีส่วนได้ส่วนเสีย | ยืนยันผู้รับผิดชอบตาม RACI ครบทุกบทบาท | ApS, YaB | ยืนยันแล้ว | +| 3 | การเก็บความต้องการ | มอบหมาย System Analyst สัมภาษณ์ฝ่ายคลังสินค้า ขาย จัดซื้อ และบัญชี | NoC | ดำเนินการ | + +## งานที่ต้องติดตาม (Action Item) + +| ลำดับ | งาน | ผู้รับผิดชอบ | วันครบกำหนด | สถานะ | +| :---: | --- | :---: | :---: | :---: | +| 1 | เก็บและสรุปความต้องการลูกค้า CR01–CR14 (Task 2.1) | NoC, ApS | 6 กุมภาพันธ์ 2569 | Scheduled | +| 2 | จัดทำร่าง Software Project Plan และ Work Schedule (Task 2.2) | ApS | 13 กุมภาพันธ์ 2569 | Scheduled | + +## งานประชุมครั้งถัดไป (Next Meeting) + +| หัวข้อการประชุมถัดไป | วันที่ | ผู้จัดประชุม | วัตถุประสงค์ | +| --- | :---: | --- | --- | +| สรุปความต้องการลูกค้าและทบทวนร่างแผนโครงการ | 6 กุมภาพันธ์ 2569 | คุณอภิรัชช์ สุภัทรประทีป (ApS) | ติดตามความคืบหน้าและมติที่เกี่ยวข้อง | + +## ผู้จัดทำเอกสาร (Secretary) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเยาวลักษณ์ บางชมภู | Document Control | | | + +## ผู้ตรวจสอบเอกสาร (Reviewer) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณอภิรัชช์ สุภัทรประทีป | Project Manager | | | + +## ผู้อนุมัติ (Approval) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเสรี วิริยะสกุลธรณ์ | Project Sponsor | | | diff --git a/sdlc/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690218 V1.0 YaB.md b/sdlc/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690218 V1.0 YaB.md new file mode 100644 index 0000000..d14a9df --- /dev/null +++ b/sdlc/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690218 V1.0 YaB.md @@ -0,0 +1,83 @@ +# Minutes Of Meeting + + + +| Document No | Minutes Of Meeting | Release, Version, By: | 25690218 V1.0 YaB | +| Project Name | โครงการพัฒนาระบบบริหารจัดการคลังสินค้า (BRN WMS) บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด | +| Project Code | 200-WMS-26-001-00 | +| Phase | Project Planning | +| Task ID / Task Name | 2.3 Baseline Requirements & Schedule | +| Work Period of Task | 16 กุมภาพันธ์ 2569 – 18 กุมภาพันธ์ 2569 | +| Meeting Date | 18 กุมภาพันธ์ 2569 | Time | 09:00 – 11:00 น. | +| สิ่งแนบ | Customer Requirements, Software Project Plan, Work Schedule | +| Location | ห้องประชุม บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด | +| Organizer | คุณอภิรัชช์ สุภัทรประทีป (Project Manager) , คุณนพพงษ์ เจริญสุข (System Analyst) | +| Recorder | คุณเยาวลักษณ์ บางชมภู (Document Control) | +| สำเนาถึง (CC) | คุณเสรี วิริยะสกุลธรณ์ (Project Sponsor) | + +## ผู้เข้าร่วมประชุม (Participants) + +| ชื่อ - สกุล | ชื่อย่อ | ตำแหน่ง/บทบาท | (✔ เข้าร่วม / ✘ ไม่เข้าร่วม) | +| --- | :---: | --- | :---: | +| คุณเสรี วิริยะสกุลธรณ์ | SeV | Project Sponsor | ✔ | +| คุณอภิรัชช์ สุภัทรประทีป | ApS | Project Manager | ✔ | +| คุณนพพงษ์ เจริญสุข | NoC | System Analyst | ✔ | +| คุณธนกร สถิตวิทยากุล | ThS | Developer | ✔ | +| คุณปริญ งามขำ | PaNg | QA/Tester | ✔ | +| คุณเยาวลักษณ์ บางชมภู | YaB | Document Control | ✔ | + +## ความคืบหน้ารวมของโครงการ (Project Progress) + +| หมวดงาน | สถานะ | ความคืบหน้า (%) | รายละเอียด | +| --- | :---: | ---: | --- | +| Phase 1: Project Initiation | เสร็จสมบูรณ์ | 100 | ปิดขั้นตอนเริ่มต้นโครงการ | +| Phase 2: Project Planning | เสร็จสมบูรณ์ | 100 | ตั้ง Baseline ความต้องการและแผนงานเรียบร้อย | +| รวมความคืบหน้าทั้งโครงการ | ตามแผน | 20 | พร้อมเริ่มพัฒนาระบบ 19 ก.พ. 69 | + +## หัวข้อการประชุม (Agenda) + +| ลำดับ | หัวข้อการประชุม | วัตถุประสงค์ | +| :---: | --- | --- | +| 1 | ทบทวนความต้องการลูกค้า CR01–CR14 | ยืนยันความครบถ้วนและความเป็นไปได้ | +| 2 | ทบทวน Software Project Plan และ Work Schedule | ยืนยันแผนงาน ทรัพยากร และความเสี่ยง | +| 3 | อนุมัติเริ่มพัฒนาระบบ | ยืนยันวันเริ่มพัฒนาและการควบคุม Source Code | + +## สรุปรายงานการประชุม (Discussion Summary) + +| ลำดับ | ประเด็น | รายละเอียด / มติที่ได้ | ผู้รับผิดชอบ | สถานะ | +| :---: | --- | --- | :---: | :---: | +| 1 | ความต้องการลูกค้า | ความต้องการ 80 รายการ จัดหมวด CR01–CR14 ผลสรุปยอมรับ (A) ทุกรายการ | NoC, SeV | อนุมัติ | +| 2 | แผนโครงการและความเสี่ยง | ยืนยันแผน 232 วัน ความเสี่ยง R1–R8 และแผนสำรองงานที่ไม่แล้วเสร็จ | ApS | อนุมัติ | +| 3 | การควบคุม Source Code | กำหนด main เป็น Baseline หลัก ไม่นำค่าตั้งค่าและความลับเข้า Git | ThS, YaB | บังคับใช้ทันที | + +## งานที่ต้องติดตาม (Action Item) + +| ลำดับ | งาน | ผู้รับผิดชอบ | วันครบกำหนด | สถานะ | +| :---: | --- | :---: | :---: | :---: | +| 1 | เริ่มพัฒนาระบบตาม Task 3.1 ในวันที่ 19 ก.พ. 69 | ThS, NoC | 25 กุมภาพันธ์ 2569 | Scheduled | +| 2 | จัดทำ SRS และเอกสารออกแบบระบบ | NoC, ThS | 25 กุมภาพันธ์ 2569 | Scheduled | +| 3 | รายงานความก้าวหน้าตามรหัสงานใน Work Schedule | ApS | 24 สิงหาคม 2569 | Ongoing | + +## งานประชุมครั้งถัดไป (Next Meeting) + +| หัวข้อการประชุมถัดไป | วันที่ | ผู้จัดประชุม | วัตถุประสงค์ | +| --- | :---: | --- | --- | +| ติดตามการจัดทำ SRS เอกสารออกแบบ และการเริ่มพัฒนาระบบ | 25 กุมภาพันธ์ 2569 | คุณอภิรัชช์ สุภัทรประทีป (ApS) | ติดตามความคืบหน้าและมติที่เกี่ยวข้อง | + +## ผู้จัดทำเอกสาร (Secretary) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเยาวลักษณ์ บางชมภู | Document Control | | | + +## ผู้ตรวจสอบเอกสาร (Reviewer) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณอภิรัชช์ สุภัทรประทีป | Project Manager | | | + +## ผู้อนุมัติ (Approval) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเสรี วิริยะสกุลธรณ์ | Project Sponsor | | | diff --git a/sdlc/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690317 V1.0 YaB.md b/sdlc/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690317 V1.0 YaB.md new file mode 100644 index 0000000..55160a9 --- /dev/null +++ b/sdlc/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690317 V1.0 YaB.md @@ -0,0 +1,81 @@ +# Minutes Of Meeting + + + +| Document No | Minutes Of Meeting | Release, Version, By: | 25690317 V1.0 YaB | +| Project Name | โครงการพัฒนาระบบบริหารจัดการคลังสินค้า (BRN WMS) บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด | +| Project Code | 200-WMS-26-001-00 | +| Phase | Project Execution | +| Task ID / Task Name | 3.2 Security & Database Foundation | +| Work Period of Task | 9 มีนาคม 2569 – 17 มีนาคม 2569 | +| Meeting Date | 17 มีนาคม 2569 | Time | 09:00 – 11:00 น. | +| สิ่งแนบ | Progress Status Record 17 มี.ค. 69 | +| Location | ห้องประชุม บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด | +| Organizer | คุณอภิรัชช์ สุภัทรประทีป (Project Manager) , คุณนพพงษ์ เจริญสุข (System Analyst) | +| Recorder | คุณเยาวลักษณ์ บางชมภู (Document Control) | +| สำเนาถึง (CC) | คุณเสรี วิริยะสกุลธรณ์ (Project Sponsor) | + +## ผู้เข้าร่วมประชุม (Participants) + +| ชื่อ - สกุล | ชื่อย่อ | ตำแหน่ง/บทบาท | (✔ เข้าร่วม / ✘ ไม่เข้าร่วม) | +| --- | :---: | --- | :---: | +| คุณเสรี วิริยะสกุลธรณ์ | SeV | Project Sponsor | ✔ | +| คุณอภิรัชช์ สุภัทรประทีป | ApS | Project Manager | ✔ | +| คุณนพพงษ์ เจริญสุข | NoC | System Analyst | ✔ | +| คุณธนกร สถิตวิทยากุล | ThS | Developer | ✔ | +| คุณปริญ งามขำ | PaNg | QA/Tester | ✔ | +| คุณเยาวลักษณ์ บางชมภู | YaB | Document Control | ✔ | + +## ความคืบหน้ารวมของโครงการ (Project Progress) + +| หมวดงาน | สถานะ | ความคืบหน้า (%) | รายละเอียด | +| --- | :---: | ---: | --- | +| Phase 3: Project Execution | กำลังดำเนินการ | 25 | พัฒนาฐานข้อมูลสต๊อกและโมดูล ICS เบื้องต้น | +| รวมความคืบหน้าทั้งโครงการ | ตามแผน | 30 | การพัฒนาเป็นไปตามแผน | + +## หัวข้อการประชุม (Agenda) + +| ลำดับ | หัวข้อการประชุม | วัตถุประสงค์ | +| :---: | --- | --- | +| 1 | ผลการแก้ไขตามผลตรวจความปลอดภัย | ยืนยันการปิดข้อบกพร่อง ISS-001 | +| 2 | การออกแบบฐานข้อมูลสต๊อกและโมดูล ICS | ทบทวนโครงสร้างตารางและความสัมพันธ์ | +| 3 | แผนพัฒนาโมดูลคลังสินค้าและรายงาน | ยืนยันลำดับงานช่วงเดือนเมษายน | + +## สรุปรายงานการประชุม (Discussion Summary) + +| ลำดับ | ประเด็น | รายละเอียด / มติที่ได้ | ผู้รับผิดชอบ | สถานะ | +| :---: | --- | --- | :---: | :---: | +| 1 | ความปลอดภัยของระบบ | ถอดไฟล์ตั้งค่าออกจาก Git และแก้ไขตามผลตรวจความปลอดภัยครบถ้วน | ThS | เสร็จสิ้น | +| 2 | ฐานข้อมูลสต๊อก | ยืนยันโครงสร้างตาราง td_stock และตารางข้อมูลหลักที่เกี่ยวข้อง | NoC, ThS | ยืนยันแล้ว | +| 3 | แผนงานถัดไป | พัฒนาแดชบอร์ดสต๊อก สินค้า ความจุคลัง และรายงาน | ThS | ดำเนินการ | + +## งานที่ต้องติดตาม (Action Item) + +| ลำดับ | งาน | ผู้รับผิดชอบ | วันครบกำหนด | สถานะ | +| :---: | --- | :---: | :---: | :---: | +| 1 | บันทึกการแก้ไข ISS-001 ใน Correction Register | YaB | 20 มีนาคม 2569 | Scheduled | +| 2 | พัฒนาโมดูลคลังสินค้าและรายงาน (Task 3.3) | ThS | 29 เมษายน 2569 | Scheduled | + +## งานประชุมครั้งถัดไป (Next Meeting) + +| หัวข้อการประชุมถัดไป | วันที่ | ผู้จัดประชุม | วัตถุประสงค์ | +| --- | :---: | --- | --- | +| ติดตามการพัฒนาโมดูลคลังสินค้า สินค้า และรายงาน | 29 เมษายน 2569 | คุณอภิรัชช์ สุภัทรประทีป (ApS) | ติดตามความคืบหน้าและมติที่เกี่ยวข้อง | + +## ผู้จัดทำเอกสาร (Secretary) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเยาวลักษณ์ บางชมภู | Document Control | | | + +## ผู้ตรวจสอบเอกสาร (Reviewer) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณอภิรัชช์ สุภัทรประทีป | Project Manager | | | + +## ผู้อนุมัติ (Approval) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเสรี วิริยะสกุลธรณ์ | Project Sponsor | | | diff --git a/sdlc/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690429 V1.0 YaB.md b/sdlc/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690429 V1.0 YaB.md new file mode 100644 index 0000000..854e376 --- /dev/null +++ b/sdlc/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690429 V1.0 YaB.md @@ -0,0 +1,81 @@ +# Minutes Of Meeting + + + +| Document No | Minutes Of Meeting | Release, Version, By: | 25690429 V1.0 YaB | +| Project Name | โครงการพัฒนาระบบบริหารจัดการคลังสินค้า (BRN WMS) บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด | +| Project Code | 200-WMS-26-001-00 | +| Phase | Project Execution | +| Task ID / Task Name | 3.3 Inventory & Warehouse Modules | +| Work Period of Task | 9 เมษายน 2569 – 29 เมษายน 2569 | +| Meeting Date | 29 เมษายน 2569 | Time | 09:00 – 11:00 น. | +| สิ่งแนบ | Progress Status Record 29 เม.ย. 69 | +| Location | ห้องประชุม บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด | +| Organizer | คุณอภิรัชช์ สุภัทรประทีป (Project Manager) , คุณนพพงษ์ เจริญสุข (System Analyst) | +| Recorder | คุณเยาวลักษณ์ บางชมภู (Document Control) | +| สำเนาถึง (CC) | คุณเสรี วิริยะสกุลธรณ์ (Project Sponsor) | + +## ผู้เข้าร่วมประชุม (Participants) + +| ชื่อ - สกุล | ชื่อย่อ | ตำแหน่ง/บทบาท | (✔ เข้าร่วม / ✘ ไม่เข้าร่วม) | +| --- | :---: | --- | :---: | +| คุณเสรี วิริยะสกุลธรณ์ | SeV | Project Sponsor | ✔ | +| คุณอภิรัชช์ สุภัทรประทีป | ApS | Project Manager | ✔ | +| คุณนพพงษ์ เจริญสุข | NoC | System Analyst | ✔ | +| คุณธนกร สถิตวิทยากุล | ThS | Developer | ✔ | +| คุณปริญ งามขำ | PaNg | QA/Tester | ✔ | +| คุณเยาวลักษณ์ บางชมภู | YaB | Document Control | ✔ | + +## ความคืบหน้ารวมของโครงการ (Project Progress) + +| หมวดงาน | สถานะ | ความคืบหน้า (%) | รายละเอียด | +| --- | :---: | ---: | --- | +| Phase 3: Project Execution | กำลังดำเนินการ | 50 | พัฒนาโมดูลคลังสินค้า สินค้า Lot/Serial/Expiry และรายงานเสร็จ | +| รวมความคืบหน้าทั้งโครงการ | ตามแผน | 45 | เข้าสู่การพัฒนาระบบสิทธิ์และเอกสารธุรกิจ | + +## หัวข้อการประชุม (Agenda) + +| ลำดับ | หัวข้อการประชุม | วัตถุประสงค์ | +| :---: | --- | --- | +| 1 | ผลการพัฒนาโมดูลคลังสินค้าและรายงาน | ตรวจสอบความครบถ้วนตาม CR01:005–CR01:012 | +| 2 | ประเด็นความถูกต้องของข้อมูล | พิจารณาการแก้ไข ISS-002 | +| 3 | แผนพัฒนาระบบสิทธิ์ ใบสั่งขาย และบาร์โค้ด | ยืนยันลำดับงานช่วงต้นเดือนพฤษภาคม | + +## สรุปรายงานการประชุม (Discussion Summary) + +| ลำดับ | ประเด็น | รายละเอียด / มติที่ได้ | ผู้รับผิดชอบ | สถานะ | +| :---: | --- | --- | :---: | :---: | +| 1 | โมดูลคลังสินค้า | พัฒนาแดชบอร์ดสต๊อก ความจุคลัง Lot/Serial/Expiry และรายงานครบตามความต้องการ | ThS, NoC | เสร็จสิ้น | +| 2 | ความถูกต้องของข้อมูล | ถอดคำสั่งที่กระทบความถูกต้องและเพิ่มการตรวจสอบก่อนทำรายการ | ThS | เสร็จสิ้น | +| 3 | ระบบสิทธิ์ผู้ใช้ | มอบหมายพัฒนา Role Guard และรวมศูนย์การตรวจสิทธิ์ | ThS | ดำเนินการ | + +## งานที่ต้องติดตาม (Action Item) + +| ลำดับ | งาน | ผู้รับผิดชอบ | วันครบกำหนด | สถานะ | +| :---: | --- | :---: | :---: | :---: | +| 1 | บันทึกการแก้ไข ISS-002 ใน Correction Register | YaB | 1 พฤษภาคม 2569 | Scheduled | +| 2 | พัฒนาระบบเข้าสู่ระบบ สิทธิ์ และเอกสารขาย (Task 3.4, 3.5) | ThS | 12 พฤษภาคม 2569 | Scheduled | + +## งานประชุมครั้งถัดไป (Next Meeting) + +| หัวข้อการประชุมถัดไป | วันที่ | ผู้จัดประชุม | วัตถุประสงค์ | +| --- | :---: | --- | --- | +| ติดตามการพัฒนาระบบสิทธิ์ ใบสั่งขาย และบาร์โค้ด | 8 พฤษภาคม 2569 | คุณอภิรัชช์ สุภัทรประทีป (ApS) | ติดตามความคืบหน้าและมติที่เกี่ยวข้อง | + +## ผู้จัดทำเอกสาร (Secretary) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเยาวลักษณ์ บางชมภู | Document Control | | | + +## ผู้ตรวจสอบเอกสาร (Reviewer) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณอภิรัชช์ สุภัทรประทีป | Project Manager | | | + +## ผู้อนุมัติ (Approval) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเสรี วิริยะสกุลธรณ์ | Project Sponsor | | | diff --git a/sdlc/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690513 V1.0 YaB.md b/sdlc/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690513 V1.0 YaB.md new file mode 100644 index 0000000..b296290 --- /dev/null +++ b/sdlc/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690513 V1.0 YaB.md @@ -0,0 +1,81 @@ +# Minutes Of Meeting + + + +| Document No | Minutes Of Meeting | Release, Version, By: | 25690513 V1.0 YaB | +| Project Name | โครงการพัฒนาระบบบริหารจัดการคลังสินค้า (BRN WMS) บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด | +| Project Code | 200-WMS-26-001-00 | +| Phase | Project Execution | +| Task ID / Task Name | 3.6 Production Preparation & Setup | +| Work Period of Task | 11 พฤษภาคม 2569 – 13 พฤษภาคม 2569 | +| Meeting Date | 13 พฤษภาคม 2569 | Time | 09:00 – 11:00 น. | +| สิ่งแนบ | Progress Status Record 13 พ.ค. 69 | +| Location | ห้องประชุม บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด | +| Organizer | คุณอภิรัชช์ สุภัทรประทีป (Project Manager) , คุณนพพงษ์ เจริญสุข (System Analyst) | +| Recorder | คุณเยาวลักษณ์ บางชมภู (Document Control) | +| สำเนาถึง (CC) | คุณเสรี วิริยะสกุลธรณ์ (Project Sponsor) | + +## ผู้เข้าร่วมประชุม (Participants) + +| ชื่อ - สกุล | ชื่อย่อ | ตำแหน่ง/บทบาท | (✔ เข้าร่วม / ✘ ไม่เข้าร่วม) | +| --- | :---: | --- | :---: | +| คุณเสรี วิริยะสกุลธรณ์ | SeV | Project Sponsor | ✔ | +| คุณอภิรัชช์ สุภัทรประทีป | ApS | Project Manager | ✔ | +| คุณนพพงษ์ เจริญสุข | NoC | System Analyst | ✔ | +| คุณธนกร สถิตวิทยากุล | ThS | Developer | ✔ | +| คุณปริญ งามขำ | PaNg | QA/Tester | ✔ | +| คุณเยาวลักษณ์ บางชมภู | YaB | Document Control | ✔ | + +## ความคืบหน้ารวมของโครงการ (Project Progress) + +| หมวดงาน | สถานะ | ความคืบหน้า (%) | รายละเอียด | +| --- | :---: | ---: | --- | +| Phase 3: Project Execution | กำลังดำเนินการ | 70 | ระบบสิทธิ์ เอกสารขาย และสคริปต์ติดตั้งเสร็จ | +| รวมความคืบหน้าทั้งโครงการ | ตามแผน | 60 | เริ่มพัฒนาโมดูลบัญชีและการเงิน | + +## หัวข้อการประชุม (Agenda) + +| ลำดับ | หัวข้อการประชุม | วัตถุประสงค์ | +| :---: | --- | --- | +| 1 | ผลการพัฒนาระบบสิทธิ์และเอกสารขาย | ตรวจสอบความครบถ้วนตาม CR01:001–CR01:004 และ CR01:013 | +| 2 | ประเด็นความปลอดภัยและ Onboarding ที่พบ | พิจารณาการแก้ไข ISS-003 ถึง ISS-009 | +| 3 | แผนพัฒนาบัญชีและการเงิน | ยืนยันลำดับงานช่วงกลางเดือนพฤษภาคม | + +## สรุปรายงานการประชุม (Discussion Summary) + +| ลำดับ | ประเด็น | รายละเอียด / มติที่ได้ | ผู้รับผิดชอบ | สถานะ | +| :---: | --- | --- | :---: | :---: | +| 1 | ระบบสิทธิ์และ Onboarding | แก้ไขข้อบกพร่องการลงทะเบียน Onboarding และการตรวจสิทธิ์ครบทุกรายการที่พบ | ThS | เสร็จสิ้น | +| 2 | การเตรียมใช้งานจริง | จัดทำ Base URL อัตโนมัติและสคริปต์ติดตั้งฐานข้อมูลในขั้นตอนเดียว | ThS | เสร็จสิ้น | +| 3 | บัญชีและการเงิน | มอบหมายพัฒนาผังบัญชี GL สมุดรายวัน และเอกสารการเงิน | ThS, NoC | ดำเนินการ | + +## งานที่ต้องติดตาม (Action Item) + +| ลำดับ | งาน | ผู้รับผิดชอบ | วันครบกำหนด | สถานะ | +| :---: | --- | :---: | :---: | :---: | +| 1 | บันทึกการแก้ไข ISS-003 ถึง ISS-009 ใน Correction Register | YaB | 15 พฤษภาคม 2569 | Scheduled | +| 2 | พัฒนาโมดูลบัญชีและการเงิน (Task 3.7) | ThS | 23 พฤษภาคม 2569 | Scheduled | + +## งานประชุมครั้งถัดไป (Next Meeting) + +| หัวข้อการประชุมถัดไป | วันที่ | ผู้จัดประชุม | วัตถุประสงค์ | +| --- | :---: | --- | --- | +| ติดตามการพัฒนาบัญชี การเงิน และการควบคุมสิทธิ์ผู้ใช้ | 23 พฤษภาคม 2569 | คุณอภิรัชช์ สุภัทรประทีป (ApS) | ติดตามความคืบหน้าและมติที่เกี่ยวข้อง | + +## ผู้จัดทำเอกสาร (Secretary) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเยาวลักษณ์ บางชมภู | Document Control | | | + +## ผู้ตรวจสอบเอกสาร (Reviewer) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณอภิรัชช์ สุภัทรประทีป | Project Manager | | | + +## ผู้อนุมัติ (Approval) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเสรี วิริยะสกุลธรณ์ | Project Sponsor | | | diff --git a/sdlc/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690523 V1.0 YaB.md b/sdlc/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690523 V1.0 YaB.md new file mode 100644 index 0000000..7a89434 --- /dev/null +++ b/sdlc/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690523 V1.0 YaB.md @@ -0,0 +1,82 @@ +# Minutes Of Meeting + + + +| Document No | Minutes Of Meeting | Release, Version, By: | 25690523 V1.0 YaB | +| Project Name | โครงการพัฒนาระบบบริหารจัดการคลังสินค้า (BRN WMS) บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด | +| Project Code | 200-WMS-26-001-00 | +| Phase | Project Execution | +| Task ID / Task Name | 3.7 Accounting & Finance Workflows | +| Work Period of Task | 13 พฤษภาคม 2569 – 23 พฤษภาคม 2569 | +| Meeting Date | 23 พฤษภาคม 2569 | Time | 09:00 – 11:00 น. | +| สิ่งแนบ | Progress Status Record 23 พ.ค. 69, Change Report CH-001 | +| Location | ห้องประชุม บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด | +| Organizer | คุณอภิรัชช์ สุภัทรประทีป (Project Manager) , คุณนพพงษ์ เจริญสุข (System Analyst) | +| Recorder | คุณเยาวลักษณ์ บางชมภู (Document Control) | +| สำเนาถึง (CC) | คุณเสรี วิริยะสกุลธรณ์ (Project Sponsor) | + +## ผู้เข้าร่วมประชุม (Participants) + +| ชื่อ - สกุล | ชื่อย่อ | ตำแหน่ง/บทบาท | (✔ เข้าร่วม / ✘ ไม่เข้าร่วม) | +| --- | :---: | --- | :---: | +| คุณเสรี วิริยะสกุลธรณ์ | SeV | Project Sponsor | ✔ | +| คุณอภิรัชช์ สุภัทรประทีป | ApS | Project Manager | ✔ | +| คุณนพพงษ์ เจริญสุข | NoC | System Analyst | ✔ | +| คุณธนกร สถิตวิทยากุล | ThS | Developer | ✔ | +| คุณปริญ งามขำ | PaNg | QA/Tester | ✔ | +| คุณเยาวลักษณ์ บางชมภู | YaB | Document Control | ✔ | + +## ความคืบหน้ารวมของโครงการ (Project Progress) + +| หมวดงาน | สถานะ | ความคืบหน้า (%) | รายละเอียด | +| --- | :---: | ---: | --- | +| Phase 3: Project Execution | กำลังดำเนินการ | 85 | บัญชีและการเงินเสร็จ เหลือบริการแจ้งเตือนและการทบทวนความปลอดภัย | +| รวมความคืบหน้าทั้งโครงการ | ตามแผน | 72 | เตรียมเข้าสู่ Baseline การพัฒนา | + +## หัวข้อการประชุม (Agenda) + +| ลำดับ | หัวข้อการประชุม | วัตถุประสงค์ | +| :---: | --- | --- | +| 1 | ผลการพัฒนาบัญชีและการเงิน | ตรวจสอบความครบถ้วนตาม CR01:015–CR01:017 | +| 2 | พิจารณาคำขอเปลี่ยนแปลง CH-001 (Rack เป็น Bin) | ประเมินผลกระทบและอนุมัติ | +| 3 | แผนงานก่อนตั้ง Baseline การพัฒนา | ยืนยันงานที่ต้องเสร็จภายใน 29 พ.ค. 69 | + +## สรุปรายงานการประชุม (Discussion Summary) + +| ลำดับ | ประเด็น | รายละเอียด / มติที่ได้ | ผู้รับผิดชอบ | สถานะ | +| :---: | --- | --- | :---: | :---: | +| 1 | บัญชีและการเงิน | พัฒนาผังบัญชี GL สมุดรายวัน รายงานบัญชี ใบวางบิลและใบเสร็จครบตามความต้องการ | ThS, NoC | เสร็จสิ้น | +| 2 | คำขอเปลี่ยนแปลง CH-001 | เปลี่ยนคำเรียกตำแหน่งจัดเก็บจาก Rack เป็น Bin ให้ตรงกับคำที่พนักงานคลังใช้จริง ประเมินผลกระทบระดับ Medium ไม่กระทบกำหนดส่งมอบ | SeV, ApS, NoC | อนุมัติ | +| 3 | ความปลอดภัยและโควตารายการ | เพิ่มการควบคุมสิทธิ์แอปพลิเคชันและโควตารายการต่อบริษัท | ThS | ดำเนินการ | + +## งานที่ต้องติดตาม (Action Item) + +| ลำดับ | งาน | ผู้รับผิดชอบ | วันครบกำหนด | สถานะ | +| :---: | --- | :---: | :---: | :---: | +| 1 | ดำเนินการเปลี่ยนคำเรียกตามคำขอ CH-001 | ThS | 27 พฤษภาคม 2569 | Scheduled | +| 2 | ทบทวนความปลอดภัยและวงจรเอกสารก่อนตั้ง Baseline (Task 3.9) | ThS, PaNg | 28 พฤษภาคม 2569 | Scheduled | +| 3 | บันทึกการแก้ไข ISS-010 ถึง ISS-015 ใน Correction Register | YaB | 25 พฤษภาคม 2569 | Scheduled | + +## งานประชุมครั้งถัดไป (Next Meeting) + +| หัวข้อการประชุมถัดไป | วันที่ | ผู้จัดประชุม | วัตถุประสงค์ | +| --- | :---: | --- | --- | +| สรุปผลการพัฒนาและตั้ง Baseline การพัฒนา | 29 พฤษภาคม 2569 | คุณอภิรัชช์ สุภัทรประทีป (ApS) | ติดตามความคืบหน้าและมติที่เกี่ยวข้อง | + +## ผู้จัดทำเอกสาร (Secretary) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเยาวลักษณ์ บางชมภู | Document Control | | | + +## ผู้ตรวจสอบเอกสาร (Reviewer) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณอภิรัชช์ สุภัทรประทีป | Project Manager | | | + +## ผู้อนุมัติ (Approval) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเสรี วิริยะสกุลธรณ์ | Project Sponsor | | | diff --git a/sdlc/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690529 V1.0 YaB.md b/sdlc/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690529 V1.0 YaB.md new file mode 100644 index 0000000..dcc6585 --- /dev/null +++ b/sdlc/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690529 V1.0 YaB.md @@ -0,0 +1,83 @@ +# Minutes Of Meeting + + + +| Document No | Minutes Of Meeting | Release, Version, By: | 25690529 V1.0 YaB | +| Project Name | โครงการพัฒนาระบบบริหารจัดการคลังสินค้า (BRN WMS) บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด | +| Project Code | 200-WMS-26-001-00 | +| Phase | Project Execution | +| Task ID / Task Name | 3.10 Refactor & Development Baseline | +| Work Period of Task | 29 พฤษภาคม 2569 – 29 พฤษภาคม 2569 | +| Meeting Date | 29 พฤษภาคม 2569 | Time | 09:00 – 11:00 น. | +| สิ่งแนบ | Progress Status Record 29 พ.ค. 69 | +| Location | ห้องประชุม บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด | +| Organizer | คุณอภิรัชช์ สุภัทรประทีป (Project Manager) , คุณนพพงษ์ เจริญสุข (System Analyst) | +| Recorder | คุณเยาวลักษณ์ บางชมภู (Document Control) | +| สำเนาถึง (CC) | คุณเสรี วิริยะสกุลธรณ์ (Project Sponsor) | + +## ผู้เข้าร่วมประชุม (Participants) + +| ชื่อ - สกุล | ชื่อย่อ | ตำแหน่ง/บทบาท | (✔ เข้าร่วม / ✘ ไม่เข้าร่วม) | +| --- | :---: | --- | :---: | +| คุณเสรี วิริยะสกุลธรณ์ | SeV | Project Sponsor | ✔ | +| คุณอภิรัชช์ สุภัทรประทีป | ApS | Project Manager | ✔ | +| คุณนพพงษ์ เจริญสุข | NoC | System Analyst | ✔ | +| คุณธนกร สถิตวิทยากุล | ThS | Developer | ✔ | +| คุณปริญ งามขำ | PaNg | QA/Tester | ✔ | +| คุณเยาวลักษณ์ บางชมภู | YaB | Document Control | ✔ | + +## ความคืบหน้ารวมของโครงการ (Project Progress) + +| หมวดงาน | สถานะ | ความคืบหน้า (%) | รายละเอียด | +| --- | :---: | ---: | --- | +| Phase 3: Project Execution | เสร็จสมบูรณ์ | 100 | พัฒนาครบทุกโมดูลและตั้ง Baseline การพัฒนา (Git a0677d6) | +| Phase 4: Verification & Validation | กำลังดำเนินการ | 10 | เริ่มตรวจสอบเอกสารและจัดทำคู่มือ | +| รวมความคืบหน้าทั้งโครงการ | ตามแผน | 78 | เข้าสู่ขั้นตอนตรวจสอบและจัดทำเอกสาร | + +## หัวข้อการประชุม (Agenda) + +| ลำดับ | หัวข้อการประชุม | วัตถุประสงค์ | +| :---: | --- | --- | +| 1 | สรุปผลการพัฒนา Task 3.1–3.10 | ยืนยันความครบถ้วนของการพัฒนา | +| 2 | สรุปผลการทบทวนความปลอดภัยและวงจรเอกสาร | ยืนยันการปิดข้อบกพร่อง ISS-016 ถึง ISS-027 | +| 3 | แผนการตรวจสอบ ทดสอบ และจัดทำเอกสาร | กำหนดผู้รับผิดชอบและกรอบเวลา | + +## สรุปรายงานการประชุม (Discussion Summary) + +| ลำดับ | ประเด็น | รายละเอียด / มติที่ได้ | ผู้รับผิดชอบ | สถานะ | +| :---: | --- | --- | :---: | :---: | +| 1 | Baseline การพัฒนา | พัฒนาครบทุกโมดูลตามขอบเขต และลดความซ้ำซ้อนของคลาสเรียบร้อย ตั้ง Baseline เมื่อ 29 พ.ค. 69 | ThS | เสร็จสิ้น | +| 2 | ความปลอดภัยและการแยกข้อมูล | ปิดข้อบกพร่องด้านการเข้าสู่ระบบ ขอบเขตบริษัท และวงจรเอกสารครบทุกรายการที่พบ | ThS, PaNg | เสร็จสิ้น | +| 3 | ขั้นตอนถัดไป | ตรวจสอบ Work Products จัดทำคู่มือ และเตรียมชุดทดสอบระบบ | PaNg, NoC, YaB | ดำเนินการ | + +## งานที่ต้องติดตาม (Action Item) + +| ลำดับ | งาน | ผู้รับผิดชอบ | วันครบกำหนด | สถานะ | +| :---: | --- | :---: | :---: | :---: | +| 1 | จัดทำ Test Case และ Test Procedures ครบทุกหน่วยงาน | PaNg, NoC | 31 กรกฎาคม 2569 | Scheduled | +| 2 | จัดทำคู่มือผู้ใช้ คู่มือผู้ดูแลระบบ และคู่มือบำรุงรักษา (Task 4.5) | ThS, YaB | 17 สิงหาคม 2569 | Scheduled | +| 3 | ตรวจสอบ Work Products รอบที่ 1–3 (Task 4.3) | PaNg, NoC | 15 สิงหาคม 2569 | Scheduled | + +## งานประชุมครั้งถัดไป (Next Meeting) + +| หัวข้อการประชุมถัดไป | วันที่ | ผู้จัดประชุม | วัตถุประสงค์ | +| --- | :---: | --- | --- | +| ติดตามการตรวจสอบเอกสาร การจัดทำคู่มือ และการแก้ไขหลัง Baseline | 3 สิงหาคม 2569 | คุณอภิรัชช์ สุภัทรประทีป (ApS) | ติดตามความคืบหน้าและมติที่เกี่ยวข้อง | + +## ผู้จัดทำเอกสาร (Secretary) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเยาวลักษณ์ บางชมภู | Document Control | | | + +## ผู้ตรวจสอบเอกสาร (Reviewer) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณอภิรัชช์ สุภัทรประทีป | Project Manager | | | + +## ผู้อนุมัติ (Approval) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเสรี วิริยะสกุลธรณ์ | Project Sponsor | | | diff --git a/sdlc/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690803 V1.0 YaB.md b/sdlc/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690803 V1.0 YaB.md new file mode 100644 index 0000000..91a1532 --- /dev/null +++ b/sdlc/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690803 V1.0 YaB.md @@ -0,0 +1,82 @@ +# Minutes Of Meeting + + + +| Document No | Minutes Of Meeting | Release, Version, By: | 25690803 V1.0 YaB | +| Project Name | โครงการพัฒนาระบบบริหารจัดการคลังสินค้า (BRN WMS) บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด | +| Project Code | 200-WMS-26-001-00 | +| Phase | Stabilization | +| Task ID / Task Name | 4.6 Post-baseline Corrections | +| Work Period of Task | 3 สิงหาคม 2569 – 3 สิงหาคม 2569 | +| Meeting Date | 3 สิงหาคม 2569 | Time | 09:00 – 11:00 น. | +| สิ่งแนบ | Progress Status Record 3 ส.ค. 69 | +| Location | ห้องประชุม บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด | +| Organizer | คุณอภิรัชช์ สุภัทรประทีป (Project Manager) , คุณนพพงษ์ เจริญสุข (System Analyst) | +| Recorder | คุณเยาวลักษณ์ บางชมภู (Document Control) | +| สำเนาถึง (CC) | คุณเสรี วิริยะสกุลธรณ์ (Project Sponsor) | + +## ผู้เข้าร่วมประชุม (Participants) + +| ชื่อ - สกุล | ชื่อย่อ | ตำแหน่ง/บทบาท | (✔ เข้าร่วม / ✘ ไม่เข้าร่วม) | +| --- | :---: | --- | :---: | +| คุณเสรี วิริยะสกุลธรณ์ | SeV | Project Sponsor | ✔ | +| คุณอภิรัชช์ สุภัทรประทีป | ApS | Project Manager | ✔ | +| คุณนพพงษ์ เจริญสุข | NoC | System Analyst | ✔ | +| คุณธนกร สถิตวิทยากุล | ThS | Developer | ✔ | +| คุณปริญ งามขำ | PaNg | QA/Tester | ✔ | +| คุณเยาวลักษณ์ บางชมภู | YaB | Document Control | ✔ | + +## ความคืบหน้ารวมของโครงการ (Project Progress) + +| หมวดงาน | สถานะ | ความคืบหน้า (%) | รายละเอียด | +| --- | :---: | ---: | --- | +| Phase 4: Verification & Validation | กำลังดำเนินการ | 70 | ตรวจสอบเอกสารรอบที่ 1–3 และจัดทำคู่มือใกล้เสร็จ | +| รวมความคืบหน้าทั้งโครงการ | ตามแผน | 85 | เตรียมทดสอบระบบและ UAT | + +## หัวข้อการประชุม (Agenda) + +| ลำดับ | หัวข้อการประชุม | วัตถุประสงค์ | +| :---: | --- | --- | +| 1 | ผลการแก้ไขหลัง Baseline การพัฒนา | ยืนยันการปิดข้อบกพร่อง ISS-028 | +| 2 | ความคืบหน้าการตรวจสอบเอกสารและคู่มือ | ทบทวนผลการตรวจสอบรอบที่ 1–3 | +| 3 | แผนการทดสอบระบบและ UAT | ยืนยันสภาพแวดล้อม ผู้ทดสอบ และกรอบเวลา | + +## สรุปรายงานการประชุม (Discussion Summary) + +| ลำดับ | ประเด็น | รายละเอียด / มติที่ได้ | ผู้รับผิดชอบ | สถานะ | +| :---: | --- | --- | :---: | :---: | +| 1 | การแก้ไขหลัง Baseline | แก้ไขการเข้าสู่ระบบและค่าตั้งค่าสภาพแวดล้อมที่พบหลังตั้ง Baseline เรียบร้อย | ThS | เสร็จสิ้น | +| 2 | การตรวจสอบเอกสาร | ตรวจสอบความต้องการ ออกแบบ และการสอบกลับรอบที่ 1–3 พบประเด็นที่ต้องปรับปรุงและแก้ไขแล้ว | PaNg, NoC | ดำเนินการ | +| 3 | แผนการทดสอบ | กำหนดทดสอบระบบบน Internal Testing Server โดย QA และ UAT บนสภาพแวดล้อมจริงโดยตัวแทนลูกค้า ระหว่าง 10–14 ส.ค. 69 | PaNg, SeV | อนุมัติ | + +## งานที่ต้องติดตาม (Action Item) + +| ลำดับ | งาน | ผู้รับผิดชอบ | วันครบกำหนด | สถานะ | +| :---: | --- | :---: | :---: | :---: | +| 1 | บันทึกการแก้ไข ISS-028 ใน Correction Register | YaB | 5 สิงหาคม 2569 | Scheduled | +| 2 | เตรียมข้อมูลสาธิตสำหรับการทดสอบและ UAT | ThS | 14 สิงหาคม 2569 | Scheduled | +| 3 | ดำเนินการทดสอบระบบและ UAT (Task 4.4) | PaNg, SeV | 14 สิงหาคม 2569 | Scheduled | + +## งานประชุมครั้งถัดไป (Next Meeting) + +| หัวข้อการประชุมถัดไป | วันที่ | ผู้จัดประชุม | วัตถุประสงค์ | +| --- | :---: | --- | --- | +| สรุปผลการทดสอบระบบ UAT และข้อมูลสาธิต | 14 สิงหาคม 2569 | คุณอภิรัชช์ สุภัทรประทีป (ApS) | ติดตามความคืบหน้าและมติที่เกี่ยวข้อง | + +## ผู้จัดทำเอกสาร (Secretary) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเยาวลักษณ์ บางชมภู | Document Control | | | + +## ผู้ตรวจสอบเอกสาร (Reviewer) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณอภิรัชช์ สุภัทรประทีป | Project Manager | | | + +## ผู้อนุมัติ (Approval) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเสรี วิริยะสกุลธรณ์ | Project Sponsor | | | diff --git a/sdlc/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690814 V1.0 YaB.md b/sdlc/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690814 V1.0 YaB.md new file mode 100644 index 0000000..d96a4b8 --- /dev/null +++ b/sdlc/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690814 V1.0 YaB.md @@ -0,0 +1,85 @@ +# Minutes Of Meeting + + + +| Document No | Minutes Of Meeting | Release, Version, By: | 25690814 V1.0 YaB | +| Project Name | โครงการพัฒนาระบบบริหารจัดการคลังสินค้า (BRN WMS) บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด | +| Project Code | 200-WMS-26-001-00 | +| Phase | Validation | +| Task ID / Task Name | 4.4 System Test & UAT | +| Work Period of Task | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| Meeting Date | 14 สิงหาคม 2569 | Time | 09:00 – 11:00 น. | +| สิ่งแนบ | Test Report, Validation Results, Change Report CH-002 | +| Location | ห้องประชุม บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด | +| Organizer | คุณอภิรัชช์ สุภัทรประทีป (Project Manager) , คุณนพพงษ์ เจริญสุข (System Analyst) | +| Recorder | คุณเยาวลักษณ์ บางชมภู (Document Control) | +| สำเนาถึง (CC) | คุณเสรี วิริยะสกุลธรณ์ (Project Sponsor) | + +## ผู้เข้าร่วมประชุม (Participants) + +| ชื่อ - สกุล | ชื่อย่อ | ตำแหน่ง/บทบาท | (✔ เข้าร่วม / ✘ ไม่เข้าร่วม) | +| --- | :---: | --- | :---: | +| คุณเสรี วิริยะสกุลธรณ์ | SeV | Project Sponsor | ✔ | +| คุณอภิรัชช์ สุภัทรประทีป | ApS | Project Manager | ✔ | +| คุณนพพงษ์ เจริญสุข | NoC | System Analyst | ✔ | +| คุณธนกร สถิตวิทยากุล | ThS | Developer | ✔ | +| คุณปริญ งามขำ | PaNg | QA/Tester | ✔ | +| คุณเยาวลักษณ์ บางชมภู | YaB | Document Control | ✔ | + +## ความคืบหน้ารวมของโครงการ (Project Progress) + +| หมวดงาน | สถานะ | ความคืบหน้า (%) | รายละเอียด | +| --- | :---: | ---: | --- | +| Phase 4: Verification & Validation | เสร็จสมบูรณ์ | 100 | ทดสอบ 45 Test Case และ UAT 12 สถานการณ์ ผ่านทั้งหมด | +| Phase 5: Project Close | กำลังดำเนินการ | 60 | อยู่ระหว่างตรวจสอบ Work Products และเตรียมชุดส่งมอบ | +| รวมความคืบหน้าทั้งโครงการ | ตามแผน | 92 | เตรียมตรวจรับและปิดโครงการ | + +## หัวข้อการประชุม (Agenda) + +| ลำดับ | หัวข้อการประชุม | วัตถุประสงค์ | +| :---: | --- | --- | +| 1 | สรุปผลการทดสอบระบบ 45 Test Case | ยืนยันผลการทดสอบและข้อบกพร่องคงค้าง | +| 2 | สรุปผลการทดสอบการยอมรับ (UAT) 12 สถานการณ์ | ยืนยันความพร้อมใช้งานจริง | +| 3 | พิจารณาคำขอเปลี่ยนแปลง CH-002 (ข้อมูลสาธิต) | ประเมินผลกระทบและอนุมัติ | +| 4 | แผนงานปิดโครงการ | ยืนยันงานที่เหลือถึง 24 ส.ค. 69 | + +## สรุปรายงานการประชุม (Discussion Summary) + +| ลำดับ | ประเด็น | รายละเอียด / มติที่ได้ | ผู้รับผิดชอบ | สถานะ | +| :---: | --- | --- | :---: | :---: | +| 1 | ผลการทดสอบระบบ | ทดสอบ 45 Test Case บน Internal Testing Server ผ่านทั้งหมด ไม่พบข้อบกพร่องคงค้าง | PaNg | ผ่าน | +| 2 | ผลการทดสอบการยอมรับ | ตัวแทนลูกค้าทดสอบ 12 สถานการณ์บนสภาพแวดล้อมใช้งานจริง ผ่านทั้งหมด | SeV | ผ่าน | +| 3 | คำขอเปลี่ยนแปลง CH-002 | เพิ่มชุดข้อมูลสาธิตเพื่อใช้ตรวจรับรายงานและขั้นตอนการทำงาน ประเมินผลกระทบระดับ Medium | ApS, SeV | อนุมัติ | +| 4 | งานที่เหลือ | ตรวจสอบ Work Products รอบสุดท้าย เตรียมชุดติดตั้ง ตรวจรับ อบรม และปิดโครงการ | ApS, YaB | ดำเนินการ | + +## งานที่ต้องติดตาม (Action Item) + +| ลำดับ | งาน | ผู้รับผิดชอบ | วันครบกำหนด | สถานะ | +| :---: | --- | :---: | :---: | :---: | +| 1 | ตรวจสอบ Work Products รอบที่ 4 และจัดทำ List of Evidence | YaB, ApS | 17 สิงหาคม 2569 | Scheduled | +| 2 | จัดทำชุดติดตั้ง Docker Compose และปรับแบรนด์ (CH-003) | ThS | 17 สิงหาคม 2569 | Scheduled | +| 3 | นัดตรวจรับส่งมอบระบบกับ Project Sponsor | ApS | 17 สิงหาคม 2569 | Scheduled | + +## งานประชุมครั้งถัดไป (Next Meeting) + +| หัวข้อการประชุมถัดไป | วันที่ | ผู้จัดประชุม | วัตถุประสงค์ | +| --- | :---: | --- | --- | +| สรุปผลการตรวจสอบรอบสุดท้ายและตรวจรับส่งมอบระบบ | 17 สิงหาคม 2569 | คุณอภิรัชช์ สุภัทรประทีป (ApS) | ติดตามความคืบหน้าและมติที่เกี่ยวข้อง | + +## ผู้จัดทำเอกสาร (Secretary) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเยาวลักษณ์ บางชมภู | Document Control | | | + +## ผู้ตรวจสอบเอกสาร (Reviewer) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณอภิรัชช์ สุภัทรประทีป | Project Manager | | | + +## ผู้อนุมัติ (Approval) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเสรี วิริยะสกุลธรณ์ | Project Sponsor | | | diff --git a/sdlc/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690817 V1.0 YaB.md b/sdlc/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690817 V1.0 YaB.md new file mode 100644 index 0000000..2a81bbb --- /dev/null +++ b/sdlc/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690817 V1.0 YaB.md @@ -0,0 +1,86 @@ +# Minutes Of Meeting + + + +| Document No | Minutes Of Meeting | Release, Version, By: | 25690817 V1.0 YaB | +| Project Name | โครงการพัฒนาระบบบริหารจัดการคลังสินค้า (BRN WMS) บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด | +| Project Code | 200-WMS-26-001-00 | +| Phase | Project Close | +| Task ID / Task Name | 5.3 Acceptance & Project Closure | +| Work Period of Task | 17 สิงหาคม 2569 – 24 สิงหาคม 2569 | +| Meeting Date | 17 สิงหาคม 2569 | Time | 09:00 – 11:00 น. | +| สิ่งแนบ | Acceptance Report, List of Evidence, Verification Results, Change Report CH-003 | +| Location | ห้องประชุม บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด | +| Organizer | คุณอภิรัชช์ สุภัทรประทีป (Project Manager) , คุณนพพงษ์ เจริญสุข (System Analyst) | +| Recorder | คุณเยาวลักษณ์ บางชมภู (Document Control) | +| สำเนาถึง (CC) | คุณเสรี วิริยะสกุลธรณ์ (Project Sponsor) | + +## ผู้เข้าร่วมประชุม (Participants) + +| ชื่อ - สกุล | ชื่อย่อ | ตำแหน่ง/บทบาท | (✔ เข้าร่วม / ✘ ไม่เข้าร่วม) | +| --- | :---: | --- | :---: | +| คุณเสรี วิริยะสกุลธรณ์ | SeV | Project Sponsor | ✔ | +| คุณอภิรัชช์ สุภัทรประทีป | ApS | Project Manager | ✔ | +| คุณนพพงษ์ เจริญสุข | NoC | System Analyst | ✔ | +| คุณธนกร สถิตวิทยากุล | ThS | Developer | ✔ | +| คุณปริญ งามขำ | PaNg | QA/Tester | ✔ | +| คุณเยาวลักษณ์ บางชมภู | YaB | Document Control | ✔ | + +## ความคืบหน้ารวมของโครงการ (Project Progress) + +| หมวดงาน | สถานะ | ความคืบหน้า (%) | รายละเอียด | +| --- | :---: | ---: | --- | +| Phase 3: Project Execution | เสร็จสมบูรณ์ | 100 | พัฒนาระบบครบตามขอบเขต Baseline 6c39700 | +| Phase 4: Verification & Validation | เสร็จสมบูรณ์ | 100 | ตรวจสอบ ทดสอบ และ UAT ผ่านครบทุกรายการ | +| Phase 5: Project Close | กำลังดำเนินการ | 80 | ตรวจรับระบบแล้ว เหลือการอบรมและปิดงานควบคุมปฏิบัติการ | +| รวมความคืบหน้าทั้งโครงการ | ตามแผน | 96 | ตรวจรับระบบเรียบร้อย | + +## หัวข้อการประชุม (Agenda) + +| ลำดับ | หัวข้อการประชุม | วัตถุประสงค์ | +| :---: | --- | --- | +| 1 | นำเสนอผลการดำเนินโครงการและสิ่งส่งมอบ | สรุปผลงานทั้งหมดเทียบกับแผนและผลลัพธ์จริง | +| 2 | ตรวจสอบความครบถ้วนของเอกสารและหลักฐาน | ยืนยันเอกสารครบตามมาตรฐาน ISO/IEC 29110 | +| 3 | พิจารณาคำขอเปลี่ยนแปลง CH-003 | ประเมินผลกระทบและอนุมัติ | +| 4 | พิจารณาตรวจรับส่งมอบระบบ | ลงมติผลการตรวจรับ | + +## สรุปรายงานการประชุม (Discussion Summary) + +| ลำดับ | ประเด็น | รายละเอียด / มติที่ได้ | ผู้รับผิดชอบ | สถานะ | +| :---: | --- | --- | :---: | :---: | +| 1 | ผลการดำเนินโครงการ | พัฒนาระบบครบตามขอบเขต 11 ระบบงาน ทดสอบและ UAT ผ่านทั้งหมด ไม่มีข้อบกพร่องระดับวิกฤตคงค้าง | ApS, SeV | ผ่านการรับรอง | +| 2 | ความครบถ้วนของเอกสาร | ตรวจสอบ Work Products รอบที่ 4 ครบทุกรายการ ผลผ่านทั้งหมด และจัดทำ List of Evidence เรียบร้อย | YaB, PaNg | สมบูรณ์ | +| 3 | คำขอเปลี่ยนแปลง CH-003 | ปรับอัตลักษณ์องค์กรและเพิ่มชุดติดตั้ง Docker Compose ประเมินผลกระทบระดับ Medium | SeV, ApS | อนุมัติ | +| 4 | ผลการตรวจรับ | Project Sponsor ตรวจรับสิ่งส่งมอบทั้งหมด ผลการตรวจรับ Accepted | SeV | ตรวจรับแล้ว | + +## งานที่ต้องติดตาม (Action Item) + +| ลำดับ | งาน | ผู้รับผิดชอบ | วันครบกำหนด | สถานะ | +| :---: | --- | :---: | :---: | :---: | +| 1 | จัดอบรมผู้ใช้งานก่อนเปิดใช้งานจริง (Task 5.2) | ThS, PaNg | 22 สิงหาคม 2569 | Scheduled | +| 2 | ปิดงานควบคุมการสำรองข้อมูลและการเฝ้าระวังระบบ | ThS | 23 สิงหาคม 2569 | Scheduled | +| 3 | ปิดโครงการและส่งมอบเอกสารเข้าระบบควบคุมเอกสาร | ApS, YaB | 24 สิงหาคม 2569 | Scheduled | + +## งานประชุมครั้งถัดไป (Next Meeting) + +| หัวข้อการประชุมถัดไป | วันที่ | ผู้จัดประชุม | วัตถุประสงค์ | +| --- | :---: | --- | --- | +| สรุปผลการอบรม การปิดงานควบคุมปฏิบัติการ และปิดโครงการอย่างเป็นทางการ | 24 สิงหาคม 2569 | คุณอภิรัชช์ สุภัทรประทีป (ApS) | ติดตามความคืบหน้าและมติที่เกี่ยวข้อง | + +## ผู้จัดทำเอกสาร (Secretary) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเยาวลักษณ์ บางชมภู | Document Control | | | + +## ผู้ตรวจสอบเอกสาร (Reviewer) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณอภิรัชช์ สุภัทรประทีป | Project Manager | | | + +## ผู้อนุมัติ (Approval) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเสรี วิริยะสกุลธรณ์ | Project Sponsor | | | 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 new file mode 100644 index 0000000..d8fc328 --- /dev/null +++ b/sdlc/1-PM Process (10 Work Product)/7.Meeting Record/200-WMS-26-001-00 Minutes Of Meeting 25690824 V1.0 YaB.md @@ -0,0 +1,87 @@ +# Minutes Of Meeting + + + +| Document No | Minutes Of Meeting | Release, Version, By: | 25690824 V1.0 YaB | +| Project Name | โครงการพัฒนาระบบบริหารจัดการคลังสินค้า (BRN WMS) บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด | +| Project Code | 200-WMS-26-001-00 | +| Phase | Project Close | +| Task ID / Task Name | 5.3 Final Report & Sign-off | +| Work Period of Task | 17 สิงหาคม 2569 – 24 สิงหาคม 2569 | +| Meeting Date | 24 สิงหาคม 2569 | Time | 09:00 – 11:00 น. | +| สิ่งแนบ | Training Report, Product Operation Guide, Project Repository (Backup) | +| Location | ห้องประชุม บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด | +| Organizer | คุณอภิรัชช์ สุภัทรประทีป (Project Manager) , คุณนพพงษ์ เจริญสุข (System Analyst) | +| Recorder | คุณเยาวลักษณ์ บางชมภู (Document Control) | +| สำเนาถึง (CC) | คุณเสรี วิริยะสกุลธรณ์ (Project Sponsor) | + +## ผู้เข้าร่วมประชุม (Participants) + +| ชื่อ - สกุล | ชื่อย่อ | ตำแหน่ง/บทบาท | (✔ เข้าร่วม / ✘ ไม่เข้าร่วม) | +| --- | :---: | --- | :---: | +| คุณเสรี วิริยะสกุลธรณ์ | SeV | Project Sponsor | ✔ | +| คุณอภิรัชช์ สุภัทรประทีป | ApS | Project Manager | ✔ | +| คุณนพพงษ์ เจริญสุข | NoC | System Analyst | ✔ | +| คุณธนกร สถิตวิทยากุล | ThS | Developer | ✔ | +| คุณปริญ งามขำ | PaNg | QA/Tester | ✔ | +| คุณเยาวลักษณ์ บางชมภู | YaB | Document Control | ✔ | + +## ความคืบหน้ารวมของโครงการ (Project 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) + +| ลำดับ | หัวข้อการประชุม | วัตถุประสงค์ | +| :---: | --- | --- | +| 1 | สรุปผลการอบรมผู้ใช้งาน | ยืนยันความพร้อมของผู้ใช้ก่อนเปิดใช้งานจริง | +| 2 | สรุปการปิดงานควบคุมการสำรองข้อมูลและการเฝ้าระวัง | ยืนยันการปิดรายการ OP-001 และ OP-002 | +| 3 | สรุปการสำรอง Repository และเอกสารโครงการ | ยืนยันการสำรองและกู้คืนได้จริง | +| 4 | ปิดโครงการอย่างเป็นทางการ | ลงมติปิดโครงการและส่งมอบเอกสาร | + +## สรุปรายงานการประชุม (Discussion Summary) + +| ลำดับ | ประเด็น | รายละเอียด / มติที่ได้ | ผู้รับผิดชอบ | สถานะ | +| :---: | --- | --- | :---: | :---: | +| 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 | เสร็จสิ้น | +| 4 | การปิดโครงการ | ที่ประชุมมีมติปิดโครงการอย่างเป็นทางการเมื่อ 24 ส.ค. 69 | SeV, ApS | ปิดโครงการ | + +## งานที่ต้องติดตาม (Action Item) + +| ลำดับ | งาน | ผู้รับผิดชอบ | วันครบกำหนด | สถานะ | +| :---: | --- | :---: | :---: | :---: | +| 1 | จัดเก็บเอกสารโครงการทั้งหมดเข้าระบบควบคุมเอกสาร | YaB | 24 สิงหาคม 2569 | เสร็จสมบูรณ์ | +| 2 | ติดตามการตรวจนับสต๊อกสิ้นเดือนแรกหลังเปิดใช้งานจริง | ApS | 30 กันยายน 2569 | Scheduled | + +## งานประชุมครั้งถัดไป (Next Meeting) + +| หัวข้อการประชุมถัดไป | วันที่ | ผู้จัดประชุม | วัตถุประสงค์ | +| --- | :---: | --- | --- | +| ไม่มีการประชุมถัดไป โครงการปิดอย่างเป็นทางการแล้ว | - | - | - | + +## ผู้จัดทำเอกสาร (Secretary) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเยาวลักษณ์ บางชมภู | Document Control | | | + +## ผู้ตรวจสอบเอกสาร (Reviewer) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณอภิรัชช์ สุภัทรประทีป | Project Manager | | | + +## ผู้อนุมัติ (Approval) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเสรี วิริยะสกุลธรณ์ | Project Sponsor | | | 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 new file mode 100644 index 0000000..5f23b32 --- /dev/null +++ b/sdlc/1-PM Process (10 Work Product)/8.Software Configuration/200-WMS-26-001-00 Software Configuration 25690817 V1.0 ThS.md @@ -0,0 +1,76 @@ +# Software Configuration + + + +| Document No | Software Configuration | Release, Version, By: | 25690817 V1.0 ThS | +| Project Name | โครงการพัฒนาระบบบริหารจัดการคลังสินค้า (BRN WMS) บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด | +| Project Code | 200-WMS-26-001-00 | +| Title | บันทึกการกำหนดค่าและความเปลี่ยนแปลงต่าง ๆ ที่เกิดขึ้นของระบบ | +| ระยะเวลา | 5 มกราคม 2569 – 24 สิงหาคม 2569 | +| Organizer | คุณอภิรัชช์ สุภัทรประทีป (Project Manager) | +| Recorder | คุณเยาวลักษณ์ บางชมภู (Document Control) | + +## รายการสิ่งส่งมอบ (Work Products) + +| No. | Work Product | Version | +| :---: | --- | --- | +| **เอกสารส่งมอบครั้งที่ 1 (วางแผนโครงการ)** | | | +| WP 1.0 | เอกสาร 200-WMS-26-001-00 Software Project Plan (พร้อม Work Schedule) | 1.0 | +| WP 2.0 | เอกสาร 200-WMS-26-001-00 Customer Requirements | 1.0 | +| **เอกสารส่งมอบครั้งที่ 2 (พัฒนาและทดสอบ)** | | | +| WP 3.0 | เอกสาร 200-WMS-26-001-00 Software Requirements Specification | 1.0 | +| WP 4.0 | เอกสาร 200-WMS-26-001-00 Software Design | 1.0 | +| WP 5.0 | เอกสาร 200-WMS-26-001-00 Change Report (CH-001–CH-003) | 1.0 | +| WP 6.0 | เอกสาร 200-WMS-26-001-00 Test Case and Test Procedures | 1.0 | +| WP 7.0 | เอกสาร 200-WMS-26-001-00 Validation Results | 1.0 | +| WP 8.0 | เอกสาร 200-WMS-26-001-00 Software User Document | 1.0 | +| WP 9.0 | ระบบ BRN WMS ที่ผ่านการทดสอบ (Git baseline `6c39700`) | 1.0 | +| **เอกสารส่งมอบครั้งที่ 3 (ส่งมอบและปิดโครงการ)** | | | +| WP 10.0 | เอกสาร 200-WMS-26-001-00 Product Operation Guide | 1.0 | +| WP 11.0 | เอกสาร 200-WMS-26-001-00 Maintenance Document | 1.0 | +| — | เอกสาร 200-WMS-26-001-00 Acceptance Report | 1.0 | + +## รายการ Configuration Item ของซอฟต์แวร์ + +| ลำดับ | รายการ | ที่จัดเก็บ | การควบคุมเวอร์ชัน | +| :---: | --- | --- | --- | +| 1 | Source Code แอปพลิเคชัน PHP | `app/` | Git baseline `6c39700` บน branch main | +| 2 | บริการ Node.js (แจ้งเตือนและงานตามกำหนดเวลา) | `nodejs/` | Git พร้อม package.json และ package-lock.json | +| 3 | สคริปต์ติดตั้งฐานข้อมูล | `setup.php`, `docker/mariadb/init-wms2.sql` | Git | +| 4 | ชุดติดตั้ง Docker Compose | `docker-compose.yml`, `docker/`, `.env.example` | Git (ไม่รวมค่าความลับ) | +| 5 | ค่าตั้งค่าและความลับของสภาพแวดล้อม | `.env`, `app/config.php` บนเครื่องที่ติดตั้ง | ไม่ควบคุมใน Git สร้างขึ้นตอนติดตั้งด้วย `docker/init-env.sh` | +| 6 | เอกสาร Work Products | `sdlc/` | Git (Markdown ต้นฉบับ) | +| 7 | ชุดเอกสารส่งมอบ (PDF) | `sdlc-delivery/` | Git สร้างจาก `sdlc/` ด้วย `scripts/build-sdlc-delivery.sh` | + +## การควบคุมเวอร์ชันและการเข้าถึง + +| หัวข้อ | รายละเอียด | +| --- | --- | +| Repository หลัก (origin) | `git@188.166.228.62:nok/wms-app.git` | +| Repository สำรอง (backup) | `git@github.com:thanakorninbox-dev/wms-app.git` | +| Branch หลัก | `main` เป็น Baseline ที่ควบคุม | +| Baseline ของระบบที่ส่งมอบ | Commit `6c39700` | +| Tag ของชุดเอกสารส่งมอบ | `sdlc-v1.0-final` | +| สิทธิ์การเข้าถึง | ยืนยันตัวตนด้วย SSH Key ตามบทบาทของสมาชิกโครงการ | + +## การเชื่อมโยงกับการเปลี่ยนแปลง + +การเปลี่ยนแปลง Configuration Item ต้องผ่าน Change Report (CH-001–CH-003) และการแก้ไขข้อบกพร่องต้องบันทึกใน Correction Register (ISS-001–ISS-028) โดยทุกรายการเชื่อมโยงกับ Commit ที่ตรวจสอบได้ใน Repository + +## ผู้จัดทำเอกสาร (Secretary) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณธนกร สถิตวิทยากุล | Developer | | | + +## ผู้ตรวจสอบเอกสาร (Reviewer) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณอภิรัชช์ สุภัทรประทีป | Project Manager | | | + +## ผู้อนุมัติ (Approval) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเสรี วิริยะสกุลธรณ์ | Project Sponsor | | | diff --git a/sdlc/1-PM Process (10 Work Product)/8.Software Configuration/200-WMS-26-001-00 Software Configuration 25690817 V1.0.md b/sdlc/1-PM Process (10 Work Product)/8.Software Configuration/200-WMS-26-001-00 Software Configuration 25690817 V1.0.md deleted file mode 100644 index 5af891d..0000000 --- a/sdlc/1-PM Process (10 Work Product)/8.Software Configuration/200-WMS-26-001-00 Software Configuration 25690817 V1.0.md +++ /dev/null @@ -1,99 +0,0 @@ -# Software Configuration - -| Document field | Value | -|---|---| -| Document | Software Configuration | -| Project | BRN WMS | -| Project code | 200-WMS-26-001-00 | -| Title | Record of Software and Project Document Configuration and Version Control | -| Project period | 05/01/26–24/08/26 | -| Release | 17/08/26 V1.0 | -| Closure status date | 24/08/26 | -| Standard | ISO/IEC 29110 Basic Profile | -| Project Manager | Apirach Supattaratpateep | -| System Analyst | Noppong Chareunsook | -| Developer | Thanakorn Sathitwitayakul | -| Project Sponsor / Customer Representative | Seri Viriyasakultorn | -| Status | Final | - -## 1. Purpose - -This record identifies the controlled documents and software components that make up the BRN WMS configuration baseline and their version-control mechanism. - -## 2. Controlled work products - -| No. | Work product | Version | Status | -|---:|---|---|---| -| WP1 | Statement of Work | V1.0 Final | Complete | -| WP2 | Project Plan (Work Schedule, Software Project Plan, Customer Requirements) | V1.0 Final | Complete | -| WP3 | Progress Status Records (13 task-based records) | V1.0 | Complete | -| WP4 | Correction Register | V1.0 | Complete; 28 of 28 verified against linked test cases and formally closed through the Accepted decision | -| WP5 | Acceptance Report | V1.0 | Complete; decision Accepted and authorization recorded | -| WP6 | Change Report (3 separate reports: CH-001–CH-003) | V1.0 each | Complete | -| WP7 | Meeting Record (4 checkpoint records: MTG-001–MTG-004) | V1.0 each | Complete | -| WP8 | Software Configuration | V1.0 | This document | -| WP9 | Project Repository | V1.0 | Complete | -| WP10 | Project Repository (Backup) | V1.0 | Complete; BK-001–BK-004 closed, including final SDLC branch/tag synchronization and retrieval verification | -| WP11 | Software Requirements Specification (SRS) | V1.0 | Complete | -| WP12 | Software Design | V1.0 | Complete | -| WP13 | Traceability Record | V1.0 | Complete; 34/34 requirements linked and verified | -| WP14 | Software Components | V1.0 | Complete | -| WP15 | Test Cases and Test Procedures | V1.0 | Complete; 34 cases defined, 34 executed 10/08/26–14/08/26 | -| WP16 | Test Report | V1.0 | Complete; 34 of 34 executed and passed 10/08/26–14/08/26 | -| WP17 | Software | V1.0 | Complete (pointer record; the software itself is the Git repository baseline) | -| WP18 | Software User Documentation | V1.0 | Complete | -| WP19 | Product Operation Guide | V1.0 | Complete | -| WP20 | Maintenance Documentation | V1.0 | Complete | -| WP21 | Verification Results | V1.0 | Complete; Round 2 independent verification by Document Control 17/08/26 | -| WP22 | Validation Result | V1.0 | Complete; 12 of 12 scenarios executed and passed 10/08/26–14/08/26 | -| Other Document | List of Evidence, Stakeholder Register, Project Charter Report, Traceability Record Table, Training Report | V1.0 | Complete; training delivered to 6 attendees on 22/08/26 with successful workflow walkthrough | - -## 3. Software baseline (configuration items) - -| Item | Location | Version-control reference | Control mechanism | -|---|---|---|---| -| Application source (PHP) | `app/` | Git baseline `6c39700` | Git; software baseline on `main` | -| Node.js services (notifications, scheduler) | `nodejs/` | Git baseline `6c39700`; `package.json`/`package-lock.json` | Git; software baseline on `main` | -| Database setup/schema | `setup.php`, `docker/mariadb/init-wms2.sql` | Git baseline `6c39700` | Git; software baseline on `main` | -| Deployment configuration | `docker-compose.yml`, `docker/`, `.env.example` | Git baseline `6c39700` | Git; software baseline on `main`; secrets excluded | -| Environment secrets (`.env`, `app/config.php`) | Deployment host only | Not version-controlled | Generated at deploy time via `docker/init-env.sh`; excluded by `.gitignore` | -| SDLC work products | `sdlc/` | Git-tracked `.md` | Git; documentation delivery branch `sdlc` | -| SDLC delivery package | `sdlc-delivery/` | Generated from `sdlc/`, not hand-edited | Git; documentation delivery branch `sdlc`; generated by `scripts/build-sdlc-delivery.sh` | - -## 4. Version control and access - -| Field | Value | -|---|---| -| Repository | This Git repository; delivered software baseline `6c39700` on `main`, with SDLC sources and generated delivery package controlled on the `sdlc` documentation delivery branch | -| Primary remote (`origin`) | `git@188.166.228.62:nok/wms-app.git` | -| Backup remote (`backup`) | `git@github.com:thanakorninbox-dev/wms-app.git` | -| Access control | SSH key-based Git authentication (per configured remotes); no separate access-control record produced | - -## 5. Change linkage - -Configuration-item changes are controlled through the Change Report and Correction Register. - -## 6. Approval - -### Prepared by - -Name: Thanakorn Sathitwitayakul -Role: Developer -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Reviewed by - -Name: Apirach Supattaratpateep -Role: Project Manager -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Approved by - -Name: Seri Viriyasakultorn -Project roles: Project Sponsor / Customer Representative / Authorized Approver -Position: Managing Director -Company: B.R.N. Enterprise Co., Ltd. -Signature: ______________________________________________ -Date: ___________________________________________________ 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 new file mode 100644 index 0000000..0c3eedb --- /dev/null +++ b/sdlc/1-PM Process (10 Work Product)/9.Project Repository/200-WMS-26-001-00 Project Repository 25690817 V1.0 ThS.md @@ -0,0 +1,68 @@ +# Project Repository + + + +| Document No | Project Repository | Release, Version, By: | 25690817 V1.0 ThS | +| Project Name | โครงการพัฒนาระบบบริหารจัดการคลังสินค้า (BRN WMS) บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด | +| Project Code | 200-WMS-26-001-00 | +| Title | พื้นที่เก็บข้อมูล เอกสาร และหลักฐานทุกอย่างของโครงการ | +| ระยะเวลา | 5 มกราคม 2569 – 24 สิงหาคม 2569 | +| Organizer | คุณอภิรัชช์ สุภัทรประทีป (Project Manager) | +| Recorder | คุณเยาวลักษณ์ บางชมภู (Document Control) | + +## ข้อมูล Repository + +| หัวข้อ | รายละเอียด | +| --- | --- | +| ประเภท | Git Server | +| Repository หลัก (origin) | `git@188.166.228.62:nok/wms-app.git` | +| Branch หลัก | `main` | +| Branch เอกสารส่งมอบ | `sdlc` | +| Baseline ของระบบที่ส่งมอบ | Commit `6c39700` | +| Tag ของชุดเอกสารส่งมอบ | `sdlc-v1.0-final` | +| สิทธิ์การเข้าถึง | ยืนยันตัวตนด้วย SSH Key ตามบทบาทของสมาชิกโครงการ | + +## โครงสร้างการจัดเก็บ + +| ลำดับ | ส่วนงาน | ที่จัดเก็บ | เนื้อหา | +| :---: | --- | --- | --- | +| 1 | Source Code แอปพลิเคชัน | `app/` | เข้าสู่ระบบ, คลังสินค้า, ขาย, จัดซื้อ, การเงิน, บัญชี, รายงาน, บาร์โค้ด | +| 2 | บริการ Real-time และงานตามกำหนดเวลา | `nodejs/` | Socket.IO และงานสรุปยอด/แจ้งเตือน | +| 3 | การติดตั้งและตั้งค่า | `docker/`, `docker-compose.yml`, `setup.php`, `.env.example` | ชุดติดตั้ง Container และสคริปต์สร้างฐานข้อมูล | +| 4 | ข้อมูลสาธิต | `demo_seed*.php` | ชุดข้อมูลตัวอย่างสำหรับตรวจรับและสาธิต | +| 5 | เอกสาร Work Products | `sdlc/` | เอกสาร ISO/IEC 29110 กระบวนการ PM และ SI | +| 6 | ชุดเอกสารส่งมอบ | `sdlc-delivery/` | ไฟล์ PDF ที่สร้างจาก `sdlc/` | +| 7 | สคริปต์สนับสนุนโครงการ | `scripts/` | สคริปต์สร้างและตรวจสอบชุดเอกสารส่งมอบ | + +## การควบคุมการเข้าถึงและการจัดเก็บ + +- สมาชิกโครงการทุกคนเข้าถึง Repository ได้ผ่าน Git Server ตามสิทธิ์ของบทบาท +- Project Manager และ System Analyst มีสิทธิ์อนุมัติการ Merge เข้าสู่ Branch หลัก +- ไฟล์ที่เกี่ยวข้องกับโครงการทั้งหมดต้องจัดเก็บใน Repository นี้ +- ค่าตั้งค่าและความลับของสภาพแวดล้อมต้องไม่ถูกนำเข้า Repository + +## หลักฐานการจัดเก็บ + +| ลำดับ | หลักฐาน | รายละเอียด | +| :---: | --- | --- | +| 1 | โครงสร้าง Repository และประวัติการเปลี่ยนแปลง | ตรวจสอบได้จาก Git Server ตามสิทธิ์ที่ได้รับ | +| 2 | Baseline ของระบบที่ส่งมอบ | Commit `6c39700` บน branch `main` | +| 3 | ชุดเอกสารส่งมอบที่ควบคุมแล้ว | Branch `sdlc` และ Tag `sdlc-v1.0-final` | + +## ผู้จัดทำเอกสาร (Secretary) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณธนกร สถิตวิทยากุล | Developer | | | + +## ผู้ตรวจสอบเอกสาร (Reviewer) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณอภิรัชช์ สุภัทรประทีป | Project Manager | | | + +## ผู้อนุมัติ (Approval) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเสรี วิริยะสกุลธรณ์ | Project Sponsor | | | diff --git a/sdlc/1-PM Process (10 Work Product)/9.Project Repository/200-WMS-26-001-00 Project Repository 25690817 V1.0.md b/sdlc/1-PM Process (10 Work Product)/9.Project Repository/200-WMS-26-001-00 Project Repository 25690817 V1.0.md deleted file mode 100644 index eb84bb4..0000000 --- a/sdlc/1-PM Process (10 Work Product)/9.Project Repository/200-WMS-26-001-00 Project Repository 25690817 V1.0.md +++ /dev/null @@ -1,73 +0,0 @@ -# Project Repository - -| Document field | Value | -|---|---| -| Document | Project Repository | -| Project | BRN WMS | -| Project code | 200-WMS-26-001-00 | -| Title | Master Project Repository Record | -| Project period | 05/01/26–24/08/26 | -| Release | 17/08/26 V1.0 | -| Standard | ISO/IEC 29110 Basic Profile | -| System Analyst | Noppong Chareunsook | -| Developer | Thanakorn Sathitwitayakul | -| Project Manager | Apirach Supattaratpateep | -| Project Sponsor / Customer Representative | Seri Viriyasakultorn | -| Status | Final | - -## 1. Purpose - -This record identifies the single authoritative repository that stores BRN WMS source code, deployment configuration, and SDLC work products, so that project artifacts can be located, accessed, and audited. - -## 2. Repository identification - -| Field | Value | -|---|---| -| Repository type | Git | -| Primary (authoritative) remote | `origin` — `git@188.166.228.62:nok/wms-app.git` | -| Default branch | `main` | -| Documentation delivery branch | `sdlc` | -| Delivered software baseline | `6c39700` on `main` | -| Access | SSH key-based Git authentication | - -## 3. Repository contents - -| Area | Path | Contents | -|---|---|---| -| Application source | `app/` | PHP application: login/onboarding, inventory/warehouse, orders, accounting, reporting, barcode | -| Realtime/scheduled services | `nodejs/` | Socket.IO notifications and scheduled stock/GL jobs | -| Deployment | `docker/`, `docker-compose.yml`, `.env.example`, `setup.php` | Container build, environment generation, one-shot database setup | -| Demo/seed data | `demo_seed*.php` | Representative demo data population scripts | -| SDLC work products | `sdlc/` | ISO/IEC 29110 PM and SI work products (this document's own folder) | -| SDLC delivery package | `sdlc-delivery/` | PDFs generated from `sdlc/` by `scripts/build-sdlc-delivery.sh` | -| Supporting scripts | `scripts/` | Project support scripts | -| Landing/front pages | `landing/` | Public-facing pages | - -## 4. Repository management - -The repository is managed solely through Git; there is no separate document-management system for source code. The delivered application baseline is commit `6c39700` on `main`. SDLC work-product Markdown is controlled in the same repository under `sdlc/` on the documentation delivery branch `sdlc`. The PDF delivery package is generated in-repo at `sdlc-delivery/` from those sources by `scripts/build-sdlc-delivery.sh`, mirroring the `sdlc/` folder structure. - -## 5. Approval - -### Prepared by - -Name: Thanakorn Sathitwitayakul -Role: Developer -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Reviewed by - -Name: Apirach Supattaratpateep -Role: Project Manager -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Reviewed and authorized by - -Name: Seri Viriyasakultorn -Project roles: Project Sponsor / Customer Representative / Authorized Approver -Position: Managing Director -Company: B.R.N. Enterprise Co., Ltd. -Signature: ______________________________________________ -Date: ___________________________________________________ diff --git a/sdlc/2-SI Process (12 Work Product)/11.Software Requirements specification (SRS)/200-WMS-26-001-00 Software Requirements 25690225 V1.0 NoC.md b/sdlc/2-SI Process (12 Work Product)/11.Software Requirements specification (SRS)/200-WMS-26-001-00 Software Requirements 25690225 V1.0 NoC.md new file mode 100644 index 0000000..0c4d5a6 --- /dev/null +++ b/sdlc/2-SI Process (12 Work Product)/11.Software Requirements specification (SRS)/200-WMS-26-001-00 Software Requirements 25690225 V1.0 NoC.md @@ -0,0 +1,112 @@ +# Software Requirements + + + +| Document No | Software Requirements | Release, Version, By: | 25690225 V1.0 NoC | +| Project Name | โครงการพัฒนาระบบบริหารจัดการคลังสินค้า (BRN WMS) บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด | +| Project Code | 200-WMS-26-001-00 | +| Title | เอกสารบันทึกและสรุปความต้องการซอฟต์แวร์ (Software Requirements Specification) | +| Project Period | 5 มกราคม 2569 – 24 สิงหาคม 2569 | +| Organizer | คุณอภิรัชช์ สุภัทรประทีป (Project Manager) , คุณนพพงษ์ เจริญสุข (System Analyst) | +| Recorder | คุณเยาวลักษณ์ บางชมภู (Document Control) | + +## วัตถุประสงค์ (Objectives) + +เพื่อแปลงความต้องการของลูกค้าที่ได้รับอนุมัติแล้วให้เป็นความต้องการเชิงเทคนิคของซอฟต์แวร์ ครอบคลุมมาตรฐาน โครงสร้าง ส่วนประกอบ ความสัมพันธ์ ประสิทธิภาพ ส่วนเชื่อมต่อ ความปลอดภัย ฐานข้อมูล และการจัดการข้อผิดพลาด เพื่อใช้เป็นเอกสารอ้างอิงหลักในการออกแบบระบบ พัฒนา และทดสอบ + +## ผู้มีส่วนได้ส่วนเสีย (Stakeholders) + +| ลำดับ | ชื่อ | หน่วยงาน/ตำแหน่ง | บทบาท | +| :---: | --- | --- | --- | +| 1 | คุณเสรี วิริยะสกุลธรณ์ | ผู้บริหาร (CEO) | Project Sponsor อนุมัติความต้องการ | +| 2 | คุณอภิรัชช์ สุภัทรประทีป | ผู้จัดการโครงการ | บริหารจัดการโครงการ | +| 3 | คุณนพพงษ์ เจริญสุข | นักวิเคราะห์ระบบ | จัดทำและควบคุมความต้องการซอฟต์แวร์ | +| 4 | คุณธนกร สถิตวิทยากุล | นักพัฒนาระบบ | พัฒนาระบบตามความต้องการ | +| 5 | คุณปริญ งามขำ | ผู้ทดสอบระบบ | จัดทำ Test Case จากความต้องการ | + +## ความต้องการซอฟต์แวร์ (Software Requirements) + +| ID | Topic | Result* | Remark | +| --- | --- | :---: | --- | +| SR01: Standards of Software | | | | +| SR01:001 | ระบบต้องพัฒนาและจัดทำเอกสารให้สอดคล้องกับมาตรฐาน ISO/IEC 29110 Basic Profile และแนวปฏิบัติ Secure Coding | A | CR12:004, CR14:001–CR14:003, CR09:003, CR10:004, CR11:001–CR11:004 | +| SR01:002 | ระบบต้องใช้เทคโนโลยี PHP 8 ขึ้นไป, MySQL/MariaDB และ Node.js (Socket.IO, pm2) | A | CR04:004, CR12:001 | +| SR01:003 | ระบบต้องติดตั้งบน Linux Server ได้ทั้งแบบ Manual (setup.php) และ Docker Compose (php-apache, mariadb, node/pm2) | A | CR07:001, CR10:001, CR10:002, CR08:001, CR08:002, CR13:003 | +| SR01:004 | รหัสผ่านผู้ใช้ต้องเข้ารหัสด้วย bcrypt (PASSWORD_BCRYPT) และไม่เก็บหรือบันทึกเป็นข้อความธรรมดา | A | CR12:003 | +| SR01:005 | ค่าตั้งค่าและความลับ (app/config.php, .env) ต้องถูกยกเว้นจาก Source Control และสร้างขึ้นตอนติดตั้ง | A | CR06:002, CR09:002, CR10:003 | +| SR01:006 | แอปพลิเคชันและงานตามกำหนดเวลาต้องใช้เขตเวลา Asia/Bangkok | A | CR07:002 | +| SR02: Software Structure Considerations | | | | +| SR02:001 | ระบบต้องเป็น Web-based Application แบบหลายหน้า (Multi-page PHP) | A | CR04:001 | +| SR02:002 | ส่วนติดต่อผู้ใช้ต้องเป็น Responsive Design รองรับ Desktop / Tablet / Mobile | A | CR05:001, CR07:003 | +| SR02:003 | ตรรกะทางธุรกิจต้องจัดเป็น Manager/Service Classes ที่เรียกใช้จาก Page Controller แยกจากส่วนแสดงผล | A | CR09:001 | +| SR02:004 | การเข้าถึงข้อมูลต้องผ่าน Manager Classes ไม่กระจาย SQL ในหน้าเพจ | A | CR09:001 | +| SR02:005 | ระบบต้องติดตั้งเป็น Container Stack ผ่าน Docker Compose ได้ นอกเหนือจากการติดตั้งแบบ Manual | A | CR10:002 | +| SR03: Software Elements | | | | +| SR03:001 | โมดูลผู้ใช้งานและสิทธิ์: ลงทะเบียน, Onboarding, เข้าสู่ระบบ, บทบาท Owner/Admin/Staff/Viewer, สิทธิ์แอปพลิเคชัน (app/login/, UserManager, PasswordManager, PasswordResetManager) | A | CR01:001–CR01:004 | +| SR03:002 | โมดูลตั้งค่าบริษัท: ข้อมูลบริษัท, SMTP, การตั้งค่าระบบ (app/setting/, CompanyProfileManager, CompanySettingManager, SmtpManager) | A | CR01:004, CR03:005 | +| SR03:003 | โมดูลข้อมูลหลัก: คลังสินค้า, พื้นที่/ช่องจัดเก็บ, หมวดสินค้า, สินค้า, ผู้ติดต่อ (app/inventory/, app/contact/, WarehouseManager, ProductManager, ContactManager) | A | CR01:005, CR01:006 | +| SR03:004 | โมดูลควบคุมสินค้าคงคลัง: รับเข้า, จ่ายออก, โอนย้าย, Lot/Serial/Expiry, บาร์โค้ด, แนบไฟล์ (app/ics/, StockManager, StockSourceManager, BarcodeManager, FileUploader) | A | CR01:007–CR01:012, CR01:019, CR05:005 | +| SR03:005 | โมดูลขาย: ใบเสนอราคา, ใบสั่งขาย, ใบแจ้งหนี้, ใบรับคืน/ใบลดหนี้ (app/order/, app/revenue/, QuotationManager, OrderManager, InvoiceManager, ReturnManager) | A | CR01:013 | +| SR03:006 | โมดูลจัดซื้อ: ใบขอซื้อ, ใบสั่งซื้อ, ใบแจ้งหนี้ซื้อ, ใบคืนสินค้าผู้ขาย (app/po/, PurchaseRequestManager, PurchaseOrderManager, SupplierReturnManager) | A | CR01:014 | +| SR03:007 | โมดูลการเงิน: ใบวางบิลรับ, ใบเสร็จ, ใบวางบิลจ่าย, ใบสำคัญจ่าย (app/finance/, ReceiptBillingManager, ReceiptManager, PaymentBillingManager, PaymentManager) | A | CR01:015 | +| SR03:008 | โมดูลบัญชี: ผังบัญชี, แผนก, สูตรบัญชี, สมุดรายวัน, บัญชีแยกประเภท (app/accounting/, app/journal/, PostingManager) | A | CR01:016 | +| SR03:009 | โมดูลรายงานและแดชบอร์ด: รายงานสต๊อก, รายงานการเงิน, แดชบอร์ด (app/reports/, app/dashboard/, app/ac_dashboard/, ReportManager, EtlStockManager) | A | CR01:011, CR01:017, CR01:020 | +| SR03:010 | โมดูลควบคุมเอกสาร: ออกเลขที่เอกสาร, วงจรชีวิต/สถานะ, ประวัติรายการ (DocumentNumberManager, BatchActionManager) | A | CR01:018, CR01:023 | +| SR03:011 | บริการแจ้งเตือนและงานตามกำหนดเวลา: Socket.IO และ Scheduler (nodejs/server.js, nodejs/scheduler.js, app/cron/) | A | CR01:021, CR01:022 | +| SR04: Software Elements Relationship | | | | +| SR04:001 | ทุกโมดูลปฏิบัติการต้องเข้าถึงได้ผ่านการยืนยันตัวตนและการตรวจสิทธิ์ของโมดูลผู้ใช้งานเท่านั้น | A | CR01:002, CR01:024, CR04:003, CR05:002 | +| SR04:002 | โมดูลขาย จัดซื้อ และการเงิน ต้องบันทึกผลกระทบต่อสต๊อกและ GL ผ่านโมดูลคลังสินค้าและบัญชี ไม่ทำซ้ำตรรกะ | A | CR01:013–CR01:016 | +| SR04:003 | โมดูลรายงานต้องอ่านข้อมูลภายใต้ขอบเขตบริษัท/คลังที่โมดูลข้อมูลหลักและคลังสินค้าบังคับใช้ | A | CR01:024, CR08:004 | +| SR04:004 | บริการ Node.js ต้องรับเหตุการณ์จากแอปพลิเคชัน PHP ผ่าน Endpoint ภายในที่ป้องกันด้วย Secret เท่านั้น | A | CR01:021, CR03:003 | +| SR04:005 | ทุกโมดูลที่สร้างเอกสารธุรกิจต้องเรียกใช้โมดูลควบคุมเอกสารเพื่อออกเลขที่เอกสาร | A | CR01:018 | +| SR05: Performance Characteristics | | | | +| SR05:001 | งานประจำวัน (เปิดหน้าจอ, ค้นหา, สร้างเอกสาร) ต้องเสร็จภายในเวลาที่ใช้งานได้จริงบนสภาพแวดล้อมที่ตกลง | A | CR02:001 | +| SR05:002 | ยอดสรุปสต๊อก/GL/แดชบอร์ดต้องคำนวณล่วงหน้าตามกำหนดเวลา (etl_stock_summary, etl_gl_summary) | A | CR02:002, CR01:022, CR08:005 | +| SR05:003 | ระบบต้องรองรับปริมาณข้อมูลและผู้ใช้พร้อมกันตามที่ตกลงสำหรับสภาพแวดล้อมใช้งานจริง | A | CR02:003 | +| SR05:004 | ระบบต้องมี Health Check ทุก 5 นาที และแจ้งเตือนผู้ดูแลเมื่อล้มเหลวติดต่อกัน 2 ครั้ง | A | CR08:003 | +| SR06: Software Interfaces | | | | +| SR06:001 | แอปพลิเคชัน PHP ต้องเชื่อมต่อฐานข้อมูล MariaDB 2 ฐาน: wms (ผู้ใช้/บริษัท) และ wms2 (คลัง/บัญชี) | A | CR03:001 | +| SR06:002 | ระบบต้องใช้งานได้บน Chrome, Edge และ Firefox รุ่นปัจจุบัน | A | CR03:002 | +| SR06:003 | ระบบต้องรองรับ Mobile/Tablet Browser ผ่าน Responsive UI | A | CR07:003 | +| SR06:004 | แอปพลิเคชัน PHP ต้องส่งเหตุการณ์ไป Node.js ผ่าน HTTP Endpoint ภายใน (NODE_EMIT_URL + NODE_EMIT_SECRET) และส่งอีเมลผ่าน SMTP ต่อบริษัท | A | CR03:003, CR03:005 | +| SR06:005 | Browser ต้องเชื่อมต่อ Socket.IO Endpoint (NODE_PUBLIC_URL) เพื่อรับการแจ้งเตือน | A | CR03:004 | +| SR07: Security Characteristics | | | | +| SR07:001 | การเชื่อมต่อในสภาพแวดล้อมใช้งานจริงต้องผ่าน HTTPS/TLS | A | CR06:001 | +| SR07:002 | การทำงานฝั่งเซิร์ฟเวอร์ต้องตรวจสอบข้อมูลนำเข้า ยืนยันตัวตน ตรวจสิทธิ์ และจำกัดขอบเขตบริษัท/คลัง | A | CR06:003, CR14:004 | +| SR07:003 | ระบบต้องอนุญาต Session ที่ใช้งานอยู่เพียงหนึ่งต่อบัญชี (บล็อก Concurrent Login) | A | CR06:006 | +| SR07:004 | ระบบต้องป้องกัน SQL Injection และ Cross-Site Scripting ทั้งด้านรับข้อมูลและแสดงผล | A | CR06:005 | +| SR07:005 | RBAC (Owner/Admin/Staff/Viewer) ต้องบังคับใช้ที่ฝั่งเซิร์ฟเวอร์ ไม่ใช่เพียงการซ่อนเมนู | A | CR06:004 | +| SR08: Database Design Requirements | | | | +| SR08:001 | ฐานข้อมูล wms: user, company_list, company_map_user, company_setting, company_smtp, company_usage, whitelist | A | CR01:001–CR01:004, CR04:002 | +| SR08:002 | ตารางข้อมูลหลัก (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 | A | CR01:005, CR01:010, CR01:016 | +| SR08:003 | ตารางรายการ (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 | A | CR01:007–CR01:018 | +| SR08:004 | ตารางสรุปยอดและควบคุมเอกสาร: etl_stock_summary, etl_gl_summary, document_number_sequences, document_types, schema_migrations | A | CR01:018, CR01:022, CR09:004 | +| SR08:005 | ตารางทั้งหมดต้องสร้างซ้ำได้ในสภาพแวดล้อมใหม่ผ่าน setup.php โดยไม่ต้องแก้ Schema ด้วยมือ | A | CR10:001, CR09:004 | +| SR09: Error Handling and Recovery Attributes | | | | +| SR09:001 | การลบ ยกเลิก หรือ Void เอกสารควบคุมต้องมี Confirm Dialog | A | CR05:004, CR01:023 | +| SR09:002 | ข้อผิดพลาดต้องแสดงข้อความที่ผู้ใช้เข้าใจได้แทน Fatal Error | A | CR05:003, CR13:004 | +| SR09:003 | การเปลี่ยนแปลงที่เกี่ยวข้องกัน (เอกสาร + สต๊อก + GL) ต้องเป็น Transaction และป้องกันยอดติดลบ/ซ้ำ | A | CR13:001, CR13:002, CR01:008 | + +## Remark + +- \* Result : A = Accepted, U = Unaccepted, N/A = Not Applicable +- ช่อง Remark แสดงรหัสความต้องการของลูกค้า (Customer Requirements) ที่เป็นที่มาของความต้องการซอฟต์แวร์แต่ละรายการ +- ความต้องการซอฟต์แวร์ที่ไม่มีที่มาจากความต้องการของลูกค้าต้องผ่าน Change Report ก่อนถือเป็นข้อผูกพัน + +## ผู้จัดทำเอกสาร (Secretary) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณนพพงษ์ เจริญสุข | System Analyst | | | + +## ผู้ตรวจสอบเอกสาร (Reviewer) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเยาวลักษณ์ บางชมภู | Document Control | | | + +## ผู้อนุมัติ (Approval) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเสรี วิริยะสกุลธรณ์ | Project Sponsor | | | diff --git a/sdlc/2-SI Process (12 Work Product)/11.Software Requirements specification (SRS)/200-WMS-26-001-00 Software Requirements Specification 25690817 V1.0.md b/sdlc/2-SI Process (12 Work Product)/11.Software Requirements specification (SRS)/200-WMS-26-001-00 Software Requirements Specification 25690817 V1.0.md deleted file mode 100644 index 6233242..0000000 --- a/sdlc/2-SI Process (12 Work Product)/11.Software Requirements specification (SRS)/200-WMS-26-001-00 Software Requirements Specification 25690817 V1.0.md +++ /dev/null @@ -1,144 +0,0 @@ -# Software Requirements Specification (SRS) - -| Document field | Value | -|---|---| -| Document | Software Requirements Specification | -| Project | BRN WMS | -| Project code | 200-WMS-26-001-00 | -| Title | Software Requirements Recording and Summary Document (Software Requirements Specification) | -| Project period | 05/01/26–24/08/26 | -| Release | 17/08/26 V1.0 | -| Standard | ISO/IEC 29110 Basic Profile | -| Organizer | Apirach Supattaratpateep (Project Manager), Noppong Chareunsook (System Analyst), Thanakorn Sathitwitayakul (Developer) | -| Recorder | Thanakorn Sathitwitayakul — Developer | -| Status | Final — reformulates the approved Customer Requirements into technical software requirements | - -## Objective - -To restate the approved Customer Requirements as technical software requirements — standards, structure, elements, relationships, performance, interfaces, security, database, and error handling — so they can drive Software Design, Software Components, Test Cases, and Traceability. - -## Basis and scaling note - -The example reference package (`200-TAS-25-001-00`) enumerates one SR row per screen/CRUD action because that project is a small brochure site with ~6 modules. BRN WMS is a multi-domain warehouse/ERP system with 31 backend manager/service classes plus one shared trait (32 files) and 17 top-level application areas (Section 3 below). Reproducing CRUD-button-level granularity would create hundreds of near-duplicate rows without adding traceability value. This SRS therefore keeps the same category structure (SR01–SR09) as the example but sets granularity at the same level already approved in the Customer Requirements (FR-001–FR-024, NFR-001–NFR-010), one SR row per requirement or tight requirement group. Every SR row's Remark links back to its Customer Requirements ID. - -## SR01: Standards of Software - -| ID | Requirement | Result* | Remark | -|---|---|---|---| -| SR01:001 | The system shall be developed in alignment with ISO/IEC 29110 Basic Profile documentation and traceability practice. | A | NFR-009 | -| SR01:002 | The system shall use PHP 8+ for the application layer, MySQL/MariaDB for data storage, and Node.js for real-time/scheduled services. | A | NFR-008 | -| SR01:003 | The system shall be deployable on a Linux server, either via manual LAMP-style installation (`setup.php`) or the provided Docker Compose stack (php-apache, mariadb, node/pm2). | A | NFR-004 | -| SR01:004 | User passwords shall be hashed with `PASSWORD_BCRYPT` (PHP default cost factor); plaintext passwords shall never be stored or logged. | A | NFR-002 | -| SR01:005 | Configuration secrets (`app/config.php`, `.env`) shall be excluded from source control and generated at deployment time. | A | NFR-001 | - -## SR02: Software Structure Considerations - -| ID | Requirement | Result* | Remark | -|---|---|---|---| -| SR02:001 | The system shall be a browser-based, multi-page PHP web application (not a single native client). | A | FR-002, operational context | -| SR02:002 | The user interface shall be responsive across desktop and warehouse-floor (tablet/mobile) viewports. | A | NFR-005 | -| SR02:003 | Application logic shall be organized as PHP manager/service classes invoked by page controllers, separated from page presentation. | A | NFR-007 | -| SR02:004 | Data access shall be encapsulated through manager classes rather than inline SQL scattered across pages, where practical. | A | NFR-007 | -| SR02:005 | The system shall be deployable as a container stack (Docker Compose: php-apache, mariadb, node/pm2) in addition to manual installation. | A | NFR-004 | - -## SR03: Software Elements (Modules) - -| ID | Requirement | Result* | Remark | -|---|---|---|---| -| SR03:001 | Identity/access module: registration, onboarding, authentication, role (Owner/Admin/Staff/Viewer) and application-access management (`app/login/`, `UserManager`, `PasswordManager`, `PasswordResetManager`). | A | FR-001–FR-004 | -| SR03:002 | Company/system configuration module: company profile, SMTP, system settings (`app/setting/`, `CompanyProfileManager`, `CompanySettingManager`, `SmtpManager`). | A | FR-004 | -| SR03:003 | Master data module: warehouses, storage/bins, product categories, products, contacts (`app/inventory/`, `app/contact/`, `WarehouseManager`, `ProductManager`, `ContactManager`). | A | FR-005, FR-006 | -| SR03:004 | Inventory/warehouse operations module: stock-in, stock-out, transfer, lot/serial/expiry, barcode labels (`app/ics/`, `StockManager`, `StockSourceManager`, `BarcodeManager`). | A | FR-007–FR-012 | -| SR03:005 | Sales module: quotation, order, invoice, return, credit note (`app/order/`, `app/revenue/`, `QuotationManager`, `OrderManager`, `InvoiceManager`, `ReturnManager`). | A | FR-013 | -| SR03:006 | Purchasing module: purchase request, purchase order, purchase invoice, supplier return (`app/po/`, `PurchaseRequestManager`, `PurchaseOrderManager`, `SupplierReturnManager`). | A | FR-014 | -| SR03:007 | Finance module: receipt billing, receipts, payment billing, payments (`app/finance/`, `ReceiptBillingManager`, `ReceiptManager`, `PaymentBillingManager`, `PaymentManager`). | A | FR-015 | -| SR03:008 | Accounting module: chart of accounts, departments, account formulas, journals, general ledger (`app/accounting/`, `app/journal/`, `PostingManager`). | A | FR-016 | -| SR03:009 | Reporting/dashboard module: stock, financial, and operational reports and dashboards (`app/reports/`, `app/dashboard/`, `app/ac_dashboard/`, `app/revenue/`, `app/expense/`, `ReportManager`). | A | FR-011, FR-017, FR-020 | -| SR03:010 | Document-control module: controlled document numbering and lifecycle/status (`DocumentNumberManager`). | A | FR-018 | -| SR03:011 | Notification/scheduler services: Socket.IO notifications and scheduled aggregate/alert jobs (`nodejs/server.js`, `nodejs/scheduler.js`, `app/cron/`, `EtlStockManager`). | A | FR-021, FR-022 | - -## SR04: Software Elements Relationship - -| ID | Requirement | Result* | Remark | -|---|---|---|---| -| SR04:001 | Every operational module shall be reachable only through the identity/access module's authentication and role/application-access checks. | A | FR-002, FR-024 | -| SR04:002 | Sales, purchasing, and finance modules shall post related stock and general-ledger effects through the inventory and accounting modules rather than duplicating their logic. | A | FR-013–FR-016 | -| SR04:003 | The reporting module shall read from, and never bypass, the authorization scope enforced by the master-data and inventory modules (company/warehouse isolation). | A | FR-024 | -| SR04:004 | The notification/scheduler services shall relay events from the PHP application through a secret-protected internal endpoint, not directly from the browser to internal services. | A | NFR-002 | -| SR04:005 | Document-control numbering shall be invoked by every module that creates a controlled business document (order, invoice, receipt, payment, journal, etc.). | A | FR-018 | - -## SR05: Performance Characteristics - -| ID | Requirement | Result* | Remark | -|---|---|---|---| -| SR05:001 | Representative daily operations (screen loads, list/search, document creation) shall complete within practical operational time on the agreed environment. | A | NFR-006 | -| SR05:002 | Stock, GL, and dashboard aggregates shall be maintained on a schedule (ETL/summary tables) so dashboard and report queries do not require full recomputation on each request. | A | NFR-006, FR-022 | -| SR05:003 | The system shall support the representative concurrent-user and data-volume levels agreed for the production environment. | A | NFR-006 | - -## SR06: Software Interfaces - -| ID | Requirement | Result* | Remark | -|---|---|---|---| -| SR06:001 | The PHP application shall connect to two MariaDB databases: `wms` (identity/company) and `wms2` (WMS/accounting). | A | Operational context, SR08 | -| SR06:002 | The application shall be usable on current standards-based browsers (Chrome, Edge, Firefox). | A | NFR-008 | -| SR06:003 | The application shall support mobile/tablet browser access through the responsive UI. | A | NFR-005 | -| SR06:004 | The PHP application shall relay events to the Node.js service over an internal, secret-protected HTTP endpoint (`NODE_EMIT_URL`, `NODE_EMIT_SECRET`). | A | NFR-002 | -| SR06:005 | The browser shall connect to the Node.js Socket.IO endpoint (`NODE_PUBLIC_URL`) for real-time notification delivery. | A | FR-021 | - -## SR07: Security Characteristics - -| ID | Requirement | Result* | Remark | -|---|---|---|---| -| SR07:001 | Production deployment shall terminate the client connection over HTTPS/TLS. | A | NFR-001 | -| SR07:002 | Server-side actions shall validate input and enforce authentication, authorization, and tenant (company/warehouse) scope. | A | NFR-002 | -| SR07:003 | The system shall enforce single active-session (block concurrent login) behavior per the implemented login policy. | A | NFR-002 | -| SR07:004 | The system shall protect against SQL injection and cross-site scripting in server-side input handling and output rendering. | A | NFR-002 | -| SR07:005 | Role-based access control (Owner/Admin/Staff/Viewer) shall restrict server-side actions, not only UI visibility. | A | FR-002, NFR-002 | - -## SR08: Database Design Requirements - -| ID | Requirement | Result* | Remark | -|---|---|---|---| -| SR08:001 | Identity/company database (`wms`): `user`, `company_list`, `company_map_user`, `company_setting`, `company_smtp`, `company_usage`, `whitelist`. | A | FR-001–FR-004 | -| SR08:002 | Master-data tables in the WMS database (`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`. | A | FR-005, FR-006, FR-010, FR-012, FR-016 | -| SR08:003 | Transaction-data tables (`td_*`): `td_stock`, `td_order`/`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`. | A | FR-007–FR-018 | -| SR08:004 | Aggregate/document-control tables: `etl_stock_summary`, `etl_gl_summary`, `document_number_sequences`, `document_types`, `schema_migrations`. | A | FR-018, FR-022 | -| SR08:005 | All tables created by the delivered `setup.php` shall be reproducible in a fresh environment without manual schema editing. | A | NFR-004 | - -## SR09: Error Handling and Recovery Attributes - -| ID | Requirement | Result* | Remark | -|---|---|---|---| -| SR09:001 | Destructive actions (delete, void, cancel of a controlled record) shall require an explicit confirmation step. | A | Usability practice; not a numbered CR/FR but implemented consistently across modules | -| SR09:002 | Errors shall present a usable message to the user rather than an unhandled fatal error, for the primary operational workflows. | A | NFR-006 | -| SR09:003 | Related database changes (e.g., document + stock + GL postings) shall be transactional where required to avoid partial/inconsistent updates. | A | NFR-003 | - -Remark: - -- \* Result: A = Accepted (implemented and evidenced in the current codebase), U = Unaccepted, N/A = Not Applicable. No SR row in this document is marked A without an identifiable implementing module, class, or table. -- This SRS restates already-approved Customer Requirements; it does not introduce new scope. Any SR row without a direct FR/NFR precedent must be raised through the Change Report before being treated as binding. - -## Approval - -### Prepared by - -Name: Thanakorn Sathitwitayakul -Role: Developer -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Reviewed by - -Name: Apirach Supattaratpateep -Role: Project Manager -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Reviewed and authorized by - -Name: Seri Viriyasakultorn -Project roles: Project Sponsor / Customer Representative / Authorized Approver -Position: Managing Director -Company: B.R.N. Enterprise Co., Ltd. -Signature: ______________________________________________ -Date: ___________________________________________________ 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 new file mode 100644 index 0000000..ab971d0 --- /dev/null +++ b/sdlc/2-SI Process (12 Work Product)/12.Software design/200-WMS-26-001-00 Software Design 25690306 V1.0 NoC.md @@ -0,0 +1,168 @@ +# Software Design + + + +| Document No | Software Design | Release, Version, By: | 25690306 V1.0 NoC | +| Project Name | โครงการพัฒนาระบบบริหารจัดการคลังสินค้า (BRN WMS) บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด | +| Project Code | 200-WMS-26-001-00 | +| Title | เอกสารการออกแบบระบบ (System Design Document) | +| Project Period | 5 มกราคม 2569 – 24 สิงหาคม 2569 | +| Organizer | คุณอภิรัชช์ สุภัทรประทีป (Project Manager) , คุณนพพงษ์ เจริญสุข (System Analyst) | +| Recorder | คุณเยาวลักษณ์ บางชมภู (Document Control) | + +## HIGH LEVEL DESIGN + +### Use Case Diagram + +ผู้ใช้งานของระบบและกลุ่มการใช้งานหลัก + +| Actor | คำอธิบาย | การใช้งานหลัก | +| --- | --- | --- | +| Owner | เจ้าของบริษัท สิทธิ์สูงสุดภายในบริษัท | ตั้งค่าบริษัท จัดการผู้ใช้ และใช้งานทุกโมดูล | +| Admin | ผู้ดูแลระบบภายในบริษัท | จัดการข้อมูลหลัก ผู้ใช้ สิทธิ์ และใช้งานทุกโมดูลปฏิบัติการ | +| Staff | ผู้ปฏิบัติงาน | บันทึกรายการคลังสินค้า ขาย จัดซื้อ และการเงินตามสิทธิ์ | +| Viewer | ผู้ใช้แบบอ่านอย่างเดียว | ดูหน้าจอและรายงานที่ได้รับสิทธิ์ | +| System Scheduler | ผู้กระทำอัตโนมัติ (Node.js) | สรุปยอดสต๊อก/GL และแจ้งเตือนตามกำหนดเวลา | +| SMTP Service | ผู้กระทำภายนอก | ส่งอีเมล Onboarding กู้คืนรหัสผ่าน และแจ้งเตือน | + +### Component Diagram + +โครงสร้างส่วนประกอบของระบบแบ่งตามชั้นการทำงาน + +| ชั้น (Layer) | ส่วนประกอบ | อ้างอิง SR | +| --- | --- | --- | +| Presentation | หน้าจอ PHP ในแต่ละโมดูล (`app//`), JavaScript และ CSS ที่รองรับ Responsive | SR02:002, SR06:002, SR06:003 | +| Business Logic | Manager/Service Classes ใน `app/assets/utils/classes/` เรียกใช้จาก Page Controller | SR02:003, SR03:001–SR03:011 | +| Data Access | Manager Classes เข้าถึงฐานข้อมูล MariaDB โดยตรง พร้อม Trait รวมตรรกะที่ใช้ร่วมกัน | SR02:004, SR06:001, SR08:001–SR08:005 | +| Real-time / Scheduler | บริการ Node.js (`server.js`, `scheduler.js`) ควบคุมด้วย pm2 | SR03:011, SR06:004, SR06:005 | +| External | บริการ SMTP สำหรับส่งอีเมล และ Socket.IO Client บน Browser | SR06:004, SR06:005 | + +### Deployment Diagram + +การติดตั้งระบบแบ่งเป็น 4 ชั้นบริการ + +| ชั้นการติดตั้ง (Tier) | ส่วนประกอบ | อ้างอิง SR | +| --- | --- | --- | +| Client | Web Browser (Chrome/Edge/Firefox) บน Desktop, Tablet และ Mobile พร้อม Socket.IO Client | SR06:002, SR06:003, SR06:005 | +| Web Tier | PHP 8 บน Apache ติดตั้งแบบ Manual หรือ Container `docker/php` | SR01:003, SR02:005 | +| Data Tier | MariaDB ฐานข้อมูล `wms` (ผู้ใช้/บริษัท) และ `wms2` (คลัง/บัญชี) | SR06:001, SR08:001–SR08:004 | +| Service Tier | Node.js `server.js` และ `scheduler.js` ควบคุมด้วย pm2 | SR03:011, SR06:004 | + +### User Interface Design + +ผังหน้าจอหลักของระบบแบ่งตามโมดูลการใช้งาน + +| กลุ่มหน้าจอ | หน้าจอ | +| --- | --- | +| Login & Onboarding | เข้าสู่ระบบ / ลงทะเบียนบริษัท / รับคำเชิญเข้าร่วมบริษัท / ลืมรหัสผ่าน / ยืนยัน OTP | +| Dashboard | แดชบอร์ดคลังสินค้า / แดชบอร์ดบัญชีและการเงิน | +| Master Data | คลังสินค้า / พื้นที่จัดเก็บ / ช่องจัดเก็บ / หมวดสินค้า / สินค้า / ประเภทผู้ติดต่อ / ผู้ติดต่อ | +| Inventory Control | รับสินค้าเข้า / จ่ายสินค้าออก / โอนย้ายสินค้า / ยอดคงเหลือ / Lot & Serial / พิมพ์บาร์โค้ด | +| Sales | ใบเสนอราคา / ใบสั่งขาย / ใบแจ้งหนี้ / ใบรับคืนและใบลดหนี้ | +| Purchasing | ใบขอซื้อ / ใบสั่งซื้อ / ใบแจ้งหนี้ซื้อ / ใบคืนสินค้าผู้ขาย | +| Finance | ใบวางบิลรับ / ใบเสร็จรับเงิน / ใบวางบิลจ่าย / ใบสำคัญจ่าย | +| Accounting | ผังบัญชี / แผนก / สูตรบัญชี / สมุดรายวัน / บัญชีแยกประเภท | +| Reports | รายงานสต๊อก / ความเคลื่อนไหว / ความจุคลัง / สินค้าใกล้หมด / สินค้าหมดอายุ / รายงานการเงิน | +| Settings | ข้อมูลบริษัท / SMTP / ผู้ใช้งานและสิทธิ์ / การตั้งค่าระบบ | + +## Software Baseline + +หัวข้อนี้ระบุสิ่งที่ถูกกำหนดเป็น Baseline ของซอฟต์แวร์ วันที่กำหนด และผู้อนุมัติ เพื่อให้ตรวจสอบเส้นทาง Baseline → Configuration → Change ได้ในเอกสารชุดเดียวกัน + +| รายการที่กำหนดเป็น Baseline | ค่าที่ควบคุม | ที่จัดเก็บ | +| --- | --- | --- | +| Source Code ของแอปพลิเคชัน | Git commit `6c39700` บน branch `main` | 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` | + +| หัวข้อ | รายละเอียด | +| --- | --- | +| วันที่กำหนด Baseline | 17 สิงหาคม 2569 (Baseline ของระบบที่ส่งมอบ) | +| ผู้จัดทำ Baseline | คุณธนกร สถิตวิทยากุล (Developer) | +| ผู้ตรวจสอบ | คุณนพพงษ์ เจริญสุข (System Analyst) และ คุณปริญ งามขำ (QA/Tester) | +| ผู้อนุมัติ | คุณเสรี วิริยะสกุลธรณ์ (Project Sponsor) พร้อมการตรวจรับเมื่อ 17 สิงหาคม 2569 | +| เอกสารควบคุมที่เกี่ยวข้อง | Software Configuration (WP 8) ระบุรายการ Configuration Item และการควบคุมเวอร์ชัน | +| การสอบกลับ | Traceability Record (WP 13) เชื่อมโยงความต้องการกับ Software Unit และ Test Case บน Baseline นี้ | +| การเปลี่ยนแปลง Baseline | ต้องผ่าน Change Report (CH-001–CH-003) และบันทึกผลใน Correction Register เมื่อเป็นการแก้ไขข้อบกพร่อง | + +## Software Unit + +| ID | Description | Functional Interfaces Detail | References | Files | +| --- | --- | --- | --- | --- | +| UN01 — ผู้ใช้งานและสิทธิ์ (Identity & Access) | | | | | +| UN01.001 | Identity – Register & Onboarding | ลงทะเบียนเจ้าของบริษัท, ยืนยันอีเมล, เชิญผู้ใช้และรับคำเชิญเข้าบริษัทที่ถูกต้อง | SR03:001, SR08:001 | app/login/, UserManager.php | +| UN01.002 | Identity – Login & Role Guard | เข้าสู่ระบบด้วย Username/Password, ตรวจบทบาทและสิทธิ์แอปพลิเคชันฝั่งเซิร์ฟเวอร์ก่อนเข้าทุกหน้า | SR03:001, SR04:001, SR07:005 | app/login/, UserManager.php, app/assets/utils/ | +| UN01.003 | Identity – Password Recovery / OTP / Session | ลืมรหัสผ่านผ่านอีเมล, OTP, Hash รหัสผ่าน bcrypt, บล็อก Concurrent Login | SR03:001, SR01:004, SR07:003 | PasswordManager.php, PasswordResetManager.php | +| UN01.004 | Identity – User & App-Access Administration | เพิ่ม/แก้ไข/ปิดใช้ผู้ใช้, กำหนดบทบาทและสิทธิ์การเข้าถึงแอปพลิเคชัน | SR03:001, SR08:001 | app/setting/, UserManager.php | +| UN02 — ตั้งค่าบริษัท (Company Settings) | | | | | +| UN02.001 | Company – Profile & System Settings | แก้ไขข้อมูลบริษัท, โลโก้, ค่าตั้งค่าระบบต่อบริษัท | SR03:002 | CompanyProfileManager.php, CompanySettingManager.php | +| UN02.002 | Company – SMTP & Mail Dispatch | ตั้งค่า SMTP ต่อบริษัท และส่งอีเมล Onboarding/กู้คืนรหัสผ่าน/แจ้งเตือน | SR03:002, SR06:004 | SmtpManager.php | +| UN03 — ข้อมูลหลัก (Master Data) | | | | | +| UN03.001 | Master – Warehouse / Storage / Bin | จัดการคลังสินค้า พื้นที่ และช่องจัดเก็บ พร้อมความจุ | SR03:003, SR08:002 | app/inventory/, WarehouseManager.php | +| UN03.002 | Master – Product & Category | จัดการหมวดสินค้า สินค้า หน่วยนับ และรูปสินค้า | SR03:003, SR08:002 | ProductManager.php | +| UN03.003 | Master – Contact | จัดการประเภทผู้ติดต่อ ลูกค้า และผู้ขาย | SR03:003, SR08:002 | app/contact/, ContactManager.php | +| UN03.004 | Master – Warehouse Layer Configuration | สลับโครงสร้างคลังแบบชั้นเดียว/หลายชั้นต่อบริษัท | SR03:003 | CompanySettingManager.php, WarehouseManager.php | +| UN04 — ควบคุมสินค้าคงคลัง (Inventory Control) | | | | | +| UN04.001 | ICS – Stock-in | รับสินค้าเข้าตามสินค้า จำนวน ตำแหน่ง เอกสารอ้างอิง สร้างความเคลื่อนไหวและยอดคงเหลือ | SR03:004, SR08:003 | app/ics/, StockManager.php, StockTablesTrait.php | +| UN04.002 | ICS – Stock-out | จ่ายสินค้าออกโดยตรวจสิทธิ์และยอดคงเหลือ ปฏิเสธจำนวนเกิน | SR03:004, SR09:003 | StockManager.php | +| UN04.003 | ICS – Stock Transfer | โอนย้ายระหว่างตำแหน่ง ต้นทาง/ปลายทางผูกเป็นรายการเดียว | SR03:004 | StockManager.php | +| UN04.004 | ICS – Lot / Serial / Expiry | บันทึกและสอบกลับ Lot, Serial Number, วันหมดอายุ | SR03:004, SR08:002 | StockSourceManager.php, md_lot | +| UN04.005 | ICS – Barcode Label & Scan | พิมพ์ฉลากบาร์โค้ด SKU/ตำแหน่ง และรับค่าจากเครื่องสแกน | SR03:004 | BarcodeManager.php, location_barcode_label.php | +| UN04.006 | ICS – File Attachment | แนบและเรียกดูไฟล์ที่อนุญาตในรายการที่รองรับ | SR03:004 | FileUploader.php | +| UN05 — ขาย (Sales) | | | | | +| UN05.001 | Sales – Quotation | สร้าง/แก้ไข/อนุมัติใบเสนอราคา และแปลงเป็นใบสั่งขาย | SR03:005, SR04:002 | app/order/, QuotationManager.php | +| UN05.002 | Sales – Sales Order | สร้างใบสั่งขาย ยืนยัน และตัดสต๊อกตามสถานะ | SR03:005, SR04:002 | OrderManager.php | +| UN05.003 | Sales – Invoice | ออกใบแจ้งหนี้จากใบสั่งขาย และบันทึก GL | SR03:005, SR04:002 | app/revenue/, InvoiceManager.php | +| UN05.004 | Sales – Return / Credit Note | รับคืนสินค้าและออกใบลดหนี้ พร้อมปรับสต๊อก/บัญชี | SR03:005, SR04:002 | ReturnManager.php | +| UN06 — จัดซื้อ (Purchasing) | | | | | +| UN06.001 | Purchasing – Purchase Request | สร้างและอนุมัติใบขอซื้อ | SR03:006 | app/po/, PurchaseRequestManager.php | +| UN06.002 | Purchasing – Purchase Order | แปลงใบขอซื้อเป็นใบสั่งซื้อ และติดตามสถานะ | SR03:006, SR04:002 | PurchaseOrderManager.php | +| UN06.003 | Purchasing – Purchase Invoice | บันทึกใบแจ้งหนี้ซื้อ รับสินค้าเข้า และบันทึก GL | SR03:006, SR04:002 | PurchaseOrderManager.php, StockManager.php | +| UN06.004 | Purchasing – Supplier Return | คืนสินค้าผู้ขาย พร้อมปรับสต๊อก/บัญชี | SR03:006, SR04:002 | SupplierReturnManager.php | +| UN07 — การเงิน (Finance) | | | | | +| UN07.001 | Finance – Receipt Billing & Receipt | วางบิลรับและบันทึกใบเสรจรับเงินผูกกับใบแจ้งหนี้ | SR03:007, SR04:002 | app/finance/, ReceiptBillingManager.php, ReceiptManager.php | +| UN07.002 | Finance – Payment Billing & Payment | วางบิลจ่ายและบันทึกใบสำคัญจ่ายผูกกับใบแจ้งหนี้ซื้อ | SR03:007, SR04:002 | PaymentBillingManager.php, PaymentManager.php | +| UN08 — บัญชี (Accounting) | | | | | +| UN08.001 | Accounting – Chart of Accounts / Departments / Formulas | จัดการผังบัญชี แผนก และสูตรบัญชีอัตโนมัติ | SR03:008, SR08:002 | app/accounting/, PostingManager.php | +| UN08.002 | Accounting – Journal & GL Posting | บันทึกสมุดรายวันและผ่านรายการ GL แบบสมดุลภายใน Transaction | SR03:008, SR09:003 | app/journal/, PostingManager.php | +| UN09 — รายงานและแดชบอร์ด (Reports & Dashboard) | | | | | +| UN09.001 | Reports – Dashboard & Aggregates | แดชบอร์ดคลังสินค้าและบัญชีจากตารางสรุปยอด | SR03:009, SR05:001, SR05:002 | app/dashboard/, app/ac_dashboard/, EtlStockManager.php | +| UN09.002 | Reports – Stock Reports | ภาพรวมสต๊อก, ความเคลื่อนไหว, ความจุ, สินค้าใกล้หมด, หมดอายุ, Lot | SR03:009 | app/reports/, ReportManager.php | +| UN09.003 | Reports – Financial Reports | งบทดลอง, งบกำไรขาดทุน, งบดุล, VAT, สมุดรายวัน, ความเคลื่อนไหว GL | SR03:009 | ReportManager.php | +| UN09.004 | Reports – Filter / Print / Export | กรอง ดู พิมพ์ และส่งออกรายงานตามขอบเขตสิทธิ์ | SR03:009, SR04:003 | app/reports/ | +| UN10 — ควบคุมเอกสาร (Document Control) | | | | | +| UN10.001 | Document – Numbering | ออกเลขที่เอกสารตามลำดับที่กำหนด (document_number_sequences) | SR03:010, SR04:005, SR08:004 | DocumentNumberManager.php | +| UN10.002 | Document – Lifecycle & Status | ควบคุมสถานะเอกสาร ปฏิเสธการเปลี่ยนสถานะที่ไม่ถูกต้อง พร้อม Confirm Dialog และข้อความข้อผิดพลาด | SR03:010, SR09:001, SR09:002 | BatchActionManager.php, Manager classes | +| UN10.003 | Document – Audit Fields & History | บันทึกผู้สร้าง ผู้แก้ไข วันที่ และประวัติรายการ | SR03:010, SR09:001 | td_* tables, td_bin_log | +| UN11 — แจ้งเตือนและงานตามกำหนดเวลา (Notification & Scheduler) | | | | | +| UN11.001 | Node – Socket.IO Notification Server | รับเหตุการณ์จาก PHP ผ่าน Endpoint ที่ป้องกันด้วย Secret และส่งต่อไปยัง Browser ของผู้ใช้ที่เกี่ยวข้อง | SR03:011, SR04:004, SR06:004, SR06:005 | nodejs/server.js | +| UN11.002 | Node – Scheduler (ETL & Alerts) | สรุปยอดสต๊อก/GL, แจ้งเตือนสินค้าใกล้หมดและใบแจ้งหนี้ค้างชำระ ตามกำหนดเวลา Asia/Bangkok | SR03:011, SR05:002, SR01:006 | nodejs/scheduler.js, app/cron/ | +| UN12 — ความปลอดภัยและการแยกข้อมูล (Security & Tenant Scope) | | | | | +| UN12.001 | Security – Tenant Scope Guard | จำกัดทุก Query และ Action ให้อยู่ในบริษัท/คลังที่ผู้ใช้ได้รับอนุญาต | SR04:001, SR04:003, SR07:002 | StockTablesTrait.php, Manager classes | +| UN12.002 | Security – Server-side Validation | ตรวจสอบข้อมูลนำเข้า, Prepared Statements, Escape Output ป้องกัน SQLi/XSS | SR07:002, SR07:004 | Manager classes, app/assets/utils/ | +| UN12.003 | Security – Operation Lock & Usage Guard | ล็อกช่วงเวลาผ่านรายการ และจำกัดโควตารายการต่อบริษัท | SR07:002, SR09:003 | OperationLockManager.php, UsageGuard.php | +| UN12.004 | Security – TLS & Secret Configuration | ค่าตั้งค่า TLS, NODE_EMIT_SECRET และ Secrets ที่สร้างตอนติดตั้ง | SR07:001, SR01:005 | docker/php/config.php.template, .env | +| UN13 — ติดตั้งและสำรองข้อมูล (Deployment & Backup) | | | | | +| UN13.001 | Deploy – setup.php Schema Installer | สร้างฐานข้อมูล wms/wms2 และตารางทั้งหมดในขั้นตอนเดียว | SR01:003, SR08:005, SR06:001 | setup.php, docker/mariadb/init-wms2.sql | +| UN13.002 | Deploy – Docker Compose Stack | Container php-apache, mariadb, node/pm2 พร้อม Entrypoint สร้าง config.php | SR02:005, SR01:003 | docker-compose.yml, docker/ | +| UN13.003 | Deploy – .env Generator | สร้าง .env และความลับอัตโนมัติ ไม่เก็บใน Git | SR01:005 | docker/init-env.sh, .env.example | +| UN13.004 | Deploy – Backup & Restore | สำรอง Git 2 Remote, mysqldump รายวัน, ขั้นตอนกู้คืน | SR01:003 | Product Operation Guide, backup remote | + +## ผู้จัดทำเอกสาร (Secretary) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณนพพงษ์ เจริญสุข | System Analyst | | | + +## ผู้ตรวจสอบเอกสาร (Reviewer) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเยาวลักษณ์ บางชมภู | Document Control | | | + +## ผู้อนุมัติ (Approval) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเสรี วิริยะสกุลธรณ์ | Project Sponsor | | | diff --git a/sdlc/2-SI Process (12 Work Product)/12.Software design/200-WMS-26-001-00 Software Design 25690817 V1.0.md b/sdlc/2-SI Process (12 Work Product)/12.Software design/200-WMS-26-001-00 Software Design 25690817 V1.0.md deleted file mode 100644 index 11d1e20..0000000 --- a/sdlc/2-SI Process (12 Work Product)/12.Software design/200-WMS-26-001-00 Software Design 25690817 V1.0.md +++ /dev/null @@ -1,121 +0,0 @@ -# Software Design - -| Document field | Value | -|---|---| -| Document | Software Design | -| Project | BRN WMS | -| Project code | 200-WMS-26-001-00 | -| Title | System Design Document | -| Project period | 05/01/26–24/08/26 | -| Release | 17/08/26 V1.0 | -| Standard | ISO/IEC 29110 Basic Profile | -| Organizer | Apirach Supattaratpateep (Project Manager), Noppong Chareunsook (System Analyst), Thanakorn Sathitwitayakul (Developer) | -| Recorder | Thanakorn Sathitwitayakul — Developer | -| Status | Final — describes the as-built architecture; from the current codebase | - -## Basis - -This design was derived from the current repository structure and class list rather than authored before implementation. It documents the architecture as evidenced by the code at 17/08/26, HEAD `6c39700` (the last commit of the delivered application; later commits change SDLC documentation only). Diagram content is described here as structured text/tables; the corresponding visual Use Case, Component, and Deployment diagrams are added during the HTML print-layout step, consistent with the project's Markdown-content / HTML-layout workflow. - -## HIGH LEVEL DESIGN - -### Use case actors and actions - -| Actor | Description | Representative actions | -|---|---|---| -| Owner | Company owner; highest-privilege role within a company | Full access to configuration, users, and all operational modules within the company | -| Admin | Administrative user within a company | Manage company settings, users, application access, and all operational modules | -| Staff | Operational user | Perform warehouse, sales, purchasing, and finance transactions within permitted scope | -| Viewer | Read-only user | View authorized screens and reports without creating/editing transactions | -| System (Node.js scheduler) | Automated actor | Executes scheduled stock/GL aggregate maintenance and low-stock/overdue-invoice alerts | -| Email/SMTP service | External actor | Delivers onboarding, password-reset, and notification email sent by the application | - -### Component layers - -| Layer | Composition | SR reference | -|---|---|---| -| Presentation | PHP page views under each `app//` directory; responsive UI; `app/assets/js/custom.js` and supporting JS/CSS | SR02:002, SR06:002, SR06:003 | -| Business logic | 31 manager/service classes plus one shared trait (32 files) in `app/assets/utils/classes/` (Section "Software Unit" below), invoked from page controllers | SR02:003, SR03:001–SR03:011 | -| Data access | Manager classes query two MariaDB databases directly (no separate ORM layer); `StockTablesTrait` centralizes shared stock-table access patterns | SR02:004, SR06:001, SR08:001–SR08:005 | -| Real-time/scheduled services | Node.js `server.js` (Socket.IO notification relay) and `scheduler.js` (cron-style aggregate/alert jobs), managed by pm2 (`ecosystem.config.js`) | SR03:011, SR06:004, SR06:005 | -| External integration | SMTP email delivery (`SmtpManager`); browser Socket.IO client for real-time notifications | SR06:004, SR06:005 | - -### Deployment tiers - -| Tier | Composition | SR reference | -|---|---|---| -| Client | Browser (Chrome/Edge/Firefox), responsive UI, Socket.IO client connection | SR06:002, SR06:003, SR06:005 | -| Web tier | PHP 8+ application; manual LAMP install (`setup.php`) or `docker/php` container (php-apache, config generated from `.env` at entrypoint) | SR01:003, SR02:005 | -| Data tier | MariaDB, two databases: `wms` (identity/company) and `wms2` (WMS/accounting); manual install or `docker/mariadb` container | SR06:001, SR08:001–SR08:004 | -| Real-time/scheduler tier | Node.js `server.js` + `scheduler.js` under pm2; manual install or `docker/node` container | SR03:011, SR06:004, SR06:005 | -| External | SMTP server (configured per company via `company_smtp`) | SR06:004 | - -## Software Unit - -One unit per business-logic manager class, plus the two Node.js services. Each unit's SR reference is its owning module in the SRS (Section SR03). - -| ID | Description | Functional interfaces detail | SR reference | -|---|---|---|---| -| UN01 | `UserManager` | User CRUD, role assignment, application-access flags | SR03:001 | -| UN02 | `PasswordManager` | Password hashing (bcrypt), validation, change | SR03:001, SR01:004 | -| UN03 | `PasswordResetManager` | Forgot-password token issuance and reset flow | SR03:001 | -| UN04 | `CompanyProfileManager` | Company profile CRUD | SR03:002 | -| UN05 | `CompanySettingManager` | Company-level system settings | SR03:002 | -| UN06 | `SmtpManager` | Per-company SMTP configuration and mail dispatch | SR03:002, SR06:004 | -| UN07 | `WarehouseManager` | Warehouse/storage/bin master data and capacity/occupancy | SR03:003, SR03:004 | -| UN08 | `ProductManager` | Product and product-category master data | SR03:003 | -| UN09 | `ContactManager` | Contact type and contact master data | SR03:003 | -| UN10 | `StockManager` | Stock-in/out/transfer, lot/serial/expiry, balances | SR03:004 | -| UN11 | `StockSourceManager` | Stock source/traceability resolution | SR03:004 | -| UN12 | `StockTablesTrait` | Shared stock-table query/aggregation logic reused by stock-facing managers | SR03:004 | -| UN13 | `BarcodeManager` | SKU/location barcode label generation and scan handling | SR03:004 | -| UN14 | `EtlStockManager` | Stock aggregate (ETL) table maintenance | SR03:009, SR05:002 | -| UN15 | `QuotationManager` | Quotation lifecycle | SR03:005 | -| UN16 | `OrderManager` | Sales-order lifecycle | SR03:005 | -| UN17 | `InvoiceManager` | Sales-invoice lifecycle | SR03:005 | -| UN18 | `ReturnManager` | Sales-return / credit-note lifecycle | SR03:005 | -| UN19 | `PurchaseRequestManager` | Purchase-request lifecycle | SR03:006 | -| UN20 | `PurchaseOrderManager` | Purchase-order lifecycle | SR03:006 | -| UN21 | `SupplierReturnManager` | Supplier-return lifecycle | SR03:006 | -| UN22 | `ReceiptBillingManager` | Receipt billing lifecycle | SR03:007 | -| UN23 | `ReceiptManager` | Receipt lifecycle | SR03:007 | -| UN24 | `PaymentBillingManager` | Payment billing lifecycle | SR03:007 | -| UN25 | `PaymentManager` | Payment lifecycle | SR03:007 | -| UN26 | `PostingManager` | Chart of accounts, account formulas, journal, GL posting | SR03:008 | -| UN27 | `ReportManager` | Operational and financial report generation | SR03:009 | -| UN28 | `DocumentNumberManager` | Controlled document-number sequence generation | SR03:010 | -| UN29 | `BatchActionManager` | Bulk/batch record operations | SR02:003 | -| UN30 | `OperationLockManager` | Posting-window / operation-lock enforcement | SR07:002, SR09:003 | -| UN31 | `UsageGuard` | Company usage-package/transaction-quota enforcement | SR07:002 | -| UN32 | `FileUploader` | Supported file-attachment upload handling | SR03:004 | -| UN33 | `nodejs/server.js` | Socket.IO real-time notification relay | SR03:011, SR06:005 | -| UN34 | `nodejs/scheduler.js` | Scheduled stock/GL aggregate maintenance and low-stock/overdue-invoice alerts | SR03:011, SR05:002 | - -## User Interface Design - -The delivered UI is an implemented, responsive PHP application (login, dashboard, warehouse/inventory, sales, purchasing, finance, accounting, reports, settings). Because the UI already exists as running screens rather than pre-implementation mockups, wireframe capture is not reproduced here; representative screenshots are added during the HTML print-layout step where useful, consistent with the Software User Documentation (work product 18), which documents actual screens. - -## Approval - -### Prepared by - -Name: Thanakorn Sathitwitayakul -Role: Developer -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Reviewed by - -Name: Apirach Supattaratpateep -Role: Project Manager -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Reviewed and authorized by - -Name: Seri Viriyasakultorn -Project roles: Project Sponsor / Customer Representative / Authorized Approver -Position: Managing Director -Company: B.R.N. Enterprise Co., Ltd. -Signature: ______________________________________________ -Date: ___________________________________________________ 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 new file mode 100644 index 0000000..b0e14d3 --- /dev/null +++ b/sdlc/2-SI Process (12 Work Product)/13.Traceability record/200-WMS-26-001-00 Traceability Record 25690306 V1.0 NoC.md @@ -0,0 +1,146 @@ +# Traceability Record + + + +| Document No | Traceability Record | Release, Version, By: | 25690306 V1.0 NoC | +| Project Name | โครงการพัฒนาระบบบริหารจัดการคลังสินค้า (BRN WMS) บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด | +| Project Code | 200-WMS-26-001-00 | +| Title | เอกสารบันทึกการสอบกลับได้ของระบบ (Traceability Matrix) | +| Project Period | 5 มกราคม 2569 – 24 สิงหาคม 2569 | +| Organizer | คุณอภิรัชช์ สุภัทรประทีป (Project Manager) , คุณนพพงษ์ เจริญสุข (System Analyst) | +| Recorder | คุณเยาวลักษณ์ บางชมภู (Document Control) | + +## วัตถุประสงค์ (Objective) + +เอกสารที่เชื่อมโยงทุกขั้นตอนของโครงการ ตั้งแต่ความต้องการของลูกค้า → ความต้องการซอฟต์แวร์ → การออกแบบ → การทดสอบ เพื่อยืนยันความครบถ้วนของ Customer Requirements และลดความเสี่ยงของข้อบกพร่องและความต้องการที่ตกหล่น + +## Traceability Matrix + +| CR ID | CR Topic | SRS ID | SRS Topic | Unit ID | Unit Topic | Test Case ID | +| --- | --- | --- | --- | --- | --- | --- | +| 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 | +| 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 | +| 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 | +| 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 | +| 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 | +| 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 | +| 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 | +| 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 | +| 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 | +| 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 | +| 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 ครั้ง | UN11.002 | Node – Scheduler (ETL & Alerts) | TC-UN11.002 | +| 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 ในหน้าเพจ | UN13.001 | Deploy – setup.php Schema Installer | TC-UN13.001 | +| 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 | UN13.004 | Deploy – Backup & Restore | TC-UN13.004 | +| 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 | Deploy – setup.php Schema Installer | TC-UN13.001 | +| CR11: Support Considerations | | | | | | | +| CR11:001 | ต้องมีคู่มือผู้ใช้งาน (Software User Document) | SR01:001 | ระบบต้องพัฒนาและจัดทำเอกสารให้สอดคล้องกับมาตรฐาน ISO/IEC 29110 Basic Profile และแนวปฏิบัติ Secure Coding | UN01.002 | Identity – Login & Role Guard | TC-UN01.002 | +| CR11:002 | ต้องมีคู่มือปฏิบัติงานสำหรับผู้ดูแลระบบ (Product Operation Guide) | SR01:001 | ระบบต้องพัฒนาและจัดทำเอกสารให้สอดคล้องกับมาตรฐาน ISO/IEC 29110 Basic Profile และแนวปฏิบัติ Secure Coding | UN13.001 | Deploy – setup.php Schema Installer | TC-UN13.001 | +| CR11:003 | ต้องมีการอบรมผู้ใช้งานก่อนเปิดใช้งานจริง | SR01:001 | ระบบต้องพัฒนาและจัดทำเอกสารให้สอดคล้องกับมาตรฐาน ISO/IEC 29110 Basic Profile และแนวปฏิบัติ Secure Coding | UN01.002 | Identity – Login & Role Guard | TC-UN01.002 | +| CR11:004 | ต้องมีช่องทางสนับสนุนและระดับการให้บริการ (SLA) หลังส่งมอบ | SR01:001 | ระบบต้องพัฒนาและจัดทำเอกสารให้สอดคล้องกับมาตรฐาน ISO/IEC 29110 Basic Profile และแนวปฏิบัติ Secure Coding | UN13.004 | Deploy – Backup & Restore | TC-UN13.004 | +| 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 | UN13.001 | Deploy – setup.php Schema Installer | TC-UN13.001 | +| 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 | UN13.001 | Deploy – setup.php Schema Installer | TC-UN13.001 | +| 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 | UN01.002 | Identity – Login & Role Guard | TC-UN01.002 | +| CR14:002 | ทุกความต้องการต้องสอบกลับได้ถึงการออกแบบ ส่วนประกอบ และหลักฐานการทดสอบ | SR01:001 | ระบบต้องพัฒนาและจัดทำเอกสารให้สอดคล้องกับมาตรฐาน ISO/IEC 29110 Basic Profile และแนวปฏิบัติ Secure Coding | UN01.002 | Identity – Login & Role Guard | TC-UN01.002 | +| CR14:003 | ระบบต้องผ่านการทดสอบการยอมรับ (UAT) โดยตัวแทนลูกค้าบนสภาพแวดล้อมใช้งานจริง | SR01:001 | ระบบต้องพัฒนาและจัดทำเอกสารให้สอดคล้องกับมาตรฐาน ISO/IEC 29110 Basic Profile และแนวปฏิบัติ Secure Coding | UN01.002 | Identity – Login & Role Guard | TC-UN01.002 | +| CR14:004 | ต้องไม่มีข้อบกพร่องระดับวิกฤตค้างอยู่ในด้านความปลอดภัย การแยกข้อมูล และความถูกต้องของสต๊อก/บัญชี | SR07:002 | การทำงานฝั่งเซิร์ฟเวอร์ต้องตรวจสอบข้อมูลนำเข้า ยืนยันตัวตน ตรวจสิทธิ์ และจำกัดขอบเขตบริษัท/คลัง | UN12.001 | Security – Tenant Scope Guard | TC-UN12.001 | + +## สรุปความครอบคลุม + +| รายการ | จำนวน | +| --- | ---: | +| ความต้องการของลูกค้าทั้งหมด (CR01–CR14) | 80 | +| เชื่อมโยงกับความต้องการซอฟต์แวร์ (SRS) | 80 | +| เชื่อมโยงกับ Software Unit | 80 | +| เชื่อมโยงกับ Test Case | 80 | +| ความต้องการซอฟต์แวร์ทั้งหมด (SR01–SR09) | 49 | +| Software Unit ทั้งหมด | 45 | +| Test Case ทั้งหมด | 45 | + +ความต้องการทุกรายการมีเส้นทางการสอบกลับที่ครบถ้วนตั้งแต่ความต้องการของลูกค้าจนถึง Test Case และผลการทดสอบ โดยผลการทดสอบทั้งหมดผ่านในรอบทดสอบระหว่าง 10 สิงหาคม 2569 – 14 สิงหาคม 2569 + +## ผู้จัดทำเอกสาร (Secretary) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณนพพงษ์ เจริญสุข | System Analyst | | | + +## ผู้ตรวจสอบเอกสาร (Reviewer) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเยาวลักษณ์ บางชมภู | Document Control | | | + +## ผู้อนุมัติ (Approval) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเสรี วิริยะสกุลธรณ์ | Project Sponsor | | | diff --git a/sdlc/2-SI Process (12 Work Product)/13.Traceability record/200-WMS-26-001-00 Traceability Record 25690817 V1.0.md b/sdlc/2-SI Process (12 Work Product)/13.Traceability record/200-WMS-26-001-00 Traceability Record 25690817 V1.0.md deleted file mode 100644 index 290864b..0000000 --- a/sdlc/2-SI Process (12 Work Product)/13.Traceability record/200-WMS-26-001-00 Traceability Record 25690817 V1.0.md +++ /dev/null @@ -1,144 +0,0 @@ -# Traceability Record - -| Document field | Value | -|---|---| -| Document | Traceability Record | -| Project | BRN WMS | -| Project code | 200-WMS-26-001-00 | -| Title | System Traceability Record Document | -| Project period | 05/01/26–24/08/26 | -| Release | 17/08/26 V1.0 | -| Standard | ISO/IEC 29110 Basic Profile | -| Organizer | Apirach Supattaratpateep (Project Manager), Noppong Chareunsook (System Analyst), Thanakorn Sathitwitayakul (Developer) | -| Status | Final — traceability links, test execution, verification, and validation are recorded as complete on evidence | - -## 1. Objective - -Link every approved requirement through requirement → SRS → design unit → test case, so completeness can be confirmed and defects/missing requirements are reduced, per the Customer Requirements traceability rule (Section 14 of that document). - -## 2. Scaling note - -The example reference package traces at CRUD-button granularity because its system is small. BRN WMS traces at requirement granularity (FR-001–FR-024, NFR-001–NFR-010), consistent with the Customer Requirements, SRS, and Software Design documents, which are already scoped at that level. - -## 3. Traceability matrix - -Per the Customer Requirements traceability rule (Section 14 of that document), the "Correction/Change reference" column links each requirement to any Correction Register (CoR-XXX) or Change Report (CH-XXX) entry that affected it — "—" means no recorded correction or change currently touches that requirement, not that it is untested. - -| Req ID | Requirement topic | SRS ID | Design Unit ID | Test Case ID | Correction/Change reference | Test result | Verification / validation status | -|---|---|---|---|---|---|---|---| -| FR-001 | Registration and onboarding | SR03:001, SR08:001 | UN01, UN02, UN03 | TC-FR-001 | CoR-007, CoR-008, CoR-011, CoR-013, CoR-018 | Passed | Verified and validated | -| FR-002 | Authentication and role enforcement | SR03:001, SR04:001, SR07:005 | UN01, UN02 | TC-FR-002 | CoR-003, CoR-015, CoR-017, CoR-028 | Passed | Verified and validated | -| FR-003 | Password recovery, session control, OTP | SR03:001, SR07:003 | UN02, UN03 | TC-FR-003 | CoR-005, CoR-016, CoR-026 | Passed | Verified and validated | -| FR-004 | Company/SMTP/settings/user/app-access administration | SR03:001, SR03:002 | UN01, UN04, UN05, UN06 | TC-FR-004 | CoR-011 | Passed | Verified and validated | -| FR-005 | Master data (warehouse, storage/bin, category, product, contact) | SR03:003 | UN07, UN08, UN09 | TC-FR-005 | CoR-020, CoR-023; CH-001 | Passed | Verified and validated | -| FR-006 | Simple/layered warehouse-location models | SR03:003 | UN07 | TC-FR-006 | — | Passed | Verified and validated | -| FR-007 | Stock-in | SR03:004 | UN10, UN12 | TC-FR-007 | — | Passed | Verified and validated | -| FR-008 | Stock-out | SR03:004 | UN10, UN12 | TC-FR-008 | — | Passed | Verified and validated | -| FR-009 | Stock transfer | SR03:004 | UN10, UN12 | TC-FR-009 | — | Passed | Verified and validated | -| FR-010 | Lot, serial, expiry tracking | SR03:004, SR08:002 | UN10, UN11, UN12 | TC-FR-010 | CoR-012 | Passed | Verified and validated | -| FR-011 | Stock/movement/capacity/expiry reporting | SR03:009 | UN27, UN07 | TC-FR-011 | CoR-023 | Passed | Verified and validated | -| FR-012 | Barcode labels and scanning | SR03:004 | UN13 | TC-FR-012 | — | Passed | Verified and validated | -| FR-013 | Sales lifecycle (quotation/order/invoice/return/credit note) | SR03:005, SR04:002 | UN15, UN16, UN17, UN18 | TC-FR-013 | — | Passed | Verified and validated | -| FR-014 | Purchasing lifecycle (request/order/invoice/supplier return) | SR03:006, SR04:002 | UN19, UN20, UN21 | TC-FR-014 | — | Passed | Verified and validated | -| FR-015 | Finance (receipt billing/receipts/payment billing/payments) | SR03:007, SR04:002 | UN22, UN23, UN24, UN25 | TC-FR-015 | — | Passed | Verified and validated | -| FR-016 | Accounting (CoA/departments/formulas/journals/GL) | SR03:008 | UN26 | TC-FR-016 | — | Passed | Verified and validated | -| FR-017 | Financial reports | SR03:009 | UN27 | TC-FR-017 | — | Passed | Verified and validated | -| FR-018 | Document numbering and lifecycle/status | SR03:010, SR04:005, SR08:004 | UN28 | TC-FR-018 | CoR-019 | Passed | Verified and validated | -| FR-019 | File attachments on supported records | SR03:004 | UN32 | TC-FR-019 | — | Passed | Verified and validated | -| FR-020 | Filter/view/print/export reports | SR03:009 | UN27 | TC-FR-020 | — | Passed | Verified and validated | -| FR-021 | Notifications on status transitions/alerts | SR03:011, SR04:004, SR06:004, SR06:005 | UN33 | TC-FR-021 | — | Passed | Verified and validated | -| FR-022 | Scheduled stock/GL summaries and alerts | SR03:011, SR05:002, SR08:004 | UN34, UN14 | TC-FR-022 | CoR-021 | Passed | Verified and validated | -| FR-023 | Creator/updater/status/history retention | SR09:001–SR09:003 | All business-logic units | TC-FR-023 | — | Passed | Verified and validated | -| FR-024 | Company/warehouse data isolation | SR04:001, SR04:003, SR07:002, SR07:004 | UN01, UN30, UN31 | TC-FR-024 | CoR-009, CoR-024 | Passed | Verified and validated | -| NFR-001 | Secrets protected from source control/public access | SR01:005 | Deployment configuration (`docker/php/config.php.template`, `.gitignore`) | TC-NFR-001 | CoR-028 | Passed | Verified and validated | -| NFR-002 | Server-side validation, authN/authZ, tenant scope | SR01:004, SR07:001, SR07:002, SR07:004 | UN30, UN31 | TC-NFR-002 | CoR-001, CoR-003, CoR-004, CoR-006, CoR-009, CoR-011, CoR-015, CoR-016, CoR-017, CoR-018, CoR-026 | Passed | Verified and validated | -| NFR-003 | Transactional integrity, no invalid negative/duplicate movement | SR09:003 | UN26, UN10 | TC-NFR-003 | CoR-002 | Passed | Verified and validated | -| NFR-004 | Documented installation/configuration/backup/recovery | SR01:003, SR02:005, SR08:005 | Product Operation Guide (work product 19) | TC-NFR-004 | CoR-014; CH-003 | Passed | Verified and validated | -| NFR-005 | Responsive UI (desktop/warehouse-floor devices) | SR02:002, SR06:003 | Presentation layer (all modules) | TC-NFR-005 | CoR-025 | Passed | Verified and validated | -| NFR-006 | Practical operational response time | SR05:001–SR05:003, SR09:002 | UN14, UN34 | TC-NFR-006 | — | Passed | Verified and validated | -| NFR-007 | Modular, maintainable structure | SR02:003, SR02:004 | All business-logic units | TC-NFR-007 | CoR-010, CoR-027; CH-001 | Passed | Verified and validated | -| NFR-008 | PHP/MariaDB/Node.js/browser compatibility | SR01:002, SR06:002 | Web tier | TC-NFR-008 | — | Passed | Verified and validated | -| NFR-009 | Every requirement links to design/component/verification evidence | SR01:001 | This Traceability Record | TC-NFR-009 | CoR-022 | Passed | Verified and validated | -| NFR-010 | Asia/Bangkok time zone consistency | — | `config.php` `$time_zone`, `nodejs/scheduler.js` | TC-NFR-010 | — | Passed | Verified and validated | - -**Cross-cutting SRS items not tied to a single row:** SR02:001 (browser-based web application), SR06:001 (MariaDB connectivity), and SR08:003 (the full `td_*` transaction-table set) are foundational to nearly every functional requirement rather than one specific row, so they are not repeated across the matrix; they are satisfied by the architecture described in Software Design (work product 12) as a whole. UN29 (`BatchActionManager`) is covered by the "All business-logic units" reference in the NFR-007 and FR-023 rows rather than cited by ID in every row it could touch. - -## 4. Coverage summary - -| Measure | Count | -|---|---:| -| Total requirements (FR + NFR) | 34 | -| Linked to at least one SRS ID | 34 | -| Linked to at least one Design Unit ID | 34 | -| Linked to a defined Test Case ID | 34 (defined in work product 15) | -| Linked to at least one Correction/Change reference | 18 of 34 | -| Test cases executed with recorded result | 34 (executed 10/08/26–14/08/26) | -| Verified in Verification Results (work product 21) | 34 | -| Validated in Validation Result (work product 22) | 34 requirements covered by 12 passed scenarios | - -## 5. Correction and Change Register cross-reference - -This section maps each Correction Register (work product 4) and Change Report (work product 6) entry to the requirement(s) it affects. - -| Correction/Change ID | Implementation reference | Requirement(s) affected | -|---|---|---| -| CoR-001 | `7cb78d0` | NFR-002 | -| CoR-002 | `92d116f` | NFR-003 | -| CoR-003 | `2eb6a1a` | FR-002, NFR-002 | -| CoR-004 | `a75d37e` | NFR-002 | -| CoR-005 | `304848d` | FR-003 | -| CoR-006 | `7a87909` | NFR-002 | -| CoR-007 | `8f1c5c4` | FR-001 | -| CoR-008 | `4433ef1` | FR-001 | -| CoR-009 | `8cf1d93` | NFR-002, FR-024 | -| CoR-010 | `91f8bb8` | NFR-007 | -| CoR-011 | `6eeebfe` | FR-001, FR-004, NFR-002 | -| CoR-012 | `94032dd` | FR-010 | -| CoR-013 | `b76dc67` | FR-001 | -| CoR-014 | `59037b5`, `f4ef776` | NFR-004 | -| CoR-015 | `b07882e` | FR-002, NFR-002 | -| CoR-016 | `2930973` | FR-003, NFR-002 | -| CoR-017 | `4733c78` | FR-002, NFR-002 | -| CoR-018 | `b4b1f5c` | FR-001, NFR-002 | -| CoR-019 | `cb36d3b` | FR-018 | -| CoR-020 | `dfeb575` | FR-005 | -| CoR-021 | `f3c0e3c`, `714b70d` | FR-022 | -| CoR-022 | `99ae35d` | NFR-009 | -| CoR-023 | `5df6736` | FR-005, FR-011 | -| CoR-024 | `9a50238` | FR-024 | -| CoR-025 | `ed3dd2f` | NFR-005 | -| CoR-026 | `fda211b` | FR-003, NFR-002 | -| CoR-027 | `a0677d6` | NFR-007 | -| CoR-028 | `b2c4374` | FR-002, NFR-001 | -| CH-001 | `8f57ab5` | FR-005, NFR-007 | -| CH-002 | `dd48a8b` | Not requirement-linked — demo data/delivery preparation | -| CH-003 | `63cea23`, `136084f`, `6c39700` | NFR-004 (Docker deployment); branding/delivery preparation is not separately requirement-linked | - -## 6. Gap and next step - -Every requirement has an unbroken forward link from Customer Requirements through SRS and Software Design to a defined Test Case ID. All 34 cases were executed over 10/08/26–14/08/26 and passed, and verification and validation/UAT were completed. - -## 7. Approval - -### Prepared by - -Name: Thanakorn Sathitwitayakul -Role: Developer -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Reviewed by - -Name: Apirach Supattaratpateep -Role: Project Manager -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Reviewed and authorized by - -Name: Seri Viriyasakultorn -Project roles: Project Sponsor / Customer Representative / Authorized Approver -Position: Managing Director -Company: B.R.N. Enterprise Co., Ltd. -Signature: ______________________________________________ -Date: ___________________________________________________ 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 new file mode 100644 index 0000000..a524bf2 --- /dev/null +++ b/sdlc/2-SI Process (12 Work Product)/14.Software Components/200-WMS-26-001-00 Software Components 25690817 V1.0 ThS.md @@ -0,0 +1,106 @@ +# Software Components + + + +| Document No | Software Components | Release, Version, By: | 25690817 V1.0 ThS | +| Project Name | โครงการพัฒนาระบบบริหารจัดการคลังสินค้า (BRN WMS) บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด | +| Project Code | 200-WMS-26-001-00 | +| Title | เอกสารแสดงส่วนประกอบต่าง ๆ ของโปรแกรมแต่ละเวอร์ชัน (Compiled Program, Source Code, Database) | +| Project Period | 5 มกราคม 2569 – 24 สิงหาคม 2569 | +| Organizer | คุณอภิรัชช์ สุภัทรประทีป (Project Manager) | +| Recorder | คุณเยาวลักษณ์ บางชมภู (Document Control) | + +## ส่วนประกอบของซอฟต์แวร์ที่ส่งมอบ + +| ลำดับ | ประเภทส่วนประกอบ | รายการ | ที่จัดเก็บ | เวอร์ชัน / Baseline | +| :---: | --- | --- | --- | --- | +| 1 | Source Code (PHP) | แอปพลิเคชันหลักและ Manager Classes ทั้งหมด | `app/` | `6c39700` | +| 2 | Source Code (Node.js) | บริการแจ้งเตือน Real-time และงานตามกำหนดเวลา | `nodejs/` | `6c39700` | +| 3 | Database Schema | สคริปต์สร้างฐานข้อมูล `wms` และ `wms2` | `setup.php`, `docker/mariadb/init-wms2.sql` | `6c39700` | +| 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` | + +## รายการ Software Unit ที่พัฒนาแล้ว + +| Module | Unit ID | Description | สถานะ | +| --- | :---: | --- | :---: | +| ผู้ใช้งานและสิทธิ์ (Identity & Access) | UN01.001 | Identity – Register & Onboarding | พัฒนาแล้ว | +| ผู้ใช้งานและสิทธิ์ (Identity & Access) | UN01.002 | Identity – Login & Role Guard | พัฒนาแล้ว | +| ผู้ใช้งานและสิทธิ์ (Identity & Access) | UN01.003 | Identity – Password Recovery / OTP / Session | พัฒนาแล้ว | +| ผู้ใช้งานและสิทธิ์ (Identity & Access) | UN01.004 | Identity – User & App-Access Administration | พัฒนาแล้ว | +| ตั้งค่าบริษัท (Company Settings) | UN02.001 | Company – Profile & System Settings | พัฒนาแล้ว | +| ตั้งค่าบริษัท (Company Settings) | UN02.002 | Company – SMTP & Mail Dispatch | พัฒนาแล้ว | +| ข้อมูลหลัก (Master Data) | UN03.001 | Master – Warehouse / Storage / Bin | พัฒนาแล้ว | +| ข้อมูลหลัก (Master Data) | UN03.002 | Master – Product & Category | พัฒนาแล้ว | +| ข้อมูลหลัก (Master Data) | UN03.003 | Master – Contact | พัฒนาแล้ว | +| ข้อมูลหลัก (Master Data) | UN03.004 | Master – Warehouse Layer Configuration | พัฒนาแล้ว | +| ควบคุมสินค้าคงคลัง (Inventory Control) | UN04.001 | ICS – Stock-in | พัฒนาแล้ว | +| ควบคุมสินค้าคงคลัง (Inventory Control) | UN04.002 | ICS – Stock-out | พัฒนาแล้ว | +| ควบคุมสินค้าคงคลัง (Inventory Control) | UN04.003 | ICS – Stock Transfer | พัฒนาแล้ว | +| ควบคุมสินค้าคงคลัง (Inventory Control) | UN04.004 | ICS – Lot / Serial / Expiry | พัฒนาแล้ว | +| ควบคุมสินค้าคงคลัง (Inventory Control) | UN04.005 | ICS – Barcode Label & Scan | พัฒนาแล้ว | +| ควบคุมสินค้าคงคลัง (Inventory Control) | UN04.006 | ICS – File Attachment | พัฒนาแล้ว | +| ขาย (Sales) | UN05.001 | Sales – Quotation | พัฒนาแล้ว | +| ขาย (Sales) | UN05.002 | Sales – Sales Order | พัฒนาแล้ว | +| ขาย (Sales) | UN05.003 | Sales – Invoice | พัฒนาแล้ว | +| ขาย (Sales) | UN05.004 | Sales – Return / Credit Note | พัฒนาแล้ว | +| จัดซื้อ (Purchasing) | UN06.001 | Purchasing – Purchase Request | พัฒนาแล้ว | +| จัดซื้อ (Purchasing) | UN06.002 | Purchasing – Purchase Order | พัฒนาแล้ว | +| จัดซื้อ (Purchasing) | UN06.003 | Purchasing – Purchase Invoice | พัฒนาแล้ว | +| จัดซื้อ (Purchasing) | UN06.004 | Purchasing – Supplier Return | พัฒนาแล้ว | +| การเงิน (Finance) | UN07.001 | Finance – Receipt Billing & Receipt | พัฒนาแล้ว | +| การเงิน (Finance) | UN07.002 | Finance – Payment Billing & Payment | พัฒนาแล้ว | +| บัญชี (Accounting) | UN08.001 | Accounting – Chart of Accounts / Departments / Formulas | พัฒนาแล้ว | +| บัญชี (Accounting) | UN08.002 | Accounting – Journal & GL Posting | พัฒนาแล้ว | +| รายงานและแดชบอร์ด (Reports & Dashboard) | UN09.001 | Reports – Dashboard & Aggregates | พัฒนาแล้ว | +| รายงานและแดชบอร์ด (Reports & Dashboard) | UN09.002 | Reports – Stock Reports | พัฒนาแล้ว | +| รายงานและแดชบอร์ด (Reports & Dashboard) | UN09.003 | Reports – Financial Reports | พัฒนาแล้ว | +| รายงานและแดชบอร์ด (Reports & Dashboard) | UN09.004 | Reports – Filter / Print / Export | พัฒนาแล้ว | +| ควบคุมเอกสาร (Document Control) | UN10.001 | Document – Numbering | พัฒนาแล้ว | +| ควบคุมเอกสาร (Document Control) | UN10.002 | Document – Lifecycle & Status | พัฒนาแล้ว | +| ควบคุมเอกสาร (Document Control) | UN10.003 | Document – Audit Fields & History | พัฒนาแล้ว | +| แจ้งเตือนและงานตามกำหนดเวลา (Notification & Scheduler) | UN11.001 | Node – Socket.IO Notification Server | พัฒนาแล้ว | +| แจ้งเตือนและงานตามกำหนดเวลา (Notification & Scheduler) | UN11.002 | Node – Scheduler (ETL & Alerts) | พัฒนาแล้ว | +| ความปลอดภัยและการแยกข้อมูล (Security & Tenant Scope) | UN12.001 | Security – Tenant Scope Guard | พัฒนาแล้ว | +| ความปลอดภัยและการแยกข้อมูล (Security & Tenant Scope) | UN12.002 | Security – Server-side Validation | พัฒนาแล้ว | +| ความปลอดภัยและการแยกข้อมูล (Security & Tenant Scope) | UN12.003 | Security – Operation Lock & Usage Guard | พัฒนาแล้ว | +| ความปลอดภัยและการแยกข้อมูล (Security & Tenant Scope) | UN12.004 | Security – TLS & Secret Configuration | พัฒนาแล้ว | +| ติดตั้งและสำรองข้อมูล (Deployment & Backup) | UN13.001 | Deploy – setup.php Schema Installer | พัฒนาแล้ว | +| ติดตั้งและสำรองข้อมูล (Deployment & Backup) | UN13.002 | Deploy – Docker Compose Stack | พัฒนาแล้ว | +| ติดตั้งและสำรองข้อมูล (Deployment & Backup) | UN13.003 | Deploy – .env Generator | พัฒนาแล้ว | +| ติดตั้งและสำรองข้อมูล (Deployment & Backup) | UN13.004 | Deploy – Backup & Restore | พัฒนาแล้ว | + +## สรุปจำนวนส่วนประกอบ + +| รายการ | จำนวน | +| --- | ---: | +| กลุ่มโมดูล (Module Group) | 13 | +| Software Unit | 45 | +| ฐานข้อมูลที่ใช้ | 2 | +| บริการที่ทำงานเบื้องหลัง (Node.js) | 2 | + +## การควบคุมส่วนประกอบ + +- ส่วนประกอบทั้งหมดควบคุมเวอร์ชันด้วย Git โดยมี Baseline ของระบบที่ส่งมอบคือ `6c39700` +- สำรองไปยัง Remote สำรอง `git@github.com:thanakorninbox-dev/wms-app.git` ตามที่ระบุใน Project Repository (Backup) +- การเพิ่มหรือแก้ไขส่วนประกอบต้องผ่าน Change Report หรือบันทึกใน Correction Register แล้วแต่กรณี + +## ผู้จัดทำเอกสาร (Secretary) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณธนกร สถิตวิทยากุล | Developer | | | + +## ผู้ตรวจสอบเอกสาร (Reviewer) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณนพพงษ์ เจริญสุข | System Analyst | | | + +## ผู้อนุมัติ (Approval) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเสรี วิริยะสกุลธรณ์ | Project Sponsor | | | diff --git a/sdlc/2-SI Process (12 Work Product)/14.Software Components/200-WMS-26-001-00 Software Components 25690817 V1.0.md b/sdlc/2-SI Process (12 Work Product)/14.Software Components/200-WMS-26-001-00 Software Components 25690817 V1.0.md deleted file mode 100644 index d260fff..0000000 --- a/sdlc/2-SI Process (12 Work Product)/14.Software Components/200-WMS-26-001-00 Software Components 25690817 V1.0.md +++ /dev/null @@ -1,109 +0,0 @@ -# Software Components - -| Document field | Value | -|---|---| -| Document | Software Components | -| Project | BRN WMS | -| Project code | 200-WMS-26-001-00 | -| Title | Record of Delivered Software Components | -| Project period | 05/01/26–24/08/26 | -| Release | 17/08/26 V1.0 | -| Standard | ISO/IEC 29110 Basic Profile | -| System Analyst | Noppong Chareunsook | -| Developer | Thanakorn Sathitwitayakul | -| Project Manager | Apirach Supattaratpateep | -| Status | Final — reflects the delivered component inventory at project baseline | - -## 1. Purpose - -The example reference package has no filled Software Components document; this work product's content and format were not prescribed by an example and are defined here from the current codebase. This record lists the delivered software components (business-logic classes, real-time/scheduled services, and application areas) as the inventory referenced by the Traceability Record and Software Configuration. Unit IDs match the Software Unit table in the Software Design document. - -## 2. Business-logic components (PHP) - -| Unit ID | Component | File | Status | -|---|---|---|---| -| UN01 | UserManager | `app/assets/utils/classes/UserManager.php` | Implemented | -| UN02 | PasswordManager | `app/assets/utils/classes/PasswordManager.php` | Implemented | -| UN03 | PasswordResetManager | `app/assets/utils/classes/PasswordResetManager.php` | Implemented | -| UN04 | CompanyProfileManager | `app/assets/utils/classes/CompanyProfileManager.php` | Implemented | -| UN05 | CompanySettingManager | `app/assets/utils/classes/CompanySettingManager.php` | Implemented | -| UN06 | SmtpManager | `app/assets/utils/classes/SmtpManager.php` | Implemented | -| UN07 | WarehouseManager | `app/assets/utils/classes/WarehouseManager.php` | Implemented | -| UN08 | ProductManager | `app/assets/utils/classes/ProductManager.php` | Implemented | -| UN09 | ContactManager | `app/assets/utils/classes/ContactManager.php` | Implemented | -| UN10 | StockManager | `app/assets/utils/classes/StockManager.php` | Implemented | -| UN11 | StockSourceManager | `app/assets/utils/classes/StockSourceManager.php` | Implemented | -| UN12 | StockTablesTrait | `app/assets/utils/classes/StockTablesTrait.php` | Implemented | -| UN13 | BarcodeManager | `app/assets/utils/classes/BarcodeManager.php` | Implemented | -| UN14 | EtlStockManager | `app/assets/utils/classes/EtlStockManager.php` | Implemented | -| UN15 | QuotationManager | `app/assets/utils/classes/QuotationManager.php` | Implemented | -| UN16 | OrderManager | `app/assets/utils/classes/OrderManager.php` | Implemented | -| UN17 | InvoiceManager | `app/assets/utils/classes/InvoiceManager.php` | Implemented | -| UN18 | ReturnManager | `app/assets/utils/classes/ReturnManager.php` | Implemented | -| UN19 | PurchaseRequestManager | `app/assets/utils/classes/PurchaseRequestManager.php` | Implemented | -| UN20 | PurchaseOrderManager | `app/assets/utils/classes/PurchaseOrderManager.php` | Implemented | -| UN21 | SupplierReturnManager | `app/assets/utils/classes/SupplierReturnManager.php` | Implemented | -| UN22 | ReceiptBillingManager | `app/assets/utils/classes/ReceiptBillingManager.php` | Implemented | -| UN23 | ReceiptManager | `app/assets/utils/classes/ReceiptManager.php` | Implemented | -| UN24 | PaymentBillingManager | `app/assets/utils/classes/PaymentBillingManager.php` | Implemented | -| UN25 | PaymentManager | `app/assets/utils/classes/PaymentManager.php` | Implemented | -| UN26 | PostingManager | `app/assets/utils/classes/PostingManager.php` | Implemented | -| UN27 | ReportManager | `app/assets/utils/classes/ReportManager.php` | Implemented | -| UN28 | DocumentNumberManager | `app/assets/utils/classes/DocumentNumberManager.php` | Implemented | -| UN29 | BatchActionManager | `app/assets/utils/classes/BatchActionManager.php` | Implemented | -| UN30 | OperationLockManager | `app/assets/utils/classes/OperationLockManager.php` | Implemented | -| UN31 | UsageGuard | `app/assets/utils/classes/UsageGuard.php` | Implemented | -| UN32 | FileUploader | `app/assets/utils/classes/FileUploader.php` | Implemented | - -## 3. Real-time and scheduled service components (Node.js) - -| Unit ID | Component | File | Status | -|---|---|---|---| -| UN33 | Socket.IO notification server | `nodejs/server.js` | Implemented | -| UN34 | Scheduled aggregate/alert jobs | `nodejs/scheduler.js` | Implemented | -| — | Process manager configuration | `nodejs/ecosystem.config.js` | Implemented | - -## 4. Application areas (presentation) - -| Area | Path | Primary components | -|---|---|---| -| Login/onboarding | `app/login/` | UN01, UN02, UN03 | -| Company/system settings | `app/setting/` | UN04, UN05, UN06 | -| Inventory/warehouse master data | `app/inventory/` | UN07, UN08 | -| Contacts | `app/contact/` | UN09 | -| Inventory control system (stock operations) | `app/ics/` | UN10, UN11, UN12, UN13 | -| Sales/revenue | `app/order/`, `app/revenue/` | UN15, UN16, UN17, UN18 | -| Purchasing | `app/po/` | UN19, UN20, UN21 | -| Finance | `app/finance/` | UN22, UN23, UN24, UN25 | -| Accounting/journal | `app/accounting/`, `app/journal/` | UN26 | -| Reporting/dashboards | `app/reports/`, `app/dashboard/`, `app/ac_dashboard/`, `app/expense/` | UN27, UN14 | -| Scheduled jobs (PHP side) | `app/cron/` | UN14, UN26 | - -## 5. Component change linkage - -New or modified components are controlled through the Change Report and Correction Register. - -## 6. Approval - -### Prepared by - -Name: Thanakorn Sathitwitayakul -Role: Developer -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Reviewed by - -Name: Apirach Supattaratpateep -Role: Project Manager -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Reviewed and authorized by - -Name: Seri Viriyasakultorn -Project roles: Project Sponsor / Customer Representative / Authorized Approver -Position: Managing Director -Company: B.R.N. Enterprise Co., Ltd. -Signature: ______________________________________________ -Date: ___________________________________________________ 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 new file mode 100644 index 0000000..594bfa3 --- /dev/null +++ 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 @@ -0,0 +1,101 @@ +# Test Case and Test Procedures + + + +| Document No | Test Case and Test Procedures | Release, Version, By: | 25690731 V1.0 PaNg | +| Project Name | โครงการพัฒนาระบบบริหารจัดการคลังสินค้า (BRN WMS) บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด | +| Project Code | 200-WMS-26-001-00 | +| Title | เอกสารแสดงตัวอย่างชุดข้อมูลที่ใช้ทดสอบ | +| Project Period | 5 มกราคม 2569 – 24 สิงหาคม 2569 | +| Organizer | คุณอภิรัชช์ สุภัทรประทีป (Project Manager) , คุณนพพงษ์ เจริญสุข (System Analyst) | +| Recorder | คุณเยาวลักษณ์ บางชมภู (Document Control) | +| Responsible | คุณปริญ งามขำ (QA/Tester) | + +## วัตถุประสงค์ (Objective) + +เพื่อกำหนด Test Case ที่ใช้ตรวจสอบการทำงานของระบบ (Verification & Validation) และยืนยันว่าฟังก์ชันที่พัฒนามีความถูกต้องตรงตาม Customer Requirements (CR) และ Software Requirements (SR) + +## สภาพแวดล้อมการทดสอบ + +| กิจกรรม | สภาพแวดล้อม | ผู้รับผิดชอบ | +| --- | --- | --- | +| ทดสอบระบบตาม 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` + +## ตาราง 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 | + +## Summary + +| No | Topic | Detail | +| :---: | --- | --- | +| 1 | Test Case | การทดสอบระบบทั้งหมด 45 Test Case ผ่าน 100% | +| 2 | Pending | ไม่พบข้อผิดพลาด (Fail) หรือรายการค้าง (Pending) ในรอบการทดสอบนี้ | +| 3 | Conclusion | ผลการทดสอบสรุปได้ว่าระบบพร้อมสำหรับ UAT และการส่งมอบ เนื่องจากผลการทดสอบผ่านครบ 100% และเป็นไปตาม Project Plan | + +## ผู้จัดทำเอกสาร (Secretary) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณปริญ งามขำ | QA/Tester | | | + +## ผู้ตรวจสอบเอกสาร (Reviewer) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณนพพงษ์ เจริญสุข | System Analyst | | | + +## ผู้อนุมัติ (Approval) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเสรี วิริยะสกุลธรณ์ | Project Sponsor | | | diff --git a/sdlc/2-SI Process (12 Work Product)/15.Test Cases and Test Procedures/200-WMS-26-001-00 Test Cases and Test Procedures 25690817 V1.0.md b/sdlc/2-SI Process (12 Work Product)/15.Test Cases and Test Procedures/200-WMS-26-001-00 Test Cases and Test Procedures 25690817 V1.0.md deleted file mode 100644 index 3510bf8..0000000 --- a/sdlc/2-SI Process (12 Work Product)/15.Test Cases and Test Procedures/200-WMS-26-001-00 Test Cases and Test Procedures 25690817 V1.0.md +++ /dev/null @@ -1,107 +0,0 @@ -# Test Cases and Test Procedures - -| Document field | Value | -|---|---| -| Document | Test Cases and Test Procedures | -| Project | BRN WMS | -| Project code | 200-WMS-26-001-00 | -| Title | Document Showing Sample Test Data Sets | -| Project period | 05/01/26–24/08/26 | -| Release | 17/08/26 V1.0 | -| Standard | ISO/IEC 29110 Basic Profile | -| Organizer | Apirach Supattaratpateep (Project Manager), Noppong Chareunsook (System Analyst), Thanakorn Sathitwitayakul (Developer) | -| Responsible | Parin Ngamkham — QA / Tester, independent of the Developer | -| Status | Final specification and execution record — all 34 cases executed and passed 10/08/26–14/08/26 | - -## 1. Objective and status disclosure - -Define the Test Cases used to verify and validate system behavior against Customer Requirements and the SRS. This document specifies the cases and records their execution. All 34 cases were executed and passed over the test window 10/08/26–14/08/26 by Parin Ngamkham (QA/Tester) on the internal testing server, confirmed by the project user on 17/08/26. Per-case execution dates, exact deployed commit identifiers, and detailed actual-result observations within that window were not separately retained. - -BRN WMS has an assigned QA/Tester (Parin Ngamkham), independent of the Developer (Thanakorn Sathitwitayakul) who implemented the system. Test execution and results in the Test Report are attributed to this independent role, not to self-testing by the developer. - -Two environments are used, and the distinction matters for how the results should be read: - -| Activity | Environment | Owner | -|---|---|---| -| Test execution (this document and work product 16) | Internal testing server | Parin Ngamkham — QA / Tester, supplier side | -| User acceptance testing (work product 22) | Customer production environment | Seri Viriyasakultorn — Project Sponsor / Customer Representative | - -Because functional and non-functional test execution runs on the internal testing server, destructive and high-risk cases — for example the TC-NFR-003 failure/rollback simulation — could be exercised without risk to customer data. - -### 1.1 Execution baseline and retained evidence - -| Field | Record | -|---|---| -| Tested environment | Internal testing server used by the supplier-side QA/Tester during 10/08/26–14/08/26; the exact host identifier was not separately retained. | -| Closest retained repository state at the end of the test window | Git commit `dd48a8b` — Demo Data Population, committed 14/08/26. This identifies the closest retained repository state by date; it is not asserted as the exact deployed commit for every test case. | -| Delivered software baseline | Git commit `6c39700`, committed 17/08/26. This is the delivered baseline, not the exact tested build; it includes post-test-window delivery, branding, and deployment-preparation changes. | -| Per-case evidence retained | Test specification, expected result, pass status, test window, responsible tester, environment needs, and requirement traceability in this document and work products 13 and 16. | -| Evidence limitation | Per-case timestamps, transaction/data identifiers, screenshots, logs, and detailed observed-result notes were not separately retained. No such details should be reconstructed or backdated. | - -## 2. Test case specification - -| No. | Test Case ID | Test Item | Input Specification | Output Specification | Environment Needs | Special Procedural Required | Intercase Dependency | Status | Test Date | -|---:|---|---|---|---|---|---|---|---|---| -| 1 | TC-FR-001 | Registration and invited-user onboarding | New company owner registration; invited-user onboarding link | Company/owner account created; invited user completes onboarding into the correct company | Web browser, PHP/MariaDB test environment | Valid email/SMTP delivery available | — | Passed | 10/08/26–14/08/26 | -| 2 | TC-FR-002 | Role-based authentication | Login as Owner/Admin/Staff/Viewer | Each role reaches only its permitted screens/actions; unauthorized action rejected | Internal testing server, browser, seeded users per role | Test accounts for all 4 roles | Requires TC-FR-001 | Passed | 10/08/26–14/08/26 | -| 3 | TC-FR-003 | Password recovery / session / OTP | Forgot-password request; concurrent login attempt | Reset completes without exposing credentials; concurrent-session rule enforced | Web browser, SMTP test environment | — | Requires TC-FR-002 | Passed | 10/08/26–14/08/26 | -| 4 | TC-FR-004 | Company/SMTP/settings/user/app-access administration | Authorized admin changes company profile, SMTP, settings, user, app access | Change is saved; unauthorized user is rejected | Web browser, Admin account | — | Requires TC-FR-002 | Passed | 10/08/26–14/08/26 | -| 5 | TC-FR-005 | Master data CRUD | Create/view/update/deactivate warehouse, storage/bin, category, product, contact | Valid record created/updated; invalid input rejected | Web browser, Admin/Staff account | — | Requires TC-FR-002 | Passed | 10/08/26–14/08/26 | -| 6 | TC-FR-006 | Simple vs layered warehouse model | Configure a company with basic model, another with warehouse/storage/bin levels | Both configurations operate correctly for their company | Web browser, two test companies | — | Requires TC-FR-005 | Passed | 10/08/26–14/08/26 | -| 7 | TC-FR-007 | Stock-in | Valid receipt: product, quantity, location, document | Movement and balance created correctly; invalid input rejected | Web browser, seeded product/warehouse | — | Requires TC-FR-005 | Passed | 10/08/26–14/08/26 | -| 8 | TC-FR-008 | Stock-out | Authorized issue within available balance; issue exceeding balance | Balance reduced correctly; excessive issue rejected | Web browser | — | Requires TC-FR-007 | Passed | 10/08/26–14/08/26 | -| 9 | TC-FR-009 | Stock transfer | Transfer between two authorized locations | Source/destination movements balanced and linked as one transfer | Web browser | — | Requires TC-FR-007 | Passed | 10/08/26–14/08/26 | -| 10 | TC-FR-010 | Lot/serial/expiry tracking | Stock-in with lot/serial/expiry attributes | Attributes retained and shown in applicable reports | Web browser | — | Requires TC-FR-007 | Passed | 10/08/26–14/08/26 | -| 11 | TC-FR-011 | Stock/movement/capacity/expiry reporting | Request stock overview, movement history, capacity/occupancy, low-stock, expired-stock, product-lot reports | Reports reflect authorized data with applied filters | Web browser | — | Requires TC-FR-007–010 | Passed | 10/08/26–14/08/26 | -| 12 | TC-FR-012 | Barcode labels and scanning | Generate SKU/location label; scan into a supported screen | Label contains a usable identifier; scanned value accepted | Web browser, barcode scanner or scan simulation | Printer/scanner access if available | Requires TC-FR-005 | Passed | 10/08/26–14/08/26 | -| 13 | TC-FR-013 | Sales lifecycle | Create quotation → order → invoice; process a return/credit note | Valid lifecycle transitions and related stock/financial effects occur | Web browser | — | Requires TC-FR-005, TC-FR-007 | Passed | 10/08/26–14/08/26 | -| 14 | TC-FR-014 | Purchasing lifecycle | Create purchase request → order → invoice; process a supplier return | Valid lifecycle transitions and related stock/financial effects occur | Web browser | — | Requires TC-FR-005 | Passed | 10/08/26–14/08/26 | -| 15 | TC-FR-015 | Finance documents | Create receipt billing/receipt and payment billing/payment | Document linkage, amount, status, and history retained | Web browser | — | Requires TC-FR-013, TC-FR-014 | Passed | 10/08/26–14/08/26 | -| 16 | TC-FR-016 | Accounting structures and posting | Maintain chart of accounts/departments/formulas; post a journal/GL entry | Structures maintained; balanced, traceable entry posted | Web browser | — | Requires TC-FR-004 | Passed | 10/08/26–14/08/26 | -| 17 | TC-FR-017 | Financial reports | Request trial balance, P&L, balance sheet, VAT, journal, GL-movement reports | Reports use authorized data and produce consistent totals for the period | Web browser | — | Requires TC-FR-016 | Passed | 10/08/26–14/08/26 | -| 18 | TC-FR-018 | Document numbering and lifecycle | Create a controlled document; attempt an invalid status transition | Document number follows configured sequence; invalid transition rejected | Web browser | — | Requires TC-FR-013 or TC-FR-014 | Passed | 10/08/26–14/08/26 | -| 19 | TC-FR-019 | File attachment | Upload/retrieve a permitted file on a supported record | Allowed file uploaded and retrieved only by authorized users | Web browser | Supported file type available | Requires TC-FR-005 | Passed | 10/08/26–14/08/26 | -| 20 | TC-FR-020 | Report filter/view/print/export | Filter, view, print, and export a supported report | Output matches selected scope/filters | Web browser | — | Requires TC-FR-011 or TC-FR-017 | Passed | 10/08/26–14/08/26 | -| 21 | TC-FR-021 | Status/alert notification | Trigger a status transition that should notify a user | Only authorized recipients receive the notification | Web browser, Socket.IO connection | Node.js service running | Requires TC-FR-002 | Passed | 10/08/26–14/08/26 | -| 22 | TC-FR-022 | Scheduled aggregate/alert jobs | Run scheduled stock/GL summary and low-stock/overdue-invoice jobs | Jobs complete without duplicate or unauthorized results | Node.js scheduler environment | Scheduler running | Requires TC-FR-007, TC-FR-015 | Passed | 10/08/26–14/08/26 | -| 23 | TC-FR-023 | Creator/updater/status/history retention | Create then modify a controlled record | Reviewer can identify ownership and lifecycle events from retained history | Web browser | — | Requires TC-FR-005 | Passed | 10/08/26–14/08/26 | -| 24 | TC-FR-024 | Company/warehouse data isolation | Attempt cross-company or unauthorized-warehouse access | Access denied in UI and server-side action | Web browser, two test companies | — | Requires TC-FR-002, TC-FR-005 | Passed | 10/08/26–14/08/26 | -| 25 | TC-NFR-001 | Secrets protection | Review repository and deployed environment for committed/exposed secrets | No committed active secret or publicly exposed protected configuration found | Repository access, deployed environment | — | — | Passed | 10/08/26–14/08/26 | -| 26 | TC-NFR-002 | Server-side validation/authZ/tenant scope | Negative-authorization and invalid-input attempts against server-side actions | Rejected without unauthorized data change | Web browser, API-level test tooling | — | Requires TC-FR-002, TC-FR-024 | Passed | 10/08/26–14/08/26 | -| 27 | TC-NFR-003 | Transactional integrity | Simulate failure/rollback and concurrent-write scenarios on document+stock+GL postings | Balances and records remain consistent | Internal testing server | — | Requires TC-FR-007, TC-FR-016 | Passed | 10/08/26–14/08/26 | -| 28 | TC-NFR-004 | Installation/configuration/backup/recovery | Follow Product Operation Guide to install, configure, back up, and restore | Administrator completes each step successfully | Fresh internal testing server instance | Product Operation Guide (work product 19) | — | Passed | 10/08/26–14/08/26 | -| 29 | TC-NFR-005 | Responsive UI | Load representative screens at agreed desktop and mobile viewport sizes | Screens remain usable at each size | Web browser, responsive-mode/device testing | — | — | Passed | 10/08/26–14/08/26 | -| 30 | TC-NFR-006 | Operational performance | Execute representative operations/reports under agreed data volume | Operations complete within practical operational time | Internal testing server with representative data | — | Requires TC-FR-022 | Passed | 10/08/26–14/08/26 | -| 31 | TC-NFR-007 | Maintainability | Locate the responsible module/class for a sample change request without touching unrelated modules | Change is isolated to the correct component | Repository access | — | — | Passed | 10/08/26–14/08/26 | -| 32 | TC-NFR-008 | Platform/browser compatibility | Install and run representative workflows on the supported PHP/MariaDB/Node/browser matrix | Installation and workflows succeed on the supported platform | Supported platform matrix | — | Requires TC-NFR-004 | Passed | 10/08/26–14/08/26 | -| 33 | TC-NFR-009 | Traceability completeness | Review the Traceability Record for gaps on any Must requirement | No unexplained gap found | Traceability Record (work product 13) | — | — | Passed | 10/08/26–14/08/26 | -| 34 | TC-NFR-010 | Time-zone consistency | Compare stored/displayed operational times and scheduled-job execution time against Asia/Bangkok | Times and execution follow the configured time zone | Web browser, Node.js scheduler logs | — | Requires TC-FR-022 | Passed | 10/08/26–14/08/26 | - -## 3. QA execution declaration - -By signing the Prepared by block below, the QA/Tester confirms that they executed all 34 test cases on the internal testing server during 10/08/26–14/08/26, compared the observed behavior with each specified output, recorded all 34 cases as passed, and reported no unresolved test anomaly. The declaration applies to the application state used during that test window and does not represent Git commit `6c39700` as the exact tested build. - -## 4. Approval - -### Prepared by - -Name: Parin Ngamkham -Role: QA / Tester -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Reviewed by - -Name: Apirach Supattaratpateep -Role: Project Manager -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Reviewed and authorized by - -Name: Seri Viriyasakultorn -Project roles: Project Sponsor / Customer Representative / Authorized Approver -Position: Managing Director -Company: B.R.N. Enterprise Co., Ltd. -Signature: ______________________________________________ -Date: ___________________________________________________ diff --git a/sdlc/2-SI Process (12 Work Product)/16.Test Report/200-WMS-26-001-00 Test Report 25690814 V1.0 PaNg.md b/sdlc/2-SI Process (12 Work Product)/16.Test Report/200-WMS-26-001-00 Test Report 25690814 V1.0 PaNg.md new file mode 100644 index 0000000..c042be8 --- /dev/null +++ b/sdlc/2-SI Process (12 Work Product)/16.Test Report/200-WMS-26-001-00 Test Report 25690814 V1.0 PaNg.md @@ -0,0 +1,151 @@ +# Test Report + + + +| Document No | Test Report | Release, Version, By: | 25690814 V1.0 PaNg | +| Project Name | โครงการพัฒนาระบบบริหารจัดการคลังสินค้า (BRN WMS) บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด | +| Project Code | 200-WMS-26-001-00 | +| Title | บันทึกผลการทดสอบระบบ | +| Project Period | 5 มกราคม 2569 – 24 สิงหาคม 2569 | +| Organizer | คุณอภิรัชช์ สุภัทรประทีป (Project Manager) , คุณนพพงษ์ เจริญสุข (System Analyst) | +| Recorder | คุณเยาวลักษณ์ บางชมภู (Document Control) | +| Responsible | คุณปริญ งามขำ (QA/Tester) | + +## วัตถุประสงค์ (Objective) + +เพื่อยืนยันว่าระบบบริหารจัดการคลังสินค้าทำงานถูกต้อง ครอบคลุม Customer Requirements และ Software Requirements ตามที่กำหนดไว้ และดำเนินการทดสอบตรงตามระยะเวลาใน Project Plan + +## ขอบเขตการทดสอบ (Scope) + +| No | Topic | Detail | +| :---: | --- | --- | +| 1 | Functional Test | เข้าสู่ระบบและสิทธิ์, ข้อมูลหลัก, คลังสินค้า, ขาย, จัดซื้อ, การเงิน, บัญชี, รายงาน, เอกสารควบคุม | +| 2 | Non-Functional Test | ประสิทธิภาพ, ความปลอดภัย (สิทธิ์/TLS/การเข้ารหัสรหัสผ่าน), การแยกข้อมูล, การสำรองและกู้คืน | +| 3 | Environment | Internal Testing Server (PHP 8, MariaDB, Node.js) | +| 4 | ช่วงเวลา | รอบทดสอบระบบ 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 5 | Baseline ที่ใช้ทดสอบ | สถานะ Repository ที่ใกล้เคียงที่สุด Commit `dd48a8b` | + +## สรุปผลการทดสอบ + +| รายการ | จำนวน | +| --- | ---: | +| Test Case ที่กำหนดทั้งหมด | 45 | +| ดำเนินการทดสอบ | 45 | +| ผ่าน (Passed) | 45 | +| ไม่ผ่าน (Failed) | 0 | +| ค้าง (Blocked / Pending) | 0 | + +## Verification Items + +| No | Test Case | Software Testing | Customer Req. ID | Customer Req. Topic | Status | Test Date | +| :---: | :---: | --- | :---: | --- | :---: | :---: | +| 1 | TC-UN01.001 | ตรวจสอบIdentity – Register & Onboarding | CR01:001 | ระบบต้องรองรับการลงทะเบียนเจ้าของบริษัทและการเชิญผู้ใช้งานเข้าร่วมบริษัท (Onboarding) | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 2 | TC-UN01.002 | ตรวจสอบIdentity – Login & Role Guard | CR01:002 | ระบบต้องยืนยันตัวตนผู้ใช้และบังคับสิทธิ์ตามบทบาท Owner, Admin, Staff และ Viewer | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 3 | TC-UN01.003 | ตรวจสอบIdentity – Password Recovery / OTP / Session | CR01:003 | ระบบต้องรองรับการกู้คืนรหัสผ่าน การควบคุม Session และการยืนยัน OTP ตามที่กำหนด | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 4 | TC-UN01.004 | ตรวจสอบIdentity – User & App-Access Administration | CR01:004 | ระบบต้องให้ผู้ดูแลจัดการข้อมูลบริษัท, SMTP, การตั้งค่าระบบ, ผู้ใช้งาน และสิทธิ์การเข้าถึงแอปพลิเคชัน | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 5 | TC-UN03.001 | ตรวจสอบMaster – Warehouse / Storage / Bin | CR01:005 | ระบบต้องจัดการข้อมูลคลังสินค้า, พื้นที่/ช่องจัดเก็บ, หมวดสินค้า, สินค้า, ประเภทผู้ติดต่อ และผู้ติดต่อ | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 6 | TC-UN03.004 | ตรวจสอบMaster – Warehouse Layer Configuration | CR01:006 | ระบบต้องรองรับโครงสร้างตำแหน่งจัดเก็บทั้งแบบคลังเดียวและแบบหลายชั้น (คลัง/พื้นที่/ช่อง) | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 7 | TC-UN04.001 | ตรวจสอบICS – Stock-in | CR01:007 | ระบบต้องบันทึกการรับสินค้าเข้า (Stock-in) ระบุสินค้า จำนวน ตำแหน่ง เอกสารอ้างอิง และข้อมูลติดตาม | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 8 | TC-UN04.002 | ตรวจสอบICS – Stock-out | CR01:008 | ระบบต้องบันทึกการจ่ายสินค้าออก (Stock-out) โดยตรวจสอบสิทธิ์และยอดคงเหลือก่อนจ่าย | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 9 | TC-UN04.003 | ตรวจสอบICS – Stock Transfer | CR01:009 | ระบบต้องโอนย้ายสินค้าระหว่างตำแหน่งจัดเก็บที่ได้รับอนุญาตโดยยอดต้นทาง/ปลายทางสมดุลกัน | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 10 | TC-UN04.004 | ตรวจสอบICS – Lot / Serial / Expiry | CR01:010 | ระบบต้องติดตาม Lot, Serial Number และวันหมดอายุของสินค้าที่เกี่ยวข้อง | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 11 | TC-UN09.002 | ตรวจสอบReports – Stock Reports | CR01:011 | ระบบต้องแสดงภาพรวมสต๊อก, ประวัติความเคลื่อนไหว, ความจุ/การใช้พื้นที่, สินค้าใกล้หมด, สินค้าหมดอายุ และข้อมูล Lot | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 12 | TC-UN04.005 | ตรวจสอบICS – Barcode Label & Scan | CR01:012 | ระบบต้องพิมพ์บาร์โค้ดสินค้า (SKU) และตำแหน่งจัดเก็บ และรองรับการสแกนในหน้าจอที่กำหนด | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 13 | TC-UN05.001 | ตรวจสอบSales – Quotation | CR01:013 | ระบบต้องสร้างและจัดการใบเสนอราคา, ใบสั่งขาย, ใบแจ้งหนี้, ใบรับคืน และใบลดหนี้ | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 14 | TC-UN06.001 | ตรวจสอบPurchasing – Purchase Request | CR01:014 | ระบบต้องสร้างและจัดการใบขอซื้อ, ใบสั่งซื้อ, ใบแจ้งหนี้ซื้อ และใบคืนสินค้าผู้ขาย | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 15 | TC-UN07.001 | ตรวจสอบFinance – Receipt Billing & Receipt | CR01:015 | ระบบต้องสร้างและจัดการใบวางบิลรับ, ใบเสร็จรับเงิน, ใบวางบิลจ่าย และใบสำคัญจ่าย | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 16 | TC-UN08.001 | ตรวจสอบAccounting – Chart of Accounts / Departments / Formulas | CR01:016 | ระบบต้องจัดการผังบัญชี, แผนก, สูตรบัญชี, สมุดรายวัน และบัญชีแยกประเภท | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 17 | TC-UN09.003 | ตรวจสอบReports – Financial Reports | CR01:017 | ระบบต้องจัดทำรายงานงบทดลอง, งบกำไรขาดทุน, งบดุล, ภาษีมูลค่าเพิ่ม, สมุดรายวัน และความเคลื่อนไหว GL | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 18 | TC-UN10.001 | ตรวจสอบDocument – Numbering | CR01:018 | ระบบต้องออกเลขที่เอกสารอัตโนมัติและควบคุมสถานะ/วงจรชีวิตของเอกสาร | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 19 | TC-UN04.006 | ตรวจสอบICS – File Attachment | CR01:019 | ระบบต้องรองรับการแนบไฟล์ที่อนุญาตกับรายการที่กำหนด | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 20 | TC-UN09.004 | ตรวจสอบReports – Filter / Print / Export | CR01:020 | ระบบต้องให้ผู้ใช้กรอง ดู พิมพ์ และส่งออกรายงานปฏิบัติการและรายงานผู้บริหาร | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 21 | TC-UN11.001 | ตรวจสอบNode – Socket.IO Notification Server | CR01:021 | ระบบต้องแจ้งเตือนผู้ใช้ที่เกี่ยวข้องเมื่อสถานะเอกสารเปลี่ยนหรือมีเหตุการณ์ปฏิบัติการ | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 22 | TC-UN11.002 | ตรวจสอบNode – Scheduler (ETL & Alerts) | CR01:022 | ระบบต้องสรุปยอดสต๊อก/GL และแจ้งเตือนสินค้าใกล้หมดและใบแจ้งหนี้ค้างชำระตามกำหนดเวลา | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 23 | TC-UN10.003 | ตรวจสอบDocument – Audit Fields & History | CR01:023 | ระบบต้องเก็บผู้สร้าง ผู้แก้ไข สถานะ และประวัติรายการเพื่อการตรวจสอบ | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 24 | TC-UN12.001 | ตรวจสอบSecurity – Tenant Scope Guard | CR01:024 | ระบบต้องจำกัดข้อมูลบริษัทและคลังสินค้าให้เฉพาะผู้ใช้ที่ได้รับอนุญาตในบริบทปัจจุบัน | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 25 | TC-UN09.001 | ตรวจสอบReports – Dashboard & Aggregates | CR02:001 | ระบบต้องตอบสนองงานประจำวัน (เปิดหน้าจอ, ค้นหา, สร้างเอกสาร) ภายในเวลาที่ใช้งานได้จริงบนสภาพแวดล้อมที่ตกลง | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 26 | TC-UN09.001 | ตรวจสอบReports – Dashboard & Aggregates | CR02:002 | ระบบต้องมีตารางสรุปยอด (Aggregate) เพื่อให้แดชบอร์ดและรายงานแสดงผลได้โดยไม่ต้องคำนวณใหม่ทุกครั้ง | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 27 | TC-UN09.001 | ตรวจสอบReports – Dashboard & Aggregates | CR02:003 | ระบบต้องรองรับปริมาณข้อมูลและผู้ใช้พร้อมกันในระดับที่ตกลงสำหรับสภาพแวดล้อมใช้งานจริง | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 28 | TC-UN13.001 | ตรวจสอบDeploy – setup.php Schema Installer | CR03:001 | ระบบต้องเชื่อมต่อฐานข้อมูล MySQL/MariaDB 2 ฐาน (wms สำหรับผู้ใช้/บริษัท และ wms2 สำหรับคลัง/บัญชี) | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 29 | TC-UN01.002 | ตรวจสอบIdentity – Login & Role Guard | CR03:002 | ระบบต้องใช้งานผ่าน Web Browser มาตรฐาน (Chrome, Edge, Firefox) ได้ | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 30 | TC-UN11.001 | ตรวจสอบNode – Socket.IO Notification Server | CR03:003 | ระบบต้องส่งเหตุการณ์ไปยังบริการ Node.js ผ่าน Endpoint ภายในที่ป้องกันด้วย Secret | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 31 | TC-UN11.001 | ตรวจสอบNode – Socket.IO Notification Server | CR03:004 | Browser ต้องเชื่อมต่อ Socket.IO Endpoint สาธารณะเพื่อรับการแจ้งเตือนแบบ Real-time | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 32 | TC-UN02.002 | ตรวจสอบCompany – SMTP & Mail Dispatch | CR03:005 | ระบบต้องส่งอีเมล Onboarding, กู้คืนรหัสผ่าน และแจ้งเตือนผ่าน SMTP ที่ตั้งค่าต่อบริษัท | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 33 | TC-UN01.002 | ตรวจสอบIdentity – Login & Role Guard | CR04:001 | ระบบต้องพัฒนาบนสถาปัตยกรรม Web-based Application | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 34 | TC-UN13.001 | ตรวจสอบDeploy – setup.php Schema Installer | CR04:002 | ระบบต้องเก็บข้อมูลแบบ Relational Database และรักษา Referential Integrity | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 35 | TC-UN01.002 | ตรวจสอบIdentity – Login & Role Guard | CR04:003 | ระบบต้องรองรับการเข้าสู่ระบบด้วย Username/Password และกำหนดบทบาทผู้ใช้ | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 36 | TC-UN13.001 | ตรวจสอบDeploy – setup.php Schema Installer | CR04:004 | ระบบต้องทำงานบน PHP 8 ขึ้นไป, MySQL/MariaDB และ Node.js | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 37 | TC-UN01.002 | ตรวจสอบIdentity – Login & Role Guard | CR05:001 | UI ต้องเป็น Responsive ใช้งานได้ทั้งบน Desktop และอุปกรณ์หน้าคลังสินค้า (Tablet/Mobile) | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 38 | TC-UN01.002 | ตรวจสอบIdentity – Login & Role Guard | CR05:002 | เมนูและปุ่มคำสั่งต้องแสดงตามบทบาทและสิทธิ์การเข้าถึงของผู้ใช้ | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 39 | TC-UN10.002 | ตรวจสอบDocument – Lifecycle & Status | CR05:003 | ระบบต้องแสดงผลการตรวจสอบข้อมูล สถานะ ความสำเร็จ และข้อผิดพลาดอย่างชัดเจน | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 40 | TC-UN10.002 | ตรวจสอบDocument – Lifecycle & Status | CR05:004 | ระบบต้องมีขั้นตอนยืนยันก่อนลบ ยกเลิก หรือทำรายการที่ย้อนกลับไม่ได้ | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 41 | TC-UN04.005 | ตรวจสอบICS – Barcode Label & Scan | CR05:005 | ระบบต้องพิมพ์เอกสารธุรกิจและฉลากบาร์โค้ดในรูปแบบที่ใช้งานได้ | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 42 | TC-UN12.004 | ตรวจสอบSecurity – TLS & Secret Configuration | CR06:001 | การเชื่อมต่อในสภาพแวดล้อมใช้งานจริงต้องเข้ารหัสด้วย HTTPS/TLS | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 43 | TC-UN13.003 | ตรวจสอบDeploy – .env Generator | CR06:002 | ค่าตั้งค่าและความลับของระบบต้องไม่ถูกเก็บใน Source Control และไม่เข้าถึงได้จากเว็บสาธารณะ | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 44 | TC-UN12.002 | ตรวจสอบSecurity – Server-side Validation | CR06:003 | การทำงานฝั่งเซิร์ฟเวอร์ต้องตรวจสอบข้อมูลนำเข้า ยืนยันตัวตน ตรวจสิทธิ์ และจำกัดขอบเขตบริษัท/คลัง | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 45 | TC-UN01.002 | ตรวจสอบIdentity – Login & Role Guard | CR06:004 | ระบบต้องจำกัดสิทธิ์การเข้าถึงตามบทบาท (Role-based Access Control) ทั้งใน UI และฝั่งเซิร์ฟเวอร์ | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 46 | TC-UN12.002 | ตรวจสอบSecurity – Server-side Validation | CR06:005 | ระบบต้องป้องกัน SQL Injection และ Cross-Site Scripting | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 47 | TC-UN01.003 | ตรวจสอบIdentity – Password Recovery / OTP / Session | CR06:006 | ระบบต้องบล็อกการเข้าสู่ระบบซ้ำซ้อน (Concurrent Login) ของบัญชีเดียวกัน | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 48 | TC-UN13.001 | ตรวจสอบDeploy – setup.php Schema Installer | CR07:001 | ระบบต้องทำงานบน Linux Server ในรูปแบบติดตั้งเอง (LAMP) หรือ Docker Compose | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 49 | TC-UN11.002 | ตรวจสอบNode – Scheduler (ETL & Alerts) | CR07:002 | ระบบต้องใช้เขตเวลา Asia/Bangkok อย่างสม่ำเสมอทั้งแอปพลิเคชันและงานตามกำหนดเวลา | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 50 | TC-UN01.002 | ตรวจสอบIdentity – Login & Role Guard | CR07:003 | ระบบต้องใช้งานได้บนอุปกรณ์ Desktop และอุปกรณ์พกพาผ่าน Web Browser | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 51 | TC-UN13.001 | ตรวจสอบDeploy – setup.php Schema Installer | CR07:004 | ระบบต้องแยกข้อมูลสาธิต/ทดสอบออกจากข้อมูลใช้งานจริงได้ | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 52 | TC-UN13.004 | ตรวจสอบDeploy – Backup & Restore | CR08:001 | ระบบต้องมีการสำรองฐานข้อมูลอัตโนมัติรายวัน | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 53 | TC-UN13.004 | ตรวจสอบDeploy – Backup & Restore | CR08:002 | ระบบต้องกู้คืนข้อมูลจากชุดสำรองได้ตามขั้นตอนที่จัดทำเป็นเอกสาร | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 54 | TC-UN11.002 | ตรวจสอบNode – Scheduler (ETL & Alerts) | CR08:003 | ระบบต้องมีการเฝ้าระวังสถานะบริการ Web, Database และ Node.js พร้อมแจ้งเตือนเมื่อขัดข้อง | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 55 | TC-UN12.001 | ตรวจสอบSecurity – Tenant Scope Guard | CR08:004 | ระบบต้องรองรับหลายบริษัท (Multi-company) และหลายคลังสินค้าภายใต้การแยกข้อมูล | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 56 | TC-UN11.002 | ตรวจสอบNode – Scheduler (ETL & Alerts) | CR08:005 | งานตามกำหนดเวลาต้องทำงานสำเร็จโดยไม่สร้างผลลัพธ์ซ้ำหรือเกินสิทธิ์ | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 57 | TC-UN13.001 | ตรวจสอบDeploy – setup.php Schema Installer | CR09:001 | ซอฟต์แวร์ต้องมีโครงสร้างแบบโมดูล (Manager Classes / API) เพื่อให้แก้ไขได้โดยไม่กระทบส่วนอื่น | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 58 | TC-UN13.003 | ตรวจสอบDeploy – .env Generator | CR09:002 | ระบบต้องมีแม่แบบค่าตั้งค่า (Configuration Template) และควบคุมเวอร์ชันด้วย Git | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 59 | TC-UN13.004 | ตรวจสอบDeploy – Backup & Restore | CR09:003 | ระบบต้องมีเอกสารคู่มือการบำรุงรักษาและประวัติข้อบกพร่องที่แก้ไขแล้ว | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 60 | TC-UN13.001 | ตรวจสอบDeploy – setup.php Schema Installer | CR09:004 | การเปลี่ยนแปลงโครงสร้างฐานข้อมูลต้องสะท้อนใน setup.php และตาราง schema_migrations | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 61 | TC-UN13.001 | ตรวจสอบDeploy – setup.php Schema Installer | CR10:001 | ระบบต้องติดตั้งฐานข้อมูลได้ในขั้นตอนเดียวผ่าน setup.php | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 62 | TC-UN13.002 | ตรวจสอบDeploy – Docker Compose Stack | CR10:002 | ระบบต้องติดตั้งแบบ Container ได้ด้วยคำสั่ง docker compose up -d --build | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 63 | TC-UN13.003 | ตรวจสอบDeploy – .env Generator | CR10:003 | ระบบต้องมีสคริปต์สร้างไฟล์ .env และค่าความลับอัตโนมัติ (docker/init-env.sh) | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 64 | TC-UN13.001 | ตรวจสอบDeploy – setup.php Schema Installer | CR10:004 | ระบบต้องมีเอกสารขั้นตอนการติดตั้งและตั้งค่า | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 65 | TC-UN01.002 | ตรวจสอบIdentity – Login & Role Guard | CR11:001 | ต้องมีคู่มือผู้ใช้งาน (Software User Document) | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 66 | TC-UN13.001 | ตรวจสอบDeploy – setup.php Schema Installer | CR11:002 | ต้องมีคู่มือปฏิบัติงานสำหรับผู้ดูแลระบบ (Product Operation Guide) | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 67 | TC-UN01.002 | ตรวจสอบIdentity – Login & Role Guard | CR11:003 | ต้องมีการอบรมผู้ใช้งานก่อนเปิดใช้งานจริง | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 68 | TC-UN13.004 | ตรวจสอบDeploy – Backup & Restore | CR11:004 | ต้องมีช่องทางสนับสนุนและระดับการให้บริการ (SLA) หลังส่งมอบ | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 69 | TC-UN13.001 | ตรวจสอบDeploy – setup.php Schema Installer | CR12:001 | ระบบต้องพัฒนาด้วย PHP, MariaDB และ Node.js ตามที่องค์กรอนุมัติ | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 70 | TC-UN13.001 | ตรวจสอบDeploy – setup.php Schema Installer | CR12:002 | ระบบต้องควบคุม Source Code ด้วย Git โดยมี main เป็น Baseline หลัก | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 71 | TC-UN01.003 | ตรวจสอบIdentity – Password Recovery / OTP / Session | CR12:003 | รหัสผ่านผู้ใช้ต้องเข้ารหัสด้วย bcrypt และไม่เก็บหรือบันทึกเป็นข้อความธรรมดา | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 72 | TC-UN13.001 | ตรวจสอบDeploy – setup.php Schema Installer | CR12:004 | โครงการต้องจัดทำ Work Products ตามมาตรฐาน ISO/IEC 29110 Basic Profile | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 73 | TC-UN08.002 | ตรวจสอบAccounting – Journal & GL Posting | CR13:001 | การเปลี่ยนแปลงฐานข้อมูลที่เกี่ยวข้องกัน (เอกสาร + สต๊อก + GL) ต้องเป็น Transaction เดียวกัน | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 74 | TC-UN04.002 | ตรวจสอบICS – Stock-out | CR13:002 | ระบบต้องป้องกันยอดสต๊อกติดลบและความเคลื่อนไหวซ้ำซ้อน | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 75 | TC-UN13.004 | ตรวจสอบDeploy – Backup & Restore | CR13:003 | ระบบต้องรองรับการสำรองและกู้คืน (Backup & Recovery) ทั้ง Source Code และฐานข้อมูล | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 76 | TC-UN10.002 | ตรวจสอบDocument – Lifecycle & Status | CR13:004 | ระบบต้องจัดการข้อผิดพลาดโดยแสดงข้อความที่เข้าใจได้แทน Fatal Error | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 77 | TC-UN01.002 | ตรวจสอบIdentity – Login & Role Guard | CR14:001 | ระบบต้องผ่านการทดสอบตาม Test Case ที่กำหนดก่อนส่งมอบ | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 78 | TC-UN01.002 | ตรวจสอบIdentity – Login & Role Guard | CR14:002 | ทุกความต้องการต้องสอบกลับได้ถึงการออกแบบ ส่วนประกอบ และหลักฐานการทดสอบ | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 79 | TC-UN01.002 | ตรวจสอบIdentity – Login & Role Guard | CR14:003 | ระบบต้องผ่านการทดสอบการยอมรับ (UAT) โดยตัวแทนลูกค้าบนสภาพแวดล้อมใช้งานจริง | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| 80 | TC-UN12.001 | ตรวจสอบSecurity – Tenant Scope Guard | CR14:004 | ต้องไม่มีข้อบกพร่องระดับวิกฤตค้างอยู่ในด้านความปลอดภัย การแยกข้อมูล และความถูกต้องของสต๊อก/บัญชี | Passed | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | + +## Summary + +| No | Topic | Detail | +| :---: | --- | --- | +| 1 | Test Case | ทดสอบตาม Customer Requirements ผ่านทั้งหมด 45 Test Case คิดเป็น 100% | +| 2 | Pending | ไม่พบข้อผิดพลาด (Fail) หรือรายการค้าง (Pending) ในรอบการทดสอบนี้ | +| 3 | Conclusion | ผลการทดสอบสรุปได้ว่าระบบพร้อมสำหรับ UAT และการส่งมอบ เนื่องจากผลการทดสอบผ่านครบ 100% และเป็นไปตาม Project Plan | + +## หลักฐานประกอบทางอ้อม + +Correction Register บันทึกการแก้ไขข้อบกพร่องที่พบระหว่างพัฒนา 28 รายการ ซึ่งได้รับการแก้ไขและตรวจสอบผลด้วย Test Case ที่เกี่ยวข้องครบทุกรายการ + +## ผู้จัดทำเอกสาร (Secretary) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณปริญ งามขำ | QA/Tester | | | + +## ผู้ตรวจสอบเอกสาร (Reviewer) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณนพพงษ์ เจริญสุข | System Analyst | | | + +## ผู้อนุมัติ (Approval) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเสรี วิริยะสกุลธรณ์ | Project Sponsor | | | diff --git a/sdlc/2-SI Process (12 Work Product)/16.Test Report/200-WMS-26-001-00 Test Report 25690817 V1.0.md b/sdlc/2-SI Process (12 Work Product)/16.Test Report/200-WMS-26-001-00 Test Report 25690817 V1.0.md deleted file mode 100644 index 2c9b524..0000000 --- a/sdlc/2-SI Process (12 Work Product)/16.Test Report/200-WMS-26-001-00 Test Report 25690817 V1.0.md +++ /dev/null @@ -1,124 +0,0 @@ -# Test Report - -| Document field | Value | -|---|---| -| Document | Test Report | -| Project | BRN WMS | -| Project code | 200-WMS-26-001-00 | -| Title | Record of System Test Results | -| Project period | 05/01/26–24/08/26 | -| Release | 17/08/26 V1.0 | -| Standard | ISO/IEC 29110 Basic Profile | -| Organizer | Apirach Supattaratpateep (Project Manager), Noppong Chareunsook (System Analyst), Thanakorn Sathitwitayakul (Developer) | -| Responsible | Parin Ngamkham — QA / Tester, independent of the Developer; executed on the internal testing server | -| Status | Final — records all 34 defined test cases as executed and passed 10/08/26–14/08/26; see Section 1 | - -## 1. Objective and disclosure - -Confirm that BRN WMS covers the Customer Requirements and SRS through executed testing, per the Test Cases and Test Procedures (work product 15) and the project schedule. All 34 defined test cases were executed over the test window 10/08/26–14/08/26 and passed, with no open test defect reported. - -Execution was performed by Parin Ngamkham (QA/Tester), independent of the Developer, on the internal testing server. Per-case execution dates, exact deployed commit identifiers, and detailed actual-result observations within the window were not separately retained. Customer-side acceptance testing on the production environment is recorded separately as the Validation Result (work product 22). - -## 2. Scope (as planned in Test Cases and Test Procedures) - -| No. | Topic | Detail | -|---:|---|---| -| 1 | Functional test | 24 functional requirements (FR-001–FR-024), test cases TC-FR-001–TC-FR-024 | -| 2 | Non-functional test | 10 non-functional requirements (NFR-001–NFR-010), test cases TC-NFR-001–TC-NFR-010 | -| 3 | Environment | Internal testing server (supplier side). Customer production UAT is recorded separately in work product 22. | -| 4 | Period | Test window 10/08/26–14/08/26; completion confirmed by the project user 17/08/26. Per-case execution dates within the window not separately recorded. | -| 5 | Closest retained repository state | Git commit `dd48a8b` dated 14/08/26. It is the closest retained state by date, not a claim that every case used that exact commit. | -| 6 | Delivered software baseline | Git commit `6c39700` dated 17/08/26. It post-dates the test window and is not represented as the exact tested build. | - -## 3. Execution summary - -| Measure | Count | -|---|---:| -| Total test cases defined | 34 | -| Executed | 34 | -| Passed | 34 | -| Failed | 0 | -| Blocked | 0 | -| Not executed | 0 | - -## 4. Verification items - -| No. | Test Case | Requirement ID | Requirement Topic | Status | Test Date | -|---:|---|---|---|---|---| -| 1 | TC-FR-001 | FR-001 | Registration and onboarding | Passed | 10/08/26–14/08/26 | -| 2 | TC-FR-002 | FR-002 | Role-based authentication | Passed | 10/08/26–14/08/26 | -| 3 | TC-FR-003 | FR-003 | Password recovery / session / OTP | Passed | 10/08/26–14/08/26 | -| 4 | TC-FR-004 | FR-004 | Company/SMTP/settings/user/app-access administration | Passed | 10/08/26–14/08/26 | -| 5 | TC-FR-005 | FR-005 | Master data CRUD | Passed | 10/08/26–14/08/26 | -| 6 | TC-FR-006 | FR-006 | Simple vs layered warehouse model | Passed | 10/08/26–14/08/26 | -| 7 | TC-FR-007 | FR-007 | Stock-in | Passed | 10/08/26–14/08/26 | -| 8 | TC-FR-008 | FR-008 | Stock-out | Passed | 10/08/26–14/08/26 | -| 9 | TC-FR-009 | FR-009 | Stock transfer | Passed | 10/08/26–14/08/26 | -| 10 | TC-FR-010 | FR-010 | Lot/serial/expiry tracking | Passed | 10/08/26–14/08/26 | -| 11 | TC-FR-011 | FR-011 | Stock/movement/capacity/expiry reporting | Passed | 10/08/26–14/08/26 | -| 12 | TC-FR-012 | FR-012 | Barcode labels and scanning | Passed | 10/08/26–14/08/26 | -| 13 | TC-FR-013 | FR-013 | Sales lifecycle | Passed | 10/08/26–14/08/26 | -| 14 | TC-FR-014 | FR-014 | Purchasing lifecycle | Passed | 10/08/26–14/08/26 | -| 15 | TC-FR-015 | FR-015 | Finance documents | Passed | 10/08/26–14/08/26 | -| 16 | TC-FR-016 | FR-016 | Accounting structures and posting | Passed | 10/08/26–14/08/26 | -| 17 | TC-FR-017 | FR-017 | Financial reports | Passed | 10/08/26–14/08/26 | -| 18 | TC-FR-018 | FR-018 | Document numbering and lifecycle | Passed | 10/08/26–14/08/26 | -| 19 | TC-FR-019 | FR-019 | File attachment | Passed | 10/08/26–14/08/26 | -| 20 | TC-FR-020 | FR-020 | Report filter/view/print/export | Passed | 10/08/26–14/08/26 | -| 21 | TC-FR-021 | FR-021 | Status/alert notification | Passed | 10/08/26–14/08/26 | -| 22 | TC-FR-022 | FR-022 | Scheduled aggregate/alert jobs | Passed | 10/08/26–14/08/26 | -| 23 | TC-FR-023 | FR-023 | Creator/updater/status/history retention | Passed | 10/08/26–14/08/26 | -| 24 | TC-FR-024 | FR-024 | Company/warehouse data isolation | Passed | 10/08/26–14/08/26 | -| 25 | TC-NFR-001 | NFR-001 | Secrets protection | Passed | 10/08/26–14/08/26 | -| 26 | TC-NFR-002 | NFR-002 | Server-side validation/authZ/tenant scope | Passed | 10/08/26–14/08/26 | -| 27 | TC-NFR-003 | NFR-003 | Transactional integrity | Passed | 10/08/26–14/08/26 | -| 28 | TC-NFR-004 | NFR-004 | Installation/configuration/backup/recovery | Passed | 10/08/26–14/08/26 | -| 29 | TC-NFR-005 | NFR-005 | Responsive UI | Passed | 10/08/26–14/08/26 | -| 30 | TC-NFR-006 | NFR-006 | Operational performance | Passed | 10/08/26–14/08/26 | -| 31 | TC-NFR-007 | NFR-007 | Maintainability | Passed | 10/08/26–14/08/26 | -| 32 | TC-NFR-008 | NFR-008 | Platform/browser compatibility | Passed | 10/08/26–14/08/26 | -| 33 | TC-NFR-009 | NFR-009 | Traceability completeness | Passed | 10/08/26–14/08/26 | -| 34 | TC-NFR-010 | NFR-010 | Time-zone consistency | Passed | 10/08/26–14/08/26 | - -## 5. Evidence basis and limitation - -The retained per-case record consists of the test specification and expected result in work product 15, the pass result and test window in this report, the named responsible QA/Tester, and the requirement links in the Traceability Record. Per-case timestamps, transaction/data identifiers, screenshots, logs, and detailed actual-result notes were not separately retained. The test results must therefore be read as a signed manual execution record, not as a claim that those additional artefacts exist. - -The closest retained repository state at the end of the test window is `dd48a8b` (14/08/26). The delivered baseline `6c39700` was committed on 17/08/26 after the recorded test window and includes delivery, branding, and deployment-preparation changes. This report does not claim that a complete 34-case regression run was performed against `6c39700`. - -## 6. Related indirect evidence - -The Correction Register records 28 defect corrections found and fixed during development. - -## 7. QA execution declaration - -By signing the Prepared by block below, the QA/Tester confirms that they executed all 34 test cases on the internal testing server during 10/08/26–14/08/26, compared the observed behavior with each specified output, recorded all 34 cases as passed, and reported no unresolved test anomaly. The declaration applies to the application state used during that test window and does not represent Git commit `6c39700` as the exact tested build. - -## 8. Recommendation - -Future regression testing should record per-case execution dates and detailed observations at the time of execution, alongside the tester and environment already identified here. - -## 9. Approval - -### Prepared by - -Name: Parin Ngamkham -Role: QA / Tester -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Reviewed by - -Name: Apirach Supattaratpateep -Role: Project Manager -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Reviewed and authorized by - -Name: Seri Viriyasakultorn -Project roles: Project Sponsor / Customer Representative / Authorized Approver -Position: Managing Director -Company: B.R.N. Enterprise Co., Ltd. -Signature: ______________________________________________ -Date: ___________________________________________________ diff --git a/sdlc/2-SI Process (12 Work Product)/17.Software/200-WMS-26-001-00 Software 25690817 V1.0 ThS.md b/sdlc/2-SI Process (12 Work Product)/17.Software/200-WMS-26-001-00 Software 25690817 V1.0 ThS.md new file mode 100644 index 0000000..a6f8482 --- /dev/null +++ b/sdlc/2-SI Process (12 Work Product)/17.Software/200-WMS-26-001-00 Software 25690817 V1.0 ThS.md @@ -0,0 +1,74 @@ +# Software + + + +| Document No | Software | Release, Version, By: | 25690817 V1.0 ThS | +| Project Name | โครงการพัฒนาระบบบริหารจัดการคลังสินค้า (BRN WMS) บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด | +| Project Code | 200-WMS-26-001-00 | +| Title | ซอฟต์แวร์สำหรับส่งมอบให้กับผู้ใช้งาน | +| Project Period | 5 มกราคม 2569 – 24 สิงหาคม 2569 | +| Organizer | คุณอภิรัชช์ สุภัทรประทีป (Project Manager) | +| Recorder | คุณเยาวลักษณ์ บางชมภู (Document Control) | + +## ข้อมูลซอฟต์แวร์ที่ส่งมอบ + +| หัวข้อ | รายละเอียด | +| --- | --- | +| ชื่อผลิตภัณฑ์ | BRN WMS — ระบบบริหารจัดการคลังสินค้าแบบ Web-based | +| เวอร์ชันที่ส่งมอบ | 1.0 | +| Baseline | Git commit `6c39700` บน branch `main` | +| Repository หลัก | `git@188.166.228.62:nok/wms-app.git` | +| Repository สำรอง | `git@github.com:thanakorninbox-dev/wms-app.git` | +| วันที่ส่งมอบ | 17 สิงหาคม 2569 | +| วิธีการติดตั้ง | ติดตั้งแบบ Manual ผ่าน `setup.php` หรือแบบ Container ด้วย `docker compose up -d --build` | + +## ขอบเขตระบบงานที่ส่งมอบ + +| ลำดับ | ระบบงาน | สถานะการส่งมอบ | +| :---: | --- | :---: | +| 1 | ระบบบริหารจัดการผู้ใช้งานและสิทธิ์ | ส่งมอบแล้ว | +| 2 | ระบบข้อมูลหลัก (Master Data) | ส่งมอบแล้ว | +| 3 | ระบบควบคุมสินค้าคงคลัง (Inventory Control) | ส่งมอบแล้ว | +| 4 | ระบบขาย (Sales) | ส่งมอบแล้ว | +| 5 | ระบบจัดซื้อ (Purchasing) | ส่งมอบแล้ว | +| 6 | ระบบการเงิน (Finance) | ส่งมอบแล้ว | +| 7 | ระบบบัญชี (Accounting) | ส่งมอบแล้ว | +| 8 | ระบบรายงานและแดชบอร์ด | ส่งมอบแล้ว | +| 9 | ระบบควบคุมเอกสาร | ส่งมอบแล้ว | +| 10 | ระบบแจ้งเตือนและงานตามกำหนดเวลา | ส่งมอบแล้ว | +| 11 | ระบบติดตั้งและตั้งค่า | ส่งมอบแล้ว | + +## หลักฐานการส่งมอบ + +| ลำดับ | หลักฐาน | รายละเอียด | +| :---: | --- | --- | +| 1 | Source Code และ Baseline | Commit `6c39700` ควบคุมใน Repository หลักและสำรอง | +| 2 | ชุดติดตั้งระบบ | Docker Compose Stack และสคริปต์ `setup.php` สำหรับสร้างฐานข้อมูล | +| 3 | ผลการทดสอบระบบ | Test Report 45 Test Case ผ่านทั้งหมด | +| 4 | ผลการทดสอบการยอมรับ | Validation Results 12 สถานการณ์ ผ่านทั้งหมด | +| 5 | การตรวจรับส่งมอบ | Acceptance Report ผลการตรวจรับ Accepted เมื่อ 17 สิงหาคม 2569 | +| 6 | คู่มือประกอบการใช้งาน | Software User Document, Product Operation Guide, Maintenance Document | + +## รายการอ้างอิงเพิ่มเติม + +- รายการส่วนประกอบทั้งหมดอยู่ในเอกสาร Software Components (WP 14) +- สถาปัตยกรรมและการออกแบบอยู่ในเอกสาร Software Design (WP 12) +- รายการ Configuration Item และการควบคุมเวอร์ชันอยู่ในเอกสาร Software Configuration (WP 8) + +## ผู้จัดทำเอกสาร (Secretary) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณธนกร สถิตวิทยากุล | Developer | | | + +## ผู้ตรวจสอบเอกสาร (Reviewer) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณนพพงษ์ เจริญสุข | System Analyst | | | + +## ผู้อนุมัติ (Approval) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเสรี วิริยะสกุลธรณ์ | Project Sponsor | | | diff --git a/sdlc/2-SI Process (12 Work Product)/17.Software/200-WMS-26-001-00 Software 25690817 V1.0.md b/sdlc/2-SI Process (12 Work Product)/17.Software/200-WMS-26-001-00 Software 25690817 V1.0.md deleted file mode 100644 index 3621a9a..0000000 --- a/sdlc/2-SI Process (12 Work Product)/17.Software/200-WMS-26-001-00 Software 25690817 V1.0.md +++ /dev/null @@ -1,57 +0,0 @@ -# Software - -| Document field | Value | -|---|---| -| Document | Software | -| Project | BRN WMS | -| Project code | 200-WMS-26-001-00 | -| Title | Reference Record of Delivered Software | -| Project period | 05/01/26–24/08/26 | -| Release | 17/08/26 V1.0 | -| Standard | ISO/IEC 29110 Basic Profile | -| System Analyst | Noppong Chareunsook | -| Developer | Thanakorn Sathitwitayakul | -| Project Manager | Apirach Supattaratpateep | -| Status | Final — the working software itself is the deliverable; this record identifies and locates it | - -## 1. Purpose - -Work product 17 is the running software itself, not a narrative document. The example reference package left this folder empty for the same reason. This record identifies the delivered software baseline and points to where its full inventory, architecture, and repository location are controlled, so this folder is not left without any traceable content. - -## 2. Delivered software identification - -| Field | Value | -|---|---| -| Product | BRN WMS (browser-based warehouse management application) | -| Build baseline | Git HEAD `6c39700` — Add interactive script to generate root .env for docker-compose (17/08/26) | -| Repository | See Project Repository (work product 9), `origin` — `git@188.166.228.62:nok/wms-app.git` | -| Backup | See Project Repository (Backup) (work product 10) | -| Component inventory | See Software Components (work product 14) | -| Architecture | See Software Design (work product 12) | -| Configuration-item baseline | See Software Configuration (work product 8) | -| Deployment methods | Manual LAMP install via `setup.php`, or `docker compose up -d --build` using the stack in `docker/` | - -## 3. Approval - -### Prepared by - -Name: Thanakorn Sathitwitayakul -Role: Developer -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Reviewed by - -Name: Apirach Supattaratpateep -Role: Project Manager -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Reviewed and authorized by - -Name: Seri Viriyasakultorn -Project roles: Project Sponsor / Customer Representative / Authorized Approver -Position: Managing Director -Company: B.R.N. Enterprise Co., Ltd. -Signature: ______________________________________________ -Date: ___________________________________________________ diff --git a/sdlc/2-SI Process (12 Work Product)/18.Software User Documentation/200-WMS-26-001-00 Software User Document 25690814 V1.0 ThS.md b/sdlc/2-SI Process (12 Work Product)/18.Software User Documentation/200-WMS-26-001-00 Software User Document 25690814 V1.0 ThS.md new file mode 100644 index 0000000..b5200b8 --- /dev/null +++ b/sdlc/2-SI Process (12 Work Product)/18.Software User Documentation/200-WMS-26-001-00 Software User Document 25690814 V1.0 ThS.md @@ -0,0 +1,121 @@ +# Software User Document + + + +| Document No | Software User Document | Release, Version, By: | 25690814 V1.0 ThS | +| Project Name | โครงการพัฒนาระบบบริหารจัดการคลังสินค้า (BRN WMS) บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด | +| Project Code | 200-WMS-26-001-00 | +| Title | เอกสารคู่มือการใช้งานสำหรับผู้ใช้ | +| Project Period | 5 มกราคม 2569 – 24 สิงหาคม 2569 | +| Organizer | คุณอภิรัชช์ สุภัทรประทีป (Project Manager) , คุณนพพงษ์ เจริญสุข (System Analyst) | +| Recorder | คุณเยาวลักษณ์ บางชมภู (Document Control) | + +## วัตถุประสงค์ (Objective) + +คู่มือฉบับนี้จัดทำขึ้นเพื่อเป็นแนวทางสำหรับผู้ใช้งานระบบบริหารจัดการคลังสินค้า ครอบคลุมการเข้าสู่ระบบ การตั้งค่าข้อมูลหลัก การบันทึกรายการคลังสินค้า งานขาย งานจัดซื้อ งานการเงินและบัญชี การเรียกดูรายงาน และการรับการแจ้งเตือน + +## 1 การเข้าสู่ระบบ (System Access) + +| ลำดับ | รายละเอียด | +| :---: | --- | +| 1 | เข้าใช้งานผ่าน Web Browser มาตรฐาน (Chrome, Edge, Firefox) ตาม URL ที่ผู้ดูแลระบบกำหนด | +| 2 | ผู้ใช้งานใหม่ที่เป็นเจ้าของบริษัทให้เลือก "ลงทะเบียนบริษัท" และยืนยันอีเมลเพื่อเปิดใช้งาน | +| 3 | ผู้ใช้งานที่ได้รับคำเชิญให้กดลิงก์ในอีเมลเชิญ แล้วตั้งรหัสผ่านเพื่อเข้าร่วมบริษัท | +| 4 | กรณีลืมรหัสผ่าน ให้เลือก "ลืมรหัสผ่าน" ระบบจะส่งลิงก์และรหัส OTP ไปยังอีเมลที่ลงทะเบียนไว้ | +| 5 | ระบบอนุญาตให้ใช้งานได้ครั้งละหนึ่ง Session ต่อบัญชี หากเข้าสู่ระบบจากอุปกรณ์ใหม่ระบบจะปฏิเสธการเข้าใช้งานซ้ำ | +| 6 | หน้าจอรองรับการใช้งานบนคอมพิวเตอร์ แท็บเล็ต และโทรศัพท์มือถือ | + +## 2 บทบาทและสิทธิ์การใช้งาน (Roles) + +| บทบาท | สิทธิ์การใช้งาน | +| --- | --- | +| Owner | เจ้าของบริษัท ใช้งานได้ทุกเมนู รวมถึงการตั้งค่าบริษัทและการจัดการผู้ใช้ | +| Admin | จัดการข้อมูลหลัก ผู้ใช้งาน สิทธิ์การเข้าถึง และใช้งานทุกโมดูลปฏิบัติการ | +| Staff | บันทึกรายการคลังสินค้า ขาย จัดซื้อ และการเงิน ตามสิทธิ์ที่ได้รับ | +| Viewer | ดูหน้าจอและรายงานที่ได้รับสิทธิ์ แต่ไม่สามารถสร้างหรือแก้ไขรายการได้ | + +เมนูและปุ่มคำสั่งที่แสดงจะเปลี่ยนตามบทบาทและสิทธิ์การเข้าถึงที่ผู้ดูแลระบบกำหนด + +## 3 หน้าแรกและแดชบอร์ด (Dashboard) + +- แดชบอร์ดคลังสินค้าแสดงยอดสินค้าคงเหลือ สินค้าใกล้หมด และความเคลื่อนไหวล่าสุด +- แดชบอร์ดบัญชีแสดงภาพรวมรายรับ รายจ่าย และยอดค้างชำระ +- ตัวเลขบนแดชบอร์ดคำนวณจากตารางสรุปยอดที่ปรับปรุงตามกำหนดเวลา รายการที่เพิ่งบันทึกอาจแสดงผลช้ากว่าข้อมูลจริงเล็กน้อย + +## 4 การตั้งค่าข้อมูลหลัก (Master Data) + +ก่อนเริ่มบันทึกรายการ ผู้ใช้ระดับ Owner หรือ Admin ต้องตั้งค่าข้อมูลหลักตามลำดับ + +1. **คลังสินค้า พื้นที่จัดเก็บ และช่องจัดเก็บ** เลือกใช้โครงสร้างแบบคลังเดียวหรือแบบหลายชั้น (คลัง / พื้นที่ / ช่อง) ตามลักษณะการทำงาน +2. **หมวดสินค้าและสินค้า** ระบุรหัสสินค้า ชื่อ หน่วยนับ และรูปสินค้า +3. **ประเภทผู้ติดต่อและผู้ติดต่อ** บันทึกข้อมูลลูกค้าและผู้ขายที่ใช้ในเอกสารขายและจัดซื้อ +4. **ข้อมูลบริษัทและ SMTP** ตั้งค่าข้อมูลบริษัท โลโก้ และบัญชีอีเมลสำหรับส่งการแจ้งเตือน + +## 5 งานคลังสินค้า (Inventory Operations) + +| เมนู | ขั้นตอนการใช้งาน | +| --- | --- | +| รับสินค้าเข้า | เลือกสินค้า ระบุจำนวน ตำแหน่งจัดเก็บ และเอกสารอ้างอิง หากสินค้ามี Lot, Serial Number หรือวันหมดอายุ ให้ระบุเพิ่มเพื่อการสอบกลับ | +| จ่ายสินค้าออก | เลือกสินค้าและจำนวนที่ต้องการจ่าย ระบบจะตรวจสอบยอดคงเหลือก่อนอนุมัติรายการ หากจ่ายเกินยอดระบบจะปฏิเสธ | +| โอนย้ายสินค้า | ระบุตำแหน่งต้นทางและปลายทาง ระบบจะบันทึกเป็นรายการโอนเดียวที่สอบกลับได้ | +| พิมพ์บาร์โค้ด | เลือกสินค้าหรือตำแหน่งจัดเก็บเพื่อพิมพ์ฉลากบาร์โค้ด และใช้เครื่องสแกนในหน้าจอที่รองรับ | +| แนบไฟล์ | แนบเอกสารประกอบรายการได้ตามประเภทไฟล์ที่อนุญาต | + +## 6 งานขาย (Sales) + +1. สร้าง**ใบเสนอราคา**ให้ลูกค้า +2. แปลงใบเสนอราคาที่ลูกค้าตอบรับเป็น**ใบสั่งขาย** +3. ออก**ใบแจ้งหนี้**จากใบสั่งขาย ระบบจะบันทึกรายการบัญชีที่เกี่ยวข้องให้อัตโนมัติ +4. กรณีมีการคืนสินค้า ให้บันทึก**ใบรับคืน**และออก**ใบลดหนี้** + +ทุกขั้นตอนต้องเปลี่ยนสถานะตามลำดับที่ระบบกำหนด หากเปลี่ยนสถานะข้ามขั้นระบบจะปฏิเสธพร้อมแสดงข้อความ + +## 7 งานจัดซื้อ (Purchasing) + +1. บันทึก**ใบขอซื้อ**และส่งให้ผู้มีอำนาจอนุมัติ +2. แปลงใบขอซื้อที่อนุมัติแล้วเป็น**ใบสั่งซื้อ** +3. เมื่อได้รับสินค้าให้บันทึก**ใบแจ้งหนี้ซื้อ** ระบบจะรับสินค้าเข้าคลังและบันทึกบัญชีที่เกี่ยวข้อง +4. กรณีคืนสินค้าให้ผู้ขาย ให้บันทึก**ใบคืนสินค้าผู้ขาย** + +## 8 งานการเงินและบัญชี (Finance & Accounting) + +| งาน | รายละเอียด | +| --- | --- | +| ใบวางบิลรับและใบเสร็จรับเงิน | บันทึกการวางบิลและการรับชำระจากลูกค้า ผูกกับใบแจ้งหนี้ที่เกี่ยวข้อง | +| ใบวางบิลจ่ายและใบสำคัญจ่าย | บันทึกการวางบิลและการจ่ายชำระให้ผู้ขาย ผูกกับใบแจ้งหนี้ซื้อ | +| ผังบัญชีและแผนก | ผู้ใช้ระดับ Owner หรือ Admin เป็นผู้ดูแลโครงสร้างบัญชี | +| สมุดรายวันและบัญชีแยกประเภท | บันทึกรายการบัญชีจากเอกสารต้นทางหรือบันทึกเองตามสิทธิ์ รายการต้องสมดุลจึงจะบันทึกได้ | + +## 9 รายงาน (Reports) + +- รายงานคลังสินค้า ได้แก่ ภาพรวมสต๊อก ความเคลื่อนไหว ความจุคลัง สินค้าใกล้หมด สินค้าหมดอายุ และรายงาน Lot +- รายงานการเงิน ได้แก่ งบทดลอง งบกำไรขาดทุน งบดุล ภาษีมูลค่าเพิ่ม สมุดรายวัน และความเคลื่อนไหวบัญชีแยกประเภท +- ทุกรายงานกรอง ดู พิมพ์ และส่งออกได้ ภายใต้ขอบเขตบริษัทและสิทธิ์ของผู้ใช้ + +## 10 การแจ้งเตือน (Notification) + +ระบบแจ้งเตือนผู้ใช้ที่เกี่ยวข้องแบบ Real-time เมื่อมีการเปลี่ยนสถานะเอกสารที่ต้องดำเนินการต่อ และแจ้งเตือนตามกำหนดเวลาสำหรับสินค้าใกล้หมดและใบแจ้งหนี้ค้างชำระ โดยแจ้งเฉพาะผู้ใช้ที่มีสิทธิ์ในบริบทของบริษัทนั้น + +## 11 การขอความช่วยเหลือ + +- ปัญหาการใช้งานทั่วไป ติดต่อผู้ดูแลระบบของบริษัท +- ปัญหาที่เกี่ยวกับการทำงานของระบบ ให้แจ้งผ่านช่องทางสนับสนุนที่ระบุในเอกสาร Maintenance Document +- ขั้นตอนการติดตั้ง ตั้งค่า และกู้คืนระบบ อยู่ในเอกสาร Product Operation Guide + +## ผู้จัดทำเอกสาร (Secretary) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณธนกร สถิตวิทยากุล | Developer | | | + +## ผู้ตรวจสอบเอกสาร (Reviewer) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเยาวลักษณ์ บางชมภู | Document Control | | | + +## ผู้อนุมัติ (Approval) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเสรี วิริยะสกุลธรณ์ | Project Sponsor | | | diff --git a/sdlc/2-SI Process (12 Work Product)/18.Software User Documentation/200-WMS-26-001-00 Software User Documentation 25690817 V1.0.md b/sdlc/2-SI Process (12 Work Product)/18.Software User Documentation/200-WMS-26-001-00 Software User Documentation 25690817 V1.0.md deleted file mode 100644 index 8500f69..0000000 --- a/sdlc/2-SI Process (12 Work Product)/18.Software User Documentation/200-WMS-26-001-00 Software User Documentation 25690817 V1.0.md +++ /dev/null @@ -1,118 +0,0 @@ -# Software User Documentation - -| Document field | Value | -|---|---| -| Document | Software User Documentation | -| Project | BRN WMS | -| Project code | 200-WMS-26-001-00 | -| Title | User Guide Document | -| Project period | 05/01/26–24/08/26 | -| Release | 17/08/26 V1.0 | -| Standard | ISO/IEC 29110 Basic Profile | -| Organizer | Apirach Supattaratpateep (Project Manager), Noppong Chareunsook (System Analyst), Thanakorn Sathitwitayakul (Developer) | -| Status | Final — reflects the implemented application at project baseline | - -## Objective - -Provide operational users a guide to accessing and using BRN WMS: onboarding, warehouse/inventory operations, sales, purchasing, finance/accounting, reporting, and notifications. - -## 1. Accessing the system - -- Users access BRN WMS through a current standards-based browser (Chrome, Edge, or Firefox) at the URL configured for the deployment. -- The interface is responsive and usable on desktop and warehouse-floor (tablet/mobile) devices. -- New company owners register and complete onboarding; users invited by an Owner/Admin complete invited-user onboarding to join the correct company. -- Forgot-password recovery is available from the login screen. - -## 2. Roles and access - -BRN WMS enforces four roles: **Owner**, **Admin**, **Staff**, and **Viewer**. Menu items and actions shown to a user reflect their role and any additional application-access restrictions set by an Admin/Owner. A Viewer can see authorized screens and reports but cannot create or edit transactions. - -## 3. Dashboard - -The dashboard (`app/dashboard/`) summarizes stock status, low-stock items, and recent operational activity. An accounting-focused dashboard (`app/ac_dashboard/`) summarizes financial position. Dashboard figures refresh from scheduled aggregate jobs, so very recent transactions may briefly lag behind live data. - -## 4. Master data setup - -Before recording transactions, an Owner/Admin sets up: - -- **Warehouses, storage areas, and bins** (`app/inventory/`) — either a simple single-level warehouse model or the full warehouse/storage/bin hierarchy. -- **Product categories and products** (`app/inventory/`). -- **Contacts and contact types** (`app/contact/`) — customers and suppliers. -- **Company settings, SMTP, and application access** (`app/setting/`). - -## 5. Inventory and warehouse operations - -Under the Inventory Control System area (`app/ics/`): - -- **Stock-in**: record a receipt against a product, quantity, warehouse location, and source document, including lot/serial/expiry where applicable. -- **Stock-out**: issue stock against an authorized document; the system validates available balance before allowing the issue. -- **Stock transfer**: move stock between authorized locations as one linked transaction. -- **Barcode labels**: generate SKU and location barcode labels and use a barcode scanner (or manual entry) on supported screens. -- **Stock reports**: stock overview, movement history, capacity/occupancy, low-stock, expired-stock, and product-lot views are available under Reports (`app/reports/`). - -## 6. Sales workflow - -Under Sales/Revenue (`app/order/`, `app/revenue/`): - -1. Create a **quotation** for a customer. -2. Convert an accepted quotation to a **sales order**. -3. Issue an **invoice** against the order. -4. Process a **return** or **credit note** where applicable. - -Each step follows the document's permitted status transitions; an invalid transition is rejected. - -## 7. Purchasing workflow - -Under Purchasing (`app/po/`): - -1. Raise a **purchase request**. -2. Convert an approved request to a **purchase order**. -3. Record the **purchase invoice** on receipt of supplier goods/services. -4. Process a **supplier return** where applicable. - -## 8. Finance and accounting - -Under Finance (`app/finance/`) and Accounting (`app/accounting/`, `app/journal/`): - -- **Receipt billing and receipts** record incoming customer payments against invoices. -- **Payment billing and payments** record outgoing supplier payments against purchase invoices. -- **Chart of accounts, departments, and account formulas** are maintained by an Owner/Admin. -- **Journals and general-ledger entries** are posted from source documents or manually where permitted; entries must balance. -- **Financial reports** — trial balance, profit-and-loss, balance sheet, VAT, journal, and GL-movement — are available under Reports. - -## 9. Document numbering and status - -Every controlled business document (order, invoice, receipt, payment, journal entry, etc.) receives a system-generated document number following the configured sequence, and moves through a defined lifecycle of statuses. Users cannot force an invalid status transition. - -## 10. Notifications - -Authorized users receive real-time notifications (via the Node.js notification service) for relevant status transitions — for example, a new order, an approval request, or a low-stock alert — scoped to their authorized company/role context. - -## 11. Reports - -The Reports area (`app/reports/`) provides authorized users filter, view, print, and export access to the operational and financial reports listed in Sections 5 and 8, subject to their company and role scope. - -## Approval - -### Prepared by - -Name: Thanakorn Sathitwitayakul -Role: Developer -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Reviewed by - -Name: Apirach Supattaratpateep -Role: Project Manager -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Reviewed and authorized by - -Name: Seri Viriyasakultorn -Project roles: Project Sponsor / Customer Representative / Authorized Approver -Position: Managing Director -Company: B.R.N. Enterprise Co., Ltd. -Signature: ______________________________________________ -Date: ___________________________________________________ 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 new file mode 100644 index 0000000..5dcc0cb --- /dev/null +++ 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 @@ -0,0 +1,105 @@ +# Product Operation Guide + + + +| Document No | Product Operation Guide | Release, Version, By: | 25690817 V1.0 ThS | +| Project Name | โครงการพัฒนาระบบบริหารจัดการคลังสินค้า (BRN WMS) บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด | +| Project Code | 200-WMS-26-001-00 | +| Title | เอกสารคู่มือปฏิบัติงานสำหรับผู้ดูแลระบบ | +| Project Period | 5 มกราคม 2569 – 24 สิงหาคม 2569 | +| Organizer | คุณอภิรัชช์ สุภัทรประทีป (Project Manager) | +| Recorder | คุณเยาวลักษณ์ บางชมภู (Document Control) | + +## วัตถุประสงค์ (Objective) + +คู่มือฉบับนี้จัดทำขึ้นเพื่อเป็นแนวทางสำหรับผู้ดูแลระบบ (System Administrator) ในการติดตั้ง ตั้งค่า เฝ้าระวัง สำรองข้อมูล และกู้คืนระบบบริหารจัดการคลังสินค้า เพื่อให้การปฏิบัติงานมีมาตรฐานและกู้คืนระบบได้อย่างรวดเร็ว + +## 1 ทางเลือกในการติดตั้ง + +| ลำดับ | วิธีการติดตั้ง | กลไก | ไฟล์อ้างอิง | +| :---: | --- | --- | --- | +| 1 | ติดตั้งแบบ Container (แนะนำ) | Docker Compose: php-apache, mariadb, node/pm2 | `docker-compose.yml`, `docker/` | +| 2 | ติดตั้งแบบ Manual | ติดตั้ง PHP, MariaDB และ Node.js แล้วสร้างฐานข้อมูลด้วยสคริปต์ | `setup.php` | + +## 2 ขั้นตอนการติดตั้งแบบ Container + +1. คัดลอก `.env.example` เป็น `.env` หรือรันสคริปต์ `docker/init-env.sh` ซึ่งจะสอบถามรหัสผ่านฐานข้อมูล ชื่อโฮสต์สาธารณะ ค่า `EMIT_SECRET` และข้อมูล SMTP โดยค่าที่เว้นว่างระบบจะสุ่มให้อัตโนมัติ +2. รันคำสั่ง `docker compose up -d --build` เพื่อสร้างและเริ่มบริการทั้งสามส่วน +3. ตรวจสอบว่า Container `php-apache` สร้างไฟล์ `app/config.php` จาก `.env` เรียบร้อยแล้ว โดยไฟล์นี้ไม่ถูกเก็บใน Repository และไม่ฝังอยู่ใน Image +4. ตรวจสอบว่าฐานข้อมูล `wms` และ `wms2` ถูกสร้างครบถ้วน และเข้าใช้งานระบบผ่านชื่อโฮสต์ที่กำหนดได้ + +## 3 ขั้นตอนการติดตั้งแบบ Manual + +1. เตรียมเครื่องแม่ข่าย Linux ที่ติดตั้ง PHP 8 ขึ้นไป, MariaDB และ Node.js +2. ตั้งค่าไฟล์ `app/config.php` ได้แก่ ข้อมูลเชื่อมต่อฐานข้อมูล `wms` และ `wms2`, `NODE_PUBLIC_URL`, `NODE_EMIT_URL`, `NODE_EMIT_SECRET` และข้อมูล SMTP +3. รัน `setup.php` หนึ่งครั้งเพื่อสร้างโครงสร้างฐานข้อมูลทั้งหมด +4. เริ่มบริการ Node.js (`nodejs/server.js` และ `nodejs/scheduler.js`) ด้วย pm2 ตามไฟล์ `nodejs/ecosystem.config.js` + +## 4 การตั้งค่าระบบ + +| รายการ | ที่ตั้ง | หมายเหตุ | +| --- | --- | --- | +| ค่าตั้งค่าแอปพลิเคชัน | `app/config.php` | สร้างขึ้นตอนติดตั้ง ไม่นำเข้า Repository | +| ค่าความลับของสภาพแวดล้อม | `.env` (Docker) หรือตัวแปรสภาพแวดล้อม (Manual) | ยกเว้นจาก Git ด้วย `.gitignore` | +| ค่าตั้งค่าระดับบริษัท | เมนูตั้งค่าในระบบ (`app/setting/`) | ข้อมูลบริษัท SMTP และการตั้งค่าการใช้งาน | +| เขตเวลา | `$time_zone` ใน `app/config.php` | กำหนดเป็น `Asia/Bangkok` | + +## 5 การเฝ้าระวังระบบ (Monitoring) + +| ลำดับ | รายการตรวจสอบ | วิธีการ | ความถี่ | +| :---: | --- | --- | --- | +| 1 | บริการเว็บแอปพลิเคชัน | ตรวจสอบว่าระบบตอบสนองและผู้ใช้เข้าสู่ระบบได้ | ทุก 5 นาที (อัตโนมัติ) | +| 2 | ฐานข้อมูล | ตรวจสอบว่าฐานข้อมูล `wms` และ `wms2` เชื่อมต่อได้ | ทุก 5 นาที (อัตโนมัติ) | +| 3 | บริการ Node.js | ตรวจสอบสถานะ `server.js` และ `scheduler.js` ภายใต้ pm2 และตรวจ Log ใน `nodejs/logs/` | ทุก 5 นาที (อัตโนมัติ) | +| 4 | งานตามกำหนดเวลา | ตรวจสอบว่างานสรุปยอดและงานแจ้งเตือนทำงานครบและไม่ซ้ำซ้อน | รายวัน | + +เมื่อการตรวจสอบล้มเหลวติดต่อกัน 2 ครั้ง ระบบจะส่งอีเมลแจ้งเตือนผู้ดูแลระบบ โดย pm2 จะพยายามเริ่มบริการใหม่เป็นลำดับแรก หากไม่สามารถกู้คืนบริการได้ภายใน 30 นาที ผู้ดูแลระบบต้องแจ้งผู้จัดการโครงการ และหากเหตุขัดข้องเกิน 2 ชั่วโมงหรือกระทบการดำเนินธุรกิจอย่างมีนัยสำคัญ ต้องแจ้ง Project Sponsor + +## 6 การสำรองข้อมูลและการกู้คืน + +| รายการ | กลไก | รอบการทำงาน | การเก็บรักษา | +| --- | --- | --- | --- | +| Source Code และค่าตั้งค่าแม่แบบ | Git 2 Remote (`origin`, `backup`) | ทุกครั้งที่ส่งมอบหรือปรับ Baseline | เก็บถาวรใน Repository | +| ฐานข้อมูล `wms` และ `wms2` | Export อัตโนมัติไปยังพื้นที่จัดเก็บบนคลาวด์ที่บริษัทควบคุม | ทุกวัน เวลา 02:00 น. | รายวันเก็บ 30 วัน สิ้นเดือนเก็บ 12 เดือน | +| เอกสารโครงการ | ชุด PDF ที่สร้างจากเอกสารต้นฉบับ | ทุกครั้งที่ปรับปรุงเอกสารส่งมอบ | เก็บถาวรใน Repository | + +### 6.1 ขั้นตอนการกู้คืนฐานข้อมูล + +1. ผู้ดูแลระบบเลือกชุดสำรองที่ต้องการจากพื้นที่จัดเก็บบนคลาวด์ และยืนยันวันที่พร้อมความสมบูรณ์ของไฟล์ +2. กู้คืนชุดสำรองเข้าสู่สภาพแวดล้อมที่ไม่ใช่ระบบใช้งานจริงก่อนเสมอ +3. ตรวจสอบการเชื่อมต่อฐานข้อมูล `wms` และ `wms2` พร้อมตรวจสอบข้อมูลหลักและรายการตัวอย่าง +4. กรณีกู้คืนระบบใช้งานจริง ให้บันทึกจุดกู้คืน หยุดบริการที่เกี่ยวข้อง กู้คืนชุดสำรองที่ตรวจสอบแล้ว เริ่มบริการแอปพลิเคชันและ Node.js ใหม่ แล้วตรวจสอบสถานะตามหัวข้อ 5 +5. กรณีการสำรองข้อมูลล้มเหลวหรือไม่ทำงานตามกำหนด ผู้ดูแลระบบต้องตรวจสอบสาเหตุและสั่งทำงานซ้ำ + +การทดสอบกู้คืนดำเนินการเมื่อ 23 สิงหาคม 2569 โดยกู้คืนชุดสำรองลงในสภาพแวดล้อมที่ไม่ใช่ระบบใช้งานจริงสำเร็จ ตรวจสอบการเข้าถึงฐานข้อมูลและข้อมูลตัวอย่างครบถ้วน และผู้จัดการโครงการได้ทบทวนผลการทดสอบในขั้นตอนปิดโครงการ + +## 7 การปิดรายการควบคุมด้านปฏิบัติการ + +| ลำดับ | รายการควบคุม | ผู้รับผิดชอบ | สถานะ | หลักฐานการปิดรายการ | +| :---: | --- | --- | --- | --- | +| OP-001 | การสำรองและกู้คืนฐานข้อมูล `wms` และ `wms2` แบบอัตโนมัติ | System Administrator | ปิดรายการ 23 สิงหาคม 2569 | หัวข้อ 6 ระบุรอบการสำรอง ที่จัดเก็บ การเก็บรักษา ขั้นตอนกู้คืน และผลการทดสอบกู้คืน | +| OP-002 | การเฝ้าระวังระบบและการแจ้งเตือนเมื่อเกิดเหตุขัดข้อง | System Administrator | ปิดรายการ 23 สิงหาคม 2569 | หัวข้อ 5 ระบุรอบการตรวจสอบ เงื่อนไขการแจ้งเตือน ผู้รับแจ้ง และขั้นตอนการยกระดับ | + +## 8 การจัดการผู้ใช้งานและสิทธิ์ + +- ผู้ใช้ระดับ Owner หรือ Admin จัดการผู้ใช้งาน บทบาท และสิทธิ์การเข้าถึงแอปพลิเคชันจากเมนูตั้งค่า +- การเปลี่ยนบทบาทมีผลกับการทำงานครั้งถัดไปของผู้ใช้รายนั้น +- ระบบอนุญาตให้ใช้งานได้ครั้งละหนึ่ง Session ต่อบัญชี เพื่อป้องกันการใช้บัญชีร่วมกัน + +## ผู้จัดทำเอกสาร (Secretary) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณธนกร สถิตวิทยากุล | Developer | | | + +## ผู้ตรวจสอบเอกสาร (Reviewer) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณนพพงษ์ เจริญสุข | System Analyst | | | + +## ผู้อนุมัติ (Approval) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเสรี วิริยะสกุลธรณ์ | Project Sponsor | | | 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.md b/sdlc/2-SI Process (12 Work Product)/19.Product Operation Guide/200-WMS-26-001-00 Product Operation Guide 25690817 V1.0.md deleted file mode 100644 index d085acf..0000000 --- a/sdlc/2-SI Process (12 Work Product)/19.Product Operation Guide/200-WMS-26-001-00 Product Operation Guide 25690817 V1.0.md +++ /dev/null @@ -1,115 +0,0 @@ -# Product Operation Guide - -| Document field | Value | -|---|---| -| Document | Product Operation Guide | -| Project | BRN WMS | -| Project code | 200-WMS-26-001-00 | -| Title | Operating Manual Document for System Administrators | -| Project period | 05/01/26–24/08/26 | -| Release | 17/08/26 V1.0 | -| Closure status date | 24/08/26 | -| Standard | ISO/IEC 29110 Basic Profile | -| Organizer | Apirach Supattaratpateep (Project Manager), Noppong Chareunsook (System Analyst), Thanakorn Sathitwitayakul (Developer) | -| Status | Final — reflects the implemented deployment mechanisms at project baseline | - -## Objective - -Guide a System Administrator through installing, configuring, operating, monitoring, backing up, and recovering BRN WMS, so operation is consistent, correct, and quickly recoverable. - -## 1. Deployment options - -BRN WMS supports two deployment paths, evidenced in the repository: - -| Path | Mechanism | Reference | -|---|---|---| -| Manual installation | One-shot database setup script | `setup.php` | -| Containerized deployment | Docker Compose stack: php-apache, mariadb, node/pm2 | `docker-compose.yml`, `docker/` | - -## 2. Containerized installation (recommended) - -1. Copy `.env.example` to `.env`, or run the interactive generator: `docker/init-env.sh` (prompts for DB password, public host, `EMIT_SECRET`, and SMTP credentials; auto-generates secrets left blank). -2. Run `docker compose up -d --build`. This brings up: - - `php-apache` — the PHP 8+ web application (`docker/php/`), with `app/config.php` generated from `.env` at container start by `docker/php/entrypoint.sh` — never baked into the image or committed. - - `mariadb` — the database service, initialized from `docker/mariadb/init-wms2.sql` and `setup.php`. - - `node` — the Node.js real-time/scheduler service (`docker/node/`), managed by pm2 (`nodejs/ecosystem.config.js`). -3. Confirm the application is reachable at the configured public host and that the Node.js service is running (Section 5). - -## 3. Manual installation - -1. Provision a PHP 8+ / MariaDB / Node.js environment. -2. Configure `app/config.php` (database credentials for the `wms` and `wms2` databases, `NODE_PUBLIC_URL`, `NODE_EMIT_URL`, `NODE_EMIT_SECRET`, SMTP). -3. Run `setup.php` once to create the database schema (see Software Requirements Specification, SR08, for the full table list). -4. Start the Node.js services (`nodejs/server.js`, `nodejs/scheduler.js`), for example under pm2 using `nodejs/ecosystem.config.js`. - -## 4. Configuration - -| Item | Location | Notes | -|---|---|---| -| Application configuration | `app/config.php` | Generated at deploy time; never committed | -| Environment secrets | `.env` (Docker) or shell/deployment environment (manual) | Excluded via `.gitignore` | -| Company-level settings | In-application (`app/setting/`) | Per-company profile, SMTP, system settings | -| Time zone | `$time_zone` in `app/config.php` | Fixed to `Asia/Bangkok` | - -## 5. Monitoring - -- **Web application**: confirm the PHP application responds and users can authenticate. -- **Database**: confirm both `wms` and `wms2` databases are reachable. -- **Node.js service**: confirm `server.js` (Socket.IO) and `scheduler.js` (scheduled jobs) are running under pm2; review `nodejs/logs/` (`socket.log`, `scheduler.log`, `scheduler-error.log`) for errors. -- **Scheduled jobs**: confirm stock/GL aggregate maintenance and low-stock/overdue-invoice alert jobs are completing on schedule without duplication. - -The production monitoring control performs an automated health check every five minutes. Two consecutive failures trigger an email to the System Administrator. pm2 automatic restart is the first recovery response. If service is not restored within 30 minutes, the System Administrator escalates to the Project Manager; the Project Sponsor is notified when an outage exceeds two hours or materially affects business operations. The System Administrator reviews the affected process state and logs, restores service, confirms application and scheduled-job health, and records the incident through the applicable operational support channel. - -## 6. Backup and recovery - -| Item | Mechanism | Status | -|---|---|---| -| Source code and configuration templates | Git, two remotes (`origin`, `backup`) | See Project Repository / Project Repository (Backup), work products 9–10 | -| Database (`wms`, `wms2`) | Automated database export at 02:00 ICT daily to company-controlled cloud storage | Daily backups retained 30 days; month-end backups retained 12 months; access restricted to the System Administrator and authorized management | -| SDLC documents | External PDF export package | See Project Repository (Backup), Section 3 | - -### 6.1 Database restoration procedure - -1. The System Administrator selects the required backup from company-controlled cloud storage and confirms its date and integrity. -2. The backup is restored into a non-production MariaDB environment before any production recovery is attempted. -3. Connectivity to `wms` and `wms2` and representative master-data and transaction records are verified. -4. For a production recovery, the System Administrator records the recovery point, pauses affected services, restores the verified backup, restarts the application and Node.js services, and performs the health checks in Section 5. -5. Failed or missing scheduled backups are investigated and rerun by the System Administrator. - -A sample backup dated 22/08/26 was restored successfully to a non-production environment on 23/08/26. Database accessibility and representative records were verified, and the Project Manager reviewed completion during closure. - -## 7. Operational-control closure - -| ID | Control | Owner | Status | Closure evidence | -|---|---|---|---|---| -| OP-001 | Automated database backup and restoration control for `wms` and `wms2`. | System Administrator | **Closed 23/08/26** | Section 6 records the 02:00 ICT schedule, controlled cloud destination, retention, operator, recovery steps, and successful non-production restoration test. | -| OP-002 | Monitoring and failure alerting beyond local log review. | System Administrator | **Closed 23/08/26** | Section 5 records the five-minute health check, two-failure email trigger, recipients, escalation time, and recovery response. | - -## 8. User and access management - -An Owner/Admin manages users, roles (Owner/Admin/Staff/Viewer), and application-access flags from Settings (`app/setting/`). Role changes take effect on the user's next authenticated action; concurrent-session policy blocks a second simultaneous login on the same account. - -## Approval - -### Prepared by - -Name: Thanakorn Sathitwitayakul -Role: Developer -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Reviewed by - -Name: Apirach Supattaratpateep -Role: Project Manager -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Reviewed and authorized by - -Name: Seri Viriyasakultorn -Project roles: Project Sponsor / Customer Representative / Authorized Approver -Position: Managing Director -Company: B.R.N. Enterprise Co., Ltd. -Signature: ______________________________________________ -Date: ___________________________________________________ diff --git a/sdlc/2-SI Process (12 Work Product)/20.Maintenance Documentation/200-WMS-26-001-00 Maintenance Document 25690817 V1.0 ThS.md b/sdlc/2-SI Process (12 Work Product)/20.Maintenance Documentation/200-WMS-26-001-00 Maintenance Document 25690817 V1.0 ThS.md new file mode 100644 index 0000000..29f0211 --- /dev/null +++ b/sdlc/2-SI Process (12 Work Product)/20.Maintenance Documentation/200-WMS-26-001-00 Maintenance Document 25690817 V1.0 ThS.md @@ -0,0 +1,85 @@ +# Maintenance Document + + + +| Document No | Maintenance Document | Release, Version, By: | 25690817 V1.0 ThS | +| Project Name | โครงการพัฒนาระบบบริหารจัดการคลังสินค้า (BRN WMS) บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด | +| Project Code | 200-WMS-26-001-00 | +| Title | เอกสารคู่มือการบำรุงรักษาระบบ | +| Project Period | 5 มกราคม 2569 – 24 สิงหาคม 2569 | +| Organizer | คุณอภิรัชช์ สุภัทรประทีป (Project Manager) , คุณนพพงษ์ เจริญสุข (System Analyst) | +| Recorder | คุณเยาวลักษณ์ บางชมภู (Document Control) | + +## วัตถุประสงค์ (Objective) + +เพื่อกำหนดแนวทางการบำรุงรักษาระบบหลังจากส่งมอบและเปิดใช้งานจริง ครอบคลุมการแก้ไขข้อผิดพลาด การปรับปรุง และการป้องกัน เพื่อให้ระบบมีความเสถียร ปลอดภัย ต่อเนื่อง และสอดคล้องกับความต้องการของผู้ใช้งาน + +## ขอบเขตการบำรุงรักษา (Maintenance Scope) + +| ID | Type | +| :---: | --- | +| MD-001 | Web Server (PHP 8, Apache, Linux Server) | +| MD-002 | Application Modules (11 ระบบงาน) | +| MD-003 | Database (MariaDB — ฐานข้อมูล `wms` และ `wms2`) | +| MD-004 | Security Layer (HTTPS/TLS, RBAC, bcrypt Password Hashing) | +| MD-005 | Real-time & Scheduler Services (Node.js, Socket.IO, pm2) | +| MD-006 | Software Components: Git Server (`git@188.166.228.62:nok/wms-app.git`) | +| MD-007 | Project Repository (Backup): Git Remote สำรอง (`git@github.com:thanakorninbox-dev/wms-app.git`) และชุดสำรองฐานข้อมูลบนคลาวด์ | + +## ประเภทการบำรุงรักษา + +| ลำดับ | ประเภทการบำรุงรักษา | รายละเอียด | +| :---: | --- | --- | +| 1 | Corrective Maintenance | แก้ไขข้อผิดพลาด (Bug Fix) และตรวจสอบ Error Log | +| 2 | Adaptive Maintenance | ปรับระบบให้รองรับ Browser หรือระบบปฏิบัติการรุ่นใหม่ | +| 3 | Perfective Maintenance | ปรับปรุงประสิทธิภาพและเพิ่มความสามารถตามที่ตกลง | +| 4 | Preventive Maintenance | ปรับปรุงความปลอดภัย (Patch Security) และทดสอบการสำรอง/กู้คืนข้อมูล | + +## กิจกรรมการบำรุงรักษา (Maintenance Activities) + +| ลำดับ | กิจกรรม | รายละเอียด | ความถี่ | ผู้รับผิดชอบ | +| :---: | --- | --- | --- | --- | +| 1 | ตรวจสอบ Error Log | วิเคราะห์ Log ของแอปพลิเคชันและบริการ Node.js แล้วแก้ไขข้อผิดพลาดที่พบ | รายสัปดาห์ | System Admin | +| 2 | Patch Security | ปรับปรุงแพตช์ความปลอดภัยของ PHP, MariaDB, Node.js และใบรับรอง TLS | รายเดือน หรือเมื่อมี Critical Patch | System Admin | +| 3 | Backup & Recovery Test | ตรวจสอบชุดสำรองรายวันและทดสอบกู้คืนสู่สภาพแวดล้อมทดสอบ | สำรองทุกวัน ทดสอบกู้คืนทุกไตรมาส | System Admin | +| 4 | Monitor Uptime | ตรวจสอบความพร้อมใช้งานของเว็บ ฐานข้อมูล และบริการ Node.js | ทุก 5 นาที (อัตโนมัติ) | System Admin | +| 5 | ตรวจสอบงานตามกำหนดเวลา | ตรวจสอบว่างานสรุปยอดสต๊อก/GL และงานแจ้งเตือนทำงานครบถ้วน | รายวัน | System Admin | +| 6 | Support & Training | สนับสนุนผู้ใช้งาน ปรับปรุงคู่มือ และอบรมเมื่อมีการปรับปรุงระบบ | ทุกครั้งที่มี Release ใหม่ | Project Team | + +## ข้อตกลงระดับการให้บริการ (Service Level Agreement) + +| ลำดับ | ระดับปัญหา | คำจำกัดความ | ระยะเวลาแก้ไข | +| :---: | --- | --- | --- | +| 1 | Incident Critical | ระบบไม่สามารถใช้งานได้ หรือกระทบความปลอดภัยและความถูกต้องของข้อมูล | แก้ไขภายใน 4 ชั่วโมง | +| 2 | Major Issue | ฟังก์ชันสำคัญใช้งานไม่ได้ แต่มีทางเลี่ยงชั่วคราว | แก้ไขภายใน 24 ชั่วโมง | +| 3 | Minor Issue | ปัญหาที่กระทบการใช้งานเล็กน้อย | แก้ไขภายใน 3 วันทำการ | +| 4 | Feature Request | ความต้องการเพิ่มเติมนอกขอบเขตเดิม | พิจารณาใน Release ถัดไปผ่าน Change Report | + +## แนวทางการแก้ไขและปรับปรุงระบบ + +| ลำดับ | ขั้นตอน | รายละเอียด | +| :---: | --- | --- | +| 1 | ระบุส่วนประกอบที่เกี่ยวข้อง | ค้นหา Manager Class ที่รับผิดชอบจากเอกสาร Software Components ก่อนแก้ไขหน้าจอโดยตรง | +| 2 | ตรวจสอบประวัติข้อบกพร่อง | ตรวจสอบ Correction Register (28 รายการ) เพื่อไม่ให้การแก้ไขย้อนกลับผลการแก้ไขเดิม | +| 3 | ควบคุมการเปลี่ยนแปลง | หากกระทบขอบเขตหรือ Baseline ที่ส่งมอบแล้ว ต้องจัดทำ Change Report ก่อนดำเนินการ | +| 4 | ปรับปรุงฐานข้อมูล | สะท้อนการเปลี่ยนแปลงโครงสร้างใน `setup.php` และตาราง `schema_migrations` เสมอ | +| 5 | ทดสอบและบันทึกผล | ทดสอบด้วย Test Case ที่เกี่ยวข้อง แล้วบันทึกผลใน Correction Register | +| 6 | ปรับปรุงชุดสำรอง | ซิงก์การเปลี่ยนแปลงไปยัง Remote สำรอง `git@github.com:thanakorninbox-dev/wms-app.git` | + +## ผู้จัดทำเอกสาร (Secretary) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณธนกร สถิตวิทยากุล | Developer | | | + +## ผู้ตรวจสอบเอกสาร (Reviewer) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณนพพงษ์ เจริญสุข | System Analyst | | | + +## ผู้อนุมัติ (Approval) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเสรี วิริยะสกุลธรณ์ | Project Sponsor | | | diff --git a/sdlc/2-SI Process (12 Work Product)/20.Maintenance Documentation/200-WMS-26-001-00 Maintenance Documentation 25690817 V1.0.md b/sdlc/2-SI Process (12 Work Product)/20.Maintenance Documentation/200-WMS-26-001-00 Maintenance Documentation 25690817 V1.0.md deleted file mode 100644 index 0c1b7cf..0000000 --- a/sdlc/2-SI Process (12 Work Product)/20.Maintenance Documentation/200-WMS-26-001-00 Maintenance Documentation 25690817 V1.0.md +++ /dev/null @@ -1,79 +0,0 @@ -# Maintenance Documentation - -| Document field | Value | -|---|---| -| Document | Maintenance Documentation | -| Project | BRN WMS | -| Project code | 200-WMS-26-001-00 | -| Title | System Maintenance Manual Document | -| Project period | 05/01/26–24/08/26 | -| Release | 17/08/26 V1.0 | -| Standard | ISO/IEC 29110 Basic Profile | -| Organizer | Apirach Supattaratpateep (Project Manager), Noppong Chareunsook (System Analyst), Thanakorn Sathitwitayakul (Developer) | -| Status | Final — reflects the implemented architecture at project baseline | - -Note: the example reference package filed the same content twice under Product Operation Guide and Maintenance Documentation. BRN WMS keeps them distinct — the Product Operation Guide (work product 19) is for day-to-day administration; this document is for developers maintaining and extending the codebase. - -## Objective - -Give a developer maintaining BRN WMS enough architectural context, component ownership, and known-issue awareness to make a safe, correctly-scoped change. - -## 1. Architecture summary - -See Software Design (work product 12) for the full component/deployment diagrams. In summary: PHP presentation + business-logic manager classes → two MariaDB databases (`wms` identity/company, `wms2` WMS/accounting), plus a Node.js real-time/scheduler tier reached only through a secret-protected internal endpoint. - -## 2. Component ownership - -See Software Components (work product 14) for the full inventory. When changing behavior, locate the owning manager class first (e.g., stock behavior → `StockManager`/`StockSourceManager`/`StockTablesTrait`; posting/GL behavior → `PostingManager`; document numbering → `DocumentNumberManager`) rather than editing page-level code directly, consistent with NFR-007 (maintainability). - -## 3. Database change procedure - -- The `schema_migrations` table exists in the WMS database, indicating an intended migration-tracking mechanism; confirm the current migration convention before hand-editing schema in a shared environment. -- `setup.php` is the authoritative one-shot schema definition for a fresh environment; any schema change should be reflected there so a new environment matches production. -- Prefer additive, backward-compatible schema changes; coordinate destructive schema changes through the Change Report. - -## 4. Configuration points - -| Area | File(s) | Notes | -|---|---|---| -| Database/app config | `app/config.php` (generated) | Never hand-edit the committed template with live secrets | -| Docker build | `docker/php/config.php.template`, `docker/php/entrypoint.sh` | Change here to affect all container deployments | -| Node.js services | `nodejs/server.js`, `nodejs/scheduler.js`, `nodejs/ecosystem.config.js` | Scheduled-job timing and notification wiring | -| CORS/notification security | `app/config.php` (`NODE_EMIT_SECRET`), Node.js CORS whitelist | See Correction Register entries on CORS/notify guarding | - -## 5. Known issues and defect history - -The Correction Register (work product 4) is the authoritative known-issue history: 28 recorded corrections, all verified against their linked test cases and formally closed through the Accepted decision. Before changing an area, check the Correction Register so a verified fix is not accidentally reverted. Areas with the most correction activity: authentication/session/login (CoR-005, CoR-009, CoR-016, CoR-017, CoR-026), onboarding (CoR-007, CoR-008, CoR-013, CoR-018), and master-data/document-lifecycle review (CoR-019, CoR-020). - -## 6. Release procedure - -1. Implement and locally verify the change. -2. If the change affects scope, schedule, or an already-delivered baseline item, raise a Change Report entry (work product 6). -3. If the change corrects a defect, add a Correction Register entry (work product 4). -4. Update the Software Components / Software Configuration record if a component's status or version changes. -5. Commit to the repository; the `backup` remote should be kept in sync per Project Repository (Backup), work product 10. - -## 7. Approval - -### Prepared by - -Name: Thanakorn Sathitwitayakul -Role: Developer -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Reviewed by - -Name: Apirach Supattaratpateep -Role: Project Manager -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Reviewed and authorized by - -Name: Seri Viriyasakultorn -Project roles: Project Sponsor / Customer Representative / Authorized Approver -Position: Managing Director -Company: B.R.N. Enterprise Co., Ltd. -Signature: ______________________________________________ -Date: ___________________________________________________ diff --git a/sdlc/2-SI Process (12 Work Product)/21.Verification Result/200-WMS-26-001-00 Verification Results 25690317 V0.1 PaNg.md b/sdlc/2-SI Process (12 Work Product)/21.Verification Result/200-WMS-26-001-00 Verification Results 25690317 V0.1 PaNg.md new file mode 100644 index 0000000..44390e3 --- /dev/null +++ b/sdlc/2-SI Process (12 Work Product)/21.Verification Result/200-WMS-26-001-00 Verification Results 25690317 V0.1 PaNg.md @@ -0,0 +1,80 @@ +# Verification Results + + + +| Document No | Verification Results | Release, Version, By: | 25690317 V0.1 PaNg | +| Project Name | โครงการพัฒนาระบบบริหารจัดการคลังสินค้า (BRN WMS) บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด | +| Project Code | 200-WMS-26-001-00 | +| Title | บันทึกการตรวจสอบตามข้อกำหนดของมาตรฐาน | +| รอบตรวจสอบ | รอบที่ 1 (17 มีนาคม 2569) | หัวข้อ | ตรวจสอบเอกสารวางแผนโครงการและความต้องการ | +| Organizer | คุณอภิรัชช์ สุภัทรประทีป (Project Manager) , คุณนพพงษ์ เจริญสุข (System Analyst) | +| Recorder | คุณเยาวลักษณ์ บางชมภู (Document Control) | + +## วัตถุประสงค์ (Objective) + +การตรวจสอบ (Verification) จัดทำขึ้นเพื่อยืนยันความถูกต้องและความครบถ้วนของสิ่งส่งมอบ (Work Products) ตามมาตรฐาน ISO/IEC 29110 โดยวางแผนตรวจสอบเป็นรอบระหว่างการดำเนินโครงการ และตรวจสอบรอบสุดท้ายก่อนส่งมอบระบบ เพื่อลดความเสี่ยงด้านคุณภาพ ความล่าช้า และค่าใช้จ่ายที่เกิดจากการแก้ไขย้อนหลัง + +## Deliverables under Review + +| รหัส | สิ่งส่งมอบที่ตรวจสอบในรอบนี้ | +| :---: | --- | +| WP 1.0 | Software Project Plan | +| WP 2.0 | Customer Requirements | + +## Risk & Constraints Note + +1. เจ้าหน้าที่ควบคุมเอกสารต้องตรวจสอบแต่ละรายการอย่างละเอียด และต้องมีหลักฐานเพียงพอที่จะสรุปผลว่าผ่าน +2. ผู้ปฏิบัติงานที่เกี่ยวข้องควรร่วมรับฟังผลการตรวจสอบ เพื่อให้แก้ไขได้ทันทีเมื่อพบประเด็น +3. การตรวจสอบแต่ละครั้งไม่ควรถูกขัดจังหวะ ซึ่งจะทำให้การตรวจสอบเลื่อนออกไป +4. ห้ามให้ผู้อื่นตรวจสอบแทนผู้ที่ได้รับมอบหมาย + +## ผลการตรวจสอบ + +| ID | Verification Item | Evidence | Result | Owner | Comment / Risk / Recommendation | +| --- | --- | --- | --- | --- | --- | +| WP 1.0 Software Project Plan | | | | | | +| VR01.010.001 | รายละเอียดและความถูกต้องของ Header ของเอกสาร | มีรายละเอียดใน Header ครบถ้วน | Passed | ApS | | +| VR01.010.002 | การ Run Version ของเอกสารที่ระบุใน Header ถูกต้องและสัมพันธ์กับชื่อไฟล์ | ระบุเวอร์ชันและวันที่ตรงกับชื่อไฟล์ | Passed | ApS | | +| VR01.010.003 | ระบุรายละเอียดหัวข้อ 1 Manufacture, 2 Overview, 3 Goals and Scope ครบถ้วน | มีข้อมูลครบถ้วนถูกต้อง | Passed | ApS | | +| VR01.010.004 | ใน 3.3 Work Products มีรายการสิ่งส่งมอบพร้อมรหัส เช่น WP 1.0 | มีรายการสิ่งส่งมอบและรหัสครบ 11 รายการ | Passed | ApS | | +| VR01.010.005 | ใน 5 Organization ระบุบทบาท ชื่อ-นามสกุล ตำแหน่ง และข้อมูลติดต่อครบถ้วน | มีข้อมูลผู้รับผิดชอบครบทั้ง 6 บทบาท | Passed | ApS | | +| VR01.010.006 | ใน 6 Project Estimate และ 7 Project Resources มีข้อมูลครบถ้วน | มีปริมาณงานและทรัพยากรครบถ้วน | Passed | ApS | | +| VR01.010.007 | ใน 8 Work Schedule ระบุงานพร้อมรหัส ผู้รับผิดชอบ วันกำหนดส่ง และสิ่งส่งมอบ | มีแผนงาน 27 กิจกรรมพร้อมรายละเอียดครบ | Passed | ApS | | +| VR01.010.008 | ใน 9 Risk Management Plan ระบุความเสี่ยงพร้อมรหัส ระดับผลกระทบ และผู้รับผิดชอบ | มีความเสี่ยง R1–R8 พร้อมแนวทางจัดการ | Passed | ApS | | +| VR01.010.009 | ใน 10 Contingency Actions ระบุแผนรองรับกรณีงานไม่แล้วเสร็จ | มีแผนรองรับ 5 สถานการณ์ | Passed | ApS | | +| VR01.010.010 | ลงชื่อผู้จัดทำ ผู้ตรวจสอบ และผู้อนุมัติครบถ้วน | มีตารางลงนามครบทั้ง 3 ส่วน | Passed | ApS | | +| WP 2.0 Customer Requirements | | | | | | +| VR01.020.001 | รายละเอียดและความถูกต้องของ Header ของเอกสาร | มีรายละเอียดใน Header ครบถ้วน | Passed | NoC | | +| VR01.020.002 | จัดความต้องการแต่ละรายการลงในหมวด CR01–CR14 อย่างถูกต้อง | จัดหมวดครบทั้ง 14 หมวด | Passed | NoC | | +| VR01.020.003 | รหัสประจำรายการ เช่น CR01:001 เขียนและเรียงลำดับถูกต้อง | รหัสเรียงลำดับถูกต้องทุกรายการ | Passed | NoC | | +| VR01.020.004 | ช่อง Result มีข้อสรุปครบทุกรายการ ไม่มีรายการที่ไม่มีข้อสรุป | มีผลสรุป A ครบทั้ง 80 รายการ | Passed | NoC | | +| VR01.020.005 | ลงชื่อผู้จัดทำและผู้อนุมัติซึ่งเป็นฝ่ายลูกค้าเรียบร้อย | มีตารางลงนามครบถ้วน | Passed | NoC | | + +## สรุปผลการตรวจสอบรอบนี้ + +| รายการ | จำนวน | +| --- | ---: | +| รายการตรวจสอบทั้งหมด | 15 | +| ผลผ่าน (Passed) | 15 | +| ผลไม่ผ่าน (Failed) | 0 | +| ประเด็นคงค้าง | 0 | + +ผลการตรวจสอบรอบนี้ผ่านทุกรายการ ประเด็นที่พบระหว่างการตรวจสอบได้รับการแก้ไขและบันทึกใน Correction Register แล้ว การตรวจสอบรอบถัดไปจะครอบคลุมสิ่งส่งมอบที่จัดทำเพิ่มเติมในช่วงถัดไป + +## ผู้จัดทำเอกสาร (Secretary) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณปริญ งามขำ | QA/Tester | | | + +## ผู้ตรวจสอบเอกสาร (Reviewer) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเยาวลักษณ์ บางชมภู | Document Control | | | + +## ผู้อนุมัติ (Approval) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเสรี วิริยะสกุลธรณ์ | Project Sponsor | | | diff --git a/sdlc/2-SI Process (12 Work Product)/21.Verification Result/200-WMS-26-001-00 Verification Results 25690529 V0.2 PaNg.md b/sdlc/2-SI Process (12 Work Product)/21.Verification Result/200-WMS-26-001-00 Verification Results 25690529 V0.2 PaNg.md new file mode 100644 index 0000000..5136934 --- /dev/null +++ b/sdlc/2-SI Process (12 Work Product)/21.Verification Result/200-WMS-26-001-00 Verification Results 25690529 V0.2 PaNg.md @@ -0,0 +1,85 @@ +# Verification Results + + + +| Document No | Verification Results | Release, Version, By: | 25690529 V0.2 PaNg | +| Project Name | โครงการพัฒนาระบบบริหารจัดการคลังสินค้า (BRN WMS) บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด | +| Project Code | 200-WMS-26-001-00 | +| Title | บันทึกการตรวจสอบตามข้อกำหนดของมาตรฐาน | +| รอบตรวจสอบ | รอบที่ 2 (29 พฤษภาคม 2569) | หัวข้อ | ตรวจสอบเอกสารความต้องการซอฟต์แวร์และการออกแบบ | +| Organizer | คุณอภิรัชช์ สุภัทรประทีป (Project Manager) , คุณนพพงษ์ เจริญสุข (System Analyst) | +| Recorder | คุณเยาวลักษณ์ บางชมภู (Document Control) | + +## วัตถุประสงค์ (Objective) + +การตรวจสอบ (Verification) จัดทำขึ้นเพื่อยืนยันความถูกต้องและความครบถ้วนของสิ่งส่งมอบ (Work Products) ตามมาตรฐาน ISO/IEC 29110 โดยวางแผนตรวจสอบเป็นรอบระหว่างการดำเนินโครงการ และตรวจสอบรอบสุดท้ายก่อนส่งมอบระบบ เพื่อลดความเสี่ยงด้านคุณภาพ ความล่าช้า และค่าใช้จ่ายที่เกิดจากการแก้ไขย้อนหลัง + +## Deliverables under Review + +| รหัส | สิ่งส่งมอบที่ตรวจสอบในรอบนี้ | +| :---: | --- | +| WP 3.0 | Software Requirements | +| WP 4.0 | Software Design | +| WP 5.0 | Change Report | + +## Risk & Constraints Note + +1. เจ้าหน้าที่ควบคุมเอกสารต้องตรวจสอบแต่ละรายการอย่างละเอียด และต้องมีหลักฐานเพียงพอที่จะสรุปผลว่าผ่าน +2. ผู้ปฏิบัติงานที่เกี่ยวข้องควรร่วมรับฟังผลการตรวจสอบ เพื่อให้แก้ไขได้ทันทีเมื่อพบประเด็น +3. การตรวจสอบแต่ละครั้งไม่ควรถูกขัดจังหวะ ซึ่งจะทำให้การตรวจสอบเลื่อนออกไป +4. ห้ามให้ผู้อื่นตรวจสอบแทนผู้ที่ได้รับมอบหมาย + +## ผลการตรวจสอบ + +| ID | Verification Item | Evidence | Result | Owner | Comment / Risk / Recommendation | +| --- | --- | --- | --- | --- | --- | +| WP 3.0 Software Requirements | | | | | | +| VR02.030.001 | รายละเอียดและความถูกต้องของ Header ของเอกสาร | มีรายละเอียดครบถ้วนถูกต้อง | Passed | NoC | | +| VR02.030.002 | จัดความต้องการซอฟต์แวร์ลงในหมวด SR01–SR09 อย่างถูกต้อง | จัดหมวดครบทั้ง 9 หมวด | Passed | NoC | | +| VR02.030.003 | แต่ละหมวด SR01–SR09 มีรายการตามความจำเป็นครบถ้วน | มีรายการครบ 49 รายการ | Passed | NoC | | +| VR02.030.004 | รหัสประจำรายการ เช่น SR01:001 เขียนและเรียงลำดับถูกต้อง | รหัสเรียงลำดับถูกต้องทุกรายการ | Passed | NoC | | +| VR02.030.005 | ช่อง Remark ระบุความสัมพันธ์กับ CR ครบถ้วน | ทุกรายการอ้างอิงกลับไปยัง CR ที่เกี่ยวข้อง | Passed | NoC | | +| VR02.030.006 | ลงชื่อผู้จัดทำและผู้อนุมัติเรียบร้อย | มีตารางลงนามครบถ้วน | Passed | NoC | | +| WP 4.0 Software Design | | | | | | +| VR02.040.001 | รายละเอียดและความถูกต้องของ Header ของเอกสาร | มีรายละเอียดครบถ้วนถูกต้อง | Passed | NoC | | +| VR02.040.002 | ใน High Level Design มี Use Case, Component และ Deployment Diagram | มีครบทั้ง 3 ส่วน | Passed | NoC | | +| VR02.040.003 | ใน User Interface Design มีผังหน้าจอที่จะใช้ในระบบ | มีผังหน้าจอครบทุกกลุ่มโมดูล | Passed | NoC | | +| VR02.040.004 | มีหัวข้อ Software Baseline ระบุสิ่งที่ถูกกำหนดเป็น Baseline วันที่ และผู้อนุมัติ | มีหัวข้อ Software Baseline ครบถ้วน พร้อมอ้างอิง Software Configuration และ Traceability Record | Passed | NoC | | +| VR02.040.005 | ใน Software Unit มีรหัสกำกับแต่ละหน่วย เช่น UN01.001 อย่างเป็นระเบียบ | มีรหัสครบ 45 หน่วย | Passed | NoC | | +| VR02.040.006 | ใน Software Unit มี Description และ Functional Interfaces Detail ครบทุกรายการ | มีรายละเอียดครบทุกหน่วย | Passed | NoC | | +| VR02.040.007 | ใน Software Unit ระบุ References ที่สัมพันธ์กับ SR ครบถ้วน | อ้างอิง SR ถูกต้องครบทุกหน่วย | Passed | NoC | | +| VR02.040.008 | ลงชื่อผู้จัดทำและผู้อนุมัติเรียบร้อย | มีตารางลงนามครบถ้วน | Passed | NoC | | +| WP 5.0 Change Report | | | | | | +| VR02.050.001 | รายละเอียดและความถูกต้องของ Header ของเอกสาร | มีรายละเอียดครบทั้ง 3 ฉบับ | Passed | ApS | | +| VR02.050.002 | ส่วน Requesting เขียนรายละเอียดถูกต้องครบถ้วนทุกฉบับ | มีรายละเอียดครบทุกฉบับ | Passed | ApS | | +| VR02.050.003 | ส่วน Impact Analysis ได้รับการประเมินผลกระทบครบทุกฉบับ | มีการประเมินผลกระทบ 5 ด้านครบทุกฉบับ | Passed | ApS | | +| VR02.050.004 | มีการลงนามอนุมัติโดยคณะพิจารณา (CAB) ครบทุกฉบับ | มีตารางพิจารณาและลงนามครบถ้วน | Passed | ApS | | + +## สรุปผลการตรวจสอบรอบนี้ + +| รายการ | จำนวน | +| --- | ---: | +| รายการตรวจสอบทั้งหมด | 18 | +| ผลผ่าน (Passed) | 18 | +| ผลไม่ผ่าน (Failed) | 0 | +| ประเด็นคงค้าง | 0 | + +ผลการตรวจสอบรอบนี้ผ่านทุกรายการ ประเด็นที่พบระหว่างการตรวจสอบได้รับการแก้ไขและบันทึกใน Correction Register แล้ว การตรวจสอบรอบถัดไปจะครอบคลุมสิ่งส่งมอบที่จัดทำเพิ่มเติมในช่วงถัดไป + +## ผู้จัดทำเอกสาร (Secretary) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณปริญ งามขำ | QA/Tester | | | + +## ผู้ตรวจสอบเอกสาร (Reviewer) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเยาวลักษณ์ บางชมภู | Document Control | | | + +## ผู้อนุมัติ (Approval) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเสรี วิริยะสกุลธรณ์ | Project Sponsor | | | diff --git a/sdlc/2-SI Process (12 Work Product)/21.Verification Result/200-WMS-26-001-00 Verification Results 25690731 V0.3 PaNg.md b/sdlc/2-SI Process (12 Work Product)/21.Verification Result/200-WMS-26-001-00 Verification Results 25690731 V0.3 PaNg.md new file mode 100644 index 0000000..a711026 --- /dev/null +++ b/sdlc/2-SI Process (12 Work Product)/21.Verification Result/200-WMS-26-001-00 Verification Results 25690731 V0.3 PaNg.md @@ -0,0 +1,71 @@ +# Verification Results + + + +| Document No | Verification Results | Release, Version, By: | 25690731 V0.3 PaNg | +| Project Name | โครงการพัฒนาระบบบริหารจัดการคลังสินค้า (BRN WMS) บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด | +| Project Code | 200-WMS-26-001-00 | +| Title | บันทึกการตรวจสอบตามข้อกำหนดของมาตรฐาน | +| รอบตรวจสอบ | รอบที่ 3 (31 กรกฎาคม 2569) | หัวข้อ | ตรวจสอบชุดทดสอบและการสอบกลับ | +| Organizer | คุณอภิรัชช์ สุภัทรประทีป (Project Manager) , คุณนพพงษ์ เจริญสุข (System Analyst) | +| Recorder | คุณเยาวลักษณ์ บางชมภู (Document Control) | + +## วัตถุประสงค์ (Objective) + +การตรวจสอบ (Verification) จัดทำขึ้นเพื่อยืนยันความถูกต้องและความครบถ้วนของสิ่งส่งมอบ (Work Products) ตามมาตรฐาน ISO/IEC 29110 โดยวางแผนตรวจสอบเป็นรอบระหว่างการดำเนินโครงการ และตรวจสอบรอบสุดท้ายก่อนส่งมอบระบบ เพื่อลดความเสี่ยงด้านคุณภาพ ความล่าช้า และค่าใช้จ่ายที่เกิดจากการแก้ไขย้อนหลัง + +## Deliverables under Review + +| รหัส | สิ่งส่งมอบที่ตรวจสอบในรอบนี้ | +| :---: | --- | +| WP 6.0 | Test Case and Test Procedures | + +## Risk & Constraints Note + +1. เจ้าหน้าที่ควบคุมเอกสารต้องตรวจสอบแต่ละรายการอย่างละเอียด และต้องมีหลักฐานเพียงพอที่จะสรุปผลว่าผ่าน +2. ผู้ปฏิบัติงานที่เกี่ยวข้องควรร่วมรับฟังผลการตรวจสอบ เพื่อให้แก้ไขได้ทันทีเมื่อพบประเด็น +3. การตรวจสอบแต่ละครั้งไม่ควรถูกขัดจังหวะ ซึ่งจะทำให้การตรวจสอบเลื่อนออกไป +4. ห้ามให้ผู้อื่นตรวจสอบแทนผู้ที่ได้รับมอบหมาย + +## ผลการตรวจสอบ + +| ID | Verification Item | Evidence | Result | Owner | Comment / Risk / Recommendation | +| --- | --- | --- | --- | --- | --- | +| WP 6.0 Test Case and Test Procedures | | | | | | +| VR03.060.001 | รายละเอียดและความถูกต้องของ Header ของเอกสาร | มีรายละเอียดครบถ้วนถูกต้อง | Passed | PaNg | | +| VR03.060.002 | ใน Test Case Specification มีรายการทดสอบพร้อมรหัสเรียงลำดับ | มีรายการครบ 45 Test Case | Passed | PaNg | | +| VR03.060.003 | Test Item ระบุ Software Unit ที่ทดสอบโดยอ้างรหัส เช่น UN01.001 | อ้างอิง Software Unit ครบทุกรายการ | Passed | PaNg | | +| VR03.060.004 | Input Specification ระบุขั้นตอนและข้อมูลนำเข้าอย่างชัดเจน | มีรายละเอียดครบทุกรายการ | Passed | PaNg | | +| VR03.060.005 | Output Specification ระบุผลลัพธ์ที่คาดหวังอย่างชัดเจน | มีรายละเอียดครบทุกรายการ | Passed | PaNg | | +| VR03.060.006 | Environment Needs, Special Procedural Required และ Intercase Dependency ระบุตามความจำเป็น | มีรายละเอียดครบถ้วน | Passed | PaNg | | +| VR03.060.007 | ส่วนผลการทดสอบระบุ Test Date และ Status ครบถ้วนไม่มีช่องว่าง | มีผลการทดสอบครบทุกรายการ | Passed | PaNg | | +| VR03.060.008 | ลงชื่อผู้จัดทำและผู้อนุมัติเรียบร้อย | มีตารางลงนามครบถ้วน | Passed | PaNg | | + +## สรุปผลการตรวจสอบรอบนี้ + +| รายการ | จำนวน | +| --- | ---: | +| รายการตรวจสอบทั้งหมด | 8 | +| ผลผ่าน (Passed) | 8 | +| ผลไม่ผ่าน (Failed) | 0 | +| ประเด็นคงค้าง | 0 | + +ผลการตรวจสอบรอบนี้ผ่านทุกรายการ ประเด็นที่พบระหว่างการตรวจสอบได้รับการแก้ไขและบันทึกใน Correction Register แล้ว การตรวจสอบรอบถัดไปจะครอบคลุมสิ่งส่งมอบที่จัดทำเพิ่มเติมในช่วงถัดไป + +## ผู้จัดทำเอกสาร (Secretary) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณปริญ งามขำ | QA/Tester | | | + +## ผู้ตรวจสอบเอกสาร (Reviewer) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเยาวลักษณ์ บางชมภู | Document Control | | | + +## ผู้อนุมัติ (Approval) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเสรี วิริยะสกุลธรณ์ | Project Sponsor | | | diff --git a/sdlc/2-SI Process (12 Work Product)/21.Verification Result/200-WMS-26-001-00 Verification Results 25690817 V1.0 PaNg.md b/sdlc/2-SI Process (12 Work Product)/21.Verification Result/200-WMS-26-001-00 Verification Results 25690817 V1.0 PaNg.md new file mode 100644 index 0000000..288e58d --- /dev/null +++ b/sdlc/2-SI Process (12 Work Product)/21.Verification Result/200-WMS-26-001-00 Verification Results 25690817 V1.0 PaNg.md @@ -0,0 +1,143 @@ +# Verification Results + + + +| Document No | Verification Results | Release, Version, By: | 25690817 V1.0 PaNg | +| Project Name | โครงการพัฒนาระบบบริหารจัดการคลังสินค้า (BRN WMS) บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด | +| Project Code | 200-WMS-26-001-00 | +| Title | บันทึกการตรวจสอบตามข้อกำหนดของมาตรฐาน | +| รอบตรวจสอบ | รอบที่ 4 (17 สิงหาคม 2569) | หัวข้อ | User Acceptance Test (UAT) และตรวจสอบเอกสารส่งมอบทั้งหมด | +| Organizer | คุณอภิรัชช์ สุภัทรประทีป (Project Manager) , คุณนพพงษ์ เจริญสุข (System Analyst) | +| Recorder | คุณเยาวลักษณ์ บางชมภู (Document Control) | + +## วัตถุประสงค์ (Objective) + +การตรวจสอบ (Verification) จัดทำขึ้นเพื่อยืนยันความถูกต้องและความครบถ้วนของสิ่งส่งมอบ (Work Products) ตามมาตรฐาน ISO/IEC 29110 โดยวางแผนตรวจสอบเป็นรอบระหว่างการดำเนินโครงการ และตรวจสอบรอบสุดท้ายก่อนส่งมอบระบบ เพื่อลดความเสี่ยงด้านคุณภาพ ความล่าช้า และค่าใช้จ่ายที่เกิดจากการแก้ไขย้อนหลัง + +## Deliverables under Review + +| รหัส | สิ่งส่งมอบที่ตรวจสอบในรอบนี้ | +| :---: | --- | +| WP 1.0 | Software Project Plan | +| WP 2.0 | Customer Requirements | +| WP 3.0 | Software Requirements | +| WP 4.0 | Software Design | +| WP 5.0 | Change Report | +| WP 6.0 | Test Case and Test Procedures | +| WP 7.0 | Validation Results | +| WP 8.0 | Software User Document | +| WP 9.0 | ระบบที่ผ่านการทดสอบพร้อมใช้งานจริง | +| WP 10.0 | Product Operation Guide | +| WP 11.0 | Maintenance Document | + +## Risk & Constraints Note + +1. เจ้าหน้าที่ควบคุมเอกสารต้องตรวจสอบแต่ละรายการอย่างละเอียด และต้องมีหลักฐานเพียงพอที่จะสรุปผลว่าผ่าน +2. ผู้ปฏิบัติงานที่เกี่ยวข้องควรร่วมรับฟังผลการตรวจสอบ เพื่อให้แก้ไขได้ทันทีเมื่อพบประเด็น +3. การตรวจสอบแต่ละครั้งไม่ควรถูกขัดจังหวะ ซึ่งจะทำให้การตรวจสอบเลื่อนออกไป +4. ห้ามให้ผู้อื่นตรวจสอบแทนผู้ที่ได้รับมอบหมาย + +## ผลการตรวจสอบ + +| ID | Verification Item | Evidence | Result | Owner | Comment / Risk / Recommendation | +| --- | --- | --- | --- | --- | --- | +| WP 1.0 Software Project Plan | | | | | | +| VR04.010.001 | รายละเอียดและความถูกต้องของ Header ของเอกสาร | มีรายละเอียดใน Header ครบถ้วน | Passed | ApS | | +| VR04.010.002 | การ Run Version ของเอกสารที่ระบุใน Header ถูกต้องและสัมพันธ์กับชื่อไฟล์ | ระบุเวอร์ชันและวันที่ตรงกับชื่อไฟล์ | Passed | ApS | | +| VR04.010.003 | ระบุรายละเอียดหัวข้อ 1 Manufacture, 2 Overview, 3 Goals and Scope ครบถ้วน | มีข้อมูลครบถ้วนถูกต้อง | Passed | ApS | | +| VR04.010.004 | ใน 3.3 Work Products มีรายการสิ่งส่งมอบพร้อมรหัส เช่น WP 1.0 | มีรายการสิ่งส่งมอบและรหัสครบ 11 รายการ | Passed | ApS | | +| VR04.010.005 | ใน 5 Organization ระบุบทบาท ชื่อ-นามสกุล ตำแหน่ง และข้อมูลติดต่อครบถ้วน | มีข้อมูลผู้รับผิดชอบครบทั้ง 6 บทบาท | Passed | ApS | | +| VR04.010.006 | ใน 6 Project Estimate และ 7 Project Resources มีข้อมูลครบถ้วน | มีปริมาณงานและทรัพยากรครบถ้วน | Passed | ApS | | +| VR04.010.007 | ใน 8 Work Schedule ระบุงานพร้อมรหัส ผู้รับผิดชอบ วันกำหนดส่ง และสิ่งส่งมอบ | มีแผนงาน 27 กิจกรรมพร้อมรายละเอียดครบ | Passed | ApS | | +| VR04.010.008 | ใน 9 Risk Management Plan ระบุความเสี่ยงพร้อมรหัส ระดับผลกระทบ และผู้รับผิดชอบ | มีความเสี่ยง R1–R8 พร้อมแนวทางจัดการ | Passed | ApS | | +| VR04.010.009 | ใน 10 Contingency Actions ระบุแผนรองรับกรณีงานไม่แล้วเสร็จ | มีแผนรองรับ 5 สถานการณ์ | Passed | ApS | | +| VR04.010.010 | ลงชื่อผู้จัดทำ ผู้ตรวจสอบ และผู้อนุมัติครบถ้วน | มีตารางลงนามครบทั้ง 3 ส่วน | Passed | ApS | | +| WP 2.0 Customer Requirements | | | | | | +| VR04.020.001 | รายละเอียดและความถูกต้องของ Header ของเอกสาร | มีรายละเอียดใน Header ครบถ้วน | Passed | NoC | | +| VR04.020.002 | จัดความต้องการแต่ละรายการลงในหมวด CR01–CR14 อย่างถูกต้อง | จัดหมวดครบทั้ง 14 หมวด | Passed | NoC | | +| VR04.020.003 | รหัสประจำรายการ เช่น CR01:001 เขียนและเรียงลำดับถูกต้อง | รหัสเรียงลำดับถูกต้องทุกรายการ | Passed | NoC | | +| VR04.020.004 | ช่อง Result มีข้อสรุปครบทุกรายการ ไม่มีรายการที่ไม่มีข้อสรุป | มีผลสรุป A ครบทั้ง 80 รายการ | Passed | NoC | | +| VR04.020.005 | ลงชื่อผู้จัดทำและผู้อนุมัติซึ่งเป็นฝ่ายลูกค้าเรียบร้อย | มีตารางลงนามครบถ้วน | Passed | NoC | | +| WP 3.0 Software Requirements | | | | | | +| VR04.030.001 | รายละเอียดและความถูกต้องของ Header ของเอกสาร | มีรายละเอียดครบถ้วนถูกต้อง | Passed | NoC | | +| VR04.030.002 | จัดความต้องการซอฟต์แวร์ลงในหมวด SR01–SR09 อย่างถูกต้อง | จัดหมวดครบทั้ง 9 หมวด | Passed | NoC | | +| VR04.030.003 | แต่ละหมวด SR01–SR09 มีรายการตามความจำเป็นครบถ้วน | มีรายการครบ 49 รายการ | Passed | NoC | | +| VR04.030.004 | รหัสประจำรายการ เช่น SR01:001 เขียนและเรียงลำดับถูกต้อง | รหัสเรียงลำดับถูกต้องทุกรายการ | Passed | NoC | | +| VR04.030.005 | ช่อง Remark ระบุความสัมพันธ์กับ CR ครบถ้วน | ทุกรายการอ้างอิงกลับไปยัง CR ที่เกี่ยวข้อง | Passed | NoC | | +| VR04.030.006 | ลงชื่อผู้จัดทำและผู้อนุมัติเรียบร้อย | มีตารางลงนามครบถ้วน | Passed | NoC | | +| WP 4.0 Software Design | | | | | | +| VR04.040.001 | รายละเอียดและความถูกต้องของ Header ของเอกสาร | มีรายละเอียดครบถ้วนถูกต้อง | Passed | NoC | | +| VR04.040.002 | ใน High Level Design มี Use Case, Component และ Deployment Diagram | มีครบทั้ง 3 ส่วน | Passed | NoC | | +| VR04.040.003 | ใน User Interface Design มีผังหน้าจอที่จะใช้ในระบบ | มีผังหน้าจอครบทุกกลุ่มโมดูล | Passed | NoC | | +| VR04.040.004 | มีหัวข้อ Software Baseline ระบุสิ่งที่ถูกกำหนดเป็น Baseline วันที่ และผู้อนุมัติ | มีหัวข้อ Software Baseline ครบถ้วน พร้อมอ้างอิง Software Configuration และ Traceability Record | Passed | NoC | | +| VR04.040.005 | ใน Software Unit มีรหัสกำกับแต่ละหน่วย เช่น UN01.001 อย่างเป็นระเบียบ | มีรหัสครบ 45 หน่วย | Passed | NoC | | +| VR04.040.006 | ใน Software Unit มี Description และ Functional Interfaces Detail ครบทุกรายการ | มีรายละเอียดครบทุกหน่วย | Passed | NoC | | +| VR04.040.007 | ใน Software Unit ระบุ References ที่สัมพันธ์กับ SR ครบถ้วน | อ้างอิง SR ถูกต้องครบทุกหน่วย | Passed | NoC | | +| VR04.040.008 | ลงชื่อผู้จัดทำและผู้อนุมัติเรียบร้อย | มีตารางลงนามครบถ้วน | Passed | NoC | | +| WP 5.0 Change Report | | | | | | +| VR04.050.001 | รายละเอียดและความถูกต้องของ Header ของเอกสาร | มีรายละเอียดครบทั้ง 3 ฉบับ | Passed | ApS | | +| VR04.050.002 | ส่วน Requesting เขียนรายละเอียดถูกต้องครบถ้วนทุกฉบับ | มีรายละเอียดครบทุกฉบับ | Passed | ApS | | +| VR04.050.003 | ส่วน Impact Analysis ได้รับการประเมินผลกระทบครบทุกฉบับ | มีการประเมินผลกระทบ 5 ด้านครบทุกฉบับ | Passed | ApS | | +| VR04.050.004 | มีการลงนามอนุมัติโดยคณะพิจารณา (CAB) ครบทุกฉบับ | มีตารางพิจารณาและลงนามครบถ้วน | Passed | ApS | | +| WP 6.0 Test Case and Test Procedures | | | | | | +| VR04.060.001 | รายละเอียดและความถูกต้องของ Header ของเอกสาร | มีรายละเอียดครบถ้วนถูกต้อง | Passed | PaNg | | +| VR04.060.002 | ใน Test Case Specification มีรายการทดสอบพร้อมรหัสเรียงลำดับ | มีรายการครบ 45 Test Case | Passed | PaNg | | +| VR04.060.003 | Test Item ระบุ Software Unit ที่ทดสอบโดยอ้างรหัส เช่น UN01.001 | อ้างอิง Software Unit ครบทุกรายการ | Passed | PaNg | | +| VR04.060.004 | Input Specification ระบุขั้นตอนและข้อมูลนำเข้าอย่างชัดเจน | มีรายละเอียดครบทุกรายการ | Passed | PaNg | | +| VR04.060.005 | Output Specification ระบุผลลัพธ์ที่คาดหวังอย่างชัดเจน | มีรายละเอียดครบทุกรายการ | Passed | PaNg | | +| VR04.060.006 | Environment Needs, Special Procedural Required และ Intercase Dependency ระบุตามความจำเป็น | มีรายละเอียดครบถ้วน | Passed | PaNg | | +| VR04.060.007 | ส่วนผลการทดสอบระบุ Test Date และ Status ครบถ้วนไม่มีช่องว่าง | มีผลการทดสอบครบทุกรายการ | Passed | PaNg | | +| VR04.060.008 | ลงชื่อผู้จัดทำและผู้อนุมัติเรียบร้อย | มีตารางลงนามครบถ้วน | Passed | PaNg | | +| WP 7.0 Validation Results | | | | | | +| VR04.070.001 | รายละเอียดและความถูกต้องของ Header ของเอกสาร | มีรายละเอียดครบถ้วนถูกต้อง | Passed | PaNg | | +| VR04.070.002 | ระบุสถานการณ์ทดสอบการยอมรับครบตามความต้องการของลูกค้า | มี 12 สถานการณ์ครอบคลุมทุกระบบงาน | Passed | PaNg | | +| VR04.070.003 | ระบุผลการทดสอบและผู้ทดสอบครบทุกรายการ | มีผลและผู้ทดสอบครบทุกสถานการณ์ | Passed | PaNg | | +| VR04.070.004 | ลงชื่อผู้ทดสอบฝ่ายลูกค้าเรียบร้อย | มีตารางลงนามครบถ้วน | Passed | PaNg | | +| WP 8.0 Software User Document | | | | | | +| VR04.080.001 | รายละเอียดและความถูกต้องของ Header ของเอกสาร | มีรายละเอียดครบถ้วนถูกต้อง | Passed | YaB | | +| VR04.080.002 | เนื้อหาครอบคลุมการใช้งานทุกระบบงานที่ส่งมอบ | ครอบคลุมครบทุกระบบงาน | Passed | YaB | | +| VR04.080.003 | ใช้ถ้อยคำถูกต้องและสอดคล้องกับหน้าจอจริง | ตรวจสอบแล้วสอดคล้อง | Passed | YaB | | +| VR04.080.004 | ลงชื่อผู้จัดทำและผู้อนุมัติเรียบร้อย | มีตารางลงนามครบถ้วน | Passed | YaB | | +| WP 9.0 ระบบที่ผ่านการทดสอบพร้อมใช้งานจริง | | | | | | +| VR04.090.001 | ระบบติดตั้งและใช้งานได้บนสภาพแวดล้อมที่กำหนด | ติดตั้งสำเร็จและใช้งานได้ Baseline `6c39700` | Passed | ThS | | +| VR04.090.002 | Source Code จัดเก็บใน Repository พร้อมชุดสำรอง | จัดเก็บครบทั้ง Repository หลักและสำรอง | Passed | ThS | | +| VR04.090.003 | ผลการทดสอบระบบผ่านครบทุก Test Case | ผ่านครบ 45 Test Case | Passed | ThS | | +| WP 10.0 Product Operation Guide | | | | | | +| VR04.100.001 | รายละเอียดและความถูกต้องของ Header ของเอกสาร | มีรายละเอียดครบถ้วนถูกต้อง | Passed | ThS | | +| VR04.100.002 | ระบุขั้นตอนการติดตั้งและตั้งค่าครบถ้วน | มีทั้งแบบ Container และแบบ Manual | Passed | ThS | | +| VR04.100.003 | ระบุการเฝ้าระวัง การสำรอง และการกู้คืนข้อมูล | มีครบถ้วนพร้อมผลการทดสอบกู้คืน | Passed | ThS | | +| VR04.100.004 | ลงชื่อผู้จัดทำและผู้อนุมัติเรียบร้อย | มีตารางลงนามครบถ้วน | Passed | ThS | | +| WP 11.0 Maintenance Document | | | | | | +| VR04.110.001 | รายละเอียดและความถูกต้องของ Header ของเอกสาร | มีรายละเอียดครบถ้วนถูกต้อง | Passed | ThS | | +| VR04.110.002 | ระบุขอบเขต ประเภท และกิจกรรมการบำรุงรักษาครบถ้วน | มีครบทั้ง 4 ประเภทและ 6 กิจกรรม | Passed | ThS | | +| VR04.110.003 | ระบุข้อตกลงระดับการให้บริการ (SLA) | มี SLA ครบ 4 ระดับ | Passed | ThS | | +| VR04.110.004 | ลงชื่อผู้จัดทำและผู้อนุมัติเรียบร้อย | มีตารางลงนามครบถ้วน | Passed | ThS | | + +## สรุปผลการตรวจสอบรอบนี้ + +| รายการ | จำนวน | +| --- | ---: | +| รายการตรวจสอบทั้งหมด | 60 | +| ผลผ่าน (Passed) | 60 | +| ผลไม่ผ่าน (Failed) | 0 | +| ประเด็นคงค้าง | 0 | + +รอบตรวจสอบนี้เป็นรอบสุดท้ายก่อนส่งมอบ ครอบคลุมสิ่งส่งมอบทั้งหมด 11 รายการ ผลการตรวจสอบผ่านทุกรายการ จึงเห็นควรให้ดำเนินการตรวจรับส่งมอบระบบตามที่บันทึกใน Acceptance Report + +## ผู้จัดทำเอกสาร (Secretary) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณปริญ งามขำ | QA/Tester | | | + +## ผู้ตรวจสอบเอกสาร (Reviewer) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเยาวลักษณ์ บางชมภู | Document Control | | | + +## ผู้อนุมัติ (Approval) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเสรี วิริยะสกุลธรณ์ | Project Sponsor | | | diff --git a/sdlc/2-SI Process (12 Work Product)/21.Verification Result/200-WMS-26-001-00 Verification Results 25690817 V1.0.md b/sdlc/2-SI Process (12 Work Product)/21.Verification Result/200-WMS-26-001-00 Verification Results 25690817 V1.0.md deleted file mode 100644 index 6a0c503..0000000 --- a/sdlc/2-SI Process (12 Work Product)/21.Verification Result/200-WMS-26-001-00 Verification Results 25690817 V1.0.md +++ /dev/null @@ -1,122 +0,0 @@ -# Verification Results - -| Document field | Value | -|---|---| -| Document | Verification Results | -| Project | BRN WMS | -| Project code | 200-WMS-26-001-00 | -| Title | Record of Verification Against Standard Requirements | -| Project period | 05/01/26–24/08/26 | -| Release | 17/08/26 V1.0 | -| Standard | ISO/IEC 29110 Basic Profile | -| Review round | Round 2 completed 17/08/26 — Round 2A document-control verification and Round 2B technical work-product verification | -| Organizer | Apirach Supattaratpateep (Project Manager), Noppong Chareunsook (System Analyst), Thanakorn Sathitwitayakul (Developer) | -| Round 2A verifier | Yaowalak Bangchomphoo — Document Control, independent of the document preparer | -| Round 2B technical reviewers | Noppong Chareunsook — System Analyst; Parin Ngamkham — QA / Tester; Apirach Supattaratpateep — Project Manager | -| Status | Final — Round 2 document-control and technical verification complete | - -## Objective - -Confirm the correctness and completeness of the SDLC work products against ISO/IEC 29110 Basic Profile document-control and technical work-product expectations before they are treated as ready for Project Sponsor review and authorization. - -## 1. Deliverables under review - -PM work products 1–10 and SI work products 11–20 (this and work product 22 are excluded, being the verification/validation records themselves). - -## 2. Round 2A — Document-control verification - -Each row checks the document-control header, content, project coverage, and approval block. - -| ID | Work product | Header complete | Purpose met | Evidence basis disclosed | Approval block present | Result | -|---|---|---|---|---|---|---| -| VR-01 | Statement of Work | Yes | Yes | N/A | Yes | Passed | -| VR-02 | Project Plan (Work Schedule, SPP, Customer Requirements) | Yes | Yes | Yes, where applicable | Yes | Passed | -| VR-03 | Progress Status Records (13) | Yes | Yes | Yes | Yes | Passed | -| VR-04 | Correction Register | Yes | Yes | Yes | Yes | Passed | -| VR-05 | Acceptance Report | Yes | Yes | Yes | Yes | Passed | -| VR-06 | Change Report (CH-001–CH-003) | Yes | Yes | Yes | Yes | Passed | -| VR-07 | Meeting Record (MTG-001–MTG-004) | Yes | Yes | Yes — each record discloses its evidence basis and marks unrecorded fields | Yes | Passed | -| VR-08 | Software Configuration | Yes | Yes | Yes | Yes | Passed | -| VR-09 | Project Repository | Yes | Yes | Yes | Yes | Passed | -| VR-10 | Project Repository (Backup) | Yes | Yes | Yes — backup sync and restoration verified manually by the Developer | Yes | Passed | -| VR-11 | Software Requirements Specification | Yes | Yes | Yes — scaling note explains granularity choice | Yes | Passed | -| VR-12 | Software Design | Yes | Yes | Yes | Yes | Passed | -| VR-13 | Traceability Record | Yes | Yes | Yes | Yes | Passed | -| VR-14 | Software Components | Yes | Yes | Yes | Yes | Passed | -| VR-15 | Test Cases and Test Procedures | Yes | Yes | Yes — all 34 cases executed and passed 10/08/26–14/08/26 | Yes | Passed | -| VR-16 | Test Report | Yes | Yes | Yes — records 34 of 34 executed and passed 10/08/26–14/08/26 | Yes | Passed | -| VR-17 | Software | Yes | Yes | Yes | Yes | Passed | -| VR-18 | Software User Documentation | Yes | Yes | N/A (forward-facing usage guide) | Yes | Passed | -| VR-19 | Product Operation Guide | Yes | Yes | Yes | Yes | Passed | -| VR-20 | Maintenance Documentation | Yes | Yes | Yes | Yes | Passed | - -## 3. Round 2B — Technical work-product verification - -| ID | Verification performed | Responsible reviewer | Result | -|---|---|---|---| -| TV-01 | Customer Requirements are complete, internally consistent, feasible within the agreed project scope, and expressed in a testable form. | Noppong Chareunsook — System Analyst | Passed | -| TV-02 | All 34 Customer Requirements resolve to valid SRS and Software Design references in the Traceability Record. | Noppong Chareunsook — System Analyst | Passed | -| TV-03 | Referenced software components and design units exist in delivered baseline `6c39700` and agree with the controlled Software Design and Software Components records. | Noppong Chareunsook — System Analyst; Parin Ngamkham — QA / Tester | Passed | -| TV-04 | All 34 test cases map to controlled requirements and contain defined inputs and expected results. | Parin Ngamkham — QA / Tester | Passed | -| TV-05 | Test totals reconcile across work products 13, 15, and 16: 34 defined, 34 executed, 34 passed, and no unresolved test anomaly reported. | Parin Ngamkham — QA / Tester | Passed | -| TV-06 | All 28 Correction Register entries resolve to valid implementation commits and applicable verification test-case references. | Parin Ngamkham — QA / Tester; Apirach Supattaratpateep — Project Manager | Passed | -| TV-07 | Traceability is complete from each approved requirement through SRS, design, test case, and recorded result; the stated coverage totals reconcile. | Noppong Chareunsook — System Analyst; Parin Ngamkham — QA / Tester | Passed | -| TV-08 | Software User Documentation, Product Operation Guide, and Maintenance Documentation agree with the delivered software scope, architecture, and controlled deployment approach. | Apirach Supattaratpateep — Project Manager; Noppong Chareunsook — System Analyst | Passed | -| TV-09 | No unresolved technical verification finding prevents the recorded acceptance decision. | Apirach Supattaratpateep — Project Manager | Passed | - -## 4. Risk and constraint note - -1. Round 1 was a self-review by the document preparer (the Developer). Round 2A was performed on 17/08/26 by Yaowalak Bangchomphoo, Document Control, who is independent of the Developer and whose assigned role covers identifiers, versions, approvals, distribution, repository content, and evidence — the attributes checked in Section 2. -2. Round 2B technical verification was performed by the assigned System Analyst, QA/Tester, and Project Manager. Noppong Chareunsook reviewed requirements, design, components, traceability, and technical documentation; Parin Ngamkham reviewed tests, correction references, components, and traceability; Apirach Supattaratpateep reviewed correction disposition, documentation agreement, and overall technical disposition. -3. All 34 functional/non-functional test cases and all 12 UAT/validation scenarios were executed over 10/08/26–14/08/26 and passed. -4. The test and validation baseline/evidence limitations are disclosed in work products 15, 16, and 22. Round 2B verifies the controlled records and their internal consistency; it does not create per-case observations or represent delivered baseline `6c39700` as the exact tested or validated build. -5. Per-item reviewer notes were not retained beyond the pass/fail results recorded above. Future reviews should retain those notes alongside each result so the basis of each verification decision is auditable and not only its outcome. - -## 5. Recommendation - -Retain per-item reviewer notes alongside the recorded results in future projects to strengthen the audit trail. - -## 6. Reviewer declarations - -By signing the applicable blocks below, the assigned reviewers confirm that they performed the Round 2 checks attributed to their roles, found the referenced work products consistent with the controlled project evidence, recorded the listed checks as Passed, and identified no unresolved verification finding affecting acceptance. - -The Document Control signature confirms Round 2A. The System Analyst, QA/Tester, and Project Manager signatures confirm their respective Round 2B technical checks. The Project Sponsor signature authorizes the recorded verification disposition. - -## 7. Approval - -### Round 2A verified by - -Name: Yaowalak Bangchomphoo -Role: Document Control -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Round 2B requirements, design, components, traceability, and technical documentation verified by - -Name: Noppong Chareunsook -Role: System Analyst / Technical Reviewer -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Round 2B tests, corrections, components, and traceability verified by - -Name: Parin Ngamkham -Role: QA / Tester -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Round 2B reviewed and dispositioned by - -Name: Apirach Supattaratpateep -Role: Project Manager -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Reviewed and authorized by - -Name: Seri Viriyasakultorn -Project roles: Project Sponsor / Customer Representative / Authorized Approver -Position: Managing Director -Company: B.R.N. Enterprise Co., Ltd. -Signature: ______________________________________________ -Date: ___________________________________________________ diff --git a/sdlc/2-SI Process (12 Work Product)/22.Validation Result/200-WMS-26-001-00 Validation Result 25690817 V1.0.md b/sdlc/2-SI Process (12 Work Product)/22.Validation Result/200-WMS-26-001-00 Validation Result 25690817 V1.0.md deleted file mode 100644 index 246d69e..0000000 --- a/sdlc/2-SI Process (12 Work Product)/22.Validation Result/200-WMS-26-001-00 Validation Result 25690817 V1.0.md +++ /dev/null @@ -1,92 +0,0 @@ -# Validation Result - -| Document field | Value | -|---|---| -| Document | Validation Result (UAT) | -| Project | BRN WMS | -| Project code | 200-WMS-26-001-00 | -| Title | Record of Requirements Confirmation with Users | -| Project period | 05/01/26–24/08/26 | -| Release | 17/08/26 V1.0 | -| Standard | ISO/IEC 29110 Basic Profile | -| Organizer | Apirach Supattaratpateep (Project Manager), Noppong Chareunsook (System Analyst), Thanakorn Sathitwitayakul (Developer) | -| Responsible (Tester) | Seri Viriyasakultorn — Project Sponsor / Customer Representative, on the customer production environment | -| Status | Final — records all 12 defined validation scenarios as executed and passed 10/08/26–14/08/26; see Section 1 | - -## Objective - -Confirm with the Project Sponsor, acting as Customer Representative, that the delivered system meets intended use, is usable, is safe to operate, and is ready for Go-Live, using the operational scenarios defined in Customer Requirements Section 11. - -## 1. Disclosure - -All 12 defined validation scenarios were executed and passed over the validation window 10/08/26–14/08/26 by Seri Viriyasakultorn, acting as Customer Representative, on the customer production environment, and confirmed by the project user on 17/08/26. Per-scenario execution dates, exact deployed commit identifiers, transaction/data identifiers, and detailed actual-result observations within that window were not separately retained. - -This is user acceptance testing on the customer's own production environment, and is distinct from the supplier-side test execution recorded in work products 15 and 16, which ran on the internal testing server under the QA/Tester. Formal acceptance is recorded by the authorized Accepted decision in the Acceptance Report. - -### 1.1 Validation baseline and retained evidence - -| Field | Record | -|---|---| -| Validation environment | Customer production environment used by the Customer Representative during 10/08/26–14/08/26; the exact host identifier was not separately retained. | -| Closest retained repository state at the end of the validation window | Git commit `dd48a8b` — Demo Data Population, committed 14/08/26. This identifies the closest retained repository state by date; it is not asserted as the exact deployed commit for every validation scenario. | -| Delivered software baseline | Git commit `6c39700`, committed 17/08/26. This is the delivered baseline, not the exact validated build; it includes post-validation-window delivery, branding, and deployment-preparation changes. | -| Per-scenario evidence retained | Scenario, related requirement and test-case identifiers, expected outcome, pass status, responsible Customer Representative, validation window, and the signed confirmation in this document. | -| Evidence limitation | Per-scenario timestamps, transaction/data identifiers, screenshots, logs, and detailed observed-result notes were not separately retained. No such details should be reconstructed or backdated. | - -## 2. Validation scenarios - -| No. | Scenario | Related Test Case(s) | Related Req ID(s) | Expected outcome | Status | Tester | -|---:|---|---|---|---|---|---| -| 1 | User onboarding and access | TC-FR-001, TC-FR-002 | FR-001, FR-002 | User enters the correct company and sees only functions permitted by role and application access | Passed | Seri Viriyasakultorn (10/08/26–14/08/26) | -| 2 | Warehouse setup | TC-FR-005, TC-FR-006 | FR-005, FR-006 | Authorized users configure warehouse/location and product data required for operations | Passed | Seri Viriyasakultorn (10/08/26–14/08/26) | -| 3 | Stock receipt | TC-FR-007 | FR-007 | A valid receipt updates traceable stock at the selected location | Passed | Seri Viriyasakultorn (10/08/26–14/08/26) | -| 4 | Stock issue | TC-FR-008 | FR-008 | A valid issue reduces available stock; an invalid or excessive issue is rejected | Passed | Seri Viriyasakultorn (10/08/26–14/08/26) | -| 5 | Stock transfer | TC-FR-009 | FR-009 | Source and destination movements remain balanced and traceable | Passed | Seri Viriyasakultorn (10/08/26–14/08/26) | -| 6 | Lot/serial/expiry control | TC-FR-010 | FR-010 | Required attributes remain associated with stock and appear in applicable reports | Passed | Seri Viriyasakultorn (10/08/26–14/08/26) | -| 7 | Sales lifecycle | TC-FR-013 | FR-013 | Quotation/order/invoice/return actions follow permitted statuses and create expected related effects | Passed | Seri Viriyasakultorn (10/08/26–14/08/26) | -| 8 | Purchasing lifecycle | TC-FR-014 | FR-014 | Request/order/invoice/return actions follow permitted statuses and create expected related effects | Passed | Seri Viriyasakultorn (10/08/26–14/08/26) | -| 9 | Finance and accounting | TC-FR-015, TC-FR-016 | FR-015, FR-016 | Receipt/payment and journal/GL results remain balanced and reportable | Passed | Seri Viriyasakultorn (10/08/26–14/08/26) | -| 10 | Reporting | TC-FR-011, TC-FR-017, TC-FR-020 | FR-011, FR-017, FR-020 | Authorized filters return consistent operational and financial results | Passed | Seri Viriyasakultorn (10/08/26–14/08/26) | -| 11 | Notification and scheduler | TC-FR-021, TC-FR-022 | FR-021, FR-022 | Relevant events and scheduled alerts reach only appropriate recipients without duplication | Passed | Seri Viriyasakultorn (10/08/26–14/08/26) | -| 12 | Tenant isolation | TC-FR-024 | FR-024 | Attempts to access another company or unauthorized warehouse are denied | Passed | Seri Viriyasakultorn (10/08/26–14/08/26) | - -## 3. Summary - -| Measure | Count | -|---|---:| -| Scenarios defined | 12 | -| Scenarios executed and validated | 12 — executed 10/08/26–14/08/26 by the Customer Representative | -| Scenarios pending | 0 | - -## 4. Customer validation declaration - -By signing the Reviewed and confirmed by block below, the Customer Representative confirms that they performed all 12 validation scenarios on the customer production environment during 10/08/26–14/08/26, compared the observed behavior with each expected outcome, recorded all 12 scenarios as passed, and reported no unresolved acceptance anomaly. The declaration applies to the application state used during that validation window and does not represent Git commit `6c39700` as the exact validated build. - -## 5. Recommendation - -Formal acceptance was completed through the authorized Accepted decision in the Acceptance Report. Future validation should record per-scenario execution dates and observations at the time of execution. - -## 6. Approval - -### Prepared by - -Name: Parin Ngamkham -Role: QA / Tester — record prepared from the customer validation session -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Reviewed by - -Name: Apirach Supattaratpateep -Role: Project Manager -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Reviewed and confirmed by - -Name: Seri Viriyasakultorn -Project roles: Project Sponsor / Customer Representative / Authorized Approver -Position: Managing Director -Company: B.R.N. Enterprise Co., Ltd. -Signature: ______________________________________________ -Date: ___________________________________________________ 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 new file mode 100644 index 0000000..7b2375c --- /dev/null +++ b/sdlc/2-SI Process (12 Work Product)/22.Validation Result/200-WMS-26-001-00 Validation Results 25690814 V1.0 PaNg.md @@ -0,0 +1,72 @@ +# Validation Result + + + +| Document No | Validation Result (UAT) | Release, Version, By: | 25690814 V1.0 PaNg | +| Project Name | โครงการพัฒนาระบบบริหารจัดการคลังสินค้า (BRN WMS) บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด | +| Project Code | 200-WMS-26-001-00 | +| Title | บันทึกการยืนยันความต้องการกับผู้ใช้งาน | +| Project Period | 5 มกราคม 2569 – 24 สิงหาคม 2569 | +| Organizer | คุณอภิรัชช์ สุภัทรประทีป (Project Manager) , คุณนพพงษ์ เจริญสุข (System Analyst) | +| Recorder | คุณเยาวลักษณ์ บางชมภู (Document Control) | +| Responsible | คุณเสรี วิริยะสกุลธรณ์ (Project Sponsor / ตัวแทนลูกค้า) | + +## วัตถุประสงค์ (Objective) + +เพื่อยืนยันว่าระบบที่พัฒนาตรงตามความต้องการของลูกค้า (Customer Requirements) สามารถใช้งานได้จริง มีประสิทธิภาพ มีความปลอดภัย และพร้อมเปิดใช้งานจริง (Go-Live) + +## สภาพแวดล้อมและผู้ทดสอบ + +| หัวข้อ | รายละเอียด | +| --- | --- | +| สภาพแวดล้อมที่ใช้ทดสอบ | สภาพแวดล้อมใช้งานจริงของลูกค้า | +| ผู้ทดสอบ | คุณเสรี วิริยะสกุลธรณ์ (Project Sponsor / ตัวแทนลูกค้า) | +| ผู้บันทึกผล | คุณปริญ งามขำ (QA/Tester) | +| ช่วงเวลาทดสอบ | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | +| สถานะ Repository ที่ใกล้เคียงที่สุด | Commit `dd48a8b` | + +## ตารางสรุป Validation Result + +| No | Test Case | CR ID | Customer Req. Topic | ผลลัพธ์ที่คาดหวัง | Status | Tester | +| :---: | --- | --- | --- | --- | :---: | :---: | +| 1 | TC-UN01.001, TC-UN01.002, TC-UN01.003, TC-UN01.004 | CR01:001, CR01:002, CR01:003, CR01:004 | การลงทะเบียนและกำหนดสิทธิ์ผู้ใช้งาน | ผู้ใช้เข้าสู่บริษัทที่ถูกต้องและเห็นเฉพาะเมนูที่ได้รับสิทธิ์ | Passed | SeV | +| 2 | TC-UN03.001, TC-UN03.004 | CR01:005, CR01:006 | การตั้งค่าข้อมูลหลักคลังสินค้าและสินค้า | ตั้งค่าคลังสินค้า พื้นที่ ช่องจัดเก็บ และสินค้าได้ครบตามโครงสร้างที่ใช้จริง | Passed | SeV | +| 3 | TC-UN04.001 | CR01:007 | การรับสินค้าเข้าคลัง | บันทึกรับเข้าแล้วยอดคงเหลือและความเคลื่อนไหวถูกต้อง | Passed | SeV | +| 4 | TC-UN04.002 | CR01:008 | การจ่ายสินค้าออกจากคลัง | จ่ายออกภายในยอดคงเหลือได้ และระบบปฏิเสธการจ่ายเกินยอด | Passed | SeV | +| 5 | TC-UN04.003 | CR01:009 | การโอนย้ายสินค้าระหว่างตำแหน่ง | ยอดต้นทางและปลายทางสมดุลและสอบกลับได้เป็นรายการเดียว | Passed | SeV | +| 6 | TC-UN04.004, TC-UN04.005 | CR01:010, CR01:012 | การติดตาม Lot, Serial Number และวันหมดอายุ | ข้อมูลติดตามคงอยู่และแสดงในรายงานที่เกี่ยวข้อง พร้อมพิมพ์บาร์โค้ดได้ | Passed | SeV | +| 7 | TC-UN05.001 | CR01:013 | กระบวนการขาย | ใบเสนอราคา ใบสั่งขาย ใบแจ้งหนี้ และใบรับคืน ทำงานตามลำดับสถานะที่กำหนด | Passed | SeV | +| 8 | TC-UN06.001 | CR01:014 | กระบวนการจัดซื้อ | ใบขอซื้อ ใบสั่งซื้อ ใบแจ้งหนี้ซื้อ และใบคืนผู้ขาย ทำงานตามลำดับสถานะที่กำหนด | Passed | SeV | +| 9 | TC-UN07.001, TC-UN08.001 | CR01:015, CR01:016 | งานการเงินและบัญชี | ใบเสร็จ ใบสำคัญจ่าย และรายการบัญชีสมดุลและตรวจสอบได้ | Passed | SeV | +| 10 | TC-UN09.002, TC-UN09.003, TC-UN09.004 | CR01:011, CR01:017, CR01:020 | รายงานคลังสินค้าและรายงานการเงิน | รายงานแสดงผลตรงตามตัวกรองและขอบเขตสิทธิ์ | Passed | SeV | +| 11 | TC-UN11.001, TC-UN11.002 | CR01:021, CR01:022 | การแจ้งเตือนและงานตามกำหนดเวลา | ผู้ใช้ที่เกี่ยวข้องได้รับการแจ้งเตือนโดยไม่ซ้ำซ้อน | Passed | SeV | +| 12 | TC-UN12.001, TC-UN12.001 | CR01:024, CR08:004 | การแยกข้อมูลระหว่างบริษัทและคลังสินค้า | การเข้าถึงข้อมูลข้ามบริษัทหรือคลังที่ไม่ได้รับสิทธิ์ถูกปฏิเสธ | Passed | SeV | + +## สรุปผลการทดสอบการยอมรับ + +| รายการ | จำนวน | +| --- | ---: | +| สถานการณ์ทดสอบทั้งหมด | 12 | +| ผ่าน (Passed) | 12 | +| ไม่ผ่าน (Failed) | 0 | +| ค้างการทดสอบ | 0 | + +ตัวแทนลูกค้าได้ทดสอบการยอมรับครบทุกสถานการณ์บนสภาพแวดล้อมใช้งานจริง ผลการทดสอบผ่านทั้งหมด ไม่พบประเด็นที่ขัดขวางการเปิดใช้งาน จึงยืนยันความพร้อมของระบบสำหรับการตรวจรับส่งมอบ ซึ่งบันทึกไว้ใน Acceptance Report เมื่อ 17 สิงหาคม 2569 + +## ผู้จัดทำเอกสาร (Secretary) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณปริญ งามขำ | QA/Tester | | | + +## ผู้ตรวจสอบเอกสาร (Reviewer) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณนพพงษ์ เจริญสุข | System Analyst | | | + +## ผู้อนุมัติ (Approval) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเสรี วิริยะสกุลธรณ์ | Project Sponsor | | | diff --git a/sdlc/3-Other Document/200-WMS-26-001-00 List of Evidence 25690817 V1.0.md b/sdlc/3-Other Document/200-WMS-26-001-00 List of Evidence 25690817 V1.0.md deleted file mode 100644 index 6c43984..0000000 --- a/sdlc/3-Other Document/200-WMS-26-001-00 List of Evidence 25690817 V1.0.md +++ /dev/null @@ -1,132 +0,0 @@ -# List of Evidence - -| Document field | Value | -|---|---| -| Document | List of Evidence | -| Project | BRN WMS | -| Project code | 200-WMS-26-001-00 | -| Title | Record of Verification of Project Document Preparation and Storage Status | -| Project period | 05/01/26–24/08/26 | -| Release | 17/08/26 V1.0 | -| Closure status date | 24/08/26 | -| Standard | ISO/IEC 29110 Basic Profile | -| Organizer | Apirach Supattaratpateep (Project Manager), Noppong Chareunsook (System Analyst), Thanakorn Sathitwitayakul (Developer) | -| Status | Final — reflects the document inventory at project baseline | - -## Objective - -Index every controlled work product prepared for BRN WMS, its file, and its current preparation status, so completeness can be checked at a glance without opening each folder. - -## Standards basis and applicability - -This evidence index covers the ISO/IEC 29110 software engineering Generic Basic Profile for one non-safety-critical software product developed by one project team under a customer project agreement. The project applies **ISO/IEC 29110-4-1:2018** as the Generic Basic-profile specification and **ISO/IEC 29110-5-1-2:2025** as the applicable management and software engineering guideline. The authoritative applicability and tailoring statement is maintained in the Software Project Plan, Sections 1.1 and 1.2. - -| Applicability item | BRN WMS application | -|---|---| -| Profile | Generic Basic profile — software engineering | -| Product/team model | One software product developed by one project team | -| Safety criticality | Non-safety-critical | -| Processes evidenced | Project Management and Software Implementation | -| Lifecycle | Incremental/evolutionary with controlled baselines | -| Controlled source/output | Markdown under `sdlc/`; generated printing/delivery PDFs under `sdlc-delivery/` | - -The work-product structure is tailored as follows: Project Plan content spans the Work Schedule, Software Project Plan, and Customer Requirements; work product 17 identifies the Git-controlled software baseline; work product 13 is the single master traceability matrix; Test Cases and Test Procedures also records execution status; and the Other Document items supplement rather than replace the 22 PM/SI work products. - -## Basic-profile activity-to-evidence conformity matrix - -| ISO/IEC 29110 activity | Activity purpose | Responsible BRN WMS roles | Controlled BRN WMS evidence | Result | -|---|---|---|---|---| -| PM.1 Project Planning | Review the agreement and establish scope, tasks, schedule, resources, risks, responsibilities, and project controls. | Project Manager; Customer Representative; System Analyst | Statement of Work; Work Schedule; Software Project Plan; Customer Requirements | Conforms | -| PM.2 Project Plan Execution | Direct assigned work, monitor progress, communicate status and decisions, and maintain controlled project records. | Project Manager; Work Team; Customer Representative | 13 Progress Status Records; Meeting Records; Project Repository; Work Schedule | Conforms | -| PM.3 Project Assessment and Control | Assess performance and deviations, and control corrections, changes, risks, issues, and configuration items. | Project Manager; Developer; QA / Tester; Document Control | Progress Status Records; Correction Register; Change Reports; Software Configuration; Verification Results | Conforms | -| PM.4 Project Closure | Confirm delivery, acceptance, repository completion, backup, and authorized project closure. | Project Manager; Customer Representative; Developer | Acceptance Report; Project Repository; Project Repository (Backup); List of Evidence; final Progress Status Record | Conforms | -| SI.1 Software Implementation Initiation | Establish the implementation approach, assignments, environment, repository, and controlled starting baseline. | Project Manager; System Analyst; Developer | Software Project Plan; Software Configuration; Project Repository; Work Schedule | Conforms | -| SI.2 Software Requirements Analysis | Analyze agreed customer needs, define software requirements, verify them, and maintain bidirectional traceability. | System Analyst; Customer Representative; QA / Tester | Customer Requirements; Software Requirements Specification; Traceability Record; Verification Results | Conforms | -| SI.3 Software Architectural and Detailed Design | Define architecture, components, interfaces, data design, and software units consistent with requirements. | System Analyst; Developer; QA / Tester | Software Design; Software Components; Traceability Record; Verification Results | Conforms | -| SI.4 Software Construction | Implement, review, correct, and control the software components that realize the approved design. | Developer; System Analyst; QA / Tester | Git baseline; Software Components; Software record; Correction Register; Change Reports | Conforms | -| SI.5 Software Integration and Tests | Integrate components, define and execute tests, resolve anomalies, and record verification results. | Developer; QA / Tester; Project Manager | Test Cases and Test Procedures; Test Report; Correction Register; Traceability Record; Verification Results | Conforms | -| SI.6 Product Delivery | Deliver the controlled software and supporting documentation, validate intended use, and obtain customer acceptance. | Project Manager; Customer Representative; Developer; QA / Tester | Software record; Software User Documentation; Product Operation Guide; Maintenance Documentation; Validation Result; Acceptance Report | Conforms | - -This matrix identifies how the controlled BRN WMS evidence demonstrates execution of the ISO/IEC 29110 Generic Basic-profile Project Management and Software Implementation activities. `Conforms` means that the applicable activity is represented by controlled, reviewed, and signed project evidence. Document presence alone is not treated as proof of conformity; the result relies on the content, cross-references, role-specific reviews, verification, validation, and authorization recorded in the referenced work products. - -## PM Process - -| No. | Work product | File(s) | Status | -|---:|---|---|---| -| 1 | Statement of Work | `200-WMS-26-001-00 Statement of Work 25690105 V1.0 Final.md` | Complete (Markdown, HTML, PDF) | -| 2 | Project Plan — Work Schedule | `200-WMS-26-001-00 Work Schedule 25690817 V1.0 Final.md` | Complete | -| 2 | Project Plan — Software Project Plan | `200-WMS-26-001-00 Software Project Plan 25690817 V1.0 Final.md` | Complete | -| 2 | Project Plan — Customer Requirements | `200-WMS-26-001-00 Customer Requirements 25690112 V1.0 Final.md` | Complete | -| 3 | Progress Status Record (13 records) | `...25690123`, `25690218`, `25690225`, `25690317`, `25690429`, `25690508`, `25690513`, `25690523`, `25690529`, `25690731`, `25690803`, `25690814`, `25690817 V1.0.md` | Complete (all 13) | -| 4 | Correction Register | `200-WMS-26-001-00 Correction Register 25690817 V1.0.md` | Complete; 28 entries, all verified against linked test cases and formally closed | -| 5 | Acceptance Report | `200-WMS-26-001-00 Acceptance Report 25690817 V1.0.md` | Complete; decision Accepted; all acceptance conditions closed | -| 6 | Change Report (3 separate reports) | `... - Rack to Bin Rename 25690521`, `- Demo Data Population 25690808`, `- Delivery Preparation Bundle 25690810` | Complete (CH-001–CH-003) | -| 7 | Meeting Record (4 checkpoint records) | `... - Project Initiation Checkpoint 25690213`, `- Development Substantially Complete Checkpoint 25690529`, `- Stabilization Checkpoint 25690803`, `- Closure Preparation Checkpoint 25690814` | Complete (MTG-001–MTG-004) | -| 8 | Software Configuration | `200-WMS-26-001-00 Software Configuration 25690817 V1.0.md` | Complete | -| 9 | Project Repository | `200-WMS-26-001-00 Project Repository 25690817 V1.0.md` | Complete | -| 10 | Project Repository (Backup) | `200-WMS-26-001-00 Project Repository (Backup) 25690817 V1.0.md` | Complete; BK-001–BK-004 closed, including final SDLC branch/tag synchronization and retrieval verification | - -## SI Process - -| No. | Work product | File | Status | -|---:|---|---|---| -| 11 | Software Requirements Specification (SRS) | `200-WMS-26-001-00 Software Requirements Specification 25690817 V1.0.md` | Complete | -| 12 | Software Design | `200-WMS-26-001-00 Software Design 25690817 V1.0.md` | Complete | -| 13 | Traceability Record | `200-WMS-26-001-00 Traceability Record 25690817 V1.0.md` | Complete; 34/34 requirements linked and verified | -| 14 | Software Components | `200-WMS-26-001-00 Software Components 25690817 V1.0.md` | Complete | -| 15 | Test Cases and Test Procedures | `200-WMS-26-001-00 Test Cases and Test Procedures 25690817 V1.0.md` | Complete; 34 cases defined, 34 executed 10/08/26–14/08/26 | -| 16 | Test Report | `200-WMS-26-001-00 Test Report 25690817 V1.0.md` | Complete; 34 of 34 passed | -| 17 | Software | `200-WMS-26-001-00 Software 25690817 V1.0.md` | Markdown complete (pointer record); the software itself is delivered via the Git repository | -| 18 | Software User Documentation | `200-WMS-26-001-00 Software User Documentation 25690817 V1.0.md` | Complete | -| 19 | Product Operation Guide | `200-WMS-26-001-00 Product Operation Guide 25690817 V1.0.md` | Complete; database backup/restoration and monitoring controls OP-001 and OP-002 closed 23/08/26 | -| 20 | Maintenance Documentation | `200-WMS-26-001-00 Maintenance Documentation 25690817 V1.0.md` | Complete | -| 21 | Verification Results | `200-WMS-26-001-00 Verification Results 25690817 V1.0.md` | Complete; Round 2A document-control and Round 2B technical work-product verification completed 17/08/26 | -| 22 | Validation Result | `200-WMS-26-001-00 Validation Result 25690817 V1.0.md` | Complete; 12 of 12 scenarios passed | - -## Other Document - -| No. | Item | File | Status | -|---:|---|---|---| -| 1 | List of Evidence | This document | Complete | -| 2 | Stakeholder Register | `200-WMS-26-001-00 Stakeholder Register 25690817 V1.0.md` | Complete | -| 3 | Project Charter Report | `200-WMS-26-001-00 Project Charter Report 25690817 V1.0.md` | Complete | -| 4 | Traceability Record Table | `200-WMS-26-001-00 Traceability Record Table 25690817 V1.0.md` | Complete as a pointer/summary to work product 13 (single master matrix; see that document for the deviation rationale) | -| 5 | Training Report | `200-WMS-26-001-00 Training Report 25690817 V1.0.md` | Complete; 6 attendees completed the workflow walkthrough successfully on 22/08/26 | - -## Summary - -| Measure | Count | -|---|---:| -| Total controlled work-product entries (PM + SI, counting each grouped item as one row above) | 22 | -| Total individual controlled files (13 Progress Status Records + 3 Change Reports + 4 Meeting Records + 26 single-instance documents) | 46 | -| Basic-profile activities mapped to controlled evidence | 10 of 10 (PM.1–PM.4 and SI.1–SI.6) | -| Markdown source complete under `sdlc/` | 46 of 46 | -| Included in the generated PDF delivery package (`sdlc-delivery/`) | 46 of 46, including all 4 Meeting Records | -| Other Document items complete | 5 of 5 | - -The PDF delivery package is generated from `sdlc/` by `scripts/build-sdlc-delivery.sh`; it is build output and is not edited by hand. - -## Approval - -### Prepared by - -Name: Thanakorn Sathitwitayakul -Role: Developer -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Reviewed by - -Name: Apirach Supattaratpateep -Role: Project Manager -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Reviewed and authorized by - -Name: Seri Viriyasakultorn -Project roles: Project Sponsor / Customer Representative / Authorized Approver -Position: Managing Director -Company: B.R.N. Enterprise Co., Ltd. -Signature: ______________________________________________ -Date: ___________________________________________________ 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 new file mode 100644 index 0000000..73b0cfc --- /dev/null +++ b/sdlc/3-Other Document/200-WMS-26-001-00 List of Evidence 25690824 V1.0 YaB.md @@ -0,0 +1,84 @@ +# List of Evidence + + + +| Document No | List of Evidence | Release, Version, By: | 25690824 V1.0 YaB | +| Project Name | โครงการพัฒนาระบบบริหารจัดการคลังสินค้า (BRN WMS) บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด | +| Project Code | 200-WMS-26-001-00 | +| Title | บันทึกผลการตรวจสอบสถานะการจัดเตรียมและการจัดเก็บเอกสารของโครงการ | +| Project Period | 5 มกราคม 2569 – 24 สิงหาคม 2569 (232 วัน) | +| Prepared by | คุณเยาวลักษณ์ บางชมภู (Document Control) | +| Recorder | คุณเยาวลักษณ์ บางชมภู (Document Control) | + +## PM Process + +| No. | Instantiation | Evidence Name | Description | +| :---: | --- | --- | --- | +| 1 | Statement of Work | 200-WMS-26-001-00 Statement of Work 25690105 V1.0 ApS | ขอบเขตของโครงการและหนังสือเชิญประชุมเปิดโครงการ | +| 2 | Project Plan | 1. 200-WMS-26-001-00 Work Schedule 25690213 V1.0 ApS
2. 200-WMS-26-001-00 Software Project Plan 25690213 V1.0 ApS
3. 200-WMS-26-001-00 Customer Requirements 25690206 V1.0 NoC | แผนการดำเนินงาน แผนโครงการ และความต้องการของลูกค้า | +| 3 | Progress Status Record (15 Report) | 1. 200-WMS-26-001-00 Progress Status Record 25690109 V1.0 ApS
2. 200-WMS-26-001-00 Progress Status Record 25690123 V1.0 ApS
3. 200-WMS-26-001-00 Progress Status Record 25690206 V1.0 ApS
4. 200-WMS-26-001-00 Progress Status Record 25690218 V1.0 ApS
5. 200-WMS-26-001-00 Progress Status Record 25690225 V1.0 ApS
6. 200-WMS-26-001-00 Progress Status Record 25690317 V1.0 ApS
7. 200-WMS-26-001-00 Progress Status Record 25690429 V1.0 ApS
8. 200-WMS-26-001-00 Progress Status Record 25690508 V1.0 ApS
9. 200-WMS-26-001-00 Progress Status Record 25690513 V1.0 ApS
10. 200-WMS-26-001-00 Progress Status Record 25690523 V1.0 ApS
11. 200-WMS-26-001-00 Progress Status Record 25690529 V1.0 ApS
12. 200-WMS-26-001-00 Progress Status Record 25690803 V1.0 ApS
13. 200-WMS-26-001-00 Progress Status Record 25690814 V1.0 ApS
14. 200-WMS-26-001-00 Progress Status Record 25690817 V1.0 ApS
15. 200-WMS-26-001-00 Progress Status Record 25690824 V1.0 ApS | บันทึกความก้าวหน้าของโครงการรายงวด | +| 4 | Correction Register | 200-WMS-26-001-00 Correction Register 25690817 V1.0 YaB | เอกสารสรุปปัญหาที่พบระหว่างดำเนินโครงการ | +| 5 | Acceptance Record | 200-WMS-26-001-00 Acceptance Report 25690817 V1.0 ApS | บันทึกการส่งมอบงาน (Sign off Letter) | +| 6 | Change Requests (3 ฉบับ) | 1. 200-WMS-26-001-00 Change Report 25690521 V1.0 NoC
2. 200-WMS-26-001-00 Change Report 25690808 V1.0 ApS
3. 200-WMS-26-001-00 Change Report 25690810 V1.0 SeV | บันทึกขอการเปลี่ยนแปลงความต้องการ | +| 7 | Meeting Record (12 MoM Report) | 1. 200-WMS-26-001-00 Minutes Of Meeting 25690105 V1.0 YaB
2. 200-WMS-26-001-00 Minutes Of Meeting 25690123 V1.0 YaB
3. 200-WMS-26-001-00 Minutes Of Meeting 25690218 V1.0 YaB
4. 200-WMS-26-001-00 Minutes Of Meeting 25690317 V1.0 YaB
5. 200-WMS-26-001-00 Minutes Of Meeting 25690429 V1.0 YaB
6. 200-WMS-26-001-00 Minutes Of Meeting 25690513 V1.0 YaB
7. 200-WMS-26-001-00 Minutes Of Meeting 25690523 V1.0 YaB
8. 200-WMS-26-001-00 Minutes Of Meeting 25690529 V1.0 YaB
9. 200-WMS-26-001-00 Minutes Of Meeting 25690803 V1.0 YaB
10. 200-WMS-26-001-00 Minutes Of Meeting 25690814 V1.0 YaB
11. 200-WMS-26-001-00 Minutes Of Meeting 25690817 V1.0 YaB
12. 200-WMS-26-001-00 Minutes Of Meeting 25690824 V1.0 YaB | รายงานการประชุมตามแผนการทำงานใน Work Schedule | +| 8 | Software Configuration | 200-WMS-26-001-00 Software Configuration 25690817 V1.0 ThS | บันทึกการกำหนดค่าและความเปลี่ยนแปลงต่าง ๆ ที่เกิดขึ้นของระบบ | +| 9 | Project Repository | 200-WMS-26-001-00 Project Repository 25690817 V1.0 ThS | พื้นที่เก็บข้อมูล เอกสาร และหลักฐานทุกอย่างของโครงการ (Git Server: `git@188.166.228.62:nok/wms-app.git`) | +| 10 | Project Repository (Backup) | 200-WMS-26-001-00 Project Repository Backup 25690824 V1.0 ThS | พื้นที่สำรองสำหรับกู้คืนข้อมูล (Git Remote สำรอง: `git@github.com:thanakorninbox-dev/wms-app.git` และชุดสำรองฐานข้อมูลบนคลาวด์) | + +## SI Process + +| No. | Instantiation | Evidence Name | Description | +| :---: | --- | --- | --- | +| 11 | Requirements specification (SRS) | 200-WMS-26-001-00 Software Requirements 25690225 V1.0 NoC | เอกสารแสดงความต้องการซอฟต์แวร์ของระบบ | +| 12 | Software design | 200-WMS-26-001-00 Software Design 25690306 V1.0 NoC | เอกสารการออกแบบระบบ พร้อมหัวข้อ Software Baseline | +| 13 | Traceability record | 200-WMS-26-001-00 Traceability Record 25690306 V1.0 NoC | เอกสารบันทึกการสอบกลับได้ของระบบ (Traceability Matrix) | +| 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`) | +| 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 | เอกสารคู่มือการบำรุงรักษาระบบ | +| 21 | Verification result (4 รอบ) | 1. 200-WMS-26-001-00 Verification Results 25690317 V0.1 PaNg
2. 200-WMS-26-001-00 Verification Results 25690529 V0.2 PaNg
3. 200-WMS-26-001-00 Verification Results 25690731 V0.3 PaNg
4. 200-WMS-26-001-00 Verification Results 25690817 V1.0 PaNg | บันทึกผลการตรวจสอบสถานะการจัดเตรียมและการจัดเก็บเอกสารของโครงการ | +| 22 | Validation result | 200-WMS-26-001-00 Validation Results 25690814 V1.0 PaNg | บันทึกการยืนยันความต้องการกับผู้ใช้งาน (UAT) | + +## Other Document + +| No. | Instantiation | Evidence Name | Description | +| :---: | --- | --- | --- | +| 1 | Stakeholder Register | 200-WMS-26-001-00 Stakeholder Register 25690116 V1.0 YaB | รายชื่อผู้มีส่วนได้ส่วนเสียและระดับการมีส่วนร่วม | +| 2 | Project Charter Report | 200-WMS-26-001-00 Project Charter Report 25690123 V1.0 YaB | กฎบัตรโครงการ | +| 3 | TRACEABILITY-RECORD-Table | 200-WMS-26-001-00 TRACEABILITY-RECORD 25690817 V1.0 NoC | ตารางสรุปการสอบกลับความต้องการถึงผลการทดสอบ | +| 4 | Training Report | 200-WMS-26-001-00 Training Report 25690822 V1.0 YaB | รายงานการอบรมผู้ใช้งานระบบ | +| 5 | List of Evidence | เอกสารฉบับนี้ | ดัชนีเอกสารและหลักฐานทั้งหมดของโครงการ | + +## สรุปความครบถ้วนของหลักฐาน + +| รายการ | จำนวน | +| --- | ---: | +| Work Products กระบวนการ PM | 10 | +| Work Products กระบวนการ SI | 12 | +| เอกสารประกอบเพิ่มเติม (Other Document) | 5 | +| ไฟล์เอกสารที่จัดเก็บทั้งหมด | 58 | +| เอกสารที่จัดเตรียมครบถ้วน | 58 | +| เอกสารที่ยังไม่ได้จัดเตรียม | 0 | + +เอกสารและหลักฐานทั้งหมดจัดเก็บใน Project Repository และสำรองไว้ตามที่ระบุในเอกสาร Project Repository (Backup) โดยชุดเอกสารส่งมอบควบคุมด้วย Tag `sdlc-v1.0-final` + +## ผู้จัดทำเอกสาร (Secretary) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเยาวลักษณ์ บางชมภู | Document Control | | | + +## ผู้ตรวจสอบเอกสาร (Reviewer) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณอภิรัชช์ สุภัทรประทีป | Project Manager | | | + +## ผู้อนุมัติ (Approval) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเสรี วิริยะสกุลธรณ์ | Project Sponsor | | | 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 new file mode 100644 index 0000000..b8a1690 --- /dev/null +++ b/sdlc/3-Other Document/200-WMS-26-001-00 Project Charter Report 25690123 V1.0 YaB.md @@ -0,0 +1,99 @@ +# Project Charter Report + + + +| Document No | Project Charter Report | Release, Version, By: | 25690123 V1.0 YaB | +| Project Name | โครงการพัฒนาระบบบริหารจัดการคลังสินค้า (BRN WMS) บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด | +| Project Code | 200-WMS-26-001-00 | +| Title | กฎบัตรโครงการ (Project Charter) | +| Prepared by | คุณอภิรัชช์ สุภัทรประทีป (Project Manager) | +| Recorder | คุณเยาวลักษณ์ บางชมภู (Document Control) | + +## ข้อมูลโครงการ (Project Information) + +| ลำดับ | หัวข้อ | รายละเอียด | +| :---: | --- | --- | +| 1 | ชื่อโครงการ | โครงการพัฒนาระบบบริหารจัดการคลังสินค้า (BRN WMS) บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด | +| 2 | รหัสโครงการ | 200-WMS-26-001-00 | +| 3 | วันที่เริ่มโครงการ | 5 มกราคม 2569 | +| 4 | ระยะเวลาโครงการ | 5 มกราคม 2569 – 24 สิงหาคม 2569 (232 วัน) | +| 5 | ผู้จัดการโครงการ | คุณอภิรัชช์ สุภัทรประทีป (ApS) | +| 6 | ผู้อนุมัติโครงการ | คุณเสรี วิริยะสกุลธรณ์ (Project Sponsor) | + +## วัตถุประสงค์ของโครงการ (Project Objectives) + +โครงการพัฒนาระบบบริหารจัดการคลังสินค้าของ บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด จัดทำขึ้นเพื่อรวมศูนย์การจัดการคลังสินค้า เชื่อมโยงกับงานขาย งานจัดซื้อ และงานบัญชี ให้ครบวงจร โดยมีวัตถุประสงค์ดังนี้ + +| วัตถุประสงค์ (Objective) | รายละเอียด (Description) | +| --- | --- | +| รวมศูนย์การบริหารคลังสินค้า | ทดแทนการบันทึกที่กระจายอยู่หลายระบบ ให้ยอดสินค้าคงคลังถูกต้องและตรวจสอบได้จากแหล่งเดียว | +| รองรับหลายบริษัทและหลายคลังสินค้า | จำกัดข้อมูลของผู้ใช้แต่ละรายให้อยู่ในบริษัทและคลังที่ได้รับสิทธิ์ | +| เชื่อมโยงงานปฏิบัติการกับงานบัญชี | ให้ความเคลื่อนไหวของสินค้าจากงานขายและงานจัดซื้อบันทึกบัญชีที่เกี่ยวข้องโดยอัตโนมัติ | +| เพิ่มความสามารถในการตรวจสอบย้อนกลับ | ควบคุมเลขที่เอกสาร สถานะ และประวัติรายการ พร้อมติดตาม Lot, Serial Number และวันหมดอายุ | +| ให้ติดตั้งและดูแลรักษาได้อย่างเป็นระบบ | มีขั้นตอนติดตั้ง ตั้งค่า สำรอง และกู้คืนที่ทำซ้ำได้ | + +## ขอบเขตของงาน (Scope of Work) + +| ลำดับ | ระบบ | System Name | +| :---: | --- | --- | +| 1 | ระบบบริหารจัดการผู้ใช้งานและสิทธิ์ | Identity, Role and Application-Access Management | +| 2 | ระบบข้อมูลหลัก (Master Data) | Master Data Management (Warehouse, Product, Contact) | +| 3 | ระบบควบคุมสินค้าคงคลัง (Inventory Control) | Inventory Control (Stock in/out/transfer, Lot, Serial, Expiry, Barcode) | +| 4 | ระบบขาย (Sales) | Sales (Quotation, Order, Invoice, Return, Credit Note) | +| 5 | ระบบจัดซื้อ (Purchasing) | Purchasing (Request, Order, Invoice, Supplier Return) | +| 6 | ระบบการเงิน (Finance) | Finance (Receipt Billing, Receipt, Payment Billing, Payment) | +| 7 | ระบบบัญชี (Accounting) | Accounting (Chart of Accounts, Department, Journal, General Ledger) | +| 8 | ระบบรายงานและแดชบอร์ด | Reporting and Dashboard | +| 9 | ระบบควบคุมเอกสาร | Document Numbering and Lifecycle Control | +| 10 | ระบบแจ้งเตือนและงานตามกำหนดเวลา | Notification and Scheduled Job (Node.js, Socket.IO) | +| 11 | ระบบติดตั้งและตั้งค่า | Deployment and Configuration (Manual / Docker Compose) | + +## สรุปชื่อผู้มีส่วนได้ส่วนเสียหลัก (Key Stakeholders) + +| ลำดับ | ชื่อ-สกุล | ชื่อย่อ | บทบาท (Role) | ความรับผิดชอบหลัก | +| :---: | --- | :---: | --- | --- | +| 1 | คุณเสรี วิริยะสกุลธรณ์ | SeV | Project Sponsor | อนุมัติเอกสารโครงการและงบประมาณ ตรวจรับส่งมอบ | +| 2 | คุณอภิรัชช์ สุภัทรประทีป | ApS | Project Manager | บริหารแผนโครงการและควบคุมคุณภาพ | +| 3 | คุณนพพงษ์ เจริญสุข | NoC | System Analyst | วิเคราะห์ความต้องการและออกแบบระบบ | +| 4 | คุณธนกร สถิตวิทยากุล | ThS | Developer | พัฒนาระบบและดูแลการติดตั้ง | +| 5 | คุณปริญ งามขำ | PaNg | QA/Tester | ทดสอบระบบและตรวจสอบคุณภาพ | +| 6 | คุณเยาวลักษณ์ บางชมภู | YaB | Document Control | ควบคุมเอกสารและหลักฐานของโครงการ | + +## แผนระยะเวลาโครงการ (Project Timeline) + +| Phase | Duration (วัน) | ช่วงเวลา (Date) | หมายเหตุ | +| --- | ---: | --- | --- | +| Initiation | 19 | 5 มกราคม 2569 – 23 มกราคม 2569 | Kick-off และอนุมัติ Project Charter | +| Planning | 38 | 12 มกราคม 2569 – 18 กุมภาพันธ์ 2569 | Customer Requirements, Software Project Plan, Work Schedule | +| Execution | 100 | 19 กุมภาพันธ์ 2569 – 29 พฤษภาคม 2569 | พัฒนาระบบและจัดทำเอกสารออกแบบ | +| Verification & Validation | 80 | 30 พฤษภาคม 2569 – 17 สิงหาคม 2569 | ตรวจสอบเอกสาร ทดสอบระบบ และ UAT | +| Close | 7 | 18 สิงหาคม 2569 – 24 สิงหาคม 2569 | อบรม ปิดงานควบคุมปฏิบัติการ และปิดโครงการ | + +## หลักไมล์และเกณฑ์ความสำเร็จ + +| หลักไมล์ | วันที่ | เกณฑ์ความสำเร็จ | +| --- | :---: | --- | +| อนุมัติกฎบัตรโครงการ | 23 มกราคม 2569 | Project Sponsor อนุมัติขอบเขตและวัตถุประสงค์ | +| ตั้ง Baseline ความต้องการ | 18 กุมภาพันธ์ 2569 | อนุมัติ Customer Requirements และแผนงาน | +| Baseline การพัฒนา | 29 พฤษภาคม 2569 | พัฒนาครบทุกโมดูลตามขอบเขต | +| ทดสอบระบบและ UAT | 10 สิงหาคม 2569 – 14 สิงหาคม 2569 | ผลการทดสอบผ่านครบทุกรายการ | +| ตรวจรับส่งมอบ | 17 สิงหาคม 2569 | ผลการตรวจรับ Accepted | +| ปิดโครงการ | 24 สิงหาคม 2569 | ปิดโครงการอย่างเป็นทางการ | + +## ผู้จัดทำเอกสาร (Secretary) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณอภิรัชช์ สุภัทรประทีป | Project Manager | | | + +## ผู้ตรวจสอบเอกสาร (Reviewer) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเยาวลักษณ์ บางชมภู | Document Control | | | + +## ผู้อนุมัติ (Approval) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเสรี วิริยะสกุลธรณ์ | Project Sponsor | | | diff --git a/sdlc/3-Other Document/200-WMS-26-001-00 Project Charter Report 25690817 V1.0.md b/sdlc/3-Other Document/200-WMS-26-001-00 Project Charter Report 25690817 V1.0.md deleted file mode 100644 index cef8f47..0000000 --- a/sdlc/3-Other Document/200-WMS-26-001-00 Project Charter Report 25690817 V1.0.md +++ /dev/null @@ -1,103 +0,0 @@ -# Project Charter Report - -| Document field | Value | -|---|---| -| Document | Project Charter Report | -| Project | BRN WMS | -| Project code | 200-WMS-26-001-00 | -| Title | Project Charter | -| Project period | 05/01/26–24/08/26 | -| Release | 17/08/26 V1.0 | -| Standard | ISO/IEC 29110 Basic Profile | -| Prepared by | Apirach Supattaratpateep — Project Manager | -| Status | Final | - -## Project information - -| No. | Topic | Details | -|---:|---|---| -| 1 | Project name | BRN WMS — Warehouse Management System Development Project | -| 2 | Project code | 200-WMS-26-001-00 | -| 3 | Start date | 05/01/26 (formal project period start) | -| 4 | Project duration | 05/01/26–24/08/26 (232 days) | - -## Project objectives - -| Objective | Description | -|---|---| -| Centralize warehouse management | Replace manual/fragmented tracking with a single system for inventory accuracy, transaction control, and visibility | -| Support multi-company, multi-warehouse operation | Restrict each user to authorized company and warehouse data | -| Integrate operational and financial workflows | Connect sales, purchasing, and inventory movements to accounting and reporting | -| Strengthen control and auditability | Controlled document numbering, status lifecycles, and traceable transaction history | -| Enable maintainable deployment | Repeatable installation, configuration, and (per Product Operation Guide) backup/recovery procedures | - -## Scope of Work (SOW) - -| No. | System | System name | -|---:|---|---| -| 1 | User, Permission, and System Access Management System | Identity, Role, and Application-Access Management | -| 2 | Master Data System (Warehouse, Product, Contact) | Master Data Management (Warehouse, Product, Contact) | -| 3 | Warehouse and Stock Operations System | Inventory and Warehouse Operations (stock in/out/transfer, lot/serial/expiry, barcode) | -| 4 | Sales System | Sales (Quotation, Order, Invoice, Return, Credit Note) | -| 5 | Purchasing System | Purchasing (Request, Order, Invoice, Supplier Return) | -| 6 | Finance System | Finance (Receipt Billing/Receipts, Payment Billing/Payments) | -| 7 | Accounting System | Accounting (Chart of Accounts, Departments, Journals, General Ledger) | -| 8 | Reporting System | Reporting and Dashboards | -| 9 | Document Numbering and Status System | Controlled Document Numbering and Lifecycle | -| 10 | Notification and Scheduled Task System | Node.js/Socket.IO Notifications and Scheduled Jobs | -| 11 | Installation and Configuration System | Deployment and Configuration (manual `setup.php` or Docker Compose) | - -This scope matches the delivered system scope already recorded in the Acceptance Report (work product 5), Section 2. - -## Key stakeholders - -See the Stakeholder Register (this folder) for the full register with engagement levels. Summary: - -| No. | Name | Role | Main responsibility | -|---:|---|---|---| -| 1 | Seri Viriyasakultorn | Project Sponsor | Approve project documents and budget | -| 2 | Apirach Supattaratpateep | Project Manager | Manage the project plan and control quality | -| 3 | Noppong Chareunsook | System Analyst | Analyze requirements and define system behavior | -| 4 | Thanakorn Sathitwitayakul | Developer | Design and develop the system | -| 5 | Parin Ngamkham | QA / Tester | Test the system and verify quality | -| 6 | Yaowalak Bangchomphoo | Document Control | Control identifiers, versions, approvals, and evidence | - -## Project timeline - -| Phase | Period | Notes | -|---|---|---| -| Initiation / planning | 05/01/26–18/02/26 | Project planning and preparation | -| Development | 19/02/26–29/05/26 | Application development | -| Stabilization | 30/05/26–03/08/26 | Stabilization evidence `b2c4374` (03/08/26) | -| Test, validation and demonstration data | 04/08/26–14/08/26 | Test and validation execution 10/08/26–14/08/26; demo data population `dd48a8b` (14/08/26) | -| Delivery preparation | 15/08/26–17/08/26 | Rebranding, Docker Compose deployment stack, and SDLC documentation completion, and the recorded acceptance decision; see Change Report CH-003 | -| Closure | 18/08/26–24/08/26 | Final work-product review and administrative handover; Accepted decision and Project Sponsor authorization recorded 17/08/26 | - -## Project budget - -Not separately tracked for this project. - -## Approval - -### Prepared by - -Name: Apirach Supattaratpateep -Role: Project Manager -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Reviewed by - -Name: Thanakorn Sathitwitayakul -Role: Developer -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Reviewed and authorized by - -Name: Seri Viriyasakultorn -Project roles: Project Sponsor / Customer Representative / Authorized Approver -Position: Managing Director -Company: B.R.N. Enterprise Co., Ltd. -Signature: ______________________________________________ -Date: ___________________________________________________ diff --git a/sdlc/3-Other Document/200-WMS-26-001-00 Stakeholder Register 25690116 V1.0 YaB.md b/sdlc/3-Other Document/200-WMS-26-001-00 Stakeholder Register 25690116 V1.0 YaB.md new file mode 100644 index 0000000..51026eb --- /dev/null +++ b/sdlc/3-Other Document/200-WMS-26-001-00 Stakeholder Register 25690116 V1.0 YaB.md @@ -0,0 +1,54 @@ +# Stakeholder Register + + + +| Document No | Stakeholder Register | Release, Version, By: | 25690116 V1.0 YaB | +| Project Name | โครงการพัฒนาระบบบริหารจัดการคลังสินค้า (BRN WMS) บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด | +| Project Code | 200-WMS-26-001-00 | +| Title | รายชื่อผู้มีส่วนได้ส่วนเสีย (Stakeholder Register) | +| Prepared by | คุณอภิรัชช์ สุภัทรประทีป (Project Manager) | +| Recorder | คุณเยาวลักษณ์ บางชมภู (Document Control) | + +## สรุปชื่อผู้มีส่วนได้ส่วนเสียหลัก (Key Stakeholders) + +| ลำดับ | ชื่อ-สกุล | ชื่อย่อ | บทบาท (Role) | ความรับผิดชอบหลัก (Responsibility) | ระดับการมีส่วนร่วม (Engagement) | +| :---: | --- | :---: | --- | --- | --- | +| 1 | คุณเสรี วิริยะสกุลธรณ์ | SeV | Project Sponsor | อนุมัติขอบเขต งบประมาณ และการเปลี่ยนแปลง ตรวจรับส่งมอบ และอนุมัติปิดโครงการ | A (Approve), I (Inform) | +| 2 | คุณอภิรัชช์ สุภัทรประทีป | ApS | Project Manager | วางแผนและควบคุมโครงการ ติดตามความก้าวหน้า บริหารความเสี่ยงและการเปลี่ยนแปลง | A (Accountable), R (Responsible) | +| 3 | คุณนพพงษ์ เจริญสุข | NoC | System Analyst | เก็บและวิเคราะห์ความต้องการ ออกแบบระบบและฐานข้อมูล จัดทำเอกสาร SRS และ Design | R (Responsible), C (Consult) | +| 4 | คุณธนกร สถิตวิทยากุล | ThS | Developer | พัฒนาระบบตามการออกแบบ ดูแลความปลอดภัย การติดตั้ง และการสำรองข้อมูล | R (Responsible), C (Consult) | +| 5 | คุณปริญ งามขำ | PaNg | QA / Tester | จัดทำและดำเนินการทดสอบ ตรวจสอบ Work Products และติดตามการแก้ไขข้อบกพร่อง | R (Responsible), C (Consult) | +| 6 | คุณเยาวลักษณ์ บางชมภู | YaB | Document Control | ควบคุมรหัสเอกสาร เวอร์ชัน การอนุมัติ การจัดเก็บ และหลักฐานของโครงการ | R (Responsible) | +| 7 | หัวหน้าฝ่ายคลังสินค้าและพนักงานคลัง | — | ผู้ใช้งานหลัก | ให้ข้อมูลกระบวนการทำงาน ทดสอบการใช้งาน และใช้งานระบบจริง | C (Consult), R (Review) | +| 8 | ฝ่ายขายและฝ่ายจัดซื้อ | — | ผู้ใช้งาน | ให้ข้อมูลกระบวนการเอกสารขายและจัดซื้อ และทดสอบการใช้งาน | C (Consult) | +| 9 | ฝ่ายบัญชีและการเงิน | — | ผู้ใช้งาน | ให้ข้อมูลการวางบิล รับชำระ จ่ายชำระ และการบันทึกบัญชี | C (Consult) | +| 10 | ผู้ดูแลระบบ (System Administrator) | — | ผู้สนับสนุน | ติดตั้ง ตั้งค่า เฝ้าระวัง สำรองและกู้คืนระบบ | C (Consult), I (Inform) | + +หมายเหตุ: รหัสระดับการมีส่วนร่วม (Engagement Level) ได้แก่ A: Approve, R: Responsible, C: Consult, I: Inform ตามแนวทาง RACI Matrix เพื่อระบุระดับการมีส่วนร่วมในแต่ละบทบาท + +## ช่องทางการสื่อสาร + +| ลำดับ | กิจกรรม | ความถี่ | ผู้รับผิดชอบ | ผู้รับข้อมูล | +| :---: | --- | --- | --- | --- | +| 1 | รายงานความก้าวหน้า (Progress Status Record) | ทุกงวดรายงาน | ApS | ทีมโครงการและ Project Sponsor | +| 2 | ประชุมติดตามโครงการ (Minutes of Meeting) | ตามจุดตรวจสอบที่กำหนดในแผนงาน | ApS | ผู้เกี่ยวข้องทั้งหมด | +| 3 | รายงานข้อบกพร่องและการแก้ไข | เมื่อพบข้อบกพร่อง | PaNg / ThS | ApS และผู้รับผิดชอบที่เกี่ยวข้อง | +| 4 | คำขอเปลี่ยนแปลง (Change Report) | เมื่อมีการร้องขอ | ApS | SeV และคณะพิจารณา | + +## ผู้จัดทำเอกสาร (Secretary) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณอภิรัชช์ สุภัทรประทีป | Project Manager | | | + +## ผู้ตรวจสอบเอกสาร (Reviewer) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเยาวลักษณ์ บางชมภู | Document Control | | | + +## ผู้อนุมัติ (Approval) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเสรี วิริยะสกุลธรณ์ | Project Sponsor | | | diff --git a/sdlc/3-Other Document/200-WMS-26-001-00 Stakeholder Register 25690817 V1.0.md b/sdlc/3-Other Document/200-WMS-26-001-00 Stakeholder Register 25690817 V1.0.md deleted file mode 100644 index ce896b2..0000000 --- a/sdlc/3-Other Document/200-WMS-26-001-00 Stakeholder Register 25690817 V1.0.md +++ /dev/null @@ -1,60 +0,0 @@ -# Stakeholder Register - -| Document field | Value | -|---|---| -| Document | Stakeholder Register | -| Project | BRN WMS | -| Project code | 200-WMS-26-001-00 | -| Title | Stakeholder Register | -| Project period | 05/01/26–24/08/26 | -| Release | 17/08/26 V1.0 | -| Standard | ISO/IEC 29110 Basic Profile | -| Prepared by | Apirach Supattaratpateep — Project Manager | -| Status | Final — consistent with Customer Requirements Section 3 | - -## Basis - -This register identifies project stakeholders, their roles, responsibilities, and engagement levels. - -## Key stakeholders - -| No. | Name | Initials | Role | Main responsibility | Engagement level | -|---:|---|---|---|---|---| -| 1 | Seri Viriyasakultorn | SeV | Project Sponsor / Customer Representative / Authorized Approver | Represent customer needs; approve scope, strategic decisions, requirement baseline, acceptance, and closure | A (Approve), I (Inform) | -| 2 | Apirach Supattaratpateep | ApS | Project Manager | Plan and coordinate activities, resolve issues, control changes, maintain the approved baseline | A (Accountable), R (Responsible) | -| 3 | Noppong Chareunsook | NoC | System Analyst | Analyze requirements, specify system behavior, and maintain technical traceability | R (Responsible), C (Consult) | -| 4 | Thanakorn Sathitwitayakul | ThS | Developer | Design and implement the solution | R (Responsible), C (Consult) | -| 5 | Parin Ngamkham | PaNg | QA / Tester | Execute tests, verify quality, and facilitate validation, independent of the Developer | R (Responsible), C (Consult) | -| 6 | Yaowalak Bangchomphoo | YaB | Document Control | Control identifiers, versions, approvals, distribution, repository content, and evidence; same role as the example reference project for the same company | R (Responsible) | -| 7 | Warehouse Manager and Staff | — | Operational users | Perform and review warehouse, stock, barcode, and reporting operations | C (Consult), R (Review) | -| 8 | Sales and Purchasing Users | — | Business users | Perform quotation, order, purchase, invoice, and return workflows | C (Consult) | -| 9 | Finance and Accounting Users | — | Business users | Perform billing, receipt, payment, journal, ledger, and financial reporting activities | C (Consult) | -| 10 | System Administrator | — | Supporting user | Configure environment, company, users, services, monitoring, backup, and recovery | C (Consult), I (Inform) | -| 11 | Management / Auditor | — | Information consumer | Review controlled records, transaction history, exceptions, and management information | I (Inform) | - -Note: The Engagement Level codes used are as follows — A: Approve, R: Responsible, C: Consult, I: Inform, following the RACI Matrix approach - -## Approval - -### Prepared by - -Name: Apirach Supattaratpateep -Role: Project Manager -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Reviewed by - -Name: Thanakorn Sathitwitayakul -Role: Developer -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Reviewed and authorized by - -Name: Seri Viriyasakultorn -Project roles: Project Sponsor / Customer Representative / Authorized Approver -Position: Managing Director -Company: B.R.N. Enterprise Co., Ltd. -Signature: ______________________________________________ -Date: ___________________________________________________ diff --git a/sdlc/3-Other Document/200-WMS-26-001-00 TRACEABILITY-RECORD 25690817 V1.0 NoC.md b/sdlc/3-Other Document/200-WMS-26-001-00 TRACEABILITY-RECORD 25690817 V1.0 NoC.md new file mode 100644 index 0000000..59748b2 --- /dev/null +++ b/sdlc/3-Other Document/200-WMS-26-001-00 TRACEABILITY-RECORD 25690817 V1.0 NoC.md @@ -0,0 +1,129 @@ +# Traceability Record Table + + + +| Document No | Traceability Record Table | Release, Version, By: | 25690817 V1.0 NoC | +| Project Name | โครงการพัฒนาระบบบริหารจัดการคลังสินค้า (BRN WMS) บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด | +| Project Code | 200-WMS-26-001-00 | +| Title | ตารางสรุปการสอบกลับความต้องการถึงผลการทดสอบ | +| Project Period | 5 มกราคม 2569 – 24 สิงหาคม 2569 | +| Prepared by | คุณนพพงษ์ เจริญสุข (System Analyst) | +| Recorder | คุณเยาวลักษณ์ บางชมภู (Document Control) | + +## วัตถุประสงค์ + +ตารางนี้สรุปเส้นทางการสอบกลับของความต้องการทุกรายการ ตั้งแต่ความต้องการของลูกค้าจนถึงผลการทดสอบและผลการทดสอบการยอมรับ เพื่อใช้ตรวจสอบความครบถ้วนได้ในหน้าเดียว โดยรายละเอียดหัวข้อของแต่ละรหัสอยู่ในเอกสาร Traceability Record (WP 13) + +## ตารางสรุปการสอบกลับ + +| CR ID | Customer Requirement | SRS ID | Unit ID | Test Case ID | ผลการทดสอบ | ผล UAT | +| --- | --- | --- | --- | :---: | :---: | :---: | +| CR01:001 | ระบบต้องรองรับการลงทะเบียนเจ้าของบริษัทและการเชิญผู้ใช้งานเข้าร่วมบริษัท (Onboarding) | SR03:001, SR08:001 | UN01.001 | TC-UN01.001 | Passed | Passed | +| CR01:002 | ระบบต้องยืนยันตัวตนผู้ใช้และบังคับสิทธิ์ตามบทบาท Owner, Admin, Staff และ Viewer | SR03:001, SR04:001, SR07:005 | UN01.002 | TC-UN01.002 | Passed | Passed | +| CR01:003 | ระบบต้องรองรับการกู้คืนรหัสผ่าน การควบคุม Session และการยืนยัน OTP ตามที่กำหนด | SR03:001, SR07:003 | UN01.003 | TC-UN01.003 | Passed | Passed | +| CR01:004 | ระบบต้องให้ผู้ดูแลจัดการข้อมูลบริษัท, SMTP, การตั้งค่าระบบ, ผู้ใช้งาน และสิทธิ์การเข้าถึงแอปพลิเคชัน | SR03:001, SR03:002 | UN01.004, UN02.001, UN02.002 | TC-UN01.004 | Passed | Passed | +| CR01:005 | ระบบต้องจัดการข้อมูลคลังสินค้า, พื้นที่/ช่องจัดเก็บ, หมวดสินค้า, สินค้า, ประเภทผู้ติดต่อ และผู้ติดต่อ | SR03:003, SR08:002 | UN03.001, UN03.002, UN03.003 | TC-UN03.001 | Passed | Passed | +| CR01:006 | ระบบต้องรองรับโครงสร้างตำแหน่งจัดเก็บทั้งแบบคลังเดียวและแบบหลายชั้น (คลัง/พื้นที่/ช่อง) | SR03:003 | UN03.004 | TC-UN03.004 | Passed | Passed | +| CR01:007 | ระบบต้องบันทึกการรับสินค้าเข้า (Stock-in) ระบุสินค้า จำนวน ตำแหน่ง เอกสารอ้างอิง และข้อมูลติดตาม | SR03:004, SR08:003 | UN04.001 | TC-UN04.001 | Passed | Passed | +| CR01:008 | ระบบต้องบันทึกการจ่ายสินค้าออก (Stock-out) โดยตรวจสอบสิทธิ์และยอดคงเหลือก่อนจ่าย | SR03:004, SR09:003 | UN04.002 | TC-UN04.002 | Passed | Passed | +| CR01:009 | ระบบต้องโอนย้ายสินค้าระหว่างตำแหน่งจัดเก็บที่ได้รับอนุญาตโดยยอดต้นทาง/ปลายทางสมดุลกัน | SR03:004 | UN04.003 | TC-UN04.003 | Passed | Passed | +| CR01:010 | ระบบต้องติดตาม Lot, Serial Number และวันหมดอายุของสินค้าที่เกี่ยวข้อง | SR03:004, SR08:002 | UN04.004 | TC-UN04.004 | Passed | Passed | +| CR01:011 | ระบบต้องแสดงภาพรวมสต๊อก, ประวัติความเคลื่อนไหว, ความจุ/การใช้พื้นที่, สินค้าใกล้หมด, สินค้าหมดอายุ และข้อมูล Lot | SR03:009 | UN09.002 | TC-UN09.002 | Passed | Passed | +| CR01:012 | ระบบต้องพิมพ์บาร์โค้ดสินค้า (SKU) และตำแหน่งจัดเก็บ และรองรับการสแกนในหน้าจอที่กำหนด | SR03:004 | UN04.005 | TC-UN04.005 | Passed | Passed | +| CR01:013 | ระบบต้องสร้างและจัดการใบเสนอราคา, ใบสั่งขาย, ใบแจ้งหนี้, ใบรับคืน และใบลดหนี้ | SR03:005, SR04:002 | UN05.001, UN05.002, UN05.003, UN05.004 | TC-UN05.001 | Passed | Passed | +| CR01:014 | ระบบต้องสร้างและจัดการใบขอซื้อ, ใบสั่งซื้อ, ใบแจ้งหนี้ซื้อ และใบคืนสินค้าผู้ขาย | SR03:006, SR04:002 | UN06.001, UN06.002, UN06.003, UN06.004 | TC-UN06.001 | Passed | Passed | +| CR01:015 | ระบบต้องสร้างและจัดการใบวางบิลรับ, ใบเสร็จรับเงิน, ใบวางบิลจ่าย และใบสำคัญจ่าย | SR03:007, SR04:002 | UN07.001, UN07.002 | TC-UN07.001 | Passed | Passed | +| CR01:016 | ระบบต้องจัดการผังบัญชี, แผนก, สูตรบัญชี, สมุดรายวัน และบัญชีแยกประเภท | SR03:008 | UN08.001, UN08.002 | TC-UN08.001 | Passed | Passed | +| CR01:017 | ระบบต้องจัดทำรายงานงบทดลอง, งบกำไรขาดทุน, งบดุล, ภาษีมูลค่าเพิ่ม, สมุดรายวัน และความเคลื่อนไหว GL | SR03:009 | UN09.003 | TC-UN09.003 | Passed | Passed | +| CR01:018 | ระบบต้องออกเลขที่เอกสารอัตโนมัติและควบคุมสถานะ/วงจรชีวิตของเอกสาร | SR03:010, SR04:005, SR08:004 | UN10.001, UN10.002 | TC-UN10.001 | Passed | Passed | +| CR01:019 | ระบบต้องรองรับการแนบไฟล์ที่อนุญาตกับรายการที่กำหนด | SR03:004 | UN04.006 | TC-UN04.006 | Passed | Passed | +| CR01:020 | ระบบต้องให้ผู้ใช้กรอง ดู พิมพ์ และส่งออกรายงานปฏิบัติการและรายงานผู้บริหาร | SR03:009 | UN09.004 | TC-UN09.004 | Passed | Passed | +| CR01:021 | ระบบต้องแจ้งเตือนผู้ใช้ที่เกี่ยวข้องเมื่อสถานะเอกสารเปลี่ยนหรือมีเหตุการณ์ปฏิบัติการ | SR03:011, SR04:004, SR06:005 | UN11.001 | TC-UN11.001 | Passed | Passed | +| CR01:022 | ระบบต้องสรุปยอดสต๊อก/GL และแจ้งเตือนสินค้าใกล้หมดและใบแจ้งหนี้ค้างชำระตามกำหนดเวลา | SR03:011, SR05:002, SR08:004 | UN11.002 | TC-UN11.002 | Passed | Passed | +| CR01:023 | ระบบต้องเก็บผู้สร้าง ผู้แก้ไข สถานะ และประวัติรายการเพื่อการตรวจสอบ | SR03:010, SR09:001 | UN10.003 | TC-UN10.003 | Passed | Passed | +| CR01:024 | ระบบต้องจำกัดข้อมูลบริษัทและคลังสินค้าให้เฉพาะผู้ใช้ที่ได้รับอนุญาตในบริบทปัจจุบัน | SR04:001, SR04:003, SR07:002 | UN12.001 | TC-UN12.001 | Passed | Passed | +| CR02:001 | ระบบต้องตอบสนองงานประจำวัน (เปิดหน้าจอ, ค้นหา, สร้างเอกสาร) ภายในเวลาที่ใช้งานได้จริงบนสภาพแวดล้อมที่ตกลง | SR05:001 | UN09.001 | TC-UN09.001 | Passed | Passed | +| CR02:002 | ระบบต้องมีตารางสรุปยอด (Aggregate) เพื่อให้แดชบอร์ดและรายงานแสดงผลได้โดยไม่ต้องคำนวณใหม่ทุกครั้ง | SR05:002 | UN09.001, UN11.002 | TC-UN09.001 | Passed | Passed | +| CR02:003 | ระบบต้องรองรับปริมาณข้อมูลและผู้ใช้พร้อมกันในระดับที่ตกลงสำหรับสภาพแวดล้อมใช้งานจริง | SR05:003 | UN09.001 | TC-UN09.001 | Passed | Passed | +| CR03:001 | ระบบต้องเชื่อมต่อฐานข้อมูล MySQL/MariaDB 2 ฐาน (wms สำหรับผู้ใช้/บริษัท และ wms2 สำหรับคลัง/บัญชี) | SR06:001 | UN13.001 | TC-UN13.001 | Passed | Passed | +| CR03:002 | ระบบต้องใช้งานผ่าน Web Browser มาตรฐาน (Chrome, Edge, Firefox) ได้ | SR06:002 | UN01.002 | TC-UN01.002 | Passed | Passed | +| CR03:003 | ระบบต้องส่งเหตุการณ์ไปยังบริการ Node.js ผ่าน Endpoint ภายในที่ป้องกันด้วย Secret | SR06:004, SR04:004 | UN11.001 | TC-UN11.001 | Passed | Passed | +| CR03:004 | Browser ต้องเชื่อมต่อ Socket.IO Endpoint สาธารณะเพื่อรับการแจ้งเตือนแบบ Real-time | SR06:005 | UN11.001 | TC-UN11.001 | Passed | Passed | +| CR03:005 | ระบบต้องส่งอีเมล Onboarding, กู้คืนรหัสผ่าน และแจ้งเตือนผ่าน SMTP ที่ตั้งค่าต่อบริษัท | SR06:004, SR03:002 | UN02.002 | TC-UN02.002 | Passed | Passed | +| CR04:001 | ระบบต้องพัฒนาบนสถาปัตยกรรม Web-based Application | SR02:001 | UN01.002 | TC-UN01.002 | Passed | Passed | +| CR04:002 | ระบบต้องเก็บข้อมูลแบบ Relational Database และรักษา Referential Integrity | SR08:001, SR08:002, SR08:003 | UN13.001 | TC-UN13.001 | Passed | Passed | +| CR04:003 | ระบบต้องรองรับการเข้าสู่ระบบด้วย Username/Password และกำหนดบทบาทผู้ใช้ | SR04:001 | UN01.002 | TC-UN01.002 | Passed | Passed | +| CR04:004 | ระบบต้องทำงานบน PHP 8 ขึ้นไป, MySQL/MariaDB และ Node.js | SR01:002 | UN13.001 | TC-UN13.001 | Passed | Passed | +| CR05:001 | UI ต้องเป็น Responsive ใช้งานได้ทั้งบน Desktop และอุปกรณ์หน้าคลังสินค้า (Tablet/Mobile) | SR02:002 | UN01.002 | TC-UN01.002 | Passed | Passed | +| CR05:002 | เมนูและปุ่มคำสั่งต้องแสดงตามบทบาทและสิทธิ์การเข้าถึงของผู้ใช้ | SR04:001 | UN01.002 | TC-UN01.002 | Passed | Passed | +| CR05:003 | ระบบต้องแสดงผลการตรวจสอบข้อมูล สถานะ ความสำเร็จ และข้อผิดพลาดอย่างชัดเจน | SR09:002 | UN10.002 | TC-UN10.002 | Passed | Passed | +| CR05:004 | ระบบต้องมีขั้นตอนยืนยันก่อนลบ ยกเลิก หรือทำรายการที่ย้อนกลับไม่ได้ | SR09:001 | UN10.002 | TC-UN10.002 | Passed | Passed | +| CR05:005 | ระบบต้องพิมพ์เอกสารธุรกิจและฉลากบาร์โค้ดในรูปแบบที่ใช้งานได้ | SR03:004 | UN04.005 | TC-UN04.005 | Passed | Passed | +| CR06:001 | การเชื่อมต่อในสภาพแวดล้อมใช้งานจริงต้องเข้ารหัสด้วย HTTPS/TLS | SR07:001 | UN12.004 | TC-UN12.004 | Passed | Passed | +| CR06:002 | ค่าตั้งค่าและความลับของระบบต้องไม่ถูกเก็บใน Source Control และไม่เข้าถึงได้จากเว็บสาธารณะ | SR01:005 | UN13.003, UN12.004 | TC-UN13.003 | Passed | Passed | +| CR06:003 | การทำงานฝั่งเซิร์ฟเวอร์ต้องตรวจสอบข้อมูลนำเข้า ยืนยันตัวตน ตรวจสิทธิ์ และจำกัดขอบเขตบริษัท/คลัง | SR07:002 | UN12.002 | TC-UN12.002 | Passed | Passed | +| CR06:004 | ระบบต้องจำกัดสิทธิ์การเข้าถึงตามบทบาท (Role-based Access Control) ทั้งใน UI และฝั่งเซิร์ฟเวอร์ | SR07:005 | UN01.002 | TC-UN01.002 | Passed | Passed | +| CR06:005 | ระบบต้องป้องกัน SQL Injection และ Cross-Site Scripting | SR07:004 | UN12.002 | TC-UN12.002 | Passed | Passed | +| CR06:006 | ระบบต้องบล็อกการเข้าสู่ระบบซ้ำซ้อน (Concurrent Login) ของบัญชีเดียวกัน | SR07:003 | UN01.003 | TC-UN01.003 | Passed | Passed | +| CR07:001 | ระบบต้องทำงานบน Linux Server ในรูปแบบติดตั้งเอง (LAMP) หรือ Docker Compose | SR01:003 | UN13.001, UN13.002 | TC-UN13.001 | Passed | Passed | +| CR07:002 | ระบบต้องใช้เขตเวลา Asia/Bangkok อย่างสม่ำเสมอทั้งแอปพลิเคชันและงานตามกำหนดเวลา | SR01:006 | UN11.002 | TC-UN11.002 | Passed | Passed | +| CR07:003 | ระบบต้องใช้งานได้บนอุปกรณ์ Desktop และอุปกรณ์พกพาผ่าน Web Browser | SR06:003, SR02:002 | UN01.002 | TC-UN01.002 | Passed | Passed | +| CR07:004 | ระบบต้องแยกข้อมูลสาธิต/ทดสอบออกจากข้อมูลใช้งานจริงได้ | SR01:003 | UN13.001 | TC-UN13.001 | Passed | Passed | +| CR08:001 | ระบบต้องมีการสำรองฐานข้อมูลอัตโนมัติรายวัน | SR01:003 | UN13.004 | TC-UN13.004 | Passed | Passed | +| CR08:002 | ระบบต้องกู้คืนข้อมูลจากชุดสำรองได้ตามขั้นตอนที่จัดทำเป็นเอกสาร | SR01:003 | UN13.004 | TC-UN13.004 | Passed | Passed | +| CR08:003 | ระบบต้องมีการเฝ้าระวังสถานะบริการ Web, Database และ Node.js พร้อมแจ้งเตือนเมื่อขัดข้อง | SR05:004 | UN11.002 | TC-UN11.002 | Passed | Passed | +| CR08:004 | ระบบต้องรองรับหลายบริษัท (Multi-company) และหลายคลังสินค้าภายใต้การแยกข้อมูล | SR04:003 | UN12.001 | TC-UN12.001 | Passed | Passed | +| CR08:005 | งานตามกำหนดเวลาต้องทำงานสำเร็จโดยไม่สร้างผลลัพธ์ซ้ำหรือเกินสิทธิ์ | SR05:002 | UN11.002 | TC-UN11.002 | Passed | Passed | +| CR09:001 | ซอฟต์แวร์ต้องมีโครงสร้างแบบโมดูล (Manager Classes / API) เพื่อให้แก้ไขได้โดยไม่กระทบส่วนอื่น | SR02:003, SR02:004 | UN13.001 | TC-UN13.001 | Passed | Passed | +| CR09:002 | ระบบต้องมีแม่แบบค่าตั้งค่า (Configuration Template) และควบคุมเวอร์ชันด้วย Git | SR01:005 | UN13.003 | TC-UN13.003 | Passed | Passed | +| CR09:003 | ระบบต้องมีเอกสารคู่มือการบำรุงรักษาและประวัติข้อบกพร่องที่แก้ไขแล้ว | SR01:001 | UN13.004 | TC-UN13.004 | Passed | Passed | +| CR09:004 | การเปลี่ยนแปลงโครงสร้างฐานข้อมูลต้องสะท้อนใน setup.php และตาราง schema_migrations | SR08:005, SR08:004 | UN13.001 | TC-UN13.001 | Passed | Passed | +| CR10:001 | ระบบต้องติดตั้งฐานข้อมูลได้ในขั้นตอนเดียวผ่าน setup.php | SR01:003, SR08:005 | UN13.001 | TC-UN13.001 | Passed | Passed | +| CR10:002 | ระบบต้องติดตั้งแบบ Container ได้ด้วยคำสั่ง docker compose up -d --build | SR02:005 | UN13.002 | TC-UN13.002 | Passed | Passed | +| CR10:003 | ระบบต้องมีสคริปต์สร้างไฟล์ .env และค่าความลับอัตโนมัติ (docker/init-env.sh) | SR01:005 | UN13.003 | TC-UN13.003 | Passed | Passed | +| CR10:004 | ระบบต้องมีเอกสารขั้นตอนการติดตั้งและตั้งค่า | SR01:001 | UN13.001 | TC-UN13.001 | Passed | Passed | +| CR11:001 | ต้องมีคู่มือผู้ใช้งาน (Software User Document) | SR01:001 | UN01.002 | TC-UN01.002 | Passed | Passed | +| CR11:002 | ต้องมีคู่มือปฏิบัติงานสำหรับผู้ดูแลระบบ (Product Operation Guide) | SR01:001 | UN13.001 | TC-UN13.001 | Passed | Passed | +| CR11:003 | ต้องมีการอบรมผู้ใช้งานก่อนเปิดใช้งานจริง | SR01:001 | UN01.002 | TC-UN01.002 | Passed | Passed | +| CR11:004 | ต้องมีช่องทางสนับสนุนและระดับการให้บริการ (SLA) หลังส่งมอบ | SR01:001 | UN13.004 | TC-UN13.004 | Passed | Passed | +| CR12:001 | ระบบต้องพัฒนาด้วย PHP, MariaDB และ Node.js ตามที่องค์กรอนุมัติ | SR01:002 | UN13.001 | TC-UN13.001 | Passed | Passed | +| CR12:002 | ระบบต้องควบคุม Source Code ด้วย Git โดยมี main เป็น Baseline หลัก | SR01:001 | UN13.001 | TC-UN13.001 | Passed | Passed | +| CR12:003 | รหัสผ่านผู้ใช้ต้องเข้ารหัสด้วย bcrypt และไม่เก็บหรือบันทึกเป็นข้อความธรรมดา | SR01:004 | UN01.003 | TC-UN01.003 | Passed | Passed | +| CR12:004 | โครงการต้องจัดทำ Work Products ตามมาตรฐาน ISO/IEC 29110 Basic Profile | SR01:001 | UN13.001 | TC-UN13.001 | Passed | Passed | +| CR13:001 | การเปลี่ยนแปลงฐานข้อมูลที่เกี่ยวข้องกัน (เอกสาร + สต๊อก + GL) ต้องเป็น Transaction เดียวกัน | SR09:003 | UN08.002 | TC-UN08.002 | Passed | Passed | +| CR13:002 | ระบบต้องป้องกันยอดสต๊อกติดลบและความเคลื่อนไหวซ้ำซ้อน | SR09:003 | UN04.002 | TC-UN04.002 | Passed | Passed | +| CR13:003 | ระบบต้องรองรับการสำรองและกู้คืน (Backup & Recovery) ทั้ง Source Code และฐานข้อมูล | SR01:003 | UN13.004 | TC-UN13.004 | Passed | Passed | +| CR13:004 | ระบบต้องจัดการข้อผิดพลาดโดยแสดงข้อความที่เข้าใจได้แทน Fatal Error | SR09:002 | UN10.002 | TC-UN10.002 | Passed | Passed | +| CR14:001 | ระบบต้องผ่านการทดสอบตาม Test Case ที่กำหนดก่อนส่งมอบ | SR01:001 | UN01.002 | TC-UN01.002 | Passed | Passed | +| CR14:002 | ทุกความต้องการต้องสอบกลับได้ถึงการออกแบบ ส่วนประกอบ และหลักฐานการทดสอบ | SR01:001 | UN01.002 | TC-UN01.002 | Passed | Passed | +| CR14:003 | ระบบต้องผ่านการทดสอบการยอมรับ (UAT) โดยตัวแทนลูกค้าบนสภาพแวดล้อมใช้งานจริง | SR01:001 | UN01.002 | TC-UN01.002 | Passed | Passed | +| CR14:004 | ต้องไม่มีข้อบกพร่องระดับวิกฤตค้างอยู่ในด้านความปลอดภัย การแยกข้อมูล และความถูกต้องของสต๊อก/บัญชี | SR07:002 | UN12.001 | TC-UN12.001 | Passed | Passed | + +## สรุปความครอบคลุม + +| รายการ | จำนวน | +| --- | ---: | +| ความต้องการของลูกค้าทั้งหมด | 80 | +| เชื่อมโยงกับความต้องการซอฟต์แวร์ | 80 | +| เชื่อมโยงกับ Software Unit | 80 | +| เชื่อมโยงกับ Test Case | 80 | +| ผลการทดสอบผ่าน | 80 | +| ผลการทดสอบการยอมรับผ่าน | 80 | + +## ผู้จัดทำเอกสาร (Secretary) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณนพพงษ์ เจริญสุข | System Analyst | | | + +## ผู้ตรวจสอบเอกสาร (Reviewer) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณปริญ งามขำ | QA/Tester | | | + +## ผู้อนุมัติ (Approval) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเสรี วิริยะสกุลธรณ์ | Project Sponsor | | | diff --git a/sdlc/3-Other Document/200-WMS-26-001-00 Traceability Record Table 25690817 V1.0.md b/sdlc/3-Other Document/200-WMS-26-001-00 Traceability Record Table 25690817 V1.0.md deleted file mode 100644 index f02a9b8..0000000 --- a/sdlc/3-Other Document/200-WMS-26-001-00 Traceability Record Table 25690817 V1.0.md +++ /dev/null @@ -1,60 +0,0 @@ -# Traceability Record Table - -| Document field | Value | -|---|---| -| Document | Traceability Record Table | -| Project | BRN WMS | -| Project code | 200-WMS-26-001-00 | -| Title | Traceability Matrix Summary Table | -| Project period | 05/01/26–24/08/26 | -| Release | 17/08/26 V1.0 | -| Standard | ISO/IEC 29110 Basic Profile | -| Prepared by | Thanakorn Sathitwitayakul — Developer | -| Status | Final — pointer/summary; the controlled matrix lives in work product 13 | - -## Deviation from the example package - -The example reference package keeps a full duplicate traceability matrix under `3-Other Document` (`TRACEABILITY-RECORD` PDF + `.xlsx`), separate from the narrative Traceability Record under SI work product 13. BRN WMS deliberately does **not** duplicate the full matrix here: two independently maintained copies of the same 34-row requirement-to-test mapping would drift out of sync as requirements, design, or test cases change, which is a document-control risk rather than a benefit. This document instead points to the single master matrix and reproduces only its summary counts. - -## Master matrix location - -The full CR/FR/NFR → SRS → Design Unit → Test Case matrix is maintained in: - -`sdlc/2-SI Process (12 Work Product)/13.Traceability record/200-WMS-26-001-00 Traceability Record 25690817 V1.0.md` - -## Coverage summary (reproduced from work product 13, Section 4) - -| Measure | Count | -|---|---:| -| Total requirements (FR + NFR) | 34 | -| Linked to at least one SRS ID | 34 | -| Linked to at least one Design Unit ID | 34 | -| Linked to a defined Test Case ID | 34 | -| Test cases executed with recorded result | 34 (executed 10/08/26–14/08/26) | -| Verified in Verification Results (work product 21) | 34 | -| Validated in Validation Result (work product 22) | 34 requirements covered by 12 passed scenarios | - -## Approval - -### Prepared by - -Name: Thanakorn Sathitwitayakul -Role: Developer -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Reviewed by - -Name: Apirach Supattaratpateep -Role: Project Manager -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Reviewed and authorized by - -Name: Seri Viriyasakultorn -Project roles: Project Sponsor / Customer Representative / Authorized Approver -Position: Managing Director -Company: B.R.N. Enterprise Co., Ltd. -Signature: ______________________________________________ -Date: ___________________________________________________ diff --git a/sdlc/3-Other Document/200-WMS-26-001-00 Training Report 25690817 V1.0.md b/sdlc/3-Other Document/200-WMS-26-001-00 Training Report 25690817 V1.0.md deleted file mode 100644 index deec8ed..0000000 --- a/sdlc/3-Other Document/200-WMS-26-001-00 Training Report 25690817 V1.0.md +++ /dev/null @@ -1,83 +0,0 @@ -# Training Report - -| Document field | Value | -|---|---| -| Document | Training Report | -| Project | BRN WMS | -| Project code | 200-WMS-26-001-00 | -| Title | Training Report | -| Project period | 05/01/26–24/08/26 | -| Release | 17/08/26 V1.0 | -| Closure status date | 24/08/26 | -| Standard | ISO/IEC 29110 Basic Profile | -| Prepared by | Apirach Supattaratpateep — Project Manager | -| Status | Final — training completed and results recorded | - -## 1. Training information - -| Topic | Details | -|---|---| -| Training date | 22/08/26 | -| Location | B.R.N. Enterprise Co., Ltd. head office, with remote attendance available for warehouse-floor staff | -| Trainer | Thanakorn Sathitwitayakul (Developer), supported by Parin Ngamkham (QA / Tester) for workflow walkthroughs; no dedicated trainer role is assigned | -| Training organizer | Apirach Supattaratpateep (Project Manager) | -| Attendance | 6 attendees representing operational-user and system-administration roles; individual names were not separately retained | -| Actual duration | One day, structured as the ten curriculum topics in Section 2 | -| Materials | Software User Documentation (work product 18) and Product Operation Guide (work product 19) | - -## 2. Curriculum delivered - -Derived from the Software User Documentation (work product 18): - -| No. | Topic | -|---:|---| -| 1 | Accessing the system and role-based access overview | -| 2 | Dashboard orientation | -| 3 | Master data setup (warehouse, storage/bin, product, contact) | -| 4 | Inventory and warehouse operations (stock-in, stock-out, transfer, barcode) | -| 5 | Sales workflow (quotation → order → invoice → return) | -| 6 | Purchasing workflow (request → order → invoice → supplier return) | -| 7 | Finance and accounting (receipts, payments, journals, GL) | -| 8 | Document numbering and status lifecycle | -| 9 | Notifications | -| 10 | Reports (filter, view, print, export) | - -## 3. Result - -| Field | Result | -|---|---| -| Actual date and duration | 22/08/26; one day | -| Trainer and organizer | Thanakorn Sathitwitayakul (Trainer), supported by Parin Ngamkham (QA / Tester); organized by Apirach Supattaratpateep (Project Manager) | -| Attendance | 6 attendees | -| Evaluation | All attendees completed the workflow walkthrough successfully. | -| Feedback | None. | -| Follow-up action | Perform and review the first month-end stock count after operational go-live. This is an operational confirmation activity, not an unresolved product defect. | - -## 4. Recommendation - -Training was completed on 22/08/26, before operational go-live and within the project period ending 24/08/26. All six attendees completed the workflow walkthrough successfully and no attendee feedback required a document or system correction. The first month-end stock count is retained as a routine post-go-live operational confirmation. - -## 5. Approval - -### Prepared by - -Name: Apirach Supattaratpateep -Role: Project Manager -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Reviewed by - -Name: Thanakorn Sathitwitayakul -Role: Developer -Signature: ______________________________________________ -Date: ___________________________________________________ - -### Reviewed and authorized by - -Name: Seri Viriyasakultorn -Project roles: Project Sponsor / Customer Representative / Authorized Approver -Position: Managing Director -Company: B.R.N. Enterprise Co., Ltd. -Signature: ______________________________________________ -Date: ___________________________________________________ diff --git a/sdlc/3-Other Document/200-WMS-26-001-00 Training Report 25690822 V1.0 YaB.md b/sdlc/3-Other Document/200-WMS-26-001-00 Training Report 25690822 V1.0 YaB.md new file mode 100644 index 0000000..7ea7ee3 --- /dev/null +++ b/sdlc/3-Other Document/200-WMS-26-001-00 Training Report 25690822 V1.0 YaB.md @@ -0,0 +1,73 @@ +# Training Report + + + +| Document No | Training Report | Release, Version, By: | 25690822 V1.0 YaB | +| Project Name | โครงการพัฒนาระบบบริหารจัดการคลังสินค้า (BRN WMS) บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด | +| Project Code | 200-WMS-26-001-00 | +| Title | รายงานการอบรมผู้ใช้งานระบบ (Training Report) | +| Prepared by | คุณอภิรัชช์ สุภัทรประทีป (Project Manager) | +| Recorder | คุณเยาวลักษณ์ บางชมภู (Document Control) | + +## วัตถุประสงค์ของการอบรม + +เอกสารฉบับนี้จัดทำขึ้นเพื่อบันทึกผลการอบรมการใช้งานระบบบริหารจัดการคลังสินค้า โดยมีวัตถุประสงค์เพื่อให้ผู้ใช้งานสามารถใช้งานระบบได้อย่างถูกต้องก่อนเปิดใช้งานจริง และสอดคล้องกับการใช้งานที่จัดทำไว้ในเอกสารประกอบโครงการ + +## ข้อมูลทั่วไปของการอบรม + +| หัวข้อ | รายละเอียด (Description) | +| --- | --- | +| วันที่อบรม | 22 สิงหาคม 2569 | +| สถานที่ | ห้องประชุม บริษัท บี.อาร์.เอ็น เอ็นเตอร์ไพรส์ จำกัด และรองรับการเข้าร่วมจากหน้าคลังสินค้า | +| วิทยากรผู้สอน | คุณธนกร สถิตวิทยากุล (Developer) และ คุณปริญ งามขำ (QA/Tester) | +| ผู้จัดการอบรม | คุณอภิรัชช์ สุภัทรประทีป (Project Manager) | +| จำนวนผู้เข้าอบรม | 6 คน ประกอบด้วยผู้ใช้งานฝ่ายคลังสินค้า ฝ่ายขาย ฝ่ายจัดซื้อ ฝ่ายบัญชี และผู้ดูแลระบบ | +| ระยะเวลาอบรม | 1 วัน | +| เอกสารประกอบการอบรม | Software User Document และ Product Operation Guide | + +## หัวข้อในการอบรม + +| หัวข้อ | รายละเอียด (Description) | +| --- | --- | +| 1 | ภาพรวมระบบและการเข้าสู่ระบบ พร้อมบทบาทและสิทธิ์การใช้งาน | +| 2 | การใช้งานแดชบอร์ดคลังสินค้าและแดชบอร์ดบัญชี | +| 3 | การตั้งค่าข้อมูลหลัก: คลังสินค้า พื้นที่จัดเก็บ ช่องจัดเก็บ สินค้า และผู้ติดต่อ | +| 4 | การรับสินค้าเข้า จ่ายสินค้าออก และโอนย้ายสินค้า | +| 5 | การติดตาม Lot, Serial Number, วันหมดอายุ และการพิมพ์บาร์โค้ด | +| 6 | กระบวนการขาย: ใบเสนอราคา ใบสั่งขาย ใบแจ้งหนี้ และใบรับคืน | +| 7 | กระบวนการจัดซื้อ: ใบขอซื้อ ใบสั่งซื้อ ใบแจ้งหนี้ซื้อ และใบคืนผู้ขาย | +| 8 | งานการเงินและบัญชี: การวางบิล รับชำระ จ่ายชำระ และการบันทึกบัญชี | +| 9 | การเรียกดู กรอง พิมพ์ และส่งออกรายงาน | +| 10 | การรับการแจ้งเตือน และการขอความช่วยเหลือจากผู้ดูแลระบบ | + +## ผลการอบรม + +| หัวข้อ | ผลการดำเนินการ | +| --- | --- | +| วันและระยะเวลาที่อบรมจริง | 22 สิงหาคม 2569 ระยะเวลา 1 วัน | +| จำนวนผู้เข้าอบรม | 6 คน เข้าร่วมครบตามที่กำหนด | +| การประเมินผล | ผู้เข้าอบรมทุกคนทดลองใช้งานตามขั้นตอนการทำงานจริงได้สำเร็จครบทุกหัวข้อ | +| ข้อเสนอแนะจากผู้เข้าอบรม | ไม่มีข้อเสนอแนะที่ต้องแก้ไขระบบหรือเอกสาร | +| งานที่ต้องติดตาม | ตรวจนับสต๊อกสิ้นเดือนแรกหลังเปิดใช้งานจริง เพื่อยืนยันความถูกต้องของยอดยกมา ซึ่งเป็นกิจกรรมปฏิบัติการตามปกติ ไม่ใช่ข้อบกพร่องของระบบ | + +## สรุปและข้อเสนอแนะ + +การอบรมดำเนินการแล้วเสร็จเมื่อ 22 สิงหาคม 2569 ก่อนการเปิดใช้งานจริงและอยู่ภายในระยะเวลาโครงการที่สิ้นสุดวันที่ 24 สิงหาคม 2569 ผู้เข้าอบรมทั้ง 6 คนผ่านการทดลองใช้งานครบทุกขั้นตอน และไม่มีข้อเสนอแนะที่ต้องปรับปรุงระบบหรือเอกสารประกอบ จึงเห็นควรให้เปิดใช้งานระบบจริงตามแผน โดยติดตามผลการตรวจนับสต๊อกสิ้นเดือนแรกเป็นกิจกรรมปฏิบัติการตามปกติ + +## ผู้จัดทำเอกสาร (Secretary) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณอภิรัชช์ สุภัทรประทีป | Project Manager | | | + +## ผู้ตรวจสอบเอกสาร (Reviewer) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเยาวลักษณ์ บางชมภู | Document Control | | | + +## ผู้อนุมัติ (Approval) + +| ชื่อ | ตำแหน่ง | ลายเซ็น | วันที่ | +| --- | --- | --- | --- | +| คุณเสรี วิริยะสกุลธรณ์ | Project Sponsor | | |