File manager - Edit - /var/www/html/portal/app/Http/Services/MeioAmbiente/CastracaoAnimal/CastracaoTutoresService.php
Back
<?php namespace App\Http\Services\MeioAmbiente\CastracaoAnimal; use App\Http\Controllers\Controller; use App\Models\User; use App\Models\Endereco; use App\Models\Permissao; use App\Models\MeioAmbiente\CastracaoAnimal\Tutor; use Illuminate\Support\Facades\Session; use Illuminate\Http\RedirectResponse; use Illuminate\Support\Facades\Auth; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; use Illuminate\Pagination\LengthAwarePaginator; class CastracaoTutoresService extends Controller { protected $User = User::class; protected $Structure = Structure::class; protected $Permissao = Permissao::class; protected $Tutor = Tutor::class; public function getTotalTutores(): int { return $this->Tutor::count(); } public function index(Request $request): LengthAwarePaginator { $paginate = 20; if ($request->filled('q')) { $request->validate([ 'q' => 'nullable|string|max:255', ]); $users = $this->User::select("id") ->where(function ($query) use ($request) { $q = trim($request->q); $query->where('firstName', 'like', "%{$q}%") ->orWhere('lastName', 'like', "%{$q}%") ->orWhere('matriculation', 'like', "%{$q}%") ->orWhere('email', 'like', "%{$q}%") ->orWhere('cpf', 'like', "%" . $this->clearCpfCnpj($q) . "%"); }) ->pluck('id'); return $this->Tutor::whereIn('owner_id', $users) ->orderByDesc('created_at') ->paginate($paginate); } return $this->Tutor::orderByDesc('created_at')->paginate($paginate); } public function store(Array $array_user, Array $array_tutor, Array $array_endereco): RedirectResponse { DB::beginTransaction(); try { $user = $this->User::updateOrCreate(['cpf' => $array_user["cpf"]], $array_user ); $array_endereco["user_id"] = Auth::user()->id; $array_endereco["owner_id"] = $user->id; $array_tutor["user_id"] = Auth::user()->id; $array_tutor["owner_id"] = $user->id; Tutor::updateOrCreate(['user_id' => $user->id], $array_tutor); Endereco::updateOrCreate(['user_id' => $user->id], $array_endereco); DB::commit(); Session::forget('cpfTmp'); return redirect()->route('admin.meioAmbiente.castracaoAnimal.tutores.index') ->with('success', 'Tutor cadastrado com sucesso!'); } catch (\Exception $e) { DB::rollBack(); return redirect()->route('admin.meioAmbiente.castracaoAnimal.tutores.index') ->withErrors(['error' => 'Erro ao cadastrar tutor: ' . $e->getMessage()]); } } public function update(Array $array_user, Array $array_tutor, Array $array_endereco, Tutor $tutor): RedirectResponse { DB::beginTransaction(); try { $tutor->user->fill($array_user); $tutor->user->save(); $tutor->user->endereco->fill($array_endereco); $tutor->user->endereco->save(); $tutor->fill($array_tutor); $tutor->save(); DB::commit(); return redirect()->route('admin.meioAmbiente.castracaoAnimal.tutores.index') ->with('success', 'Tutor cadastrado com sucesso!'); } catch (\Exception $e) { DB::rollBack(); return redirect()->route('admin.meioAmbiente.castracaoAnimal.tutores.index') ->withErrors(['error' => 'Erro ao atualizar o tutor: ' . $e->getMessage()]); } } public function destroy(Tutor $tutor): RedirectResponse { DB::beginTransaction(); try { Tutor::destroy($tutor->id); DB::commit(); return redirect()->route('admin.meioAmbiente.castracaoAnimal.tutores.index') ->with('success', 'Tutor excluĂdo com sucesso!'); } catch (\Exception $e) { DB::rollBack(); return redirect()->route('admin.meioAmbiente.castracaoAnimal.tutores.index') ->withErrors(['error' => 'Erro ao excluir tutor: ' . $e->getMessage()]); } } public function status(Request $request, Tutor $tutor): RedirectResponse { try { DB::beginTransaction(); $tutor->fill([ 'status' => $request->checkStatus ]); $tutor->save(); DB::commit(); return redirect()->route('admin.meioAmbiente.castracaoAnimal.tutores.index') ->with("success", __("* O status do tutor {$tutor->user->firstName} foi alterado com sucesso!")); } catch (\Exception $e) { DB::rollBack(); return redirect()->route('admin.meioAmbiente.castracaoAnimal.tutores.index') ->withInput() ->with('error', 'Erro ao tentar alterar o status desta conta. ' . $e->getMessage()); } } }
| ver. 1.4 |
Github
|
.
| PHP 8.3.28 | Generation time: 0.02 |
proxy
|
phpinfo
|
Settings