47 lines
1.3 KiB
PHP
47 lines
1.3 KiB
PHP
<?php
|
|
|
|
namespace App\Rules\AtencaoBasica\Exportacao;
|
|
|
|
use App\Enums\AtencaoBasica\AtendimentoOdontologico\CondutaEncaminhamento;
|
|
use App\Enums\AtencaoBasica\AtendimentoOdontologico\TipoConsulta;
|
|
use Illuminate\Contracts\Validation\Rule;
|
|
use Illuminate\Support\Facades\DB;
|
|
|
|
class CondutaEncaminhamentoIsValid implements Rule
|
|
{
|
|
public function passes($attribute, $value)
|
|
{
|
|
return self::isValid($value);
|
|
}
|
|
|
|
public static function isValid($value)
|
|
{
|
|
|
|
$condutasEncaminhamento = DB::table('atencao_basica_atendimento_odontologico_conduta_encaminhamento')
|
|
->where('atendimento_odontologico_id', $value->id)
|
|
->get();
|
|
|
|
foreach ($condutasEncaminhamento as $condutaEncaminhamento) {
|
|
|
|
if ($condutaEncaminhamento->conduta_encaminhamento_id == CondutaEncaminhamento::TRATAMENTO_CONCLUIDO
|
|
&& $value->tipo_consulta_id == TipoConsulta::CONSULTA_MANUTENCAO) {
|
|
|
|
return false;
|
|
}
|
|
|
|
if ($condutaEncaminhamento->conduta_encaminhamento_id == CondutaEncaminhamento::ALTA_EPISODIO
|
|
&& $value->tipo_consulta_id != TipoConsulta::CONSULTA_MANUTENCAO) {
|
|
|
|
return false;
|
|
}
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
public function message()
|
|
{
|
|
return 'Conduta ou encaminhamento inválido.';
|
|
}
|
|
}
|