Advertisement
vitareinforce

generate extuder lama

Dec 3rd, 2021
38
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.20 KB | None | 0 0
  1. public function generateKPHExtuder($date) {
  2.  
  3. // ambil jadwal extuder
  4. $jadwal_extuder = JadwalHariKerjaExtuder::all();
  5. $status_izin = 0;
  6. foreach($jadwal_extuder as $extuder) {
  7.  
  8. $status_boleh_ngetap = 0;
  9.  
  10. // cek tanggal boleh tap
  11. if($extuder->tanggal_boleh_tap != null) {
  12. $jadwal_hari_ini = $extuder->tanggal_boleh_tap;
  13. $jadwal_besok = Carbon::parse($extuder->tanggal_boleh_tap)->add(1, 'day')->format('Y-m-d');
  14. $jadwal_lusa = $extuder->tanggal_boleh_tap_selanjutnya;
  15.  
  16. // cek tanggal tap
  17. if($date == $jadwal_hari_ini) {
  18. // boleh masuk presensi
  19. $status_boleh_ngetap = 1;
  20. } else if($date == $jadwal_besok) {
  21. // skip / tidak dibolehkan masuk
  22. $status_boleh_ngetap = 0;
  23. } else if($date == $jadwal_lusa) {
  24. // boleh masuk presensi dan update jadwalnya
  25. $status_boleh_ngetap = 1;
  26. // update tanggal
  27. $extuder->tanggal_boleh_tap = $jadwal_lusa;
  28. $extuder->tanggal_boleh_tap_selanjutnya = Carbon::parse($jadwal_lusa)->add(2, 'day')->format('Y-m-d');
  29. $extuder->save();
  30. } else if($date > $jadwal_lusa) {
  31. // cek berapa jarak hari dari jadwal lusa
  32. $jarak_hari = Carbon::parse($jadwal_lusa)->diffInDays(Carbon::parse($date));
  33. // cek jarak genap dan ganjil
  34. if($jarak_hari % 2 == 0) {
  35. // genap boleh ngetap
  36. $status_boleh_ngetap = 1;
  37. $jadwal_hari_ini = Carbon::parse($date)->toDateString();
  38. $jadwal_lusa = Carbon::parse($date)->add(2, 'day')->toDateString();
  39.  
  40. // update jadwal
  41. $extuder->tanggal_boleh_tap = $jadwal_hari_ini;
  42. $extuder->tanggal_boleh_tap_selanjutnya = $jadwal_lusa;
  43. $extuder->save();
  44. } else {
  45. // ganjil tidak boleh ngetap
  46. $status_boleh_ngetap = 0;
  47. }
  48. }
  49. } else {
  50. $jadwal_hari_ini = Carbon::parse($date)->toDateString();
  51. $jadwal_lusa = Carbon::parse($date)->add(2, 'day')->toDateString();
  52.  
  53. $extuder->tanggal_boleh_tap = $jadwal_hari_ini;
  54. $extuder->tanggal_boleh_tap_selanjutnya = $jadwal_lusa;
  55. $extuder->save();
  56.  
  57. $status_boleh_ngetap = 1;
  58. }
  59.  
  60.  
  61. $day = Carbon::parse($date)->format('l');
  62. $hari = null;
  63. switch($day) {
  64. case "Monday":
  65. $hari = "Senin";
  66. break;
  67. case "Tuesday":
  68. $hari = "Selasa";
  69. break;
  70. case "Wednesday":
  71. $hari = "Rabu";
  72. break;
  73. case "Thursday":
  74. $hari = "Kamis";
  75. break;
  76. case "Friday":
  77. $hari = "Jum at";
  78. break;
  79. case "Saturday":
  80. $hari = "Sabtu";
  81. break;
  82. case "Sunday":
  83. $hari = "Minggu";
  84. break;
  85. default:
  86. break;
  87. }
  88.  
  89. $karyawan_input = Karyawan::find($extuder->karyawan_id);
  90.  
  91. // set init status izin dan libur
  92. $status_izin = 0;
  93. $status_libur = 0;
  94.  
  95. if(isset($karyawan_input->id)) {
  96. // cek jadwal libur dan jadwal izin
  97. $jadwal_libur = JadwalLibur::where('karyawan_id', '=', $karyawan_input->id)->get();
  98. $jadwal_izin = JadwalIzin::where('karyawan_id', '=', $karyawan_input->id)->get();
  99.  
  100. for($l = 0; $l < count($jadwal_izin); $l++) {
  101. $mulai_izin = Carbon::parse($jadwal_izin[$l]->tanggal_mulai)->format('Y-m-d');
  102. $selesai_izin = Carbon::parse($jadwal_izin[$l]->tanggal_selesai)->format('Y-m-d');
  103. $tanggal_sekarang = Carbon::parse($date)->format('Y-m-d');
  104. if(($tanggal_sekarang >= $mulai_izin) && ($tanggal_sekarang <= $selesai_izin)) {
  105. $status_izin = 1;
  106. }
  107. }
  108.  
  109. for($l = 0; $l < count($jadwal_libur); $l++) {
  110. $mulai_libur = Carbon::parse($jadwal_libur[$l]->tanggal_mulai)->format('Y-m-d');
  111. $selesai_libur = Carbon::parse($jadwal_libur[$l]->tanggal_selesai)->format('Y-m-d');
  112. $tanggal_sekarang = Carbon::parse($date)->format('Y-m-d');
  113. if(($tanggal_sekarang >= $mulai_libur) && ($tanggal_sekarang <= $selesai_libur)) {
  114. $status_libur = 1;
  115. }
  116. }
  117.  
  118. if($status_libur == 0 && $status_izin == 0) {
  119.  
  120. $generate_storage = HarianExtuder::where('karyawan_id', $extuder->karyawan_id)
  121. ->where('source_extuder', $extuder->source)
  122. ->where('source_id_extuder', $extuder->source_id)
  123. ->whereDate('tanggal_hari_ini', $date)
  124. ->first();
  125.  
  126. if($generate_storage == null) {
  127.  
  128. $generate_storage = new HarianExtuder();
  129. $generate_storage->karyawan_id = $karyawan_input->id;
  130. $generate_storage->nama = $karyawan_input->nama;
  131. $generate_storage->group_id = $karyawan_input->group_id;
  132. $generate_storage->nama_group = $karyawan_input->nik;
  133. $generate_storage->tanggal_hari_ini = $date;
  134. $generate_storage->kalkulasi_poin_rutin = 0;
  135. $generate_storage->kalkulasi_poin_ngeplus = 0;
  136. $generate_storage->kalkulasi_poin_shift1_extuder = 0;
  137. $generate_storage->kalkulasi_poin_shift2_extuder = 0;
  138. $generate_storage->kalkulasi_poin_shift3_extuder = 0;
  139. $generate_storage->kalkulasi_poin_total_extuder = 0;
  140. $generate_storage->hari = $hari;
  141. $generate_storage->status_hadir = 0;
  142. $generate_storage->status_hadir_extuder_shift1 = 0;
  143. $generate_storage->status_hadir_extuder_shift2 = 0;
  144. $generate_storage->status_hadir_extuder_shift3 = 0;
  145. $generate_storage->tidak_hadir_extuder_shift1 = 0;
  146. $generate_storage->tidak_hadir_extuder_shift2 = 0;
  147. $generate_storage->tidak_hadir_extuder_shift3 = 0;
  148. $generate_storage->source_extuder = $extuder->source;
  149. $generate_storage->source_id_extuder = $extuder->source_id;
  150. $generate_storage->status_extuder_shift1 = $extuder->status_shift1;
  151. $generate_storage->status_extuder_shift2 = $extuder->status_shift2;
  152. $generate_storage->status_extuder_shift3 = $extuder->status_shift3;
  153. $generate_storage->jam_masuk_shift1 = $extuder->jam_masuk_shift1;
  154. $generate_storage->jam_masuk_shift2 = $extuder->jam_masuk_shift2;
  155. $generate_storage->jam_masuk_shift3 = $extuder->jam_masuk_shift3;
  156. $generate_storage->jam_istirahat_mulai_shift1 = $extuder->jam_istirahat_mulai_shift1;
  157. $generate_storage->jam_istirahat_mulai_shift2 = $extuder->jam_istirahat_mulai_shift2;
  158. $generate_storage->jam_istirahat_mulai_shift3 = $extuder->jam_istirahat_mulai_shift3;
  159. $generate_storage->jam_istirahat_selesai_shift1 = $extuder->jam_istirahat_selesai_shift1;
  160. $generate_storage->jam_istirahat_selesai_shift2 = $extuder->jam_istirahat_selesai_shift2;
  161. $generate_storage->jam_istirahat_selesai_shift3 = $extuder->jam_istirahat_selesai_shift3;
  162. $generate_storage->jam_pulang_shift1 = $extuder->jam_pulang_shift1;
  163. $generate_storage->jam_pulang_shift2 = $extuder->jam_pulang_shift2;
  164. $generate_storage->jam_pulang_shift3 = $extuder->jam_pulang_shift3;
  165.  
  166. if($status_boleh_ngetap == 1) {
  167. $generate_storage->save();
  168. }
  169.  
  170. } else if($generate_storage != null) {
  171. $generate_storage->karyawan_id = $karyawan_input->id;
  172. $generate_storage->nama = $karyawan_input->nama;
  173. $generate_storage->group_id = $karyawan_input->group_id;
  174. $generate_storage->nama_group = $karyawan_input->nik;
  175. $generate_storage->tanggal_hari_ini = $date;
  176. $generate_storage->source_extuder = $extuder->source;
  177. $generate_storage->source_id_extuder = $extuder->source_id;
  178. $generate_storage->status_extuder_shift1 = $extuder->status_shift1;
  179. $generate_storage->status_extuder_shift2 = $extuder->status_shift2;
  180. $generate_storage->status_extuder_shift3 = $extuder->status_shift3;
  181. $generate_storage->jam_masuk_shift1 = $extuder->jam_masuk_shift1;
  182. $generate_storage->jam_masuk_shift2 = $extuder->jam_masuk_shift2;
  183. $generate_storage->jam_masuk_shift3 = $extuder->jam_masuk_shift3;
  184. $generate_storage->jam_istirahat_mulai_shift1 = $extuder->jam_istirahat_mulai_shift1;
  185. $generate_storage->jam_istirahat_mulai_shift2 = $extuder->jam_istirahat_mulai_shift2;
  186. $generate_storage->jam_istirahat_mulai_shift3 = $extuder->jam_istirahat_mulai_shift3;
  187. $generate_storage->jam_istirahat_selesai_shift1 = $extuder->jam_istirahat_selesai_shift1;
  188. $generate_storage->jam_istirahat_selesai_shift2 = $extuder->jam_istirahat_selesai_shift2;
  189. $generate_storage->jam_istirahat_selesai_shift3 = $extuder->jam_istirahat_selesai_shift3;
  190. $generate_storage->jam_pulang_shift1 = $extuder->jam_pulang_shift1;
  191. $generate_storage->jam_pulang_shift2 = $extuder->jam_pulang_shift2;
  192. $generate_storage->jam_pulang_shift3 = $extuder->jam_pulang_shift3;
  193.  
  194. if($status_boleh_ngetap == 1) {
  195. $generate_storage->save();
  196. }
  197. }
  198.  
  199. }
  200. }
  201.  
  202. }
  203.  
  204. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement