Advertisement
Guest User

Untitled

a guest
Sep 5th, 2015
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.46 KB | None | 0 0
  1. $dump_stu=Hash.new{|hsh,key| hsh[key]={}}
  2.  
  3. def findall(start_date,end_date)
  4.  
  5. @start_date = start_date
  6. @end_date = end_date
  7. class_ids = $class_ids.uniq
  8. #class_ids is an Array whose values are obtained in another method.
  9.  
  10. class_ids.each_with_index do|v,i|
  11.  
  12. @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"
  13.  
  14. @result4 = db_conn.query(@query4, :symbolize_keys => true)
  15.  
  16. @result4.each do |row|
  17. dump_cls={}
  18. @stud = row[:student_id] ; $student_id << @stud
  19. @class = row[:class_id]
  20. @started_at = row[:started_at]
  21. @tmp_tme = row[:duration]*60
  22.  
  23. !@tmp_tme=0 ? @end_at = row[:started_at]+(@tmp_tme*60) : @end_at= nil
  24.  
  25. @status = row[:status]
  26. @hrs_diff = (@end_at - @started_at)/60
  27. @details = row[:details].to_i
  28. @time1 = row[:started_at].strftime('%H:%M:%S')
  29. @time2 = @end_at.strftime('%H:%M:%S')
  30.  
  31. case @status
  32. when "Absent"
  33. #pp "She is absent"
  34. @end_at_actual = 'ab'
  35. @started_at_actual = 'ab'
  36. @time1_actual = 'ab'
  37. @time2_actual = 'ab'
  38.  
  39. #Note:- Added the logic for attn calculation here by setting the
  40. #original hrs as duration of class and attended as zero
  41.  
  42. @hrs_diff = (row[:duration].to_i*60)
  43. @hrs_diff_actual = 0
  44. dump_cls[:class_id] = @class;
  45. dump_cls[:name] = row[:name];
  46. dump_cls[:status] = @status;
  47. dump_cls[:time1]= @time1_actual ;
  48. dump_cls[:time2]= @time2_actual ;
  49. dump_cls[:started_at]= @end_at_actual;
  50. dump_cls[:ends_at]= @started_at_actual;
  51. dump_cls[:details]= @details;
  52. dump_cls[:hrs_diff] = @hrs_diff
  53. dump_cls[:hrs_diff_actual] = @hrs_diff_actual
  54. dump_cls[:duration]=row[:duration];
  55.  
  56.  
  57. $dump_stu[@stud].store @started_at,dump_cls
  58.  
  59. when "Late"
  60. #pp "She is Late by"
  61.  
  62. @end_at_actual = @end_at
  63. @started_at_actual = @started_at + (0*60*60)+ (@details*60)
  64. @time1_actual = @started_at_actual.strftime('%H:%M:%S')
  65. @time2_actual = @time2
  66. @hrs_diff = (@end_at - @started_at)/60
  67. @hrs_diff_actual = (@end_at_actual - @started_at_actual)/60
  68. dump_cls[:class_id] = @class;
  69. dump_cls[:name] = row[:name];
  70. dump_cls[:status] = @status;
  71. dump_cls[:time1]= @time1_actual ;
  72. dump_cls[:time2]= @time2_actual ;
  73. dump_cls[:started_at]= @end_at_actual;
  74. dump_cls[:ends_at]= @started_at_actual;
  75. dump_cls[:details]= @details;
  76. dump_cls[:hrs_diff] = @hrs_diff
  77. dump_cls[:hrs_diff_actual] = @hrs_diff_actual
  78. dump_cls[:duration]=row[:duration];
  79. $dump_stu[@stud].store @started_at,dump_cls
  80.  
  81. when "Early"
  82. #pp "She left Early"
  83.  
  84. @end_at_actual = @end_at- (0*60*60)- (@details*60)
  85. @started_at_actual = @started_at
  86. @time1_actual = @time1
  87. @time2_actual = @end_at_actual.strftime('%H:%M:%S')
  88. @hrs_diff = (@end_at - @started_at)/60
  89. @hrs_diff_actual = (@end_at_actual - @started_at_actual)/60
  90. dump_cls[:class_id] = @class;
  91. dump_cls[:name] = row[:name];
  92. dump_cls[:status] = @status;
  93. dump_cls[:time1]= @time1_actual ;
  94. dump_cls[:time2]= @time2_actual ;
  95. dump_cls[:started_at]= @end_at_actual;
  96. dump_cls[:ends_at]= @started_at_actual;
  97. dump_cls[:details]= @details;
  98. dump_cls[:hrs_diff] = @hrs_diff
  99. dump_cls[:hrs_diff_actual] = @hrs_diff_actual
  100. dump_cls[:duration]=row[:duration];
  101. $dump_stu[@stud].store @started_at,dump_cls
  102.  
  103. when "OnTime"
  104.  
  105. #pp "Present "
  106. @end_at_actual = @end_at
  107. @started_at_actual = @started_at
  108. @time1_actual = @time1
  109. @time2_actual = @time2
  110. @hrs_diff_actual = @hrs_diff
  111. @hrs_diff = (@end_at - @started_at)/60
  112. @hrs_diff_actual = (@end_at_actual - @started_at_actual)/60
  113. dump_cls[:class_id] = @class;
  114. dump_cls[:name] = row[:name];
  115. dump_cls[:status] = @status;
  116. dump_cls[:time1]= @time1_actual ;
  117. dump_cls[:time2]= @time2_actual ;
  118. dump_cls[:started_at]= @end_at_actual;
  119. dump_cls[:ends_at]= @started_at_actual;
  120. dump_cls[:details]= @details;
  121. dump_cls[:hrs_diff] = @hrs_diff
  122. dump_cls[:hrs_diff_actual] = @hrs_diff_actual
  123. dump_cls[:duration]=row[:duration];
  124. $dump_stu[@stud].store @started_at,dump_cls
  125. end
  126. #pp "=========================================================="
  127. end
  128. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement