File manager - Edit - /var/www/html/portalHomolog/app/Http/Controllers/Accounts/Chamados/ChamadoPesquisaSatisfacaoController.php
Back
<?php namespace App\Http\Controllers\Accounts\Chamados; use App\Http\Controllers\Controller; use App\Models\Accounts\Chamados\Chamado; use App\Http\Requests\Accounts\Chamados\ChamadoPesquisaSatisfacaoRequest; use App\Http\Services\Accounts\Chamados\ChamadoPesquisaSatisfacaoService; use Illuminate\Support\Facades\Auth; use Illuminate\Http\RedirectResponse; use Illuminate\View\View; class ChamadoPesquisaSatisfacaoController extends Controller { private $permissao = "GERENCIADOR_DE_CONTA_ANGRA"; /** * Exibe o formulário de pesquisa de satisfação */ public function show(Chamado $chamado): View|RedirectResponse { $response = $this->checkPermissao($this->permissao, "visualizar"); if ($response instanceof RedirectResponse) { return $response; } // Verifica se o chamado pertence ao usuário if ($chamado->user_id !== Auth::user()->id) { return redirect()->route('admin.contaAngra.chamados.index') ->with('error', __('Você não tem permissão para acessar este chamado.')); } // Verifica se o chamado está finalizado if ($chamado->statusChamado !== 'Finalizado') { return redirect()->route('admin.contaAngra.chamados.show', $chamado->id) ->with('info', __('A pesquisa de satisfação só está disponível para chamados finalizados.')); } $PesquisaSatisfacaoService = new ChamadoPesquisaSatisfacaoService(); // Verifica se já existe pesquisa $pesquisa = $PesquisaSatisfacaoService->getPesquisa($chamado); if ($pesquisa) { return redirect()->route('admin.contaAngra.chamados.show', $chamado->id) ->with('info', __('Você já respondeu a pesquisa de satisfação para este chamado.')); } return view('admin.contaAngra.chamados.pesquisa-satisfacao', compact('chamado')); } /** * Salva a pesquisa de satisfação */ public function store(ChamadoPesquisaSatisfacaoRequest $request, Chamado $chamado): RedirectResponse { $response = $this->checkPermissao($this->permissao, "adicionar"); if ($response instanceof RedirectResponse) { return $response; } // Verifica se o chamado pertence ao usuário if ($chamado->user_id !== Auth::user()->id) { return redirect()->route('admin.contaAngra.chamados.index') ->with('error', __('Você não tem permissão para acessar este chamado.')); } // Verifica se o chamado está finalizado if ($chamado->statusChamado !== 'Finalizado') { return redirect()->route('admin.contaAngra.chamados.show', $chamado->id) ->with('error', __('A pesquisa de satisfação só está disponível para chamados finalizados.')); } $PesquisaSatisfacaoService = new ChamadoPesquisaSatisfacaoService(); // Verifica se já existe pesquisa $pesquisaExistente = $PesquisaSatisfacaoService->getPesquisa($chamado); if ($pesquisaExistente) { return redirect()->route('admin.contaAngra.chamados.show', $chamado->id) ->with('info', __('Você já respondeu a pesquisa de satisfação para este chamado.')); } $request->validated(); $array_pesquisa = [ 'chamado_id' => $chamado->id, 'user_id' => Auth::user()->id, 'chamado_resolvido' => $request->boolean('chamado_resolvido'), 'problema_resolvido' => $request->boolean('problema_resolvido'), 'satisfacao' => $request->satisfacao, 'comentario' => $request->comentario, ]; try { $PesquisaSatisfacaoService->store($array_pesquisa); return redirect() ->route('admin.contaAngra.chamados.show', $chamado->id) ->with('success', __('Pesquisa de satisfação enviada com sucesso! Obrigado pelo seu feedback.')); } catch (\Exception $e) { return redirect() ->back() ->withInput() ->with('error', __('Erro ao salvar pesquisa de satisfação.') . ' ' . $e->getMessage()); } } }
| ver. 1.4 |
Github
|
.
| PHP 8.3.28 | Generation time: 0.02 |
proxy
|
phpinfo
|
Settings