Advertisement
vitareinforce

backup latest work, data dobel sudah tereliminasi, hanya terlambat masuknya msh dianggap sama masuk

Feb 19th, 2021
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 83.94 KB | None | 0 0
  1. <?php
  2.  
  3. namespace App\Http\Controllers;
  4.  
  5. use Illuminate\Http\Request;
  6. use Illuminate\Support\Facades\DB;
  7. use App\Presensi;
  8. use App\Karyawan;
  9. use App\SettingPresensi;
  10. use App\SettingPoin;
  11. use App\JadwalHariKerja;
  12. use App\JadwalLibur;
  13. use App\JadwalNgeplus;
  14. use App\JadwalIzin;
  15. use App\ClosingTime;
  16. use App\DatangAwal;
  17. use Carbon\Carbon;
  18. use App\Presensiraw;
  19.  
  20. class MachineController extends Controller
  21. {
  22. public function inputMesin(Request $request)
  23. {
  24. $data_terinput = 0;
  25. $status_final = null;
  26. try {
  27. if (isset($request->message)) {
  28. $data = $request->message;
  29. $row = $data;
  30. $pernah_masuk = 0;
  31. $pernah_istirahat_mulai = 0;
  32. $pernah_istirahat_selesai = 0;
  33. $pernah_pulang = 0;
  34. $karyawan_terdeteksi = null;
  35. $karyawan_terakhir = null;
  36. for ($i = 0; $i < count($row); $i++) {
  37. $id_karyawan = $row[$i]['PIN'][0];
  38. $tanggal_waktu_tap = $row[$i]['DateTime'][0];
  39.  
  40. // $rawdata = array(
  41. // 'pin'=> $id_karyawan,
  42. // 'date_time' => $tanggal_waktu_tap
  43. // );
  44. // Presensiraw::create($rawdata);
  45.  
  46. // if (date('Y-m-d', strtotime($tanggal_waktu_tap)) == "2020-12-15") { // debugging manual
  47. // if (date('Y-m-d', strtotime($tanggal_waktu_tap)) >= date('Y-m-d')) { // real data
  48. $karyawan = Karyawan::find($id_karyawan);
  49. if(isset($karyawan)) {
  50. $jamtap = date('H:i:s', strtotime($tanggal_waktu_tap));
  51. $slotjam = null;
  52. $poin = 0;
  53. $setting_poin = SettingPoin::find(1);
  54. $adajadwal = 0;
  55. $jadwal = null;
  56. $jadwal_terpilih = null;
  57. $status_libur = 0;
  58. $status_izin = 0;
  59.  
  60. // cek jadwal libur dan jadwal izin
  61. $jadwal_libur = JadwalLibur::where('karyawan_id', '=', $id_karyawan)->get();
  62. $jadwal_izin = JadwalIzin::where('karyawan_id', '=', $id_karyawan)->get();
  63.  
  64. for($l = 0; $l < count($jadwal_izin); $l++) {
  65. $mulai_izin = Carbon::parse($jadwal_izin[$l]->tanggal_mulai)->format('Y-m-d');
  66. $selesai_izin = Carbon::parse($jadwal_izin[$l]->tanggal_selesai)->format('Y-m-d');
  67. $tanggal_sekarang = Carbon::parse($tanggal_waktu_tap)->format('Y-m-d');
  68. if(($tanggal_sekarang >= $mulai_izin) && ($tanggal_sekarang <= $selesai_izin)) {
  69. $status_izin = 1;
  70. }
  71. }
  72.  
  73. for($l = 0; $l < count($jadwal_libur); $l++) {
  74. $mulai_libur = Carbon::parse($jadwal_libur[$l]->tanggal_mulai)->format('Y-m-d');
  75. $selesai_libur = Carbon::parse($jadwal_libur[$l]->tanggal_selesai)->format('Y-m-d');
  76. $tanggal_sekarang = Carbon::parse($tanggal_waktu_tap)->format('Y-m-d');
  77. if(($tanggal_sekarang >= $mulai_libur) && ($tanggal_sekarang <= $selesai_libur)) {
  78. $status_libur = 1;
  79. }
  80. }
  81.  
  82. // dd($status_libur == 0 && $status_izin == 0);
  83.  
  84. if($status_libur == 0 && $status_izin == 0) {
  85.  
  86. // ambil jadwal master
  87. $jadwal_id_terpilih = null;
  88.  
  89. if ($karyawan->jadwal_id != null && $karyawan->jadwal_group_id == null) {
  90. $jadwal_id_terpilih = $karyawan->jadwal_id;
  91. // dd("case 1 = jadwal_id");
  92.  
  93. // cek jadwal rutin dulu
  94. $jadwal = JadwalHariKerja::where([
  95. ['karyawan_id', '=', $id_karyawan],
  96. ['source_id', '=', $jadwal_id_terpilih]
  97. ])->first();
  98.  
  99. $hari = Carbon::parse($tanggal_waktu_tap)->format('w');
  100.  
  101. //Pilih jadwal harus mulai dari sini
  102. if(isset($jadwal)) {
  103. if(($hari == 0) && ($jadwal->checkbox_harikerja_minggu)) {
  104. $adajadwal = 1;
  105. }
  106. if(($hari == 1) && ($jadwal->checkbox_harikerja_senin)) {
  107. $adajadwal = 1;
  108. }
  109. if(($hari == 2) && ($jadwal->checkbox_harikerja_selasa)) {
  110. $adajadwal = 1;
  111. }
  112. if(($hari == 3) && ($jadwal->checkbox_harikerja_rabu)) {
  113. $adajadwal = 1;
  114. }
  115. if(($hari == 4) && ($jadwal->checkbox_harikerja_kamis)) {
  116. $adajadwal = 1;
  117. }
  118. if(($hari == 5) && ($jadwal->checkbox_harikerja_jumat)) {
  119. $adajadwal = 1;
  120. }
  121. if(($hari == 6) && ($jadwal->checkbox_harikerja_sabtu)) {
  122. $adajadwal = 1;
  123. }
  124. // dd($jadwal->checkbox_harikerja_jumat);
  125. }
  126.  
  127. if($adajadwal == 1) {
  128. $jadwal_terpilih = $jadwal;
  129. }
  130. }
  131.  
  132. if ($karyawan->jadwal_id == null && $karyawan->jadwal_group_id != null) {
  133. $jadwal_id_terpilih = $karyawan->jadwal_group_id;
  134. // dd("case 2 = jadwal_group_id");
  135.  
  136. // cek jadwal rutin dulu
  137. $jadwal = JadwalHariKerja::where([
  138. ['karyawan_id', '=', $id_karyawan],
  139. ['source_id', '=', $jadwal_id_terpilih]
  140. ])->first();
  141.  
  142. $hari = Carbon::parse($tanggal_waktu_tap)->format('w');
  143.  
  144. //Pilih jadwal harus mulai dari sini
  145. if(isset($jadwal)) {
  146. if(($hari == 0) && ($jadwal->checkbox_harikerja_minggu)) {
  147. $adajadwal = 1;
  148. }
  149. if(($hari == 1) && ($jadwal->checkbox_harikerja_senin)) {
  150. $adajadwal = 1;
  151. }
  152. if(($hari == 2) && ($jadwal->checkbox_harikerja_selasa)) {
  153. $adajadwal = 1;
  154. }
  155. if(($hari == 3) && ($jadwal->checkbox_harikerja_rabu)) {
  156. $adajadwal = 1;
  157. }
  158. if(($hari == 4) && ($jadwal->checkbox_harikerja_kamis)) {
  159. $adajadwal = 1;
  160. }
  161. if(($hari == 5) && ($jadwal->checkbox_harikerja_jumat)) {
  162. $adajadwal = 1;
  163. }
  164. if(($hari == 6) && ($jadwal->checkbox_harikerja_sabtu)) {
  165. $adajadwal = 1;
  166. }
  167. // dd($jadwal->checkbox_harikerja_jumat);
  168. }
  169.  
  170. if($adajadwal == 1) {
  171. $jadwal_terpilih = $jadwal;
  172. }
  173. }
  174.  
  175. if ($karyawan->jadwal_id != null && $karyawan->jadwal_group_id != null) {
  176. $jadwal_id_terpilih = $karyawan->jadwal_id;
  177. // cek jadwal rutin dulu
  178. $jadwal = JadwalHariKerja::where([
  179. ['karyawan_id', '=', $id_karyawan],
  180. ['source_id', '=', $jadwal_id_terpilih]
  181. ])->first();
  182.  
  183. $hari = Carbon::parse($tanggal_waktu_tap)->format('w');
  184.  
  185. //Pilih jadwal harus mulai dari sini
  186. if(isset($jadwal)) {
  187. if(($hari == 0) && ($jadwal->checkbox_harikerja_minggu == 1)) {
  188. $adajadwal = 1;
  189. }
  190. if(($hari == 1) && ($jadwal->checkbox_harikerja_senin == 1)) {
  191. $adajadwal = 1;
  192. }
  193. if(($hari == 2) && ($jadwal->checkbox_harikerja_selasa == 1)) {
  194. $adajadwal = 1;
  195. }
  196. if(($hari == 3) && ($jadwal->checkbox_harikerja_rabu == 1)) {
  197. $adajadwal = 1;
  198. }
  199. if(($hari == 4) && ($jadwal->checkbox_harikerja_kamis == 1)) {
  200. $adajadwal = 1;
  201. }
  202. if(($hari == 5) && ($jadwal->checkbox_harikerja_jumat == 1)) {
  203. $adajadwal = 1;
  204. }
  205. if(($hari == 6) && ($jadwal->checkbox_harikerja_sabtu == 1)) {
  206. $adajadwal = 1;
  207. }
  208. }
  209.  
  210. if($adajadwal == 1) {
  211. $jadwal_terpilih = $jadwal;
  212. }
  213.  
  214. if($adajadwal == 0) {
  215. $jadwal_id_terpilih = $karyawan->jadwal_group_id;
  216.  
  217. $jadwal = JadwalHariKerja::where([
  218. ['karyawan_id', '=', $id_karyawan],
  219. ['source_id', '=', $jadwal_id_terpilih]
  220. ])->first();
  221.  
  222. $jadwal_terpilih = $jadwal;
  223. }
  224. }
  225.  
  226. if(isset($jadwal_terpilih)) {
  227. // dd("masuk sini");
  228. $jam_masuk = $jadwal_terpilih->jam_masuk;
  229. $jam_istirahat_mulai = $jadwal_terpilih->jam_istirahat_mulai;
  230. $jam_istirahat_selesai = $jadwal_terpilih->jam_istirahat_selesai;
  231. $jam_pulang = $jadwal_terpilih->jam_pulang;
  232.  
  233. $setting_presensi = SettingPresensi::find(1);
  234. $closing_time = ClosingTime::find(1);
  235. $datang_awal = DatangAwal::find(1);
  236. $setting_datang_awal = strtotime($datang_awal->datang_awal)-strtotime("00:00:00");
  237. $setting_closing_time = strtotime($closing_time->jangka_waktu)-strtotime("00:00:00");
  238. if(isset($setting_presensi->toleransi_keterlambatan)) {
  239. $toleransi = strtotime($setting_presensi->toleransi_keterlambatan)-strtotime("00:00:00");
  240.  
  241. // dd($jadwal_terpilih);
  242.  
  243. // $max_istirahat_mulai = strtotime($jam_istirahat_selesai)-$toleransi-strtotime("00:00:00");
  244. // $max_istirahat_selesai = strtotime($jam_pulang)-$toleransi-strtotime("00:00:00");
  245.  
  246. $max_istirahat_mulai = strtotime($jam_istirahat_selesai)-$toleransi-strtotime("00:00:00");
  247. $max_istirahat_selesai = strtotime($jam_pulang)-$toleransi-strtotime("00:00:00");
  248.  
  249. $before_jam_masuk = date("H:i:s",strtotime($jam_masuk)-$setting_datang_awal);
  250. $after_jam_masuk = date("H:i:s",strtotime($jam_masuk)+$toleransi);
  251.  
  252. // dd(date("H:i:s",strtotime($jam_istirahat_mulai)+$max_istirahat_mulai));
  253.  
  254. $before_jam_istirahat_mulai = date("H:i:s",strtotime($jam_istirahat_mulai)-$toleransi);
  255. $after_jam_istirahat_mulai = date("H:i:s",strtotime($jam_istirahat_mulai)+$max_istirahat_mulai);
  256.  
  257. $before_jam_istirahat_selesai = date("H:i:s",strtotime($jam_istirahat_selesai)-$toleransi);
  258. $after_jam_istirahat_selesai = date("H:i:s",strtotime($jam_istirahat_selesai)+$max_istirahat_selesai);
  259.  
  260. $before_jam_pulang = date("H:i:s",strtotime($jam_pulang)-$toleransi);
  261. $after_jam_pulang = date("H:i:s",strtotime($jam_pulang)+$setting_closing_time);
  262.  
  263. if(($jamtap > $before_jam_masuk) && ($jamtap < $after_jam_masuk)) {
  264. $slotjam = "Masuk";
  265. $poin = $setting_poin->jam_masuk;
  266. } elseif(($jamtap == $before_jam_masuk) || ($jamtap == $after_jam_masuk)) {
  267. $slotjam = "Masuk";
  268. $poin = $setting_poin->jam_masuk;
  269. }
  270. if(($jamtap > $after_jam_masuk) && ($jamtap < $before_jam_istirahat_mulai)) {
  271. $slotjam = "Terlambat Masuk";
  272. $poin = $setting_poin->jam_masuk;
  273. }
  274. if(($jamtap > $before_jam_istirahat_mulai) && ($jamtap < $before_jam_istirahat_selesai)) {
  275. $slotjam = "Istirahat Mulai";
  276. $poin = $setting_poin->jam_mulai_istirahat;
  277. } elseif(($jamtap == $before_jam_istirahat_mulai)) {
  278. $slotjam = "Istirahat Mulai";
  279. $poin = $setting_poin->jam_mulai_istirahat;
  280. }
  281. if(($jamtap > $before_jam_istirahat_selesai) && ($jamtap < $before_jam_pulang)) {
  282. $slotjam = "Istirahat Selesai";
  283. $poin = $setting_poin->jam_selesai_istirahat;
  284. } elseif(($jamtap == $before_jam_istirahat_selesai)) {
  285. $slotjam = "Istirahat Selesai";
  286. $poin = $setting_poin->jam_selesai_istirahat;
  287. }
  288. if(($jamtap > $before_jam_pulang) && ($jamtap < $after_jam_pulang)) {
  289. $slotjam = "Pulang";
  290. $poin = $setting_poin->jam_keluar;
  291. } elseif(($jamtap == $before_jam_pulang) || ($jamtap == $after_jam_pulang)) {
  292. $slotjam = "Pulang";
  293. $poin = $setting_poin->jam_keluar;
  294. }
  295.  
  296. //-----CASE A-----
  297. if(strtotime($jam_pulang) < strtotime($jam_istirahat_selesai)) {
  298. // dd(strtotime("00:00:00"));
  299. // Jika jam tap < jam 12 malam
  300. if((strtotime($jamtap) < strtotime("24:00:00"))) {
  301.  
  302. //-----CASE 1-----
  303. if((strtotime($jamtap) > strtotime($before_jam_istirahat_selesai)) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($before_jam_pulang)))) {
  304. $slotjam = "Istirahat Selesai";
  305. $poin = $setting_poin->jam_selesai_istirahat;
  306. } elseif(($jamtap == $before_jam_istirahat_selesai)) {
  307. $slotjam = "Istirahat Selesai";
  308. $poin = $setting_poin->jam_selesai_istirahat;
  309. }
  310.  
  311. //-----CASE 2-----
  312. if(strtotime("+24 hours", strtotime($before_jam_pulang)) < strtotime("24:00:00")) {
  313. if(strtotime($jamtap) > strtotime("+24 hours", strtotime($before_jam_pulang)) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($after_jam_pulang)))) {
  314. $slotjam = "Pulang";
  315. $poin = $setting_poin->jam_keluar;
  316. } elseif((strtotime($jamtap) == strtotime("+24 hours", strtotime($before_jam_pulang))) || (strtotime($jamtap) == strtotime("+24 hours", strtotime($after_jam_pulang)))) {
  317. $slotjam = "Pulang";
  318. $poin = $setting_poin->jam_keluar;
  319. }
  320. }
  321.  
  322. }
  323.  
  324. // Jika jam tap >= jam 12 malam
  325. if((strtotime($jamtap) >= strtotime("00:00:00"))) {
  326. // 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)));
  327.  
  328. //-----CASE 3-----
  329. if((strtotime("+24 hours", strtotime($jamtap)) > strtotime($before_jam_istirahat_selesai)) && (strtotime("+24 hours", strtotime($jamtap)) < strtotime("+24 hours", strtotime($before_jam_pulang)))) {
  330. $slotjam = "Istirahat Selesai";
  331. $poin = $setting_poin->jam_selesai_istirahat;
  332. } elseif(($jamtap == $before_jam_istirahat_selesai)) {
  333. $slotjam = "Istirahat Selesai";
  334. $poin = $setting_poin->jam_selesai_istirahat;
  335. }
  336.  
  337. //-----CASE 4-----
  338. if(strtotime("+24 hours", strtotime($before_jam_pulang)) >= strtotime("00:00:00")) {
  339. 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)))) {
  340. $slotjam = "Pulang";
  341. $poin = $setting_poin->jam_keluar;
  342. } elseif((strtotime("+24 hours", strtotime($jamtap)) == strtotime("+24 hours", strtotime($before_jam_pulang))) || (strtotime($jamtap) == strtotime("+24 hours", strtotime($after_jam_pulang)))) {
  343. $slotjam = "Pulang";
  344. $poin = $setting_poin->jam_keluar;
  345. }
  346. }
  347.  
  348. //-----CASE 5-----
  349. if(strtotime("+24 hours", strtotime($before_jam_pulang)) < strtotime("24:00:00")) {
  350. 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)))) {
  351. $slotjam = "Pulang";
  352. $poin = $setting_poin->jam_keluar;
  353. } elseif((strtotime($jamtap) == strtotime($before_jam_pulang)) || (strtotime($jamtap) == strtotime("+24 hours", strtotime($after_jam_pulang)))) {
  354. $slotjam = "Pulang";
  355. $poin = $setting_poin->jam_keluar;
  356. }
  357. }
  358.  
  359. //-----CASE 6-----
  360. if(strtotime($after_jam_pulang) == strtotime("00:00:00")) {
  361. if((strtotime($jamtap) > strtotime($before_jam_pulang)) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($after_jam_pulang)))) {
  362. $slotjam = "Pulang";
  363. $poin = $setting_poin->jam_keluar;
  364. } elseif((strtotime($jamtap) == strtotime($before_jam_pulang)) || (strtotime($jamtap) == strtotime("+24 hours", strtotime($after_jam_pulang)))) {
  365. $slotjam = "Pulang";
  366. $poin = $setting_poin->jam_keluar;
  367. }
  368. }
  369. }
  370. }
  371.  
  372. //-----CASE B-----
  373. if(strtotime($jam_istirahat_selesai) < strtotime($jam_istirahat_mulai)) {
  374. // dd(strtotime("00:00:00"));
  375. // Jika jam tap < jam 12 malam
  376.  
  377. if((strtotime($jamtap) < strtotime("24:00:00"))) {
  378.  
  379. //-----CASE 7-----
  380. if((strtotime($jamtap) > strtotime($before_jam_istirahat_mulai)) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)))) {
  381. $slotjam = "Istirahat Mulai";
  382. $poin = $setting_poin->jam_mulai_istirahat;
  383. } elseif(($jamtap == $before_jam_istirahat_mulai)) {
  384. $slotjam = "Istirahat Mulai";
  385. $poin = $setting_poin->jam_mulai_istirahat;
  386. }
  387.  
  388. //-----CASE 8-----
  389. if(strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)) < strtotime("24:00:00")) {
  390. if(strtotime($jamtap) > strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($before_jam_pulang)))) {
  391. $slotjam = "Istirahat Selesai";
  392. $poin = $setting_poin->jam_selesai_istirahat;
  393. } elseif((strtotime($jamtap) == strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)))) {
  394. $slotjam = "Istirahat Selesai";
  395. $poin = $setting_poin->jam_selesai_istirahat;
  396. }
  397. }
  398.  
  399. }
  400.  
  401. // Jika jam tap >= jam 12 malam
  402. if((strtotime($jamtap) >= strtotime("00:00:00"))) {
  403.  
  404. //-----CASE 9-----
  405. if((strtotime("+24 hours", strtotime($jamtap)) > strtotime($before_jam_istirahat_mulai)) && (strtotime("+24 hours", strtotime($jamtap)) < strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)))) {
  406. $slotjam = "Istirahat Mulai";
  407. $poin = $setting_poin->jam_mulai_istirahat;
  408. } elseif(($jamtap == $before_jam_istirahat_mulai)) {
  409. $slotjam = "Istirahat Mulai";
  410. $poin = $setting_poin->jam_mulai_istirahat;
  411. }
  412.  
  413. //-----CASE 10-----
  414. if(strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)) >= strtotime("00:00:00")) {
  415. 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)))) {
  416. $slotjam = "Istirahat Selesai";
  417. $poin = $setting_poin->jam_selesai_istirahat;
  418. } elseif((strtotime("+24 hours", strtotime($jamtap)) == strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)))) {
  419. $slotjam = "Istirahat Selesai";
  420. $poin = $setting_poin->jam_selesai_istirahat;
  421. }
  422. }
  423.  
  424. //-----CASE 11-----
  425. if(strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)) < strtotime("24:00:00")) {
  426. 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)))) {
  427. $slotjam = "Istirahat Selesai";
  428. $poin = $setting_poin->jam_selesai_istirahat;
  429. } elseif((strtotime($jamtap) == strtotime($before_jam_istirahat_selesai))) {
  430. $slotjam = "Istirahat Selesai";
  431. $poin = $setting_poin->jam_selesai_istirahat;
  432. }
  433. }
  434. }
  435. }
  436.  
  437. //-----CASE C-----
  438. if(strtotime($jam_istirahat_mulai) < strtotime($jam_masuk)) {
  439. // dd(strtotime("00:00:00"));
  440. // Jika jam tap < jam 12 malam
  441.  
  442. if((strtotime($jamtap) < strtotime("24:00:00"))) {
  443.  
  444. //-----CASE 12-----
  445. if((strtotime($jamtap) > strtotime($before_jam_masuk)) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)))) {
  446. $slotjam = "Masuk";
  447. $poin = $setting_poin->jam_masuk;
  448. } elseif(($jamtap == $before_jam_masuk)) {
  449. $slotjam = "Masuk";
  450. $poin = $setting_poin->jam_masuk;
  451. }
  452.  
  453. //-----CASE 13-----
  454. if(strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)) < strtotime("24:00:00")) {
  455. if(strtotime($jamtap) > strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($after_jam_istirahat_selesai)))) {
  456. $slotjam = "Istirahat Mulai";
  457. $poin = $setting_poin->jam_mulai_istirahat;
  458. } elseif((strtotime($jamtap) == strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)))) {
  459. $slotjam = "Istirahat Mulai";
  460. $poin = $setting_poin->jam_mulai_istirahat;
  461. }
  462. }
  463.  
  464. //-----CASE 14-----
  465. if(strtotime($after_jam_masuk) < strtotime("24:00:00")) {
  466. if(strtotime($before_jam_istirahat_mulai) < strtotime("24:00:00")) {
  467. if((strtotime($jamtap) > strtotime($after_jam_masuk)) && (strtotime($jamtap) < strtotime($before_jam_istirahat_mulai))) {
  468. $slotjam = "Terlambat Masuk";
  469. $poin = $setting_poin->jam_masuk;
  470. }
  471. }
  472. }
  473.  
  474. if(strtotime($jam_masuk) == strtotime("00:00:00")) {
  475. //-----CASE 15-----
  476. if(strtotime($before_jam_masuk) < strtotime("00:00:00")) {
  477. if((strtotime($jamtap) > strtotime("+24 hours", strtotime($before_jam_masuk))) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($after_jam_masuk)))) {
  478. $slotjam = "Masuk";
  479. $poin = $setting_poin->jam_masuk;
  480. } elseif((strtotime($jamtap) == strtotime("+24 hours", strtotime($before_jam_masuk)))) {
  481. $slotjam = "Masuk";
  482. $poin = $setting_poin->jam_masuk;
  483. }
  484. }
  485. }
  486. }
  487.  
  488. // Jika jam tap >= jam 12 malam
  489. if((strtotime($jamtap) >= strtotime("00:00:00"))) {
  490. // 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)));
  491.  
  492. //-----CASE 16----
  493. if((strtotime("+24 hours", strtotime($jamtap)) > strtotime($before_jam_masuk)) && (strtotime("+24 hours", strtotime($jamtap)) < strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)))) {
  494. $slotjam = "Masuk";
  495. $poin = $setting_poin->jam_masuk;
  496. } elseif(($jamtap == $before_jam_masuk)) {
  497. $slotjam = "Masuk";
  498. $poin = $setting_poin->jam_masuk;
  499. }
  500.  
  501. //-----CASE 17-----
  502. if(strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)) >= strtotime("00:00:00")) {
  503. 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)))) {
  504. $slotjam = "Istirahat Mulai";
  505. $poin = $setting_poin->jam_mulai_istirahat;
  506. } elseif((strtotime("+24 hours", strtotime($jamtap)) == strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)))) {
  507. $slotjam = "Istirahat Mulai";
  508. $poin = $setting_poin->jam_mulai_istirahat;
  509. }
  510. }
  511.  
  512. //-----CASE 18-----
  513. if(strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)) < strtotime("24:00:00")) {
  514. 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)))) {
  515. $slotjam = "Istirahat Mulai";
  516. $poin = $setting_poin->jam_mulai_istirahat;
  517. } elseif((strtotime($jamtap) == strtotime($before_jam_istirahat_mulai))) {
  518. $slotjam = "Istirahat Mulai";
  519. $poin = $setting_poin->jam_mulai_istirahat;
  520. }
  521. }
  522.  
  523. //-----CASE 19-----
  524. if(strtotime($after_jam_masuk) >= strtotime("00:00:00")) {
  525. if(strtotime($before_jam_istirahat_mulai) >= strtotime("24:00:00")) {
  526. 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)))) {
  527. $slotjam = "Terlambat Masuk";
  528. $poin = $setting_poin->jam_masuk;
  529. }
  530. }
  531. }
  532.  
  533. //-----CASE 20-----
  534. if(strtotime($before_jam_masuk) == strtotime("00:00:00")) {
  535. if((strtotime($jamtap) > strtotime($before_jam_masuk)) && (strtotime($jamtap) < strtotime($before_jam_istirahat_mulai))) {
  536. $slotjam = "Masuk";
  537. $poin = $setting_poin->jam_masuk;
  538. } elseif((strtotime($jamtap) == strtotime($before_jam_masuk)) || (strtotime($jamtap) == strtotime($after_jam_pulang))) {
  539. $slotjam = "Masuk";
  540. $poin = $setting_poin->jam_masuk;
  541. }
  542. }
  543.  
  544. if(strtotime($jam_masuk) == strtotime("00:00:00")) {
  545.  
  546. //-----CASE 21-----
  547. if(strtotime($before_jam_masuk) < strtotime("00:00:00")) {
  548. if((strtotime($jamtap) > strtotime($before_jam_masuk)) && (strtotime($jamtap) < strtotime($before_jam_istirahat_mulai))) {
  549. $slotjam = "Masuk";
  550. $poin = $setting_poin->jam_masuk;
  551. } elseif((strtotime($jamtap) == strtotime($before_jam_istirahat_mulai))) {
  552. $slotjam = "Masuk";
  553. $poin = $setting_poin->jam_masuk;
  554. }
  555. }
  556. }
  557. }
  558. }
  559.  
  560. // dd(strtotime($jamtap) > strtotime("00:00:00"));
  561.  
  562. //-----CASE D-----
  563. if(strtotime($jam_masuk) == strtotime("00:00:00")) {
  564. //-----CASE 22-----
  565. if((strtotime($jamtap) < strtotime("00:00:00")) == false) {
  566. if((strtotime($jamtap) > strtotime("+24 hours", strtotime($before_jam_masuk))) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($after_jam_masuk)))) {
  567. $slotjam = "Masuk";
  568. $poin = $setting_poin->jam_masuk;
  569. } else if((strtotime("+24 hours",strtotime($jamtap)) < strtotime("+24 hours", strtotime($after_jam_masuk)))) {
  570. $slotjam = "Masuk";
  571. $poin = $setting_poin->jam_masuk;
  572. } else if((strtotime($jamtap) == strtotime("+24 hours", strtotime($before_jam_masuk))) || (strtotime($jamtap) == strtotime("+24 hours", strtotime($after_jam_masuk)))) {
  573. $slotjam = "Masuk";
  574. $poin = $setting_poin->jam_masuk;
  575. }
  576. }
  577. }
  578.  
  579. //-----CASE E-----
  580. if(strtotime($jam_pulang) == strtotime("00:00:00")) {
  581. //-----CASE 23-----
  582. if((strtotime($jamtap) < strtotime("00:00:00")) == false) {
  583. if((strtotime($jamtap) > strtotime("+24 hours", strtotime($before_jam_pulang))) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($after_jam_pulang)))) {
  584. $slotjam = "Pulang";
  585. $poin = $setting_poin->jam_keluar;
  586. } else if((strtotime("+24 hours",strtotime($jamtap)) < strtotime("+24 hours", strtotime($after_jam_pulang)))) {
  587. $slotjam = "Pulang";
  588. $poin = $setting_poin->jam_keluar;
  589. } else if((strtotime($jamtap) == strtotime("+24 hours", strtotime($before_jam_pulang))) || (strtotime($jamtap) == strtotime("+24 hours", strtotime($after_jam_pulang)))) {
  590. $slotjam = "Pulang";
  591. $poin = $setting_poin->jam_keluar;
  592. }
  593. }
  594. }
  595.  
  596. // //-----CASE E----- [2nd Concept]
  597. // //-----DD() Section-----
  598. // dd(strtotime($before_jam_masuk) < strtotime("24:00:00"));
  599. // //-----DD() Section-----
  600. // if(strtotime($before_jam_masuk) < strtotime("24:00:00")) {
  601. // if((strtotime($jamtap) > strtotime("24:00:00"))) {
  602. // dd("masuk sini");
  603. // } else {
  604. // dd("masuk sana");
  605. // }
  606. // }
  607. }
  608. } else {
  609. $slotjam = null;
  610. $poin = 0;
  611. }
  612.  
  613. $status_final = $slotjam;
  614. $presensi = array(
  615. 'karyawan_id' => $id_karyawan,
  616. 'group_id' => $karyawan->group_id ? $karyawan->group_id : null,
  617. 'jadwal_id' => $karyawan->jadwal_id ? $karyawan->jadwal_id : null,
  618. 'setting_presensi_id' => 1,
  619. 'tanggal_dan_waktu_tap' => $tanggal_waktu_tap,
  620. 'poin' => $poin,
  621. 'status' => 'Rutin',
  622. 'slotjam' => $slotjam
  623. );
  624.  
  625. $tanggal_terdeteksi = null;
  626. $tanggal_terakhir = null;
  627.  
  628. // cek data presensi sebelumnya
  629. $oldpresensi = Presensi::where([
  630. ['status', '=', 'Rutin'],
  631. ['slotjam', '=', $slotjam],
  632. ['karyawan_id', '=', $id_karyawan],
  633. ])->whereDate('tanggal_dan_waktu_tap', '=', date('Y-m-d', strtotime($tanggal_waktu_tap)))->first();
  634.  
  635. if(isset($oldpresensi)) {
  636. // $oldpresensi->update($presensi);
  637. $data_terinput = $data_terinput + 0;
  638. } else {
  639. // cek jam masuk
  640. if((($slotjam == 'Masuk') || ($slotjam == 'Terlambat Masuk'))) {
  641. Presensi::create($presensi);
  642. $data_terinput = $data_terinput + 1;
  643. }
  644. // cek jam istirahat mulai
  645. if($slotjam == 'Istirahat Mulai') {
  646. Presensi::create($presensi);
  647. $data_terinput = $data_terinput + 1;
  648. }
  649. // cek jam istirahat selesai
  650. if($slotjam == 'Istirahat Selesai') {
  651. Presensi::create($presensi);
  652. $data_terinput = $data_terinput + 1;
  653. }
  654. // cek jam pulang
  655. if($slotjam == 'Pulang') {
  656. Presensi::create($presensi);
  657. $data_terinput = $data_terinput + 1;
  658. }
  659. }
  660. }
  661. }
  662. // }
  663. }
  664. }
  665. } catch (Exception $e) {
  666. echo $e->message;
  667. }
  668. return response()->json(['status' => 200, 'message' => 'Data Terinput:' . $data_terinput, 'status_presensi' => $status_final]);
  669. }
  670.  
  671. public function inputMesinNgePlus(Request $request)
  672. {
  673. $data_terinput = 0;
  674. $status_final = null;
  675. try {
  676. if (isset($request->message)) {
  677. $data = $request->message;
  678. $row = $data;
  679. for ($i = 0; $i < count($row); $i++) {
  680. $id_karyawan = $row[$i]['PIN'][0];
  681. $tanggal_waktu_tap = $row[$i]['DateTime'][0];
  682. // if (date('Y-m-d', strtotime($tanggal_waktu_tap)) == "2020-12-15") { // debugging manual
  683. // if (date('Y-m-d', strtotime($tanggal_waktu_tap)) >= date('Y-m-d')) { // real data
  684. $karyawan = Karyawan::find($id_karyawan);
  685. if(isset($karyawan)) {
  686. $jamtap = date('H:i:s', strtotime($tanggal_waktu_tap));
  687. $slotjam = null;
  688. $poin = 0;
  689. $setting_poin = SettingPoin::find(2);
  690. $adajadwal = 0;
  691. $jadwal = null;
  692. $jadwal_terpilih = null;
  693. $status_izin = 0;
  694.  
  695. //cek jadwal izin
  696. $jadwal_izin = JadwalIzin::where('karyawan_id', '=', $id_karyawan)->get();
  697.  
  698. for($l = 0; $l < count($jadwal_izin); $l++) {
  699. $mulai_izin = Carbon::parse($jadwal_izin[$l]->tanggal_mulai)->format('Y-m-d');
  700. $selesai_izin = Carbon::parse($jadwal_izin[$l]->tanggal_selesai)->format('Y-m-d');
  701. $tanggal_sekarang = Carbon::parse($tanggal_waktu_tap)->format('Y-m-d');
  702. if(($tanggal_sekarang >= $mulai_izin) && ($tanggal_sekarang <= $selesai_izin)) {
  703. $status_izin = 1;
  704. }
  705. }
  706.  
  707. if($status_izin == 0) {
  708. //cek jadwal ngeplus dulu
  709. $jadwal = JadwalNgeplus::where('karyawan_id', '=', $id_karyawan)->get();
  710. for($iz = 0; $iz < count($jadwal); $iz++) {
  711. $tanggal = Carbon::parse($tanggal_waktu_tap)->format('Y-m-d');
  712. $tanggal_mulai = Carbon::parse($jadwal[$iz]->tanggal_mulai)->format('Y-m-d');
  713. $tanggal_selesai = Carbon::parse($jadwal[$iz]->tanggal_selesai)->format('Y-m-d');
  714. $hariini = Carbon::now()->format('Y-m-d');
  715.  
  716. if(($tanggal >= $tanggal_mulai) && ($tanggal <= $tanggal_selesai)) {
  717. $adajadwal = 1;
  718. }
  719. if($jadwal_terpilih == null && $adajadwal == 1) {
  720. $jadwal_terpilih = $jadwal[$i];
  721.  
  722. }
  723. }
  724.  
  725. if(isset($jadwal_terpilih)) {
  726. $jam_masuk = $jadwal_terpilih->jam_masuk;
  727. $jam_istirahat_mulai = $jadwal_terpilih->jam_istirahat_mulai;
  728. $jam_istirahat_selesai = $jadwal_terpilih->jam_istirahat_selesai;
  729. $jam_pulang = $jadwal_terpilih->jam_pulang;
  730.  
  731. $closing_time = ClosingTime::find(1);
  732. $setting_closing_time = strtotime($closing_time->jangka_waktu)-strtotime("00:00:00");
  733. $datang_awal = DatangAwal::find(1);
  734. $setting_datang_awal = strtotime($datang_awal->datang_awal)-strtotime("00:00:00");
  735. $setting_presensi = SettingPresensi::find(1);
  736. if(isset($setting_presensi->toleransi_keterlambatan)) {
  737. $toleransi = strtotime($setting_presensi->toleransi_keterlambatan)-strtotime("00:00:00");
  738.  
  739. $max_istirahat_mulai = strtotime($jam_istirahat_selesai)-$toleransi-strtotime("00:00:00");
  740. $max_istirahat_selesai = strtotime($jam_pulang)-$toleransi-strtotime("00:00:00");
  741.  
  742. $before_jam_masuk = date("H:i:s",strtotime($jam_masuk)-$setting_datang_awal);
  743. $after_jam_masuk = date("H:i:s",strtotime($jam_masuk)+$toleransi);
  744.  
  745. $before_jam_istirahat_mulai = date("H:i:s",strtotime($jam_istirahat_mulai)-$toleransi);
  746. $after_jam_istirahat_mulai = date("H:i:s",strtotime($jam_istirahat_mulai)+$max_istirahat_mulai);
  747.  
  748. $before_jam_istirahat_selesai = date("H:i:s",strtotime($jam_istirahat_selesai)-$toleransi);
  749. $after_jam_istirahat_selesai = date("H:i:s",strtotime($jam_istirahat_selesai)+$max_istirahat_selesai);
  750.  
  751. $before_jam_pulang = date("H:i:s",strtotime($jam_pulang)-$toleransi);
  752. $after_jam_pulang = date("H:i:s",strtotime($jam_pulang)+$setting_closing_time);
  753.  
  754. if(($jamtap > $before_jam_masuk) && ($jamtap < $after_jam_masuk)) {
  755. $slotjam = "Masuk";
  756. $poin = $setting_poin->jam_masuk;
  757. } elseif(($jamtap == $before_jam_masuk) || ($jamtap == $after_jam_masuk)) {
  758. $slotjam = "Masuk";
  759. $poin = $setting_poin->jam_masuk;
  760. }
  761. if(($jamtap > $after_jam_masuk) && ($jamtap < $before_jam_istirahat_mulai)) {
  762. $slotjam = "Terlambat Masuk";
  763. $poin = $setting_poin->jam_masuk;
  764. }
  765. if(($jamtap > $before_jam_istirahat_mulai) && ($jamtap < $before_jam_istirahat_selesai)) {
  766. $slotjam = "Istirahat Mulai";
  767. $poin = $setting_poin->jam_mulai_istirahat;
  768. } elseif(($jamtap == $before_jam_istirahat_mulai)) {
  769. $slotjam = "Istirahat Mulai";
  770. $poin = $setting_poin->jam_mulai_istirahat;
  771. }
  772. if(($jamtap > $before_jam_istirahat_selesai) && ($jamtap < $before_jam_pulang)) {
  773. $slotjam = "Istirahat Selesai";
  774. $poin = $setting_poin->jam_selesai_istirahat;
  775. } elseif(($jamtap == $before_jam_istirahat_selesai)) {
  776. $slotjam = "Istirahat Selesai";
  777. $poin = $setting_poin->jam_selesai_istirahat;
  778. }
  779. if(($jamtap > $before_jam_pulang) && ($jamtap < $after_jam_pulang)) {
  780. $slotjam = "Pulang";
  781. $poin = $setting_poin->jam_keluar;
  782. } elseif(($jamtap == $before_jam_pulang) || ($jamtap == $after_jam_pulang)) {
  783. $slotjam = "Pulang";
  784. $poin = $setting_poin->jam_keluar;
  785. }
  786.  
  787. //-----CASE A-----
  788. if(strtotime($jam_pulang) < strtotime($jam_istirahat_selesai)) {
  789. // dd(strtotime("00:00:00"));
  790. // Jika jam tap < jam 12 malam
  791. if((strtotime($jamtap) < strtotime("24:00:00"))) {
  792.  
  793. //-----CASE 1-----
  794. if((strtotime($jamtap) > strtotime($before_jam_istirahat_selesai)) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($before_jam_pulang)))) {
  795. $slotjam = "Istirahat Selesai";
  796. $poin = $setting_poin->jam_selesai_istirahat;
  797. } elseif(($jamtap == $before_jam_istirahat_selesai)) {
  798. $slotjam = "Istirahat Selesai";
  799. $poin = $setting_poin->jam_selesai_istirahat;
  800. }
  801.  
  802. //-----CASE 2-----
  803. if(strtotime("+24 hours", strtotime($before_jam_pulang)) < strtotime("24:00:00")) {
  804. if(strtotime($jamtap) > strtotime("+24 hours", strtotime($before_jam_pulang)) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($after_jam_pulang)))) {
  805. $slotjam = "Pulang";
  806. $poin = $setting_poin->jam_keluar;
  807. } elseif((strtotime($jamtap) == strtotime("+24 hours", strtotime($before_jam_pulang))) || (strtotime($jamtap) == strtotime("+24 hours", strtotime($after_jam_pulang)))) {
  808. $slotjam = "Pulang";
  809. $poin = $setting_poin->jam_keluar;
  810. }
  811. }
  812.  
  813. }
  814.  
  815. // Jika jam tap >= jam 12 malam
  816. if((strtotime($jamtap) >= strtotime("00:00:00"))) {
  817. // 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)));
  818.  
  819. //-----CASE 3-----
  820. if((strtotime("+24 hours", strtotime($jamtap)) > strtotime($before_jam_istirahat_selesai)) && (strtotime("+24 hours", strtotime($jamtap)) < strtotime("+24 hours", strtotime($before_jam_pulang)))) {
  821. $slotjam = "Istirahat Selesai";
  822. $poin = $setting_poin->jam_selesai_istirahat;
  823. } elseif(($jamtap == $before_jam_istirahat_selesai)) {
  824. $slotjam = "Istirahat Selesai";
  825. $poin = $setting_poin->jam_selesai_istirahat;
  826. }
  827.  
  828. //-----CASE 4-----
  829. if(strtotime("+24 hours", strtotime($before_jam_pulang)) >= strtotime("00:00:00")) {
  830. 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)))) {
  831. $slotjam = "Pulang";
  832. $poin = $setting_poin->jam_keluar;
  833. } elseif((strtotime("+24 hours", strtotime($jamtap)) == strtotime("+24 hours", strtotime($before_jam_pulang))) || (strtotime($jamtap) == strtotime("+24 hours", strtotime($after_jam_pulang)))) {
  834. $slotjam = "Pulang";
  835. $poin = $setting_poin->jam_keluar;
  836. }
  837. }
  838.  
  839. //-----CASE 5-----
  840. if(strtotime("+24 hours", strtotime($before_jam_pulang)) < strtotime("24:00:00")) {
  841. 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)))) {
  842. $slotjam = "Pulang";
  843. $poin = $setting_poin->jam_keluar;
  844. } elseif((strtotime($jamtap) == strtotime($before_jam_pulang)) || (strtotime($jamtap) == strtotime("+24 hours", strtotime($after_jam_pulang)))) {
  845. $slotjam = "Pulang";
  846. $poin = $setting_poin->jam_keluar;
  847. }
  848. }
  849.  
  850. //-----CASE 6-----
  851. if(strtotime($after_jam_pulang) == strtotime("00:00:00")) {
  852. if((strtotime($jamtap) > strtotime($before_jam_pulang)) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($after_jam_pulang)))) {
  853. $slotjam = "Pulang";
  854. $poin = $setting_poin->jam_keluar;
  855. } elseif((strtotime($jamtap) == strtotime($before_jam_pulang)) || (strtotime($jamtap) == strtotime("+24 hours", strtotime($after_jam_pulang)))) {
  856. $slotjam = "Pulang";
  857. $poin = $setting_poin->jam_keluar;
  858. }
  859. }
  860. }
  861. }
  862.  
  863. //-----CASE B-----
  864. if(strtotime($jam_istirahat_selesai) < strtotime($jam_istirahat_mulai)) {
  865. // dd(strtotime("00:00:00"));
  866. // Jika jam tap < jam 12 malam
  867.  
  868. if((strtotime($jamtap) < strtotime("24:00:00"))) {
  869.  
  870. //-----CASE 7-----
  871. if((strtotime($jamtap) > strtotime($before_jam_istirahat_mulai)) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)))) {
  872. $slotjam = "Istirahat Mulai";
  873. $poin = $setting_poin->jam_mulai_istirahat;
  874. } elseif(($jamtap == $before_jam_istirahat_mulai)) {
  875. $slotjam = "Istirahat Mulai";
  876. $poin = $setting_poin->jam_mulai_istirahat;
  877. }
  878.  
  879. //-----CASE 8-----
  880. if(strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)) < strtotime("24:00:00")) {
  881. if(strtotime($jamtap) > strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($before_jam_pulang)))) {
  882. $slotjam = "Istirahat Selesai";
  883. $poin = $setting_poin->jam_selesai_istirahat;
  884. } elseif((strtotime($jamtap) == strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)))) {
  885. $slotjam = "Istirahat Selesai";
  886. $poin = $setting_poin->jam_selesai_istirahat;
  887. }
  888. }
  889.  
  890. }
  891.  
  892. // Jika jam tap >= jam 12 malam
  893. if((strtotime($jamtap) >= strtotime("00:00:00"))) {
  894.  
  895. //-----CASE 9-----
  896. if((strtotime("+24 hours", strtotime($jamtap)) > strtotime($before_jam_istirahat_mulai)) && (strtotime("+24 hours", strtotime($jamtap)) < strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)))) {
  897. $slotjam = "Istirahat Mulai";
  898. $poin = $setting_poin->jam_mulai_istirahat;
  899. } elseif(($jamtap == $before_jam_istirahat_mulai)) {
  900. $slotjam = "Istirahat Mulai";
  901. $poin = $setting_poin->jam_mulai_istirahat;
  902. }
  903.  
  904. //-----CASE 10-----
  905. if(strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)) >= strtotime("00:00:00")) {
  906. 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)))) {
  907. $slotjam = "Istirahat Selesai";
  908. $poin = $setting_poin->jam_selesai_istirahat;
  909. } elseif((strtotime("+24 hours", strtotime($jamtap)) == strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)))) {
  910. $slotjam = "Istirahat Selesai";
  911. $poin = $setting_poin->jam_selesai_istirahat;
  912. }
  913. }
  914.  
  915. //-----CASE 11-----
  916. if(strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)) < strtotime("24:00:00")) {
  917. 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)))) {
  918. $slotjam = "Istirahat Selesai";
  919. $poin = $setting_poin->jam_selesai_istirahat;
  920. } elseif((strtotime($jamtap) == strtotime($before_jam_istirahat_selesai))) {
  921. $slotjam = "Istirahat Selesai";
  922. $poin = $setting_poin->jam_selesai_istirahat;
  923. }
  924. }
  925. }
  926. }
  927.  
  928. //-----CASE C-----
  929. if(strtotime($jam_istirahat_mulai) < strtotime($jam_masuk)) {
  930. // dd(strtotime("00:00:00"));
  931. // Jika jam tap < jam 12 malam
  932.  
  933. if((strtotime($jamtap) < strtotime("24:00:00"))) {
  934.  
  935. //-----CASE 12-----
  936. if((strtotime($jamtap) > strtotime($before_jam_masuk)) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)))) {
  937. $slotjam = "Masuk";
  938. $poin = $setting_poin->jam_masuk;
  939. } elseif(($jamtap == $before_jam_masuk)) {
  940. $slotjam = "Masuk";
  941. $poin = $setting_poin->jam_masuk;
  942. }
  943.  
  944. //-----CASE 13-----
  945. if(strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)) < strtotime("24:00:00")) {
  946. if(strtotime($jamtap) > strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($after_jam_istirahat_selesai)))) {
  947. $slotjam = "Istirahat Mulai";
  948. $poin = $setting_poin->jam_mulai_istirahat;
  949. } elseif((strtotime($jamtap) == strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)))) {
  950. $slotjam = "Istirahat Mulai";
  951. $poin = $setting_poin->jam_mulai_istirahat;
  952. }
  953. }
  954.  
  955. //-----CASE 14-----
  956. if(strtotime($after_jam_masuk) < strtotime("24:00:00")) {
  957. if(strtotime($before_jam_istirahat_mulai) < strtotime("24:00:00")) {
  958. if((strtotime($jamtap) > strtotime($after_jam_masuk)) && (strtotime($jamtap) < strtotime($before_jam_istirahat_mulai))) {
  959. $slotjam = "Terlambat Masuk";
  960. $poin = $setting_poin->jam_masuk;
  961. }
  962. }
  963. }
  964.  
  965. if(strtotime($jam_masuk) == strtotime("00:00:00")) {
  966. //-----CASE 15-----
  967. if(strtotime($before_jam_masuk) < strtotime("00:00:00")) {
  968. if((strtotime($jamtap) > strtotime("+24 hours", strtotime($before_jam_masuk))) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($after_jam_masuk)))) {
  969. $slotjam = "Masuk";
  970. $poin = $setting_poin->jam_masuk;
  971. } elseif((strtotime($jamtap) == strtotime("+24 hours", strtotime($before_jam_masuk)))) {
  972. $slotjam = "Masuk";
  973. $poin = $setting_poin->jam_masuk;
  974. }
  975. }
  976. }
  977. }
  978.  
  979. // Jika jam tap >= jam 12 malam
  980. if((strtotime($jamtap) >= strtotime("00:00:00"))) {
  981. // 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)));
  982.  
  983. //-----CASE 16----
  984. if((strtotime("+24 hours", strtotime($jamtap)) > strtotime($before_jam_masuk)) && (strtotime("+24 hours", strtotime($jamtap)) < strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)))) {
  985. $slotjam = "Masuk";
  986. $poin = $setting_poin->jam_masuk;
  987. } elseif(($jamtap == $before_jam_masuk)) {
  988. $slotjam = "Masuk";
  989. $poin = $setting_poin->jam_masuk;
  990. }
  991.  
  992. //-----CASE 17-----
  993. if(strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)) >= strtotime("00:00:00")) {
  994. 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)))) {
  995. $slotjam = "Istirahat Mulai";
  996. $poin = $setting_poin->jam_mulai_istirahat;
  997. } elseif((strtotime("+24 hours", strtotime($jamtap)) == strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)))) {
  998. $slotjam = "Istirahat Mulai";
  999. $poin = $setting_poin->jam_mulai_istirahat;
  1000. }
  1001. }
  1002.  
  1003. //-----CASE 18-----
  1004. if(strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)) < strtotime("24:00:00")) {
  1005. 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)))) {
  1006. $slotjam = "Istirahat Mulai";
  1007. $poin = $setting_poin->jam_mulai_istirahat;
  1008. } elseif((strtotime($jamtap) == strtotime($before_jam_istirahat_mulai))) {
  1009. $slotjam = "Istirahat Mulai";
  1010. $poin = $setting_poin->jam_mulai_istirahat;
  1011. }
  1012. }
  1013.  
  1014. //-----CASE 19-----
  1015. if(strtotime($after_jam_masuk) >= strtotime("00:00:00")) {
  1016. if(strtotime($before_jam_istirahat_mulai) >= strtotime("24:00:00")) {
  1017. 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)))) {
  1018. $slotjam = "Terlambat Masuk";
  1019. $poin = $setting_poin->jam_masuk;
  1020. }
  1021. }
  1022. }
  1023.  
  1024. //-----CASE 20-----
  1025. if(strtotime($before_jam_masuk) == strtotime("00:00:00")) {
  1026. if((strtotime($jamtap) > strtotime($before_jam_masuk)) && (strtotime($jamtap) < strtotime($before_jam_istirahat_mulai))) {
  1027. $slotjam = "Masuk";
  1028. $poin = $setting_poin->jam_masuk;
  1029. } elseif((strtotime($jamtap) == strtotime($before_jam_masuk)) || (strtotime($jamtap) == strtotime($after_jam_pulang))) {
  1030. $slotjam = "Masuk";
  1031. $poin = $setting_poin->jam_masuk;
  1032. }
  1033. }
  1034.  
  1035. if(strtotime($jam_masuk) == strtotime("00:00:00")) {
  1036.  
  1037. //-----CASE 21-----
  1038. if(strtotime($before_jam_masuk) < strtotime("00:00:00")) {
  1039. if((strtotime($jamtap) > strtotime($before_jam_masuk)) && (strtotime($jamtap) < strtotime($before_jam_istirahat_mulai))) {
  1040. $slotjam = "Masuk";
  1041. $poin = $setting_poin->jam_masuk;
  1042. } elseif((strtotime($jamtap) == strtotime($before_jam_istirahat_mulai))) {
  1043. $slotjam = "Masuk";
  1044. $poin = $setting_poin->jam_masuk;
  1045. }
  1046. }
  1047. }
  1048. }
  1049. }
  1050.  
  1051. //-----CASE D-----
  1052. if(strtotime($jam_masuk) == strtotime("00:00:00")) {
  1053. //-----CASE 22-----
  1054. if((strtotime($jamtap) < strtotime("00:00:00")) == false) {
  1055. if((strtotime($jamtap) > strtotime("+24 hours", strtotime($before_jam_masuk))) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($after_jam_masuk)))) {
  1056. $slotjam = "Masuk";
  1057. $poin = $setting_poin->jam_masuk;
  1058. } else if((strtotime("+24 hours",strtotime($jamtap)) < strtotime("+24 hours", strtotime($after_jam_masuk)))) {
  1059. $slotjam = "Masuk";
  1060. $poin = $setting_poin->jam_masuk;
  1061. } else if((strtotime($jamtap) == strtotime("+24 hours", strtotime($before_jam_masuk))) || (strtotime($jamtap) == strtotime("+24 hours", strtotime($after_jam_masuk)))) {
  1062. $slotjam = "Masuk";
  1063. $poin = $setting_poin->jam_masuk;
  1064. }
  1065. }
  1066. }
  1067.  
  1068. //-----CASE E-----
  1069. if(strtotime($jam_pulang) == strtotime("00:00:00")) {
  1070. //-----CASE 23-----
  1071. if((strtotime($jamtap) < strtotime("00:00:00")) == false) {
  1072. if((strtotime($jamtap) > strtotime("+24 hours", strtotime($before_jam_pulang))) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($after_jam_pulang)))) {
  1073. $slotjam = "Pulang";
  1074. $poin = $setting_poin->jam_keluar;
  1075. } else if((strtotime("+24 hours",strtotime($jamtap)) < strtotime("+24 hours", strtotime($after_jam_pulang)))) {
  1076. $slotjam = "Pulang";
  1077. $poin = $setting_poin->jam_keluar;
  1078. } else if((strtotime($jamtap) == strtotime("+24 hours", strtotime($before_jam_pulang))) || (strtotime($jamtap) == strtotime("+24 hours", strtotime($after_jam_pulang)))) {
  1079. $slotjam = "Pulang";
  1080. $poin = $setting_poin->jam_keluar;
  1081. }
  1082. }
  1083. }
  1084. }
  1085. } else {
  1086. $slotjam = null;
  1087. $poin = 0;
  1088. }
  1089. $status_final = $slotjam;
  1090. $presensi = array(
  1091. 'karyawan_id' => $id_karyawan,
  1092. 'group_id' => $karyawan->group_id ? $karyawan->group_id : null,
  1093. 'jadwal_id' => $karyawan->jadwal_ngeplus_id ? $karyawan->jadwal_ngeplus_id : null,
  1094. 'setting_presensi_id' => 1,
  1095. 'tanggal_dan_waktu_tap' => $tanggal_waktu_tap,
  1096. 'poin' => $poin,
  1097. 'status' => $jadwal_terpilih->status,
  1098. 'slotjam' => $slotjam
  1099. );
  1100.  
  1101. // // cek data presensi sebelumnya
  1102. $oldpresensi = Presensi::where([
  1103. ['status', '=', $jadwal_terpilih->status],
  1104. ['slotjam', '=', $slotjam],
  1105. ['karyawan_id', '=', $id_karyawan],
  1106. ['tanggal_dan_waktu_tap', '=', $tanggal_waktu_tap]
  1107. ])->first();
  1108.  
  1109. if(isset($oldpresensi)) {
  1110. // kalau udah ada, update
  1111. $oldpresensi->update($presensi);
  1112. $data_terinput = $data_terinput + 0;
  1113. } else {
  1114. // kalau tidak ada create
  1115. $data_terinput = $data_terinput + 1;
  1116. Presensi::create($presensi);
  1117. }
  1118.  
  1119. }
  1120. }
  1121. // }
  1122. }
  1123. }
  1124. } catch (Exception $e) {
  1125. echo $e->message;
  1126. }
  1127. return response()->json(['status' => 200, 'message' => 'Data Terinput:' . $data_terinput, 'status_presensi' => $status_final]);
  1128. }
  1129. }
  1130.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement