finish all admin

This commit is contained in:
kicap1992
2022-11-27 00:58:30 +08:00
parent 369e9b7829
commit 83188d84c1
36 changed files with 5249 additions and 329 deletions

BIN
absensi_server.zip Normal file

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -125,11 +125,18 @@ class Api extends RestController
$pangkat = $this->post('pangkat'); $pangkat = $this->post('pangkat');
$status = $this->post('status'); $status = $this->post('status');
$tanggal_lahir = $this->post('tanggal_lahir'); $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); $this->response(['message' => 'Isi Semua Form', 'stat' => false], 401);
} }
$cek_dinas = $this->model->tampil_data_where('tb_dinas', ['id_dinas' => $id_dinas])->result(); $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); 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(); $cek_data = $this->model->tampil_data_where('tb_karyawan', ['nik' => $nik])->result();
if (count($cek_data) > 0) { 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 { } else {
$dir = "assets/images/foto_karyawan/$nik/"; $dir = "assets/images/foto_karyawan/$nik/";
@ -151,7 +158,7 @@ class Api extends RestController
move_uploaded_file($foto['tmp_name'], $path); move_uploaded_file($foto['tmp_name'], $path);
$image_path = $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->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); $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(); $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) { 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 { } else {
$dir = "assets/images/foto_karyawan/$nik/"; $dir = "assets/images/foto_karyawan/$nik/";
if (is_dir($dir) === false) { if (is_dir($dir) === false) {
@ -183,12 +190,12 @@ class Api extends RestController
move_uploaded_file($foto['tmp_name'], $path); move_uploaded_file($foto['tmp_name'], $path);
$image_path = $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(); $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); $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(); $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); 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(); $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->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 public function jam_kerja_post() // edit data karyawan
@ -345,6 +362,7 @@ class Api extends RestController
$list_karyawan = $this->post('list_karyawan'); $list_karyawan = $this->post('list_karyawan');
$start_tanggal = $this->post('start_tanggal'); $start_tanggal = $this->post('start_tanggal');
$end_tanggal = $this->post('end_tanggal'); $end_tanggal = $this->post('end_tanggal');
$file = $_FILES['file'];
$ket = $this->post('ket'); $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 == '') { 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); if (count($cek_dinas) == 0) return $this->response(['message' => 'Dinas Tidak Ditemukan', 'stat' => false], 401);
$period = new DatePeriod(
new DateTime($start_tanggal), if ($start_tanggal != $end_tanggal) {
new DateInterval('P1D'), $period = new DatePeriod(
new DateTime($end_tanggal) new DateTime($start_tanggal),
); new DateInterval('P1D'),
new DateTime($end_tanggal)
);
}
$cek_last_ai = $this->model->cek_last_ai('tb_libur'); $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); $converted_list_karyawan = json_decode($list_karyawan);
foreach ($converted_list_karyawan as $key1 => $value1) { foreach ($converted_list_karyawan as $key1 => $value1) {
foreach ($period as $key => $value) { if ($start_tanggal != $end_tanggal) {
$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 . ")"]); 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->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); $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['range_tanggal'] = $check_data[0]->range_tanggal;
$data['ket'] = $check_data[0]->ket; $data['ket'] = $check_data[0]->ket;
$data['created_at'] = $check_data[0]->created_at; $data['created_at'] = $check_data[0]->created_at;
$data['file'] = $check_data[0]->file;
$data['list_karyawan'] = ''; $data['list_karyawan'] = '';
@ -409,13 +447,43 @@ class Api extends RestController
$data['list_karyawan'] .= " " . $check_karyawan[0]->nama . ' ,'; $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); $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() public function perjalanan_dinas_post()
{ {
if ($this->session->userdata('level') != 'Admin') return $this->response(['message' => 'Failed', 'stat' => false], 401); 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'); $start_tanggal = $this->post('start_tanggal');
$end_tanggal = $this->post('end_tanggal'); $end_tanggal = $this->post('end_tanggal');
$ket = $this->post('ket'); $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 == '') { 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); $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); if (count($cek_dinas) == 0) return $this->response(['message' => 'Dinas Tidak Ditemukan', 'stat' => false], 401);
$period = new DatePeriod( if ($start_tanggal != $end_tanggal) {
new DateTime($start_tanggal), $period = new DatePeriod(
new DateInterval('P1D'), new DateTime($start_tanggal),
new DateTime($end_tanggal) new DateInterval('P1D'),
); new DateTime($end_tanggal)
);
}
$cek_last_ai = $this->model->cek_last_ai('tb_perjalanan_dinas'); $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); $converted_list_karyawan = json_decode($list_karyawan);
foreach ($converted_list_karyawan as $key1 => $value1) { foreach ($converted_list_karyawan as $key1 => $value1) {
foreach ($period as $key => $value) { if ($start_tanggal != $end_tanggal) {
$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 . ")"]); 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->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); $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['range_tanggal'] = $check_data[0]->range_tanggal;
$data['ket'] = $check_data[0]->ket; $data['ket'] = $check_data[0]->ket;
$data['created_at'] = $check_data[0]->created_at; $data['created_at'] = $check_data[0]->created_at;
$data['sppd'] = $check_data[0]->sppd;
$data['list_karyawan'] = ''; $data['list_karyawan'] = '';
@ -487,13 +575,44 @@ class Api extends RestController
$data['list_karyawan'] .= " " . $check_karyawan[0]->nama . ' ,'; $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); $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() public function get_today_absensi_get()
{ {
$id_dinas = $this->get('id_dinas'); $id_dinas = $this->get('id_dinas');
@ -541,4 +660,215 @@ class Api extends RestController
$this->response(['data' => $datanya], 200); $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);
}
} }

View File

