Advertisement
vitareinforce

input mesin ngeplus 05-11-2021

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