web-dinda-private/resources/views/operator/presensi/index.blade.php

188 lines
7.9 KiB
PHP

@if(session('error'))
<div class="alert alert-danger">{{ session('error') }}</div>
@endif
@extends('layouts.app_operator')
@section('content')
<div class="container mt-4">
<h3 class="mb-4">Presensi Harian Pekerja</h3>
{{-- Pilih Kloter --}}
<form id="formKloter" class="mb-3">
<label for="kloter_id">Pilih Kloter</label>
<div class="input-group i-g">
<select name="kloter_id" id="kloter_id" class="form-control">
@foreach($kloters as $k)
{{-- kode untuk --}}
<option value="{{ $k->id }}" {{ $selectedKloter->id == $k->id ? 'selected' : '' }}>
{{ $k->nama_kloter }}
</option>
@endforeach
</select>
<!-- Tombol untuk membuka Modal -->
{{-- <button type="button" class="btn btn-success">Buat Kloter Baru</button> --}}
<form method="GET" class="mb-3" action="">
<input type="hidden" name="buat_kloter" value="1">
<button class="btn btn-success">Buat Kloter</button>
</form>
<button type="button" class="btn btn-warning" data-bs-toggle="modal" data-bs-target="#editKloterModal">Edit Kloter</button>
<button type="button" class="btn btn-outline-primary" id="btnLihatKloter">Lihat</button>
@include('operator.presensi.edit')
</div>
<div class="filter-x mb-3 d-flex justify-content-between align-items-center">
<input type="text" id="searchKaryawan" class="form-control mb-3" style="width: fit-content" placeholder="Cari nama karyawan...">
<button class="btn btn-primary mb-3" data-bs-toggle="modal" data-bs-target="#pilihKaryawanModal">
Pilih Karyawan untuk Kloter Ini
</button>
</div>
@include('operator.presensi._pilihKaryawan')
</form>
{{-- checkbox fitur otomatis --}}
<div class="form-check form-switch mb-3">
<input class="form-check-input" type="checkbox" id="modeOtomatis">
<label class="form-check-label" for="modeOtomatis">Mode Otomatis (Gunakan Waktu Saat Ini)</label>
</div>
@if($karyawans->isEmpty())
<div class="alert alert-warning">Belum ada karyawan yang dipilih untuk kloter ini.</div>
@else
{{-- Tabel Presensi --}}
<table class="table table-bordered">
<thead class="table-dark">
<tr>
<th>No</th>
<th>Nama</th>
{{-- <th>Jenis Kelamin</th> --}}
<th>Aksi Masuk</th>
<th>Jam Masuk</th>
<th>Aksi Pulang</th>
<th>Jam Pulang</th>
<th>Total Jam</th>
</tr>
</thead>
<tbody>
@foreach($karyawans as $i => $k)
@php
$p = $presensis->get($k->id);
$totalJam = 0;
if ($p && $p->jam_masuk && $p->jam_pulang) {
$totalJam = \Carbon\Carbon::parse($p->jam_masuk)->diffInMinutes(\Carbon\Carbon::parse($p->jam_pulang)) / 60;
}
@endphp
<tr style="text-align: -webkit-center;">
<td>{{ $i + 1 }}</td>
<td>{{ $k->nama }}</td>
{{-- Aksi Masuk --}}
<td>
@if(!$p || !$p->jam_masuk)
<form method="POST" action="{{ route('presensi.masuk', $k->id) }}" class="formPresensi">
@csrf
<input type="hidden" name="kloter_id" value="{{ $selectedKloter->id }}">
<input type="hidden" name="tanggal" value="{{ $tanggal }}">
<input type="hidden" name="jam" class="inputJam">
<input type="time" class="form-control inputManualJam d-none" name="jam_manual">
<button class="btn btn-success btn-sm btnSubmitMasuk mt-1"> Masuk</button>
</form>
@else
<span class="text-success"></span>
@endif
</td>
{{-- Jam Masuk --}}
<td>
@if($p && $p->jam_masuk)
<input
type="time"
value="{{ \Carbon\Carbon::parse($p->jam_masuk)->format('H:i') }}"
class="form-control form-control-sm input-edit-jam-masuk"
data-id="{{ $p->id }}"
style="width: 110px;"
>
<small class="text-success d-none saved-message"></small>
@else
-
@endif
</td>
{{-- Aksi Pulang --}}
<td>
@if($p && !$p->jam_pulang)
<form method="POST" action="{{ route('presensi.pulang', $k->id) }}" class="formPresensi">
@csrf
<input type="hidden" name="kloter_id" value="{{ $selectedKloter->id }}">
<input type="hidden" name="tanggal" value="{{ $tanggal }}">
<input type="hidden" name="jam" class="inputJam">
<input type="time" class="form-control inputManualJam d-none" name="jam_manual">
<button class="btn btn-warning btn-sm btnSubmitPulang mt-1"> Pulang</button>
</form>
@elseif($p)
<span class="text-warning"></span>
@else
<span>-</span>
@endif
</td>
{{-- Jam Pulang --}}
{{-- <td>{{ $p->jam_pulang ?? '-' }}</td> --}}
<td>
@if($p && $p->jam_pulang)
<input
type="time"
value="{{ \Carbon\Carbon::parse($p->jam_pulang)->format('H:i') }}"
class="form-control form-control-sm input-edit-jam-pulang"
data-id="{{ $p->id }}"
style="width: 110px;"
>
<small class="text-success d-none saved-message"></small>
@else
-
@endif
</td>
{{-- Total Jam --}}
<td>{{ number_format($totalJam, 2) }}</td>
</tr>
@endforeach
</tbody>
</table>
@endif
</div>
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
<script>
// SweetAlert sukses
@if(session('success'))
Swal.fire({
icon: 'success',
title: 'Berhasil',
text: @json(session('success')),
showConfirmButton: false,
timer: 2000
});
@endif
// SweetAlert error validasi
@if($errors->any())
Swal.fire({
icon: 'error',
title: 'Terjadi Kesalahan',
html: `{!! implode('<br>', $errors->all()) !!}`,
});
@endif
</script>
<script>
window.presensiConfig = {
routeUpdateJamMasuk: "{{ route('presensi.updateJamMasukAjax') }}",
routeUpdateJamPulang: "{{ route('presensi.updateJamPulangAjax') }}",
csrfToken: "{{ csrf_token() }}"
};
</script>
<script src="{{ asset('js/presensi.js') }}"></script>
@endsection