Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public function inputMesinNgePlus(Request $request)
- {
- // dd($request->all());
- $data_terinput = 0;
- $status_final = null;
- $nama_karyawan = '-';
- $group_karyawan = '-';
- $source = null;
- $source_id = null;
- try {
- if (isset($request->message)) {
- $data = $request->message;
- $row = $data;
- for ($i = 0; $i < count($row); $i++) {
- // $existing_presensi = Presensi::where('tanggal_dan_waktu_tap', '=', date("Y-m-d H:i:s", strtotime($row[$i]['DateTime'][0])))->where('karyawan_id', '=', $row[$i]['PIN'][0])->first();
- $existing_presensi = Presensi::where('tanggal_dan_waktu_tap', $row[$i]['DateTime'][0])->where('karyawan_id', $row[$i]['PIN'][0])->first();
- // dd($existing_presensi);
- if(!isset($existing_presensi)) {
- $id_karyawan = $row[$i]['PIN'][0];
- $tanggal_waktu_tap = $row[$i]['DateTime'][0];
- $tanggal_waktu_tap_static = $row[$i]['DateTime'][0];
- $karyawan = Karyawan::find($id_karyawan);
- if(isset($karyawan)) {
- $jamtap = date('H:i:s', strtotime($tanggal_waktu_tap));
- $slotjam = null;
- $poin = 0;
- $setting_poin = SettingPoin::find(2);
- $adajadwal = 0;
- $jadwal = null;
- $jadwal_terpilih = null;
- $status_izin = 0;
- $nama_karyawan = $karyawan->nama;
- if(isset($karyawan->group_id)) {
- $group_karyawan = $karyawan->group->nama.'-'.$karyawan->groupno;
- }
- //cek jadwal izin
- $jadwal_izin = JadwalIzin::where('karyawan_id', '=', $id_karyawan)->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($tanggal_waktu_tap)->format('Y-m-d');
- if(($tanggal_sekarang >= $mulai_izin) && ($tanggal_sekarang <= $selesai_izin)) {
- $status_izin = 1;
- }
- }
- if($status_izin == 0) {
- // mundurin tanggal
- $tanggal_waktu_tap_mundur = Carbon::parse($tanggal_waktu_tap);
- $tanggal_waktu_tap_mundur->subDay();
- $tanggal_waktu_tap_maju = Carbon::parse($tanggal_waktu_tap);
- $tanggal_waktu_tap_maju->addDay();
- $format_tanggal = strval(date("Y-m-d", strtotime($tanggal_waktu_tap)));
- $format_tanggal_mundur = strval(date("Y-m-d", strtotime($tanggal_waktu_tap_mundur)));
- $format_tanggal_maju = strval(date("Y-m-d", strtotime($tanggal_waktu_tap_maju)));
- // set tanggal
- $tanggal = Carbon::parse($tanggal_waktu_tap)->toDateString();
- $tanggal_kemarin = Carbon::parse($tanggal_waktu_tap)->subDay()->toDateString();
- $tanggal_besok = Carbon::parse($tanggal_waktu_tap)->addDay()->toDateString();
- // dapetin semua
- // $jadwal_all = JadwalNgeplus::where('karyawan_id', '=', $id_karyawan)
- // // ->whereDate('tanggal_mulai', '<=', $format_tanggal)
- // // ->whereDate('tanggal_selesai', '>=', $format_tanggal)
- // ->orderBy('tanggal_mulai', 'asc')
- // // ->orderBy('jam_pulang', 'asc')
- // ->get();
- // pseudocode fakhry ver
- $jadwal = array();
- $jadwal_ngeplus_max_date = JadwalNgeplus::where('karyawan_id', '=', $id_karyawan)->get();
- // attempt 1
- // dd($jadwal_ngeplus_max_date);
- if(count($jadwal_ngeplus_max_date) > 0) {
- // $max_date = $jadwal_ngeplus_max_date[0]->tanggal_selesai;
- // loop bwt ambil tanggal selesai terjauh
- // for($jax = 0; $jax < count($jadwal_ngeplus_max_date); $jax++) {
- // if($jadwal_ngeplus_max_date[$jax]->tanggal_selesai > $max_date) {
- // $max_date = $jadwal_ngeplus_max_date[$jax]->tanggal_selesai;
- // }
- // }
- $batas_awal = Carbon::parse($tanggal_kemarin)->toDateString();
- $batas_akhir = Carbon::parse($tanggal_besok)->toDateString();
- // hitung range hari
- $range_hari = CarbonPeriod::create($batas_awal, $batas_akhir)->toArray();
- // if(count($range_hari) == 0) {
- // $batas_awal = Carbon::parse($tanggal_waktu_tap)->subDay()->toDateString();
- // $batas_akhir = Carbon::parse($max_date)->toDateString();
- // $range_hari = CarbonPeriod::create($batas_awal, $batas_akhir)->toArray();
- // }
- // dd($range_hari);
- if(count($range_hari) <= 3 && count($range_hari) > 0) {
- // ambil jadwal
- for($rh = 0; $rh < count($range_hari); $rh++) {
- $jadwal_tmp = array();
- $get_jadwal_ngeplus = JadwalNgeplus::where('karyawan_id', '=', $id_karyawan)
- ->whereDate('tanggal_mulai', '<=', Carbon::parse($range_hari[$rh])->toDateString())
- ->whereDate('tanggal_selesai', '>=', Carbon::parse($range_hari[$rh])->toDateString())
- ->orderBy('tanggal_mulai', 'ASC')->get();
- // dd($get_jadwal_ngeplus);
- for($j1 = 0; $j1 < count($get_jadwal_ngeplus); $j1++) {
- // if(Carbon::parse($get_jadwal_ngeplus[$j1]->tanggal_mulai)->toDateString() <= Carbon::parse($range_hari[$rh])->toDateString() && Carbon::parse($get_jadwal_ngeplus[$j1]->tanggal_selesai)->addDay()->toDateString() > Carbon::parse($range_hari[$rh])->toDateString()) {
- //pecah jadi 4
- //nambahin atribut identitas
- $jadwal_masuk = array(
- 'id'=>$get_jadwal_ngeplus[$j1]->id,
- 'created_at'=>Carbon::parse($get_jadwal_ngeplus[$j1]->created_at)->toDateTimeString(),
- 'updated_at'=>Carbon::parse($get_jadwal_ngeplus[$j1]->updated_at)->toDateTimeString(),
- 'nama_jadwal'=>$get_jadwal_ngeplus[$j1]->nama_jadwal,
- 'tanggal_mulai'=>Carbon::parse($get_jadwal_ngeplus[$j1]->tanggal_mulai)->toDateString(),
- 'tanggal_selesai'=>Carbon::parse($get_jadwal_ngeplus[$j1]->tanggal_selesai)->toDateString(),
- 'karyawan_id'=>$get_jadwal_ngeplus[$j1]->karyawan_id,
- 'group_id'=>$get_jadwal_ngeplus[$j1]->group_id,
- 'source'=>$get_jadwal_ngeplus[$j1]->source,
- 'source_id'=>$get_jadwal_ngeplus[$j1]->source_id,
- 'warna'=>$get_jadwal_ngeplus[$j1]->warna,
- 'keterangan'=>$get_jadwal_ngeplus[$j1]->keterangan,
- 'status'=>$get_jadwal_ngeplus[$j1]->status,
- 'slotjam'=>'Masuk',
- 'jam'=>$get_jadwal_ngeplus[$j1]->jam_masuk,
- 'tanggal_pick'=>Carbon::parse($range_hari[$rh])->toDateString()
- );
- array_push($jadwal_tmp, $jadwal_masuk);
- $jadwal_istirahat_mulai = array(
- 'id'=>$get_jadwal_ngeplus[$j1]->id,
- 'created_at'=>Carbon::parse($get_jadwal_ngeplus[$j1]->created_at)->toDateTimeString(),
- 'updated_at'=>Carbon::parse($get_jadwal_ngeplus[$j1]->updated_at)->toDateTimeString(),
- 'nama_jadwal'=>$get_jadwal_ngeplus[$j1]->nama_jadwal,
- 'tanggal_mulai'=>Carbon::parse($get_jadwal_ngeplus[$j1]->tanggal_mulai)->toDateString(),
- 'tanggal_selesai'=>Carbon::parse($get_jadwal_ngeplus[$j1]->tanggal_selesai)->toDateString(),
- 'karyawan_id'=>$get_jadwal_ngeplus[$j1]->karyawan_id,
- 'group_id'=>$get_jadwal_ngeplus[$j1]->group_id,
- 'source'=>$get_jadwal_ngeplus[$j1]->source,
- 'source_id'=>$get_jadwal_ngeplus[$j1]->source_id,
- 'warna'=>$get_jadwal_ngeplus[$j1]->warna,
- 'keterangan'=>$get_jadwal_ngeplus[$j1]->keterangan,
- 'status'=>$get_jadwal_ngeplus[$j1]->status,
- 'slotjam'=>'Istirahat Mulai',
- 'jam'=>$get_jadwal_ngeplus[$j1]->jam_istirahat_mulai,
- 'tanggal_pick'=>Carbon::parse($range_hari[$rh])->toDateString()
- );
- array_push($jadwal_tmp, $jadwal_istirahat_mulai);
- $jadwal_istirahat_selesai = array(
- 'id'=>$get_jadwal_ngeplus[$j1]->id,
- 'created_at'=>Carbon::parse($get_jadwal_ngeplus[$j1]->created_at)->toDateTimeString(),
- 'updated_at'=>Carbon::parse($get_jadwal_ngeplus[$j1]->updated_at)->toDateTimeString(),
- 'nama_jadwal'=>$get_jadwal_ngeplus[$j1]->nama_jadwal,
- 'tanggal_mulai'=>Carbon::parse($get_jadwal_ngeplus[$j1]->tanggal_mulai)->toDateString(),
- 'tanggal_selesai'=>Carbon::parse($get_jadwal_ngeplus[$j1]->tanggal_selesai)->toDateString(),
- 'karyawan_id'=>$get_jadwal_ngeplus[$j1]->karyawan_id,
- 'group_id'=>$get_jadwal_ngeplus[$j1]->group_id,
- 'source'=>$get_jadwal_ngeplus[$j1]->source,
- 'source_id'=>$get_jadwal_ngeplus[$j1]->source_id,
- 'warna'=>$get_jadwal_ngeplus[$j1]->warna,
- 'keterangan'=>$get_jadwal_ngeplus[$j1]->keterangan,
- 'status'=>$get_jadwal_ngeplus[$j1]->status,
- 'slotjam'=>'Istirahat Selesai',
- 'jam'=>$get_jadwal_ngeplus[$j1]->jam_istirahat_selesai,
- 'tanggal_pick'=>Carbon::parse($range_hari[$rh])->toDateString()
- );
- array_push($jadwal_tmp, $jadwal_istirahat_selesai);
- $jadwal_pulang = array(
- 'id'=>$get_jadwal_ngeplus[$j1]->id,
- 'created_at'=>Carbon::parse($get_jadwal_ngeplus[$j1]->created_at)->toDateTimeString(),
- 'updated_at'=>Carbon::parse($get_jadwal_ngeplus[$j1]->updated_at)->toDateTimeString(),
- 'nama_jadwal'=>$get_jadwal_ngeplus[$j1]->nama_jadwal,
- 'tanggal_mulai'=>Carbon::parse($get_jadwal_ngeplus[$j1]->tanggal_mulai)->toDateString(),
- 'tanggal_selesai'=>Carbon::parse($get_jadwal_ngeplus[$j1]->tanggal_selesai)->toDateString(),
- 'karyawan_id'=>$get_jadwal_ngeplus[$j1]->karyawan_id,
- 'group_id'=>$get_jadwal_ngeplus[$j1]->group_id,
- 'source'=>$get_jadwal_ngeplus[$j1]->source,
- 'source_id'=>$get_jadwal_ngeplus[$j1]->source_id,
- 'warna'=>$get_jadwal_ngeplus[$j1]->warna,
- 'keterangan'=>$get_jadwal_ngeplus[$j1]->keterangan,
- 'status'=>$get_jadwal_ngeplus[$j1]->status,
- 'slotjam'=>'Pulang',
- 'jam'=>$get_jadwal_ngeplus[$j1]->jam_pulang,
- 'tanggal_pick'=>Carbon::parse($range_hari[$rh])->toDateString()
- );
- array_push($jadwal_tmp, $jadwal_pulang);
- // $get_jadwal_ngeplus[$j1]->setAttribute('tanggal_pick', Carbon::parse($range_hari[$rh])->toDateString());
- // array_push($jadwal_tmp, $get_jadwal_ngeplus[$j1]);
- // }
- }
- // sort disini, pake tanggal pick
- usort($jadwal_tmp, function($a, $b) {
- // return strcmp($a['jam_masuk'], $b['jam_masuk']);
- return strcmp($a['tanggal_pick'], $b['tanggal_pick']);
- });
- for($tmp = 0; $tmp < count($jadwal_tmp); $tmp++) {
- array_push($jadwal, $jadwal_tmp[$tmp]);
- }
- }
- }
- /**
- * masukin ke array baru bwt nyimpen jam
- * menggunakan array jadwal yang udah kesort
- * jangan disort setelah ini
- * sudah dilakukan di atas
- */
- /**
- * Karena range hari hanya ada 3 hari, bukan max date, kondisi di bawah tidak perlu
- */
- // else if(count($range_hari) > 3) {
- // // ambil jadwal
- // for($rh = 0; $rh < 3; $rh++) {
- // $jadwal_tmp = array();
- // $get_jadwal_ngeplus = JadwalNgeplus::where('karyawan_id', '=', $id_karyawan)
- // ->whereDate('tanggal_mulai', '<=', Carbon::parse($range_hari[$rh])->toDateString())
- // ->whereDate('tanggal_selesai', '>=', Carbon::parse($range_hari[$rh])->toDateString())
- // ->orderBy('tanggal_mulai', 'ASC')->get();
- // // dd($get_jadwal_ngeplus);
- // for($j2 = 0; $j2 < count($get_jadwal_ngeplus); $j2++) {
- // // if(Carbon::parse($get_jadwal_ngeplus[$j2]->tanggal_mulai)->toDateString() <= Carbon::parse($range_hari[$rh])->toDateString() && Carbon::parse($get_jadwal_ngeplus[$j2]->tanggal_selesai)->addDay()->toDateString() > Carbon::parse($range_hari[$rh])->toDateString()) {
- // $get_jadwal_ngeplus[$j2]->setAttribute('tanggal_pick', Carbon::parse($range_hari[$rh])->toDateString());
- // array_push($jadwal_tmp, $get_jadwal_ngeplus[$j2]);
- // // }
- // }
- // // sort disini
- // usort($jadwal_tmp, function($a, $b) {
- // return strcmp($a['jam_masuk'], $b['jam_masuk']);
- // });
- // for($tmp = 0; $tmp < count($jadwal_tmp); $tmp++) {
- // array_push($jadwal, $jadwal_tmp[$tmp]);
- // }
- // }
- // }
- }
- // attempt 2
- // dd($jadwal_ngeplus_max_date);
- // if(count($jadwal_ngeplus_max_date) > 0) {
- // $max_date = $jadwal_ngeplus_max_date[0]->tanggal_selesai;
- // // loop bwt ambil tanggal selesai terjauh
- // for($jax = 0; $jax < count($jadwal_ngeplus_max_date); $jax++) {
- // if($jadwal_ngeplus_max_date[$jax]->tanggal_selesai > $max_date) {
- // $max_date = $jadwal_ngeplus_max_date[$jax]->tanggal_selesai;
- // }
- // }
- // $batas_awal = Carbon::parse($tanggal)->toDateString();
- // $batas_akhir = Carbon::parse($max_date)->toDateString();
- // // hitung range hari
- // $range_hari = CarbonPeriod::create($batas_awal, $batas_akhir)->toArray();
- // // if(count($range_hari) == 0) {
- // // $batas_awal = Carbon::parse($tanggal_waktu_tap_mundur)->toDateString();
- // // $batas_akhir = Carbon::parse($max_date)->toDateString();
- // // $range_hari = CarbonPeriod::create($batas_awal, $batas_akhir)->toArray();
- // // }
- // if(count($range_hari) <= 2 && count($range_hari) > 0) {
- // // ambil jadwal
- // for($rh = 0; $rh < count($range_hari); $rh++) {
- // $get_jadwal_ngeplus = JadwalNgeplus::where('karyawan_id', '=', $id_karyawan)
- // ->whereDate('tanggal_mulai', '<=', Carbon::parse($range_hari[$rh])->toDateString())
- // ->whereDate('tanggal_selesai', '>=', Carbon::parse($range_hari[$rh])->toDateString())
- // ->orderBy('tanggal_mulai', 'ASC')->get();
- // // dd($get_jadwal_ngeplus);
- // for($j1 = 0; $j1 < count($get_jadwal_ngeplus); $j1++) {
- // // if(Carbon::parse($get_jadwal_ngeplus[$j1]->tanggal_mulai)->toDateString() <= Carbon::parse($range_hari[$rh])->toDateString() && Carbon::parse($get_jadwal_ngeplus[$j1]->tanggal_selesai)->addDay()->toDateString() > Carbon::parse($range_hari[$rh])->toDateString()) {
- // $get_jadwal_ngeplus[$j1]->setAttribute('tanggal_pick', Carbon::parse($range_hari[$rh])->toDateString());
- // array_push($jadwal, $get_jadwal_ngeplus[$j1]);
- // // }
- // }
- // }
- // } else if(count($range_hari) > 2) {
- // // ambil jadwal
- // for($rh = 0; $rh < 2; $rh++) {
- // $get_jadwal_ngeplus = JadwalNgeplus::where('karyawan_id', '=', $id_karyawan)
- // ->whereDate('tanggal_mulai', '<=', Carbon::parse($range_hari[$rh])->toDateString())
- // ->whereDate('tanggal_selesai', '>=', Carbon::parse($range_hari[$rh])->toDateString())
- // ->orderBy('tanggal_mulai', 'ASC')->get();
- // // dd($get_jadwal_ngeplus);
- // for($j2 = 0; $j2 < count($get_jadwal_ngeplus); $j2++) {
- // // if(Carbon::parse($get_jadwal_ngeplus[$j2]->tanggal_mulai)->toDateString() <= Carbon::parse($range_hari[$rh])->toDateString() && Carbon::parse($get_jadwal_ngeplus[$j2]->tanggal_selesai)->addDay()->toDateString() > Carbon::parse($range_hari[$rh])->toDateString()) {
- // $get_jadwal_ngeplus[$j2]->setAttribute('tanggal_pick', Carbon::parse($range_hari[$rh])->toDateString());
- // array_push($jadwal, $get_jadwal_ngeplus[$j2]);
- // // }
- // }
- // }
- // }
- // }
- // usort($jadwal, function($a, $b) {
- // return strcmp($a->id, $b->id);
- // });
- // $jadwal = array_values( array_unique( $jadwal, SORT_REGULAR ) );
- // $jadwal = array();
- // for($j = 0; $j < count($jadwal_filter); $j++) {
- // if(Carbon::parse($jadwal_filter[$j]['tanggal_pick'])->lte(Carbon::parse($tanggal_waktu_tap_static))) {
- // array_push($jadwal, $jadwal_filter[$j]);
- // }
- // }
- // SORTING JADWAL SESUAI URUTAN TANGGAL
- // usort($jadwal, function($a, $b) {
- // return strcmp($a['tanggal_mulai'], $b['tanggal_mulai']);
- // });
- // usort($jadwal, function($a, $b) {
- // return strcmp($a['tanggal_pick'], $b['tanggal_pick']);
- // });
- // usort($jadwal, function($a, $b) {
- // return strcmp($a['jam_masuk'], $b['jam_masuk']);
- // });
- // dd($jadwal);
- // dd($tanggal_waktu_tap);
- // cek jadwal ada 1
- if(count($jadwal) == 4) {
- $existing_presensi_2 = Presensi::where('tanggal_dan_waktu_tap', $row[$i]['DateTime'][0])->
- where('karyawan_id', $row[$i]['PIN'][0])->
- // where('source', $jadwal[0]->source)->
- // where('source_id', $jadwal[0]->source_id)->
- // where('jadwal_id', $jadwal[0]->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[0]['tanggal_mulai'])->format('Y-m-d');
- $tanggal_selesai = Carbon::parse($jadwal[0]['tanggal_selesai'])->format('Y-m-d');
- $hariini = Carbon::now()->format('Y-m-d');
- $jam_masuk = $jadwal[0]['jam'];
- $jam_istirahat_mulai = $jadwal[1]['jam'];
- $jam_istirahat_selesai = $jadwal[2]['jam'];
- $jam_pulang = $jadwal[3]['jam'];
- // setting jam masuk dan jam pulang patok karena hanya punya 1 jadwal
- $before_jam_masuk_previous = date("H:i:s",strtotime($jadwal[0]['jam'])-$setting_datang_awal);
- $after_jam_pulang_next = date("H:i:s",strtotime("+5 hours", strtotime($jadwal[4]['jam'])));
- $closing_time = ClosingTime::find(1);
- $setting_closing_time = strtotime($closing_time->jangka_waktu)-strtotime("00:00:00");
- $datang_awal = SettingDatangAwalKhusus::find(1);
- $setting_datang_awal = strtotime($datang_awal->datang_awal)-strtotime("00:00:00");
- $setting_presensi = SettingPresensi::find(1);
- if(isset($setting_presensi->toleransi_keterlambatan)) {
- $toleransi = strtotime($setting_presensi->toleransi_keterlambatan)-strtotime("00:00:00");
- // $toleransi_min = strtotime("+1 minutes",strtotime($setting_presensi->toleransi_keterlambatan))-strtotime("00:00:00");
- $max_istirahat_mulai = strtotime($jam_istirahat_selesai)-$toleransi-strtotime("00:00:00");
- $max_istirahat_selesai = strtotime($jam_pulang)-$toleransi-strtotime("00:00:00");
- // dd($max_istirahat_selesai);
- // $before_jam_masuk = date("H:i:s",strtotime($jam_masuk)-$setting_datang_awal);
- $before_jam_masuk = $before_jam_masuk_previous;
- $after_jam_masuk = date("H:i:s",strtotime($jam_masuk)+$toleransi);
- $before_jam_istirahat_mulai = date("H:i:s",strtotime($jam_istirahat_mulai)-$toleransi);
- // $after_jam_istirahat_mulai = date("H:i:s",strtotime($jam_istirahat_selesai)-$toleransi_min);
- $before_jam_istirahat_selesai = date("H:i:s",strtotime($jam_istirahat_selesai)-$toleransi);
- // $after_jam_istirahat_selesai = date("H:i:s",strtotime($jam_pulang)-$toleransi_min);
- $before_jam_pulang = date("H:i:s",strtotime($jam_pulang)-$toleransi);
- // $after_jam_pulang = date("H:i:s",strtotime($jam_pulang)+$setting_closing_time);
- $after_jam_pulang = $after_jam_pulang_next;
- if(($jamtap > $before_jam_masuk) && ($jamtap < $after_jam_masuk)) {
- $slotjam = "Masuk";
- $poin = $setting_poin->jam_masuk;
- $source = $jadwal[0]->source;
- $source_id = $jadwal[0]->source_id;
- } elseif(($jamtap == $before_jam_masuk) || ($jamtap == $after_jam_masuk)) {
- $slotjam = "Masuk";
- $poin = $setting_poin->jam_masuk;
- $source = $jadwal[0]->source;
- $source_id = $jadwal[0]->source_id;
- } elseif(($jamtap > $after_jam_masuk) && ($jamtap < $before_jam_istirahat_mulai)) {
- $slotjam = "Terlambat Masuk";
- $poin = $setting_poin->jam_masuk;
- $source = $jadwal[0]->source;
- $source_id = $jadwal[0]->source_id;
- } elseif(($jamtap > $before_jam_istirahat_mulai) && ($jamtap < $before_jam_istirahat_selesai)) {
- $slotjam = "Istirahat Mulai";
- $poin = $setting_poin->jam_mulai_istirahat;
- $source = $jadwal[1]->source;
- $source_id = $jadwal[1]->source_id;
- } elseif(($jamtap == $before_jam_istirahat_mulai)) {
- $slotjam = "Istirahat Mulai";
- $poin = $setting_poin->jam_mulai_istirahat;
- $source = $jadwal[1]->source;
- $source_id = $jadwal[1]->source_id;
- } elseif(($jamtap > $before_jam_istirahat_selesai) && ($jamtap < $before_jam_pulang)) {
- $slotjam = "Istirahat Selesai";
- $poin = $setting_poin->jam_mulai_istirahat;
- $source = $jadwal[2]->source;
- $source_id = $jadwal[2]->source_id;
- } elseif($jamtap == $before_jam_istirahat_selesai) {
- $slotjam = "Istirahat Selesai";
- $poin = $setting_poin->jam_mulai_istirahat;
- $source = $jadwal[2]->source;
- $source_id = $jadwal[2]->source_id;
- } elseif(($jamtap > $before_jam_pulang) && ($jamtap < $after_jam_pulang)) {
- $slotjam = "Pulang";
- $poin = $setting_poin->jam_keluar;
- $source = $jadwal[3]->source;
- $source_id = $jadwal[3]->source_id;
- } elseif(($jamtap == $before_jam_pulang) || ($jamtap == $after_jam_pulang)) {
- $slotjam = "Pulang";
- $poin = $setting_poin->jam_keluar;
- $source = $jadwal[3]->source;
- $source_id = $jadwal[3]->source_id;
- } else if(strtotime($before_jam_pulang) > strtotime($after_jam_pulang)) {
- if(strtotime($jamtap) >= strtotime($before_jam_pulang) && strtotime($jamtap) < strtotime("24:00:00")) {
- $slotjam = "Pulang";
- $poin = $setting_poin->jam_keluar;
- $source = $jadwal[3]->source;
- $source_id = $jadwal[3]->source_id;
- } else if(strtotime("+24 hours", strtotime($jamtap)) >= strtotime("24:00:00") && strtotime("+24 hours", strtotime($jamtap)) <= strtotime("+24 hours", strtotime($after_jam_pulang))) {
- $slotjam = "Pulang";
- $poin = $setting_poin->jam_keluar;
- $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
- $tanggal_waktu_tap->subDay();
- $source = $jadwal[3]->source;
- $source_id = $jadwal[3]->source_id;
- }
- }
- //-----CASE A-----
- if(strtotime($jam_pulang) < strtotime($jam_istirahat_selesai)) {
- // dd(strtotime("00:00:00"));
- // Jika jam tap < jam 12 malam
- if((strtotime($jamtap) < strtotime("24:00:00"))) {
- //-----CASE 1-----
- if((strtotime($jamtap) > strtotime($before_jam_istirahat_selesai)) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($before_jam_pulang)))) {
- $slotjam = "Istirahat Selesai";
- $poin = $setting_poin->jam_selesai_istirahat;
- $source = $jadwal[2]->source;
- $source_id = $jadwal[2]->source_id;
- } elseif(($jamtap == $before_jam_istirahat_selesai)) {
- $slotjam = "Istirahat Selesai";
- $poin = $setting_poin->jam_selesai_istirahat;
- $source = $jadwal[2]->source;
- $source_id = $jadwal[2]->source_id;
- }
- //-----CASE 2-----
- if(strtotime("+24 hours", strtotime($before_jam_pulang)) < strtotime("24:00:00")) {
- if(strtotime($jamtap) > strtotime("+24 hours", strtotime($before_jam_pulang)) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($after_jam_pulang)))) {
- $slotjam = "Pulang";
- $poin = $setting_poin->jam_keluar;
- $source = $jadwal[3]->source;
- $source_id = $jadwal[3]->source_id;
- } elseif((strtotime($jamtap) == strtotime("+24 hours", strtotime($before_jam_pulang))) || (strtotime($jamtap) == strtotime("+24 hours", strtotime($after_jam_pulang)))) {
- $slotjam = "Pulang";
- $poin = $setting_poin->jam_keluar;
- $source = $jadwal[3]->source;
- $source_id = $jadwal[3]->source_id;
- }
- }
- }
- // Jika jam tap >= jam 12 malam
- if((strtotime($jamtap) >= strtotime("00:00:00"))) {
- // 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)));
- //-----CASE 3-----
- if((strtotime("+24 hours", strtotime($jamtap)) > strtotime($before_jam_istirahat_selesai)) && (strtotime("+24 hours", strtotime($jamtap)) < strtotime("+24 hours", strtotime($before_jam_pulang)))) {
- $slotjam = "Istirahat Selesai";
- $poin = $setting_poin->jam_selesai_istirahat;
- $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
- $tanggal_waktu_tap->subDay();
- $source = $jadwal[2]->source;
- $source_id = $jadwal[2]->source_id;
- } elseif(($jamtap == $before_jam_istirahat_selesai)) {
- $slotjam = "Istirahat Selesai";
- $poin = $setting_poin->jam_selesai_istirahat;
- $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
- $tanggal_waktu_tap->subDay();
- $source = $jadwal[2]->source;
- $source_id = $jadwal[2]->source_id;
- }
- //-----CASE 4-----
- if(strtotime("+24 hours", strtotime($before_jam_pulang)) >= strtotime("00:00:00")) {
- 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)))) {
- $slotjam = "Pulang";
- $poin = $setting_poin->jam_keluar;
- $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
- $tanggal_waktu_tap->subDay();
- $source = $jadwal[3]->source;
- $source_id = $jadwal[3]->source_id;
- } elseif((strtotime("+24 hours", strtotime($jamtap)) == strtotime("+24 hours", strtotime($before_jam_pulang))) || (strtotime($jamtap) == strtotime("+24 hours", strtotime($after_jam_pulang)))) {
- $slotjam = "Pulang";
- $poin = $setting_poin->jam_keluar;
- $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
- $tanggal_waktu_tap->subDay();
- $source = $jadwal[3]->source;
- $source_id = $jadwal[3]->source_id;
- }
- }
- //-----CASE 5-----
- if(strtotime("+24 hours", strtotime($before_jam_pulang)) < strtotime("24:00:00")) {
- 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)))) {
- $slotjam = "Pulang";
- $poin = $setting_poin->jam_keluar;
- $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
- $tanggal_waktu_tap->subDay();
- $source = $jadwal[3]->source;
- $source_id = $jadwal[3]->source_id;
- } elseif((strtotime($jamtap) == strtotime($before_jam_pulang)) || (strtotime($jamtap) == strtotime("+24 hours", strtotime($after_jam_pulang)))) {
- $slotjam = "Pulang";
- $poin = $setting_poin->jam_keluar;
- $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
- $tanggal_waktu_tap->subDay();
- $source = $jadwal[3]->source;
- $source_id = $jadwal[3]->source_id;
- }
- }
- //-----CASE 6-----
- if(strtotime($after_jam_pulang) == strtotime("00:00:00")) {
- if((strtotime($jamtap) > strtotime($before_jam_pulang)) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($after_jam_pulang)))) {
- $slotjam = "Pulang";
- $poin = $setting_poin->jam_keluar;
- $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
- $tanggal_waktu_tap->subDay();
- $source = $jadwal[3]->source;
- $source_id = $jadwal[3]->source_id;
- } elseif((strtotime($jamtap) == strtotime($before_jam_pulang)) || (strtotime($jamtap) == strtotime("+24 hours", strtotime($after_jam_pulang)))) {
- $slotjam = "Pulang";
- $poin = $setting_poin->jam_keluar;
- $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
- $tanggal_waktu_tap->subDay();
- $source = $jadwal[4]->source;
- $source_id = $jadwal[4]->source_id;
- }
- }
- }
- }
- //-----CASE B-----
- if(strtotime($jam_istirahat_selesai) < strtotime($jam_istirahat_mulai)) {
- // dd(strtotime("00:00:00"));
- // Jika jam tap < jam 12 malam
- if((strtotime($jamtap) < strtotime("24:00:00"))) {
- //-----CASE 7-----
- if((strtotime($jamtap) > strtotime($before_jam_istirahat_mulai)) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)))) {
- $slotjam = "Istirahat Mulai";
- $poin = $setting_poin->jam_mulai_istirahat;
- $source = $jadwal[1]->source;
- $source_id = $jadwal[1]->source_id;
- } elseif(($jamtap == $before_jam_istirahat_mulai)) {
- $slotjam = "Istirahat Mulai";
- $poin = $setting_poin->jam_mulai_istirahat;
- $source = $jadwal[1]->source;
- $source_id = $jadwal[1]->source_id;
- }
- //-----CASE 8-----
- if(strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)) < strtotime("24:00:00")) {
- if(strtotime($jamtap) > strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($before_jam_pulang)))) {
- $slotjam = "Istirahat Selesai";
- $poin = $setting_poin->jam_selesai_istirahat;
- $source = $jadwal[2]->source;
- $source_id = $jadwal[2]->source_id;
- } elseif((strtotime($jamtap) == strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)))) {
- $slotjam = "Istirahat Selesai";
- $poin = $setting_poin->jam_selesai_istirahat;
- $source = $jadwal[2]->source;
- $source_id = $jadwal[2]->source_id;
- }
- }
- }
- // Jika jam tap >= jam 12 malam
- if((strtotime($jamtap) >= strtotime("00:00:00"))) {
- //-----CASE 9-----
- if((strtotime("+24 hours", strtotime($jamtap)) > strtotime($before_jam_istirahat_mulai)) && (strtotime("+24 hours", strtotime($jamtap)) < strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)))) {
- $slotjam = "Istirahat Mulai";
- $poin = $setting_poin->jam_mulai_istirahat;
- $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
- $tanggal_waktu_tap->subDay();
- $source = $jadwal[1]->source;
- $source_id = $jadwal[1]->source_id;
- } elseif(($jamtap == $before_jam_istirahat_mulai)) {
- $slotjam = "Istirahat Mulai";
- $poin = $setting_poin->jam_mulai_istirahat;
- $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
- $tanggal_waktu_tap->subDay();
- $source = $jadwal[1]->source;
- $source_id = $jadwal[1]->source_id;
- }
- //-----CASE 10-----
- if(strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)) >= strtotime("00:00:00")) {
- 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)))) {
- $slotjam = "Istirahat Selesai";
- $poin = $setting_poin->jam_selesai_istirahat;
- $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
- $tanggal_waktu_tap->subDay();
- $source = $jadwal[2]->source;
- $source_id = $jadwal[2]->source_id;
- } elseif((strtotime("+24 hours", strtotime($jamtap)) == strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)))) {
- $slotjam = "Istirahat Selesai";
- $poin = $setting_poin->jam_selesai_istirahat;
- $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
- $tanggal_waktu_tap->subDay();
- $source = $jadwal[2]->source;
- $source_id = $jadwal[2]->source_id;
- }
- }
- //-----CASE 11-----
- if(strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)) < strtotime("24:00:00")) {
- 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)))) {
- $slotjam = "Istirahat Selesai";
- $poin = $setting_poin->jam_selesai_istirahat;
- $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
- $tanggal_waktu_tap->subDay();
- $source = $jadwal[2]->source;
- $source_id = $jadwal[2]->source_id;
- } elseif((strtotime($jamtap) == strtotime($before_jam_istirahat_selesai))) {
- $slotjam = "Istirahat Selesai";
- $poin = $setting_poin->jam_selesai_istirahat;
- $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
- $tanggal_waktu_tap->subDay();
- $source = $jadwal[2]->source;
- $source_id = $jadwal[2]->source_id;
- }
- }
- }
- }
- //-----CASE C-----
- if(strtotime($jam_istirahat_mulai) < strtotime($jam_masuk)) {
- // dd(strtotime("00:00:00"));
- // Jika jam tap < jam 12 malam
- if((strtotime($jamtap) < strtotime("24:00:00"))) {
- //-----CASE 12-----
- if((strtotime($jamtap) > strtotime($before_jam_masuk)) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)))) {
- if((strtotime($jamtap) > strtotime($before_jam_masuk)) && (strtotime($jamtap) < strtotime($after_jam_masuk))) {
- $slotjam = "Masuk";
- $poin = $setting_poin->jam_masuk;
- $source = $jadwal[0]->source;
- $source_id = $jadwal[0]->source_id;
- }
- if((strtotime($jamtap) > strtotime($before_jam_masuk)) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($after_jam_masuk)))) {
- $slotjam = "Masuk";
- $poin = $setting_poin->jam_masuk;
- $source = $jadwal[0]->source;
- $source_id = $jadwal[0]->source_id;
- if((strtotime("+24 hours", strtotime($jamtap)) == strtotime("24:00:00"))) {
- $slotjam = "Masuk";
- $poin = $setting_poin->jam_masuk;
- $source = $jadwal[0]->source;
- $source_id = $jadwal[0]->source_id;
- }
- if((strtotime($jamtap) < strtotime("24:00:00")) && (strtotime($jamtap) > strtotime($before_jam_masuk))) {
- $slotjam = "Masuk";
- $poin = $setting_poin->jam_masuk;
- $source = $jadwal[0]->source;
- $source_id = $jadwal[0]->source_id;
- }
- if((strtotime("+24 hours", strtotime($jamtap)) > strtotime("24:00:00")) && (strtotime("+24 hours", strtotime($jamtap)) < strtotime("+24 hours", strtotime($after_jam_masuk)))) {
- $slotjam = "Masuk";
- $poin = $setting_poin->jam_masuk;
- $source = $jadwal[0]->source;
- $source_id = $jadwal[0]->source_id;
- }
- }
- if((strtotime($jamtap) > strtotime($after_jam_masuk)) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)))) {
- $slotjam = "Terlambat Masuk";
- $poin = $setting_poin->jam_masuk;
- $source = $jadwal[0]->source;
- $source_id = $jadwal[0]->source_id;
- if((strtotime("+24 hours", strtotime($jamtap)) == strtotime("24:00:00"))) {
- $slotjam = "Terlambat Masuk";
- $poin = $setting_poin->jam_masuk;
- $source = $jadwal[0]->source;
- $source_id = $jadwal[0]->source_id;
- }
- if((strtotime($jamtap) < strtotime("24:00:00")) && (strtotime($jamtap) > strtotime($after_jam_masuk))) {
- $slotjam = "Terlambat Masuk";
- $poin = $setting_poin->jam_masuk;
- $source = $jadwal[0]->source;
- $source_id = $jadwal[0]->source_id;
- }
- if((strtotime("+24 hours", strtotime($jamtap)) > strtotime("24:00:00")) && (strtotime("+24 hours", strtotime($jamtap)) < strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)))) {
- $slotjam = "Terlambat Masuk";
- $poin = $setting_poin->jam_masuk;
- $source = $jadwal[0]->source;
- $source_id = $jadwal[0]->source_id;
- }
- }
- } elseif(($jamtap == $before_jam_masuk)) {
- $slotjam = "Masuk";
- $poin = $setting_poin->jam_masuk;
- $source = $jadwal[0]->source;
- $source_id = $jadwal[0]->source_id;
- }
- //-----CASE 13-----
- if(strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)) < strtotime("24:00:00")) {
- if(strtotime($jamtap) > strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($after_jam_istirahat_selesai)))) {
- $slotjam = "Istirahat Mulai";
- $poin = $setting_poin->jam_mulai_istirahat;
- $source = $jadwal[1]->source;
- $source_id = $jadwal[1]->source_id;
- } elseif((strtotime($jamtap) == strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)))) {
- $slotjam = "Istirahat Mulai";
- $poin = $setting_poin->jam_mulai_istirahat;
- $source = $jadwal[1]->source;
- $source_id = $jadwal[1]->source_id;
- }
- }
- //-----CASE 14-----
- if(strtotime($after_jam_masuk) < strtotime("24:00:00")) {
- if(strtotime($before_jam_istirahat_mulai) < strtotime("24:00:00")) {
- if((strtotime($jamtap) > strtotime($after_jam_masuk)) && (strtotime($jamtap) < strtotime($before_jam_istirahat_mulai))) {
- $slotjam = "Terlambat Masuk";
- $poin = $setting_poin->jam_masuk;
- $source = $jadwal[0]->source;
- $source_id = $jadwal[0]->source_id;
- }
- }
- }
- if(strtotime($jam_masuk) == strtotime("00:00:00")) {
- //-----CASE 15-----
- if(strtotime($before_jam_masuk) < strtotime("00:00:00")) {
- if((strtotime($jamtap) > strtotime("+24 hours", strtotime($before_jam_masuk))) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($after_jam_masuk)))) {
- $slotjam = "Masuk";
- $poin = $setting_poin->jam_masuk;
- $source = $jadwal[0]->source;
- $source_id = $jadwal[0]->source_id;
- } elseif((strtotime($jamtap) == strtotime("+24 hours", strtotime($before_jam_masuk)))) {
- $slotjam = "Masuk";
- $poin = $setting_poin->jam_masuk;
- $source = $jadwal[0]->source;
- $source_id = $jadwal[0]->source_id;
- }
- }
- }
- }
- // Jika jam tap >= jam 12 malam
- if((strtotime($jamtap) >= strtotime("00:00:00"))) {
- // 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)));
- //-----CASE 16----
- if((strtotime("+24 hours", strtotime($jamtap)) < strtotime($after_jam_masuk)) && (strtotime("+24 hours", strtotime($jamtap)) < strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)))) {
- $slotjam = "Masuk";
- $poin = $setting_poin->jam_masuk;
- $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
- $tanggal_waktu_tap->subDay();
- $source = $jadwal[0]->source;
- $source_id = $jadwal[0]->source_id;
- }
- if(($jamtap == $before_jam_masuk)) {
- $slotjam = "Masuk";
- $poin = $setting_poin->jam_masuk;
- $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
- $tanggal_waktu_tap->subDay();
- $source = $jadwal[0]->source;
- $source_id = $jadwal[0]->source_id;
- }
- //-----CASE 17-----
- if(strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)) >= strtotime("00:00:00")) {
- 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)))) {
- $slotjam = "Istirahat Mulai";
- $poin = $setting_poin->jam_mulai_istirahat;
- $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
- $tanggal_waktu_tap->subDay();
- $source = $jadwal[1]->source;
- $source_id = $jadwal[1]->source_id;
- } elseif((strtotime("+24 hours", strtotime($jamtap)) == strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)))) {
- $slotjam = "Istirahat Mulai";
- $poin = $setting_poin->jam_mulai_istirahat;
- $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
- $tanggal_waktu_tap->subDay();
- $source = $jadwal[1]->source;
- $source_id = $jadwal[1]->source_id;
- }
- }
- if(strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)) >= strtotime("00:00:00")) {
- 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)))) {
- $slotjam = "Istirahat Selesai";
- $poin = $setting_poin->jam_selesai_istirahat;
- $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
- $tanggal_waktu_tap->subDay();
- $source = $jadwal[2]->source;
- $source_id = $jadwal[2]->source_id;
- } elseif((strtotime("+24 hours", strtotime($jamtap)) == strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)))) {
- $slotjam = "Istirahat Selesai";
- $poin = $setting_poin->jam_selesai_istirahat;
- $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
- $tanggal_waktu_tap->subDay();
- $source = $jadwal[2]->source;
- $source_id = $jadwal[2]->source_id;
- }
- }
- if(strtotime("+24 hours", strtotime($before_jam_pulang)) >= strtotime("00:00:00")) {
- 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)))) {
- $slotjam = "Pulang";
- $poin = $setting_poin->jam_keluar;
- $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
- $tanggal_waktu_tap->subDay();
- $source = $jadwal[3]->source;
- $source_id = $jadwal[3]->source_id;
- } elseif((strtotime("+24 hours", strtotime($jamtap)) == strtotime("+24 hours", strtotime($before_jam_pulang)))) {
- $slotjam = "Pulang";
- $poin = $setting_poin->jam_keluar;
- $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
- $tanggal_waktu_tap->subDay();
- $source = $jadwal[3]->source;
- $source_id = $jadwal[3]->source_id;
- }
- }
- //-----CASE 18-----
- if(strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)) < strtotime("24:00:00")) {
- 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)))) {
- $slotjam = "Istirahat Mulai";
- $poin = $setting_poin->jam_mulai_istirahat;
- $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
- $tanggal_waktu_tap->subDay();
- $source = $jadwal[1]->source;
- $source_id = $jadwal[1]->source_id;
- } elseif((strtotime($jamtap) == strtotime($before_jam_istirahat_mulai))) {
- $slotjam = "Istirahat Mulai";
- $poin = $setting_poin->jam_mulai_istirahat;
- $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
- $tanggal_waktu_tap->subDay();
- $source = $jadwal[1]->source;
- $source_id = $jadwal[1]->source_id;
- }
- }
- if(strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)) < strtotime("24:00:00")) {
- 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)))) {
- $slotjam = "Istirahat Selesai";
- $poin = $setting_poin->jam_selesai_istirahat;
- $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
- $tanggal_waktu_tap->subDay();
- $source = $jadwal[2]->source;
- $source_id = $jadwal[2]->source_id;
- } elseif((strtotime($jamtap) == strtotime($before_jam_istirahat_selesai))) {
- $slotjam = "Istirahat Selesai";
- $poin = $setting_poin->jam_selesai_istirahat;
- $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
- $tanggal_waktu_tap->subDay();
- $source = $jadwal[2]->source;
- $source_id = $jadwal[2]->source_id;
- }
- }
- if(strtotime("+24 hours", strtotime($before_jam_pulang)) < strtotime("24:00:00")) {
- 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)))) {
- $slotjam = "Pulang";
- $poin = $setting_poin->jam_keluar;
- $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
- $tanggal_waktu_tap->subDay();
- $source = $jadwal[3]->source;
- $source_id = $jadwal[3]->source_id;
- } elseif((strtotime($jamtap) == strtotime($before_jam_pulang))) {
- $slotjam = "Pulang";
- $poin = $setting_poin->jam_keluar;
- $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
- $tanggal_waktu_tap->subDay();
- $source = $jadwal[3]->source;
- $source_id = $jadwal[3]->source_id;
- }
- }
- //-----CASE 19-----
- if(strtotime($after_jam_masuk) >= strtotime("00:00:00")) {
- if(strtotime($before_jam_istirahat_mulai) >= strtotime("24:00:00")) {
- 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)))) {
- $slotjam = "Terlambat Masuk";
- $poin = $setting_poin->jam_masuk;
- $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
- $tanggal_waktu_tap->subDay();
- $source = $jadwal[0]->source;
- $source_id = $jadwal[0]->source_id;
- }
- }
- }
- //-----CASE 19.1-----
- if(strtotime($after_jam_masuk) < strtotime("24:00:00")) {
- if(strtotime($before_jam_istirahat_mulai) >= strtotime("24:00:00")) {
- 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)))) {
- $slotjam = "Terlambat Masuk";
- $poin = $setting_poin->jam_masuk;
- $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
- $tanggal_waktu_tap->subDay();
- $source = $jadwal[0]->source;
- $source_id = $jadwal[0]->source_id;
- }
- if((strtotime("+24 hours", strtotime($jamtap)) > strtotime($after_jam_masuk)) && (strtotime("+24 hours", strtotime($jamtap)) < strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)))) {
- $slotjam = "Terlambat Masuk";
- $poin = $setting_poin->jam_masuk;
- $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
- $tanggal_waktu_tap->subDay();
- $source = $jadwal[0]->source;
- $source_id = $jadwal[0]->source_id;
- }
- } elseif(strtotime($before_jam_istirahat_mulai) < strtotime("24:00:00")) {
- 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)))) {
- $slotjam = "Terlambat Masuk";
- $poin = $setting_poin->jam_masuk;
- $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
- $tanggal_waktu_tap->subDay();
- $source = $jadwal[0]->source;
- $source_id = $jadwal[0]->source_id;
- }
- if((strtotime("+24 hours", strtotime($jamtap)) > strtotime($after_jam_masuk)) && (strtotime("+24 hours", strtotime($jamtap)) < strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)))) {
- $slotjam = "Terlambat Masuk";
- $poin = $setting_poin->jam_masuk;
- $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
- $tanggal_waktu_tap->subDay();
- $source = $jadwal[0]->source;
- $source_id = $jadwal[0]->source_id;
- }
- }
- }
- //-----CASE 20-----
- if(strtotime($before_jam_masuk) == strtotime("00:00:00")) {
- if((strtotime($jamtap) > strtotime($before_jam_masuk)) && (strtotime($jamtap) < strtotime($before_jam_istirahat_mulai))) {
- $slotjam = "Masuk";
- $poin = $setting_poin->jam_masuk;
- $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
- $tanggal_waktu_tap->subDay();
- $source = $jadwal[0]->source;
- $source_id = $jadwal[0]->source_id;
- } elseif((strtotime($jamtap) == strtotime($before_jam_masuk)) || (strtotime($jamtap) == strtotime($after_jam_pulang))) {
- $slotjam = "Masuk";
- $poin = $setting_poin->jam_masuk;
- $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
- $tanggal_waktu_tap->subDay();
- $source = $jadwal[0]->source;
- $source_id = $jadwal[0]->source_id;
- }
- }
- if(strtotime($jam_masuk) == strtotime("00:00:00")) {
- //-----CASE 21-----
- if(strtotime($before_jam_masuk) < strtotime("00:00:00")) {
- if((strtotime($jamtap) > strtotime($before_jam_masuk)) && (strtotime($jamtap) < strtotime($before_jam_istirahat_mulai))) {
- $slotjam = "Masuk";
- $poin = $setting_poin->jam_masuk;
- $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
- $tanggal_waktu_tap->subDay();
- $source = $jadwal[0]->source;
- $source_id = $jadwal[0]->source_id;
- } elseif((strtotime($jamtap) == strtotime($before_jam_istirahat_mulai))) {
- $slotjam = "Masuk";
- $poin = $setting_poin->jam_masuk;
- $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
- $tanggal_waktu_tap->subDay();
- $source = $jadwal[0]->source;
- $source_id = $jadwal[0]->source_id;
- }
- }
- }
- }
- }
- //-----CASE D-----
- if(strtotime($jam_masuk) == strtotime("00:00:00")) {
- //-----CASE 22-----
- if((strtotime($jamtap) < strtotime("00:00:00")) == false) {
- if((strtotime($jamtap) > strtotime("+24 hours", strtotime($before_jam_masuk))) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($after_jam_masuk)))) {
- $slotjam = "Masuk";
- $poin = $setting_poin->jam_masuk;
- $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
- $tanggal_waktu_tap->subDay();
- $source = $jadwal[0]->source;
- $source_id = $jadwal[0]->source_id;
- } else if((strtotime("+24 hours",strtotime($jamtap)) < strtotime("+24 hours", strtotime($after_jam_masuk)))) {
- $slotjam = "Masuk";
- $poin = $setting_poin->jam_masuk;
- $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
- $tanggal_waktu_tap->subDay();
- $source = $jadwal[0]->source;
- $source_id = $jadwal[0]->source_id;
- } else if((strtotime($jamtap) == strtotime("+24 hours", strtotime($before_jam_masuk))) || (strtotime($jamtap) == strtotime("+24 hours", strtotime($after_jam_masuk)))) {
- $slotjam = "Masuk";
- $poin = $setting_poin->jam_masuk;
- $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
- $tanggal_waktu_tap->subDay();
- $source = $jadwal[0]->source;
- $source_id = $jadwal[0]->source_id;
- }
- }
- }
- //-----CASE E-----
- if(strtotime($jam_pulang) == strtotime("00:00:00")) {
- //-----CASE 23-----
- if((strtotime($jamtap) < strtotime("00:00:00")) == false) {
- if((strtotime($jamtap) > strtotime("+24 hours", strtotime($before_jam_pulang))) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($after_jam_pulang)))) {
- $slotjam = "Pulang";
- $poin = $setting_poin->jam_keluar;
- $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
- $tanggal_waktu_tap->subDay();
- $source = $jadwal[3]->source;
- $source_id = $jadwal[3]->source_id;
- } else if((strtotime("+24 hours",strtotime($jamtap)) < strtotime("+24 hours", strtotime($after_jam_pulang)))) {
- $slotjam = "Pulang";
- $poin = $setting_poin->jam_keluar;
- $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
- $tanggal_waktu_tap->subDay();
- $source = $jadwal[3]->source;
- $source_id = $jadwal[3]->source_id;
- } else if((strtotime($jamtap) == strtotime("+24 hours", strtotime($before_jam_pulang))) || (strtotime($jamtap)) == strtotime("+24 hours", strtotime($after_jam_pulang))) {
- $slotjam = "Pulang";
- $poin = $setting_poin->jam_keluar;
- $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
- $tanggal_waktu_tap->subDay();
- $source = $jadwal[3]->source;
- $source_id = $jadwal[3]->source_id;
- }
- }
- }
- //-----CASE F-----
- // if(strtotime($jam_istirahat_selesai) < strtotime($jam_pulang)) {
- // if(strtotime("+24 hours", strtotime($jamtap)) >= strtotime("24:00:00") && strtotime($jamtap) <= strtotime($after_jam_pulang)) {
- // $slotjam = "Pulang";
- // $poin = $setting_poin->jam_keluar;
- // $tanggal_waktu_tap = Carbon::parse($tanggal_waktu_tap);
- // $tanggal_waktu_tap->subDay();
- // $source = $jadwal[0]->source;
- // $source_id = $jadwal[0]->source_id;
- // }
- // }
- }
- $presensi = array(
- 'karyawan_id' => $id_karyawan,
- 'nama_karyawan' => $nama_karyawan,
- 'group_karyawan' => $group_karyawan,
- 'group_id' => $karyawan->group_id ? $karyawan->group_id : null,
- 'jadwal_id' => $karyawan->jadwal_ngeplus_id ? $karyawan->jadwal_ngeplus_id : null,
- 'setting_presensi_id' => 1,
- 'tanggal_dan_waktu_tap' => Carbon::parse($tanggal_waktu_tap)->toDateTimeString(),
- 'tanggal_dan_waktu_tap_static' => $tanggal_waktu_tap_static,
- 'poin' => $poin,
- 'status' => $slotjam == "Masuk" || "Terlambat Masuk" ? $jadwal[0]->status : $slotjam == "Istirahat Mulai" ? $jadwal[1]->status : $slotjam == "Istirahat Selesai" ? $jadwal[2]->status : $slotjam == "Pulang" ? $jadwal[3]->status : null,
- 'slotjam' => $slotjam,
- 'source' => $source,
- 'source_id' => $source_id
- );
- $slotjamkomparasi = $slotjam;
- if($slotjamkomparasi == 'Terlambat Masuk') {
- $slotjamkomparasi = 'Masuk';
- }
- // dd($presensi);
- // $oldpresensi = Presensi::whereDate('tanggal_dan_waktu_tap', '=', Carbon::parse($tanggal_waktu_tap)->toDateString())
- // ->where('status', $jadwal[0]->status)
- // ->where('slotjam', 'like', '%'.$slotjamkomparasi)
- // ->where('source', $jadwal[0]->source)
- // ->where('source_id', $jadwal[0]->source_id)
- // ->first();
- $harian = HarianNgeplus::where('karyawan_id', $karyawan->id)->
- where('source', $source)->
- where('source_id', $source_id)->
- whereDate('tanggal', Carbon::parse($tanggal_waktu_tap)->toDateString())->first();
- // dd($harian);
- // if(isset($oldpresensi)) {
- // $oldpresensi->update($presensi);
- // $data_terinput = $data_terinput + 0;
- // } else if(Carbon::parse(Carbon::parse($tanggal_waktu_tap)->toDateString())->isBetween(strval($jadwal[0]->tanggal_mulai), strval($jadwal[0]->tanggal_selesai))) {
- // } else
- // if(Carbon::parse($tanggal_waktu_tap)->gte(Carbon::parse($jadwal[0]['tanggal_mulai']))
- // if(Carbon::parse($tanggal_waktu_tap)->gte(Carbon::parse($jadwal[0]->tanggal_mulai))
- // && Carbon::parse(Carbon::parse($tanggal_waktu_tap)->toDateString())->lt(Carbon::parse($jadwal[0]['tanggal_selesai'])->addDay())
- // && $harian != null) {
- if($harian != null) {
- // cek jam masuk
- if((($slotjam == 'Masuk') || ($slotjam == 'Terlambat Masuk')) && $harian->slotjam_masuk == null) {
- Presensi::create($presensi);
- $data_terinput = $data_terinput + 1;
- $status_final = $presensi['slotjam'];
- // input harian ngeplus
- self::inputHarianNgeplus($presensi, $presensi['source'], $presensi['source_id']);
- // input ke mingguanjam ngeplus
- self::inputMingguanJamNgeplus($presensi, $presensi['source'], $presensi['source_id']);
- // input ke kph
- self::inputPresensiToKph($presensi, 'nge-plus', $presensi['source'], $presensi['source_id']);
- }
- // cek jam istirahat mulai
- if($slotjam == 'Istirahat Mulai' && $harian->slotjam_istirahat_mulai == null) {
- Presensi::create($presensi);
- $data_terinput = $data_terinput + 1;
- $status_final = $presensi['slotjam'];
- // input harian ngeplus
- self::inputHarianNgeplus($presensi, $presensi['source'], $presensi['source_id']);
- // input ke mingguanjam ngeplus
- self::inputMingguanJamNgeplus($presensi, $presensi['source'], $presensi['source_id']);
- // input ke kph
- self::inputPresensiToKph($presensi, 'nge-plus', $presensi['source'], $presensi['source_id']);
- }
- // cek jam istirahat selesai
- if($slotjam == 'Istirahat Selesai' && $harian->slotjam_istirahat_selesai == null) {
- Presensi::create($presensi);
- $data_terinput = $data_terinput + 1;
- $status_final = $presensi['slotjam'];
- // input harian ngeplus
- self::inputHarianNgeplus($presensi, $presensi['source'], $presensi['source_id']);
- // input ke mingguanjam ngeplus
- self::inputMingguanJamNgeplus($presensi, $presensi['source'], $presensi['source_id']);
- // input ke kph
- self::inputPresensiToKph($presensi, 'nge-plus', $presensi['source'], $presensi['source_id']);
- }
- // cek jam pulang
- if($slotjam == 'Pulang' && $harian->slotjam_pulang == null) {
- Presensi::create($presensi);
- $data_terinput = $data_terinput + 1;
- $status_final = $presensi['slotjam'];
- // input harian ngeplus
- self::inputHarianNgeplus($presensi, $presensi['source'], $presensi['source_id']);
- // input ke mingguanjam ngeplus
- self::inputMingguanJamNgeplus($presensi, $presensi['source'], $presensi['source_id']);
- // input ke kph
- self::inputPresensiToKph($presensi, 'nge-plus', $presensi['source'], $presensi['source_id']);
- }
- // }
- } else {
- $data_terinput = $data_terinput + 0;
- }
- }
- // cek jadwal lebih dari 1
- } else if(count($jadwal) > 1) {
- $prev_id = null;
- for($iz = 0; $iz < count($jadwal); $iz++) {
- // if($iz == 1) {
- // dd($tanggal_waktu_tap);
- // }
- $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');
- $tanggal_waktu_tap_temp = $row[$i]['DateTime'][0];
- // if($hariini >= Carbon::parse($tanggal_mulai)->toDateString() && $hariini < Carbon::parse($tanggal_selesai)->addDay()->toDateString()) {
- /**
- * Ambil jam dr array model baru
- */
- $jam_masuk = null;
- $jam_istirahat_mulai = null;
- $jam_istirahat_selesai = null;
- $jam_pulang = null;
- if(isset($jadwal[$iz])) {
- $jam_masuk = $jadwal[$iz]['jam'];
- }
- if(isset($jadwal[$iz + 1])) {
- $jam_istirahat_mulai = $jadwal[$iz + 1]['jam'];
- }
- if(isset($jadwal[$iz + 2])) {
- $jam_istirahat_selesai = $jadwal[$iz + 2]['jam'];
- }
- if(isset($jadwal[$iz + 3])) {
- $jam_pulang = $jadwal[$iz + 3]['jam'];
- }
- $closing_time = ClosingTime::find(1);
- $setting_closing_time = strtotime($closing_time->jangka_waktu)-strtotime("00:00:00");
- $datang_awal = SettingDatangAwalKhusus::find(1);
- $setting_datang_awal = strtotime($datang_awal->datang_awal)-strtotime("00:00:00");
- // if($iz == 2) {
- // dd($tanggal_waktu_tap);
- // }
- /**
- * Cek Jadwal sebelumnya dan selanjutnya untuk menentukan jam masuk berikutnya
- */
- $after_jam_pulang_next = null;
- $before_jam_masuk_previous = null;
- // cek aturan sekat jadwal
- if(count($jadwal) > 1) {
- if($iz == 0) {
- if(isset($jadwal[$iz + 4])) {
- $setting_presensi = SettingPresensi::find(1);
- if(isset($setting_presensi->toleransi_keterlambatan)) {
- $toleransi = strtotime($setting_presensi->toleransi_keterlambatan)-strtotime("00:00:00");
- $before_jam_masuk_previous = date("H:i:s",strtotime($jadwal[$iz]['jam'])-$setting_datang_awal);
- $jarak_pulang = abs(strtotime($jadwal[$iz]['tanggal_pick']." ".$jadwal[$iz]['jam']) - strtotime($jadwal[$iz + 4]['tanggal_pick']." ".$jadwal[$iz + 4]['jam'])) / 60;
- if($jarak_pulang <= 150) {
- $before_jam_masuk_next = date("H:i:s",strtotime($jadwal[$iz + 4]['jam'])-$toleransi);
- $diff = abs(strtotime($jadwal[$iz]['jam'])-strtotime($before_jam_masuk_next));
- $after_jam_pulang_next = date("H:i:s",strtotime($jadwal[$iz + 3]['jam'])+$diff);
- } else if($jarak_pulang > 150) {
- $before_jam_masuk_next = date("H:i:s",strtotime($jadwal[$iz + 4]['jam'])-$setting_datang_awal);
- $diff = abs(strtotime($jadwal[$iz]['jam'])-strtotime($before_jam_masuk_next));
- $after_jam_pulang_next = date("H:i:s",strtotime($jadwal[$iz + 3]['jam'])+$diff);
- }
- }
- } else if(!isset($jadwal[$iz + 4])) {
- $before_jam_masuk_previous = date("H:i:s",strtotime($jadwal[$iz]['jam'])-$setting_datang_awal);
- $after_jam_pulang_next = date("H:i:s",strtotime("+5 hours", strtotime($jadwal[$iz + 3]['jam'])));
- }
- // $setting_presensi = SettingPresensi::find(1);
- // if(isset($setting_presensi->toleransi_keterlambatan)) {
- // $toleransi = strtotime($setting_presensi->toleransi_keterlambatan)-strtotime("00:00:00");
- // $before_jam_masuk_previous = date("H:i:s",strtotime($jadwal[$iz]['jam_masuk'])-$setting_datang_awal);
- // // pake if check 2,5 jam disini
- // //ketika jadwal di awal / jadwal pertama
- // $after_jam_pulang_next = date("H:i:s",strtotime($jadwal[$iz + 1]['jam_masuk'])-$toleransi);
- // // dd($before_jam_masuk_previous);
- // }
- // //tambah else if, prinsipnya muirip di jadwal tengah
- } else if($iz > 0) {
- // buat jadwal di tengah
- if(isset($jadwal[$iz + 4])) {
- $setting_presensi = SettingPresensi::find(1);
- if(isset($setting_presensi->toleransi_keterlambatan)) {
- $toleransi = strtotime($setting_presensi->toleransi_keterlambatan)-strtotime("00:00:00");
- // ambil jarak masuk
- $jarak_masuk = abs(strtotime($jadwal[$iz]['tanggal_pick']." ".$jadwal[$iz]['jam']) - strtotime($jadwal[$iz - 1]['tanggal_pick']." ".$jadwal[$iz - 1]['jam'])) / 60;
- // ambil jarak pulang
- $jarak_pulang = abs(strtotime($jadwal[$iz]['tanggal_pick']." ".$jadwal[$iz]['jam']) - strtotime($jadwal[$iz + 4]['tanggal_pick']." ".$jadwal[$iz + 4]['jam'])) / 60;
- if($jarak_masuk <= 150) {
- $before_jam_masuk_previous1 = date("H:i:s",strtotime($jadwal[$iz]['jam'])-$toleransi);
- $before_jam_masuk_previous = date("H:i:s",strtotime("+1 second",strtotime($before_jam_masuk_previous1)));
- } else if($jarak_masuk > 150) {
- $before_jam_masuk_previous1 = date("H:i:s",strtotime($jadwal[$iz]['jam'])-$setting_datang_awal);
- $before_jam_masuk_previous = date("H:i:s",strtotime("+1 second",strtotime($before_jam_masuk_previous1)));
- }
- /**
- * Cek lebih lanjut
- */
- if($jarak_pulang <= 150) {
- $before_jam_masuk_next = date("H:i:s",strtotime($jadwal[$iz + 4]['jam'])-$toleransi);
- $diff = abs(strtotime($jadwal[$iz]['jam_pulang'])-strtotime($before_jam_masuk_next));
- $after_jam_pulang_next = date("H:i:s",strtotime($jadwal[$iz]['jam'])+$diff);
- } else if($jarak_pulang > 150) {
- // $before_jam_masuk_next = date("H:i:s",strtotime($jadwal[$iz + 1]['jam_masuk'])-$setting_datang_awal);
- // $diff = abs(strtotime($jadwal[$iz]['jam_pulang'])-strtotime($before_jam_masuk_next));
- // $after_jam_pulang_next = date("H:i:s",strtotime($jadwal[$iz]['jam_pulang'])+$diff);
- $after_jam_pulang_next = date("H:i:s",strtotime("+2 hours", strtotime($jadwal[$iz]['jam'])));
- }
- // dd(date("H:i:s", 1636732200));
- }
- // } else if(!isset($jadwal[$iz + 1])) {
- // buat jadwal di ujung
- } else if($iz == count($jadwal) - 1) {
- $setting_presensi = SettingPresensi::find(1);
- if(isset($setting_presensi->toleransi_keterlambatan)) {
- $toleransi = strtotime($setting_presensi->toleransi_keterlambatan)-strtotime("00:00:00");
- $jarak_masuk = abs(strtotime($jadwal[$iz]['tanggal_pick']." ".$jadwal[$iz]['jam']) - strtotime($jadwal[$iz - 1]['tanggal_pick']." ".$jadwal[$iz - 1]['jam'])) / 60;
- if($jarak_masuk <= 150) {
- $before_jam_masuk_previous1 = date("H:i:s",strtotime($jadwal[$iz]['jam'])-$toleransi);
- $before_jam_masuk_previous = date("H:i:s",strtotime("+1 second",strtotime($before_jam_masuk_previous1)));
- } else if($jarak_masuk > 150) {
- $before_jam_masuk_previous = date("H:i:s",strtotime($jadwal[$iz]['jam'])-$setting_datang_awal);
- }
- $after_jam_pulang_next = date("H:i:s",strtotime("+5 hours", strtotime($jadwal[$iz]['jam'])));
- }
- }
- // $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
- // // datang awal ganti ama jam pulang previous
- // $before_jam_masuk_previous = date("H:i:s",strtotime($jadwal[$iz]['jam_masuk'])-$setting_datang_awal);
- // } else if($jarak_masuk <= 150) {
- // // 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 if($jarak_pulang <= 150) {
- // // jika jaraknya < 2.5 jam maka pake toleransi
- // // toleransi ganti dengan jam masuk next - toleransi (after jam pulang next 1)
- // $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 if($jarak_masuk <= 150) {
- // // 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_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 if($jarak_pulang <= 150) {
- // // // 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($iz == 0) {
- // // dd($jadwal[$iz]);
- // dd($before_jam_masuk_previous."-".$after_jam_pulang_next);
- // }
- $setting_presensi = SettingPresensi::find(1);
- if(isset($setting_presensi->toleransi_keterlambatan)) {
- $toleransi = strtotime($setting_presensi->toleransi_keterlambatan)-strtotime("00:00:00");
- // $toleransi_min = strtotime("+1 minutes",strtotime($setting_presensi->toleransi_keterlambatan))-strtotime("00:00:00");
- $max_istirahat_mulai = strtotime($jam_istirahat_selesai)-$toleransi-strtotime("00:00:00");
- $max_istirahat_selesai = strtotime($jam_pulang)-$toleransi-strtotime("00:00:00");
- // dd($max_istirahat_selesai);
- // $before_jam_masuk = date("H:i:s",strtotime($jam_masuk)-$setting_datang_awal);
- $before_jam_masuk = $before_jam_masuk_previous;
- $after_jam_masuk = date("H:i:s",strtotime($jam_masuk)+$toleransi);
- $before_jam_istirahat_mulai = date("H:i:s",strtotime($jam_istirahat_mulai)-$toleransi);
- // $after_jam_istirahat_mulai = date("H:i:s",strtotime($jam_istirahat_selesai)-$toleransi_min);
- $before_jam_istirahat_selesai = date("H:i:s",strtotime($jam_istirahat_selesai)-$toleransi);
- // $after_jam_istirahat_selesai = date("H:i:s",strtotime($jam_pulang)-$toleransi_min);
- $before_jam_pulang = date("H:i:s",strtotime($jam_pulang)-$toleransi);
- // $after_jam_pulang = date("H:i:s",strtotime($jam_pulang)+$setting_closing_time);
- $after_jam_pulang = $after_jam_pulang_next;
- // if($iz == 0) {
- // dd($after_jam_pulang);
- // }
- // cek tanggal tap dengan tanggal pick di sini (tba)
- // jam normal
- // assign tanggal dan mundurin pake temp
- // default nya jangan diassign dulu
- // diset dulu default null
- // diset
- $tanggal_waktu_tap_temp = null;
- if($jadwal[$iz]['slotjam'] == "Masuk" && ($jamtap > $before_jam_masuk) && ($jamtap < $after_jam_masuk)) {
- $slotjam = "Masuk";
- $poin = $setting_poin->jam_masuk;
- $source = $jadwal[$iz]['source'];
- $source_id = $jadwal[$iz]['source_id'];
- $tanggal_waktu_tap_temp = Carbon::parse($row[$i]['DateTime'][0]);
- } elseif($jadwal[$iz]['slotjam'] == "Masuk" && ($jamtap == $before_jam_masuk) || ($jamtap == $after_jam_masuk)) {
- $slotjam = "Masuk";
- $poin = $setting_poin->jam_masuk;
- $source = $jadwal[$iz]['source'];
- $source_id = $jadwal[$iz]['source_id'];
- $tanggal_waktu_tap_temp = Carbon::parse($row[$i]['DateTime'][0]);
- } elseif($jadwal[$iz]['slotjam'] == "Terlambat Masuk" && ($jamtap > $after_jam_masuk) && ($jamtap < $before_jam_istirahat_mulai)) {
- $slotjam = "Terlambat Masuk";
- $poin = $setting_poin->jam_masuk;
- $source = $jadwal[$iz]['source'];
- $source_id = $jadwal[$iz]['source_id'];
- $tanggal_waktu_tap_temp = Carbon::parse($row[$i]['DateTime'][0]);
- } elseif($jadwal[$iz]['slotjam'] == "Istirahat Mulai" && ($jamtap > $before_jam_istirahat_mulai) && ($jamtap < $before_jam_istirahat_selesai)) {
- $slotjam = "Istirahat Mulai";
- $poin = $setting_poin->jam_mulai_istirahat;
- $source = $jadwal[$iz]['source'];
- $source_id = $jadwal[$iz]['source_id'];
- $tanggal_waktu_tap_temp = Carbon::parse($row[$i]['DateTime'][0]);
- } elseif($jadwal[$iz]['slotjam'] == "Istirahat Mulai" && ($jamtap == $before_jam_istirahat_mulai)) {
- $slotjam = "Istirahat Mulai";
- $poin = $setting_poin->jam_mulai_istirahat;
- $source = $jadwal[$iz]['source'];
- $source_id = $jadwal[$iz]['source_id'];
- $tanggal_waktu_tap_temp = Carbon::parse($row[$i]['DateTime'][0]);
- } elseif($jadwal[$iz]['slotjam'] == "Istirahat Selesai" && ($jamtap > $before_jam_istirahat_selesai) && ($jamtap < $before_jam_pulang)) {
- $slotjam = "Istirahat Selesai";
- $poin = $setting_poin->jam_mulai_istirahat;
- $source = $jadwal[$iz]['source'];
- $source_id = $jadwal[$iz]['source_id'];
- $tanggal_waktu_tap_temp = Carbon::parse($row[$i]['DateTime'][0]);
- } elseif($jadwal[$iz]['slotjam'] == "Istirahat Selesai" && $jamtap == $before_jam_istirahat_selesai) {
- $slotjam = "Istirahat Selesai";
- $poin = $setting_poin->jam_mulai_istirahat;
- $source = $jadwal[$iz]['source'];
- $source_id = $jadwal[$iz]['source_id'];
- $tanggal_waktu_tap_temp = Carbon::parse($row[$i]['DateTime'][0]);
- } elseif($jadwal[$iz]['slotjam'] == "Pulang" && ($jamtap > $before_jam_pulang) && ($jamtap < $after_jam_pulang)) {
- $slotjam = "Pulang";
- $poin = $setting_poin->jam_keluar;
- $source = $jadwal[$iz]['source'];
- $source_id = $jadwal[$iz]['source_id'];
- $tanggal_waktu_tap_temp = Carbon::parse($row[$i]['DateTime'][0]);
- } elseif($jadwal[$iz]['slotjam'] == "Pulang" && ($jamtap == $before_jam_pulang) || ($jamtap == $after_jam_pulang)) {
- $slotjam = "Pulang";
- $poin = $setting_poin->jam_keluar;
- $source = $jadwal[$iz]['source'];
- $source_id = $jadwal[$iz]['source_id'];
- $tanggal_waktu_tap_temp = Carbon::parse($row[$i]['DateTime'][0]);
- } else if($jadwal[$iz]['slotjam'] == "Pulang" && strtotime($before_jam_pulang) > strtotime($after_jam_pulang)) {
- // if($iz == 2) {
- // dd(strtotime("+24 hours", strtotime($jamtap)) >= strtotime("24:00:00"));
- // }
- if(strtotime($jamtap) >= strtotime($before_jam_pulang) && strtotime($jamtap) < strtotime("24:00:00")) {
- $slotjam = "Pulang";
- $poin = $setting_poin->jam_keluar;
- $source = $jadwal[$iz]['source'];
- $source_id = $jadwal[$iz]['source_id'];
- $tanggal_waktu_tap_temp = Carbon::parse($row[$i]['DateTime'][0]);
- } else if(strtotime("+24 hours", strtotime($jamtap)) >= strtotime("24:00:00") && strtotime("+24 hours", strtotime($jamtap)) <= strtotime("+24 hours", strtotime($after_jam_pulang))) {
- // if($iz == 0) {
- // dd('masuk');
- // }
- $slotjam = "Pulang";
- $poin = $setting_poin->jam_keluar;
- // mundurin pake temp
- $tanggal_waktu_tap_temp = Carbon::parse($row[$i]['DateTime'][0]);
- $tanggal_waktu_tap_temp->subDay();
- $source = $jadwal[$iz]['source'];
- $source_id = $jadwal[$iz]['source_id'];
- }
- }
- // if($iz == 0) {
- // dd($tanggal_waktu_tap_temp);
- // }
- //-----CASE A----- (jam pulang < issel)
- if(strtotime($jam_pulang) < strtotime($jam_istirahat_selesai)) {
- // dd(strtotime("00:00:00"));
- // Jika jam tap < jam 12 malam
- if((strtotime($jamtap) < strtotime("24:00:00"))) {
- //-----CASE 1-----
- if($jadwal[$iz]['slotjam'] == "Istirahat Selesai" && (strtotime($jamtap) > strtotime($before_jam_istirahat_selesai)) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($before_jam_pulang)))) {
- $slotjam = "Istirahat Selesai";
- $poin = $setting_poin->jam_selesai_istirahat;
- $source = $jadwal[$iz]['source'];
- $source_id = $jadwal[$iz]['source_id'];
- $tanggal_waktu_tap_temp = Carbon::parse($row[$i]['DateTime'][0]);
- } elseif($jadwal[$iz]['slotjam'] == "Istirahat Selesai" && ($jamtap == $before_jam_istirahat_selesai)) {
- $slotjam = "Istirahat Selesai";
- $poin = $setting_poin->jam_selesai_istirahat;
- $source = $jadwal[$iz]['source'];
- $source_id = $jadwal[$iz]['source_id'];
- $tanggal_waktu_tap_temp = Carbon::parse($row[$i]['DateTime'][0]);
- }
- //-----CASE 2-----
- if(strtotime("+24 hours", strtotime($before_jam_pulang)) < strtotime("24:00:00")) {
- if($jadwal[$iz]['slotjam'] == "Pulang" && strtotime($jamtap) > strtotime("+24 hours", strtotime($before_jam_pulang)) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($after_jam_pulang)))) {
- $slotjam = "Pulang";
- $poin = $setting_poin->jam_keluar;
- $source = $jadwal[$iz]['source'];
- $source_id = $jadwal[$iz]['source_id'];
- $tanggal_waktu_tap_temp = Carbon::parse($row[$i]['DateTime'][0]);
- } elseif($jadwal[$iz]['slotjam'] == "Pulang" && (strtotime($jamtap) == strtotime("+24 hours", strtotime($before_jam_pulang))) || (strtotime($jamtap) == strtotime("+24 hours", strtotime($after_jam_pulang)))) {
- $slotjam = "Pulang";
- $poin = $setting_poin->jam_keluar;
- $source = $jadwal[$iz]['source'];
- $source_id = $jadwal[$iz]['source_id'];
- $tanggal_waktu_tap_temp = Carbon::parse($row[$i]['DateTime'][0]);
- }
- }
- }
- // Jika jam tap >= jam 12 malam
- if((strtotime($jamtap) >= strtotime("00:00:00"))) {
- // 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)));
- //-----CASE 3----- temp
- if($jadwal[$iz]['slotjam'] == "Istirahat Selesai" && (strtotime("+24 hours", strtotime($jamtap)) > strtotime($before_jam_istirahat_selesai)) && (strtotime("+24 hours", strtotime($jamtap)) < strtotime("+24 hours", strtotime($before_jam_pulang)))) {
- $slotjam = "Istirahat Selesai";
- $poin = $setting_poin->jam_selesai_istirahat;
- $tanggal_waktu_tap_temp = Carbon::parse($row[$i]['DateTime'][0]);
- $tanggal_waktu_tap_temp->subDay();
- $source = $jadwal[$iz]['source'];
- $source_id = $jadwal[$iz]['source_id'];
- } elseif($jadwal[$iz]['slotjam'] == "Istirahat Selesai" && ($jamtap == $before_jam_istirahat_selesai)) {
- $slotjam = "Istirahat Selesai";
- $poin = $setting_poin->jam_selesai_istirahat;
- $tanggal_waktu_tap_temp = Carbon::parse($row[$i]['DateTime'][0]);
- $tanggal_waktu_tap_temp->subDay();
- $source = $jadwal[$iz]['source'];
- $source_id = $jadwal[$iz]['source_id'];
- }
- //-----CASE 4----- temp
- if(strtotime("+24 hours", strtotime($before_jam_pulang)) >= strtotime("00:00:00")) {
- if($jadwal[$iz]['slotjam'] == "Pulang" && (strtotime("+24 hours", strtotime($jamtap)) > strtotime("+24 hours", strtotime($before_jam_pulang))) && (strtotime("+24 hours", strtotime($jamtap)) < strtotime("+24 hours", strtotime($after_jam_pulang)))) {
- $slotjam = "Pulang";
- $poin = $setting_poin->jam_keluar;
- $tanggal_waktu_tap_temp = Carbon::parse($row[$i]['DateTime'][0]);
- $tanggal_waktu_tap_temp->subDay();
- $source = $jadwal[$iz]['source'];
- $source_id = $jadwal[$iz]['source_id'];
- } elseif($jadwal[$iz]['slotjam'] == "Pulang" && (strtotime("+24 hours", strtotime($jamtap)) == strtotime("+24 hours", strtotime($before_jam_pulang))) || (strtotime($jamtap) == strtotime("+24 hours", strtotime($after_jam_pulang)))) {
- $slotjam = "Pulang";
- $poin = $setting_poin->jam_keluar;
- $tanggal_waktu_tap_temp = Carbon::parse($row[$i]['DateTime'][0]);
- $tanggal_waktu_tap_temp->subDay();
- $source = $jadwal[$iz]['source'];
- $source_id = $jadwal[$iz]['source_id'];
- }
- }
- //-----CASE 5----- temp
- if(strtotime("+24 hours", strtotime($before_jam_pulang)) < strtotime("24:00:00")) {
- if($jadwal[$iz]['slotjam'] == "Pulang" && (strtotime("+24 hours", strtotime($jamtap)) > strtotime("+24 hours", strtotime($before_jam_pulang))) && (strtotime("+24 hours", strtotime($jamtap)) < strtotime("+24 hours", strtotime($after_jam_pulang)))) {
- $slotjam = "Pulang";
- $poin = $setting_poin->jam_keluar;
- $tanggal_waktu_tap_temp = Carbon::parse($row[$i]['DateTime'][0]);
- $tanggal_waktu_tap_temp->subDay();
- $source = $jadwal[$iz]['source'];
- $source_id = $jadwal[$iz]['source_id'];
- } elseif($jadwal[$iz]['slotjam'] == "Pulang" && (strtotime($jamtap) == strtotime($before_jam_pulang)) || (strtotime($jamtap) == strtotime("+24 hours", strtotime($after_jam_pulang)))) {
- $slotjam = "Pulang";
- $poin = $setting_poin->jam_keluar;
- $tanggal_waktu_tap_temp = Carbon::parse($row[$i]['DateTime'][0]);
- $tanggal_waktu_tap_temp->subDay();
- $source = $jadwal[$iz]['source'];
- $source_id = $jadwal[$iz]['source_id'];
- }
- }
- //-----CASE 6----- temp
- if(strtotime($after_jam_pulang) == strtotime("00:00:00")) {
- if($jadwal[$iz]['slotjam'] == "Pulang" && (strtotime($jamtap) > strtotime($before_jam_pulang)) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($after_jam_pulang)))) {
- $slotjam = "Pulang";
- $poin = $setting_poin->jam_keluar;
- $tanggal_waktu_tap_temp = Carbon::parse($row[$i]['DateTime'][0]);
- $tanggal_waktu_tap_temp->subDay();
- $source = $jadwal[$iz]['source'];
- $source_id = $jadwal[$iz]['source_id'];
- } elseif($jadwal[$iz]['slotjam'] == "Pulang" && (strtotime($jamtap) == strtotime($before_jam_pulang)) || (strtotime($jamtap) == strtotime("+24 hours", strtotime($after_jam_pulang)))) {
- $slotjam = "Pulang";
- $poin = $setting_poin->jam_keluar;
- $tanggal_waktu_tap_temp = Carbon::parse($row[$i]['DateTime'][0]);
- $tanggal_waktu_tap_temp->subDay();
- $source = $jadwal[$iz]['source'];
- $source_id = $jadwal[$iz]['source_id'];
- }
- }
- }
- }
- //-----CASE B-----
- if(strtotime($jam_istirahat_selesai) < strtotime($jam_istirahat_mulai)) {
- // dd(strtotime("00:00:00"));
- // Jika jam tap < jam 12 malam
- if((strtotime($jamtap) < strtotime("24:00:00"))) {
- //-----CASE 7-----
- if($jadwal[$iz]['slotjam'] == "Istirahat Mulai" && (strtotime($jamtap) > strtotime($before_jam_istirahat_mulai)) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)))) {
- $slotjam = "Istirahat Mulai";
- $poin = $setting_poin->jam_mulai_istirahat;
- $source = $jadwal[$iz]['source'];
- $source_id = $jadwal[$iz]['source_id'];
- $tanggal_waktu_tap_temp = Carbon::parse($row[$i]['DateTime'][0]);
- } elseif($jadwal[$iz]['slotjam'] == "Istirahat Mulai" && ($jamtap == $before_jam_istirahat_mulai)) {
- $slotjam = "Istirahat Mulai";
- $poin = $setting_poin->jam_mulai_istirahat;
- $source = $jadwal[$iz]['source'];
- $source_id = $jadwal[$iz]['source_id'];
- $tanggal_waktu_tap_temp = Carbon::parse($row[$i]['DateTime'][0]);
- }
- //-----CASE 8-----
- if(strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)) < strtotime("24:00:00")) {
- if($jadwal[$iz]['slotjam'] == "Istirahat Selesai" && strtotime($jamtap) > strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($before_jam_pulang)))) {
- $slotjam = "Istirahat Selesai";
- $poin = $setting_poin->jam_selesai_istirahat;
- $source = $jadwal[$iz]['source'];
- $source_id = $jadwal[$iz]['source_id'];
- $tanggal_waktu_tap_temp = Carbon::parse($row[$i]['DateTime'][0]);
- } elseif($jadwal[$iz]['slotjam'] == "Istirahat Selesai" && (strtotime($jamtap) == strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)))) {
- $slotjam = "Istirahat Selesai";
- $poin = $setting_poin->jam_selesai_istirahat;
- $source = $jadwal[$iz]['source'];
- $source_id = $jadwal[$iz]['source_id'];
- $tanggal_waktu_tap_temp = Carbon::parse($row[$i]['DateTime'][0]);
- }
- }
- }
- // Jika jam tap >= jam 12 malam
- if((strtotime($jamtap) >= strtotime("00:00:00"))) {
- //-----CASE 9----- temp
- if($jadwal[$iz]['slotjam'] == "Istirahat Mulai" && (strtotime("+24 hours", strtotime($jamtap)) > strtotime($before_jam_istirahat_mulai)) && (strtotime("+24 hours", strtotime($jamtap)) < strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)))) {
- $slotjam = "Istirahat Mulai";
- $poin = $setting_poin->jam_mulai_istirahat;
- $tanggal_waktu_tap_temp = Carbon::parse($row[$i]['DateTime'][0]);
- $tanggal_waktu_tap_temp->subDay();
- $source = $jadwal[$iz]['source'];
- $source_id = $jadwal[$iz]['source_id'];
- } elseif($jadwal[$iz]['slotjam'] == "Istirahat Mulai" && ($jamtap == $before_jam_istirahat_mulai)) {
- $slotjam = "Istirahat Mulai";
- $poin = $setting_poin->jam_mulai_istirahat;
- $tanggal_waktu_tap_temp = Carbon::parse($row[$i]['DateTime'][0]);
- $tanggal_waktu_tap_temp->subDay();
- $source = $jadwal[$iz]['source'];
- $source_id = $jadwal[$iz]['source_id'];
- }
- //-----CASE 10----- temp
- if(strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)) >= strtotime("00:00:00")) {
- if($jadwal[$iz]['slotjam'] == "Istirahat Selesai" && (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)))) {
- $slotjam = "Istirahat Selesai";
- $poin = $setting_poin->jam_selesai_istirahat;
- $tanggal_waktu_tap_temp = Carbon::parse($row[$i]['DateTime'][0]);
- $tanggal_waktu_tap_temp->subDay();
- $source = $jadwal[$iz]['source'];
- $source_id = $jadwal[$iz]['source_id'];
- } elseif($jadwal[$iz]['slotjam'] == "Istirahat Selesai" && (strtotime("+24 hours", strtotime($jamtap)) == strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)))) {
- $slotjam = "Istirahat Selesai";
- $poin = $setting_poin->jam_selesai_istirahat;
- $tanggal_waktu_tap_temp = Carbon::parse($row[$i]['DateTime'][0]);
- $tanggal_waktu_tap_temp->subDay();
- $source = $jadwal[$iz]['source'];
- $source_id = $jadwal[$iz]['source_id'];
- }
- }
- //-----CASE 11----- temp
- if(strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)) < strtotime("24:00:00")) {
- if($jadwal[$iz]['slotjam'] == "Istirahat Selesai" && (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)))) {
- $slotjam = "Istirahat Selesai";
- $poin = $setting_poin->jam_selesai_istirahat;
- $tanggal_waktu_tap_temp = Carbon::parse($row[$i]['DateTime'][0]);
- $tanggal_waktu_tap_temp->subDay();
- $source = $jadwal[$iz]['source'];
- $source_id = $jadwal[$iz]['source_id'];
- } elseif($jadwal[$iz]['slotjam'] == "Istirahat Selesai" && (strtotime($jamtap) == strtotime($before_jam_istirahat_selesai))) {
- $slotjam = "Istirahat Selesai";
- $poin = $setting_poin->jam_selesai_istirahat;
- $tanggal_waktu_tap_temp = Carbon::parse($row[$i]['DateTime'][0]);
- $tanggal_waktu_tap_temp->subDay();
- $source = $jadwal[$iz]['source'];
- $source_id = $jadwal[$iz]['source_id'];
- }
- }
- }
- }
- //-----CASE C-----
- if(strtotime($jam_istirahat_mulai) < strtotime($jam_masuk)) {
- // dd(strtotime("00:00:00"));
- // Jika jam tap < jam 12 malam
- if((strtotime($jamtap) < strtotime("24:00:00"))) {
- //-----CASE 12-----
- if((strtotime($jamtap) > strtotime($before_jam_masuk)) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)))) {
- if($jadwal[$iz]['slotjam'] == "Masuk" && (strtotime($jamtap) > strtotime($before_jam_masuk)) && (strtotime($jamtap) < strtotime($after_jam_masuk))) {
- $slotjam = "Masuk";
- $poin = $setting_poin->jam_masuk;
- $source = $jadwal[$iz]['source'];
- $source_id = $jadwal[$iz]['source_id'];
- $tanggal_waktu_tap_temp = Carbon::parse($row[$i]['DateTime'][0]);
- }
- if($jadwal[$iz]['slotjam'] == "Masuk" && (strtotime($jamtap) > strtotime($before_jam_masuk)) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($after_jam_masuk)))) {
- $slotjam = "Masuk";
- $poin = $setting_poin->jam_masuk;
- $source = $jadwal[$iz]['source'];
- $source_id = $jadwal[$iz]['source_id'];
- $tanggal_waktu_tap_temp = Carbon::parse($row[$i]['DateTime'][0]);
- // dipindahin ke case D dimundurin temp
- // if((strtotime("+24 hours", strtotime($jamtap)) == strtotime("24:00:00"))) {
- // $slotjam = "Masuk";
- // $poin = $setting_poin->jam_masuk;
- // $source = $jadwal[$iz]['source'];
- // $source_id = $jadwal[$iz]['source_id'];
- // }
- if($jadwal[$iz]['slotjam'] == "Masuk" && (strtotime($jamtap) < strtotime("24:00:00")) && (strtotime($jamtap) > strtotime($before_jam_masuk))) {
- $slotjam = "Masuk";
- $poin = $setting_poin->jam_masuk;
- $source = $jadwal[$iz]['source'];
- $source_id = $jadwal[$iz]['source_id'];
- $tanggal_waktu_tap_temp = Carbon::parse($row[$i]['DateTime'][0]);
- }
- if($jadwal[$iz]['slotjam'] == "Masuk" && (strtotime("+24 hours", strtotime($jamtap)) > strtotime("24:00:00")) && (strtotime("+24 hours", strtotime($jamtap)) < strtotime("+24 hours", strtotime($after_jam_masuk)))) {
- $slotjam = "Masuk";
- $poin = $setting_poin->jam_masuk;
- $source = $jadwal[$iz]['source'];
- $source_id = $jadwal[$iz]['source_id'];
- $tanggal_waktu_tap_temp = Carbon::parse($row[$i]['DateTime'][0]);
- }
- }
- if($jadwal[$iz]['slotjam'] == "Masuk" && (strtotime($jamtap) > strtotime($after_jam_masuk)) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)))) {
- $slotjam = "Terlambat Masuk";
- $poin = $setting_poin->jam_masuk;
- $source = $jadwal[$iz]['source'];
- $source_id = $jadwal[$iz]['source_id'];
- $tanggal_waktu_tap_temp = Carbon::parse($row[$i]['DateTime'][0]);
- // dimundurin -- pindah ke case >= 2400
- // if((strtotime("+24 hours", strtotime($jamtap)) == strtotime("24:00:00"))) {
- // $slotjam = "Terlambat Masuk";
- // $poin = $setting_poin->jam_masuk;
- // $source = $jadwal[$iz]['source'];
- // $source_id = $jadwal[$iz]['source_id'];
- // }
- if($jadwal[$iz]['slotjam'] == "Masuk" && (strtotime($jamtap) < strtotime("24:00:00")) && (strtotime($jamtap) > strtotime($after_jam_masuk))) {
- $slotjam = "Terlambat Masuk";
- $poin = $setting_poin->jam_masuk;
- $source = $jadwal[$iz]['source'];
- $source_id = $jadwal[$iz]['source_id'];
- $tanggal_waktu_tap_temp = Carbon::parse($row[$i]['DateTime'][0]);
- }
- if($jadwal[$iz]['slotjam'] == "Masuk" && (strtotime("+24 hours", strtotime($jamtap)) > strtotime("24:00:00")) && (strtotime("+24 hours", strtotime($jamtap)) < strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)))) {
- $slotjam = "Terlambat Masuk";
- $poin = $setting_poin->jam_masuk;
- $source = $jadwal[$iz]['source'];
- $source_id = $jadwal[$iz]['source_id'];
- $tanggal_waktu_tap_temp = Carbon::parse($row[$i]['DateTime'][0]);
- }
- }
- } elseif($jadwal[$iz]['slotjam'] == "Masuk" && ($jamtap == $before_jam_masuk)) {
- $slotjam = "Masuk";
- $poin = $setting_poin->jam_masuk;
- $source = $jadwal[$iz]['source'];
- $source_id = $jadwal[$iz]['source_id'];
- $tanggal_waktu_tap_temp = Carbon::parse($row[$i]['DateTime'][0]);
- }
- //-----CASE 13-----
- if(strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)) < strtotime("24:00:00")) {
- if($jadwal[$iz]['slotjam'] == "Istirahat Mulai" && strtotime($jamtap) > strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($after_jam_istirahat_selesai)))) {
- $slotjam = "Istirahat Mulai";
- $poin = $setting_poin->jam_mulai_istirahat;
- $source = $jadwal[$iz]['source'];
- $source_id = $jadwal[$iz]['source_id'];
- $tanggal_waktu_tap_temp = Carbon::parse($row[$i]['DateTime'][0]);
- } elseif($jadwal[$iz]['slotjam'] == "Istirahat Mulai" && (strtotime($jamtap) == strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)))) {
- $slotjam = "Istirahat Mulai";
- $poin = $setting_poin->jam_mulai_istirahat;
- $source = $jadwal[$iz]['source'];
- $source_id = $jadwal[$iz]['source_id'];
- $tanggal_waktu_tap_temp = Carbon::parse($row[$i]['DateTime'][0]);
- }
- }
- //-----CASE 14-----
- if(strtotime($after_jam_masuk) < strtotime("24:00:00")) {
- if(strtotime($before_jam_istirahat_mulai) < strtotime("24:00:00")) {
- if($jadwal[$iz]['slotjam'] == "Masuk" && (strtotime($jamtap) > strtotime($after_jam_masuk)) && (strtotime($jamtap) < strtotime($before_jam_istirahat_mulai))) {
- $slotjam = "Terlambat Masuk";
- $poin = $setting_poin->jam_masuk;
- $source = $jadwal[$iz]['source'];
- $source_id = $jadwal[$iz]['source_id'];
- $tanggal_waktu_tap_temp = Carbon::parse($row[$i]['DateTime'][0]);
- }
- }
- }
- if(strtotime($jam_masuk) == strtotime("00:00:00")) {
- //-----CASE 15-----
- if(strtotime($before_jam_masuk) < strtotime("00:00:00")) {
- if($jadwal[$iz]['slotjam'] == "Masuk" && (strtotime($jamtap) > strtotime("+24 hours", strtotime($before_jam_masuk))) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($after_jam_masuk)))) {
- $slotjam = "Masuk";
- $poin = $setting_poin->jam_masuk;
- $source = $jadwal[$iz]['source'];
- $source_id = $jadwal[$iz]['source_id'];
- $tanggal_waktu_tap_temp = Carbon::parse($row[$i]['DateTime'][0]);
- } elseif($jadwal[$iz]['slotjam'] == "Masuk" && (strtotime($jamtap) == strtotime("+24 hours", strtotime($before_jam_masuk)))) {
- $slotjam = "Masuk";
- $poin = $setting_poin->jam_masuk;
- $source = $jadwal[$iz]['source'];
- $source_id = $jadwal[$iz]['source_id'];
- $tanggal_waktu_tap_temp = Carbon::parse($row[$i]['DateTime'][0]);
- }
- }
- }
- }
- // Jika jam tap >= jam 12 malam -- temp
- if((strtotime($jamtap) >= strtotime("00:00:00"))) {
- // 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)));
- //-----CASE 16---- temp
- if($jadwal[$iz]['slotjam'] == "Masuk" && (strtotime("+24 hours", strtotime($jamtap)) < strtotime($after_jam_masuk)) && (strtotime("+24 hours", strtotime($jamtap)) < strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)))) {
- $slotjam = "Masuk";
- $poin = $setting_poin->jam_masuk;
- $tanggal_waktu_tap_temp = Carbon::parse($row[$i]['DateTime'][0]);
- $tanggal_waktu_tap_temp->subDay();
- $source = $jadwal[$iz]['source'];
- $source_id = $jadwal[$iz]['source_id'];
- }
- if($jadwal[$iz]['slotjam'] == "Masuk" && ($jamtap == $before_jam_masuk)) {
- $slotjam = "Masuk";
- $poin = $setting_poin->jam_masuk;
- $tanggal_waktu_tap_temp = Carbon::parse($row[$i]['DateTime'][0]);
- $tanggal_waktu_tap_temp->subDay();
- $source = $jadwal[$iz]['source'];
- $source_id = $jadwal[$iz]['source_id'];
- }
- //-----CASE 17----- temp
- if(strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)) >= strtotime("00:00:00")) {
- if($jadwal[$iz]['slotjam'] == "Istirahat Mulai" && (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)))) {
- $slotjam = "Istirahat Mulai";
- $poin = $setting_poin->jam_mulai_istirahat;
- $tanggal_waktu_tap_temp = Carbon::parse($row[$i]['DateTime'][0]);
- $tanggal_waktu_tap_temp->subDay();
- $source = $jadwal[$iz]['source'];
- $source_id = $jadwal[$iz]['source_id'];
- } elseif($jadwal[$iz]['slotjam'] == "Istirahat Mulai" && (strtotime("+24 hours", strtotime($jamtap)) == strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)))) {
- $slotjam = "Istirahat Mulai";
- $poin = $setting_poin->jam_mulai_istirahat;
- $tanggal_waktu_tap_temp = Carbon::parse($row[$i]['DateTime'][0]);
- $tanggal_waktu_tap_temp->subDay();
- $source = $jadwal[$iz]['source'];
- $source_id = $jadwal[$iz]['source_id'];
- }
- }
- // temp
- if(strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)) >= strtotime("00:00:00")) {
- if($jadwal[$iz]['slotjam'] == "Istirahat Selesai" && (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)))) {
- $slotjam = "Istirahat Selesai";
- $poin = $setting_poin->jam_selesai_istirahat;
- $tanggal_waktu_tap_temp = Carbon::parse($row[$i]['DateTime'][0]);
- $tanggal_waktu_tap_temp->subDay();
- $source = $jadwal[$iz]['source'];
- $source_id = $jadwal[$iz]['source_id'];
- } elseif($jadwal[$iz]['slotjam'] == "Istirahat Selesai" && (strtotime("+24 hours", strtotime($jamtap)) == strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)))) {
- $slotjam = "Istirahat Selesai";
- $poin = $setting_poin->jam_selesai_istirahat;
- $tanggal_waktu_tap_temp = Carbon::parse($row[$i]['DateTime'][0]);
- $tanggal_waktu_tap_temp->subDay();
- $source = $jadwal[$iz]['source'];
- $source_id = $jadwal[$iz]['source_id'];
- }
- }
- // temp
- if(strtotime("+24 hours", strtotime($before_jam_pulang)) >= strtotime("00:00:00")) {
- if($jadwal[$iz]['slotjam'] == "Pulang" && (strtotime("+24 hours", strtotime($jamtap)) > strtotime("+24 hours", strtotime($before_jam_pulang))) && (strtotime("+24 hours", strtotime($jamtap)) < strtotime("+24 hours", strtotime($after_jam_pulang)))) {
- $slotjam = "Pulang";
- $poin = $setting_poin->jam_keluar;
- $tanggal_waktu_tap_temp = Carbon::parse($row[$i]['DateTime'][0]);
- $tanggal_waktu_tap_temp->subDay();
- $source = $jadwal[$iz]['source'];
- $source_id = $jadwal[$iz]['source_id'];
- } elseif($jadwal[$iz]['slotjam'] == "Pulang" && (strtotime("+24 hours", strtotime($jamtap)) == strtotime("+24 hours", strtotime($before_jam_pulang))) || (strtotime("+24 hours", strtotime($jamtap)) == strtotime("+24 hours", strtotime($after_jam_pulang)))) {
- $slotjam = "Pulang";
- $poin = $setting_poin->jam_keluar;
- $tanggal_waktu_tap_temp = Carbon::parse($row[$i]['DateTime'][0]);
- $tanggal_waktu_tap_temp->subDay();
- $source = $jadwal[$iz]['source'];
- $source_id = $jadwal[$iz]['source_id'];
- }
- }
- //-----CASE 18----- temp
- if(strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)) < strtotime("24:00:00")) {
- if($jadwal[$iz]['slotjam'] == "Istirahat Mulai" && (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)))) {
- $slotjam = "Istirahat Mulai";
- $poin = $setting_poin->jam_mulai_istirahat;
- $tanggal_waktu_tap_temp = Carbon::parse($row[$i]['DateTime'][0]);
- $tanggal_waktu_tap_temp->subDay();
- $source = $jadwal[$iz]['source'];
- $source_id = $jadwal[$iz]['source_id'];
- } elseif($jadwal[$iz]['slotjam'] == "Istirahat Mulai" && (strtotime($jamtap) == strtotime($before_jam_istirahat_mulai))) {
- $slotjam = "Istirahat Mulai";
- $poin = $setting_poin->jam_mulai_istirahat;
- $tanggal_waktu_tap_temp = Carbon::parse($row[$i]['DateTime'][0]);
- $tanggal_waktu_tap_temp->subDay();
- $source = $jadwal[$iz]['source'];
- $source_id = $jadwal[$iz]['source_id'];
- }
- }
- // temp
- if(strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)) < strtotime("24:00:00")) {
- if($jadwal[$iz]['slotjam'] == "Istirahat Selesai" && (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)))) {
- $slotjam = "Istirahat Selesai";
- $poin = $setting_poin->jam_selesai_istirahat;
- $tanggal_waktu_tap_temp = Carbon::parse($row[$i]['DateTime'][0]);
- $tanggal_waktu_tap_temp->subDay();
- $source = $jadwal[$iz]['source'];
- $source_id = $jadwal[$iz]['source_id'];
- } elseif($jadwal[$iz]['slotjam'] == "Istirahat Selesai" && (strtotime($jamtap) == strtotime($before_jam_istirahat_selesai))) {
- $slotjam = "Istirahat Selesai";
- $poin = $setting_poin->jam_selesai_istirahat;
- $tanggal_waktu_tap_temp = Carbon::parse($row[$i]['DateTime'][0]);
- $tanggal_waktu_tap_temp->subDay();
- $source = $jadwal[$iz]['source'];
- $source_id = $jadwal[$iz]['source_id'];
- }
- }
- // temp
- if(strtotime("+24 hours", strtotime($before_jam_pulang)) < strtotime("24:00:00")) {
- if($jadwal[$iz]['slotjam'] == "Pulang" && (strtotime("+24 hours", strtotime($jamtap)) > strtotime("+24 hours", strtotime($before_jam_pulang))) && (strtotime("+24 hours", strtotime($jamtap)) < strtotime("+24 hours", strtotime($after_jam_pulang)))) {
- $slotjam = "Pulang";
- $poin = $setting_poin->jam_keluar;
- $tanggal_waktu_tap_temp = Carbon::parse($row[$i]['DateTime'][0]);
- $tanggal_waktu_tap_temp->subDay();
- $source = $jadwal[$iz]['source'];
- $source_id = $jadwal[$iz]['source_id'];
- } elseif($jadwal[$iz]['slotjam'] == "Pulang" && (strtotime($jamtap) == strtotime($before_jam_pulang))) {
- $slotjam = "Pulang";
- $poin = $setting_poin->jam_keluar;
- $tanggal_waktu_tap_temp = Carbon::parse($row[$i]['DateTime'][0]);
- $tanggal_waktu_tap_temp->subDay();
- $source = $jadwal[$iz]['source'];
- $source_id = $jadwal[$iz]['source_id'];
- }
- }
- //-----CASE 19----- temp
- if(strtotime($after_jam_masuk) >= strtotime("00:00:00")) {
- if(strtotime($before_jam_istirahat_mulai) >= strtotime("24:00:00")) {
- if($jadwal[$iz]['slotjam'] == "Masuk" && (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)))) {
- $slotjam = "Terlambat Masuk";
- $poin = $setting_poin->jam_masuk;
- $tanggal_waktu_tap_temp = Carbon::parse($row[$i]['DateTime'][0]);
- $tanggal_waktu_tap_temp->subDay();
- $source = $jadwal[$iz]['source'];
- $source_id = $jadwal[$iz]['source_id'];
- }
- }
- }
- //-----CASE 19.1----- temp
- if(strtotime($after_jam_masuk) < strtotime("24:00:00")) {
- if(strtotime($before_jam_istirahat_mulai) >= strtotime("24:00:00")) {
- if($jadwal[$iz]['slotjam'] == "Masuk" && (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)))) {
- $slotjam = "Terlambat Masuk";
- $poin = $setting_poin->jam_masuk;
- $tanggal_waktu_tap_temp = Carbon::parse($row[$i]['DateTime'][0]);
- $tanggal_waktu_tap_temp->subDay();
- $source = $jadwal[$iz]['source'];
- $source_id = $jadwal[$iz]['source_id'];
- }
- if($jadwal[$iz]['slotjam'] == "Masuk" && (strtotime("+24 hours", strtotime($jamtap)) > strtotime($after_jam_masuk)) && (strtotime("+24 hours", strtotime($jamtap)) < strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)))) {
- $slotjam = "Terlambat Masuk";
- $poin = $setting_poin->jam_masuk;
- $tanggal_waktu_tap_temp = Carbon::parse($row[$i]['DateTime'][0]);
- $tanggal_waktu_tap_temp->subDay();
- $source = $jadwal[$iz]['source'];
- $source_id = $jadwal[$iz]['source_id'];
- }
- } elseif(strtotime($before_jam_istirahat_mulai) < strtotime("24:00:00")) {
- if($jadwal[$iz]['slotjam'] == "Masuk" && (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)))) {
- $slotjam = "Terlambat Masuk";
- $poin = $setting_poin->jam_masuk;
- $tanggal_waktu_tap_temp = Carbon::parse($row[$i]['DateTime'][0]);
- $tanggal_waktu_tap_temp->subDay();
- $source = $jadwal[$iz]['source'];
- $source_id = $jadwal[$iz]['source_id'];
- }
- if($jadwal[$iz]['slotjam'] == "Masuk" && (strtotime("+24 hours", strtotime($jamtap)) > strtotime($after_jam_masuk)) && (strtotime("+24 hours", strtotime($jamtap)) < strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)))) {
- $slotjam = "Terlambat Masuk";
- $poin = $setting_poin->jam_masuk;
- $tanggal_waktu_tap_temp = Carbon::parse($row[$i]['DateTime'][0]);
- $tanggal_waktu_tap_temp->subDay();
- $source = $jadwal[$iz]['source'];
- $source_id = $jadwal[$iz]['source_id'];
- }
- }
- }
- //-----CASE 20----- temp
- if(strtotime($before_jam_masuk) == strtotime("00:00:00")) {
- if($jadwal[$iz]['slotjam'] == "Masuk" && (strtotime($jamtap) > strtotime($before_jam_masuk)) && (strtotime($jamtap) < strtotime($before_jam_istirahat_mulai))) {
- $slotjam = "Masuk";
- $poin = $setting_poin->jam_masuk;
- $tanggal_waktu_tap_temp = Carbon::parse($row[$i]['DateTime'][0]);
- $tanggal_waktu_tap_temp->subDay();
- $source = $jadwal[$iz]['source'];
- $source_id = $jadwal[$iz]['source_id'];
- } elseif($jadwal[$iz]['slotjam'] == "Masuk" && (strtotime($jamtap) == strtotime($before_jam_masuk)) || (strtotime($jamtap) == strtotime($after_jam_pulang))) {
- $slotjam = "Masuk";
- $poin = $setting_poin->jam_masuk;
- $tanggal_waktu_tap_temp = Carbon::parse($row[$i]['DateTime'][0]);
- $tanggal_waktu_tap_temp->subDay();
- $source = $jadwal[$iz]['source'];
- $source_id = $jadwal[$iz]['source_id'];
- }
- }
- if(strtotime($jam_masuk) == strtotime("00:00:00")) {
- //-----CASE 21----- temp
- if(strtotime($before_jam_masuk) < strtotime("00:00:00")) {
- if($jadwal[$iz]['slotjam'] == "Masuk" && (strtotime($jamtap) > strtotime($before_jam_masuk)) && (strtotime($jamtap) < strtotime($before_jam_istirahat_mulai))) {
- $slotjam = "Masuk";
- $poin = $setting_poin->jam_masuk;
- $tanggal_waktu_tap_temp = Carbon::parse($row[$i]['DateTime'][0]);
- $tanggal_waktu_tap_temp->subDay();
- $source = $jadwal[$iz]['source'];
- $source_id = $jadwal[$iz]['source_id'];
- } elseif($jadwal[$iz]['slotjam'] == "Masuk" && (strtotime($jamtap) == strtotime($before_jam_istirahat_mulai))) {
- $slotjam = "Masuk";
- $poin = $setting_poin->jam_masuk;
- $tanggal_waktu_tap_temp = Carbon::parse($row[$i]['DateTime'][0]);
- $tanggal_waktu_tap_temp->subDay();
- $source = $jadwal[$iz]['source'];
- $source_id = $jadwal[$iz]['source_id'];
- }
- }
- }
- }
- }
- //-----CASE D-----
- if(strtotime($jam_masuk) == strtotime("00:00:00")) {
- //-----CASE 22----- temp
- if((strtotime($jamtap) >= strtotime("00:00:00"))) {
- if($jadwal[$iz]['slotjam'] == "Masuk" && (strtotime($jamtap) > strtotime("+24 hours", strtotime($before_jam_masuk))) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($after_jam_masuk)))) {
- $slotjam = "Masuk";
- $poin = $setting_poin->jam_masuk;
- $tanggal_waktu_tap_temp = Carbon::parse($row[$i]['DateTime'][0]);
- $tanggal_waktu_tap_temp->subDay();
- $source = $jadwal[$iz]['source'];
- $source_id = $jadwal[$iz]['source_id'];
- } else if($jadwal[$iz]['slotjam'] == "Masuk" && (strtotime("+24 hours",strtotime($jamtap)) < strtotime("+24 hours", strtotime($after_jam_masuk)))) {
- $slotjam = "Masuk";
- $poin = $setting_poin->jam_masuk;
- $tanggal_waktu_tap_temp = Carbon::parse($row[$i]['DateTime'][0]);
- $tanggal_waktu_tap_temp->subDay();
- $source = $jadwal[$iz]['source'];
- $source_id = $jadwal[$iz]['source_id'];
- } else if($jadwal[$iz]['slotjam'] == "Masuk" && (strtotime($jamtap) == strtotime("+24 hours", strtotime($before_jam_masuk))) || (strtotime($jamtap) == strtotime("+24 hours", strtotime($after_jam_masuk)))) {
- $slotjam = "Masuk";
- $poin = $setting_poin->jam_masuk;
- $tanggal_waktu_tap_temp = Carbon::parse($row[$i]['DateTime'][0]);
- $tanggal_waktu_tap_temp->subDay();
- $source = $jadwal[$iz]['source'];
- $source_id = $jadwal[$iz]['source_id'];
- }
- }
- }
- //-----CASE E-----
- if(strtotime($jam_pulang) == strtotime("00:00:00")) {
- //-----CASE 23----- temp
- if((strtotime($jamtap) >= strtotime("00:00:00"))) {
- if($jadwal[$iz]['slotjam'] == "Pulang" && (strtotime($jamtap) > strtotime("+24 hours", strtotime($before_jam_pulang))) && (strtotime($jamtap) < strtotime("+24 hours", strtotime($after_jam_pulang)))) {
- $slotjam = "Pulang";
- $poin = $setting_poin->jam_keluar;
- $tanggal_waktu_tap_temp = Carbon::parse($row[$i]['DateTime'][0]);
- $tanggal_waktu_tap_temp->subDay();
- $source = $jadwal[$iz]['source'];
- $source_id = $jadwal[$iz]['source_id'];
- } else if($jadwal[$iz]['slotjam'] == "Pulang" && (strtotime("+24 hours",strtotime($jamtap)) < strtotime("+24 hours", strtotime($after_jam_pulang)))) {
- $slotjam = "Pulang";
- $poin = $setting_poin->jam_keluar;
- $tanggal_waktu_tap_temp = Carbon::parse($row[$i]['DateTime'][0]);
- $tanggal_waktu_tap_temp->subDay();
- $source = $jadwal[$iz]['source'];
- $source_id = $jadwal[$iz]['source_id'];
- } else if($jadwal[$iz]['slotjam'] == "Pulang" && (strtotime($jamtap) == strtotime("+24 hours", strtotime($before_jam_pulang))) || (strtotime($jamtap) == strtotime("+24 hours", strtotime($after_jam_pulang)))) {
- $slotjam = "Pulang";
- $poin = $setting_poin->jam_keluar;
- $tanggal_waktu_tap_temp = Carbon::parse($row[$i]['DateTime'][0]);
- $tanggal_waktu_tap_temp->subDay();
- $source = $jadwal[$iz]['source'];
- $source_id = $jadwal[$iz]['source_id'];
- }
- }
- }
- //-----CASE F-----
- // if(strtotime($jam_istirahat_selesai) < strtotime($jam_pulang)) {
- // if(strtotime("+24 hours", strtotime($jamtap)) >= strtotime("24:00:00") && strtotime($jamtap) <= strtotime($after_jam_pulang)) {
- // $slotjam = "Pulang";
- // $poin = $setting_poin->jam_keluar;
- // $tanggal_waktu_tap_temp = Carbon::parse($row[$i]['DateTime'][0]);
- // $tanggal_waktu_tap_temp->subDay();
- // $source = $jadwal[$iz]['source'];
- // $source_id = $jadwal[$iz]['source_id'];
- // }
- // }
- }
- $presensi = array(
- 'karyawan_id' => $id_karyawan,
- 'nama_karyawan' => $nama_karyawan,
- 'group_karyawan' => $group_karyawan,
- 'group_id' => $karyawan->group_id ? $karyawan->group_id : null,
- 'jadwal_id' => $karyawan->jadwal_ngeplus_id ? $karyawan->jadwal_ngeplus_id : null,
- 'setting_presensi_id' => 1,
- 'tanggal_dan_waktu_tap' => Carbon::parse($tanggal_waktu_tap_temp)->toDateTimeString(), // pake temp
- 'tanggal_dan_waktu_tap_static' => $tanggal_waktu_tap_static,
- 'poin' => $poin,
- // 'status' => isset($jadwal[$iz]) ? $jadwal[$iz]['status'] : null,
- 'status' => $slotjam == "Masuk" || "Terlambat Masuk" ? $jadwal[$iz]['status'] : $slotjam == "Istirahat Mulai" ? $jadwal[$iz]['status'] : $slotjam == "Istirahat Selesai" ? $jadwal[$iz]['status'] : $slotjam == "Pulang" ? $jadwal[$iz]['status'] : null,
- 'slotjam' => $slotjam,
- 'source' => $source,
- 'source_id' => $source_id
- );
- $slotjamkomparasi = $slotjam;
- if($slotjamkomparasi == 'Terlambat Masuk') {
- $slotjamkomparasi = 'Masuk';
- }
- // if($iz == 0) {
- // dd($presensi);
- // }
- // $oldpresensi = Presensi::whereDate('tanggal_dan_waktu_tap', '=', Carbon::parse($tanggal_waktu_tap_temp)->toDateString())
- // ->where('status', $jadwal[$iz]['status'])
- // ->where('slotjam', 'like', '%'.$slotjamkomparasi)
- // ->where('source', $jadwal[$iz]['source'])
- // ->where('source_id', $jadwal[$iz]['source_id'])
- // ->first();
- $harian = HarianNgeplus::where('karyawan_id', $karyawan->id)->
- where('source', $source)->
- where('source_id', $source_id)->
- whereDate('tanggal', Carbon::parse($tanggal_waktu_tap_temp)->toDateString())->first();
- // if($iz == 1) {
- // dd($presensi);
- // }
- // if(isset($oldpresensi) || $oldpresensi !== null) {
- // dd('tidak lolos');
- // $oldpresensi->update($presensi);
- // $data_terinput = $data_terinput + 0;
- // } else if(Carbon::parse(Carbon::parse($tanggal_waktu_tap_temp)->toDateString())->isBetween(strval($jadwal[$iz]->tanggal_mulai), strval($jadwal[$iz]->tanggal_selesai))) {
- // } else
- //tanggal ganti pake temp
- if(Carbon::parse($tanggal_waktu_tap_temp)->gte(Carbon::parse($jadwal[$iz]['tanggal_mulai']))
- // if(Carbon::parse($tanggal_waktu_tap_temp)->gte(Carbon::parse($jadwal[$iz]->tanggal_mulai))
- && Carbon::parse(Carbon::parse($tanggal_waktu_tap_temp)->toDateString())->lt(Carbon::parse($jadwal[$iz]['tanggal_selesai'])->addDay())) {
- // if($iz == 2) {
- // dd($jadwal[$iz]['tanggal_pick']);
- // }
- if($jadwal[$iz]['tanggal_pick'] == Carbon::parse($tanggal_waktu_tap_temp)->toDateString() && $harian != null) { // taro di atas sebelum cek slotjam
- // if($iz == 1) {
- // dd('masuk');
- // }
- // $prev_id = $jadwal[$iz]->id;
- // cek jam masuk
- // dd(Carbon::parse($tanggal_waktu_tap_temp)->toTimeString());
- // cek jika ada tap sama persis maka langsung end loop / break
- // tap sama persis sampe ke detiknya
- if($harian->slotjam_masuk == Carbon::parse($tanggal_waktu_tap_temp)->toTimeString() ||
- $harian->slotjam_istirahat_mulai == Carbon::parse($tanggal_waktu_tap_temp)->toTimeString() ||
- $harian->slotjam_istirahat_selesai == Carbon::parse($tanggal_waktu_tap_temp)->toTimeString() ||
- $harian->slotjam_pulang == Carbon::parse($tanggal_waktu_tap_temp)->toTimeString()) {
- break;
- }
- if((($slotjam == 'Masuk') || ($slotjam == 'Terlambat Masuk')) && $harian->slotjam_masuk == null && ($jadwal[$iz]['slotjam'] == "Masuk" || $jadwal[$iz]['slotjam'] == "Terlambat Masuk")) {
- Presensi::create($presensi);
- $data_terinput = $data_terinput + 1;
- $status_final = $presensi['slotjam'];
- // input harian ngeplus
- self::inputHarianNgeplus($presensi, $presensi['source'], $presensi['source_id']);
- // input ke mingguanjam ngeplus
- self::inputMingguanJamNgeplus($presensi, $presensi['source'], $presensi['source_id']);
- // input ke kph
- self::inputPresensiToKph($presensi, 'nge-plus', $presensi['source'], $presensi['source_id']);
- break;
- }
- // cek jam istirahat mulai
- if($slotjam == 'Istirahat Mulai' && $harian->slotjam_istirahat_mulai == null && $jadwal[$iz]['slotjam'] == "Istirahat Mulai") {
- Presensi::create($presensi);
- $data_terinput = $data_terinput + 1;
- $status_final = $presensi['slotjam'];
- // input harian ngeplus
- self::inputHarianNgeplus($presensi, $presensi['source'], $presensi['source_id']);
- // input ke mingguanjam ngeplus
- self::inputMingguanJamNgeplus($presensi, $presensi['source'], $presensi['source_id']);
- // input ke kph
- self::inputPresensiToKph($presensi, 'nge-plus', $presensi['source'], $presensi['source_id']);
- break;
- }
- // cek jam istirahat selesai
- if($slotjam == 'Istirahat Selesai' && $harian->slotjam_istirahat_selesai == null && $jadwal[$iz]['slotjam'] == "Istirahat Selesai") {
- Presensi::create($presensi);
- $data_terinput = $data_terinput + 1;
- $status_final = $presensi['slotjam'];
- // input harian ngeplus
- self::inputHarianNgeplus($presensi, $presensi['source'], $presensi['source_id']);
- // input ke mingguanjam ngeplus
- self::inputMingguanJamNgeplus($presensi, $presensi['source'], $presensi['source_id']);
- // input ke kph
- self::inputPresensiToKph($presensi, 'nge-plus', $presensi['source'], $presensi['source_id']);
- break;
- }
- // cek jam pulang
- if($slotjam == 'Pulang' && $harian->slotjam_pulang == null && $jadwal[$iz]['slotjam'] == "Pulang") {
- Presensi::create($presensi);
- $data_terinput = $data_terinput + 1;
- $status_final = $presensi['slotjam'];
- // input harian ngeplus
- self::inputHarianNgeplus($presensi, $presensi['source'], $presensi['source_id']);
- // input ke mingguanjam ngeplus
- self::inputMingguanJamNgeplus($presensi, $presensi['source'], $presensi['source_id']);
- // input ke kph
- self::inputPresensiToKph($presensi, 'nge-plus', $presensi['source'], $presensi['source_id']);
- break;
- }
- }
- // if($iz == 1) {
- // dd($presensi);
- // }
- // $tanggal_waktu_tap = null;
- // }
- // $prev_id = $jadwal[$iz]['id'];
- } else {
- $data_terinput = $data_terinput + 0;
- }
- // $tanggal_waktu_tap = $tanggal_waktu_tap_static;
- }
- }
- }
- }
- }
- }
- // if(isset($row[$i + 1]) && ($row[$i]['PIN'][0] == $row[$i + 1]['PIN'][0]) && ($row[$i]['DateTime'][0] == $row[$i + 1]['DateTime'][0])) {
- // continue;
- // }
- }
- }
- } catch (Exception $e) {
- echo $e->message;
- }
- // slotjam tidak dimasukan ke return krn tdk valid jika multijadwal hanya ambil slotjam terakhir
- // return response()->json(['status' => 200, 'message' => 'Data Terinput:' . $data_terinput, 'status_presensi' => $slotjam]);
- return response()->json(['status' => 200, 'message' => 'Data Terinput:' . $data_terinput]);
- }
Add Comment
Please, Sign In to add comment