Module Módulo Persona

Módulo de integração com o Persona.

Persona

Como obter dados de um Colaborador

Os dados do Colaborador podem ser obtidos por meio de uma série de métodos da classe {@link Persona.Persona.default}. Estes métodos retornam um objeto do tipo IColaborador, contendo os dados do colaborador em si.

Por padrão, apenas os dados básicos do colaborador são retornados. Os métodos possuem um atributo "options", que recebe um objeto contendo propriedades para que se obtenha dados específicos dos colaboradores.

As propriedades possíveis destes objetos são:

  • incluiFuncoes?: boolean: inclui no atributo "funcoes" a lista de funções que o usuário possui.
  • incluiFrequencia?: boolean: inclui no atributo "folhas" a lista de folhas de frequência do colaborador.
  • dataFrequencia?: string: obtém apenas as folhas de uma determinada data. Este atributo pode ter 3 tipos de formatos: "", para obter todas as folhas de um determinado ano. "/", para obter todas as folhas de um determinado mês. E "//", para obter as folhas de um dia específico.
  • incluiOcorrencias?: boolean: se inclui no atributo "ocorrencias" a lista de ocorrências registradas pelo colaborador.
  • dataOcorrencias?: string: obtém apenas as ocorrências de uma determinada data ou período. Este atributo pode ter 3 tipos de formatos: "", para obter todas as ocorrências de um determinado ano. "/", para obter todas as ocorrências de um determinado mês. E "//", para obter as folhas de um dia específico.
  • incluiDependentes?: boolean: se inclui no atributo "dependentes" uma lista de dependentes
  • incluiExercicios?: boolean: se inclui no atributo "exercicios" uma lista de uorgs em que o usuário esteve lotado.
  • incluiJornadaTrabalho?: boolean: se inclui no atributo "jornadaTrabalho" informações históricas sobre a jornada de trabalho do colaborador.;
  • incluiTelefones?: boolean: se inclui no atributo "telefones" uma lista de telefones cadastrados do colaborador.;
  • incluiSubstituicoes?: boolean: se inclui uma lista de substituições de funções do colaborador;

Atenção:: você pode utilizar mais do que uma das opções em uma mesma chamada. Exemplo:

{incluiDependentes: true, incluiTelefones: true}

Por CPF

Neste exemplo, vamos obter um dado do colaborador pelo CPF, e imprimir o nome na tela:

const persona = (await ariaConnect({username: "username", password: "password"})).getPersona();
const uorg = await persona.getColaboradorPorCpf(3064686119);

console.log(uorg.nome);

Por login

Neste exemplo, obteremos o colaborador pelo login, e imprimiremos seu nome na tela:

const persona = (await ariaConnect({username: "username", password: "password"})).getPersona();
const colaborador = await persona.getColaboradorPorLogin("igor.a.costa");

console.log(colaborador.nome);

Por unidade de lotação

Vamos pegar todos os colaboradores lotados diretamente na unidade 73084, ou seja, COSIS.

const persona = (await ariaConnect({username: "username", password: "password"})).getPersona();
const colaboradores = await persona.getColaboradoresPorIdUorg(73084, false);

for (const colaborador of colaboradores) {
console.log(colaborador.nomePessoa);
}

Agora, vamos pegar todos os colaboradores lotados na unidade, ou seja, COSIS, ou em suas filhas.

const persona = (await ariaConnect({username: "username", password: "password"})).getPersona();
const colaboradores = await persona.getColaboradoresPorIdUorg(73084, true);

for (const colaborador of colaboradores) {
console.log(colaborador.nomePessoa);
}

Obtendo as funções de um colaborador

Utilize qualquer uma das fuções anteriores para obter dados do colaborador, e adicione a opção incluiFuncoes:

const persona = (await ariaConnect({username: "username", password: "password"})).getPersona();

// Obtenha os dados do colaborador, mas passe a opção incluiFuncoes
const colaborador = await persona.getColaboradorPorLogin("igor.a.costa", {incluiFuncoes: true});

// As funções são obtidas no atributo "funcoes"
const funcoes = colaborador.funcoes;

// Você pode iterar pelas funções do colaborador e fazer o que desejar
for (const funcao of funcoes) {
console.log(funcao.codigo);
console.log(funcao.idUorg);
console.log(funcao.inicio);
console.log(funcao.fim);
}

Obtendo as substituições de um colaborador

Utilize qualquer uma das fuções anteriores para obter dados do colaborador, e adicione a opção incluiSubstituicoes:

// Obtenha os dados do colaborador, mas passe a opção incluiSubstituicoes
const colaborador = await persona.getColaboradorPorLogin("igor.a.costa", {incluiSubstituicoes: true});

// As substituições são obtidas no atributo "substituicoes"
const substituicoes = colaborador.substituicoes;

console.log(substituicoes);

// Você pode iterar pelas substituições do colaborador e fazer o que desejar
for (const substituicao of substituicoes) {
console.log(substituicao.funcao);
console.log(substituicao.idUorg)
console.log(substituicao.siglaUorg)
console.log(substituicao.inicio);
console.log(substituicao.fim);
}

Obtendo os dados de frequência de um colaborador

Utilize qualquer uma das fuções anteriores para obter dados do colaborador, e adicione a opção incluiFrequencia e dataFrequencia:

const persona = (await ariaConnect({username: "username", password: "password"})).getPersona();

const colaborador = await persona.getColaboradorPorLogin("igor.a.costa", {incluiFrequencia: true, dataFrequencia: "01/2019"});
const frequencias = colaborador.frequencias;

for (const frequencia of frequencias) {
console.log(frequencia.situacao);
console.log(frequencia.data);
console.log(frequencia.dataAprovacao);
console.log(frequencia.dataConclusao);
console.log(frequencia.dataFechamento);

for (const diaFolha of frequencia.folha) {
console.log(diaFolha.data);
console.log(diaFolha.entradaPrimeiroPeriodo);
console.log(diaFolha.saidaPrimeiroPeriodo);
console.log(diaFolha.entradaSegundoPeriodo);
console.log(diaFolha.saidaPrimeiroPeriodo);
}
}

Obtendo os dados de ocorrências de um colaborador

Utilize qualquer uma das fuções anteriores para obter dados do colaborador, e adicione a opção incluiOcorrencias, e dataOcorrencias:

const persona = (await ariaConnect({username: "username", password: "password"})).getPersona();

// Obtém as ocorrências de Janeiro de 2022.
const colaborador = await persona.getColaboradorPorLogin("igor.a.costa", {incluiOcorrencias: true, dataOcorrencias: "01/2022"});

// Obtém o objeto de ocorrências
const ocorrencias = colaborador.ocorrencias;

// Percorre as ocorrências
for (const ocorrencia of ocorrencias) {
console.log(ocorrencia.codigo);
console.log(ocorrencia.nome);
console.log(ocorrencia.descricao);
console.log(ocorrencia.duracaoDia);
console.log(ocorrencia.inicio);
console.log(ocorrencia.fim);
console.log(ocorrencia.debitaPeriodoAquisitivo);
console.log(ocorrencia.parcial);
console.log(ocorrencia.suspenseEfetivacaoSubst);
console.log(ocorrencia.validada);
}

Obter os dados dos dependentes do colaborador

Utilize qualquer uma das fuções anteriores para obter dados do colaborador, e adicione a opção incluiDependentes:

const persona = (await ariaConnect({username: "username", password: "password"})).getPersona();

const colaborador = await persona.getColaboradorPorLogin("igor.a.costa", {incluiDependentes: true});
const dependentes = colaborador.dependentes;

for (const dependente of dependentes) {
console.log(dependente.cpf);
console.log(dependente.grauParentesco);
console.log(dependente.nome);
}

Obter os dados dos exercícios (lotações) do colaborador

Utilize qualquer uma das fuções anteriores para obter dados do colaborador, e adicione a opção incluiExercicios:

const persona = (await ariaConnect({username: "username", password: "password"})).getPersona();

const colaborador = await persona.getColaboradorPorLogin("igor.a.costa", {incluiExercicios: true});
const exercicios = colaborador.exercicios;

for (const exercicio of colaborador.exercicios) {
console.log(exercicio.inicio);
console.log(exercicio.fim);
console.log(exercicio.idUorg);
console.log(exercicio.sigla);
console.log(exercicio.movimentacao);
}

Obter os dados das jornadas de trabalho do colaborador

Utilize qualquer uma das fuções anteriores para obter dados do colaborador, e adicione a opção incluiJornadaTrabalho:

// Obtenha os dados do colaborador, mas passe a opção incluiJornadaTrabalho
const colaborador = await persona.getColaboradorPorLogin("igor.a.costa", {incluiJornadaTrabalho: true});
const jornadas = colaborador.jornadasTrabalho;

// Percorre a lista de jornadas de trabalho do colaborador.
for (const jornada of jornadas) {
console.log(jornada.inicio);
console.log(jornada.fim);
console.log(jornada.entradaPrimeiroPeriodo);
console.log(jornada.saidaPrimeiroPeriodo);
console.log(jornada.entradaSegundoPeriodo);
console.log(jornada.saidaSegundoPeriodo);
console.log(jornada.tipoHorario);
}

Obter telefones do colaborador

Utilize qualquer uma das fuções anteriores para obter dados do colaborador, e adicione a opção incluiTelefones:

// Obtenha os dados do colaborador, mas passe a opção incluiTelefones
const colaborador = await persona.getColaboradorPorLogin("igor.a.costa", {incluiTelefones: true});
const telefones = colaborador.telefones;

// Percorre a lista de telefones e faz o que quiser com ela
for (const telefone of telefones) {
console.log(telefone.tipo);
console.log(telefone.ddd);
console.log(telefone.numero);
}

Como obter dados de UORGs

Os dados da uorg podem ser obtidos por métodos na classe Aria.

Os métodos aceitam as seguintes options:

  • incluiSubUorgs?: boolean: traz não somente a uorg em questão, mas também todas as suas subUorgs, no atributo subUorgs.
  • incluiFuncoes?: boolean: se inclui as funções e os colaboradores que ocuparam as funções da uorg.
  • incluiInativas?: boolean: se inclui unidades inativas no resultado.

Por ID da Uorg

Vamos pegar a Uorg de ID = 73084 e imprimir seu nome na tela:

const persona = (await ariaConnect({username: "username", password: "password"})).getPersona();
const uorg = await persona.getUorgPorId(73084);

console.log(uorg.nome);

Pela sigla

É necessário informar a sigla do pai no caso de uorgs homônimas.

Um exemplo é o seguinte:

const persona = (await ariaConnect({username: "username", password: "password"})).getPersona();
const uorg = await persona.getUorgPorSiglas("COSIS", "COGET");

console.log(uorg.nome);

Obter toda a hierarquia da STN e percorrê-la

Neste exemplo, obtenho a hierarquia da STN e imprimo todos os filhos recursivamente.

const persona = (await ariaConnect({username: "username", password: "password"})).getPersona();
const uorgStn = await persona.getHierarquiaSTN();

// Função recursiva que imprime Uorgs e seus filhos
const imprimeUorgs = (uorgs : IUorg[]) => {
if(uorgs) {
for (const uorg of uorgs) {
console.log(uorg.nome);

if(uorg.subUorgs.length > 0) {
console.log("Filhos:");
imprimeUorgs(uorg.subUorgs);
}
}
}
}

imprimeUorgs(uorgStn.subUorgs);

Obter as Uorgs por nível

Neste exemplo, pegamos todas as Uorgs no nível "Órgão", que é o número 1, e printamos o seu nome.

const persona = (await ariaConnect({username: "username", password: "password"})).getPersona();
const uorgs = await persona.getUorgsPorNivel(1); // Nível Órgão
*
for (const uorg of uorgs) {
console.log(uorg.nome);
}

Obter as UORGs filhas de uma unidade

Neste exemplo, obtenho as uorgs filhas da COSIS e imprimo em tela

const persona = (await ariaConnect({username: "username", password: "password"})).getPersona();
const uorgs = await persona.getUorgsFilhas(73084);

for(const uorg of uorgs) {
console.log(uorg.nome);
}

Obter as sub-uorgs de uma uorg

É possível obter todas as sub-uorgs de uma uorg específica, e as sub-uorgs dessas sub-uorgs também. Para isso, usar a option incluiSubUorgs.

const uorg = await persona.getUorgPorId(73084, {incluiSubUorgs: true});
const subUorgs = uorg.subUorgs;

// Neste caso, irá pegar todas as subUorgs da COSIS
// Podemos imprimir toda a hierarquia recursivamente:
const imprimeUorgs = (uorgs : IUorg[]) => {
if(uorgs) {
for (const uorg of uorgs) {
console.log(uorg.nome);

// As subUorgs também têm subUorgs, então eu posso
// usar da recursão e percorrê-las
if(uorg.subUorgs.length > 0) {
console.log("Filhos:");
imprimeUorgs(uorg.subUorgs);
}
}
}
}

imprimeUorgs(subUorgs);

Obter as listas das funções de uma uorg e seus ocupantes

Podemos obter a lista das funções de uma uorg e seus ocupantes usando qualquer uma das funções para obter uorg, e usando a option incluiFuncoes.

const uorg = await persona.getUorgPorId(73084, {incluiFuncoes: true});
const funcoes = uorg.funcoes;

// Percorremos a lista de funções
for (const funcao of funcoes) {
console.log(funcao.idFuncao);
console.log(funcao.idFuncaoUnidade);
console.log(funcao.codigo);
console.log(funcao.inicio);
console.log(funcao.fim);
console.log(funcao.legislacao);
console.log(funcao.tipo);
console.log(funcao.funcaoStn);
console.log(funcao.ativo);

// Agora, percorremos a lista de ocupantes dessa função
for (const ocupante of funcao.ocupantes) {
console.log(ocupante.login);
console.log(ocupante.nome);
console.log(ocupante.cpf);
console.log(ocupante.idColaborador);
console.log(ocupante.idPessoa);
console.log(ocupante.inicio);
console.log(ocupante.fim);
}

// Agora, também percorremos a lista de substitutos dessa função
for (const substituto of funcao.substituicoes) {
console.log(substituto.login);
console.log(substituto.nome);
console.log(substituto.cpf);
console.log(substituto.idColaborador);
console.log(substituto.idPessoa);
console.log(substituto.inicio);
console.log(substituto.fim);
}
}

Index

Classes

Generated using TypeDoc