Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public function prosesdata()
- {
- // Check ID Terakhir yang tersimpan di LOG
- $this->db = $this->load->database('sihadir', true); // SIHADIR
- $cekIDLog = $this->db->limit(1)->order_by('icdat_log_id', 'desc')->get('sihadir_icdat_log')->row();
- $lastcheckinid = $cekIDLog->icdat_log_checkinid;
- // Insert ke Log Cronjob
- $dataCronStart = array(
- 'cronjob_log_tanggal' => date('Y-m-d'),
- 'cronjob_log_start' => date('H:i:s'),
- );
- $this->db->insert('sihadir_log_cronjob', $dataCronStart);
- $cronjob_id = $this->db->insert_id();
- // Cari Data di ADMS
- $this->db = $this->load->database('adms', true); // ADMS
- $listADMS = $this->db->order_by('id', 'asc')->select('id, checktime, fid')->get_where('v_checkinout', array('id >' => $lastcheckinid))->result();
- // $listADMS = $this->db->order_by('id', 'asc')->limit(100)->select('id, checktime, fid')->get_where('v_checkinout', array('DATE(checktime)' => '2021-08-02'))->result();
- $lastid = 0;
- $no = 1;
- foreach ($listADMS as $r) {
- $checkinid = $r->id;
- echo $checkinid . '<br>';
- $userid = $r->fid;
- $tanggal = date('Y-m-d', strtotime($r->checktime));
- $this->db = $this->load->database('sihadir', true); // SIHADIR
- $checkData = $this->db->get_where('sihadir_absensi_log', array('checkinid' => $checkinid))->row();
- if (count($checkData) == 0) {
- $dataPegawai = $this->db->get_where('v_pegawai', array('pegawai_uid' => $userid))->row();
- if (count($dataPegawai) > 0) {
- $pegawai_id = $dataPegawai->pegawai_id;
- $pegawai_uid = $dataPegawai->pegawai_uid;
- $pegawai_nama = $dataPegawai->pegawai_nama;
- $opd_id = $dataPegawai->opd_id;
- // Cek Jadwal Kerja Pegawai per Tanggal ini
- // echo $no . '. ' . $tanggal . ' -> ' . $checkinid . ' : ' . $userid . '<br>';
- $dataJadwal = $this->db->get_where('sihadir_jadwal_kerja', array('pegawai_id' => $pegawai_id, 'jadwal_kerja_tanggal' => $tanggal))->row();
- if (count($dataJadwal) > 0) {
- $jam_kerja_id = $dataJadwal->jam_kerja_id;
- $dataJam = $this->db->get_where('sihadir_jam_kerja', array('jam_kerja_id' => $jam_kerja_id))->row();
- if (count($dataJam) > 0) {
- // Jam Masuk + Toleransi
- $jmMasuk = $dataJam->jam_kerja_masuk;
- $jmTolMasuk = $dataJam->jam_kerja_toleransi_telat;
- $jmMasuk_unix = strtotime(date('Y-m-d') . ' ' . $jmMasuk . ':00');
- $jmTolMasuk_unix = strtotime(date('Y-m-d') . ' ' . $jmTolMasuk . ':00');
- $masuk_unix = strtotime(date('Y-m-d') . ' 00:00:00');
- if ($jmTolMasuk != '') {
- $JamMasuk = date('H:i', ($jmMasuk_unix + ($jmTolMasuk_unix - $masuk_unix)));
- } else {
- $JamMasuk = $jmMasuk;
- }
- // Jam Pulang + Toleransi
- $jmPulang = $dataJam->jam_kerja_pulang;
- $jmTolPulang = $dataJam->jam_kerja_toleransi_pulang;
- $jmPulang_unix = strtotime(date('Y-m-d') . ' ' . $jmPulang . ':00');
- $jmTolPulang_unix = strtotime(date('Y-m-d') . ' ' . $jmTolPulang . ':00');
- $pulang_unix = strtotime(date('Y-m-d') . ' 00:00:00');
- if ($jmTolPulang != '') {
- $JamPulang = date('H:i', ($jmPulang_unix - ($jmTolPulang_unix - $pulang_unix)));
- } else {
- $JamPulang = $jmPulang;
- }
- $libur = $dataJam->jam_kerja_status_libur;
- $waktuin = date_create(date('Y-m-d H:i', strtotime($tanggal . ' ' . $JamMasuk)));
- $waktuinawal = date_create(date('Y-m-d H:i', strtotime($tanggal . ' ' . $dataJam->jam_kerja_awal_masuk)));
- $waktuinakhir = date_create(date('Y-m-d H:i', strtotime($tanggal . ' ' . $dataJam->jam_kerja_akhir_masuk)));
- $waktuout = date_create(date('Y-m-d H:i', strtotime($tanggal . ' ' . $JamPulang)));
- $waktuoutlembur = date_create(date('Y-m-d H:i', strtotime($tanggal . ' ' . $dataJam->jam_kerja_pulang)));
- $waktuoutawal = date_create(date('Y-m-d H:i', strtotime($tanggal . ' ' . $dataJam->jam_kerja_awal_pulang)));
- $waktuoutakhir = date_create(date('Y-m-d H:i', strtotime($tanggal . ' ' . $dataJam->jam_kerja_akhir_pulang)));
- $waktuadms = date_create(date('Y-m-d H:i', strtotime($r->checktime)));
- $status = '';
- if ($waktuadms <= $waktuin && $waktuadms >= $waktuinawal && $waktuadms <= $waktuinakhir) {
- $status = 'masuk';
- $jammasuk = date('H:i', strtotime($r->checktime));
- $jampulang = '';
- $jamtelat = '';
- $jampulangcepat = '';
- $jamlebih = '';
- $keterangan = '';
- } else if ($waktuadms > $waktuin && $waktuadms >= $waktuinawal && $waktuadms <= $waktuinakhir) {
- $status = 'masuk';
- $diff = date_diff($waktuin, $waktuadms);
- $jam = $diff->h;
- $menit = $diff->i;
- if (strlen($jam) == 1) {
- $jam = '0' . $jam;
- } else {
- $jam = $jam;
- }
- if (strlen($menit) == 1) {
- $menit = '0' . $menit;
- } else {
- $menit = $menit;
- }
- // Jika Libur = Ya, Tidak ada Telat
- if ($libur == 1) {
- $telat = '';
- } else {
- $telat = $jam . ':' . $menit;
- }
- $jammasuk = date('H:i', strtotime($r->checktime));
- $jampulang = '';
- $jamtelat = ($telat != '00:00' ? $telat : '');
- $jampulangcepat = '';
- $jamlebih = '';
- $keterangan = ($libur == 1 ? '' : 'TELAT');
- } elseif ($waktuadms < $waktuout && $waktuadms >= $waktuoutawal && $waktuadms <= $waktuoutakhir) {
- $status = 'pulang';
- $diff = date_diff($waktuout, $waktuadms);
- $jam = $diff->h;
- $menit = $diff->i;
- if (strlen($jam) == 1) {
- $jam = '0' . $jam;
- } else {
- $jam = $jam;
- }
- if (strlen($menit) == 1) {
- $menit = '0' . $menit;
- } else {
- $menit = $menit;
- }
- // Jika Libur = Ya, Tidak ada Pulang Cepat
- if ($libur == 1) {
- $pulang = '';
- } else {
- $pulang = $jam . ':' . $menit;
- }
- $jammasuk = '';
- $jampulang = date('H:i', strtotime($r->checktime));
- $jamtelat = '';
- $jampulangcepat = $pulang;
- $jamlebih = '';
- $keterangan = ($libur == 1 ? '' : 'PULANG CEPAT');
- } elseif ($waktuadms >= $waktuoutlembur && $waktuadms >= $waktuoutawal && $waktuadms <= $waktuoutakhir) {
- $status = 'pulang';
- $diff = date_diff($waktuadms, $waktuout);
- $jam = $diff->h;
- $menit = $diff->i;
- if (strlen($jam) == 1) {
- $jam = '0' . $jam;
- } else {
- $jam = $jam;
- }
- if (strlen($menit) == 1) {
- $menit = '0' . $menit;
- } else {
- $menit = $menit;
- }
- $lebih = $jam . ':' . $menit;
- $jammasuk = '';
- $jampulang = date('H:i', strtotime($r->checktime));
- $jamtelat = '';
- $jampulangcepat = '';
- $jamlebih = $lebih;
- $keterangan = '';
- } else {
- $jammasuk = '';
- $jampulang = '';
- $jamtelat = '';
- $jampulangcepat = '';
- $jamlebih = '';
- $keterangan = 'BELUM ADA JADWAL';
- }
- if ($dataJam->jam_kerja_status_libur == 1) {
- // Libur
- $jamtelat = '';
- $jampulangcepat = '';
- } else {
- $jamtelat = $jamtelat;
- $jampulangcepat = $jampulangcepat;
- }
- $dataAbsensiLog = $this->db->get_where('sihadir_absensi_log', array('pegawai_id' => $pegawai_id, 'checkinid' => $checkinid))->row();
- if (count($dataAbsensiLog) == 0) {
- // Check Tabel Absensi Log
- $data = array(
- 'checkinid' => $checkinid,
- 'pegawai_id' => $pegawai_id,
- 'opd_id' => $opd_id,
- 'absensi_log_tanggal' => $tanggal,
- 'absensi_log_in' => $jammasuk,
- 'absensi_log_out' => $jampulang,
- 'absensi_log_telat' => $jamtelat,
- 'absensi_log_plg_cepat' => $jampulangcepat,
- 'absensi_log_jam_lebih' => $jamlebih,
- 'absensi_log_keterangan' => $keterangan,
- 'absensi_jam_masuk' => $dataJam->jam_kerja_masuk,
- 'absensi_jam_pulang' => $dataJam->jam_kerja_pulang,
- 'absensi_jam_masuk_mulai' => $dataJam->jam_kerja_awal_masuk,
- 'absensi_jam_masuk_akhir' => $dataJam->jam_kerja_akhir_masuk,
- 'absensi_jam_pulang_mulai' => $dataJam->jam_kerja_awal_pulang,
- 'absensi_jam_pulang_akhir' => $dataJam->jam_kerja_akhir_pulang,
- 'absensi_jam_toleransi_telat' => $dataJam->jam_kerja_toleransi_telat,
- 'absensi_jam_toleransi_pulang' => $dataJam->jam_kerja_toleransi_pulang,
- 'absensi_jam_min_lembur' => $dataJam->jam_kerja_min_lembur,
- 'absensi_log_update' => date('Y-m-d H:i:s'),
- );
- $this->db->insert('sihadir_absensi_log', $data);
- }
- // Insert / Update ke Tabel Absensi sebelum di Posting
- $dataAbsensi = $this->db->get_where('sihadir_absensi', array('pegawai_id' => $pegawai_id, 'absensi_tanggal' => $tanggal))->row();
- if (count($dataAbsensi) == 0) {
- // Insert
- $dataInsert = array(
- 'pegawai_id' => $pegawai_id,
- 'opd_id' => $opd_id,
- 'absensi_tanggal' => $tanggal,
- 'absensi_in' => $jammasuk,
- 'absensi_out' => $jampulang,
- 'absensi_telat' => $jamtelat,
- 'absensi_plg_cepat' => $jampulangcepat,
- 'absensi_jam_lebih' => $jamlebih,
- 'absensi_jam_masuk' => $dataJam->jam_kerja_masuk,
- 'absensi_jam_pulang' => $dataJam->jam_kerja_pulang,
- 'absensi_jam_masuk_mulai' => $dataJam->jam_kerja_awal_masuk,
- 'absensi_jam_masuk_akhir' => $dataJam->jam_kerja_akhir_masuk,
- 'absensi_jam_pulang_mulai' => $dataJam->jam_kerja_awal_pulang,
- 'absensi_jam_pulang_akhir' => $dataJam->jam_kerja_akhir_pulang,
- 'absensi_jam_toleransi_telat' => $dataJam->jam_kerja_toleransi_telat,
- 'absensi_jam_toleransi_pulang' => $dataJam->jam_kerja_toleransi_pulang,
- 'absensi_jam_min_lembur' => $dataJam->jam_kerja_min_lembur,
- 'absensi_libur' => $libur,
- 'absensi_update' => date('Y-m-d H:i:s'),
- );
- $this->db->insert('sihadir_absensi', $dataInsert);
- } else {
- // Update Jam Pulang Terakhir
- $absensi_id = $dataAbsensi->absensi_id;
- if ($status == 'pulang') {
- $dataUpdate = array(
- 'jenis_cuti_id' => '',
- 'absensi_out' => $jampulang,
- 'absensi_plg_cepat' => $jampulangcepat,
- 'absensi_jam_lebih' => $jamlebih,
- 'absensi_update' => date('Y-m-d H:i:s'),
- );
- $this->db->where('absensi_id', $absensi_id);
- $this->db->update('sihadir_absensi', $dataUpdate);
- }
- }
- } else {
- $dataAbsensiJadwal = $this->db->get_where('sihadir_absensi_jadwal', array('pegawai_id' => $pegawai_id, 'checkinid' => $checkinid))->row();
- if (count($dataAbsensiJadwal) == 0) {
- // Check Tabel Absensi Jadwal
- $data = array(
- 'checkinid' => $checkinid,
- 'pegawai_id' => $pegawai_id,
- 'absensi_jadwal_tanggal' => $tanggal,
- 'absensi_jadwal_jam' => date('H:i', strtotime($r->checktime)),
- 'absensi_jadwal_update' => date('Y-m-d H:i:s'),
- );
- $this->db->insert('sihadir_absensi_jadwal', $data);
- }
- }
- } else {
- $dataAbsensiJadwal = $this->db->get_where('sihadir_absensi_jadwal', array('pegawai_id' => $pegawai_id, 'checkinid' => $checkinid))->row();
- if (count($dataAbsensiJadwal) == 0) {
- // Check Tabel Absensi Jadwal
- $data = array(
- 'checkinid' => $checkinid,
- 'pegawai_id' => $pegawai_id,
- 'absensi_jadwal_tanggal' => $tanggal,
- 'absensi_jadwal_jam' => date('H:i', strtotime($r->checktime)),
- 'absensi_jadwal_update' => date('Y-m-d H:i:s'),
- );
- $this->db->insert('sihadir_absensi_jadwal', $data);
- }
- }
- }
- }
- $lastid = $checkinid;
- // Insert ICDAT LOG
- $dataICDATLog = array(
- 'icdat_log_checkinid' => $checkinid,
- 'icdat_log_update' => date('Y-m-d H:i:s'),
- );
- $this->db->insert('sihadir_icdat_log', $dataICDATLog);
- $no++;
- }
- $dataCronEnd = array(
- 'cronjob_log_tanggal' => date('Y-m-d'),
- 'cronjob_log_end' => date('H:i:s'),
- 'cronjob_log_lastid' => $lastid,
- );
- $this->db->where('cronjob_log_id', $cronjob_id);
- $this->db->update('sihadir_log_cronjob', $dataCronEnd);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement