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 .= '
+
+
+ | NO |
+ NAMA |
+ JAM/PARAF |
+
+ Senin, - |
+
+
+ Selasa, 01/11/2022 |
+
+
+ Rabu, 02/11/2022 |
+
+ Kamis, 03/11/2022 |
+
+ Jumat, 04/11/2022 |
+ Ket |
+
+
+
+
+ | Pagi |
+ Siang |
+ Pagi |
+ Siang |
+ Pagi |
+ Siang |
+ Pagi |
+ Siang |
+ Pagi |
+ Siang |
+
+
+
+
+
+ | M |
+ P |
+ M |
+ P |
+ M |
+ P |
+ M |
+ P |
+ M |
+ P |
+ M |
+ P |
+ M |
+ P |
+ M |
+ P |
+ M |
+ P |
+ M |
+ P |
+
+
+
+
+ | 1 |
+ bobo |
+ Jam |
+
+ - |
+
+ - |
+
+ - |
+
+ - |
- $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 .= '
-
-
- | NIP |
- Nama |
- Jabatan |
- Status |
- Jam Masuk |
- Jam Istirehat |
- Jam Masuk Kembali |
- Jam Pulang |
-
- ';
- 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 .= '
-
- | '.$value->nik.' |
- '.$value->nama.' |
- '.$value->jabatan.' |
- '.$status.' |
- '.$jam_masuk.' |
- '.$jam_istirehat.' |
- '.$jam_masuk_kembali.' |
- '.$jam_pulang.' |
-
- ';
- }
- $html .= '
';
- }
+
+ |
+
+
+ | 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 .= '
+ //
+ //
+ // | NIP |
+ // Nama |
+ // Jabatan |
+ // Status |
+ // Jam Masuk |
+ // Jam Istirehat |
+ // Jam Masuk Kembali |
+ // Jam Pulang |
+ //
+ // ';
+ // 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 .= '
+ //
+ // | ' . $value->nik . ' |
+ // ' . $value->nama . ' |
+ // ' . $value->jabatan . ' |
+ // ' . $status . ' |
+ // ' . $jam_masuk . ' |
+ // ' . $jam_istirehat . ' |
+ // ' . $jam_masuk_kembali . ' |
+ // ' . $jam_pulang . ' |
+ //
+ // ';
+ // }
+ // $html .= '
';
+ // }
$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 .= '
+
+
+ | No |
+ Nama |
+ NIK |
+ Jabatan |
+ Status |
+ Pangkat |
+ Keanggotaan |
+
+ ';
+
+ foreach ($list_karyawan as $key => $value) {
+ $html .= '
+
+ | ' . ($key + 1) . ' |
+ ' . $value->nik . ' |
+ ' . $value->nama . ' |
+ ' . $value->jabatan . ' |
+ ' . $value->status . ' |
+ ' . $value->pangkat . ' |
+ ' . $value->keanggotaan . ' |
+
+ ';
+ }
+
+ $html .= '
+
+ ';
+
+ $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") { ?>