@props([ 'active', 'id' => null, 'mode' => 'create', 'allowedStep' => 1, 'returnTo' => '', 'auditMode' => false, 'auditReviewItemId' => null, 'showSaveButton' => false, 'hasSavedAuditChanges' => null, ]) @php $auditHasSavedChanges = is_bool($hasSavedAuditChanges) ? $hasSavedAuditChanges : false; if (! is_bool($hasSavedAuditChanges) && (bool) $auditMode && $auditReviewItemId) { $auditHasSavedChanges = \Modules\DataAudit\Entities\ReviewLog::query() ->where('review_item_id', (int) $auditReviewItemId) ->where('status', \Modules\DataAudit\Enums\ReviewLogStatus::Draft->value) ->exists(); } $steps = [ ['key' => 'basic', 'label' => 'بيانات المبنى', 'route' => 'gis.buildings.create.basic', 'requiresId' => false], ['key' => 'owners', 'label' => 'مالكي المبنى', 'route' => 'gis.buildings.create.owners', 'requiresId' => true], ['key' => 'floors', 'label' => 'الطوابق', 'route' => 'gis.buildings.create.floors', 'requiresId' => true], ['key' => 'units', 'label' => 'الوحدات', 'route' => 'gis.buildings.create.units', 'requiresId' => true], ]; if ($mode === 'edit') { $steps[] = ['key' => 'histories', 'label' => 'تاريخ تعديلات المبنى', 'route' => 'gis.buildings.create.histories', 'requiresId' => true]; } @endphp
@foreach ($steps as $index => $step) @php $stepIndex = $index + 1; $isActive = $active === $step['key']; $requiresId = (bool) ($step['requiresId'] ?? false); $isLocked = ($mode === 'create' && $allowedStep < $stepIndex) || ($requiresId && ! $id); $routeParams = []; if ($id) { $routeParams['id'] = $id; } if (is_string($returnTo) && $returnTo !== '') { $routeParams['return_to'] = $returnTo; } if ((bool) $auditMode && $auditReviewItemId) { $routeParams['audit_mode'] = 1; $routeParams['review_item_id'] = (int) $auditReviewItemId; } $href = $requiresId ? ($id ? route($step['route'], $routeParams) : '#') : route($step['route'], $routeParams); @endphp @if ($isLocked) {{ $step['label'] }} @else $isActive, 'bg-muted/30 text-foreground hover:bg-muted hover:text-primary hover:shadow-sm' => ! $isActive, ]) > {{ $step['label'] }} @endif @endforeach
@if($auditMode && $auditReviewItemId) @if($mode === 'edit' && (bool) $showSaveButton) @endif @if(! $auditHasSavedChanges) رجوع @endif @elseif($mode === 'edit' && $id) @can('buildings.edit') @if((bool) $showSaveButton) @endif @endcan @endif @if($mode === 'create') @can('buildings.create') @if((int) $allowedStep > 1) @endif @endcan @endif {{ $slot }}