@extends('layouts.meeting') @section('content-meeting') @php $resolveClosedVotingStatus = function ($voting, $meetingPauta) { if (!$voting || !isset($voting->closed_at)) { return null; } $resultValue = null; if (\App\Models\MeetingPauta::hasCompletedSessionResult($meetingPauta)) { $resultValue = $meetingPauta->session_result; } elseif (!empty($voting->session_result)) { $resultValue = $voting->session_result; } if ($resultValue) { return [ 'label' => \App\Models\MeetingPauta::sessionResultLabel($resultValue) ?? 'Votação encerrada', 'class' => $resultValue === \App\Models\MeetingPauta::RESULT_REJECTED ? 'text-danger' : 'text-primary', ]; } $approved = $voting->situation($voting); return [ 'label' => $approved ? 'Votação aprovada' : 'Votação reprovada', 'class' => $approved ? 'text-primary' : 'text-danger', ]; }; $buildSessionResultSelectOptions = function ($currentResult, $hasVoting) { $placeholderLabel = $hasVoting ? 'Selecione o resultado final' : 'Selecione o andamento inicial'; $stage = $hasVoting ? \App\Models\MeetingPauta::STAGE_FINAL_RESULT : \App\Models\MeetingPauta::STAGE_INITIAL_READING; $primaryOptions = \App\Models\MeetingPauta::sessionResultSelectableOptions([$currentResult], $stage); $html = ''; if (!empty($primaryOptions)) { $groupLabel = \App\Models\MeetingPauta::sessionResultStageLabel($stage) ?: 'Opções disponíveis'; $html .= ''; } if ($currentResult) { $currentStage = \App\Models\MeetingPauta::sessionResultStage($currentResult); $currentLabel = \App\Models\MeetingPauta::sessionResultLabel($currentResult) ?? $currentResult; $currentIncludedInPrimary = array_key_exists($currentResult, $primaryOptions); if (!$currentIncludedInPrimary) { $historicalGroupLabel = 'Status atual preservado'; if ($currentStage) { $historicalGroupLabel .= ' - ' . (\App\Models\MeetingPauta::sessionResultStageLabel($currentStage) ?: $currentStage); } $html .= ''; } } return $html; }; $buildSessionResultHelpText = function ($currentResult, $hasVoting, $votingClosed) { if ($votingClosed) { return 'Resultado bloqueado após o encerramento da votação.'; } if (!$hasVoting) { return 'Sem votação aberta. Aqui você registra apenas o andamento inicial da sessão.'; } $currentStage = \App\Models\MeetingPauta::sessionResultStage($currentResult); if ($currentResult && $currentStage === \App\Models\MeetingPauta::STAGE_INITIAL_READING) { return 'Votação aberta. O andamento inicial anterior foi preservado no histórico; agora selecione apenas o resultado final.'; } return 'Votação aberta. Aqui você registra apenas o resultado final da sessão.'; }; @endphp