@extends('layouts.mobile.app') @section('content')
Slip Gaji
@foreach ($laporan_presensi as $d) @php $tanggal_presensi = $periode_dari; $total_denda = 0; $total_potongan_jam = 0; $total_tunjangan = 0; // 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; $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']; @endphp @endforeach
@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
{{ $generalsetting->nama_perusahaan }}
SLIP GAJI
{{ date('d/m/Y', strtotime($periode_dari)) }} - {{ date('d/m/Y', strtotime($periode_sampai)) }}
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, ',', '.') }}
@endforeach
@endsection