File manager - Edit - /var/www/html/portalHomolog/app/Http/Controllers/Cultura/Credenciamento/Perfil/MusicosPerfilController.php
Back
<?php namespace App\Http\Controllers\Cultura\Credenciamento\Perfil; use App\Http\Controllers\Controller; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; use Illuminate\Pagination\LengthAwarePaginator; use Illuminate\Http\RedirectResponse; use Illuminate\View\View; use App\Models\Cultura\Credenciamento\Musico; use App\Models\Cultura\Credenciamento\DocumentoCredenciamento; use App\Http\Services\Cultura\Credenciamento\MusicoService; use App\Http\Services\Cultura\Credenciamento\MusicoDocumentosService; use App\Http\Requests\Cultura\Credenciamento\MusicoDocumentosRequest; use Illuminate\Support\Facades\Storage; class MusicosPerfilController extends Controller { private $permissao = "GERENCIADOR_DE_CONTA_ANGRA"; public function index(Request $request): View|LengthAwarePaginator { $response = $this->checkPermissao($this->permissao, "visualizar"); if ($response instanceof RedirectResponse) { return $response; } $user = Auth::user(); $user->load('musicos'); return view('admin.cultura.credenciamentoMusicos.perfil.index', compact(['user'])); } public function novoCredenciamento(): View|RedirectResponse { $response = $this->checkPermissao($this->permissao, "adicionar"); if ($response instanceof RedirectResponse) { return $response; } return view('admin.cultura.credenciamentoMusicos.perfil.novo'); } public function storeNovoCredenciamento(Request $request): RedirectResponse { $response = $this->checkPermissao($this->permissao, "adicionar"); if ($response instanceof RedirectResponse) { return $response; } $request->validate(['tipo_pessoa' => 'required|in:PF,PJ']); $user = Auth::user(); $service = new MusicoService(); $musico = $service->createForUser($user->id, $request->tipo_pessoa); if (!$musico) { return redirect()->route('admin.cultura.credenciamentoMusicos.perfil.novo') ->withInput() ->with('error', __('Erro ao criar credenciamento. Tente novamente.')); } \Illuminate\Support\Facades\Mail::to($user->email)->send(new \App\Mail\CadastroMusicoMail($user)); return redirect()->route('admin.cultura.credenciamentoMusicos.perfil.dadosPessoais', $musico->id) ->with('success', __('Credenciamento criado com sucesso. Preencha os dados pessoais.')); } public function dadosPessoais(Musico $musico): View|RedirectResponse { $user = Auth::user(); if ($musico->user_id !== $user->id) { return redirect()->route('admin.cultura.credenciamentoMusicos.perfil.index') ->with('error', 'Acesso negado a este cadastro.'); } $pessoa = $musico->user->pessoa; return view('admin.cultura.credenciamentoMusicos.dadosPessoais', compact('musico', 'pessoa') + ['user' => $musico->user]); } public function documentos(Musico $musico): View|RedirectResponse { $user = Auth::user(); if ($musico->user_id !== $user->id) { return redirect()->route('admin.cultura.credenciamentoMusicos.perfil.index') ->with('error', __('Acesso negado a este cadastro.')); } (new MusicoService())->ensureDocumentosHabilitacao($musico); $musico->load('documentosCredenciamento'); $pessoa = $musico->user->pessoa; $tiposLabels = \App\Enums\Cultura\Credenciamento\TipoDocumentoCredenciamento::tiposParaPessoa($musico->tipo_pessoa ?? 'PF'); return view('admin.cultura.credenciamentoMusicos.documentos', compact('musico', 'pessoa', 'tiposLabels') + ['user' => $musico->user]); } public function updateDocumentos(MusicoDocumentosRequest $request, Musico $musico): RedirectResponse { $user = Auth::user(); if ($musico->user_id !== $user->id) { return redirect()->route('admin.cultura.credenciamentoMusicos.perfil.index') ->with('error', __('Acesso negado a este cadastro.')); } $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, ]; (new MusicoDocumentosService())->update($musico, $musico->user->pessoa, $array_pessoa, $array_musico); return redirect()->route('admin.cultura.credenciamentoMusicos.perfil.documentos', $musico->id) ->with('success', __('Dados salvos com sucesso.')); } public function uploadDocumento(Request $request, Musico $musico, string $documento): RedirectResponse { $user = Auth::user(); if ($musico->user_id !== $user->id) { return redirect()->route('admin.cultura.credenciamentoMusicos.perfil.index') ->with('error', __('Acesso negado a este cadastro.')); } $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.perfil.documentos', $musico->id) ->with('success', __('Documento enviado. Aguarde anĂ¡lise.')); } public function endereco(Musico $musico): View|RedirectResponse { $user = Auth::user(); if ($musico->user_id !== $user->id) { return redirect()->route('admin.cultura.credenciamentoMusicos.perfil.index') ->with('error', 'Acesso negado a este cadastro.'); } return view('admin.cultura.credenciamentoMusicos.endereco', compact('musico') + ['user' => $musico->user]); } public function arquivos(Musico $musico): View|RedirectResponse { $user = Auth::user(); if ($musico->user_id !== $user->id) { return redirect()->route('admin.cultura.credenciamentoMusicos.perfil.index') ->with('error', 'Acesso negado a este cadastro.'); } return view('admin.cultura.credenciamentoMusicos.arquivos', compact('musico') + ['user' => $musico->user]); } public function carteirinha(Musico $musico): View|RedirectResponse { $user = Auth::user(); if ($musico->user_id !== $user->id) { return redirect()->route('admin.cultura.credenciamentoMusicos.perfil.index') ->with('error', 'Acesso negado a este cadastro.'); } return view('admin.cultura.credenciamentoMusicos.carteirinha', compact('musico') + ['user' => $musico->user]); } public function convocacoes(Musico $musico): View|RedirectResponse { $user = Auth::user(); if ($musico->user_id !== $user->id) { return redirect()->route('admin.cultura.credenciamentoMusicos.perfil.index') ->with('error', __('Acesso negado a este cadastro.')); } $convocacoes = $musico->convocacoes()->with('evento')->orderByDesc('created_at')->get(); return view('admin.cultura.credenciamentoMusicos.convocacoes.historico', compact('musico', 'convocacoes') + ['user' => $musico->user, 'perfil' => true]); } }
| ver. 1.4 |
Github
|
.
| PHP 8.3.28 | Generation time: 0.02 |
proxy
|
phpinfo
|
Settings