@extends('layouts.app') @push('css') @endpush @section('title', 'Payroll Processor') @section('panel-actions')
@endsection @section('content')
Total Net Payout {{ \App\Models\BusinessSetting::firstOrNewDefault()->currency_symbol }}0.00
Total Deductions {{ \App\Models\BusinessSetting::firstOrNewDefault()->currency_symbol }}0.00
Employees Selected 0

Bulk Payroll Generation for {{ date('F', mktime(0, 0, 0, $month, 10)) }} {{ $year }}

@if($salaries->count() > 0)
Payroll already processed!

Records for this month already exist. You can still process again to overwrite, or visit the Processed Payroll list to edit individual records.

@endif
@foreach($employees as $emp) @php $sal = $salaries->get($emp->id); $basic = $sal ? $sal->base_salary : $emp->base_salary; $designation = $sal ? $sal->designation : ($emp->designation ?? 'Staff'); $department = $sal ? $sal->department : ($emp->department ?? 'Operations'); $empCode = $sal ? $sal->employee_code : "ICA01{$emp->id}"; $workingDays = $sal ? $sal->working_days : $emp->calculated_working_days; $lopDays = $sal ? $sal->lop_days : $emp->calculated_lop_days; $dynAdditionsTotal = 0; foreach($emp->additions as $dynAdd) { if ($dynAdd->value_type === 'percentage') { $dynAdditionsTotal += ($basic * ($dynAdd->percentage / 100)); } else { $dynAdditionsTotal += $dynAdd->amount; } } $grossEarnings = $basic + $dynAdditionsTotal; $dynDeductionsTotal = 0; foreach($emp->deductions as $dynDed) { if ($dynDed->value_type === 'fixed') { $dynDeductionsTotal += $dynDed->amount; } else { $dynDeductionsTotal += ($grossEarnings * ($dynDed->percentage / 100)); } } $grossDeductions = $dynDeductionsTotal; $reimb = $sal->expense_reimbursements ?? 0; $netPay = $grossEarnings - $grossDeductions + $reimb; $encodedAdditions = $emp->additions->map(function($a) { return [ "id" => $a->addition_type_id, "name" => $a->additionType->name ?? 'Addition', "value_type" => $a->value_type, "amount" => $a->amount, "percentage" => $a->percentage ]; })->toJson(); $encodedDeductions = $emp->deductions->map(function($d) { return [ "id" => $d->deduction_type_id, "name" => $d->deductionType->name ?? 'Deduction', "value_type" => $d->value_type, "percentage" => $d->percentage, "amount" => $d->amount ]; })->toJson(); @endphp @endforeach
Employee Name Code Designation Working LOP Net Salary Action
{{ $emp->name }} {{-- Legacy Hidden State --}} {{ $empCode }} {{ $designation }} {{ $workingDays }} {{ $lopDays }} {{ number_format($netPay, 2) }}
@endsection @section('modals') @endsection @push('scripts') @endpush