Advertisement
vitareinforce

Code lengkap input mesin ngeplus

Oct 10th, 2021
39
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 117.47 KB | None | 0 0
  1. public function inputMesinNgePlus(Request $request)
  2. {
  3.  
  4. // dd($request->all());
  5. $data_terinput = 0;
  6. $status_final = null;
  7. $nama_karyawan = '-';
  8. $group_karyawan = '-';
  9. $source = null;
  10. $source_id = null;
  11.  
  12. try {
  13. if (isset($request->message)) {
  14. $data = $request->message;
  15. $row = $data;
  16.  
  17. for ($i = 0; $i < count($row); $i++) {
  18. // $existing_presensi = Presensi::where('tanggal_dan_waktu_tap', '=', date("Y-m-d H:i:s", strtotime($row[$i]['DateTime'][0])))->where('karyawan_id', '=', $row[$i]['PIN'][0])->first();
  19. $existing_presensi = Presensi::where('tanggal_dan_waktu_tap', $row[$i]['DateTime'][0])->where('karyawan_id', $row[$i]['PIN'][0])->first();
  20. // dd($existing_presensi);
  21. if(!isset($existing_presensi)) {
  22.  
  23. $id_karyawan = $row[$i]['PIN'][0];
  24. $tanggal_waktu_tap = $row[$i]['DateTime'][0];
  25.  
  26. $karyawan = Karyawan::find($id_karyawan);
  27. if(isset($karyawan)) {
  28. $jamtap = date('H:i:s', strtotime($tanggal_waktu_tap));
  29. $slotjam = null;
  30. $poin = 0;
  31. $setting_poin = SettingPoin::find(2);
  32. $adajadwal = 0;
  33. $jadwal = null;
  34. $jadwal_terpilih = null;
  35. $status_izin = 0;
  36. $nama_karyawan = $karyawan->nama;
  37. if(isset($karyawan->group_id)) {
  38. $group_karyawan = $karyawan->group->nama.'-'.$karyawan->groupno;
  39. }
  40.  
  41. //cek jadwal izin
  42. $jadwal_izin = JadwalIzin::where('karyawan_id', '=', $id_karyawan)->get();
  43.  
  44. for($l = 0; $l < count($jadwal_izin); $l++) {
  45. $mulai_izin = Carbon::parse($jadwal_izin[$l]->tanggal_mulai)->format('Y-m-d');
  46. $selesai_izin = Carbon::parse($jadwal_izin[$l]->tanggal_selesai)->format('Y-m-d');
  47. $tanggal_sekarang = Carbon::parse($tanggal_waktu_tap)->format('Y-m-d');
  48. if(($tanggal_sekarang >= $mulai_izin) && ($tanggal_sekarang <= $selesai_izin)) {
  49. $status_izin = 1;
  50. }
  51. }
  52.  
  53. if($status_izin == 0) {
  54.  
  55. // mundurin tanggal
  56. $tanggal_waktu_tap_mundur = Carbon::parse($tanggal_waktu_tap);
  57. $tanggal_waktu_tap_mundur->subDay();
  58.  
  59. $tanggal_waktu_tap_maju = Carbon::parse($tanggal_waktu_tap);
  60. $tanggal_waktu_tap_maju->addDay();
  61.  
  62. $format_tanggal = strval(date("Y-m-d", strtotime($tanggal_waktu_tap)));
  63. $format_tanggal_mundur = strval(date("Y-m-d", strtotime($tanggal_waktu_tap_mundur)));
  64. $format_tanggal_maju = strval(date("Y-m-d", strtotime($tanggal_waktu_tap_maju)));
  65.  
  66. // set tanggal
  67. $tanggal = Carbon::parse($tanggal_waktu_tap)->format('Y-m-d');
  68. $tanggal_kemarin = Carbon::parse($tanggal_waktu_tap)->subDay()->format('Y-m-d');
  69. $tanggal_besok = Carbon::parse($tanggal_waktu_tap)->addDay()->format('Y-m-d');
  70.  
  71. // dapetin semua
  72. // $jadwal_all = JadwalNgeplus::where('karyawan_id', '=', $id_karyawan)
  73. // // ->whereDate('tanggal_mulai', '<=', $format_tanggal)
  74. // // ->whereDate('tanggal_selesai', '>=', $format_tanggal)
  75. // ->orderBy('tanggal_mulai', 'asc')
  76. // // ->orderBy('jam_pulang', 'asc')
  77. // ->get();
  78.  
  79. // pseudocode fakhry ver
  80. $jadwal_ngeplus_max_date = JadwalNgeplus::where('karyawan_id', '=', $id_karyawan)->get();
  81. $max_date = $jadwal_ngeplus_max_date[0]->tanggal_selesai;
  82.  
  83. // loop bwt ambil tanggal selesai terjauh
  84. for($jax = 0; $jax < count($jadwal_ngeplus_max_date); $jax++) {
  85. if($jadwal_ngeplus_max_date[$jax]->tanggal_selesai > $max_date) {
  86. $max_date = $jadwal_ngeplus_max_date[$jax]->tanggal_selesai;
  87. }
  88. }
  89.  
  90. $batas_awal = Carbon::now()->toDateString();
  91. $batas_akhir = Carbon::parse($max_date)->toDateString();
  92.  
  93. // hitung range hari
  94. $range_hari = CarbonPeriod::create($batas_awal, $batas_akhir)->toArray();
  95.  
  96. $jadwal = array();
  97. if(count($range_hari) <= 2) {
  98. // ambil jadwal
  99. for($rh = 0; $rh < count($range_hari); $rh++) {
  100. $get_jadwal_ngeplus = JadwalNgeplus::where('karyawan_id', '=', $id_karyawan)->orderBy('tanggal_mulai', 'ASC')->get();
  101. for($j1 = 0; $j1 < count($get_jadwal_ngeplus); $j1++) {
  102. if(Carbon::parse($get_jadwal_ngeplus[$j1]->tanggal_mulai)->toDateString() <= Carbon::parse($range_hari[$rh])->toDateString() && Carbon::parse($get_jadwal_ngeplus[$j1]->tanggal_selesai)->addDay()->toDateString() > Carbon::parse($range_hari[$rh])->toDateString()) {
  103. array_push($jadwal, $get_jadwal_ngeplus[$j1]);
  104. }
  105. }
  106. }
  107. } else if(count($range_hari) > 2) {
  108. // ambil jadwal
  109. for($rh = 0; $rh < 2; $rh++) {
  110. $get_jadwal_ngeplus = JadwalNgeplus::where('karyawan_id', '=', $id_karyawan)->orderBy('tanggal_mulai', 'ASC')->get();
  111. for($j2 = 0; $j2 < count($get_jadwal_ngeplus); $j2++) {
  112. if(Carbon::parse($get_jadwal_ngeplus[$j2]->tanggal_mulai)->toDateString() <= Carbon::parse($range_hari[$rh])->toDateString() && Carbon::parse($get_jadwal_ngeplus[$j2]->tanggal_selesai)->addDay()->toDateString() > Carbon::parse($range_hari[$rh])->toDateString()) {
  113. array_push($jadwal, $get_jadwal_ngeplus[$j2]);
  114. }
  115. }
  116. }
  117. }
  118.  
  119. // dd($jadwal);
  120.  
  121.  
  122. // $jadwal = array();
  123.  
  124. // // cek tanggal kemarin, tanggal besok, tanggal hari ini
  125. // // abis itu masukin ke variable jadwal
  126.  
  127. // for($ja = 0; $ja < count($jadwal_all); $ja++) {
  128. // $jadwal_dipilih = 0;
  129. // $tanggal_mulai = Carbon::parse($jadwal_all[$ja]->tanggal_mulai)->format('Y-m-d');
  130. // $tanggal_selesai = Carbon::parse($jadwal_all[$ja]->tanggal_selesai)->format('Y-m-d');
  131.  
  132. // if(($tanggal_kemarin >= $tanggal_mulai) && ($tanggal_kemarin <= $tanggal_selesai)) {
  133. // if(strtotime(strval($jadwal_all[$ja]->jam_istirahat_mulai)) < strtotime(strval($jadwal_all[$ja]->jam_masuk))) {
  134. // $jadwal_dipilih = 1;
  135. // }
  136. // }
  137. // if(($tanggal >= $tanggal_mulai) && ($tanggal <= $tanggal_selesai)) {
  138. // $jadwal_dipilih = 1;
  139. // }
  140. // if(($tanggal_besok >= $tanggal_mulai) && ($tanggal_besok <= $tanggal_selesai)) {
  141. // if(strtotime(strval($jadwal_all[$ja]->jam_istirahat_mulai)) < strtotime(strval($jadwal_all[$ja]->jam_masuk))) {
  142. // $jadwal_dipilih = 1;
  143. // }
  144. // }
  145.  
  146. // if($jadwal_dipilih == 1) {
  147. // array_push($jadwal, $jadwal_all[$ja]);
  148. // }
  149. // }
  150.  
  151. // dd($jadwal);
  152.  
  153. // loop jadwal yg udh difilter
  154. for($iz = 0; $iz < count($jadwal); $iz++) {
  155.  
  156. $existing_presensi_2 = Presensi::where('tanggal_dan_waktu_tap', $row[$i]['DateTime'][0])->
  157. where('karyawan_id', $row[$i]['PIN'][0])->
  158. // where('source', $jadwal[$iz]->source)->
  159. // where('source_id', $jadwal[$iz]->source_id)->
  160. // where('jadwal_id', $jadwal[$iz]->jadwal_id)->
  161. first();
  162. // if($iz == 0) {
  163. // dd($jadwal);
  164. // dd($existing_presensi_2);
  165. // }
  166.  
  167. // dd($existing_presensi_2);
  168. if(!isset($existing_presensi_2)) {
  169. // $tanggal = Carbon::parse($tanggal_waktu_tap)->format('Y-m-d');
  170. // $tanggal_kemarin = Carbon::parse($tanggal_waktu_tap)->subDay()->format('Y-m-d');
  171. // $tanggal_besok = Carbon::parse($tanggal_waktu_tap)->addDay()->format('Y-m-d');
  172. $tanggal_mulai = Carbon::parse($jadwal[$iz]->tanggal_mulai)->format('Y-m-d');
  173. $tanggal_selesai = Carbon::parse($jadwal[$iz]->tanggal_selesai)->format('Y-m-d');
  174. $hariini = Carbon::now()->format('Y-m-d');
  175.  
  176. // if(($tanggal_kemarin >= $tanggal_mulai) && ($tanggal_kemarin <= $tanggal_selesai)) {
  177. // $adajadwal = 1;
  178. // }
  179. // if(($tanggal >= $tanggal_mulai) && ($tanggal <= $tanggal_selesai)) {
  180. // $adajadwal = 1;
  181. // }
  182. // if(($tanggal_besok >= $tanggal_mulai) && ($tanggal_besok <= $tanggal_selesai)) {
  183. // $adajadwal = 1;
  184. // }
  185.  
  186. // if($adajadwal == 1) {
  187. /**
  188. * Source dan source id taronya di setiap pengecekan slotjam
  189. */
  190. // $source = $jadwal[$iz]->source;
  191. // $source_id = $jadwal[$iz]->source_id;
  192.  
  193. $jam_masuk = $jadwal[$iz]->jam_masuk;
  194. $jam_istirahat_mulai = $jadwal[$iz]->jam_istirahat_mulai;
  195. $jam_istirahat_selesai = $jadwal[$iz]->jam_istirahat_selesai;
  196. $jam_pulang = $jadwal[$iz]->jam_pulang;
  197.  
  198. $closing_time = ClosingTime::find(1);
  199. $setting_closing_time = strtotime($closing_time->jangka_waktu)-strtotime("00:00:00");
  200. $datang_awal = SettingDatangAwalKhusus::find(1);
  201. $setting_datang_awal = strtotime($datang_awal->datang_awal)-strtotime("00:00:00");
  202. $setting_presensi = SettingPresensi::find(1);
  203. if(isset($setting_presensi->toleransi_keterlambatan)) {
  204. $toleransi = strtotime($setting_presensi->toleransi_keterlambatan)-strtotime("00:00:00");
  205. // $toleransi_min = strtotime("+1 minutes",strtotime($setting_presensi->toleransi_keterlambatan))-strtotime("00:00:00");
  206.  
  207. $max_istirahat_mulai = strtotime($jam_istirahat_selesai)-$toleransi-strtotime("00:00:00");
  208. $max_istirahat_selesai = strtotime($jam_pulang)-$toleransi-strtotime("00:00:00");
  209.  
  210. // dd($max_istirahat_selesai);
  211.  
  212. /**
  213. * Cek Jadwal sebelumnya dan selanjutnya untuk menentukan jam masuk berikutnya
  214. */
  215. $after_jam_pulang_next = null;
  216. $before_jam_masuk_previous = null;
  217. if(count($jadwal) > 1) {
  218. if($iz == 0) {
  219.  
  220. //ketika jadwal di awal / jadwal pertama
  221. $after_jam_pulang_next = date("H:i:s",strtotime($jadwal[$iz + 1]->jam_masuk)-$toleransi);
  222. // cek tanggal tap apakah sama dengan tanggal mulai jadwal
  223. if(date("Y-m-d", strtotime($jadwal[$iz]->tanggal_mulai)) == date("Y-m-d", strtotime($tanggal_waktu_tap))) {
  224. // jika hari pertama maka tidak ada jadwal sebelumnya
  225. $before_jam_masuk_previous = date("H:i:s",strtotime($jadwal[$iz]->$jam_masuk)-$setting_datang_awal);
  226. } else {
  227. // dd("0");
  228. // jika bukan hari pertama maka ada jadwal sebelumnya
  229. // cek jarak
  230. $jarak_pulang = 0;
  231. $jarak_masuk = 150; // karena di awal, diset bwt patok pake datang awal
  232. if(isset($jadwal[$iz + 1])) {
  233. // ambil jarak pulang
  234. $jarak_pulang = abs(strtotime($jadwal[$iz]->jam_pulang) - strtotime($jadwal[$iz + 1]->jam_masuk)) / 60;
  235. // ambil jarak masuk
  236. // $jarak_masuk = abs(strtotime($jadwal[$iz]->jam_masuk) - strtotime($jadwal[$iz - 1]->jam_pulang)) / 60;
  237. }
  238.  
  239. if($jarak_masuk >= 150) {
  240. // jika jaraknya >= 2.5 jam maka pake datang awal
  241. $before_jam_masuk_previous = date("H:i:s",strtotime($jadwal[$iz]->jam_masuk)-$setting_datang_awal);
  242. } else {
  243. // jika jaraknya < 2.5 jam maka pake toleransi
  244. $before_jam_masuk_previous1 = date("H:i:s",strtotime($jadwal[$iz]->jam_masuk)-$toleransi);
  245. $before_jam_masuk_previous = date("H:i:s",strtotime("+1 second",strtotime($before_jam_masuk_previous1)));
  246. }
  247.  
  248. if($jarak_pulang >= 150) {
  249. // jika jaraknya >= 2.5 jam maka patok + 2 jam
  250. $after_jam_pulang_next = date("H:i:s",strtotime("+2 hours", strtotime($jadwal[$iz]->jam_pulang)));
  251. } else {
  252. // jika jaraknya < 2.5 jam maka pake toleransi
  253. $after_jam_pulang_next = date("H:i:s",strtotime($jadwal[$iz + 1]->jam_masuk)-$toleransi);
  254. }
  255.  
  256. /**
  257. * Code Lama
  258. */
  259. // $jam_pulang_sebelumnya = $jadwal[count($jadwal) - 1]->jam_pulang;
  260. // $jarak = abs(strtotime($jam_pulang_sebelumnya) - strtotime($jadwal[$iz]->jam_masuk)) / 60;
  261. // if($jarak >= 150) {
  262. // // dd("1");
  263. // // jika jaraknya >= 2.5 jam maka pake datang awal
  264. // $before_jam_masuk_previous = date("H:i:s",strtotime($jadwal[$iz]->jam_masuk)-$setting_datang_awal);
  265. // } else {
  266. // // dd("2");
  267. // // jika jaraknya < 2.5 jam maka pake toleransi
  268. // $before_jam_masuk_previous = date("H:i:s",strtotime($jadwal[$iz]->jam_masuk)-$toleransi);
  269. // }
  270. }
  271. } else if($iz > 0 && isset($jadwal[$iz + 1])) {
  272. // ketika jadwal di tengah tengah / bkn jadwal pertama atw jadwal terakhir
  273. // cek jarak
  274. $jarak_pulang = 0;
  275. $jarak_masuk = 0;
  276. if(isset($jadwal[$iz + 1])) {
  277. // ambil jarak pulang
  278. $jarak_pulang = abs(strtotime($jadwal[$iz]->jam_pulang) - strtotime($jadwal[$iz + 1]->jam_masuk)) / 60;
  279. // ambil jarak masuk
  280. $jarak_masuk = abs(strtotime($jadwal[$iz]->jam_masuk) - strtotime($jadwal[$iz - 1]->jam_pulang)) / 60;
  281. }
  282.  
  283. if($jarak_masuk >= 150) {
  284. // jika jaraknya >= 2.5 jam maka pake datang awal
  285. $before_jam_masuk_previous = date("H:i:s",strtotime($jadwal[$iz]->jam_masuk)-$setting_datang_awal);
  286. } else {
  287. // jika jaraknya < 2.5 jam maka pake toleransi
  288. $before_jam_masuk_previous1 = date("H:i:s",strtotime($jadwal[$iz]->jam_masuk)-$toleransi);
  289. $before_jam_masuk_previous = date("H:i:s",strtotime("+1 second",strtotime($before_jam_masuk_previous1)));
  290. }
  291.  
  292. if($jarak_pulang >= 150) {
  293. // jika jaraknya >= 2.5 jam maka patok + 2 jam
  294. $after_jam_pulang_next = date("H:i:s",strtotime("+2 hours", strtotime($jadwal[$iz]->jam_pulang)));
  295. } else {
  296. // jika jaraknya < 2.5 jam maka pake toleransi
  297. $after_jam_pulang_next = date("H:i:s",strtotime($jadwal[$iz]->jam_pulang)+$toleransi);
  298. }
  299. } else {
  300. // ketika jadwal di akhir / jadwal terakhir
  301. /**
  302. * Ubah jadwal sebelumnya -> jam pulang + toleransi
  303. * Menjadi jadwal sekarang -> jam masuk - toleransi
  304. */
  305. // $before_jam_masuk_previous = date("H:i:s",strtotime($jadwal[$iz - 1]->jam_pulang)+$toleransi);
  306. // $before_jam_masuk_previous = date("H:i:s",strtotime($jadwal[$iz]->jam_masuk)-$toleransi);
  307. // dd("4.5");
  308. // cek tanggal tap apakah sama dengan tanggal selesai jadwal
  309. if(date("Y-m-d", strtotime($jadwal[$iz]->tanggal_selesai)) == date("Y-m-d", strtotime($tanggal_waktu_tap))) {
  310. // jika hari terakhir maka tidak ada jadwal setelahnya
  311. $after_jam_pulang_next = date("H:i:s",strtotime("+2 hours", strtotime($jadwal[$iz]->jam_pulang)));
  312.  
  313. // $jarak_masuk = 0;
  314. // if(isset($jadwal[$iz + 1])) {
  315. // ambil jarak pulang
  316. // $jarak_pulang = abs(strtotime($jadwal[$iz]->jam_pulang) - strtotime($jadwal[$iz + 1]->jam_masuk)) / 60;
  317. // ambil jarak masuk
  318. $jarak_masuk = abs(strtotime($jadwal[$iz]->jam_masuk) - strtotime($jadwal[$iz - 1]->jam_pulang)) / 60;
  319. // }
  320.  
  321. if($jarak_masuk >= 150) {
  322. // jika jaraknya >= 2.5 jam maka pake datang awal
  323. $before_jam_masuk_previous = date("H:i:s",strtotime($jadwal[$iz]->jam_masuk)-$setting_datang_awal);
  324. } else {
  325. // jika jaraknya < 2.5 jam maka pake toleransi
  326. $before_jam_masuk_previous1 = date("H:i:s",strtotime($jadwal[$iz]->jam_masuk)-$toleransi);
  327. $before_jam_masuk_previous = date("H:i:s",strtotime("+1 second",strtotime($before_jam_masuk_previous1)));
  328. }
  329. } else {
  330. // dd("4.75");
  331. // jika bukan hari terakhir maka ada jadwal setelahnya
  332. // cek jarak
  333. // cek jarak
  334. $jarak_pulang = 150; //krn diujung, diset bwt patok + 2 jam
  335. $jarak_masuk = 0;
  336. if(isset($jadwal[$iz + 1])) {
  337. // ambil jarak pulang
  338. // $jarak_pulang = abs(strtotime($jadwal[$iz]->jam_pulang) - strtotime($jadwal[$iz + 1]->jam_masuk)) / 60;
  339. // ambil jarak masuk
  340. $jarak_masuk = abs(strtotime($jadwal[$iz]->jam_masuk) - strtotime($jadwal[$iz - 1]->jam_pulang)) / 60;
  341. }
  342.  
  343. if($jarak_masuk >= 150) {
  344. // jika jaraknya >= 2.5 jam maka pake datang awal
  345. $before_jam_masuk_previous = date("H:i:s",strtotime($jadwal[$iz]->jam_masuk)-$setting_datang_awal);
  346. } else {
  347. // jika jaraknya < 2.5 jam maka pake toleransi
  348. $before_jam_masuk_previous1 = date("H:i:s",strtotime($jadwal[$iz]->jam_masuk)-$toleransi);
  349. $before_jam_masuk_previous = date("H:i:s",strtotime("+1 second",strtotime($before_jam_masuk_previous1)));
  350. }
  351.  
  352. if($jarak_pulang >= 150) {
  353. // jika jaraknya >= 2.5 jam maka patok + 2 jam
  354. $after_jam_pulang_next = date("H:i:s",strtotime("+2 hours", strtotime($jadwal[$iz]->jam_pulang)));
  355. } else {
  356. // jika jaraknya < 2.5 jam maka pake toleransi
  357. $after_jam_pulang_next = date("H:i:s",strtotime($jadwal[$iz]->jam_pulang)+$toleransi);
  358. }
  359.  
  360. /**
  361. * Fungsi lama
  362. */
  363. // $jarak = 0;
  364. // if(isset($jadwal[$iz + 1])) {
  365. // $jam_pulang_sebelumnya = $jadwal[$iz]->jam_pulang;
  366. // $jarak = abs(strtotime($jam_pulang_sebelumnya) - strtotime($jadwal[$iz + 1]->jam_masuk)) / 60;
  367. // } else {
  368. // $jam_pulang_sebelumnya = $jadwal[$iz - 1]->jam_pulang;
  369. // $jarak = abs(strtotime($jam_pulang_sebelumnya) - strtotime($jadwal[$iz]->jam_masuk)) / 60;
  370. // }
  371. // if($jarak >= 150) {
  372. // // dd("5");
  373. // // jika jaraknya >= 2.5 jam maka pake datang awal
  374. // $after_jam_pulang_next = date("H:i:s",strtotime("+2 hours", strtotime($jadwal[$iz]->jam_pulang)));
  375. // } else {
  376. // // dd("6");
  377. // // jika jaraknya < 2.5 jam maka pake toleransi
  378. // $after_jam_pulang_next = date("H:i:s",strtotime($jadwal[$iz]->jam_pulang)+$toleransi);
  379. // }
  380. // $after_jam_pulang_next = date("H:i:s",strtotime($jadwal[$iz]->jam_pulang)+$toleransi);
  381. }
  382. }
  383. } else {
  384. // jika jadwal cm punya 1
  385.  
  386. // set default before jam masuk previous dan after jam pulang next
  387. // untuk kondisi tanggal tab bukan tanggal awal dan tanggal akhir di jadwal
  388. // jika ada tap di tanggal awal dan tanggal akhir replace value default ini
  389. $before_jam_masuk_previous = date("H:i:s",strtotime($jadwal[$iz]->jam_masuk)-$setting_datang_awal);
  390. $after_jam_pulang_next = date("H:i:s",strtotime("+2 hours", strtotime($jadwal[$iz]->jam_pulang)));
  391.  
  392. // // cek tanggal tap apakah sama dengan tanggal mulai jadwal
  393. // if(date("Y-m-d", strtotime($jadwal[$iz]->tanggal_mulai)) == date("Y-m-d", strtotime($tanggal_waktu_tap))) {
  394. // // jika hari pertama maka tidak ada jadwal sebelumnya
  395. // $before_jam_masuk_previous = date("H:i:s",strtotime($jadwal[$iz]->jam_masuk)-$setting_datang_awal);
  396. // } else {
  397. // // jika bukan hari pertama maka ada jadwal sebelumnya
  398. // $before_jam_masuk_previous = date("H:i:s",strtotime($jadwal[$iz]->jam_masuk)-$toleransi);
  399. // }
  400.  
  401. // cek tanggal tap apakah sama dengan tanggal selesai jadwal
  402. // if(date("Y-m-d", strtotime($jadwal[$iz]->tanggal_selesai)) == date("Y-m-d", strtotime($tanggal_waktu_tap))) {
  403. // // jika hari terakhir maka tidak ada jadwal setelahnya
  404. // $after_jam_pulang_next = date("H:i:s",strtotime("+2 hours", strtotime($jadwal[$iz]->jam_pulang)));
  405. // } else {
  406. // // jika bukan hari terakhir maka ada jadwal setelahnya
  407. // $after_jam_pulang_next = date("H:i:s",strtotime($jadwal[$iz]->jam_masuk)-$toleransi);
  408. // }
  409. // dd($jadwal[$iz]->jam_pulang);
  410. // dd(date("H:i:s",strtotime("+2 hours", strtotime($jadwal[$iz]->jam_pulang))));
  411. // dd($after_jam_pulang_next);
  412. }
  413.  
  414. // $before_jam_masuk = date("H:i:s",strtotime($jam_masuk)-$setting_datang_awal);
  415. $before_jam_masuk = $before_jam_masuk_previous;
  416. $after_jam_masuk = date("H:i:s",strtotime($jam_masuk)+$toleransi);
  417.  
  418. $before_jam_istirahat_mulai = date("H:i:s",strtotime($jam_istirahat_mulai)-$toleransi);
  419. // $after_jam_istirahat_mulai = date("H:i:s",strtotime($jam_istirahat_selesai)-$toleransi_min);
  420.  
  421. $before_jam_istirahat_selesai = date("H:i:s",strtotime($jam_istirahat_selesai)-$toleransi);
  422. // $after_jam_istirahat_selesai = date("H:i:s",strtotime($jam_pulang)-$toleransi_min);
  423.  
  424. $before_jam_pulang = date("H:i:s",strtotime($jam_pulang)-$toleransi);
  425. // $after_jam_pulang = date("H:i:s",strtotime($jam_pulang)+$setting_closing_time);
  426. $after_jam_pulang = $after_jam_pulang_next;
  427.  
  428. // buat debug
  429. // if($iz == 0) {
  430. // // dd($jadwal);
  431. // // dd($jadwal[$iz]->toArray());
  432. // dd($jamtap . " - " . $before_jam_masuk . " - " . $after_jam_masuk . " - " . $before_jam_istirahat_mulai . " - ". $before_jam_istirahat_selesai . " - " . $before_jam_pulang . " - " . $after_jam_pulang);
  433. // }
  434.  
  435. if(($jamtap > $before_jam_masuk) && ($jamtap < $after_jam_masuk)) {
  436. $slotjam = "Masuk";
  437. $poin = $setting_poin->jam_masuk;
  438. $source = $jadwal[$iz]->source;
  439. $source_id = $jadwal[$iz]->source_id;
  440. } elseif(($jamtap == $before_jam_masuk) || ($jamtap == $after_jam_masuk)) {
  441. $slotjam = "Masuk";
  442. $poin = $setting_poin->jam_masuk;
  443. $source = $jadwal[$iz]->source;
  444. $source_id = $jadwal[$iz]->source_id;
  445. } elseif(($jamtap > $after_jam_masuk) && ($jamtap < $before_jam_istirahat_mulai)) {
  446. $slotjam = "Terlambat Masuk";
  447. $poin = $setting_poin->jam_masuk;
  448. $source = $jadwal[$iz]->source;
  449. $source_id = $jadwal[$iz]->source_id;
  450. } elseif(($jamtap > $before_jam_istirahat_mulai) && ($jamtap < $before_jam_istirahat_selesai)) {
  451. $slotjam = "Istirahat Mulai";
  452. $poin = $setting_poin->jam_mulai_istirahat;
  453. $source = $jadwal[$iz]->source;
  454. $source_id = $jadwal[$iz]->source_id;
  455. } elseif(($jamtap == $before_jam_istirahat_mulai)) {
  456. $slotjam = "Istirahat Mulai";
  457. $poin = $setting_poin->jam_mulai_istirahat;
  458. $source = $jadwal[$iz]->source;
  459. $source_id = $jadwal[$iz]->source_id;
  460. } elseif(($jamtap > $before_jam_istirahat_selesai) && ($jamtap < $before_jam_pulang)) {
  461. $slotjam = "Istirahat Selesai";
  462. $poin = $setting_poin->jam_mulai_istirahat;
  463. $source = $jadwal[$iz]->source;
  464. $source_id = $jadwal[$iz]->source_id;
  465. } elseif($jamtap == $before_jam_istirahat_selesai) {
  466. $slotjam = "Istirahat Selesai";
  467. $poin = $setting_poin->jam_mulai_istirahat;
  468. $source = $jadwal[$iz]->source;
  469. $source_id = $jadwal[$iz]->source_id;
  470. // }
  471.  
  472. // if(strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)) >= strtotime("24:00:00")) {
  473. // if((strtotime("+24 hours", strtotime($jamtap)) > strtotime("+24 hours", strtotime($before_jam_istirahat_selesai))) && (strtotime("+24 hours", strtotime($jamtap)) < strtotime("+24 hours", strtotime($before_jam_pulang)))) {
  474. // // if((strtotime("+24 hours", strtotime($jamtap)) > strtotime("+24 hours", strtotime($before_jam_istirahat_selesai))) && (strtotime("+24 hours", strtotime($jamtap)) < strtotime("+24 hours", strtotime($after_jam_istirahat_selesai)))) {
  475. // $slotjam = "Istirahat Selesai 1";
  476. // $poin = $setting_poin->jam_selesai_istirahat;
  477. // $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  478. // $tanggal_waktu_tap->subDay();
  479. // }
  480. // if((strtotime("+24 hours", strtotime($jamtap)) == strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)))) {
  481. // $slotjam = "Istirahat Selesai 2";
  482. // $poin = $setting_poin->jam_selesai_istirahat;
  483. // $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  484. // $tanggal_waktu_tap->subDay();
  485. // }
  486.  
  487. // // terlambat istirahat selesai
  488. // // if((strtotime("+24 hours", strtotime($jamtap)) > strtotime("+24 hours", strtotime($after_jam_istirahat_selesai))) && (strtotime("+24 hours", strtotime($jamtap)) < strtotime("+24 hours", strtotime($before_jam_pulang)))) {
  489. // // $slotjam = "Terlambat Istirahat Selesai";
  490. // // $poin = $setting_poin->jam_selesai_istirahat;
  491. // // $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  492. // // $tanggal_waktu_tap->subDay();
  493. // // }
  494. // // if((strtotime("+24 hours", strtotime($jamtap)) == strtotime("+24 hours", strtotime($after_jam_istirahat_selesai)))) {
  495. // // $slotjam = "Terlambat Istirahat Selesai";
  496. // // $poin = $setting_poin->jam_selesai_istirahat;
  497. // // $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  498. // // $tanggal_waktu_tap->subDay();
  499. // // }
  500. // } else {
  501. // $slotjam = "Istirahat Selesai 3";
  502. // $poin = $setting_poin->jam_selesai_istirahat;
  503. // }
  504. } elseif(($jamtap > $before_jam_pulang) && ($jamtap < $after_jam_pulang)) {
  505. $slotjam = "Pulang";
  506. $poin = $setting_poin->jam_keluar;
  507. $source = $jadwal[$iz]->source;
  508. $source_id = $jadwal[$iz]->source_id;
  509.  
  510. // if(strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)) >= strtotime("24:00:00")) {
  511. // if((strtotime("+24 hours", strtotime($jamtap)) > strtotime("+24 hours", strtotime($before_jam_pulang))) && (strtotime("+24 hours", strtotime($jamtap)) < strtotime("+24 hours", strtotime($after_jam_pulang)))) {
  512. // $slotjam = "Pulang";
  513. // $poin = $setting_poin->jam_keluar;
  514. // $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  515. // $tanggal_waktu_tap->subDay();
  516. // }
  517. // if((strtotime("+24 hours", strtotime($jamtap)) == strtotime("+24 hours", strtotime($before_jam_pulang))) || (strtotime("+24 hours", strtotime($jamtap)) == strtotime("+24 hours", strtotime($after_jam_pulang)))) {
  518. // $slotjam = "Pulang";
  519. // $poin = $setting_poin->jam_keluar;
  520. // $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  521. // $tanggal_waktu_tap->subDay();
  522. // }
  523. // } else {
  524. // $slotjam = "Pulang";
  525. // $poin = $setting_poin->jam_keluar;
  526. // }
  527. } elseif(($jamtap == $before_jam_pulang) || ($jamtap == $after_jam_pulang)) {
  528.  
  529. $slotjam = "Pulang";
  530. $poin = $setting_poin->jam_keluar;
  531. $source = $jadwal[$iz]->source;
  532. $source_id = $jadwal[$iz]->source_id;
  533. }
  534.  
  535. //-----CASE A-----
  536. if(strtotime($jam_pulang) < strtotime($jam_istirahat_selesai)) {
  537. // dd(strtotime("00:00:00"));
  538. // Jika jam tap < jam 12 malam
  539. if((strtotime($jamtap) < strtotime("24:00:00"))) {
  540.  
  541. //-----CASE 1-----
  542. if((strtotime($jamtap) > strtotime($before_jam_istirahat_selesai)) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($before_jam_pulang)))) {
  543. $slotjam = "Istirahat Selesai";
  544. $poin = $setting_poin->jam_selesai_istirahat;
  545. $source = $jadwal[$iz]->source;
  546. $source_id = $jadwal[$iz]->source_id;
  547. } elseif(($jamtap == $before_jam_istirahat_selesai)) {
  548. $slotjam = "Istirahat Selesai";
  549. $poin = $setting_poin->jam_selesai_istirahat;
  550. $source = $jadwal[$iz]->source;
  551. $source_id = $jadwal[$iz]->source_id;
  552. }
  553.  
  554. //-----CASE 2-----
  555. if(strtotime("+24 hours", strtotime($before_jam_pulang)) < strtotime("24:00:00")) {
  556. if(strtotime($jamtap) > strtotime("+24 hours", strtotime($before_jam_pulang)) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($after_jam_pulang)))) {
  557. $slotjam = "Pulang";
  558. $poin = $setting_poin->jam_keluar;
  559. $source = $jadwal[$iz]->source;
  560. $source_id = $jadwal[$iz]->source_id;
  561. } elseif((strtotime($jamtap) == strtotime("+24 hours", strtotime($before_jam_pulang))) || (strtotime($jamtap) == strtotime("+24 hours", strtotime($after_jam_pulang)))) {
  562. $slotjam = "Pulang";
  563. $poin = $setting_poin->jam_keluar;
  564. $source = $jadwal[$iz]->source;
  565. $source_id = $jadwal[$iz]->source_id;
  566. }
  567. }
  568. }
  569.  
  570. // Jika jam tap >= jam 12 malam
  571. if((strtotime($jamtap) >= strtotime("00:00:00"))) {
  572. // dd(strtotime("+24 hours", strtotime($jamtap)) > strtotime("+24 hours", strtotime($before_jam_pulang)) && strtotime("+24 hours", strtotime($jamtap)) < strtotime("+24 hours", strtotime($after_jam_pulang)));
  573.  
  574. //-----CASE 3-----
  575. if((strtotime("+24 hours", strtotime($jamtap)) > strtotime($before_jam_istirahat_selesai)) && (strtotime("+24 hours", strtotime($jamtap)) < strtotime("+24 hours", strtotime($before_jam_pulang)))) {
  576. $slotjam = "Istirahat Selesai";
  577. $poin = $setting_poin->jam_selesai_istirahat;
  578. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  579. $tanggal_waktu_tap->subDay();
  580. $source = $jadwal[$iz]->source;
  581. $source_id = $jadwal[$iz]->source_id;
  582. } elseif(($jamtap == $before_jam_istirahat_selesai)) {
  583. $slotjam = "Istirahat Selesai";
  584. $poin = $setting_poin->jam_selesai_istirahat;
  585. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  586. $tanggal_waktu_tap->subDay();
  587. $source = $jadwal[$iz]->source;
  588. $source_id = $jadwal[$iz]->source_id;
  589. }
  590.  
  591. //-----CASE 4-----
  592. if(strtotime("+24 hours", strtotime($before_jam_pulang)) >= strtotime("00:00:00")) {
  593. if((strtotime("+24 hours", strtotime($jamtap)) > strtotime("+24 hours", strtotime($before_jam_pulang))) && (strtotime("+24 hours", strtotime($jamtap)) < strtotime("+24 hours", strtotime($after_jam_pulang)))) {
  594. $slotjam = "Pulang";
  595. $poin = $setting_poin->jam_keluar;
  596. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  597. $tanggal_waktu_tap->subDay();
  598. $source = $jadwal[$iz]->source;
  599. $source_id = $jadwal[$iz]->source_id;
  600. } elseif((strtotime("+24 hours", strtotime($jamtap)) == strtotime("+24 hours", strtotime($before_jam_pulang))) || (strtotime($jamtap) == strtotime("+24 hours", strtotime($after_jam_pulang)))) {
  601. $slotjam = "Pulang";
  602. $poin = $setting_poin->jam_keluar;
  603. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  604. $tanggal_waktu_tap->subDay();
  605. $source = $jadwal[$iz]->source;
  606. $source_id = $jadwal[$iz]->source_id;
  607. }
  608. }
  609.  
  610. //-----CASE 5-----
  611. if(strtotime("+24 hours", strtotime($before_jam_pulang)) < strtotime("24:00:00")) {
  612. if((strtotime("+24 hours", strtotime($jamtap)) > strtotime("+24 hours", strtotime($before_jam_pulang))) && (strtotime("+24 hours", strtotime($jamtap)) < strtotime("+24 hours", strtotime($after_jam_pulang)))) {
  613. $slotjam = "Pulang";
  614. $poin = $setting_poin->jam_keluar;
  615. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  616. $tanggal_waktu_tap->subDay();
  617. $source = $jadwal[$iz]->source;
  618. $source_id = $jadwal[$iz]->source_id;
  619. } elseif((strtotime($jamtap) == strtotime($before_jam_pulang)) || (strtotime($jamtap) == strtotime("+24 hours", strtotime($after_jam_pulang)))) {
  620. $slotjam = "Pulang";
  621. $poin = $setting_poin->jam_keluar;
  622. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  623. $tanggal_waktu_tap->subDay();
  624. $source = $jadwal[$iz]->source;
  625. $source_id = $jadwal[$iz]->source_id;
  626. }
  627. }
  628.  
  629. //-----CASE 6-----
  630. if(strtotime($after_jam_pulang) == strtotime("00:00:00")) {
  631. if((strtotime($jamtap) > strtotime($before_jam_pulang)) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($after_jam_pulang)))) {
  632. $slotjam = "Pulang";
  633. $poin = $setting_poin->jam_keluar;
  634. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  635. $tanggal_waktu_tap->subDay();
  636. $source = $jadwal[$iz]->source;
  637. $source_id = $jadwal[$iz]->source_id;
  638. } elseif((strtotime($jamtap) == strtotime($before_jam_pulang)) || (strtotime($jamtap) == strtotime("+24 hours", strtotime($after_jam_pulang)))) {
  639. $slotjam = "Pulang";
  640. $poin = $setting_poin->jam_keluar;
  641. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  642. $tanggal_waktu_tap->subDay();
  643. $source = $jadwal[$iz]->source;
  644. $source_id = $jadwal[$iz]->source_id;
  645. }
  646. }
  647. }
  648. }
  649.  
  650. //-----CASE B-----
  651. if(strtotime($jam_istirahat_selesai) < strtotime($jam_istirahat_mulai)) {
  652. // dd(strtotime("00:00:00"));
  653. // Jika jam tap < jam 12 malam
  654.  
  655. if((strtotime($jamtap) < strtotime("24:00:00"))) {
  656.  
  657. //-----CASE 7-----
  658. if((strtotime($jamtap) > strtotime($before_jam_istirahat_mulai)) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)))) {
  659. $slotjam = "Istirahat Mulai";
  660. $poin = $setting_poin->jam_mulai_istirahat;
  661. $source = $jadwal[$iz]->source;
  662. $source_id = $jadwal[$iz]->source_id;
  663. } elseif(($jamtap == $before_jam_istirahat_mulai)) {
  664. $slotjam = "Istirahat Mulai";
  665. $poin = $setting_poin->jam_mulai_istirahat;
  666. $source = $jadwal[$iz]->source;
  667. $source_id = $jadwal[$iz]->source_id;
  668. }
  669.  
  670. //-----CASE 8-----
  671. if(strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)) < strtotime("24:00:00")) {
  672. if(strtotime($jamtap) > strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($before_jam_pulang)))) {
  673. $slotjam = "Istirahat Selesai";
  674. $poin = $setting_poin->jam_selesai_istirahat;
  675. $source = $jadwal[$iz]->source;
  676. $source_id = $jadwal[$iz]->source_id;
  677. } elseif((strtotime($jamtap) == strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)))) {
  678. $slotjam = "Istirahat Selesai";
  679. $poin = $setting_poin->jam_selesai_istirahat;
  680. $source = $jadwal[$iz]->source;
  681. $source_id = $jadwal[$iz]->source_id;
  682. }
  683. }
  684.  
  685. }
  686.  
  687. // Jika jam tap >= jam 12 malam
  688. if((strtotime($jamtap) >= strtotime("00:00:00"))) {
  689.  
  690. //-----CASE 9-----
  691. if((strtotime("+24 hours", strtotime($jamtap)) > strtotime($before_jam_istirahat_mulai)) && (strtotime("+24 hours", strtotime($jamtap)) < strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)))) {
  692. $slotjam = "Istirahat Mulai";
  693. $poin = $setting_poin->jam_mulai_istirahat;
  694. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  695. $tanggal_waktu_tap->subDay();
  696. $source = $jadwal[$iz]->source;
  697. $source_id = $jadwal[$iz]->source_id;
  698. } elseif(($jamtap == $before_jam_istirahat_mulai)) {
  699. $slotjam = "Istirahat Mulai";
  700. $poin = $setting_poin->jam_mulai_istirahat;
  701. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  702. $tanggal_waktu_tap->subDay();
  703. $source = $jadwal[$iz]->source;
  704. $source_id = $jadwal[$iz]->source_id;
  705. }
  706.  
  707. //-----CASE 10-----
  708. if(strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)) >= strtotime("00:00:00")) {
  709. if((strtotime("+24 hours", strtotime($jamtap)) > strtotime("+24 hours", strtotime($before_jam_istirahat_selesai))) && (strtotime("+24 hours", strtotime($jamtap)) < strtotime("+24 hours", strtotime($before_jam_pulang)))) {
  710. $slotjam = "Istirahat Selesai";
  711. $poin = $setting_poin->jam_selesai_istirahat;
  712. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  713. $tanggal_waktu_tap->subDay();
  714. $source = $jadwal[$iz]->source;
  715. $source_id = $jadwal[$iz]->source_id;
  716. } elseif((strtotime("+24 hours", strtotime($jamtap)) == strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)))) {
  717. $slotjam = "Istirahat Selesai";
  718. $poin = $setting_poin->jam_selesai_istirahat;
  719. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  720. $tanggal_waktu_tap->subDay();
  721. $source = $jadwal[$iz]->source;
  722. $source_id = $jadwal[$iz]->source_id;
  723. }
  724. }
  725.  
  726. //-----CASE 11-----
  727. if(strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)) < strtotime("24:00:00")) {
  728. if((strtotime("+24 hours", strtotime($jamtap)) > strtotime("+24 hours", strtotime($before_jam_istirahat_selesai))) && (strtotime("+24 hours", strtotime($jamtap)) < strtotime("+24 hours", strtotime($before_jam_pulang)))) {
  729. $slotjam = "Istirahat Selesai";
  730. $poin = $setting_poin->jam_selesai_istirahat;
  731. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  732. $tanggal_waktu_tap->subDay();
  733. $source = $jadwal[$iz]->source;
  734. $source_id = $jadwal[$iz]->source_id;
  735. } elseif((strtotime($jamtap) == strtotime($before_jam_istirahat_selesai))) {
  736. $slotjam = "Istirahat Selesai";
  737. $poin = $setting_poin->jam_selesai_istirahat;
  738. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  739. $tanggal_waktu_tap->subDay();
  740. $source = $jadwal[$iz]->source;
  741. $source_id = $jadwal[$iz]->source_id;
  742. }
  743. }
  744. }
  745. }
  746.  
  747. //-----CASE C-----
  748. if(strtotime($jam_istirahat_mulai) < strtotime($jam_masuk)) {
  749. // dd(strtotime("00:00:00"));
  750. // Jika jam tap < jam 12 malam
  751.  
  752. if((strtotime($jamtap) < strtotime("24:00:00"))) {
  753.  
  754. //-----CASE 12-----
  755. if((strtotime($jamtap) > strtotime($before_jam_masuk)) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)))) {
  756. if((strtotime($jamtap) > strtotime($before_jam_masuk)) && (strtotime($jamtap) < strtotime($after_jam_masuk))) {
  757. $slotjam = "Masuk";
  758. $poin = $setting_poin->jam_masuk;
  759. $source = $jadwal[$iz]->source;
  760. $source_id = $jadwal[$iz]->source_id;
  761. }
  762. if((strtotime($jamtap) > strtotime($before_jam_masuk)) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($after_jam_masuk)))) {
  763. $slotjam = "Masuk";
  764. $poin = $setting_poin->jam_masuk;
  765. $source = $jadwal[$iz]->source;
  766. $source_id = $jadwal[$iz]->source_id;
  767.  
  768. if((strtotime("+24 hours", strtotime($jamtap)) == strtotime("24:00:00"))) {
  769. $slotjam = "Masuk";
  770. $poin = $setting_poin->jam_masuk;
  771. $source = $jadwal[$iz]->source;
  772. $source_id = $jadwal[$iz]->source_id;
  773. }
  774.  
  775. if((strtotime($jamtap) < strtotime("24:00:00")) && (strtotime($jamtap) > strtotime($before_jam_masuk))) {
  776. $slotjam = "Masuk";
  777. $poin = $setting_poin->jam_masuk;
  778. $source = $jadwal[$iz]->source;
  779. $source_id = $jadwal[$iz]->source_id;
  780. }
  781.  
  782. if((strtotime("+24 hours", strtotime($jamtap)) > strtotime("24:00:00")) && (strtotime("+24 hours", strtotime($jamtap)) < strtotime("+24 hours", strtotime($after_jam_masuk)))) {
  783. $slotjam = "Masuk";
  784. $poin = $setting_poin->jam_masuk;
  785. $source = $jadwal[$iz]->source;
  786. $source_id = $jadwal[$iz]->source_id;
  787. }
  788. }
  789. if((strtotime($jamtap) > strtotime($after_jam_masuk)) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)))) {
  790. $slotjam = "Terlambat Masuk";
  791. $poin = $setting_poin->jam_masuk;
  792. $source = $jadwal[$iz]->source;
  793. $source_id = $jadwal[$iz]->source_id;
  794.  
  795. if((strtotime("+24 hours", strtotime($jamtap)) == strtotime("24:00:00"))) {
  796. $slotjam = "Terlambat Masuk";
  797. $poin = $setting_poin->jam_masuk;
  798. $source = $jadwal[$iz]->source;
  799. $source_id = $jadwal[$iz]->source_id;
  800. }
  801.  
  802. if((strtotime($jamtap) < strtotime("24:00:00")) && (strtotime($jamtap) > strtotime($after_jam_masuk))) {
  803. $slotjam = "Terlambat Masuk";
  804. $poin = $setting_poin->jam_masuk;
  805. $source = $jadwal[$iz]->source;
  806. $source_id = $jadwal[$iz]->source_id;
  807. }
  808.  
  809. if((strtotime("+24 hours", strtotime($jamtap)) > strtotime("24:00:00")) && (strtotime("+24 hours", strtotime($jamtap)) < strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)))) {
  810. $slotjam = "Terlambat Masuk";
  811. $poin = $setting_poin->jam_masuk;
  812. $source = $jadwal[$iz]->source;
  813. $source_id = $jadwal[$iz]->source_id;
  814. }
  815. }
  816.  
  817. } elseif(($jamtap == $before_jam_masuk)) {
  818. $slotjam = "Masuk";
  819. $poin = $setting_poin->jam_masuk;
  820. $source = $jadwal[$iz]->source;
  821. $source_id = $jadwal[$iz]->source_id;
  822. }
  823.  
  824. //-----CASE 13-----
  825. if(strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)) < strtotime("24:00:00")) {
  826. if(strtotime($jamtap) > strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($after_jam_istirahat_selesai)))) {
  827. $slotjam = "Istirahat Mulai";
  828. $poin = $setting_poin->jam_mulai_istirahat;
  829. $source = $jadwal[$iz]->source;
  830. $source_id = $jadwal[$iz]->source_id;
  831. } elseif((strtotime($jamtap) == strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)))) {
  832. $slotjam = "Istirahat Mulai";
  833. $poin = $setting_poin->jam_mulai_istirahat;
  834. $source = $jadwal[$iz]->source;
  835. $source_id = $jadwal[$iz]->source_id;
  836. }
  837. }
  838.  
  839. //-----CASE 14-----
  840. if(strtotime($after_jam_masuk) < strtotime("24:00:00")) {
  841. if(strtotime($before_jam_istirahat_mulai) < strtotime("24:00:00")) {
  842. if((strtotime($jamtap) > strtotime($after_jam_masuk)) && (strtotime($jamtap) < strtotime($before_jam_istirahat_mulai))) {
  843. $slotjam = "Terlambat Masuk";
  844. $poin = $setting_poin->jam_masuk;
  845. $source = $jadwal[$iz]->source;
  846. $source_id = $jadwal[$iz]->source_id;
  847. }
  848. }
  849. }
  850.  
  851. if(strtotime($jam_masuk) == strtotime("00:00:00")) {
  852. //-----CASE 15-----
  853. if(strtotime($before_jam_masuk) < strtotime("00:00:00")) {
  854. if((strtotime($jamtap) > strtotime("+24 hours", strtotime($before_jam_masuk))) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($after_jam_masuk)))) {
  855. $slotjam = "Masuk";
  856. $poin = $setting_poin->jam_masuk;
  857. $source = $jadwal[$iz]->source;
  858. $source_id = $jadwal[$iz]->source_id;
  859. } elseif((strtotime($jamtap) == strtotime("+24 hours", strtotime($before_jam_masuk)))) {
  860. $slotjam = "Masuk";
  861. $poin = $setting_poin->jam_masuk;
  862. $source = $jadwal[$iz]->source;
  863. $source_id = $jadwal[$iz]->source_id;
  864. }
  865. }
  866. }
  867. }
  868.  
  869. // Jika jam tap >= jam 12 malam
  870. if((strtotime($jamtap) >= strtotime("00:00:00"))) {
  871. // dd(strtotime("+24 hours", strtotime($jamtap)) > strtotime("+24 hours", strtotime($before_jam_pulang)) && strtotime("+24 hours", strtotime($jamtap)) < strtotime("+24 hours", strtotime($after_jam_pulang)));
  872.  
  873. //-----CASE 16----
  874. if((strtotime("+24 hours", strtotime($jamtap)) < strtotime($after_jam_masuk)) && (strtotime("+24 hours", strtotime($jamtap)) < strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)))) {
  875. $slotjam = "Masuk";
  876. $poin = $setting_poin->jam_masuk;
  877. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  878. $tanggal_waktu_tap->subDay();
  879. $source = $jadwal[$iz]->source;
  880. $source_id = $jadwal[$iz]->source_id;
  881. }
  882. if(($jamtap == $before_jam_masuk)) {
  883. $slotjam = "Masuk";
  884. $poin = $setting_poin->jam_masuk;
  885. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  886. $tanggal_waktu_tap->subDay();
  887. $source = $jadwal[$iz]->source;
  888. $source_id = $jadwal[$iz]->source_id;
  889. }
  890.  
  891. //-----CASE 17-----
  892. if(strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)) >= strtotime("00:00:00")) {
  893. if((strtotime("+24 hours", strtotime($jamtap)) > strtotime("+24 hours", strtotime($before_jam_istirahat_mulai))) && (strtotime("+24 hours", strtotime($jamtap)) < strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)))) {
  894. $slotjam = "Istirahat Mulai";
  895. $poin = $setting_poin->jam_mulai_istirahat;
  896. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  897. $tanggal_waktu_tap->subDay();
  898. $source = $jadwal[$iz]->source;
  899. $source_id = $jadwal[$iz]->source_id;
  900. } elseif((strtotime("+24 hours", strtotime($jamtap)) == strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)))) {
  901. $slotjam = "Istirahat Mulai";
  902. $poin = $setting_poin->jam_mulai_istirahat;
  903. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  904. $tanggal_waktu_tap->subDay();
  905. $source = $jadwal[$iz]->source;
  906. $source_id = $jadwal[$iz]->source_id;
  907. }
  908. }
  909.  
  910. if(strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)) >= strtotime("00:00:00")) {
  911. if((strtotime("+24 hours", strtotime($jamtap)) > strtotime("+24 hours", strtotime($before_jam_istirahat_selesai))) && (strtotime("+24 hours", strtotime($jamtap)) < strtotime("+24 hours", strtotime($before_jam_pulang)))) {
  912. $slotjam = "Istirahat Selesai";
  913. $poin = $setting_poin->jam_selesai_istirahat;
  914. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  915. $tanggal_waktu_tap->subDay();
  916. $source = $jadwal[$iz]->source;
  917. $source_id = $jadwal[$iz]->source_id;
  918. } elseif((strtotime("+24 hours", strtotime($jamtap)) == strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)))) {
  919. $slotjam = "Istirahat Selesai";
  920. $poin = $setting_poin->jam_selesai_istirahat;
  921. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  922. $tanggal_waktu_tap->subDay();
  923. $source = $jadwal[$iz]->source;
  924. $source_id = $jadwal[$iz]->source_id;
  925. }
  926. }
  927.  
  928. if(strtotime("+24 hours", strtotime($before_jam_pulang)) >= strtotime("00:00:00")) {
  929. if((strtotime("+24 hours", strtotime($jamtap)) > strtotime("+24 hours", strtotime($before_jam_pulang))) && (strtotime("+24 hours", strtotime($jamtap)) < strtotime("+24 hours", strtotime($after_jam_pulang)))) {
  930. $slotjam = "Pulang";
  931. $poin = $setting_poin->jam_keluar;
  932. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  933. $tanggal_waktu_tap->subDay();
  934. $source = $jadwal[$iz]->source;
  935. $source_id = $jadwal[$iz]->source_id;
  936. } elseif((strtotime("+24 hours", strtotime($jamtap)) == strtotime("+24 hours", strtotime($before_jam_pulang)))) {
  937. $slotjam = "Pulang";
  938. $poin = $setting_poin->jam_keluar;
  939. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  940. $tanggal_waktu_tap->subDay();
  941. $source = $jadwal[$iz]->source;
  942. $source_id = $jadwal[$iz]->source_id;
  943. }
  944. }
  945.  
  946. //-----CASE 18-----
  947. if(strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)) < strtotime("24:00:00")) {
  948. if((strtotime("+24 hours", strtotime($jamtap)) > strtotime("+24 hours", strtotime($before_jam_istirahat_mulai))) && (strtotime("+24 hours", strtotime($jamtap)) < strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)))) {
  949. $slotjam = "Istirahat Mulai";
  950. $poin = $setting_poin->jam_mulai_istirahat;
  951. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  952. $tanggal_waktu_tap->subDay();
  953. $source = $jadwal[$iz]->source;
  954. $source_id = $jadwal[$iz]->source_id;
  955. } elseif((strtotime($jamtap) == strtotime($before_jam_istirahat_mulai))) {
  956. $slotjam = "Istirahat Mulai";
  957. $poin = $setting_poin->jam_mulai_istirahat;
  958. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  959. $tanggal_waktu_tap->subDay();
  960. $source = $jadwal[$iz]->source;
  961. $source_id = $jadwal[$iz]->source_id;
  962. }
  963. }
  964.  
  965. if(strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)) < strtotime("24:00:00")) {
  966. if((strtotime("+24 hours", strtotime($jamtap)) > strtotime("+24 hours", strtotime($before_jam_istirahat_selesai))) && (strtotime("+24 hours", strtotime($jamtap)) < strtotime("+24 hours", strtotime($before_jam_pulang)))) {
  967. $slotjam = "Istirahat Selesai";
  968. $poin = $setting_poin->jam_selesai_istirahat;
  969. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  970. $tanggal_waktu_tap->subDay();
  971. $source = $jadwal[$iz]->source;
  972. $source_id = $jadwal[$iz]->source_id;
  973. } elseif((strtotime($jamtap) == strtotime($before_jam_istirahat_selesai))) {
  974. $slotjam = "Istirahat Selesai";
  975. $poin = $setting_poin->jam_selesai_istirahat;
  976. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  977. $tanggal_waktu_tap->subDay();
  978. $source = $jadwal[$iz]->source;
  979. $source_id = $jadwal[$iz]->source_id;
  980. }
  981. }
  982.  
  983. if(strtotime("+24 hours", strtotime($before_jam_pulang)) < strtotime("24:00:00")) {
  984. if((strtotime("+24 hours", strtotime($jamtap)) > strtotime("+24 hours", strtotime($before_jam_pulang))) && (strtotime("+24 hours", strtotime($jamtap)) < strtotime("+24 hours", strtotime($after_jam_pulang)))) {
  985. $slotjam = "Pulang";
  986. $poin = $setting_poin->jam_keluar;
  987. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  988. $tanggal_waktu_tap->subDay();
  989. $source = $jadwal[$iz]->source;
  990. $source_id = $jadwal[$iz]->source_id;
  991. } elseif((strtotime($jamtap) == strtotime($before_jam_pulang))) {
  992. $slotjam = "Pulang";
  993. $poin = $setting_poin->jam_keluar;
  994. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  995. $tanggal_waktu_tap->subDay();
  996. $source = $jadwal[$iz]->source;
  997. $source_id = $jadwal[$iz]->source_id;
  998. }
  999. }
  1000.  
  1001.  
  1002. //-----CASE 19-----
  1003. if(strtotime($after_jam_masuk) >= strtotime("00:00:00")) {
  1004. if(strtotime($before_jam_istirahat_mulai) >= strtotime("24:00:00")) {
  1005. if((strtotime("+24 hours", strtotime($jamtap)) > strtotime("+24 hours", strtotime($after_jam_masuk))) && (strtotime("+24 hours", strtotime($jamtap)) < strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)))) {
  1006. $slotjam = "Terlambat Masuk";
  1007. $poin = $setting_poin->jam_masuk;
  1008. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  1009. $tanggal_waktu_tap->subDay();
  1010. $source = $jadwal[$iz]->source;
  1011. $source_id = $jadwal[$iz]->source_id;
  1012. }
  1013. }
  1014. }
  1015.  
  1016. //-----CASE 19.1-----
  1017. if(strtotime($after_jam_masuk) < strtotime("24:00:00")) {
  1018. if(strtotime($before_jam_istirahat_mulai) >= strtotime("24:00:00")) {
  1019. if((strtotime("+24 hours", strtotime($jamtap)) > strtotime("+24 hours", strtotime($after_jam_masuk))) && (strtotime("+24 hours", strtotime($jamtap)) < strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)))) {
  1020. $slotjam = "Terlambat Masuk";
  1021. $poin = $setting_poin->jam_masuk;
  1022. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  1023. $tanggal_waktu_tap->subDay();
  1024. $source = $jadwal[$iz]->source;
  1025. $source_id = $jadwal[$iz]->source_id;
  1026. }
  1027.  
  1028. if((strtotime("+24 hours", strtotime($jamtap)) > strtotime($after_jam_masuk)) && (strtotime("+24 hours", strtotime($jamtap)) < strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)))) {
  1029. $slotjam = "Terlambat Masuk";
  1030. $poin = $setting_poin->jam_masuk;
  1031. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  1032. $tanggal_waktu_tap->subDay();
  1033. $source = $jadwal[$iz]->source;
  1034. $source_id = $jadwal[$iz]->source_id;
  1035. }
  1036. } elseif(strtotime($before_jam_istirahat_mulai) < strtotime("24:00:00")) {
  1037. if((strtotime("+24 hours", strtotime($jamtap)) > strtotime("+24 hours", strtotime($after_jam_masuk))) && (strtotime("+24 hours", strtotime($jamtap)) < strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)))) {
  1038. $slotjam = "Terlambat Masuk";
  1039. $poin = $setting_poin->jam_masuk;
  1040. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  1041. $tanggal_waktu_tap->subDay();
  1042. $source = $jadwal[$iz]->source;
  1043. $source_id = $jadwal[$iz]->source_id;
  1044. }
  1045.  
  1046. if((strtotime("+24 hours", strtotime($jamtap)) > strtotime($after_jam_masuk)) && (strtotime("+24 hours", strtotime($jamtap)) < strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)))) {
  1047. $slotjam = "Terlambat Masuk";
  1048. $poin = $setting_poin->jam_masuk;
  1049. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  1050. $tanggal_waktu_tap->subDay();
  1051. $source = $jadwal[$iz]->source;
  1052. $source_id = $jadwal[$iz]->source_id;
  1053. }
  1054. }
  1055. }
  1056.  
  1057. //-----CASE 20-----
  1058. if(strtotime($before_jam_masuk) == strtotime("00:00:00")) {
  1059. if((strtotime($jamtap) > strtotime($before_jam_masuk)) && (strtotime($jamtap) < strtotime($before_jam_istirahat_mulai))) {
  1060. $slotjam = "Masuk";
  1061. $poin = $setting_poin->jam_masuk;
  1062. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  1063. $tanggal_waktu_tap->subDay();
  1064. $source = $jadwal[$iz]->source;
  1065. $source_id = $jadwal[$iz]->source_id;
  1066. } elseif((strtotime($jamtap) == strtotime($before_jam_masuk)) || (strtotime($jamtap) == strtotime($after_jam_pulang))) {
  1067. $slotjam = "Masuk";
  1068. $poin = $setting_poin->jam_masuk;
  1069. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  1070. $tanggal_waktu_tap->subDay();
  1071. $source = $jadwal[$iz]->source;
  1072. $source_id = $jadwal[$iz]->source_id;
  1073. }
  1074. }
  1075.  
  1076. if(strtotime($jam_masuk) == strtotime("00:00:00")) {
  1077.  
  1078. //-----CASE 21-----
  1079. if(strtotime($before_jam_masuk) < strtotime("00:00:00")) {
  1080. if((strtotime($jamtap) > strtotime($before_jam_masuk)) && (strtotime($jamtap) < strtotime($before_jam_istirahat_mulai))) {
  1081. $slotjam = "Masuk";
  1082. $poin = $setting_poin->jam_masuk;
  1083. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  1084. $tanggal_waktu_tap->subDay();
  1085. $source = $jadwal[$iz]->source;
  1086. $source_id = $jadwal[$iz]->source_id;
  1087. } elseif((strtotime($jamtap) == strtotime($before_jam_istirahat_mulai))) {
  1088. $slotjam = "Masuk";
  1089. $poin = $setting_poin->jam_masuk;
  1090. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  1091. $tanggal_waktu_tap->subDay();
  1092. $source = $jadwal[$iz]->source;
  1093. $source_id = $jadwal[$iz]->source_id;
  1094. }
  1095. }
  1096. }
  1097. }
  1098. }
  1099.  
  1100. //-----CASE D-----
  1101. if(strtotime($jam_masuk) == strtotime("00:00:00")) {
  1102. //-----CASE 22-----
  1103. if((strtotime($jamtap) < strtotime("00:00:00")) == false) {
  1104. if((strtotime($jamtap) > strtotime("+24 hours", strtotime($before_jam_masuk))) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($after_jam_masuk)))) {
  1105. $slotjam = "Masuk";
  1106. $poin = $setting_poin->jam_masuk;
  1107. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  1108. $tanggal_waktu_tap->subDay();
  1109. $source = $jadwal[$iz]->source;
  1110. $source_id = $jadwal[$iz]->source_id;
  1111. } else if((strtotime("+24 hours",strtotime($jamtap)) < strtotime("+24 hours", strtotime($after_jam_masuk)))) {
  1112. $slotjam = "Masuk";
  1113. $poin = $setting_poin->jam_masuk;
  1114. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  1115. $tanggal_waktu_tap->subDay();
  1116. $source = $jadwal[$iz]->source;
  1117. $source_id = $jadwal[$iz]->source_id;
  1118. } else if((strtotime($jamtap) == strtotime("+24 hours", strtotime($before_jam_masuk))) || (strtotime($jamtap) == strtotime("+24 hours", strtotime($after_jam_masuk)))) {
  1119. $slotjam = "Masuk";
  1120. $poin = $setting_poin->jam_masuk;
  1121. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  1122. $tanggal_waktu_tap->subDay();
  1123. $source = $jadwal[$iz]->source;
  1124. $source_id = $jadwal[$iz]->source_id;
  1125. }
  1126. }
  1127. }
  1128.  
  1129. //-----CASE E-----
  1130. if(strtotime($jam_pulang) == strtotime("00:00:00")) {
  1131. //-----CASE 23-----
  1132. if((strtotime($jamtap) < strtotime("00:00:00")) == false) {
  1133. if((strtotime($jamtap) > strtotime("+24 hours", strtotime($before_jam_pulang))) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($after_jam_pulang)))) {
  1134. $slotjam = "Pulang";
  1135. $poin = $setting_poin->jam_keluar;
  1136. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  1137. $tanggal_waktu_tap->subDay();
  1138. $source = $jadwal[$iz]->source;
  1139. $source_id = $jadwal[$iz]->source_id;
  1140. } else if((strtotime("+24 hours",strtotime($jamtap)) < strtotime("+24 hours", strtotime($after_jam_pulang)))) {
  1141. $slotjam = "Pulang";
  1142. $poin = $setting_poin->jam_keluar;
  1143. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  1144. $tanggal_waktu_tap->subDay();
  1145. $source = $jadwal[$iz]->source;
  1146. $source_id = $jadwal[$iz]->source_id;
  1147. } else if((strtotime($jamtap) == strtotime("+24 hours", strtotime($before_jam_pulang))) || (strtotime($jamtap) == strtotime("+24 hours", strtotime($after_jam_pulang)))) {
  1148. $slotjam = "Pulang";
  1149. $poin = $setting_poin->jam_keluar;
  1150. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  1151. $tanggal_waktu_tap->subDay();
  1152. $source = $jadwal[$iz]->source;
  1153. $source_id = $jadwal[$iz]->source_id;
  1154. }
  1155. }
  1156. }
  1157. }
  1158. // } else {
  1159. // $slotjam = null;
  1160. // $poin = 0;
  1161. // }
  1162. // $status_final = $slotjam;
  1163. $presensi = array(
  1164. 'karyawan_id' => $id_karyawan,
  1165. 'nama_karyawan' => $nama_karyawan,
  1166. 'group_karyawan' => $group_karyawan,
  1167. 'group_id' => $karyawan->group_id ? $karyawan->group_id : null,
  1168. 'jadwal_id' => $karyawan->jadwal_ngeplus_id ? $karyawan->jadwal_ngeplus_id : null,
  1169. 'setting_presensi_id' => 1,
  1170. 'tanggal_dan_waktu_tap' => $tanggal_waktu_tap,
  1171. 'poin' => $poin,
  1172. 'status' => isset($jadwal[$iz]) ? $jadwal[$iz]->status : null,
  1173. 'slotjam' => $slotjam,
  1174. 'source' => $source,
  1175. 'source_id' => $source_id
  1176. );
  1177.  
  1178. // $presensilog = array(
  1179. // 'karyawan_id' => $id_karyawan,
  1180. // 'group_id' => $karyawan->group_id ? $karyawan->group_id : null,
  1181. // 'nama_karyawan' => $nama_karyawan,
  1182. // 'group_karyawan' => $group_karyawan,
  1183. // 'tanggal_dan_waktu_tap' => $tanggal_waktu_tap,
  1184. // 'slotjam' => $slotjam,
  1185. // 'poin' => $poin,
  1186. // 'status' => isset($jadwal[$iz]) ? $jadwal[$iz]->status : '-'
  1187. // );
  1188.  
  1189. // if($iz == 0) {
  1190. // // dd($jadwal[$iz]->toArray());
  1191. // // dd($jamtap . " - " . $before_jam_masuk . " - " . $after_jam_masuk . " - " . $before_jam_istirahat_mulai . " - " . $after_jam_istirahat_mulai . " - " . $before_jam_istirahat_selesai . " - " . $after_jam_istirahat_selesai . " - " . $before_jam_pulang . " - " . $after_jam_pulang);
  1192. // dd($presensi);
  1193. // }
  1194.  
  1195. $slotjamkomparasi = $slotjam;
  1196. if($slotjamkomparasi == 'Terlambat Masuk') {
  1197. $slotjamkomparasi = 'Masuk';
  1198. }
  1199.  
  1200. // cek data presensi sebelumnya
  1201. // $oldpresensi = Presensi::where([
  1202. // ['status', '=', isset($jadwal_terpilih) ? $jadwal_terpilih->status : null],
  1203. // ['slotjam', 'LIKE', '%'.$slotjamkomparasi],
  1204. // ['karyawan_id', '=', $id_karyawan],
  1205. // ])->whereDate('tanggal_dan_waktu_tap', '=', date('Y-m-d', strtotime($tanggal_waktu_tap)))->first();
  1206.  
  1207. /**
  1208. * Backup
  1209. */
  1210. // $oldpresensi = Presensi::where([
  1211. // ['status', '=', $jadwal[$iz]->status],
  1212. // ['source', '=', $source],
  1213. // ['source_id', '=', $source_id],
  1214. // ['slotjam', 'LIKE', '%'.$slotjamkomparasi],
  1215. // ])
  1216. $oldpresensi = Presensi::whereDate('tanggal_dan_waktu_tap', '=', Carbon::parse($tanggal_waktu_tap)->toDateString())
  1217. ->where('status', $jadwal[$iz]->status)
  1218. ->where('slotjam', 'like', '%'.$slotjamkomparasi)
  1219. ->where('source', $jadwal[$iz]->source)
  1220. ->where('source_id', $jadwal[$iz]->source_id)
  1221. ->first();
  1222.  
  1223. // if($iz == 0) {
  1224. // // dd($jadwal);
  1225. // dd($jamtap . " - " . $before_jam_masuk . " - " . $after_jam_masuk . " - " . $before_jam_istirahat_mulai . " - " . $before_jam_istirahat_selesai . " - " . $before_jam_pulang . " - " . $after_jam_pulang);
  1226. // // dd($oldpresensi);
  1227. // }
  1228. // if($jadwal_terpilih->status == 'nge-plus') {
  1229. // $oldpresensi = Presensi::where([
  1230. // ['status', '=', 'nge-plus'],
  1231. // ['slotjam', 'LIKE', '%'.$slotjamkomparasi],
  1232. // ])->whereDate('tanggal_dan_waktu_tap', '=', date('Y-m-d', strtotime($tanggal_waktu_tap)))
  1233. // ->where('karyawan_id', '=', $id_karyawan)->first();
  1234. // } else if($jadwal_terpilih->status == 'ngeplus-group') {
  1235. // $oldpresensi = Presensi::where([
  1236. // ['status', '=', 'ngeplus-group'],
  1237. // ['slotjam', 'LIKE', '%'.$slotjamkomparasi],
  1238. // ])->whereDate('tanggal_dan_waktu_tap', '=', date('Y-m-d', strtotime($tanggal_waktu_tap)))
  1239. // ->where('karyawan_id', '=', $id_karyawan)->first();
  1240. // }
  1241.  
  1242. // if($iz == 1) {
  1243.  
  1244. // dd(Carbon::parse(Carbon::parse($tanggal_waktu_tap)->toDateString())->isBetween(strval($jadwal[$iz]->tanggal_mulai), strval($jadwal[$iz]->tanggal_selesai)));
  1245. // }
  1246.  
  1247. if(isset($oldpresensi)) {
  1248. // $oldpresensi->update($presensi);
  1249. $data_terinput = $data_terinput + 0;
  1250. } else if(Carbon::parse(Carbon::parse($tanggal_waktu_tap)->toDateString())->isBetween(strval($jadwal[$iz]->tanggal_mulai), strval($jadwal[$iz]->tanggal_selesai))) {
  1251. // cek jam masuk
  1252. if((($slotjam == 'Masuk') || ($slotjam == 'Terlambat Masuk'))) {
  1253. Presensi::create($presensi);
  1254. $data_terinput = $data_terinput + 1;
  1255. $status_final = $presensi['slotjam'];
  1256.  
  1257. // input ke kph
  1258. self::inputPresensiToKph($presensi, 'nge-plus');
  1259. }
  1260. // cek jam istirahat mulai
  1261. if($slotjam == 'Istirahat Mulai') {
  1262. Presensi::create($presensi);
  1263. $data_terinput = $data_terinput + 1;
  1264. $status_final = $presensi['slotjam'];
  1265.  
  1266. // input ke kph
  1267. self::inputPresensiToKph($presensi, 'nge-plus');
  1268. }
  1269. // cek jam istirahat selesai
  1270. if($slotjam == 'Istirahat Selesai') {
  1271. Presensi::create($presensi);
  1272. $data_terinput = $data_terinput + 1;
  1273. $status_final = $presensi['slotjam'];
  1274.  
  1275. // input ke kph
  1276. self::inputPresensiToKph($presensi, 'nge-plus');
  1277. }
  1278. // cek jam pulang
  1279. if($slotjam == 'Pulang') {
  1280. Presensi::create($presensi);
  1281. $data_terinput = $data_terinput + 1;
  1282. $status_final = $presensi['slotjam'];
  1283.  
  1284. // input ke kph
  1285. self::inputPresensiToKph($presensi, 'nge-plus');
  1286. }
  1287. }
  1288.  
  1289. // PresensiLog::create($presensilog);
  1290.  
  1291. // $peringatan = SuratPeringatan::find($id_karyawan);
  1292. // $peringatan->tanggal_tap_terakhir = $tanggal_waktu_tap;
  1293. // $peringatan->tanggal_awal = $tanggal_waktu_tap;
  1294. // $peringatan->save();
  1295. }
  1296. }
  1297. }
  1298. }
  1299. }
  1300. }
  1301. }
  1302. } catch (Exception $e) {
  1303. echo $e->message;
  1304. }
  1305. // slotjam tidak dimasukan ke return krn tdk valid jika multijadwal hanya ambil slotjam terakhir
  1306. // return response()->json(['status' => 200, 'message' => 'Data Terinput:' . $data_terinput, 'status_presensi' => $slotjam]);
  1307. return response()->json(['status' => 200, 'message' => 'Data Terinput:' . $data_terinput]);
  1308. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement