Advertisement
vitareinforce

input mesin rutin baru

Dec 15th, 2021
30
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 58.17 KB | None | 0 0
  1. public function inputMesin(Request $request)
  2. {
  3. $data_terinput = 0;
  4. $status_final = null;
  5. $nama_karyawan = '-';
  6. $group_karyawan = '-';
  7. try {
  8. if (isset($request->message)) {
  9. $data = $request->message;
  10. $row = $data;
  11. $pernah_masuk = 0;
  12. $pernah_istirahat_mulai = 0;
  13. $pernah_istirahat_selesai = 0;
  14. $pernah_pulang = 0;
  15. $karyawan_terdeteksi = null;
  16. $karyawan_terakhir = null;
  17. for ($i = 0; $i < count($row); $i++) {
  18.  
  19. // $existing_presensi = Presensi::where('tanggal_dan_waktu_tap', '=', date("Y-m-d H:i:s", strtotime($row[$i]['DateTime'][0])))->where('karyawan_id', '=', $row[$i]['PIN'][0])->first();
  20. $existing_presensi = Presensi::where('tanggal_dan_waktu_tap', $row[$i]['DateTime'][0])->where('karyawan_id', $row[$i]['PIN'][0])->first();
  21.  
  22. if(!isset($existing_presensi)) {
  23.  
  24. $id_karyawan = $row[$i]['PIN'][0];
  25. $tanggal_waktu_tap = $row[$i]['DateTime'][0];
  26. $tanggal_waktu_tap_static = $row[$i]['DateTime'][0];
  27.  
  28. $karyawan = Karyawan::with('group')->find($id_karyawan);
  29. if(isset($karyawan)) {
  30. $jamtap = date('H:i:s', strtotime($tanggal_waktu_tap));
  31. $slotjam = null;
  32. $poin = 0;
  33. $setting_poin = SettingPoin::find(1);
  34. $adajadwal = 0;
  35. $jadwal = null;
  36. $jadwal_terpilih = null;
  37. $status_libur = 0;
  38. $status_izin = 0;
  39. $nama_karyawan = $karyawan->nama;
  40. if(isset($karyawan->group_id)) {
  41. $group_karyawan = $karyawan->group->nama.'-'.$karyawan->groupno;
  42. }
  43.  
  44. // cek jadwal libur dan jadwal izin
  45. $jadwal_libur = JadwalLibur::where('karyawan_id', '=', $id_karyawan)->get();
  46. $jadwal_izin = JadwalIzin::where('karyawan_id', '=', $id_karyawan)->get();
  47.  
  48. for($l = 0; $l < count($jadwal_izin); $l++) {
  49. $mulai_izin = Carbon::parse($jadwal_izin[$l]->tanggal_mulai)->format('Y-m-d');
  50. $selesai_izin = Carbon::parse($jadwal_izin[$l]->tanggal_selesai)->format('Y-m-d');
  51. $tanggal_sekarang = Carbon::parse($tanggal_waktu_tap)->format('Y-m-d');
  52. if(($tanggal_sekarang >= $mulai_izin) && ($tanggal_sekarang <= $selesai_izin)) {
  53. $status_izin = 1;
  54. }
  55. }
  56.  
  57. for($l = 0; $l < count($jadwal_libur); $l++) {
  58. $mulai_libur = Carbon::parse($jadwal_libur[$l]->tanggal_mulai)->format('Y-m-d');
  59. $selesai_libur = Carbon::parse($jadwal_libur[$l]->tanggal_selesai)->format('Y-m-d');
  60. $tanggal_sekarang = Carbon::parse($tanggal_waktu_tap)->format('Y-m-d');
  61. if(($tanggal_sekarang >= $mulai_libur) && ($tanggal_sekarang <= $selesai_libur)) {
  62. $status_libur = 1;
  63. }
  64. }
  65.  
  66. // dd($status_libur == 0 && $status_izin == 0);
  67.  
  68. if($status_libur == 0 && $status_izin == 0) {
  69.  
  70. // ambil jadwal master
  71. // $jadwal_id_terpilih = null;
  72.  
  73. // if ($karyawan->jadwal_id != null && $karyawan->jadwal_group_id == null) {
  74. // $jadwal_id_terpilih = $karyawan->jadwal_id;
  75. // // dd("case 1 = jadwal_id");
  76.  
  77. // // cek jadwal rutin dulu
  78. // $jadwal = JadwalHariKerja::where([
  79. // ['karyawan_id', '=', $id_karyawan],
  80. // ['source_id', '=', $jadwal_id_terpilih]
  81. // ])->first();
  82.  
  83. // $hari = Carbon::parse($tanggal_waktu_tap)->format('w');
  84.  
  85. // //Pilih jadwal harus mulai dari sini
  86. // if(isset($jadwal)) {
  87. // if(($hari == 0) && ($jadwal->checkbox_harikerja_minggu)) {
  88. // $adajadwal = 1;
  89. // }
  90. // if(($hari == 1) && ($jadwal->checkbox_harikerja_senin)) {
  91. // $adajadwal = 1;
  92. // }
  93. // if(($hari == 2) && ($jadwal->checkbox_harikerja_selasa)) {
  94. // $adajadwal = 1;
  95. // }
  96. // if(($hari == 3) && ($jadwal->checkbox_harikerja_rabu)) {
  97. // $adajadwal = 1;
  98. // }
  99. // if(($hari == 4) && ($jadwal->checkbox_harikerja_kamis)) {
  100. // $adajadwal = 1;
  101. // }
  102. // if(($hari == 5) && ($jadwal->checkbox_harikerja_jumat)) {
  103. // $adajadwal = 1;
  104. // }
  105. // if(($hari == 6) && ($jadwal->checkbox_harikerja_sabtu)) {
  106. // $adajadwal = 1;
  107. // }
  108. // // dd($jadwal->checkbox_harikerja_jumat);
  109. // }
  110.  
  111. // if($adajadwal == 1) {
  112. // $jadwal_terpilih = $jadwal;
  113. // }
  114. // }
  115.  
  116. // if ($karyawan->jadwal_id == null && $karyawan->jadwal_group_id != null) {
  117. // $jadwal_id_terpilih = $karyawan->jadwal_group_id;
  118. // // dd("case 2 = jadwal_group_id");
  119.  
  120. // // cek jadwal rutin dulu
  121. // $jadwal = JadwalHariKerja::where([
  122. // ['karyawan_id', '=', $id_karyawan],
  123. // ['source_id', '=', $jadwal_id_terpilih]
  124. // ])->first();
  125.  
  126. // $hari = Carbon::parse($tanggal_waktu_tap)->format('w');
  127.  
  128. // //Pilih jadwal harus mulai dari sini
  129. // if(isset($jadwal)) {
  130. // if(($hari == 0) && ($jadwal->checkbox_harikerja_minggu)) {
  131. // $adajadwal = 1;
  132. // }
  133. // if(($hari == 1) && ($jadwal->checkbox_harikerja_senin)) {
  134. // $adajadwal = 1;
  135. // }
  136. // if(($hari == 2) && ($jadwal->checkbox_harikerja_selasa)) {
  137. // $adajadwal = 1;
  138. // }
  139. // if(($hari == 3) && ($jadwal->checkbox_harikerja_rabu)) {
  140. // $adajadwal = 1;
  141. // }
  142. // if(($hari == 4) && ($jadwal->checkbox_harikerja_kamis)) {
  143. // $adajadwal = 1;
  144. // }
  145. // if(($hari == 5) && ($jadwal->checkbox_harikerja_jumat)) {
  146. // $adajadwal = 1;
  147. // }
  148. // if(($hari == 6) && ($jadwal->checkbox_harikerja_sabtu)) {
  149. // $adajadwal = 1;
  150. // }
  151. // // dd($jadwal->checkbox_harikerja_jumat);
  152. // }
  153.  
  154. // if($adajadwal == 1) {
  155. // $jadwal_terpilih = $jadwal;
  156. // }
  157. // }
  158.  
  159. // if ($karyawan->jadwal_id != null && $karyawan->jadwal_group_id != null) {
  160. // $jadwal_id_terpilih = $karyawan->jadwal_id;
  161. // // cek jadwal rutin dulu
  162. // $jadwal = JadwalHariKerja::where([
  163. // ['karyawan_id', '=', $id_karyawan],
  164. // ['source_id', '=', $jadwal_id_terpilih]
  165. // ])->first();
  166.  
  167. // $hari = Carbon::parse($tanggal_waktu_tap)->format('w');
  168.  
  169. // //Pilih jadwal harus mulai dari sini
  170. // if(isset($jadwal)) {
  171. // if(($hari == 0) && ($jadwal->checkbox_harikerja_minggu == 1)) {
  172. // $adajadwal = 1;
  173. // }
  174. // if(($hari == 1) && ($jadwal->checkbox_harikerja_senin == 1)) {
  175. // $adajadwal = 1;
  176. // }
  177. // if(($hari == 2) && ($jadwal->checkbox_harikerja_selasa == 1)) {
  178. // $adajadwal = 1;
  179. // }
  180. // if(($hari == 3) && ($jadwal->checkbox_harikerja_rabu == 1)) {
  181. // $adajadwal = 1;
  182. // }
  183. // if(($hari == 4) && ($jadwal->checkbox_harikerja_kamis == 1)) {
  184. // $adajadwal = 1;
  185. // }
  186. // if(($hari == 5) && ($jadwal->checkbox_harikerja_jumat == 1)) {
  187. // $adajadwal = 1;
  188. // }
  189. // if(($hari == 6) && ($jadwal->checkbox_harikerja_sabtu == 1)) {
  190. // $adajadwal = 1;
  191. // }
  192. // }
  193.  
  194. // if($adajadwal == 1) {
  195. // $jadwal_terpilih = $jadwal;
  196. // }
  197.  
  198. // if($adajadwal == 0) {
  199. // $jadwal_id_terpilih = $karyawan->jadwal_group_id;
  200.  
  201. // $jadwal = JadwalHariKerja::where([
  202. // ['karyawan_id', '=', $id_karyawan],
  203. // ['source_id', '=', $jadwal_id_terpilih]
  204. // ])->first();
  205.  
  206. // if(isset($jadwal)) {
  207. // if(($hari == 0) && ($jadwal->checkbox_harikerja_minggu == 1)) {
  208. // $adajadwal = 1;
  209. // }
  210. // if(($hari == 1) && ($jadwal->checkbox_harikerja_senin == 1)) {
  211. // $adajadwal = 1;
  212. // }
  213. // if(($hari == 2) && ($jadwal->checkbox_harikerja_selasa == 1)) {
  214. // $adajadwal = 1;
  215. // }
  216. // if(($hari == 3) && ($jadwal->checkbox_harikerja_rabu == 1)) {
  217. // $adajadwal = 1;
  218. // }
  219. // if(($hari == 4) && ($jadwal->checkbox_harikerja_kamis == 1)) {
  220. // $adajadwal = 1;
  221. // }
  222. // if(($hari == 5) && ($jadwal->checkbox_harikerja_jumat == 1)) {
  223. // $adajadwal = 1;
  224. // }
  225. // if(($hari == 6) && ($jadwal->checkbox_harikerja_sabtu == 1)) {
  226. // $adajadwal = 1;
  227. // }
  228.  
  229. // if($adajadwal == 1) {
  230. // $jadwal_terpilih = $jadwal;
  231. // }
  232. // }
  233. // }
  234. // }
  235.  
  236. // $tanggal_jadwal = null;
  237.  
  238. // if(isset($jadwal_terpilih)) {
  239. $get_storage = KalkulasiPoinHarian::where('karyawan_id', $row[$i]['PIN'][0])
  240. ->where('tanggal_hari_ini', Carbon::parse($tanggal_waktu_tap)
  241. ->toDateString())->first();
  242. if($get_storage == null) {
  243. // $tanggal_jadwal = $get_storage->created_at;
  244.  
  245. // dd("masuk sini");
  246. $jam_masuk = $get_storage->jam_masuk;
  247. $jam_istirahat_mulai = $get_storage->jam_istirahat_mulai;
  248. $jam_istirahat_selesai = $get_storage->jam_istirahat_selesai;
  249. $jam_pulang = $get_storage->jam_pulang;
  250.  
  251. $setting_presensi = SettingPresensi::find(1);
  252. $closing_time = ClosingTime::find(1);
  253. $datang_awal = DatangAwal::find(1);
  254. $setting_datang_awal = strtotime($datang_awal->datang_awal)-strtotime("00:00:00");
  255. $setting_closing_time = strtotime($closing_time->jangka_waktu)-strtotime("00:00:00");
  256. if(isset($setting_presensi->toleransi_keterlambatan)) {
  257. $toleransi = strtotime($setting_presensi->toleransi_keterlambatan)-strtotime("00:00:00");
  258.  
  259. // dd($jadwal_terpilih);
  260.  
  261. // $max_istirahat_mulai = strtotime($jam_istirahat_selesai)-$toleransi-strtotime("00:00:00");
  262. // $max_istirahat_selesai = strtotime($jam_pulang)-$toleransi-strtotime("00:00:00");
  263.  
  264. $max_istirahat_mulai = strtotime($jam_istirahat_selesai)-$toleransi-strtotime("00:00:00");
  265. $max_istirahat_selesai = strtotime($jam_pulang)-$toleransi-strtotime("00:00:00");
  266.  
  267. $before_jam_masuk = date("H:i:s",strtotime($jam_masuk)-$setting_datang_awal);
  268. $after_jam_masuk = date("H:i:s",strtotime($jam_masuk)+$toleransi);
  269.  
  270. // dd(date("H:i:s",strtotime($jam_istirahat_mulai)+$max_istirahat_mulai));
  271.  
  272. $before_jam_istirahat_mulai = date("H:i:s",strtotime($jam_istirahat_mulai)-$toleransi);
  273. $after_jam_istirahat_mulai = date("H:i:s",strtotime($jam_istirahat_mulai)+$max_istirahat_mulai);
  274.  
  275. $before_jam_istirahat_selesai = date("H:i:s",strtotime($jam_istirahat_selesai)-$toleransi);
  276. $after_jam_istirahat_selesai = date("H:i:s",strtotime($jam_istirahat_selesai)+$max_istirahat_selesai);
  277.  
  278. $before_jam_pulang = date("H:i:s",strtotime($jam_pulang)-$toleransi);
  279. $after_jam_pulang = date("H:i:s",strtotime($jam_pulang)+$setting_closing_time);
  280. // dd($after_jam_pulang);
  281.  
  282. if(($jamtap > $before_jam_masuk) && ($jamtap < $after_jam_masuk)) {
  283. $slotjam = "Masuk";
  284. $poin = $setting_poin->jam_masuk;
  285. } elseif(($jamtap == $before_jam_masuk) || ($jamtap == $after_jam_masuk)) {
  286. $slotjam = "Masuk";
  287. $poin = $setting_poin->jam_masuk;
  288. } elseif(($jamtap > $after_jam_masuk) && ($jamtap < $before_jam_istirahat_mulai)) {
  289. $slotjam = "Terlambat Masuk";
  290. $poin = $setting_poin->jam_masuk;
  291. } elseif(($jamtap > $before_jam_istirahat_mulai) && ($jamtap < $before_jam_istirahat_selesai)) {
  292. $slotjam = "Istirahat Mulai";
  293. $poin = $setting_poin->jam_mulai_istirahat;
  294. } elseif(($jamtap == $before_jam_istirahat_mulai)) {
  295. $slotjam = "Istirahat Mulai";
  296. $poin = $setting_poin->jam_mulai_istirahat;
  297. } elseif(($jamtap > $before_jam_istirahat_selesai) && ($jamtap < $before_jam_pulang)) {
  298. // } elseif(($jamtap > $before_jam_istirahat_selesai) && ($jamtap < $after_jam_istirahat_selesai)) {
  299. $slotjam = "Istirahat Selesai";
  300. $poin = $setting_poin->jam_selesai_istirahat;
  301. } elseif(($jamtap == $before_jam_istirahat_selesai)) {
  302. $slotjam = "Istirahat Selesai";
  303. $poin = $setting_poin->jam_selesai_istirahat;
  304. // Terlambat Istirahat Selesai
  305. // } elseif(($jamtap > $after_jam_istirahat_selesai) && ($jamtap < $before_jam_pulang)) {
  306. // $slotjam = "Terlambat Istirahat Selesai";
  307. // $poin = $setting_poin->jam_selesai_istirahat;
  308. // } elseif(($jamtap == $after_jam_istirahat_selesai)) {
  309. // $slotjam = "Terlambat Istirahat Selesai";
  310. // $poin = $setting_poin->jam_selesai_istirahat;
  311. // pulang
  312. } elseif(($jamtap > $before_jam_pulang) && ($jamtap < $after_jam_pulang)) {
  313. $slotjam = "Pulang";
  314. $poin = $setting_poin->jam_keluar;
  315. } elseif(($jamtap == $before_jam_pulang) || ($jamtap == $after_jam_pulang)) {
  316. $slotjam = "Pulang";
  317. $poin = $setting_poin->jam_keluar;
  318. } else if(strtotime($before_jam_pulang) > strtotime($after_jam_pulang)) {
  319. if(strtotime($jamtap) >= strtotime($before_jam_pulang) && strtotime($jamtap) < strtotime("24:00:00")) {
  320. $slotjam = "Pulang";
  321. $poin = $setting_poin->jam_keluar;
  322. } else if((strtotime("+24 hours", strtotime($jamtap)) > strtotime("24:00:00")) && (strtotime("+24 hours", strtotime($jamtap)) <= strtotime("+24 hours", strtotime($after_jam_pulang)))) {
  323. $slotjam = "Pulang";
  324. $poin = $setting_poin->jam_keluar;
  325. }
  326. }
  327.  
  328. // } elseif(($jamtap > $before_jam_pulang) && strtotime("+24 hours", strtotime($after_jam_pulang) > "24:00:00")) {
  329. // $slotjam = "Pulang";
  330. // $poin = $setting_poin->jam_keluar;
  331. // } elseif(strtotime("+24 hours", strtotime($jamtap)) > $before_jam_pulang && strtotime("+24 hours", strtotime($after_jam_pulang) > "24:00:00")) {
  332. // $slotjam = "Pulang";
  333. // $poin = $setting_poin->jam_keluar;
  334. // $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
  335. // $tanggal_waktu_tap->subDay();
  336. // }
  337.  
  338. //-----CASE A-----
  339. // if(strtotime($jam_pulang) < strtotime($jam_istirahat_selesai)) {
  340. // // dd(strtotime("00:00:00"));
  341. // // Jika jam tap < jam 12 malam
  342. // if((strtotime($jamtap) < strtotime("24:00:00"))) {
  343.  
  344. // //-----CASE 1-----
  345. // if((strtotime($jamtap) > strtotime($before_jam_istirahat_selesai)) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($before_jam_pulang)))) {
  346. // $slotjam = "Istirahat Selesai";
  347. // $poin = $setting_poin->jam_selesai_istirahat;
  348. // } elseif(($jamtap == $before_jam_istirahat_selesai)) {
  349. // $slotjam = "Istirahat Selesai";
  350. // $poin = $setting_poin->jam_selesai_istirahat;
  351. // }
  352.  
  353. // //-----CASE 2-----
  354. // if(strtotime("+24 hours", strtotime($before_jam_pulang)) < strtotime("24:00:00")) {
  355. // if(strtotime($jamtap) > strtotime("+24 hours", strtotime($before_jam_pulang)) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($after_jam_pulang)))) {
  356. // $slotjam = "Pulang";
  357. // $poin = $setting_poin->jam_keluar;
  358. // } elseif((strtotime($jamtap) == strtotime("+24 hours", strtotime($before_jam_pulang))) || (strtotime($jamtap) == strtotime("+24 hours", strtotime($after_jam_pulang)))) {
  359. // $slotjam = "Pulang";
  360. // $poin = $setting_poin->jam_keluar;
  361. // }
  362. // }
  363.  
  364. // }
  365.  
  366. // // Jika jam tap >= jam 12 malam
  367. // if((strtotime($jamtap) >= strtotime("00:00:00"))) {
  368. // // dd(strtotime("+24 hours", strtotime($jamtap)) > strtotime("+24 hours", strtotime($before_jam_pulang)) && strtotime("+24 hours", strtotime($jamtap)) < strtotime("+24 hours", strtotime($after_jam_pulang)));
  369.  
  370. // //-----CASE 3-----
  371. // if((strtotime("+24 hours", strtotime($jamtap)) > strtotime($before_jam_istirahat_selesai)) && (strtotime("+24 hours", strtotime($jamtap)) < strtotime("+24 hours", strtotime($before_jam_pulang)))) {
  372. // $slotjam = "Istirahat Selesai";
  373. // $poin = $setting_poin->jam_selesai_istirahat;
  374. // } elseif(($jamtap == $before_jam_istirahat_selesai)) {
  375. // $slotjam = "Istirahat Selesai";
  376. // $poin = $setting_poin->jam_selesai_istirahat;
  377. // }
  378.  
  379. // //-----CASE 4-----
  380. // if(strtotime("+24 hours", strtotime($before_jam_pulang)) >= strtotime("00:00:00")) {
  381. // if((strtotime("+24 hours", strtotime($jamtap)) > strtotime("+24 hours", strtotime($before_jam_pulang))) && (strtotime("+24 hours", strtotime($jamtap)) < strtotime("+24 hours", strtotime($after_jam_pulang)))) {
  382. // $slotjam = "Pulang";
  383. // $poin = $setting_poin->jam_keluar;
  384. // } elseif((strtotime("+24 hours", strtotime($jamtap)) == strtotime("+24 hours", strtotime($before_jam_pulang))) || (strtotime($jamtap) == strtotime("+24 hours", strtotime($after_jam_pulang)))) {
  385. // $slotjam = "Pulang";
  386. // $poin = $setting_poin->jam_keluar;
  387. // }
  388. // }
  389.  
  390. // //-----CASE 5-----
  391. // if(strtotime("+24 hours", strtotime($before_jam_pulang)) < strtotime("24:00:00")) {
  392. // if((strtotime("+24 hours", strtotime($jamtap)) > strtotime("+24 hours", strtotime($before_jam_pulang))) && (strtotime("+24 hours", strtotime($jamtap)) < strtotime("+24 hours", strtotime($after_jam_pulang)))) {
  393. // $slotjam = "Pulang";
  394. // $poin = $setting_poin->jam_keluar;
  395. // } elseif((strtotime($jamtap) == strtotime($before_jam_pulang)) || (strtotime($jamtap) == strtotime("+24 hours", strtotime($after_jam_pulang)))) {
  396. // $slotjam = "Pulang";
  397. // $poin = $setting_poin->jam_keluar;
  398. // }
  399. // }
  400.  
  401. // //-----CASE 6-----
  402. // if(strtotime($after_jam_pulang) == strtotime("00:00:00")) {
  403. // if((strtotime($jamtap) > strtotime($before_jam_pulang)) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($after_jam_pulang)))) {
  404. // $slotjam = "Pulang";
  405. // $poin = $setting_poin->jam_keluar;
  406. // } elseif((strtotime($jamtap) == strtotime($before_jam_pulang)) || (strtotime($jamtap) == strtotime("+24 hours", strtotime($after_jam_pulang)))) {
  407. // $slotjam = "Pulang";
  408. // $poin = $setting_poin->jam_keluar;
  409. // }
  410. // }
  411. // }
  412. // }
  413.  
  414. //-----CASE B-----
  415. // if(strtotime($jam_istirahat_selesai) < strtotime($jam_istirahat_mulai)) {
  416. // // dd(strtotime("00:00:00"));
  417. // // Jika jam tap < jam 12 malam
  418.  
  419. // if((strtotime($jamtap) < strtotime("24:00:00"))) {
  420.  
  421. // //-----CASE 7-----
  422. // if((strtotime($jamtap) > strtotime($before_jam_istirahat_mulai)) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)))) {
  423. // $slotjam = "Istirahat Mulai";
  424. // $poin = $setting_poin->jam_mulai_istirahat;
  425. // } elseif(($jamtap == $before_jam_istirahat_mulai)) {
  426. // $slotjam = "Istirahat Mulai";
  427. // $poin = $setting_poin->jam_mulai_istirahat;
  428. // }
  429.  
  430. // //-----CASE 8-----
  431. // if(strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)) < strtotime("24:00:00")) {
  432. // if(strtotime($jamtap) > strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($before_jam_pulang)))) {
  433. // $slotjam = "Istirahat Selesai";
  434. // $poin = $setting_poin->jam_selesai_istirahat;
  435. // } elseif((strtotime($jamtap) == strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)))) {
  436. // $slotjam = "Istirahat Selesai";
  437. // $poin = $setting_poin->jam_selesai_istirahat;
  438. // }
  439. // }
  440.  
  441. // }
  442.  
  443. // // Jika jam tap >= jam 12 malam
  444. // if((strtotime($jamtap) >= strtotime("00:00:00"))) {
  445.  
  446. // //-----CASE 9-----
  447. // if((strtotime("+24 hours", strtotime($jamtap)) > strtotime($before_jam_istirahat_mulai)) && (strtotime("+24 hours", strtotime($jamtap)) < strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)))) {
  448. // $slotjam = "Istirahat Mulai";
  449. // $poin = $setting_poin->jam_mulai_istirahat;
  450. // } elseif(($jamtap == $before_jam_istirahat_mulai)) {
  451. // $slotjam = "Istirahat Mulai";
  452. // $poin = $setting_poin->jam_mulai_istirahat;
  453. // }
  454.  
  455. // //-----CASE 10-----
  456. // if(strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)) >= strtotime("00:00:00")) {
  457. // if((strtotime("+24 hours", strtotime($jamtap)) > strtotime("+24 hours", strtotime($before_jam_istirahat_selesai))) && (strtotime("+24 hours", strtotime($jamtap)) < strtotime("+24 hours", strtotime($before_jam_pulang)))) {
  458. // $slotjam = "Istirahat Selesai";
  459. // $poin = $setting_poin->jam_selesai_istirahat;
  460. // } elseif((strtotime("+24 hours", strtotime($jamtap)) == strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)))) {
  461. // $slotjam = "Istirahat Selesai";
  462. // $poin = $setting_poin->jam_selesai_istirahat;
  463. // }
  464. // }
  465.  
  466. // //-----CASE 11-----
  467. // if(strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)) < strtotime("24:00:00")) {
  468. // if((strtotime("+24 hours", strtotime($jamtap)) > strtotime("+24 hours", strtotime($before_jam_istirahat_selesai))) && (strtotime("+24 hours", strtotime($jamtap)) < strtotime("+24 hours", strtotime($before_jam_pulang)))) {
  469. // $slotjam = "Istirahat Selesai";
  470. // $poin = $setting_poin->jam_selesai_istirahat;
  471. // } elseif((strtotime($jamtap) == strtotime($before_jam_istirahat_selesai))) {
  472. // $slotjam = "Istirahat Selesai";
  473. // $poin = $setting_poin->jam_selesai_istirahat;
  474. // }
  475. // }
  476. // }
  477. // }
  478.  
  479. //-----CASE C-----
  480. // if(strtotime($jam_istirahat_mulai) < strtotime($jam_masuk)) {
  481. // // dd(strtotime("00:00:00"));
  482. // // Jika jam tap < jam 12 malam
  483.  
  484. // if((strtotime($jamtap) < strtotime("24:00:00"))) {
  485.  
  486. // //-----CASE 12-----
  487. // if((strtotime($jamtap) > strtotime($before_jam_masuk)) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)))) {
  488. // $slotjam = "Masuk";
  489. // $poin = $setting_poin->jam_masuk;
  490. // } elseif(($jamtap == $before_jam_masuk)) {
  491. // $slotjam = "Masuk";
  492. // $poin = $setting_poin->jam_masuk;
  493. // }
  494.  
  495. // //-----CASE 13-----
  496. // if(strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)) < strtotime("24:00:00")) {
  497. // if(strtotime($jamtap) > strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($after_jam_istirahat_selesai)))) {
  498. // $slotjam = "Istirahat Mulai";
  499. // $poin = $setting_poin->jam_mulai_istirahat;
  500. // } elseif((strtotime($jamtap) == strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)))) {
  501. // $slotjam = "Istirahat Mulai";
  502. // $poin = $setting_poin->jam_mulai_istirahat;
  503. // }
  504. // }
  505.  
  506. // //-----CASE 14-----
  507. // if(strtotime($after_jam_masuk) < strtotime("24:00:00")) {
  508. // if(strtotime($before_jam_istirahat_mulai) < strtotime("24:00:00")) {
  509. // if((strtotime($jamtap) > strtotime($after_jam_masuk)) && (strtotime($jamtap) < strtotime($before_jam_istirahat_mulai))) {
  510. // $slotjam = "Terlambat Masuk";
  511. // $poin = $setting_poin->jam_masuk;
  512. // }
  513. // }
  514. // }
  515.  
  516. // if(strtotime($jam_masuk) == strtotime("00:00:00")) {
  517. // //-----CASE 15-----
  518. // if(strtotime($before_jam_masuk) < strtotime("00:00:00")) {
  519. // if((strtotime($jamtap) > strtotime("+24 hours", strtotime($before_jam_masuk))) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($after_jam_masuk)))) {
  520. // $slotjam = "Masuk";
  521. // $poin = $setting_poin->jam_masuk;
  522. // } elseif((strtotime($jamtap) == strtotime("+24 hours", strtotime($before_jam_masuk)))) {
  523. // $slotjam = "Masuk";
  524. // $poin = $setting_poin->jam_masuk;
  525. // }
  526. // }
  527. // }
  528. // }
  529.  
  530. // // Jika jam tap >= jam 12 malam
  531. // if((strtotime($jamtap) >= strtotime("00:00:00"))) {
  532. // // dd(strtotime("+24 hours", strtotime($jamtap)) > strtotime("+24 hours", strtotime($before_jam_pulang)) && strtotime("+24 hours", strtotime($jamtap)) < strtotime("+24 hours", strtotime($after_jam_pulang)));
  533.  
  534. // //-----CASE 16----
  535. // if((strtotime("+24 hours", strtotime($jamtap)) > strtotime($before_jam_masuk)) && (strtotime("+24 hours", strtotime($jamtap)) < strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)))) {
  536. // $slotjam = "Masuk";
  537. // $poin = $setting_poin->jam_masuk;
  538. // } elseif(($jamtap == $before_jam_masuk)) {
  539. // $slotjam = "Masuk";
  540. // $poin = $setting_poin->jam_masuk;
  541. // }
  542.  
  543. // //-----CASE 17-----
  544. // if(strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)) >= strtotime("00:00:00")) {
  545. // if((strtotime("+24 hours", strtotime($jamtap)) > strtotime("+24 hours", strtotime($before_jam_istirahat_mulai))) && (strtotime("+24 hours", strtotime($jamtap)) < strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)))) {
  546. // $slotjam = "Istirahat Mulai";
  547. // $poin = $setting_poin->jam_mulai_istirahat;
  548. // } elseif((strtotime("+24 hours", strtotime($jamtap)) == strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)))) {
  549. // $slotjam = "Istirahat Mulai";
  550. // $poin = $setting_poin->jam_mulai_istirahat;
  551. // }
  552. // }
  553.  
  554. // //-----CASE 18-----
  555. // if(strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)) < strtotime("24:00:00")) {
  556. // if((strtotime("+24 hours", strtotime($jamtap)) > strtotime("+24 hours", strtotime($before_jam_istirahat_mulai))) && (strtotime("+24 hours", strtotime($jamtap)) < strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)))) {
  557. // $slotjam = "Istirahat Mulai";
  558. // $poin = $setting_poin->jam_mulai_istirahat;
  559. // } elseif((strtotime($jamtap) == strtotime($before_jam_istirahat_mulai))) {
  560. // $slotjam = "Istirahat Mulai";
  561. // $poin = $setting_poin->jam_mulai_istirahat;
  562. // }
  563. // }
  564.  
  565. // //-----CASE 19-----
  566. // if(strtotime($after_jam_masuk) >= strtotime("00:00:00")) {
  567. // if(strtotime($before_jam_istirahat_mulai) >= strtotime("24:00:00")) {
  568. // if((strtotime("+24 hours", strtotime($jamtap)) > strtotime("+24 hours", strtotime($after_jam_masuk))) && (strtotime("+24 hours", strtotime($jamtap)) < strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)))) {
  569. // $slotjam = "Terlambat Masuk";
  570. // $poin = $setting_poin->jam_masuk;
  571. // }
  572. // }
  573. // }
  574.  
  575. // //-----CASE 20-----
  576. // if(strtotime($before_jam_masuk) == strtotime("00:00:00")) {
  577. // if((strtotime($jamtap) > strtotime($before_jam_masuk)) && (strtotime($jamtap) < strtotime($before_jam_istirahat_mulai))) {
  578. // $slotjam = "Masuk";
  579. // $poin = $setting_poin->jam_masuk;
  580. // } elseif((strtotime($jamtap) == strtotime($before_jam_masuk)) || (strtotime($jamtap) == strtotime($after_jam_pulang))) {
  581. // $slotjam = "Masuk";
  582. // $poin = $setting_poin->jam_masuk;
  583. // }
  584. // }
  585.  
  586. // if(strtotime($jam_masuk) == strtotime("00:00:00")) {
  587.  
  588. // //-----CASE 21-----
  589. // if(strtotime($before_jam_masuk) < strtotime("00:00:00")) {
  590. // if((strtotime($jamtap) > strtotime($before_jam_masuk)) && (strtotime($jamtap) < strtotime($before_jam_istirahat_mulai))) {
  591. // $slotjam = "Masuk";
  592. // $poin = $setting_poin->jam_masuk;
  593. // } elseif((strtotime($jamtap) == strtotime($before_jam_istirahat_mulai))) {
  594. // $slotjam = "Masuk";
  595. // $poin = $setting_poin->jam_masuk;
  596. // }
  597. // }
  598. // }
  599. // }
  600. // }
  601.  
  602. // dd(strtotime($jamtap) > strtotime("00:00:00"));
  603.  
  604. //-----CASE D-----
  605. // if(strtotime($jam_masuk) == strtotime("00:00:00")) {
  606. // //-----CASE 22-----
  607. // if((strtotime($jamtap) < strtotime("00:00:00")) == false) {
  608. // if((strtotime($jamtap) > strtotime("+24 hours", strtotime($before_jam_masuk))) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($after_jam_masuk)))) {
  609. // $slotjam = "Masuk";
  610. // $poin = $setting_poin->jam_masuk;
  611. // } else if((strtotime("+24 hours",strtotime($jamtap)) < strtotime("+24 hours", strtotime($after_jam_masuk)))) {
  612. // $slotjam = "Masuk";
  613. // $poin = $setting_poin->jam_masuk;
  614. // } else if((strtotime($jamtap) == strtotime("+24 hours", strtotime($before_jam_masuk))) || (strtotime($jamtap) == strtotime("+24 hours", strtotime($after_jam_masuk)))) {
  615. // $slotjam = "Masuk";
  616. // $poin = $setting_poin->jam_masuk;
  617. // }
  618. // }
  619. // }
  620.  
  621. //-----CASE E-----
  622. // if(strtotime($jam_pulang) == strtotime("00:00:00")) {
  623. // //-----CASE 23-----
  624. // if((strtotime($jamtap) < strtotime("00:00:00")) == false) {
  625. // if((strtotime($jamtap) > strtotime("+24 hours", strtotime($before_jam_pulang))) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($after_jam_pulang)))) {
  626. // $slotjam = "Pulang";
  627. // $poin = $setting_poin->jam_keluar;
  628. // } else if((strtotime("+24 hours",strtotime($jamtap)) < strtotime("+24 hours", strtotime($after_jam_pulang)))) {
  629. // $slotjam = "Pulang";
  630. // $poin = $setting_poin->jam_keluar;
  631. // } else if((strtotime($jamtap) == strtotime("+24 hours", strtotime($before_jam_pulang))) || (strtotime($jamtap) == strtotime("+24 hours", strtotime($after_jam_pulang)))) {
  632. // $slotjam = "Pulang";
  633. // $poin = $setting_poin->jam_keluar;
  634. // }
  635. // }
  636. // }
  637.  
  638. // //-----CASE E----- [2nd Concept]
  639. // //-----DD() Section-----
  640. // dd(strtotime($before_jam_masuk) < strtotime("24:00:00"));
  641. // //-----DD() Section-----
  642. // if(strtotime($before_jam_masuk) < strtotime("24:00:00")) {
  643. // if((strtotime($jamtap) > strtotime("24:00:00"))) {
  644. // dd("masuk sini");
  645. // } else {
  646. // dd("masuk sana");
  647. // }
  648. // }
  649. }
  650. } else {
  651. $slotjam = null;
  652. $poin = 0;
  653. }
  654.  
  655. $status_final = $slotjam;
  656. $presensi = array(
  657. 'karyawan_id' => $id_karyawan,
  658. 'nama_karyawan' => $nama_karyawan,
  659. 'group_karyawan' => $group_karyawan,
  660. 'group_id' => $karyawan->group_id ? $karyawan->group_id : null,
  661. 'jadwal_id' => $karyawan->jadwal_id ? $karyawan->jadwal_id : null,
  662. 'setting_presensi_id' => 1,
  663. 'tanggal_dan_waktu_tap' => $tanggal_waktu_tap,
  664. 'tanggal_dan_waktu_tap_static' => $tanggal_waktu_tap_static,
  665. 'poin' => $poin,
  666. 'status' => 'Rutin',
  667. 'slotjam' => $slotjam
  668. );
  669.  
  670. $presensilog = array(
  671. 'karyawan_id' => $id_karyawan,
  672. 'group_id' => $karyawan->group_id ? $karyawan->group_id : null,
  673. 'nama_karyawan' => $nama_karyawan,
  674. 'group_karyawan' => $group_karyawan,
  675. 'tanggal_dan_waktu_tap' => $tanggal_waktu_tap,
  676. 'slotjam' => $slotjam,
  677. 'poin' => $poin,
  678. 'status' => 'Rutin',
  679. );
  680.  
  681. $tanggal_terdeteksi = null;
  682. $tanggal_terakhir = null;
  683.  
  684. $slotjamkomparasi = $slotjam;
  685. if($slotjamkomparasi == 'Terlambat Masuk') {
  686. $slotjamkomparasi = 'Masuk';
  687. }
  688.  
  689. $oldpresensi = Presensi::whereDate('tanggal_dan_waktu_tap', '=', date('Y-m-d', strtotime($tanggal_waktu_tap)))
  690. ->where('status', '=', 'Rutin')
  691. ->where('slotjam', 'like', '%'.$slotjamkomparasi)
  692. ->where('karyawan_id', '=', $id_karyawan)->first();
  693.  
  694. // cek dulu lolos dari kriteria jadwal hari ini ada atau tidak
  695. // tanggal hari ini == created at jadwal + 1
  696. // ambil created at jadwal di atas
  697. // tidak perlu, sudah direct ke harian
  698.  
  699. // $tanggal_jadwal_next = null;
  700. // $tanggal_tap_final = null;
  701. // $tap_boleh_masuk = false;
  702. // if($tanggal_jadwal != null) {
  703. // $tanggal_jadwal_next = Carbon::parse($tanggal_jadwal)->addDay()->toDateString();
  704. // $tanggal_tap_final = Carbon::parse($tanggal_waktu_tap)->toDateString();
  705. // if(Carbon::parse($tanggal_tap_final)->gte(Carbon::parse($tanggal_jadwal_next))) {
  706. // $tap_boleh_masuk = true;
  707. // }
  708. // }
  709.  
  710. if(isset($oldpresensi)) {
  711. // $oldpresensi->update($presensi);
  712. $data_terinput = $data_terinput + 0;
  713. } else if(!isset($oldpresensi)) {
  714. // disini sudah final, tinggal masuk
  715. // jangan ditambah filter macam macam
  716. // dicek lg ada yg mengganjal di harian dan mingguan jam
  717.  
  718. // cek jam masuk
  719. if((($slotjam == 'Masuk') || ($slotjam == 'Terlambat Masuk'))) {
  720. Presensi::create($presensi);
  721. $data_terinput = $data_terinput + 1;
  722.  
  723. // input ke kph
  724. self::inputPresensiToKph($presensi, 'Rutin', null, null);
  725.  
  726. // input ke mingguanjam rutin
  727. self::inputMingguanJamRutin($presensi);
  728.  
  729. // input ke mingguan poin rutin
  730. self::inputMingguanPoinRutin($presensi);
  731.  
  732. }
  733. // cek jam istirahat mulai
  734. if($slotjam == 'Istirahat Mulai') {
  735. Presensi::create($presensi);
  736. $data_terinput = $data_terinput + 1;
  737.  
  738. // input ke kph
  739. self::inputPresensiToKph($presensi, 'Rutin', null, null);
  740.  
  741. // input ke mingguanjam rutin
  742. self::inputMingguanJamRutin($presensi);
  743.  
  744. // input ke mingguan poin rutin
  745. self::inputMingguanPoinRutin($presensi);
  746. }
  747. // cek jam istirahat selesai
  748. if(($slotjam == 'Istirahat Selesai') || ($slotjam == 'Terlambat Istirahat Selesai')) {
  749. Presensi::create($presensi);
  750. $data_terinput = $data_terinput + 1;
  751.  
  752. // input ke kph
  753. self::inputPresensiToKph($presensi, 'Rutin', null, null);
  754.  
  755. // input ke mingguanjam rutin
  756. self::inputMingguanJamRutin($presensi);
  757.  
  758. // input ke mingguan poin rutin
  759. self::inputMingguanPoinRutin($presensi);
  760. }
  761. // cek jam pulang
  762. if($slotjam == 'Pulang') {
  763. Presensi::create($presensi);
  764. $data_terinput = $data_terinput + 1;
  765.  
  766. // input ke kph
  767. self::inputPresensiToKph($presensi, 'Rutin', null, null);
  768.  
  769. // input ke mingguanjam rutin
  770. self::inputMingguanJamRutin($presensi);
  771.  
  772. // input ke mingguan poin rutin
  773. self::inputMingguanPoinRutin($presensi);
  774. }
  775. }
  776.  
  777. // PresensiLog::create($presensilog);
  778.  
  779. // $peringatan = SuratPeringatan::find($id_karyawan);
  780. // $peringatan->tanggal_tap_terakhir = $tanggal_waktu_tap;
  781. // $peringatan->tanggal_awal = $tanggal_waktu_tap;
  782. // $peringatan->save();
  783. }
  784. }
  785. }
  786. }
  787. }
  788. } catch (Exception $e) {
  789. echo $e->message;
  790. }
  791. return response()->json(['status' => 200, 'message' => 'Data Terinput:' . $data_terinput, 'status_presensi' => $status_final]);
  792. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement