@extends('layout.layout') @section('content') @include('components.alert') @php $indexQuery = array_filter(['search' => request('search'),'per_page' => request('per_page')], fn($value) => filled($value)); $targetTypes = [ 'number' => 'Number', 'percentage' => 'Percentage', ]; $isHrDepartmentName = fn ($name) => str_contains(strtolower((string) $name), 'hr') || str_contains(strtolower((string) $name), 'human resource') || str_contains(strtolower((string) $name), 'human resources'); $isSalesDepartment = fn ($department) => in_array(strtolower((string) ($department?->slug ?? '')), ['sales', 'slaes'], true) || str_contains(strtolower((string) ($department?->name ?? '')), 'sales'); $hasActiveFilters = request()->hasAny(['filter_type','filter_department_id','filter_job_title_id','filter_target_job_title_id','filter_target_type','filter_target_from','filter_target_to','filter_percentage']); @endphp
@can('retention_staff_target_configurations_create') Add Target Configuration @endcan
Staff Target Configurations

Browse, search, and manage configured target ranges.

{{-- Filter Row --}}
@if(request('search')) @endif @if(request('per_page')) @endif
@if($hasActiveFilters) @endif
@foreach ($staff_target_configurations->getCollection()->groupBy(fn ($item) => $item->group_id ?? $item->id) as $groupKey => $groupItems) @php $firstItem = $groupItems->first(); $rowspan = $groupItems->count(); @endphp @foreach ($groupItems as $ruleIndex => $item) @php $isSalesRow = $isSalesDepartment($firstItem->department); @endphp @if($ruleIndex === 0) {{ $loop->parent->iteration }} #{{ $groupKey }} {{ $firstItem->type }} {{ $firstItem->department?->name ?? '-' }} {{ $firstItem->jobTitle?->name ?? '-' }} @endif {{ $isSalesRow ? '-' : ($item->targetJobTitle?->name ?? '-') }} {{ $isSalesRow ? '-' : ($targetTypes[$item->target_type] ?? '-') }} @if($isSalesRow) - @else {{ $item->target_from }} - {{ $item->target_to }}{{ $item->target_type === 'percentage' ? '%' : '' }} @endif @if($ruleIndex === 0) {{ $isSalesRow ? '-' : number_format($firstItem->percentage, 2).'%' }} {{ $isSalesRow ? number_format($firstItem->conv_min_percentage ?? 0, 2).'%' : '-' }} {{ $isSalesRow ? number_format($firstItem->bonus_conv_percentage ?? 0, 2).'%' : '-' }} {{ $isSalesRow ? number_format($firstItem->bonus_percentage ?? 0, 2).'%' : '-' }} {{ $isSalesRow && $firstItem->quarter_target ? 'Q'.$firstItem->quarter_target : '-' }} {{ $isSalesRow ? ($firstItem->quarter_total_target ?? '-') : '-' }} {{ $isSalesRow ? ($firstItem->quarter_days ?? '-') : '-' }} {{ $isSalesRow && $firstItem->daily_target !== null ? number_format($firstItem->daily_target, 2) : '-' }} {{ $firstItem->createdBy?->full_name ?? '-' }}
@can('retention_staff_target_configurations_update') @endcan @can('retention_staff_target_configurations_destroy') @endcan
@endif @endforeach @endforeach
@foreach ($staff_target_configurations as $item) @can('retention_staff_target_configurations_destroy') @include('dashboard.academics.staff_target_configurations._delete_modal', ['item' => $item]) @endcan @endforeach
@endsection @push('scripts') @endpush