@php
$groupData = collect($finalHeaders)->groupBy('type');
@endphp
| S.No. |
{{-- Static Headers --}}
@foreach ($groupData->get('headers', []) as $sequence)
@php
$val = explode('...', $sequence['value']);
$label = $sequence['alias'] ?? ($val[1] ?? $val[0]);
@endphp
{{ $label }} |
@endforeach
{{-- Dynamic Monthly Data --}}
@foreach ($monthData as $m)
{{-- Attendance & Leave Types --}}
@foreach ($groupData->get('att_summary', collect())->merge($groupData->get('leave_types', collect())) as $sequence)
@php
$val = explode('...', $sequence['value']);
$label = $sequence['alias'] ?? ($val[1] ?? $val[0]);
@endphp
{{ $label }} |
@endforeach
{{-- Rate (if enabled) --}}
@if ($templateData->rate == '1')
@foreach ($groupData->get('components', []) as $sequence)
@php
$val = explode('...', $sequence['value']);
$label = $sequence['alias'] ?? ($val[1] ?? $val[0]);
@endphp
@if (($sequence['calculationType'] ?? null) == 'PaidDays')
{{ $label }} (Rate) |
@endif
@endforeach
@endif
{{-- Salary + Arrear --}}
@foreach ($groupData->get('components', []) as $sequence)
@php
$val = explode('...', $sequence['value']);
$label = $sequence['alias'] ?? ($val[1] ?? $val[0]);
@endphp
{{ $label }} (Salary) |
@if ($templateData->arrear == '1')
{{ $label }} (Arrear) |
@endif
@endforeach
{{-- Summary Fields --}}
@foreach ($groupData->get('summary', []) as $sequence)
@php
$val = explode('...', $sequence['value']);
$label = $sequence['alias'] ?? ($val[1] ?? $val[0]);
@endphp
{{ $label }} |
@endforeach
@endforeach
{{-- Static Header Fields --}}
|
@foreach ($groupData->get('headers', []) as $sequence)
|
@endforeach
{{-- Monthly Dynamic Data --}}
@foreach ($monthData as $m)
{{-- Attendance + Leave Types --}}
@foreach ($groupData->get('att_summary', []) as $sequence)
{{ App\Helpers\GeneralHelper::formatDate($m) }} |
@endforeach
@foreach ($groupData->get('leave_types', []) as $sequence)
{{ App\Helpers\GeneralHelper::formatDate($m) }} |
@endforeach
{{-- Salary + Arrear --}}
@foreach ($groupData->get('components', []) as $sequence)
{{ App\Helpers\GeneralHelper::formatDate($m) }} |
{{ App\Helpers\GeneralHelper::formatDate($m) }} |
@if ($templateData->arrear == '1')
{{ App\Helpers\GeneralHelper::formatDate($m) }} |
@endif
@endforeach
{{-- Summary Fields --}}
@foreach ($groupData->get('summary', []) as $sequence)
{{ App\Helpers\GeneralHelper::formatDate($m) }} |
@endforeach
@endforeach
@php
$componentTotal = [];
@endphp
@foreach ($employeeData as $emp)
@php $data = $emp['record']; @endphp
| {{ $loop->iteration }} |
{{-- Static Header Fields --}}
@foreach ($groupData->get('headers', []) as $sequence)
@php $val = explode('...', $sequence['value'])[0]; @endphp
@if (in_array($val, ['department', 'designation', 'workstation', 'category', 'contractor', 'state', 'shift']))
{{ @$data->employee->{$val}->name }}
@elseif ($val == 'locations')
{{ @$data->employee->{$val}->pluck('name')->implode(',') }}
@else
{{ ucwords(@$data->employee->{$val}) }}
@endif
|
@endforeach
{{-- Monthly Dynamic Data --}}
@foreach ($monthData as $m)
{{-- Attendance + Leave Types --}}
@foreach ($groupData->get('att_summary', []) as $sequence)
@php
$key = explode('...', $sequence['value'])[0];
$val = @$emp['items'][$m]['attendance_info'][$key] ?? 0;
@endphp
{{ $val }} |
@endforeach
@foreach ($groupData->get('leave_types', []) as $sequence)
@php
$key = explode('...', $sequence['value'])[0];
$val = @$emp['items'][$m]['leave_info'][$key] ?? 0;
@endphp
{{ $val }} |
@endforeach
{{-- Rate --}}
@if ($templateData->rate == '1')
@foreach ($groupData->get('components', []) as $sequence)
@php
$compId = explode('...', $sequence['value'])[0];
$rate = 0;
$logs = @$emp['items'][$m]['salary_info']->slipLogs ?? [];
foreach ($logs as $log) {
if ($log->type_id == $compId) {
$rate = round($log->actual_salary, 2);
break;
}
}
@endphp
@if (($sequence['calculationType'] ?? null) == 'PaidDays')
{{ $rate }} |
@endif
@endforeach
@endif
{{-- Salary + Arrear --}}
@foreach ($groupData->get('components', []) as $sequence)
@php
$compId = explode('...', $sequence['value'])[0];
$salary = $arrear = 0;
$logs = @$emp['items'][$m]['salary_info']->slipLogs ?? [];
foreach ($logs as $log) {
if ($log->type_id == $compId) {
$salary = round($log->calculate_salary, 2);
$arrear = round($log->arrear_salary, 2);
$componentTotal[$m][$compId] = ($componentTotal[$m][$compId] ?? 0) + $salary;
break;
}
}
@endphp
{{ $salary }} |
@if ($templateData->arrear == '1')
{{ $arrear }} |
@endif
@endforeach
{{-- Summary Fields --}}
@foreach ($groupData->get('summary', []) as $sequence)
@php
$key = explode('...', $sequence['value'])[0];
$val = @$emp['summary'][$key] ?? 0;
@endphp
{{ $val }} |
@endforeach
@endforeach
@endforeach
| Total: |
{{-- Empty placeholders for static headers --}}
@foreach ($groupData->get('headers', []) as $sequence)
|
@endforeach
{{-- Monthly Dynamic Totals --}}
@foreach ($monthData as $m)
{{-- Attendance + Leave --}}
@foreach ($groupData->get('att_summary', []) as $sequence)
|
@endforeach
@foreach ($groupData->get('leave_types', []) as $sequence)
|
@endforeach
{{-- Rate (not totaled) --}}
@if ($templateData->rate == '1')
@foreach ($groupData->get('components', []) as $sequence)
@if (($sequence['calculationType'] ?? null) == 'PaidDays')
|
@endif
@endforeach
@endif
{{-- Salary + Arrear Totals --}}
@foreach ($groupData->get('components', []) as $sequence)
@php
$compId = explode('...', $sequence['value'])[0];
$totalSalary = $componentTotal[$m][$compId] ?? 0;
$totalArrear = 0;
if ($templateData->arrear == '1') {
foreach ($employeeData as $emp) {
$logs = @$emp['items'][$m]['salary_info']->slipLogs ?? [];
foreach ($logs as $log) {
if ($log->type_id == $compId) {
$totalArrear += round($log->arrear_salary, 2);
break;
}
}
}
}
@endphp
{{ $totalSalary }} |
@if ($templateData->arrear == '1')
{{ $totalArrear }} |
@endif
@endforeach
{{-- Summary Totals --}}
@foreach ($groupData->get('summary', []) as $sequence)
@php
$key = explode('...', $sequence['value'])[0];
$summaryTotal = 0;
foreach ($employeeData as $emp) {
$summaryTotal += @$emp['summary'][$key] ?? 0;
}
@endphp
{{ $summaryTotal }} |
@endforeach
@endforeach