@props(['app']) @php $commercialisateursCount = $app->users ? $app->users->filter(fn($user) => $user->isRole('ROLE_COMMERCIALISATEUR'))->count() : 0; $clientsCount = $app->clients_count ?? ($app->clients ? $app->clients->count() : 0); $programsCount = $app->programs ? $app->programs->count() : 0; $optionsEnCoursCount = $app->options ? $app->options->filter(function ($option) { $state = $option->state; if ($state === \App\Enums\OptionState::EXPIRED || $state === \App\Enums\OptionState::CANCELED || $state === \App\Enums\OptionState::CONFIRMED || $state === \App\Enums\OptionState::REFUSED) { return false; } if ($option->date_end) { return $option->date_end->isToday() || $option->date_end->isFuture(); } return true; })->count() : ($app->options()->count() ?? 0); $reservationsEnCoursCount = $app->reservations ? $app->reservations->count() : $app->reservations()->count(); $user = Auth::user(); $isAdminTech = $user && $user->isRole('ROLE_SUPPORT'); $canPartnerPrograms = $user && $user->canAccessPartnerProgramsRead(); $canSalesTracking = $user && $user->canAccessPartnerSalesTrackingRead(); $canCommercialNetworks = $user && $user->canAccessPartnerCommercialNetworksRead(); $canUsersAdmin = $user && $user->canAccessPartnerUsersAdmin(); $canSaleParameters = $user && $user->canAccessPartnerSaleParameters(); $canCommissions = $user && $user->canAccessPartnerCommissions(); $kpiCards = [ ['count' => $programsCount, 'label' => 'Programmes', 'route' => 'partner.programs', 'params' => [], 'picto' => 'building-2', 'col' => 'col-12 col-sm-6 col-lg-4', 'visible' => $canPartnerPrograms], ['count' => $optionsEnCoursCount, 'label' => 'Options en cours', 'route' => 'partner.options.list', 'params' => [], 'picto' => 'badge-alert', 'col' => 'col-12 col-sm-6 col-lg-4', 'visible' => $canSalesTracking], ['count' => $reservationsEnCoursCount, 'label' => 'Réservations', 'route' => 'partner.reservations.list', 'params' => [], 'picto' => 'badge-check', 'col' => 'col-12 col-sm-6 col-lg-4', 'visible' => $canSalesTracking], ['count' => $clientsCount, 'label' => 'Clients', 'route' => 'partner.clients', 'params' => [], 'picto' => 'id-card', 'col' => 'col-12 col-sm-6 col-lg-6', 'visible' => $canSalesTracking], ['count' => $commercialisateursCount, 'label' => 'Commercialisateurs', 'route' => 'partner.commercialisateurs', 'params' => [], 'picto' => 'square-user-round', 'col' => 'col-12 col-sm-6 col-lg-6', 'visible' => $canCommercialNetworks], ]; $quickLinks = [ ['label' => 'Programmes', 'route' => 'partner.programs', 'params' => [], 'linkText' => 'Consulter', 'picto' => 'building-2', 'visible' => $canPartnerPrograms], ['label' => 'Options', 'route' => 'partner.options.list', 'params' => [], 'linkText' => 'Consulter', 'picto' => 'badge-alert', 'visible' => $canSalesTracking], ['label' => 'Réservations', 'route' => 'partner.reservations.list', 'params' => [], 'linkText' => 'Consulter', 'picto' => 'badge-check', 'visible' => $canSalesTracking], ['label' => 'Clients', 'route' => 'partner.clients', 'params' => [], 'linkText' => 'Consulter', 'picto' => 'id-card', 'visible' => $canSalesTracking], ['label' => 'Commercialisateurs', 'route' => 'partner.commercialisateurs', 'params' => [], 'linkText' => 'Consulter', 'picto' => 'square-user-round', 'visible' => $canCommercialNetworks], ['label' => 'Entreprises', 'route' => 'partner.networks', 'params' => [], 'linkText' => 'Consulter', 'picto' => 'building', 'visible' => $canCommercialNetworks], ['label' => 'Utilisateurs', 'route' => 'partner.users', 'params' => [], 'linkText' => 'Gérer', 'picto' => 'users-round', 'visible' => $canUsersAdmin], ['label' => 'Paramètres de vente', 'route' => 'partner.sale-parameters.list', 'params' => [], 'linkText' => 'Gérer', 'picto' => 'settings-2', 'visible' => $canSaleParameters], ['label' => 'Commissions', 'route' => 'partner.commissions.index', 'params' => [], 'linkText' => 'Gérer', 'picto' => 'euro', 'visible' => $canCommissions], ['label' => "Paramètres de l'application", 'route' => 'partner.parameters.index', 'params' => [], 'linkText' => 'Gérer', 'picto' => 'settings', 'visible' => true], ['label' => 'Dénonciations', 'route' => 'partner.denonciations.list', 'params' => [], 'linkText' => 'Consulter', 'picto' => 'badge', 'visible' => $isAdminTech && $app->hasAnyActiveFeatures('denonciations')], ]; if ($isAdminTech) { // support only features $quickLinks[] = ['label' => 'Workflows de vente', 'route' => 'partner.workflows.list', 'params' => [], 'linkText' => 'Consulter', 'picto' => 'workflow', 'visible' => $isAdminTech && $app->hasAnyActiveFeatures('workflow')]; $quickLinks[] = ['label' => 'Personnalisation des formulaires', 'route' => 'partner.form-editors.index', 'params' => [], 'linkText' => 'Consulter', 'picto' => 'file-sliders', 'visible' => $isAdminTech]; $quickLinks[] = ['label' => 'Éditeurs de documents', 'route' => 'partner.document-editors.index', 'params' => [], 'linkText' => 'Consulter', 'picto' => 'file-cog', 'visible' => $isAdminTech]; $quickLinks[] = ['label' => 'Configuration email', 'route' => 'partner.email-configuration.index', 'params' => [], 'linkText' => 'Consulter', 'picto' => 'mail', 'visible' => $isAdminTech]; $quickLinks[] = ['label' => 'Partage des programmes', 'route' => 'partner.multi-program-parameters.list', 'params' => [], 'linkText' => 'Consulter', 'picto' => 'share-2', 'visible' => $isAdminTech]; $quickLinks[] = ['label' => 'Mandats', 'route' => 'partner.mandats', 'params' => [$app], 'linkText' => 'Consulter', 'picto' => 'award', 'visible' => $isAdminTech]; $quickLinks[] = ['label' => 'Abonnements', 'route' => 'partner.subscriptions.list', 'params' => [], 'linkText' => 'Consulter', 'picto' => 'podcast', 'visible' => $isAdminTech]; } @endphp