@extends('layouts.admin') @section('title', 'Payroll') @section('content') @php $periodStart = $run?->period_start ?? $previewRange['start']; $periodEnd = $run?->period_end ?? $previewRange['end']; $activeCutoff = $run?->cutoff_day ?? $settings->cutoff_day; $activeWorkdays = $run?->standard_workdays ?? $calendarWorkingDays; @endphp

Payroll Karyawan

Kalkulasi penggajian otomatis berdasarkan absensi, komponen gaji, dan tarif setiap karyawan.

@csrf
@if($run) Export Excel @endif
PERIODE PENGGAJIAN

{{ $period->translatedFormat('F Y') }}

{{ $periodStart->translatedFormat('d F Y') }} — {{ $periodEnd->translatedFormat('d F Y') }}Cutoff tanggal {{ $activeCutoff }}{{ $activeWorkdays }} hari kerja kalender

Gaji pokok dan tunjangan diprorata berdasarkan hari masuk dan cuti berbayar. Hari standar otomatis mengikuti setting hari kerja, libur nasional, dan cuti bersama.

{{ $run ? strtoupper($run->status) : 'BELUM DIHITUNG' }} @if($run) Dihitung {{ $run->calculated_at?->diffForHumans() }} @endif
@if($run)
Total Karyawan{{ $run->items->count() }}profil aktif
Total Hari Masuk{{ number_format($run->items->sum('present_days')) }}hari absensi
Total Lembur{{ number_format($run->items->sum('overtime_minutes') / 60, 1) }}jam dibayar
BPJS PerusahaanRp {{ number_format($run->items->sum('total_bpjs_company_amount'), 0, ',', '.') }}beban perusahaan
@endif
Pengaturan Komponen
Aktifkan komponen yang digunakan perusahaan.
@csrf @method('PUT')
Contoh cutoff 25: periode Agustus menghitung 26 Juli–25 Agustus.
Otomatis dari Workforce Ops: hari kerja dikurangi libur nasional/cuti bersama.
bpjs_health_enabled)>BPJS KesehatanAtur porsi karyawan dan perusahaan per bulan.
bpjs_employment_enabled)>BPJS KetenagakerjaanJHT dan JP karyawan; JHT, JP, JKK, serta JKM perusahaan.
Komponen Per Karyawan
Nominal ini menggantikan nilai default perusahaan.
{{ $employees->count() }} karyawan
@csrf @method('PUT')
@foreach($employees as $index => $employee) @php($profile = $employee->payrollProfile) @endforeach
KaryawanGaji PokokTunjanganLembur / JamTransport / HariMakan / HariPotonganBankNo. RekeningBPJS KesehatanBPJS TK
{{ $employee->full_name }}
{{ $employee->employee_code }} · {{ $employee->department?->name }}
basic_salary ?? $settings->default_basic_salary)) }}" required> allowance ?? $settings->default_allowance)) }}" required> overtime_rate ?? $settings->default_overtime_rate)) }}" required> transport_rate ?? $settings->default_transport_rate)) }}" required> meal_rate ?? $settings->default_meal_rate)) }}" required> fixed_deduction ?? 0)) }}"> bank_name ?: $profile?->bank_name) }}" placeholder="BCA/BRI/..."> bank_account_number ?: $profile?->bank_account_number) }}"> bpjs_health_number) }}"> bpjs_employment_number) }}">
Hasil Perhitungan {{ $period->translatedFormat('F Y') }}
Rincian siap diverifikasi HRD dan diekspor ke Excel.
@if($run) Export BPJS@endif @if($run?->status==='draft')
@csrf
@elseif($run?->status==='review' && in_array(auth()->user()->role,['owner','super_admin','finance']))
@csrf
@elseif($run?->status==='approved')
@csrf
Export Bank@endif
@forelse($run?->items ?? [] as $item) @empty @endforelse
KaryawanAbsensiLemburGaji PokokTunjanganTransport+MakanTHRBrutoPotonganGaji BersihSlip
{{ $item->employee_name }}
{{ $item->employee_code }} · {{ $item->position_name }}
{{ $item->present_days }} hari
{{ $item->late_days }} telat · {{ $item->completed_days }} lengkap
{{ number_format($item->overtime_minutes / 60, 1) }} jam Rp {{ number_format($item->basic_salary_amount, 0, ',', '.') }} Rp {{ number_format($item->allowance_amount, 0, ',', '.') }} Rp {{ number_format($item->transport_amount+$item->meal_amount, 0, ',', '.') }} Rp {{ number_format($item->thr_amount, 0, ',', '.') }} Rp {{ number_format($item->gross_salary, 0, ',', '.') }} Rp {{ number_format($item->total_deductions, 0, ',', '.') }} Rp {{ number_format($item->net_salary, 0, ',', '.') }}
Pilih periode lalu klik Hitung Payroll untuk membuat kalkulasi dari absensi.
@endsection