Advertisement
vitareinforce

locktapbackupfakhry

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