Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #
- require 'mysql2'
- class AttendanceManagement
- def initialize
- @client = Mysql2::Client.new(host: 'localhost', username: 'root', password: 'your_password', database: 'your_database_name')
- end
- def current_attendance_info
- @client.query("SELECT * FROM attendance ORDER BY created_at DESC limit 1")
- end
- def attendance
- puts %(出社打刻をする:1\n前画面に戻る:2)
- puts %(操作する項目の数字を入力してください)
- print %(>>)
- operation_input = gets.chomp.to_i
- case operation_input
- when 1
- attendance_info_query = current_attendance_info
- attendance_info_query.first.nil? ? status = '' : status = attendance_info_query.first['attendance_status']
- if status == 0
- puts %(すでに出勤中です)
- else
- success = @client.query("INSERT INTO attendance (attendance_time, attendance_status) VALUES (now(), 0)")
- puts %(出勤しました)
- end
- when 2
- puts %(前画面に戻ります)
- else
- puts %(正しい数字を入力してください)
- end
- end
- def leave_office
- puts %(退勤打刻をする:1\n前画面に戻る:2)
- puts %(操作する項目の数字を入力してください)
- print %(>>)
- operation_input = gets.chomp.to_i
- case operation_input
- when 1
- attendance_info_query = current_attendance_info
- attendance_info_query.first.nil? ? status = '' : status = attendance_info_query.first['attendance_status']
- if status == 0
- update_id = attendance_info_query.first['id']
- @client.query("UPDATE attendance SET leave_office_time = now(), attendance_status = 1 WHERE id = #{update_id}")
- %(退勤しました)
- else
- puts %(すでに退勤しているか、出勤打刻をしていません)
- end
- when 2
- puts %(前画面に戻ります)
- else
- puts %(正しい数字を入力してください)
- end
- end
- def my_attendance_info
- puts %Q(#{%(~) * 23}勤怠管理#{%(~) * 23})
- attendance_info_query = current_attendance_info
- unless attendance_info_query.first.nil?
- if attendance_info_query.first['attendance_status'] == 0
- attendance_time = attendance_info_query.first['attendance_time'].strftime('%Y年%m月%d日 %H時%M分')
- puts %Q(#{attendance_time}に出勤しました\n現在出勤中です)
- else
- leave_office_time = attendance_info_query.first['leave_office_time'].strftime('%Y年%m月%d日 %H時%M分')
- puts %Q(#{leave_office_time}に退勤しました\n現在退勤中です)
- end
- end
- puts %(~) * 50
- end
- def main_screen
- loop do
- puts %(=) * 50
- puts %(出勤打刻:1\n退勤打刻:2\n自分の勤怠情報:3\n勤怠管理終了:9)
- puts %(操作する項目の数字を入力してください)
- print %(>>)
- operation_input = gets.chomp.to_i
- case operation_input
- when 1
- attendance
- when 2
- leave_office
- when 3
- my_attendance_info
- when 9
- break
- else
- puts %(正しい数字を入力してください)
- end
- end
- end
- end
- attendance = AttendanceManagement.new
- attendance.main_screen
Add Comment
Please, Sign In to add comment