Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- namespace App\Http\Controllers;
- use Illuminate\Http\Request;
- use Illuminate\Support\Facades\DB;
- use App\Presensi;
- use App\Karyawan;
- use App\SettingPresensi;
- use App\SettingPoin;
- use App\JadwalHariKerja;
- use App\JadwalLibur;
- use App\JadwalNgeplus;
- use App\JadwalIzin;
- use App\ClosingTime;
- use App\DatangAwal;
- use Carbon\Carbon;
- use App\Presensiraw;
- class MachineController extends Controller
- {
- public function inputMesin(Request $request)
- {
- $data_terinput = 0;
- $status_final = null;
- try {
- if (isset($request->message)) {
- $data = $request->message;
- $row = $data;
- $pernah_masuk = 0;
- $pernah_istirahat_mulai = 0;
- $pernah_istirahat_selesai = 0;
- $pernah_pulang = 0;
- $karyawan_terdeteksi = null;
- $karyawan_terakhir = null;
- for ($i = 0; $i < count($row); $i++) {
- $id_karyawan = $row[$i]['PIN'][0];
- $tanggal_waktu_tap = $row[$i]['DateTime'][0];
- // $rawdata = array(
- // 'pin'=> $id_karyawan,
- // 'date_time' => $tanggal_waktu_tap
- // );
- // Presensiraw::create($rawdata);
- // if (date('Y-m-d', strtotime($tanggal_waktu_tap)) == "2020-12-15") { // debugging manual
- // if (date('Y-m-d', strtotime($tanggal_waktu_tap)) >= date('Y-m-d')) { // real data
- $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(1);
- $adajadwal = 0;
- $jadwal = null;
- $jadwal_terpilih = null;
- $status_libur = 0;
- $status_izin = 0;
- // cek jadwal libur dan jadwal izin
- $jadwal_libur = JadwalLibur::where('karyawan_id', '=', $id_karyawan)->get();
- $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;
- }
- }
- for($l = 0; $l < count($jadwal_libur); $l++) {
- $mulai_libur = Carbon::parse($jadwal_libur[$l]->tanggal_mulai)->format('Y-m-d');
- $selesai_libur = Carbon::parse($jadwal_libur[$l]->tanggal_selesai)->format('Y-m-d');
- $tanggal_sekarang = Carbon::parse($tanggal_waktu_tap)->format('Y-m-d');
- if(($tanggal_sekarang >= $mulai_libur) && ($tanggal_sekarang <= $selesai_libur)) {
- $status_libur = 1;
- }
- }
- // dd($status_libur == 0 && $status_izin == 0);
- if($status_libur == 0 && $status_izin == 0) {
- // ambil jadwal master
- $jadwal_id_terpilih = null;
- if ($karyawan->jadwal_id != null && $karyawan->jadwal_group_id == null) {
- $jadwal_id_terpilih = $karyawan->jadwal_id;
- // dd("case 1 = jadwal_id");
- // cek jadwal rutin dulu
- $jadwal = JadwalHariKerja::where([
- ['karyawan_id', '=', $id_karyawan],
- ['source_id', '=', $jadwal_id_terpilih]
- ])->first();
- $hari = Carbon::parse($tanggal_waktu_tap)->format('w');
- //Pilih jadwal harus mulai dari sini
- if(isset($jadwal)) {
- if(($hari == 0) && ($jadwal->checkbox_harikerja_minggu)) {
- $adajadwal = 1;
- }
- if(($hari == 1) && ($jadwal->checkbox_harikerja_senin)) {
- $adajadwal = 1;
- }
- if(($hari == 2) && ($jadwal->checkbox_harikerja_selasa)) {
- $adajadwal = 1;
- }
- if(($hari == 3) && ($jadwal->checkbox_harikerja_rabu)) {
- $adajadwal = 1;
- }
- if(($hari == 4) && ($jadwal->checkbox_harikerja_kamis)) {
- $adajadwal = 1;
- }
- if(($hari == 5) && ($jadwal->checkbox_harikerja_jumat)) {
- $adajadwal = 1;
- }
- if(($hari == 6) && ($jadwal->checkbox_harikerja_sabtu)) {
- $adajadwal = 1;
- }
- // dd($jadwal->checkbox_harikerja_jumat);
- }
- if($adajadwal == 1) {
- $jadwal_terpilih = $jadwal;
- }
- }
- if ($karyawan->jadwal_id == null && $karyawan->jadwal_group_id != null) {
- $jadwal_id_terpilih = $karyawan->jadwal_group_id;
- // dd("case 2 = jadwal_group_id");
- // cek jadwal rutin dulu
- $jadwal = JadwalHariKerja::where([
- ['karyawan_id', '=', $id_karyawan],
- ['source_id', '=', $jadwal_id_terpilih]
- ])->first();
- $hari = Carbon::parse($tanggal_waktu_tap)->format('w');
- //Pilih jadwal harus mulai dari sini
- if(isset($jadwal)) {
- if(($hari == 0) && ($jadwal->checkbox_harikerja_minggu)) {
- $adajadwal = 1;
- }
- if(($hari == 1) && ($jadwal->checkbox_harikerja_senin)) {
- $adajadwal = 1;
- }
- if(($hari == 2) && ($jadwal->checkbox_harikerja_selasa)) {
- $adajadwal = 1;
- }
- if(($hari == 3) && ($jadwal->checkbox_harikerja_rabu)) {
- $adajadwal = 1;
- }
- if(($hari == 4) && ($jadwal->checkbox_harikerja_kamis)) {
- $adajadwal = 1;
- }
- if(($hari == 5) && ($jadwal->checkbox_harikerja_jumat)) {
- $adajadwal = 1;
- }
- if(($hari == 6) && ($jadwal->checkbox_harikerja_sabtu)) {
- $adajadwal = 1;
- }
- // dd($jadwal->checkbox_harikerja_jumat);
- }
- if($adajadwal == 1) {
- $jadwal_terpilih = $jadwal;
- }
- }
- if ($karyawan->jadwal_id != null && $karyawan->jadwal_group_id != null) {
- $jadwal_id_terpilih = $karyawan->jadwal_id;
- // cek jadwal rutin dulu
- $jadwal = JadwalHariKerja::where([
- ['karyawan_id', '=', $id_karyawan],
- ['source_id', '=', $jadwal_id_terpilih]
- ])->first();
- $hari = Carbon::parse($tanggal_waktu_tap)->format('w');
- //Pilih jadwal harus mulai dari sini
- if(isset($jadwal)) {
- if(($hari == 0) && ($jadwal->checkbox_harikerja_minggu == 1)) {
- $adajadwal = 1;
- }
- if(($hari == 1) && ($jadwal->checkbox_harikerja_senin == 1)) {
- $adajadwal = 1;
- }
- if(($hari == 2) && ($jadwal->checkbox_harikerja_selasa == 1)) {
- $adajadwal = 1;
- }
- if(($hari == 3) && ($jadwal->checkbox_harikerja_rabu == 1)) {
- $adajadwal = 1;
- }
- if(($hari == 4) && ($jadwal->checkbox_harikerja_kamis == 1)) {
- $adajadwal = 1;
- }
- if(($hari == 5) && ($jadwal->checkbox_harikerja_jumat == 1)) {
- $adajadwal = 1;
- }
- if(($hari == 6) && ($jadwal->checkbox_harikerja_sabtu == 1)) {
- $adajadwal = 1;
- }
- }
- if($adajadwal == 1) {
- $jadwal_terpilih = $jadwal;
- }
- if($adajadwal == 0) {
- $jadwal_id_terpilih = $karyawan->jadwal_group_id;
- $jadwal = JadwalHariKerja::where([
- ['karyawan_id', '=', $id_karyawan],
- ['source_id', '=', $jadwal_id_terpilih]
- ])->first();
- $jadwal_terpilih = $jadwal;
- }
- }
- if(isset($jadwal_terpilih)) {
- // dd("masuk sini");
- $jam_masuk = $jadwal_terpilih->jam_masuk;
- $jam_istirahat_mulai = $jadwal_terpilih->jam_istirahat_mulai;
- $jam_istirahat_selesai = $jadwal_terpilih->jam_istirahat_selesai;
- $jam_pulang = $jadwal_terpilih->jam_pulang;
- $setting_presensi = SettingPresensi::find(1);
- $closing_time = ClosingTime::find(1);
- $datang_awal = DatangAwal::find(1);
- $setting_datang_awal = strtotime($datang_awal->datang_awal)-strtotime("00:00:00");
- $setting_closing_time = strtotime($closing_time->jangka_waktu)-strtotime("00:00:00");
- if(isset($setting_presensi->toleransi_keterlambatan)) {
- $toleransi = strtotime($setting_presensi->toleransi_keterlambatan)-strtotime("00:00:00");
- // dd($jadwal_terpilih);
- // $max_istirahat_mulai = strtotime($jam_istirahat_selesai)-$toleransi-strtotime("00:00:00");
- // $max_istirahat_selesai = strtotime($jam_pulang)-$toleransi-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");
- $before_jam_masuk = date("H:i:s",strtotime($jam_masuk)-$setting_datang_awal);
- $after_jam_masuk = date("H:i:s",strtotime($jam_masuk)+$toleransi);
- // dd(date("H:i:s",strtotime($jam_istirahat_mulai)+$max_istirahat_mulai));
- $before_jam_istirahat_mulai = date("H:i:s",strtotime($jam_istirahat_mulai)-$toleransi);
- $after_jam_istirahat_mulai = date("H:i:s",strtotime($jam_istirahat_mulai)+$max_istirahat_mulai);
- $before_jam_istirahat_selesai = date("H:i:s",strtotime($jam_istirahat_selesai)-$toleransi);
- $after_jam_istirahat_selesai = date("H:i:s",strtotime($jam_istirahat_selesai)+$max_istirahat_selesai);
- $before_jam_pulang = date("H:i:s",strtotime($jam_pulang)-$toleransi);
- $after_jam_pulang = date("H:i:s",strtotime($jam_pulang)+$setting_closing_time);
- if(($jamtap > $before_jam_masuk) && ($jamtap < $after_jam_masuk)) {
- $slotjam = "Masuk";
- $poin = $setting_poin->jam_masuk;
- } elseif(($jamtap == $before_jam_masuk) || ($jamtap == $after_jam_masuk)) {
- $slotjam = "Masuk";
- $poin = $setting_poin->jam_masuk;
- }
- if(($jamtap > $after_jam_masuk) && ($jamtap < $before_jam_istirahat_mulai)) {
- $slotjam = "Terlambat Masuk";
- $poin = $setting_poin->jam_masuk;
- }
- if(($jamtap > $before_jam_istirahat_mulai) && ($jamtap < $before_jam_istirahat_selesai)) {
- $slotjam = "Istirahat Mulai";
- $poin = $setting_poin->jam_mulai_istirahat;
- } elseif(($jamtap == $before_jam_istirahat_mulai)) {
- $slotjam = "Istirahat Mulai";
- $poin = $setting_poin->jam_mulai_istirahat;
- }
- if(($jamtap > $before_jam_istirahat_selesai) && ($jamtap < $before_jam_pulang)) {
- $slotjam = "Istirahat Selesai";
- $poin = $setting_poin->jam_selesai_istirahat;
- } elseif(($jamtap == $before_jam_istirahat_selesai)) {
- $slotjam = "Istirahat Selesai";
- $poin = $setting_poin->jam_selesai_istirahat;
- }
- if(($jamtap > $before_jam_pulang) && ($jamtap < $after_jam_pulang)) {
- $slotjam = "Pulang";
- $poin = $setting_poin->jam_keluar;
- } elseif(($jamtap == $before_jam_pulang) || ($jamtap == $after_jam_pulang)) {
- $slotjam = "Pulang";
- $poin = $setting_poin->jam_keluar;
- }
- //-----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;
- } elseif(($jamtap == $before_jam_istirahat_selesai)) {
- $slotjam = "Istirahat Selesai";
- $poin = $setting_poin->jam_selesai_istirahat;
- }
- //-----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;
- } 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;
- }
- }
- }
- // 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;
- } elseif(($jamtap == $before_jam_istirahat_selesai)) {
- $slotjam = "Istirahat Selesai";
- $poin = $setting_poin->jam_selesai_istirahat;
- }
- //-----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;
- } 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;
- }
- }
- //-----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;
- } elseif((strtotime($jamtap) == strtotime($before_jam_pulang)) || (strtotime($jamtap) == strtotime("+24 hours", strtotime($after_jam_pulang)))) {
- $slotjam = "Pulang";
- $poin = $setting_poin->jam_keluar;
- }
- }
- //-----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;
- } elseif((strtotime($jamtap) == strtotime($before_jam_pulang)) || (strtotime($jamtap) == strtotime("+24 hours", strtotime($after_jam_pulang)))) {
- $slotjam = "Pulang";
- $poin = $setting_poin->jam_keluar;
- }
- }
- }
- }
- //-----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;
- } elseif(($jamtap == $before_jam_istirahat_mulai)) {
- $slotjam = "Istirahat Mulai";
- $poin = $setting_poin->jam_mulai_istirahat;
- }
- //-----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;
- } elseif((strtotime($jamtap) == strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)))) {
- $slotjam = "Istirahat Selesai";
- $poin = $setting_poin->jam_selesai_istirahat;
- }
- }
- }
- // 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;
- } elseif(($jamtap == $before_jam_istirahat_mulai)) {
- $slotjam = "Istirahat Mulai";
- $poin = $setting_poin->jam_mulai_istirahat;
- }
- //-----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;
- } elseif((strtotime("+24 hours", strtotime($jamtap)) == strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)))) {
- $slotjam = "Istirahat Selesai";
- $poin = $setting_poin->jam_selesai_istirahat;
- }
- }
- //-----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;
- } elseif((strtotime($jamtap) == strtotime($before_jam_istirahat_selesai))) {
- $slotjam = "Istirahat Selesai";
- $poin = $setting_poin->jam_selesai_istirahat;
- }
- }
- }
- }
- //-----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)))) {
- $slotjam = "Masuk";
- $poin = $setting_poin->jam_masuk;
- } elseif(($jamtap == $before_jam_masuk)) {
- $slotjam = "Masuk";
- $poin = $setting_poin->jam_masuk;
- }
- //-----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;
- } elseif((strtotime($jamtap) == strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)))) {
- $slotjam = "Istirahat Mulai";
- $poin = $setting_poin->jam_mulai_istirahat;
- }
- }
- //-----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;
- }
- }
- }
- 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;
- } elseif((strtotime($jamtap) == strtotime("+24 hours", strtotime($before_jam_masuk)))) {
- $slotjam = "Masuk";
- $poin = $setting_poin->jam_masuk;
- }
- }
- }
- }
- // 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($before_jam_masuk)) && (strtotime("+24 hours", strtotime($jamtap)) < strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)))) {
- $slotjam = "Masuk";
- $poin = $setting_poin->jam_masuk;
- } elseif(($jamtap == $before_jam_masuk)) {
- $slotjam = "Masuk";
- $poin = $setting_poin->jam_masuk;
- }
- //-----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;
- } elseif((strtotime("+24 hours", strtotime($jamtap)) == strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)))) {
- $slotjam = "Istirahat Mulai";
- $poin = $setting_poin->jam_mulai_istirahat;
- }
- }
- //-----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;
- } elseif((strtotime($jamtap) == strtotime($before_jam_istirahat_mulai))) {
- $slotjam = "Istirahat Mulai";
- $poin = $setting_poin->jam_mulai_istirahat;
- }
- }
- //-----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;
- }
- }
- }
- //-----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;
- } elseif((strtotime($jamtap) == strtotime($before_jam_masuk)) || (strtotime($jamtap) == strtotime($after_jam_pulang))) {
- $slotjam = "Masuk";
- $poin = $setting_poin->jam_masuk;
- }
- }
- 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;
- } elseif((strtotime($jamtap) == strtotime($before_jam_istirahat_mulai))) {
- $slotjam = "Masuk";
- $poin = $setting_poin->jam_masuk;
- }
- }
- }
- }
- }
- // dd(strtotime($jamtap) > strtotime("00:00:00"));
- //-----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;
- } else if((strtotime("+24 hours",strtotime($jamtap)) < strtotime("+24 hours", strtotime($after_jam_masuk)))) {
- $slotjam = "Masuk";
- $poin = $setting_poin->jam_masuk;
- } 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;
- }
- }
- }
- //-----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;
- } else if((strtotime("+24 hours",strtotime($jamtap)) < strtotime("+24 hours", strtotime($after_jam_pulang)))) {
- $slotjam = "Pulang";
- $poin = $setting_poin->jam_keluar;
- } 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;
- }
- }
- }
- // //-----CASE E----- [2nd Concept]
- // //-----DD() Section-----
- // dd(strtotime($before_jam_masuk) < strtotime("24:00:00"));
- // //-----DD() Section-----
- // if(strtotime($before_jam_masuk) < strtotime("24:00:00")) {
- // if((strtotime($jamtap) > strtotime("24:00:00"))) {
- // dd("masuk sini");
- // } else {
- // dd("masuk sana");
- // }
- // }
- }
- } else {
- $slotjam = null;
- $poin = 0;
- }
- $status_final = $slotjam;
- $presensi = array(
- 'karyawan_id' => $id_karyawan,
- 'group_id' => $karyawan->group_id ? $karyawan->group_id : null,
- 'jadwal_id' => $karyawan->jadwal_id ? $karyawan->jadwal_id : null,
- 'setting_presensi_id' => 1,
- 'tanggal_dan_waktu_tap' => $tanggal_waktu_tap,
- 'poin' => $poin,
- 'status' => 'Rutin',
- 'slotjam' => $slotjam
- );
- $tanggal_terdeteksi = null;
- $tanggal_terakhir = null;
- // cek data presensi sebelumnya
- $oldpresensi = Presensi::where([
- ['status', '=', 'Rutin'],
- ['slotjam', '=', $slotjam],
- ['karyawan_id', '=', $id_karyawan],
- ])->whereDate('tanggal_dan_waktu_tap', '=', date('Y-m-d', strtotime($tanggal_waktu_tap)))->first();
- if(isset($oldpresensi)) {
- // $oldpresensi->update($presensi);
- $data_terinput = $data_terinput + 0;
- } else {
- // cek jam masuk
- if((($slotjam == 'Masuk') || ($slotjam == 'Terlambat Masuk'))) {
- Presensi::create($presensi);
- $data_terinput = $data_terinput + 1;
- }
- // cek jam istirahat mulai
- if($slotjam == 'Istirahat Mulai') {
- Presensi::create($presensi);
- $data_terinput = $data_terinput + 1;
- }
- // cek jam istirahat selesai
- if($slotjam == 'Istirahat Selesai') {
- Presensi::create($presensi);
- $data_terinput = $data_terinput + 1;
- }
- // cek jam pulang
- if($slotjam == 'Pulang') {
- Presensi::create($presensi);
- $data_terinput = $data_terinput + 1;
- }
- }
- }
- }
- // }
- }
- }
- } catch (Exception $e) {
- echo $e->message;
- }
- return response()->json(['status' => 200, 'message' => 'Data Terinput:' . $data_terinput, 'status_presensi' => $status_final]);
- }
- public function inputMesinNgePlus(Request $request)
- {
- $data_terinput = 0;
- $status_final = null;
- try {
- if (isset($request->message)) {
- $data = $request->message;
- $row = $data;
- for ($i = 0; $i < count($row); $i++) {
- $id_karyawan = $row[$i]['PIN'][0];
- $tanggal_waktu_tap = $row[$i]['DateTime'][0];
- // if (date('Y-m-d', strtotime($tanggal_waktu_tap)) == "2020-12-15") { // debugging manual
- // if (date('Y-m-d', strtotime($tanggal_waktu_tap)) >= date('Y-m-d')) { // real data
- $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;
- //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) {
- //cek jadwal ngeplus dulu
- $jadwal = JadwalNgeplus::where('karyawan_id', '=', $id_karyawan)->get();
- for($iz = 0; $iz < count($jadwal); $iz++) {
- $tanggal = Carbon::parse($tanggal_waktu_tap)->format('Y-m-d');
- $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');
- if(($tanggal >= $tanggal_mulai) && ($tanggal <= $tanggal_selesai)) {
- $adajadwal = 1;
- }
- if($jadwal_terpilih == null && $adajadwal == 1) {
- $jadwal_terpilih = $jadwal[$i];
- }
- }
- if(isset($jadwal_terpilih)) {
- $jam_masuk = $jadwal_terpilih->jam_masuk;
- $jam_istirahat_mulai = $jadwal_terpilih->jam_istirahat_mulai;
- $jam_istirahat_selesai = $jadwal_terpilih->jam_istirahat_selesai;
- $jam_pulang = $jadwal_terpilih->jam_pulang;
- $closing_time = ClosingTime::find(1);
- $setting_closing_time = strtotime($closing_time->jangka_waktu)-strtotime("00:00:00");
- $datang_awal = DatangAwal::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");
- $max_istirahat_mulai = strtotime($jam_istirahat_selesai)-$toleransi-strtotime("00:00:00");
- $max_istirahat_selesai = strtotime($jam_pulang)-$toleransi-strtotime("00:00:00");
- $before_jam_masuk = date("H:i:s",strtotime($jam_masuk)-$setting_datang_awal);
- $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_mulai)+$max_istirahat_mulai);
- $before_jam_istirahat_selesai = date("H:i:s",strtotime($jam_istirahat_selesai)-$toleransi);
- $after_jam_istirahat_selesai = date("H:i:s",strtotime($jam_istirahat_selesai)+$max_istirahat_selesai);
- $before_jam_pulang = date("H:i:s",strtotime($jam_pulang)-$toleransi);
- $after_jam_pulang = date("H:i:s",strtotime($jam_pulang)+$setting_closing_time);
- if(($jamtap > $before_jam_masuk) && ($jamtap < $after_jam_masuk)) {
- $slotjam = "Masuk";
- $poin = $setting_poin->jam_masuk;
- } elseif(($jamtap == $before_jam_masuk) || ($jamtap == $after_jam_masuk)) {
- $slotjam = "Masuk";
- $poin = $setting_poin->jam_masuk;
- }
- if(($jamtap > $after_jam_masuk) && ($jamtap < $before_jam_istirahat_mulai)) {
- $slotjam = "Terlambat Masuk";
- $poin = $setting_poin->jam_masuk;
- }
- if(($jamtap > $before_jam_istirahat_mulai) && ($jamtap < $before_jam_istirahat_selesai)) {
- $slotjam = "Istirahat Mulai";
- $poin = $setting_poin->jam_mulai_istirahat;
- } elseif(($jamtap == $before_jam_istirahat_mulai)) {
- $slotjam = "Istirahat Mulai";
- $poin = $setting_poin->jam_mulai_istirahat;
- }
- if(($jamtap > $before_jam_istirahat_selesai) && ($jamtap < $before_jam_pulang)) {
- $slotjam = "Istirahat Selesai";
- $poin = $setting_poin->jam_selesai_istirahat;
- } elseif(($jamtap == $before_jam_istirahat_selesai)) {
- $slotjam = "Istirahat Selesai";
- $poin = $setting_poin->jam_selesai_istirahat;
- }
- if(($jamtap > $before_jam_pulang) && ($jamtap < $after_jam_pulang)) {
- $slotjam = "Pulang";
- $poin = $setting_poin->jam_keluar;
- } elseif(($jamtap == $before_jam_pulang) || ($jamtap == $after_jam_pulang)) {
- $slotjam = "Pulang";
- $poin = $setting_poin->jam_keluar;
- }
- //-----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;
- } elseif(($jamtap == $before_jam_istirahat_selesai)) {
- $slotjam = "Istirahat Selesai";
- $poin = $setting_poin->jam_selesai_istirahat;
- }
- //-----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;
- } 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;
- }
- }
- }
- // 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;
- } elseif(($jamtap == $before_jam_istirahat_selesai)) {
- $slotjam = "Istirahat Selesai";
- $poin = $setting_poin->jam_selesai_istirahat;
- }
- //-----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;
- } 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;
- }
- }
- //-----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;
- } elseif((strtotime($jamtap) == strtotime($before_jam_pulang)) || (strtotime($jamtap) == strtotime("+24 hours", strtotime($after_jam_pulang)))) {
- $slotjam = "Pulang";
- $poin = $setting_poin->jam_keluar;
- }
- }
- //-----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;
- } elseif((strtotime($jamtap) == strtotime($before_jam_pulang)) || (strtotime($jamtap) == strtotime("+24 hours", strtotime($after_jam_pulang)))) {
- $slotjam = "Pulang";
- $poin = $setting_poin->jam_keluar;
- }
- }
- }
- }
- //-----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;
- } elseif(($jamtap == $before_jam_istirahat_mulai)) {
- $slotjam = "Istirahat Mulai";
- $poin = $setting_poin->jam_mulai_istirahat;
- }
- //-----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;
- } elseif((strtotime($jamtap) == strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)))) {
- $slotjam = "Istirahat Selesai";
- $poin = $setting_poin->jam_selesai_istirahat;
- }
- }
- }
- // 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;
- } elseif(($jamtap == $before_jam_istirahat_mulai)) {
- $slotjam = "Istirahat Mulai";
- $poin = $setting_poin->jam_mulai_istirahat;
- }
- //-----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;
- } elseif((strtotime("+24 hours", strtotime($jamtap)) == strtotime("+24 hours", strtotime($before_jam_istirahat_selesai)))) {
- $slotjam = "Istirahat Selesai";
- $poin = $setting_poin->jam_selesai_istirahat;
- }
- }
- //-----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;
- } elseif((strtotime($jamtap) == strtotime($before_jam_istirahat_selesai))) {
- $slotjam = "Istirahat Selesai";
- $poin = $setting_poin->jam_selesai_istirahat;
- }
- }
- }
- }
- //-----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)))) {
- $slotjam = "Masuk";
- $poin = $setting_poin->jam_masuk;
- } elseif(($jamtap == $before_jam_masuk)) {
- $slotjam = "Masuk";
- $poin = $setting_poin->jam_masuk;
- }
- //-----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;
- } elseif((strtotime($jamtap) == strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)))) {
- $slotjam = "Istirahat Mulai";
- $poin = $setting_poin->jam_mulai_istirahat;
- }
- }
- //-----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;
- }
- }
- }
- 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;
- } elseif((strtotime($jamtap) == strtotime("+24 hours", strtotime($before_jam_masuk)))) {
- $slotjam = "Masuk";
- $poin = $setting_poin->jam_masuk;
- }
- }
- }
- }
- // 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($before_jam_masuk)) && (strtotime("+24 hours", strtotime($jamtap)) < strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)))) {
- $slotjam = "Masuk";
- $poin = $setting_poin->jam_masuk;
- } elseif(($jamtap == $before_jam_masuk)) {
- $slotjam = "Masuk";
- $poin = $setting_poin->jam_masuk;
- }
- //-----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;
- } elseif((strtotime("+24 hours", strtotime($jamtap)) == strtotime("+24 hours", strtotime($before_jam_istirahat_mulai)))) {
- $slotjam = "Istirahat Mulai";
- $poin = $setting_poin->jam_mulai_istirahat;
- }
- }
- //-----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;
- } elseif((strtotime($jamtap) == strtotime($before_jam_istirahat_mulai))) {
- $slotjam = "Istirahat Mulai";
- $poin = $setting_poin->jam_mulai_istirahat;
- }
- }
- //-----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;
- }
- }
- }
- //-----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;
- } elseif((strtotime($jamtap) == strtotime($before_jam_masuk)) || (strtotime($jamtap) == strtotime($after_jam_pulang))) {
- $slotjam = "Masuk";
- $poin = $setting_poin->jam_masuk;
- }
- }
- 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;
- } elseif((strtotime($jamtap) == strtotime($before_jam_istirahat_mulai))) {
- $slotjam = "Masuk";
- $poin = $setting_poin->jam_masuk;
- }
- }
- }
- }
- }
- //-----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;
- } else if((strtotime("+24 hours",strtotime($jamtap)) < strtotime("+24 hours", strtotime($after_jam_masuk)))) {
- $slotjam = "Masuk";
- $poin = $setting_poin->jam_masuk;
- } 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;
- }
- }
- }
- //-----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;
- } else if((strtotime("+24 hours",strtotime($jamtap)) < strtotime("+24 hours", strtotime($after_jam_pulang)))) {
- $slotjam = "Pulang";
- $poin = $setting_poin->jam_keluar;
- } 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;
- }
- }
- }
- }
- } else {
- $slotjam = null;
- $poin = 0;
- }
- $status_final = $slotjam;
- $presensi = array(
- 'karyawan_id' => $id_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' => $tanggal_waktu_tap,
- 'poin' => $poin,
- 'status' => $jadwal_terpilih->status,
- 'slotjam' => $slotjam
- );
- // // cek data presensi sebelumnya
- $oldpresensi = Presensi::where([
- ['status', '=', $jadwal_terpilih->status],
- ['slotjam', '=', $slotjam],
- ['karyawan_id', '=', $id_karyawan],
- ['tanggal_dan_waktu_tap', '=', $tanggal_waktu_tap]
- ])->first();
- if(isset($oldpresensi)) {
- // kalau udah ada, update
- $oldpresensi->update($presensi);
- $data_terinput = $data_terinput + 0;
- } else {
- // kalau tidak ada create
- $data_terinput = $data_terinput + 1;
- Presensi::create($presensi);
- }
- }
- }
- // }
- }
- }
- } catch (Exception $e) {
- echo $e->message;
- }
- return response()->json(['status' => 200, 'message' => 'Data Terinput:' . $data_terinput, 'status_presensi' => $status_final]);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement