diff --git a/absensi_server.zip b/absensi_server.zip new file mode 100644 index 0000000..cf9351a Binary files /dev/null and b/absensi_server.zip differ diff --git a/application/controllers/Admin.php b/application/controllers/Admin.php index 53b9d5a..842569b 100644 --- a/application/controllers/Admin.php +++ b/application/controllers/Admin.php @@ -46,8 +46,45 @@ class Admin extends CI_Controller $main['list_karyawan'] = $this->model->tampil_data_where('tb_karyawan', ['id_dinas' => $main['id_dinas']])->result(); $array = $main['list_karyawan']; + $list = json_decode(json_encode($array), true); + + $jabatan_order = ['Kepala Dinas', 'Sekretaris', 'Bendahara', 'Kepala Bidang']; + $new_array_list = array(); + // loop jabatan + foreach ($jabatan_order as $key => $value) { + // loop karyawan + foreach ($list as $key2 => $value2) { + // check if $value2['jabatan'] contains $value + if (strpos($value2['jabatan'], $value) !== false) { + // if true, push to array + array_push($new_array_list, $value2); + unset($list[$key2]); + } + } + } + + // print_r($new_array_list); + // print_r($list); + foreach ($list as $key => $value) { + // if $value['jabatan'] is not 'Staf' push to array + if ($value['jabatan'] != 'Staf') { + array_push($new_array_list, $value); + unset($list[$key]); + } + } + + // print_r($new_array_list); + foreach ($list as $key => $value) { + // if $value['jabatan'] is 'Staf' push to array + if ($value['jabatan'] == 'Staf') { + array_push($new_array_list, $value); + unset($list[$key]); + } + } + $new_array_list = json_decode(json_encode($new_array_list)); + $main['list_karyawan'] = $new_array_list; $today = date("Y-m-d"); - foreach ($array as $key => $value) { + foreach ($new_array_list as $key => $value) { $main['list_karyawan'][$key]->status_kerja = '-'; $check_libur = $this->model->tampil_data_where('tb_informasi_libur', ['nik' => $value->nik, 'tanggal' => $today])->result(); @@ -79,30 +116,103 @@ class Admin extends CI_Controller // echo "sini index admin"; } - function karyawan() + function karyawan($karyawan = null) { - if ($this->input->post('proses') == "table_karyawan") { - $list = $this->m_tabel_ss->get_datatables(array('nik', 'nama', 'no_telpon', 'jabatan', 'pangkat'), array(null, 'nik', 'nama', 'no_telpon', 'jabatan', 'pangkat', null), array('status' => 'desc'), "tb_karyawan", null, array("id_dinas" => $this->main['id_dinas']), "*"); + if ($this->input->post('proses') == "table_laporan") { + $list = $this->m_tabel_ss->get_datatables(array('created_at', 'ket_laporan'), array(null, 'created_at', 'ket_laporan', null), array('no_laporan' => 'desc'), "tb_laporan_karyawan", null, array("nik" => $this->input->post('nik')), "*"); $data = array(); $no = $_POST['start']; foreach ($list as $field) { + + + $no++; + $row = array(); + $row[] = $no; + $row[] = $field->created_at; + $row[] = $field->nama_laporan; + $row[] = "
"; + $data[] = $row; + } + + $output = array( + "draw" => $_POST['draw'], + "recordsTotal" => $this->m_tabel_ss->count_all("tb_laporan_karyawan", null, array("nik" => $this->input->post('nik')), "*"), + "recordsFiltered" => $this->m_tabel_ss->count_filtered(array('created_at', 'ket_laporan'), array(null, 'created_at', 'ket_laporan', null), array('no_laporan' => 'desc'), "tb_laporan_karyawan", null, array("nik" => $this->input->post('nik')), "*"), + "data" => $data, + ); + //output dalam format JSON + echo json_encode($output); + } else if ($this->input->post('proses') == "table_karyawan") { + $list = $this->m_tabel_ss->get_datatables(array('nik', 'nama', 'no_telpon', 'jabatan', 'pangkat'), array(null, 'nik', 'nama', 'no_telpon', 'jabatan', 'pangkat', null), array('status' => 'desc'), "tb_karyawan", null, array("id_dinas" => $this->main['id_dinas']), "*"); + $data = array(); + $no = $_POST['start']; + + // change stdClass $list to array + $list = json_decode(json_encode($list), true); + + $jabatan_order = ['Kepala Dinas', 'Sekretaris', 'Bendahara', 'Kepala Bidang']; + $new_array_list = array(); + // loop jabatan + foreach ($jabatan_order as $key => $value) { + // loop karyawan + foreach ($list as $key2 => $value2) { + // check if $value2['jabatan'] contains $value + if (strpos($value2['jabatan'], $value) !== false) { + // if true, push to array + array_push($new_array_list, $value2); + unset($list[$key2]); + } + } + } + + // print_r($new_array_list); + // print_r($list); + foreach ($list as $key => $value) { + // if $value['jabatan'] is not 'Staf' push to array + if ($value['jabatan'] != 'Staf') { + array_push($new_array_list, $value); + unset($list[$key]); + } + } + + // print_r($new_array_list); + foreach ($list as $key => $value) { + // if $value['jabatan'] is 'Staf' push to array + if ($value['jabatan'] == 'Staf') { + array_push($new_array_list, $value); + unset($list[$key]); + } + } + + + + foreach ($new_array_list as $field) { + $stat = ''; $title = 'Tukar ID Smartphone'; - if ($field->device_id == null || $field->device_id == '') { + if ($field['device_id'] == null || $field['device_id'] == '') { $stat = 'disabled'; $title = 'Karyawan Belum Login Dari Smartphone'; } + $cek_laporan = $this->model->tampil_data_where('tb_laporan_karyawan', ['nik' => $field['nik']])->result(); + + if (count($cek_laporan) > 0) { + $ada_laporan = 'ada'; + } else { + $ada_laporan = 'tidak'; + } + $no++; $row = array(); $row[] = $no; - $row[] = $field->nik; - $row[] = $field->nama; - $row[] = $field->no_telpon; - $row[] = $field->jabatan; - $row[] = $field->pangkat; - $row[] = "
   
"; + $row[] = $field['nik']; + $row[] = $field['nama']; + $row[] = $field['no_telpon']; + $row[] = $field['jabatan']; + $row[] = $field['pangkat']; + $row[] = "
"; $data[] = $row; } @@ -114,9 +224,27 @@ class Admin extends CI_Controller ); //output dalam format JSON echo json_encode($output); + } else if ($karyawan != '' && $karyawan != null) { + $main = $this->main; + $main["header"] = "Halaman Detail Karyawan"; + $main['karyawan'] = $this->model->tampil_data_where('tb_karyawan', ['nik' => $karyawan, 'id_dinas' => $this->main['id_dinas']])->result(); + + if (count($main['karyawan']) == 0) return redirect('admin/karyawan'); + + $cek_laporan = $this->model->tampil_data_where('tb_laporan_karyawan', ['nik' => $karyawan])->result(); + + if (count($cek_laporan) > 0) { + // echo 'ada'; + $main['laporan'] = $cek_laporan; + $main['nik'] = $karyawan; + $nama = $main['karyawan'][0]->nama; + $this->load->view('admin/menu/karyawan_detail', $main); + } else { + redirect('admin/karyawan'); + } } else { $main = $this->main; - $main["header"] = "Halaman Karyawan"; + $main["header"] = "Halaman Pegawai"; $this->load->view('admin/menu/karyawan', $main); } @@ -156,7 +284,7 @@ class Admin extends CI_Controller $row[] = $field->range_tanggal; $row[] = $value_karyawan; $row[] = $field->created_at; - $row[] = "
"; + $row[] = "
"; $data[] = $row; } @@ -203,7 +331,7 @@ class Admin extends CI_Controller $row[] = $field->range_tanggal; $row[] = $value_karyawan; $row[] = $field->created_at; - $row[] = "
"; + $row[] = "
"; $data[] = $row; } @@ -231,6 +359,7 @@ class Admin extends CI_Controller $main = $this->main; $main["header"] = "Halaman Laporan"; + // $main["month"] = $month != null ? $month : date("m"); $main["month"] = $month != null ? $month : date("m"); $main["year"] = $year != null ? $year : date("Y"); @@ -244,7 +373,44 @@ class Admin extends CI_Controller // $tanggal = strlen($i) == 1 ? "0" . $i : $i; // echo $tanggal; - $main['list_karyawan'] = $this->model->tampil_data_where(('tb_karyawan'), ['id_dinas' => $this->main['id_dinas']])->result(); + $list_karyawan = $this->model->tampil_data_where(('tb_karyawan'), ['id_dinas' => $this->main['id_dinas']])->result_array(); + + $jabatan_order = ['Kepala Dinas', 'Sekretaris', 'Bendahara', 'Kepala Bidang']; + $array = array(); + // loop jabatan + foreach ($jabatan_order as $key => $value) { + // loop karyawan + foreach ($list_karyawan as $key2 => $value2) { + // check if $value2['jabatan'] contains $value + if (strpos($value2['jabatan'], $value) !== false) { + // if true, push to array + array_push($array, $value2); + unset($list_karyawan[$key2]); + } + } + } + + // print_r($array); + // print_r($list_karyawan); + foreach ($list_karyawan as $key => $value) { + // if $value['jabatan'] is not 'Staf' push to array + if ($value['jabatan'] != 'Staf') { + array_push($array, $value); + unset($list_karyawan[$key]); + } + } + + // print_r($array); + foreach ($list_karyawan as $key => $value) { + // if $value['jabatan'] is 'Staf' push to array + if ($value['jabatan'] == 'Staf') { + array_push($array, $value); + unset($list_karyawan[$key]); + } + } + + // change array to stdClass + $main["list_karyawan"] = json_decode(json_encode($array)); // print_r($main['list_karyawan']); @@ -256,18 +422,73 @@ class Admin extends CI_Controller $month = $month != null ? $month : date("m"); $year = $year != null ? $year : date("Y"); + + $days_in_month = date('t', strtotime($year . '-' . $month . '-01')); + + $day_array = []; + + for ($i = 1; $i <= $days_in_month; $i++) { + $tanggal = strlen($i) == 1 ? "0" . $i : $i; + $date = $year . '-' . $month . '-' . $tanggal; + $day = date('l', strtotime($date)); + if ($day == 'Saturday' || $day == 'Sunday') { + continue; + } + + // if the day is not monday, add the previous to monday but null + + + // if reach day friday, add the week array to week array + + + $day_array[] = ['date' => $date, 'day' => $day]; + // echo '
'; + // echo $i; + // echo '
'; + } + + if ($day_array[0]['day'] == 'Tuesday') { + $day_array = array_merge([['date' => '', 'day' => 'Monday']], $day_array); + } else if ($day_array[0]['day'] == 'Wednesday') { + $day_array = array_merge([['date' => '', 'day' => 'Monday'], ['date' => '', 'day' => 'Tuesday']], $day_array); + } else if ($day_array[0]['day'] == 'Thursday') { + $day_array = array_merge([['date' => '', 'day' => 'Monday'], ['date' => '', 'day' => 'Tuesday'], ['date' => '', 'day' => 'Wednesday']], $day_array); + } else if ($day_array[0]['day'] == 'Friday') { + $day_array = array_merge([['date' => '', 'day' => 'Monday'], ['date' => '', 'day' => 'Tuesday'], ['date' => '', 'day' => 'Wednesday'], ['date' => '', 'day' => 'Thursday']], $day_array); + } + + if ($day_array[count($day_array) - 1]['day'] == 'Monday') { + $day_array = array_merge($day_array, [['date' => '', 'day' => 'Tuesday'], ['date' => '', 'day' => 'Wednesday'], ['date' => '', 'day' => 'Thursday'], ['date' => '', 'day' => 'Friday']]); + } else if ($day_array[count($day_array) - 1]['day'] == 'Tuesday') { + $day_array = array_merge($day_array, [['date' => '', 'day' => 'Wednesday'], ['date' => '', 'day' => 'Thursday'], ['date' => '', 'day' => 'Friday']]); + } else if ($day_array[count($day_array) - 1]['day'] == 'Wednesday') { + $day_array = array_merge($day_array, [['date' => '', 'day' => 'Thursday'], ['date' => '', 'day' => 'Friday']]); + } else if ($day_array[count($day_array) - 1]['day'] == 'Thursday') { + $day_array = array_merge($day_array, [['date' => '', 'day' => 'Friday']]); + } + + $week_array = []; + + for ($i = 0; $i < count($day_array); $i++) { + if ($i % 5 == 0) { + $week_array[] = [$day_array[$i], $day_array[$i + 1], $day_array[$i + 2], $day_array[$i + 3], $day_array[$i + 4]]; + } + } // echo "sini tampilkan pdf"; $this->load->library('Pdf'); - $pdf = new Pdf('P', 'mm', array(210, 297)); + $pdf = new Pdf('L', 'mm', array(220, 360)); + $pdf->SetMargins(10, 30); $pdf->AddPage(); $pdf->SetFont('times', '', 12); + + + $html = ' -



