Advertisement
jamboljack

Rekap Kehadiran

May 28th, 2022
832
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. public function prosesrekalkulasi()
  2.     {
  3.         $bulan   = $this->input->post('lstBulan', 'true');
  4.         $tahun   = $this->input->post('lstTahun', 'true');
  5.         $opd     = $this->input->post('lstOPD', 'true');
  6.         $sekolah = $this->input->post('lstSekolah', 'true');
  7.  
  8.         if ($this->session->userdata('level') != 'Sekolah') {
  9.             if ($opd != '') {
  10.                 $opd_id     = $this->input->post('lstOPD', 'true');
  11.                 $opd_id_log = $this->input->post('lstOPD', 'true');
  12.             } else {
  13.                 if ($this->session->userdata('level') == 'Admin') {
  14.                     $opd_id     = $this->input->post('lstOPD', 'true');
  15.                     $opd_id_log = $this->input->post('lstOPD', 'true');
  16.                 } else {
  17.                     $opd_id        = $this->session->userdata('opd_id');
  18.                     $opd_id_report = $this->session->userdata('opd_id_user');
  19.                     $dataOPD       = $this->db->get_where('v_setting_report', array('opd_id' => $opd_id_report))->row();
  20.                     $opd_id_log    = $dataOPD->opd_id_head;
  21.                 }
  22.             }
  23.         } else {
  24.             $opd_id        = $this->session->userdata('opd_id');
  25.             $opd_id_report = $this->session->userdata('opd_id_user');
  26.             $dataOPD       = $this->db->get_where('v_setting_report', array('opd_id' => $opd_id_report))->row();
  27.             $opd_id_log    = $dataOPD->opd_id_head;
  28.         }
  29.  
  30.         // Log Report Proses
  31.         $checkLog = $this->db->get_where('sihadir_log_report', array('log_report_bulan' => $bulan, 'log_report_tahun' => $tahun, 'opd_id' => $opd_id_log, 'log_report_keterangan' => 'R'));
  32.         // $queryLog = "CALL SelectLog($opd_id_log, $bulan, $tahun)";
  33.         // $checkLog = $this->db->query($queryLog);
  34.         // mysqli_next_result($this->db->conn_id);
  35.         $num_log = $checkLog->num_rows();
  36.         if ($num_log == 0) {
  37.             // Insert Log
  38.             $keteranganLog     = 'R';
  39.             $log_report_proses = 1;
  40.             $insertLOG         = "CALL insertLogRekap($opd_id_log, $bulan, $tahun, '$keteranganLog', $log_report_proses)";
  41.             $this->db->query($insertLOG);
  42.         } else {
  43.             // Update Log
  44.             $log               = $checkLog->row();
  45.             $log_report_id     = $log->log_report_id;
  46.             $log_report_proses = ($log->log_report_proses + 1);
  47.             $updateLOG         = "CALL updateLogRekap($log_report_id, $log_report_proses)";
  48.             $this->db->query($updateLOG);
  49.         }
  50.  
  51.         if ($this->session->userdata('level') == 'SubOPD') {
  52.             if ($opd != '') {
  53.                 $listPegawai = $this->db->order_by('pegawai_nama', 'asc')->get_where('v_pegawai', array('opd_id' => $opd_id, 'status_hukum_status' => 'A'))->result();
  54.             } else {
  55.                 $user_username = $this->session->userdata('username');
  56.                 $listOPD       = $this->db->order_by('opd_id', 'asc')->get_where('v_users_opd', array('user_username' => $user_username))->result();
  57.                 $where_in      = array();
  58.                 foreach ($listOPD as $r) {
  59.                     $where_in[] = $r->opd_id;
  60.                 }
  61.  
  62.                 $this->db->from('v_pegawai');
  63.                 $this->db->where_in('opd_id', $where_in);
  64.                 $this->db->where('status_hukum_status', 'A');
  65.                 $this->db->order_by('pegawai_id', 'asc');
  66.                 $listPegawai = $this->db->get()->result();
  67.             }
  68.         } elseif ($this->session->userdata('level') == 'OPD') {
  69.             if ($opd != '') {
  70.                 $listPegawai = $this->db->order_by('pegawai_id', 'asc')->get_where('v_pegawai', array('opd_id' => $opd_id, 'status_hukum_status' => 'A'))->result();
  71.             } else {
  72.                 $listPegawai = $this->db->order_by('pegawai_id', 'asc')->get_where('v_pegawai', array('opd_id_head' => $opd_id, 'status_hukum_status' => 'A'))->result();
  73.             }
  74.         } elseif ($this->session->userdata('level') == 'Sekolah') {
  75.             if ($sekolah != '') {
  76.                 $listPegawai = $this->db->order_by('pegawai_id', 'asc')->get_where('v_pegawai', array('sekolah_id' => $sekolah_id, 'status_hukum_status' => 'A'))->result();
  77.             } else {
  78.                 $user_username = $this->session->userdata('username');
  79.                 $listSekolah   = $this->db->order_by('sekolah_id', 'asc')->get_where('v_users_sekolah', array('user_username' => $user_username))->result();
  80.                 $where_in      = array();
  81.                 foreach ($listSekolah as $r) {
  82.                     $where_in[] = $r->sekolah_id;
  83.                 }
  84.                 $this->db->select('*');
  85.                 $this->db->from('v_pegawai');
  86.                 $this->db->where_in('sekolah_id', $where_in);
  87.                 $this->db->order_by('pegawai_id', 'asc');
  88.                 $listPegawai = $this->db->get()->result();
  89.             }
  90.         } else {
  91.             $listPegawai = $this->db->order_by('pegawai_id', 'asc')->get_where('v_pegawai', array('opd_id_head' => $opd_id, 'status_hukum_status' => 'A'))->result();
  92.         }
  93.  
  94.         // $listPegawai = $this->db->order_by('pegawai_id', 'asc')->get_where('v_pegawai', array('pegawai_id' => 4263))->result();
  95.         $ThnBln = $tahun . str_pad($bulan, 2, "0", STR_PAD_LEFT);
  96.         foreach ($listPegawai as $r) {
  97.             $pegawai_id   = $r->pegawai_id;
  98.             $pegawai_nama = $r->pegawai_nama;
  99.             $opd_id       = $r->opd_id;
  100.             $opd_id_head  = $r->opd_id_head;
  101.             $pegawai_nip  = $r->pegawai_nip_baru;
  102.             $pegawai_uid  = $r->pegawai_uid;
  103.             $idunit       = $r->opd_kode_unit;
  104.             $hari_kerja   = $r->pegawai_hari_kerja;
  105.             $sekolah_id   = $r->sekolah_id;
  106.             // Insert Default Parameter
  107.             $listParameterRekap = $this->db->order_by('parameter_rekap_id', 'asc')->get('sihadir_parameter_rekap')->result();
  108.             foreach ($listParameterRekap as $parameter) {
  109.                 $parameter_rekap_id = $parameter->parameter_rekap_id;
  110.                 $checkDataRekap     = $this->db->get_where('sihadir_lap_rekap', array('pegawai_id' => $pegawai_id, 'lap_rekap_bulan' => $bulan, 'lap_rekap_tahun' => $tahun, 'komponen_id' => $parameter_rekap_id, 'lap_rekap_tipe' => 'P'))->row();
  111.                 if (count($checkDataRekap) == 0) {
  112.                     $data = array(
  113.                         'pegawai_id'         => $pegawai_id,
  114.                         'opd_id'             => $opd_id,
  115.                         'lap_rekap_bulan'    => $bulan,
  116.                         'lap_rekap_tahun'    => $tahun,
  117.                         'komponen_id'        => $parameter_rekap_id,
  118.                         'lap_rekap_jumlah'   => 0,
  119.                         'lap_rekap_potongan' => 0,
  120.                         'lap_rekap_tipe'     => 'P',
  121.                         'lap_rekap_update'   => date('Y-m-d H:i:s'),
  122.                     );
  123.  
  124.                     $this->db->insert('sihadir_lap_rekap', $data);
  125.                 } else {
  126.                     $lap_rekap_id = $checkDataRekap->lap_rekap_id;
  127.                     $dataUpdate   = array(
  128.                         'lap_rekap_jumlah'   => 0,
  129.                         'lap_rekap_potongan' => 0,
  130.                     );
  131.  
  132.                     $this->db->where('lap_rekap_id', $lap_rekap_id);
  133.                     $this->db->update('sihadir_lap_rekap', $dataUpdate);
  134.                 }
  135.             }
  136.  
  137.             // Insert Jenis Cuti
  138.             $listJenisCuti = $this->db->order_by('jenis_cuti_id', 'asc')->get_where('v_jenis_cuti', array('jenis_cuti_rekap' => 'Y'))->result();
  139.             foreach ($listJenisCuti as $cuti) {
  140.                 $jenis_cuti_id = $cuti->jenis_cuti_id;
  141.                 $checkDataCuti = $this->db->get_where('sihadir_lap_rekap', array('pegawai_id' => $pegawai_id, 'lap_rekap_bulan' => $bulan, 'lap_rekap_tahun' => $tahun, 'komponen_id' => $jenis_cuti_id, 'lap_rekap_tipe' => 'C'))->row();
  142.                 if (count($checkDataCuti) == 0) {
  143.                     $data = array(
  144.                         'pegawai_id'         => $pegawai_id,
  145.                         'opd_id'             => $opd_id,
  146.                         'lap_rekap_bulan'    => $bulan,
  147.                         'lap_rekap_tahun'    => $tahun,
  148.                         'komponen_id'        => $jenis_cuti_id,
  149.                         'lap_rekap_jumlah'   => 0,
  150.                         'lap_rekap_potongan' => 0,
  151.                         'lap_rekap_tipe'     => 'C',
  152.                         'lap_rekap_update'   => date('Y-m-d H:i:s'),
  153.                     );
  154.  
  155.                     $this->db->insert('sihadir_lap_rekap', $data);
  156.                 } else {
  157.                     $lap_rekap_id = $checkDataCuti->lap_rekap_id;
  158.                     $dataUpdate   = array(
  159.                         'lap_rekap_jumlah'   => 0,
  160.                         'lap_rekap_potongan' => 0,
  161.                     );
  162.  
  163.                     $this->db->where('lap_rekap_id', $lap_rekap_id);
  164.                     $this->db->update('sihadir_lap_rekap', $dataUpdate);
  165.                 }
  166.             }
  167.  
  168.             // Insert Default Potongan Rekap
  169.             $checkDataRekapPotongan = $this->db->get_where('sihadir_potongan_rekap', array('pegawai_id' => $pegawai_id, 'potongan_rekap_bulan' => $bulan, 'potongan_rekap_tahun' => $tahun))->row();
  170.             if (count($checkDataRekapPotongan) == 0) {
  171.                 $data = array(
  172.                     'pegawai_id'                  => $pegawai_id,
  173.                     'opd_id'                      => $opd_id,
  174.                     'opd_id_head'                 => $opd_id_head,
  175.                     'sekolah_id'                  => $sekolah_id,
  176.                     'potongan_rekap_bulan'        => $bulan,
  177.                     'potongan_rekap_tahun'        => $tahun,
  178.                     'potongan_rekap_hrkerja'      => 0,
  179.                     'potongan_rekap_masuk'        => 0,
  180.                     'potongan_rekap_tdkmasuk'     => 0,
  181.                     'potongan_rekap_lainnya'      => 0,
  182.                     'potongan_rekap_persen'       => 0,
  183.                     'potongan_rekap_persen_total' => 0,
  184.                     'potongan_rekap_update'       => date('Y-m-d H:i:s'),
  185.                 );
  186.  
  187.                 $this->db->insert('sihadir_potongan_rekap', $data);
  188.             } else {
  189.                 $potongan_rekap_id = $checkDataRekapPotongan->potongan_rekap_id;
  190.                 $dataUpdate        = array(
  191.                     'opd_id'                      => $opd_id,
  192.                     'opd_id_head'                 => $opd_id_head,
  193.                     'sekolah_id'                  => $sekolah_id,
  194.                     'potongan_rekap_hrkerja'      => 0,
  195.                     'potongan_rekap_masuk'        => 0,
  196.                     'potongan_rekap_tdkmasuk'     => 0,
  197.                     'potongan_rekap_persen'       => 0,
  198.                     'potongan_rekap_persen_total' => 0,
  199.                 );
  200.  
  201.                 $this->db->where('potongan_rekap_id', $potongan_rekap_id);
  202.                 $this->db->update('sihadir_potongan_rekap', $dataUpdate);
  203.             }
  204.  
  205.             // Cari data Absen telat per Bulan Tahun
  206.             $totalpersentelat = 0;
  207.             $listAbsenTelat   = $this->db->order_by('absensi_tanggal', 'asc')->get_where('v_absensi', array('MONTH(absensi_tanggal)' => $bulan, 'YEAR(absensi_tanggal)' => $tahun, 'absensi_telat !=' => '', 'absensi_in !=' => '', 'absensi_out !=' => '', 'absensi_posting' => 'Y', 'pegawai_id' => $pegawai_id))->result();
  208.             if (count($listAbsenTelat) > 0) {
  209.                 foreach ($listAbsenTelat as $a) {
  210.                     $jam_telat = $a->absensi_telat;
  211.                     // Parameter Rekap Telat
  212.                     $listParameterTelat = $this->db->order_by('parameter_rekap_id', 'asc')->get_where('sihadir_parameter_rekap', array('parameter_rekap_tipe' => 'T'))->result();
  213.                     foreach ($listParameterTelat as $paratelat) {
  214.                         $parameter_rekap_id       = $paratelat->parameter_rekap_id;
  215.                         $parameter_rekap_min      = $paratelat->parameter_rekap_min;
  216.                         $parameter_rekap_max      = $paratelat->parameter_rekap_max;
  217.                         $parameter_rekap_potongan = $paratelat->parameter_rekap_potongan;
  218.                         $dataParameterTelat       = $this->db->get_where('sihadir_lap_rekap', array('pegawai_id' => $pegawai_id, 'lap_rekap_bulan' => $bulan, 'lap_rekap_tahun' => $tahun, 'komponen_id' => $parameter_rekap_id, 'lap_rekap_tipe' => 'P'))->row();
  219.                         // Update Jumlah jika Masuk Kategori
  220.                         if ($jam_telat >= $parameter_rekap_min && $jam_telat <= $parameter_rekap_max) {
  221.                             $lap_rekap_id = $dataParameterTelat->lap_rekap_id;
  222.                             $jumlah       = $dataParameterTelat->lap_rekap_jumlah;
  223.                             $potongan     = $dataParameterTelat->lap_rekap_potongan;
  224.                             $data         = array(
  225.                                 'lap_rekap_jumlah'   => ($jumlah + 1),
  226.                                 'lap_rekap_potongan' => ($potongan + $parameter_rekap_potongan),
  227.                                 'lap_rekap_update'   => date('Y-m-d H:i:s'),
  228.                             );
  229.  
  230.                             $this->db->where('lap_rekap_id', $lap_rekap_id);
  231.                             $this->db->update('sihadir_lap_rekap', $data);
  232.                         }
  233.                     }
  234.                 }
  235.             }
  236.  
  237.             // List Absen Pulang Cepat
  238.             $totalpersencepat = 0;
  239.             $listAbsenCepat   = $this->db->order_by('absensi_tanggal', 'asc')->get_where('v_absensi', array('MONTH(absensi_tanggal)' => $bulan, 'YEAR(absensi_tanggal)' => $tahun, 'absensi_plg_cepat !=' => '', 'absensi_in !=' => '', 'absensi_out !=' => '', 'absensi_posting' => 'Y', 'pegawai_id' => $pegawai_id))->result();
  240.             if (count($listAbsenCepat) > 0) {
  241.                 foreach ($listAbsenCepat as $a) {
  242.                     $jam_cepat = $a->absensi_plg_cepat;
  243.                     // Parameter Rekap Pulang Cepat
  244.                     $listParameterCepat = $this->db->order_by('parameter_rekap_id', 'asc')->get_where('sihadir_parameter_rekap', array('parameter_rekap_tipe' => 'P'))->result();
  245.                     foreach ($listParameterCepat as $paracepat) {
  246.                         $parameter_rekap_id       = $paracepat->parameter_rekap_id;
  247.                         $parameter_rekap_min      = $paracepat->parameter_rekap_min;
  248.                         $parameter_rekap_max      = $paracepat->parameter_rekap_max;
  249.                         $parameter_rekap_potongan = $paracepat->parameter_rekap_potongan;
  250.                         $dataParameterCepat       = $this->db->get_where('sihadir_lap_rekap', array('pegawai_id' => $pegawai_id, 'lap_rekap_bulan' => $bulan, 'lap_rekap_tahun' => $tahun, 'komponen_id' => $parameter_rekap_id, 'lap_rekap_tipe' => 'P'))->row();
  251.                         // Update Jumlah jika Masuk Kategori
  252.                         if ($jam_cepat >= $parameter_rekap_min && $jam_cepat <= $parameter_rekap_max) {
  253.                             $lap_rekap_id = $dataParameterCepat->lap_rekap_id;
  254.                             $jumlah       = $dataParameterCepat->lap_rekap_jumlah;
  255.                             $potongan     = $dataParameterCepat->lap_rekap_potongan;
  256.                             $data         = array(
  257.                                 'lap_rekap_jumlah'   => ($jumlah + 1),
  258.                                 'lap_rekap_potongan' => ($potongan + $parameter_rekap_potongan),
  259.                                 'lap_rekap_update'   => date('Y-m-d H:i:s'),
  260.                             );
  261.  
  262.                             $this->db->where('lap_rekap_id', $lap_rekap_id);
  263.                             $this->db->update('sihadir_lap_rekap', $data);
  264.                         }
  265.                     }
  266.                 }
  267.             }
  268.  
  269.             // Rekap Absen Cuti/Absen
  270.             $totalpotongancuti = 0;
  271.             $listCuti          = $this->db->order_by('absensi_tanggal', 'asc')->get_where('v_absensi', array('MONTH(absensi_tanggal)' => $bulan, 'YEAR(absensi_tanggal)' => $tahun, 'absensi_posting' => 'Y', 'jenis_cuti_rekap' => 'Y', 'jenis_cuti_default' => 'T', 'jenis_cuti_wfh' => 'T', 'pegawai_id' => $pegawai_id))->result();
  272.             foreach ($listCuti as $c) {
  273.                 $jenis_cuti_id       = $c->jenis_cuti_id;
  274.                 $jenis_cuti_potongan = $c->jenis_cuti_potongan;
  275.                 $dataParameterCuti   = $this->db->get_where('sihadir_lap_rekap', array('pegawai_id' => $pegawai_id, 'lap_rekap_bulan' => $bulan, 'lap_rekap_tahun' => $tahun, 'komponen_id' => $jenis_cuti_id, 'lap_rekap_tipe' => 'C'))->row();
  276.                 if (count($dataParameterCuti) > 0) {
  277.                     $lap_rekap_id = $dataParameterCuti->lap_rekap_id;
  278.                     $jumlah       = $dataParameterCuti->lap_rekap_jumlah;
  279.                     $potongan     = $dataParameterCuti->lap_rekap_potongan;
  280.                     $data         = array(
  281.                         'lap_rekap_jumlah'   => ($jumlah + 1),
  282.                         'lap_rekap_potongan' => ($potongan + $jenis_cuti_potongan),
  283.                         'lap_rekap_update'   => date('Y-m-d H:i:s'),
  284.                     );
  285.  
  286.                     $this->db->where('lap_rekap_id', $lap_rekap_id);
  287.                     $this->db->update('sihadir_lap_rekap', $data);
  288.                 }
  289.             }
  290.  
  291.             // Total Persen Telat/PC
  292.             $dataTotalPersenTelatCepat = $this->db->select_sum('lap_rekap_potongan', 'totalpersentelatcepat')->get_where('sihadir_lap_rekap', array('pegawai_id' => $pegawai_id, 'lap_rekap_bulan' => $bulan, 'lap_rekap_tahun' => $tahun, 'lap_rekap_tipe' => 'P'))->row();
  293.             if (count($dataTotalPersenTelatCepat) > 0) {
  294.                 $totalpotongantelatcepat = $dataTotalPersenTelatCepat->totalpersentelatcepat;
  295.             } else {
  296.                 $totalpotongantelatcepat = 0;
  297.             }
  298.  
  299.             // Total Potongan Cuti
  300.             $dataTotalPotonganCuti = $this->db->select_sum('lap_rekap_potongan', 'totalpotongancuti')->get_where('sihadir_lap_rekap', array('pegawai_id' => $pegawai_id, 'lap_rekap_bulan' => $bulan, 'lap_rekap_tahun' => $tahun, 'lap_rekap_tipe' => 'C'))->row();
  301.             if (count($dataTotalPotonganCuti) > 0) {
  302.                 $totalpotongancuti = $dataTotalPotonganCuti->totalpotongancuti;
  303.             } else {
  304.                 $totalpotongancuti = 0;
  305.             }
  306.  
  307.             // Total Cuti
  308.             $listCutiNonAlpha = $this->db->order_by('absensi_tanggal', 'asc')->get_where('v_absensi', array('MONTH(absensi_tanggal)' => $bulan, 'YEAR(absensi_tanggal)' => $tahun, 'absensi_posting' => 'Y', 'jenis_cuti_rekap' => 'Y', 'jenis_cuti_default' => 'T', 'pegawai_id' => $pegawai_id))->result();
  309.             $jumlahcuti       = count($listCutiNonAlpha);
  310.             // Hitung Hari Kerja
  311.             $dataJadwal = $this->db->get_where('v_jadwal_kerja', array('pegawai_id' => $pegawai_id, 'MONTH(jadwal_kerja_tanggal)' => $bulan, 'YEAR(jadwal_kerja_tanggal)' => $tahun, 'jam_kerja_status_libur' => 0))->result();
  312.             $harikerja  = count($dataJadwal);
  313.             // Hari Libur
  314.             $harilibur = 0;
  315.             $dataLibur = $this->db->get_where('v_hari_libur', array('MONTH(hari_libur_tanggal)' => $bulan, 'YEAR(hari_libur_tanggal)' => $tahun))->result();
  316.             foreach ($dataLibur as $l) {
  317.                 $hrlibur = getDay($l->hari_libur_tanggal);
  318.                 if ($hari_kerja == 5) {
  319.                     if ($hrlibur != 'SABTU' && $hrlibur != 'MINGGU') {
  320.                         $harilibur = ($harilibur + 1);
  321.                     } else {
  322.                         $harilibur = ($harilibur + 0);
  323.                     }
  324.                 } elseif ($hari_kerja == 6) {
  325.                     if ($hrlibur != 'MINGGU') {
  326.                         $harilibur = ($harilibur + 1);
  327.                     } else {
  328.                         $harilibur = ($harilibur + 0);
  329.                     }
  330.                 } else {
  331.                     $harilibur = ($harilibur + 0);
  332.                 }
  333.             }
  334.             $hrkerja             = ($harikerja - $harilibur);
  335.             $totalpersenpotongan = ($totalpotongantelatcepat + $totalpotongancuti);
  336.             // SUM Potongan
  337.             $dataPotongan = $this->db->get_where('sihadir_potongan_rekap', array('pegawai_id' => $pegawai_id, 'potongan_rekap_bulan' => $bulan, 'potongan_rekap_tahun' => $tahun))->row();
  338.             $dataMasuk    = $this->db->get_where('sihadir_absensi', array('pegawai_id' => $pegawai_id, 'MONTH(absensi_tanggal)' => $bulan, 'YEAR(absensi_tanggal)' => $tahun, 'absensi_in !=' => '', 'absensi_out !=' => '', 'absensi_posting' => 'Y', 'absensi_libur' => 0))->result();
  339.             $dataMasukIn  = $this->db->get_where('sihadir_absensi', array('pegawai_id' => $pegawai_id, 'MONTH(absensi_tanggal)' => $bulan, 'YEAR(absensi_tanggal)' => $tahun, 'absensi_in' => '', 'absensi_out !=' => '', 'absensi_posting' => 'Y', 'absensi_libur' => 0))->result();
  340.             $dataMasukOut = $this->db->get_where('sihadir_absensi', array('pegawai_id' => $pegawai_id, 'MONTH(absensi_tanggal)' => $bulan, 'YEAR(absensi_tanggal)' => $tahun, 'absensi_in !=' => '', 'absensi_out' => '', 'absensi_posting' => 'Y', 'absensi_libur' => 0))->result();
  341.             // $dataInKosong     = $this->db->get_where('sihadir_absensi', array('pegawai_id' => $pegawai_id, 'MONTH(absensi_tanggal)' => $bulan, 'YEAR(absensi_tanggal)' => $tahun, 'absensi_in' => '', 'absensi_out !=' => '', 'absensi_posting' => 'Y', 'absensi_libur' => 0))->result();
  342.             $Param_In_Kosong = $this->db->get_where('sihadir_parameter_rekap', array('parameter_rekap_jam_in' => 1, 'parameter_rekap_tipe' => 'T'))->row();
  343.             $TotalInKosong   = (count($dataMasukIn) * $Param_In_Kosong->parameter_rekap_potongan);
  344.             // $dataOutKosong    = $this->db->get_where('sihadir_absensi', array('pegawai_id' => $pegawai_id, 'MONTH(absensi_tanggal)' => $bulan, 'YEAR(absensi_tanggal)' => $tahun, 'absensi_in !=' => '', 'absensi_out' => '', 'absensi_posting' => 'Y', 'absensi_libur' => 0))->result();
  345.             $Param_Out_Kosong = $this->db->get_where('sihadir_parameter_rekap', array('parameter_rekap_jam_out' => 1, 'parameter_rekap_tipe' => 'P'))->row();
  346.             $TotalOutKosong   = (count($dataMasukOut) * $Param_Out_Kosong->parameter_rekap_potongan);
  347.             $dataLainya       = $this->db->get_where('v_absensi', array('pegawai_id' => $pegawai_id, 'MONTH(absensi_tanggal)' => $bulan, 'YEAR(absensi_tanggal)' => $tahun, 'jenis_cuti_rekap' => 'T', 'absensi_posting' => 'Y', 'absensi_libur' => 0))->result();
  348.             $Masuk            = count($dataMasuk);
  349.             $MasukIn          = count($dataMasukIn);
  350.             $MasukOut         = count($dataMasukOut);
  351.             // $InKosong         = count($dataInKosong);
  352.             // $OutKosong        = count($dataOutKosong);
  353.             $Lainnya    = count($dataLainya);
  354.             $TotalAbsen = ($Masuk + $MasukIn + $MasukOut + $Lainnya + $jumlahcuti);
  355.             $tidakmasuk = ($hrkerja - $TotalAbsen);
  356.             // echo $hrkerja . ' ' . $Masuk . ' ' . $MasukIn . ' ' . $MasukOut . ' ' . $Lainnya . ' ' . $jumlahcuti . ' ' . $tidakmasuk . ' ' . $TotalAbsen;
  357.             // exit();
  358.  
  359.             // Potongan Alpha
  360.             $dataPotonganAlpha    = $this->db->get_where('v_jenis_cuti', array('jenis_cuti_default' => 'Y'))->row();
  361.             $potonganalpha        = ($dataPotonganAlpha->jenis_cuti_potongan * $tidakmasuk);
  362.             $totalrekappotongan   = ($totalpersenpotongan + ($potonganalpha > 100 ? 100 : $potonganalpha) + $TotalInKosong + $TotalOutKosong);
  363.             $totalpersenkehadiran = (100 - ($totalrekappotongan > 100 ? 100 : $totalrekappotongan));
  364.  
  365.             if (count($dataPotongan) > 0) {
  366.                 $potongan_rekap_id = $dataPotongan->potongan_rekap_id;
  367.                 $dataUpdate        = array(
  368.                     'potongan_rekap_hrkerja'      => $hrkerja,
  369.                     'potongan_rekap_masuk'        => $Masuk,
  370.                     'potongan_rekap_tdkmasuk'     => $tidakmasuk,
  371.                     'potongan_rekap_lainnya'      => $Lainnya,
  372.                     'potongan_rekap_lupa'         => ($MasukIn + $MasukOut),
  373.                     'potongan_rekap_persen'       => $totalrekappotongan,
  374.                     'potongan_rekap_persen_total' => ($totalpersenkehadiran > 100 ? 100 : $totalpersenkehadiran),
  375.                 );
  376.  
  377.                 $this->db->where('potongan_rekap_id', $potongan_rekap_id);
  378.                 $this->db->update('sihadir_potongan_rekap', $dataUpdate);
  379.             }
  380.  
  381.             // echo $pegawai_nama . ' Hari : ' . $harikerja . '-' . $harilibur . ' : ' . $hrkerja . ' Total Absen : ' . $TotalAbsen . ' Cuti Non Alpha : ' . $jumlahcuti . ' Telat : ' . $totalpersentelat . ' Cepat : ' . $totalpersencepat . ' Pot. Cuti : ' . $totalpotongancuti . ' Masuk : ' . $Masuk . ' Tdk Masuk : ' . $tidakmasuk . ' Pot. Alpha : ' . $potonganalpha . ' Rekap Potongan : ' . $totalrekappotongan . 'Total Potongan : ' . $totalpersenpotongan . ' Kehadiran : ' . $totalpersenkehadiran . ' In Kosong : ' . $MasukIn . ' - ' . $TotalInKosong . ' Out Kosong : ' . $MasukOut . ' - ' . $TotalOutKosong . ' Lainnya : '.$Lainnya. '<br>';
  382.             // exit();
  383.  
  384.             // Sihadir Lama Out_rekap
  385.             // if ($pegawai_uid != '') {
  386.             //     $this->db      = $this->load->database('sihadirlama', true);
  387.             //     $checkDataLama = $this->db->get_where('out_rekap', array('fid' => $pegawai_uid, 'nik' => $pegawai_nip, 'ThnBln' => $ThnBln))->row();
  388.             //     if (count($checkDataLama) > 0) {
  389.             //         $idtpp     = $checkDataLama->id;
  390.             //         $dataRekap = array(
  391.             //             'persentase' => $totalpersenkehadiran,
  392.             //             'IdUnit'     => $idunit,
  393.             //         );
  394.  
  395.             //         $this->db->where('id', $idtpp);
  396.             //         $this->db->update('out_rekap', $dataRekap);
  397.             //     } else {
  398.             //         $dataRekap = array(
  399.             //             'fid'        => $pegawai_uid,
  400.             //             'nik'        => $pegawai_nip,
  401.             //             'persentase' => $totalpersenkehadiran,
  402.             //             'IdUnit'     => $idunit,
  403.             //             'ThnBln'     => $ThnBln,
  404.             //         );
  405.  
  406.             //         $this->db->insert('out_rekap', $dataRekap);
  407.             //     }
  408.             // }
  409.  
  410.             // $this->db = $this->load->database('sihadir', true);
  411.         }
  412.     }
Advertisement
RAW Paste Data Copied
Advertisement