load->database(); } // ========================================== // PAGE // ========================================== public function index() { $data = [ "active_menu" => "leave_requests" ]; $data['employees'] = $this->db ->where('is_active',1) ->order_by('full_name','ASC') ->get('k_employees') ->result(); $this->load->view('partials/header', $data); $this->load->view('employees/leave_requests', $data); $this->load->view('partials/footer'); } // ========================================== // DATATABLE // ========================================== public function get_data() { $this->db->select(' lr.*, e.full_name, e.fingerprint_user_id '); $this->db->from('k_leave_requests lr'); $this->db->join( 'k_employees e', 'e.id=lr.employee_id', 'left' ); $this->db->order_by('lr.id','DESC'); $list = $this->db->get()->result(); $data = []; $no = 1; foreach($list as $r){ // ===================================== // LEAVE TYPE // ===================================== $leave_type = '-'; if($r->leave_type == 'annual'){ $leave_type = 'Cuti Tahunan'; } if($r->leave_type == 'sick'){ $leave_type = 'Sakit'; } if($r->leave_type == 'permit'){ $leave_type = 'Izin'; } if($r->leave_type == 'maternity'){ $leave_type = 'Cuti Melahirkan'; } if($r->leave_type == 'unpaid'){ $leave_type = 'Cuti Tidak Dibayar'; } // ===================================== // STATUS // ===================================== if($r->approval_status == 'approved'){ $status = ' Disetujui '; } elseif($r->approval_status == 'rejected'){ $status = ' Ditolak '; } else { $status = ' Pending '; } $data[] = [ $no++, $r->fingerprint_user_id, $r->full_name, $leave_type, $r->start_date, $r->end_date, $r->total_days . ' Hari', $status, ' ' ]; } echo json_encode([ "data" => $data ]); } // ========================================== // DETAIL // ========================================== public function detail($id) { $data = $this->db ->get_where( 'k_leave_requests', ['id'=>$id] ) ->row(); echo json_encode($data); } // ========================================== // SAVE // ========================================== public function save() { try{ $start_date = $this->input->post('start_date'); $end_date = $this->input->post('end_date'); $total_days = ( strtotime($end_date) - strtotime($start_date) ) / 86400 + 1; $data = [ 'employee_id' => $this->input->post('employee_id'), 'leave_type' => $this->input->post('leave_type'), 'start_date' => $start_date, 'end_date' => $end_date, 'total_days' => $total_days, 'reason' => $this->input->post('reason'), 'approval_status' => $this->input->post('approval_status') ]; $this->db->insert( 'k_leave_requests', $data ); echo json_encode([ 'status' => true, 'message'=> 'Leave request berhasil ditambahkan' ]); } catch(Exception $e){ echo json_encode([ 'status' => false, 'message'=> $e->getMessage() ]); } } // ========================================== // UPDATE // ========================================== public function update() { try{ $id = $this->input->post('id'); $start_date = $this->input->post('start_date'); $end_date = $this->input->post('end_date'); $total_days = ( strtotime($end_date) - strtotime($start_date) ) / 86400 + 1; $data = [ 'employee_id' => $this->input->post('employee_id'), 'leave_type' => $this->input->post('leave_type'), 'start_date' => $start_date, 'end_date' => $end_date, 'total_days' => $total_days, 'reason' => $this->input->post('reason'), 'approval_status' => $this->input->post('approval_status') ]; $this->db->where('id',$id); $this->db->update( 'k_leave_requests', $data ); echo json_encode([ 'status' => true, 'message'=> 'Leave request berhasil diupdate' ]); } catch(Exception $e){ echo json_encode([ 'status' => false, 'message'=> $e->getMessage() ]); } } // ========================================== // DELETE // ========================================== public function delete($id) { $this->db->delete( 'k_leave_requests', ['id'=>$id] ); echo json_encode([ 'status' => true, 'message'=> 'Leave request berhasil dihapus' ]); } }