- Daftar Hadir Pegawai
- Periode ' . $this->model->bulan($month) . ' ' . $year . ' + DAFTAR HADIR HARIAN PEGAWAI NEGERI SIPIL
+ ' . $this->model->bulan($month) . ' ' . $year . '
@@ -282,81 +503,723 @@ class Admin extends CI_Controller '; - $first_date = ($month == "09" && $year == 2022) ? 21 : 1; - $last_date = date("d"); + $pdf->SetFont('times', '', 10); + $html .= ' + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - $check_karyawan = $this->model->tampil_data_where('tb_karyawan', ['id_dinas' => $this->main['id_dinas']])->result(); - for ($i = $first_date; $i <= $last_date; $i++) { - $tanggal = strlen($i) == 1 ? "0" . $i : $i; - $html .= ' -

-
NONAMAJAM/PARAF + Senin, - + Selasa, 01/11/2022 + Rabu, 02/11/2022 + Kamis, 03/11/2022 + Jumat, 04/11/2022 Ket
PagiSiangPagiSiangPagiSiangPagiSiangPagiSiang
MPMPMPMPMPMPMPMPMPMP
1boboJam + - + - + - + -
- - - -
Tanggal '. $tanggal . '-' . $month . '-' . $year . '
- '; - $html .= ' - - - - - - - - - - - - '; - foreach ($check_karyawan as $key => $value) { - $check_absensi = $this->model->tampil_data_where('tb_absensi_karyawan', ['nik' => $value->nik, "tanggal" => $year . "-" . $month . "-" . $tanggal])->result(); + + + + - $status = '-'; - $jam_masuk = "-"; - $jam_istirehat = "-"; - $jam_masuk_kembali = "-"; - $jam_pulang = "-"; - if (count($check_absensi) > 0) { - $status = 'Masuk Kerja'; - $jam_masuk = $check_absensi[0]->jam_masuk; - $jam_istirehat = $check_absensi[0]->jam_istirehat ?? '-'; - $jam_masuk_kembali = $check_absensi[0]->jam_masuk_kembali ?? '-'; - $jam_pulang = $check_absensi[0]->jam_pulang ?? '-'; - } + + + + - $check_libur = $this->model->tampil_data_where('tb_informasi_libur', ['nik' => $value->nik, "tanggal" => $year . "-" . $month . "-" . $tanggal])->result(); - if (count($check_libur) > 0) { - $status = "Libur"; - $idnya = $check_libur[0]->id_libur; - } + + + + - $check_perjalanan_dinas = $this->model->tampil_data_where('tb_informasi_perjalanan_dinas', ['nik' => $value->nik, "tanggal" => $year . "-" . $month . "-" . $tanggal])->result(); - if (count($check_perjalanan_dinas) > 0) { - $status = "Perjalanan Dinas"; - $idnya = $check_perjalanan_dinas[0]->id_perjalanan_dinas; - } + + + + - $html .= ' - - - - - - - - - - - '; - } - $html .= '
NIPNamaJabatanStatusJam MasukJam IstirehatJam Masuk KembaliJam Pulang
+ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + -
'.$value->nik.''.$value->nama.''.$value->jabatan.''.$status.''.$jam_masuk.''.$jam_istirehat.''.$jam_masuk_kembali.''.$jam_pulang.'
'; - } + + + + + 1234567890123444 + + + IV D + Paraf + + + - + + - + + - + + - + + + - + + - + + - + + - + + + + - + + - + + - + + - + + + + - + + - + + - + + - + + + + - + + - + + - + + - + + + + + Sekretariat + + + 2 + sdfsdfdsf + Jam + + - + + - + + - + + - + + + - + + - + + - + + - + + + + - + + - + + - + + - + + + + - + + - + + - + + - + + + + - + + - + + - + + - + + + + + + 123456789012345612 + + + I B + Paraf + + + - + + - + + - + + - + + + - + + - + + - + + - + + + + - + + - + + - + + - + + + + - + + - + + - + + - + + + + - + + - + + - + + - + + + + + Sekretariat + + + '; + // $first_date = ($month == "09" && $year == 2022) ? 21 : 1; + // $last_date = date("d"); + + // $check_karyawan = $this->model->tampil_data_where('tb_karyawan', ['id_dinas' => $this->main['id_dinas']])->result(); + // for ($i = $first_date; $i <= $last_date; $i++) { + // $tanggal = strlen($i) == 1 ? "0" . $i : $i; + // $html .= ' + //

+ // + // + // + // + //
Tanggal ' . $tanggal . '-' . $month . '-' . $year . '
+ // '; + // $html .= ' + // + // + // + // + // + // + // + // + // + // + // + // '; + // foreach ($check_karyawan as $key => $value) { + // $check_absensi = $this->model->tampil_data_where('tb_absensi_karyawan', ['nik' => $value->nik, "tanggal" => $year . "-" . $month . "-" . $tanggal])->result(); + + // $status = '-'; + // $jam_masuk = "-"; + // $jam_istirehat = "-"; + // $jam_masuk_kembali = "-"; + // $jam_pulang = "-"; + + // if (count($check_absensi) > 0) { + // $status = 'Masuk Kerja'; + // $jam_masuk = $check_absensi[0]->jam_masuk; + // $jam_istirehat = $check_absensi[0]->jam_istirehat ?? '-'; + // $jam_masuk_kembali = $check_absensi[0]->jam_masuk_kembali ?? '-'; + // $jam_pulang = $check_absensi[0]->jam_pulang ?? '-'; + // } + + // $check_libur = $this->model->tampil_data_where('tb_informasi_libur', ['nik' => $value->nik, "tanggal" => $year . "-" . $month . "-" . $tanggal])->result(); + + // if (count($check_libur) > 0) { + // $status = "Libur"; + // $idnya = $check_libur[0]->id_libur; + // } + + // $check_perjalanan_dinas = $this->model->tampil_data_where('tb_informasi_perjalanan_dinas', ['nik' => $value->nik, "tanggal" => $year . "-" . $month . "-" . $tanggal])->result(); + + // if (count($check_perjalanan_dinas) > 0) { + // $status = "Perjalanan Dinas"; + // $idnya = $check_perjalanan_dinas[0]->id_perjalanan_dinas; + // } + + // $html .= ' + // + // + // + // + // + // + // + // + // + // + // '; + // } + // $html .= '
NIPNamaJabatanStatusJam MasukJam IstirehatJam Masuk KembaliJam Pulang
' . $value->nik . '' . $value->nama . '' . $value->jabatan . '' . $status . '' . $jam_masuk . '' . $jam_istirehat . '' . $jam_masuk_kembali . '' . $jam_pulang . '
'; + // } $pdf->writeHTML($html, true, false, true, false, ''); $pdf->Output("laporan data pasien.pdf", 'I'); } + + function surat_masuk() + { + + if ($this->input->post('proses') == "table_surat_masuk") { + $list = $this->m_tabel_ss->get_datatables(array('no_surat', 'asal_surat', 'tanggal_pengiriman', 'tanggal_diterima', 'created_at', 'updated_at'), array('no_surat', 'asal_surat', 'tanggal_pengiriman', 'tanggal_diterima', 'created_at', 'updated_at', null), array('id_surat_masuk' => 'desc'), "tb_surat_masuk", null, array("id_dinas" => $this->main['id_dinas']), "*"); + $data = array(); + $no = $_POST['start']; + foreach ($list as $field) { + + $no++; + $row = array(); + $row[] = $field->no_surat; + $row[] = $field->tanggal_pengiriman; + $row[] = $field->tanggal_diterima; + $row[] = $field->no_agenda; + $row[] = $field->created_at; + $row[] = $field->updated_at; + $row[] = "
"; + $data[] = $row; + } + + $output = array( + "draw" => $_POST['draw'], + "recordsTotal" => $this->m_tabel_ss->count_all("tb_surat_masuk", null, array("id_dinas" => $this->main['id_dinas']), "*"), + "recordsFiltered" => $this->m_tabel_ss->count_filtered(array('no_surat', 'asal_surat', 'tanggal_pengiriman', 'tanggal_diterima', 'created_at', 'updated_at'), array('no_surat', 'asal_surat', 'tanggal_pengiriman', 'tanggal_diterima', null), array('id_surat_masuk' => 'desc'), "tb_surat_masuk", null, array("id_dinas" => $this->main['id_dinas']), "*"), + "data" => $data, + ); + //output dalam format JSON + echo json_encode($output); + } else { + $main = $this->main; + $main["header"] = "Halaman Surat Masuk"; + + + + $this->load->view('admin/menu/surat_masuk', $main); + } + } + + function logout() + { + $this->session->sess_destroy(); + redirect(base_url('login')); + } + + function cetakPDF($stat = null, $month = null, $year = null) + { + $main = $this->main; + + if ($stat == null) { + redirect(base_url('admin')); + } + if ($stat != 'pns' && $stat != 'kontrak') { + redirect(base_url('admin')); + } + + $main['stat'] = $stat == 'pns' ? 'PNS' : 'Kontrak'; + + $month = $month != null ? $month : date("m"); + $year = $year != null ? $year : date("Y"); + + $main['month'] = $month; + $main['year'] = $year; + + $list_karyawan = $this->model->tampil_data_where(('tb_karyawan'), ['id_dinas' => $this->main['id_dinas']])->result_array(); + + $jabatan_order = ['Kepala Dinas', 'Sekretaris', 'Bendahara', 'Kepala Bidang']; + $array = array(); + // loop jabatan + foreach ($jabatan_order as $key => $value) { + // loop karyawan + foreach ($list_karyawan as $key2 => $value2) { + // check if $value2['jabatan'] contains $value + if (strpos($value2['jabatan'], $value) !== false) { + // if true, push to array + array_push($array, $value2); + unset($list_karyawan[$key2]); + } + } + } + + // print_r($array); + // print_r($list_karyawan); + foreach ($list_karyawan as $key => $value) { + // if $value['jabatan'] is not 'Staf' push to array + if ($value['jabatan'] != 'Staf') { + array_push($array, $value); + unset($list_karyawan[$key]); + } + } + + // print_r($array); + foreach ($list_karyawan as $key => $value) { + // if $value['jabatan'] is 'Staf' push to array + if ($value['jabatan'] == 'Staf') { + array_push($array, $value); + unset($list_karyawan[$key]); + } + } + + $main['list_karyawan'] = json_decode(json_encode($array)); + $main['title'] = "Laporan Data Karyawan " . $main['stat'] . " Bulan " . $this->model->bulan($month) . " Tahun " . $year; + + $main['title2'] = 'Daftar Hadir Harian '; + $main['title2'] .= $stat == 'pns' ? "Pegawai Negeri Sipil" : "Tenaga Kontrak"; + $main['title3'] = $this->model->bulan($month) . " " . $year; + + $this->load->view('admin/menu/cetak_pdf', $main); + } + + function cobalagila() + { + $cek_all_karyawan = $this->model->tampil_data_keseluruhan('tb_karyawan')->result_array(); + $jabatan_order = ['Kepala Dinas', 'Sekretaris', 'Bendahara', 'Kepala Bidang']; + $array = array(); + // loop jabatan + foreach ($jabatan_order as $key => $value) { + // loop karyawan + foreach ($cek_all_karyawan as $key2 => $value2) { + // check if $value2['jabatan'] contains $value + if (strpos($value2['jabatan'], $value) !== false) { + // if true, push to array + array_push($array, $value2); + unset($cek_all_karyawan[$key2]); + } + } + } + + // print_r($array); + // print_r($cek_all_karyawan); + foreach ($cek_all_karyawan as $key => $value) { + // if $value['jabatan'] is not 'Staf' push to array + if ($value['jabatan'] != 'Staf') { + array_push($array, $value); + unset($cek_all_karyawan[$key]); + } + } + + // print_r($array); + foreach ($cek_all_karyawan as $key => $value) { + // if $value['jabatan'] is 'Staf' push to array + if ($value['jabatan'] == 'Staf') { + array_push($array, $value); + unset($cek_all_karyawan[$key]); + } + } + + // foreach ($array as $key => $value) { + // echo $value['jabatan'] . "
"; + // } + + } + + function cetak_list_pegawai() + { + $this->load->library('Pdf'); + // A4 paper in portrait orientation + $pdf = new Pdf('P', 'mm', array(210, 300), true, 'UTF-8', false); + $pdf->SetMargins(10, 30); + $pdf->AddPage(); + $pdf->SetFont('times', '', 10); + + $list_karyawan = $this->model->tampil_data_where(('tb_karyawan'), ['id_dinas' => $this->main['id_dinas']])->result_array(); + $jabatan_order = ['Kepala Dinas', 'Sekretaris', 'Bendahara', 'Kepala Bidang']; + $array = array(); + // loop jabatan + foreach ($jabatan_order as $key => $value) { + // loop karyawan + foreach ($list_karyawan as $key2 => $value2) { + // check if $value2['jabatan'] contains $value + if (strpos($value2['jabatan'], $value) !== false) { + // if true, push to array + array_push($array, $value2); + unset($list_karyawan[$key2]); + } + } + } + + // print_r($array); + // print_r($list_karyawan); + foreach ($list_karyawan as $key => $value) { + // if $value['jabatan'] is not 'Staf' push to array + if ($value['jabatan'] != 'Staf') { + array_push($array, $value); + unset($list_karyawan[$key]); + } + } + + // print_r($array); + foreach ($list_karyawan as $key => $value) { + // if $value['jabatan'] is 'Staf' push to array + if ($value['jabatan'] == 'Staf') { + array_push($array, $value); + unset($list_karyawan[$key]); + } + } + + $list_karyawan = json_decode(json_encode($array)); + + $html = ' + + + + +
+ DAFTAR PEGAWAI
+
+ + + '; + + $html .= ' + + + + + + + + + + + '; + + foreach ($list_karyawan as $key => $value) { + $html .= ' + + + + + + + + + + '; + } + + $html .= ' +
NoNamaNIKJabatanStatusPangkatKeanggotaan
' . ($key + 1) . '' . $value->nik . '' . $value->nama . '' . $value->jabatan . '' . $value->status . '' . $value->pangkat . '' . $value->keanggotaan . '


+ '; + + $html .= ' + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Topoyo, / ' . date('d / ') . $this->model->bulan(date('m')) . '/ 2022 +
+ Kepala Dinas Pariwisata +
+ Kepemudaaan Dan Olahraga +
+ HJ. NANDA . S. Kep ., MM +
+ Pangkat: Pembina Tk. IIVb +
+ Nip . 12312321 +
+ '; + + $pdf->writeHTML($html, true, false, true, false, ''); + $pdf->Output("laporan data pasien.pdf", 'I'); + } + + function admin_detail() + { + $main = $this->main; + $main["header"] = "Halaman Admin"; + $main['cek_data'] = $this->model->custom_query("SELECT * FROM tb_admin a JOIN tb_login_admin b ON a.nik = b.nik WHERE a.nik = '" . $this->session->userdata('nik') . "'" . " AND a.id_dinas = '" . $main['id_dinas'] . "'")->result(); + + if (count($main['cek_data']) == 0) return redirect('admin'); + + $main["cek_data"] = $main['cek_data'][0]; + + $this->load->view('admin/menu/admin_detail', $main); + } } diff --git a/application/controllers/Api.php b/application/controllers/Api.php index 6ff2e9f..03f2c22 100644 --- a/application/controllers/Api.php +++ b/application/controllers/Api.php @@ -125,11 +125,18 @@ class Api extends RestController $pangkat = $this->post('pangkat'); $status = $this->post('status'); $tanggal_lahir = $this->post('tanggal_lahir'); + $tempat_lahir = $this->post('tempat_lahir'); + $jenis_kelamin = $this->post('jenis_kelamin'); + $keanggotaan = $this->post('keanggotaan'); - if ($id_dinas == null || $id_dinas == '' || $nik == null || $nik == '' || $nama == null || $nama == '' || $no_telpon == null || $no_telpon == '' || $jabatan == null || $jabatan == '' || $alamat == null || $alamat == '' || $status_form == null || $status_form == '' || $pangkat == null || $pangkat == '' || $tanggal_lahir == null || $tanggal_lahir == '') { + + // $this->response(['message' => 'Data Karyawan Berhasil Diubah'], 200); + + if ($id_dinas == null || $id_dinas == '' || $nik == null || $nik == '' || $nama == null || $nama == '' || $no_telpon == null || $no_telpon == '' || $jabatan == null || $jabatan == '' || $alamat == null || $alamat == '' || $status_form == null || $status_form == '' || $pangkat == null || $pangkat == '' || $tanggal_lahir == null || $tanggal_lahir == '' || $tempat_lahir == null || $tempat_lahir == '' || $jenis_kelamin == null || $jenis_kelamin == '' || $keanggotaan == null || $keanggotaan == '') { $this->response(['message' => 'Isi Semua Form', 'stat' => false], 401); } + $cek_dinas = $this->model->tampil_data_where('tb_dinas', ['id_dinas' => $id_dinas])->result(); if (count($cek_dinas) == 0) return $this->response(['message' => 'Dinas Tidak Ditemukan', 'stat' => false], 401); @@ -139,7 +146,7 @@ class Api extends RestController $cek_data = $this->model->tampil_data_where('tb_karyawan', ['nik' => $nik])->result(); if (count($cek_data) > 0) { - $this->response(['message' => 'Karyawan Dengan NIK ' . $nik . " telah terdaftar di sistem", 'stat' => false], 403); + $this->response(['message' => 'Pegawai Dengan NIK ' . $nik . " telah terdaftar di sistem", 'stat' => false], 403); } else { $dir = "assets/images/foto_karyawan/$nik/"; @@ -151,7 +158,7 @@ class Api extends RestController move_uploaded_file($foto['tmp_name'], $path); $image_path = $path; - $this->model->insert("tb_karyawan", ['nik' => $nik, 'nama' => $nama, 'no_telpon' => $no_telpon, 'jabatan' => $jabatan, 'alamat' => $alamat, "id_dinas" => $id_dinas, "image" => $image_path, "status" => $status, "pangkat" => $pangkat, "tanggal_lahir" => $tanggal_lahir]); + $this->model->insert("tb_karyawan", ['nik' => $nik, 'nama' => $nama, 'no_telpon' => $no_telpon, 'jabatan' => $jabatan, 'alamat' => $alamat, "id_dinas" => $id_dinas, "image" => $image_path, "status" => $status, "pangkat" => $pangkat, "tanggal_lahir" => $tanggal_lahir, "tempat_lahir" => $tempat_lahir, "jenis_kelamin" => $jenis_kelamin, "keanggotaan" => $keanggotaan]); $this->model->insert("tb_login_user", ["username" => $nik, "password" => md5("12345678"), "nik" => $nik]); $this->response(['message' => 'Karyawan Dengan NIK ' . $nik . " berhasil didaftar di sistem\nUsername : " . $nik . "\nPassword : 12345678"], 201); } @@ -161,10 +168,10 @@ class Api extends RestController $cek_data = $this->model->tampil_data_where('tb_karyawan', ['nik' => $nik, "id_dinas" => $id_dinas])->result(); - if (count($cek_data) == 0) return $this->response(['message' => 'Karyawan Tidak Ditemukan', 'stat' => false], 401); + if (count($cek_data) == 0) return $this->response(['message' => 'Pegawai Tidak Ditemukan', 'stat' => false], 401); if ($foto == null) { - $this->model->update("tb_karyawan", ['nik' => $nik, "id_dinas" => $id_dinas], ["nama" => $nama, "no_telpon" => $no_telpon, "jabatan" => $jabatan, "alamat" => $alamat, "status" => $status, "pangkat" => $pangkat, "tanggal_lahir" => $tanggal_lahir]); + $this->model->update("tb_karyawan", ['nik' => $nik, "id_dinas" => $id_dinas], ["nama" => $nama, "no_telpon" => $no_telpon, "jabatan" => $jabatan, "alamat" => $alamat, "status" => $status, "pangkat" => $pangkat, "tanggal_lahir" => $tanggal_lahir, "tempat_lahir" => $tempat_lahir, "jenis_kelamin" => $jenis_kelamin, "keanggotaan" => $keanggotaan]); } else { $dir = "assets/images/foto_karyawan/$nik/"; if (is_dir($dir) === false) { @@ -183,12 +190,12 @@ class Api extends RestController move_uploaded_file($foto['tmp_name'], $path); $image_path = $path; - $this->model->update("tb_karyawan", ['nik' => $nik, "id_dinas" => $id_dinas], ["nama" => $nama, "no_telpon" => $no_telpon, "jabatan" => $jabatan, "alamat" => $alamat, "image" => $image_path, "status" => $status, "pangkat" => $pangkat, "tanggal_lahir" => $tanggal_lahir]); + $this->model->update("tb_karyawan", ['nik' => $nik, "id_dinas" => $id_dinas], ["nama" => $nama, "no_telpon" => $no_telpon, "jabatan" => $jabatan, "alamat" => $alamat, "image" => $image_path, "status" => $status, "pangkat" => $pangkat, "tanggal_lahir" => $tanggal_lahir, "tempat_lahir" => $tempat_lahir, "jenis_kelamin" => $jenis_kelamin, "keanggotaan" => $keanggotaan]); } - $this->response(['message' => 'Data Karyawan Berhasil Diubah'], 200); + $this->response(['message' => 'Data Pegawai Berhasil Diubah'], 200); } @@ -221,7 +228,7 @@ class Api extends RestController $cek_data = $this->model->tampil_data_where('tb_karyawan', ['nik' => $nik])->result(); - if (count($cek_data) == 0) return $this->response(['message' => 'Karyawan Tidak Ditemukan', 'stat' => false], 401); + if (count($cek_data) == 0) return $this->response(['message' => 'Pegawai Tidak Ditemukan', 'stat' => false], 401); $this->response(['data' => $cek_data[0]], 200); @@ -272,16 +279,26 @@ class Api extends RestController $cek_dinas = $this->model->tampil_data_where('tb_dinas', ['id_dinas' => $id_dinas])->result(); + + if (count($cek_dinas) == 0) return $this->response(['message' => 'Dinas Tidak Ditemukan', 'stat' => false], 401); $cek_data = $this->model->tampil_data_where('tb_karyawan', ['nik' => $nik, "id_dinas" => $id_dinas])->result(); - if (count($cek_data) == 0) return $this->response(['message' => 'Karyawan Tidak Ditemukan', 'stat' => false], 401); + if (count($cek_data) == 0) return $this->response(['message' => 'Pegawai Tidak Ditemukan', 'stat' => false], 401); + + $dir = "assets/images/foto_karyawan/" . $nik; + // delete all in $dir + array_map('unlink', glob("$dir/*.*")); + // delete $dir + rmdir($dir); + $this->model->delete("tb_karyawan", ['nik' => $nik, "id_dinas" => $id_dinas]); - $this->response(['message' => "Data Karyawan Berhasil Dihapus"], 200); + + $this->response(['message' => "Data Pegawai Berhasil Dihapus"], 200); } public function jam_kerja_post() // edit data karyawan @@ -345,6 +362,7 @@ class Api extends RestController $list_karyawan = $this->post('list_karyawan'); $start_tanggal = $this->post('start_tanggal'); $end_tanggal = $this->post('end_tanggal'); + $file = $_FILES['file']; $ket = $this->post('ket'); if ($id_dinas == null || $id_dinas == '' || $list_karyawan == null || $list_karyawan == '' || $start_tanggal == null || $start_tanggal == '' || $end_tanggal == null || $end_tanggal == '' || $ket == null || $ket == '') { @@ -355,21 +373,40 @@ class Api extends RestController if (count($cek_dinas) == 0) return $this->response(['message' => 'Dinas Tidak Ditemukan', 'stat' => false], 401); - $period = new DatePeriod( - new DateTime($start_tanggal), - new DateInterval('P1D'), - new DateTime($end_tanggal) - ); + + if ($start_tanggal != $end_tanggal) { + $period = new DatePeriod( + new DateTime($start_tanggal), + new DateInterval('P1D'), + new DateTime($end_tanggal) + ); + } $cek_last_ai = $this->model->cek_last_ai('tb_libur'); - $this->model->insert('tb_libur', ['id_dinas' => $id_dinas, 'list_karyawan' => $list_karyawan, 'range_tanggal' => $start_tanggal . " - " . $end_tanggal, 'ket' => $ket . " (" . $start_tanggal . " - " . $end_tanggal . ")", 'created_at' => date("Y-m-d H:i:s")]); + $dir = "assets/libur/" . $cek_last_ai . "/"; + + if (!is_dir($dir)) { + mkdir($dir); + } + + $path = $dir . $file['name']; + move_uploaded_file($file['tmp_name'], $path); + $file_path = $path; + + + $this->model->insert('tb_libur', ['id_dinas' => $id_dinas, 'list_karyawan' => $list_karyawan, 'range_tanggal' => $start_tanggal . " - " . $end_tanggal, 'ket' => $ket . " (" . $start_tanggal . " - " . $end_tanggal . ")", 'created_at' => date("Y-m-d H:i:s"), 'file' => $file_path]); $converted_list_karyawan = json_decode($list_karyawan); foreach ($converted_list_karyawan as $key1 => $value1) { - foreach ($period as $key => $value) { - $this->model->insert('tb_informasi_libur', ['id_libur' => $cek_last_ai, 'nik' => $value1, "tanggal" => $value->format('Y-m-d'), 'ket' => $ket . " (" . $start_tanggal . " - " . $end_tanggal . ")"]); + if ($start_tanggal != $end_tanggal) { + foreach ($period as $key => $value) { + $this->model->insert('tb_informasi_libur', ['id_libur' => $cek_last_ai, 'nik' => $value1, "tanggal" => $value->format('Y-m-d'), 'ket' => $ket . " (" . $start_tanggal . " - " . $end_tanggal . ")"]); + } + } else { + $this->model->insert('tb_informasi_libur', ['id_libur' => $cek_last_ai, 'nik' => $value1, "tanggal" => $start_tanggal, 'ket' => $ket . " (" . $start_tanggal . " - " . $end_tanggal . ")"]); } + $this->model->insert('tb_informasi_libur', ['id_libur' => $cek_last_ai, 'nik' => $value1, "tanggal" => $end_tanggal, 'ket' => $ket . " (" . $start_tanggal . " - " . $end_tanggal . ")"]); } $this->response(['message' => "Data Libur Berhasil Dimasukkan"], 200); @@ -399,6 +436,7 @@ class Api extends RestController $data['range_tanggal'] = $check_data[0]->range_tanggal; $data['ket'] = $check_data[0]->ket; $data['created_at'] = $check_data[0]->created_at; + $data['file'] = $check_data[0]->file; $data['list_karyawan'] = ''; @@ -409,13 +447,43 @@ class Api extends RestController $data['list_karyawan'] .= " " . $check_karyawan[0]->nama . ' ,'; } - $data['list_karyawan'] = rtrim($data['list_karyawan'] ,","); + $data['list_karyawan'] = rtrim($data['list_karyawan'], ","); $this->response(['data' => $data], 200); } + public function libur_delete() + { + if ($this->session->userdata('level') != 'Admin') return $this->response(['message' => 'Failed', 'stat' => false], 401); + $id_dinas = $this->delete('id_dinas'); + $id_libur = $this->delete('id_libur'); + + if ($id_dinas == null || $id_dinas == '' || $id_libur == null || $id_libur == '') { + $this->response(['message' => 'Isi Semua Form', 'stat' => false], 401); + } + + $cek_dinas = $this->model->tampil_data_where('tb_dinas', ['id_dinas' => $id_dinas])->result(); + + if (count($cek_dinas) == 0) return $this->response(['message' => 'Dinas Tidak Ditemukan', 'stat' => false], 401); + + + $check_data = $this->model->tampil_data_where('tb_libur', ['id_libur' => $id_libur, "id_dinas" => $id_dinas])->result(); + + if (count($check_data) == 0) return $this->response(['message' => 'Informasi Libur Tidak Ditemukan', 'stat' => false], 401); + + $dir = "assets/libur/" . $id_libur . "/"; + // remove all files in the directory + array_map('unlink', glob("$dir/*.*")); + // remove the directory itself + rmdir($dir); + + $this->model->delete('tb_libur', ['id_libur' => $id_libur, "id_dinas" => $id_dinas]); + + $this->response(['message' => 'Data Libur Berhasil Dihapus'], 200); + } + public function perjalanan_dinas_post() { if ($this->session->userdata('level') != 'Admin') return $this->response(['message' => 'Failed', 'stat' => false], 401); @@ -424,6 +492,7 @@ class Api extends RestController $start_tanggal = $this->post('start_tanggal'); $end_tanggal = $this->post('end_tanggal'); $ket = $this->post('ket'); + $file = $_FILES['file']; if ($id_dinas == null || $id_dinas == '' || $list_karyawan == null || $list_karyawan == '' || $start_tanggal == null || $start_tanggal == '' || $end_tanggal == null || $end_tanggal == '' || $ket == null || $ket == '') { $this->response(['message' => 'Isi Semua Form', 'stat' => false], 401); @@ -433,21 +502,39 @@ class Api extends RestController if (count($cek_dinas) == 0) return $this->response(['message' => 'Dinas Tidak Ditemukan', 'stat' => false], 401); - $period = new DatePeriod( - new DateTime($start_tanggal), - new DateInterval('P1D'), - new DateTime($end_tanggal) - ); + if ($start_tanggal != $end_tanggal) { + $period = new DatePeriod( + new DateTime($start_tanggal), + new DateInterval('P1D'), + new DateTime($end_tanggal) + ); + } + $cek_last_ai = $this->model->cek_last_ai('tb_perjalanan_dinas'); - $this->model->insert('tb_perjalanan_dinas', ['id_dinas' => $id_dinas, 'list_karyawan' => $list_karyawan, 'range_tanggal' => $start_tanggal . " - " . $end_tanggal, 'ket' => $ket . " (" . $start_tanggal . " - " . $end_tanggal . ")", 'created_at' => date("Y-m-d H:i:s")]); + $dir = "assets/perjalanan_dinas/" . $cek_last_ai . "/"; + + if (!is_dir($dir)) { + mkdir($dir); + } + + $path = $dir . $file['name']; + move_uploaded_file($file['tmp_name'], $path); + $file_path = $path; + + $this->model->insert('tb_perjalanan_dinas', ['id_dinas' => $id_dinas, 'list_karyawan' => $list_karyawan, 'range_tanggal' => $start_tanggal . " - " . $end_tanggal, 'ket' => $ket . " (" . $start_tanggal . " - " . $end_tanggal . ")", 'created_at' => date("Y-m-d H:i:s"), 'sppd' => $file_path]); $converted_list_karyawan = json_decode($list_karyawan); foreach ($converted_list_karyawan as $key1 => $value1) { - foreach ($period as $key => $value) { - $this->model->insert('tb_informasi_perjalanan_dinas', ['id_perjalanan_dinas' => $cek_last_ai, 'nik' => $value1, "tanggal" => $value->format('Y-m-d'), 'ket' => $ket . " (" . $start_tanggal . " - " . $end_tanggal . ")"]); + if ($start_tanggal != $end_tanggal) { + foreach ($period as $key => $value) { + $this->model->insert('tb_informasi_perjalanan_dinas', ['id_perjalanan_dinas' => $cek_last_ai, 'nik' => $value1, "tanggal" => $value->format('Y-m-d'), 'ket' => $ket . " (" . $start_tanggal . " - " . $end_tanggal . ")"]); + } + }else { + $this->model->insert('tb_informasi_perjalanan_dinas', ['id_perjalanan_dinas' => $cek_last_ai, 'nik' => $value1, "tanggal" => $start_tanggal, 'ket' => $ket . " (" . $start_tanggal . " - " . $end_tanggal . ")"]); } + $this->model->insert('tb_informasi_perjalanan_dinas', ['id_perjalanan_dinas' => $cek_last_ai, 'nik' => $value1, "tanggal" => $end_tanggal, 'ket' => $ket . " (" . $start_tanggal . " - " . $end_tanggal . ")"]); } $this->response(['message' => "Data Libur Berhasil Dimasukkan"], 200); @@ -477,6 +564,7 @@ class Api extends RestController $data['range_tanggal'] = $check_data[0]->range_tanggal; $data['ket'] = $check_data[0]->ket; $data['created_at'] = $check_data[0]->created_at; + $data['sppd'] = $check_data[0]->sppd; $data['list_karyawan'] = ''; @@ -487,13 +575,44 @@ class Api extends RestController $data['list_karyawan'] .= " " . $check_karyawan[0]->nama . ' ,'; } - $data['list_karyawan'] = rtrim($data['list_karyawan'] ,","); + $data['list_karyawan'] = rtrim($data['list_karyawan'], ","); $this->response(['data' => $data], 200); } + public function perjalanan_dinas_delete() + { + if ($this->session->userdata('level') != 'Admin') return $this->response(['message' => 'Failed', 'stat' => false], 401); + $id_dinas = $this->delete('id_dinas'); + $id_perjalanan_dinas = $this->delete('id_perjalanan_dinas'); + + if ($id_dinas == null || $id_dinas == '' || $id_perjalanan_dinas == null || $id_perjalanan_dinas == '') { + $this->response(['message' => 'Isi Semua Form', 'stat' => false], 401); + } + + $cek_dinas = $this->model->tampil_data_where('tb_dinas', ['id_dinas' => $id_dinas])->result(); + + if (count($cek_dinas) == 0) return $this->response(['message' => 'Dinas Tidak Ditemukan', 'stat' => false], 401); + + $check_data = $this->model->tampil_data_where('tb_perjalanan_dinas', ['id_perjalanan_dinas' => $id_perjalanan_dinas, "id_dinas" => $id_dinas])->result(); + + if (count($check_data) == 0) return $this->response(['message' => 'Informasi Libur Tidak Ditemukan', 'stat' => false], 401); + + $dir = 'assets/perjalanan_dinas/' . $id_perjalanan_dinas . '/'; + // remove all files in the directory + array_map('unlink', glob("$dir/*.*")); + // remove the directory itself + rmdir($dir); + + $this->model->delete('tb_perjalanan_dinas', ['id_perjalanan_dinas' => $id_perjalanan_dinas, "id_dinas" => $id_dinas]); + + $this->response(['message' => 'Data Perjalanan Dinas Berhasil Dihapus'], 200); + + + } + public function get_today_absensi_get() { $id_dinas = $this->get('id_dinas'); @@ -541,4 +660,215 @@ class Api extends RestController $this->response(['data' => $datanya], 200); } + + public function surat_masuk_post() + { + if ($this->session->userdata('level') != 'Admin') return $this->response(['message' => 'Failed', 'stat' => false], 401); + + $id_dinas = $this->post('id_dinas'); + + if ($id_dinas == null || $id_dinas == '') { + $this->response(['message' => 'Dinas Tidak Ditemukan', 'stat' => false], 401); + } + + $cek_dinas = $this->model->tampil_data_where('tb_dinas', ['id_dinas' => $id_dinas])->result(); + + if (count($cek_dinas) == 0) return $this->response(['message' => 'Dinas Tidak Ditemukan', 'stat' => false], 401); + + $asal_surat = $this->post('asal_surat'); + $no_surat = $this->post('no_surat'); + $tanggal_pengiriman = $this->post('tanggal_pengiriman'); + $tanggal_diterima = $this->post('tanggal_diterima'); + $no_agenda = $this->post('no_agenda'); + $sifat = $this->post('sifat') == '' ? null : $this->post('sifat'); + $perihal = $this->post('perihal') == '' ? null : $this->post('perihal'); + $diteruskan_kepada = $this->post('diteruskan_kepada') == '' ? null : $this->post('diteruskan_kepada'); + $respon = $this->post('respon') == '' ? null : $this->post('respon'); + $file_surat = $_FILES['file_surat']; + $catatan = $this->post('catatan') == '' ? null : $this->post('catatan'); + + $data = [ + 'id_dinas' => $id_dinas, + 'asal_surat' => $asal_surat, + 'no_surat' => $no_surat, + 'tanggal_pengiriman' => $tanggal_pengiriman, + 'tanggal_diterima' => $tanggal_diterima, + 'no_agenda' => $no_agenda, + 'sifat' => $sifat, + 'perihal' => $perihal, + 'diteruskan_kepada' => $diteruskan_kepada, + 'respon' => $respon, + 'catatan' => $catatan, + 'file_surat' => $file_surat, + ]; + + $cek_data_surat = $this->model->tampil_data_where('tb_surat_masuk', ['id_dinas' => $id_dinas, 'no_surat' => $no_surat])->result(); + + if (count($cek_data_surat) > 0) return $this->response(['message' => 'No Surat Sudah Ada Sebelumnya', 'stat' => false], 401); + + $cek_data_surat = $this->model->tampil_data_where('tb_surat_masuk', ['id_dinas' => $id_dinas, 'no_agenda' => $no_agenda])->result(); + + if (count($cek_data_surat) > 0) return $this->response(['message' => 'No Agenda Sudah Ada Sebelumnya', 'stat' => false], 401); + + + $dir = 'assets/surat_masuk/' . $id_dinas; + + if (!is_dir($dir)) { + mkdir($dir); + } + + $cek_last_increment = $this->model->cek_last_ai('tb_surat_masuk'); + $path = $dir . '/' . $cek_last_increment . '/'; + if (!is_dir($path)) { + mkdir($path); + } + $path = $path . $file_surat['name']; + move_uploaded_file($file_surat['tmp_name'], $path); + $pdf_path = $path; + + // remove 'file_surat' from $data + unset($data['file_surat']); + $data['fail'] = $pdf_path; + + $this->model->insert('tb_surat_masuk', $data); + + + $this->response(['data' => $data, 'message' => "No Surat " . $no_surat . " Berhasil Ditambahkan", 'stat' => true], 200); + } + + public function surat_masuk_get() + { + if ($this->session->userdata('level') != 'Admin') return $this->response(['message' => 'Failed', 'stat' => false], 401); + + $id_dinas = $this->get('id_dinas'); + + if ($id_dinas == null || $id_dinas == '') { + $this->response(['message' => 'Dinas Tidak Ditemukan', 'stat' => false], 401); + } + + $cek_dinas = $this->model->tampil_data_where('tb_dinas', ['id_dinas' => $id_dinas])->result(); + + if (count($cek_dinas) == 0) return $this->response(['message' => 'Dinas Tidak Ditemukan', 'stat' => false], 401); + + $id_surat = $this->get('id_surat'); + + if ($id_surat == null || $id_surat == '') { + $this->response(['message' => 'Surat Tidak Ditemukan', 'stat' => false], 401); + } + + $cek_surat = $this->model->tampil_data_where('tb_surat_masuk', ['id_surat_masuk' => $id_surat, 'id_dinas' => $id_dinas])->result(); + + if (count($cek_surat) == 0) return $this->response(['message' => 'Surat Tidak Ditemukan', 'stat' => false], 401); + + $this->response(['data' => $cek_surat[0], 'message' => "Surat Ditemukan", 'stat' => true], 200); + } + + public function reset_id_put() + { + if ($this->session->userdata('level') != 'Admin') return $this->response(['message' => 'Failed', 'stat' => false], 401); + + $id_dinas = $this->put('id_dinas'); + + if ($id_dinas == null || $id_dinas == '') { + $this->response(['message' => 'Dinas Tidak Ditemukan', 'stat' => false], 401); + } + + $cek_dinas = $this->model->tampil_data_where('tb_dinas', ['id_dinas' => $id_dinas])->result(); + + if (count($cek_dinas) == 0) return $this->response(['message' => 'Dinas Tidak Ditemukan', 'stat' => false], 401); + + $nik = $this->put('nik'); + + if ($nik == null || $nik == '') { + $this->response(['message' => 'Nik Tidak Ditemukan', 'stat' => false], 401); + } + + $cek_user = $this->model->tampil_data_where('tb_karyawan', ['nik' => $nik, 'id_dinas' => $id_dinas])->result(); + + if (count($cek_user) == 0) return $this->response(['message' => 'User Tidak Ditemukan', 'stat' => false], 401); + + $this->model->update('tb_karyawan', ['nik' => $nik, 'id_dinas' => $id_dinas], ['device_id' => null]); + + $this->response(['message' => "Reset ID Smartphone Pegawai dengan nama " . $cek_user[0]->nama . " Berhasil", 'stat' => true], 200); + } + + public function detail_kegiatan_get() + { + if ($this->session->userdata('level') != 'Admin') return $this->response(['message' => 'Failed', 'stat' => false], 401); + + $id_laporan = $this->get('id_laporan'); + + if ($id_laporan == null || $id_laporan == '') { + $this->response(['message' => 'Laporan Tidak Ditemukan', 'stat' => false], 401); + } + + $cek_laporan = $this->model->tampil_data_where('tb_laporan_karyawan', ['no_laporan' => $id_laporan])->result(); + + if (count($cek_laporan) == 0) return $this->response(['message' => 'Laporan Tidak Ditemukan', 'stat' => false], 401); + + $this->response(['data' => $cek_laporan[0], 'message' => "Laporan Ditemukan", 'stat' => true], 200); + } + + public function check_jadwal_get(){ + if ($this->session->userdata('level') != 'Admin') return $this->response(['message' => 'Failed', 'stat' => false], 401); + + $id_dinas = $this->get('id_dinas'); + + if ($id_dinas == null || $id_dinas == '') { + $this->response(['message' => 'Dinas Tidak Ditemukan', 'stat' => false], 401); + } + + $cek_dinas = $this->model->tampil_data_where('tb_dinas', ['id_dinas' => $id_dinas])->result(); + + if (count($cek_dinas) == 0) return $this->response(['message' => 'Dinas Tidak Ditemukan', 'stat' => false], 401); + + $hari = $this->get('hari'); + + + + if ($hari == null || $hari == '') { + $this->response(['message' => 'Hari Tidak Ditemukan', 'stat' => false], 401); + } + // convert $hari string to lowercase + $hari = strtolower($hari); + + $cek_jadwal = $this->model->tampil_data_where('tb_pengaturan_jam_kerja_harian', ['id_dinas' => $id_dinas, 'hari' => $hari])->result(); + + if (count($cek_jadwal) == 0) return $this->response(['message' => 'Jadwal Tidak Ditemukan', 'stat' => false], 401); + + $this->response(['data' => $cek_jadwal[0], 'message' => "Jadwal Ditemukan", 'stat' => true], 200); + } + + public function ganti_data_admin_post(){ + if ($this->session->userdata('level') != 'Admin') return $this->response(['message' => 'Failed', 'stat' => false], 401); + + $id_dinas = $this->post('id_dinas'); + + if ($id_dinas == null || $id_dinas == '') { + $this->response(['message' => 'Dinas Tidak Ditemukan', 'stat' => false], 401); + } + + $cek_dinas = $this->model->tampil_data_where('tb_dinas', ['id_dinas' => $id_dinas])->result(); + + if (count($cek_dinas) == 0) return $this->response(['message' => 'Dinas Tidak Ditemukan', 'stat' => false], 401); + + $nik = $this->post('nik'); + + if ($nik == null || $nik == '') { + $this->response(['message' => 'Nik Tidak Ditemukan', 'stat' => false], 401); + } + + $cek_user = $this->model->tampil_data_where('tb_karyawan', ['nik' => $nik, 'id_dinas' => $id_dinas])->result(); + + if (count($cek_user) == 0) return $this->response(['message' => 'User Tidak Ditemukan', 'stat' => false], 401); + + $username = $this->post('username'); + $password = $this->post('password'); + + if ($username == null || $username == '' || $password == null || $password == '')return $this->response(['message' => 'Username dan Password Tidak Boleh Kosong', 'stat' => false], 401); + + $this->model->update('tb_login_admin', ['nik' => $nik], ['username' => $username, 'password' => md5($password)]); + + $this->response(['message' => "Ganti Data Admin Berhasil", 'stat' => true], 200); + } } diff --git a/application/controllers/Apiuser.php b/application/controllers/Apiuser.php index 1b2c77c..13556a7 100644 --- a/application/controllers/Apiuser.php +++ b/application/controllers/Apiuser.php @@ -56,6 +56,53 @@ class Apiuser extends RestController } } + public function cek_datanya_post(){ + $nik = $this->post('nik'); + $device_id = $this->post('device_id'); + + if ($nik == null || $nik == '' || $device_id == null || $device_id == '') return $this->response(['status' => false, 'message' => "Isi Semua Form"], 403); + + $cek_data = $this->model->tampil_data_where('tb_karyawan', ['nik' => $nik, 'device_id' => $device_id])->result(); + + if (count($cek_data) == 0) return $this->response(['status' => false, 'message' => "Data Tidak Ditemukan"], 401); + + $data_jadwal = $this->model->tampil_data_where('tb_pengaturan_jam_kerja_harian', ['id_dinas' => $cek_data[0]->id_dinas])->result()[0]; + + $datanya = [ + 'data_user' => $cek_data[0], + 'data_jadwal' => $data_jadwal + ]; + + $this->response(['status' => true, 'message' => "Data Ditemukan", "data" => $datanya], 200); + } + + public function ganti_password_post(){ + $nik = $this->post('nik'); + $password_lama = $this->post('password_lama'); + $password_baru = $this->post('password_baru'); + $id_dinas = $this->post('id_dinas'); + + if ($nik == null || $nik == '' || $password_lama == null || $password_lama == '' || $password_baru == null || $password_baru == '' || $id_dinas == null || $id_dinas == '') return $this->response(['status' => false, 'message' => "Isi Semua Form"], 403); + + $cek_dinas = $this->model->tampil_data_where('tb_dinas', ['id_dinas' => $id_dinas])->result(); + + if (count($cek_dinas) == 0) return $this->response(['status' => false, 'message' => "Dinas Tidak Ditemukan"], 401); + + $cek_data = $this->model->tampil_data_where('tb_karyawan', ['nik' => $nik, 'id_dinas' => $id_dinas])->result(); + + if (count($cek_data) == 0) return $this->response(['status' => false, 'message' => "Data Tidak Ditemukan"], 401); + + $konfirmasi_password_lama = $this->model->tampil_data_where('tb_login_user', ['nik' => $nik, 'password' => md5($password_lama)])->result(); + + if (count($konfirmasi_password_lama) == 0) return $this->response(['status' => false, 'message' => "Error"], 401); + + $this->model->update("tb_login_user", ['nik' => $nik], ['password' => md5($password_baru)]); + + $this->response(['status' => true, 'message' => "Password Berhasil Diubah"], 200); + + + } + public function user_data_get() //get user data { $nik = $this->get('nik'); diff --git a/application/views/admin/header.php b/application/views/admin/header.php index d50974f..8336da2 100644 --- a/application/views/admin/header.php +++ b/application/views/admin/header.php @@ -45,7 +45,7 @@ + if ($header == "Halaman Pegawai" || $header == "Halaman Jam Kerja" || $header == "Halaman Utama" || $header == "Halaman Pengaturan Libur" || $header == "Halaman Pengaturan Perjalanan Dinas" || $header == "Halaman Laporan" || $header == "Halaman Surat Masuk") { ?>