first commit

This commit is contained in:
Kicap Karan
2022-10-29 04:16:53 +08:00
parent 369e9b7829
commit 522ee5201d
18 changed files with 1411 additions and 3272 deletions

View File

@ -16,24 +16,24 @@ class Admin extends CI_Controller
$this->session->unset_userdata(array('nik', 'level'));
redirect('/login');
} else {
$cek_data = $this->model->tampil_data_where('tb_admin', array('nik' => $this->session->userdata('nik')))->result();
// $cek_data = $this->model->tampil_data_where('tb_admin', array('nik' => $this->session->userdata('nik')))->result();
if (count($cek_data) > 0) {
# code...
$this->main['level'] = $cek_data[0]->level;
$this->main["nama"] = $cek_data[0]->nama;
$cek_data_dinas = $this->model->tampil_data_where('tb_dinas', ['id_dinas' => $cek_data[0]->id_dinas])->result()[0];
$this->main["id_dinas"] = $cek_data_dinas->id_dinas;
$this->main["dinas"] = $cek_data_dinas->dinas;
$this->main['lat'] = $cek_data_dinas->lat;
$this->main['lng'] = $cek_data_dinas->lng;
$this->main['radius'] = $cek_data_dinas->radius;
$this->month = date("m");
$this->year = date("Y");
} else {
$this->session->unset_userdata(array('nik', 'level'));
redirect('/login');
}
// if (count($cek_data) > 0) {
// # code...
// $this->main['level'] = $cek_data[0]->level;
// $this->main["nama"] = $cek_data[0]->nama;
// $cek_data_dinas = $this->model->tampil_data_where('tb_dinas', ['id_dinas' => $cek_data[0]->id_dinas])->result()[0];
// $this->main["id_dinas"] = $cek_data_dinas->id_dinas;
// $this->main["dinas"] = $cek_data_dinas->dinas;
// $this->main['lat'] = $cek_data_dinas->lat;
// $this->main['lng'] = $cek_data_dinas->lng;
// $this->main['radius'] = $cek_data_dinas->radius;
// $this->month = date("m");
// $this->year = date("Y");
// } else {
// $this->session->unset_userdata(array('nik', 'level'));
// redirect('/login');
// }
}
}
@ -41,322 +41,101 @@ class Admin extends CI_Controller
function index()
{
$main = $this->main;
$main["header"] = "Halaman Utama";
$main['list_karyawan'] = $this->model->tampil_data_where('tb_karyawan', ['id_dinas' => $main['id_dinas']])->result();
$array = $main['list_karyawan'];
$today = date("Y-m-d");
foreach ($array as $key => $value) {
$main['list_karyawan'][$key]->status_kerja = '-';
$check_libur = $this->model->tampil_data_where('tb_informasi_libur', ['nik' => $value->nik, 'tanggal' => $today])->result();
if (count($check_libur) > 0) {
$main['list_karyawan'][$key]->status_kerja = 'Libur';
}
$check_perjalanan_dinas = $this->model->tampil_data_where('tb_informasi_perjalanan_dinas', ['nik' => $value->nik, 'tanggal' => $today])->result();
if (count($check_perjalanan_dinas) > 0) {
$main['list_karyawan'][$key]->status_kerja = 'Perjalanan Dinas';
}
}
// echo $this->level;
$this->load->view('admin/menu/index', $main);
// $this->load->view('admin/index');
// echo "sini index admin";
}
function pengaturan()
{
$main = $this->main;
$main["header"] = "Halaman Pengaturan Lokasi Dinas";
// echo $this->level;
$this->load->view('admin/menu/pengaturan', $main);
// $this->load->view('admin/index');
// echo "sini index admin";
}
function karyawan()
{
if ($this->input->post('proses') == "table_karyawan") {
$list = $this->m_tabel_ss->get_datatables(array('nik', 'nama', 'no_telpon', 'jabatan', 'pangkat'), array(null, 'nik', 'nama', 'no_telpon', 'jabatan', 'pangkat', null), array('status' => 'desc'), "tb_karyawan", null, array("id_dinas" => $this->main['id_dinas']), "*");
if ($this->input->post('proses') == "table_penduduk") {
$list = $this->m_tabel_ss->get_datatables(array('nik', 'nama', 'no_hp', 'jenis_kelamin'), array('nik', 'nama', null, 'jenis_kelamin', null), array('status' => 'desc'), "tb_penduduk", null, null, "*");
$data = array();
$no = $_POST['start'];
foreach ($list as $field) {
$stat = '';
$title = 'Tukar ID Smartphone';
if ($field->device_id == null || $field->device_id == '') {
$stat = 'disabled';
$title = 'Karyawan Belum Login Dari Smartphone';
}
// get umur
$date1 = new DateTime($field->tgl_lahir);
$date2 = new DateTime("now");
$interval = $date1->diff($date2);
$umur = $interval->y;
$no++;
$row = array();
$row[] = $no;
// $row[] = $no;
$row[] = $field->nik;
$row[] = $field->nama;
$row[] = $field->no_telpon;
$row[] = $field->jabatan;
$row[] = $field->pangkat;
$row[] = "<center><button type='button' onclick='karyawan_edit(" . '"' . (string)$field->nik . '"' . ")' title='Edit Detail Karyawan' class='btn btn-primary btn-circle btn-sm waves-effect waves-light'><i class='ico fa fa-edit'></i></button> &nbsp <button type='button' onclick='tukar_id(" . '"' . (string)$field->nik . '"' . ")' title='" . $title . "' " . $stat . " class='btn btn-warning btn-circle btn-sm waves-effect waves-light'><i class='ico zmdi zmdi-smartphone-landscape-lock'></i></button> &nbsp <button type='button' onclick='hapus_karyawan(" . '"' . (string)$field->nik . '"' . ")' title='Hapus Karyawan' class='btn btn-danger btn-circle btn-sm waves-effect waves-light'><i class='ico zmdi zmdi-delete'></i></button></center>";
$row[] = $umur;
$row[] = $field->no_hp;
$row[] = $field->jenis_kelamin;
$row[] = "<center><button type='button' onclick='edit_penduduk(" . '"' . (string)$field->nik . '"' . ")' title='Edit Detail Penduduk' class='btn btn-primary btn-circle btn-sm waves-effect waves-light'><i class='ico fa fa-edit'></i></button> &nbsp <button type='button' onclick='hapus_penduduk(" . '"' . (string)$field->nik . '"' . ")' title='Hapus Penduduk' class='btn btn-danger btn-circle btn-sm waves-effect waves-light'><i class='ico zmdi zmdi-delete'></i></button></center>";
$data[] = $row;
}
$output = array(
"draw" => $_POST['draw'],
"recordsTotal" => $this->m_tabel_ss->count_all("tb_karyawan", null, array("id_dinas" => $this->main['id_dinas']), "*"),
"recordsFiltered" => $this->m_tabel_ss->count_filtered(array('nik', 'nama', 'no_telpon', 'jabatan', 'pangkat'), array(null, 'nik', 'nama', 'no_telpon', 'jabatan', 'pangkat', null), array('status' => 'desc'), "tb_karyawan", null, array("id_dinas" => $this->main['id_dinas']), "*"),
"recordsTotal" => $this->m_tabel_ss->count_all("tb_penduduk", null, null, "*"),
"recordsFiltered" => $this->m_tabel_ss->count_filtered(array('nik', 'nama', 'no_hp', 'jenis_kelamin'), array('nik', 'nama', null, 'jenis_kelamin', null), array('status' => 'desc'), "tb_penduduk", null, null, "*"),
"data" => $data,
);
//output dalam format JSON
echo json_encode($output);
} else {
$main = $this->main;
$main["header"] = "Halaman Karyawan";
$this->load->view('admin/menu/karyawan', $main);
$main["header"] = "Halaman Utama";
$this->load->view('admin/menu/index', $main);
}
}
function jam_kerja()
function topsis($nik = null)
{
$main = $this->main;
$main["header"] = "Halaman Jam Kerja";
// echo $this->level;
$this->load->view('admin/menu/jam_kerja', $main);
}
function libur()
{
if ($this->input->post('proses') == "table_libur") {
$list = $this->m_tabel_ss->get_datatables(array('range_tanggal', 'created_at'), array(null, 'range_tanggal', null, 'created_at', null), array('id_libur' => 'desc'), "tb_libur", null, array("id_dinas" => $this->main['id_dinas']), "*");
if ($this->input->post('proses') == "table_penduduk") {
$list = $this->m_tabel_ss->get_datatables(array('nik', 'nama'), array('nik', 'nama', null, null), array('status' => 'desc'), "tb_penduduk", null, null, "*");
$data = array();
$no = $_POST['start'];
foreach ($list as $field) {
$list_karyawan = json_decode($field->list_karyawan);
$cek_data_bantuan = $this->model->tampil_data_where('tb_detail', array('nik' => $field->nik))->result();
$value_karyawan = '';
foreach ($list_karyawan as $key => $value) {
$check_karyawan = $this->model->tampil_data_where('tb_karyawan', ['nik' => $value])->result();
$value_karyawan .= " " . $check_karyawan[0]->nama . ' ,';
if (count($cek_data_bantuan) > 0) {
$status = $cek_data_bantuan[0]->status == '' ? 'Belum Diverifikasi' : $cek_data_bantuan[0]->status;
} else {
$status = "Data Belum Dimasukkan";
}
$value_karyawan = rtrim($value_karyawan, ",");
$no++;
$row = array();
$row[] = $no;
$row[] = $field->range_tanggal;
$row[] = $value_karyawan;
$row[] = $field->created_at;
$row[] = "<center><button type='button' onclick='check_info(" . '"' . (string)$field->id_libur . '"' . ")' title='Check Informasi Libur' class='btn btn-primary btn-circle btn-sm waves-effect waves-light'><i class='ico zmdi zmdi-info-outline'></i></button></center>";
// $row[] = $no;
$row[] = $field->nik;
$row[] = $field->nama;
$row[] = $status;
$row[] = "<center><button type='button' onclick='status_bantuan(" . '"' . (string)$field->nik . '"' . ")' title='Lihat Status Bantuan Sosial' class='btn btn-primary btn-circle btn-sm waves-effect waves-light'><i class='ico fa fa-edit'></i></button></center>";
$data[] = $row;
}
$output = array(
"draw" => $_POST['draw'],
"recordsTotal" => $this->m_tabel_ss->count_all("tb_libur", null, array("id_dinas" => $this->main['id_dinas']), "*"),
"recordsFiltered" => $this->m_tabel_ss->count_filtered(array('range_tanggal', 'created_at'), array(null, 'range_tanggal', null, 'created_at', null), array('id_libur' => 'desc'), "tb_libur", null, array("id_dinas" => $this->main['id_dinas']), "*"),
"recordsTotal" => $this->m_tabel_ss->count_all("tb_penduduk", null, null, "*"),
"recordsFiltered" => $this->m_tabel_ss->count_filtered(array('nik', 'nama'), array('nik', 'nama', null, null), array('status' => 'desc'), "tb_penduduk", null, null, "*"),
"data" => $data,
);
//output dalam format JSON
echo json_encode($output);
} else {
$main = $this->main;
$main["header"] = "Halaman Pengaturan Libur";
}
elseif($nik != null){
$cek_data = $this->model->tampil_data_where('tb_penduduk', array('nik' => $nik))->result();
if(count($cek_data) > 0){
// cek umur
$date1 = new DateTime($cek_data[0]->tgl_lahir);
$date2 = new DateTime("now");
$interval = $date1->diff($date2);
$main['umur'] = $interval->y;
// echo $main["header"];
$this->load->view('admin/menu/libur', $main);
}
}
function perjalanan_dinas()
{
if ($this->input->post('proses') == "table_dinas") {
$list = $this->m_tabel_ss->get_datatables(array('range_tanggal', 'created_at'), array(null, 'range_tanggal', null, 'created_at', null), array('id_perjalanan_dinas' => 'desc'), "tb_perjalanan_dinas", null, array("id_dinas" => $this->main['id_dinas']), "*");
$data = array();
$no = $_POST['start'];
foreach ($list as $field) {
$list_karyawan = json_decode($field->list_karyawan);
$value_karyawan = '';
foreach ($list_karyawan as $key => $value) {
$check_karyawan = $this->model->tampil_data_where('tb_karyawan', ['nik' => $value])->result();
$value_karyawan .= " " . $check_karyawan[0]->nama . ' ,';
}
$value_karyawan = rtrim($value_karyawan, ",");
$no++;
$row = array();
$row[] = $no;
$row[] = $field->range_tanggal;
$row[] = $value_karyawan;
$row[] = $field->created_at;
$row[] = "<center><button type='button' onclick='check_info(" . '"' . (string)$field->id_perjalanan_dinas . '"' . ")' title='Check Informasi Perjalanan Dinas' class='btn btn-primary btn-circle btn-sm waves-effect waves-light'><i class='ico zmdi zmdi-info-outline'></i></button></center>";
$data[] = $row;
$main["header"] = "Halaman Topsis";
$main["nik"] = $nik;
$main['nama'] = $cek_data[0]->nama;
$this->load->view('admin/menu/topsis_detail', $main);
} else{
redirect('/admin/topsis');
}
$output = array(
"draw" => $_POST['draw'],
"recordsTotal" => $this->m_tabel_ss->count_all("tb_perjalanan_dinas", null, array("id_dinas" => $this->main['id_dinas']), "*"),
"recordsFiltered" => $this->m_tabel_ss->count_filtered(array('range_tanggal', 'created_at'), array(null, 'range_tanggal', null, 'created_at', null), array('id_perjalanan_dinas' => 'desc'), "tb_perjalanan_dinas", null, array("id_dinas" => $this->main['id_dinas']), "*"),
"data" => $data,
);
//output dalam format JSON
echo json_encode($output);
} else {
$main = $this->main;
$main["header"] = "Halaman Pengaturan Perjalanan Dinas";
// echo $main["header"];
$this->load->view('admin/menu/perjalanan_dinas', $main);
}
}
function laporan($month = null, $year = null)
{
$main = $this->main;
$main["header"] = "Halaman Laporan";
$main["month"] = $month != null ? $month : date("m");
$main["year"] = $year != null ? $year : date("Y");
$main["first_date"] = ($main["month"] == "09" && $main["year"] == 2022) ? 21 : 1;
$main["last_date"] = date("d");
// echo $main["month"].;
// echo $main["year"] . "ini year";
// $i = 21;
// $tanggal = strlen($i) == 1 ? "0" . $i : $i;
// echo $tanggal;
$main['list_karyawan'] = $this->model->tampil_data_where(('tb_karyawan'), ['id_dinas' => $this->main['id_dinas']])->result();
// print_r($main['list_karyawan']);
$this->load->view('admin/menu/laporan', $main);
}
function coba2($month = null, $year = null)
{
$month = $month != null ? $month : date("m");
$year = $year != null ? $year : date("Y");
// echo "sini tampilkan pdf";
$this->load->library('Pdf');
$pdf = new Pdf('P', 'mm', array(210, 297));
$pdf->AddPage();
$pdf->SetFont('times', '', 12);
$html = '
<br><br><br><br>
<table width="100%">
<tr>
<td align="center" style="font-weight:bold">
<u>Daftar Hadir Pegawai</u><br>
Periode ' . $this->model->bulan($month) . ' ' . $year . '
</td>
</tr>
</table>
<style>
.ini {
border-bottom: 1px dotted black;
}
</style>
';
$first_date = ($month == "09" && $year == 2022) ? 21 : 1;
$last_date = date("d");
$check_karyawan = $this->model->tampil_data_where('tb_karyawan', ['id_dinas' => $this->main['id_dinas']])->result();
for ($i = $first_date; $i <= $last_date; $i++) {
$tanggal = strlen($i) == 1 ? "0" . $i : $i;
$html .= '
<br><br>
<table width="100%">
<tr>
<td style="font-weight:bold">Tanggal '. $tanggal . '-' . $month . '-' . $year . '</td>
</tr>
</table>
';
$html .= '
<table width="100%" border="1" class="ini" cellpadding="2" style="font-size:10px">
<tr style="font-weight:bold">
<td>NIP</td>
<td>Nama</td>
<td>Jabatan</td>
<td>Status</td>
<td>Jam Masuk</td>
<td>Jam Istirehat</td>
<td>Jam Masuk Kembali</td>
<td>Jam Pulang</td>
</tr>
';
foreach ($check_karyawan as $key => $value) {
$check_absensi = $this->model->tampil_data_where('tb_absensi_karyawan', ['nik' => $value->nik, "tanggal" => $year . "-" . $month . "-" . $tanggal])->result();
$status = '-';
$jam_masuk = "-";
$jam_istirehat = "-";
$jam_masuk_kembali = "-";
$jam_pulang = "-";
if (count($check_absensi) > 0) {
$status = 'Masuk Kerja';
$jam_masuk = $check_absensi[0]->jam_masuk;
$jam_istirehat = $check_absensi[0]->jam_istirehat ?? '-';
$jam_masuk_kembali = $check_absensi[0]->jam_masuk_kembali ?? '-';
$jam_pulang = $check_absensi[0]->jam_pulang ?? '-';
}
$check_libur = $this->model->tampil_data_where('tb_informasi_libur', ['nik' => $value->nik, "tanggal" => $year . "-" . $month . "-" . $tanggal])->result();
if (count($check_libur) > 0) {
$status = "Libur";
$idnya = $check_libur[0]->id_libur;
}
$check_perjalanan_dinas = $this->model->tampil_data_where('tb_informasi_perjalanan_dinas', ['nik' => $value->nik, "tanggal" => $year . "-" . $month . "-" . $tanggal])->result();
if (count($check_perjalanan_dinas) > 0) {
$status = "Perjalanan Dinas";
$idnya = $check_perjalanan_dinas[0]->id_perjalanan_dinas;
}
$html .= '
<tr style="font-size:8px">
<td>'.$value->nik.'</td>
<td>'.$value->nama.'</td>
<td>'.$value->jabatan.'</td>
<td>'.$status.'</td>
<td>'.$jam_masuk.'</td>
<td>'.$jam_istirehat.'</td>
<td>'.$jam_masuk_kembali.'</td>
<td>'.$jam_pulang.'</td>
</tr>
';
}
$html .= '</table>';
else {
$main["header"] = "Halaman Topsis";
$main["nik"] = $nik;
$this->load->view('admin/menu/topsis', $main);
}
$pdf->writeHTML($html, true, false, true, false, '');
$pdf->Output("laporan data pasien.pdf", 'I');
}
}

View File

@ -42,12 +42,12 @@ class Api extends RestController
$username = $this->get('username');
$password = $this->get('password');
$cek_data = $this->model->tampil_data_where('tb_login_admin', ['username' => $username, 'password' => md5($password)])->result();
// $cek_data = $this->model->tampil_data_where('tb_login_admin', ['username' => $username, 'password' => md5($password)])->result();
if (count($cek_data) > 0) {
$cek_data_admin = $this->model->tampil_data_where('tb_admin', ['nik' => $cek_data[0]->nik])->result()[0];
$cek_data_dinas = $this->model->tampil_data_where('tb_dinas', ['id_dinas' => $cek_data_admin->id_dinas])->result()[0];
$this->session->set_userdata(['nik' => $cek_data_admin->nik, "level" => $cek_data_admin->level, 'id_dinas' => $cek_data_dinas->id_dinas]);
if ($username == 'admin' && $password == 'admin') {
// $cek_data_admin = $this->model->tampil_data_where('tb_admin', ['nik' => $cek_data[0]->nik])->result()[0];
// $cek_data_dinas = $this->model->tampil_data_where('tb_dinas', ['id_dinas' => $cek_data_admin->id_dinas])->result()[0];
$this->session->set_userdata(['nik' => 'Admin', "level" => 'Admin']);
$this->response(['message' => "Sukses Login", "status" => true], 200);
} else {
$this->session->unset_userdata(array('nik', "level"));
@ -58,487 +58,389 @@ class Api extends RestController
}
public function pengaturan_lokasi_put() // pengaturan titik kordinat dinas
public function penduduk_get() // tampil data penduduk
{
if ($this->session->userdata('level') != 'Admin') return $this->response(['message' => 'Failed', 'stat' => false], 401);
$lat = $this->put('lat');
$lng = $this->put('lng');
$id = $this->put('id');
if ($lat == null || $lat == '' || $lng == null || $lng == '' || $id == null || $id == '') {
$this->response(['message' => 'Isi Semua Form', 'stat' => false], 401);
}
$cek_data = $this->model->tampil_data_where('tb_dinas', ['id_dinas' => $id])->result();
if (count($cek_data) > 0) {
$this->model->update('tb_dinas', ['id_dinas' => $id], ['lat' => $lat, 'lng' => $lng]);
$this->session->set_flashdata('info', 'Titik Kordinat Berhasil Diubah');
$this->response(['message' => 'Sukses Tukar Kordinat ' . $cek_data[0]->dinas], 200);
} else {
$this->response(['message' => 'Data Tiada', 'stat' => false], 403);
}
// $this->response(['res' => 'ok','url' => $id], 200);
if ($this->session->userdata('level') != 'Admin') return $this->response(['message' => 'Not Allowed'], 401);
$nik = $this->get('nik');
$cek_data = $this->model->tampil_data_where('tb_penduduk', ['nik' => $nik])->result();
if (count($cek_data) == 0) return $this->response(['message' => 'Data Tidak Ditemukan', 'data' => null], 400);
$this->response(['message' => 'Data Ditemukan', 'data' => $cek_data[0]], 200);
}
public function pengaturan_radius_put() // pengaturan titik kordinat dinas
public function penduduk_post() // tambah data penduduk
{
if ($this->session->userdata('level') != 'Admin') return $this->response(['message' => 'Failed', 'stat' => false], 401);
$radius = $this->put('radius');
$id = $this->put('id');
if ($this->session->userdata('level') != 'Admin') return $this->response(['message' => 'Not Allowed'], 401);
if ($radius == null || $radius == '' || $id == null || $id == '') {
$this->response(['message' => 'Isi Semua Form', 'stat' => false], 401);
}
$cek_data = $this->model->tampil_data_where('tb_dinas', ['id_dinas' => $id])->result();
if (count($cek_data) > 0) {
$this->model->update('tb_dinas', ['id_dinas' => $id], ['radius' => $radius]);
$this->session->set_flashdata('info', 'Radius Berhasil Diubah');
$this->response(['message' => 'Sukses Ubah Radius ' . $cek_data[0]->dinas], 200);
} else {
$this->response(['message' => 'Data Tiada', 'stat' => false], 403);
}
// $this->response(['res' => 'ok','url' => $id], 200);
}
public function karyawan_post() // penambahan_karyawan
{
if ($this->session->userdata('level') != 'Admin') return $this->response(['message' => 'Failed', 'stat' => false], 401);
$id_dinas = $this->post('id_dinas');
// $foto = $_FILES['foto'];
$foto = $this->post('foto') == 'tiada' ? null : $_FILES['foto'];
$nik = $this->post('nik');
$nama = $this->post('nama');
$no_telpon = $this->post('no_telpon');
$jabatan = $this->post('jabatan');
$tgl_lahir = $this->post('tgl_lahir');
$jenis_kelamin = $this->post('jenis_kelamin');
$alamat = $this->post('alamat');
$status_form = $this->post('status_form');
$status = $this->post('status');
$pangkat = $this->post('pangkat');
$status = $this->post('status');
$tanggal_lahir = $this->post('tanggal_lahir');
$no_hp = $this->post('no_hp');
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' => 'Isi Semua Form', 'stat' => false], 401);
}
$cek_nik = $this->model->tampil_data_where('tb_penduduk', ['nik' => $nik])->result();
$cek_dinas = $this->model->tampil_data_where('tb_dinas', ['id_dinas' => $id_dinas])->result();
if (count($cek_nik) > 0) return $this->response(['message' => 'NIK ' . $nik . ' sudah terdaftar'], 400);
if (count($cek_dinas) == 0) return $this->response(['message' => 'Dinas Tidak Ditemukan', 'stat' => false], 401);
$data = [
'nik' => $nik,
'nama' => $nama,
'tgl_lahir' => $tgl_lahir,
'jenis_kelamin' => $jenis_kelamin,
'alamat' => $alamat,
'no_hp' => $no_hp,
];
$this->model->insert('tb_penduduk', $data);
if ($status_form == 'tambah') {
$cek_data = $this->model->tampil_data_where('tb_karyawan', ['nik' => $nik])->result();
if (count($cek_data) > 0) {
$this->response(['message' => 'Karyawan Dengan NIK ' . $nik . " telah terdaftar di sistem", 'stat' => false], 403);
} else {
$dir = "assets/images/foto_karyawan/$nik/";
if (is_dir($dir) === false) {
mkdir($dir);
}
$path = $dir . $foto['name'];
move_uploaded_file($foto['tmp_name'], $path);
$image_path = $path;
$this->model->insert("tb_karyawan", ['nik' => $nik, 'nama' => $nama, 'no_telpon' => $no_telpon, 'jabatan' => $jabatan, 'alamat' => $alamat, "id_dinas" => $id_dinas, "image" => $image_path, "status" => $status, "pangkat" => $pangkat, "tanggal_lahir" => $tanggal_lahir]);
$this->model->insert("tb_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);
}
}
if ($status_form == 'edit') {
$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 ($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]);
} else {
$dir = "assets/images/foto_karyawan/$nik/";
if (is_dir($dir) === false) {
mkdir($dir);
}
$files = glob($dir . '*'); // get all file names
foreach ($files as $file) { // iterate files
if (is_file($file)) {
unlink($file); // delete file
}
}
$path = $dir . $foto['name'];
move_uploaded_file($foto['tmp_name'], $path);
$image_path = $path;
$this->model->update("tb_karyawan", ['nik' => $nik, "id_dinas" => $id_dinas], ["nama" => $nama, "no_telpon" => $no_telpon, "jabatan" => $jabatan, "alamat" => $alamat, "image" => $image_path, "status" => $status, "pangkat" => $pangkat, "tanggal_lahir" => $tanggal_lahir]);
}
$this->response(['message' => 'Data Karyawan Berhasil Diubah'], 200);
}
// $this->response(['res' => 'ok', 'url' => $status], 200);
$this->response(['message' => 'Data dengan NIK ' . $nik . ' berhasil ditambahkan'], 200);
}
public function karyawanAll_get()
public function penduduk_put() // edit data penduduk
{
if ($this->session->userdata('level') != 'Admin') return $this->response(['message' => 'Failed', 'stat' => false], 401);
$check_data = $this->model->tampil_data_keseluruhan('tb_karyawan')->result();
$this->response(['data' => $check_data], 200);
}
if ($this->session->userdata('level') != 'Admin') return $this->response(['message' => 'Not Allowed'], 401);
public function karyawan_get() // ambil data karyawan
{
if ($this->session->userdata('level') != 'Admin') return $this->response(['message' => 'Failed', 'stat' => false], 401);
$id_dinas = $this->get('id_dinas');
$nik = $this->get('nik');
if ($id_dinas == null || $id_dinas == '' || $nik == null || $nik == '') {
$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);
$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);
$this->response(['data' => $cek_data[0]], 200);
// $this->response(['message' => 'Karyawan Tidak Ditemukan', 'stat' => false], 401);
}
public function karyawan_put() // edit data karyawan
{
if ($this->session->userdata('level') != 'Admin') return $this->response(['message' => 'Failed', 'stat' => false], 401);
$id_dinas = $this->put('id_dinas');
$foto = $_FILES['foto'];
$nik = $this->put('nik');
$nama = $this->put('nama');
$no_telpon = $this->put('no_telpon');
$jabatan = $this->put('jabatan');
$tgl_lahir = $this->put('tgl_lahir');
$jenis_kelamin = $this->put('jenis_kelamin');
$alamat = $this->put('alamat');
$no_hp = $this->put('no_hp');
// if ($id_dinas == null || $id_dinas == '' || $nik == null || $nik == '' || $nama == null || $nama == '' || $no_telpon == null || $no_telpon == '' || $jabatan == null || $jabatan == '' || $alamat == null || $alamat == '') {
// $this->response(['message' => 'Isi Semua Form', 'stat' => false], 401);
// }
$cek_nik = $this->model->tampil_data_where('tb_penduduk', ['nik' => $nik])->result();
// $cek_dinas = $this->model->tampil_data_where('tb_dinas',['id_dinas' => $id_dinas])->result();
if (count($cek_nik) == 0) return $this->response(['message' => 'NIK ' . $nik . ' tidak terdaftar'], 400);
// if(count($cek_dinas) == 0) return $this->response(['message' => 'Dinas Tidak Ditemukan', 'stat' => false], 401);
$data = [
'nama' => $nama,
'tgl_lahir' => $tgl_lahir,
'jenis_kelamin' => $jenis_kelamin,
'alamat' => $alamat,
'no_hp' => $no_hp,
];
$this->model->update('tb_penduduk', ['nik' => $nik], $data);
// $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);
// $this->model->update("tb_karyawan",['nik' => $nik, "id_dinas" => $id_dinas], ["nama" => $nama , "no_telpon" => $no_telpon , "jabatan" => $jabatan, "alamat" => $alamat]);
// $this->response(['message' => '"Data Karyawan Berhasil Diubah'], 200);
$this->response(['message' => $foto], 200);
$this->response(['message' => 'Data dengan NIK ' . $nik . ' berhasil diubah'], 200);
}
public function karyawan_delete() // edit data karyawan
public function penduduk_delete() // hapus data penduduk
{
if ($this->session->userdata('level') != 'Admin') return $this->response(['message' => 'Failed', 'stat' => false], 401);
$id_dinas = $this->delete('id_dinas');
if ($this->session->userdata('level') != 'Admin') return $this->response(['message' => 'Not Allowed'], 401);
$nik = $this->delete('nik');
$cek_nik = $this->model->tampil_data_where('tb_penduduk', ['nik' => $nik])->result();
if ($id_dinas == null || $id_dinas == '' || $nik == null || $nik == '') {
$this->response(['message' => 'Isi Semua Form', 'stat' => false], 401);
}
if (count($cek_nik) == 0) return $this->response(['message' => 'NIK ' . $nik . ' tidak terdaftar'], 400);
$cek_dinas = $this->model->tampil_data_where('tb_dinas', ['id_dinas' => $id_dinas])->result();
$this->model->delete('tb_penduduk', ['nik' => $nik]);
if (count($cek_dinas) == 0) return $this->response(['message' => 'Dinas Tidak Ditemukan', 'stat' => false], 401);
$cek_data = $this->model->tampil_data_where('tb_karyawan', ['nik' => $nik, "id_dinas" => $id_dinas])->result();
if (count($cek_data) == 0) return $this->response(['message' => 'Karyawan Tidak Ditemukan', 'stat' => false], 401);
$this->model->delete("tb_karyawan", ['nik' => $nik, "id_dinas" => $id_dinas]);
$this->response(['message' => "Data Karyawan Berhasil Dihapus"], 200);
$this->response(['message' => 'Data dengan NIK ' . $nik . ' berhasil dihapus'], 200);
// $this -> response(['message' => $nik], 200);
}
public function jam_kerja_post() // edit data karyawan
public function topsis_get()
{
if ($this->session->userdata('level') != 'Admin') return $this->response(['message' => 'Failed', 'stat' => false], 401);
$id_dinas = $this->post('id_dinas');
$hari = $this->post('hari');
$jam_masuk = $this->post('jam_masuk');
$jam_istirehat = $this->post('jam_istirehat');
$jam_masuk_kembali = $this->post('jam_masuk_kembali');
$jam_pulang = $this->post('jam_pulang');
if ($this->session->userdata('level') != 'Admin') return $this->response(['message' => 'Not Allowed'], 401);
$nik = $this->get('nik');
$cek_nik = $this->model->tampil_data_where('tb_penduduk', ['nik' => $nik])->result();
if ($id_dinas == null || $id_dinas == '' || $hari == null || $hari == '' || $jam_masuk == null || $jam_masuk == '' || $jam_istirehat == null || $jam_istirehat == '' || $jam_masuk_kembali == null || $jam_masuk_kembali == '' || $jam_pulang == null || $jam_pulang == '') {
$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);
$cek_data = $this->model->tampil_data_where('tb_pengaturan_jam_kerja_harian', ['hari' => $hari, "id_dinas" => $id_dinas])->result();
if (count($cek_nik) == 0) return $this->response(['message' => 'NIK ' . $nik . ' tidak terdaftar'], 400);
$cek_data = $this->model->tampil_data_where('tb_detail', ['nik' => $nik])->result();
if (count($cek_data) == 0) {
$this->model->insert("tb_pengaturan_jam_kerja_harian", ['hari' => $hari, "id_dinas" => $id_dinas, "jam_masuk" => $jam_masuk, "jam_istirehat" => $jam_istirehat, "jam_masuk_kembali" => $jam_masuk_kembali, "jam_pulang" => $jam_pulang]);
$this->response(['message' => 'Data Tidak Ditemukan', 'data' => null], 200);
} else {
$this->model->update("tb_pengaturan_jam_kerja_harian", ['hari' => $hari, "id_dinas" => $id_dinas], ["jam_masuk" => $jam_masuk, "jam_istirehat" => $jam_istirehat, "jam_masuk_kembali" => $jam_masuk_kembali, "jam_pulang" => $jam_pulang]);
$this->response(['message' => 'Data Ditemukan', 'data' => $cek_data[0]], 200);
}
// $this->model->delete("tb_karyawan",['nik' => $nik, "id_dinas" => $id_dinas]);
// $this->session->set_flashdata('info',"Jam Kerja Hari ".ucfirst($hari)." Berhasil Diubah");
$this->response(['message' => "Jam Kerja Hari " . ucfirst($hari), " Berhasil Diubah"], 200);
}
public function jam_kerja_get() // edit data karyawan
public function topsis_post()
{
if ($this->session->userdata('level') != 'Admin') return $this->response(['message' => 'Failed', 'stat' => false], 401);
$id_dinas = $this->get('id_dinas');
if ($this->session->userdata('level') != 'Admin') return $this->response(['message' => 'Not Allowed'], 401);
$nik = $this->post('nik');
$bobot_umur = $this->post('bobot_umur');
$bobot_pekerjaan = $this->post('bobot_pekerjaan');
$bobot_penghasilan = $this->post('bobot_penghasilan');
$bobot_jumlah_tanggungan = $this->post('bobot_jumlah_tanggungan');
$bobot_jenis_rumah = $this->post('bobot_jenis_rumah');
$cek_nik = $this->model->tampil_data_where('tb_penduduk', ['nik' => $nik])->result();
if ($id_dinas == null || $id_dinas == '') {
$this->response(['message' => 'Isi Semua Form', 'stat' => false], 401);
if (count($cek_nik) == 0) return $this->response(['message' => 'NIK ' . $nik . ' tidak terdaftar'], 400);
$data = [
'bobot_umur' => $bobot_umur,
'bobot_pekerjaan' => $bobot_pekerjaan,
'bobot_penghasilan' => $bobot_penghasilan,
'bobot_jumlah_tanggungan' => $bobot_jumlah_tanggungan,
'bobot_jenis_rumah' => $bobot_jenis_rumah,
];
$cek_data = $this->model->tampil_data_where('tb_detail', ['nik' => $nik])->result();
if (count($cek_data) == 0) {
$data['nik'] = $nik;
$this->model->insert('tb_detail', $data);
} else {
$this->model->update('tb_detail', ['nik' => $nik], $data);
}
$cek_dinas = $this->model->tampil_data_where('tb_dinas', ['id_dinas' => $id_dinas])->result();
if (count($cek_dinas) == 0) return $this->response(['message' => 'Dinas Tidak Ditemukan', 'stat' => false], 401);
$cek_data = $this->model->tampil_data_where('tb_pengaturan_jam_kerja_harian', ["id_dinas" => $id_dinas])->result();
$this->response(['message' => ""], 200);
}
public function bantuan_get()
{
if ($this->session->userdata('level') != 'Admin') return $this->response(['message' => 'Not Allowed'], 401);
$cek_detail = $this->model->tampil_data_keseluruhan('tb_detail')->result();
$bobotall = [];
foreach ($cek_detail as $key => $value) {
$array = [
$value->bobot_umur,
$value->bobot_pekerjaan,
$value->bobot_penghasilan,
$value->bobot_jumlah_tanggungan,
$value->bobot_jenis_rumah,
];
array_push($bobotall, $array);
}
$the_bobotall = [];
foreach ($cek_detail as $key => $value) {
$array = [
'nik' => $value->nik,
'kriteria_umur' => $value->bobot_umur,
'kriteria_pekerjaan' => $value->bobot_pekerjaan,
'kriteria_penghasilan' => $value->bobot_penghasilan,
'kriteria_jumlah_tanggungan' => $value->bobot_jumlah_tanggungan,
'kriteria_jenis_rumah' => $value->bobot_jenis_rumah,
];
array_push($the_bobotall, $array);
}
$bobot = [4, 4, 4, 4, 4];
$matriks_keputusan = $this->MatrixKeputusan($bobotall);
$the_matrix_keputusan = [];
foreach ($cek_detail as $key => $value) {
$array = [
'nik' => $cek_detail[$key]->nik,
'kriteria_umur' => $matriks_keputusan[$key][0],
'kriteria_pekerjaan' => $matriks_keputusan[$key][1],
'kriteria_penghasilan' => $matriks_keputusan[$key][2],
'kriteria_jumlah_tanggungan' => $matriks_keputusan[$key][3],
'kriteria_jenis_rumah' => $matriks_keputusan[$key][4],
];
array_push($the_matrix_keputusan, $array);
}
$totalmatriks_keputusan = $this->TotMatrixKeputusan($matriks_keputusan);
$matriks_normalisasi = $this->MatrixTernormalisasi($bobotall, $totalmatriks_keputusan);
$the_matrix_normalisasi = [];
foreach ($cek_detail as $key => $value) {
$array = [
'nik' => $cek_detail[$key]->nik,
'kriteria_umur' => $matriks_normalisasi[$key][0],
'kriteria_pekerjaan' => $matriks_normalisasi[$key][1],
'kriteria_penghasilan' => $matriks_normalisasi[$key][2],
'kriteria_jumlah_tanggungan' => $matriks_normalisasi[$key][3],
'kriteria_jenis_rumah' => $matriks_normalisasi[$key][4],
];
array_push($the_matrix_normalisasi, $array);
}
$normalisasi_terbobot = $this->TermTerbobot($matriks_normalisasi, $bobot);
$the_normalisasi_terbobot = [];
foreach ($cek_detail as $key => $value) {
$array = [
'nik' => $cek_detail[$key]->nik,
'kriteria_umur' => $normalisasi_terbobot[$key][0],
'kriteria_pekerjaan' => $normalisasi_terbobot[$key][1],
'kriteria_penghasilan' => $normalisasi_terbobot[$key][2],
'kriteria_jumlah_tanggungan' => $normalisasi_terbobot[$key][3],
'kriteria_jenis_rumah' => $normalisasi_terbobot[$key][4],
];
array_push($the_normalisasi_terbobot, $array);
$this->model->update('tb_detail', ['nik' => $cek_detail[$key]->nik], ['normalisasi' => json_encode($normalisasi_terbobot[$key])]);
}
$ideal_positif = $this->SolusiIdealPositif($normalisasi_terbobot);
$the_ideal_positif = [
'kriteria_umur' => $ideal_positif[0],
'kriteria_pekerjaan' => $ideal_positif[1],
'kriteria_penghasilan' => $ideal_positif[2],
'kriteria_jumlah_tanggungan' => $ideal_positif[3],
'kriteria_jenis_rumah' => $ideal_positif[4],
];
$ideal_negatif = $this->SolusiIdealNegatif($normalisasi_terbobot);
$the_ideal_negatif = [
'kriteria_umur' => $ideal_negatif[0],
'kriteria_pekerjaan' => $ideal_negatif[1],
'kriteria_penghasilan' => $ideal_negatif[2],
'kriteria_jumlah_tanggungan' => $ideal_negatif[3],
'kriteria_jenis_rumah' => $ideal_negatif[4],
];
$this->response(['data' => $cek_data], 200);
$solusiideal = array();
$solusiideal[] = $ideal_positif;
$solusiideal[] = $ideal_negatif;
$jarak_solusi = $this->JarakSolusi($normalisasi_terbobot, $solusiideal);
$preverensi = $this->Preverensi($jarak_solusi);
$the_preverensi = [];
foreach ($cek_detail as $key => $value) {
$array = [
'nik' => $cek_detail[$key]->nik,
'preverensi' => $preverensi[$key],
];
array_push($the_preverensi, $array);
$this->model->update('tb_detail', ['nik' => $cek_detail[$key]->nik], ['preverensi' => json_encode($preverensi[$key])]);
$status = ($preverensi[$key] >= 0.5) ? 'Layak' : 'Tidak Layak';
$this->model->update('tb_detail', ['nik' => $cek_detail[$key]->nik], ['status' => $status]);
}
$this->response(["bobot" => $the_bobotall, 'matriks_keputusan' => $the_matrix_keputusan, "matriks_normalisasi" => $the_matrix_normalisasi, 'normalisasi_terbobot' => $the_normalisasi_terbobot, 'ideal_positif' => $the_ideal_positif, "ideal_negatif" => $the_ideal_negatif, 'preverensi' => $the_preverensi], 200);
}
public function libur_post()
function MatrixKeputusan($matrix)
{
if ($this->session->userdata('level') != 'Admin') return $this->response(['message' => 'Failed', 'stat' => false], 401);
$id_dinas = $this->post('id_dinas');
$list_karyawan = $this->post('list_karyawan');
$start_tanggal = $this->post('start_tanggal');
$end_tanggal = $this->post('end_tanggal');
$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 == '') {
$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);
$period = new DatePeriod(
new DateTime($start_tanggal),
new DateInterval('P1D'),
new DateTime($end_tanggal)
);
$cek_last_ai = $this->model->cek_last_ai('tb_libur');
$this->model->insert('tb_libur', ['id_dinas' => $id_dinas, 'list_karyawan' => $list_karyawan, 'range_tanggal' => $start_tanggal . " - " . $end_tanggal, 'ket' => $ket . " (" . $start_tanggal . " - " . $end_tanggal . ")", 'created_at' => date("Y-m-d H:i:s")]);
$converted_list_karyawan = json_decode($list_karyawan);
foreach ($converted_list_karyawan as $key1 => $value1) {
foreach ($period as $key => $value) {
$this->model->insert('tb_informasi_libur', ['id_libur' => $cek_last_ai, 'nik' => $value1, "tanggal" => $value->format('Y-m-d'), 'ket' => $ket . " (" . $start_tanggal . " - " . $end_tanggal . ")"]);
$all = [];
for ($i = 0; $i < count($matrix); $i++) {
$bobot = [];
for ($j = 0; $j < count($matrix[$i]); $j++) {
$x = $matrix[$i][$j] ** 2;
array_push($bobot, $x);
}
$this->model->insert('tb_informasi_libur', ['id_libur' => $cek_last_ai, 'nik' => $value1, "tanggal" => $end_tanggal, 'ket' => $ket . " (" . $start_tanggal . " - " . $end_tanggal . ")"]);
array_push($all, $bobot);
}
$this->response(['message' => "Data Libur Berhasil Dimasukkan"], 200);
return $all;
}
public function libur_get()
function TotMatrixKeputusan($matrix)
{
if ($this->session->userdata('level') != 'Admin') return $this->response(['message' => 'Failed', 'stat' => false], 401);
$id_dinas = $this->get('id_dinas');
$id_libur = $this->get('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);
$data = array();
$data['range_tanggal'] = $check_data[0]->range_tanggal;
$data['ket'] = $check_data[0]->ket;
$data['created_at'] = $check_data[0]->created_at;
$data['list_karyawan'] = '';
$list_karyawan = json_decode($check_data[0]->list_karyawan);
foreach ($list_karyawan as $key => $value) {
$check_karyawan = $this->model->tampil_data_where('tb_karyawan', ['nik' => $value])->result();
$data['list_karyawan'] .= " " . $check_karyawan[0]->nama . ' ,';
}
$data['list_karyawan'] = rtrim($data['list_karyawan'] ,",");
$this->response(['data' => $data], 200);
}
public function perjalanan_dinas_post()
{
if ($this->session->userdata('level') != 'Admin') return $this->response(['message' => 'Failed', 'stat' => false], 401);
$id_dinas = $this->post('id_dinas');
$list_karyawan = $this->post('list_karyawan');
$start_tanggal = $this->post('start_tanggal');
$end_tanggal = $this->post('end_tanggal');
$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 == '') {
$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);
$period = new DatePeriod(
new DateTime($start_tanggal),
new DateInterval('P1D'),
new DateTime($end_tanggal)
);
$cek_last_ai = $this->model->cek_last_ai('tb_perjalanan_dinas');
$this->model->insert('tb_perjalanan_dinas', ['id_dinas' => $id_dinas, 'list_karyawan' => $list_karyawan, 'range_tanggal' => $start_tanggal . " - " . $end_tanggal, 'ket' => $ket . " (" . $start_tanggal . " - " . $end_tanggal . ")", 'created_at' => date("Y-m-d H:i:s")]);
$converted_list_karyawan = json_decode($list_karyawan);
foreach ($converted_list_karyawan as $key1 => $value1) {
foreach ($period as $key => $value) {
$this->model->insert('tb_informasi_perjalanan_dinas', ['id_perjalanan_dinas' => $cek_last_ai, 'nik' => $value1, "tanggal" => $value->format('Y-m-d'), 'ket' => $ket . " (" . $start_tanggal . " - " . $end_tanggal . ")"]);
$total = [];
for ($i = 0; $i < count($matrix[0]); $i++) {
$tot = 0;
for ($j = 0; $j < count($matrix); $j++) {
$tot += $matrix[$j][$i];
}
$this->model->insert('tb_informasi_perjalanan_dinas', ['id_perjalanan_dinas' => $cek_last_ai, 'nik' => $value1, "tanggal" => $end_tanggal, 'ket' => $ket . " (" . $start_tanggal . " - " . $end_tanggal . ")"]);
$total[] = $tot ** (1 / 2);
}
$this->response(['message' => "Data Libur Berhasil Dimasukkan"], 200);
return $total;
}
public function perjalanan_dinas_get()
function MatrixTernormalisasi($matrix1, $matrix2)
{
if ($this->session->userdata('level') != 'Admin') return $this->response(['message' => 'Failed', 'stat' => false], 401);
$id_dinas = $this->get('id_dinas');
$id_perjalanan_dinas = $this->get('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);
$data = array();
$data['range_tanggal'] = $check_data[0]->range_tanggal;
$data['ket'] = $check_data[0]->ket;
$data['created_at'] = $check_data[0]->created_at;
$data['list_karyawan'] = '';
$list_karyawan = json_decode($check_data[0]->list_karyawan);
foreach ($list_karyawan as $key => $value) {
$check_karyawan = $this->model->tampil_data_where('tb_karyawan', ['nik' => $value])->result();
$data['list_karyawan'] .= " " . $check_karyawan[0]->nama . ' ,';
}
$data['list_karyawan'] = rtrim($data['list_karyawan'] ,",");
$this->response(['data' => $data], 200);
}
public function get_today_absensi_get()
{
$id_dinas = $this->get('id_dinas');
if ($id_dinas == null || $id_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);
$today = date("Y-m-d");
$check_data = $this->model->tampil_data_where('tb_absensi_karyawan', ['id_dinas' => $id_dinas, 'tanggal' => $today])->result();
$datanya = array();
if (count($check_data) > 0) {
foreach ($check_data as $key => $value) {
$check_data_karyawan = $this->model->tampil_data_where('tb_karyawan', ['nik' => $value->nik])->result();
$check_kordinat = $this->model->tampil_data_where('tb_kordinat_karyawan', ['nik' => $value->nik])->result();
$status = "Sedang Bekerja";
if ($check_data[$key]->jam_istirehat != null) {
$status = "Sedang Istirehat";
}
if ($check_data[$key]->jam_masuk_kembali != null) {
$status = "Sedang Bekerja";
}
if ($check_data[$key]->jam_pulang != null) {
$status = "Pulang Kerja";
}
$datanya[$key]['nik'] = $value->nik;
$datanya[$key]['nama'] = $check_data_karyawan[0]->nama;
$datanya[$key]['lat'] = floatval($check_kordinat[0]->lat);
$datanya[$key]['lng'] = floatval($check_kordinat[0]->lng);
$datanya[$key]['last_updated'] = $check_kordinat[0]->updated_at;
$datanya[$key]['status'] = $status;
$total = $matrix2;
$all = [];
for ($i = 0; $i < count($matrix1); $i++) {
$sub = [];
$k = 0;
for ($j = 0; $j < count($matrix1[$i]); $j++) {
$x = $matrix1[$i][$j] / $total[$k];
array_push($sub, $x);
$k++;
}
array_push($all, $sub);
}
return $all;
}
function TermTerbobot($matrix, $bobot)
{
$all = array();
for ($i = 0; $i < count($matrix); $i++) {
$sub = array();
$k = 0;
for ($j = 0; $j < count($matrix[$i]); $j++) {
$sub[] = $matrix[$i][$j] * $bobot[$k];
$k++;
}
$all[] = $sub;
}
return $all;
}
function SolusiIdealPositif($matrix)
{
$all = array();
for ($i = 0; $i < count($matrix[0]); $i++) {
$sub = array();
for ($j = 0; $j < count($matrix); $j++) {
array_push($sub, $matrix[$j][$i]);
}
array_push($all, $sub);
}
$sub1 = array();
for ($k = 0; $k < count($all); $k++) {
if ($all[$k] == $all[0] || $all[$k] == $all[2]) {
$val = min($all[$k]);
} else {
$val = max($all[$k]);
}
array_push($sub1, $val);
}
return $sub1;
}
$this->response(['data' => $datanya], 200);
function SolusiIdealNegatif($matrix)
{
$all = [];
for ($i = 0; $i < count($matrix[0]); $i++) {
$sub = [];
for ($j = 0; $j < count($matrix); $j++) {
$sub[] = $matrix[$j][$i];
}
$all[] = $sub;
}
$sub1 = [];
for ($k = 0; $k < count($all); $k++) {
if ($all[$k] == $all[0] || $all[$k] == $all[2]) {
$val = max($all[$k]);
} else {
$val = min($all[$k]);
}
$sub1[] = $val;
}
return $sub1;
}
function JarakSolusi($matrix1, $matrix2)
{
$all = [];
for ($n = 0; $n < 2; $n++) {
$solution = [];
for ($i = 0; $i < count($matrix1); $i++) {
$sub = [];
$k = 0;
for ($j = 0; $j < count($matrix1[$i]); $j++) {
$x = $matrix1[$i][$j] - $matrix2[$n][$k];
$sub[] = $x ** 2;
$k += 1;
}
$solution[] = array_sum($sub) ** (1 / 2);
}
$all[] = $solution;
}
return $all;
}
function Preverensi($matrix)
{
$all = array();
for ($i = 0; $i < count($matrix[0]); $i++) {
$all[] = $matrix[1][$i] / ($matrix[1][$i] + $matrix[0][$i]);
}
return $all;
}
}

View File

@ -1,269 +0,0 @@
<?php
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, POST, DELETE, PUT');
header('Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Authorization');
header('Access-Control-Allow-Credentials: true');
header('Content-Type: application/json');
defined('BASEPATH') or exit('No direct script access allowed');
use chriskacerguis\RestServer\RestController;
class Apiuser extends RestController
{
function __construct()
{
parent::__construct();
$this->load->model('model');
// $this->db->query("SET sql_mode = '' ");
date_default_timezone_set("Asia/Kuala_Lumpur");
}
public function index_get()
{
$this->response(['message' => 'Halo Bosku'], 200);
}
// -----------------------------------------------------------------------------------------------------------
public function login_post() // login user
{
$nik = $this->post('nik');
$password = $this->post('password');
$device_id = $this->post('device_id');
if ($nik == null || $nik == '' || $password == null || $password == '' || $device_id == null || $device_id == '') return $this->response(['status' => false, 'message' => "Isi Semua Form"], 403);
$cek_data = $this->model->tampil_data_where('tb_login_user', ['username' => $nik, 'password' => md5($password)])->result();
if (count($cek_data) == 0) return $this->response(['status' => false, 'message' => "Username Dan Password Salah"], 401);
$data_user = $this->model->custom_query("SELECT * from tb_karyawan a join tb_dinas b on a.id_dinas = b.id_dinas where a.nik=$nik")->result()[0];
if ($data_user->device_id == null || $data_user->device_id == '') {
$cek_if_device_exist = $this->model->tampil_data_where('tb_karyawan', ['device_id' => $device_id])->result();
if (count($cek_if_device_exist) > 0) return $this->response(['status' => false, 'message' => "Gagal Login Ke Perangkat Ini, Perangkat Ini Telah Terdaftar Ke Karayawan Lainnya, Sila Infokan Ke Admin Bersangkutan Jika Ingin Ganti Perangkat Anda"], 403);
$this->model->update("tb_karyawan", ['nik' => $nik], ['device_id' => $device_id, "updated_at" => date("Y-m-d H:i:s")]);
return $this->response(['status' => true, 'message' => "Selamat Login " . $data_user->nama, "data" => $data_user, "firstTime" => true], 200);
} else {
if ($device_id != $data_user->device_id) return $this->response(['status' => false, 'message' => "Gagal Login Ke Perangkat Ini,Login Ke Perangkat Yang Anda Gunakan Sebelumnya. Sila Infokan Ke Admin Bersangkutan Jika Ingin Ganti Perangkat Anda"], 403);
$this->response(['status' => true, 'message' => "Selamat Login " . $data_user->nama, "data" => $data_user], 200);
}
}
public function user_data_get() //get user data
{
$nik = $this->get('nik');
if ($nik == null || $nik == '') return $this->response(['status' => false, 'message' => "Isi Semua Form"], 403);
$data_user = $this->model->custom_query("SELECT * from tb_karyawan a join tb_dinas b on a.id_dinas = b.id_dinas where a.nik=$nik")->result();
if (count($data_user) == 0) return $this->response(['status' => false, 'message' => "Tiada Data"], 401);
$this->response(['status' => true, 'message' => "Sukses mengambil data", "data" => $data_user[0]], 200);
}
public function jadwal_dinas_post() // ambil jadwal absesni instansi
{
$id_dinas = $this->post('id_dinas');
if ($id_dinas == null || $id_dinas == '') return $this->response(['status' => false, 'message' => "Isi Semua Form"], 403);
$check_dinas = $this->model->tampil_data_where('tb_dinas', ['id_dinas' => $id_dinas])->result();
if (count($check_dinas) == 0) return $this->response(['status' => false, 'message' => "Tiada Data"], 401);
$data_kerja_dinas = $this->model->tampil_data_where('tb_pengaturan_jam_kerja_harian', ['id_dinas' => $id_dinas])->result();
$this->response(['status' => true, 'message' => "Sukses mengambil data jadawal kerja", "data" => $data_kerja_dinas], 200);
}
public function today_absensi_get() // ambil absensi ini hari berdasarkan kayawan
{
$nik = $this->get('nik');
$date = $this->get('date');
if ($nik == null || $nik == '' || $date == null || $date == '') return $this->response(['status' => false, 'message' => "Isi Semua Form"], 403);
$check_karyawan = $this->model->tampil_data_where('tb_karyawan', ['nik' => $nik])->result();
if (count($check_karyawan) == 0) return $this->response(['status' => false, 'message' => "Tiada Data"], 401);
$check_data_absensi = $this->model->tampil_data_where('tb_absensi_karyawan', ['nik' => $nik, 'tanggal' => $date])->result();
if (count($check_data_absensi) > 0) {
$this->response(['status' => true, 'message' => "Sukses mengambil data jadawal karyawan", "data" => $check_data_absensi[0]], 200);
} else {
$this->response(['status' => true, 'message' => "Sukses mengambil data jadawal karyawan", "data" => null], 200);
}
}
public function today_absensi_post() // ambil absensi ini hari berdasarkan kayawan
{
$nik = $this->post('nik');
$date = $this->post('date');
$stat = $this->post('stat');
if ($nik == null || $nik == '' || $date == null || $date == '' || $stat == null || $stat == '') return $this->response(['status' => false, 'message' => "Isi Semua Form"], 403);
$check_karyawan = $this->model->tampil_data_where('tb_karyawan', ['nik' => $nik])->result();
if (count($check_karyawan) == 0) return $this->response(['status' => false, 'message' => "Tiada Data"], 401);
$time = date('H:i:s');
$check_data_absensi = $this->model->tampil_data_where('tb_absensi_karyawan', ['nik' => $nik, 'tanggal' => $date])->result();
if (count($check_data_absensi) > 0) {
if ($stat == 'jam_istirehat') {
$this->model->update('tb_absensi_karyawan', ['nik' => $nik, 'tanggal' => $date], [
'jam_istirehat' => $time
]);
}
if ($stat == 'jam_masuk_kembali') {
$this->model->update('tb_absensi_karyawan', ['nik' => $nik, 'tanggal' => $date], [
'jam_masuk_kembali' => $time
]);
}
if ($stat == 'jam_pulang') {
$this->model->update('tb_absensi_karyawan', ['nik' => $nik, 'tanggal' => $date], [
'jam_pulang' => $time
]);
}
$this->response(['status' => true, 'message' => "Sukses mengambil data jadawal karyawan", "data" => $check_data_absensi[0]], 200);
} else {
if ($stat != 'jam_masuk') return $this->response(['status' => false, 'message' => "Status Salah"], 401);
$this->model->insert('tb_absensi_karyawan', ['nik' => $nik, "id_dinas" => $check_karyawan[0]->id_dinas, "tanggal" => $date, "jam_masuk" => $time]);
$this->response(['status' => true, 'message' => "Sukses Mengabsen"], 200);
}
// $this->response(['status' => true, 'message' => "Sukses Mengabsen", "data" => $date], 200);
}
public function get_perjalanan_dinas_libur_get() // ambil absensi ini hari berdasarkan kayawan
{
$nik = $this->get('nik');
$date = $this->get('date');
if ($nik == null || $nik == '' || $date == null || $date == '') return $this->response(['status' => false, 'message' => "Isi Semua Form"], 403);
$check_karyawan = $this->model->tampil_data_where('tb_karyawan', ['nik' => $nik])->result();
if (count($check_karyawan) == 0) return $this->response(['status' => false, 'message' => "Tiada Data"], 401);
$check_perjalanan_dinas = $this->model->tampil_data_where("tb_informasi_perjalanan_dinas", ["nik" => $nik, 'tanggal' => $date])->result();
if (count($check_perjalanan_dinas) > 0) {
$check_perjalanan_dinas = $check_perjalanan_dinas[0];
$check_perjalanan_dinas->stat = 'Perjalanan Dinas';
$this->response(['status' => true, 'message' => "Ada Perjalanan Dinas Karyawan", "data" => $check_perjalanan_dinas], 200);
}
$check_libur = $this->model->tampil_data_where("tb_informasi_libur", ["nik" => $nik, 'tanggal' => $date])->result();
if (count($check_libur) > 0) {
$check_libur = $check_libur[0];
$check_libur->stat = 'Libur';
$this->response(['status' => true, 'message' => "Ada Libur Karyawan", "data" => $check_libur], 200);
}
$this->response(['status' => true, 'message' => "Tiada Libur Karyawan", "data" => null], 200);
}
public function laporan_post()
{
$ada_foto = $this->post('ada_foto');
$nik = $this->post('nik');
$device_id = $this->post('device_id');
$id_dinas = $this->post('id_dinas');
$nama_laporan = $this->post('nama_laporan');
$ket_laporan = $this->post('ket_laporan');
$image = ($ada_foto == 'true') ? $_FILES['image'] : null;
if ($nik == null || $nik == '' || $ada_foto == null || $ada_foto == '' || $device_id == null || $device_id == '' || $id_dinas == null || $id_dinas == '' || $nama_laporan == null || $nama_laporan == '' || $ket_laporan == null || $ket_laporan == '') return $this->response(['status' => false, 'message' => "Isi Semua Form"], 403);
// cek user first
$cek_user = $this->model->tampil_data_where('tb_karyawan', ["nik" => $nik, "device_id" => $device_id, "id_dinas" => $id_dinas])->result();
if (count($cek_user) == 0) return $this->response(['status' => false, 'message' => "Karyawan, Device ID dan Dinas tidak cocok di sistem"], 401);
$auto_increment_val = $this->model->cek_last_ai('tb_laporan_karyawan');
$dir = "assets/images/karyawan/$auto_increment_val/";
$image_path = null;
if ($ada_foto == 'true') {
if (is_dir($dir) === false) {
mkdir($dir);
}
$path = $dir . $image['name'];
move_uploaded_file($image['tmp_name'], $path);
$image_path = $path;
}
// for ($i = 0; $i < 30; $i++) {
$this->model->insert('tb_laporan_karyawan', ['nik' => $nik, 'image' => $image_path, 'nama_laporan' => $nama_laporan, 'ket_laporan' => $ket_laporan, 'created_at' => date("Y-m-d H:i:s")]);
// }
$this->response(['status' => true, 'message' => 'Laporan Berhasil Ditambah'], 200);
}
public function laporan_get()
{
$nik = $this->get('nik');
$page = $this->get('page');
$where = $this->get('where');
$check_karyawan = $this->model->tampil_data_where('tb_karyawan', ['nik' => $nik])->result();
if (count($check_karyawan) == 0) return $this->response(['status' => false, 'message' => "Tiada Data"], 401);
$page_search = ($page - 1) * 10;
if ($where == '') {
$get_all_data = $this->model->custom_query("SELECT * FROM tb_laporan_karyawan where nik=$nik order by no_laporan desc")->result();
$cek_data = $this->model->custom_query("SELECT * FROM tb_laporan_karyawan where nik=$nik order by no_laporan desc limit 10 OFFSET $page_search ")->result();
} else {
$get_all_data = $this->model->custom_query("SELECT * FROM tb_laporan_karyawan where nik=$nik and ket_laporan like '%$where%' or nama_laporan like '%$where%' or created_at like '%$where%' order by no_laporan desc")->result();
$cek_data = $this->model->custom_query("SELECT * FROM tb_laporan_karyawan where nik=$nik and ket_laporan like '%$where%' or nama_laporan like '%$where%' or created_at like '%$where%' order by no_laporan desc limit 10 OFFSET $page_search ")->result();
}
$count_get_all_data = count($get_all_data);
$all_page = ceil($count_get_all_data / 10);
$data = ["count_all" => $count_get_all_data, "all_page" => $all_page, "data" => $cek_data];
$this->response(['status' => true, 'message' => "Selamat Login ", "data" => $data], 200);
}
public function my_location_post()
{
$nik = $this->post('nik');
$lat = $this->post('lat');
$lng = $this->post('lng');
if ($nik == null || $nik == '' || $lat == null || $lat == '' || $lng == null || $lng == '') return $this->response(['status' => false, 'message' => "Isi Semua Form"], 403);
$check_karyawan = $this->model->tampil_data_where('tb_karyawan', ['nik' => $nik])->result();
if (count($check_karyawan) == 0) return $this->response(['status' => false, 'message' => "Tiada Data"], 401);
$check_if_ada = $this->model->tampil_data_where('tb_kordinat_karyawan', ['nik' => $nik])->result();
$time = date("Y-m-d H:i:s");
if (count($check_if_ada) > 0) {
$this->model->update('tb_kordinat_karyawan', ['nik' => $nik], ['lat' => $lat, 'lng' => $lng, 'updated_at' => $time]);
} else {
$this->model->insert('tb_kordinat_karyawan', ['nik' => $nik],['lat' => $lat, 'lng' => $lng, 'updated_at' => $time]);
}
$this->response(['status' => true, 'message' => "ini dia"], 200);
}
}