File manager - Edit - /var/www/html/portal/app/Http/Services/AcaoSocial/CentrosDeReferencia/CentrosDeReferenciaService.php
Back
<?php namespace App\Http\Services\AcaoSocial\CentrosDeReferencia; use App\Http\Controllers\Controller; use App\Models\AcaoSocial\CentrosDeReferencia\Centro; use App\Models\Structure; use App\Models\Endereco; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Auth; use Illuminate\Pagination\LengthAwarePaginator; use Illuminate\Http\RedirectResponse; use Illuminate\Database\Eloquent\Collection; class CentrosDeReferenciaService extends Controller { protected $Centro = Centro::class; protected $Structure = Structure::class; protected $Endereco = Endereco::class; public function index(Request $request): LengthAwarePaginator { $paginate = 20; if (isset($request->q)) { $request->validate([ 'q' => 'nullable|string|max:255', ]); return $this->centros = Centro::select('centros.*') ->join('enderecos', 'enderecos.owner_id', '=', 'centros.id') ->where(function ($query) use ($request) { $q = trim($request->q); $query->where('centros.nome', 'like', "%{$q}%") ->orWhere('centros.telefone', 'like', "%{$q}%") ->orWhere('centros.email', 'like', "%{$q}%") ->orWhere('enderecos.cep', 'like', "%{$q}%") ->orWhere('enderecos.logradouro', 'like', "%{$q}%") ->orWhere('enderecos.complemento', 'like', "%{$q}%") ->orWhere('enderecos.bairro', 'like', "%{$q}%"); }) ->orderByDesc('centros.created_at') ->paginate($paginate); } return $this->centros = Centro::orderByDesc("created_at")->paginate($paginate); } public function getSecretariaDesenvolvimentoSocial(): Structure { return Structure::select("id", "name", "abbreviation") ->where([ ["status", "=", "ATIVADO"], ["name", "like", "%desenvolvimento social%"], ]) ->whereNull("structure_id") ->orderBy('name', 'asc') ->first(); } public function store(Array $array_centro, Array $array_endereco): RedirectResponse { DB::beginTransaction(); try { $centro = $this->Centro::create($array_centro); $array_endereco['user_id'] = Auth::user()->id; $array_endereco['owner_id'] = $centro->id; $this->Endereco::create($array_endereco); DB::commit(); return redirect()->route('admin.acaoSocial.centrosDeReferencia.index') ->with('success', 'Centro de referência criado com sucesso!'); } catch (\Exception $e) { DB::rollBack(); return redirect()->route('admin.acaoSocial.centrosDeReferencia.index') ->withErrors(['error' => 'Erro ao criar o centro de referência: ' . $e->getMessage()]); } } public function update(Array $array_centro, Array $array_endereco, Centro $centro): RedirectResponse { DB::beginTransaction(); try { $centro->fill($array_centro); $centro->save(); $centro->endereco->update($array_endereco); DB::commit(); return redirect()->route('admin.acaoSocial.centrosDeReferencia.index') ->with('success', 'Centro de referência atualizado com sucesso!'); } catch (\Exception $e) { DB::rollBack(); return redirect()->route('admin.acaoSocial.centrosDeReferencia.index') ->withErrors(['error' => 'Erro ao atualizar o centro de referência: ' . $e->getMessage()]); } } public function destroy(Centro $centro) : RedirectResponse { try { DB::beginTransaction(); $this->Endereco::destroy($centro->endereco->id); $this->Centro::destroy($centro->id); DB::commit(); return redirect()->route('admin.acaoSocial.centrosDeReferencia.index') ->with('success', 'Centro de referência excluído com sucesso!'); } catch (\Exception $e) { DB::rollBack(); return redirect()->route('admin.acaoSocial.centrosDeReferencia.index') ->withErrors(['error' => 'Erro ao excluir o centro de referência: ' . $e->getMessage()]); } } public function status(Request $request, Centro $centro) : RedirectResponse { DB::beginTransaction(); try { $centro->fill([ 'status' => $request->checkStatus ]); $centro->save(); DB::commit(); return redirect()->route('admin.acaoSocial.centrosDeReferencia.index') ->with('success', 'Status do Centro de referência alterado com sucesso!'); } catch (\Exception $e) { DB::rollBack(); return redirect()->route('admin.acaoSocial.centrosDeReferencia.index') ->withErrors(['error' => 'Erro ao tentar alterar o status do centro de referência: ' . $e->getMessage()]); } } }
| ver. 1.4 |
Github
|
.
| PHP 8.3.28 | Generation time: 0.02 |
proxy
|
phpinfo
|
Settings