Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- $dump_stu=Hash.new{|hsh,key| hsh[key]={}}
- def findall(start_date,end_date)
- @start_date = start_date
- @end_date = end_date
- class_ids = $class_ids.uniq
- #class_ids is an Array whose values are obtained in another method.
- class_ids.each_with_index do|v,i|
- @query4 = "SELECT A.student_id, A.class_id, A.started_at, A.status, A.details, B.name, B.duration FROM attendance_all AS A INNER JOIN class AS B ON B.id = A.class_id WHERE B.id='#{v}' AND (started_at BETWEEN '#{@start_date}' AND '#{@end_date}') ORDER BY A.student_id, A.started_at"
- @result4 = db_conn.query(@query4, :symbolize_keys => true)
- @result4.each do |row|
- dump_cls={}
- @stud = row[:student_id] ; $student_id << @stud
- @class = row[:class_id]
- @started_at = row[:started_at]
- @tmp_tme = row[:duration]*60
- !@tmp_tme=0 ? @end_at = row[:started_at]+(@tmp_tme*60) : @end_at= nil
- @status = row[:status]
- @hrs_diff = (@end_at - @started_at)/60
- @details = row[:details].to_i
- @time1 = row[:started_at].strftime('%H:%M:%S')
- @time2 = @end_at.strftime('%H:%M:%S')
- case @status
- when "Absent"
- #pp "She is absent"
- @end_at_actual = 'ab'
- @started_at_actual = 'ab'
- @time1_actual = 'ab'
- @time2_actual = 'ab'
- #Note:- Added the logic for attn calculation here by setting the
- #original hrs as duration of class and attended as zero
- @hrs_diff = (row[:duration].to_i*60)
- @hrs_diff_actual = 0
- dump_cls[:class_id] = @class;
- dump_cls[:name] = row[:name];
- dump_cls[:status] = @status;
- dump_cls[:time1]= @time1_actual ;
- dump_cls[:time2]= @time2_actual ;
- dump_cls[:started_at]= @end_at_actual;
- dump_cls[:ends_at]= @started_at_actual;
- dump_cls[:details]= @details;
- dump_cls[:hrs_diff] = @hrs_diff
- dump_cls[:hrs_diff_actual] = @hrs_diff_actual
- dump_cls[:duration]=row[:duration];
- $dump_stu[@stud].store @started_at,dump_cls
- when "Late"
- #pp "She is Late by"
- @end_at_actual = @end_at
- @started_at_actual = @started_at + (0*60*60)+ (@details*60)
- @time1_actual = @started_at_actual.strftime('%H:%M:%S')
- @time2_actual = @time2
- @hrs_diff = (@end_at - @started_at)/60
- @hrs_diff_actual = (@end_at_actual - @started_at_actual)/60
- dump_cls[:class_id] = @class;
- dump_cls[:name] = row[:name];
- dump_cls[:status] = @status;
- dump_cls[:time1]= @time1_actual ;
- dump_cls[:time2]= @time2_actual ;
- dump_cls[:started_at]= @end_at_actual;
- dump_cls[:ends_at]= @started_at_actual;
- dump_cls[:details]= @details;
- dump_cls[:hrs_diff] = @hrs_diff
- dump_cls[:hrs_diff_actual] = @hrs_diff_actual
- dump_cls[:duration]=row[:duration];
- $dump_stu[@stud].store @started_at,dump_cls
- when "Early"
- #pp "She left Early"
- @end_at_actual = @end_at- (0*60*60)- (@details*60)
- @started_at_actual = @started_at
- @time1_actual = @time1
- @time2_actual = @end_at_actual.strftime('%H:%M:%S')
- @hrs_diff = (@end_at - @started_at)/60
- @hrs_diff_actual = (@end_at_actual - @started_at_actual)/60
- dump_cls[:class_id] = @class;
- dump_cls[:name] = row[:name];
- dump_cls[:status] = @status;
- dump_cls[:time1]= @time1_actual ;
- dump_cls[:time2]= @time2_actual ;
- dump_cls[:started_at]= @end_at_actual;
- dump_cls[:ends_at]= @started_at_actual;
- dump_cls[:details]= @details;
- dump_cls[:hrs_diff] = @hrs_diff
- dump_cls[:hrs_diff_actual] = @hrs_diff_actual
- dump_cls[:duration]=row[:duration];
- $dump_stu[@stud].store @started_at,dump_cls
- when "OnTime"
- #pp "Present "
- @end_at_actual = @end_at
- @started_at_actual = @started_at
- @time1_actual = @time1
- @time2_actual = @time2
- @hrs_diff_actual = @hrs_diff
- @hrs_diff = (@end_at - @started_at)/60
- @hrs_diff_actual = (@end_at_actual - @started_at_actual)/60
- dump_cls[:class_id] = @class;
- dump_cls[:name] = row[:name];
- dump_cls[:status] = @status;
- dump_cls[:time1]= @time1_actual ;
- dump_cls[:time2]= @time2_actual ;
- dump_cls[:started_at]= @end_at_actual;
- dump_cls[:ends_at]= @started_at_actual;
- dump_cls[:details]= @details;
- dump_cls[:hrs_diff] = @hrs_diff
- dump_cls[:hrs_diff_actual] = @hrs_diff_actual
- dump_cls[:duration]=row[:duration];
- $dump_stu[@stud].store @started_at,dump_cls
- end
- #pp "=========================================================="
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement