vitareinforce

fungsi input mesin ngeplus dengan indexing baru

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