From 6be91e077761f03f08d2655402d5b62b4ad8063a Mon Sep 17 00:00:00 2001 From: Masaki Kawabata Neto Date: Wed, 9 Mar 2022 15:27:19 -0300 Subject: [PATCH 1/2] Revertendo procurarPorCodigoOuNome em parte #497 --- src/Pessoa.php | 37 +++++++++++++++++++++++++------------ 1 file changed, 25 insertions(+), 12 deletions(-) diff --git a/src/Pessoa.php b/src/Pessoa.php index 6cb53d65..befcdbd2 100644 --- a/src/Pessoa.php +++ b/src/Pessoa.php @@ -131,7 +131,7 @@ public static function procurarPorNome(string $nome, bool $fonetico = true, bool $nome = trim($nome); $nome = Uteis::substituiAcentosParaSql($nome); $nome = str_replace(' ', '%', $nome); - $query_busca = "UPPER(P.nompesttd) like UPPER(:nome)"; + $query_busca = "UPPER(P.nompesttd) LIKE UPPER(:nome)"; } if ($ativos) { @@ -156,20 +156,33 @@ public static function procurarPorNome(string $nome, bool $fonetico = true, bool * A busca é fonética, somente ativos ou todos * O método foi ajustado para compatibilizar com procuraPorNome() e dump() * + * 9/3/2022 Revertido em parte para o método original, mas mantendo fonético + * * @param String $busca Código ou Nome a ser buscado * @param Bool $ativos Se true faz busca somente entre os ativos, se false busca em toda a base * @return array * @author André Canale Garcia // Adaptação do método procurarPorNome * @author Masaki K Neto, modificado em 1/2/2022 */ - public static function procurarPorCodigoOuNome(string $busca, bool $ativos = true) + public static function procurarPorCodigoOuNome(string $busca, bool $ativos = false) { - if (intval($busca)) { // é codpes - $ret = SELF::dump($busca); - return $ret ? [$ret] : $ret; - } else { // é nome - return SELF::procurarPorNome($busca, true, $ativos); + if ($ativos) { + # se ativos vamos fazer join com LOCALIZAPESSOA + $query = "SELECT DISTINCT P.* FROM PESSOA P, LOCALIZAPESSOA L + WHERE (CAST(P.codpes AS NVARCHAR) LIKE :codpes OR P.nompesfon LIKE :nome) + AND L.codpes = P.codpes + ORDER BY P.nompes ASC"; + } else { + $query = "SELECT DISTINCT P.* FROM PESSOA P + WHERE (CAST(P.codpes AS NVARCHAR) LIKE :codpes OR P.nompesfon LIKE :nome) + ORDER BY P.nompes ASC"; } + + $param = [ + 'codpes' => '%' . $busca . '%', + 'nome' => '%' . Uteis::fonetico($busca) . '%', + ]; + return DB::fetchAll($query, $param); } /** @@ -218,7 +231,7 @@ public static function vinculos(int $codpes, int $codundclgi = 0) /** * Método para retornar servidores ativos na unidade - * + * * O parâmetro $codundclgi passou a ser opcional pois não vai ser mais utilizado * foi mantido somente para compatibilidade retroativa * @@ -234,12 +247,12 @@ public static function servidores($codundclgi = '') /** * Retorna lista de servidores não docentes ativos na unidade - * + * * Retorna dados das tabelas localizapessoa e pessoa - * - * E possivel aplicar filtros sobre qualquer coluna retornada. + * + * E possivel aplicar filtros sobre qualquer coluna retornada. * O filtro é um array no formato [coluna => valor]. - * + * * @param array $filtros - default = [] * @return array * @author Masaki K Neto atualizado em 28/1/2022 From e095217fe86423b6a80cd51c996e5f2bb797e2e9 Mon Sep 17 00:00:00 2001 From: Masaki Kawabata Neto Date: Wed, 9 Mar 2022 15:28:04 -0300 Subject: [PATCH 2/2] typo --- src/Pessoa.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Pessoa.php b/src/Pessoa.php index befcdbd2..3a02bfcf 100644 --- a/src/Pessoa.php +++ b/src/Pessoa.php @@ -164,7 +164,7 @@ public static function procurarPorNome(string $nome, bool $fonetico = true, bool * @author André Canale Garcia // Adaptação do método procurarPorNome * @author Masaki K Neto, modificado em 1/2/2022 */ - public static function procurarPorCodigoOuNome(string $busca, bool $ativos = false) + public static function procurarPorCodigoOuNome(string $busca, bool $ativos = true) { if ($ativos) { # se ativos vamos fazer join com LOCALIZAPESSOA