|
|
|
@ -79,8 +79,26 @@ class AttendancesController < ApplicationController
|
|
|
|
|
new_end_time = "#{params[:attendance_date]} #{params[:end_time]}".to_time
|
|
|
|
|
@attendance.update!(update_params)
|
|
|
|
|
|
|
|
|
|
# 如果历史签到变为了正在签到,将未创建的学生签到数据补上
|
|
|
|
|
if a_end_time < Time.current && new_end_time > Time.current
|
|
|
|
|
old_group_ids = @attendance.course_attendance_groups.pluck(:course_group_id)
|
|
|
|
|
unless old_group_ids.include?(0)
|
|
|
|
|
all_groups_ids = old_group_ids + params[:group_ids]
|
|
|
|
|
# 如果新增的的分班加上之前的分班是课堂的全部分班,则只需创建一条记录
|
|
|
|
|
if all_groups_ids.uniq.count == @course.course_groups_count
|
|
|
|
|
@attendance.course_attendance_groups.destroy_all
|
|
|
|
|
@attendance.course_attendance_groups.create!(course_group_id: 0, course_id: @attendance.course_id)
|
|
|
|
|
new_group = true
|
|
|
|
|
else
|
|
|
|
|
new_group_ids = params[:group_ids] - old_group_ids
|
|
|
|
|
new_group_ids.each do |group_id|
|
|
|
|
|
@attendance.course_attendance_groups.create!(course_group_id: group_id, course_id: @attendance.course_id)
|
|
|
|
|
new_group = true
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
# 如果新增了分班或者历史签到变为了正在签到,将未创建的学生签到数据补上
|
|
|
|
|
if new_group || (a_end_time < Time.current && new_end_time > Time.current)
|
|
|
|
|
create_absence_student_data
|
|
|
|
|
end
|
|
|
|
|
render_ok
|
|
|
|
|