File manager - Edit - /var/www/html/portalHomolog/app/Http/Services/Saude/Fibromialgia/FibromialgiaService.php
Back
<?php namespace App\Http\Services\Saude\Fibromialgia; use App\Models\Saude\Fibromialgia\Fibromialgia; use App\Models\Arquivo; use App\Models\Accounts\Chamados\Mensagem; use App\Models\Accounts\Chamados\Chamado; use App\Models\User; use App\Models\Permissao; use App\Models\Endereco; use App\Models\Pessoa; use App\Http\Controllers\Controller; use App\Mail\CadastroPacienteMail; use Illuminate\Support\Facades\Mail; use Illuminate\Database\Eloquent\Collection; use Illuminate\Support\Facades\DB; use Illuminate\Pagination\LengthAwarePaginator; use Illuminate\Http\Request; use Illuminate\Http\RedirectResponse; use Illuminate\Support\Facades\Auth; use App\Http\Requests\Saude\Fibromialgia\FibromialgiaRequest; class FibromialgiaService extends Controller { protected $Fibromialgia = Fibromialgia::class; protected $User = User::class; protected $Permissao = Permissao::class; protected $Endereco = Endereco::class; protected $Pessoa = Pessoa::class; protected $Arquivo = Arquivo::class; protected $Mensagem = Mensagem::class; protected $Chamado = Chamado::class; public function getUserWithId($cpf): User|bool { $user = User::where('cpf', $this->clearCpfCnpj($cpf))->first(); if ($user instanceof User) { return $user; } return false; } public function index(Request $request): LengthAwarePaginator { $paginate = 20; if (isset($request->q)) { $request->validate([ 'q' => 'nullable|string|max:255', ]); return $this->Fibromialgia::select('fibromialgia.*') ->join('users', 'users.id', '=', 'fibromialgia.user_id') ->where(function ($query) use ($request) { $q = trim($request->q); $query->where('users.firstName', 'like', "%{$q}%") ->orWhere('users.lastName', 'like', "%{$q}%") ->orWhere('users.cpf', 'like', "%{$this->clearCPF($q)}%") ->orWhere('users.phoneNumber', 'like', "%{$q}%") ->orWhere('fibromialgia.status_cadastro', 'like', "%{$q}%") ->orWhere('fibromialgia.carteirinha_paciente', 'like', "%{$q}%") ->orWhere('users.email', 'like', "%{$q}%"); }) ->orderByDesc('fibromialgia.created_at') ->paginate($paginate); } return $this->Fibromialgia::orderByDesc('created_at')->paginate($paginate); } public function getCamposFibromialgia(): ?Array { return [ 'nomeCompleto' => 'Nome Completo', 'nomeMae' => 'Nome da Mãe', 'nomePai' => 'Nome do Pai', 'dtaNascimento' => 'Data de Nascimento', 'numeroCI' => 'RG', 'cpf' => 'CPF', 'numeroSUS' => 'Número do SUS', 'esfReferencia' => 'ESF de Referência', 'dtaDiagnostico' => 'Data do Diagnóstico', ]; } public function create(Array $array_musico): Fibromialgia|bool { try { DB::beginTransaction(); $fibromialgia = $this->Fibromialgia::create($array_musico); DB::commit(); return $fibromialgia; } catch (\Exception $e) { DB::rollBack(); return false; } } public function store($array_user): RedirectResponse { try { DB::beginTransaction(); $user = $this->User::create($array_user); $this->Permissao::create([ 'user_id' => $user->id, 'permissao' => "GUEST", 'visualizar' => 1, 'adicionar' => 1, 'editar' => 1, 'excluir' => 1, 'status' => "ATIVADO", ]); $this->Pessoa::create(['user_id' => $user->id]); $fibromialgia = $this->Fibromialgia::create(['user_id' => $user->id]); if (!empty($user->getRawOriginal('email'))) { Mail::to($user->email)->send(new CadastroPacienteMail($user)); } DB::commit(); return redirect()->route('admin.saude.fibromialgia.dadosPessoais', $fibromialgia->id) ->with('success', '* Usuário criado com sucesso!'); } catch (\Exception $e) { DB::rollBack(); return redirect() ->back() ->withInput() ->with('error', 'Erro tentar criar esta conta. ' . $e->getMessage()); } } public function update(FibromialgiaRequest $request, User $user, $array_user): RedirectResponse { try { DB::beginTransaction(); $user->update($array_user); DB::commit(); return redirect()->route('admin.saude.fibromialgia.dadosPessoais', $user->fibromialgia->id) ->with('success', '* Dados do usuário atualizado com sucesso!'); } catch (\Exception $e) { DB::rollBack(); return redirect() ->back() ->withInput() ->with('error', 'Erro tentar atualizar este paciente. ' . $e->getMessage()); } } public function destroyArquivo(Fibromialgia $fibromialgia, string $label): RedirectResponse { try { DB::beginTransaction(); $fibromialgia->update([ "$label" => "pmar/assets/img/icons/neuto.png" ]); DB::commit(); return redirect()->route('admin.saude.fibromialgia.arquivos', $fibromialgia->id)->with('success', 'Arquivo excluído com sucesso! Esta ação não pode ser desfeita.'); } catch (\Exception $e) { DB::rollBack(); return redirect() ->back() ->withInput() ->with('error', 'Erro ao excluir o arquivo. ' . $e->getMessage()); } } public function destroy(Request $request, Fibromialgia $fibromialgia): RedirectResponse { try { DB::beginTransaction(); $chamados = $fibromialgia->chamados->where("convenio", "Cadastro de Paciente com Fibromialgia"); foreach ($chamados as $chamado) { foreach ($chamado->mensagens as $mensagem) { foreach ($mensagem->arquivos as $arquivo) { $this->handleFileDestroyArquivo($arquivo->link); $this->Arquivo::destroy($arquivo->id); } $this->Mensagem::destroy($mensagem->id); } $this->Chamado::destroy($chamado->id); } $this->Fibromialgia::destroy($fibromialgia->id); DB::commit(); $page = $request->input('page', 1); return redirect("/admin/saude/fibromialgia?page={$page}")->with("success", __("* O paciente {$fibromialgia->nome_completo} 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 paciente. ' . $e->getMessage()); } } public function relatorioDeCadastros(Array $filtros): Collection|RedirectResponse { try { DB::beginTransaction(); $pacientes = Fibromialgia::query() ->select('fibromialgia.*') ->leftJoin('users', 'users.id', '=', 'fibromialgia.user_id') ->whereIn('fibromialgia.status_cadastro', $filtros) ->orderBy('fibromialgia.status_cadastro') ->orderBy('users.firstName') ->orderBy('users.lastName') ->get(); DB::commit(); return $pacientes; } catch (\Exception $e) { DB::rollBack(); return redirect() ->back() ->withInput() ->with('error', 'Erro ao tentar gerar um relatório de cadastro. ' . $e->getMessage()); } } public function relatorioDadosPacientes(): Collection|RedirectResponse { try { DB::beginTransaction(); $pacientes = Fibromialgia::all(); DB::commit(); return $pacientes; } catch (\Exception $e) { DB::rollBack(); return redirect() ->back() ->withInput() ->with('error', 'Erro ao tentar gerar um relatório de dados de pacientes. ' . $e->getMessage()); } } public function relatorioCarteirinhaPaciente(Array $statusCarteirinhaPaciente): Collection|RedirectResponse { try { DB::beginTransaction(); $pacientes = Fibromialgia::query() ->select('fibromialgia.*') ->leftJoin('users', 'users.id', '=', 'fibromialgia.user_id') ->whereIn('fibromialgia.carteirinha_paciente', $statusCarteirinhaPaciente) ->orderBy('fibromialgia.carteirinha_paciente') ->orderBy('users.firstName') ->orderBy('users.lastName') ->get(); DB::commit(); return $pacientes; } catch (\Exception $e) { DB::rollBack(); return redirect() ->back() ->withInput() ->with('error', 'Erro ao tentar gerar um relatório de dados de pacientes. ' . $e->getMessage()); } } public function relatorioCarteirinhas(Request $request, Array $ids): Collection|RedirectResponse { try { DB::beginTransaction(); $query = Fibromialgia::query() ->select('fibromialgia.*') ->leftJoin('users', 'users.id', '=', 'fibromialgia.user_id') ->whereIn('fibromialgia.id', $ids); if (count($ids) > 1 && $request->filled('carteirinha_paciente')) { $query->whereIn( 'fibromialgia.carteirinha_paciente', $request->input('carteirinha_paciente', []) ); } $query->orderBy('fibromialgia.carteirinha_paciente') ->orderBy('users.firstName') ->orderBy('users.lastName'); $pacientes = $query->get(); DB::commit(); return $pacientes; } catch (\Exception $e) { DB::rollBack(); return redirect() ->back() ->withInput() ->with('error', 'Erro ao tentar gerar um relatório de dados de pacientes. ' . $e->getMessage()); } } }
| ver. 1.4 |
Github
|
.
| PHP 8.3.28 | Generation time: 0.02 |
proxy
|
phpinfo
|
Settings