Advertisement
vitareinforce

fungsi cekkehadiran

Apr 8th, 2021 (edited)
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.97 KB | None | 0 0
  1. // fungsi cek kehadiran dari worker disini
  2. public function cekkehadiran(Request $request) {
  3. $jadwal_id = null;
  4. $tipejadwal = null;
  5. $status_libur = false;
  6. $status_izin = false;
  7. $status_sakit = false;
  8. $status_cuti = false;
  9. $status_tap = false;
  10.  
  11. //cek presensi
  12. $cekpresensi = Presensi::where('karyawan_id', $request->karyawan_id)->
  13. whereDate('tanggal_dan_waktu_tap', $request->tanggal)->
  14. first();
  15. if(isset($cekpresensi)) {
  16. $status_tap = true;
  17. } else {
  18. $status_tap = false;
  19. }
  20.  
  21. //cek jadwal izin
  22. $jadwal_izin = JadwalIzin::where('karyawan_id', '=', $request->karyawan_id)->
  23. where('tanggal_mulai', '>=', date('Y-m-d', strtotime($request->tanggal)))->
  24. where('tanggal_selesai', '<=', date('Y-m-d', strtotime($request->tanggal)))->
  25. first();
  26.  
  27. //cek jadwal ngeplus
  28. $jadwal_ngeplus = JadwalNgeplus::where('karyawan_id', '=', $request->karyawan_id)->
  29. where('tanggal_mulai', '>=', date('Y-m-d', strtotime($request->tanggal)))->
  30. where('tanggal_selesai', '<=', date('Y-m-d', strtotime($request->tanggal)))->
  31. first();
  32. //cek jadwal libur
  33. $jadwal_libur = JadwalLibur::where('karyawan_id', '=', $request->karyawan_id)->
  34. where('tanggal_mulai', '>=', date('Y-m-d', strtotime($request->tanggal)))->
  35. where('tanggal_selesai', '<=', date('Y-m-d', strtotime($request->tanggal)))->
  36. first();
  37. //cek jadwal rutin
  38. $jadwal_rutin = JadwalHariKerja::where('karyawan_id', '=', $request->karyawan_id)->get();
  39.  
  40. if(count($jadwal_izin) > 0) {
  41. if($jadwal_izin->status == 'izin') {
  42. $status_izin = true;
  43. } else if($jadwal_izin->status == 'sakit') {
  44. $status_sakit = true;
  45. } else if($jadwal_izin->status == 'cuti') {
  46. $status_cuti = true;
  47. }
  48. $status_tap = false;
  49. $jadwal_id = $jadwal_izin->source_id;
  50. } else if(count($jadwal_ngeplus) > 0) {
  51. $status_tap = true;
  52. $tipejadwal = 'nge-plus';
  53. $jadwal_id = $jadwal_ngeplus->source_id;
  54. } else if(count($jadwal_libur) > 0) {
  55. $status_tap = false;
  56. $status_libur = true;
  57. $jadwal_id = $jadwal_libur->source_id;
  58. } else if(count($jadwal_rutin) > 0) {
  59. for($i = 0; $i < count($jadwal_rutin);$i++) {
  60. $hari = Carbon::parse($request->tanggal)->format('w');
  61. if($jadwal_rutin[$i]->checkbox_harikerja_senin == 1 && $hari == 1) {
  62. $status_tap = true;
  63. $tipejadwal = 'rutin';
  64. $jadwal_id = $jadwal_rutin[$i]->source_id;
  65. } else if($jadwal_rutin[$i]->checkbox_harikerja_selasa == 1 && $hari == 2) {
  66. $status_tap = true;
  67. $tipejadwal = 'rutin';
  68. $jadwal_id = $jadwal_rutin[$i]->source_id;
  69. } else if($jadwal_rutin[$i]->checkbox_harikerja_rabu == 1 && $hari == 3) {
  70. $status_tap = true;
  71. $tipejadwal = 'rutin';
  72. $jadwal_id = $jadwal_rutin[$i]->source_id;
  73. } else if($jadwal_rutin[$i]->checkbox_harikerja_kamis == 1 && $hari == 4) {
  74. $status_tap = true;
  75. $tipejadwal = 'rutin';
  76. $jadwal_id = $jadwal_rutin[$i]->source_id;
  77. } else if($jadwal_rutin[$i]->checkbox_harikerja_jumat == 1 && $hari == 5) {
  78. $status_tap = true;
  79. $tipejadwal = 'rutin';
  80. $jadwal_id = $jadwal_rutin[$i]->source_id;
  81. } else if($jadwal_rutin[$i]->checkbox_harikerja_sabtu == 1 && $hari == 6) {
  82. $status_tap = true;
  83. $tipejadwal = 'rutin';
  84. $jadwal_id = $jadwal_rutin[$i]->source_id;
  85. } else if($jadwal_rutin[$i]->checkbox_harikerja_minggu == 1 && $hari == 0) {
  86. $status_tap = true;
  87. $tipejadwal = 'rutin';
  88. $jadwal_id = $jadwal_rutin[$i]->source_id;
  89. }
  90. }
  91. }
  92.  
  93. $result = array(
  94. "karyawan_id" => $request->karyawan_id,
  95. "jadwal_id" => $jadwal_id,
  96. "tipe_jadwal" => $tipejadwal,
  97. "status_libur" => $status_libur,
  98. "status_izin" => $status_izin,
  99. "status_sakit" => $status_sakit,
  100. "status_cuti" => $status_cuti,
  101. "status_tap" => $status_tap,
  102. "tanggal" => $request->tanggal
  103. );
  104. return Response::json($result);
  105. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement