File manager - Edit - /var/www/html/portal/app/Http/Controllers/UnidadesDeSaudeController.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\UnidadesRequest; use App\Models\Unidade; use App\Models\Endereco; use App\Models\Structure; use App\Helpers\FileUploadHelper; class UnidadesDeSaudeController extends Controller { public function __construct() { $this->middleware('unidadesSaude'); } public function index(Request $request) { $paginate = 20; if (isset($request->q)) { $request->validate([ 'q' => 'nullable|string|max:255', ]); $unidadesSaude = Unidade::select('unidades_saude.*') ->join('enderecos', 'enderecos.owner_id', '=', 'unidades_saude.id') ->where(function ($query) use ($request) { $q = trim($request->q); $query->where('unidades_saude.nome', 'like', "%{$q}%") ->orWhere('unidades_saude.telefone', 'like', "%{$q}%") ->orWhere('unidades_saude.email', 'like', "%{$q}%") ->orWhere('enderecos.cep', 'like', "%{$q}%") ->orWhere('enderecos.logradouro', 'like', "%{$q}%") ->orWhere('enderecos.complemento', 'like', "%{$q}%") ->orWhere('enderecos.bairro', 'like', "%{$q}%"); }) ->orderByDesc('unidades_saude.created_at') ->paginate($paginate); } else { $unidadesSaude = Unidade::orderBy("created_at", "asc")->paginate($paginate); } return view("admin.unidadesSaude.index", [ "unidadesSaude" => $unidadesSaude, ]); } public function create() { return view("admin.unidadesSaude.create", [ "secretarias" => Structure::select("id", "name", "abbreviation") ->where([ ["status", "=", "ATIVADO"], ["name", "like", "%saúde%"], ]) ->whereNull("structure_id") ->orderBy('name', 'asc') ->get() ]); } public function store(UnidadesRequest $request) { $unidade_saude_array = [ "structure_id" => $request->structure_id, "tipoUnidadeSaude" => $request->tipoUnidadeSaude, "nome" => $request->nome, "telefone" => $request->telefone ??= null, "email" => $request->email ??= null, "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/unidade_saude.png"; if ($request->hasFile('foto') && $request->file('foto')->isValid()) { $file = $request->file('foto'); $uploadedPath = FileUploadHelper::processSafeImageUpload($file, 'unidades'); if ($uploadedPath) { $path = $uploadedPath; } } $unidade_saude_array["foto"] = $path; try { DB::beginTransaction(); $unidadeSaude = Unidade::create($unidade_saude_array); $endereco['user_id'] = Auth::user()->id; $endereco['owner_id'] = $unidadeSaude->id; Endereco::create($endereco); DB::commit(); $page = $request->input('page', 1); return redirect("/admin/unidades-de-saude?page={$page}")->with("success", __("* A unidade de saúde {$request->nome} foi cadastrada com sucesso!")); } catch (\Exception $e) { DB::rollBack(); return redirect() ->back() ->withInput() ->with('error', 'Erro tentar cadastrar esta unidade de saúde. ' . $e->getMessage()); } } public function edit(Unidade $unidade) { return view("admin.unidadesSaude.edit", [ "unidade" => $unidade, "secretarias" => Structure::select("id", "name", "abbreviation") ->where([ ["status", "=", "ATIVADO"], ["name", "like", "%saúde%"], ]) ->whereNull("structure_id") ->orderBy('name', 'asc') ->get() ]); } public function update(UnidadesRequest $request, Unidade $unidade) { $unidade_saude_array = [ "structure_id" => $request->structure_id, "tipoUnidadeSaude" => $request->tipoUnidadeSaude, "nome" => $request->nome, "telefone" => $request->telefone ??= null, "email" => $request->email ??= null, "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 = $unidade->foto; if ($request->hasFile('foto') && $request->file('foto')->isValid()) { $file = $request->file('foto'); $uploadedPath = FileUploadHelper::processSafeImageUpload($file, 'unidades'); if ($uploadedPath) { $path = $uploadedPath; } $search = "pmar{$ds}assets{$ds}img"; $file_exist = storage_path() . str_replace($search, "{$ds}app{$ds}public", $unidade->foto); if (@file_exists($file_exist)) { unlink($file_exist); } } $unidade_saude_array["foto"] = $path; try { DB::beginTransaction(); $unidade->update($unidade_saude_array); $endereco['user_id'] = Auth::user()->id; $endereco['owner_id'] = $unidade->id; $unidade->endereco->update($endereco); DB::commit(); $page = $request->input('page', 1); return redirect("/admin/unidades-de-saude?page={$page}")->with("success", __("* A unidade de saude {$request->nome} foi atualizada com sucesso!")); } catch (\Exception $e) { DB::rollBack(); return redirect() ->back() ->withInput() ->with('error', 'Erro tentar atualizar esta unidade de saude. ' . $e->getMessage()); } } public function destroy(Request $request, Unidade $unidade) { if (!in_array("DELETE", explode(",", Auth::user()->papers))) { return redirect() ->back() ->withInput() ->with('error', 'Permissão negada! Entre em contato com o administrador do sistema.'); } $ds = DIRECTORY_SEPARATOR; if ($unidade->foto != "pmar/assets/img/icons/unidade_saude.png") { $search = "pmar{$ds}assets{$ds}img"; $file_exist = storage_path() . str_replace($search, "{$ds}app{$ds}public", $unidade->foto); if (@file_exists($file_exist)) { unlink($file_exist); } } try { DB::beginTransaction(); Endereco::destroy($unidade->endereco->id); Unidade::destroy($unidade->id); DB::commit(); $page = $request->input('page', 1); return redirect("/admin/unidades-de-saude?page={$page}")->with("success", __("* A unidade de saude {$unidade->nome} foi excluída com sucesso! Esta ação não pode ser desfeita!")); } catch (\Exception $e) { DB::rollBack(); return redirect() ->back() ->withInput() ->with('error', 'Erro tentar excluir esta unidade de saude. ' . $e->getMessage()); } } public function status(Request $request, Unidade $unidade) { try { DB::beginTransaction(); $unidade->fill([ 'status' => $request->checkStatus ]); $unidade->save(); DB::commit(); $page = $request->input('page', 1); return redirect("/admin/unidades-de-saude?page={$page}")->with("success", __("* O status da unidade de saude {$unidade->nome} foi alterado com sucesso!")); } catch (\Exception $e) { DB::rollBack(); return redirect() ->back() ->withInput() ->with('error', 'Erro ao tentar alterar o status desta unidade de saude. ' . $e->getMessage()); } } }
| ver. 1.4 |
Github
|
.
| PHP 8.3.28 | Generation time: 0.01 |
proxy
|
phpinfo
|
Settings