File manager - Edit - /var/www/html/portal/app/Http/Controllers/ParquesJardinsController.php
Back
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Auth; use App\Http\Requests\ParquesJardinsRequest; use App\Models\Parque; use App\Models\Endereco; use App\Models\Structure; use App\Helpers\FileUploadHelper; use App\Enums\StatusPermission; class ParquesJardinsController extends Controller { private StatusPermission $permissao; public function __construct() { $this->permissao = StatusPermission::GERENCIADOR_DE_PARQUES_E_JARDINS; $this->middleware('parques'); } public function index(Request $request) { $response = $this->checkPermissao($this->permissao, "visualizar"); if ($response) { return $response; } $paginate = 20; if (isset($request->q)) { $request->validate([ 'q' => 'nullable|string|max:255', ]); if (in_array("ADMIN", explode(",", Auth::user()->permission))) { $parques = Parque::select('parques.*') ->join('enderecos', 'enderecos.owner_id', '=', 'parques.id') ->where(function ($query) use ($request) { $q = trim($request->q); $query->where('parques.nome', 'like', "%{$q}%") ->orWhere('parques.telefone', 'like', "%{$q}%") ->orWhere('parques.email', 'like', "%{$q}%"); }) ->orderByDesc('parques.created_at') ->paginate($paginate); } else { $parques = Parque::select('parques.*') ->join('enderecos', 'enderecos.owner_id', '=', 'parques.id') ->where(function ($query) use ($request) { $q = trim($request->q); $query->where('parques.nome', 'like', "%{$q}%") ->orWhere('parques.telefone', 'like', "%{$q}%") ->orWhere('parques.email', 'like', "%{$q}%"); }) ->where("parques.structure_id", env("CONST_COD_SEC_SUPJ")) ->orderByDesc('parques.created_at') ->paginate($paginate); } } else { if (in_array("ADMIN", explode(",", Auth::user()->permission))) { $parques = Parque::orderBy("created_at", "asc")->paginate($paginate); } else { $parques = Parque::orderBy("created_at", "asc") ->where("structure_id", env("CONST_COD_SEC_SUPJ"))->paginate($paginate); } } return view("admin.parquesJardins.index", [ "parques" => $parques, ]); } public function create() { $response = $this->checkPermissao($this->permissao, "adicionar"); if ($response) { return $response; } $route = "admin.parquesJardins.create"; if (in_array("ADMIN", explode(",", Auth::user()->permission))) { return view($route, [ "secretarias" => Structure::select("id", "name", "abbreviation") ->where([ ["status", "=", "ATIVADO"], ]) ->whereNull("structure_id") ->orderBy('name', 'asc') ->get() ]); } else { return view($route, [ "secretarias" => Structure::select("id", "name", "abbreviation") ->where([ ["status", "=", "ATIVADO"], ["id", "=", Auth::user()->structure_id], ]) ->whereNull("structure_id") ->orderBy('name', 'asc') ->get() ]); } } public function store(ParquesJardinsRequest $request) { $response = $this->checkPermissao($this->permissao, "adicionar"); if ($response) { return $response; } $parque_array = [ "structure_id" => $request->structure_id, "nome" => $request->nome, "lei" => $request->lei, "area" => $request->area, "perimetro" => $request->perimetro, "slug" => $request->slug, "telefone" => $request->telefone, "email" => $request->email, "categorias" => $request->categorias, "atributos" => $request->atributos, "informacoes" => $request->informacoes, "status" => $request->status, ]; $endereco = [ "domicilio" => $request->domicilio, "latitude" => $request->latitude, "longitude" => $request->longitude, "cep" => $request->cep, "logradouro" => $request->logradouro, "numero" => $request->numero, "complemento" => $request->complemento, "cidade" => $request->cidade, "bairro" => $request->bairro, "map" => $request->map, "uf" => $request->uf, ]; $path = "pmar/assets/img/icons/parques.png"; if ($request->hasFile('foto') && $request->file('foto')->isValid()) { $file = $request->file('foto'); $uploadedPath = FileUploadHelper::processSafeImageUpload($file, 'parques'); if ($uploadedPath) { $path = $uploadedPath; } } $parque_array["foto"] = $path; try { DB::beginTransaction(); $parque = Parque::create($parque_array); $endereco['user_id'] = Auth::user()->id; $endereco['owner_id'] = $parque->id; Endereco::create($endereco); DB::commit(); $page = $request->input('page', 1); return redirect("/admin/parques-e-jardins?page={$page}")->with("success", __("* O parque foi cadastrado com sucesso!")); } catch (\Exception $e) { DB::rollBack(); return redirect() ->back() ->withInput() ->with('error', 'Erro ao tentar cadastrar este parque. ' . $e->getMessage()); } } public function edit(Parque $parque) { $response = $this->checkPermissao($this->permissao, "editar"); if ($response) { return $response; } $route = "admin.parquesJardins.edit"; if (in_array("ADMIN", explode(",", Auth::user()->permission))) { return view($route, [ "parque" => $parque, "atributos" => explode(',', trim($parque->atributos, ', ')), "secretarias" => Structure::select("id", "name", "abbreviation") ->where([ ["status", "=", "ATIVADO"], ]) ->whereNull("structure_id") ->orderBy('name', 'asc') ->get() ]); } else { return view($route, [ "parque" => $parque, "atributos" => explode(',', trim($parque->atributos, ', ')), "secretarias" => Structure::select("id", "name", "abbreviation") ->where([ ["status", "=", "ATIVADO"], ["id", "=", Auth::user()->structure_id], ]) ->whereNull("structure_id") ->orderBy('name', 'asc') ->get() ]); } } public function update(ParquesJardinsRequest $request, Parque $parque) { $response = $this->checkPermissao($this->permissao, "editar"); if ($response) { return $response; } $parque_array = [ "structure_id" => $request->structure_id, "nome" => $request->nome, "lei" => $request->lei, "area" => $request->area, "perimetro" => $request->perimetro, "slug" => $request->slug, "telefone" => $request->telefone, "email" => $request->email, "categorias" => $request->categorias, "atributos" => $request->atributos, "informacoes" => $request->informacoes, "status" => $request->status, ]; $endereco = [ "domicilio" => $request->domicilio, "latitude" => $request->latitude, "longitude" => $request->longitude, "cep" => $request->cep, "logradouro" => $request->logradouro, "numero" => $request->numero, "complemento" => $request->complemento, "cidade" => $request->cidade, "bairro" => $request->bairro, "map" => $request->map, "uf" => $request->uf, ]; $ds = DIRECTORY_SEPARATOR; $path = $parque->foto; if ($request->hasFile('foto') && $request->file('foto')->isValid()) { $file = $request->file('foto'); $uploadedPath = FileUploadHelper::processSafeImageUpload($file, 'parques'); if ($uploadedPath) { $path = $uploadedPath; } $search = "pmar{$ds}assets{$ds}img"; $file_exist = storage_path() . str_replace($search, "{$ds}app{$ds}public", $parque->foto); if (@file_exists($file_exist)) { unlink($file_exist); } } $parque_array["foto"] = $path; try { DB::beginTransaction(); $parque->update($parque_array); $endereco['user_id'] = Auth::user()->id; $endereco['owner_id'] = $parque->id; $parque->endereco->update($endereco); DB::commit(); $page = $request->input('page', 1); return redirect("/admin/parques-e-jardins?page={$page}")->with("success", __("* O conselho {$request->nome} foi atualizado com sucesso!")); } catch (\Exception $e) { DB::rollBack(); return redirect() ->back() ->withInput() ->with('error', 'Erro tentar atualizar este conselho. ' . $e->getMessage()); } } public function destroy(Request $request, Parque $parque) { $response = $this->checkPermissao($this->permissao, "excluir"); if ($response) { return $response; } $ds = DIRECTORY_SEPARATOR; if ($parque->foto != "pmar/assets/img/icons/parques.png") { $search = "pmar{$ds}assets{$ds}img"; $file_exist = storage_path() . str_replace($search, "{$ds}app{$ds}public", $parque->foto); if (@file_exists($file_exist)) { unlink($file_exist); } } try { DB::beginTransaction(); Endereco::destroy($parque->endereco->id); Parque::destroy($parque->id); DB::commit(); $page = $request->input('page', 1); return redirect("/admin/parques-e-jardins?page={$page}")->with("success", __("* O conselho {$parque->nome} foi excluído com sucesso! Esta ação não pode ser desfeita!")); } catch (\Exception $e) { DB::rollBack(); return redirect() ->back() ->withInput() ->with('error', 'Erro tentar excluir este conselho. ' . $e->getMessage()); } } public function status(Request $request, Parque $parque) { $response = $this->checkPermissao($this->permissao, "editar"); if ($response) { return $response; } try { DB::beginTransaction(); $parque->fill([ 'status' => $request->checkStatus ]); $parque->save(); DB::commit(); $page = $request->input('page', 1); return redirect("/admin/parques-e-jardins?page={$page}")->with("success", __("* O status do conselho {$parque->nome} foi alterado com sucesso!")); } catch (\Exception $e) { DB::rollBack(); return redirect() ->back() ->withInput() ->with('error', 'Erro ao tentar alterar o status deste conselho. ' . $e->getMessage()); } } }
| ver. 1.4 |
Github
|
.
| PHP 8.3.28 | Generation time: 0.11 |
proxy
|
phpinfo
|
Settings