File manager - Edit - /var/www/html/portal/app/Http/Controllers/Saude/Fibromialgia/FibromialgiaChamadosAbertosController.php
Back
<?php namespace App\Http\Controllers\Saude\Fibromialgia; use App\Http\Controllers\Controller; use App\Models\Accounts\Chamados\Chamado; use App\Models\Saude\Fibromialgia\Fibromialgia; use App\Http\Requests\Saude\Fibromialgia\Chamados\ChamadoShowRequet; use App\Http\Requests\Saude\Fibromialgia\Chamados\ChamadoCreateRequest; use App\Http\Services\Saude\Fibromialgia\Chamados\FibromialgiaChamadosAbertosService; use App\Http\Services\Accounts\Chamados\ChamadoService; use App\Http\Services\Accounts\Chamados\ChamadoArquivoService; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\DB; use Carbon\Carbon; use Illuminate\Pagination\LengthAwarePaginator; use Illuminate\Http\RedirectResponse; use Illuminate\View\View; class FibromialgiaChamadosAbertosController extends Controller { private $permissao = "GERENCIADOR_DO_CADASTRO_DE_PACIENTES_COM_FIBROMIALGIA"; public function index(Request $request): View|LengthAwarePaginator { $response = $this->checkPermissao($this->permissao, "visualizar"); if ($response instanceof RedirectResponse) { return $response; } $FibromialgiaChamadosAbertosService = new FibromialgiaChamadosAbertosService(); $chamados = $FibromialgiaChamadosAbertosService->index($request); return view('admin.saude.fibromialgia.chamados.abertos', compact(['chamados'])); } public function show(Chamado $chamado): View { $response = $this->checkPermissao($this->permissao, "visualizar"); if ($response instanceof RedirectResponse) { return $response; } $FibromialgiaChamadosAbertosService = new FibromialgiaChamadosAbertosService(); $ChamadoService = new ChamadoService(); $user = $chamado->user; $mensagens = $ChamadoService->getMensagens($chamado); $status = $ChamadoService->getStatusChamado(); $statusChamado = $FibromialgiaChamadosAbertosService->getStatusChamado(); return view('admin.saude.fibromialgia.chamados.show', compact(['user', 'mensagens', 'chamado', 'status', 'statusChamado'])); } public function novaMensagem(ChamadoShowRequet $request, Chamado $chamado): RedirectResponse { $response = $this->checkPermissao($this->permissao, "adicionar"); if ($response instanceof RedirectResponse) { return $response; } $request->validated(); $user = Auth::user(); $ChamadoService = new ChamadoService(); $ChamadoArquivoService = new ChamadoArquivoService(); $array_mensagem = [ "chamado_id" => $chamado->id, "owner_id" => $user->id, "user_id" => $chamado->user->id, "mensagem" => $request->mensagem, ]; $mensagem = $ChamadoService->novaMensagem($array_mensagem); if ($mensagem instanceof RedirectResponse) { return $mensagem; } if ($request->hasFile('link')) { foreach ($request->file('link') as $file) { if (!$file->isValid()) { continue; } $link = $this->handleFileUploadLoop($file, 'link', 'arquivos'); if ($link === null) { continue; // Arquivo rejeitado pela validação do FileUploadHelper } $array_arquivo = [ "user_id" => Auth::user()->id, "owner_id" => $mensagem->id, "nome" => \App\Helpers\FileUploadHelper::sanitizeOriginalFileName($file), "tipo" => "Imagem", "link" => $link, ]; if (($arquivo = $ChamadoArquivoService->save($array_arquivo)) instanceof RedirectResponse) { return $arquivo; } } } $array_chamado = ["statusChamado" => $request->statusChamado,]; $ChamadoArquivoService->updateChamado($chamado, $array_chamado); return redirect() ->route("admin.saude.fibromialgia.chamados.show", $chamado->id) ->with("success", __("* Nova mensagem adicionada com sucesso a solicitação!")); } public function createChamado(ChamadoCreateRequest $request, Fibromialgia $fibromialgia): RedirectResponse { $response = $this->checkPermissao($this->permissao, "adicionar"); if ($response instanceof RedirectResponse) { return $response; } $request->validated(); try { DB::beginTransaction(); $array_chamado = [ 'user_id' => $fibromialgia->user->id, 'convenio' => 'Cadastro de Paciente com Fibromialgia', 'convenioAtual' => 'Cadastro de Paciente com Fibromialgia', 'numeroChamado' => Carbon::now()->format('YmdHis'), 'assunto' => $request->assunto, 'statusChamado' => 'Aberto', ]; $chamado = Chamado::create($array_chamado); DB::commit(); return redirect() ->route("admin.saude.fibromialgia.chamados.show", $chamado->id) ->with("success", __("* Chamado criado com sucesso!")); } catch (\Exception $e) { DB::rollBack(); return redirect() ->back() ->withInput() ->with('error', 'Erro ao tentar criar o chamado. ' . $e->getMessage()); } } }
| ver. 1.4 |
Github
|
.
| PHP 8.3.28 | Generation time: 0.01 |
proxy
|
phpinfo
|
Settings