Advertisement
vitareinforce

input mesin ngeplus

Feb 22nd, 2024 (edited)
15
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.59 KB | None | 0 0
  1. public function subInputMesinNgeplus($tap, $tap_pin, $trial) {
  2. $slotjam = null;
  3. $poin = 0;
  4. $tap = Carbon::parse($tap)->toDateTimeString();
  5. $tap_dimundurkan = Carbon::parse($tap)->subDay()->toDateTimeString();
  6. $karyawan = Karyawan::find($tap_pin);
  7. if($karyawan != null) {
  8. $kph = HarianNgeplus::where('karyawan_id', $karyawan->id)
  9. ->whereDate('tanggal', Carbon::parse($tap)->toDateString())
  10. ->first();
  11. $status_izin = $this->statusJadwalIzin($karyawan->id, $tap);
  12. if($kph != null && $status_izin == 0) {
  13. $setting_poin = SettingPoin::find(2);
  14. $setting_presensi = SettingPresensi::find(1);
  15. $datang_awal = DatangAwal::find(1);
  16. $closing_time = ClosingTime::find(1);
  17.  
  18. $jam_masuk = Carbon::parse($kph->jam_masuk)->toDateTimeString();
  19. $jam_istirahat_mulai = Carbon::parse($kph->jam_istirahat_mulai)->toDateTimeString();
  20. $jam_istirahat_selesai = Carbon::parse($kph->jam_istirahat_selesai)->toDateTimeString();
  21. $jam_pulang = Carbon::parse($kph->jam_pulang)->toDateTimeString();
  22.  
  23. $toleransi = $setting_presensi->toleransi_keterlambatan;
  24. $toleransi_awal_istirahat_mulai = $setting_presensi->toleransi_awal_istirahat_mulai;
  25. $toleransi_awal_istirahat_selesai = $setting_presensi->toleransi_awal_istirahat_selesai;
  26. $toleransi_awal_pulang = $setting_presensi->toleransi_awal_pulang;
  27.  
  28. $setting_datang_awal = $datang_awal->datang_awal;
  29. $setting_closing_time = $closing_time->jangka_waktu;
  30.  
  31. // dd($setting_closing_time);
  32.  
  33. $max_istirahat_mulai = Carbon::parse($toleransi_awal_istirahat_selesai)->minute;
  34. $max_istirahat_selesai = Carbon::parse($toleransi_awal_pulang)->minute;
  35.  
  36. $before_jam_masuk = Carbon::parse($jam_masuk)->subHours(Carbon::parse($setting_datang_awal)->hour)->toDateTimeString();
  37. $after_jam_masuk = Carbon::parse($jam_masuk)->addMinutes(Carbon::parse($toleransi)->minute)->toDateTimeString();
  38.  
  39. $before_jam_istirahat_mulai = Carbon::parse(Carbon::parse($jam_istirahat_mulai)->subMinutes(Carbon::parse($toleransi_awal_istirahat_mulai)->minute))->toDateTimeString();
  40. $after_jam_istirahat_mulai = Carbon::parse(Carbon::parse($jam_istirahat_mulai)->addMinutes($max_istirahat_mulai))->toDateTimeString();
  41. $before_jam_istirahat_selesai = Carbon::parse(Carbon::parse($jam_istirahat_selesai)->subMinutes(Carbon::parse($toleransi_awal_istirahat_selesai)->minute))->toDateTimeString();
  42. $after_jam_istirahat_selesai = Carbon::parse(Carbon::parse($jam_istirahat_selesai)->addMinutes($max_istirahat_selesai))->toDateTimeString();
  43.  
  44. $before_jam_pulang = Carbon::parse(Carbon::parse($jam_pulang)->subMinutes(Carbon::parse($toleransi_awal_pulang)->minute))->toDateTimeString();
  45. $after_jam_pulang = Carbon::parse(Carbon::parse($jam_pulang)->addHours(Carbon::parse($setting_closing_time)->hour))->toDateTimeString();
  46.  
  47. // normal
  48. if(Carbon::parse($before_jam_masuk)->lt(Carbon::parse($after_jam_masuk)) && Carbon::parse($tap)->between($before_jam_masuk, $after_jam_masuk) && Carbon::parse($tap)->lte(Carbon::parse($after_jam_masuk)->endOfDay()) && $kph->slotjam_masuk == null) {
  49. $slotjam = 'Masuk';
  50. } else if(Carbon::parse($after_jam_masuk)->lt(Carbon::parse($before_jam_istirahat_mulai)) && Carbon::parse($tap)->between($after_jam_masuk, $before_jam_istirahat_mulai) && Carbon::parse($tap)->lte(Carbon::parse($before_jam_istirahat_mulai)->endOfDay()) && $kph->slotjam_masuk == null) {
  51. $slotjam = 'Terlambat Masuk';
  52. } else if(Carbon::parse($before_jam_istirahat_mulai)->lt(Carbon::parse($after_jam_istirahat_selesai)) && Carbon::parse($tap)->between($before_jam_istirahat_mulai, $after_jam_istirahat_selesai) && Carbon::parse($tap)->lte(Carbon::parse($after_jam_istirahat_selesai)->endOfDay()) && $kph->slotjam_istirahat_mulai == null) {
  53. $slotjam = 'Istirahat Mulai';
  54. } else if(Carbon::parse($before_jam_istirahat_mulai)->lt(Carbon::parse($after_jam_istirahat_selesai)) && Carbon::parse($tap)->between($before_jam_istirahat_mulai, $after_jam_istirahat_selesai) && Carbon::parse($tap)->lte(Carbon::parse($after_jam_istirahat_selesai)->endOfDay()) && $kph->slotjam_istirahat_mulai != null) {
  55. $slotjam = 'Istirahat Selesai';
  56. } else if(Carbon::parse($before_jam_pulang)->lt(Carbon::parse($after_jam_pulang)) && Carbon::parse($tap)->between($before_jam_pulang, $after_jam_pulang) && Carbon::parse($tap)->lte(Carbon::parse($after_jam_pulang)->endOfDay()) && $kph->slotjam_pulang == null) {
  57. $slotjam = 'Pulang';
  58. // berpotongan dinihari
  59. } else if(Carbon::parse($before_jam_masuk)->gt(Carbon::parse($after_jam_masuk)) && Carbon::parse($tap)->lte(Carbon::parse($after_jam_masuk)->endOfDay()) && $kph->slotjam_masuk == null) {
  60. $slotjam = 'Masuk';
  61. } else if(Carbon::parse($after_jam_masuk)->gt(Carbon::parse($before_jam_istirahat_mulai)) && Carbon::parse($tap)->lte(Carbon::parse($before_jam_istirahat_mulai)->endOfDay()) && $kph->slotjam_masuk == null) {
  62. $slotjam = 'Terlambat Masuk';
  63. } else if(Carbon::parse($before_jam_istirahat_mulai)->gt(Carbon::parse($after_jam_istirahat_selesai)) && Carbon::parse($tap)->between($before_jam_istirahat_mulai, $after_jam_istirahat_selesai) && Carbon::parse($tap)->lte(Carbon::parse($after_jam_istirahat_selesai)->endOfDay()) && $kph->slotjam_istirahat_mulai == null) {
  64. $slotjam = 'Istirahat Mulai';
  65. } else if(Carbon::parse($before_jam_istirahat_mulai)->gt(Carbon::parse($after_jam_istirahat_selesai)) && Carbon::parse($tap)->between($before_jam_istirahat_mulai, $after_jam_istirahat_selesai) && Carbon::parse($tap)->lte(Carbon::parse($after_jam_istirahat_selesai)->endOfDay()) && $kph->slotjam_istirahat_mulai != null) {
  66. $slotjam = 'Istirahat Selesai';
  67. } else if(Carbon::parse($before_jam_pulang)->gt(Carbon::parse($after_jam_pulang)) && Carbon::parse($tap)->between($before_jam_pulang, $after_jam_pulang) && Carbon::parse($tap)->lte(Carbon::parse($after_jam_pulang)->endOfDay()) && $kph->slotjam_pulang == null) {
  68. $slotjam = 'Pulang';
  69. } else if($slotjam == null && $trial < 1) {
  70. $this->subInputMesinNgeplus($tap_dimundurkan, $tap_pin, 1);
  71. }
  72.  
  73. if($slotjam == 'Masuk' || $slotjam == 'Terlambat Masuk') {
  74. $kph->poin = $kph->poin + (float)$poin;
  75. $kph->slotjam_masuk = $tap;
  76. $kph->slotjam_masuk_status = $slotjam;
  77. $kph->save();
  78. } else if($slotjam == 'Istirahat Mulai') {
  79. $kph->poin = $kph->poin + (float)$poin;
  80. $kph->slotjam_istirahat_mulai = $tap;
  81. $kph->save();
  82. } else if($slotjam == 'Istirahat Selesai' || $slotjam == 'Terlambat Istirahat Selesai') {
  83. $kph->poin = $kph->poin + (float)$poin;
  84. $kph->slotjam_istirahat_selesai = $tap;
  85. $kph->save();
  86. } else if($slotjam == 'Pulang') {
  87. $kph->poin = $kph->poin + (float)$poin;
  88. $kph->slotjam_pulang = $tap;
  89. $kph->save();
  90. }
  91. } else if($kph == null) {
  92. $this->subInputMesinNgeplus($tap_dimundurkan, $tap_pin, 1);
  93. }
  94. }
  95.  
  96. return $slotjam;
  97. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement