Advertisement
vitareinforce

inputmesinngeplusv2

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