@extends('layouts.admin') @section('title','Workforce Operations') @section('content') @php $dayLabels = [1 => 'Senin', 2 => 'Selasa', 3 => 'Rabu', 4 => 'Kamis', 5 => 'Jumat', 6 => 'Sabtu', 7 => 'Minggu']; $holidayTypeLabels = ['national' => 'Libur Nasional', 'company' => 'Libur Perusahaan', 'collective' => 'Cuti Bersama']; @endphp

Workforce Operations

Kalender kerja, cuti, lembur, project, dan crew dalam satu command center.

Kalender & Hari Kerja
Dipakai untuk validasi absensi, pengajuan cuti, tukar libur, dan kalkulasi payroll.
{{ $payrollWorkingDays }} HARI KERJA PERIODE INI
@csrf @method('PUT')
Setting Hari Kerja {{ $payrollRange['start']->format('d M Y') }} - {{ $payrollRange['end']->format('d M Y') }}
@foreach($dayLabels as $day => $label) @endforeach
Libur terdaftar {{ $holidays->count() }}
Libur nasional {{ $holidays->where('type','national')->count() }}
Cuti bersama {{ $holidays->where('type','collective')->count() }}
@forelse($holidays as $holiday) @empty @endforelse
Tanggal Nama Libur Jenis Status Payroll Catatan Aksi
{{ $holiday->date->format('d') }} {{ strtoupper($holiday->date->format('M')) }}
{{ $holiday->name }}
{{ $holiday->date->translatedFormat('l, d F Y') }}
{{ $holidayTypeLabels[$holiday->type] ?? ucfirst($holiday->type) }} {{ $holiday->is_paid ? 'Libur dibayar' : 'Tidak dibayar' }} {{ Str::limit($holiday->notes, 60) ?: '-' }}
@csrf @method('DELETE')
Belum ada hari libur nasional atau cuti bersama terdaftar.
Approval Cuti & Izin
{{ $leaveRequests->where('status','pending')->count() }} menunggu keputusan
@forelse($leaveRequests as $item) @empty @endforelse
KaryawanJenisPeriodeStatusAksi
{{ $item->employee->full_name }}
{{ Str::limit($item->reason,45) }}
{{ $item->type->name }} {{ $item->start_date->format('d M') }} - {{ $item->end_date->format('d M Y') }}
{{ $item->days }} hari kerja
{{ strtoupper($item->status) }} @if($item->status==='pending')
@csrf
@else {{ $item->reviewer?->name }} @endif
Belum ada pengajuan.
Approval Lembur
Hanya lembur approved masuk payroll
@forelse($overtimeRequests as $item) @empty @endforelse
KaryawanJadwalDurasiStatusAksi
{{ $item->employee->full_name }}
{{ Str::limit($item->reason,38) }}
{{ $item->date->format('d M Y') }}
{{ $item->start_time->format('H:i') }}-{{ $item->end_time->format('H:i') }}
{{ round($item->requested_minutes/60,1) }} jam {{ strtoupper($item->status) }} @if($item->status==='pending')
@csrf
@else {{ $item->approved_minutes }} menit @endif
Belum ada pengajuan.
Approval Tukar Hari Libur
Head Department memproses anggota departemennya; Manager HRD dapat memproses seluruh perusahaan.
{{ $holidaySwaps->where('status','pending')->count() }} MENUNGGU
@forelse($holidaySwaps as $item) @empty @endforelse
KaryawanDepartemen / HeadMasuk Tanggal MerahLibur PenggantiStatusAksi
{{ $item->employee->full_name }}
{{ Str::limit($item->reason,55) }}
{{ $item->employee->department?->name }}
Head: {{ $item->employee->department?->head?->full_name ?: 'Belum ditentukan' }}
{{ $item->worked_holiday_date->format('d M Y') }} {{ $item->replacement_leave_date->format('d M Y') }} {{ strtoupper($item->status) }} @if($item->status==='pending')
@csrf
@else {{ $item->approver?->name }} @endif
Belum ada pengajuan tukar hari libur.
Project & Crew
@forelse($projects as $project)
{{ $project->code }} - {{ $project->name }}{{ strtoupper($project->status) }}
{{ $project->client_name ?: 'Internal' }} - {{ $project->start_date->format('d M') }}-{{ $project->end_date->format('d M Y') }} - {{ $project->workLocation?->name ?: 'Lokasi belum dipilih' }}
@foreach($project->members as $member) {{ strtoupper(substr($member->employee->full_name,0,1)) }}{{ $member->employee->full_name }} - {{ $member->role }} @endforeach
@csrf
@empty
Belum ada project aktif.
@endforelse
@csrf
@csrf
@endsection