Task #1612
Cập nhật bởi Minh Khánh Lê cách đây 3 tháng
Ở màn hình xử phạt vi phạm, có tính năng xét duyệt học viên vi phạm thành học viên bị xử phạt, lấy từ danh sách sinh viên vi phạm ở kêt quả kiểm tra
1. Cấu trúc dữ liệu liên quan:
* Màn hình tương tác với 2 bảng: Bảng chính Kết quả kiểm tra (InspectionResult - hiển thị ở khối bên trái) và bảng trung gian Học viên vi phạm (InspectionResult_Learner - hiển thị ở 2 khối bên phải).
2. Giao diện và Luồng tương tác:
Khối bên trái (Danh sách kết quả): Hiển thị danh sách Kết quả kiểm tra.
* Hỗ trợ lọc theo: Tên kế hoạch, Mô tả, Trạng thái.
Luồng Master-Detail: Khi click chọn vào 1 dòng Kết quả ở khối bên trái -> Hệ thống tự động load dữ liệu sang 2 bảng bên phải:
* Bảng phía trên bên phải (Danh sách học viên bị xử phạt): Hiển thị danh sách học viên từ bảng trung gian có điều kiện is_disciplined = true. Hỗ trợ lọc theo các cột dữ liệu học viên hiển thị trên Grid.
* Bảng phía dưới bên phải (Danh sách học viên vi phạm): Hiển thị danh sách học viên từ bảng trung gian có điều kiện is_disciplined = false. Hỗ trợ lọc theo các cột dữ liệu học viên hiển thị trên Grid.
3. Logic xử lý các nút bấm nghiệp vụ:
* Màn hình này KHÔNG có các chức năng: Thêm, Sửa, Xóa, Sao chép.
Nút "Duyệt xử phạt" (Thực hiện ở bảng phía dưới):
* Điều kiện: Hoạt động khi tích chọn ít nhất 1 học viên ở bảng phía dưới (Chưa duyệt).
* Hành động: Khi bấm nút -> Hiển thị Popup yêu cầu nhập "Lý do xử phạt" cho các học viên được chọn.
* Kết quả: Sau khi xác nhận thành công, các học viên này sẽ được cập nhật cột is_disciplined = true kèm lý do vừa nhập -> Tự động biến mất khỏi bảng dưới và nhảy lên hiển thị ở bảng trên.
Nút "Bỏ duyệt xử phạt" (Thực hiện ở bảng phía trên):
* Điều kiện: Hoạt động khi tích chọn ít nhất 1 học viên ở bảng phía trên (Đã duyệt).
* Hành động: Khi bấm nút -> Hiển thị Popup xác nhận huỷ duyệt.
* Kết quả: Sau khi xác nhận -> Cập nhật cột is_disciplined = false và xóa trắng lý do vi phạm cũ -> Học viên tự động biến mất khỏi bảng trên và quay trở lại bảng dưới.