@extends('layouts.base') @php $canProgramsWrite = auth()->user()->canAccessPartnerProgramsWrite(); $canLots = auth()->user()->canAccessPartnerLotsRead(); $selectedFiscalites = collect(request()->input('fiscalite', [])) ->filter(fn ($value) => is_string($value) && $value !== '') ->values() ->all(); $selectedStatuses = collect(request()->input('status', [])) ->filter(fn ($value) => in_array($value, ['active', 'inactive'], true)) ->values() ->all(); $selectedSearch = trim((string) request()->input('search', '')); $selectedPerPage = (string) request()->input('per_page', '10'); $fiscaliteMap = collect(\App\Enums\Fiscalite::selectableCases())->keyBy(fn ($f) => $f->value); $statusLabels = ['active' => 'Actif', 'inactive' => 'Inactif']; $statusFilterOptions = collect($statusLabels)->map(fn ($label, $value) => [ 'value' => $value, 'label' => $label, 'attrs' => ['data-filter-autosubmit' => '1'], ])->values()->all(); $fiscaliteFilterOptions = collect(\App\Enums\Fiscalite::selectableCases())->map(fn ($fiscalite) => [ 'value' => $fiscalite->value, 'label' => $fiscalite->label(), 'attrs' => ['data-filter-autosubmit' => '1'], ])->values()->all(); $queryWithoutFilter = function (string $filterKey, ?string $filterValue = null): array { $query = request()->query(); if ($filterKey === 'fiscalite') { $all = collect($query['fiscalite'] ?? []) ->filter(fn ($v) => is_string($v) && $v !== '' && $v !== $filterValue) ->values() ->all(); if (count($all) > 0) { $query['fiscalite'] = $all; } else { unset($query['fiscalite']); } } elseif ($filterKey === 'status') { $all = collect($query['status'] ?? []) ->filter(fn ($v) => is_string($v) && $v !== '' && $v !== $filterValue) ->values() ->all(); if (count($all) > 0) { $query['status'] = $all; } else { unset($query['status']); } } else { unset($query[$filterKey]); } return $query; }; @endphp @section('content') @section('breadcrumb') @endsection
Vous retrouvez ici la liste complète de vos programmes
@if($canProgramsWrite) Ajouter un programme @endifAucun programme ne correspond aux filtres sélectionnés.
| @if($currentSort === 'name') @else @endif Programme | @if($currentSort === 'city') @else @endif Ville | Fiscalités | @if($currentSort === 'lots_count') @else @endif Lots | @if($currentSort === 'lots_available_count') @else @endif Dispos | @if($currentSort === 'is_active') @else @endif Statut | |
|---|---|---|---|---|---|---|
|
{{ $program->name }}
|
{{ $program->addresses->first()->city ?? '-' }} | @if($program->fiscalites && $program->fiscalites->count() > 0) @foreach($program->fiscalites as $fiscalite) @php $separator = ($loop->last ? '' : ', '); @endphp {{ $fiscalite->type->label() }}{{ $separator }} @endforeach @else Aucun dispositif @endif | @if($canLots) {{ $program->lots_count ?? 0 }} lots @else {{ $program->lots_count ?? 0 }} lots @endif | {{ $program->lots_available_count ?? 0 }} dispos | @if($program->is_active) Actif @else Inactif @endif |