@ -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 public function user_data_get() //get user data
{ {
$nik = $this->get('nik'); $nik = $this->get('nik');

View File

@ -45,7 +45,7 @@
</style> </style>
<?php <?php
if ($header == "Halaman Karyawan" || $header == "Halaman Jam Kerja" || $header == "Halaman Utama" || $header == "Halaman Pengaturan Libur" || $header == "Halaman Pengaturan Perjalanan Dinas" || $header == "Halaman Laporan") { ?> 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") { ?>
<link rel="stylesheet" href="<?= base_url() ?>assets/plugin/datatables/media/css/dataTables.bootstrap.min.css"> <link rel="stylesheet" href="<?= base_url() ?>assets/plugin/datatables/media/css/dataTables.bootstrap.min.css">
<style> <style>
.avatar { .avatar {

View File

@ -0,0 +1,113 @@
<!DOCTYPE html>
<html lang="en">
<?php $this->load->view("admin/header"); ?>
<body>
<?php $this->load->view("admin/side_topbar"); ?>
<div id="wrapper">
<div class="main-content">
<div class="row small-spacing">
<div class="col-xs-2"></div>
<div class="col-xs-8">
<form class="box-content" onsubmit="update_data(event)">
<h4 class="box-title" id="header_peta">Ubah Username dan Password</h4>
<div class="form-group">
<label for="username">Username</label>
<input type="text" class="form-control" id="username" placeholder="Masukkan Username" required value="<?= $cek_data->username ?>">
</div>
<div class="form-group">
<label for="password">Password</label>
<input type="password" class="form-control" id="password" placeholder="Masukkan Password" minlength="6" required>
</div>
<div class="form-group">
<label for="konfirm_password">Konfirm Password</label>
<input type="password" class="form-control" id="konfirm_password" minlength="6" placeholder="Masukkan Konfirm Password" required>
</div>
<!-- /.dropdown js__dropdown -->
<div class="form-group text-center">
<button type="submit" class="btn btn-primary btn-xs waves-effect waves-light">Ganti Username Dan Password</button>
</div>
<!-- /#flot-chart-1.flot-chart -->
</form>
<!-- /.box-content -->
</div>
<!-- /.col-xs-12 -->
<div class="col-xs-2"></div>
< <!-- /.col-xs-12 -->
</div>
<!-- /.row -->
<?php $this->load->view('admin/footer') ?>
</div>
<!-- /.main-content -->
</div>
<?php $this->load->view('admin/scripts') ?>
<script>
function update_data(e) {
e.preventDefault();
var username = $('#username').val();
var password = $('#password').val();
var confirm_password = $('#konfirm_password').val();
if (password != confirm_password) {
toastr.error('Password Tidak Sama');
// focus
$('#password').focus();
} else {
$.ajax({
url: server_url_api + "ganti_data_admin",
type: 'POST',
data: {
username: username,
password: password,
nik: '<?= $cek_data->nik ?>',
id_dinas : '<?= $cek_data->id_dinas ?>'
},
beforeSend: function(res) {
// $('#modal_karyawan').modal('hide');
block_ui("Update Data");
},
success: function(data) {
$.unblockUI();
// console.log(data);
toastr.success('Berhasil Update Data');
$("#password").val('');
$("#konfirm_password").val('');
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
$.unblockUI();
// console.log(errorThrown)
// console.log(textStatus)
const statusCode = XMLHttpRequest.status;
const responseJSON = XMLHttpRequest.responseJSON;
console.log(statusCode);
console.log(responseJSON)
if (statusCode != 500 || statusCode != 0) {
toastr.error(responseJSON.message);
} else {
toastr.error("Jaringan atau server bermasalah, sila refresh kembali halaman");
}
}
});
}
}
</script>
</body>
<!-- Dibuat oleh Kicap Karan. https://www.kicap-karan.com -->
</html>

View File

@ -0,0 +1,701 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/html2pdf.js/0.10.1/html2pdf.bundle.min.js" integrity="sha512-GsLlZN/3F2ErC5ifS5QtgpiJtWd43JWSuIgh7mbzZ8zBps+dvLusV+eNQATqgA/HdeKFVgA5v3S/cIrLF7QnIg==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
</head>
<body>
<!-- <button id="download-button">Download as PDF</button>
<button onclick="exportTableToExcel('invoice')">Export Table Data To Excel File</button> -->
<div id="invoice">
<table style="width: 100%;">
<tr>
<td width="2%">
<td width="17%">
<img src="<?= base_url() ?>assets/images/logo_mamuju_tengah.png" width="100px" height="120px">
</td>
<td width="60%" style="text-align: center;">
<h3 style="display: block;font-size: 20px;">PEMERINTA KABUPATEN MAMUJU TENGAH<br>DINAS PARIWISATA KEPEMUDAAN DAN OLAHRAGA</h3>
<p style="font-style: italic;"> <b>Alamat : </b> Jl, Abdul Majid Pattaro Pura Kab. Mamuju Tengah, Prov. Sulawesi Barat</p>
</td>
<td width="17%"></td>
<td width="2%">
</tr>
</table>
<!-- create hr with black 2px -->
<hr style="border: 3px solid black;"><br>
<center><b><u><?=$title2?></u></b></center>
<center><?=$title3?></center><br>
<?php
// get the first day full name
$CI = &get_instance();
$CI->load->model('model');
$first_day = date('l', strtotime($year . '-' . $month . '-01'));
// get the number of days in the month
$days_in_month = date('t', strtotime($year . '-' . $month . '-01'));
// print_r($days_in_month);
// loop the days in the month start from day monday to friday, if day is saturday or sunday, skip it, if day start not from monday, add empty cell
// $week_array = [];
$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 '<div class="col-md-1" style="background-color: #f2f2f2; border: 1px solid #ddd; padding: 10px; margin: 5px; text-align: center; height: 100px; width: 100px; float: left;">';
// echo $i;
// echo '</div>';
}
// print_r($day_array[0]['day']);
// if $day_array[0]['day'] is tuesday, add monday to array, if $day_array[0]['day'] is wednesday, add monday and tuesday to array, if $day_array[0]['day'] is thursday, add monday, tuesday, and wednesday to array, if $day_array[0]['day'] is friday, add monday, tuesday, wednesday, and thursday to array
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'] is monday, add tuesday , wednesday, thursday, and friday to array, if $day_array[count($day_array) - 1]['day'] is tuesday, add wednesday, thursday, and friday to array, if $day_array[count($day_array) - 1]['day'] is wednesday, add thursday and friday to array, if $day_array[count($day_array) - 1]['day'] is thursday, add friday to 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']]);
}
// print_r($day_array);
$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]];
}
}
foreach ($week_array as $week) {
?>
<table border="1" style="margin-left:auto;margin-right:auto;width:97%;" cellpadding="0" cellspacing="0">
<thead>
<tr>
<th rowspan="3" valign="middle" style="text-align: center;">NO</th>
<th rowspan="3" valign="middle" style="text-align: center;">NAMA</th>
<th rowspan="3" style="text-align: center;" width="5%">JAM/<br>PARAF</th>
<th colspan="4" style="text-align: center;" width="15%">
<?php
// change the date format to d-m-Y
$date = $week[0]['date'] != null ? date('d/m/Y', strtotime($week[0]['date'])) : '-';
echo $CI->model->hari($week[0]['day']) . ', ' . $date;
?>
</th>
<!-- <th>Status</th> -->
<th colspan="4" style="text-align: center;" width="15%">
<?php
// change the date format to d-m-Y
$date = $week[1]['date'] != null ? date('d/m/Y', strtotime($week[1]['date'])) : '-';
echo $CI->model->hari($week[1]['day']) . ', ' . $date;
?>
</th>
<!-- <th>Jam Istirehat</th> -->
<th colspan="4" style="text-align: center;" width="15%">
<?php
// change the date format to d-m-Y
$date = $week[2]['date'] != null ? date('d/m/Y', strtotime($week[2]['date'])) : '-';
echo $CI->model->hari($week[2]['day']) . ', ' . $date;
?>
</th>
<th colspan="4" style="text-align: center;" width="15%">
<?php
// change the date format to d-m-Y
$date = $week[3]['date'] != null ? date('d/m/Y', strtotime($week[3]['date'])) : '-';
echo $CI->model->hari($week[3]['day']) . ', ' . $date;
?>
</th>
<th colspan="4" style="text-align: center;" width="15%">
<?php
// change the date format to d-m-Y
$date = $week[4]['date'] != null ? date('d/m/Y', strtotime($week[4]['date'])) : '-';
echo $CI->model->hari($week[4]['day']) . ', ' . $date;
?>
</th>
<th rowspan="3" style="text-align: center;">Ket</th>
</tr>
<tr>
<!-- <th rowspan="3">NAMA</th> -->
<!-- <th>JAM/PARAF</th> -->
<th colspan="2" style="text-align: center;" width="7.5%">Pagi</th>
<th colspan="2" style="text-align: center;" width="7.5%">Siang</th>
<th colspan="2" style="text-align: center;" width="7.5%">Pagi</th>
<th colspan="2" style="text-align: center;" width="7.5%">Siang</th>
<th colspan="2" style="text-align: center;" width="7.5%">Pagi</th>
<th colspan="2" style="text-align: center;" width="7.5%">Siang</th>
<th colspan="2" style="text-align: center;" width="7.5%">Pagi</th>
<th colspan="2" style="text-align: center;" width="7.5%">Siang</th>
<th colspan="2" style="text-align: center;" width="7.5%">Pagi</th>
<th colspan="2" style="text-align: center;" width="7.5%">Siang</th>
<!-- <th>Aksi</th> -->
</tr>
<tr>
<!-- <th rowspan="3">NAMA</th> -->
<!-- <th>JAM/PARAF</th> -->
<th style="text-align: center;" width="3.75%">M</th>
<th style="text-align: center;" width="3.75%">P</th>
<th style="text-align: center;" width="3.75%">M</th>
<th style="text-align: center;" width="3.75%">P</th>
<th style="text-align: center;" width="3.75%">M</th>
<th style="text-align: center;" width="3.75%">P</th>
<th style="text-align: center;" width="3.75%">M</th>
<th style="text-align: center;" width="3.75%">P</th>
<th style="text-align: center;" width="3.75%">M</th>
<th style="text-align: center;" width="3.75%">P</th>
<th style="text-align: center;" width="3.75%">M</th>
<th style="text-align: center;" width="3.75%">P</th>
<th style="text-align: center;" width="3.75%">M</th>
<th style="text-align: center;" width="3.75%">P</th>
<th style="text-align: center;" width="3.75%">M</th>
<th style="text-align: center;" width="3.75%">P</th>
<th style="text-align: center;" width="3.75%">M</th>
<th style="text-align: center;" width="3.75%">P</th>
<th style="text-align: center;" width="3.75%">M</th>
<th style="text-align: center;" width="3.75%">P</th>
<!-- <th>Aksi</th> -->
</tr>
</thead>
<tbody>
<?php
$no = 1;
foreach ($list_karyawan as $key => $value) {
if ($value->status == $stat) {
?>
<tr>
<td rowspan="4" style="text-align: center;"><b><?= $no++; ?></b></td>
<td><b><?= $value->nama; ?></b></td>
<td rowspan="2" style="text-align: center;">Jam</td>
<td rowspan="2" style="text-align: center;">
<?php
$cek_data_senin = null;
if ($week[0]['date'] != null) {
$cek_data_senin = $CI->model->tampil_data_where('tb_absensi_karyawan', ['nik' => $value->nik, 'tanggal' => $week[0]['date'], 'id_dinas' => $id_dinas])->result();
if (count($cek_data_senin) > 0) {
$cek_data_senin = $cek_data_senin[0];
} else {
$cek_data_senin = null;
}
}
echo ($cek_data_senin != null && $cek_data_senin->jam_masuk != '') ? "&nbsp " . $cek_data_senin->jam_masuk . "&nbsp &nbsp " : '-';
?>
</td>
<td rowspan="2" style="text-align: center;">
<?php
echo ($cek_data_senin != null && $cek_data_senin->jam_istirehat != '') ? "&nbsp " . $cek_data_senin->jam_istirehat . "&nbsp &nbsp " : '-';
?>
</td>
<td rowspan="2" style="text-align: center;">
<?php
echo ($cek_data_senin != null && $cek_data_senin->jam_masuk_kembali != '') ? "&nbsp " . $cek_data_senin->jam_masuk_kembali . "&nbsp &nbsp " : '-';
?>
</td>
<td rowspan="2" style="text-align: center;">
<?php
echo ($cek_data_senin != null && $cek_data_senin->jam_pulang != '') ? "&nbsp " . $cek_data_senin->jam_pulang . "&nbsp &nbsp " : '-';
?>
</td>
<td rowspan="2" style="text-align: center;">
<?php
$cek_data_selasa = null;
if ($week[1]['date'] != null) {
$cek_data_selasa = $CI->model->tampil_data_where('tb_absensi_karyawan', ['nik' => $value->nik, 'tanggal' => $week[1]['date'], 'id_dinas' => $id_dinas])->result();
if (count($cek_data_selasa) > 0) {
$cek_data_selasa = $cek_data_selasa[0];
} else {
$cek_data_selasa = null;
}
}
echo ($cek_data_selasa != null && $cek_data_selasa->jam_masuk != '') ? "&nbsp " . $cek_data_selasa->jam_masuk . "&nbsp &nbsp " : '-';
?>
</td>
<td rowspan="2" style="text-align: center;">
<?php
echo ($cek_data_selasa != null && $cek_data_selasa->jam_istirehat != '') ? "&nbsp " . $cek_data_selasa->jam_istirehat . "&nbsp &nbsp " : '-';
?>
</td>
<td rowspan="2" style="text-align: center;">
<?php
echo ($cek_data_selasa != null && $cek_data_selasa->jam_masuk_kembali != '') ? "&nbsp " . $cek_data_selasa->jam_masuk_kembali . "&nbsp &nbsp " : '-';
?>
</td>
<td rowspan="2" style="text-align: center;">
<?php
echo ($cek_data_selasa != null && $cek_data_selasa->jam_pulang != '') ? "&nbsp " . $cek_data_selasa->jam_pulang . "&nbsp &nbsp " : '-';
?>
</td>
<td rowspan="2" style="text-align: center;">
<?php
$cek_data_rabu = null;
if ($week[2]['date'] != null) {
$cek_data_rabu = $CI->model->tampil_data_where('tb_absensi_karyawan', ['nik' => $value->nik, 'tanggal' => $week[2]['date'], 'id_dinas' => $id_dinas])->result();
if (count($cek_data_rabu) > 0) {
$cek_data_rabu = $cek_data_rabu[0];
} else {
$cek_data_rabu = null;
}
}
echo ($cek_data_rabu != null && $cek_data_rabu->jam_masuk != '') ? "&nbsp " . $cek_data_rabu->jam_masuk . "&nbsp &nbsp " : '-';
?>
</td>
<td rowspan="2" style="text-align: center;">
<?php
echo ($cek_data_rabu != null && $cek_data_rabu->jam_istirehat != '') ? "&nbsp " . $cek_data_rabu->jam_istirehat . "&nbsp &nbsp " : '-';
?>
</td>
<td rowspan="2" style="text-align: center;">
<?php
echo ($cek_data_rabu != null && $cek_data_rabu->jam_masuk_kembali != '') ? "&nbsp " . $cek_data_rabu->jam_masuk_kembali . "&nbsp &nbsp " : '-';
?>
</td>
<td rowspan="2" style="text-align: center;">
<?php
echo ($cek_data_rabu != null && $cek_data_rabu->jam_pulang != '') ? "&nbsp " . $cek_data_rabu->jam_pulang . "&nbsp &nbsp " : '-';
?>
</td>
<td rowspan="2" style="text-align: center;">
<?php
$cek_data_kamis = null;
if ($week[3]['date'] != null) {
$cek_data_kamis = $CI->model->tampil_data_where('tb_absensi_karyawan', ['nik' => $value->nik, 'tanggal' => $week[3]['date'], 'id_dinas' => $id_dinas])->result();
if (count($cek_data_kamis) > 0) {
$cek_data_kamis = $cek_data_kamis[0];
} else {
$cek_data_kamis = null;
}
}
echo ($cek_data_kamis != null && $cek_data_kamis->jam_masuk != '') ? "&nbsp " . $cek_data_kamis->jam_masuk . "&nbsp &nbsp " : '-';
?>
</td>
<td rowspan="2" style="text-align: center;">
<?php
echo ($cek_data_kamis != null && $cek_data_kamis->jam_istirehat != '') ? "&nbsp " . $cek_data_kamis->jam_istirehat . "&nbsp &nbsp " : '-';
?>
</td>
<td rowspan="2" style="text-align: center;">
<?php
echo ($cek_data_kamis != null && $cek_data_kamis->jam_masuk_kembali != '') ? "&nbsp " . $cek_data_kamis->jam_masuk_kembali . "&nbsp &nbsp " : '-';
?>
</td>
<td rowspan="2" style="text-align: center;">
<?php
echo ($cek_data_kamis != null && $cek_data_kamis->jam_pulang != '') ? "&nbsp " . $cek_data_kamis->jam_pulang . "&nbsp &nbsp " : '-';
?>
</td>
<td rowspan="2" style="text-align: center;">
<?php
$cek_data_jumat = null;
if ($week[4]['date'] != null) {
$cek_data_jumat = $CI->model->tampil_data_where('tb_absensi_karyawan', ['nik' => $value->nik, 'tanggal' => $week[4]['date'], 'id_dinas' => $id_dinas])->result();
if (count($cek_data_jumat) > 0) {
$cek_data_jumat = $cek_data_jumat[0];
} else {
$cek_data_jumat = null;
}
}
echo ($cek_data_jumat != null && $cek_data_jumat->jam_masuk != '') ? "&nbsp " . $cek_data_jumat->jam_masuk . "&nbsp &nbsp " : '-';
?>
</td>
<td rowspan="2" style="text-align: center;">
<?php
echo ($cek_data_jumat != null && $cek_data_jumat->jam_istirehat != '') ? "&nbsp " . $cek_data_jumat->jam_istirehat . "&nbsp &nbsp " : '-';
?>
</td>
<td rowspan="2" style="text-align: center;">
<?php
echo ($cek_data_jumat != null && $cek_data_jumat->jam_masuk_kembali != '') ? "&nbsp " . $cek_data_jumat->jam_masuk_kembali . "&nbsp &nbsp " : '-';
?>
</td>
<td rowspan="2" style="text-align: center;">
<?php
echo ($cek_data_jumat != null && $cek_data_jumat->jam_pulang != '') ? "&nbsp " . $cek_data_jumat->jam_pulang . "&nbsp &nbsp " : '-';
?>
</td>
<td rowspan="2"></td>
</tr>
<tr>
<td><b><?= $value->nik; ?> &nbsp</b></td>
</tr>
<tr>
<td><?= $value->pangkat; ?></td>
<td rowspan="2" style="text-align: center;">Paraf</td>
<td rowspan="2" style="text-align: center;">
<?php
$cek_data_senin = null;
if ($week[0]['date'] != null) {
$cek_data_senin = $CI->model->tampil_data_where('tb_absensi_karyawan', ['nik' => $value->nik, 'tanggal' => $week[0]['date'], 'id_dinas' => $id_dinas])->result();
if (count($cek_data_senin) > 0) {
$cek_data_senin = $cek_data_senin[0];
} else {
$cek_data_senin = null;
}
}
echo ($cek_data_senin != null && $cek_data_senin->jam_masuk != '') ? '<i class="fa fa-check-circle" aria-hidden="true"></i> ' : '-';
?>
</td>
<td rowspan="2" style="text-align: center;">
<?php
echo ($cek_data_senin != null && $cek_data_senin->jam_istirehat != '') ? '<i class="fa fa-check-circle" aria-hidden="true"></i> ' : '-';
?>
</td>
<td rowspan="2" style="text-align: center;">
<?php
echo ($cek_data_senin != null && $cek_data_senin->jam_masuk_kembali != '') ? '<i class="fa fa-check-circle" aria-hidden="true"></i> ' : '-';
?>
</td>
<td rowspan="2" style="text-align: center;">
<?php
echo ($cek_data_senin != null && $cek_data_senin->jam_pulang != '') ? '<i class="fa fa-check-circle" aria-hidden="true"></i> ' : '-';
?>
</td>
<td rowspan="2" style="text-align: center;">
<?php
$cek_data_selasa = null;
if ($week[1]['date'] != null) {
$cek_data_selasa = $CI->model->tampil_data_where('tb_absensi_karyawan', ['nik' => $value->nik, 'tanggal' => $week[1]['date'], 'id_dinas' => $id_dinas])->result();
if (count($cek_data_selasa) > 0) {
$cek_data_selasa = $cek_data_selasa[0];
} else {
$cek_data_selasa = null;
}
}
echo ($cek_data_selasa != null && $cek_data_selasa->jam_masuk != '') ? '<i class="fa fa-check-circle" aria-hidden="true"></i> ' : '-';
?>
</td>
<td rowspan="2" style="text-align: center;">
<?php
echo ($cek_data_selasa != null && $cek_data_selasa->jam_istirehat != '') ? '<i class="fa fa-check-circle" aria-hidden="true"></i> ' : '-';
?>
</td>
<td rowspan="2" style="text-align: center;">
<?php
echo ($cek_data_selasa != null && $cek_data_selasa->jam_masuk_kembali != '') ? '<i class="fa fa-check-circle" aria-hidden="true"></i> ' : '-';
?>
</td>
<td rowspan="2" style="text-align: center;">
<?php
echo ($cek_data_selasa != null && $cek_data_selasa->jam_pulang != '') ? '<i class="fa fa-check-circle" aria-hidden="true"></i> ' : '-';
?>
</td>
<td rowspan="2" style="text-align: center;">
<?php
$cek_data_rabu = null;
if ($week[2]['date'] != null) {
$cek_data_rabu = $CI->model->tampil_data_where('tb_absensi_karyawan', ['nik' => $value->nik, 'tanggal' => $week[2]['date'], 'id_dinas' => $id_dinas])->result();
if (count($cek_data_rabu) > 0) {
$cek_data_rabu = $cek_data_rabu[0];
} else {
$cek_data_rabu = null;
}
}
echo ($cek_data_rabu != null && $cek_data_rabu->jam_masuk != '') ? '<i class="fa fa-check-circle" aria-hidden="true"></i> ' : '-';
?>
</td>
<td rowspan="2" style="text-align: center;">
<?php
echo ($cek_data_rabu != null && $cek_data_rabu->jam_istirehat != '') ? '<i class="fa fa-check-circle" aria-hidden="true"></i> ' : '-';
?>
</td>
<td rowspan="2" style="text-align: center;">
<?php
echo ($cek_data_rabu != null && $cek_data_rabu->jam_masuk_kembali != '') ? '<i class="fa fa-check-circle" aria-hidden="true"></i> ' : '-';
?>
</td>
<td rowspan="2" style="text-align: center;">
<?php
echo ($cek_data_rabu != null && $cek_data_rabu->jam_pulang != '') ? '<i class="fa fa-check-circle" aria-hidden="true"></i> ' : '-';
?>
</td>
<td rowspan="2" style="text-align: center;">
<?php
$cek_data_kamis = null;
if ($week[3]['date'] != null) {
$cek_data_kamis = $CI->model->tampil_data_where('tb_absensi_karyawan', ['nik' => $value->nik, 'tanggal' => $week[3]['date'], 'id_dinas' => $id_dinas])->result();
if (count($cek_data_kamis) > 0) {
$cek_data_kamis = $cek_data_kamis[0];
} else {
$cek_data_kamis = null;
}
}
echo ($cek_data_kamis != null && $cek_data_kamis->jam_masuk != '') ? '<i class="fa fa-check-circle" aria-hidden="true"></i> ' : '-';
?>
</td>
<td rowspan="2" style="text-align: center;">
<?php
echo ($cek_data_kamis != null && $cek_data_kamis->jam_istirehat != '') ? '<i class="fa fa-check-circle" aria-hidden="true"></i> ' : '-';
?>
</td>
<td rowspan="2" style="text-align: center;">
<?php
echo ($cek_data_kamis != null && $cek_data_kamis->jam_masuk_kembali != '') ? '<i class="fa fa-check-circle" aria-hidden="true"></i> ' : '-';
?>
</td>
<td rowspan="2" style="text-align: center;">
<?php
echo ($cek_data_kamis != null && $cek_data_kamis->jam_pulang != '') ? '<i class="fa fa-check-circle" aria-hidden="true"></i> ' : '-';
?>
</td>
<td rowspan="2" style="text-align: center;">
<?php
$cek_data_jumat = null;
if ($week[4]['date'] != null) {
$cek_data_jumat = $CI->model->tampil_data_where('tb_absensi_karyawan', ['nik' => $value->nik, 'tanggal' => $week[4]['date'], 'id_dinas' => $id_dinas])->result();
if (count($cek_data_jumat) > 0) {
$cek_data_jumat = $cek_data_jumat[0];
} else {
$cek_data_jumat = null;
}
}
echo ($cek_data_jumat != null && $cek_data_jumat->jam_masuk != '') ? '<i class="fa fa-check-circle" aria-hidden="true"></i> ' : '-';
?>
</td>
<td rowspan="2" style="text-align: center;">
<?php
echo ($cek_data_jumat != null && $cek_data_jumat->jam_istirehat != '') ? '<i class="fa fa-check-circle" aria-hidden="true"></i> ' : '-';
?>
</td>
<td rowspan="2" style="text-align: center;">
<?php
echo ($cek_data_jumat != null && $cek_data_jumat->jam_masuk_kembali != '') ? '<i class="fa fa-check-circle" aria-hidden="true"></i> ' : '-';
?>
</td>
<td rowspan="2" style="text-align: center;">
<?php
echo ($cek_data_jumat != null && $cek_data_jumat->jam_pulang != '') ? '<i class="fa fa-check-circle" aria-hidden="true"></i> ' : '-';
?>
</td>
<td rowspan="2"></td>
</tr>
<tr>
<td><?= $value->jabatan; ?></td>
</tr>
<?php
}
}
?>
</tbody>
</table>
<br><br>
<?php
}
?>
<br><br>
<table style="width: 97%;">
<tr>
<td width="5%"></td>
<td width="25%">
<b>Keterangan :</b>
</td>
<td width="40%"></td>
<td width="25%">
Topoyo, / <?php echo date('d / '); echo $CI->model->bulan( date('m'));?> / 2022
</td>
<td width="5%"></td>
</tr>
<tr>
<td></td>
<td>
TK = Tanpa Keterangan
</td>
<td></td>
<td>
<b>Kepala Dinas Pariwisata</b>
</td>
<td></td>
</tr>
<tr>
<td></td>
<td>
S = Sakit
</td>
<td></td>
<td>
<b>Kepemudaaan Dan Olahraga</b>
</td>
<td></td>
</tr>
<tr>
<td></td>
<td>
I = Izin
</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td>
DL = Dinas Luar
</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td>
C = Cuti
</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td>
M = Masuk
</td>
<td></td>
<td>
<b>HJ. NANDA . S. Kep ., MM</b>
</td>
<td></td>
</tr>
<tr>
<td></td>
<td>
P = Pulang
</td>
<td></td>
<td>
Pangkat: Pembina Tk. IIVb
</td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td>
Nip . 12312321
</td>
<td></td>
</tr>
</table>
</div>
<script>
const button = document.getElementById('download-button');
function generatePDF() {
// Choose the element that your content will be rendered to.
const element = document.getElementById('invoice');
// Choose the element and save the PDF for your user.
// add margin on top and bottom every new page
html2pdf().from(element).set({
margin: 1,
filename: '<?= $title; ?>.pdf',
html2canvas: {
scale: 2, // A mayor escala, mejores gráficos, pero más peso
letterRendering: true,
},
jsPDF: {
unit: 'in',
format: 'a4',
orientation: 'landscape' // landscape o portrait
}
}).save();
}
generatePDF();
</script>
<script>
function exportTableToExcel(tableID, filename = '') {
var downloadLink;
var dataType = 'application/vnd.ms-excel';
var tableSelect = document.getElementById(tableID);
var tableHTML = tableSelect.outerHTML.replace(/ /g, '%20');
// Specify file name
filename = filename ? filename + '.xls' : 'excel_data.xls';
// Create download link element
downloadLink = document.createElement("a");
document.body.appendChild(downloadLink);
if (navigator.msSaveOrOpenBlob) {
var blob = new Blob(['\ufeff', tableHTML], {
type: dataType
});
navigator.msSaveOrOpenBlob(blob, filename);
} else {
// Create a link to the file
downloadLink.href = 'data:' + dataType + ', ' + tableHTML;
// Setting the file name
downloadLink.download = filename;
//triggering the function
downloadLink.click();
}
}
</script>
</body>
</html>

