Guest User

Untitled

a guest
Oct 21st, 2018
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.14 KB | None | 0 0
  1. #
  2. require 'mysql2'
  3.  
  4. class AttendanceManagement
  5. def initialize
  6. @client = Mysql2::Client.new(host: 'localhost', username: 'root', password: 'your_password', database: 'your_database_name')
  7. end
  8.  
  9. def current_attendance_info
  10. @client.query("SELECT * FROM attendance ORDER BY created_at DESC limit 1")
  11. end
  12.  
  13. def attendance
  14. puts %(出社打刻をする:1\n前画面に戻る:2)
  15. puts %(操作する項目の数字を入力してください)
  16. print %(>>)
  17. operation_input = gets.chomp.to_i
  18.  
  19. case operation_input
  20. when 1
  21. attendance_info_query = current_attendance_info
  22. attendance_info_query.first.nil? ? status = '' : status = attendance_info_query.first['attendance_status']
  23. if status == 0
  24. puts %(すでに出勤中です)
  25. else
  26. success = @client.query("INSERT INTO attendance (attendance_time, attendance_status) VALUES (now(), 0)")
  27. puts %(出勤しました)
  28. end
  29. when 2
  30. puts %(前画面に戻ります)
  31. else
  32. puts %(正しい数字を入力してください)
  33. end
  34. end
  35.  
  36. def leave_office
  37. puts %(退勤打刻をする:1\n前画面に戻る:2)
  38. puts %(操作する項目の数字を入力してください)
  39. print %(>>)
  40. operation_input = gets.chomp.to_i
  41.  
  42. case operation_input
  43. when 1
  44. attendance_info_query = current_attendance_info
  45. attendance_info_query.first.nil? ? status = '' : status = attendance_info_query.first['attendance_status']
  46. if status == 0
  47. update_id = attendance_info_query.first['id']
  48. @client.query("UPDATE attendance SET leave_office_time = now(), attendance_status = 1 WHERE id = #{update_id}")
  49. %(退勤しました)
  50. else
  51. puts %(すでに退勤しているか、出勤打刻をしていません)
  52. end
  53. when 2
  54. puts %(前画面に戻ります)
  55. else
  56. puts %(正しい数字を入力してください)
  57. end
  58. end
  59.  
  60. def my_attendance_info
  61. puts %Q(#{%(~) * 23}勤怠管理#{%(~) * 23})
  62. attendance_info_query = current_attendance_info
  63.  
  64. unless attendance_info_query.first.nil?
  65. if attendance_info_query.first['attendance_status'] == 0
  66. attendance_time = attendance_info_query.first['attendance_time'].strftime('%Y年%m月%d日 %H時%M分')
  67. puts %Q(#{attendance_time}に出勤しました\n現在出勤中です)
  68. else
  69. leave_office_time = attendance_info_query.first['leave_office_time'].strftime('%Y年%m月%d日 %H時%M分')
  70. puts %Q(#{leave_office_time}に退勤しました\n現在退勤中です)
  71. end
  72. end
  73. puts %(~) * 50
  74. end
  75.  
  76. def main_screen
  77. loop do
  78. puts %(=) * 50
  79. puts %(出勤打刻:1\n退勤打刻:2\n自分の勤怠情報:3\n勤怠管理終了:9)
  80. puts %(操作する項目の数字を入力してください)
  81. print %(>>)
  82.  
  83. operation_input = gets.chomp.to_i
  84.  
  85. case operation_input
  86. when 1
  87. attendance
  88. when 2
  89. leave_office
  90. when 3
  91. my_attendance_info
  92. when 9
  93. break
  94. else
  95. puts %(正しい数字を入力してください)
  96. end
  97. end
  98. end
  99. end
  100.  
  101. attendance = AttendanceManagement.new
  102. attendance.main_screen
Add Comment
Please, Sign In to add comment