Project

General

Profile

Feature #27166 » test-case-27166.md

Test Case #27166 Job Schedule Shift Dropdown - Suphawan Phiwngam, 05/28/2026 09:23 PM

 
1
# Test Case — #27166 Job Schedule Shift Dropdown
2

    
3
## TC-01: สร้าง Job ใหม่ — Single Slot (DatePicker + Shift)
4

    
5
**Precondition:** มี Shift ในระบบ (Shift-1: 08:00, Shift-2: 16:55, Shift-3: 00:30)
6

    
7
| Step | Action | Expected |
8
|------|--------|----------|
9
| 1 | เปิดหน้า Job Setting → กด Add | แสดง form New Job |
10
| 2 | กรอกข้อมูล Job Name, Target, Model, Machine ครบ | - |
11
| 3 | ที่ Job Schedule → Mode = "Single" | แสดง DatePicker + Shift dropdown |
12
| 4 | เลือกวันที่ 2026-06-01 | DatePicker แสดง 2026-06-01 |
13
| 5 | เลือก Shift-1 (08:00) | Dropdown แสดง "Shift-1 (08:00)" |
14
| 6 | กด Save | บันทึกสำเร็จ, ms_job_plan มี ms_shift_id, plan_date=2026-06-01, start_ts=2026-06-01 08:00:00, end_ts=2026-06-01 16:55:00 |
15

    
16
---
17

    
18
## TC-02: สร้าง Job ใหม่ — Date Range Mode (สร้าง plan ทุกวัน)
19

    
20
| Step | Action | Expected |
21
|------|--------|----------|
22
| 1 | เปิด form New Job |  |
23
| 2 | ที่ Job Schedule → สลับ Mode เป็น "Date Range" | แสดง RangePicker + Shift dropdown |
24
| 3 | เลือกวันที่ 2026-06-01 ~ 2026-06-05 | - |
25
| 4 | เลือก Shift-1 (08:00) | - |
26
| 5 | กด Save | บันทึกสำเร็จ, ms_job_plan มี 5 records (วันละ 1) ทุก record มี ms_shift_id, plan_date, start_ts, end_ts ถูกต้อง |
27

    
28
---
29

    
30
## TC-03: สร้าง Job ใหม่ — หลาย Slot (คนละวัน คนละกะ)
31

    
32
| Step | Action | Expected |
33
|------|--------|----------|
34
| 1 | เปิด form New Job, Mode = "Single" | - |
35
| 2 | Slot 1: เลือกวันที่ 2026-06-01, Shift-1 | - |
36
| 3 | กดปุ่ม + เพิ่ม Slot 2 | แสดง row ใหม่ |
37
| 4 | Slot 2: เลือกวันที่ 2026-06-01, Shift-2 | - |
38
| 5 | กดปุ่ม + เพิ่ม Slot 3 | แสดง row ใหม่ |
39
| 6 | Slot 3: เลือกวันที่ 2026-06-02, Shift-1 | - |
40
| 7 | กด Save | บันทึกสำเร็จ, ms_job_plan มี 3 records ถูกต้อง |
41

    
42
---
43

    
44
## TC-04: กะข้ามวัน (Shift-3 start=01:30, end=08:00)
45

    
46
| Step | Action | Expected |
47
|------|--------|----------|
48
| 1 | เปิด form New Job, Mode = "Single" | - |
49
| 2 | เลือกวันที่ 2026-05-28, Shift-3 (01:30) | - |
50
| 3 | กด Save | start_ts=2026-05-29 01:30:00, end_ts=2026-05-29 08:00:00 (ข้ามวัน — เลือกวันที่ 28 แต่ Shift-3 เริ่ม 01:30 ซึ่งเป็นช่วงหลังเที่ยงคืน ต้องบันทึกเป็นวันที่ 29) |
51

    
52
**หมายเหตุ:** Shift-3 start=01:30 เป็นกะดึกที่เริ่มหลังเที่ยงคืน เมื่อเลือกวันที่ 28 หมายถึงคืนวันที่ 28→29 ดังนั้น start_ts/end_ts ต้องเป็นวันที่ 29
53

    
54
**กรณี Shift-3 start=23:00:**
55

    
56
| Step | Action | Expected |
57
|------|--------|----------|
58
| 1 | เลือกวันที่ 2026-06-01, Shift ที่ start=23:00 | - |
59
| 2 | กด Save | start_ts=2026-06-01 23:00:00, end_ts=2026-06-02 08:00:00 (ข้ามวัน) |
60

    
61
---
62

    
63
## TC-04.1: Delete Job — ต้องลบ ms_job_plan ด้วย
64

    
65
| Step | Action | Expected |
66
|------|--------|----------|
67
| 1 | สร้าง Job ใหม่พร้อม Job Schedule (มี record ใน ms_job_plan) | บันทึกสำเร็จ |
68
| 2 | เปิดหน้า Job Setting → เลือก Job ที่สร้าง → กด Delete | - |
69
| 3 | Confirm ลบ | ลบ Job สำเร็จ, ข้อมูลใน ms_job_plan ที่อ้างอิง ms_job_id นั้นต้องถูกลบด้วย |
70

    
71
---
72

    
73
## TC-05: Validation — ห้าม Duplicate (วันที่ + กะ ซ้ำ)
74

    
75
| Step | Action | Expected |
76
|------|--------|----------|
77
| 1 | Slot 1: เลือกวันที่ 2026-06-01, Shift-1 | - |
78
| 2 | Slot 2: เลือกวันที่ 2026-06-01, Shift-1 (ซ้ำ) | - |
79
| 3 | กด Save | แสดง error/warning ว่า duplicate |
80

    
81
---
82

    
83
## TC-06: Validation — Check Overlap กับ Job อื่น
84

    
85
| Step | Action | Expected |
86
|------|--------|----------|
87
| 1 | มี Job A ที่ assign เครื่อง LP01, plan วันที่ 2026-06-01 Shift-1 | - |
88
| 2 | สร้าง Job B assign เครื่อง LP01 | - |
89
| 3 | เลือกวันที่ 2026-06-01, Shift-1 | แสดง popup warning overlap กับ Job A |
90

    
91
---
92

    
93
## TC-07: Edit Job เดิม (Legacy) — Match Shift ได้
94

    
95
**Precondition:** Job เดิมมี ms_job_plan ที่ start_ts=2026-05-20 08:00:00, ms_shift_id=NULL
96

    
97
| Step | Action | Expected |
98
|------|--------|----------|
99
| 1 | เปิด Edit Job เดิม | - |
100
| 2 | ดู Job Schedule section | แสดงเป็น DatePicker (2026-05-20) + Shift dropdown (Shift-1) เพราะ match time part 08:00:00 กับ Shift-1 ได้ |
101

    
102
---
103

    
104
## TC-08: Edit Job เดิม (Legacy) — Match Shift ไม่ได้
105

    
106
**Precondition:** Job เดิมมี ms_job_plan ที่ start_ts=2026-05-20 09:30:00, ms_shift_id=NULL (ไม่ตรงกับ shift ใดเลย)
107

    
108
| Step | Action | Expected |
109
|------|--------|----------|
110
| 1 | เปิด Edit Job เดิม | - |
111
| 2 | ดู Job Schedule section | แสดงเป็น RangePicker เหมือนเดิม (legacy mode) |
112

    
113
---
114

    
115
## TC-09: แก้เวลา Master Shift — Popup Confirm + Recalculate
116

    
117
**Precondition:** มี Job Plan อนาคต 5 รายการที่อ้างอิง Shift-1
118

    
119
| Step | Action | Expected |
120
|------|--------|----------|
121
| 1 | เปิดหน้า Shift Setting → Edit Shift-1 | - |
122
| 2 | เปลี่ยน start_ts จาก 08:00 เป็น 08:30 | - |
123
| 3 | กด Save | แสดง popup confirm: "การแก้ไขเวลากะจะอัปเดต Job Plan ในอนาคต 5 รายการ..." |
124
| 4 | กด ยืนยัน | Save shift สำเร็จ, Job Plan อนาคต 5 รายการถูก recalculate (start_ts เปลี่ยนเป็น 08:30), มี setting edit log |
125
| 5 | ตรวจ Job Plan อดีต | ไม่ถูกแก้ไข (เก็บเวลาเดิม) |
126

    
127
---
128

    
129
## TC-10: แก้เวลา Master Shift — กด Cancel
130

    
131
| Step | Action | Expected |
132
|------|--------|----------|
133
| 1 | เปิด Edit Shift-1, เปลี่ยน start_ts | - |
134
| 2 | กด Save → แสดง popup confirm | - |
135
| 3 | กด ยกเลิก | ไม่ save, shift เวลาเดิม, Job Plan ไม่เปลี่ยน |
136

    
137
---
138

    
139
## TC-11: ลบ Shift ที่มี Job Plan อ้างอิง (อนาคต)
140

    
141
**Precondition:** มี Job Plan อนาคตที่อ้างอิง Shift-1
142

    
143
| Step | Action | Expected |
144
|------|--------|----------|
145
| 1 | เปิดหน้า Shift Setting → เลือก Shift-1 → กด Delete | - |
146
| 2 | - | แสดง error: "ไม่สามารถลบกะนี้ได้ มี Job Plan อ้างอิงอยู่ X รายการ" |
147

    
148
---
149

    
150
## TC-12: ลบ Shift ที่ไม่มี Job Plan อ้างอิง
151

    
152
| Step | Action | Expected |
153
|------|--------|----------|
154
| 1 | เปิดหน้า Shift Setting → เลือก Shift ที่ไม่มี Job Plan อ้างอิง → กด Delete | - |
155
| 2 | Confirm ลบ | ลบสำเร็จ |
156

    
157
---
158

    
159
## TC-13: Import/Export CSV — Format เดิม
160

    
161
| Step | Action | Expected |
162
|------|--------|----------|
163
| 1 | สร้าง Job ด้วย Shift dropdown (Shift-1, วันที่ 2026-06-01) | - |
164
| 2 | Export CSV | Job Schedule column แสดงเป็น `2026-06-01 08:00:00_2026-06-01 16:55:00` (format เดิม) |
165
| 3 | Import CSV ด้วย format เดิม | Import สำเร็จ, สร้าง ms_job_plan ถูกต้อง |
166

    
167
---
168

    
169
## TC-14: Dropdown แสดงถูกต้อง
170

    
171
| Step | Action | Expected |
172
|------|--------|----------|
173
| 1 | เปิด form Job → ดู Shift dropdown | แสดง `shift_name (start_ts)` เรียงตาม `seq` เช่น "Shift-1 (08:00:00)", "Shift-2 (16:55:00)", "Shift-3 (00:30:00)" |
(4-4/4)