View File

@ -18,7 +18,9 @@
<!-- /.dropdown js__dropdown --> <!-- /.dropdown js__dropdown -->
<div class="form-group"> <div class="form-group">
<div id="map" style="width: 100%; height: 500px"></div> <div id="map" style="width: 100%; height: 500px"></div>
</div> </div>
<div class="form-group text-center" id="title_peta"></div>
<!-- /#flot-chart-1.flot-chart --> <!-- /#flot-chart-1.flot-chart -->
</div> </div>
<!-- /.box-content --> <!-- /.box-content -->
@ -27,7 +29,7 @@
<div class="col-xs-12"> <div class="col-xs-12">
<div class="box-content"> <div class="box-content">
<h4 class="box-title" id="header_absensi">Absensi Karyawan</h4> <h4 class="box-title" id="header_absensi">Absensi Pegawai</h4>
<div class="card-content"> <div class="card-content">
<div style="overflow-x: auto"> <div style="overflow-x: auto">
@ -42,16 +44,16 @@
</thead> </thead>
<tbody> <tbody>
<?php <?php
foreach ($list_karyawan as $key => $value) { foreach ($list_karyawan as $key => $value) {
?> ?>
<tr> <tr>
<td><?=$value->nik?></td> <td><?= $value->nik ?></td>
<td><?=$value->nama?></td> <td><?= $value->nama ?></td>
<td id="status_<?=$value->nik?>"> <?=$value->status_kerja?> </td> <td id="status_<?= $value->nik ?>"> <?= $value->status_kerja ?> </td>
<td id="lu_<?=$value->nik?>"> - </td> <td id="lu_<?= $value->nik ?>"> - </td>
</tr> </tr>
<?php <?php
} }
?> ?>
</tbody> </tbody>
</table> </table>
@ -73,7 +75,7 @@
<?php $this->load->view('admin/scripts') ?> <?php $this->load->view('admin/scripts') ?>
<script src="<?= base_url() ?>assets/plugin/datatables/media/js/jquery.dataTables.min.js"></script> <script src="<?= base_url() ?>assets/plugin/datatables/media/js/jquery.dataTables.min.js"></script>
<script src="<?= base_url() ?>assets/plugin/datatables/media/js/dataTables.bootstrap.min.js"></script> <script src="<?= base_url() ?>assets/plugin/datatables/media/js/dataTables.bootstrap.min.js"></script>
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyD7B9RynI4hQM_Y4BG9GYxsTLWwYkGASRo&libraries=geometry,drawing,places&v=weekly&region=ID&language=id"></script> <script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyD7B9RynI4hQM_Y4BG9GYxsTLWwYkGASRo&libraries=geometry,drawing,places&v=weekly&region=ID&language=id"></script>
@ -83,7 +85,7 @@
}) })
var id_dinas = <?= $id_dinas ?>; var id_dinas = <?= $id_dinas ?>;
$("#header_peta").html(`Peta Absensi <i>(${getTodayDate()})</i>`) $("#header_peta").html(`Peta Absensi <i>(${getTodayDate()})</i>`)
$("#header_absensi").html(`Absensi Karyawan <i>(${getTodayDate()})</i>`) $("#header_absensi").html(`Absensi Pegawai <i>(${getTodayDate()})</i>`)
let markersOverlay = []; let markersOverlay = [];
@ -206,8 +208,8 @@
<input type="text" class="form-control" value="${markers[i]['status']}" disabled> <input type="text" class="form-control" value="${markers[i]['status']}" disabled>
</div> </div>
</div>` </div>`
$("#lu_"+markers[i]['nik']).html(markers[i]['last_updated']); $("#lu_" + markers[i]['nik']).html(markers[i]['last_updated']);
$("#status_"+markers[i]['nik']).html(markers[i]['status']); $("#status_" + markers[i]['nik']).html(markers[i]['status']);
addInfoWindow(marker, html); addInfoWindow(marker, html);
} else { } else {
addInfoWindow(marker, dinas_html); addInfoWindow(marker, dinas_html);
@ -243,6 +245,76 @@
} }
} }
} }
function addMinutes(time, minutes) {
return new Date(new Date('1970-01-01T' + time + 'Z').getTime() + minutes * 60000).toISOString().substr(11, 5);
}
async function check_data() {
// console.log("selalu jalankan")
// get current time
const today = new Date();
const time = today.getHours() + ":" + today.getMinutes() + ":" + today.getSeconds();
let data
try {
// get today day name in id
const day = today.toLocaleString('id-ID', {
weekday: 'long'
});
// console.log(day)
data = await $.ajax({
url: server_url_api + "check_jadwal?hari=" + day + "&id_dinas=" + id_dinas,
type: 'get',
async: false,
// beforeSend: function(res) {
// block_ui("Mengambil Data Informasi Libur");
// },
});
data = data.data
// console.log(data);
// create const jam_masuk and jam_pulang
let jam_masuk = data.jam_masuk
let jam_pulang = data.jam_pulang
// add 30 minutes before jam_masuk
// add 30 minutes after jam_pulang
jam_masuk = addMinutes(jam_masuk, -30)
jam_pulang = addMinutes(jam_pulang, 30)
if (time >= jam_masuk && time <= jam_pulang) {
$("#map").attr("hidden", false);
$("#title_peta").attr("style", "display:none");
} else {
$("#map").attr("hidden", true);
$("#title_peta").attr("style", "display:block");
$("#title_peta").html("Peta tidak dapat ditampilkan saat ini, Diluar Jam Kerja");
}
} catch (error) {
// await $.unblockUI();
const statusCode = error.status;
console.log(error)
console.log(statusCode)
$("#map").attr("hidden", true);
$("#title_peta").attr("style", "display:block");
$("#title_peta").html("Peta tidak dapat ditampilkan saat ini, Diluar Jam Kerja ");
}
}
check_data()
setInterval(
check_data, 5000
)
</script> </script>
</body> </body>

View File

