Advertisement
vitareinforce

full inputmesin ngeplus

Nov 5th, 2021
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 184.09 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. $tanggal_waktu_tap_static = $row[$i]['DateTime'][0];
  26.  
  27. $karyawan = Karyawan::find($id_karyawan);
  28. if(isset($karyawan)) {
  29. $jamtap = date('H:i:s', strtotime($tanggal_waktu_tap));
  30. $slotjam = null;
  31. $poin = 0;
  32. $setting_poin = SettingPoin::find(2);
  33. $adajadwal = 0;
  34. $jadwal = null;
  35. $jadwal_terpilih = null;
  36. $status_izin = 0;
  37. $nama_karyawan = $karyawan->nama;
  38. if(isset($karyawan->group_id)) {
  39. $group_karyawan = $karyawan->group->nama.'-'.$karyawan->groupno;
  40. }
  41.  
  42. //cek jadwal izin
  43. $jadwal_izin = JadwalIzin::where('karyawan_id', '=', $id_karyawan)->get();
  44.  
  45. for($l = 0; $l < count($jadwal_izin); $l++) {
  46. $mulai_izin = Carbon::parse($jadwal_izin[$l]->tanggal_mulai)->format('Y-m-d');
  47. $selesai_izin = Carbon::parse($jadwal_izin[$l]->tanggal_selesai)->format('Y-m-d');
  48. $tanggal_sekarang = Carbon::parse($tanggal_waktu_tap)->format('Y-m-d');
  49. if(($tanggal_sekarang >= $mulai_izin) && ($tanggal_sekarang <= $selesai_izin)) {
  50. $status_izin = 1;
  51. }
  52. }
  53.  
  54. if($status_izin == 0) {
  55.  
  56. // mundurin tanggal
  57. $tanggal_waktu_tap_mundur = Carbon::parse($tanggal_waktu_tap);
  58. $tanggal_waktu_tap_mundur->subDay();
  59.  
  60. $tanggal_waktu_tap_maju = Carbon::parse($tanggal_waktu_tap);
  61. $tanggal_waktu_tap_maju->addDay();
  62.  
  63. $format_tanggal = strval(date("Y-m-d", strtotime($tanggal_waktu_tap)));
  64. $format_tanggal_mundur = strval(date("Y-m-d", strtotime($tanggal_waktu_tap_mundur)));
  65. $format_tanggal_maju = strval(date("Y-m-d", strtotime($tanggal_waktu_tap_maju)));
  66.  
  67. // set tanggal
  68. $tanggal = Carbon::parse($tanggal_waktu_tap)->format('Y-m-d');
  69. $tanggal_kemarin = Carbon::parse($tanggal_waktu_tap)->subDay()->format('Y-m-d');
  70. $tanggal_besok = Carbon::parse($tanggal_waktu_tap)->addDay()->format('Y-m-d');
  71.  
  72. // dapetin semua
  73. // $jadwal_all = JadwalNgeplus::where('karyawan_id', '=', $id_karyawan)
  74. // // ->whereDate('tanggal_mulai', '<=', $format_tanggal)
  75. // // ->whereDate('tanggal_selesai', '>=', $format_tanggal)
  76. // ->orderBy('tanggal_mulai', 'asc')
  77. // // ->orderBy('jam_pulang', 'asc')
  78. // ->get();
  79.  
  80. // pseudocode fakhry ver
  81. $jadwal = array();
  82.  
  83. $jadwal_ngeplus_max_date = JadwalNgeplus::where('karyawan_id', '=', $id_karyawan)->get();
  84.  
  85. // attempt 1
  86. // dd($jadwal_ngeplus_max_date);
  87. if(count($jadwal_ngeplus_max_date) > 0) {
  88. $max_date = $jadwal_ngeplus_max_date[0]->tanggal_selesai;
  89. // loop bwt ambil tanggal selesai terjauh
  90. for($jax = 0; $jax < count($jadwal_ngeplus_max_date); $jax++) {
  91. if($jadwal_ngeplus_max_date[$jax]->tanggal_selesai > $max_date) {
  92. $max_date = $jadwal_ngeplus_max_date[$jax]->tanggal_selesai;
  93. }
  94. }
  95. $batas_awal = Carbon::parse($tanggal_waktu_tap_mundur)->toDateString();
  96. $batas_akhir = Carbon::parse($max_date)->toDateString();
  97.  
  98. // hitung range hari
  99. $range_hari = CarbonPeriod::create($batas_awal, $batas_akhir)->toArray();
  100. // if(count($range_hari) == 0) {
  101. // $batas_awal = Carbon::parse($tanggal_waktu_tap)->subDay()->toDateString();
  102. // $batas_akhir = Carbon::parse($max_date)->toDateString();
  103. // $range_hari = CarbonPeriod::create($batas_awal, $batas_akhir)->toArray();
  104. // }
  105. // dd($range_hari);
  106. if(count($range_hari) <= 2 && count($range_hari) > 0) {
  107. // ambil jadwal
  108. for($rh = 0; $rh < count($range_hari); $rh++) {
  109. $get_jadwal_ngeplus = JadwalNgeplus::where('karyawan_id', '=', $id_karyawan)
  110. ->whereDate('tanggal_mulai', '<=', Carbon::parse($range_hari[$rh])->toDateString())
  111. ->whereDate('tanggal_selesai', '>=', Carbon::parse($range_hari[$rh])->toDateString())
  112. ->orderBy('tanggal_mulai', 'ASC')->get();
  113. // dd($get_jadwal_ngeplus);
  114. for($j1 = 0; $j1 < count($get_jadwal_ngeplus); $j1++) {
  115. // 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()) {
  116. $get_jadwal_ngeplus[$j1]->setAttribute('tanggal_pick', Carbon::parse($range_hari[$rh])->toDateString());
  117. array_push($jadwal, $get_jadwal_ngeplus[$j1]);
  118. // }
  119. }
  120. }
  121. } else if(count($range_hari) > 2) {
  122. // ambil jadwal
  123. for($rh = 0; $rh < 2; $rh++) {
  124. $get_jadwal_ngeplus = JadwalNgeplus::where('karyawan_id', '=', $id_karyawan)
  125. ->whereDate('tanggal_mulai', '<=', Carbon::parse($range_hari[$rh])->toDateString())
  126. ->whereDate('tanggal_selesai', '>=', Carbon::parse($range_hari[$rh])->toDateString())
  127. ->orderBy('tanggal_mulai', 'ASC')->get();
  128. // dd($get_jadwal_ngeplus);
  129. for($j2 = 0; $j2 < count($get_jadwal_ngeplus); $j2++) {
  130. // 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()) {
  131. $get_jadwal_ngeplus[$j2]->setAttribute('tanggal_pick', Carbon::parse($range_hari[$rh])->toDateString());
  132. array_push($jadwal, $get_jadwal_ngeplus[$j2]);
  133. // }
  134. }
  135. }
  136. }
  137. }
  138.  
  139. // attempt 2
  140. // dd($jadwal_ngeplus_max_date);
  141. if(count($jadwal_ngeplus_max_date) > 0) {
  142. $max_date = $jadwal_ngeplus_max_date[0]->tanggal_selesai;
  143. // loop bwt ambil tanggal selesai terjauh
  144. for($jax = 0; $jax < count($jadwal_ngeplus_max_date); $jax++) {
  145. if($jadwal_ngeplus_max_date[$jax]->tanggal_selesai > $max_date) {
  146. $max_date = $jadwal_ngeplus_max_date[$jax]->tanggal_selesai;
  147. }
  148. }
  149. $batas_awal = Carbon::parse($tanggal_waktu_tap)->toDateString();
  150. $batas_akhir = Carbon::parse($max_date)->toDateString();
  151.  
  152. // hitung range hari
  153. $range_hari = CarbonPeriod::create($batas_awal, $batas_akhir)->toArray();
  154. // if(count($range_hari) == 0) {
  155. // $batas_awal = Carbon::parse($tanggal_waktu_tap_mundur)->toDateString();
  156. // $batas_akhir = Carbon::parse($max_date)->toDateString();
  157. // $range_hari = CarbonPeriod::create($batas_awal, $batas_akhir)->toArray();
  158. // }
  159.  
  160. if(count($range_hari) <= 2 && count($range_hari) > 0) {
  161. // ambil jadwal
  162. for($rh = 0; $rh < count($range_hari); $rh++) {
  163. $get_jadwal_ngeplus = JadwalNgeplus::where('karyawan_id', '=', $id_karyawan)
  164. ->whereDate('tanggal_mulai', '<=', Carbon::parse($range_hari[$rh])->toDateString())
  165. ->whereDate('tanggal_selesai', '>=', Carbon::parse($range_hari[$rh])->toDateString())
  166. ->orderBy('tanggal_mulai', 'ASC')->get();
  167. // dd($get_jadwal_ngeplus);
  168. for($j1 = 0; $j1 < count($get_jadwal_ngeplus); $j1++) {
  169. // 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()) {
  170. $get_jadwal_ngeplus[$j1]->setAttribute('tanggal_pick', Carbon::parse($range_hari[$rh])->toDateString());
  171. array_push($jadwal, $get_jadwal_ngeplus[$j1]);
  172. // }
  173. }
  174. }
  175. } else if(count($range_hari) > 2) {
  176. // ambil jadwal
  177. for($rh = 0; $rh < 2; $rh++) {
  178. $get_jadwal_ngeplus = JadwalNgeplus::where('karyawan_id', '=', $id_karyawan)
  179. ->whereDate('tanggal_mulai', '<=', Carbon::parse($range_hari[$rh])->toDateString())
  180. ->whereDate('tanggal_selesai', '>=', Carbon::parse($range_hari[$rh])->toDateString())
  181. ->orderBy('tanggal_mulai', 'ASC')->get();
  182. // dd($get_jadwal_ngeplus);
  183. for($j2 = 0; $j2 < count($get_jadwal_ngeplus); $j2++) {
  184. // 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()) {
  185. $get_jadwal_ngeplus[$j2]->setAttribute('tanggal_pick', Carbon::parse($range_hari[$rh])->toDateString());
  186. array_push($jadwal, $get_jadwal_ngeplus[$j2]);
  187. // }
  188. }
  189. }
  190. }
  191. }
  192.  
  193. // usort($jadwal, function($a, $b) {
  194. // return strcmp($a->id, $b->id);
  195. // });
  196.  
  197. $jadwal_filter = array_values( array_unique( $jadwal, SORT_REGULAR ) );
  198. $jadwal = array();
  199. for($j = 0; $j < count($jadwal_filter); $j++) {
  200. if(Carbon::parse($jadwal_filter[$j]['tanggal_pick'])->lte(Carbon::parse($tanggal_waktu_tap_static))) {
  201. array_push($jadwal, $jadwal_filter[$j]);
  202. }
  203. }
  204.  
  205. // SORTING JADWAL SESUAI URUTAN TANGGAL
  206. usort($jadwal, function($a, $b) {
  207. return strcmp($a['tanggal_mulai'], $b['tanggal_mulai']);
  208. });
  209.  
  210. // usort($jadwal, function($a, $b) {
  211. // return strcmp($a['jam_masuk'], $b['jam_masuk']);
  212. // });
  213.  
  214. // dd($jadwal);
  215. // dd($tanggal_waktu_tap);
  216. // cek jadwal ada 1
  217. if(count($jadwal) == 1) {
  218.  
  219. $existing_presensi_2 = Presensi::where('tanggal_dan_waktu_tap', $row[$i]['DateTime'][0])->
  220. where('karyawan_id', $row[$i]['PIN'][0])->
  221. // where('source', $jadwal[0]->source)->
  222. // where('source_id', $jadwal[0]->source_id)->
  223. // where('jadwal_id', $jadwal[0]->jadwal_id)->
  224. first();
  225. if(!isset($existing_presensi_2)) {
  226.  
  227. $datang_awal = SettingDatangAwalKhusus::find(1);
  228. $setting_datang_awal = strtotime($datang_awal->datang_awal)-strtotime("00:00:00");
  229.  
  230. $tanggal_mulai = Carbon::parse($jadwal[0]['tanggal_mulai'])->format('Y-m-d');
  231. $tanggal_selesai = Carbon::parse($jadwal[0]['tanggal_selesai'])->format('Y-m-d');
  232. $hariini = Carbon::now()->format('Y-m-d');
  233.  
  234. $jam_masuk = $jadwal[0]['jam_masuk'];
  235. $jam_istirahat_mulai = $jadwal[0]['jam_istirahat_mulai'];
  236. $jam_istirahat_selesai = $jadwal[0]['jam_istirahat_selesai'];
  237. $jam_pulang = $jadwal[0]['jam_pulang'];
  238.  
  239. $before_jam_masuk_previous = date("H:i:s",strtotime($jadwal[0]['jam_masuk'])-$setting_datang_awal);
  240. $after_jam_pulang_next = date("H:i:s",strtotime("+5 hours", strtotime($jadwal[0]['jam_pulang'])));
  241.  
  242. $closing_time = ClosingTime::find(1);
  243. $setting_closing_time = strtotime($closing_time->jangka_waktu)-strtotime("00:00:00");
  244. $datang_awal = SettingDatangAwalKhusus::find(1);
  245. $setting_datang_awal = strtotime($datang_awal->datang_awal)-strtotime("00:00:00");
  246. $setting_presensi = SettingPresensi::find(1);
  247. if(isset($setting_presensi->toleransi_keterlambatan)) {
  248. $toleransi = strtotime($setting_presensi->toleransi_keterlambatan)-strtotime("00:00:00");
  249. // $toleransi_min = strtotime("+1 minutes",strtotime($setting_presensi->toleransi_keterlambatan))-strtotime("00:00:00");
  250.  
  251. $max_istirahat_mulai = strtotime($jam_istirahat_selesai)-$toleransi-strtotime("00:00:00");
  252. $max_istirahat_selesai = strtotime($jam_pulang)-$toleransi-strtotime("00:00:00");
  253.  
  254. // dd($max_istirahat_selesai);
  255.  
  256. // $before_jam_masuk = date("H:i:s",strtotime($jam_masuk)-$setting_datang_awal);
  257. $before_jam_masuk = $before_jam_masuk_previous;
  258. $after_jam_masuk = date("H:i:s",strtotime($jam_masuk)+$toleransi);
  259.  
  260. $before_jam_istirahat_mulai = date("H:i:s",strtotime($jam_istirahat_mulai)-$toleransi);
  261. // $after_jam_istirahat_mulai = date("H:i:s",strtotime($jam_istirahat_selesai)-$toleransi_min);
  262.  
  263. $before_jam_istirahat_selesai = date("H:i:s",strtotime($jam_istirahat_selesai)-$toleransi);
  264. // $after_jam_istirahat_selesai = date("H:i:s",strtotime($jam_pulang)-$toleransi_min);
  265.  
  266. $before_jam_pulang = date("H:i:s",strtotime($jam_pulang)-$toleransi);
  267. // $after_jam_pulang = date("H:i:s",strtotime($jam_pulang)+$setting_closing_time);
  268. $after_jam_pulang = $after_jam_pulang_next;
  269.  
  270. if(($jamtap > $before_jam_masuk) && ($jamtap < $after_jam_masuk)) {
  271. $slotjam = "Masuk";
  272. $poin = $setting_poin->jam_masuk;
  273. $source = $jadwal[0]->source;
  274. $source_id = $jadwal[0]->source_id;
  275. } elseif(($jamtap == $before_jam_masuk) || ($jamtap == $after_jam_masuk)) {
  276. $slotjam = "Masuk";
  277. $poin = $setting_poin->jam_masuk;
  278. $source = $jadwal[0]->source;
  279. $source_id = $jadwal[0]->source_id;
  280. } elseif(($jamtap > $after_jam_masuk) && ($jamtap < $before_jam_istirahat_mulai)) {
  281. $slotjam = "Terlambat Masuk";
  282. $poin = $setting_poin->jam_masuk;
  283. $source = $jadwal[0]->source;
  284. $source_id = $jadwal[0]->source_id;
  285. } elseif(($jamtap > $before_jam_istirahat_mulai) && ($jamtap < $before_jam_istirahat_selesai)) {
  286. $slotjam = "Istirahat Mulai";
  287. $poin = $setting_poin->jam_mulai_istirahat;
  288. $source = $jadwal[0]->source;
  289. $source_id = $jadwal[0]->source_id;
  290. } elseif(($jamtap == $before_jam_istirahat_mulai)) {
  291. $slotjam = "Istirahat Mulai";
  292. $poin = $setting_poin->jam_mulai_istirahat;
  293. $source = $jadwal[0]->source;
  294. $source_id = $jadwal[0]->source_id;
  295. } elseif(($jamtap > $before_jam_istirahat_selesai) && ($jamtap < $before_jam_pulang)) {
  296. $slotjam = "Istirahat Selesai";
  297. $poin = $setting_poin->jam_mulai_istirahat;
  298. $source = $jadwal[0]->source;
  299. $source_id = $jadwal[0]->source_id;
  300. } elseif($jamtap == $before_jam_istirahat_selesai) {
  301. $slotjam = "Istirahat Selesai";
  302. $poin = $setting_poin->jam_mulai_istirahat;
  303. $source = $jadwal[0]->source;
  304. $source_id = $jadwal[0]->source_id;
  305. } elseif(($jamtap > $before_jam_pulang) && ($jamtap < $after_jam_pulang)) {
  306. $slotjam = "Pulang";
  307. $poin = $setting_poin->jam_keluar;
  308. $source = $jadwal[0]->source;
  309. $source_id = $jadwal[0]->source_id;
  310. } elseif(($jamtap == $before_jam_pulang) || ($jamtap == $after_jam_pulang)) {
  311. $slotjam = "Pulang";
  312. $poin = $setting_poin->jam_keluar;
  313. $source = $jadwal[0]->source;
  314. $source_id = $jadwal[0]->source_id;
  315. } else if(strtotime($before_jam_pulang) > strtotime($after_jam_pulang)) {
  316. if(strtotime($jamtap) >= strtotime($before_jam_pulang) && strtotime($jamtap) < strtotime("24:00:00")) {
  317. $slotjam = "Pulang";
  318. $poin = $setting_poin->jam_keluar;
  319. $source = $jadwal[0]->source;
  320. $source_id = $jadwal[0]->source_id;
  321. } else if(strtotime("+24 hours", strtotime($jamtap)) >= strtotime("24:00:00") && strtotime("+24 hours", strtotime($jamtap)) <= strtotime("+24 hours", strtotime($after_jam_pulang))) {
  322. $slotjam = "Pulang";
  323. $poin = $setting_poin->jam_keluar;
  324. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  325. $tanggal_waktu_tap->subDay();
  326. $source = $jadwal[0]->source;
  327. $source_id = $jadwal[0]->source_id;
  328. }
  329. }
  330.  
  331. //-----CASE A-----
  332. if(strtotime($jam_pulang) < strtotime($jam_istirahat_selesai)) {
  333. // dd(strtotime("00:00:00"));
  334. // Jika jam tap < jam 12 malam
  335. if((strtotime($jamtap) < strtotime("24:00:00"))) {
  336.  
  337. //-----CASE 1-----
  338. if((strtotime($jamtap) > strtotime($before_jam_istirahat_selesai)) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($before_jam_pulang)))) {
  339. $slotjam = "Istirahat Selesai";
  340. $poin = $setting_poin->jam_selesai_istirahat;
  341. $source = $jadwal[0]->source;
  342. $source_id = $jadwal[0]->source_id;
  343. } elseif(($jamtap == $before_jam_istirahat_selesai)) {
  344. $slotjam = "Istirahat Selesai";
  345. $poin = $setting_poin->jam_selesai_istirahat;
  346. $source = $jadwal[0]->source;
  347. $source_id = $jadwal[0]->source_id;
  348. }
  349.  
  350. //-----CASE 2-----
  351. if(strtotime("+24 hours", strtotime($before_jam_pulang)) < strtotime("24:00:00")) {
  352. if(strtotime($jamtap) > strtotime("+24 hours", strtotime($before_jam_pulang)) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($after_jam_pulang)))) {
  353. $slotjam = "Pulang";
  354. $poin = $setting_poin->jam_keluar;
  355. $source = $jadwal[0]->source;
  356. $source_id = $jadwal[0]->source_id;
  357. } elseif((strtotime($jamtap) == strtotime("+24 hours", strtotime($before_jam_pulang))) || (strtotime($jamtap) == strtotime("+24 hours", strtotime($after_jam_pulang)))) {
  358. $slotjam = "Pulang";
  359. $poin = $setting_poin->jam_keluar;
  360. $source = $jadwal[0]->source;
  361. $source_id = $jadwal[0]->source_id;
  362. }
  363. }
  364. }
  365.  
  366. // Jika jam tap >= jam 12 malam
  367. if((strtotime($jamtap) >= strtotime("00:00:00"))) {
  368. // 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)));
  369.  
  370. //-----CASE 3-----
  371. if((strtotime("+24 hours", strtotime($jamtap)) > strtotime($before_jam_istirahat_selesai)) && (strtotime("+24 hours", strtotime($jamtap)) < strtotime("+24 hours", strtotime($before_jam_pulang)))) {
  372. $slotjam = "Istirahat Selesai";
  373. $poin = $setting_poin->jam_selesai_istirahat;
  374. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  375. $tanggal_waktu_tap->subDay();
  376. $source = $jadwal[0]->source;
  377. $source_id = $jadwal[0]->source_id;
  378. } elseif(($jamtap == $before_jam_istirahat_selesai)) {
  379. $slotjam = "Istirahat Selesai";
  380. $poin = $setting_poin->jam_selesai_istirahat;
  381. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  382. $tanggal_waktu_tap->subDay();
  383. $source = $jadwal[0]->source;
  384. $source_id = $jadwal[0]->source_id;
  385. }
  386.  
  387. //-----CASE 4-----
  388. if(strtotime("+24 hours", strtotime($before_jam_pulang)) >= strtotime("00:00:00")) {
  389. 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)))) {
  390. $slotjam = "Pulang";
  391. $poin = $setting_poin->jam_keluar;
  392. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  393. $tanggal_waktu_tap->subDay();
  394. $source = $jadwal[0]->source;
  395. $source_id = $jadwal[0]->source_id;
  396. } elseif((strtotime("+24 hours", strtotime($jamtap)) == strtotime("+24 hours", strtotime($before_jam_pulang))) || (strtotime($jamtap) == strtotime("+24 hours", strtotime($after_jam_pulang)))) {
  397. $slotjam = "Pulang";
  398. $poin = $setting_poin->jam_keluar;
  399. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  400. $tanggal_waktu_tap->subDay();
  401. $source = $jadwal[0]->source;
  402. $source_id = $jadwal[0]->source_id;
  403. }
  404. }
  405.  
  406. //-----CASE 5-----
  407. if(strtotime("+24 hours", strtotime($before_jam_pulang)) < strtotime("24:00:00")) {
  408. 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)))) {
  409. $slotjam = "Pulang";
  410. $poin = $setting_poin->jam_keluar;
  411. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  412. $tanggal_waktu_tap->subDay();
  413. $source = $jadwal[0]->source;
  414. $source_id = $jadwal[0]->source_id;
  415. } elseif((strtotime($jamtap) == strtotime($before_jam_pulang)) || (strtotime($jamtap) == strtotime("+24 hours", strtotime($after_jam_pulang)))) {
  416. $slotjam = "Pulang";
  417. $poin = $setting_poin->jam_keluar;
  418. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  419. $tanggal_waktu_tap->subDay();
  420. $source = $jadwal[0]->source;
  421. $source_id = $jadwal[0]->source_id;
  422. }
  423. }
  424.  
  425. //-----CASE 6-----
  426. if(strtotime($after_jam_pulang) == strtotime("00:00:00")) {
  427. if((strtotime($jamtap) > strtotime($before_jam_pulang)) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($after_jam_pulang)))) {
  428. $slotjam = "Pulang";
  429. $poin = $setting_poin->jam_keluar;
  430. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  431. $tanggal_waktu_tap->subDay();
  432. $source = $jadwal[0]->source;
  433. $source_id = $jadwal[0]->source_id;
  434. } elseif((strtotime($jamtap) == strtotime($before_jam_pulang)) || (strtotime($jamtap) == strtotime("+24 hours", strtotime($after_jam_pulang)))) {
  435. $slotjam = "Pulang";
  436. $poin = $setting_poin->jam_keluar;
  437. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  438. $tanggal_waktu_tap->subDay();
  439. $source = $jadwal[0]->source;
  440. $source_id = $jadwal[0]->source_id;
  441. }
  442. }
  443. }
  444. }
  445.  
  446. //-----CASE B-----
  447. if(strtotime($jam_istirahat_selesai) < strtotime($jam_istirahat_mulai)) {
  448. // dd(strtotime("00:00:00"));
  449. // Jika jam tap < jam 12 malam
  450.  
  451. if((strtotime($jamtap) < strtotime("24:00:00"))) {
  452.  
  453. //-----CASE 7-----
  454. if((strtotime($jamtap) > strtotime($before_jam_istirahat_mulai)) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)))) {
  455. $slotjam = "Istirahat Mulai";
  456. $poin = $setting_poin->jam_mulai_istirahat;
  457. $source = $jadwal[0]->source;
  458. $source_id = $jadwal[0]->source_id;
  459. } elseif(($jamtap == $before_jam_istirahat_mulai)) {
  460. $slotjam = "Istirahat Mulai";
  461. $poin = $setting_poin->jam_mulai_istirahat;
  462. $source = $jadwal[0]->source;
  463. $source_id = $jadwal[0]->source_id;
  464. }
  465.  
  466. //-----CASE 8-----
  467. if(strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)) < strtotime("24:00:00")) {
  468. if(strtotime($jamtap) > strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($before_jam_pulang)))) {
  469. $slotjam = "Istirahat Selesai";
  470. $poin = $setting_poin->jam_selesai_istirahat;
  471. $source = $jadwal[0]->source;
  472. $source_id = $jadwal[0]->source_id;
  473. } elseif((strtotime($jamtap) == strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)))) {
  474. $slotjam = "Istirahat Selesai";
  475. $poin = $setting_poin->jam_selesai_istirahat;
  476. $source = $jadwal[0]->source;
  477. $source_id = $jadwal[0]->source_id;
  478. }
  479. }
  480.  
  481. }
  482.  
  483. // Jika jam tap >= jam 12 malam
  484. if((strtotime($jamtap) >= strtotime("00:00:00"))) {
  485.  
  486. //-----CASE 9-----
  487. if((strtotime("+24 hours", strtotime($jamtap)) > strtotime($before_jam_istirahat_mulai)) && (strtotime("+24 hours", strtotime($jamtap)) < strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)))) {
  488. $slotjam = "Istirahat Mulai";
  489. $poin = $setting_poin->jam_mulai_istirahat;
  490. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  491. $tanggal_waktu_tap->subDay();
  492. $source = $jadwal[0]->source;
  493. $source_id = $jadwal[0]->source_id;
  494. } elseif(($jamtap == $before_jam_istirahat_mulai)) {
  495. $slotjam = "Istirahat Mulai";
  496. $poin = $setting_poin->jam_mulai_istirahat;
  497. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  498. $tanggal_waktu_tap->subDay();
  499. $source = $jadwal[0]->source;
  500. $source_id = $jadwal[0]->source_id;
  501. }
  502.  
  503. //-----CASE 10-----
  504. if(strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)) >= strtotime("00:00:00")) {
  505. 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)))) {
  506. $slotjam = "Istirahat Selesai";
  507. $poin = $setting_poin->jam_selesai_istirahat;
  508. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  509. $tanggal_waktu_tap->subDay();
  510. $source = $jadwal[0]->source;
  511. $source_id = $jadwal[0]->source_id;
  512. } elseif((strtotime("+24 hours", strtotime($jamtap)) == strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)))) {
  513. $slotjam = "Istirahat Selesai";
  514. $poin = $setting_poin->jam_selesai_istirahat;
  515. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  516. $tanggal_waktu_tap->subDay();
  517. $source = $jadwal[0]->source;
  518. $source_id = $jadwal[0]->source_id;
  519. }
  520. }
  521.  
  522. //-----CASE 11-----
  523. if(strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)) < strtotime("24:00:00")) {
  524. 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)))) {
  525. $slotjam = "Istirahat Selesai";
  526. $poin = $setting_poin->jam_selesai_istirahat;
  527. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  528. $tanggal_waktu_tap->subDay();
  529. $source = $jadwal[0]->source;
  530. $source_id = $jadwal[0]->source_id;
  531. } elseif((strtotime($jamtap) == strtotime($before_jam_istirahat_selesai))) {
  532. $slotjam = "Istirahat Selesai";
  533. $poin = $setting_poin->jam_selesai_istirahat;
  534. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  535. $tanggal_waktu_tap->subDay();
  536. $source = $jadwal[0]->source;
  537. $source_id = $jadwal[0]->source_id;
  538. }
  539. }
  540. }
  541. }
  542.  
  543. //-----CASE C-----
  544. if(strtotime($jam_istirahat_mulai) < strtotime($jam_masuk)) {
  545. // dd(strtotime("00:00:00"));
  546. // Jika jam tap < jam 12 malam
  547.  
  548. if((strtotime($jamtap) < strtotime("24:00:00"))) {
  549.  
  550. //-----CASE 12-----
  551. if((strtotime($jamtap) > strtotime($before_jam_masuk)) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)))) {
  552. if((strtotime($jamtap) > strtotime($before_jam_masuk)) && (strtotime($jamtap) < strtotime($after_jam_masuk))) {
  553. $slotjam = "Masuk";
  554. $poin = $setting_poin->jam_masuk;
  555. $source = $jadwal[0]->source;
  556. $source_id = $jadwal[0]->source_id;
  557. }
  558. if((strtotime($jamtap) > strtotime($before_jam_masuk)) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($after_jam_masuk)))) {
  559. $slotjam = "Masuk";
  560. $poin = $setting_poin->jam_masuk;
  561. $source = $jadwal[0]->source;
  562. $source_id = $jadwal[0]->source_id;
  563.  
  564. if((strtotime("+24 hours", strtotime($jamtap)) == strtotime("24:00:00"))) {
  565. $slotjam = "Masuk";
  566. $poin = $setting_poin->jam_masuk;
  567. $source = $jadwal[0]->source;
  568. $source_id = $jadwal[0]->source_id;
  569. }
  570.  
  571. if((strtotime($jamtap) < strtotime("24:00:00")) && (strtotime($jamtap) > strtotime($before_jam_masuk))) {
  572. $slotjam = "Masuk";
  573. $poin = $setting_poin->jam_masuk;
  574. $source = $jadwal[0]->source;
  575. $source_id = $jadwal[0]->source_id;
  576. }
  577.  
  578. if((strtotime("+24 hours", strtotime($jamtap)) > strtotime("24:00:00")) && (strtotime("+24 hours", strtotime($jamtap)) < strtotime("+24 hours", strtotime($after_jam_masuk)))) {
  579. $slotjam = "Masuk";
  580. $poin = $setting_poin->jam_masuk;
  581. $source = $jadwal[0]->source;
  582. $source_id = $jadwal[0]->source_id;
  583. }
  584. }
  585. if((strtotime($jamtap) > strtotime($after_jam_masuk)) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)))) {
  586. $slotjam = "Terlambat Masuk";
  587. $poin = $setting_poin->jam_masuk;
  588. $source = $jadwal[0]->source;
  589. $source_id = $jadwal[0]->source_id;
  590.  
  591. if((strtotime("+24 hours", strtotime($jamtap)) == strtotime("24:00:00"))) {
  592. $slotjam = "Terlambat Masuk";
  593. $poin = $setting_poin->jam_masuk;
  594. $source = $jadwal[0]->source;
  595. $source_id = $jadwal[0]->source_id;
  596. }
  597.  
  598. if((strtotime($jamtap) < strtotime("24:00:00")) && (strtotime($jamtap) > strtotime($after_jam_masuk))) {
  599. $slotjam = "Terlambat Masuk";
  600. $poin = $setting_poin->jam_masuk;
  601. $source = $jadwal[0]->source;
  602. $source_id = $jadwal[0]->source_id;
  603. }
  604.  
  605. if((strtotime("+24 hours", strtotime($jamtap)) > strtotime("24:00:00")) && (strtotime("+24 hours", strtotime($jamtap)) < strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)))) {
  606. $slotjam = "Terlambat Masuk";
  607. $poin = $setting_poin->jam_masuk;
  608. $source = $jadwal[0]->source;
  609. $source_id = $jadwal[0]->source_id;
  610. }
  611. }
  612.  
  613. } elseif(($jamtap == $before_jam_masuk)) {
  614. $slotjam = "Masuk";
  615. $poin = $setting_poin->jam_masuk;
  616. $source = $jadwal[0]->source;
  617. $source_id = $jadwal[0]->source_id;
  618. }
  619.  
  620. //-----CASE 13-----
  621. if(strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)) < strtotime("24:00:00")) {
  622. if(strtotime($jamtap) > strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($after_jam_istirahat_selesai)))) {
  623. $slotjam = "Istirahat Mulai";
  624. $poin = $setting_poin->jam_mulai_istirahat;
  625. $source = $jadwal[0]->source;
  626. $source_id = $jadwal[0]->source_id;
  627. } elseif((strtotime($jamtap) == strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)))) {
  628. $slotjam = "Istirahat Mulai";
  629. $poin = $setting_poin->jam_mulai_istirahat;
  630. $source = $jadwal[0]->source;
  631. $source_id = $jadwal[0]->source_id;
  632. }
  633. }
  634.  
  635. //-----CASE 14-----
  636. if(strtotime($after_jam_masuk) < strtotime("24:00:00")) {
  637. if(strtotime($before_jam_istirahat_mulai) < strtotime("24:00:00")) {
  638. if((strtotime($jamtap) > strtotime($after_jam_masuk)) && (strtotime($jamtap) < strtotime($before_jam_istirahat_mulai))) {
  639. $slotjam = "Terlambat Masuk";
  640. $poin = $setting_poin->jam_masuk;
  641. $source = $jadwal[0]->source;
  642. $source_id = $jadwal[0]->source_id;
  643. }
  644. }
  645. }
  646.  
  647. if(strtotime($jam_masuk) == strtotime("00:00:00")) {
  648. //-----CASE 15-----
  649. if(strtotime($before_jam_masuk) < strtotime("00:00:00")) {
  650. if((strtotime($jamtap) > strtotime("+24 hours", strtotime($before_jam_masuk))) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($after_jam_masuk)))) {
  651. $slotjam = "Masuk";
  652. $poin = $setting_poin->jam_masuk;
  653. $source = $jadwal[0]->source;
  654. $source_id = $jadwal[0]->source_id;
  655. } elseif((strtotime($jamtap) == strtotime("+24 hours", strtotime($before_jam_masuk)))) {
  656. $slotjam = "Masuk";
  657. $poin = $setting_poin->jam_masuk;
  658. $source = $jadwal[0]->source;
  659. $source_id = $jadwal[0]->source_id;
  660. }
  661. }
  662. }
  663. }
  664.  
  665. // Jika jam tap >= jam 12 malam
  666. if((strtotime($jamtap) >= strtotime("00:00:00"))) {
  667. // 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)));
  668.  
  669. //-----CASE 16----
  670. if((strtotime("+24 hours", strtotime($jamtap)) < strtotime($after_jam_masuk)) && (strtotime("+24 hours", strtotime($jamtap)) < strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)))) {
  671. $slotjam = "Masuk";
  672. $poin = $setting_poin->jam_masuk;
  673. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  674. $tanggal_waktu_tap->subDay();
  675. $source = $jadwal[0]->source;
  676. $source_id = $jadwal[0]->source_id;
  677. }
  678. if(($jamtap == $before_jam_masuk)) {
  679. $slotjam = "Masuk";
  680. $poin = $setting_poin->jam_masuk;
  681. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  682. $tanggal_waktu_tap->subDay();
  683. $source = $jadwal[0]->source;
  684. $source_id = $jadwal[0]->source_id;
  685. }
  686.  
  687. //-----CASE 17-----
  688. if(strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)) >= strtotime("00:00:00")) {
  689. 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)))) {
  690. $slotjam = "Istirahat Mulai";
  691. $poin = $setting_poin->jam_mulai_istirahat;
  692. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  693. $tanggal_waktu_tap->subDay();
  694. $source = $jadwal[0]->source;
  695. $source_id = $jadwal[0]->source_id;
  696. } elseif((strtotime("+24 hours", strtotime($jamtap)) == strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)))) {
  697. $slotjam = "Istirahat Mulai";
  698. $poin = $setting_poin->jam_mulai_istirahat;
  699. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  700. $tanggal_waktu_tap->subDay();
  701. $source = $jadwal[0]->source;
  702. $source_id = $jadwal[0]->source_id;
  703. }
  704. }
  705.  
  706. if(strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)) >= strtotime("00:00:00")) {
  707. 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)))) {
  708. $slotjam = "Istirahat Selesai";
  709. $poin = $setting_poin->jam_selesai_istirahat;
  710. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  711. $tanggal_waktu_tap->subDay();
  712. $source = $jadwal[0]->source;
  713. $source_id = $jadwal[0]->source_id;
  714. } elseif((strtotime("+24 hours", strtotime($jamtap)) == strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)))) {
  715. $slotjam = "Istirahat Selesai";
  716. $poin = $setting_poin->jam_selesai_istirahat;
  717. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  718. $tanggal_waktu_tap->subDay();
  719. $source = $jadwal[0]->source;
  720. $source_id = $jadwal[0]->source_id;
  721. }
  722. }
  723.  
  724. if(strtotime("+24 hours", strtotime($before_jam_pulang)) >= strtotime("00:00:00")) {
  725. 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)))) {
  726. $slotjam = "Pulang";
  727. $poin = $setting_poin->jam_keluar;
  728. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  729. $tanggal_waktu_tap->subDay();
  730. $source = $jadwal[0]->source;
  731. $source_id = $jadwal[0]->source_id;
  732. } elseif((strtotime("+24 hours", strtotime($jamtap)) == strtotime("+24 hours", strtotime($before_jam_pulang)))) {
  733. $slotjam = "Pulang";
  734. $poin = $setting_poin->jam_keluar;
  735. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  736. $tanggal_waktu_tap->subDay();
  737. $source = $jadwal[0]->source;
  738. $source_id = $jadwal[0]->source_id;
  739. }
  740. }
  741.  
  742. //-----CASE 18-----
  743. if(strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)) < strtotime("24:00:00")) {
  744. 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)))) {
  745. $slotjam = "Istirahat Mulai";
  746. $poin = $setting_poin->jam_mulai_istirahat;
  747. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  748. $tanggal_waktu_tap->subDay();
  749. $source = $jadwal[0]->source;
  750. $source_id = $jadwal[0]->source_id;
  751. } elseif((strtotime($jamtap) == strtotime($before_jam_istirahat_mulai))) {
  752. $slotjam = "Istirahat Mulai";
  753. $poin = $setting_poin->jam_mulai_istirahat;
  754. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  755. $tanggal_waktu_tap->subDay();
  756. $source = $jadwal[0]->source;
  757. $source_id = $jadwal[0]->source_id;
  758. }
  759. }
  760.  
  761. if(strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)) < strtotime("24:00:00")) {
  762. 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)))) {
  763. $slotjam = "Istirahat Selesai";
  764. $poin = $setting_poin->jam_selesai_istirahat;
  765. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  766. $tanggal_waktu_tap->subDay();
  767. $source = $jadwal[0]->source;
  768. $source_id = $jadwal[0]->source_id;
  769. } elseif((strtotime($jamtap) == strtotime($before_jam_istirahat_selesai))) {
  770. $slotjam = "Istirahat Selesai";
  771. $poin = $setting_poin->jam_selesai_istirahat;
  772. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  773. $tanggal_waktu_tap->subDay();
  774. $source = $jadwal[0]->source;
  775. $source_id = $jadwal[0]->source_id;
  776. }
  777. }
  778.  
  779. if(strtotime("+24 hours", strtotime($before_jam_pulang)) < strtotime("24:00:00")) {
  780. 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)))) {
  781. $slotjam = "Pulang";
  782. $poin = $setting_poin->jam_keluar;
  783. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  784. $tanggal_waktu_tap->subDay();
  785. $source = $jadwal[0]->source;
  786. $source_id = $jadwal[0]->source_id;
  787. } elseif((strtotime($jamtap) == strtotime($before_jam_pulang))) {
  788. $slotjam = "Pulang";
  789. $poin = $setting_poin->jam_keluar;
  790. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  791. $tanggal_waktu_tap->subDay();
  792. $source = $jadwal[0]->source;
  793. $source_id = $jadwal[0]->source_id;
  794. }
  795. }
  796.  
  797.  
  798. //-----CASE 19-----
  799. if(strtotime($after_jam_masuk) >= strtotime("00:00:00")) {
  800. if(strtotime($before_jam_istirahat_mulai) >= strtotime("24:00:00")) {
  801. 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)))) {
  802. $slotjam = "Terlambat Masuk";
  803. $poin = $setting_poin->jam_masuk;
  804. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  805. $tanggal_waktu_tap->subDay();
  806. $source = $jadwal[0]->source;
  807. $source_id = $jadwal[0]->source_id;
  808. }
  809. }
  810. }
  811.  
  812. //-----CASE 19.1-----
  813. if(strtotime($after_jam_masuk) < strtotime("24:00:00")) {
  814. if(strtotime($before_jam_istirahat_mulai) >= strtotime("24:00:00")) {
  815. 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)))) {
  816. $slotjam = "Terlambat Masuk";
  817. $poin = $setting_poin->jam_masuk;
  818. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  819. $tanggal_waktu_tap->subDay();
  820. $source = $jadwal[0]->source;
  821. $source_id = $jadwal[0]->source_id;
  822. }
  823.  
  824. if((strtotime("+24 hours", strtotime($jamtap)) > strtotime($after_jam_masuk)) && (strtotime("+24 hours", strtotime($jamtap)) < strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)))) {
  825. $slotjam = "Terlambat Masuk";
  826. $poin = $setting_poin->jam_masuk;
  827. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  828. $tanggal_waktu_tap->subDay();
  829. $source = $jadwal[0]->source;
  830. $source_id = $jadwal[0]->source_id;
  831. }
  832. } elseif(strtotime($before_jam_istirahat_mulai) < strtotime("24:00:00")) {
  833. 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)))) {
  834. $slotjam = "Terlambat Masuk";
  835. $poin = $setting_poin->jam_masuk;
  836. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  837. $tanggal_waktu_tap->subDay();
  838. $source = $jadwal[0]->source;
  839. $source_id = $jadwal[0]->source_id;
  840. }
  841.  
  842. if((strtotime("+24 hours", strtotime($jamtap)) > strtotime($after_jam_masuk)) && (strtotime("+24 hours", strtotime($jamtap)) < strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)))) {
  843. $slotjam = "Terlambat Masuk";
  844. $poin = $setting_poin->jam_masuk;
  845. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  846. $tanggal_waktu_tap->subDay();
  847. $source = $jadwal[0]->source;
  848. $source_id = $jadwal[0]->source_id;
  849. }
  850. }
  851. }
  852.  
  853. //-----CASE 20-----
  854. if(strtotime($before_jam_masuk) == strtotime("00:00:00")) {
  855. if((strtotime($jamtap) > strtotime($before_jam_masuk)) && (strtotime($jamtap) < strtotime($before_jam_istirahat_mulai))) {
  856. $slotjam = "Masuk";
  857. $poin = $setting_poin->jam_masuk;
  858. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  859. $tanggal_waktu_tap->subDay();
  860. $source = $jadwal[0]->source;
  861. $source_id = $jadwal[0]->source_id;
  862. } elseif((strtotime($jamtap) == strtotime($before_jam_masuk)) || (strtotime($jamtap) == strtotime($after_jam_pulang))) {
  863. $slotjam = "Masuk";
  864. $poin = $setting_poin->jam_masuk;
  865. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  866. $tanggal_waktu_tap->subDay();
  867. $source = $jadwal[0]->source;
  868. $source_id = $jadwal[0]->source_id;
  869. }
  870. }
  871.  
  872. if(strtotime($jam_masuk) == strtotime("00:00:00")) {
  873.  
  874. //-----CASE 21-----
  875. if(strtotime($before_jam_masuk) < strtotime("00:00:00")) {
  876. if((strtotime($jamtap) > strtotime($before_jam_masuk)) && (strtotime($jamtap) < strtotime($before_jam_istirahat_mulai))) {
  877. $slotjam = "Masuk";
  878. $poin = $setting_poin->jam_masuk;
  879. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  880. $tanggal_waktu_tap->subDay();
  881. $source = $jadwal[0]->source;
  882. $source_id = $jadwal[0]->source_id;
  883. } elseif((strtotime($jamtap) == strtotime($before_jam_istirahat_mulai))) {
  884. $slotjam = "Masuk";
  885. $poin = $setting_poin->jam_masuk;
  886. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  887. $tanggal_waktu_tap->subDay();
  888. $source = $jadwal[0]->source;
  889. $source_id = $jadwal[0]->source_id;
  890. }
  891. }
  892. }
  893. }
  894. }
  895.  
  896. //-----CASE D-----
  897. if(strtotime($jam_masuk) == strtotime("00:00:00")) {
  898. //-----CASE 22-----
  899. if((strtotime($jamtap) < strtotime("00:00:00")) == false) {
  900. if((strtotime($jamtap) > strtotime("+24 hours", strtotime($before_jam_masuk))) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($after_jam_masuk)))) {
  901. $slotjam = "Masuk";
  902. $poin = $setting_poin->jam_masuk;
  903. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  904. $tanggal_waktu_tap->subDay();
  905. $source = $jadwal[0]->source;
  906. $source_id = $jadwal[0]->source_id;
  907. } else if((strtotime("+24 hours",strtotime($jamtap)) < strtotime("+24 hours", strtotime($after_jam_masuk)))) {
  908. $slotjam = "Masuk";
  909. $poin = $setting_poin->jam_masuk;
  910. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  911. $tanggal_waktu_tap->subDay();
  912. $source = $jadwal[0]->source;
  913. $source_id = $jadwal[0]->source_id;
  914. } else if((strtotime($jamtap) == strtotime("+24 hours", strtotime($before_jam_masuk))) || (strtotime($jamtap) == strtotime("+24 hours", strtotime($after_jam_masuk)))) {
  915. $slotjam = "Masuk";
  916. $poin = $setting_poin->jam_masuk;
  917. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  918. $tanggal_waktu_tap->subDay();
  919. $source = $jadwal[0]->source;
  920. $source_id = $jadwal[0]->source_id;
  921. }
  922. }
  923. }
  924.  
  925. //-----CASE E-----
  926. if(strtotime($jam_pulang) == strtotime("00:00:00")) {
  927. //-----CASE 23-----
  928. if((strtotime($jamtap) < strtotime("00:00:00")) == false) {
  929. if((strtotime($jamtap) > strtotime("+24 hours", strtotime($before_jam_pulang))) && (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[0]->source;
  935. $source_id = $jadwal[0]->source_id;
  936. } else if((strtotime("+24 hours",strtotime($jamtap)) < strtotime("+24 hours", strtotime($after_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[0]->source;
  942. $source_id = $jadwal[0]->source_id;
  943. } else if((strtotime($jamtap) == strtotime("+24 hours", strtotime($before_jam_pulang))) || (strtotime($jamtap)) == strtotime("+24 hours", strtotime($after_jam_pulang))) {
  944. $slotjam = "Pulang";
  945. $poin = $setting_poin->jam_keluar;
  946. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  947. $tanggal_waktu_tap->subDay();
  948. $source = $jadwal[0]->source;
  949. $source_id = $jadwal[0]->source_id;
  950. }
  951. }
  952. }
  953.  
  954. //-----CASE F-----
  955. // if(strtotime($jam_istirahat_selesai) < strtotime($jam_pulang)) {
  956. // if(strtotime("+24 hours", strtotime($jamtap)) >= strtotime("24:00:00") && strtotime($jamtap) <= strtotime($after_jam_pulang)) {
  957. // $slotjam = "Pulang";
  958. // $poin = $setting_poin->jam_keluar;
  959. // $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  960. // $tanggal_waktu_tap->subDay();
  961. // $source = $jadwal[0]->source;
  962. // $source_id = $jadwal[0]->source_id;
  963. // }
  964. // }
  965. }
  966.  
  967. $presensi = array(
  968. 'karyawan_id' => $id_karyawan,
  969. 'nama_karyawan' => $nama_karyawan,
  970. 'group_karyawan' => $group_karyawan,
  971. 'group_id' => $karyawan->group_id ? $karyawan->group_id : null,
  972. 'jadwal_id' => $karyawan->jadwal_ngeplus_id ? $karyawan->jadwal_ngeplus_id : null,
  973. 'setting_presensi_id' => 1,
  974. 'tanggal_dan_waktu_tap' => Carbon::parse($tanggal_waktu_tap)->toDateTimeString(),
  975. 'tanggal_dan_waktu_tap_static' => $tanggal_waktu_tap_static,
  976. 'poin' => $poin,
  977. 'status' => isset($jadwal[0]) ? $jadwal[0]->status : null,
  978. 'slotjam' => $slotjam,
  979. 'source' => $source,
  980. 'source_id' => $source_id
  981. );
  982.  
  983. $slotjamkomparasi = $slotjam;
  984. if($slotjamkomparasi == 'Terlambat Masuk') {
  985. $slotjamkomparasi = 'Masuk';
  986. }
  987.  
  988. // dd($presensi);
  989.  
  990. // $oldpresensi = Presensi::whereDate('tanggal_dan_waktu_tap', '=', Carbon::parse($tanggal_waktu_tap)->toDateString())
  991. // ->where('status', $jadwal[0]->status)
  992. // ->where('slotjam', 'like', '%'.$slotjamkomparasi)
  993. // ->where('source', $jadwal[0]->source)
  994. // ->where('source_id', $jadwal[0]->source_id)
  995. // ->first();
  996.  
  997.  
  998. // if(isset($oldpresensi)) {
  999. // $oldpresensi->update($presensi);
  1000. // $data_terinput = $data_terinput + 0;
  1001. // } else if(Carbon::parse(Carbon::parse($tanggal_waktu_tap)->toDateString())->isBetween(strval($jadwal[0]->tanggal_mulai), strval($jadwal[0]->tanggal_selesai))) {
  1002. // } else
  1003. if(Carbon::parse($tanggal_waktu_tap)->gte(Carbon::parse($jadwal[0]['tanggal_mulai']))
  1004. // if(Carbon::parse($tanggal_waktu_tap)->gte(Carbon::parse($jadwal[0]->tanggal_mulai))
  1005. && Carbon::parse(Carbon::parse($tanggal_waktu_tap)->toDateString())->lt(Carbon::parse($jadwal[0]['tanggal_selesai'])->addDay())) {
  1006. // cek jam masuk
  1007. if((($slotjam == 'Masuk') || ($slotjam == 'Terlambat Masuk'))) {
  1008. Presensi::create($presensi);
  1009. $data_terinput = $data_terinput + 1;
  1010. $status_final = $presensi['slotjam'];
  1011.  
  1012. // input harian ngeplus
  1013. self::inputHarianNgeplus($presensi, $presensi['source'], $presensi['source_id']);
  1014.  
  1015. // input ke mingguanjam ngeplus
  1016. self::inputMingguanJamNgeplus($presensi, $presensi['source'], $presensi['source_id']);
  1017.  
  1018. // input ke kph
  1019. self::inputPresensiToKph($presensi, 'nge-plus', $presensi['source'], $presensi['source_id']);
  1020.  
  1021. }
  1022. // cek jam istirahat mulai
  1023. if($slotjam == 'Istirahat Mulai') {
  1024. Presensi::create($presensi);
  1025. $data_terinput = $data_terinput + 1;
  1026. $status_final = $presensi['slotjam'];
  1027.  
  1028. // input harian ngeplus
  1029. self::inputHarianNgeplus($presensi, $presensi['source'], $presensi['source_id']);
  1030.  
  1031. // input ke mingguanjam ngeplus
  1032. self::inputMingguanJamNgeplus($presensi, $presensi['source'], $presensi['source_id']);
  1033.  
  1034. // input ke kph
  1035. self::inputPresensiToKph($presensi, 'nge-plus', $presensi['source'], $presensi['source_id']);
  1036. }
  1037. // cek jam istirahat selesai
  1038. if($slotjam == 'Istirahat Selesai') {
  1039. Presensi::create($presensi);
  1040. $data_terinput = $data_terinput + 1;
  1041. $status_final = $presensi['slotjam'];
  1042.  
  1043. // input harian ngeplus
  1044. self::inputHarianNgeplus($presensi, $presensi['source'], $presensi['source_id']);
  1045.  
  1046. // input ke mingguanjam ngeplus
  1047. self::inputMingguanJamNgeplus($presensi, $presensi['source'], $presensi['source_id']);
  1048.  
  1049. // input ke kph
  1050. self::inputPresensiToKph($presensi, 'nge-plus', $presensi['source'], $presensi['source_id']);
  1051. }
  1052. // cek jam pulang
  1053. if($slotjam == 'Pulang') {
  1054. Presensi::create($presensi);
  1055. $data_terinput = $data_terinput + 1;
  1056. $status_final = $presensi['slotjam'];
  1057.  
  1058. // input harian ngeplus
  1059. self::inputHarianNgeplus($presensi, $presensi['source'], $presensi['source_id']);
  1060.  
  1061. // input ke mingguanjam ngeplus
  1062. self::inputMingguanJamNgeplus($presensi, $presensi['source'], $presensi['source_id']);
  1063.  
  1064. // input ke kph
  1065. self::inputPresensiToKph($presensi, 'nge-plus', $presensi['source'], $presensi['source_id']);
  1066. }
  1067. // }
  1068. } else {
  1069. $data_terinput = $data_terinput + 0;
  1070. }
  1071. }
  1072. // cek jadwal lebih dari 1
  1073. } else if(count($jadwal) > 1) {
  1074. $prev_id = null;
  1075. for($iz = 0; $iz < count($jadwal); $iz++) {
  1076. // if($iz == 1) {
  1077. // dd($tanggal_waktu_tap);
  1078. // }
  1079. $existing_presensi_2 = Presensi::where('tanggal_dan_waktu_tap', $row[$i]['DateTime'][0])->
  1080. where('karyawan_id', $row[$i]['PIN'][0])->
  1081. // where('source', $jadwal[$iz]->source)->
  1082. // where('source_id', $jadwal[$iz]->source_id)->
  1083. // where('jadwal_id', $jadwal[$iz]->jadwal_id)->
  1084. first();
  1085.  
  1086. if(!isset($existing_presensi_2)) {
  1087. $tanggal_mulai = Carbon::parse($jadwal[$iz]['tanggal_mulai'])->format('Y-m-d');
  1088. $tanggal_selesai = Carbon::parse($jadwal[$iz]['tanggal_selesai'])->format('Y-m-d');
  1089. $hariini = Carbon::now()->format('Y-m-d');
  1090.  
  1091. // if($hariini >= Carbon::parse($tanggal_mulai)->toDateString() && $hariini < Carbon::parse($tanggal_selesai)->addDay()->toDateString()) {
  1092.  
  1093. $jam_masuk = $jadwal[$iz]['jam_masuk'];
  1094. $jam_istirahat_mulai = $jadwal[$iz]['jam_istirahat_mulai'];
  1095. $jam_istirahat_selesai = $jadwal[$iz]['jam_istirahat_selesai'];
  1096. $jam_pulang = $jadwal[$iz]['jam_pulang'];
  1097.  
  1098. $closing_time = ClosingTime::find(1);
  1099. $setting_closing_time = strtotime($closing_time->jangka_waktu)-strtotime("00:00:00");
  1100. $datang_awal = SettingDatangAwalKhusus::find(1);
  1101. $setting_datang_awal = strtotime($datang_awal->datang_awal)-strtotime("00:00:00");
  1102.  
  1103. // if($iz == 2) {
  1104. // dd($tanggal_waktu_tap);
  1105. // }
  1106.  
  1107. /**
  1108. * Cek Jadwal sebelumnya dan selanjutnya untuk menentukan jam masuk berikutnya
  1109. */
  1110. $after_jam_pulang_next = null;
  1111. $before_jam_masuk_previous = null;
  1112.  
  1113. if(count($jadwal) > 1) {
  1114. if($iz == 0) {
  1115. $setting_presensi = SettingPresensi::find(1);
  1116. if(isset($setting_presensi->toleransi_keterlambatan)) {
  1117. $toleransi = strtotime($setting_presensi->toleransi_keterlambatan)-strtotime("00:00:00");
  1118.  
  1119. //ketika jadwal di awal / jadwal pertama
  1120. $after_jam_pulang_next = date("H:i:s",strtotime($jadwal[$iz + 1]['jam_masuk'])-$toleransi);
  1121. $before_jam_masuk_previous = date("H:i:s",strtotime($jadwal[$iz]['jam_masuk'])-$setting_datang_awal);
  1122. // dd($before_jam_masuk_previous);
  1123. }
  1124.  
  1125. } else if($iz > 0) {
  1126. $jarak_pulang = 0;
  1127. $jarak_masuk = 0;
  1128. // ketika jadwal di tengah tengah / bkn jadwal pertama atw jadwal terakhir
  1129. if(isset($jadwal[$iz + 1])) {
  1130. // ambil jarak pulang
  1131. $jarak_pulang = abs(strtotime($jadwal[$iz]->jam_pulang) - strtotime($jadwal[$iz + 1]['jam_masuk'])) / 60;
  1132. // ambil jarak masuk
  1133. $jarak_masuk = abs(strtotime($jadwal[$iz]->jam_masuk) - strtotime($jadwal[$iz - 1]['jam_masuk'])) / 60;
  1134.  
  1135. if($jarak_masuk > 150) {
  1136. // jika jaraknya >= 2.5 jam maka pake datang awal
  1137. $before_jam_masuk_previous = date("H:i:s",strtotime($jadwal[$iz]['jam_masuk'])-$setting_datang_awal);
  1138. } else if($jarak_masuk <= 150) {
  1139. // jika jaraknya < 2.5 jam maka pake toleransi
  1140. $before_jam_masuk_previous1 = date("H:i:s",strtotime($jadwal[$iz]['jam_masuk'])-$toleransi);
  1141. $before_jam_masuk_previous = date("H:i:s",strtotime("+1 second",strtotime($before_jam_masuk_previous1)));
  1142. }
  1143.  
  1144. if($jarak_pulang > 150) {
  1145. // jika jaraknya >= 2.5 jam maka patok + 2 jam
  1146. $after_jam_pulang_next = date("H:i:s",strtotime("+2 hours", strtotime($jadwal[$iz]['jam_pulang'])));
  1147. } else if($jarak_pulang <= 150) {
  1148. // jika jaraknya < 2.5 jam maka pake toleransi
  1149. $after_jam_pulang_next = date("H:i:s",strtotime($jadwal[$iz]['jam_pulang'])+$toleransi);
  1150. }
  1151.  
  1152. // bwt jadwal di ujung
  1153. } else if(!isset($jadwal[$iz + 1])) {
  1154. // ambil jarak pulang
  1155. // $jarak_pulang = abs(strtotime($jadwal[$iz]->jam_pulang) - strtotime($jadwal[$iz + 1]->jam_masuk)) / 60;
  1156. // ambil jarak masuk
  1157. $jarak_masuk = abs(strtotime($jadwal[$iz]['jam_masuk']) - strtotime($jadwal[$iz - 1]['jam_pulang'])) / 60;
  1158.  
  1159. $after_jam_pulang_next = date("H:i:s",strtotime("+5 hours", strtotime($jadwal[$iz]['jam_pulang'])));
  1160.  
  1161. if($jarak_masuk > 150) {
  1162. // jika jaraknya >= 2.5 jam maka pake datang awal
  1163. $before_jam_masuk_previous = date("H:i:s",strtotime($jadwal[$iz]['jam_masuk'])-$setting_datang_awal);
  1164. } else if($jarak_masuk <= 150) {
  1165. // jika jaraknya < 2.5 jam maka pake toleransi
  1166. $before_jam_masuk_previous1 = date("H:i:s",strtotime($jadwal[$iz]['jam_masuk'])-$toleransi);
  1167. $before_jam_masuk_previous = date("H:i:s",strtotime("+1 second",strtotime($before_jam_masuk_previous1)));
  1168. }
  1169. // if($jarak_masuk > 150) {
  1170. // // jika jaraknya >= 2.5 jam maka pake datang awal
  1171. // $before_jam_masuk_previous = date("H:i:s",strtotime($jadwal[$iz]['jam_masuk'])-$setting_datang_awal);
  1172. // } else if($jarak_pulang <= 150) {
  1173. // // jika jaraknya < 2.5 jam maka pake toleransi
  1174. // $before_jam_masuk_previous1 = date("H:i:s",strtotime($jadwal[$iz]['jam_masuk'])-$toleransi);
  1175. // $before_jam_masuk_previous = date("H:i:s",strtotime("+1 second",strtotime($before_jam_masuk_previous1)));
  1176. // }
  1177. }
  1178.  
  1179.  
  1180. }
  1181. }
  1182.  
  1183. $setting_presensi = SettingPresensi::find(1);
  1184. if(isset($setting_presensi->toleransi_keterlambatan)) {
  1185. $toleransi = strtotime($setting_presensi->toleransi_keterlambatan)-strtotime("00:00:00");
  1186. // $toleransi_min = strtotime("+1 minutes",strtotime($setting_presensi->toleransi_keterlambatan))-strtotime("00:00:00");
  1187.  
  1188. $max_istirahat_mulai = strtotime($jam_istirahat_selesai)-$toleransi-strtotime("00:00:00");
  1189. $max_istirahat_selesai = strtotime($jam_pulang)-$toleransi-strtotime("00:00:00");
  1190.  
  1191. // dd($max_istirahat_selesai);
  1192.  
  1193. // $before_jam_masuk = date("H:i:s",strtotime($jam_masuk)-$setting_datang_awal);
  1194. $before_jam_masuk = $before_jam_masuk_previous;
  1195. $after_jam_masuk = date("H:i:s",strtotime($jam_masuk)+$toleransi);
  1196.  
  1197. $before_jam_istirahat_mulai = date("H:i:s",strtotime($jam_istirahat_mulai)-$toleransi);
  1198. // $after_jam_istirahat_mulai = date("H:i:s",strtotime($jam_istirahat_selesai)-$toleransi_min);
  1199.  
  1200. $before_jam_istirahat_selesai = date("H:i:s",strtotime($jam_istirahat_selesai)-$toleransi);
  1201. // $after_jam_istirahat_selesai = date("H:i:s",strtotime($jam_pulang)-$toleransi_min);
  1202.  
  1203. $before_jam_pulang = date("H:i:s",strtotime($jam_pulang)-$toleransi);
  1204. // $after_jam_pulang = date("H:i:s",strtotime($jam_pulang)+$setting_closing_time);
  1205. $after_jam_pulang = $after_jam_pulang_next;
  1206.  
  1207. // if($iz == 2) {
  1208. // dd($tanggal_waktu_tap);
  1209. // }
  1210.  
  1211. if(($jamtap > $before_jam_masuk) && ($jamtap < $after_jam_masuk)) {
  1212. $slotjam = "Masuk";
  1213. $poin = $setting_poin->jam_masuk;
  1214. $source = $jadwal[$iz]->source;
  1215. $source_id = $jadwal[$iz]->source_id;
  1216. } elseif(($jamtap == $before_jam_masuk) || ($jamtap == $after_jam_masuk)) {
  1217. $slotjam = "Masuk";
  1218. $poin = $setting_poin->jam_masuk;
  1219. $source = $jadwal[$iz]->source;
  1220. $source_id = $jadwal[$iz]->source_id;
  1221. } elseif(($jamtap > $after_jam_masuk) && ($jamtap < $before_jam_istirahat_mulai)) {
  1222. $slotjam = "Terlambat Masuk";
  1223. $poin = $setting_poin->jam_masuk;
  1224. $source = $jadwal[$iz]->source;
  1225. $source_id = $jadwal[$iz]->source_id;
  1226. } elseif(($jamtap > $before_jam_istirahat_mulai) && ($jamtap < $before_jam_istirahat_selesai)) {
  1227. $slotjam = "Istirahat Mulai";
  1228. $poin = $setting_poin->jam_mulai_istirahat;
  1229. $source = $jadwal[$iz]->source;
  1230. $source_id = $jadwal[$iz]->source_id;
  1231. } elseif(($jamtap == $before_jam_istirahat_mulai)) {
  1232. $slotjam = "Istirahat Mulai";
  1233. $poin = $setting_poin->jam_mulai_istirahat;
  1234. $source = $jadwal[$iz]->source;
  1235. $source_id = $jadwal[$iz]->source_id;
  1236. } elseif(($jamtap > $before_jam_istirahat_selesai) && ($jamtap < $before_jam_pulang)) {
  1237. $slotjam = "Istirahat Selesai";
  1238. $poin = $setting_poin->jam_mulai_istirahat;
  1239. $source = $jadwal[$iz]->source;
  1240. $source_id = $jadwal[$iz]->source_id;
  1241. } elseif($jamtap == $before_jam_istirahat_selesai) {
  1242. $slotjam = "Istirahat Selesai";
  1243. $poin = $setting_poin->jam_mulai_istirahat;
  1244. $source = $jadwal[$iz]->source;
  1245. $source_id = $jadwal[$iz]->source_id;
  1246. } elseif(($jamtap > $before_jam_pulang) && ($jamtap < $after_jam_pulang)) {
  1247. $slotjam = "Pulang";
  1248. $poin = $setting_poin->jam_keluar;
  1249. $source = $jadwal[$iz]->source;
  1250. $source_id = $jadwal[$iz]->source_id;
  1251. } elseif(($jamtap == $before_jam_pulang) || ($jamtap == $after_jam_pulang)) {
  1252. $slotjam = "Pulang";
  1253. $poin = $setting_poin->jam_keluar;
  1254. $source = $jadwal[$iz]->source;
  1255. $source_id = $jadwal[$iz]->source_id;
  1256. } else if(strtotime($before_jam_pulang) > strtotime($after_jam_pulang)) {
  1257. // if($iz == 2) {
  1258. // dd(strtotime("+24 hours", strtotime($jamtap)) >= strtotime("24:00:00"));
  1259. // }
  1260. if(strtotime($jamtap) >= strtotime($before_jam_pulang) && strtotime($jamtap) < strtotime("24:00:00")) {
  1261. $slotjam = "Pulang";
  1262. $poin = $setting_poin->jam_keluar;
  1263. $source = $jadwal[$iz]->source;
  1264. $source_id = $jadwal[$iz]->source_id;
  1265. } else if(strtotime("+24 hours", strtotime($jamtap)) >= strtotime("24:00:00") && strtotime("+24 hours", strtotime($jamtap)) <= strtotime("+24 hours", strtotime($after_jam_pulang))) {
  1266. // if($iz == 0) {
  1267. // dd('masuk');
  1268. // }
  1269. $slotjam = "Pulang";
  1270. $poin = $setting_poin->jam_keluar;
  1271. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  1272. $tanggal_waktu_tap->subDay();
  1273. $source = $jadwal[$iz]->source;
  1274. $source_id = $jadwal[$iz]->source_id;
  1275. }
  1276. }
  1277.  
  1278. // if($iz == 0) {
  1279. // dd($tanggal_waktu_tap);
  1280. // }
  1281.  
  1282. //-----CASE A-----
  1283. if(strtotime($jam_pulang) < strtotime($jam_istirahat_selesai)) {
  1284. // dd(strtotime("00:00:00"));
  1285. // Jika jam tap < jam 12 malam
  1286. if((strtotime($jamtap) < strtotime("24:00:00"))) {
  1287.  
  1288. //-----CASE 1-----
  1289. if((strtotime($jamtap) > strtotime($before_jam_istirahat_selesai)) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($before_jam_pulang)))) {
  1290. $slotjam = "Istirahat Selesai";
  1291. $poin = $setting_poin->jam_selesai_istirahat;
  1292. $source = $jadwal[$iz]->source;
  1293. $source_id = $jadwal[$iz]->source_id;
  1294. } elseif(($jamtap == $before_jam_istirahat_selesai)) {
  1295. $slotjam = "Istirahat Selesai";
  1296. $poin = $setting_poin->jam_selesai_istirahat;
  1297. $source = $jadwal[$iz]->source;
  1298. $source_id = $jadwal[$iz]->source_id;
  1299. }
  1300.  
  1301. //-----CASE 2-----
  1302. if(strtotime("+24 hours", strtotime($before_jam_pulang)) < strtotime("24:00:00")) {
  1303. if(strtotime($jamtap) > strtotime("+24 hours", strtotime($before_jam_pulang)) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($after_jam_pulang)))) {
  1304. $slotjam = "Pulang";
  1305. $poin = $setting_poin->jam_keluar;
  1306. $source = $jadwal[$iz]->source;
  1307. $source_id = $jadwal[$iz]->source_id;
  1308. } elseif((strtotime($jamtap) == strtotime("+24 hours", strtotime($before_jam_pulang))) || (strtotime($jamtap) == strtotime("+24 hours", strtotime($after_jam_pulang)))) {
  1309. $slotjam = "Pulang";
  1310. $poin = $setting_poin->jam_keluar;
  1311. $source = $jadwal[$iz]->source;
  1312. $source_id = $jadwal[$iz]->source_id;
  1313. }
  1314. }
  1315. }
  1316.  
  1317. // Jika jam tap >= jam 12 malam
  1318. if((strtotime($jamtap) >= strtotime("00:00:00"))) {
  1319. // 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)));
  1320.  
  1321. //-----CASE 3-----
  1322. if((strtotime("+24 hours", strtotime($jamtap)) > strtotime($before_jam_istirahat_selesai)) && (strtotime("+24 hours", strtotime($jamtap)) < strtotime("+24 hours", strtotime($before_jam_pulang)))) {
  1323. $slotjam = "Istirahat Selesai";
  1324. $poin = $setting_poin->jam_selesai_istirahat;
  1325. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  1326. $tanggal_waktu_tap->subDay();
  1327. $source = $jadwal[$iz]->source;
  1328. $source_id = $jadwal[$iz]->source_id;
  1329. } elseif(($jamtap == $before_jam_istirahat_selesai)) {
  1330. $slotjam = "Istirahat Selesai";
  1331. $poin = $setting_poin->jam_selesai_istirahat;
  1332. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  1333. $tanggal_waktu_tap->subDay();
  1334. $source = $jadwal[$iz]->source;
  1335. $source_id = $jadwal[$iz]->source_id;
  1336. }
  1337.  
  1338. //-----CASE 4-----
  1339. if(strtotime("+24 hours", strtotime($before_jam_pulang)) >= strtotime("00:00:00")) {
  1340. 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)))) {
  1341. $slotjam = "Pulang";
  1342. $poin = $setting_poin->jam_keluar;
  1343. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  1344. $tanggal_waktu_tap->subDay();
  1345. $source = $jadwal[$iz]->source;
  1346. $source_id = $jadwal[$iz]->source_id;
  1347. } elseif((strtotime("+24 hours", strtotime($jamtap)) == strtotime("+24 hours", strtotime($before_jam_pulang))) || (strtotime($jamtap) == strtotime("+24 hours", strtotime($after_jam_pulang)))) {
  1348. $slotjam = "Pulang";
  1349. $poin = $setting_poin->jam_keluar;
  1350. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  1351. $tanggal_waktu_tap->subDay();
  1352. $source = $jadwal[$iz]->source;
  1353. $source_id = $jadwal[$iz]->source_id;
  1354. }
  1355. }
  1356.  
  1357. //-----CASE 5-----
  1358. if(strtotime("+24 hours", strtotime($before_jam_pulang)) < strtotime("24:00:00")) {
  1359. 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)))) {
  1360. $slotjam = "Pulang";
  1361. $poin = $setting_poin->jam_keluar;
  1362. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  1363. $tanggal_waktu_tap->subDay();
  1364. $source = $jadwal[$iz]->source;
  1365. $source_id = $jadwal[$iz]->source_id;
  1366. } elseif((strtotime($jamtap) == strtotime($before_jam_pulang)) || (strtotime($jamtap) == strtotime("+24 hours", strtotime($after_jam_pulang)))) {
  1367. $slotjam = "Pulang";
  1368. $poin = $setting_poin->jam_keluar;
  1369. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  1370. $tanggal_waktu_tap->subDay();
  1371. $source = $jadwal[$iz]->source;
  1372. $source_id = $jadwal[$iz]->source_id;
  1373. }
  1374. }
  1375.  
  1376. //-----CASE 6-----
  1377. if(strtotime($after_jam_pulang) == strtotime("00:00:00")) {
  1378. if((strtotime($jamtap) > strtotime($before_jam_pulang)) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($after_jam_pulang)))) {
  1379. $slotjam = "Pulang";
  1380. $poin = $setting_poin->jam_keluar;
  1381. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  1382. $tanggal_waktu_tap->subDay();
  1383. $source = $jadwal[$iz]->source;
  1384. $source_id = $jadwal[$iz]->source_id;
  1385. } elseif((strtotime($jamtap) == strtotime($before_jam_pulang)) || (strtotime($jamtap) == strtotime("+24 hours", strtotime($after_jam_pulang)))) {
  1386. $slotjam = "Pulang";
  1387. $poin = $setting_poin->jam_keluar;
  1388. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  1389. $tanggal_waktu_tap->subDay();
  1390. $source = $jadwal[$iz]->source;
  1391. $source_id = $jadwal[$iz]->source_id;
  1392. }
  1393. }
  1394. }
  1395. }
  1396.  
  1397. //-----CASE B-----
  1398. if(strtotime($jam_istirahat_selesai) < strtotime($jam_istirahat_mulai)) {
  1399. // dd(strtotime("00:00:00"));
  1400. // Jika jam tap < jam 12 malam
  1401.  
  1402. if((strtotime($jamtap) < strtotime("24:00:00"))) {
  1403.  
  1404. //-----CASE 7-----
  1405. if((strtotime($jamtap) > strtotime($before_jam_istirahat_mulai)) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)))) {
  1406. $slotjam = "Istirahat Mulai";
  1407. $poin = $setting_poin->jam_mulai_istirahat;
  1408. $source = $jadwal[$iz]->source;
  1409. $source_id = $jadwal[$iz]->source_id;
  1410. } elseif(($jamtap == $before_jam_istirahat_mulai)) {
  1411. $slotjam = "Istirahat Mulai";
  1412. $poin = $setting_poin->jam_mulai_istirahat;
  1413. $source = $jadwal[$iz]->source;
  1414. $source_id = $jadwal[$iz]->source_id;
  1415. }
  1416.  
  1417. //-----CASE 8-----
  1418. if(strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)) < strtotime("24:00:00")) {
  1419. if(strtotime($jamtap) > strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($before_jam_pulang)))) {
  1420. $slotjam = "Istirahat Selesai";
  1421. $poin = $setting_poin->jam_selesai_istirahat;
  1422. $source = $jadwal[$iz]->source;
  1423. $source_id = $jadwal[$iz]->source_id;
  1424. } elseif((strtotime($jamtap) == strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)))) {
  1425. $slotjam = "Istirahat Selesai";
  1426. $poin = $setting_poin->jam_selesai_istirahat;
  1427. $source = $jadwal[$iz]->source;
  1428. $source_id = $jadwal[$iz]->source_id;
  1429. }
  1430. }
  1431.  
  1432. }
  1433.  
  1434. // Jika jam tap >= jam 12 malam
  1435. if((strtotime($jamtap) >= strtotime("00:00:00"))) {
  1436.  
  1437. //-----CASE 9-----
  1438. if((strtotime("+24 hours", strtotime($jamtap)) > strtotime($before_jam_istirahat_mulai)) && (strtotime("+24 hours", strtotime($jamtap)) < strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)))) {
  1439. $slotjam = "Istirahat Mulai";
  1440. $poin = $setting_poin->jam_mulai_istirahat;
  1441. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  1442. $tanggal_waktu_tap->subDay();
  1443. $source = $jadwal[$iz]->source;
  1444. $source_id = $jadwal[$iz]->source_id;
  1445. } elseif(($jamtap == $before_jam_istirahat_mulai)) {
  1446. $slotjam = "Istirahat Mulai";
  1447. $poin = $setting_poin->jam_mulai_istirahat;
  1448. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  1449. $tanggal_waktu_tap->subDay();
  1450. $source = $jadwal[$iz]->source;
  1451. $source_id = $jadwal[$iz]->source_id;
  1452. }
  1453.  
  1454. //-----CASE 10-----
  1455. if(strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)) >= strtotime("00:00:00")) {
  1456. 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)))) {
  1457. $slotjam = "Istirahat Selesai";
  1458. $poin = $setting_poin->jam_selesai_istirahat;
  1459. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  1460. $tanggal_waktu_tap->subDay();
  1461. $source = $jadwal[$iz]->source;
  1462. $source_id = $jadwal[$iz]->source_id;
  1463. } elseif((strtotime("+24 hours", strtotime($jamtap)) == strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)))) {
  1464. $slotjam = "Istirahat Selesai";
  1465. $poin = $setting_poin->jam_selesai_istirahat;
  1466. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  1467. $tanggal_waktu_tap->subDay();
  1468. $source = $jadwal[$iz]->source;
  1469. $source_id = $jadwal[$iz]->source_id;
  1470. }
  1471. }
  1472.  
  1473. //-----CASE 11-----
  1474. if(strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)) < strtotime("24:00:00")) {
  1475. 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)))) {
  1476. $slotjam = "Istirahat Selesai";
  1477. $poin = $setting_poin->jam_selesai_istirahat;
  1478. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  1479. $tanggal_waktu_tap->subDay();
  1480. $source = $jadwal[$iz]->source;
  1481. $source_id = $jadwal[$iz]->source_id;
  1482. } elseif((strtotime($jamtap) == strtotime($before_jam_istirahat_selesai))) {
  1483. $slotjam = "Istirahat Selesai";
  1484. $poin = $setting_poin->jam_selesai_istirahat;
  1485. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  1486. $tanggal_waktu_tap->subDay();
  1487. $source = $jadwal[$iz]->source;
  1488. $source_id = $jadwal[$iz]->source_id;
  1489. }
  1490. }
  1491. }
  1492. }
  1493.  
  1494. //-----CASE C-----
  1495. if(strtotime($jam_istirahat_mulai) < strtotime($jam_masuk)) {
  1496. // dd(strtotime("00:00:00"));
  1497. // Jika jam tap < jam 12 malam
  1498.  
  1499. if((strtotime($jamtap) < strtotime("24:00:00"))) {
  1500.  
  1501. //-----CASE 12-----
  1502. if((strtotime($jamtap) > strtotime($before_jam_masuk)) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)))) {
  1503. if((strtotime($jamtap) > strtotime($before_jam_masuk)) && (strtotime($jamtap) < strtotime($after_jam_masuk))) {
  1504. $slotjam = "Masuk";
  1505. $poin = $setting_poin->jam_masuk;
  1506. $source = $jadwal[$iz]->source;
  1507. $source_id = $jadwal[$iz]->source_id;
  1508. }
  1509. if((strtotime($jamtap) > strtotime($before_jam_masuk)) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($after_jam_masuk)))) {
  1510. $slotjam = "Masuk";
  1511. $poin = $setting_poin->jam_masuk;
  1512. $source = $jadwal[$iz]->source;
  1513. $source_id = $jadwal[$iz]->source_id;
  1514.  
  1515. if((strtotime("+24 hours", strtotime($jamtap)) == strtotime("24:00:00"))) {
  1516. $slotjam = "Masuk";
  1517. $poin = $setting_poin->jam_masuk;
  1518. $source = $jadwal[$iz]->source;
  1519. $source_id = $jadwal[$iz]->source_id;
  1520. }
  1521.  
  1522. if((strtotime($jamtap) < strtotime("24:00:00")) && (strtotime($jamtap) > strtotime($before_jam_masuk))) {
  1523. $slotjam = "Masuk";
  1524. $poin = $setting_poin->jam_masuk;
  1525. $source = $jadwal[$iz]->source;
  1526. $source_id = $jadwal[$iz]->source_id;
  1527. }
  1528.  
  1529. if((strtotime("+24 hours", strtotime($jamtap)) > strtotime("24:00:00")) && (strtotime("+24 hours", strtotime($jamtap)) < strtotime("+24 hours", strtotime($after_jam_masuk)))) {
  1530. $slotjam = "Masuk";
  1531. $poin = $setting_poin->jam_masuk;
  1532. $source = $jadwal[$iz]->source;
  1533. $source_id = $jadwal[$iz]->source_id;
  1534. }
  1535. }
  1536. if((strtotime($jamtap) > strtotime($after_jam_masuk)) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)))) {
  1537. $slotjam = "Terlambat Masuk";
  1538. $poin = $setting_poin->jam_masuk;
  1539. $source = $jadwal[$iz]->source;
  1540. $source_id = $jadwal[$iz]->source_id;
  1541.  
  1542. if((strtotime("+24 hours", strtotime($jamtap)) == strtotime("24:00:00"))) {
  1543. $slotjam = "Terlambat Masuk";
  1544. $poin = $setting_poin->jam_masuk;
  1545. $source = $jadwal[$iz]->source;
  1546. $source_id = $jadwal[$iz]->source_id;
  1547. }
  1548.  
  1549. if((strtotime($jamtap) < strtotime("24:00:00")) && (strtotime($jamtap) > strtotime($after_jam_masuk))) {
  1550. $slotjam = "Terlambat Masuk";
  1551. $poin = $setting_poin->jam_masuk;
  1552. $source = $jadwal[$iz]->source;
  1553. $source_id = $jadwal[$iz]->source_id;
  1554. }
  1555.  
  1556. if((strtotime("+24 hours", strtotime($jamtap)) > strtotime("24:00:00")) && (strtotime("+24 hours", strtotime($jamtap)) < strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)))) {
  1557. $slotjam = "Terlambat Masuk";
  1558. $poin = $setting_poin->jam_masuk;
  1559. $source = $jadwal[$iz]->source;
  1560. $source_id = $jadwal[$iz]->source_id;
  1561. }
  1562. }
  1563.  
  1564. } elseif(($jamtap == $before_jam_masuk)) {
  1565. $slotjam = "Masuk";
  1566. $poin = $setting_poin->jam_masuk;
  1567. $source = $jadwal[$iz]->source;
  1568. $source_id = $jadwal[$iz]->source_id;
  1569. }
  1570.  
  1571. //-----CASE 13-----
  1572. if(strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)) < strtotime("24:00:00")) {
  1573. if(strtotime($jamtap) > strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($after_jam_istirahat_selesai)))) {
  1574. $slotjam = "Istirahat Mulai";
  1575. $poin = $setting_poin->jam_mulai_istirahat;
  1576. $source = $jadwal[$iz]->source;
  1577. $source_id = $jadwal[$iz]->source_id;
  1578. } elseif((strtotime($jamtap) == strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)))) {
  1579. $slotjam = "Istirahat Mulai";
  1580. $poin = $setting_poin->jam_mulai_istirahat;
  1581. $source = $jadwal[$iz]->source;
  1582. $source_id = $jadwal[$iz]->source_id;
  1583. }
  1584. }
  1585.  
  1586. //-----CASE 14-----
  1587. if(strtotime($after_jam_masuk) < strtotime("24:00:00")) {
  1588. if(strtotime($before_jam_istirahat_mulai) < strtotime("24:00:00")) {
  1589. if((strtotime($jamtap) > strtotime($after_jam_masuk)) && (strtotime($jamtap) < strtotime($before_jam_istirahat_mulai))) {
  1590. $slotjam = "Terlambat Masuk";
  1591. $poin = $setting_poin->jam_masuk;
  1592. $source = $jadwal[$iz]->source;
  1593. $source_id = $jadwal[$iz]->source_id;
  1594. }
  1595. }
  1596. }
  1597.  
  1598. if(strtotime($jam_masuk) == strtotime("00:00:00")) {
  1599. //-----CASE 15-----
  1600. if(strtotime($before_jam_masuk) < strtotime("00:00:00")) {
  1601. if((strtotime($jamtap) > strtotime("+24 hours", strtotime($before_jam_masuk))) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($after_jam_masuk)))) {
  1602. $slotjam = "Masuk";
  1603. $poin = $setting_poin->jam_masuk;
  1604. $source = $jadwal[$iz]->source;
  1605. $source_id = $jadwal[$iz]->source_id;
  1606. } elseif((strtotime($jamtap) == strtotime("+24 hours", strtotime($before_jam_masuk)))) {
  1607. $slotjam = "Masuk";
  1608. $poin = $setting_poin->jam_masuk;
  1609. $source = $jadwal[$iz]->source;
  1610. $source_id = $jadwal[$iz]->source_id;
  1611. }
  1612. }
  1613. }
  1614. }
  1615.  
  1616. // Jika jam tap >= jam 12 malam
  1617. if((strtotime($jamtap) >= strtotime("00:00:00"))) {
  1618. // 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)));
  1619.  
  1620. //-----CASE 16----
  1621. if((strtotime("+24 hours", strtotime($jamtap)) < strtotime($after_jam_masuk)) && (strtotime("+24 hours", strtotime($jamtap)) < strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)))) {
  1622. $slotjam = "Masuk";
  1623. $poin = $setting_poin->jam_masuk;
  1624. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  1625. $tanggal_waktu_tap->subDay();
  1626. $source = $jadwal[$iz]->source;
  1627. $source_id = $jadwal[$iz]->source_id;
  1628. }
  1629. if(($jamtap == $before_jam_masuk)) {
  1630. $slotjam = "Masuk";
  1631. $poin = $setting_poin->jam_masuk;
  1632. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  1633. $tanggal_waktu_tap->subDay();
  1634. $source = $jadwal[$iz]->source;
  1635. $source_id = $jadwal[$iz]->source_id;
  1636. }
  1637.  
  1638. //-----CASE 17-----
  1639. if(strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)) >= strtotime("00:00:00")) {
  1640. 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)))) {
  1641. $slotjam = "Istirahat Mulai";
  1642. $poin = $setting_poin->jam_mulai_istirahat;
  1643. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  1644. $tanggal_waktu_tap->subDay();
  1645. $source = $jadwal[$iz]->source;
  1646. $source_id = $jadwal[$iz]->source_id;
  1647. } elseif((strtotime("+24 hours", strtotime($jamtap)) == strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)))) {
  1648. $slotjam = "Istirahat Mulai";
  1649. $poin = $setting_poin->jam_mulai_istirahat;
  1650. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  1651. $tanggal_waktu_tap->subDay();
  1652. $source = $jadwal[$iz]->source;
  1653. $source_id = $jadwal[$iz]->source_id;
  1654. }
  1655. }
  1656.  
  1657. if(strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)) >= strtotime("00:00:00")) {
  1658. 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)))) {
  1659. $slotjam = "Istirahat Selesai";
  1660. $poin = $setting_poin->jam_selesai_istirahat;
  1661. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  1662. $tanggal_waktu_tap->subDay();
  1663. $source = $jadwal[$iz]->source;
  1664. $source_id = $jadwal[$iz]->source_id;
  1665. } elseif((strtotime("+24 hours", strtotime($jamtap)) == strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)))) {
  1666. $slotjam = "Istirahat Selesai";
  1667. $poin = $setting_poin->jam_selesai_istirahat;
  1668. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  1669. $tanggal_waktu_tap->subDay();
  1670. $source = $jadwal[$iz]->source;
  1671. $source_id = $jadwal[$iz]->source_id;
  1672. }
  1673. }
  1674.  
  1675. if(strtotime("+24 hours", strtotime($before_jam_pulang)) >= strtotime("00:00:00")) {
  1676. 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)))) {
  1677. $slotjam = "Pulang";
  1678. $poin = $setting_poin->jam_keluar;
  1679. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  1680. $tanggal_waktu_tap->subDay();
  1681. $source = $jadwal[$iz]->source;
  1682. $source_id = $jadwal[$iz]->source_id;
  1683. } elseif((strtotime("+24 hours", strtotime($jamtap)) == strtotime("+24 hours", strtotime($before_jam_pulang)))) {
  1684. $slotjam = "Pulang";
  1685. $poin = $setting_poin->jam_keluar;
  1686. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  1687. $tanggal_waktu_tap->subDay();
  1688. $source = $jadwal[$iz]->source;
  1689. $source_id = $jadwal[$iz]->source_id;
  1690. }
  1691. }
  1692.  
  1693. //-----CASE 18-----
  1694. if(strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)) < strtotime("24:00:00")) {
  1695. 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)))) {
  1696. $slotjam = "Istirahat Mulai";
  1697. $poin = $setting_poin->jam_mulai_istirahat;
  1698. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  1699. $tanggal_waktu_tap->subDay();
  1700. $source = $jadwal[$iz]->source;
  1701. $source_id = $jadwal[$iz]->source_id;
  1702. } elseif((strtotime($jamtap) == strtotime($before_jam_istirahat_mulai))) {
  1703. $slotjam = "Istirahat Mulai";
  1704. $poin = $setting_poin->jam_mulai_istirahat;
  1705. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  1706. $tanggal_waktu_tap->subDay();
  1707. $source = $jadwal[$iz]->source;
  1708. $source_id = $jadwal[$iz]->source_id;
  1709. }
  1710. }
  1711.  
  1712. if(strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)) < strtotime("24:00:00")) {
  1713. 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)))) {
  1714. $slotjam = "Istirahat Selesai";
  1715. $poin = $setting_poin->jam_selesai_istirahat;
  1716. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  1717. $tanggal_waktu_tap->subDay();
  1718. $source = $jadwal[$iz]->source;
  1719. $source_id = $jadwal[$iz]->source_id;
  1720. } elseif((strtotime($jamtap) == strtotime($before_jam_istirahat_selesai))) {
  1721. $slotjam = "Istirahat Selesai";
  1722. $poin = $setting_poin->jam_selesai_istirahat;
  1723. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  1724. $tanggal_waktu_tap->subDay();
  1725. $source = $jadwal[$iz]->source;
  1726. $source_id = $jadwal[$iz]->source_id;
  1727. }
  1728. }
  1729.  
  1730. if(strtotime("+24 hours", strtotime($before_jam_pulang)) < strtotime("24:00:00")) {
  1731. 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)))) {
  1732. $slotjam = "Pulang";
  1733. $poin = $setting_poin->jam_keluar;
  1734. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  1735. $tanggal_waktu_tap->subDay();
  1736. $source = $jadwal[$iz]->source;
  1737. $source_id = $jadwal[$iz]->source_id;
  1738. } elseif((strtotime($jamtap) == strtotime($before_jam_pulang))) {
  1739. $slotjam = "Pulang";
  1740. $poin = $setting_poin->jam_keluar;
  1741. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  1742. $tanggal_waktu_tap->subDay();
  1743. $source = $jadwal[$iz]->source;
  1744. $source_id = $jadwal[$iz]->source_id;
  1745. }
  1746. }
  1747.  
  1748.  
  1749. //-----CASE 19-----
  1750. if(strtotime($after_jam_masuk) >= strtotime("00:00:00")) {
  1751. if(strtotime($before_jam_istirahat_mulai) >= strtotime("24:00:00")) {
  1752. 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)))) {
  1753. $slotjam = "Terlambat Masuk";
  1754. $poin = $setting_poin->jam_masuk;
  1755. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  1756. $tanggal_waktu_tap->subDay();
  1757. $source = $jadwal[$iz]->source;
  1758. $source_id = $jadwal[$iz]->source_id;
  1759. }
  1760. }
  1761. }
  1762.  
  1763. //-----CASE 19.1-----
  1764. if(strtotime($after_jam_masuk) < strtotime("24:00:00")) {
  1765. if(strtotime($before_jam_istirahat_mulai) >= strtotime("24:00:00")) {
  1766. 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)))) {
  1767. $slotjam = "Terlambat Masuk";
  1768. $poin = $setting_poin->jam_masuk;
  1769. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  1770. $tanggal_waktu_tap->subDay();
  1771. $source = $jadwal[$iz]->source;
  1772. $source_id = $jadwal[$iz]->source_id;
  1773. }
  1774.  
  1775. if((strtotime("+24 hours", strtotime($jamtap)) > strtotime($after_jam_masuk)) && (strtotime("+24 hours", strtotime($jamtap)) < strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)))) {
  1776. $slotjam = "Terlambat Masuk";
  1777. $poin = $setting_poin->jam_masuk;
  1778. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  1779. $tanggal_waktu_tap->subDay();
  1780. $source = $jadwal[$iz]->source;
  1781. $source_id = $jadwal[$iz]->source_id;
  1782. }
  1783. } elseif(strtotime($before_jam_istirahat_mulai) < strtotime("24:00:00")) {
  1784. 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)))) {
  1785. $slotjam = "Terlambat Masuk";
  1786. $poin = $setting_poin->jam_masuk;
  1787. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  1788. $tanggal_waktu_tap->subDay();
  1789. $source = $jadwal[$iz]->source;
  1790. $source_id = $jadwal[$iz]->source_id;
  1791. }
  1792.  
  1793. if((strtotime("+24 hours", strtotime($jamtap)) > strtotime($after_jam_masuk)) && (strtotime("+24 hours", strtotime($jamtap)) < strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)))) {
  1794. $slotjam = "Terlambat Masuk";
  1795. $poin = $setting_poin->jam_masuk;
  1796. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  1797. $tanggal_waktu_tap->subDay();
  1798. $source = $jadwal[$iz]->source;
  1799. $source_id = $jadwal[$iz]->source_id;
  1800. }
  1801. }
  1802. }
  1803.  
  1804. //-----CASE 20-----
  1805. if(strtotime($before_jam_masuk) == strtotime("00:00:00")) {
  1806. if((strtotime($jamtap) > strtotime($before_jam_masuk)) && (strtotime($jamtap) < strtotime($before_jam_istirahat_mulai))) {
  1807. $slotjam = "Masuk";
  1808. $poin = $setting_poin->jam_masuk;
  1809. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  1810. $tanggal_waktu_tap->subDay();
  1811. $source = $jadwal[$iz]->source;
  1812. $source_id = $jadwal[$iz]->source_id;
  1813. } elseif((strtotime($jamtap) == strtotime($before_jam_masuk)) || (strtotime($jamtap) == strtotime($after_jam_pulang))) {
  1814. $slotjam = "Masuk";
  1815. $poin = $setting_poin->jam_masuk;
  1816. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  1817. $tanggal_waktu_tap->subDay();
  1818. $source = $jadwal[$iz]->source;
  1819. $source_id = $jadwal[$iz]->source_id;
  1820. }
  1821. }
  1822.  
  1823. if(strtotime($jam_masuk) == strtotime("00:00:00")) {
  1824.  
  1825. //-----CASE 21-----
  1826. if(strtotime($before_jam_masuk) < strtotime("00:00:00")) {
  1827. if((strtotime($jamtap) > strtotime($before_jam_masuk)) && (strtotime($jamtap) < strtotime($before_jam_istirahat_mulai))) {
  1828. $slotjam = "Masuk";
  1829. $poin = $setting_poin->jam_masuk;
  1830. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  1831. $tanggal_waktu_tap->subDay();
  1832. $source = $jadwal[$iz]->source;
  1833. $source_id = $jadwal[$iz]->source_id;
  1834. } elseif((strtotime($jamtap) == strtotime($before_jam_istirahat_mulai))) {
  1835. $slotjam = "Masuk";
  1836. $poin = $setting_poin->jam_masuk;
  1837. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  1838. $tanggal_waktu_tap->subDay();
  1839. $source = $jadwal[$iz]->source;
  1840. $source_id = $jadwal[$iz]->source_id;
  1841. }
  1842. }
  1843. }
  1844. }
  1845. }
  1846.  
  1847. //-----CASE D-----
  1848. if(strtotime($jam_masuk) == strtotime("00:00:00")) {
  1849. //-----CASE 22-----
  1850. if((strtotime($jamtap) < strtotime("00:00:00")) == false) {
  1851. if((strtotime($jamtap) > strtotime("+24 hours", strtotime($before_jam_masuk))) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($after_jam_masuk)))) {
  1852. $slotjam = "Masuk";
  1853. $poin = $setting_poin->jam_masuk;
  1854. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  1855. $tanggal_waktu_tap->subDay();
  1856. $source = $jadwal[$iz]->source;
  1857. $source_id = $jadwal[$iz]->source_id;
  1858. } else if((strtotime("+24 hours",strtotime($jamtap)) < strtotime("+24 hours", strtotime($after_jam_masuk)))) {
  1859. $slotjam = "Masuk";
  1860. $poin = $setting_poin->jam_masuk;
  1861. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  1862. $tanggal_waktu_tap->subDay();
  1863. $source = $jadwal[$iz]->source;
  1864. $source_id = $jadwal[$iz]->source_id;
  1865. } else if((strtotime($jamtap) == strtotime("+24 hours", strtotime($before_jam_masuk))) || (strtotime($jamtap) == strtotime("+24 hours", strtotime($after_jam_masuk)))) {
  1866. $slotjam = "Masuk";
  1867. $poin = $setting_poin->jam_masuk;
  1868. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  1869. $tanggal_waktu_tap->subDay();
  1870. $source = $jadwal[$iz]->source;
  1871. $source_id = $jadwal[$iz]->source_id;
  1872. }
  1873. }
  1874. }
  1875.  
  1876. //-----CASE E-----
  1877. if(strtotime($jam_pulang) == strtotime("00:00:00")) {
  1878. //-----CASE 23-----
  1879. if((strtotime($jamtap) < strtotime("00:00:00")) == false) {
  1880. if((strtotime($jamtap) > strtotime("+24 hours", strtotime($before_jam_pulang))) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($after_jam_pulang)))) {
  1881. $slotjam = "Pulang";
  1882. $poin = $setting_poin->jam_keluar;
  1883. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  1884. $tanggal_waktu_tap->subDay();
  1885. $source = $jadwal[$iz]->source;
  1886. $source_id = $jadwal[$iz]->source_id;
  1887. } else if((strtotime("+24 hours",strtotime($jamtap)) < strtotime("+24 hours", strtotime($after_jam_pulang)))) {
  1888. $slotjam = "Pulang";
  1889. $poin = $setting_poin->jam_keluar;
  1890. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  1891. $tanggal_waktu_tap->subDay();
  1892. $source = $jadwal[$iz]->source;
  1893. $source_id = $jadwal[$iz]->source_id;
  1894. } else if((strtotime($jamtap) == strtotime("+24 hours", strtotime($before_jam_pulang))) || (strtotime($jamtap) == strtotime("+24 hours", strtotime($after_jam_pulang)))) {
  1895. $slotjam = "Pulang";
  1896. $poin = $setting_poin->jam_keluar;
  1897. $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  1898. $tanggal_waktu_tap->subDay();
  1899. $source = $jadwal[$iz]->source;
  1900. $source_id = $jadwal[$iz]->source_id;
  1901. }
  1902. }
  1903. }
  1904.  
  1905. // if($iz == 2) {
  1906. // dd($tanggal_waktu_tap);
  1907. // }
  1908.  
  1909.  
  1910. //-----CASE F-----
  1911. // if(strtotime($jam_istirahat_selesai) < strtotime($jam_pulang)) {
  1912. // if(strtotime("+24 hours", strtotime($jamtap)) >= strtotime("24:00:00") && strtotime($jamtap) <= strtotime($after_jam_pulang)) {
  1913. // $slotjam = "Pulang";
  1914. // $poin = $setting_poin->jam_keluar;
  1915. // $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  1916. // $tanggal_waktu_tap->subDay();
  1917. // $source = $jadwal[$iz]->source;
  1918. // $source_id = $jadwal[$iz]->source_id;
  1919. // }
  1920. // }
  1921. }
  1922.  
  1923. $presensi = array(
  1924. 'karyawan_id' => $id_karyawan,
  1925. 'nama_karyawan' => $nama_karyawan,
  1926. 'group_karyawan' => $group_karyawan,
  1927. 'group_id' => $karyawan->group_id ? $karyawan->group_id : null,
  1928. 'jadwal_id' => $karyawan->jadwal_ngeplus_id ? $karyawan->jadwal_ngeplus_id : null,
  1929. 'setting_presensi_id' => 1,
  1930. 'tanggal_dan_waktu_tap' => Carbon::parse($tanggal_waktu_tap)->toDateTimeString(),
  1931. 'tanggal_dan_waktu_tap_static' => $tanggal_waktu_tap_static,
  1932. 'poin' => $poin,
  1933. 'status' => isset($jadwal[$iz]) ? $jadwal[$iz]['status'] : null,
  1934. 'slotjam' => $slotjam,
  1935. 'source' => $source,
  1936. 'source_id' => $source_id
  1937. );
  1938.  
  1939. $slotjamkomparasi = $slotjam;
  1940. if($slotjamkomparasi == 'Terlambat Masuk') {
  1941. $slotjamkomparasi = 'Masuk';
  1942. }
  1943. // if($iz == 2) {
  1944. // dd($jadwal[2]);
  1945. // }
  1946.  
  1947. // $oldpresensi = Presensi::whereDate('tanggal_dan_waktu_tap', '=', Carbon::parse($tanggal_waktu_tap)->toDateString())
  1948. // ->where('status', $jadwal[$iz]['status'])
  1949. // ->where('slotjam', 'like', '%'.$slotjamkomparasi)
  1950. // ->where('source', $jadwal[$iz]['source'])
  1951. // ->where('source_id', $jadwal[$iz]['source_id'])
  1952. // ->first();
  1953.  
  1954. // if($iz == 1) {
  1955. // dd($presensi);
  1956. // }
  1957.  
  1958. // if(isset($oldpresensi) || $oldpresensi !== null) {
  1959. // dd('tidak lolos');
  1960. // $oldpresensi->update($presensi);
  1961. $data_terinput = $data_terinput + 0;
  1962. // } else if(Carbon::parse(Carbon::parse($tanggal_waktu_tap)->toDateString())->isBetween(strval($jadwal[$iz]->tanggal_mulai), strval($jadwal[$iz]->tanggal_selesai))) {
  1963. // } else
  1964. if(Carbon::parse($tanggal_waktu_tap)->gte(Carbon::parse($jadwal[$iz]['tanggal_mulai']))
  1965. // if(Carbon::parse($tanggal_waktu_tap)->gte(Carbon::parse($jadwal[$iz]->tanggal_mulai))
  1966. && Carbon::parse(Carbon::parse($tanggal_waktu_tap)->toDateString())->lt(Carbon::parse($jadwal[$iz]['tanggal_selesai'])->addDay())) {
  1967.  
  1968. // if($jadwal[$iz]['tanggal_pick'] == Carbon::parse($tanggal_waktu_tap_static)->toDateString()) {
  1969. // if($iz == 1) {
  1970. // dd('masuk');
  1971. // }
  1972. // $prev_id = $jadwal[$iz]->id;
  1973. // cek jam masuk
  1974. if((($slotjam == 'Masuk') || ($slotjam == 'Terlambat Masuk'))) {
  1975. Presensi::create($presensi);
  1976. $data_terinput = $data_terinput + 1;
  1977. $status_final = $presensi['slotjam'];
  1978.  
  1979. // input harian ngeplus
  1980. self::inputHarianNgeplus($presensi, $presensi['source'], $presensi['source_id']);
  1981.  
  1982. // input ke mingguanjam ngeplus
  1983. self::inputMingguanJamNgeplus($presensi, $presensi['source'], $presensi['source_id']);
  1984.  
  1985. // input ke kph
  1986. self::inputPresensiToKph($presensi, 'nge-plus', $presensi['source'], $presensi['source_id']);
  1987.  
  1988. }
  1989. // cek jam istirahat mulai
  1990. if($slotjam == 'Istirahat Mulai') {
  1991. Presensi::create($presensi);
  1992. $data_terinput = $data_terinput + 1;
  1993. $status_final = $presensi['slotjam'];
  1994.  
  1995. // input harian ngeplus
  1996. self::inputHarianNgeplus($presensi, $presensi['source'], $presensi['source_id']);
  1997.  
  1998. // input ke mingguanjam ngeplus
  1999. self::inputMingguanJamNgeplus($presensi, $presensi['source'], $presensi['source_id']);
  2000.  
  2001. // input ke kph
  2002. self::inputPresensiToKph($presensi, 'nge-plus', $presensi['source'], $presensi['source_id']);
  2003. }
  2004. // cek jam istirahat selesai
  2005. if($slotjam == 'Istirahat Selesai') {
  2006. Presensi::create($presensi);
  2007. $data_terinput = $data_terinput + 1;
  2008. $status_final = $presensi['slotjam'];
  2009.  
  2010. // input harian ngeplus
  2011. self::inputHarianNgeplus($presensi, $presensi['source'], $presensi['source_id']);
  2012.  
  2013. // input ke mingguanjam ngeplus
  2014. self::inputMingguanJamNgeplus($presensi, $presensi['source'], $presensi['source_id']);
  2015.  
  2016. // input ke kph
  2017. self::inputPresensiToKph($presensi, 'nge-plus', $presensi['source'], $presensi['source_id']);
  2018. }
  2019. // cek jam pulang
  2020. if($slotjam == 'Pulang') {
  2021. Presensi::create($presensi);
  2022. $data_terinput = $data_terinput + 1;
  2023. $status_final = $presensi['slotjam'];
  2024.  
  2025. // input harian ngeplus
  2026. self::inputHarianNgeplus($presensi, $presensi['source'], $presensi['source_id']);
  2027.  
  2028. // input ke mingguanjam ngeplus
  2029. self::inputMingguanJamNgeplus($presensi, $presensi['source'], $presensi['source_id']);
  2030.  
  2031. // input ke kph
  2032. self::inputPresensiToKph($presensi, 'nge-plus', $presensi['source'], $presensi['source_id']);
  2033. }
  2034. // }
  2035. // if($iz == 0) {
  2036. // dd($presensi);
  2037. // }
  2038. // $tanggal_waktu_tap = null;
  2039. // }
  2040.  
  2041. } else {
  2042. $data_terinput = $data_terinput + 0;
  2043. }
  2044. $tanggal_waktu_tap = $tanggal_waktu_tap_static;
  2045. }
  2046. }
  2047. }
  2048. }
  2049. }
  2050. }
  2051. }
  2052. }
  2053. } catch (Exception $e) {
  2054. echo $e->message;
  2055. }
  2056. // slotjam tidak dimasukan ke return krn tdk valid jika multijadwal hanya ambil slotjam terakhir
  2057. // return response()->json(['status' => 200, 'message' => 'Data Terinput:' . $data_terinput, 'status_presensi' => $slotjam]);
  2058. return response()->json(['status' => 200, 'message' => 'Data Terinput:' . $data_terinput]);
  2059. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement