File manager - Edit - /var/www/html/portal/app/Http/Controllers/Cultura/Credenciamento/MusicosDocumentosController.php
Back
<?php namespace App\Http\Controllers\Cultura\Credenciamento; use App\Http\Controllers\Controller; use Illuminate\Http\Request; use App\Http\Requests\Cultura\Credenciamento\MusicoDocumentosRequest; use App\Models\Cultura\Credenciamento\Musico; use App\Http\Services\Cultura\Credenciamento\MusicoDocumentosService; use App\Http\Services\Cultura\Credenciamento\MusicoService; use App\Enums\Cultura\Credenciamento\TipoDocumentoCredenciamento; use App\Models\Cultura\Credenciamento\DocumentoCredenciamento; use App\Http\Services\Cultura\Credenciamento\CredenciamentoEtapaAccess; use App\Mail\Cultura\Credenciamento\DocumentoReprovadoCredenciamentoMail; use Illuminate\Pagination\LengthAwarePaginator; use Illuminate\Http\RedirectResponse; use Illuminate\View\View; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Mail; use Illuminate\Support\Facades\Storage; class MusicosDocumentosController extends Controller { private $permissao = "GERENCIADOR_CREDENCIAMENTO_DE_MUSICOS"; public function index(Request $request, Musico $musico): View|LengthAwarePaginator { $response = $this->checkPermissao($this->permissao, "visualizar"); if ($response instanceof RedirectResponse) { return $response; } if (!CredenciamentoEtapaAccess::canAccessLicitacao(auth()->user())) { return redirect()->route('admin.cultura.credenciamentoMusicos.index') ->with('error', __('Acesso à etapa de Habilitação Documental (Licitação) não permitido para sua estrutura.')); } (new MusicoService())->ensureDocumentosHabilitacao($musico); $musico->load('documentosCredenciamento'); $user = $musico->user; $pessoa = $musico->user->pessoa; $tiposLabels = TipoDocumentoCredenciamento::tiposParaPessoa($musico->tipo_pessoa ?? 'PF'); return view('admin.cultura.credenciamentoMusicos.documentos', compact('musico', 'user', 'pessoa', 'tiposLabels')); } public function update(MusicoDocumentosRequest $request, Musico $musico): RedirectResponse { $response = $this->checkPermissao($this->permissao, "editar"); if ($response instanceof RedirectResponse) { return $response; } $validated = $request->validated(); $array_pessoa = [ 'numeroCI' => $validated['numeroCI'] ?? null, 'orgaoExp' => isset($validated['orgaoExp']) ? mb_strtoupper($validated['orgaoExp']) : null, 'dtaExpedicao' => $validated['dtaExpedicao'] ?? null, ]; $array_musico = [ 'registroMusico' => $validated['registroMusico'] ?? null, 'dtaExpedicaoRegistroMusico' => $validated['dtaExpedicaoRegistroMusico'] ?? null, ]; $MusicoDocumentosService = new MusicoDocumentosService(); return $MusicoDocumentosService->update($musico, $musico->user->pessoa, $array_pessoa, $array_musico); } public function uploadDocumento(Request $request, Musico $musico, string $documento): RedirectResponse { $response = $this->checkPermissao($this->permissao, "editar"); if ($response instanceof RedirectResponse) { return $response; } if (!CredenciamentoEtapaAccess::canAccessLicitacao(auth()->user())) { return redirect()->route('admin.cultura.credenciamentoMusicos.index') ->with('error', __('Acesso à etapa de Habilitação Documental não permitido para sua estrutura.')); } $doc = DocumentoCredenciamento::where('musico_id', $musico->id)->findOrFail($documento); $request->validate(['arquivo' => 'required|file|mimes:pdf,jpg,jpeg,png|max:10240']); $file = $request->file('arquivo'); $path = $file->store('credenciamento/documentos/' . $musico->id, 'public'); $doc->update(['arquivo_url' => 'storage/' . $path, 'status' => 'PENDENTE']); return redirect()->route('admin.cultura.credenciamentoMusicos.documentos', $musico->id) ->with('success', __('Documento enviado. Aguarde análise.')); } public function avaliarDocumento(Request $request, Musico $musico, string $documento): RedirectResponse { $response = $this->checkPermissao($this->permissao, "editar"); if ($response instanceof RedirectResponse) { return $response; } if (!CredenciamentoEtapaAccess::canAccessLicitacao(auth()->user())) { return redirect()->route('admin.cultura.credenciamentoMusicos.index') ->with('error', __('Acesso à etapa de Habilitação Documental não permitido para sua estrutura.')); } $doc = DocumentoCredenciamento::where('musico_id', $musico->id)->findOrFail($documento); $request->validate([ 'status' => 'required|in:APROVADO,REPROVADO', 'observacao' => 'nullable|string|max:1000', ]); $doc->update([ 'status' => $request->status, 'observacao' => $request->observacao, 'avaliador_id' => Auth::id(), 'data_avaliacao' => now(), ]); if ($request->status === 'REPROVADO' && $musico->user->email) { Mail::to($musico->user->email)->send(new DocumentoReprovadoCredenciamentoMail($musico, $doc, $request->observacao ?? '')); } $msg = $request->status === 'APROVADO' ? __('Documento aprovado.') : __('Documento reprovado.'); return redirect()->route('admin.cultura.credenciamentoMusicos.documentos', $musico->id)->with('success', $msg); } }
| ver. 1.4 |
Github
|
.
| PHP 8.3.28 | Generation time: 0.02 |
proxy
|
phpinfo
|
Settings