@extends('layouts.app') @section('content') @if(Auth::check())
| {{ __('site.mainifestations.key.table_header_number') }} | {{ __('site.mainifestations.key.table_header_file_number') }} | {{ __('site.mainifestations.key.table_header_structure') }} | {{ __('site.mainifestations.key.table_header_event') }} | {{ __('site.mainifestations.key.table_header_date') }} | {{ __('site.mainifestations.key.table_header_gouvernorat') }} | {{ __('site.mainifestations.key.table_header_delegation') }} | {{ __('site.mainifestations.key.table_header_form_type') }} | {{ __('site.mainifestations.key.table_header_status') }} | {{ __('site.mainifestations.key.table_header_actions') }} | {{ __('site.mainifestations.key.table_header_decision') }} |
|---|---|---|---|---|---|---|---|---|---|---|
| {{ $i + 1 }} | {{ $row->num_dossier }} | {{ trans_field($row, 'nom_organisme') ?? '-' }} | {{ trans_field($row, 'nom_evenement') ?? '-' }} | {{ $row->date_even ?? '-' }} | {{ trans_field($row->gouvernorat ? $row : ($row->raw->evenementSportifs->first()?->gouvernorat ?? null), 'nom') ?? '-' }} | {{ trans_field($row->delegation ? $row : ($row->raw->evenementSportifs->first()?->delegation ?? null), 'nom') ?? '-' }} | @php $tfid = $row->raw->type_formulaire_id ?? $row->type_formulaire_id ?? null; @endphp @if($tfid === 12 || (string)$tfid === '12') {{ __('site.mainifestations.type.national') }} @elseif($tfid === 13 || (string)$tfid === '13') {{ __('site.mainifestations.type.international') }} @else - @endif | @php // Prefer the computed latest_statut provided by controller $latest = $row->latest_statut ?? null; $statutLabel = $latest['label'] ?? (trans_field($row->statut ?? $row->raw->statut ?? null, 'statut') ?? __('site.mainifestations.key.status_pending')); $rawStatId = $latest['statut_id'] ?? ($row->raw->statut_id ?? null); $rawStat2Id = $latest['statut2_id'] ?? ($row->raw->statut2_id ?? null); $rawTypeId = $latest['type_id'] ?? ($row->raw->id_type ?? null); $normStat = mb_strtolower(trim(strip_tags((string) $statutLabel))); $pendingKeywords = ['في الانتظار', 'pending', 'en attente', 'enattente', 'en_attente']; $acceptedKeywords = ['قبول', 'accepted', 'accepté', 'accepter', 'acceptation', 'accept', 'accepté']; $refusedKeywords = ['رفض', 'refusé', 'refus', 'refused', 'rejeter', 'rejeté', 'rejet', 'rejected']; $badgeClass = 'status-badge--pending'; $containsAny = function(array $keywords, string $value) { foreach ($keywords as $k) { if ($k === '') continue; if (mb_stripos($value, mb_strtolower($k)) !== false) return true; } return false; }; if ($containsAny($pendingKeywords, $normStat)) { $badgeClass = 'status-badge--pending'; } elseif ($containsAny($acceptedKeywords, $normStat)) { $badgeClass = 'status-badge--success'; } elseif ($containsAny($refusedKeywords, $normStat)) { $badgeClass = 'status-badge--danger'; } else { // fallback on numeric ids if label didn't match known keywords if (!empty($rawStatId) && ((int)$rawStatId === 3 || (int)$rawStatId === -1)) { $badgeClass = 'status-badge--danger'; } elseif (!empty($rawStat2Id) && (int)$rawStat2Id === 2) { $badgeClass = 'status-badge--success'; } elseif (!empty($rawStatId) && (int)$rawStatId === 1) { $badgeClass = 'status-badge--pending'; } else { $badgeClass = 'status-badge--pending'; } } @endphp {{ $statutLabel }} | @php // prefer controller-computed latest_statut, fallback to raw fields $latest = $row->latest_statut ?? null; $latestType = isset($latest['type_id']) ? (int)$latest['type_id'] : (int)($row->raw->id_type ?? 0); $latestStatId = isset($latest['statut_id']) ? (int)$latest['statut_id'] : (int)($row->raw->statut_id ?? 0); $latestStat2 = isset($latest['statut2_id'])? (int)$latest['statut2_id'] : (int)($row->raw->statut2_id ?? 0); // Business rules: // - if latest type == 8 -> edit + delete // - if latest type == 2 -> delete only // - show edit+delete also when statut_id == 8 OR statut2_id == 8 (your requested rule) $canEdit = false; $canDelete = false; if ($latestType === 8) { $canEdit = true; $canDelete = true; } elseif ($latestType === 2) { $canDelete = true; } // additional rule: if either statut id equals 8, allow edit+delete if ($latestStatId === 8 || $latestStat2 === 8) { $canEdit = true; $canDelete = true; } // final defensive fallback: if raw values show id_type 8 or statut 8 $rawType = (int)($row->raw->id_type ?? 0); $rawStat = (int)($row->raw->statut_id ?? 0); $rawStat2 = (int)($row->raw->statut2_id ?? 0); if (!$canEdit && !$canDelete) { if ($rawType === 8) { $canEdit = $canDelete = true; } elseif ($rawType === 2) { $canDelete = true; } if ($rawStat === 8 || $rawStat2 === 8) { $canEdit = $canDelete = true; } } @endphp | @if($row->raw->id_type == 1 && $row->raw->statut_id == 1 && $row->raw->statut2_id == 1) @if(!empty($row->raw->file)) @else {{ __('site.mainifestations.key.no_file') }} @endif @else {{ __('site.mainifestations.key.no_value') }} @endif |
| {{ __('site.mainifestations.key.empty_list') }} | ||||||||||