function add() { if (!$this->ion_auth->logged_in()) { redirect('auth/login', 'refresh'); } else { $this->form_validation->set_rules('date_tidak_hadir', 'Tanggal Tidak Absen', 'trim|required'); $this->form_validation->set_rules('keterangan', 'Keterangan', 'trim|required'); $this->form_validation->set_rules('alasan', 'Alasan', 'trim|required'); if ($this->form_validation->run() == FALSE) { //echo json_encode(array('st'=>0, 'errors'=>validation_errors('<div class="alert alert-danger" role="alert">', '</div>'))); redirect('form_absen/input', 'refresh'); } else { $user_id = $this->input->post('emp'); $sess_id = $this->session->userdata('user_id'); $data = array('id_comp_session' => 1, 'date_tidak_hadir' => date('Y-m-d', strtotime($this->input->post('date_tidak_hadir'))), 'keterangan_id' => $this->input->post('keterangan'), 'alasan' => $this->input->post('alasan'), 'user_app_lv1' => $this->input->post('atasan1'), 'user_app_lv2' => $this->input->post('atasan2'), 'user_app_lv3' => $this->input->post('atasan3'), 'created_on' => date('Y-m-d', strtotime('now')), 'created_by' => $sess_id); if ($this->input->post('potong_cuti') == 1) { $user_nik = get_nik($user_id); $date = $this->input->post('date_tidak_hadir'); $recid = $this->get_sisa_absen($user_id)[0]['RECID']; $sisa_absen = $this->get_sisa_absen($user_id)[0]['ENTITLEMENT'] - 1; $this->update_sisa_absen($recid, $sisa_absen); $data2 = array('nik' => get_mchid($user_nik), 'jhk' => 1, 'cuti' => 1, 'tanggal' => date("d", strtotime($date)), 'bulan' => date("m", strtotime($date)), 'tahun' => date("Y", strtotime($date)), 'create_date' => date('Y-m-d', strtotime('now')), 'create_user_id' => $this->session->userdata('user_id')); $this->db->insert('attendance', $data2); } if ($this->form_validation->run() == true && $this->form_absen_model->create_($user_id, $data)) { $absen_id = $this->db->insert_id(); $user_app_lv1 = getValue('user_app_lv1', 'users_absen', array('id' => 'where/' . $absen_id)); $isi_email = get_name($user_id) . ' mengajukan keterangan tidak absen, untuk melihat detail silakan <a href=' . base_url() . 'form_absen/detail/' . $absen_id . '>Klik Disini</a><br />'; if ($user_id !== $sess_id) { $this->approval->by_admin('absen', $absen_id, $sess_id, $user_id, $this->detail_email($absen_id)); } if (!empty($user_app_lv1)) { if (!empty(getEmail($user_app_lv1))) { $this->send_email(getEmail($user_app_lv1), 'Pengajuan Keterangan Tidak Absen', $isi_email); } $this->approval->request('lv1', 'absen', $absen_id, $user_id, $this->detail_email($absen_id)); } else { if (!empty(getEmail($this->approval->approver('absen')))) { $this->send_email(getEmail($this->approval->approver('absen')), 'Pengajuan Keterangan Tidak Absen', $isi_email); } $this->approval->request('hrd', 'absen', $absen_id, $user_id, $this->detail_email($absen_id)); } redirect('form_absen', 'refresh'); //echo json_encode(array('st' =>1)); } } } }
function cek_all_approval($id) { $approval_status_id_lv1 = $this->db->where('users_cuti.id', $id)->get('users_cuti')->row('approval_status_id_lv1'); $approval_status_id_lv2 = $this->db->where('users_cuti.id', $id)->get('users_cuti')->row('approval_status_id_lv2'); $approval_status_id_lv3 = $this->db->where('users_cuti.id', $id)->get('users_cuti')->row('approval_status_id_lv3'); $user_id = $this->db->where('users_cuti.id', $id)->get('users_cuti')->row('user_id'); if ($approval_status_id_lv1 == 1 && $approval_status_id_lv2 == 1 && $approval_status_id_lv3 == 1) { // Start date $date = $this->db->where('users_cuti.id', $id)->get('users_cuti')->row('date_mulai_cuti'); // End date $end_date = $this->db->where('users_cuti.id', $id)->get('users_cuti')->row('date_selesai_cuti'); while (strtotime($date) <= strtotime($end_date)) { $data = array('nik' => get_mchid($user_id), 'jhk' => 1, 'cuti' => 1, 'tanggal' => date("d", strtotime($date)), 'bulan' => date("m", strtotime($date)), 'tahun' => date("Y", strtotime($date)), 'create_date' => date('Y-m-d', strtotime('now')), 'create_user_id' => $this->session->userdata('user_id')); $this->db->insert('attendance', $data); $date = date("Y-m-d", strtotime("+1 day", strtotime($date))); } } }
function update_attendance($id) { $user_nik = get_nik(getValue('user_id', 'users_cuti', array('id' => 'where/' . $id))); // Start date $date = getValue('date_mulai_cuti', 'users_cuti', array('id' => 'where/' . $id)); // End date $end_date = getValue('date_selesai_cuti', 'users_cuti', array('id' => 'where/' . $id)); while (strtotime($date) <= strtotime($end_date)) { $data = array('nik' => get_mchid($user_nik), 'jhk' => 1, 'cuti' => 1, 'tanggal' => date("d", strtotime($date)), 'bulan' => date("m", strtotime($date)), 'tahun' => date("Y", strtotime($date)), 'create_date' => date('Y-m-d', strtotime('now')), 'create_user_id' => $this->session->userdata('user_id')); $this->db->insert('attendance', $data); $date = date("Y-m-d", strtotime("+1 day", strtotime($date))); } $jml_hari_cuti = getValue('jumlah_hari', 'users_cuti', array('id' => 'where/' . $id)); $recid = $this->get_sisa_cuti($user_nik)[0]['RECID']; $sisa_cuti = $this->get_sisa_cuti($user_nik)[0]['ENTITLEMENT'] - $jml_hari_cuti; $this->update_sisa_cuti($recid, $sisa_cuti); }
function login() { $this->data['title'] = "Login"; //validate form input $this->form_validation->set_rules('identity', 'Identity', 'required'); $this->form_validation->set_rules('password', 'Password', 'required'); //check to see if the user is logging in $jsondata = file_get_contents(get_api_key() . 'users/lists/format/json'); //convert json object to php associative array $data = json_decode($jsondata, true); //print_mz($data); if ($this->form_validation->run() == true) { $last_link = $this->session->userdata('last_link'); $nik = $this->input->post('identity'); $email = !empty($data['EMAIL']) ? $data['EMAIL'] : $this->input->post('identity'); $user_id = !empty(get_id($nik)) ? get_id($nik) : get_id_by_email($email); $last_login = $this->db->select('last_login')->where('nik', $nik)->or_where('email', $email)->get('users')->row('last_login'); $first_login = !empty($last_login) ? '' : '1'; if ($this->ion_auth->login($this->input->post('identity'), $this->input->post('password'))) { if (!empty($last_link)) { redirect($last_link); } else { if (!is_admin()) { redirect('person/detail/' . $user_id . '/' . $first_login, 'refresh'); } $this->session->set_flashdata('message', $this->ion_auth->messages()); redirect('/', 'refresh'); } } elseif ($this->cekNik($data, 'EMPLID', $this->input->post('identity')) == TRUE && $this->input->post('password') == 'password' && is_registered($this->input->post('identity')) == false) { $getdata = file_get_contents(get_api_key() . 'users/list/EMPLID/' . $this->input->post('identity') . '/format/json'); $data = json_decode($getdata, true); $username = $data['NAME']; $password = $this->input->post('password'); $additional_data = array('first_name' => $data['FIRSTNAME'], 'last_name' => $data['LASTNAME'], 'nik' => $this->input->post('identity'), 'bod' => date('Y-m-d', strtotime($data['BIRTHDATE'])), 'phone' => $data['PHONE'], 'marital_id' => $data['MARITALSTATUS'], 'previous_email' => $data['SMS'], 'bb_pin' => $data['PINBLACKBERRY']); if ($this->ion_auth->register($username, $password, $email, $additional_data)) { $this->send_email_inventory($data['EMPLID']); $mch = array('mchID' => get_mchid($nik)); $this->db->where('nik', $nik); $this->db->update('users', $mch); /*if( $this->send_email_notification($data['EMPLID'])){ $this->session->set_flashdata('message', 'Account is inactive'); redirect("auth/login", 'refresh'); }else{ $this->session->set_flashdata('message', 'Activation Is Inactive'); }*/ $this->send_email_activation($data['EMPLID']); $this->session->set_flashdata('message', 'Account is inactive'); redirect("auth/login", 'refresh'); } else { $this->session->set_flashdata('message', 'Wrong Password or Account is still inactive, Please Contact The Administrator'); redirect("auth/login", 'refresh'); } } else { $this->session->set_flashdata('message', $this->ion_auth->errors()); redirect('auth/login', 'refresh'); } } else { //the user is not logging in so display the login page //set the flash data error message if there is one $this->data['message'] = validation_errors() ? validation_errors() : $this->session->flashdata('message'); $this->data['identity'] = array('name' => 'identity', 'id' => 'identity', 'type' => 'text', 'value' => $this->form_validation->set_value('identity'), 'placeholder' => 'NIK / E-mail', 'required' => 'required'); $this->data['password'] = array('name' => 'password', 'id' => 'password', 'type' => 'password', 'placeholder' => 'Password', 'required' => 'required'); $this->_render_page('auth/login', $this->data); } }