Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @extends('layouts.master')
- @section('css')
- <style>
- .swal-modal {
- background-color: #FE9508;
- }
- .swal-title {
- color: #ffffff;
- }
- .swal-button--confirm{
- background-color: #064A25;
- }
- .swal-button--cancel {
- background-color: #ff0000;
- color: #ffffff;
- }
- .swal-footer {
- text-align: center;
- }
- table {
- table-layout: auto;
- width: 1500px;
- position: sticky;
- overflow-x: auto;
- /* transform-origin: right top; */
- }
- /**
- Fix container luar
- */
- .fixed-table-container {
- overflow-y: hidden;
- overflow-x: hidden;
- height: 500px;
- }
- /**
- Fix container dalam
- */
- .fixed-table-body {
- overflow-y: scroll;
- overflow-x: scroll;
- height: 500px;
- }
- thead, tr {
- display: table;
- width: 1550px;
- position: sticky;
- top: 0;
- table-layout: fixed;
- /**
- Menaruh header di lapisan z paling atas
- */
- z-index: 99;
- }
- tbody {
- display: block;
- position: sticky;
- table-layout: auto;
- }
- td{
- height: 100px;
- }
- tbody, tr:hover {
- z-index: -99;
- }
- .btn-info{
- width: 50%;
- margin: 0 auto;
- text-align: center;
- }
- .horizontal-scroll-wrapper {
- height: 500px;
- }
- .horizontal-scroll-wrapper > div {
- height: 20px;
- }
- .adjust-col {
- width: 100px !important;
- }
- .nomor-col {
- width: 70px !important;
- }
- .sp-col {
- width: 310px !important;
- }
- </style>
- @endsection
- @section('title')
- Surat Peringatan
- @endsection
- @section('content')
- @if(Auth::user()->role->is_read_sp == 1)
- <div class="row">
- <div class="col-lg-12">
- <div class="row">
- <div class="text-left margin-tb mt-3">
- @if ($message = Session::get('success'))
- <div class="alert alert-success alert-dismissible fade show" role="alert">
- <strong>
- <p>{{ $message }}</p>
- </strong>
- <button type="button" class="close" data-dismiss="alert" aria-label="Close">
- <span aria-hidden="true">×</span>
- </button>
- </div>
- @endif
- </div>
- <div class="form-inline margin-tb mt-3 mb-1 cari">
- @if(Auth::user()->role->is_create_sp == 1)
- <div class="col-lg-12">
- <a class="btn btn-success btn-sm " href="{{ route('peringatan.create') }}" role="button">
- Input SP
- </a>
- </div>
- @endif
- </div>
- <div class="col-lg-12 margin-tb mb-3 ">
- <!-- <div class="form-inline">
- {{-- <a href="{{route('peringatan.edit')}}" class="btn btn-success btn-sm">Reset</a> --}}
- </div> -->
- <div class="text-right mb-1">
- <select id="selectgroup" style="width: 263px !important; height: 38px !important; border-radius: 0.25rem; border: 1px solid #ced4da;">
- <option value="-">Pilih Group</option>
- @foreach ($group as $data)
- <option value="{{$data->id}}">{{$data->nama}}</option>
- @endforeach
- </select>
- <select id="selectkaryawan" style="width: 263px !important; height: 38px !important; border-radius: 0.25rem; border: 1px solid #ced4da;">
- <option value="-">Pilih Karyawan</option>
- @foreach ($karyawan as $data)
- <option value="{{$data->id}}">{{$data->nama}}</option>
- @endforeach
- </select>
- </div>
- <!-- <div class="form-inline my-2 my-lg-0 float-right ">
- <input type="date" id="filtertanggal" class="form-control" onchange="filterTanggal(event);">
- </div> -->
- {{-- <br>
- <br> --}}
- <!-- <div class="text-right mb-1">
- <a role="button" type="submit" class="btn btn-outline-success my-2 my-sm-0 aksi"><i class="fas fa-file-export"></i></a>
- </div> -->
- <table
- id="hadir-harian"
- data-row-style="rowStyle"
- data-url="peringatan/apiperingatan"
- data-pagination="true"
- data-pagination-h-align="left"
- data-pagination-detail-h-align="right"
- data-search="true"
- data-show-search-button="true"
- data-show-fullscreen="true"
- data-show-export="false"
- data-search-on-enter-key="true"
- data-filter-control="true"
- data-page-list="[10, 20, 50, 100, all]"
- class="col-lg-12 table-sm table-hover">
- <thead>
- <tr>
- <th data-sortable="false" data-field="index" data-formatter="formatUrutan" class="nomor-col" data-searchable="false">No.</th>
- <!-- <th data-sortable="true" data-field="tanggal">Tanggal</th> -->
- <th data-sortable="true" data-field="nama_karyawan" data-formatter="lihatdetilriwayat" data-searchable="true" class="adjust-col">Nama</th>
- <th data-sortable="true" data-field="nik" data-searchable="true" class="adjust-col">Group</th>
- <th data-sortable="true" data-field="jumlah_tidak_hadir" data-searchable="true" class="adjust-col">Jumlah Tidak<br/>Hadir (kali)</th>
- <th data-sortable="true" data-field="sp1" data-formatter="cetaksp1" data-searchable="false" class="sp-col">Terbitkan<br/>SP 1</th>
- <th data-sortable="true" data-field="sp2" data-formatter="cetaksp2" data-searchable="false" class="sp-col">Terbitkan<br/>SP 2</th>
- <th data-sortable="true" data-field="sp3" data-formatter="cetaksp3" data-searchable="false" class="sp-col">Terbitkan<br/>SP 3</th>
- <!-- <th data-sortable="true" data-field="print" data-formatter="print">Cetak</th> -->
- <!-- <th data-sortable="true" data-field="reset" data-formatter="reset"></th> -->
- </tr>
- </thead>
- </table>
- </div>
- </div>
- </div>
- </div>
- @else
- Anda tidak memiliki hak akses ke tempat ini
- @endif
- @endsection
- @section('js')
- {{-- <script src='https://kit.fontawesome.com/a076d05399.js'></script> --}}
- <script>
- let tanggal = moment().format("YYYY-MM-DD");
- $tabel_harian = $('#hadir-harian');
- $tabel_harian.bootstrapTable();
- $('#selectgroup').change(function(){
- var selected = $(this).children("option:selected").val();
- console.log(selected);
- if(selected != '-') {
- $tabel_harian.bootstrapTable('filterBy', {
- group_id: parseInt(selected)
- });
- } else {
- $tabel_harian.bootstrapTable('filterBy', {});
- }
- });
- $('#selectkaryawan').change(function(){
- var selected = $(this).children("option:selected").val();
- console.log(selected);
- if(selected != '-') {
- $tabel_harian.bootstrapTable('filterBy', {
- karyawan_id: parseInt(selected)
- });
- } else {
- $tabel_harian.bootstrapTable('filterBy', {});
- }
- });
- function filterTanggal(e) {
- tanggal = e.target.value;
- console.log(e.target.value);
- $tabel_harian.bootstrapTable('filterBy', {
- tanggal: e.target.value
- });
- }
- function formatUrutan(value, row, index) {
- return index + 1;
- }
- function lihatdetilriwayat(value, row) {
- return `<a href="peringatan/show/:id">:nama</a>`.replace(':id', row.id).replace(':nama', row.nama_karyawan);
- }
- function cetaksp1(value, row) {
- if(row.jumlah_tidak_hadir >= (row.limit_sp_1 - 1)) {
- if(row.status_terbit_sp1 != 'batal') {
- return `
- @if(Auth::user()->role->is_terbitkan_sp == 1)
- <div class="row" style="margin: 0">
- <a href="peringatan/print/:id/1/:tidak_hadir" class="btn btn-sm btn-info" style="width: 200px; text-align:center; margin-left: 10px; margin-right: 10px;">SP1</a>
- <a href="peringatan/batal/:spid/1/:tidak_hadir" class="btn btn-sm btn-danger" style="width: 200px; text-align:center; margin-left: 10px; margin-right: 10px;">Batalkan SP1</a>
- </div>
- @endif
- `.replace(':id', row.karyawan_id).replace(':spid', row.id).replace(':tidak_hadir', row.jumlah_tidak_hadir).replace(':tidak_hadir', row.jumlah_tidak_hadir);
- }
- } else {
- return '-';
- }
- }
- function cetaksp2(value, row) {
- if(row.jumlah_tidak_hadir >= (row.limit_sp_2 - 1)) {
- if(row.status_terbit_sp2 != 'batal') {
- return `
- @if(Auth::user()->role->is_terbitkan_sp == 1)
- <div class="row" style="margin: 0">
- <a href="peringatan/print/:id/2/:tidak_hadir" class="btn btn-sm btn-info" style="width: 200px; text-align:center; margin-left: 10px; margin-right: 10px;">SP2</a>
- <a href="peringatan/batal/:spid/2/:tidak_hadir" class="btn btn-sm btn-danger" style="width: 200px; text-align:center; margin-left: 10px; margin-right: 10px;">Batalkan SP2</a>
- </div>
- @endif
- `.replace(':id', row.karyawan_id).replace(':spid', row.id).replace(':tidak_hadir', row.jumlah_tidak_hadir).replace(':tidak_hadir', row.jumlah_tidak_hadir);
- }
- } else {
- return '-';
- }
- }
- function cetaksp3(value, row) {
- if(row.jumlah_tidak_hadir >= (row.limit_sp_3 - 1)) {
- if(row.status_terbit_sp3 != 'batal') {
- return `
- @if(Auth::user()->role->is_terbitkan_sp == 1)
- <div class="row" style="margin: 0">
- <a href="peringatan/print/:id/3/:tidak_hadir" class="btn btn-sm btn-info" style="width:200px; margin-left: 10px; margin-right: 10px;">SP3</a>
- <a href="peringatan/batal/:spid/3/:tidak_hadir" class="btn btn-sm btn-danger" style="width: 200px; margin-left: 10px; margin-right: 10px;">Batalkan SP3</a>
- </div>
- @endif
- `.replace(':id', row.karyawan_id).replace(':spid', row.id).replace(':tidak_hadir', row.jumlah_tidak_hadir).replace(':tidak_hadir', row.jumlah_tidak_hadir);
- }
- } else {
- return '-';
- }
- }
- function formatHari(value, row, index) {
- let hari_angka = null;
- if(tanggal) {
- hari_angka = moment(tanggal).day()
- } else {
- hari_angka = moment().day()
- }
- let hari;
- switch(hari_angka) {
- case 0:
- hari = 'Minggu';
- break;
- case 1:
- hari = 'Senin';
- break;
- case 2:
- hari = 'Selasa';
- break;
- case 3:
- hari = 'Rabu';
- break;
- case 4:
- hari = 'Kamis';
- break;
- case 5:
- hari = 'Jum at';
- break;
- case 6:
- hari = 'Sabtu';
- break;
- default:
- break;
- }
- return hari;
- }
- function formatTanggal(value, row, index) {
- if(tanggal) {
- return moment(tanggal).format("DD MMMM yyyy");
- } else {
- return moment().format("DD MMMM yyyy");
- }
- }
- function formatNik(value, row) {
- if(row.group_id) {
- return row.group.nama + "-" + row.groupno;
- } else {
- return '-'
- }
- }
- function formatDetail(value, row) {
- var detailLink = null;
- detailLink = `<a href="{{ route('peringatan.show', ':id') }}">` + value + `</a>`;
- detailLink = detailLink.replace(':id', row.id);
- return detailLink;
- }
- function rowStyle(row, index) {
- let css_class = null;
- if(row.jumlah_tidak_hadir >= (row.limit_sp_1 - 1)) {
- css_class = 'table-danger'
- }
- return {
- classes: css_class
- };
- }
- function formatTidakHadir(value, row) {
- return Math.floor(row.tidak_hadir/4);
- }
- function calculateTidakHadir(value, row) {
- // let tanggal_presensi_sebelumnya = null;
- // let tanggal_presensi_saat_ini = null;
- // let tanggal_reset = null;
- // let jumlah_tidak_hadir = 0;
- // if(row.jadwal_id != null && row.jadwal_group_id != null){
- // let jumlah_hari = row.jadwalharikerja.checkbox_harikerja_senin + row.jadwalharikerja.checkbox_harikerja_selasa + row.jadwalharikerja.checkbox_harikerja_rabu + row.jadwalharikerja.checkbox_harikerja_kamis + row.jadwalharikerja.checkbox_harikerja_jumat + row.jadwalharikerja.checkbox_harikerja_sabtu + row.jadwalharikerja.checkbox_harikerja_minggu;
- // }
- // if(row.tanggal_reset) {
- // tanggal_reset = row.tanggal_reset;
- // } else {
- // tanggal_reset = row.tanggal_masuk;
- // }
- // if((row.presensis.length > 0) && (row.presensis !== undefined)) { // punya data presensi
- // for(let i = 0; i < row.presensis.length; i++) {
- // if(i == 0) {
- // tanggal_presensi_sebelumnya = moment(tanggal_reset);
- // tanggal_presensi_saat_ini = moment(row.presensis[i].tanggal_dan_waktu_tap);
- // let jarak_minggu = tanggal_presensi_saat_ini.diff(tanggal_presensi_sebelumnya, 'weeks');
- // if(row.jadwal_id != null && row.jadwal_group_id != null) {
- // jumlah_tidak_hadir = jarak_minggu * jumlah_hari;
- // }
- // tanggal_presensi_sebelumnya = moment(row.presensis[i].tanggal_dan_waktu_tap);
- // } else {
- // tanggal_presensi_saat_ini = moment(row.presensis[i].tanggal_dan_waktu_tap);
- // let jarak_minggu = tanggal_presensi_saat_ini.diff(tanggal_presensi_sebelumnya, 'weeks');
- // if(jarak_minggu > 0) {
- // if((row.jadwalharikerja.checkbox_harikerja_senin == 1) && (moment(row.presensis[i].tanggal_dan_waktu_tap).format(d) == 1)) {
- // } else if((row.jadwalharikerja.checkbox_harikerja_selasa == 1) && (moment(row.presensis[i].tanggal_dan_waktu_tap).format(d) == 2)) {
- // } else if((row.jadwalharikerja.checkbox_harikerja_rabu == 1) && (moment(row.presensis[i].tanggal_dan_waktu_tap).format(d) == 3)) {
- // } else if((row.jadwalharikerja.checkbox_harikerja_kamis == 1) && (moment(row.presensis[i].tanggal_dan_waktu_tap).format(d) == 4)) {
- // } else if((row.jadwalharikerja.checkbox_harikerja_jumat == 1) && (moment(row.presensis[i].tanggal_dan_waktu_tap).format(d) == 5)) {
- // } else if((row.jadwalharikerja.checkbox_harikerja_sabtu == 1) && (moment(row.presensis[i].tanggal_dan_waktu_tap).format(d) == 6)) {
- // } else if((row.jadwalharikerja.checkbox_harikerja_minggu == 1) && (moment(row.presensis[i].tanggal_dan_waktu_tap).format(d) == 0)) {
- // } else {
- // jumlah_tidak_hadir = jumlah_tidak_hadir + 1;
- // }
- // }
- // tanggal_presensi_sebelumnya = moment(row.presensis[i].tanggal_dan_waktu_tap);
- // }
- // }
- // } else { // ga pernah presensi dari awal sampai sekarang
- // tanggal_presensi_sebelumnya = moment(tanggal_reset);
- // tanggal_presensi_saat_ini = moment();
- // let jarak_minggu = tanggal_presensi_saat_ini.diff(tanggal_presensi_sebelumnya, 'weeks');
- // if(row.jadwal_id != null && row.jadwal_group_id != null) {
- // jumlah_tidak_hadir = jarak_minggu * jumlah_hari;
- // }
- // }
- if(row.jumlah_tidak_hadir >= 5) {
- return '<span style="color: red" class="sp">SP 5</span>';
- } else if(row.jumlah_tidak_hadir == 4) {
- return '<span style="color: orange">SP 4</span>';
- } else if(row.jumlah_tidak_hadir == 3) {
- return '<span style="color: yellow">SP 3</span>';
- } else {
- return '<span style="color: black"> - </span>';
- }
- }
- function reset(value, row) {
- if(row.posisi_sp > 0) {
- return '<a href="peringatan/reset/:id" class="btn btn-sm btn-success">Reset</a>'.replace(':id', row.id_karyawan);
- } else {
- return '-';
- }
- }
- function printPreview(printdata) {
- axios.post('peringatan/print', printdata).then(function(response) {
- console.log(response);
- });
- }
- function print(value, row) {
- if(row.posisi_sp > 0) {
- return `<a href="peringatan/print/:id/:sp/:tidak_hadir" class="btn btn-sm btn-info">Cetak</button>`.replace(':id', row.id_karyawan).replace(':sp', row.posisi_sp).replace(':tidak_hadir', row.tidak_hadir);
- } else {
- return '-';
- }
- }
- // Script Javascript Disini
- $('.delete-confirm').on('click', function (event) {
- event.preventDefault();
- const url = $(this).attr('href');
- swal({
- title: 'Apakah Anda Yakin menghapus grup?',
- text: "",
- type: 'warning',
- icon: 'warning',
- buttons:{
- confirm: {
- text : 'Ya, hapus!',
- className : 'btn btn-success'
- },
- cancel: {
- visible: true,
- text : 'Tidak',
- className: 'btn outline-success'
- }
- },
- }).then(function(value) {
- if (value) {
- window.location.href = url;
- }
- });
- });
- </script>
- @endsection
Add Comment
Please, Sign In to add comment