Advertisement
vitareinforce

input mesin extuder v2.2

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