@foreach ($laporan_presensi as $d)
@php
$tanggal_presensi = $periode_dari;
$total_denda = 0;
$total_potongan_jam = 0;
$total_tunjangan = 0;
$total_jam_lembur = 0;
// Kalkulasi tunjangan
foreach ($jenis_tunjangan as $j) {
$total_tunjangan += $d[$j->kode_jenis_tunjangan];
}
// Kalkulasi bruto
$bruto = $d['gaji_pokok'] + $total_tunjangan;
// Kalkulasi upah per jam
$upah_perjam = $d['gaji_pokok'] / $generalsetting->total_jam_bulan;
@endphp
{{-- Proses kalkulasi denda dan potongan jam --}}
@while (strtotime($tanggal_presensi) <= strtotime($periode_sampai))
@php
$denda = 0;
$potongan_jam = 0;
$search = [
'nik' => $d['nik'],
'tanggal' => $tanggal_presensi,
];
$ceklibur = ceklibur($datalibur, $search);
$ceklembur = ceklembur($datalembur, $search);
$lembur = hitungLembur($ceklembur);
if (!empty($ceklembur)) {
$jml_jam_lembur = $lembur;
} else {
$jml_jam_lembur = 0;
}
@endphp
@if (isset($d[$tanggal_presensi]))
@if ($d[$tanggal_presensi]['status'] == 'h')
@php
$jam_masuk = $tanggal_presensi . ' ' . $d[$tanggal_presensi]['jam_masuk'];
$terlambat = hitungjamterlambat($d[$tanggal_presensi]['jam_in'], $jam_masuk);
if ($terlambat != null) {
if ($terlambat['desimal_terlambat'] < 1) {
$potongan_jam_terlambat = 0;
$denda = hitungdenda($denda_list, $terlambat['menitterlambat']);
} else {
$potongan_jam_terlambat = $terlambat['desimal_terlambat'];
$denda = 0;
}
} else {
$potongan_jam_terlambat = 0;
$denda = 0;
}
$pulangcepat = hitungpulangcepat(
$tanggal_presensi,
$d[$tanggal_presensi]['jam_out'],
$d[$tanggal_presensi]['jam_pulang'],
$d[$tanggal_presensi]['istirahat'],
$d[$tanggal_presensi]['jam_awal_istirahat'],
$d[$tanggal_presensi]['jam_akhir_istirahat'],
$d[$tanggal_presensi]['lintashari'],
);
$potongan_jam = $pulangcepat + $potongan_jam_terlambat;
@endphp
@elseif($d[$tanggal_presensi]['status'] == 'i')
@php
$potongan_jam = $d[$tanggal_presensi]['total_jam'];
@endphp
@elseif($d[$tanggal_presensi]['status'] == 'a')
@php
$potongan_jam = $d[$tanggal_presensi]['total_jam'];
@endphp
@endif
@endif
@php
$total_denda += $denda;
$total_potongan_jam += $potongan_jam;
$total_jam_lembur += $jml_jam_lembur;
$tanggal_presensi = date('Y-m-d', strtotime('+1 day', strtotime($tanggal_presensi)));
@endphp
@endwhile
@php
// Final calculations
$jumlah_potongan_jam = ROUND($upah_perjam) * $total_potongan_jam;
$total_potongan =
ROUND($jumlah_potongan_jam) + $total_denda + $d['bpjs_kesehatan'] + $d['bpjs_tenagakerja'];
$gaji_bersih =
$d['gaji_pokok'] + $total_tunjangan - $total_potongan + $d['penambah'] - $d['pengurang'];
@endphp
NIK:
{{ $d['nik'] }}
Nama:
{{ $d['nama_karyawan'] }}
Jabatan:
{{ $d['nama_jabatan'] }}
Dept:
{{ $d['kode_dept'] }}
{{ $generalsetting->total_jam_bulan }} jam | Rp {{ number_format($upah_perjam, 0, ',', '.') }}/jam |
{{ number_format($total_potongan_jam, 1) }} jam potong
PENGHASILAN
Gaji Pokok
{{ number_format($d['gaji_pokok'], 0, ',', '.') }}
@foreach ($jenis_tunjangan as $j)
@if ($d[$j->kode_jenis_tunjangan] > 0)
{{ $j->jenis_tunjangan }}
{{ number_format($d[$j->kode_jenis_tunjangan], 0, ',', '.') }}
@endif
@endforeach
@if ($total_jam_lembur > 0)
Lembur {{ formatAngkaDesimal($total_jam_lembur) }} jam
@php
$upah_lembur = ROUND($upah_perjam) * ROUND($total_jam_lembur, 2);
@endphp
{{ formatAngka($upah_lembur) }}
@else
@php
$upah_lembur = 0;
@endphp
@endif
Sub Total
@php
$bruto_total = $bruto + ROUND($upah_lembur);
@endphp
{{ number_format($bruto_total, 0, ',', '.') }}
POTONGAN
@if ($total_denda > 0)
Denda
{{ number_format($total_denda, 0, ',', '.') }}
@endif
@if ($jumlah_potongan_jam > 0)
Pot. Jam ({{ number_format($total_potongan_jam, 2) }})
{{ number_format($jumlah_potongan_jam, 0, ',', '.') }}
@endif
@if ($d['bpjs_kesehatan'] > 0)
BPJS Kes
{{ number_format($d['bpjs_kesehatan'], 0, ',', '.') }}
@endif
@if ($d['bpjs_tenagakerja'] > 0)
BPJS TK
{{ number_format($d['bpjs_tenagakerja'], 0, ',', '.') }}
@endif
Sub Total
{{ number_format($total_potongan, 0, ',', '.') }}
@if ($d['penambah'] > 0 || $d['pengurang'] > 0)
PENYESUAIAN
@if ($d['penambah'] > 0)
Penambah
{{ number_format($d['penambah'], 0, ',', '.') }}
@endif
@if ($d['pengurang'] > 0)
Pengurang
{{ number_format($d['pengurang'], 0, ',', '.') }}
@endif
@endif
GAJI BERSIH
@php
$gaji_bersih =
$d['gaji_pokok'] +
$total_tunjangan -
$total_potongan +
$d['penambah'] -
$d['pengurang'] +
ROUND($upah_lembur);
@endphp
{{ number_format($gaji_bersih, 0, ',', '.') }}