Advertisement
vitareinforce

generate harian rutin

Dec 17th, 2021
36
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 40.68 KB | None | 0 0
  1. // Fungsi Harian
  2. public function generateKPHRutin($date) {
  3. $jadwal_generate = null;
  4. $jadwal_generate_group = null;
  5.  
  6. $tanggal_saat_ini = Carbon::parse($date);
  7.  
  8. $new_day_date = Carbon::parse($date)->format("Y-m-d 00:00:00");
  9. $karyawan = Karyawan::where('status_karyawan', '!=', 'nonaktif')->get();
  10. $day = Carbon::parse($new_day_date)->format('l');
  11.  
  12. // tambah hari
  13. $hari = null;
  14. switch($day) {
  15. case 'Monday':
  16. $hari = 'Senin';
  17. break;
  18. case 'Tuesday':
  19. $hari = 'Selasa';
  20. break;
  21. case 'Wednesday':
  22. $hari = 'Rabu';
  23. break;
  24. case 'Thursday':
  25. $hari = 'Kamis';
  26. break;
  27. case 'Friday':
  28. $hari = 'Jum at';
  29. break;
  30. case 'Saturday':
  31. $hari = 'Sabtu';
  32. break;
  33. case 'Sunday':
  34. $hari = 'Minggu';
  35. break;
  36. default:
  37. break;
  38. }
  39.  
  40. for($i = 0, $sizeKaryawan = count($karyawan); $i < $sizeKaryawan; $i++) {
  41. if($karyawan[$i]->status_karyawan != 'nonaktif') {
  42. $get_storage = KalkulasiPoinHarian::where('karyawan_id', $karyawan[$i]->id)->where('tanggal_hari_ini', $new_day_date)->first();
  43. if($get_storage == null) {
  44. // set init status izin dan libur
  45. $status_izin = 0;
  46. $status_libur = 0;
  47.  
  48. // cek jadwal libur dan jadwal izin
  49. $jadwal_libur = JadwalLibur::where('karyawan_id', '=', $karyawan[$i]->id)->get();
  50. $jadwal_izin = JadwalIzin::where('karyawan_id', '=', $karyawan[$i]->id)->get();
  51.  
  52. for($l = 0; $l < count($jadwal_izin); $l++) {
  53. $mulai_izin = Carbon::parse($jadwal_izin[$l]->tanggal_mulai)->format('Y-m-d');
  54. $selesai_izin = Carbon::parse($jadwal_izin[$l]->tanggal_selesai)->format('Y-m-d');
  55. $tanggal_sekarang = Carbon::parse($date)->format('Y-m-d');
  56. if(($tanggal_sekarang >= $mulai_izin) && ($tanggal_sekarang <= $selesai_izin)) {
  57. $status_izin = 1;
  58. }
  59. }
  60.  
  61. for($l = 0; $l < count($jadwal_libur); $l++) {
  62. $mulai_libur = Carbon::parse($jadwal_libur[$l]->tanggal_mulai)->format('Y-m-d');
  63. $selesai_libur = Carbon::parse($jadwal_libur[$l]->tanggal_selesai)->format('Y-m-d');
  64. $tanggal_sekarang = Carbon::parse($date)->format('Y-m-d');
  65. if(($tanggal_sekarang >= $mulai_libur) && ($tanggal_sekarang <= $selesai_libur)) {
  66. $status_libur = 1;
  67. }
  68. }
  69.  
  70. /**
  71. * Mengambil jadwal hari kerja non-group
  72. */
  73. $jadwal_rutin = JadwalHariKerja::where('karyawan_id', $karyawan[$i]->id)->where('status', 'rutin')->where(function ($query) use ($day) {
  74. switch($day) {
  75. case 'Monday':
  76. $query->where('checkbox_harikerja_senin', 1);
  77. break;
  78. case 'Tuesday':
  79. $query->where('checkbox_harikerja_selasa', 1);
  80. break;
  81. case 'Wednesday':
  82. $query->where('checkbox_harikerja_rabu', 1);
  83. break;
  84. case 'Thursday':
  85. $query->where('checkbox_harikerja_kamis', 1);
  86. break;
  87. case 'Friday':
  88. $query->where('checkbox_harikerja_jumat', 1);
  89. break;
  90. case 'Saturday':
  91. $query->where('checkbox_harikerja_sabtu', 1);
  92. break;
  93. case 'Sunday':
  94. $query->where('checkbox_harikerja_minggu', 1);
  95. break;
  96. default:
  97. break;
  98. }
  99. })->first();
  100.  
  101. /**
  102. * Mengambil jadwal hari kerja group
  103. */
  104. $jadwal_rutin_group = JadwalHariKerja::where('karyawan_id', $karyawan[$i]->id)->where('status', 'rutin-group')->where(function ($query) use ($day) {
  105. switch($day) {
  106. case 'Monday':
  107. $query->where('checkbox_harikerja_senin', 1);
  108. break;
  109. case 'Tuesday':
  110. $query->where('checkbox_harikerja_selasa', 1);
  111. break;
  112. case 'Wednesday':
  113. $query->where('checkbox_harikerja_rabu', 1);
  114. break;
  115. case 'Thursday':
  116. $query->where('checkbox_harikerja_kamis', 1);
  117. break;
  118. case 'Friday':
  119. $query->where('checkbox_harikerja_jumat', 1);
  120. break;
  121. case 'Saturday':
  122. $query->where('checkbox_harikerja_sabtu', 1);
  123. break;
  124. case 'Sunday':
  125. $query->where('checkbox_harikerja_minggu', 1);
  126. break;
  127. default:
  128. break;
  129. }
  130. })->first();
  131.  
  132. $generate_storage = new KalkulasiPoinHarian();
  133. $generate_storage->karyawan_id = $karyawan[$i]->id;
  134. $generate_storage->nama = $karyawan[$i]->nama;
  135. $generate_storage->group_id = $karyawan[$i]->group_id;
  136. $generate_storage->nama_group = $karyawan[$i]->nik;
  137. $generate_storage->tanggal_hari_ini = $new_day_date;
  138. $generate_storage->kalkulasi_poin_rutin = 0;
  139. $generate_storage->kalkulasi_poin_ngeplus = 0;
  140. $generate_storage->kalkulasi_poin_shift1_extuder = 0;
  141. $generate_storage->kalkulasi_poin_shift2_extuder = 0;
  142. $generate_storage->kalkulasi_poin_shift3_extuder = 0;
  143. $generate_storage->kalkulasi_poin_total_extuder = 0;
  144. $generate_storage->hari = $hari;
  145. $generate_storage->status_hadir = 0;
  146. $generate_storage->status_hadir_extuder_shift1 = 0;
  147. $generate_storage->status_hadir_extuder_shift2 = 0;
  148. $generate_storage->status_hadir_extuder_shift3 = 0;
  149.  
  150. // jika ada libur dan izin
  151. if($status_izin == 0 && $status_libur == 0) {
  152. /**
  153. * Setiap kondisi IF akan mengecek:
  154. * 1. Ketika jadwal untuk karyawan ADA dan jadwal untuk grup TIDAK ADA
  155. * 2. Ketika jadwal untuk karyawan TIDAK ADA dan jadwal untuk grup ADA
  156. * 3. Ketika jadwal untuk karyawan TIDAK ADA dan jadwal untuk grup TIDAK ADA
  157. */
  158. if($jadwal_rutin != null && $jadwal_rutin_group == null) {
  159. $jadwal_master = Jadwal::find($jadwal_rutin->source_id);
  160. $created_at_rutin = Carbon::parse($jadwal_master->created_at);
  161. $tanggal_saat_ini = Carbon::parse($date);
  162. if($tanggal_saat_ini->gte($created_at_rutin)) {
  163. $jadwal_generate = $jadwal_rutin;
  164. $generate_storage->ada_jadwal_rutin = $jadwal_rutin->status;
  165. $generate_storage->tidak_hadir = 1;
  166. $generate_storage->ada_izin = false;
  167. $generate_storage->ada_libur = false;
  168. $generate_storage->source_rutin = $jadwal_rutin->source;
  169. $generate_storage->source_id_rutin = $jadwal_rutin->source_id;
  170. // ini ambil dr jadwal child
  171. if(Carbon::parse($date)->toDateString() <= Carbon::parse($jadwal_rutin->tanggal_jadwal_rutin_diedit_baru)->toDateString()) {
  172. $generate_storage->jam_masuk = $jadwal_rutin->jam_masuk;
  173. $generate_storage->jam_istirahat_mulai = $jadwal_rutin->jam_istirahat_mulai;
  174. $generate_storage->jam_istirahat_selesai = $jadwal_rutin->jam_istirahat_selesai;
  175. $generate_storage->jam_pulang = $jadwal_rutin->jam_pulang;
  176. $generate_storage->checkbox_harikerja_senin = $jadwal_rutin->checkbox_harikerja_senin;
  177. $generate_storage->checkbox_harikerja_selasa = $jadwal_rutin->checkbox_harikerja_selasa;
  178. $generate_storage->checkbox_harikerja_rabu = $jadwal_rutin->checkbox_harikerja_rabu;
  179. $generate_storage->checkbox_harikerja_kamis = $jadwal_rutin->checkbox_harikerja_kamis;
  180. $generate_storage->checkbox_harikerja_jumat = $jadwal_rutin->checkbox_harikerja_jumat;
  181. $generate_storage->checkbox_harikerja_sabtu = $jadwal_rutin->checkbox_harikerja_sabtu;
  182. $generate_storage->checkbox_harikerja_minggu = $jadwal_rutin->checkbox_harikerja_minggu;
  183. // ini ambil dr jadwal child
  184. } else if(Carbon::parse($date)->toDateString() > Carbon::parse($jadwal_rutin->tanggal_jadwal_rutin_diedit_baru)->toDateString()) {
  185. $generate_storage->jam_masuk = $jadwal_rutin->jam_masuk_baru;
  186. $generate_storage->jam_istirahat_mulai = $jadwal_rutin->jam_istirahat_mulai_baru;
  187. $generate_storage->jam_istirahat_selesai = $jadwal_rutin->jam_istirahat_selesai_baru;
  188. $generate_storage->jam_pulang = $jadwal_rutin->jam_pulang_baru;
  189. $generate_storage->checkbox_harikerja_senin = $jadwal_rutin->checkbox_harikerja_senin_baru;
  190. $generate_storage->checkbox_harikerja_selasa = $jadwal_rutin->checkbox_harikerja_selasa_baru;
  191. $generate_storage->checkbox_harikerja_rabu = $jadwal_rutin->checkbox_harikerja_rabu_baru;
  192. $generate_storage->checkbox_harikerja_kamis = $jadwal_rutin->checkbox_harikerja_kamis_baru;
  193. $generate_storage->checkbox_harikerja_jumat = $jadwal_rutin->checkbox_harikerja_jumat_baru;
  194. $generate_storage->checkbox_harikerja_sabtu = $jadwal_rutin->checkbox_harikerja_sabtu_baru;
  195. $generate_storage->checkbox_harikerja_minggu = $jadwal_rutin->checkbox_harikerja_minggu_baru;
  196. }
  197. $generate_storage->save();
  198. }
  199. } else if($jadwal_rutin == null && $jadwal_rutin_group != null) {
  200. $jadwal_master = Jadwal::find($jadwal_rutin_group->source_id);
  201. $created_at_rutin = Carbon::parse($jadwal_master->created_at);
  202. $tanggal_saat_ini = Carbon::parse($date);
  203. if($tanggal_saat_ini->gte($created_at_rutin)) {
  204. $jadwal_generate_group = $jadwal_rutin_group;
  205. $generate_storage->ada_jadwal_rutin = $jadwal_rutin_group->status;
  206. $generate_storage->source_group_rutin = $jadwal_rutin_group->source;
  207. $generate_storage->source_id_group_rutin = $jadwal_rutin_group->source_id;
  208. // ini ambil dr jadwal child
  209. if(Carbon::parse($date)->toDateString() <= Carbon::parse($jadwal_rutin_group->tanggal_jadwal_rutin_diedit_baru)->toDateString()) {
  210. $generate_storage->jam_masuk_group = $jadwal_rutin_group->jam_masuk;
  211. $generate_storage->jam_istirahat_mulai_group = $jadwal_rutin_group->jam_istirahat_mulai;
  212. $generate_storage->jam_istirahat_selesai_group = $jadwal_rutin_group->jam_istirahat_selesai;
  213. $generate_storage->jam_pulang_group = $jadwal_rutin_group->jam_pulang;
  214. $generate_storage->checkbox_harikerja_senin_group = $jadwal_rutin_group->checkbox_harikerja_senin;
  215. $generate_storage->checkbox_harikerja_selasa_group = $jadwal_rutin_group->checkbox_harikerja_selasa;
  216. $generate_storage->checkbox_harikerja_rabu_group = $jadwal_rutin_group->checkbox_harikerja_rabu;
  217. $generate_storage->checkbox_harikerja_kamis_group = $jadwal_rutin_group->checkbox_harikerja_kamis;
  218. $generate_storage->checkbox_harikerja_jumat_group = $jadwal_rutin_group->checkbox_harikerja_jumat;
  219. $generate_storage->checkbox_harikerja_sabtu_group = $jadwal_rutin_group->checkbox_harikerja_sabtu;
  220. $generate_storage->checkbox_harikerja_minggu_group = $jadwal_rutin_group->checkbox_harikerja_minggu;
  221. // ini ambil dr jadwal child
  222. } else if(Carbon::parse($date)->toDateString() > Carbon::parse($jadwal_rutin_group->tanggal_jadwal_rutin_diedit_baru)->toDateString()) {
  223. $generate_storage->jam_masuk_group = $jadwal_rutin_group->jam_masuk_baru;
  224. $generate_storage->jam_istirahat_mulai_group = $jadwal_rutin_group->jam_istirahat_mulai_baru;
  225. $generate_storage->jam_istirahat_selesai_group = $jadwal_rutin_group->jam_istirahat_selesai_baru;
  226. $generate_storage->jam_pulang_group = $jadwal_rutin_group->jam_pulang_baru;
  227. $generate_storage->checkbox_harikerja_senin_group = $jadwal_rutin_group->checkbox_harikerja_senin_baru;
  228. $generate_storage->checkbox_harikerja_selasa_group = $jadwal_rutin_group->checkbox_harikerja_selasa_baru;
  229. $generate_storage->checkbox_harikerja_rabu_group = $jadwal_rutin_group->checkbox_harikerja_rabu_baru;
  230. $generate_storage->checkbox_harikerja_kamis_group = $jadwal_rutin_group->checkbox_harikerja_kamis_baru;
  231. $generate_storage->checkbox_harikerja_jumat_group = $jadwal_rutin_group->checkbox_harikerja_jumat_baru;
  232. $generate_storage->checkbox_harikerja_sabtu_group = $jadwal_rutin_group->checkbox_harikerja_sabtu_baru;
  233. $generate_storage->checkbox_harikerja_minggu_group = $jadwal_rutin_group->checkbox_harikerja_minggu_baru;
  234. }
  235. $generate_storage->tidak_hadir = 1;
  236. $generate_storage->ada_izin = false;
  237. $generate_storage->ada_libur = false;
  238. $generate_storage->save();
  239. }
  240. } else if($jadwal_rutin != null && $jadwal_rutin_group != null) {
  241. $created_at_rutin = Carbon::parse($jadwal_rutin->created_at);
  242. $tanggal_saat_ini = Carbon::parse($date);
  243. if($tanggal_saat_ini->gte($created_at_rutin)) {
  244. $jadwal_generate = $jadwal_rutin;
  245. $generate_storage->ada_jadwal_rutin = $jadwal_rutin->status;
  246. $generate_storage->tidak_hadir = 1;
  247. $generate_storage->ada_izin = false;
  248. $generate_storage->ada_libur = false;
  249. $generate_storage->source_rutin = $jadwal_rutin->source;
  250. $generate_storage->source_id_rutin = $jadwal_rutin->source_id;
  251. // ini ambil dr jadwal child
  252. if(Carbon::parse($date)->toDateString() <= Carbon::parse($jadwal_rutin->tanggal_jadwal_rutin_diedit_baru)->toDateString()) {
  253. $generate_storage->jam_masuk = $jadwal_rutin->jam_masuk;
  254. $generate_storage->jam_istirahat_mulai = $jadwal_rutin->jam_istirahat_mulai;
  255. $generate_storage->jam_istirahat_selesai = $jadwal_rutin->jam_istirahat_selesai;
  256. $generate_storage->jam_pulang = $jadwal_rutin->jam_pulang;
  257. $generate_storage->checkbox_harikerja_senin = $jadwal_rutin->checkbox_harikerja_senin;
  258. $generate_storage->checkbox_harikerja_selasa = $jadwal_rutin->checkbox_harikerja_selasa;
  259. $generate_storage->checkbox_harikerja_rabu = $jadwal_rutin->checkbox_harikerja_rabu;
  260. $generate_storage->checkbox_harikerja_kamis = $jadwal_rutin->checkbox_harikerja_kamis;
  261. $generate_storage->checkbox_harikerja_jumat = $jadwal_rutin->checkbox_harikerja_jumat;
  262. $generate_storage->checkbox_harikerja_sabtu = $jadwal_rutin->checkbox_harikerja_sabtu;
  263. $generate_storage->checkbox_harikerja_minggu = $jadwal_rutin->checkbox_harikerja_minggu;
  264. // ini ambil dr jadwal child
  265. } else if(Carbon::parse($date)->toDateString() > Carbon::parse($jadwal_rutin->tanggal_jadwal_rutin_diedit_baru)->toDateString()) {
  266. $generate_storage->jam_masuk = $jadwal_rutin->jam_masuk_baru;
  267. $generate_storage->jam_istirahat_mulai = $jadwal_rutin->jam_istirahat_mulai_baru;
  268. $generate_storage->jam_istirahat_selesai = $jadwal_rutin->jam_istirahat_selesai_baru;
  269. $generate_storage->jam_pulang = $jadwal_rutin->jam_pulang_baru;
  270. $generate_storage->checkbox_harikerja_senin = $jadwal_rutin->checkbox_harikerja_senin_baru;
  271. $generate_storage->checkbox_harikerja_selasa = $jadwal_rutin->checkbox_harikerja_selasa_baru;
  272. $generate_storage->checkbox_harikerja_rabu = $jadwal_rutin->checkbox_harikerja_rabu_baru;
  273. $generate_storage->checkbox_harikerja_kamis = $jadwal_rutin->checkbox_harikerja_kamis_baru;
  274. $generate_storage->checkbox_harikerja_jumat = $jadwal_rutin->checkbox_harikerja_jumat_baru;
  275. $generate_storage->checkbox_harikerja_sabtu = $jadwal_rutin->checkbox_harikerja_sabtu_baru;
  276. $generate_storage->checkbox_harikerja_minggu = $jadwal_rutin->checkbox_harikerja_minggu_baru;
  277. }
  278. $generate_storage->save();
  279. }
  280. }
  281. // jika ada jadwal izin dan libur
  282. } else {
  283. $generate_storage->ada_jadwal_rutin = null;
  284. $generate_storage->tidak_hadir = 0;
  285.  
  286. /**
  287. * Cek status izin
  288. */
  289. if($status_izin == 1) {
  290. $generate_storage->ada_izin = true;
  291. } else {
  292. $generate_storage->ada_izin = false;
  293. }
  294. /**
  295. * Cek status libur
  296. */
  297. if($status_libur == 1) {
  298. $generate_storage->ada_libur = true;
  299. } else {
  300. $generate_storage->ada_libur = false;
  301. }
  302.  
  303. $generate_storage->status_extuder_shift1 = null;
  304. $generate_storage->status_extuder_shift2 = null;
  305. $generate_storage->status_extuder_shift3 = null;
  306. $generate_storage->tidak_hadir_extuder_shift1 = 0;
  307. $generate_storage->tidak_hadir_extuder_shift2 = 0;
  308. $generate_storage->tidak_hadir_extuder_shift3 = 0;
  309. $generate_storage->save();
  310. }
  311. } else if($get_storage != null) {
  312.  
  313. // set init status izin dan libur
  314. $status_izin = 0;
  315. $status_libur = 0;
  316.  
  317. // cek jadwal libur dan jadwal izin
  318. $jadwal_libur = JadwalLibur::where('karyawan_id', '=', $karyawan[$i]->id)->get();
  319. $jadwal_izin = JadwalIzin::where('karyawan_id', '=', $karyawan[$i]->id)->get();
  320.  
  321. for($l = 0; $l < count($jadwal_izin); $l++) {
  322. $mulai_izin = Carbon::parse($jadwal_izin[$l]->tanggal_mulai)->format('Y-m-d');
  323. $selesai_izin = Carbon::parse($jadwal_izin[$l]->tanggal_selesai)->format('Y-m-d');
  324. $tanggal_sekarang = Carbon::parse($date)->format('Y-m-d');
  325. if(($tanggal_sekarang >= $mulai_izin) && ($tanggal_sekarang <= $selesai_izin)) {
  326. $status_izin = 1;
  327. }
  328. }
  329.  
  330. for($l = 0; $l < count($jadwal_libur); $l++) {
  331. $mulai_libur = Carbon::parse($jadwal_libur[$l]->tanggal_mulai)->format('Y-m-d');
  332. $selesai_libur = Carbon::parse($jadwal_libur[$l]->tanggal_selesai)->format('Y-m-d');
  333. $tanggal_sekarang = Carbon::parse($date)->format('Y-m-d');
  334. if(($tanggal_sekarang >= $mulai_libur) && ($tanggal_sekarang <= $selesai_libur)) {
  335. $status_libur = 1;
  336. }
  337. }
  338.  
  339. // ambil jadwal rutin
  340. $jadwal_rutin = JadwalHariKerja::where('karyawan_id', $karyawan[$i]->id)->where('status', 'rutin')->where(function ($query) use ($day) {
  341. switch($day) {
  342. case 'Monday':
  343. $query->where('checkbox_harikerja_senin', 1);
  344. break;
  345. case 'Tuesday':
  346. $query->where('checkbox_harikerja_selasa', 1);
  347. break;
  348. case 'Wednesday':
  349. $query->where('checkbox_harikerja_rabu', 1);
  350. break;
  351. case 'Thursday':
  352. $query->where('checkbox_harikerja_kamis', 1);
  353. break;
  354. case 'Friday':
  355. $query->where('checkbox_harikerja_jumat', 1);
  356. break;
  357. case 'Saturday':
  358. $query->where('checkbox_harikerja_sabtu', 1);
  359. break;
  360. case 'Sunday':
  361. $query->where('checkbox_harikerja_minggu', 1);
  362. break;
  363. default:
  364. break;
  365. }
  366. })->first();
  367.  
  368. // ambil jadwal group
  369. $jadwal_rutin_group = JadwalHariKerja::where('karyawan_id', $karyawan[$i]->id)->where('status', 'rutin-group')->where(function ($query) use ($day) {
  370. switch($day) {
  371. case 'Monday':
  372. $query->where('checkbox_harikerja_senin', 1);
  373. break;
  374. case 'Tuesday':
  375. $query->where('checkbox_harikerja_selasa', 1);
  376. break;
  377. case 'Wednesday':
  378. $query->where('checkbox_harikerja_rabu', 1);
  379. break;
  380. case 'Thursday':
  381. $query->where('checkbox_harikerja_kamis', 1);
  382. break;
  383. case 'Friday':
  384. $query->where('checkbox_harikerja_jumat', 1);
  385. break;
  386. case 'Saturday':
  387. $query->where('checkbox_harikerja_sabtu', 1);
  388. break;
  389. case 'Sunday':
  390. $query->where('checkbox_harikerja_minggu', 1);
  391. break;
  392. default:
  393. break;
  394. }
  395. })->first();
  396.  
  397. $generate_storage = KalkulasiPoinHarian::where('karyawan_id', $karyawan[$i]->id)->where('tanggal_hari_ini', $new_day_date)->first();
  398. $generate_storage->karyawan_id = $karyawan[$i]->id;
  399. $generate_storage->nama = $karyawan[$i]->nama;
  400. $generate_storage->group_id = $karyawan[$i]->group_id;
  401. $generate_storage->nama_group = $karyawan[$i]->nik;
  402. $generate_storage->tanggal_hari_ini = $new_day_date;
  403. // $generate_storage->kalkulasi_poin_rutin = 0;
  404. // $generate_storage->kalkulasi_poin_ngeplus = 0;
  405. // $generate_storage->kalkulasi_poin_shift1_extuder = 0;
  406. // $generate_storage->kalkulasi_poin_shift2_extuder = 0;
  407. // $generate_storage->kalkulasi_poin_shift3_extuder = 0;
  408. // $generate_storage->kalkulasi_poin_total_extuder = 0;
  409. $generate_storage->hari = $hari;
  410. // $generate_storage->status_hadir = 0;
  411. // $generate_storage->status_hadir_extuder_shift1 = 0;
  412. // $generate_storage->status_hadir_extuder_shift2 = 0;
  413. // $generate_storage->status_hadir_extuder_shift3 = 0;
  414.  
  415. if($status_izin == 0 && $status_libur == 0) {
  416. /**
  417. * Setiap kondisi IF akan mengecek:
  418. * 1. Ketika jadwal untuk karyawan ADA dan jadwal untuk grup TIDAK ADA
  419. * 2. Ketika jadwal untuk karyawan TIDAK ADA dan jadwal untuk grup ADA
  420. * 3. Ketika jadwal untuk karyawan TIDAK ADA dan jadwal untuk grup TIDAK ADA
  421. */
  422. if($jadwal_rutin != null && $jadwal_rutin_group == null) {
  423. $created_at_rutin = Carbon::parse($jadwal_rutin->created_at);
  424. $tanggal_saat_ini = Carbon::parse($date);
  425. if($tanggal_saat_ini->gte($created_at_rutin)) {
  426. $jadwal_generate = $jadwal_rutin;
  427. $generate_storage->ada_jadwal_rutin = $jadwal_rutin->status;
  428. $generate_storage->tidak_hadir = 1;
  429. $generate_storage->ada_izin = false;
  430. $generate_storage->ada_libur = false;
  431. if($karyawan[$i]->tanggal_jadwal_rutin_diedit == null || Carbon::parse($date)->toDateString() <= Carbon::parse($karyawan[$i]->tanggal_jadwal_rutin_diedit)->toDateString()) {
  432. $generate_storage->jam_masuk = $jadwal_rutin->jam_masuk;
  433. $generate_storage->jam_istirahat_mulai = $jadwal_rutin->jam_istirahat_mulai;
  434. $generate_storage->jam_istirahat_selesai = $jadwal_rutin->jam_istirahat_selesai;
  435. $generate_storage->jam_pulang = $jadwal_rutin->jam_pulang;
  436. $generate_storage->checkbox_harikerja_senin = $jadwal_rutin->checkbox_harikerja_senin;
  437. $generate_storage->checkbox_harikerja_selasa = $jadwal_rutin->checkbox_harikerja_selasa;
  438. $generate_storage->checkbox_harikerja_rabu = $jadwal_rutin->checkbox_harikerja_rabu;
  439. $generate_storage->checkbox_harikerja_kamis = $jadwal_rutin->checkbox_harikerja_kamis;
  440. $generate_storage->checkbox_harikerja_jumat = $jadwal_rutin->checkbox_harikerja_jumat;
  441. $generate_storage->checkbox_harikerja_sabtu = $jadwal_rutin->checkbox_harikerja_sabtu;
  442. $generate_storage->checkbox_harikerja_minggu = $jadwal_rutin->checkbox_harikerja_minggu;
  443. } else if(Carbon::parse($date)->toDateString() > Carbon::parse($karyawan[$i]->tanggal_jadwal_diedit)->toDateString()) {
  444. $generate_storage->jam_masuk = $jadwal_rutin->jam_masuk_baru;
  445. $generate_storage->jam_istirahat_mulai = $jadwal_rutin->jam_istirahat_mulai_baru;
  446. $generate_storage->jam_istirahat_selesai = $jadwal_rutin->jam_istirahat_selesai_baru;
  447. $generate_storage->jam_pulang = $jadwal_rutin->jam_pulang_baru;
  448. $generate_storage->checkbox_harikerja_senin = $jadwal_rutin->checkbox_harikerja_senin_baru;
  449. $generate_storage->checkbox_harikerja_selasa = $jadwal_rutin->checkbox_harikerja_selasa_baru;
  450. $generate_storage->checkbox_harikerja_rabu = $jadwal_rutin->checkbox_harikerja_rabu_baru;
  451. $generate_storage->checkbox_harikerja_kamis = $jadwal_rutin->checkbox_harikerja_kamis_baru;
  452. $generate_storage->checkbox_harikerja_jumat = $jadwal_rutin->checkbox_harikerja_jumat_baru;
  453. $generate_storage->checkbox_harikerja_sabtu = $jadwal_rutin->checkbox_harikerja_sabtu_baru;
  454. $generate_storage->checkbox_harikerja_minggu = $jadwal_rutin->checkbox_harikerja_minggu_baru;
  455. }
  456. $generate_storage->save();
  457. }
  458. } else if($jadwal_rutin == null && $jadwal_rutin_group != null) {
  459. $created_at_rutin = Carbon::parse($jadwal_rutin_group->created_at);
  460. $tanggal_saat_ini = Carbon::parse($date);
  461. if($tanggal_saat_ini->gte($created_at_rutin)) {
  462. $jadwal_generate_group = $jadwal_rutin_group;
  463. $generate_storage->ada_jadwal_rutin = $jadwal_rutin_group->status;
  464. if($karyawan[$i]->tanggal_jadwal_rutin_diedit == null || Carbon::parse($date)->toDateString() <= Carbon::parse($karyawan[$i]->tanggal_jadwal_rutin_diedit)->toDateString()) {
  465. $generate_storage->jam_masuk_group = $jadwal_rutin_group->jam_masuk;
  466. $generate_storage->jam_istirahat_mulai_group = $jadwal_rutin_group->jam_istirahat_mulai;
  467. $generate_storage->jam_istirahat_selesai_group = $jadwal_rutin_group->jam_istirahat_selesai;
  468. $generate_storage->jam_pulang_group = $jadwal_rutin_group->jam_pulang;
  469. $generate_storage->checkbox_harikerja_senin_group = $jadwal_rutin_group->checkbox_harikerja_senin;
  470. $generate_storage->checkbox_harikerja_selasa_group = $jadwal_rutin_group->checkbox_harikerja_selasa;
  471. $generate_storage->checkbox_harikerja_rabu_group = $jadwal_rutin_group->checkbox_harikerja_rabu;
  472. $generate_storage->checkbox_harikerja_kamis_group = $jadwal_rutin_group->checkbox_harikerja_kamis;
  473. $generate_storage->checkbox_harikerja_jumat_group = $jadwal_rutin_group->checkbox_harikerja_jumat;
  474. $generate_storage->checkbox_harikerja_sabtu_group = $jadwal_rutin_group->checkbox_harikerja_sabtu;
  475. $generate_storage->checkbox_harikerja_minggu_group = $jadwal_rutin_group->checkbox_harikerja_minggu;
  476. } else if(Carbon::parse($date)->toDateString() > Carbon::parse($karyawan[$i]->tanggal_jadwal_diedit)->toDateString()) {
  477. $generate_storage->jam_masuk_group = $jadwal_rutin_group->jam_masuk_baru;
  478. $generate_storage->jam_istirahat_mulai_group = $jadwal_rutin_group->jam_istirahat_mulai_baru;
  479. $generate_storage->jam_istirahat_selesai_group = $jadwal_rutin_group->jam_istirahat_selesai_baru;
  480. $generate_storage->jam_pulang_group = $jadwal_rutin_group->jam_pulang_baru;
  481. $generate_storage->checkbox_harikerja_senin_group = $jadwal_rutin_group->checkbox_harikerja_senin_baru;
  482. $generate_storage->checkbox_harikerja_selasa_group = $jadwal_rutin_group->checkbox_harikerja_selasa_baru;
  483. $generate_storage->checkbox_harikerja_rabu_group = $jadwal_rutin_group->checkbox_harikerja_rabu_baru;
  484. $generate_storage->checkbox_harikerja_kamis_group = $jadwal_rutin_group->checkbox_harikerja_kamis_baru;
  485. $generate_storage->checkbox_harikerja_jumat_group = $jadwal_rutin_group->checkbox_harikerja_jumat_baru;
  486. $generate_storage->checkbox_harikerja_sabtu_group = $jadwal_rutin_group->checkbox_harikerja_sabtu_baru;
  487. $generate_storage->checkbox_harikerja_minggu_group = $jadwal_rutin_group->checkbox_harikerja_minggu_baru;
  488. }
  489. $generate_storage->tidak_hadir = 1;
  490. $generate_storage->ada_izin = false;
  491. $generate_storage->ada_libur = false;
  492. $generate_storage->save();
  493. }
  494. } else if($jadwal_rutin != null && $jadwal_rutin_group != null) {
  495. $created_at_rutin = Carbon::parse($jadwal_rutin->created_at);
  496. $tanggal_saat_ini = Carbon::parse($date);
  497. if($tanggal_saat_ini->gte($created_at_rutin)) {
  498. $jadwal_generate = $jadwal_rutin;
  499. $generate_storage->ada_jadwal_rutin = $jadwal_rutin->status;
  500. $generate_storage->tidak_hadir = 1;
  501. $generate_storage->ada_izin = false;
  502. $generate_storage->ada_libur = false;
  503. if($karyawan[$i]->tanggal_jadwal_rutin_diedit == null || Carbon::parse($date)->toDateString() <= Carbon::parse($karyawan[$i]->tanggal_jadwal_rutin_diedit)->toDateString()) {
  504. $generate_storage->jam_masuk = $jadwal_rutin->jam_masuk;
  505. $generate_storage->jam_istirahat_mulai = $jadwal_rutin->jam_istirahat_mulai;
  506. $generate_storage->jam_istirahat_selesai = $jadwal_rutin->jam_istirahat_selesai;
  507. $generate_storage->jam_pulang = $jadwal_rutin->jam_pulang;
  508. $generate_storage->checkbox_harikerja_senin = $jadwal_rutin->checkbox_harikerja_senin;
  509. $generate_storage->checkbox_harikerja_selasa = $jadwal_rutin->checkbox_harikerja_selasa;
  510. $generate_storage->checkbox_harikerja_rabu = $jadwal_rutin->checkbox_harikerja_rabu;
  511. $generate_storage->checkbox_harikerja_kamis = $jadwal_rutin->checkbox_harikerja_kamis;
  512. $generate_storage->checkbox_harikerja_jumat = $jadwal_rutin->checkbox_harikerja_jumat;
  513. $generate_storage->checkbox_harikerja_sabtu = $jadwal_rutin->checkbox_harikerja_sabtu;
  514. $generate_storage->checkbox_harikerja_minggu = $jadwal_rutin->checkbox_harikerja_minggu;
  515. } else if(Carbon::parse($date)->toDateString() > Carbon::parse($karyawan[$i]->tanggal_jadwal_diedit)->toDateString()) {
  516. $generate_storage->jam_masuk = $jadwal_rutin->jam_masuk_baru;
  517. $generate_storage->jam_istirahat_mulai = $jadwal_rutin->jam_istirahat_mulai_baru;
  518. $generate_storage->jam_istirahat_selesai = $jadwal_rutin->jam_istirahat_selesai_baru;
  519. $generate_storage->jam_pulang = $jadwal_rutin->jam_pulang_baru;
  520. $generate_storage->checkbox_harikerja_senin = $jadwal_rutin->checkbox_harikerja_senin_baru;
  521. $generate_storage->checkbox_harikerja_selasa = $jadwal_rutin->checkbox_harikerja_selasa_baru;
  522. $generate_storage->checkbox_harikerja_rabu = $jadwal_rutin->checkbox_harikerja_rabu_baru;
  523. $generate_storage->checkbox_harikerja_kamis = $jadwal_rutin->checkbox_harikerja_kamis_baru;
  524. $generate_storage->checkbox_harikerja_jumat = $jadwal_rutin->checkbox_harikerja_jumat_baru;
  525. $generate_storage->checkbox_harikerja_sabtu = $jadwal_rutin->checkbox_harikerja_sabtu_baru;
  526. $generate_storage->checkbox_harikerja_minggu = $jadwal_rutin->checkbox_harikerja_minggu_baru;
  527. }
  528. $generate_storage->save();
  529. }
  530. }
  531. // jika ada jadwal izin dan libur
  532. } else {
  533.  
  534. $generate_storage->ada_jadwal_rutin = null;
  535. $generate_storage->tidak_hadir = 0;
  536. if($status_izin == 1) {
  537. $generate_storage->ada_izin = true;
  538. } else if($status_libur == 1) {
  539. $generate_storage->ada_libur = true;
  540. }
  541. $generate_storage->status_extuder_shift1 = null;
  542. $generate_storage->status_extuder_shift2 = null;
  543. $generate_storage->status_extuder_shift3 = null;
  544. $generate_storage->tidak_hadir_extuder_shift1 = 0;
  545. $generate_storage->tidak_hadir_extuder_shift2 = 0;
  546. $generate_storage->tidak_hadir_extuder_shift3 = 0;
  547. $generate_storage->save();
  548. }
  549. }
  550. }
  551. }
  552. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement