File manager - Edit - /var/www/html/portal/app/Http/Services/Accounts/Chamados/ChamadoPesquisaSatisfacaoService.php
Back
<?php namespace App\Http\Services\Accounts\Chamados; use App\Models\Accounts\Chamados\ChamadoPesquisaSatisfacao; use App\Models\Accounts\Chamados\Chamado; use App\Http\Controllers\Controller; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\DB; use Illuminate\Http\RedirectResponse; class ChamadoPesquisaSatisfacaoService extends Controller { protected $PesquisaSatisfacao = ChamadoPesquisaSatisfacao::class; /** * Verifica se o chamado tem pesquisa de satisfação pendente */ public function temPesquisaPendente(Chamado $chamado): bool { if ($chamado->statusChamado !== 'Finalizado') { return false; } $pesquisa = ChamadoPesquisaSatisfacao::where('chamado_id', $chamado->id) ->where('user_id', Auth::user()->id) ->first(); return $pesquisa === null; } /** * Salva a pesquisa de satisfação * Retorna o modelo criado ou lança exceção */ public function store(array $array_pesquisa): ChamadoPesquisaSatisfacao { DB::beginTransaction(); try { $pesquisa = $this->PesquisaSatisfacao::create($array_pesquisa); DB::commit(); return $pesquisa; } catch (\Exception $e) { DB::rollBack(); throw $e; } } /** * Obtém a pesquisa de satisfação de um chamado */ public function getPesquisa(Chamado $chamado): ?ChamadoPesquisaSatisfacao { return ChamadoPesquisaSatisfacao::where('chamado_id', $chamado->id) ->where('user_id', Auth::user()->id) ->first(); } /** * Obtém chamados finalizados com pesquisa pendente */ public function getChamadosComPesquisaPendente(): \Illuminate\Database\Eloquent\Collection { $userId = Auth::user()->id; // Obtém IDs de chamados que já têm pesquisa respondida pelo usuário $chamadosComPesquisa = ChamadoPesquisaSatisfacao::where('user_id', $userId) ->pluck('chamado_id') ->toArray(); // Retorna chamados finalizados que não estão na lista de pesquisas respondidas return Chamado::where('user_id', $userId) ->where('statusChamado', 'Finalizado') ->whereNotIn('id', $chamadosComPesquisa) ->orderBy('updated_at', 'desc') ->get(); } }
| ver. 1.4 |
Github
|
.
| PHP 8.3.28 | Generation time: 0.02 |
proxy
|
phpinfo
|
Settings