@ -13,9 +13,12 @@
<div class="row small-spacing"> <div class="row small-spacing">
<div class="col-xs-12"> <div class="col-xs-12">
<div class="box-content card"> <div class="box-content card">
<h4 class="box-title">List Karyawan </h4> <h4 class="box-title">List Pegawai </h4>
<!-- /.dropdown js__dropdown --> <!-- /.dropdown js__dropdown -->
<div class="card-content"> <div class="card-content">
<div class="form-group">
<button type="button" class="btn btn-primary btn-sm waves-effect waves-light" onclick="buka_modal_tambah()">Tambah Pegawai</button> <button type="button" class="btn btn-success btn-sm waves-effect waves-light" onclick="buka_modal_cetak()">Cetak List Pegawai</button>
</div>
<div style="overflow-x: auto"> <div style="overflow-x: auto">
<table id="table_list_karyawan" class="table table-striped table-bordered display" style="width:100%"> <table id="table_list_karyawan" class="table table-striped table-bordered display" style="width:100%">
<thead> <thead>
@ -32,10 +35,6 @@
</table> </table>
</div> </div>
<br>
<div class="form-group text-center">
<button type="button" class="btn btn-primary btn-sm waves-effect waves-light" onclick="buka_modal_tambah()">Tambah Karyawan</button>
</div>
</div> </div>
<!-- /#flot-chart-1.flot-chart --> <!-- /#flot-chart-1.flot-chart -->
@ -57,7 +56,7 @@
<div class="modal fade" id="modal_karyawan" tabindex="-1" role="dialog" aria-labelledby="myModalLabel-1" data-keyboard="false" data-backdrop="static"> <div class="modal fade" id="modal_karyawan" tabindex="-1" role="dialog" aria-labelledby="myModalLabel-1" data-keyboard="false" data-backdrop="static">
<div class="modal-dialog modal-lg" role="document"> <div class="modal-dialog modal-lg" role="document">
<form class="modal-content" onsubmit="return tambah_edit(event)"> <form class="modal-content" onsubmit="return tambah_edit(event)" id="form_tambah_karyawan">
<div class="modal-header"> <div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button> <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title" id="myModalLabel-1"></h4> <h4 class="modal-title" id="myModalLabel-1"></h4>
@ -72,21 +71,33 @@
<input type="file" class="form-control" id="foto" required="true"> <input type="file" class="form-control" id="foto" required="true">
</div> </div>
<div class="form-group"> <div class="form-group">
<label for="nik">NIP Karyawan</label> <label for="nik">NIP Pegawai</label>
<input type="hidden" id="status_form"> <input type="hidden" id="status_form">
<input type="text" class="form-control" id="nik" placeholder="Masukkan NIK Karyawan" minlength="16" maxlength="16" onkeypress="return isNumberKey(event)" required> <input type="text" class="form-control" id="nik" placeholder="Masukkan NIK Pegawai" minlength="14" maxlength="18" onkeypress="return isNumberKey(event)" required>
</div> </div>
<div class="form-group"> <div class="form-group">
<label for="nama">Nama</label> <label for="nama">Nama</label>
<input type="text" class="form-control" id="nama" placeholder="Masukkan Nama Karyawan" required> <input type="text" class="form-control" id="nama" placeholder="Masukkan Nama Pegawai" required>
</div> </div>
<div class="form-group"> <div class="form-group">
<label for="nama">No Telepon</label> <label for="nama">No Telepon</label>
<input type="text" class="form-control" id="no_telpon" placeholder="Masukkan No Telepon Karyawan" minlength="11" maxlength="13" onkeypress="return isNumberKey(event)" required> <input type="text" class="form-control" id="no_telpon" placeholder="Masukkan No Telepon Pegawai" minlength="10" maxlength="14" onkeypress="return isNumberKey(event)" required>
</div> </div>
<div class="form-group"> <div class="form-group">
<label for="jabatan">Jabatan</label> <label for="jabatan">Jabatan</label>
<input type="text" class="form-control" id="jabatan" placeholder="Masukkan Jabatan Karyawan" required> <select name="jabatan" id="jabatan" class="form-control" required>
<option value="" disabled selected>-Pilih Jabatan</option>
<option value="Kepala Dinas">Kepala Dinas</option>
<option value="Sekretaris">Sekretaris</option>
<option value="Bendahara Keuangan">Bendahara Keuangan</option>
<option value="Kepala Bidang">Kepala Bidang</option>
<option value="Analisis Kebijakan">Analisis Kebijakan</option>
<option value="Adyatama Kepariwisataan dan Ekonomi">Adyatama Kepariwisataan dan Ekonomi</option>
<option value="Kasubag Perencanaan">Kasubag Perencanaan</option>
<option value="Fungsional Umum">Fungsional Umum</option>
<option value="Kasubag Kepegawaian">Kasubag Kepegawaian</option>
<option value="Staf">Staf</option>
</select>
</div> </div>
<div class="form-group"> <div class="form-group">
<label for="pangkat">Pangkat</label> <label for="pangkat">Pangkat</label>
@ -111,18 +122,43 @@
<option value="IV D">IV D</option> <option value="IV D">IV D</option>
</select> </select>
</div> </div>
<div class="form-group">
<label for="keanggotaan">Keanggotaan</label>
<select name="keanggotaan" id="keanggotaan" class="form-control" required>
<option value="" disabled selected>-Pilih Keanggotaan</option>
<option value="Sekretariat">Sekretariat</option>
<option value="Olahraga">Olahraga</option>
<option value="Pemuda">Pemuda</option>
<option value="Ekonomi Kreatif">Ekonomi Kreatif</option>
<option value="Pariwisata">Pariwisata</option>
<option value="Keuangan">Keuangan</option>
</select>
</div>
<div class="form-group"> <div class="form-group">
<label for="status">Status</label> <label for="status">Status</label>
<select name="status" id="status" class="form-control" required> <select name="status" id="status" class="form-control" required>
<option value="" disabled selected>-Pilih Status</option> <option value="" disabled selected>-Pilih Status</option>
<option value="PNS" >PNS</option> <option value="PNS">PNS</option>
<option value="Kontrak" >Kontrak</option> <option value="Kontrak">Kontrak</option>
</select>
</div>
<div class="form-group">
<label for="jenis_kelamin">Jenis Kelamin</label>
<select name="jenis_kelamin" id="jenis_kelamin" class="form-control" required>
<option value="" disabled selected>-Pilih Opsi</option>
<option value="Laki-laki">Laki-laki</option>
<option value="Perempuan">Perempuan</option>
</select> </select>
</div> </div>
<div class="form-group"> <div class="form-group">
<label for="tanggal_lahir">Tanggal Lahir</label> <label for="tanggal_lahir">Tanggal Lahir</label>
<input type="date" class="form-control" id="tanggal_lahir" required> <input type="date" class="form-control" id="tanggal_lahir" required>
</div> </div>
<div class="form-group">
<label for="tempat_lahir">Tempat Lahir</label>
<input type="text" class="form-control" id="tempat_lahir" required>
</div>
<div class="form-group"> <div class="form-group">
<label for="alamat">Alamat</label> <label for="alamat">Alamat</label>
<textarea name="alamat" id="alamat" cols="30" rows="10" class="form-control" style="resize: none;" placeholder="Masukkan Alamat" required></textarea> <textarea name="alamat" id="alamat" cols="30" rows="10" class="form-control" style="resize: none;" placeholder="Masukkan Alamat" required></textarea>
@ -136,6 +172,23 @@
</div> </div>
</div> </div>
<div class="modal fade" id="modal_list_pegawai" tabindex="-1" role="dialog" aria-labelledby="myModalLabel-1">
<div class="modal-dialog modal-lg" role="document">
<form class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title" id="myModalLabel-1">Cetak List Pegawai</h4>
<!-- <p style="font-size: 10px;"><i>(Geserkan marker ke titik kordinat dinas)</i></p> -->
</div>
<div class="modal-body">
<div class="form-group" id="isi_surat"></div>
</div>
</form>
</div>
</div>
<?php $this->load->view('admin/scripts') ?> <?php $this->load->view('admin/scripts') ?>
<script src="<?= base_url() ?>assets/plugin/datatables/media/js/jquery.dataTables.min.js"></script> <script src="<?= base_url() ?>assets/plugin/datatables/media/js/jquery.dataTables.min.js"></script>
@ -184,29 +237,20 @@
} }
function buka_modal_tambah() { // buka modal untuk tambah karyawan function buka_modal_tambah() { // buka modal untuk tambah karyawan
$(".modal-title").html("Form Tambah Karyawan") $(".modal-title").html("Form Tambah Pegawai")
$("#status_form").val("tambah") $("#status_form").val("tambah")
$("#button_simpan_edit").html("Tambah Karyawan") $("#button_simpan_edit").html("Tambah Pegawai")
$("#nik").val(null) // reset form_tambah_karyawan
$("#foto").val(null)
$("#nama").val(null)
$("#no_telpon").val(null)
$("#jabatan").val(null)
$("#alamat").html(null)
$("#tanggal_lahir").val(null)
$("#nik").attr("disabled", false)
$("#foto").attr('required', true)
$("#div_img").attr('style', "display : none") $("#div_img").attr('style', "display : none")
selectElement('pangkat', ''); $("#form_tambah_karyawan")[0].reset()
selectElement('status', '');
$('#modal_karyawan').modal('show'); $('#modal_karyawan').modal('show');
} }
async function karyawan_edit(nik) { async function karyawan_edit(nik) {
// console.log(nik); // console.log(nik);
$(".modal-title").html("Form Edit Karyawan") $(".modal-title").html("Form Edit Pegawai")
$("#status_form").val("edit") $("#status_form").val("edit")
$("#button_simpan_edit").html("Edit Karyawan") $("#button_simpan_edit").html("Edit Pegawai")
$("#foto").attr('required', false) $("#foto").attr('required', false)
$("#foto").val(null) $("#foto").val(null)
$("#div_img").removeAttr("style") $("#div_img").removeAttr("style")
@ -219,7 +263,7 @@
type: 'get', type: 'get',
async: false, async: false,
beforeSend: function(res) { beforeSend: function(res) {
block_ui("Mengambil Data Karyawan"); block_ui("Mengambil Data Pegawai");
}, },
}); });
data = data.data data = data.data
@ -235,6 +279,9 @@
$("#img_container").attr("src", server_url + data.image) $("#img_container").attr("src", server_url + data.image)
selectElement('pangkat', data.pangkat); selectElement('pangkat', data.pangkat);
selectElement('status', data.status); selectElement('status', data.status);
selectElement('jenis_kelamin', data.jenis_kelamin);
selectElement('keanggotaan', data.keanggotaan);
$("#tempat_lahir").val(data.tempat_lahir)
$('#modal_karyawan').modal('show'); $('#modal_karyawan').modal('show');
} catch (error) { } catch (error) {
await $.unblockUI(); await $.unblockUI();
@ -263,6 +310,9 @@
const pangkat = $("#pangkat").val() const pangkat = $("#pangkat").val()
const status = $("#status").val() const status = $("#status").val()
const tanggal_lahir = $("#tanggal_lahir").val() const tanggal_lahir = $("#tanggal_lahir").val()
const tempat_lahir = $("#tempat_lahir").val()
const jenis_kelamin = $("#jenis_kelamin").val()
const keanggotaan = $("#keanggotaan").val()
// console.log(pangkat,status,tanggal_lahir) // console.log(pangkat,status,tanggal_lahir)
let data = new FormData() let data = new FormData()
@ -278,10 +328,13 @@
data.append('pangkat', pangkat) data.append('pangkat', pangkat)
data.append('status', status) data.append('status', status)
data.append('tanggal_lahir', tanggal_lahir) data.append('tanggal_lahir', tanggal_lahir)
data.append('tempat_lahir', tempat_lahir)
data.append('jenis_kelamin', jenis_kelamin)
data.append('keanggotaan', keanggotaan)
if (status_form == "tambah") { if (status_form == "tambah") {
swal({ swal({
text: `Tambah Karyawan Dengan\nNIK : ${nik},\nNama : ${nama}`, text: `Tambah Pegawai Dengan\nNIK : ${nik},\nNama : ${nama}`,
icon: "info", icon: "info",
buttons: { buttons: {
cancel: true, cancel: true,
@ -299,7 +352,7 @@
data, data,
beforeSend: function(res) { beforeSend: function(res) {
$('#modal_karyawan').modal('hide'); $('#modal_karyawan').modal('hide');
block_ui("Menambah Karyawan"); block_ui("Menambah Pegawai");
}, },
success: function(response) { success: function(response) {
$.unblockUI(); $.unblockUI();
@ -337,7 +390,7 @@
// console.log("sini berlaku edit") // console.log("sini berlaku edit")
swal({ swal({
text: `Edit Data Karyawan ?`, text: `Edit Data Pegawai ?`,
icon: "info", icon: "info",
buttons: { buttons: {
cancel: true, cancel: true,
@ -355,7 +408,7 @@
data, data,
beforeSend: function(res) { beforeSend: function(res) {
$('#modal_karyawan').modal('hide'); $('#modal_karyawan').modal('hide');
block_ui("Edit Data Karyawan"); block_ui("Edit Data Pegawai");
}, },
success: function(response) { success: function(response) {
$.unblockUI(); $.unblockUI();
@ -391,7 +444,7 @@
function hapus_karyawan(nik) { function hapus_karyawan(nik) {
// console.log(nik) // console.log(nik)
swal({ swal({
text: `Hapus Data Karyawan Dengan\nNIK : ${nik}\n?`, text: `Hapus Data Pegawai Dengan\nNIK : ${nik}\n?`,
icon: "warning", icon: "warning",
dangerMode: true, dangerMode: true,
buttons: { buttons: {
@ -411,7 +464,7 @@
}, },
beforeSend: function(res) { beforeSend: function(res) {
$('#modal_karyawan').modal('hide'); $('#modal_karyawan').modal('hide');
block_ui("Hapus Karyawan"); block_ui("Hapus Pegawai");
}, },
success: function(response) { success: function(response) {
$.unblockUI(); $.unblockUI();
@ -441,6 +494,75 @@
}); });
} }
function tukar_id(id) {
// console.log(id)
swal({
text: `Reset ID Smartphone Pegawai Dengan\nNIK : ${id}\n?`,
icon: "warning",
dangerMode: true,
buttons: {
cancel: true,
confirm: true,
},
// dangerMode: true,
}).then((yes) => {
if (yes) {
// console.log("hapus karyawan")
$.ajax({
url: server_url_api + "reset_id",
type: 'put',
data: {
id_dinas: id_dinas,
nik: id,
},
beforeSend: function(res) {
$('#modal_karyawan').modal('hide');
block_ui("Reset ID Smartphone Pegawai");
},
success: function(response) {
$.unblockUI();
// window.location.reload();
$('#table_list_karyawan').dataTable().fnDestroy();
datatables()
console.log(response)
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
$.unblockUI();
// console.log(errorThrown)
// console.log(textStatus)
const statusCode = XMLHttpRequest.status;
const responseJSON = XMLHttpRequest.responseJSON;
console.log(statusCode);
console.log(responseJSON)
if (statusCode != 500 || statusCode != 0) {
toastr.error(responseJSON.message);
} else {
toastr.error("Jaringan atau server bermasalah, sila refresh kembali halaman");
}
}
});
}
});
}
function cek_laporan(nik, stat) {
if (stat == 'tidak') {
toastr.info("Pegawai Ini Tidak Memiliki Laporan Kegiatan");
return
}
window.location.href = server_url + "admin/karyawan/" + nik;
}
function buka_modal_cetak() {
const laporan = `<embed src="${server_url}admin/cetak_list_pegawai" frameborder="1" width="100%" height="600px">`;
$("#isi_surat").empty();
$("#isi_surat").append(laporan);
$('#modal_list_pegawai').modal('show');
}
</script> </script>

View File

@ -0,0 +1,175 @@
<!DOCTYPE html>
<html lang="en">
<?php $this->load->view("admin/header"); ?>
<body>
<?php $this->load->view("admin/side_topbar"); ?>
<div id="wrapper">
<div class="main-content">
<div class="row small-spacing">
<div class="col-xs-12">
<div class="box-content card">
<h4 class="box-title" id="title_laporan">Laporan Kegiatan Pegawai </h4>
<!-- /.dropdown js__dropdown -->
<div class="card-content">
<div style="overflow-x: auto">
<table id="table_list_laporan" class="table table-striped table-bordered display" style="width:100%">
<thead>
<tr>
<th>No</th>
<th>Tanggal Upload</th>
<th>Judul</th>
<th>Aksi</th>
</tr>
</thead>
</table>
</div>
</div>
<!-- /#flot-chart-1.flot-chart -->
</div>
<!-- /.box-content -->
</div>
<!-- /.col-xs-12 -->
</div>
<!-- /.row -->
<?php $this->load->view('admin/footer') ?>
</div>
<!-- /.main-content -->
</div>
<div class="modal fade" id="modal_detail_laporan" tabindex="-1" role="dialog" aria-labelledby="myModalLabel-1" >
<div class="modal-dialog modal-lg" role="document">
<div class="modal-content" >
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title" id="myModalLabel-1">Detail Kegiatan</h4>
<!-- <p style="font-size: 10px;"><i>(Geserkan marker ke titik kordinat dinas)</i></p> -->
</div>
<div class="modal-body">
<div class="form-group text-center" id="div_img" style="display: none;">
<img src="" class="avatar" id="img_container" width="250px" height="250px" alt="avatar">
</div>
<div class="form-group">
<label for="waktu">Waktu Kegiatan</label>
<input type="text" class="form-control" id="waktu" disabled>
</div>
<div class="form-group">
<label for="judul">Judul Kegiatan</label>
<input type="text" class="form-control" id="judul" disabled>
</div>
<div class="form-group">
<label for="keterangan">Keterangan Kegiatan</label>
<textarea name="keterangan" id="keterangan" cols="30" rows="10" class="form-control" style="resize: none;" disabled></textarea>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-danger btn-xs waves-effect waves-light" data-dismiss="modal">Tutup</button>
</div>
</div>
</div>
</div>
<?php $this->load->view('admin/scripts') ?>
<script src="<?= base_url() ?>assets/plugin/datatables/media/js/jquery.dataTables.min.js"></script>
<script src="<?= base_url() ?>assets/plugin/datatables/media/js/dataTables.bootstrap.min.js"></script>
<script>
var id_dinas = <?= $id_dinas ?>;
$("#title_laporan").html("Laporan Kegiatan Pegawai <?= $nama ?> | <i><?= $nik ?></i>");
function datatables() {
table = $('#table_list_laporan').DataTable({
// "searching": false,
"lengthMenu": [
[5, 10, 15, -1],
[5, 10, 15, "All"]
],
"pageLength": 10,
"ordering": true,
"processing": true,
"serverSide": true,
// "order": [[ 4, 'desc' ]],
"ajax": {
"url": server_url + "admin/karyawan",
"type": "POST",
data: {
proses: 'table_laporan',
nik: '<?= $nik ?>'
},
},
"columnDefs": [{
"targets": [0],
"orderable": false,
}, ],
});
}
datatables()
async function cek_laporan(id_lapoaran) {
// console.log(id_lapoaran)
let data;
try {
data = await $.ajax({
url: server_url_api + "detail_kegiatan?id_laporan=" + id_lapoaran,
type: 'get',
async: false,
beforeSend: function(res) {
block_ui("Mengambil Data Detail Laporan")
},
});
data = data.data
console.log(data)
$("#waktu").val(data.created_at)
$("#judul").val(data.nama_laporan)
$("#keterangan").val(data.ket_laporan)
if(data.image == null) {
$("#div_img").hide()
$("#img_container").attr("src", "")
} else {
$("#div_img").show()
console.log
$("#img_container").attr("src", server_url + data.image)
}
await $.unblockUI();
// show modal
$("#modal_detail_laporan").modal("show")
// console.log(data)
} catch (error) {
await $.unblockUI();
const statusCode = error.status;
console.log(error)
console.log(statusCode)
if (statusCode == 0 || statusCode == 500) return toastr.error("Jaringan atau server bermasalah, sila refresh kembali halaman");
const message = error.responseJSON.message
toastr.error(message);
}
}
</script>
</body>
<!-- Dibuat oleh Kicap Karan. https://www.kicap-karan.com -->
</html>

View File

@ -0,0 +1,221 @@
<!DOCTYPE html>
<html lang="en">
<?php $this->load->view("admin/header"); ?>
<body>
<?php $this->load->view("admin/side_topbar"); ?>
<div id="wrapper">
<div class="main-content">
<div class="row small-spacing">
<div class="col-xs-2"></div>
<div class="col-xs-8">
<div class="box-content card">
<h4 class="box-title">Filter Laporan </h4>
<!-- /.dropdown js__dropdown -->
<!-- /#flot-chart-1.flot-chart -->
</div>
<!-- /.box-content -->
</div>
<!-- /.col-xs-12 -->
<div class="col-xs-2"></div>
</div>
<div class="row small-spacing">
<div class="col-xs-12">
<div class="box-content card">
<h4 class="box-title">Laporan Absensi Bulan <?= $month ?>, Tahun <?= $year ?></h4>
<div class="card-content">
<div style="overflow-x: auto;" class="form-group">
<table id="example" class="table table-striped table-bordered display" style="width:100%">
<thead>
<tr>
<th>NAMA</th>
<th>JAM/PARAF</th>
<th>Tanggal</th>
<th>Status</th>
<th>Jam Masuk</th>
<th>Jam Istirehat</th>
<th>Jam Masuk Kembali</th>
<th>Jam Pulang</th>
<th>Aksi</th>
</tr>
</thead>
<!-- <tbody>
<?php
for ($i = $first_date; $i <= $last_date; $i++) {
foreach ($list_karyawan as $key => $value) {
$tanggal = strlen($i) == 1 ? "0" . $i : $i;
// echo
$CI = &get_instance();
$CI->load->model('model');
$check_absensi = $CI->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 = $CI->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 = $CI->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;
}
?>
<tr>
<td><?= $value->nama ?> / <?= $value->nik ?> </td>
<td><?= $value->jabatan ?></td>
<td><?= $tanggal ?>-<?= $month ?>-<?= $year ?></td>
<td><?= $status ?></td>
<td><?= $jam_masuk ?></td>
<td><?= $jam_istirehat ?></td>
<td><?= $jam_masuk_kembali ?></td>
<td><?= $jam_pulang ?></td>
<td>
<?php
if ($status == 'Libur' || $status == "Perjalanan Dinas") {
?>
<center><button type='button' onclick='check_info("<?= $status ?>" ,<?= $idnya ?>)' title='Check Informasi <?= $status ?>' class='btn btn-primary btn-circle btn-sm waves-effect waves-light'><i class='ico zmdi zmdi-info-outline'></i></button></center>
<?php
} else {
echo "-";
}
?>
</td>
</tr>
<?php
}
}
?>
</tbody> -->
</table>
</div>
<div class="form-group text-center">
<div id="iframeDisplay"></div>
<button type="button" id="button_cetak" class="btn btn-primary btn-xs waves-effect waves-light" onclick="displayIframe()">Cetak Laporan</button>
</div>
</div>
</div>
<!-- /.box-content -->
</div>
<!-- /.col-xs-12 -->
</div>
<!-- /.row -->
<?php $this->load->view('admin/footer') ?>
</div>
<!-- /.main-content -->
</div>
<div class="modal fade" id="modal_pdf" tabindex="-1" role="dialog" aria-labelledby="myModalLabel-1" data-keyboard="false">
<div class="modal-dialog modal-lg" role="document" >
<div class="modal-content">
</div>
</div>
</div>
<?php $this->load->view('admin/scripts') ?>
<script src="<?= base_url() ?>assets/plugin/datatables/media/js/jquery.dataTables.min.js"></script>
<script src="<?= base_url() ?>assets/plugin/datatables/media/js/dataTables.bootstrap.min.js"></script>
<script>
// $(document).ready(function() {
// var groupColumn = 2;
// var table = $('#example').DataTable({
// columnDefs: [{
// visible: false,
// targets: groupColumn
// }],
// order: [
// [groupColumn, 'asc']
// ],
// displayLength: 25,
// drawCallback: function(settings) {
// var api = this.api();
// var rows = api.rows({
// page: 'current'
// }).nodes();
// var last = null;
// api
// .column(groupColumn, {
// page: 'current'
// })
// .data()
// .each(function(group, i) {
// if (last !== group) {
// $(rows)
// .eq(i)
// .before('<tr class="group text-center"><td colspan="8">' + group + '</td></tr>');
// last = group;
// }
// });
// },
// });
// // Order by the grouping
// $('#example tbody').on('click', 'tr.group', function() {
// var currentOrder = table.order()[0];
// if (currentOrder[0] === groupColumn && currentOrder[1] === 'asc') {
// table.order([groupColumn, 'desc']).draw();
// } else {
// table.order([groupColumn, 'asc']).draw();
// }
// });
// });
</script>
<script>
async function check_info(stat, id) {
console.log(stat, id)
}
function displayIframe() {
document.getElementById("iframeDisplay").innerHTML = "<iframe src=\"../HtmlPage1.html\" height=\"200\" width=\"300\" ></iframe>";
}
</script>
</body>
<!-- Dibuat oleh Kicap Karan. https://www.kicap-karan.com -->
</html>

File diff suppressed because it is too large Load Diff

View File

@ -14,13 +14,13 @@
<div class="col-xs-12"> <div class="col-xs-12">
<div class="box-content card"> <div class="box-content card">
<h4 class="box-title">Form Libur </h4> <h4 class="box-title">Form Libur </h4>
<form class="card-content" onsubmit="return tambah_libur(event)"> <form class="card-content" onsubmit="return tambah_libur(event)" id="form_tambah">
<div class="form-group"> <div class="form-group">
<label for="tanggal_libur">Range Tanggal</label> <label for="tanggal_libur">Range Tanggal</label>
<input type="text" name="tanggal_libur" class="form-control" value="" reqruied /> <input type="text" name="tanggal_libur" class="form-control" value="" reqruied />
</div> </div>
<div class="form-group"> <div class="form-group">
<label for="tanggal_libur">List Karyawan</label> <label for="tanggal_libur">List Pegawai</label>
<div class="row small-spacing" style="overflow-x: auto;"> <div class="row small-spacing" style="overflow-x: auto;">
<div class="col-xs-9"> <div class="col-xs-9">
<select multiple id="select_list_karyawan" class="form-control" onchange="check_dulu()" required> <select multiple id="select_list_karyawan" class="form-control" onchange="check_dulu()" required>
@ -34,6 +34,10 @@
</div> </div>
</div> </div>
</div> </div>
<div class="form-group">
<label for="surat">Surat Keterangan</label>
<input type="file" class="form-control" id="file_surat" required="true">
</div>
<div class="form-group"> <div class="form-group">
<label for="tanggal_libur">Keterangan</label> <label for="tanggal_libur">Keterangan</label>
<textarea name="" id="ket" cols="30" rows="10" class="form-control" style="resize: none" placeholder="Keterangan Libur" required></textarea> <textarea name="" id="ket" cols="30" rows="10" class="form-control" style="resize: none" placeholder="Keterangan Libur" required></textarea>
@ -66,7 +70,7 @@
<tr> <tr>
<th>No</th> <th>No</th>
<th>Range Tanggal</th> <th>Range Tanggal</th>
<th>List Karyawan</th> <th>List Pegawai</th>
<th>Created At</th> <th>Created At</th>
<th>Aksi</th> <th>Aksi</th>
</tr> </tr>
@ -100,7 +104,7 @@
<input type="text" class="form-control" id="range_tanggal" disabled> <input type="text" class="form-control" id="range_tanggal" disabled>
</div> </div>
<div class="form-group"> <div class="form-group">
<label for="nik">List Karayawn</label> <label for="nik">List Pegawai</label>
<textarea name="list_karyawan" class="form-control" id="list_karyawan" cols="30" rows="10" style="resize: none;" disabled></textarea> <textarea name="list_karyawan" class="form-control" id="list_karyawan" cols="30" rows="10" style="resize: none;" disabled></textarea>
</div> </div>
<div class="form-group"> <div class="form-group">
@ -112,6 +116,8 @@
<input type="text" class="form-control" id="created_at" disabled> <input type="text" class="form-control" id="created_at" disabled>
</div> </div>
<div class="form-group" id="isi_surat"></div>
</div> </div>
</form> </form>
@ -180,6 +186,10 @@
$("#keterangan").val(data.ket) $("#keterangan").val(data.ket)
$("#list_karyawan").val(data.list_karyawan) $("#list_karyawan").val(data.list_karyawan)
$("#created_at").val(data.created_at) $("#created_at").val(data.created_at)
// console.log(data.file)
const laporan = `<embed src="${server_url}${data.file}" frameborder="1" width="100%" height="500px">`;
$("#isi_surat").empty();
$("#isi_surat").append(laporan);
$('#modal_informasi_libur').modal('show'); $('#modal_informasi_libur').modal('show');
} catch (error) { } catch (error) {
await $.unblockUI(); await $.unblockUI();
@ -224,7 +234,7 @@
type: 'get', type: 'get',
async: false, async: false,
beforeSend: function(res) { beforeSend: function(res) {
block_ui("Mengambil Data Karyawan"); block_ui("Mengambil Data Pegawai");
}, },
}); });
data = data.data data = data.data
@ -255,7 +265,7 @@
check_data_karyawan() check_data_karyawan()
$("#select_list_karyawan").select2({ $("#select_list_karyawan").select2({
placeholder: " -Pilih Karyawan", placeholder: " -Pilih Pegawai",
allowClear: true allowClear: true
}); });
$("#chk-2").click(function() { $("#chk-2").click(function() {
@ -286,13 +296,23 @@
// console.log(start_tanggal,end_tanggal) // console.log(start_tanggal,end_tanggal)
const list_karyawan = $("#select_list_karyawan").val(); const list_karyawan = $("#select_list_karyawan").val();
const ket = $("#ket").val(); const ket = $("#ket").val();
const file = document.getElementById('file_surat').files[0]
// console.log(ket); // console.log(ket);
let data = new FormData() let data = new FormData()
data.append('id_dinas', id_dinas) data.append('id_dinas', id_dinas)
data.append('list_karyawan', JSON.stringify(list_karyawan)) data.append('list_karyawan', JSON.stringify(list_karyawan))
data.append('start_tanggal', start_tanggal) // create var today with today date with - as separator, year first, month second, day last
data.append('end_tanggal', end_tanggal) today = new Date().toLocaleDateString();
day = today.split("/")[0];
month = today.split("/")[1];
year = today.split("/")[2];
today = year + "-" + month + "-" + day;
data.append('start_tanggal', start_tanggal ?? today)
data.append('end_tanggal', end_tanggal ?? today)
data.append('ket', ket) data.append('ket', ket)
data.append('file', file)
// console.log(start_tanggal, end_tanggal)
swal({ swal({
text: `Informasi Libur Akan Ditambah ?`, text: `Informasi Libur Akan Ditambah ?`,
@ -319,7 +339,9 @@
console.log(response) console.log(response)
// $('#table_list_libur').dataTable().fnDestroy(); // $('#table_list_libur').dataTable().fnDestroy();
// datatables() // datatables()
// reset form_tambah
$("#select_list_karyawan").val('').change(); $("#select_list_karyawan").val('').change();
document.getElementById("form_tambah").reset();
$("#ket").val("") $("#ket").val("")
$('#table_list_libur').dataTable().fnDestroy(); $('#table_list_libur').dataTable().fnDestroy();
datatables() datatables()
@ -345,6 +367,64 @@
}) })
} }
document.getElementById("file_surat").onchange = function() {
let surat = document.getElementById('file_surat').files[0];
check_file_surat(surat)
}
function hapus_libur(id_libur) {
swal({
text: `Hapus Data Libur Ini?`,
icon: "warning",
dangerMode: true,
buttons: {
cancel: true,
confirm: true,
},
// dangerMode: true,
}).then((yes) => {
if (yes) {
// console.log("hapus karyawan")
$.ajax({
url: server_url_api + "libur",
type: 'delete',
data: {
id_dinas: id_dinas,
id_libur: id_libur,
},
beforeSend: function(res) {
$('#modal_informasi_libur').modal('hide');
block_ui("Hapus Libur");
},
success: function(response) {
$.unblockUI();
// window.location.reload();
$('#table_list_libur').dataTable().fnDestroy();
datatables()
console.log(response)
toastr.success(response.message);
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
$.unblockUI();
// console.log(errorThrown)
// console.log(textStatus)
const statusCode = XMLHttpRequest.status;
const responseJSON = XMLHttpRequest.responseJSON;
console.log(statusCode);
console.log(responseJSON)
if (statusCode != 500 || statusCode != 0) {
toastr.error(responseJSON.message);
} else {
toastr.error("Jaringan atau server bermasalah, sila refresh kembali halaman");
}
}
});
}
});
}
</script> </script>
</body> </body>

View File

@ -14,13 +14,13 @@
<div class="col-xs-12"> <div class="col-xs-12">
<div class="box-content card"> <div class="box-content card">
<h4 class="box-title">Form Perjalanan Dinas </h4> <h4 class="box-title">Form Perjalanan Dinas </h4>
<form class="card-content" onsubmit="return tambah_perjalanan_dinas(event)"> <form class="card-content" onsubmit="return tambah_perjalanan_dinas(event)" id="form_tambah">
<div class="form-group"> <div class="form-group">
<label for="tanggal_perjalanan_dinas">Range Tanggal</label> <label for="tanggal_perjalanan_dinas">Range Tanggal</label>
<input type="text" name="tanggal_perjalanan_dinas" class="form-control" value="" reqruied /> <input type="text" name="tanggal_perjalanan_dinas" class="form-control" value="" reqruied />
</div> </div>
<div class="form-group"> <div class="form-group">
<label for="tanggal_perjalanan_dinas">List Karyawan</label> <label for="tanggal_perjalanan_dinas">List Pegawai</label>
<div class="row small-spacing" style="overflow-x: auto;"> <div class="row small-spacing" style="overflow-x: auto;">
<div class="col-xs-9"> <div class="col-xs-9">
<select multiple id="select_list_karyawan" class="form-control" onchange="check_dulu()" required> <select multiple id="select_list_karyawan" class="form-control" onchange="check_dulu()" required>
@ -34,6 +34,10 @@
</div> </div>
</div> </div>
</div> </div>
<div class="form-group">
<label for="sppd">SPPD</label>
<input type="file" class="form-control" id="file_surat" required="true">
</div>
<div class="form-group"> <div class="form-group">
<label for="tanggal_perjalanan_dinas">Keterangan</label> <label for="tanggal_perjalanan_dinas">Keterangan</label>
<textarea name="" id="ket" cols="30" rows="10" class="form-control" style="resize: none" placeholder="Keterangan Perjalanan Dinas" required></textarea> <textarea name="" id="ket" cols="30" rows="10" class="form-control" style="resize: none" placeholder="Keterangan Perjalanan Dinas" required></textarea>
@ -66,7 +70,7 @@
<tr> <tr>
<th>No</th> <th>No</th>
<th>Range Tanggal</th> <th>Range Tanggal</th>
<th>List Karyawan</th> <th>List Pegawai</th>
<th>Created At</th> <th>Created At</th>
<th>Aksi</th> <th>Aksi</th>
</tr> </tr>
@ -100,7 +104,7 @@
<input type="text" class="form-control" id="range_tanggal" disabled> <input type="text" class="form-control" id="range_tanggal" disabled>
</div> </div>
<div class="form-group"> <div class="form-group">
<label for="nik">List Karayawn</label> <label for="nik">List Pegawai</label>
<textarea name="list_karyawan" class="form-control" id="list_karyawan" cols="30" rows="10" style="resize: none;" disabled></textarea> <textarea name="list_karyawan" class="form-control" id="list_karyawan" cols="30" rows="10" style="resize: none;" disabled></textarea>
</div> </div>
<div class="form-group"> <div class="form-group">
@ -112,6 +116,8 @@
<input type="text" class="form-control" id="created_at" disabled> <input type="text" class="form-control" id="created_at" disabled>
</div> </div>
<div class="form-group" id="isi_surat"></div>
</div> </div>
</form> </form>
@ -180,6 +186,9 @@
$("#keterangan").val(data.ket) $("#keterangan").val(data.ket)
$("#list_karyawan").val(data.list_karyawan) $("#list_karyawan").val(data.list_karyawan)
$("#created_at").val(data.created_at) $("#created_at").val(data.created_at)
const laporan = `<embed src="${server_url}${data.sppd}" frameborder="1" width="100%" height="500px">`;
$("#isi_surat").empty();
$("#isi_surat").append(laporan);
$('#modal_informasi_perjalanan_dinas').modal('show'); $('#modal_informasi_perjalanan_dinas').modal('show');
} catch (error) { } catch (error) {
await $.unblockUI(); await $.unblockUI();
@ -224,7 +233,7 @@
type: 'get', type: 'get',
async: false, async: false,
beforeSend: function(res) { beforeSend: function(res) {
block_ui("Mengambil Data Karyawan"); block_ui("Mengambil Data Pegawai");
}, },
}); });
data = data.data data = data.data
@ -255,7 +264,7 @@
check_data_karyawan() check_data_karyawan()
$("#select_list_karyawan").select2({ $("#select_list_karyawan").select2({
placeholder: " -Pilih Karyawan", placeholder: " -Pilih Pegawai",
allowClear: true allowClear: true
}); });
$("#chk-2").click(function() { $("#chk-2").click(function() {
@ -286,13 +295,20 @@
// console.log(start_tanggal,end_tanggal) // console.log(start_tanggal,end_tanggal)
const list_karyawan = $("#select_list_karyawan").val(); const list_karyawan = $("#select_list_karyawan").val();
const ket = $("#ket").val(); const ket = $("#ket").val();
const file = document.getElementById('file_surat').files[0]
// console.log(ket); // console.log(ket);
let data = new FormData() let data = new FormData()
data.append('id_dinas', id_dinas) data.append('id_dinas', id_dinas)
data.append('list_karyawan', JSON.stringify(list_karyawan)) data.append('list_karyawan', JSON.stringify(list_karyawan))
data.append('start_tanggal', start_tanggal) today = new Date().toLocaleDateString();
data.append('end_tanggal', end_tanggal) day = today.split("/")[0];
month = today.split("/")[1];
year = today.split("/")[2];
today = year + "-" + month + "-" + day;
data.append('start_tanggal', start_tanggal ?? today)
data.append('end_tanggal', end_tanggal ?? today)
data.append('ket', ket) data.append('ket', ket)
data.append('file', file)
swal({ swal({
text: `Informasi Perjalanan Dinas Akan Ditambah ?`, text: `Informasi Perjalanan Dinas Akan Ditambah ?`,
icon: "info", icon: "info",
@ -316,8 +332,10 @@
$.unblockUI(); $.unblockUI();
// window.location.reload(); // window.location.reload();
console.log(response) console.log(response)
// $('#table_list_karyawan').dataTable().fnDestroy(); $('#table_list_perjalanan_dinas').dataTable().fnDestroy();
// datatables() $("#select_list_karyawan").val('').change();
document.getElementById("form_tambah").reset();
datatables()
toastr.success(response.message); toastr.success(response.message);
}, },
error: function(XMLHttpRequest, textStatus, errorThrown) { error: function(XMLHttpRequest, textStatus, errorThrown) {
@ -340,6 +358,63 @@
}) })
} }
document.getElementById("file_surat").onchange = function() {
let surat = document.getElementById('file_surat').files[0];
check_file_surat(surat)
}
function hapus_perjalanan_dinas (id_perjalanan_dinas) {
swal({
text: `Hapus Data Perjalanan Dinas Ini?`,
icon: "warning",
dangerMode: true,
buttons: {
cancel: true,
confirm: true,
},
// dangerMode: true,
}).then((yes) => {
if (yes) {
// console.log("hapus karyawan")
$.ajax({
url: server_url_api + "perjalanan_dinas",
type: 'delete',
data: {
id_dinas: id_dinas,
id_perjalanan_dinas: id_perjalanan_dinas,
},
beforeSend: function(res) {
$('#modal_informasi_perjalanan_dinas').modal('hide');
block_ui("Hapus Perjalanan Dinas");
},
success: function(response) {
$.unblockUI();
// window.location.reload();
$('#table_list_perjalanan_dinas').dataTable().fnDestroy();
datatables()
console.log(response)
toastr.success(response.message);
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
$.unblockUI();
// console.log(errorThrown)
// console.log(textStatus)
const statusCode = XMLHttpRequest.status;
const responseJSON = XMLHttpRequest.responseJSON;
console.log(statusCode);
console.log(responseJSON)
if (statusCode != 500 || statusCode != 0) {
toastr.error(responseJSON.message);
} else {
toastr.error("Jaringan atau server bermasalah, sila refresh kembali halaman");
}
}
});
}
});
}
</script> </script>
</body> </body>

View File

@ -0,0 +1,435 @@
<!DOCTYPE html>
<html lang="en">
<?php $this->load->view("admin/header"); ?>
<body>
<?php $this->load->view("admin/side_topbar"); ?>
<div id="wrapper">
<div class="main-content">
<div class="row small-spacing">
<div class="col-xs-12">
<div class="box-content card">
<h4 class="box-title">List Surat </h4>
<!-- /.dropdown js__dropdown -->
<div class="card-content">
<div class="form-group">
<button type="button" class="btn btn-primary btn-sm waves-effect waves-light" onclick="buka_modal_input_surat()">Input Surat</button>
</div>
<div style="overflow-x: auto">
<table id="table_list_surat" class="table table-striped table-bordered display" style="width:100%">
<thead>
<tr>
<th>No Surat</th>
<th>Tanggal Pengiriman</th>
<th>Tanggal Diterima</th>
<th>No Agenda</th>
<th>Created At</th>
<th>Updated At</th>
<th>Aksi</th>
</tr>
</thead>
</table>
</div>
<br>
</div>
<!-- /#flot-chart-1.flot-chart -->
</div>
<!-- /.box-content -->
</div>
<!-- /.col-xs-12 -->
</div>
<?php $this->load->view('admin/footer') ?>
</div>
<!-- /.main-content -->
</div>
<div class="modal fade" id="modal_surat_masuk" tabindex="-1" role="dialog" aria-labelledby="myModalLabel-1">
<div class="modal-dialog modal-lg" role="document">
<form class="modal-content" onsubmit="return tambah_surat(event)" id="form_input_surat">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title" id="myModalLabel-1"></h4>
<!-- <p style="font-size: 10px;"><i>(Geserkan marker ke titik kordinat dinas)</i></p> -->
</div>
<div class="modal-body">
<!-- <div class="form-group text-center" id="div_img" style="display: none;">
<img src="" class="avatar" id="img_container" />
</div> -->
<!-- <div class="form-group">
<label for="nik">Foto</label>
<input type="file" class="form-control" id="foto" required="true">
</div> -->
<div class="form-group">
<label for="asal_surat">Asal Surat</label>
<!-- <input type="hidden" id="status_form"> -->
<input type="text" class="form-control" id="asal_surat" placeholder="Masukkan Asal Surat" required>
</div>
<div class="form-group">
<label for="no_surat">No. Surat</label>
<input type="text" class="form-control" id="no_surat" placeholder="000/0000.0/00/0000" required>
</div>
<div class="form-group">
<label for="tanggal_pengiriman">Tanggal Pengiriman</label>
<input type="date" class="form-control" id="tanggal_pengiriman" required>
</div>
<div class="form-group">
<label for="tanggal_diterima">Tanggal Diterima</label>
<input type="date" class="form-control" id="tanggal_diterima" required>
</div>
<div class="form-group">
<label for="no_agenda">No. Agenda</label>
<input type="text" class="form-control" id="no_agenda" placeholder="000" minlength="1" maxlength="3" onkeypress="return isNumberKey(event)" required>
</div>
<div class="form-group">
<label for="sifat">Sifat</label>
<select name="sifat" id="sifat" class="form-control">
<option value="" disabled selected>-Pilih Sifat</option>
<option value="Segera">Segera</option>
<option value="Rahsia">Rahsia</option>
<option value="Sangat Rahsia">Sangat Rahsia</option>
<!-- <option value="I C">I C</option>
<option value="I D">I D</option>
<option value="II A">II A</option>
<option value="II B">II B</option>
<option value="II C">II C</option>
<option value="II D">II D</option>
<option value="III A">III A</option>
<option value="III B">III B</option>
<option value="III C">III C</option>
<option value="III D">III D</option>
<option value="IV A">IV A</option>
<option value="IV B">IV B</option>
<option value="IV C">IV C</option>
<option value="IV D">IV D</option> -->
</select>
</div>
<div class="form-group">
<label for="perihal">Perihal</label>
<textarea name="perihal" id="perihal" cols="30" rows="10" class="form-control" style="resize: none;" placeholder="Masukkan Perihal" required></textarea>
</div>
<div class="form-group">
<label for="diteruskan_kepada">Diteruskan Kepada</label>
<select name="diteruskan_kepada" id="diteruskan_kepada" class="form-control">
<option value="" disabled selected>-Pilih Opsi</option>
<option value="Sekretaris">Sekretaris</option>
<option value="Bidang Pemuda">Bidang Pemuda</option>
<option value="Bidang Olahraga">Bidang Olahraga</option>
<option value="Bidang Pariwisata">Bidang Pariwisata</option>
<option value="Bidang Ekonomi Kreatif">Bidang Ekonomi Kreatif</option>
<option value="Sub Bagian Perencanaan">Sub Bagian Perencanaan</option>
<option value="Sub Bagian Keuangan Dan Kepegawaian">Sub Bagian Keuangan Dan Kepegawaian</option>
<option value="Sub Bagian Umum Dan Perlengkapan">Sub Bagian Umum Dan Perlengkapan</option>
<option value="Kasi Sarana Dan Prasarana Olahraga">Kasi Sarana Dan Prasarana Olahraga</option>
</select>
</div>
<div class="form-group">
<label for="respon">Respon</label>
<select name="respon" id="respon" class="form-control">
<option value="" disabled selected>-Pilih Opsi</option>
<option value="Tanggapan dan Saran">Tanggapan dan Saran</option>
<option value="Proses Lebih Lanjut">Proses Lebih Lanjut</option>
<option value="Koordinasi dan Konfirmasi">Koordinasi dan Konfirmasi</option>
<option value="Didampingi / Diwakili">Didampingi / Diwakili</option>
</select>
</div>
<div class="form-group" id="div_file_surat">
<label for="file">Upload File PDF Surat </label>
<input type="file" class="form-control" id="file_surat" required>
</div>
<!-- <div class="form-group">
<label for="file">URL File PDF Surat</label>
<input type="text" class="form-control" id="url_surat" placeholder="http://">
</div> -->
<div class="form-group">
<label for="catatan">Catatan</label>
<textarea name="catatan" id="catatan" cols="30" rows="10" class="form-control" style="resize: none;" placeholder="Masukkan Catatan"></textarea>
</div>
</div>
<div class="modal-footer">
<button type="submit" id="button_simpan" class="btn btn-primary btn-xs waves-effect waves-light">Upload Surat</button>
<button type="button" class="btn btn-danger btn-xs waves-effect waves-light" data-dismiss="modal">Batalkan</button>
</div>
</form>
</div>
</div>
<!-- create modal for who pdf -->
<div class="modal fade" id="modal_pdf" tabindex="-1" role="dialog" aria-labelledby="modal_pdf" aria-hidden="true">
<div class="modal-dialog modal-lg" role="document">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title" id="modal_pdf">Isi Surat</h4>
</div>
<div class="modal-body" id="isi_laporan">
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary btn-xs" data-dismiss="modal">Tutup</button>
</div>
</div>
</div>
</div>
<?php $this->load->view('admin/scripts') ?>
<script src="<?= base_url() ?>assets/plugin/datatables/media/js/jquery.dataTables.min.js"></script>
<script src="<?= base_url() ?>assets/plugin/datatables/media/js/dataTables.bootstrap.min.js"></script>
<script>
var id_dinas = <?= $id_dinas ?>;
var table;
function datatables() {
table = $('#table_list_surat').DataTable({
// "searching": false,
"lengthMenu": [
[5, 10, 15, -1],
[5, 10, 15, "All"]
],
"pageLength": 10,
"ordering": true,
"processing": true,
"serverSide": true,
// "order": [[ 4, 'desc' ]],
"ajax": {
"url": server_url + "admin/surat_masuk",
"type": "POST",
data: {
proses: 'table_surat_masuk'
},
},
"columnDefs": [{
"targets": [6],
"orderable": false,
}, ],
});
}
datatables()
function buka_modal_input_surat() {
// clear form
$('#form_input_surat')[0].reset();
$("#myModalLabel-1").html('Form Input Surat Masuk');
$("#form_input_surat :input").prop("disabled", false);
$('#modal_surat_masuk').modal('show');
}
document.getElementById("file_surat").onchange = function() {
let file_surat = document.getElementById('file_surat').files[0];
check_file_surat(file_surat)
}
function tambah_surat(e) {
e.preventDefault();
const asal_surat = $('#asal_surat').val();
const no_surat = $('#no_surat').val();
const tanggal_pengiriman = $('#tanggal_pengiriman').val();
const tanggal_diterima = $('#tanggal_diterima').val();
const no_agenda = $('#no_agenda').val();
const sifat = $('#sifat').val();
const perihal = $('#perihal').val();
const diteruskan_kepada = $('#diteruskan_kepada').val();
const respon = $('#respon').val();
const file_surat = document.getElementById('file_surat').files[0]
const catatan = $('#catatan').val();
console.log(asal_surat, no_surat, tanggal_pengiriman, tanggal_diterima, no_agenda, sifat, perihal, diteruskan_kepada, respon, file_surat, catatan)
var formData = new FormData();
formData.append('asal_surat', asal_surat);
formData.append('no_surat', no_surat);
formData.append('tanggal_pengiriman', tanggal_pengiriman);
formData.append('tanggal_diterima', tanggal_diterima);
formData.append('no_agenda', no_agenda);
formData.append('sifat', sifat ?? '');
formData.append('perihal', perihal);
formData.append('diteruskan_kepada', diteruskan_kepada ?? '');
formData.append('respon', respon ?? '');
formData.append('file_surat', file_surat);
formData.append('catatan', (catatan == '') ? '' : catatan);
formData.append('id_dinas', id_dinas);
// create swal ask before submit
swal({
title: 'Apakah Anda Yakin?',
text: "Data yang sudah diinput tidak dapat diubah kembali!",
icon: 'info',
buttons: {
cancel: {
text: "Batal",
value: null,
visible: true,
className: "btn btn-danger",
closeModal: true,
},
confirm: {
text: "Ya, Simpan",
value: true,
visible: true,
className: "btn btn-primary",
closeModal: true
}
}
}).then((result) => {
if (result) {
$.ajax({
url: server_url_api + "surat_masuk",
type: 'POST',
data: formData,
processData: false,
contentType: false,
beforeSend: function(res) {
// $('#modal_karyawan').modal('hide');
block_ui("Sedang Proses");
},
success: function(data) {
// hide modal
$('#modal_surat_masuk').modal('hide');
// console.log(data)
// destroy table
$('#table_list_surat').DataTable().destroy();
// reload table
datatables();
// close modal
toastr.success(data.message);
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
$.unblockUI();
// console.log(errorThrown)
// console.log(textStatus)
const statusCode = XMLHttpRequest.status;
const responseJSON = XMLHttpRequest.responseJSON;
console.log(statusCode);
console.log(responseJSON)
if (statusCode != 500 || statusCode != 0) {
toastr.error(responseJSON.message);
} else {
toastr.error("Jaringan atau server bermasalah, sila refresh kembali halaman");
}
}
});
}
})
}
async function check_info(id) {
// console.log(id)
let data;
try {
data = await $.ajax({
url: server_url_api + "surat_masuk?id_surat=" + id + "&id_dinas=" + id_dinas,
type: 'get',
async: false,
beforeSend: function(res) {
block_ui("Mengambil Data Surat Masuk");
},
});
data = data.data;
console.log(data)
$("#asal_surat").val(data.asal_surat);
$("#no_surat").val(data.no_surat);
$("#tanggal_pengiriman").val(data.tanggal_pengiriman);
$("#tanggal_diterima").val(data.tanggal_diterima);
$("#no_agenda").val(data.no_agenda);
selectElement('sifat', data.sifat);
$("#perihal").val(data.perihal);
selectElement('diteruskan_kepada', data.diteruskan_kepada);
selectElement('respon', data.respon);
$("#catatan").val(data.catatan ?? ' ');
// hide div_file_surat
$("#div_file_surat").hide();
$("#myModalLabel-1").html('Detail Surat Masuk');
// disable all input in form_input_surat
$("#form_input_surat :input").prop("disabled", true);
// show modal
$('#modal_surat_masuk').modal('show');
await $.unblockUI();
} catch (e) {
// console.log(e)
await $.unblockUI();
const statusCode = error.status;
console.log(error)
console.log(statusCode)
if (statusCode == 0 || statusCode == 500) return toastr.error("Jaringan atau server bermasalah, sila refresh kembali halaman");
const message = error.responseJSON.message
toastr.error(message);
}
}
async function lihat_surat(id) {
let data;
try {
data = await $.ajax({
url: server_url_api + "surat_masuk?id_surat=" + id + "&id_dinas=" + id_dinas,
type: 'get',
async: false,
beforeSend: function(res) {
block_ui("Mengambil Data Surat Masuk");
},
});
data = data.data;
console.log(server_url+data.fail)
const laporan = `<embed src="${server_url}${data.fail}" frameborder="1" width="100%" height="600px">`;
$("#isi_laporan").empty();
$("#isi_laporan").append(laporan);
$("#modal_pdf").modal("show");
await $.unblockUI();
} catch (e) {
// console.log(e)
await $.unblockUI();
const statusCode = error.status;
console.log(error)
console.log(statusCode)
if (statusCode == 0 || statusCode == 500) return toastr.error("Jaringan atau server bermasalah, sila refresh kembali halaman");
const message = error.responseJSON.message
toastr.error(message);
}
}
</script>
</body>
<!-- Dibuat oleh Kicap Karan. https://www.kicap-karan.com -->
</html>

View File

@ -30,4 +30,32 @@
} }
?> ?>
<script>
function logout() {
swal({
title: 'Logout?',
text: "Anda akan keluar dari sistem",
icon: 'info',
buttons: {
cancel: {
text: "Batal",
value: null,
visible: true,
className: "btn btn-danger",
closeModal: true,
},
confirm: {
text: "Ya, Logout",
value: true,
visible: true,
className: "btn btn-primary",
closeModal: true
}
}
}).then((result) => {
if (result) {
window.location.href = server_url + 'admin/logout';
}
})
}
</script>

View File

@ -3,8 +3,8 @@
<a href="<?= base_url("admin") ?>" class="logo"></i><?= $level ?></a> <a href="<?= base_url("admin") ?>" class="logo"></i><?= $level ?></a>
<button type="button" class="button-close fa fa-times js__menu_close"></button> <button type="button" class="button-close fa fa-times js__menu_close"></button>
<div class="user"> <div class="user">
<a href="#" class="avatar"><img src="<?= base_url() ?>assets/images/avatar-sm-5.jpg" alt=""><span class="status online"></span></a> <a href="#" class="avatar"><img src="<?= base_url() ?>assets/images/avatar-sm-5.jpg" alt=""></a>
<h5 class="name"><a href="3"><?= $nama ?></a></h5> <h5 class="name"><a href="<?= base_url("admin/admin_detail") ?>"><?= $nama ?></a></h5>
<h5 class="position"><?= $level ?></h5> <h5 class="position"><?= $level ?></h5>
<!-- /.name --> <!-- /.name -->
@ -33,14 +33,17 @@
<li <?php if($header == "Halaman Pengaturan Lokasi Dinas"){echo 'class="current"';} ?>> <li <?php if($header == "Halaman Pengaturan Lokasi Dinas"){echo 'class="current"';} ?>>
<a class="waves-effect" href="<?= base_url("admin/pengaturan") ?>"><i class="menu-icon mdi mdi-desktop-mac"></i><span>Pengaturan Lokasi Dinas</span></a> <a class="waves-effect" href="<?= base_url("admin/pengaturan") ?>"><i class="menu-icon mdi mdi-desktop-mac"></i><span>Pengaturan Lokasi Dinas</span></a>
</li> </li>
<li <?php if($header == "Halaman Karyawan"){echo 'class="current"';} ?>> <li <?php if($header == "Halaman Pegawai"){echo 'class="current"';} ?>>
<a class="waves-effect" href="<?= base_url("admin/karyawan") ?>"><i class="menu-icon zmdi zmdi-accounts-alt"></i><span>Halaman Karyawan</span></a> <a class="waves-effect" href="<?= base_url("admin/karyawan") ?>"><i class="menu-icon zmdi zmdi-accounts-alt"></i><span>Halaman Pegawai</span></a>
</li>
<li <?php if($header == "Halaman Surat Masuk"){echo 'class="current"';} ?>>
<a class="waves-effect" href="<?= base_url("admin/surat_masuk") ?>"><i class="menu-icon mdi mdi-email"></i><span>Halaman Surat Masuk</span></a>
</li> </li>
<li <?php if($header == "Halaman Laporan"){echo 'class="current"';} ?>> <li <?php if($header == "Halaman Laporan"){echo 'class="current"';} ?>>
<a class="waves-effect" href="<?= base_url("admin/laporan") ?>"><i class="menu-icon zmdi zmdi-comment-list"></i><span>Halaman Laporan</span></a> <a class="waves-effect" href="<?= base_url("admin/laporan") ?>"><i class="menu-icon zmdi zmdi-comment-list"></i><span>Halaman Laporan</span></a>
</li> </li>
<li > <li >
<a class="waves-effect" href="<?= base_url("admin/logout") ?>"><i class="menu-icon mdi mdi-logout"></i><span>Logout</span></a> <a class="waves-effect" href="#" onclick="logout()"><i class="menu-icon mdi mdi-logout"></i><span>Logout</span></a>
</li> </li>
</ul> </ul>
<!-- /.menu js__accordion --> <!-- /.menu js__accordion -->
@ -61,7 +64,7 @@
<!-- /.pull-left --> <!-- /.pull-left -->
<div class="pull-right"> <div class="pull-right">
<a href="#" class="ico-item mdi mdi-logout"></a> <a href="#" class="ico-item mdi mdi-logout" onclick="logout()"></a>
</div> </div>
<!-- /.pull-right --> <!-- /.pull-right -->
</div> </div>

View File

@ -9,7 +9,7 @@
<meta name="description" content=""> <meta name="description" content="">
<meta name="author" content=""> <meta name="author" content="">
<title>Sistem Kedisiplinan Dinas Pariwisata Dan Kebudayaan Kabupaten Mamuju Tengah - Halaman Login</title> <title>Sistem Kedisiplinan Dinas Pariwisata Kepemudaan Dan Olahraga Kabupaten Mamuju Tengah - Halaman Login</title>
<link rel="stylesheet" href="<?= base_url() ?>assets/styles/style.min.css"> <link rel="stylesheet" href="<?= base_url() ?>assets/styles/style.min.css">
<link rel="apple-touch-icon" sizes="57x57" href="<?= base_url() ?>assets<?= base_url() ?>assets/images/favico/apple-icon-57x57.png"> <link rel="apple-touch-icon" sizes="57x57" href="<?= base_url() ?>assets<?= base_url() ?>assets/images/favico/apple-icon-57x57.png">

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 148 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 196 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 MiB

View File

@ -1,10 +1,10 @@
// get the http url // get the http url
var url = window.location.href; // var url = window.location.href;
// console.log(url) // // console.log(url)
var server_url = url; // var server_url = url;
var server_url_api = server_url + "api/"; // var server_url_api = server_url + "api/";
// var server_url = "http://192.168.218.237/absensi_server/"; var server_url = "http://localhost/absensi_server/";
// var server_url_api = "http://192.168.218.237/absensi_server/api/"; var server_url_api = "http://localhost/absensi_server/api/";
const delay = ms => new Promise(res => setTimeout(res, ms)); const delay = ms => new Promise(res => setTimeout(res, ms));
@ -85,8 +85,46 @@ function check_file(file) {
} }
} }
function check_file_surat(file) {
//create let variable file_name = file.name , file_size = file.size
let file_name = file.name
let file_size = file.size
//create if file_size > 1000000 then alert("File size is too big") else if file_name.length > 50 then alert("File name is too long") else return true
// if (file_size > 1500000) {
// toastr.error("Maksimal ukuran file adalah 1.5 MB")
// //input id=foto = null
// document.getElementById('foto').value = null
// document.getElementById('foto').focus()
// return false
// }
// else if filename != .jpg .png then toast("File type is not allowed")
if (file_name.substr(file_name.length - 4) != ".pdf" ) {
toastr.error("File harus berformat PDF")
document.getElementById('file_surat').value = null
document.getElementById('file_surat').focus()
return false
}
else {
return true
}
}
function selectElement(id, valueToSelect) { function selectElement(id, valueToSelect) {
let element = document.getElementById(id); let element = document.getElementById(id);
element.value = valueToSelect; element.value = valueToSelect;
}
function myFunction(a) {
var x = $("#"+a);
var xx = document.getElementById(a);
if (xx.style.display === "none") {
x.slideToggle();
} else {
x.slideToggle();
}
} }

Binary file not shown.

View File

@ -0,0 +1,541 @@
-- phpMyAdmin SQL Dump
-- version 5.0.4
-- https://www.phpmyadmin.net/
--
-- Host: 127.0.0.1
-- Generation Time: Nov 19, 2022 at 02:40 PM
-- Server version: 10.4.17-MariaDB
-- PHP Version: 7.4.15
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
START TRANSACTION;
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
--
-- Database: `absensi_karyawan`
--
-- --------------------------------------------------------
--
-- Table structure for table `tb_absensi_karyawan`
--
CREATE TABLE `tb_absensi_karyawan` (
`no` int(5) NOT NULL,
`nik` varchar(16) DEFAULT NULL,
`id_dinas` int(3) DEFAULT NULL,
`tanggal` date NOT NULL,
`jam_masuk` time DEFAULT NULL,
`jam_istirehat` time DEFAULT NULL,
`jam_masuk_kembali` time DEFAULT NULL,
`jam_pulang` time DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
--
-- Dumping data for table `tb_absensi_karyawan`
--
INSERT INTO `tb_absensi_karyawan` (`no`, `nik`, `id_dinas`, `tanggal`, `jam_masuk`, `jam_istirehat`, `jam_masuk_kembali`, `jam_pulang`) VALUES
(8, '1234567890123456', 1, '2022-09-21', '06:57:50', NULL, NULL, NULL),
(9, '1234567890123455', 1, '2022-09-21', '09:34:03', '09:46:52', NULL, NULL),
(10, '1234567890123456', 1, '2022-09-27', '09:15:04', '09:58:07', '09:58:45', '09:58:52');
-- --------------------------------------------------------
--
-- Table structure for table `tb_admin`
--
CREATE TABLE `tb_admin` (
`nik` varchar(16) NOT NULL,
`nama` varchar(100) NOT NULL,
`level` varchar(10) NOT NULL,
`id_dinas` int(3) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
--
-- Dumping data for table `tb_admin`
--
INSERT INTO `tb_admin` (`nik`, `nama`, `level`, `id_dinas`) VALUES
('1234567890123456', 'Admin', 'Admin', 1);
-- --------------------------------------------------------
--
-- Table structure for table `tb_dinas`
--
CREATE TABLE `tb_dinas` (
`id_dinas` int(3) NOT NULL,
`dinas` varchar(100) NOT NULL,
`lat` varchar(100) NOT NULL,
`lng` varchar(100) NOT NULL,
`radius` int(2) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
--
-- Dumping data for table `tb_dinas`
--
INSERT INTO `tb_dinas` (`id_dinas`, `dinas`, `lat`, `lng`, `radius`) VALUES
(1, 'Dinas Pariwisata Kepemudaan dan Olahraga Kabupaten Mamuju Tengah', '-3.9887240011073284', '119.65215215', 100);
-- --------------------------------------------------------
--
-- Table structure for table `tb_informasi_libur`
--
CREATE TABLE `tb_informasi_libur` (
`id_informasi_libur` int(5) NOT NULL,
`id_libur` int(5) NOT NULL,
`nik` varchar(16) DEFAULT NULL,
`tanggal` date NOT NULL,
`ket` text NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- --------------------------------------------------------
--
-- Table structure for table `tb_informasi_perjalanan_dinas`
--
CREATE TABLE `tb_informasi_perjalanan_dinas` (
`id_informasi_perjalanan_dinas` int(5) NOT NULL,
`id_perjalanan_dinas` int(5) NOT NULL,
`nik` varchar(16) DEFAULT NULL,
`tanggal` date NOT NULL,
`ket` text NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
--
-- Dumping data for table `tb_informasi_perjalanan_dinas`
--
INSERT INTO `tb_informasi_perjalanan_dinas` (`id_informasi_perjalanan_dinas`, `id_perjalanan_dinas`, `nik`, `tanggal`, `ket`) VALUES
(14, 6, '1234567890123444', '2022-09-21', 'Sini perjalanan dinas (2022-09-21 - 2022-09-22)'),
(15, 6, '1234567890123444', '2022-09-22', 'Sini perjalanan dinas (2022-09-21 - 2022-09-22)');
-- --------------------------------------------------------
--
-- Table structure for table `tb_karyawan`
--
CREATE TABLE `tb_karyawan` (
`nik` varchar(16) NOT NULL,
`nama` varchar(100) NOT NULL,
`no_telpon` varchar(13) DEFAULT NULL,
`jabatan` varchar(100) NOT NULL,
`pangkat` varchar(15) DEFAULT NULL,
`status` text DEFAULT NULL,
`alamat` text DEFAULT NULL,
`tanggal_lahir` date DEFAULT NULL,
`id_dinas` int(3) NOT NULL,
`device_id` varchar(100) DEFAULT NULL,
`image` varchar(150) NOT NULL,
`created_at` datetime NOT NULL DEFAULT current_timestamp(),
`updated_at` datetime NOT NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
--
-- Dumping data for table `tb_karyawan`
--
INSERT INTO `tb_karyawan` (`nik`, `nama`, `no_telpon`, `jabatan`, `pangkat`, `status`, `alamat`, `tanggal_lahir`, `id_dinas`, `device_id`, `image`, `created_at`, `updated_at`) VALUES
('1234567890123444', 'bobo', '0865465465466', 'Bendahara', 'IV D', 'PNS', 'sadsad', '1992-08-30', 1, NULL, 'assets/images/foto_karyawan/1234567890123444/1-brjYnVlXwM3j_SWXImT0Rg.png', '2022-09-19 00:09:54', '2022-09-19 00:09:54'),
('1234567890123454', 'Ilham', '082293246583', 'Seketaris Dinas', 'Tiada', 'Kontrak', 'asdasd', '1889-09-13', 1, NULL, 'assets/images/foto_karyawan/1234567890123454/1111..jpg', '2022-09-15 04:09:10', '2022-09-15 04:09:10'),
('1234567890123455', 'Karan', '0895806674850', 'Seketaris Dinas', 'Tiada', 'Kontrak', 'Jln Apas, Tawau, Sabah', '1889-09-13', 1, 'e98719ce0a6494ce', 'assets/images/foto_karyawan/1234567890123455/11073968_844405842264361_5190470711960847490_n.jpg', '2022-09-09 02:42:26', '2022-09-09 02:54:41'),
('1234567890123456', 'Aran', '082293246583', 'Kepala Dinas', 'Tiada', 'Kontrak', 'Jln Industri Kecil, Soreang, Parepare', '1889-09-13', 1, '6311cf2717ea3025', 'assets/images/foto_karyawan/1234567890123456/6564e6d48892e6ba325bda1ec27189c9b4b3b473_hq.jpg', '2022-09-07 02:47:55', '2022-09-10 02:14:11');
-- --------------------------------------------------------
--
-- Table structure for table `tb_kordinat_karyawan`
--
CREATE TABLE `tb_kordinat_karyawan` (
`nik` varchar(16) NOT NULL,
`lat` varchar(20) NOT NULL,
`lng` varchar(20) NOT NULL,
`updated_at` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
--
-- Dumping data for table `tb_kordinat_karyawan`
--
INSERT INTO `tb_kordinat_karyawan` (`nik`, `lat`, `lng`, `updated_at`) VALUES
('1234567890123455', '-3.9889786', '119.6518278', '2022-09-21 09:34:43'),
('1234567890123456', '-3.9889742', '119.6518331', '2022-09-27 09:53:48');
-- --------------------------------------------------------
--
-- Table structure for table `tb_laporan_karyawan`
--
CREATE TABLE `tb_laporan_karyawan` (
`no_laporan` int(4) NOT NULL,
`nik` varchar(16) NOT NULL,
`image` varchar(150) DEFAULT NULL,
`nama_laporan` varchar(100) NOT NULL,
`ket_laporan` text NOT NULL,
`created_at` datetime NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
--
-- Dumping data for table `tb_laporan_karyawan`
--
INSERT INTO `tb_laporan_karyawan` (`no_laporan`, `nik`, `image`, `nama_laporan`, `ket_laporan`, `created_at`) VALUES
(245, '1234567890123456', NULL, 'Laporan 1', 'Keterangan Laporan 1', '2022-09-27 09:25:44'),
(246, '1234567890123456', 'assets/images/karyawan/246/f6be222d-8464-4794-af5e-c2c0261d58695207727213075815442.jpg', 'Laporan 2', 'Laporan 2', '2022-09-27 09:30:14');
-- --------------------------------------------------------
--
-- Table structure for table `tb_libur`
--
CREATE TABLE `tb_libur` (
`id_libur` int(5) NOT NULL,
`id_dinas` int(3) NOT NULL,
`list_karyawan` mediumtext NOT NULL,
`range_tanggal` mediumtext NOT NULL,
`ket` text NOT NULL,
`created_at` date NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- --------------------------------------------------------
--
-- Table structure for table `tb_login_admin`
--
CREATE TABLE `tb_login_admin` (
`no` int(4) NOT NULL,
`username` varchar(200) NOT NULL,
`password` varchar(200) NOT NULL,
`nik` varchar(16) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
--
-- Dumping data for table `tb_login_admin`
--
INSERT INTO `tb_login_admin` (`no`, `username`, `password`, `nik`) VALUES
(1, 'admin', '21232f297a57a5a743894a0e4a801fc3', '1234567890123456');
-- --------------------------------------------------------
--
-- Table structure for table `tb_login_user`
--
CREATE TABLE `tb_login_user` (
`no` int(3) NOT NULL,
`username` varchar(100) NOT NULL,
`password` varchar(100) NOT NULL,
`nik` varchar(16) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
--
-- Dumping data for table `tb_login_user`
--
INSERT INTO `tb_login_user` (`no`, `username`, `password`, `nik`) VALUES
(3, '1234567890123456', '25d55ad283aa400af464c76d713c07ad', '1234567890123456'),
(4, '1234567890123455', '25d55ad283aa400af464c76d713c07ad', '1234567890123455'),
(5, '1234567890123454', '25d55ad283aa400af464c76d713c07ad', '1234567890123454'),
(9, '1234567890123444', '25d55ad283aa400af464c76d713c07ad', '1234567890123444');
-- --------------------------------------------------------
--
-- Table structure for table `tb_pengaturan_jam_kerja_harian`
--
CREATE TABLE `tb_pengaturan_jam_kerja_harian` (
`no` int(2) NOT NULL,
`id_dinas` int(11) DEFAULT NULL,
`hari` varchar(10) NOT NULL,
`jam_masuk` time DEFAULT NULL,
`jam_istirehat` time DEFAULT NULL,
`jam_masuk_kembali` time DEFAULT NULL,
`jam_pulang` time DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
--
-- Dumping data for table `tb_pengaturan_jam_kerja_harian`
--
INSERT INTO `tb_pengaturan_jam_kerja_harian` (`no`, `id_dinas`, `hari`, `jam_masuk`, `jam_istirehat`, `jam_masuk_kembali`, `jam_pulang`) VALUES
(1, 1, 'senin', '07:10:00', '12:00:00', '13:00:00', '16:00:00'),
(2, 1, 'selasa', '08:00:00', '12:00:00', '13:00:00', '16:00:00'),
(3, 1, 'rabu', '08:00:00', '12:00:00', '13:00:00', '16:00:00'),
(4, 1, 'jumat', '01:00:00', '05:00:00', '12:00:00', '16:00:00'),
(5, 1, 'kamis', '08:00:00', '12:00:00', '13:00:00', '16:00:00');
-- --------------------------------------------------------
--
-- Table structure for table `tb_perjalanan_dinas`
--
CREATE TABLE `tb_perjalanan_dinas` (
`id_perjalanan_dinas` int(5) NOT NULL,
`id_dinas` int(3) NOT NULL,
`list_karyawan` mediumtext NOT NULL,
`range_tanggal` mediumtext NOT NULL,
`ket` text NOT NULL,
`created_at` date NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
--
-- Dumping data for table `tb_perjalanan_dinas`
--
INSERT INTO `tb_perjalanan_dinas` (`id_perjalanan_dinas`, `id_dinas`, `list_karyawan`, `range_tanggal`, `ket`, `created_at`) VALUES
(6, 1, '[\"1234567890123444\"]', '2022-09-21 - 2022-09-22', 'Sini perjalanan dinas (2022-09-21 - 2022-09-22)', '2022-09-21');
--
-- Indexes for dumped tables
--
--
-- Indexes for table `tb_absensi_karyawan`
--
ALTER TABLE `tb_absensi_karyawan`
ADD PRIMARY KEY (`no`),
ADD KEY `id_dinas` (`id_dinas`),
ADD KEY `nik` (`nik`);
--
-- Indexes for table `tb_admin`
--
ALTER TABLE `tb_admin`
ADD PRIMARY KEY (`nik`),
ADD KEY `id_dinas` (`id_dinas`);
--
-- Indexes for table `tb_dinas`
--
ALTER TABLE `tb_dinas`
ADD PRIMARY KEY (`id_dinas`);
--
-- Indexes for table `tb_informasi_libur`
--
ALTER TABLE `tb_informasi_libur`
ADD PRIMARY KEY (`id_informasi_libur`),
ADD KEY `id_libur` (`id_libur`),
ADD KEY `karyawan` (`nik`);
--
-- Indexes for table `tb_informasi_perjalanan_dinas`
--
ALTER TABLE `tb_informasi_perjalanan_dinas`
ADD PRIMARY KEY (`id_informasi_perjalanan_dinas`),
ADD KEY `id_libur` (`id_perjalanan_dinas`),
ADD KEY `karyawan` (`nik`);
--
-- Indexes for table `tb_karyawan`
--
ALTER TABLE `tb_karyawan`
ADD PRIMARY KEY (`nik`),
ADD KEY `id_dinas` (`id_dinas`);
--
-- Indexes for table `tb_kordinat_karyawan`
--
ALTER TABLE `tb_kordinat_karyawan`
ADD PRIMARY KEY (`nik`),
ADD KEY `nik` (`nik`);
--
-- Indexes for table `tb_laporan_karyawan`
--
ALTER TABLE `tb_laporan_karyawan`
ADD PRIMARY KEY (`no_laporan`),
ADD KEY `nik` (`nik`);
--
-- Indexes for table `tb_libur`
--
ALTER TABLE `tb_libur`
ADD PRIMARY KEY (`id_libur`),
ADD KEY `id_dinas` (`id_dinas`);
--
-- Indexes for table `tb_login_admin`
--
ALTER TABLE `tb_login_admin`
ADD PRIMARY KEY (`no`),
ADD KEY `nik` (`nik`);
--
-- Indexes for table `tb_login_user`
--
ALTER TABLE `tb_login_user`
ADD PRIMARY KEY (`no`),
ADD KEY `nik_karyawan` (`nik`);
--
-- Indexes for table `tb_pengaturan_jam_kerja_harian`
--
ALTER TABLE `tb_pengaturan_jam_kerja_harian`
ADD PRIMARY KEY (`no`),
ADD KEY `id_dinas` (`id_dinas`);
--
-- Indexes for table `tb_perjalanan_dinas`
--
ALTER TABLE `tb_perjalanan_dinas`
ADD PRIMARY KEY (`id_perjalanan_dinas`),
ADD KEY `id_dinas` (`id_dinas`);
--
-- AUTO_INCREMENT for dumped tables
--
--
-- AUTO_INCREMENT for table `tb_absensi_karyawan`
--
ALTER TABLE `tb_absensi_karyawan`
MODIFY `no` int(5) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=11;
--
-- AUTO_INCREMENT for table `tb_dinas`
--
ALTER TABLE `tb_dinas`
MODIFY `id_dinas` int(3) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;
--
-- AUTO_INCREMENT for table `tb_informasi_libur`
--
ALTER TABLE `tb_informasi_libur`
MODIFY `id_informasi_libur` int(5) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=81;
--
-- AUTO_INCREMENT for table `tb_informasi_perjalanan_dinas`
--
ALTER TABLE `tb_informasi_perjalanan_dinas`
MODIFY `id_informasi_perjalanan_dinas` int(5) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=16;
--
-- AUTO_INCREMENT for table `tb_laporan_karyawan`
--
ALTER TABLE `tb_laporan_karyawan`
MODIFY `no_laporan` int(4) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=247;
--
-- AUTO_INCREMENT for table `tb_libur`
--
ALTER TABLE `tb_libur`
MODIFY `id_libur` int(5) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=7;
--
-- AUTO_INCREMENT for table `tb_login_admin`
--
ALTER TABLE `tb_login_admin`
MODIFY `no` int(4) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;
--
-- AUTO_INCREMENT for table `tb_login_user`
--
ALTER TABLE `tb_login_user`
MODIFY `no` int(3) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=10;
--
-- AUTO_INCREMENT for table `tb_pengaturan_jam_kerja_harian`
--
ALTER TABLE `tb_pengaturan_jam_kerja_harian`
MODIFY `no` int(2) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=6;
--
-- AUTO_INCREMENT for table `tb_perjalanan_dinas`
--
ALTER TABLE `tb_perjalanan_dinas`
MODIFY `id_perjalanan_dinas` int(5) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=7;
--
-- Constraints for dumped tables
--
--
-- Constraints for table `tb_absensi_karyawan`
--
ALTER TABLE `tb_absensi_karyawan`
ADD CONSTRAINT `tb_absensi_karyawan_ibfk_1` FOREIGN KEY (`nik`) REFERENCES `tb_karyawan` (`nik`) ON DELETE NO ACTION ON UPDATE CASCADE,
ADD CONSTRAINT `tb_absensi_karyawan_ibfk_2` FOREIGN KEY (`id_dinas`) REFERENCES `tb_dinas` (`id_dinas`) ON DELETE NO ACTION ON UPDATE CASCADE;
--
-- Constraints for table `tb_admin`
--
ALTER TABLE `tb_admin`
ADD CONSTRAINT `tb_admin_ibfk_1` FOREIGN KEY (`id_dinas`) REFERENCES `tb_dinas` (`id_dinas`) ON DELETE CASCADE ON UPDATE CASCADE;
--
-- Constraints for table `tb_informasi_libur`
--
ALTER TABLE `tb_informasi_libur`
ADD CONSTRAINT `tb_informasi_libur_ibfk_1` FOREIGN KEY (`id_libur`) REFERENCES `tb_libur` (`id_libur`) ON DELETE CASCADE ON UPDATE CASCADE,
ADD CONSTRAINT `tb_informasi_libur_ibfk_2` FOREIGN KEY (`nik`) REFERENCES `tb_karyawan` (`nik`) ON DELETE CASCADE ON UPDATE CASCADE;
--
-- Constraints for table `tb_informasi_perjalanan_dinas`
--
ALTER TABLE `tb_informasi_perjalanan_dinas`
ADD CONSTRAINT `tb_informasi_perjalanan_dinas_ibfk_1` FOREIGN KEY (`id_perjalanan_dinas`) REFERENCES `tb_perjalanan_dinas` (`id_perjalanan_dinas`) ON DELETE CASCADE ON UPDATE CASCADE,
ADD CONSTRAINT `tb_informasi_perjalanan_dinas_ibfk_2` FOREIGN KEY (`nik`) REFERENCES `tb_karyawan` (`nik`) ON DELETE CASCADE ON UPDATE CASCADE;
--
-- Constraints for table `tb_karyawan`
--
ALTER TABLE `tb_karyawan`
ADD CONSTRAINT `tb_karyawan_ibfk_1` FOREIGN KEY (`id_dinas`) REFERENCES `tb_dinas` (`id_dinas`) ON DELETE CASCADE ON UPDATE CASCADE;
--
-- Constraints for table `tb_kordinat_karyawan`
--
ALTER TABLE `tb_kordinat_karyawan`
ADD CONSTRAINT `tb_kordinat_karyawan_ibfk_1` FOREIGN KEY (`nik`) REFERENCES `tb_karyawan` (`nik`) ON DELETE CASCADE ON UPDATE CASCADE;
--
-- Constraints for table `tb_laporan_karyawan`
--
ALTER TABLE `tb_laporan_karyawan`
ADD CONSTRAINT `tb_laporan_karyawan_ibfk_1` FOREIGN KEY (`nik`) REFERENCES `tb_karyawan` (`nik`) ON DELETE NO ACTION ON UPDATE CASCADE;
--
-- Constraints for table `tb_login_admin`
--
ALTER TABLE `tb_login_admin`
ADD CONSTRAINT `tb_login_admin_ibfk_1` FOREIGN KEY (`nik`) REFERENCES `tb_admin` (`nik`) ON DELETE CASCADE ON UPDATE CASCADE;
--
-- Constraints for table `tb_login_user`
--
ALTER TABLE `tb_login_user`
ADD CONSTRAINT `tb_login_user_ibfk_1` FOREIGN KEY (`nik`) REFERENCES `tb_karyawan` (`nik`) ON DELETE CASCADE ON UPDATE CASCADE;
--
-- Constraints for table `tb_pengaturan_jam_kerja_harian`
--
ALTER TABLE `tb_pengaturan_jam_kerja_harian`
ADD CONSTRAINT `tb_pengaturan_jam_kerja_harian_ibfk_1` FOREIGN KEY (`id_dinas`) REFERENCES `tb_dinas` (`id_dinas`) ON DELETE CASCADE ON UPDATE NO ACTION;
COMMIT;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

Binary file not shown.

Binary file not shown.