BusCadChefe
Esta função retorna o Tipo e Cadastro do Chefe (nas variáveis TipChe e CadChe, respectivamente) do funcionário informado nos parâmetros NumEmp, TipCol, NumCad, na data constante no parâmetro DatBas.
Sua finalidade é retornar o cadastro do chefe do funcionário informado. Considera também o turno "9 - Geral" quando a chefia não for encontrada no turno do colaborador. Somente irá encontrar o chefe se o turno informado no cadastro de chefias for "9 - Geral" ou igual ao turno do colaborador.
A princípio, a rotina faz uma verificação na tabela Exceções do Quadro de Lotação (R080EXC), de acordo com as informações do funcionário nos campos Código da Empresa (NumEmp), Tipo Colaborador (TipCol) e Código do Colaborador (NumCad). Se encontrar o registro, retornará o Tipo Colaborador (TipCol) e Código do Colaborador (NumCad) do chefe do funcionário, nas variáveis TipChe e CadChe, respectivamente (o Código da Empresa (NumEmp) será o mesmo).
Caso não exista uma exceção para este funcionário, será procurado na tabela Ficha Básica Colaborador (R034FUN) o local de trabalho de acordo com o turno de trabalho do funcionário. Através do código do local de trabalho, procura-se na tabela Registro de Subordinados (R080SUB) pelo tipo e cadastro do chefe, pelo tipo e cadastro do subchefe e pelo campo Tipo de Chefia (TpoChe), que definirá qual dos dois é o responsável pelo setor naquele período.
Encontrado o chefe responsável pelo funcionário, a função retorna nas variáveis Tipo Colaborador Chefe (TipChe) e Código do Cadastro do Chefe (CadChe) o tipo e o cadastro do chefe. Esta rotina também pode ser utilizada dentro de regras.
Variáveis definidas com a execução das funções BusCadChefe e BusCadChefeLocal:
- TabCol: Retorna a tabela de organograma do colaborador informado como parâmetro na função BusCadChefe.
- LocCol: Retorna o local (NumLoc) do colaborador informado como parâmetro na função BusCadChefe.
- TabChe: Retorna a tabela de organograma da chefia encontrada pela função BusCadChefe.
- LocChe: Retorna o local (NumLoc) da chefia encontrada pela função BusCadChefe.
- TurCol: retorna o turno do colaborador que foi informado como parâmetro na função BusCadChefe.
- TurChe: retorna o turno da chefia encontrado pelas funções BusCadChefe e BusCadChefeLocal.
Observações
A função BusCadChefeLocal também seta o valor para as variáveis TabChe e LocChe, porém esta é somente uma informação a mais pois a função BusCadChefeLocal não busca o chefe nos níveis anteriores. Ou seja, o local do chefe encontrado sempre será o mesmo do local passado como parâmetro para a função BusCadChefeLocal. A única diferença é que o local passado por parâmetro refere-se ao CodLoc e o local retornado na variável LocChe refere-se ao NumLoc.
A variável TurCol não terá seu valor zerado ou definido pela função BusCadChefeLocal, pois esta função busca o chefe de um local específico e não de um colaborador. Com estas variáveis, o usuário poderá verificar se o turno do colaborador e do chefe são os turnos esperados. Entre os parâmetros Nível e parâmetro LocChe existe uma relação sendo que quando for informado o valor 2 para o parâmetro LocChe, também será realizado uma busca pelo chefe nos níveis anteriores ao nível informado do local.
Por exemplo: Buscar o chefe do colaborador que está no local 1.2.3.4, passando como parâmetro Nível 3 e LocChe = 2. Neste exemplo em questão, o chefe está no local 1.2.
Conforme os parâmetros informados, primeiramente será realizada uma busca no local 1.2.3, devido ao parâmetro Nível = 3. Como o chefe não foi encontrado, será realizado a busca no local anterior (1.2), conforme o parâmetro LocChe. Neste local o chefe é encontrado e a busca é encerrada.
O parâmetro LocCol também está relacionado ao parâmetro DatBas, buscando o local do colaborador conforme a data de referência.
Sintaxe: BusCadChefe(Numero NumEmp, Numero TipCol, Numero NumCad, Numero DatBas, Numero Nivel, Alfa ExcecaoChefia, Numero End EmpChe, Numero End TipChe, Numero End CadChe, Numero LocChe, Numero LocCol, Alfa ConSub);
Parâmetros:
Nome | Tipo | Descrição |
NumEmp | Numérico | Número da empresa do funcionário. |
TipCol | Numérico | Tipo do funcionário. |
NumCad | Numérico | Número de cadastro do funcionário. |
DatBas | Numérico | Data passada como parâmetro. |
Nivel | Numérico | Nível do local do chefe. |
ExcecaoChefia | Alfa | Informar se é para considerar a exceção de chefia, caso o colaborador possua. |
EmpChe | Numérico | Empresa do chefe. |
TipChe | Numérico | Tipo do chefe. |
CadChe | Numérico | Número de cadastro do chefe. |
LocChe | Numérico | Número que identifica a localização da chefia. 1 = Somente no nível do colaborador (padrão), 2 = Em níveis anteriores ao nível do colaborador. |
LocCol | Numérico | Número que identifica a localização do colaborador. 1 = Local atual do colaborador (padrão), 2 = Local do colaborador conforme data de referência. |
ConSub | Alfa |
Define se o substituto definido no cadastro da chefia deve ser considerado. Ou seja, se o valor do parâmetro ConSub for "S"e o chefe ou subchefe (definidos pelo campo Tipo Chefia da tela Chefes (FR080SUBEmpresas > Chefias > Chefes)) encontrado estiver afastado na data informada no parâmetro DatBas, a função retornará o respectivo substituto, considerando-o como chefe. |
Exemplo:
xnumemp = R134DRE.NumEmp;
xtipcol = R134DRE.TipCol;
xnumcad = R134DRE.NumCad;
xdata = DatSis;
/* BUSCA CADASTRO DO CHEFE */
BusCadChefe (xnumemp, xtipcol, xnumcad, xdata, 2, "S", xRetEmpChe, xtipche, xcadche, "S");
FCadChe = xcadche;
Utilização: Todas as regras de todos os módulos do Gestão de Pessoas | HCM.
Observação: No exemplo acima o parâmetro "Nivel" está recebendo o valor 2, o que significa que a função irá procurar a chefia no local de nível 2 baseado no colaborador. E o parâmetro ExcecaoChefia está recebendo o valor "S", definindo que a busca considera a exceção.