AbsensiModel = new ModelAbsensi(); } public function index() { if (session()->has('nip') && session()->has('username')) { $data = array( 'body' => 'Absensi/list', 'absensi' => $this->AbsensiModel->getAbsensi(), 'username' => session('username'), 'nama' => session('nama'), 'hak_akses' => session('hak_akses'), ); return view('index', $data); } else { // Jika pengguna belum login, arahkan ke halaman login return redirect()->to(base_url() . 'login'); } } public function input() { if (session()->has('nip') && session()->has('username')) { $data = array( 'body' => 'Absensi/input', 'username' => session('username'), 'nama' => session('nama'), 'hak_akses' => session('hak_akses'), ); return view('index', $data); } else { // Jika pengguna belum login, arahkan ke halaman login return redirect()->to(base_url() . 'login'); } } public function insert() { $data = array( 'bulan' => $this->request->getPost('bulan'), 'tahun' => $this->request->getPost('tahun'), 'nip' => $this->request->getPost('nip'), 'nama' => $this->request->getPost('nama'), 'sakit' => $this->request->getPost('sakit'), 'ijin' => $this->request->getPost('ijin'), 'alpa' => $this->request->getPost('alpa'), 'cuti' => $this->request->getPost('cuti'), 'total_kehadiran' => $this->request->getPost('total_kehadiran'), 'total_kerja' => $this->request->getPost('total_kerja'), ); if ($this->AbsensiModel->insert_absensi($data)) { session()->setFlashdata('success', 'Berhasil Menambahkan Data Absensi'); return redirect()->to(base_url() . 'absensi/list'); } else { session()->setFlashdata('error', 'Gagal Menambahkan Data Absensi'); return redirect()->to(base_url() . 'absensi/input'); } } public function insertExcel() { $bulan = $this->request->getPost('bulan'); $tahun = $this->request->getPost('tahun'); $file_excel = $this->request->getFile('fileexcel'); $ext = $file_excel->getClientExtension(); if ($ext == 'xls') { $render = new \PhpOffice\PhpSpreadsheet\Reader\Xls(); } else { $render = new \PhpOffice\PhpSpreadsheet\Reader\Xlsx(); } $spreadsheet = $render->load($file_excel); $data = $spreadsheet->getActiveSheet()->toArray(); $errors = []; $successCount = 0; foreach ($data as $x => $row) { if ($x < 4) { continue; } if (empty($row[0])) { break; } $nip = $row[0]; $nama = $row[1]; $sakit = $row[2]; $ijin = $row[3]; $alpa = $row[4]; $cuti = $row[5]; $total_kehadiran = $row[11]; $total_kerja = $row[6]; $cek = $this->AbsensiModel->getByBulanTahun($bulan, $tahun, $nip); if (count($cek) > 0) { $errors[] = "Data gagal diimport, guru dengan NIP $nip pada bulan $bulan dan tahun $tahun sudah ada."; } else { $dataInsert = [ 'bulan' => $bulan, 'tahun' => $tahun, 'nip' => $nip, 'nama' => $nama, 'sakit' => $sakit, 'ijin' => $ijin, 'alpa' => $alpa, 'cuti' => $cuti, 'total_kehadiran' => $total_kehadiran, 'total_kerja' => $total_kerja, ]; if ($this->AbsensiModel->insert_absensi($dataInsert)) { $successCount++; } else { $errors[] = "Gagal mengimport data untuk NIP $nip."; } } } if ($successCount > 0) { session()->setFlashdata('success', "Berhasil mengimport $successCount data Excel."); } if (!empty($errors)) { session()->setFlashdata('error', $errors); } return redirect()->to(base_url() . 'absensi/list'); } public function edit($id) { if (session()->has('nip') && session()->has('username')) { $data_absensi = new ModelAbsensi(); $data = array( 'body' => 'Absensi/edit', 'data' => $data_absensi->getById($id)->getRow(), 'username' => session('username'), 'nama' => session('nama'), 'hak_akses' => session('hak_akses'), ); return view('index', $data); } else { // Jika pengguna belum login, arahkan ke halaman login return redirect()->to(base_url() . 'login'); } } public function update($id) { $data = $this->AbsensiModel->update($id, [ 'nip' => $this->request->getVar('nip'), 'nama_guru' => $this->request->getVar('nama_guru'), 'tanggal_lahir' => $this->request->getVar('tanggal_lahir'), 'jenis_kelamin' => $this->request->getVar('jenis_kelamin'), 'alamat' => $this->request->getVar('alamat'), 'jabatan' => $this->request->getVar('jabatan'), 'username' => $this->request->getVar('username'), 'password' => $this->request->getVar('password'), 'hak_akses' => $this->request->getVar('hak_akses'), ]); if ($data == true) { return redirect()->to(base_url() . 'absensin/list')->with('success', 'Data Berhasil Diubah!'); } else { return redirect()->to(base_url() . 'absensi/edit')->with('error', 'Data Gagal Diubah!'); } } public function delete($id) { $this->AbsensiModel->delete($id); return redirect()->to(base_url() . 'absensin/list')->with('success', 'Data Berhasil Dihapus!'); } }