added karyawan edit & delete,laporan, and libur
This commit is contained in:
@ -105,6 +105,54 @@ class Api_server extends RestController
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function libur_put(){
|
||||||
|
$where = $this->put('where');
|
||||||
|
$detail = $this->put('detail');
|
||||||
|
|
||||||
|
$cek_data = $this->model->tampil_data_where('tb_karyawan',$where)->result();
|
||||||
|
$detail_libur = $cek_data[0]->detail;
|
||||||
|
|
||||||
|
if ($detail_libur == null) {
|
||||||
|
$this->model->update('tb_karyawan',$where,$detail);
|
||||||
|
$this->response(['message' => 'ok'], 200);
|
||||||
|
}else{
|
||||||
|
$detail_libur = json_decode($detail_libur,true);
|
||||||
|
$array_libur = json_decode($detail['detail'],true);
|
||||||
|
$ada_tanggal_sama = false;
|
||||||
|
$tanggal_sama = null;
|
||||||
|
|
||||||
|
foreach ($detail_libur as $key => $value) {
|
||||||
|
$ko = false;
|
||||||
|
foreach ($array_libur as $key1 => $value1) {
|
||||||
|
if($value['tanggal'] == $value1['tanggal']){
|
||||||
|
$tanggal_sama =$value1['tanggal'];
|
||||||
|
$ko = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($ko == true) {
|
||||||
|
$ada_tanggal_sama = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($ada_tanggal_sama == false) {
|
||||||
|
$detail_libur = array_merge($detail_libur,$array_libur);
|
||||||
|
$this->model->update('tb_karyawan',$where,['detail' => json_encode($detail_libur)]);
|
||||||
|
$this->response(['message' => $detail_libur], 200);
|
||||||
|
}else{
|
||||||
|
$this->response(['message' => 'Libur pada tanggal '.$tanggal_sama.' telah diatur sebelumnya <br>Sila periksa log libur dibawah untuk info lebih lanjut'], 400);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
function login_petugas_get(){
|
function login_petugas_get(){
|
||||||
$username = $this->get('username');
|
$username = $this->get('username');
|
||||||
$password = $this->get('password');
|
$password = $this->get('password');
|
||||||
@ -118,6 +166,7 @@ class Api_server extends RestController
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function cek_karyawan_by_qrcode_get(){
|
function cek_karyawan_by_qrcode_get(){
|
||||||
$nik = $this->get('nik');
|
$nik = $this->get('nik');
|
||||||
|
|||||||
@ -40,7 +40,7 @@ class Home extends CI_Controller {
|
|||||||
$row[] = $no;
|
$row[] = $no;
|
||||||
$row[] = $field->nik_karyawan;
|
$row[] = $field->nik_karyawan;
|
||||||
$row[] = $field->nama;
|
$row[] = $field->nama;
|
||||||
$row[] = '<center><button type="button" onclick="detail_karyawan('.$field->nik_karyawan.')" class="btn btn-primary btn-circle btn-sm waves-effect waves-light"><i class="ico fa fa-edit"></i></button></center>';
|
$row[] = '<center><button type="button" onclick="detail_karyawan('.$field->nik_karyawan.','."'".$field->nama."'".')" class="btn btn-primary btn-circle btn-sm waves-effect waves-light"><i class="ico fa fa-edit"></i></button></center>';
|
||||||
$data[] = $row;
|
$data[] = $row;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -64,10 +64,166 @@ class Home extends CI_Controller {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function libur($nik_karyawan = null){
|
||||||
|
if ($this->input->post('proses') == 'table_libur_detail') {
|
||||||
|
$i = 1;
|
||||||
|
$cek_data = $this->model->tampil_data_where('tb_karyawan',['nik_karyawan' => $this->input->post('nik_karyawan')])->result();
|
||||||
|
|
||||||
|
|
||||||
|
if(count($cek_data) > 0){
|
||||||
|
$ket = ($cek_data[0]->detail != null) ? json_decode($cek_data[0]->detail,true) : null;
|
||||||
|
|
||||||
|
if ($ket != null) {
|
||||||
|
foreach ($ket as $key => $value) {
|
||||||
|
$day = explode("-",$value['tanggal']);
|
||||||
|
$hari = date('l', strtotime($value['tanggal']));
|
||||||
|
|
||||||
|
// $data[$i]['no'] = $i;
|
||||||
|
$data[$i]['tanggal'] = $day[2].'-'.$day[1].'-'.$day[0];
|
||||||
|
$data[$i]['hari'] = $this->model->hari($hari);
|
||||||
|
$data[$i]['keterangan'] = $value['ket'];
|
||||||
|
// $data[$i]['ket'] = 'Rp. '. number_format($value['simpanan']);
|
||||||
|
// $data[$i]['foto'] = $value['foto'];
|
||||||
|
|
||||||
|
$i++;
|
||||||
|
|
||||||
|
}
|
||||||
|
$data = array_reverse($data, true);
|
||||||
|
$out = array_values($data);
|
||||||
|
echo json_encode($out);
|
||||||
|
}else{
|
||||||
|
echo json_encode(array());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
echo json_encode(array());
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
$main['header'] = "Halaman Pengaturan Libur";
|
||||||
|
$this->load->view('home/menu/libur', $main);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
function laporan($tahun = null, $bulan = null){
|
function laporan($tahun = null, $bulan = null){
|
||||||
if ($this->input->post('proses') == "table_all") {
|
$main['header'] = 'Halaman Laporan Absensi';
|
||||||
|
|
||||||
|
if ($this->input->post('proses') == 'table_absensi_detail_tanggal') {
|
||||||
|
$i = 1;
|
||||||
|
$cek_data = $this->model->tampil_data_where('tb_absensi',['bulan' => $this->input->post('bulan'), ' tahun' => $this->input->post('tahun')])->result();
|
||||||
|
|
||||||
|
|
||||||
|
if(count($cek_data) > 0){
|
||||||
|
$ket = json_decode($cek_data[0]->detail,true);
|
||||||
|
$ket_detail = null;
|
||||||
|
|
||||||
|
/// atur kembali array berdasarkan tanggal
|
||||||
|
foreach ($ket as $key => $value) {
|
||||||
|
|
||||||
|
if ($value['tanggal'] == $this->input->post('tanggal')) {
|
||||||
|
# code...
|
||||||
|
$ket_detail = $value['absensi'];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$cek_karyawan = $this->model->tampil_data_keseluruhan('tb_karyawan')->result_array();
|
||||||
|
|
||||||
|
foreach ($cek_karyawan as $key => $value) {
|
||||||
|
$hadir = false;
|
||||||
|
$jam_masuk = 'Tidak Masuk Kerja';
|
||||||
|
$jam_keluar = 'Tidak Masuk Kerja';
|
||||||
|
foreach ($ket_detail as $key1 => $value1) {
|
||||||
|
if ($value['nik_karyawan'] == $value1['nik_karyawan']) {
|
||||||
|
$jam_masuk = $value1['jam_masuk'];
|
||||||
|
$jam_keluar = $value1['jam_keluar'];
|
||||||
|
$hadir = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if($hadir != true){
|
||||||
|
$cek_libur = ($value['detail'] != null) ? json_decode($value['detail'],true) : $value['detail'] ;
|
||||||
|
|
||||||
|
if ($cek_libur != null) {
|
||||||
|
foreach ($cek_libur as $key1 => $value1) {
|
||||||
|
if ($value1['tanggal'] == $this->input->post('tahun').'-'.$this->input->post('bulan').'-'.$this->input->post('tanggal')) {
|
||||||
|
$jam_masuk = 'Ambil Cuti';
|
||||||
|
$jam_keluar = 'Ket : '.$value1['ket'];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
elseif ($value['tanggal_daftar'] > $this->input->post('tahun').'-'.$this->input->post('bulan').'-'.$this->input->post('tanggal')) {
|
||||||
|
$jam_masuk = 'Belum Masuk Kerja';
|
||||||
|
$jam_keluar = 'Belum Masuk Kerja';
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
$data[$i]['nik_karyawan'] = $value['nik_karyawan'];
|
||||||
|
$data[$i]['nama'] = $value['nama'];
|
||||||
|
$data[$i]['jam_masuk'] = $jam_masuk;
|
||||||
|
$data[$i]['jam_keluar'] = $jam_keluar;
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
|
||||||
|
// foreach ($ket_detail as $key => $value) {
|
||||||
|
|
||||||
|
// $data[$i]['nik_karyawan'] = $value['nik_karyawan'];
|
||||||
|
// $data[$i]['jam_masuk'] = $value['jam_masuk'];
|
||||||
|
// $data[$i]['jam_keluar'] = $value['jam_keluar'];
|
||||||
|
// $i++;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// $data = array_reverse($data, true);
|
||||||
|
$out = array_values($data);
|
||||||
|
echo json_encode($out);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
echo json_encode(array());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
elseif ($this->input->post('proses') == 'table_absensi_detail') {
|
||||||
|
$i = 1;
|
||||||
|
$cek_data = $this->model->tampil_data_where('tb_absensi',['bulan' => $this->input->post('bulan'), ' tahun' => $this->input->post('tahun')])->result();
|
||||||
|
|
||||||
|
|
||||||
|
if(count($cek_data) > 0){
|
||||||
|
$ket = json_decode($cek_data[0]->detail,true);
|
||||||
|
|
||||||
|
/// atur kembali array berdasarkan tanggal
|
||||||
|
foreach ($ket as $key => $value) {
|
||||||
|
$day = date('l', strtotime($this->input->post('tahun').'-'.$this->input->post('bulan').'-'.$value['tanggal']));
|
||||||
|
|
||||||
|
// $data[$i]['no'] = $i;
|
||||||
|
$data[$i]['tanggal'] = $value['tanggal'].'-'.$this->input->post('bulan').'-'.$this->input->post('tahun');
|
||||||
|
$data[$i]['hari'] = $this->model->hari($day);
|
||||||
|
// $data[$i]['ket'] = 'Rp. '. number_format($value['simpanan']);
|
||||||
|
// $data[$i]['foto'] = $value['foto'];
|
||||||
|
|
||||||
|
$i++;
|
||||||
|
|
||||||
|
}
|
||||||
|
$data = array_reverse($data, true);
|
||||||
|
$out = array_values($data);
|
||||||
|
echo json_encode($out);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
echo json_encode(array());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
elseif ($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,"*");
|
$list = $this->m_tabel_ss->get_datatables(array('bulan','tahun'),array('tahun','bulan',null),array('id_absensi' => 'desc'),"tb_absensi",null,null,"*");
|
||||||
$data = array();
|
$data = array();
|
||||||
$no = 0;
|
$no = 0;
|
||||||
@ -96,6 +252,9 @@ class Home extends CI_Controller {
|
|||||||
$cek_data = $this->model->tampil_data_where('tb_absensi',['tahun' => $tahun,'bulan' => $bulan])->result();
|
$cek_data = $this->model->tampil_data_where('tb_absensi',['tahun' => $tahun,'bulan' => $bulan])->result();
|
||||||
|
|
||||||
if (count($cek_data) > 0) {
|
if (count($cek_data) > 0) {
|
||||||
|
$main['tahun'] = $tahun;
|
||||||
|
$main['bulan'] = $bulan;
|
||||||
|
$this->load->view('home/menu/laporan_detail', $main);
|
||||||
|
|
||||||
}else{
|
}else{
|
||||||
redirect('/home/laporan');
|
redirect('/home/laporan');
|
||||||
@ -107,7 +266,7 @@ class Home extends CI_Controller {
|
|||||||
}
|
}
|
||||||
|
|
||||||
else{
|
else{
|
||||||
$main['header'] = 'Halaman Laporan Absensi';
|
|
||||||
|
|
||||||
$this->load->view('home/menu/laporan', $main);
|
$this->load->view('home/menu/laporan', $main);
|
||||||
}
|
}
|
||||||
@ -125,26 +284,11 @@ class Home extends CI_Controller {
|
|||||||
|
|
||||||
|
|
||||||
function try2(){
|
function try2(){
|
||||||
$cek_absensi = $this->model->tampil_data_where('tb_absensi',['bulan' => 4,'tahun' => 2021])->result();
|
if('2021-04-01' > '2021-04-07'){
|
||||||
$array_absensi = json_decode($cek_absensi[0]->detail,true);
|
print_r('tanggal lebih besar');
|
||||||
foreach ($array_absensi as $key => $value) {
|
}else{
|
||||||
if($value['tanggal'] == 29){
|
print_r('tanggal lebih kecil');
|
||||||
foreach ($value['absensi'] as $key1 => $value1) {
|
|
||||||
if($value1['nik_karyawan'] == 56465456465465 ){
|
|
||||||
if ($value1['jam_keluar'] == '-') {
|
|
||||||
$array_absensi[$key]['absensi'][$key1] = array(
|
|
||||||
'nik_karyawan' => 56465456465465 ,
|
|
||||||
'jam_masuk' => "21:32:50",
|
|
||||||
'jam_keluar' => "23:32:50",
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
print_r($array_absensi);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -280,7 +280,7 @@
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function detail_karyawan(nik_karyawan){
|
function detail_karyawan(nik_karyawan,nama){
|
||||||
// console.log(nik_karyawan)
|
// console.log(nik_karyawan)
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: url+"api_server/karyawan",
|
url: url+"api_server/karyawan",
|
||||||
|
|||||||
233
application/views/home/menu/laporan_detail.php
Normal file
233
application/views/home/menu/laporan_detail.php
Normal file
@ -0,0 +1,233 @@
|
|||||||
|
<!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">
|
||||||
|
<input type="hidden" id="val_bulan" value="<?=$bulan?>">
|
||||||
|
<input type="hidden" id="val_tahun" value="<?=$tahun?>">
|
||||||
|
</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>No</th>
|
||||||
|
<th>Tanggal</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_absensi').DataTable({
|
||||||
|
responsive: true,
|
||||||
|
"ajax": {
|
||||||
|
"type": "POST",
|
||||||
|
"url": url+'home/laporan/',
|
||||||
|
"data" :{'proses' : 'table_absensi_detail', 'bulan' : $("#val_bulan").val(), 'tahun' : $("#val_tahun").val()},
|
||||||
|
"timeout": 120000,
|
||||||
|
"dataSrc": function (json) {
|
||||||
|
// console.log(json);
|
||||||
|
if(json != null){
|
||||||
|
return json
|
||||||
|
} else {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sAjaxDataProp": "",
|
||||||
|
"width": "100%",
|
||||||
|
"order": [[ 0, "asc" ]],
|
||||||
|
"aoColumns": [
|
||||||
|
{
|
||||||
|
"mData": null,
|
||||||
|
"title": "No",
|
||||||
|
render: function (data, type, row, meta) {
|
||||||
|
return meta.row + meta.settings._iDisplayStart + 1;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"mData": null,
|
||||||
|
"title": "Tanggal",
|
||||||
|
"render": function (data, row, type, meta) {
|
||||||
|
return data.tanggal;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"mData": null,
|
||||||
|
"title": "Hari",
|
||||||
|
"render": function (data, row, type, meta) {
|
||||||
|
return data.hari;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"mData": null,
|
||||||
|
"title": "Aksi",
|
||||||
|
"sortable": false,
|
||||||
|
"render": function (data, row, type, meta) {
|
||||||
|
let btn = '';
|
||||||
|
|
||||||
|
|
||||||
|
btn += `<button title="Lihat Detail Absensi Tanggal ${data.tanggal}" class="btn btn-primary btn-circle btn-sm waves-effect waves-light" onclick="detail_absensi('${data.tanggal}')"><i class="fa fa-search"></i></button>`;
|
||||||
|
|
||||||
|
|
||||||
|
return btn;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
]
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
datatables();
|
||||||
|
|
||||||
|
async function detail_absensi(tanggal){
|
||||||
|
var tanggal = await tanggal.split('-');
|
||||||
|
// console.log(tanggal);
|
||||||
|
await block_ui();
|
||||||
|
await $("#sini_modalnya .modal-header .modal-title").html(`Absensi Tanggal ${tanggal[0]}-${tanggal[1]}-${tanggal[2]}`)
|
||||||
|
await $("#sini_modalnya .modal-dialog").attr('class','modal-dialog')
|
||||||
|
|
||||||
|
let html = await `<div class="row small-spacing">
|
||||||
|
<div class="col-lg-12 col-xs-12" style="overflow-x: auto; ">
|
||||||
|
<table id="table_absensi_detail" class="table table-striped table-bordered display" style="width:100%"></table
|
||||||
|
</div>
|
||||||
|
</div>`
|
||||||
|
|
||||||
|
await $("#sini_modalnya .modal-body").html(html)
|
||||||
|
|
||||||
|
$('#table_absensi_detail').DataTable({
|
||||||
|
responsive: true,
|
||||||
|
"ajax": {
|
||||||
|
"type": "POST",
|
||||||
|
"url": url+'home/laporan/',
|
||||||
|
"data" :{'proses' : 'table_absensi_detail_tanggal', 'bulan' : tanggal[1], 'tahun' : tanggal[2], 'tanggal' : tanggal[0]},
|
||||||
|
"timeout": 120000,
|
||||||
|
"dataSrc": function (json) {
|
||||||
|
// console.log(json);
|
||||||
|
if(json != null){
|
||||||
|
return json
|
||||||
|
} else {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sAjaxDataProp": "",
|
||||||
|
"width": "100%",
|
||||||
|
"order": [[ 0, "asc" ]],
|
||||||
|
"aoColumns": [
|
||||||
|
{
|
||||||
|
"mData": null,
|
||||||
|
"title": "NIK",
|
||||||
|
render: function (data, type, row, meta) {
|
||||||
|
return data.nik_karyawan;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"mData": null,
|
||||||
|
"title": "Nama",
|
||||||
|
"render": function (data, row, type, meta) {
|
||||||
|
return data.nama;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"mData": null,
|
||||||
|
"title": "Jam Masuk",
|
||||||
|
"render": function (data, row, type, meta) {
|
||||||
|
return data.jam_masuk;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"mData": null,
|
||||||
|
"title": "Jam Masuk",
|
||||||
|
"render": function (data, row, type, meta) {
|
||||||
|
return data.jam_keluar;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// {
|
||||||
|
// "mData": null,
|
||||||
|
// "title": "Jam Keluar",
|
||||||
|
// "sortable": false,
|
||||||
|
// "render": function (data, row, type, meta) {
|
||||||
|
// let btn = '';
|
||||||
|
|
||||||
|
|
||||||
|
// btn += `<button title="Lihat Detail Absensi Tanggal ${data.tanggal}" class="btn btn-primary btn-circle btn-sm waves-effect waves-light" onclick="detail_absensi('${data.tanggal}')"><i class="fa fa-search"></i></button>`;
|
||||||
|
|
||||||
|
|
||||||
|
// return btn;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
]
|
||||||
|
});
|
||||||
|
|
||||||
|
await $.unblockUI()
|
||||||
|
|
||||||
|
await $('#sini_modalnya').modal('show');
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
278
application/views/home/menu/libur.php
Normal file
278
application/views/home/menu/libur.php
Normal file
@ -0,0 +1,278 @@
|
|||||||
|
<!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"></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_table_user')">List Karyawan</h4>
|
||||||
|
<!-- /.box-title -->
|
||||||
|
<div class="card-content" style="overflow-x: auto; display: none;" id="div_table_user">
|
||||||
|
<table id="table_list_karyawan" class="table table-striped table-bordered display" style="width:100%">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>No</th>
|
||||||
|
<th>NIK</th>
|
||||||
|
<th>Nama</th>
|
||||||
|
<th>Aksi</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
|
||||||
|
</table>
|
||||||
|
<hr>
|
||||||
|
<center><button type="button" class="btn btn-primary btn-sm waves-effect waves-light">Cetak Laporan</button></center>
|
||||||
|
</div>
|
||||||
|
<!-- /.card-content -->
|
||||||
|
</div>
|
||||||
|
<!-- /.box-content -->
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-2 col-md-2"></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_list_karyawan').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/karyawan",
|
||||||
|
"type": "POST",
|
||||||
|
data : {proses : 'table_karyawan'}
|
||||||
|
},
|
||||||
|
|
||||||
|
"columnDefs": [
|
||||||
|
{
|
||||||
|
"targets": [ 0 ],
|
||||||
|
"orderable": false,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
datatables()
|
||||||
|
|
||||||
|
async function detail_karyawan(nik_karyawan,nama){
|
||||||
|
// console.log(nik_karyawan);
|
||||||
|
await block_ui();
|
||||||
|
let html = await `<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="${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="${nama}">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="exampleInputPassword1">Tanggal Mulai Libur</label>
|
||||||
|
<input type="date" class="form-control" id="tanggal_mulai_libur" name="tanggal_mulai_libur" value="${get_tomorrow('hari')}" min="${get_tomorrow('hari')}">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="exampleInputPassword1">Tanggal Selesai Libur</label>
|
||||||
|
<input type="date" class="form-control" id="tanggal_selesai_libur" name="tanggal_selesai_libur" value="${get_tomorrow('hari')}" min="${get_tomorrow('hari')}">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="exampleInputPassword1">Keterangan Libur</label>
|
||||||
|
<textarea style="resize:none" class="form-control" id="keterangan_libur" name="keterangan_libur" placeholder="Masukkan Ketrangan Libur"></textarea>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group"><center><button type="button" class="btn btn-primary btn-sm waves-effect waves-light" onclick="tambah_libur()">Tambah Libur</button></center></div>
|
||||||
|
|
||||||
|
<hr>
|
||||||
|
<div class="form-group" style="overflow-x:auto">
|
||||||
|
<table id="table_libur_detail" class="table table-striped table-bordered display" style="width:100%"></table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</form>
|
||||||
|
<!-- /.card-content -->
|
||||||
|
</div>
|
||||||
|
</div>`
|
||||||
|
|
||||||
|
|
||||||
|
await $("#sini_modalnya .modal-body").html(html)
|
||||||
|
|
||||||
|
await $('#table_libur_detail').DataTable({
|
||||||
|
responsive: true,
|
||||||
|
"ajax": {
|
||||||
|
"type": "POST",
|
||||||
|
"url": url+'home/libur/',
|
||||||
|
"data" :{'proses' : 'table_libur_detail', nik_karyawan : nik_karyawan},
|
||||||
|
"timeout": 120000,
|
||||||
|
"dataSrc": function (json) {
|
||||||
|
// console.log(json);
|
||||||
|
if(json != null){
|
||||||
|
return json
|
||||||
|
} else {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sAjaxDataProp": "",
|
||||||
|
"width": "100%",
|
||||||
|
"order": [[ 0, "asc" ]],
|
||||||
|
"aoColumns": [
|
||||||
|
{
|
||||||
|
"mData": null,
|
||||||
|
"title": "No",
|
||||||
|
render: function (data, type, row, meta) {
|
||||||
|
return meta.row + meta.settings._iDisplayStart + 1;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"mData": null,
|
||||||
|
"title": "Tanggal",
|
||||||
|
"render": function (data, row, type, meta) {
|
||||||
|
return data.tanggal;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"mData": null,
|
||||||
|
"title": "Hari",
|
||||||
|
"render": function (data, row, type, meta) {
|
||||||
|
return data.hari;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"mData": null,
|
||||||
|
"title": "Keterangan",
|
||||||
|
"render": function (data, row, type, meta) {
|
||||||
|
return data.keterangan;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
]
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
await $("#sini_modalnya .modal-header .modal-title").html("Pengaturan Libur Karyawan")
|
||||||
|
await $("#sini_modalnya .modal-dialog").attr('class','modal-dialog')
|
||||||
|
|
||||||
|
await $.unblockUI();
|
||||||
|
await $('#sini_modalnya').modal('show');
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
async function tambah_libur(){
|
||||||
|
let nik_karyawan = $("#nik_karyawan_detail").val();
|
||||||
|
let tanggal_mulai_libur = $("#tanggal_mulai_libur").val();
|
||||||
|
let tanggal_selesai_libur = $("#tanggal_selesai_libur").val();
|
||||||
|
let keterangan_libur = $("#keterangan_libur").val();
|
||||||
|
|
||||||
|
if (tanggal_mulai_libur > tanggal_selesai_libur) {
|
||||||
|
toastnya('Tanggal Mulai Libur Lebih Besar Dari Tanggal Selesai Libur<br>Sila Atur Kembali Tanggal Libur');
|
||||||
|
$("#tanggal_mulai_libur").focus();
|
||||||
|
}else if (keterangan_libur == '') {
|
||||||
|
toastnya('Keterangan Libur Harus Diisi');
|
||||||
|
$("#keterangan_libur").focus();
|
||||||
|
}else{
|
||||||
|
|
||||||
|
const listDate = [];
|
||||||
|
const startDate =tanggal_mulai_libur;
|
||||||
|
const endDate = tanggal_selesai_libur;
|
||||||
|
const dateMove = new Date(startDate);
|
||||||
|
let strDate = startDate;
|
||||||
|
let array;
|
||||||
|
|
||||||
|
if (startDate == endDate) {
|
||||||
|
array = {tanggal : startDate, ket : keterangan_libur}
|
||||||
|
listDate.push(array);
|
||||||
|
} else {
|
||||||
|
while (strDate < endDate) {
|
||||||
|
strDate = dateMove.toISOString().slice(0, 10);
|
||||||
|
array = {tanggal : strDate, ket : keterangan_libur}
|
||||||
|
listDate.push(array);
|
||||||
|
dateMove.setDate(dateMove.getDate() + 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
let where = {nik_karyawan : nik_karyawan}
|
||||||
|
let detail = {detail : JSON.stringify(listDate)}
|
||||||
|
|
||||||
|
// console.log(listDate)
|
||||||
|
$.ajax({
|
||||||
|
url: url+"api_server/libur",
|
||||||
|
type: 'put',
|
||||||
|
data: {where : where, detail : detail},
|
||||||
|
beforeSend: function(res) {
|
||||||
|
block_ui()
|
||||||
|
},
|
||||||
|
success: function (response) {
|
||||||
|
$.unblockUI();
|
||||||
|
console.log(response)
|
||||||
|
|
||||||
|
},
|
||||||
|
error: function(XMLHttpRequest, textStatus, errorThrown) {
|
||||||
|
// console.log(errorThrown)
|
||||||
|
bad_request(errorThrown,JSON.parse(XMLHttpRequest.responseText).message,null)
|
||||||
|
$.unblockUI();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@ -30,6 +30,22 @@ function get_time(stat){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function get_tomorrow(stat){
|
||||||
|
let today = new Date((new Date()).valueOf() + 86400000)
|
||||||
|
let dd = String(today.getDate()).padStart(2, '0');
|
||||||
|
let mm = String(today.getMonth() + 1).padStart(2, '0'); //January is 0!
|
||||||
|
let yyyy = today.getFullYear();
|
||||||
|
let h = addZero(today.getHours());
|
||||||
|
let m = addZero(today.getMinutes());
|
||||||
|
let s = addZero(today.getSeconds());
|
||||||
|
|
||||||
|
if (stat == 'hari') {
|
||||||
|
return yyyy+'-'+mm+'-'+dd;
|
||||||
|
}else if(stat == 'all') {
|
||||||
|
return yyyy+'-'+mm+'-'+dd+' '+h + ":" + m + ":" + s;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function toastnya(mesej){
|
function toastnya(mesej){
|
||||||
toastr.options = {
|
toastr.options = {
|
||||||
"closeButton": true,
|
"closeButton": true,
|
||||||
|
|||||||
154
barcode_absensi.sql
Normal file
154
barcode_absensi.sql
Normal file
@ -0,0 +1,154 @@
|
|||||||
|
-- phpMyAdmin SQL Dump
|
||||||
|
-- version 5.0.4
|
||||||
|
-- https://www.phpmyadmin.net/
|
||||||
|
--
|
||||||
|
-- Host: 127.0.0.1
|
||||||
|
-- Generation Time: May 06, 2021 at 07:32 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: `barcode_absensi`
|
||||||
|
--
|
||||||
|
|
||||||
|
-- --------------------------------------------------------
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `tb_absensi`
|
||||||
|
--
|
||||||
|
|
||||||
|
CREATE TABLE `tb_absensi` (
|
||||||
|
`id_absensi` int(4) NOT NULL,
|
||||||
|
`bulan` varchar(2) DEFAULT NULL,
|
||||||
|
`tahun` varchar(4) DEFAULT NULL,
|
||||||
|
`detail` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Dumping data for table `tb_absensi`
|
||||||
|
--
|
||||||
|
|
||||||
|
INSERT INTO `tb_absensi` (`id_absensi`, `bulan`, `tahun`, `detail`) VALUES
|
||||||
|
(7, '04', '2021', '[{\"tanggal\":\"29\",\"absensi\":[{\"nik_karyawan\":\"56465456465465\",\"jam_masuk\":\"23:25:16\",\"jam_keluar\":\"-\"}]}]'),
|
||||||
|
(9, '05', '2021', '[{\"tanggal\":\"01\",\"absensi\":[{\"nik_karyawan\":\"56465456465465\",\"jam_masuk\":\"10:11:34\",\"jam_keluar\":\"10:11:49\"}]},{\"tanggal\":\"02\",\"absensi\":[{\"nik_karyawan\":\"56465456465465\",\"jam_masuk\":\"00:00:58\",\"jam_keluar\":\"00:01:10\"},{\"nik_karyawan\":\"23213123123123\",\"jam_masuk\":\"00:04:18\",\"jam_keluar\":\"00:04:28\"},{\"nik_karyawan\":\"45454545545454\",\"jam_masuk\":\"00:05:17\",\"jam_keluar\":\"00:05:32\"}]},{\"tanggal\":\"07\",\"absensi\":[{\"nik_karyawan\":\"56465456465465\",\"jam_masuk\":\"00:23:08\",\"jam_keluar\":\"00:23:17\"}]}]');
|
||||||
|
|
||||||
|
-- --------------------------------------------------------
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `tb_karyawan`
|
||||||
|
--
|
||||||
|
|
||||||
|
CREATE TABLE `tb_karyawan` (
|
||||||
|
`nik_karyawan` varchar(14) NOT NULL,
|
||||||
|
`nama` varchar(255) NOT NULL,
|
||||||
|
`tempat_lahir` varchar(255) NOT NULL,
|
||||||
|
`tanggal_lahir` date NOT NULL,
|
||||||
|
`jk` varchar(10) NOT NULL,
|
||||||
|
`agama` varchar(20) NOT NULL,
|
||||||
|
`status` varchar(15) NOT NULL,
|
||||||
|
`pendidikan` varchar(3) NOT NULL,
|
||||||
|
`alamat` varchar(225) NOT NULL,
|
||||||
|
`jabatan` varchar(225) NOT NULL,
|
||||||
|
`tanggal_daftar` date DEFAULT current_timestamp(),
|
||||||
|
`detail` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`detail`))
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Dumping data for table `tb_karyawan`
|
||||||
|
--
|
||||||
|
|
||||||
|
INSERT INTO `tb_karyawan` (`nik_karyawan`, `nama`, `tempat_lahir`, `tanggal_lahir`, `jk`, `agama`, `status`, `pendidikan`, `alamat`, `jabatan`, `tanggal_daftar`, `detail`) VALUES
|
||||||
|
('45454545545454', 'Kicap Karan 1', '', '0000-00-00', '', '', '', '', '', '', '2021-04-06', '[{\"tanggal\":\"2021-05-07\",\"ket\":\"asdasdasd\"},{\"tanggal\":\"2021-05-08\",\"ket\":\"asdasdasd\"}]'),
|
||||||
|
('56465456465465', 'asdasdas', 'asdasd', '1992-08-30', 'Laki-laki', 'Kristen Protestan', 'Belum Menikah', 'S1', 'asdasd', 'asdasd', '2021-04-06', NULL),
|
||||||
|
('65656566666665', 'Percobaan2', 'asdasdsads1', '1992-08-30', 'Laki-laki', 'Kristen Protestan', 'Belum Menikah', 'S1', 'Tawau', 'asdasdasds1', '2021-05-08', NULL);
|
||||||
|
|
||||||
|
-- --------------------------------------------------------
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `tb_login`
|
||||||
|
--
|
||||||
|
|
||||||
|
CREATE TABLE `tb_login` (
|
||||||
|
`id_login` int(3) NOT NULL,
|
||||||
|
`username` varchar(225) NOT NULL,
|
||||||
|
`password` varchar(225) NOT NULL,
|
||||||
|
`nik_karyawan` varchar(14) DEFAULT NULL,
|
||||||
|
`level` varchar(10) NOT NULL
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Dumping data for table `tb_login`
|
||||||
|
--
|
||||||
|
|
||||||
|
INSERT INTO `tb_login` (`id_login`, `username`, `password`, `nik_karyawan`, `level`) VALUES
|
||||||
|
(1, 'admin absensi', '584c60ea9b41500d26f446a2543d8a98', NULL, 'admin'),
|
||||||
|
(2, '56465465456465', 'd41d8cd98f00b204e9800998ecf8427e', NULL, ''),
|
||||||
|
(3, '56465456465465', '176fd7322b6beaf7afdda3b88ee76b9b', NULL, ''),
|
||||||
|
(4, 'admin petugas', '77c10df6c2867dddbe812c3c950b0a73', NULL, 'petugas'),
|
||||||
|
(5, '23213123123123', '38f93121eee2c37c5aaf7902ecad0843', NULL, ''),
|
||||||
|
(6, '78787878787878', '81bdbd39af125a6bfb21282c810ecb86', NULL, ''),
|
||||||
|
(7, '65656566666665', '4a29f705441a615ef353fcae6cf781e1', NULL, '');
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Indexes for dumped tables
|
||||||
|
--
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Indexes for table `tb_absensi`
|
||||||
|
--
|
||||||
|
ALTER TABLE `tb_absensi`
|
||||||
|
ADD PRIMARY KEY (`id_absensi`);
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Indexes for table `tb_karyawan`
|
||||||
|
--
|
||||||
|
ALTER TABLE `tb_karyawan`
|
||||||
|
ADD PRIMARY KEY (`nik_karyawan`);
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Indexes for table `tb_login`
|
||||||
|
--
|
||||||
|
ALTER TABLE `tb_login`
|
||||||
|
ADD PRIMARY KEY (`id_login`),
|
||||||
|
ADD KEY `nik_karyawan` (`nik_karyawan`);
|
||||||
|
|
||||||
|
--
|
||||||
|
-- AUTO_INCREMENT for dumped tables
|
||||||
|
--
|
||||||
|
|
||||||
|
--
|
||||||
|
-- AUTO_INCREMENT for table `tb_absensi`
|
||||||
|
--
|
||||||
|
ALTER TABLE `tb_absensi`
|
||||||
|
MODIFY `id_absensi` int(4) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=10;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- AUTO_INCREMENT for table `tb_login`
|
||||||
|
--
|
||||||
|
ALTER TABLE `tb_login`
|
||||||
|
MODIFY `id_login` int(3) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=8;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Constraints for dumped tables
|
||||||
|
--
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Constraints for table `tb_login`
|
||||||
|
--
|
||||||
|
ALTER TABLE `tb_login`
|
||||||
|
ADD CONSTRAINT `tb_login_ibfk_1` FOREIGN KEY (`nik_karyawan`) REFERENCES `tb_karyawan` (`nik_karyawan`) ON DELETE CASCADE ON UPDATE CASCADE;
|
||||||
|
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 */;
|
||||||
Reference in New Issue
Block a user