Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public function generateKPHExtuder($date) {
- // ambil jadwal extuder
- $jadwal_extuder = JadwalHariKerjaExtuder::all();
- $status_izin = 0;
- foreach($jadwal_extuder as $extuder) {
- $status_boleh_ngetap = 0;
- // cek tanggal boleh tap
- if($extuder->tanggal_boleh_tap != null) {
- $jadwal_hari_ini = $extuder->tanggal_boleh_tap;
- $jadwal_besok = Carbon::parse($extuder->tanggal_boleh_tap)->add(1, 'day')->format('Y-m-d');
- $jadwal_lusa = $extuder->tanggal_boleh_tap_selanjutnya;
- // cek tanggal tap
- if($date == $jadwal_hari_ini) {
- // boleh masuk presensi
- $status_boleh_ngetap = 1;
- } else if($date == $jadwal_besok) {
- // skip / tidak dibolehkan masuk
- $status_boleh_ngetap = 0;
- } else if($date == $jadwal_lusa) {
- // boleh masuk presensi dan update jadwalnya
- $status_boleh_ngetap = 1;
- // update tanggal
- $extuder->tanggal_boleh_tap = $jadwal_lusa;
- $extuder->tanggal_boleh_tap_selanjutnya = Carbon::parse($jadwal_lusa)->add(2, 'day')->format('Y-m-d');
- $extuder->save();
- } else if($date > $jadwal_lusa) {
- // cek berapa jarak hari dari jadwal lusa
- $jarak_hari = Carbon::parse($jadwal_lusa)->diffInDays(Carbon::parse($date));
- // cek jarak genap dan ganjil
- if($jarak_hari % 2 == 0) {
- // genap boleh ngetap
- $status_boleh_ngetap = 1;
- $jadwal_hari_ini = Carbon::parse($date)->toDateString();
- $jadwal_lusa = Carbon::parse($date)->add(2, 'day')->toDateString();
- // update jadwal
- $extuder->tanggal_boleh_tap = $jadwal_hari_ini;
- $extuder->tanggal_boleh_tap_selanjutnya = $jadwal_lusa;
- $extuder->save();
- } else {
- // ganjil tidak boleh ngetap
- $status_boleh_ngetap = 0;
- }
- }
- } else {
- $jadwal_hari_ini = Carbon::parse($date)->toDateString();
- $jadwal_lusa = Carbon::parse($date)->add(2, 'day')->toDateString();
- $extuder->tanggal_boleh_tap = $jadwal_hari_ini;
- $extuder->tanggal_boleh_tap_selanjutnya = $jadwal_lusa;
- $extuder->save();
- $status_boleh_ngetap = 1;
- }
- $day = Carbon::parse($date)->format('l');
- $hari = null;
- switch($day) {
- case "Monday":
- $hari = "Senin";
- break;
- case "Tuesday":
- $hari = "Selasa";
- break;
- case "Wednesday":
- $hari = "Rabu";
- break;
- case "Thursday":
- $hari = "Kamis";
- break;
- case "Friday":
- $hari = "Jum at";
- break;
- case "Saturday":
- $hari = "Sabtu";
- break;
- case "Sunday":
- $hari = "Minggu";
- break;
- default:
- break;
- }
- $karyawan_input = Karyawan::find($extuder->karyawan_id);
- // set init status izin dan libur
- $status_izin = 0;
- $status_libur = 0;
- if(isset($karyawan_input->id)) {
- // cek jadwal libur dan jadwal izin
- $jadwal_libur = JadwalLibur::where('karyawan_id', '=', $karyawan_input->id)->get();
- $jadwal_izin = JadwalIzin::where('karyawan_id', '=', $karyawan_input->id)->get();
- for($l = 0; $l < count($jadwal_izin); $l++) {
- $mulai_izin = Carbon::parse($jadwal_izin[$l]->tanggal_mulai)->format('Y-m-d');
- $selesai_izin = Carbon::parse($jadwal_izin[$l]->tanggal_selesai)->format('Y-m-d');
- $tanggal_sekarang = Carbon::parse($date)->format('Y-m-d');
- if(($tanggal_sekarang >= $mulai_izin) && ($tanggal_sekarang <= $selesai_izin)) {
- $status_izin = 1;
- }
- }
- for($l = 0; $l < count($jadwal_libur); $l++) {
- $mulai_libur = Carbon::parse($jadwal_libur[$l]->tanggal_mulai)->format('Y-m-d');
- $selesai_libur = Carbon::parse($jadwal_libur[$l]->tanggal_selesai)->format('Y-m-d');
- $tanggal_sekarang = Carbon::parse($date)->format('Y-m-d');
- if(($tanggal_sekarang >= $mulai_libur) && ($tanggal_sekarang <= $selesai_libur)) {
- $status_libur = 1;
- }
- }
- if($status_libur == 0 && $status_izin == 0) {
- $generate_storage = HarianExtuder::where('karyawan_id', $extuder->karyawan_id)
- ->where('source_extuder', $extuder->source)
- ->where('source_id_extuder', $extuder->source_id)
- ->whereDate('tanggal_hari_ini', $date)
- ->first();
- if($generate_storage == null) {
- $generate_storage = new HarianExtuder();
- $generate_storage->karyawan_id = $karyawan_input->id;
- $generate_storage->nama = $karyawan_input->nama;
- $generate_storage->group_id = $karyawan_input->group_id;
- $generate_storage->nama_group = $karyawan_input->nik;
- $generate_storage->tanggal_hari_ini = $date;
- $generate_storage->kalkulasi_poin_rutin = 0;
- $generate_storage->kalkulasi_poin_ngeplus = 0;
- $generate_storage->kalkulasi_poin_shift1_extuder = 0;
- $generate_storage->kalkulasi_poin_shift2_extuder = 0;
- $generate_storage->kalkulasi_poin_shift3_extuder = 0;
- $generate_storage->kalkulasi_poin_total_extuder = 0;
- $generate_storage->hari = $hari;
- $generate_storage->status_hadir = 0;
- $generate_storage->status_hadir_extuder_shift1 = 0;
- $generate_storage->status_hadir_extuder_shift2 = 0;
- $generate_storage->status_hadir_extuder_shift3 = 0;
- $generate_storage->tidak_hadir_extuder_shift1 = 0;
- $generate_storage->tidak_hadir_extuder_shift2 = 0;
- $generate_storage->tidak_hadir_extuder_shift3 = 0;
- $generate_storage->source_extuder = $extuder->source;
- $generate_storage->source_id_extuder = $extuder->source_id;
- $generate_storage->status_extuder_shift1 = $extuder->status_shift1;
- $generate_storage->status_extuder_shift2 = $extuder->status_shift2;
- $generate_storage->status_extuder_shift3 = $extuder->status_shift3;
- $generate_storage->jam_masuk_shift1 = $extuder->jam_masuk_shift1;
- $generate_storage->jam_masuk_shift2 = $extuder->jam_masuk_shift2;
- $generate_storage->jam_masuk_shift3 = $extuder->jam_masuk_shift3;
- $generate_storage->jam_istirahat_mulai_shift1 = $extuder->jam_istirahat_mulai_shift1;
- $generate_storage->jam_istirahat_mulai_shift2 = $extuder->jam_istirahat_mulai_shift2;
- $generate_storage->jam_istirahat_mulai_shift3 = $extuder->jam_istirahat_mulai_shift3;
- $generate_storage->jam_istirahat_selesai_shift1 = $extuder->jam_istirahat_selesai_shift1;
- $generate_storage->jam_istirahat_selesai_shift2 = $extuder->jam_istirahat_selesai_shift2;
- $generate_storage->jam_istirahat_selesai_shift3 = $extuder->jam_istirahat_selesai_shift3;
- $generate_storage->jam_pulang_shift1 = $extuder->jam_pulang_shift1;
- $generate_storage->jam_pulang_shift2 = $extuder->jam_pulang_shift2;
- $generate_storage->jam_pulang_shift3 = $extuder->jam_pulang_shift3;
- if($status_boleh_ngetap == 1) {
- $generate_storage->save();
- }
- } else if($generate_storage != null) {
- $generate_storage->karyawan_id = $karyawan_input->id;
- $generate_storage->nama = $karyawan_input->nama;
- $generate_storage->group_id = $karyawan_input->group_id;
- $generate_storage->nama_group = $karyawan_input->nik;
- $generate_storage->tanggal_hari_ini = $date;
- $generate_storage->source_extuder = $extuder->source;
- $generate_storage->source_id_extuder = $extuder->source_id;
- $generate_storage->status_extuder_shift1 = $extuder->status_shift1;
- $generate_storage->status_extuder_shift2 = $extuder->status_shift2;
- $generate_storage->status_extuder_shift3 = $extuder->status_shift3;
- $generate_storage->jam_masuk_shift1 = $extuder->jam_masuk_shift1;
- $generate_storage->jam_masuk_shift2 = $extuder->jam_masuk_shift2;
- $generate_storage->jam_masuk_shift3 = $extuder->jam_masuk_shift3;
- $generate_storage->jam_istirahat_mulai_shift1 = $extuder->jam_istirahat_mulai_shift1;
- $generate_storage->jam_istirahat_mulai_shift2 = $extuder->jam_istirahat_mulai_shift2;
- $generate_storage->jam_istirahat_mulai_shift3 = $extuder->jam_istirahat_mulai_shift3;
- $generate_storage->jam_istirahat_selesai_shift1 = $extuder->jam_istirahat_selesai_shift1;
- $generate_storage->jam_istirahat_selesai_shift2 = $extuder->jam_istirahat_selesai_shift2;
- $generate_storage->jam_istirahat_selesai_shift3 = $extuder->jam_istirahat_selesai_shift3;
- $generate_storage->jam_pulang_shift1 = $extuder->jam_pulang_shift1;
- $generate_storage->jam_pulang_shift2 = $extuder->jam_pulang_shift2;
- $generate_storage->jam_pulang_shift3 = $extuder->jam_pulang_shift3;
- if($status_boleh_ngetap == 1) {
- $generate_storage->save();
- }
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement