diff --git a/UAT_GDC_CMOD_Checklist.html b/UAT_GDC_CMOD_Checklist.html new file mode 100644 index 0000000..1cec36b --- /dev/null +++ b/UAT_GDC_CMOD_Checklist.html @@ -0,0 +1,195 @@ + + + + + + UAT Checklist - GDC CMOD ๐Ÿ“‹ + + + +
+
+

๐Ÿ“‹ UAT (User Acceptance Testing) ๐Ÿงช - GDC CMOD Laboratory Management System ๐Ÿฅ

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
IDJudul Test CaseLangkah UtamaExpected ResultRoleHasilIssue/Jawaban
๐ŸŽฏ๐Ÿ“Œ Ready to Test!๐Ÿš€ Let's Go!โœจ Good Luck!๐Ÿ‘ฅ All Roles๐ŸŽ‰ Fun!๐Ÿ“ Notes...
TC-001Login Berhasil ๐Ÿ”Login dengan username & password validRedirect ke dashboard sesuai role ๐ŸŽฏAUTENTIKASI & SESI ๐Ÿ”‘ โœ…
โŒ
TC-002Login Gagal - Username Salah ๐ŸšซMasukkan username tidak adaError "Invalid credentials" โš ๏ธAUTENTIKASI & SESI ๐Ÿ” โœ…
โŒ
TC-003Login Gagal - Password Salah ๐Ÿ™…Password salahError invalid credentials ๐ŸšจAUTENTIKASI & SESI ๐Ÿ” โœ…
โŒ
TC-004Login Gagal - Akun Terkunci ๐Ÿ”’Login ke akun locked dari legacyError "Account locked" ๐Ÿ›‘AUTENTIKASI & SESI ๐Ÿ” โœ…
โŒ
TC-005Logout Berhasil ๐Ÿ‘‹Klik menu LogoutSession terhapus, redirect ke login โœจAUTENTIKASI & SESI ๐Ÿ”‘ โœ…
โŒ
TC-006Redirect ke Login Belum Login ๐Ÿ”„Akses protected page tanpa loginRedirect otomatis ke halaman login ๐ŸšชAUTENTIKASI & SESI ๐Ÿ›ก๏ธ โœ…
โŒ
TC-007Ganti Password Berhasil ๐Ÿ”‘Change password baruPassword berhasil diubah dan di-hash โœ…AUTENTIKASI & SESI ๐Ÿ†• โœ…
โŒ
TC-008Ganti Password Gagal - Password Lama Salah โŒMasukkan password lama salahError "Invalid old password" ๐ŸšซAUTENTIKASI & SESI ๐Ÿ” โœ…
โŒ
TC-009Role-Based Redirect Login ๐Ÿ‘ฅLogin dengan berbagai roleRedirect ke dashboard sesuai role ๐ŸŽฏAUTENTIKASI & SESI ๐ŸŽญ โœ…
โŒ
TC-010Tampilkan Semua Request ๐Ÿ“ŠLogin Superuser โ†’ /superuserTabel requests semua status ditampilkan ๐Ÿ“‹SU, ADM, PHLEB, CS โœ…
โŒ
TC-011Filter by Status ๐ŸŽ›๏ธPilih status di dashboard filterFilter berfungsi sesuai status ๐Ÿ”SU โœ…
โŒ
TC-012Filter by Date Range ๐Ÿ“…Set date1 & date2 โ†’ filterFilter tanggal berfungsi ๐Ÿ—“๏ธSU โœ…
โŒ
TC-013Search by Patient Name ๐Ÿ‘คMasukkan nama pasienTampilkan request dengan nama tsb ๐Ÿ”SU โœ…
โŒ
TC-014Search by Lab Number ๐Ÿ”ขMasukkan Lab NumberTampilkan request tsb ๐ŸŽฏSU โœ…
โŒ
TC-015Search by Register Number #๏ธโƒฃMasukkan Register NumberTampilkan request tsb ๐Ÿ“ŒSU โœ…
โŒ
TC-016Table Sorting โ†•๏ธKlik header kolomKolom di-sort ASC/DESC ๐Ÿ“ˆ๐Ÿ“‰SU โœ…
โŒ
TC-017Pagination ๐Ÿ“–Klik halaman berbedaBerpindah halaman dengan benar ๐Ÿ“„SU โœ…
โŒ
TC-018Tampilkan List User ๐Ÿ‘ฅAccess /superuser/usersTabel users ditampilkan lengkap ๐Ÿ“‹SU, ADM โœ…
โŒ
TC-019Buat User Baru โž•Add User โ†’ isi formUser berhasil dibuat dan password di-hash ๐Ÿ†”SU, ADM โœ…
โŒ
TC-020Validasi Password Min 3 Karakter ๐Ÿ”ขBuat user dengan password < 3 charError "Password min 3 karakter" โš ๏ธSU โœ…
โŒ
TC-021Update User Role โœ๏ธEdit user โ†’ ubah roleRole berhasil diubah ๐Ÿ”„SU โœ…
โŒ
TC-022Update Password User ๐Ÿ”Edit user โ†’ ganti passwordPassword di-hash dengan benar ๐Ÿ”„SU โœ…
โŒ
TC-023Delete User ๐Ÿ—‘๏ธDelete userUser terhapus dari database ๐Ÿ—‘๏ธSU, ADM โœ…
โŒ
TC-024Tampilkan Request Final โœจAccess /superuser/validateHanya request "Fin" yang tampil โœ…SU, ADM, LAB โœ…
โŒ
TC-025Filter by Date Range Validasi ๐Ÿ“…Set date1 & date2 โ†’ filterFilter berfungsi di halaman validasi ๐Ÿ”SU โœ…
โŒ
TC-026First Validation (VAL1) โœ…Validasi request "Fin"ISVAL1=1, VAL1USER & VAL1DATE diset ๐Ÿ“SU, ADM, LAB โœ…
โŒ
TC-027Second Validation (VAL2) โœ…โœ…Validasi dengan user berbedaISVAL2=1, request duavalidated ๐ŸŽ‰SU, ADM, LAB โœ…
โŒ
TC-028Gagal Validasi Sendiri ๐ŸšซCoba validasi ulang sama userError "Cannot validate own request" ๐Ÿ™…SU, ADM, LAB โœ…
โŒ
TC-029Un-Validate Request โ†ฉ๏ธUn-validate dengan reasonISVAL reset, PENDING diset ๐Ÿ”„SU, ADM โœ…
โŒ
TC-030Shortcut Keyboard โŒจ๏ธEnter=Validate, N=Skip, Esc=CloseShortcut berfungsi dengan benar โšกSU โœ…
โŒ
TC-031Progress Indicator ๐Ÿ“ŠBuka validation modalProgress muncul (posisi / total) ๐Ÿ“ˆSU โœ…
โŒ
TC-032Collect Sample ๐ŸงชBuka dialog sample โ†’ CollectSTATUS=1, COLLECTIONDATE & USERID diset โœ…SU, ADM, LAB โœ…
โŒ
TC-033Un-Collect Sample โ†ฉ๏ธBuka dialog sample โ†’ Un-CollectSTATUS di-reset, audit log tercatat ๐Ÿ“SU, ADM, LAB โœ…
โŒ
TC-034Un-Receive Sample ๐Ÿ”™Un-receive sample yang receivedStatus berubah, audit log tercatat ๐Ÿ“‹SU, ADM, LAB โœ…
โŒ
TC-035Print Label Individu ๐Ÿท๏ธPrint label per tubeLabel tercetak dengan ZPL format ๐Ÿ–จ๏ธSU โœ…
โŒ
TC-036Print Collection Label ๐Ÿ“‹Print collection labelLabel collection tercetak ๐Ÿท๏ธSU โœ…
โŒ
TC-037Print All Labels ๐Ÿ“„Print semua tubesSemua labels tercetak ๐Ÿ–จ๏ธSU โœ…
โŒ
TC-038View Request Audit ๐Ÿ”Buka audit dialog requestAudit trail timeline ditampilkan ๐Ÿ“œSU โœ…
โŒ
TC-039Filter by Category ๐ŸŽฏFilter: All, Validation, Receive, SampleFilter berfungsi sesuai kategori ๐Ÿ”SU โœ…
โŒ
TC-040View Report Validated ๐Ÿ“ŠView report request duavalidatedReport ditampilkan lengkap ๐Ÿ“‹SU, ADM, LAB, CS โœ…
โŒ
TC-041Cannot View Not Validated ๐ŸšซView report belum duavalidatedError: "Validated request required" โš ๏ธSU โœ…
โŒ
TC-042Print Report ๐Ÿ–จ๏ธPrint report request validatedPrint dialog buka, audit log tercatat ๐Ÿ“SU, ADM, LAB, CS โœ…
โŒ
TC-043Generate PDF ๐Ÿ“‘Generate PDF request validatedPDF berhasil di-generate โœ…SU, ADM, LAB, CS โœ…
โŒ
TC-044Preview Report (No Audit) ๐Ÿ‘€Preview report tanpa log auditReport tampil, tidak ada audit log ๐Ÿ“„SU โœ…
โŒ
TC-045English Version Report ๐Ÿ‡ฌ๐Ÿ‡งAccess /report/{id}/engReport dalam Bahasa Inggris ๐Ÿ—ฃ๏ธSU โœ…
โŒ
TC-046Edit Comment โœ๏ธEdit comment di dashboardComment berubah tersimpan ๐Ÿ’พSU โœ…
โŒ
TC-047Error Handling 404 ๐ŸšซAkses URL tidak validCustom notfound page tampil ๐Ÿ“„SU โœ…
โŒ
TC-048Error Handling Unauthorized ๐Ÿ”’Coba akses role lainRedirect ke /unauthorized ๐ŸšซSU โœ…
โŒ
TC-049Filter & Search ๐Ÿ”Uji berbagai filter dan searchSemua berfungsi seperti Superuser โšกADMIN, PHLEB, CS โœ…
โŒ
TC-050Sample Collection Buttons Enabled โœ…Buka dialog sampleTombol Collect/Un-Coll/Un-Recv enabled ๐Ÿ”˜ADMIN โœ…
โŒ
TC-051Edit Comment Enabled โœ๏ธEdit comment dashboardComment dapat diubah ๐Ÿ’ฌADMIN โœ…
โŒ
TC-052Print Labels ๐Ÿท๏ธPrint individual/collection/allSemua labels tercetak ๐Ÿ–จ๏ธADM, LAB, PHLEB โœ…
โŒ
TC-053View Audit Trail ๐Ÿ“œBuka audit dialogTimeline audit ditampilkan ๐Ÿ”ADM, LAB, PHLEB, CS โœ…
โŒ
TC-054Update User ๐Ÿ”„Edit user โ†’ ubah dataUser berhasil di-update โœ…ADMIN โœ…
โŒ
TC-055Cannot Access Role Lain ๐ŸšซCoba /superuser, /lab, /phlebo, /csRedirect ke unauthorized/error โ›”ADM, LAB, PHLEB, CS โœ…
โŒ
TC-056Filter Test Code Alphabetical ๐Ÿ”คLogin Lab โ†’ /labHanya request TESTS A-Z yang tampil ๐Ÿ“‹LAB โœ…
โŒ
TC-057View Request Details ๐Ÿ‘๏ธBuka requestDetail request ditampilkan ๐Ÿ“„LAB โœ…
โŒ
TC-058Filter & Search dalam Batas Filter ๐Ÿ”Uji filter & searchSesuai batas test code A-Z โœ…LAB โœ…
โŒ
TC-059Sample Buttons Enabled โœ…Buka dialog sampleTombol Collect/Un-Coll/Un-Recv enabled ๐Ÿ”˜LAB โœ…
โŒ
TC-060Edit Comment Disabled ๐Ÿ”’Cek comment fieldComment field non-editable ๐ŸšซLAB, PHLEB, CS โœ…
โŒ
TC-061Un-Validate Disabled ๐Ÿ”’Coba un-validateError/Unauthorized - cannot un-validate ๐ŸšซLAB โœ…
โŒ
TC-062Sample Collection Disabled ๐Ÿ”’Buka dialog sampleTombol Collect/Un-Coll/Un-Recv DISABLED ๐ŸšซPHLEB, CS โœ…
โŒ
TC-063Validation Page Denied ๐Ÿ”’Coba /phlebo/validateHalaman tidak tersedia/unauthorized โ›”PHLEB, CS โœ…
โŒ
TC-064View Sample Details (Read-Only) ๐Ÿ‘€Buka dialog sampleSample details view-only ๐Ÿ“„PHLEB, CS โœ…
โŒ
TC-065Cannot View Report ๐Ÿ”’Coba view reportReport tidak tersedia/error ๐ŸšซPHLEB โœ…
โŒ
TC-066Cannot Print Report ๐Ÿ–จ๏ธโŒCoba print reportPrint tidak tersedia ๐ŸšซPHLEB โœ…
โŒ
TC-067Cannot Generate PDF ๐Ÿ“‘โŒCoba generate PDFPDF tidak tersedia ๐ŸšซPHLEB โœ…
โŒ
TC-068Print Labels (Limited) ๐Ÿท๏ธPrint labelsLabels tercetak sesuai kapasitas ๐Ÿ–จ๏ธCS โœ…
โŒ
TC-069User Mgmt Role Restrictions ๐Ÿ”Lab/Phlebo/CS coba user management APIError unauthorized ๐ŸšซFITUR CROSS-ROLE ๐Ÿ”— โœ…
โŒ
TC-070Cross-Role Validation ๐ŸคLab A validasi VAL1, Superuser B validasi VAL2Cross-role validation berhasil โœ…FITUR CROSS-ROLE ๐Ÿ”„ โœ…
โŒ
TC-071Un-Validate Role Restrictions ๐Ÿ”’Lab/Phlebo/CS coba un-validateError unauthorized - only SU/Admin ๐ŸšซFITUR CROSS-ROLE ๐Ÿ›ก๏ธ โœ…
โŒ
TC-072Un-Receive Role Restrictions ๐Ÿ”’Lab/Phlebo/CS coba un-receiveError unauthorized - only SU/Admin ๐ŸšซFITUR CROSS-ROLE ๐Ÿ›ก๏ธ โœ…
โŒ
TC-073Report Access Restrictions ๐Ÿ‘๏ธCoba view report semua roleSU/Admin/Lab/CS OK, Phlebo NOT โœ…โŒFITUR CROSS-ROLE ๐Ÿ” โœ…
โŒ
TC-074Report Validated Requirement โœ…โœ…View report hanya VAR1 vs duavalidatedHanya duavalidated dapat dilihat ๐ŸŽฏFITUR CROSS-ROLE โœ… โœ…
โŒ
TC-075Comment Edit Restrictions ๐Ÿ’ฌ๐Ÿ”’Lab/Phlebo/CS coba edit commentError - only SU/Admin editable ๐ŸšซFITUR CROSS-ROLE โœ๏ธ โœ…
โŒ
TC-076Validasi tidak Pengaruhi Data Lain ๐Ÿ›ก๏ธRecord data sebelum & sesudah validasiHanya status validasi berubah ๐Ÿ“FITUR CROSS-ROLE ๐Ÿ” โœ…
โŒ
TC-077Un-Validate Mempertahankan Data ๐Ÿ”„Record data sebelum & sesudah un-validateHanya status validasi berubah ๐Ÿ“FITUR CROSS-ROLE ๐Ÿ” โœ…
โŒ
TC-078Audit Trail Logging ๐Ÿ“œLakukan berbagai aktivitasSemua tercatat di audit log โœ…FITUR CROSS-ROLE ๐Ÿ” โœ…
โŒ
TC-079Concurrent Validation โšก2 user buka validation dialog bersamaanValidasi berhasil, tidak conflict โœ…FITUR CROSS-ROLE ๐Ÿค โœ…
โŒ
TC-080Concurrent Sample Collection โšก2 user collect tube berbeda bersamaanSemua berhasil tercatat โœ…FITUR CROSS-ROLE ๐Ÿงช โœ…
โŒ
TC-081Session Timeout โฑ๏ธTunggu session timeoutRedirect ke login ๐Ÿ”„FITUR CROSS-ROLE ๐Ÿ” โœ…
โŒ
TC-082Password Hashing Security ๐Ÿ”’Buat user โ†’ cek databasePassword dalam HASH bukan plain ๐Ÿ›ก๏ธFITUR CROSS-ROLE ๐Ÿ” โœ…
โŒ
TC-083Legacy Read-Only ๐Ÿ‘€Cek koneksi & fungsi FirebirdHanya READ dari Firebird, TIDAK WRITE ๐Ÿšซโœ๏ธFITUR CROSS-ROLE ๐Ÿ—„๏ธ โœ…
โŒ
+
+ + diff --git a/UAT_GDC_CMOD_Checklist.md b/UAT_GDC_CMOD_Checklist.md index b90f420..93d02b9 100644 --- a/UAT_GDC_CMOD_Checklist.md +++ b/UAT_GDC_CMOD_Checklist.md @@ -29,23 +29,23 @@ 1. Centang checkbox [ ] jika test case LULUS (PASS) 2. Tulis "X" dalam kotak [X] jika test case GAGAL (FAIL) 3. Tambahkan catatan @ kolom "Issue/Jawaban" untuk kasus FAIL/N/A/BLOCKED -4. Beri nomor urut di "No." untuk tracking +4. Gunakan ID test case untuk tracking --- ## 3. TEST CASE - AUTENTIKASI & SESI -| No. | ID | Judul Test Case | Langkah Utama | Expected Result | Hasil | Issue/Jawaban | -|-----|----|----------------|---------------|-----------------|-------|---------------| -| | **TC-AUTH-001** | Login Berhasil | Login dengan username & password valid | Redirect ke dashboard sesuai role | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-AUTH-002** | Login Gagal - Username Salah | Masukkan username tidak ada | Error "Invalid credentials" | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-AUTH-003** | Login Gagal - Password Salah | Password salah | Error invalid credentials | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-AUTH-004** | Login Gagal - Akun Terkunci | Login ke akun locked dari legacy | Error "Account locked" | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-AUTH-005** | Logout Berhasil | Klik menu Logout | Session terhapus, redirect ke login | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-AUTH-006** | Redirect ke Login Belum Login | Akses protected page tanpa login | Redirect otomatis ke halaman login | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-AUTH-007** | Ganti Password Berhasil | Change password baru | Password berhasil diubah dan di-hash | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-AUTH-008** | Ganti Password Gagal - Password Lama Salah | Masukkan password lama salah | Error "Invalid old password" | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-AUTH-009** | Role-Based Redirect Login | Login dengan berbagai role | Redirect ke dashboard sesuai role | [ ] PASS
[ ] FAIL | ___________ | +| ID | Judul Test Case | Langkah Utama | Expected Result | Hasil | Issue/Jawaban | +|----|----------------|---------------|-----------------|-------|---------------| +| **TC-AUTH-001** | Login Berhasil | Login dengan username & password valid | Redirect ke dashboard sesuai role | [ ] PASS
[ ] FAIL | ___________ | +| **TC-AUTH-002** | Login Gagal - Username Salah | Masukkan username tidak ada | Error "Invalid credentials" | [ ] PASS
[ ] FAIL | ___________ | +| **TC-AUTH-003** | Login Gagal - Password Salah | Password salah | Error invalid credentials | [ ] PASS
[ ] FAIL | ___________ | +| **TC-AUTH-004** | Login Gagal - Akun Terkunci | Login ke akun locked dari legacy | Error "Account locked" | [ ] PASS
[ ] FAIL | ___________ | +| **TC-AUTH-005** | Logout Berhasil | Klik menu Logout | Session terhapus, redirect ke login | [ ] PASS
[ ] FAIL | ___________ | +| **TC-AUTH-006** | Redirect ke Login Belum Login | Akses protected page tanpa login | Redirect otomatis ke halaman login | [ ] PASS
[ ] FAIL | ___________ | +| **TC-AUTH-007** | Ganti Password Berhasil | Change password baru | Password berhasil diubah dan di-hash | [ ] PASS
[ ] FAIL | ___________ | +| **TC-AUTH-008** | Ganti Password Gagal - Password Lama Salah | Masukkan password lama salah | Error "Invalid old password" | [ ] PASS
[ ] FAIL | ___________ | +| **TC-AUTH-009** | Role-Based Redirect Login | Login dengan berbagai role | Redirect ke dashboard sesuai role | [ ] PASS
[ ] FAIL | ___________ | ### Ringkasan Autentikasi: _ LULUS / _____ GAGAL @@ -55,77 +55,77 @@ ### 4.1 DASHBOARD SUPERUSER -| No. | ID | Judul Test Case | Langkah Utama | Expected Result | Hasil | Issue/Jawaban | -|-----|----|----------------|---------------|-----------------|-------|---------------| -| | **TC-SU-001** | Tampilkan Semua Request | Login Superuser โ†’ `/superuser` | Tabel requests semua status ditampilkan | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-SU-002** | Filter by Status | Pilih status di dashboard filter | Filter berfungsi sesuai status | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-SU-003** | Filter by Date Range | Set date1 & date2 โ†’ filter | Filter tanggal berfungsi | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-SU-004** | Search by Patient Name | Masukkan nama pasien | Tampilkan request dengan nama tsb | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-SU-005** | Search by Lab Number | Masukkan Lab Number | Tampilkan request tsb | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-SU-006** | Search by Register Number | Masukkan Register Number | Tampilkan request tsb | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-SU-007** | Table Sorting | Klik header kolom | Kolom di-sort ASC/DESC | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-SU-008** | Pagination | Klik halaman berbeda | Berpindah halaman dengan benar | [ ] PASS
[ ] FAIL | ___________ | +| ID | Judul Test Case | Langkah Utama | Expected Result | Hasil | Issue/Jawaban | +|----|----------------|---------------|-----------------|-------|---------------| +| **TC-SU-001** | Tampilkan Semua Request | Login Superuser โ†’ `/superuser` | Tabel requests semua status ditampilkan | [ ] PASS
[ ] FAIL | ___________ | +| **TC-SU-002** | Filter by Status | Pilih status di dashboard filter | Filter berfungsi sesuai status | [ ] PASS
[ ] FAIL | ___________ | +| **TC-SU-003** | Filter by Date Range | Set date1 & date2 โ†’ filter | Filter tanggal berfungsi | [ ] PASS
[ ] FAIL | ___________ | +| **TC-SU-004** | Search by Patient Name | Masukkan nama pasien | Tampilkan request dengan nama tsb | [ ] PASS
[ ] FAIL | ___________ | +| **TC-SU-005** | Search by Lab Number | Masukkan Lab Number | Tampilkan request tsb | [ ] PASS
[ ] FAIL | ___________ | +| **TC-SU-006** | Search by Register Number | Masukkan Register Number | Tampilkan request tsb | [ ] PASS
[ ] FAIL | ___________ | +| **TC-SU-007** | Table Sorting | Klik header kolom | Kolom di-sort ASC/DESC | [ ] PASS
[ ] FAIL | ___________ | +| **TC-SU-008** | Pagination | Klik halaman berbeda | Berpindah halaman dengan benar | [ ] PASS
[ ] FAIL | ___________ | ### 4.2 USER MANAGEMENT SUPERUSER -| No. | ID | Judul Test Case | Langkah Utama | Expected Result | Hasil | Issue/Jawaban | -|-----|----|----------------|---------------|-----------------|-------|---------------| -| | **TC-SU-009** | Tampilkan List User | Access `/superuser/users` | Tabel users ditampilkan lengkap | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-SU-010** | Buat User Baru | Add User โ†’ isi form | User berhasil dibuat dan password di-hash | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-SU-011** | Validasi Password Min 3 Karakter | Buat user dengan password < 3 char | Error "Password min 3 karakter" | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-SU-012** | Update User Role | Edit user โ†’ ubah role | Role berhasil diubah | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-SU-013** | Update Password User | Edit user โ†’ ganti password | Password di-hash dengan benar | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-SU-014** | Delete User | Delete user | User terhapus dari database | [ ] PASS
[ ] FAIL | ___________ | +| ID | Judul Test Case | Langkah Utama | Expected Result | Hasil | Issue/Jawaban | +|----|----------------|---------------|-----------------|-------|---------------| +| **TC-SU-009** | Tampilkan List User | Access `/superuser/users` | Tabel users ditampilkan lengkap | [ ] PASS
[ ] FAIL | ___________ | +| **TC-SU-010** | Buat User Baru | Add User โ†’ isi form | User berhasil dibuat dan password di-hash | [ ] PASS
[ ] FAIL | ___________ | +| **TC-SU-011** | Validasi Password Min 3 Karakter | Buat user dengan password < 3 char | Error "Password min 3 karakter" | [ ] PASS
[ ] FAIL | ___________ | +| **TC-SU-012** | Update User Role | Edit user โ†’ ubah role | Role berhasil diubah | [ ] PASS
[ ] FAIL | ___________ | +| **TC-SU-013** | Update Password User | Edit user โ†’ ganti password | Password di-hash dengan benar | [ ] PASS
[ ] FAIL | ___________ | +| **TC-SU-014** | Delete User | Delete user | User terhapus dari database | [ ] PASS
[ ] FAIL | ___________ | ### 4.3 VALIDASI SUPERUSER -| No. | ID | Judul Test Case | Langkah Utama | Expected Result | Hasil | Issue/Jawaban | -|-----|----|----------------|---------------|-----------------|-------|---------------| -| | **TC-SU-015** | Tampilkan Request Final | Access `/superuser/validate` | Hanya request "Fin" yang tampil | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-SU-016** | Filter by Date Range Validasi | Set date1 & date2 โ†’ filter | Filter berfungsi di halaman validasi | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-SU-017** | First Validation (VAL1) | Validasi request "Fin" | ISVAL1=1, VAL1USER & VAL1DATE diset | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-SU-018** | Second Validation (VAL2) | Validasi dengan user berbeda | ISVAL2=1, request duavalidated | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-SU-019** | Gagal Validasi Sendiri | Coba validasi ulang sama user | Error "Cannot validate own request" | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-SU-020** | Un-Validate Request | Un-validate dengan reason | ISVAL reset, PENDING diset | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-SU-021** | Shortcut Keyboard | Enter=Validate, N=Skip, Esc=Close | Shortcut berfungsi dengan benar | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-SU-022** | Progress Indicator | Buka validation modal | Progress muncul (posisi / total) | [ ] PASS
[ ] FAIL | ___________ | +| ID | Judul Test Case | Langkah Utama | Expected Result | Hasil | Issue/Jawaban | +|----|----------------|---------------|-----------------|-------|---------------| +| **TC-SU-015** | Tampilkan Request Final | Access `/superuser/validate` | Hanya request "Fin" yang tampil | [ ] PASS
[ ] FAIL | ___________ | +| **TC-SU-016** | Filter by Date Range Validasi | Set date1 & date2 โ†’ filter | Filter berfungsi di halaman validasi | [ ] PASS
[ ] FAIL | ___________ | +| **TC-SU-017** | First Validation (VAL1) | Validasi request "Fin" | ISVAL1=1, VAL1USER & VAL1DATE diset | [ ] PASS
[ ] FAIL | ___________ | +| **TC-SU-018** | Second Validation (VAL2) | Validasi dengan user berbeda | ISVAL2=1, request duavalidated | [ ] PASS
[ ] FAIL | ___________ | +| **TC-SU-019** | Gagal Validasi Sendiri | Coba validasi ulang sama user | Error "Cannot validate own request" | [ ] PASS
[ ] FAIL | ___________ | +| **TC-SU-020** | Un-Validate Request | Un-validate dengan reason | ISVAL reset, PENDING diset | [ ] PASS
[ ] FAIL | ___________ | +| **TC-SU-021** | Shortcut Keyboard | Enter=Validate, N=Skip, Esc=Close | Shortcut berfungsi dengan benar | [ ] PASS
[ ] FAIL | ___________ | +| **TC-SU-022** | Progress Indicator | Buka validation modal | Progress muncul (posisi / total) | [ ] PASS
[ ] FAIL | ___________ | ### 4.4 SAMPLE MANAGEMENT SUPERUSER -| No. | ID | Judul Test Case | Langkah Utama | Expected Result | Hasil | Issue/Jawaban | -|-----|----|----------------|---------------|-----------------|-------|---------------| -| | **TC-SU-023** | Collect Sample | Buka dialog sample โ†’ Collect | STATUS=1, COLLECTIONDATE & USERID diset | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-SU-024** | Un-Collect Sample | Buka dialog sample โ†’ Un-Collect | STATUS di-reset, audit log tercatat | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-SU-025** | Un-Receive Sample | Un-receive sample yang received | Status berubah, audit log tercatat | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-SU-026** | Print Label Individu | Print label per tube | Label tercetak dengan ZPL format | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-SU-027** | Print Collection Label | Print collection label | Label collection tercetak | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-SU-028** | Print All Labels | Print semua tubes | Semua labels tercetak | [ ] PASS
[ ] FAIL | ___________ | +| ID | Judul Test Case | Langkah Utama | Expected Result | Hasil | Issue/Jawaban | +|----|----------------|---------------|-----------------|-------|---------------| +| **TC-SU-023** | Collect Sample | Buka dialog sample โ†’ Collect | STATUS=1, COLLECTIONDATE & USERID diset | [ ] PASS
[ ] FAIL | ___________ | +| **TC-SU-024** | Un-Collect Sample | Buka dialog sample โ†’ Un-Collect | STATUS di-reset, audit log tercatat | [ ] PASS
[ ] FAIL | ___________ | +| **TC-SU-025** | Un-Receive Sample | Un-receive sample yang received | Status berubah, audit log tercatat | [ ] PASS
[ ] FAIL | ___________ | +| **TC-SU-026** | Print Label Individu | Print label per tube | Label tercetak dengan ZPL format | [ ] PASS
[ ] FAIL | ___________ | +| **TC-SU-027** | Print Collection Label | Print collection label | Label collection tercetak | [ ] PASS
[ ] FAIL | ___________ | +| **TC-SU-028** | Print All Labels | Print semua tubes | Semua labels tercetak | [ ] PASS
[ ] FAIL | ___________ | ### 4.5 AUDIT TRAIL SUPERUSER -| No. | ID | Judul Test Case | Langkah Utama | Expected Result | Hasil | Issue/Jawaban | -|-----|----|----------------|---------------|-----------------|-------|---------------| -| | **TC-SU-029** | View Request Audit | Buka audit dialog request | Audit trail timeline ditampilkan | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-SU-030** | Filter by Category | Filter: All, Validation, Receive, Sample | Filter berfungsi sesuai kategori | [ ] PASS
[ ] FAIL | ___________ | +| ID | Judul Test Case | Langkah Utama | Expected Result | Hasil | Issue/Jawaban | +|----|----------------|---------------|-----------------|-------|---------------| +| **TC-SU-029** | View Request Audit | Buka audit dialog request | Audit trail timeline ditampilkan | [ ] PASS
[ ] FAIL | ___________ | +| **TC-SU-030** | Filter by Category | Filter: All, Validation, Receive, Sample | Filter berfungsi sesuai kategori | [ ] PASS
[ ] FAIL | ___________ | ### 4.6 REPORT SUPERUSER -| No. | ID | Judul Test Case | Langkah Utama | Expected Result | Hasil | Issue/Jawaban | -|-----|----|----------------|---------------|-----------------|-------|---------------| -| | **TC-SU-031** | View Report Validated | View report request duavalidated | Report ditampilkan lengkap | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-SU-032** | Cannot View Not Validated | View report belum duavalidated | Error: "Validated request required" | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-SU-033** | Print Report | Print report request validated | Print dialog buka, audit log tercatat | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-SU-034** | Generate PDF | Generate PDF request validated | PDF berhasil di-generate | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-SU-035** | Preview Report (No Audit) | Preview report tanpa log audit | Report tampil, tidak ada audit log | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-SU-036** | English Version Report | Access `/report/{id}/eng` | Report dalam Bahasa Inggris | [ ] PASS
[ ] FAIL | ___________ | +| ID | Judul Test Case | Langkah Utama | Expected Result | Hasil | Issue/Jawaban | +|----|----------------|---------------|-----------------|-------|---------------| +| **TC-SU-031** | View Report Validated | View report request duavalidated | Report ditampilkan lengkap | [ ] PASS
[ ] FAIL | ___________ | +| **TC-SU-032** | Cannot View Not Validated | View report belum duavalidated | Error: "Validated request required" | [ ] PASS
[ ] FAIL | ___________ | +| **TC-SU-033** | Print Report | Print report request validated | Print dialog buka, audit log tercatat | [ ] PASS
[ ] FAIL | ___________ | +| **TC-SU-034** | Generate PDF | Generate PDF request validated | PDF berhasil di-generate | [ ] PASS
[ ] FAIL | ___________ | +| **TC-SU-035** | Preview Report (No Audit) | Preview report tanpa log audit | Report tampil, tidak ada audit log | [ ] PASS
[ ] FAIL | ___________ | +| **TC-SU-036** | English Version Report | Access `/report/{id}/eng` | Report dalam Bahasa Inggris | [ ] PASS
[ ] FAIL | ___________ | ### 4.7 FITUR TAMBAHAN SUPERUSER -| No. | ID | Judul Test Case | Langkah Utama | Expected Result | Hasil | Issue/Jawaban | -|-----|----|----------------|---------------|-----------------|-------|---------------| -| | **TC-SU-037** | Edit Comment | Edit comment di dashboard | Comment berubah tersimpan | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-SU-038** | Error Handling 404 | Akses URL tidak valid | Custom notfound page tampil | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-SU-039** | Error Handling Unauthorized | Coba akses role lain | Redirect ke `/unauthorized` | [ ] PASS
[ ] FAIL | ___________ | +| ID | Judul Test Case | Langkah Utama | Expected Result | Hasil | Issue/Jawaban | +|----|----------------|---------------|-----------------|-------|---------------| +| **TC-SU-037** | Edit Comment | Edit comment di dashboard | Comment berubah tersimpan | [ ] PASS
[ ] FAIL | ___________ | +| **TC-SU-038** | Error Handling 404 | Akses URL tidak valid | Custom notfound page tampil | [ ] PASS
[ ] FAIL | ___________ | +| **TC-SU-039** | Error Handling Unauthorized | Coba akses role lain | Redirect ke `/unauthorized` | [ ] PASS
[ ] FAIL | ___________ | ### Ringkasan Superuser: _ LULUS / _____ GAGAL @@ -135,50 +135,50 @@ ### 5.1 DASHBOARD ADMIN -| No. | ID | Judul Test Case | Langkah Utama | Expected Result | Hasil | Issue/Jawaban | -|-----|----|----------------|---------------|-----------------|-------|---------------| -| | **TC-ADM-001** | Tampilkan Semua Request | Login Admin โ†’ `/admin` | Tabel requests semua status | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-ADM-002** | Filter & Search | Uji berbagai filter dan search | Semua berfungsi seperti Superuser | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-ADM-003** | Sample Collection Buttons Enabled | Buka dialog sample | Tombol Collect/Un-Coll/Un-Recv enabled | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-ADM-004** | Edit Comment Enabled | Edit comment dashboard | Comment dapat diubah | [ ] PASS
[ ] FAIL | ___________ | +| ID | Judul Test Case | Langkah Utama | Expected Result | Hasil | Issue/Jawaban | +|----|----------------|---------------|-----------------|-------|---------------| +| **TC-ADM-001** | Tampilkan Semua Request | Login Admin โ†’ `/admin` | Tabel requests semua status | [ ] PASS
[ ] FAIL | ___________ | +| **TC-ADM-002** | Filter & Search | Uji berbagai filter dan search | Semua berfungsi seperti Superuser | [ ] PASS
[ ] FAIL | ___________ | +| **TC-ADM-003** | Sample Collection Buttons Enabled | Buka dialog sample | Tombol Collect/Un-Coll/Un-Recv enabled | [ ] PASS
[ ] FAIL | ___________ | +| **TC-ADM-004** | Edit Comment Enabled | Edit comment dashboard | Comment dapat diubah | [ ] PASS
[ ] FAIL | ___________ | ### 5.2 VALIDASI ADMIN -| No. | ID | Judul Test Case | Langkah Utama | Expected Result | Hasil | Issue/Jawaban | -|-----|----|----------------|---------------|-----------------|-------|---------------| -| | **TC-ADM-005** | Tampilkan Request Final | Access `/admin/validate` | Hanya request "Fin" tampil | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-ADM-006** | First Validation (VAL1) | Validasi request "Fin" | ISVAL1=1, VAL1USER & VAL1DATE diset | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-ADM-007** | Second Validation (VAL2) | Validasi dengan user berbeda | ISVAL2=1, request duavalidated | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-ADM-008** | Gagal Validasi Sendiri | Coba validasi ulang sama user | Error "Cannot validate own request" | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-ADM-009** | Un-Validate Request | Un-validate request validated | ISVAL reset, PENDING diset | [ ] PASS
[ ] FAIL | ___________ | +| ID | Judul Test Case | Langkah Utama | Expected Result | Hasil | Issue/Jawaban | +|----|----------------|---------------|-----------------|-------|---------------| +| **TC-ADM-005** | Tampilkan Request Final | Access `/admin/validate` | Hanya request "Fin" tampil | [ ] PASS
[ ] FAIL | ___________ | +| **TC-ADM-006** | First Validation (VAL1) | Validasi request "Fin" | ISVAL1=1, VAL1USER & VAL1DATE diset | [ ] PASS
[ ] FAIL | ___________ | +| **TC-ADM-007** | Second Validation (VAL2) | Validasi dengan user berbeda | ISVAL2=1, request duavalidated | [ ] PASS
[ ] FAIL | ___________ | +| **TC-ADM-008** | Gagal Validasi Sendiri | Coba validasi ulang sama user | Error "Cannot validate own request" | [ ] PASS
[ ] FAIL | ___________ | +| **TC-ADM-009** | Un-Validate Request | Un-validate request validated | ISVAL reset, PENDING diset | [ ] PASS
[ ] FAIL | ___________ | ### 5.3 SAMPLE & FITUR LAIN ADMIN -| No. | ID | Judul Test Case | Langkah Utama | Expected Result | Hasil | Issue/Jawaban | -|-----|----|----------------|---------------|-----------------|-------|---------------| -| | **TC-ADM-010** | Collect Sample | Collect tube | STATUS=1, COLLECTIONDATE & USERID diset | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-ADM-011** | Un-Collect Sample | Un-collect tube | STATUS di-reset | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-ADM-012** | Un-Receive Sample | Un-receive sample | Status berubah, audit log tercatat | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-ADM-013** | Print Labels | Print individual/collection/all | Semua labels tercetak | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-ADM-014** | View Audit Trail | Buka audit dialog | Timeline audit ditampilkan | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-ADM-015** | Tampilkan List User | Access `/admin/users` | Tabel users ditampilkan | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-ADM-016** | Buat User Baru | Add user lengkap | User berhasil dibuat dan di-hash | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-ADM-017** | Update User | Edit user โ†’ ubah data | User berhasil di-update | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-ADM-018** | Delete User | Delete user | User terhapus | [ ] PASS
[ ] FAIL | ___________ | +| ID | Judul Test Case | Langkah Utama | Expected Result | Hasil | Issue/Jawaban | +|----|----------------|---------------|-----------------|-------|---------------| +| **TC-ADM-010** | Collect Sample | Collect tube | STATUS=1, COLLECTIONDATE & USERID diset | [ ] PASS
[ ] FAIL | ___________ | +| **TC-ADM-011** | Un-Collect Sample | Un-collect tube | STATUS di-reset | [ ] PASS
[ ] FAIL | ___________ | +| **TC-ADM-012** | Un-Receive Sample | Un-receive sample | Status berubah, audit log tercatat | [ ] PASS
[ ] FAIL | ___________ | +| **TC-ADM-013** | Print Labels | Print individual/collection/all | Semua labels tercetak | [ ] PASS
[ ] FAIL | ___________ | +| **TC-ADM-014** | View Audit Trail | Buka audit dialog | Timeline audit ditampilkan | [ ] PASS
[ ] FAIL | ___________ | +| **TC-ADM-015** | Tampilkan List User | Access `/admin/users` | Tabel users ditampilkan | [ ] PASS
[ ] FAIL | ___________ | +| **TC-ADM-016** | Buat User Baru | Add user lengkap | User berhasil dibuat dan di-hash | [ ] PASS
[ ] FAIL | ___________ | +| **TC-ADM-017** | Update User | Edit user โ†’ ubah data | User berhasil di-update | [ ] PASS
[ ] FAIL | ___________ | +| **TC-ADM-018** | Delete User | Delete user | User terhapus | [ ] PASS
[ ] FAIL | ___________ | ### 5.4 REPORT ADMIN -| No. | ID | Judul Test Case | Langkah Utama | Expected Result | Hasil | Issue/Jawaban | -|-----|----|----------------|---------------|-----------------|-------|---------------| -| | **TC-ADM-019** | View Report Validated | View report request validated | Report ditampilkan lengkap | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-ADM-020** | Print Report | Print report | Print dialog buka, audit log tercatat | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-ADM-021** | Generate PDF | Generate PDF report | PDF berhasil di-generate | [ ] PASS
[ ] FAIL | ___________ | +| ID | Judul Test Case | Langkah Utama | Expected Result | Hasil | Issue/Jawaban | +|----|----------------|---------------|-----------------|-------|---------------| +| **TC-ADM-019** | View Report Validated | View report request validated | Report ditampilkan lengkap | [ ] PASS
[ ] FAIL | ___________ | +| **TC-ADM-020** | Print Report | Print report | Print dialog buka, audit log tercatat | [ ] PASS
[ ] FAIL | ___________ | +| **TC-ADM-021** | Generate PDF | Generate PDF report | PDF berhasil di-generate | [ ] PASS
[ ] FAIL | ___________ | ### 5.5 ROLE RESTRICTIONS ADMIN -| No. | ID | Judul Test Case | Langkah Utama | Expected Result | Hasil | Issue/Jawaban | -|-----|----|----------------|---------------|-----------------|-------|---------------| -| | **TC-ADM-PageNav** | Cannot Access Role Lain | Coba `/superuser`, `/lab`, `/phlebo`, `/cs` | Redirect ke unauthorized/error | [ ] PASS
[ ] FAIL | ___________ | +| ID | Judul Test Case | Langkah Utama | Expected Result | Hasil | Issue/Jawaban | +|----|----------------|---------------|-----------------|-------|---------------| +| **TC-ADM-PageNav** | Cannot Access Role Lain | Coba `/superuser`, `/lab`, `/phlebo`, `/cs` | Redirect ke unauthorized/error | [ ] PASS
[ ] FAIL | ___________ | ### Ringkasan Admin: _ LULUS / _____ GAGAL @@ -188,47 +188,47 @@ ### 6.1 DASHBOARD LAB -| No. | ID | Judul Test Case | Langkah Utama | Expected Result | Hasil | Issue/Jawaban | -|-----|----|----------------|---------------|-----------------|-------|---------------| -| | **TC-LAB-001** | Filter Test Code Alphabetical | Login Lab โ†’ `/lab` | Hanya request TESTS A-Z yang tampil | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-LAB-002** | View Request Details | Buka request | Detail request ditampilkan | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-LAB-003** | Filter & Search dalam Batas Filter | Uji filter & search | Sesuai batas test code A-Z | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-LAB-004** | Sample Buttons Enabled | Buka dialog sample | Tombol Collect/Un-Coll/Un-Recv enabled | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-LAB-005** | Edit Comment Disabled | Cek comment field | Comment field non-editable | [ ] PASS
[ ] FAIL | ___________ | +| ID | Judul Test Case | Langkah Utama | Expected Result | Hasil | Issue/Jawaban | +|----|----------------|---------------|-----------------|-------|---------------| +| **TC-LAB-001** | Filter Test Code Alphabetical | Login Lab โ†’ `/lab` | Hanya request TESTS A-Z yang tampil | [ ] PASS
[ ] FAIL | ___________ | +| **TC-LAB-002** | View Request Details | Buka request | Detail request ditampilkan | [ ] PASS
[ ] FAIL | ___________ | +| **TC-LAB-003** | Filter & Search dalam Batas Filter | Uji filter & search | Sesuai batas test code A-Z | [ ] PASS
[ ] FAIL | ___________ | +| **TC-LAB-004** | Sample Buttons Enabled | Buka dialog sample | Tombol Collect/Un-Coll/Un-Recv enabled | [ ] PASS
[ ] FAIL | ___________ | +| **TC-LAB-005** | Edit Comment Disabled | Cek comment field | Comment field non-editable | [ ] PASS
[ ] FAIL | ___________ | ### 6.2 VALIDASI LAB -| No. | ID | Judul Test Case | Langkah Utama | Expected Result | Hasil | Issue/Jawaban | -|-----|----|----------------|---------------|-----------------|-------|---------------| -| | **TC-LAB-006** | Tampilkan Request Final | Access `/lab/validate` | Hanya "Fin" dengan TESTS A-Z tampil | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-LAB-007** | First Validation (VAL1) | Validasi request "Fin" | ISVAL1=1, VAL1USER & VAL1DATE diset | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-LAB-008** | Second Validation (VAL2) | Validasi user berbeda | ISVAL2=1, request duavalidated | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-LAB-009** | Gagal Validasi Sendiri | Coba validasi sendiri | Error "Cannot validate own request" | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-LAB-010** | Un-Validate Disabled | Coba un-validate | Error/Unauthorized - cannot un-validate | [ ] PASS
[ ] FAIL | ___________ | +| ID | Judul Test Case | Langkah Utama | Expected Result | Hasil | Issue/Jawaban | +|----|----------------|---------------|-----------------|-------|---------------| +| **TC-LAB-006** | Tampilkan Request Final | Access `/lab/validate` | Hanya "Fin" dengan TESTS A-Z tampil | [ ] PASS
[ ] FAIL | ___________ | +| **TC-LAB-007** | First Validation (VAL1) | Validasi request "Fin" | ISVAL1=1, VAL1USER & VAL1DATE diset | [ ] PASS
[ ] FAIL | ___________ | +| **TC-LAB-008** | Second Validation (VAL2) | Validasi user berbeda | ISVAL2=1, request duavalidated | [ ] PASS
[ ] FAIL | ___________ | +| **TC-LAB-009** | Gagal Validasi Sendiri | Coba validasi sendiri | Error "Cannot validate own request" | [ ] PASS
[ ] FAIL | ___________ | +| **TC-LAB-010** | Un-Validate Disabled | Coba un-validate | Error/Unauthorized - cannot un-validate | [ ] PASS
[ ] FAIL | ___________ | ### 6.3 SAMPLE & FITUR LAIN LAB -| No. | ID | Judul Test Case | Langkah Utama | Expected Result | Hasil | Issue/Jawaban | -|-----|----|----------------|---------------|-----------------|-------|---------------| -| | **TC-LAB-011** | Collect Sample | Collect tube | STATUS=1, COLLECTIONDATE & USERID diset | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-LAB-012** | Un-Collect Sample | Un-collect tube | STATUS di-reset | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-LAB-013** | Un-Receive Sample | Un-receive sample | Status berubah, audit log tercatat | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-LAB-014** | Print Labels | Print semua jenis label | Semua labels tercetak | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-LAB-015** | View Audit Trail | Buka audit dialog | Timeline audit ditampilkan | [ ] PASS
[ ] FAIL | ___________ | +| ID | Judul Test Case | Langkah Utama | Expected Result | Hasil | Issue/Jawaban | +|----|----------------|---------------|-----------------|-------|---------------| +| **TC-LAB-011** | Collect Sample | Collect tube | STATUS=1, COLLECTIONDATE & USERID diset | [ ] PASS
[ ] FAIL | ___________ | +| **TC-LAB-012** | Un-Collect Sample | Un-collect tube | STATUS di-reset | [ ] PASS
[ ] FAIL | ___________ | +| **TC-LAB-013** | Un-Receive Sample | Un-receive sample | Status berubah, audit log tercatat | [ ] PASS
[ ] FAIL | ___________ | +| **TC-LAB-014** | Print Labels | Print semua jenis label | Semua labels tercetak | [ ] PASS
[ ] FAIL | ___________ | +| **TC-LAB-015** | View Audit Trail | Buka audit dialog | Timeline audit ditampilkan | [ ] PASS
[ ] FAIL | ___________ | ### 6.4 REPORT LAB -| No. | ID | Judul Test Case | Langkah Utama | Expected Result | Hasil | Issue/Jawaban | -|-----|----|----------------|---------------|-----------------|-------|---------------| -| | **TC-LAB-016** | View Report Validated | View report request validated | Report ditampilkan lengkap | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-LAB-017** | Print Report | Print report validated | Print dialog buka, audit log tercatat | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-LAB-018** | Generate PDF | Generate PDF | PDF berhasil di-generate | [ ] PASS
[ ] FAIL | ___________ | +| ID | Judul Test Case | Langkah Utama | Expected Result | Hasil | Issue/Jawaban | +|----|----------------|---------------|-----------------|-------|---------------| +| **TC-LAB-016** | View Report Validated | View report request validated | Report ditampilkan lengkap | [ ] PASS
[ ] FAIL | ___________ | +| **TC-LAB-017** | Print Report | Print report validated | Print dialog buka, audit log tercatat | [ ] PASS
[ ] FAIL | ___________ | +| **TC-LAB-018** | Generate PDF | Generate PDF | PDF berhasil di-generate | [ ] PASS
[ ] FAIL | ___________ | ### 6.5 ROLE RESTRICTIONS LAB -| No. | ID | Judul Test Case | Langkah Utama | Expected Result | Hasil | Issue/Jawaban | -|-----|----|----------------|---------------|-----------------|-------|---------------| -| | **TC-LAB-PageNav** | Cannot Access Role Lain | Coba `/superuser`, `/admin`, `/phlebo`, `/cs` | Redirect ke unauthorized/error | [ ] PASS
[ ] FAIL | ___________ | +| ID | Judul Test Case | Langkah Utama | Expected Result | Hasil | Issue/Jawaban | +|----|----------------|---------------|-----------------|-------|---------------| +| **TC-LAB-PageNav** | Cannot Access Role Lain | Coba `/superuser`, `/admin`, `/phlebo`, `/cs` | Redirect ke unauthorized/error | [ ] PASS
[ ] FAIL | ___________ | ### Ringkasan Lab: _ LULUS / _____ GAGAL @@ -236,20 +236,20 @@ ## 7. TEST CASE - PHLEBOTOMIST (ROLE 3) -| No. | ID | Judul Test Case | Langkah Utama | Expected Result | Hasil | Issue/Jawaban | -|-----|----|----------------|---------------|-----------------|-------|---------------| -| | **TC-PHB-001** | Tampilkan Semua Request | Login Phlebo โ†’ `/phlebo` | Tabel requests semua status | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-PHB-002** | Filter & Search | Uji filter & search | Semua berfungsi | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-PHB-003** | Sample Collection Disabled | Buka dialog sample | Tombol Collect/Un-Coll/Un-Recv DISABLED | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-PHB-004** | Edit Comment Disabled | Cek comment field | Comment field non-editable | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-PHB-005** | Validation Page Denied | Coba `/phlebo/validate` | Halaman tidak tersedia/unauthorized | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-PHB-006** | View Sample Details (Read-Only) | Buka dialog sample | Sample details view-only | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-PHB-007** | Print Labels | Print individual/collection/all | Labels tercetak | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-PHB-008** | View Audit Trail | Buka audit dialog | Audit trail ditampilkan (read-only) | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-PHB-009** | Cannot View Report | Coba view report | Report tidak tersedia/error | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-PHB-010** | Cannot Print Report | Coba print report | Print tidak tersedia | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-PHB-011** | Cannot Generate PDF | Coba generate PDF | PDF tidak tersedia | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-PHB-PageNav** | Cannot Access Role Lain | Coba `/superuser`, `/admin`, `/lab`, `/cs` | Redirect ke unauthorized/error | [ ] PASS
[ ] FAIL | ___________ | +| ID | Judul Test Case | Langkah Utama | Expected Result | Hasil | Issue/Jawaban | +|----|----------------|---------------|-----------------|-------|---------------| +| **TC-PHB-001** | Tampilkan Semua Request | Login Phlebo โ†’ `/phlebo` | Tabel requests semua status | [ ] PASS
[ ] FAIL | ___________ | +| **TC-PHB-002** | Filter & Search | Uji filter & search | Semua berfungsi | [ ] PASS
[ ] FAIL | ___________ | +| **TC-PHB-003** | Sample Collection Disabled | Buka dialog sample | Tombol Collect/Un-Coll/Un-Recv DISABLED | [ ] PASS
[ ] FAIL | ___________ | +| **TC-PHB-004** | Edit Comment Disabled | Cek comment field | Comment field non-editable | [ ] PASS
[ ] FAIL | ___________ | +| **TC-PHB-005** | Validation Page Denied | Coba `/phlebo/validate` | Halaman tidak tersedia/unauthorized | [ ] PASS
[ ] FAIL | ___________ | +| **TC-PHB-006** | View Sample Details (Read-Only) | Buka dialog sample | Sample details view-only | [ ] PASS
[ ] FAIL | ___________ | +| **TC-PHB-007** | Print Labels | Print individual/collection/all | Labels tercetak | [ ] PASS
[ ] FAIL | ___________ | +| **TC-PHB-008** | View Audit Trail | Buka audit dialog | Audit trail ditampilkan (read-only) | [ ] PASS
[ ] FAIL | ___________ | +| **TC-PHB-009** | Cannot View Report | Coba view report | Report tidak tersedia/error | [ ] PASS
[ ] FAIL | ___________ | +| **TC-PHB-010** | Cannot Print Report | Coba print report | Print tidak tersedia | [ ] PASS
[ ] FAIL | ___________ | +| **TC-PHB-011** | Cannot Generate PDF | Coba generate PDF | PDF tidak tersedia | [ ] PASS
[ ] FAIL | ___________ | +| **TC-PHB-PageNav** | Cannot Access Role Lain | Coba `/superuser`, `/admin`, `/lab`, `/cs` | Redirect ke unauthorized/error | [ ] PASS
[ ] FAIL | ___________ | ### Ringkasan Phlebotomist: _ LULUS / _____ GAGAL @@ -257,20 +257,20 @@ ## 8. TEST CASE - CUSTOMER SERVICE (ROLE 4) -| No. | ID | Judul Test Case | Langkah Utama | Expected Result | Hasil | Issue/Jawaban | -|-----|----|----------------|---------------|-----------------|-------|---------------| -| | **TC-CS-001** | Tampilkan Semua Request | Login CS โ†’ `/cs` | Tabel requests semua status | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-CS-002** | Filter & Search | Uji filter & search | Semua berfungsi | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-CS-003** | Sample Collection Disabled | Buka dialog sample | Tombol Collect/Un-Coll/Un-Recv DISABLED | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-CS-004** | Edit Comment Disabled | Cek comment field | Comment field non-editable | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-CS-005** | Validation Page Denied | Coba `/cs/validate` | Halaman tidak tersailable | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-CS-006** | View Sample Details (Read-Only) | Buka dialog sample | Sample details view-only | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-CS-007** | Print Labels (Limited) | Print labels | Labels tercetak sesuai kapasitas | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-CS-008** | View Audit Trail | Buka audit dialog | Audit trail ditampilkan | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-CS-009** | View Report Validated | View report request validated | Report ditampilkan lengkap | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-CS-010** | Print Report | Print report validated | Print dialog buka, audit log tercatat | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-CS-011** | Generate PDF | Generate PDF | PDF berhasil di-generate | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-CS-PageNav** | Cannot Access Role Lain | Coba `/superuser`, `/admin`, `/lab`, `/phlebo` | Redirect ke unauthorized/error | [ ] PASS
[ ] FAIL | ___________ | +| ID | Judul Test Case | Langkah Utama | Expected Result | Hasil | Issue/Jawaban | +|----|----------------|---------------|-----------------|-------|---------------| +| **TC-CS-001** | Tampilkan Semua Request | Login CS โ†’ `/cs` | Tabel requests semua status | [ ] PASS
[ ] FAIL | ___________ | +| **TC-CS-002** | Filter & Search | Uji filter & search | Semua berfungsi | [ ] PASS
[ ] FAIL | ___________ | +| **TC-CS-003** | Sample Collection Disabled | Buka dialog sample | Tombol Collect/Un-Coll/Un-Recv DISABLED | [ ] PASS
[ ] FAIL | ___________ | +| **TC-CS-004** | Edit Comment Disabled | Cek comment field | Comment field non-editable | [ ] PASS
[ ] FAIL | ___________ | +| **TC-CS-005** | Validation Page Denied | Coba `/cs/validate` | Halaman tidak tersailable | [ ] PASS
[ ] FAIL | ___________ | +| **TC-CS-006** | View Sample Details (Read-Only) | Buka dialog sample | Sample details view-only | [ ] PASS
[ ] FAIL | ___________ | +| **TC-CS-007** | Print Labels (Limited) | Print labels | Labels tercetak sesuai kapasitas | [ ] PASS
[ ] FAIL | ___________ | +| **TC-CS-008** | View Audit Trail | Buka audit dialog | Audit trail ditampilkan | [ ] PASS
[ ] FAIL | ___________ | +| **TC-CS-009** | View Report Validated | View report request validated | Report ditampilkan lengkap | [ ] PASS
[ ] FAIL | ___________ | +| **TC-CS-010** | Print Report | Print report validated | Print dialog buka, audit log tercatat | [ ] PASS
[ ] FAIL | ___________ | +| **TC-CS-011** | Generate PDF | Generate PDF | PDF berhasil di-generate | [ ] PASS
[ ] FAIL | ___________ | +| **TC-CS-PageNav** | Cannot Access Role Lain | Coba `/superuser`, `/admin`, `/lab`, `/phlebo` | Redirect ke unauthorized/error | [ ] PASS
[ ] FAIL | ___________ | ### Ringkasan Customer Service: _ LULUS / _____ GAGAL @@ -278,23 +278,23 @@ ## 9. TEST CASE - FITUR CROSS-ROLE -| No. | ID | Judul Test Case | Langkah Utama | Expected Result | Hasil | Issue/Jawaban | -|-----|----|----------------|---------------|-----------------|-------|---------------| -| | **TC-X-001** | User Mgmt Role Restrictions | Lab/Phlebo/CS coba user management API | Error unauthorized | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-X-002** | Cross-Role Validation | Lab A validasi VAL1, Superuser B validasi VAL2 | Cross-role validation berhasil | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-X-003** | Un-Validate Role Restrictions | Lab/Phlebo/CS coba un-validate | Error unauthorized - only SU/Admin | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-X-004** | Un-Receive Role Restrictions | Lab/Phlebo/CS coba un-receive | Error unauthorized - only SU/Admin | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-X-005** | Report Access Restrictions | Coba view report semua role | SU/Admin/Lab/CS OK, Phlebo NOT | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-X-006** | Report Validated Requirement | View report hanya VAR1 vs duavalidated | Hanya duavalidated dapat dilihat | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-X-007** | Comment Edit Restrictions | Lab/Phlebo/CS coba edit comment | Error - only SU/Admin editable | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-X-008** | Validasi tidak Pengaruhi Data Lain | Record data sebelum & sesudah validasi | Hanya status validasi berubah | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-X-009** | Un-Validate Mempertahankan Data | Record data sebelum & sesudah un-validate | Hanya status validasi berubah | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-X-010** | Audit Trail Logging | Lakukan berbagai aktivitas | Semua tercatat di audit log | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-X-011** | Concurrent Validation | 2 user buka validation dialog bersamaan | Validasi berhasil, tidak conflict | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-X-012** | Concurrent Sample Collection | 2 user collect tube berbeda bersamaan | Semua berhasil tercatat | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-X-013** | Session Timeout | Tunggu session timeout | Redirect ke login | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-X-014** | Password Hashing Security | Buat user โ†’ cek database | Password dalam HASH bukan plain | [ ] PASS
[ ] FAIL | ___________ | -| | **TC-X-015** | Legacy Read-Only | Cek koneksi & fungsi Firebird | Hanya READ dari Firebird, TIDAK WRITE | [ ] PASS
[ ] FAIL | ___________ | +| ID | Judul Test Case | Langkah Utama | Expected Result | Hasil | Issue/Jawaban | +|----|----------------|---------------|-----------------|-------|---------------| +| **TC-X-001** | User Mgmt Role Restrictions | Lab/Phlebo/CS coba user management API | Error unauthorized | [ ] PASS
[ ] FAIL | ___________ | +| **TC-X-002** | Cross-Role Validation | Lab A validasi VAL1, Superuser B validasi VAL2 | Cross-role validation berhasil | [ ] PASS
[ ] FAIL | ___________ | +| **TC-X-003** | Un-Validate Role Restrictions | Lab/Phlebo/CS coba un-validate | Error unauthorized - only SU/Admin | [ ] PASS
[ ] FAIL | ___________ | +| **TC-X-004** | Un-Receive Role Restrictions | Lab/Phlebo/CS coba un-receive | Error unauthorized - only SU/Admin | [ ] PASS
[ ] FAIL | ___________ | +| **TC-X-005** | Report Access Restrictions | Coba view report semua role | SU/Admin/Lab/CS OK, Phlebo NOT | [ ] PASS
[ ] FAIL | ___________ | +| **TC-X-006** | Report Validated Requirement | View report hanya VAR1 vs duavalidated | Hanya duavalidated dapat dilihat | [ ] PASS
[ ] FAIL | ___________ | +| **TC-X-007** | Comment Edit Restrictions | Lab/Phlebo/CS coba edit comment | Error - only SU/Admin editable | [ ] PASS
[ ] FAIL | ___________ | +| **TC-X-008** | Validasi tidak Pengaruhi Data Lain | Record data sebelum & sesudah validasi | Hanya status validasi berubah | [ ] PASS
[ ] FAIL | ___________ | +| **TC-X-009** | Un-Validate Mempertahankan Data | Record data sebelum & sesudah un-validate | Hanya status validasi berubah | [ ] PASS
[ ] FAIL | ___________ | +| **TC-X-010** | Audit Trail Logging | Lakukan berbagai aktivitas | Semua tercatat di audit log | [ ] PASS
[ ] FAIL | ___________ | +| **TC-X-011** | Concurrent Validation | 2 user buka validation dialog bersamaan | Validasi berhasil, tidak conflict | [ ] PASS
[ ] FAIL | ___________ | +| **TC-X-012** | Concurrent Sample Collection | 2 user collect tube berbeda bersamaan | Semua berhasil tercatat | [ ] PASS
[ ] FAIL | ___________ | +| **TC-X-013** | Session Timeout | Tunggu session timeout | Redirect ke login | [ ] PASS
[ ] FAIL | ___________ | +| **TC-X-014** | Password Hashing Security | Buat user โ†’ cek database | Password dalam HASH bukan plain | [ ] PASS
[ ] FAIL | ___________ | +| **TC-X-015** | Legacy Read-Only | Cek koneksi & fungsi Firebird | Hanya READ dari Firebird, TIDAK WRITE | [ ] PASS
[ ] FAIL | ___________ | ### Ringkasan Cross-Role: _ LULUS / _____ GAGAL @@ -304,8 +304,8 @@ ### 10.1 Functional Criteria -| No. | Kriteria Functional | Hasil | -|-----|---------------------|-------| +| Kriteria Functional | Hasil | +|---------------------|-------| | FC-01 | Autentikasi benar untuk semua role (0-4) | [ ] PASS
[ ] FAIL | | FC-02 | Role-based access control (RBAC) berfungsi | [ ] PASS
[ ] FAIL | | FC-03 | Dashboard menampilkan request sesuai filter & role | [ ] PASS
[ ] FAIL | @@ -330,8 +330,8 @@ ### 10.2 Security Criteria -| No. | Kriteria Security | Hasil | -|-----|-------------------|-------| +| Kriteria Security | Hasil | +|-------------------|-------| | SC-01 | Password disimpan dalam bentuk HASH (bukan plain) | [ ] PASS
[ ] FAIL | | SC-02 | Session timeout bekerja dengan benar | [ ] PASS
[ ] FAIL | | SC-03 | Tidak ada SQL injection vulnerability | [ ] PASS
[ ] FAIL | @@ -347,8 +347,8 @@ ### 10.3 Performance Criteria -| No. | Kriteria Performance | Target | Hasil Aktual | Pass/Fail | -|-----|----------------------|--------|--------------|-----------| +| Kriteria Performance | Target | Hasil Aktual | Pass/Fail | +|----------------------|--------|--------------|-----------| | PC-01 | Dashboard load time | < 3 detik | __________ detik | [ ] PASS
[ ] FAIL | | PC-02 | Validation page load time | < 3 detik | __________ detik | [ ] PASS
[ ] FAIL | | PC-03 | Report generation time | < 5 detik | __________ detik | [ ] PASS
[ ] FAIL | @@ -362,8 +362,8 @@ ### 10.4 Usability Criteria -| No. | Kriteria Usability | Hasil | -|-----|---------------------|-------| +| Kriteria Usability | Hasil | +|---------------------|-------| | UC-01 | UI user-friendly dan mudah digunakan | [ ] PASS
[ ] FAIL | | UC-02 | Shortcut keyboard (Enter, N, Esc) berfungsi | [ ] PASS
[ ] FAIL | | UC-03 | Error messages jelas dan actionable | [ ] PASS
[ ] FAIL | @@ -377,8 +377,8 @@ ### 10.5 Data Integrity Criteria -| No. | Kriteria Data Integrity | Hasil | -|-----|-------------------------|-------| +| Kriteria Data Integrity | Hasil | +|-------------------------|-------| | DC-01 | Validasi tidak menghapus/mengubah data lain | [ ] PASS
[ ] FAIL | | DC-02 | Un-validate hanya menghapus status validasi | [ ] PASS
[ ] FAIL | | DC-03 | Sample collection tidak modifikasi data lain | [ ] PASS
[ ] FAIL | @@ -431,13 +431,13 @@ Untuk sistem dinyatakan **APPROVED** untuk production: ### 11.3 Issue Critical yang Harus Diperbaiki -| No. | Issue | Severity | Impact | Assigned To | Deadline | -|-----|-------|----------|--------|-------------|----------| -| 1 | ________________________________ | High | ___________ | ___________ | _______ | -| 2 | ________________________________ | Medium | ___________ | ___________ | _______ | -| 3 | ________________________________ | Low | ___________ | ___________ | _______ | -| 4 | ________________________________ | | ___________ | ___________ | _______ | -| 5 | ________________________________ | | ___________ | ___________ | _______ | +| Issue | Severity | Impact | Assigned To | Deadline | +|-------|----------|--------|-------------|----------| +| ________________________________ | High | ___________ | ___________ | _______ | +| ________________________________ | Medium | ___________ | ___________ | _______ | +| ________________________________ | Low | ___________ | ___________ | _______ | +| ________________________________ | | ___________ | ___________ | _______ | +| ________________________________ | | ___________ | ___________ | _______ | --- diff --git a/app/Controllers/ReportController.php b/app/Controllers/ReportController.php index 9c6f924..90e08bd 100644 --- a/app/Controllers/ReportController.php +++ b/app/Controllers/ReportController.php @@ -112,9 +112,10 @@ class ReportController extends BaseController $html = view('report/template', $data); $filename = $accessnumber . '.pdf'; + $collectionDate = $data['collectionDate'] ?? ''; try { - $jobId = $this->postToSpooler($html, $filename); + $jobId = $this->postToSpooler($html, $filename, $collectionDate); return $this->response->setJSON([ 'success' => true, 'jobId' => $jobId, @@ -153,15 +154,22 @@ class ReportController extends BaseController return $this->response->setJSON($response); } - private function postToSpooler($html, $filename) + private function postToSpooler($html, $filename, $collectionDate = '') { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'http://glenlis:3000/api/pdf/generate'); curl_setopt($ch, CURLOPT_POST, 1); - curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([ + + $payload = [ 'html' => $html, 'filename' => $filename - ])); + ]; + + if ($collectionDate) { + $payload['collectionDate'] = $collectionDate; + } + + curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, [ 'Content-Type: application/json' diff --git a/app/Libraries/ReportHelper.php b/app/Libraries/ReportHelper.php index 76a4bbb..dc6b35e 100644 --- a/app/Libraries/ReportHelper.php +++ b/app/Libraries/ReportHelper.php @@ -32,6 +32,7 @@ class ReportHelper $valBy = $this->getValBy($accessnumber); $valData = $this->getValData($accessnumber); + $collectionDate = $this->getCollectionDateRaw($accessnumber); return [ 'hostnumber' => $hostnumber, 'result' => $result, @@ -45,7 +46,8 @@ class ReportHelper 'valBy' => $valBy, 'val1User' => $valData['VAL1USER'] ?? '', 'val2User' => $valData['VAL2USER'] ?? '', - 'date' => date('d-m-Y H:i') + 'date' => date('d-m-Y H:i'), + 'collectionDate' => $collectionDate ]; } @@ -783,4 +785,13 @@ class ReportHelper $row = $this->db->query($sql, [$accessnumber])->getRowArray(); return $row ?? []; } + + private function getCollectionDateRaw(string $accessnumber): string { + $sql = "SELECT FORMAT(SR.COLLECTIONDATE,'yyyy-MM-dd') AS COLLDATE + FROM REQUESTS R + LEFT JOIN SP_REQUESTS SR ON SR.SP_ACCESSNUMBER=R.ACCESSNUMBER + WHERE R.ACCESSNUMBER=?"; + $row = $this->db->query($sql, [$accessnumber])->getRowArray(); + return $row['COLLDATE'] ?? ''; + } } diff --git a/app/Views/shared/content_requests.php b/app/Views/shared/content_requests.php index b375e77..61a21c6 100644 --- a/app/Views/shared/content_requests.php +++ b/app/Views/shared/content_requests.php @@ -183,9 +183,10 @@
Tests - ResTo - Val - +ResTo +Val +Result + @@ -198,14 +199,65 @@ - - -
-

1:

-

2:

-
- - + + +
+

1:

+

2:

+
+ + + + +