@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

Mes programmes

Visualisez et gérez vos programmes.
@if($canProgramsWrite && $programs->count() > 0) Ajouter un programme @endif
@if($programs->count() === 0 && ($hasAnyPrograms ?? false) === false)

Aucun programme à l'horizon

Vous retrouvez ici la liste complète de vos programmes

@if($canProgramsWrite) Ajouter un programme @endif
@else
{{ $programs->total() }} {{ $programs->total() > 1 ? 'programmes' : 'programme' }}
@if($selectedSearch !== '' || count($selectedStatuses) > 0 || count($selectedFiscalites) > 0 || $selectedPerPage !== '10')
@if($selectedSearch !== '') @endif @foreach($selectedStatuses as $selectedStatus) @endforeach @foreach($selectedFiscalites as $selectedFiscalite) @php $fiscaliteLabel = $fiscaliteMap->get($selectedFiscalite)?->label() ?? $selectedFiscalite; @endphp @endforeach @if($selectedPerPage !== '10') @endif
@endif
@if($programs->count() === 0)
Aucun résultat

Aucun programme ne correspond aux filtres sélectionnés.

@else @php $currentSort = $sort ?? 'name'; $currentDirection = $direction ?? 'asc'; $sortUrl = function ($column) use ($application, $currentSort, $currentDirection) { $dir = ($currentSort === $column && $currentDirection === 'asc') ? 'desc' : 'asc'; return route('partner.programs', array_merge(request()->except(['page', 'sort', 'direction']), ['sort' => $column, 'direction' => $dir])); }; @endphp
@foreach($programs as $program) @endforeach
@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
@if($programs->hasPages())
Affichage de {{ $programs->firstItem() }} à {{ $programs->lastItem() }} sur {{ $programs->total() }} programme(s)
{{ $programs->appends(request()->except('page'))->links() }}
@endif @endif @endif
@endsection @push('scripts') @endpush