issue title: Initiate State Diagram for Status feature.
Description:
Currently the status is mixing between assignment and work's status. Also, the mechanism of status changing is a part that made the status between assignment and work's status come to conflict. To identify how the process in changing status work clearly diagram is a way to describe the business requirement.
Current Business Logic
Business Logic
Status: unassigned -> assigned -> in recheck -> under review -> done
Level: Low -> High
Status ลำดับ flow การทำงานจะเปลี่ยนตามนี้ โดย parent จะเปลี่ยน status ไปยัง status ที่สูงกว่าเดิมได้ก็ต่อเมื่อ child ทุกตัวต้องเป็น status ที่จะเปลี่ยนไปทุกตัว
เช่น
parent status = assigned
child1 status = assigned
child2 status = done
child3 status = in recheck
จาก case นี้จะเห็นว่าถึงแม้จะมี status child ที่สูงกว่า parent ยังไงก็ต้องให้ status parent ได้มากที่สุดตาม child ที่ low ที่สุด
ตัวอย่างกรณีที่เปลี่ยน status ได้
parent status = in recheck
child1 status = in recheck
child2 status = done
child3 status = in recheck
กรณีพิเศษอีกกรณีคือ ถ้า child ทุกตัว status เป็นเหมือนกัน จะให้เปลี่ยน parent ไปตามเลย
parent status = done (auto change)
child1 status = done
child2 status = done
child3 status = done
Proposed Works:
- Create state diagram for status changing when the status change, what condition and identify conflict between process.
- If the status change because of assignment and work's status in conflict -> try create diagram for assignment and work's status separately and see if we can combine them together.
** If there other solution to describe, please comment back **
issue title: Initiate State Diagram for Status feature.
Description:
Currently the status is mixing between assignment and work's status. Also, the mechanism of status changing is a part that made the status between assignment and work's status come to conflict. To identify how the process in changing status work clearly diagram is a way to describe the business requirement.
Current Business Logic
Proposed Works:
** If there other solution to describe, please comment back **