karyawan page completed
This commit is contained in:
@ -65,6 +65,46 @@ class Api_server extends RestController
|
||||
|
||||
}
|
||||
|
||||
function karyawan_get(){
|
||||
$nik_karyawan = $this->get('nik_karyawan');
|
||||
$cek_data = $this->model->tampil_data_where('tb_karyawan' ,['nik_karyawan' => $nik_karyawan])->result();
|
||||
|
||||
if(count($cek_data) > 0){
|
||||
$this->response(['message' => 'sini ada','data' => $cek_data], 200);
|
||||
}else{
|
||||
$this->response(['message' => 'tiada data'], 401);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function karyawan_put(){
|
||||
$where = $this->put('where');
|
||||
$data = $this->put('data');
|
||||
$cek_data = $this->model->tampil_data_where('tb_karyawan' ,$where)->result();
|
||||
|
||||
if(count($cek_data) > 0){
|
||||
$this->model->update('tb_karyawan',$where,$data);
|
||||
$this->response(['message' => 'ok'], 200);
|
||||
}else{
|
||||
$this->response(['message' => 'tiada data'], 401);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function karyawan_delete(){
|
||||
$where = $this->delete('where');
|
||||
// $data = $this->put('data');
|
||||
$cek_data = $this->model->tampil_data_where('tb_karyawan' ,$where)->result();
|
||||
|
||||
if(count($cek_data) > 0){
|
||||
$this->model->delete('tb_karyawan',$where);
|
||||
$this->response(['message' => 'ok',$where], 200);
|
||||
}else{
|
||||
$this->response(['message' => 'tiada data'], 401);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function login_petugas_get(){
|
||||
$username = $this->get('username');
|
||||
$password = $this->get('password');
|
||||
|
||||
@ -64,11 +64,53 @@ class Home extends CI_Controller {
|
||||
|
||||
}
|
||||
|
||||
function laporan(){
|
||||
// print_r('sini home');
|
||||
$main['header'] = 'Halaman Laporan Absensi';
|
||||
|
||||
$this->load->view('home/index', $main);
|
||||
|
||||
|
||||
function laporan($tahun = null, $bulan = null){
|
||||
if ($this->input->post('proses') == "table_all") {
|
||||
$list = $this->m_tabel_ss->get_datatables(array('bulan','tahun'),array('tahun','bulan',null),array('id_absensi' => 'desc'),"tb_absensi",null,null,"*");
|
||||
$data = array();
|
||||
$no = 0;
|
||||
foreach ($list as $field) {
|
||||
|
||||
$no++;
|
||||
$row = array();
|
||||
$row[] = $this->model->bulan($field->bulan);
|
||||
$row[] = $field->tahun;
|
||||
$row[] = '<center><a href="'.base_url().'home/laporan/'.$field->tahun.'/'.$field->bulan.'"><button type="button" class="btn btn-primary btn-circle btn-sm waves-effect waves-light"><i class="ico fa fa-edit"></i></button></a></center>';
|
||||
$data[] = $row;
|
||||
}
|
||||
|
||||
$output = array(
|
||||
"draw" => $_POST['draw'],
|
||||
"recordsTotal" => $this->m_tabel_ss->count_all("tb_absensi",null,null,"*"),
|
||||
"recordsFiltered" => $this->m_tabel_ss->count_filtered(array('bulan','tahun'),array('tahun','bulan',null),array('id_absensi' => 'desc'),"tb_absensi",null,null,"*"),
|
||||
"data" => $data,
|
||||
);
|
||||
//output dalam format JSON
|
||||
echo json_encode($output);
|
||||
}
|
||||
|
||||
else if ($tahun != null) {
|
||||
if (is_numeric($tahun) and is_numeric($bulan)) {
|
||||
$cek_data = $this->model->tampil_data_where('tb_absensi',['tahun' => $tahun,'bulan' => $bulan])->result();
|
||||
|
||||
if (count($cek_data) > 0) {
|
||||
|
||||
}else{
|
||||
redirect('/home/laporan');
|
||||
}
|
||||
|
||||
}else{
|
||||
redirect('/home/laporan');
|
||||
}
|
||||
}
|
||||
|
||||
else{
|
||||
$main['header'] = 'Halaman Laporan Absensi';
|
||||
|
||||
$this->load->view('home/menu/laporan', $main);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -24,6 +24,9 @@
|
||||
<li <?php if ($this->uri->segment(2) == "karyawan"): ?>class="current"<?php endif ?>>
|
||||
<a class="waves-effect" href="<?=base_url()?>home/karyawan"><i class="menu-icon fa fa-users"></i><span>Halaman Karyawan</span></a>
|
||||
</li>
|
||||
<li <?php if ($this->uri->segment(2) == "libur"): ?>class="current"<?php endif ?>>
|
||||
<a class="waves-effect" href="<?=base_url()?>home/libur"><i class="menu-icon fa fa-calendar-minus-o"></i><span>Pengaturan Libur</span></a>
|
||||
</li>
|
||||
<li <?php if ($this->uri->segment(2) == "laporan"): ?>class="current"<?php endif ?>>
|
||||
<a class="waves-effect" href="<?=base_url()?>home/laporan"><i class="menu-icon zmdi zmdi-storage"></i><span>Laporan Absensi</span></a>
|
||||
</li>
|
||||
|
||||
@ -11,6 +11,22 @@
|
||||
|
||||
<?php $this->load->view('home/header');?>
|
||||
|
||||
<div class="modal fade" id="sini_modalnya" role="dialog">
|
||||
<div class="modal-dialog ">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal">×</button>
|
||||
<h4 class="modal-title">Modal Header</h4>
|
||||
</div>
|
||||
<div class="modal-body row">
|
||||
<p>This is a small modal.</p>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="wrapper">
|
||||
<div class="main-content">
|
||||
@ -217,8 +233,7 @@
|
||||
toastnya('Jabatan Harus Terisi')
|
||||
$("#jabatan").focus()
|
||||
}else{
|
||||
console.log('jalanakan')
|
||||
}
|
||||
// console.log('jalanakan')
|
||||
let data = getFormData($("#sini_form").serializeArray())
|
||||
$.ajax({
|
||||
url: url+"api_server/karyawan",
|
||||
@ -229,8 +244,12 @@
|
||||
block_ui()
|
||||
},
|
||||
success: function (response) {
|
||||
$('#sini_form')[0].reset();
|
||||
$('#table_list_karyawan').dataTable().fnDestroy();
|
||||
datatables()
|
||||
$.unblockUI();
|
||||
console.log(response)
|
||||
|
||||
// console.log(response)
|
||||
// $('#sini_form')[0].reset();
|
||||
// document.getElementById('head_div_pendaftaran_pembeli').click()
|
||||
swal({
|
||||
@ -257,6 +276,303 @@
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function detail_karyawan(nik_karyawan){
|
||||
// console.log(nik_karyawan)
|
||||
$.ajax({
|
||||
url: url+"api_server/karyawan",
|
||||
type: 'get',
|
||||
data: {nik_karyawan : nik_karyawan},
|
||||
beforeSend: function(res) {
|
||||
|
||||
block_ui()
|
||||
},
|
||||
success: function (response) {
|
||||
$.unblockUI();
|
||||
let data_karyawan = response.data[0];
|
||||
// console.log(data_karyawan)
|
||||
|
||||
let html = `<div class="row small-spacing">
|
||||
<div class="col-lg-12 col-xs-12">
|
||||
<form class="card-content" id="sini_form_detail" >
|
||||
<div class="form-group">
|
||||
<label for="exampleInputEmail1">NIK Karyawan</label>
|
||||
<input type="text" class="form-control" id="nik_karyawan_detail" name="nik_karyawan" placeholder="Masukkan NIK Karyawan" maxlength="14" onkeypress="return isNumberKey(event)" disabled="" value="${data_karyawan.nik_karyawan}">
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="exampleInputPassword1">Nama Karyawan</label>
|
||||
<input type="text" class="form-control" id="nama_detail" name="nama" placeholder="Masukkan Nama" disabled="" value="${data_karyawan.nama}">
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="exampleInputPassword1">Tempat Lahir</label>
|
||||
<input type="text" class="form-control" id="tempat_lahir_detail" name="tempat_lahir" placeholder="Masukkan Tempat Lahir" disabled="" value="${data_karyawan.tempat_lahir}">
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="exampleInputPassword1">Tanggal Lahir</label>
|
||||
<input type="date" class="form-control" id="tanggal_lahir_detail" name="tanggal_lahir" title="Masukkan Tanggal Lahir" disabled="" value="${data_karyawan.tanggal_lahir}">
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="exampleInputPassword1">Jenis Kelamin</label>
|
||||
<select name="jk" id="jk_detail" class="form-control" title="Pilih Jenis Kelamin" disabled="">
|
||||
<option value="" disabled selected>-Pilih Jenis Kelamin</option>
|
||||
<option value="Laki-laki">Laki-laki</option>
|
||||
<option value="Perempuan">Perempuan</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="exampleInputPassword1">Agama</label>
|
||||
<select name="agama" id="agama_detail" class="form-control" title="Pilih Agama" disabled="">
|
||||
<option value="" disabled selected>-Pilih Agama</option>
|
||||
<option value="Islam">Islam</option>
|
||||
<option value="Kristen Protestan">Kristen Protestan</option>
|
||||
<option value="Katolik">Katolik</option>
|
||||
<option value="Hindu">Hindu</option>
|
||||
<option value="Buddha">Buddha</option>
|
||||
<option value="Khonghucu">Khonghucu</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="exampleInputPassword1">Status</label>
|
||||
<select name="status" id="status_detail" class="form-control" title="Pilih Status" disabled="">
|
||||
<option value="" disabled selected>-Pilih Status</option>
|
||||
<option value="Sudah Menikah">Sudah Menikah</option>
|
||||
<option value="Belum Menikah">Belum Menikah</option>
|
||||
<option value="Janda / Duda">Janda / Duda</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="exampleInputPassword1">Pendidikan</label>
|
||||
<select name="pendidikan" id="pendidikan_detail" class="form-control" title="Pilih Pendidikan" disabled="">
|
||||
<option value="" disabled selected>-Pilih Pendidikan</option>
|
||||
<option value="SMA">SMA dan sederajatnya</option>
|
||||
<option value="D3">D3 dan Sederajatnya</option>
|
||||
<option value="S1">S1 dan Sederajatnya</option>
|
||||
<option value="S2">S2 dan Sederajatnya</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="exampleInputPassword1">Alamat</label>
|
||||
<textarea name="alamat" id="alamat_detail" class="form-control" style="resize: none;" placeholder="Masukkan Alamat" disabled="">${data_karyawan.alamat}</textarea>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="exampleInputPassword1">Jabatan</label>
|
||||
<input type="text" class="form-control" id="jabatan_detail" name="jabatan" placeholder="Masukkan Jabatan" disabled="" value="${data_karyawan.jabatan}">
|
||||
</div>
|
||||
|
||||
</form>
|
||||
<!-- /.card-content -->
|
||||
</div>
|
||||
</div>`
|
||||
|
||||
$("#sini_modalnya .modal-body").html(html)
|
||||
|
||||
let select_jk = $("#jk_detail").children();
|
||||
select_jk.each(async function (k) {
|
||||
if (data_karyawan.jk == this.value) {
|
||||
$(this).attr("selected", "");
|
||||
}
|
||||
})
|
||||
|
||||
let select_agama = $("#agama_detail").children();
|
||||
select_agama.each(async function (k) {
|
||||
if (data_karyawan.agama == this.value) {
|
||||
$(this).attr("selected", "");
|
||||
}
|
||||
})
|
||||
|
||||
let select_status = $("#status_detail").children();
|
||||
select_status.each(async function (k) {
|
||||
if (data_karyawan.status == this.value) {
|
||||
$(this).attr("selected", "");
|
||||
}
|
||||
})
|
||||
|
||||
let select_pendidikan = $("#pendidikan_detail").children();
|
||||
select_pendidikan.each(async function (k) {
|
||||
if (data_karyawan.pendidikan == this.value) {
|
||||
$(this).attr("selected", "");
|
||||
}
|
||||
})
|
||||
|
||||
let footer = `<button type="button" class="btn btn-info btn-xs" id="button_edit_data" onclick="edit_data(1)">Edit Data ? </button> <button type="button" onclick="hapus_karyawan(${data_karyawan.nik_karyawan},'${data_karyawan.nama}')" class="btn btn-danger btn-xs">Hapus Karyawan</button>`
|
||||
$("#sini_modalnya .modal-footer").html(footer)
|
||||
|
||||
$("#sini_modalnya .modal-header .modal-title").html("Detail Karyawan")
|
||||
$("#sini_modalnya .modal-dialog").attr('class','modal-dialog')
|
||||
$('#sini_modalnya').modal('show');
|
||||
// $('#sini_form')[0].reset();
|
||||
// document.getElementById('head_div_pendaftaran_pembeli').click()
|
||||
|
||||
},
|
||||
error: function(XMLHttpRequest, textStatus, errorThrown) {
|
||||
// console.log(errorThrown)
|
||||
bad_request(errorThrown,JSON.parse(XMLHttpRequest.responseText).message,null)
|
||||
$.unblockUI();
|
||||
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
async function edit_data(stat){
|
||||
switch (stat) {
|
||||
case 1:
|
||||
await $("#sini_form_detail *").prop("disabled", false);
|
||||
await $("#nik_karyawan_detail").attr('disabled' ,'');
|
||||
await $("#nama_detail").focus();
|
||||
await $("#button_edit_data").attr({
|
||||
'onclick' : 'edit_data(2)',
|
||||
class: "btn btn-success btn-xs"
|
||||
});
|
||||
await $("#button_edit_data").html("Edit Data")
|
||||
break;
|
||||
|
||||
case 2:
|
||||
|
||||
const nama = $("#nama_detail").val()
|
||||
const tempat_lahir = $("#tempat_lahir_detail").val()
|
||||
const tanggal_lahir = $("#tanggal_lahir_detail").val()
|
||||
const jk = $("#jk_detail").val()
|
||||
const agama = $("#agama_detail").val()
|
||||
const status = $("#status_detail").val()
|
||||
const pendidikan = $("#pendidikan_detail").val()
|
||||
const alamat = $("#alamat_detail").val()
|
||||
const jabatan = $("#jabatan_detail").val()
|
||||
|
||||
if (nama == '') {
|
||||
toastnya('Nama Karyawan Harus Terisi')
|
||||
$("#nama_detail").focus()
|
||||
}else if (tempat_lahir == '') {
|
||||
toastnya('Tempat Lahir Karyawan Harus Terisi')
|
||||
$("#tempat_lahir_detail").focus()
|
||||
}else if (tanggal_lahir == '') {
|
||||
toastnya('Tanggal Lahir Karyawan Harus Terisi')
|
||||
$("#tanggal_lahir_detail").focus()
|
||||
}else if (jk == null) {
|
||||
toastnya('Jenis Kelamin Harus Terpilih')
|
||||
$("#jk_detail").focus()
|
||||
}else if (agama == null) {
|
||||
toastnya('Agama Harus Terpilih')
|
||||
$("#agama_detail").focus()
|
||||
}else if (status == null) {
|
||||
toastnya('Status Harus Terpilih')
|
||||
$("#status_detail").focus()
|
||||
}else if (pendidikan == null){
|
||||
toastnya('Pendidikan Harus Terpilih')
|
||||
$("#pendidikan_detail").focus()
|
||||
}else if (alamat == '') {
|
||||
toastnya('Alamat Harus Terisi')
|
||||
$("#alamat_detail").focus()
|
||||
}else if (jabatan == '') {
|
||||
toastnya('Jabatan Harus Terisi')
|
||||
$("#jabatan_detail").focus()
|
||||
}else{
|
||||
// console.log('jalanakan')
|
||||
let data = getFormData($("#sini_form_detail").serializeArray())
|
||||
let where = {nik_karyawan : $("#nik_karyawan_detail").val()}
|
||||
// console.log(where);
|
||||
$.ajax({
|
||||
url: url+"api_server/karyawan",
|
||||
type: 'put',
|
||||
data: {data : data,where : where},
|
||||
beforeSend: function(res) {
|
||||
|
||||
block_ui()
|
||||
},
|
||||
success: function (response) {
|
||||
$('#sini_form')[0].reset();
|
||||
$('#table_list_karyawan').dataTable().fnDestroy();
|
||||
datatables()
|
||||
$('#sini_modalnya').modal('hide');
|
||||
$.unblockUI();
|
||||
swal({
|
||||
title : "Sukses",
|
||||
text: "Detail Karyawan Berhasil Diubah ",
|
||||
icon: "success",
|
||||
buttons: {
|
||||
cancel: false,
|
||||
confirm: true,
|
||||
},
|
||||
timer : 3000
|
||||
// dangerMode: true,
|
||||
})
|
||||
},
|
||||
error: function(XMLHttpRequest, textStatus, errorThrown) {
|
||||
// console.log(errorThrown)
|
||||
bad_request(errorThrown,JSON.parse(XMLHttpRequest.responseText).message,null)
|
||||
$.unblockUI();
|
||||
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
async function hapus_karyawan(nik_karyawan,nama){
|
||||
swal({
|
||||
title : "Hapus Data ? ",
|
||||
text: `Karyawan ${nama} akan terhapus dari sistem`,
|
||||
icon: "warning",
|
||||
buttons: {
|
||||
cancel: true,
|
||||
confirm: true,
|
||||
},
|
||||
dangerMode: true,
|
||||
})
|
||||
.then(async (hehe) =>{
|
||||
// console.log('jalankan');
|
||||
$.ajax({
|
||||
url: url+"api_server/karyawan",
|
||||
type: 'delete',
|
||||
data: {where : {nik_karyawan : nik_karyawan}},
|
||||
beforeSend: function(res) {
|
||||
|
||||
block_ui()
|
||||
},
|
||||
success: function (response) {
|
||||
$('#sini_form')[0].reset();
|
||||
$('#table_list_karyawan').dataTable().fnDestroy();
|
||||
datatables()
|
||||
$('#sini_modalnya').modal('hide');
|
||||
$.unblockUI();
|
||||
console.log(response)
|
||||
swal({
|
||||
title : "Sukses",
|
||||
text: `Karyawan ${nama} Berhasil Dihapus Dari Sistem `,
|
||||
icon: "success",
|
||||
buttons: {
|
||||
cancel: false,
|
||||
confirm: true,
|
||||
},
|
||||
timer : 3000
|
||||
// dangerMode: true,
|
||||
})
|
||||
},
|
||||
error: function(XMLHttpRequest, textStatus, errorThrown) {
|
||||
// console.log(errorThrown)
|
||||
bad_request(errorThrown,JSON.parse(XMLHttpRequest.responseText).message,null)
|
||||
$.unblockUI();
|
||||
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
103
application/views/home/menu/laporan.php
Normal file
103
application/views/home/menu/laporan.php
Normal file
@ -0,0 +1,103 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
|
||||
<?php $this->load->view('home/head');?>
|
||||
|
||||
<link rel="stylesheet" href="<?=base_url()?>assets/plugin/datatables/media/css/dataTables.bootstrap.min.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<?php $this->load->view('home/header');?>
|
||||
|
||||
<div class="modal fade" id="sini_modalnya" role="dialog">
|
||||
<div class="modal-dialog ">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal">×</button>
|
||||
<h4 class="modal-title">Modal Header</h4>
|
||||
</div>
|
||||
<div class="modal-body row">
|
||||
<p>This is a small modal.</p>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="wrapper">
|
||||
<div class="main-content">
|
||||
<div class="row small-spacing">
|
||||
|
||||
<div class="col-lg-2 col-md-2 col-xs-12"></div>
|
||||
<div class="col-lg-8 col-md-8 col-xs-12">
|
||||
<div class="box-content card">
|
||||
<h4 class="box-title" style="background: #0055FF ;cursor: pointer;" onclick="myFunction('div_laporan')">Laporan Absensi</h4>
|
||||
<!-- /.box-title -->
|
||||
<div class="card-content" style="overflow-x: auto; display: none;" id="div_laporan">
|
||||
<table id="table_absensi" class="table table-striped table-bordered display" style="width:100%">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Tahun</th>
|
||||
<th>Bulan</th>
|
||||
<th>Aksi</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
</table>
|
||||
</div>
|
||||
<!-- /.card-content -->
|
||||
</div>
|
||||
<!-- /.box-content -->
|
||||
</div>
|
||||
<div class="col-lg-2 col-md-2 col-xs-12"></div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<?php $this->load->view('home/footer');?>
|
||||
|
||||
</div>
|
||||
<!-- /.main-content -->
|
||||
</div><!--/#wrapper -->
|
||||
|
||||
<?php $this->load->view('home/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>
|
||||
var table;
|
||||
function datatables() {
|
||||
table = $('#table_absensi').DataTable({
|
||||
// "searching": false,
|
||||
"lengthMenu": [ [5, 10, 15, -1], [5, 10, 15, "All"] ],
|
||||
"pageLength": 15,
|
||||
"ordering": true,
|
||||
"processing": true,
|
||||
"serverSide": true,
|
||||
"order": [],
|
||||
|
||||
"ajax": {
|
||||
"url": url+"home/laporan",
|
||||
"type": "POST",
|
||||
data : {proses : 'table_all'}
|
||||
},
|
||||
|
||||
"columnDefs": [
|
||||
{
|
||||
"targets": [ 0 ],
|
||||
"orderable": false,
|
||||
},
|
||||
],
|
||||
});
|
||||
}
|
||||
|
||||
datatables()
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user