File manager - Edit - /var/www/html/portal/app/Http/Services/ConselhosMunicipais/ConselhosService.php
Back
<?php namespace App\Http\Services\ConselhosMunicipais; use Illuminate\Support\Facades\DB; use Illuminate\Http\RedirectResponse; use Illuminate\Pagination\LengthAwarePaginator; use App\Models\ConselhosMunicipais\Conselho; use App\Models\Endereco; use App\Http\Resources\ConselhosMunicipais\ConselhosResource; use Illuminate\Http\Request; use Illuminate\Support\Str; use Illuminate\Support\Facades\Auth; class ConselhosService { public function list($request, ?string $structureId = null): LengthAwarePaginator { $q = (string) ($request->input('q') ?? ''); $query = Conselho::query(); if ($q !== '') { $query->where('nome', 'like', "%{$q}%"); } if ($structureId) { $query->where('structure_id', $structureId); } return $query->orderByDesc('created_at')->paginate(15)->withQueryString(); } public function store(array $data, Request $request): RedirectResponse { try { DB::beginTransaction(); $user = Auth::user(); $slug = ConselhosResource::generateUniqueSlug($data['slug'] ?? ($data['nome'] ?? '')); $transparencia = $data['transparencia'] ?? 'Não exibir este conselho no Portal da Transparência'; $conselho = Conselho::create([ 'slug' => $slug, 'structure_id' => $data['structure_id'] ?? ($user?->structure_id ?? null), 'nome' => $data['nome'] ?? null, 'telefone' => $data['telefone'] ?? null, 'email' => $data['email'] ?? null, 'informacoes' => $data['informacoes'] ?? null, 'transparencia' => $transparencia, 'status' => $data['status'] ?? 'ATIVADO', 'foto' => ConselhosResource::getFotoPath($request), ]); Endereco::create([ 'user_id' => $user?->id, 'owner_id' => $conselho->id, 'domicilio' => $data['domicilio'] ?? null, 'latitude' => $data['latitude'] ?? null, 'longitude' => $data['longitude'] ?? null, 'cep' => $data['cep'] ?? null, 'logradouro' => $data['logradouro'] ?? null, 'numero' => $data['numero'] ?? null, 'complemento' => $data['complemento'] ?? null, 'cidade' => $data['cidade'] ?? null, 'bairro' => $data['bairro'] ?? null, 'map' => $data['map'] ?? null, 'uf' => $data['uf'] ?? null, 'status' => $data['status'] ?? 'ATIVADO', ]); DB::commit(); return redirect()->route('admin.conselhosMunicipais.conselhos.index') ->with('success', __('Conselho criado com sucesso')); } catch (\Exception $e) { DB::rollBack(); return redirect()->route('admin.conselhosMunicipais.conselhos.create')->withInput()->with('error', __('Erro ao tentar cadastrar este conselho: ') . $e->getMessage()); } } public function update(Conselho $conselho, array $data, Request $request): RedirectResponse { try { DB::beginTransaction(); $conselho->slug = $conselho->slug ?: ConselhosResource::generateUniqueSlug($data['slug'] ?? ($data['nome'] ?? '')); $conselho->nome = $data['nome'] ?? $conselho->nome; $conselho->email = $data['email'] ?? $conselho->email; $conselho->telefone = $data['telefone'] ?? $conselho->telefone; $conselho->informacoes = $data['informacoes'] ?? $conselho->informacoes; $conselho->transparencia = $data['transparencia'] ?? $conselho->transparencia ?? 'Não exibir este conselho no Portal da Transparência'; $conselho->status = $data['status'] ?? $conselho->status; if (isset($data['structure_id'])) { $conselho->structure_id = $data['structure_id']; } $conselho->foto = ConselhosResource::getFotoPath($request, $conselho); $conselho->save(); Endereco::updateOrCreate( ['owner_id' => $conselho->id], [ 'user_id' => Auth::user()?->id, 'domicilio' => $data['domicilio'] ?? null, 'latitude' => $data['latitude'] ?? null, 'longitude' => $data['longitude'] ?? null, 'cep' => $data['cep'] ?? null, 'logradouro' => $data['logradouro'] ?? null, 'numero' => $data['numero'] ?? null, 'complemento' => $data['complemento'] ?? null, 'cidade' => $data['cidade'] ?? null, 'bairro' => $data['bairro'] ?? null, 'map' => $data['map'] ?? null, 'uf' => $data['uf'] ?? null, 'status' => $data['status'] ?? 'ATIVADO', ] ); DB::commit(); return redirect()->route('admin.conselhosMunicipais.conselhos.index') ->with('success', __('Conselho atualizado com sucesso')); } catch (\Exception $e) { DB::rollBack(); return redirect()->route('admin.conselhosMunicipais.conselhos.edit', $conselho->id)->withInput()->with('error', __('Erro ao tentar atualizar este conselho: ') . $e->getMessage()); } } public function destroy(Conselho $conselho): RedirectResponse { try { DB::beginTransaction(); (new ConselhosResource())->handleFileDestroyArquivo($conselho->foto, "pmar/assets/img/icons/conselhos.png"); Endereco::where('owner_id', $conselho->id)->delete(); $conselho->delete(); DB::commit(); return redirect()->route('admin.conselhosMunicipais.conselhos.index') ->with('success', __('Conselho excluído com sucesso')); } catch (\Exception $e) { DB::rollBack(); return redirect()->route('admin.conselhosMunicipais.conselhos.index')->with('error', __('Erro ao tentar excluir conselho: ') . $e->getMessage()); } } public function status(Conselho $conselho, string $status): RedirectResponse { try { DB::beginTransaction(); $conselho->status = $status; $conselho->save(); DB::commit(); return redirect()->route('admin.conselhosMunicipais.conselhos.index') ->with('success', __('Status atualizado com sucesso')); } catch (\Exception $e) { DB::rollBack(); return redirect()->route('admin.conselhosMunicipais.conselhos.index')->with('error', __('Erro ao atualizar status: ') . $e->getMessage()); } } }
| ver. 1.4 |
Github
|
.
| PHP 8.3.28 | Generation time: 0.02 |
proxy
|
phpinfo
|
Settings