[EM TESTE] Visualização de oportunidade por usuário

olá, tenho uma aplicação no qual tenho o vendedor João que pode ver apenas suas oportunidades lançadas no sistema, mas acima dele tenho o gerente estadual que é o Roberto que pode ver suas oportunidades e as do João e demais representantes do estado e acima do Roberto tenho o gerente nacional que é o Adilson que pode ver as oportunidades de todos tanto do Roberto quanto do João e demais pessoas a baixo dele, o que esta acontecendo é que não consegui fazer este filtro para que o João veja apenas suas oportunidades e assim sucessivamente na cadeias de hierarquia conforme ela vai subindo, todos conseguem ver as oportunidades de todo mundo, teriam alguma sugestão e como fazer ou como aplicar este tipo de filtro logo quando cadastro um novo usuário.

Atenciosamente.
Alexsander.

Depende como está sua modelagem.

tenho o usuários cadastrados e na hora do cadastro já identifico em qual categoria se encaixa se é um vendedor ou gerente regional ou nacional, não sei se teria com aplicar isso direto na hora do cadastro de usuário ai quando faz login já aplica as regras aplicadas quando cadastrei o usuário ou tenho que aplicar diretamente na parte de oportunidade

Alexsander,

Como o Haroldo falou aí, depende de como está a sua modelagem, mas pelo que você informa, o que você precisa é de um conceito de árvore genealógica.

Faça uma pesquisa sobre SQL do tipo CTE e você terá ótimas informações.

1 Curtida

pode usar o que tem, depende da tabela onde armazena as informações

no login cria uma global para armazenar o tipo da pessoa (provavelmente já tenha)

na grid, no onApplicationInit, usa o if/ifelse ou switch / case, verificando o login acessado e de acordo cria o ‘and’ no seu sql

ex. ficaria algo como

if([tipoUsuario] == ‘1’)
[addSql] = " and vendedor=‘usr_login’ ";

se já tiver um where no seu sql, se não tiver só troque o and pelo where

e no sql da grid coloque no final [addSql]

desta forma vai filtrar apenas o usuário logado e exibir apenas o que passar pela condição, ai vai depender da logica que armazena e ir montando os if´s e sql para cada tipo.

obrigado pela ajuda vou tentar aplicar desta forma e ver se consigo resolver este problema