Untitled

mail@pastecode.io avatarunknown
plain_text
2 months ago
5.6 kB
3
Indexable
Never
Através dos campos de entrada representativeId e branchId, buscar todos os registros da tabela e090hrpComGer que possuam o id da filial enviado, e o id do representante enviado como superior, ou seja, buscaremos seus "subordinados", através da chave: e090hrpComGer.repSup.id = representativeId AND e090hrpComGer.e070fil.id = branchId
Para cada registro encontrado:
Incluir um registro no objeto hierarchicalTreeNode, e incluí-los em uma lista do objeto hierarchicalTreeNode:
hierarchicalTreeNode.representative.id = e090hrpComGer.e090pes.id
hierarchicalTreeNode.representative.code = e090hrpComGer.e090pes.e001pes.codPes
hierarchicalTreeNode.representative.description = e090hrpComGer.e090pes.e001pes.apePes
hierarchicalTreeNode.representative.superiorCommissionPercentage = e090hrpComGer.comSup (sempre o percentual so seu superior)
hierarchicalTreeNode.subordinates = atribuir uma lista de subordinados do representante que está sendo incluído o registro, conforme regra:
Buscar todos os registros da tabela e090hrpComGer que possuam o id da filial enviado, e o id do representante que está sendo incluído o registro como superior, ou seja, seus "subordinados", através da chave: e090hrpComGer.repSup.id = representative.id AND e090hrpComGer.e070fil.id = branchId
Para cada subordinado, criar um registro no objeto hierarchicalTreeNode, igual de-para a cima, formando uma lista de subordinados
-
E assim sucessivamente, até que nao seja mais encontrado registros na tabela e090hrpComGer através da chave e090hrpComGer.repSup.id = representative.id AND e090hrpComGer.e070fil.id = branchId
-
No final deste processo, será possível notar que foram criados vários registros do objeto hierarchicalTreeNode, e dentro de cada objeto, também uma lista do objeto hierarchicalTreeNode, ou seja, lista dentro de lista, que será utilizado para apresentar a árvore de representantes
-
4 - Criar registro para o representante enviado para consulta

Após ter a primeira lista do objeto hierarchicalTreeNode, que são os "subordinados" do representante enviado no input, devemos agora buscar os superiores deste representante
Utilizar as definições (e090hrpComGer) do representante enviado no input
Verificar se o mesmo possui representante superior: e090hrpComGer.repSup != null
Caso não possua, apenas criar um registro no objeto representative, conforme de-para:
hierarchicalTreeNode.representative.id = e090hrpComGer.e090pes.id
hierarchicalTreeNode.representative.code = e090hrpComGer.e090pes.e001pes.codPes
hierarchicalTreeNode.representative.description = e090hrpComGer.e090pes.e001pes.apePes
hierarchicalTreeNode.representative.superiorCommissionPercentage = e090hrpComGer.comSup
hierarchicalTreeNode.subordinates = lista de hierarchicalTreeNode montada no passo 3
Realizar o passo 7, e está encerrado por aqui
Caso o representante do input possua um representante superior nas suas definições: e090hrpComGer.repSup != null, então também devemos criar um registro para o representante do input no objeto representative:
hierarchicalTreeNode.representative.id = e090hrpComGer.e090pes.id
hierarchicalTreeNode.representative.code = e090hrpComGer.e090pes.e001pes.codPes
hierarchicalTreeNode.representative.description = e090hrpComGer.e090pes.e001pes.apePes
hierarchicalTreeNode.representative.superiorCommissionPercentage = e090hrpComGer.comSup
hierarchicalTreeNode.subordinates = lista de hierarchicalTreeNode montada no passo 3
-
5 - Criar registro para o representante superior imediato do representante enviado para consulta

Buscar as definições (e090hrpComGer) do representante superior do representante do input, através da chave: e090hrpComGer.e090pes.id = e090hrpComGer.repSup.id (definições do representante do input) AND e090hrpComGer.e070fl.id = branchId
Ao encontrar as definições do superior, criar o objeto hierarchicalTreeNode:
hierarchicalTreeNode.representative.id = e090hrpComGer.e090pes.id
hierarchicalTreeNode.representative.code = e090hrpComGer.e090pes.e001pes.codPes
hierarchicalTreeNode.representative.description = e090hrpComGer.e090pes.e001pes.apePes
hierarchicalTreeNode.representative.superiorCommissionPercentage = e090hrpComGer.comSup
hierarchicalTreeNode.subordinates = objeto hierarchicalTreeNode montado no passo 4 (neste caso será uma lista com um único elemento)
6 - Criar registros para os outros representantes superiores do representante imediato

Verificar se o superior imediato também possui um representante superior: e090hrpComGer.repSup != null
Caso possua, buscar as definições (e090hrpComGer) do representante superior, através da chave: e090hrpComGer.e090pes.id = e090hrpComGer.repSup.id (definições do superior imediato) AND e090hrpComGer.e070fl.id = branchId, e criar um registro no objeto hierarchicalTreeNode:
hierarchicalTreeNode.representative.id = e090hrpComGer.e090pes.id
hierarchicalTreeNode.representative.code = e090hrpComGer.e090pes.e001pes.codPes
hierarchicalTreeNode.representative.description = e090hrpComGer.e090pes.e001pes.apePes
hierarchicalTreeNode.representative.superiorCommissionPercentage = e090hrpComGer.comSup
hierarchicalTreeNode.subordinates = último objeto hierarchicalTreeNode montado antes deste (neste caso será uma lista com um único elemento)
Após isso, buscar também o seu superior ( e090hrpComGer.e090pes.id = e090hrpComGer.repSup.id AND e090hrpComGer.e070fl.id = branchId), e assim sucessivamente, repetir o passo 6, até que nao seja encontrado mais representantes superiores: e090hrpComGer.repSup = null