Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // cek jadwal ada 1
- if(count($jadwal == 1)) {
- $existing_presensi_2 = Presensi::where('tanggal_dan_waktu_tap', $row[$i]['DateTime'][0])->
- where('karyawan_id', $row[$i]['PIN'][0])->
- // where('source', $jadwal[$iz]->source)->
- // where('source_id', $jadwal[$iz]->source_id)->
- // where('jadwal_id', $jadwal[$iz]->jadwal_id)->
- first();
- if(!isset($existing_presensi_2)) {
- $datang_awal = SettingDatangAwalKhusus::find(1);
- $setting_datang_awal = strtotime($datang_awal->datang_awal)-strtotime("00:00:00");
- $tanggal_mulai = Carbon::parse($jadwal[$iz]->tanggal_mulai)->format('Y-m-d');
- $tanggal_selesai = Carbon::parse($jadwal[$iz]->tanggal_selesai)->format('Y-m-d');
- $hariini = Carbon::now()->format('Y-m-d');
- $jam_masuk = $jadwal[$iz]->jam_masuk;
- $jam_istirahat_mulai = $jadwal[$iz]->jam_istirahat_mulai;
- $jam_istirahat_selesai = $jadwal[$iz]->jam_istirahat_selesai;
- $jam_pulang = $jadwal[$iz]->jam_pulang;
- $before_jam_masuk_previous = date("H:i:s",strtotime($jadwal[0]->jam_masuk)-$setting_datang_awal);
- $after_jam_pulang_next = date("H:i:s",strtotime("+5 hours", strtotime($jadwal[0]->jam_pulang)));
- }
- // cek jadwal lebih dari 1
- } else if(count($jadwal) > 1) {
- for($iz = 0; $iz < count($jadwal); $iz++) {
- $existing_presensi_2 = Presensi::where('tanggal_dan_waktu_tap', $row[$i]['DateTime'][0])->
- where('karyawan_id', $row[$i]['PIN'][0])->
- // where('source', $jadwal[$iz]->source)->
- // where('source_id', $jadwal[$iz]->source_id)->
- // where('jadwal_id', $jadwal[$iz]->jadwal_id)->
- first();
- if(!isset($existing_presensi_2)) {
- $tanggal_mulai = Carbon::parse($jadwal[$iz]->tanggal_mulai)->format('Y-m-d');
- $tanggal_selesai = Carbon::parse($jadwal[$iz]->tanggal_selesai)->format('Y-m-d');
- $hariini = Carbon::now()->format('Y-m-d');
- $jam_masuk = $jadwal[$iz]->jam_masuk;
- $jam_istirahat_mulai = $jadwal[$iz]->jam_istirahat_mulai;
- $jam_istirahat_selesai = $jadwal[$iz]->jam_istirahat_selesai;
- $jam_pulang = $jadwal[$iz]->jam_pulang;
- /**
- * Cek Jadwal sebelumnya dan selanjutnya untuk menentukan jam masuk berikutnya
- */
- $after_jam_pulang_next = null;
- $before_jam_masuk_previous = null;
- if(count($jadwal) > 1) {
- if($iz == 0) {
- //ketika jadwal di awal / jadwal pertama
- $after_jam_pulang_next = date("H:i:s",strtotime($jadwal[$iz + 1]->jam_masuk)-$toleransi);
- $before_jam_masuk_previous = date("H:i:s",strtotime($jadwal[$iz]->$jam_masuk)-$setting_datang_awal);
- } else if($iz > 0) {
- $jarak_pulang = 0;
- $jarak_masuk = 0;
- // ketika jadwal di tengah tengah / bkn jadwal pertama atw jadwal terakhir
- if(isset($jadwal[$iz + 1])) {
- // ambil jarak pulang
- $jarak_pulang = abs(strtotime($jadwal[$iz]->jam_pulang) - strtotime($jadwal[$iz + 1]->jam_masuk)) / 60;
- // ambil jarak masuk
- $jarak_masuk = abs(strtotime($jadwal[$iz]->jam_masuk) - strtotime($jadwal[$iz - 1]->jam_pulang)) / 60;
- if($jarak_masuk >= 150) {
- // jika jaraknya >= 2.5 jam maka pake datang awal
- $before_jam_masuk_previous = date("H:i:s",strtotime($jadwal[$iz]->jam_masuk)-$setting_datang_awal);
- } else {
- // jika jaraknya < 2.5 jam maka pake toleransi
- $before_jam_masuk_previous1 = date("H:i:s",strtotime($jadwal[$iz]->jam_masuk)-$toleransi);
- $before_jam_masuk_previous = date("H:i:s",strtotime("+1 second",strtotime($before_jam_masuk_previous1)));
- }
- if($jarak_pulang >= 150) {
- // jika jaraknya >= 2.5 jam maka patok + 2 jam
- $after_jam_pulang_next = date("H:i:s",strtotime("+2 hours", strtotime($jadwal[$iz]->jam_pulang)));
- } else {
- // jika jaraknya < 2.5 jam maka pake toleransi
- $after_jam_pulang_next = date("H:i:s",strtotime($jadwal[$iz]->jam_pulang)+$toleransi);
- }
- // bwt jadwal di ujung
- } else if(!isset($jadwal[$iz + 1])) {
- // ambil jarak pulang
- $jarak_pulang = abs(strtotime($jadwal[$iz]->jam_pulang) - strtotime($jadwal[$iz + 1]->jam_masuk)) / 60;
- // ambil jarak masuk
- $jarak_masuk = abs(strtotime($jadwal[$iz]->jam_masuk) - strtotime($jadwal[$iz - 1]->jam_pulang)) / 60;
- $after_jam_pulang_next = date("H:i:s",strtotime("+5 hours", strtotime($jadwal[$iz]->jam_pulang)));
- if($jarak_masuk >= 150) {
- // jika jaraknya >= 2.5 jam maka pake datang awal
- $before_jam_masuk_previous = date("H:i:s",strtotime($jadwal[$iz]->jam_masuk)-$setting_datang_awal);
- } else {
- // jika jaraknya < 2.5 jam maka pake toleransi
- $before_jam_masuk_previous1 = date("H:i:s",strtotime($jadwal[$iz]->jam_masuk)-$toleransi);
- $before_jam_masuk_previous = date("H:i:s",strtotime("+1 second",strtotime($before_jam_masuk_previous1)));
- }
- }
- }
- }
Add Comment
Please, Sign In to add comment