Rose People Alterações ao ProcessamentoFórmulas
Alterações ao ProcessamentoFórmulas
Fórmulas
Voltar | Lista de Artigos

Tipos de Funções nas Fórmulas

Última alteração a 24/01/2024
Este artigo é aplicável a:
Administrador
Técnico de RH
Assistente de RH
Configurador

Na construção de uma fórmula, é possível incluir funções e determinar os cenários onde esta se aplica. Ao consultar cada uma das fórmulas disponíveis, poderá analisar as regras aplicáveis ao método de cálculo, bem como conhecer todos os valores do processamento salarial.

Funções Matemáticas

Através destas funções, poderá implementar uma lógica de cálculo matemático:

Nome  Descrição  Utilização  Exemplo 
Abs  Devolve o valor absoluto de um número A.  Abs(A)  Abs(-1) = 1 
Acos  Devolve o ângulo cujo cosseno é o do número A.  Acos(A)  Acos(1) = 0 
Asin  Devolve o ângulo cujo seno é o do número A.  Asin(A)  Asin(0) = 0 
Atan  Devolve o ângulo cuja tangente é o do número A.  Atan(A)  Atan(0) = 0 
Ceiling  Devolve o número inteiro superior ao número A especificado.  Ceiling(A)  Ceiling(1.5) = 2 
Cos  Devolve o cosseno do ângulo A especificado.  Cos(A)  Cos(0) = 1 
Exp  Devolve o exponencial do número A especificado.  Exp(A)  Exp(0) = 1 
Floor  Devolve o número inteiro inferior ao número A.  Floor(A)  Floor(1.5) = 1 
IEEERemainder  Devolve o resto da divisão entre o quociente A e divisor B.  IEEERemainder(A, B)  IEEERemainder(3, 2) = 1 
Log  Devolve o logaritmo de base A do número B.  Log(A, B)  Log(1, 10) = 0 
Log10  Devolve o logaritmo em base 10 do número A.  Log10(A)  Log10(1) = 0 
Max  Devolve o maior entre os números A e B.  Max(A, B)  Max(1, 2) = 2 
Min  Devolve o menor entre os números A e B.  Min(A, B)  Min(1, 2) = 1 
Pow  Devolve o valor do número A elevado a B.  Pow(A, B)  Pow(3, 2) = 9 
Round  Devolve o valor A arredondado a B casas decimais.  Round(A, B)  Round(3.222, 2) = 3.22 
Sign  Devolve o sinal do valor A.  Sign(A)  Sign(-10) = -1
Sign(10) = 1 
Sin  Devolve o seno do ângulo A.  Sin(A)  Sin(0) = 0 
Sqrt  Devolve o quadrado do número A.  Sqrt(A)  Sqrt(4) = 2 
Tan  Devolve a tangente do ângulo especificado A.  Tan(A)  Tan(0) = 0 
Truncate  Devolve a parte inteira de um número A.  Truncate(A)  Truncate(1.7) = 1 
Date Devolve uma data gerado pelo ano, mês e dia definidos nos parâmetros. Date(A,B,C) DATE(2020,1,1) = DATE(2019,1,1)

Funções de Lógica 

Estas funções devolvem um valor de forma condicional:

Nome Descrição Utilização  Exemplo
in Devolve se um elemento A está inserido num conjunto de valores B, C, etc. in (A, B, C, D) TRUE
if Devolve um valor B ou C mediante a validação da regra A. if(A,B, C) If(1 = 2, 1, 2) = 2
NewLine Devolve uma quebra de linha.
GetRes Devolve o valor de um recurso.
GetResAPI Devolve o valor de um recurso API.
DateAdd Devolve uma data e um determinado número de períodos.
DateDiff Devolve a diferença entre duas datas em períodos de forma inclusiva, isto é, inclui dias iniciais e finais. Opcionalmente, é possível especificar se deve considerar o mês inicial ou o mês final parcial, bem como o n.º de dias para considerar um mês quando o parâmetro "período" é meses, meses cíclicos ou anos.
Date Devolve uma data gerado pelo ano, mês e dia definidos nos parâmetros.
RoundDay Arredonda um número para um múltiplo de meio.
GetContractExpectedEndDateOnYear Devolve a data final prevista do contrato no ano ou o último dia do ano quando o contrato não termina nesse ano.
GetContractStartDateOnYear Devolve a data inicial do contrato no ano ou o primeiro dia do ano quando o contrato iniciou em anos anteriores.
IsLeapYear Devolve verdadeiro ou falso quando o ano especificado é bissexto.
DaysInYear Devolve o n.º de dias no ano especificado.
DaysInMonth Devolve o n.º de dias de um mês num ano.
month Devolve o n.º do mês na data especificada.
day Devolve o n.º do dia na data especificada.
Year Devolve o n.º do ano na data especificada.
GetIncomeTax Devolve a taxa de IRS considerando os parâmetros indicados.
GetIncomeTaxDescription Devolve a informação da tabela e os valores considerados para determinar a taxa de IRS.
GetBenefitAccountValue Devolve o valor da propriedade da conta de benefício com o tipo especificado.
ProcessingTimeSheets Processa a folha de presença.
ProcessingAbsences Processa a ausência.
ProcessingDeductions Processa a dedução.

Funções de Avaliação de Registo

Estas funções permitem obter o valor de um ou mais registos específicos.

Neste tipo de função, a aplicação considera a dependência entre remunerações e deduções, calculando as dependências existentes. Por exemplo:

  1. Se a fórmula associada na remuneração A refere a remuneração B, o sistema irá calcular primeiro a remuneração B e só depois A.
  2. Se a remuneração A refere a dedução D, a aplicação calcula primeiramente o desconto D e só depois a remuneração A.

Contudo, esta lógica não permite que existam dependências circulares, ou seja, duas remunerações dependerem uma da outra, mesmo que indiretamente.

O apuramento das dependências também considera as fórmulas e a contribuição de valores de naturezas de remuneração para deduções. 

De seguida, são enumeradas as funções de avaliação de registo disponíveis:

1. GetEarningValue 

  • Descrição: Devolve o valor de uma ou mais remunerações.
  • Utilização: GetEarningValue('R1','R2', 'RN')
    Esta fórmula é para ser utilizada nos tipos de fórmula Processamento.

2. GetEmployeeDeductionValue

  • Descrição: Devolve o valor do funcionário de uma ou mais deduções.
  • Utilização: GetEmployeeDeductionValue('D1','D2','DN')
    Esta fórmula é para ser utilizada nos tipos de fórmula Processamento.

3. GetCompanyDeductionValue

  • Descrição: Devolve o valor do encargo da empresa de uma ou mais deduções.
  • Utilização: GetCompanyDeductionValue('D1','D2','DN')
    Esta fórmula é para ser utilizada nos tipos de fórmula Processamento.

4. GetAverageEarningsValue

Descrição

Devolve a media de remunerações identificadas com uma determinada Tag, que ocorreram durante um n,º determinado de meses.

Utilização

GetAverageEarningsValue(‘Tag’, int OffSet, int Months, optional int type).

O parâmetro type é opcional e define o tipo de valor a considerar no cálculo:

  • Se não estiver preenchido, assume o valor 0;
  • 0: considera o valor ilíquido das remunerações;
  • 1: considera o valor líquido;
  • 2: considera o valor bruto.
  • O parâmetro OFFSet determina o n.º de meses a ignorar no cálculo da média.
  • O parâmetro months determina quantos períodos devem ser considerados no cálculo dos valores para a média.

Esta fórmula é para ser utilizada nos tipos de fórmula Processamento.

Exemplo

GetAverageEarningsValue (‘SUBFERIAS, 2, 6, 0).

  • Mês de processamento: setembro;
  • 2 meses de offset (a ignorar): agosto e julho;
  • Meses a considerar para obter o valor total das remunerações com TAG ‘SUBFERIAS’: janeiro a junho (6 meses).

5. GetYearAbsencesTotalDays

Descrição

Devolve o n.º de dias de ausência totais (independentemente de interrupções) para as ausências com determinada tag e n.º mínimo de dias;

Utilização

GetYearAbsencesTotalDays (‘Tag’, int minDays, bool absentCalendarDays, bool absentInDays, bool absentInHalfDays, bool absentInHours)

O parâmetro minDays é opcional e define o n.º mínimo de dias que a ausência deve ter para ser considerada. Se não estiver preenchido, assume o valor 0.

O parâmetro absentCalendarDays também é opcional e corresponde ao tipo do n.º de dias a ser retornados pela função:

  • Se não estiver preenchido, assume o valor 1;
  • 1: n.º de dias de ausência totais retornado corresponde a dias de calendário;
  • 0: dias de trabalho.

Os parâmetros absentInDays, absentInHalfDays, absentInHours são relativos ao tipo de ausência a considerar na cálculo da função. Se algum destes parâmetros tiver o valor 0 não são considerados. Por predefinição, se não estiverem preenchidos assumem o valor 1.

Esta fórmula é para ser utilizada nos tipos de fórmula Contas de Benefício a Crédito.

6. GetYearAbsencesTotalConsecutiveDays

Descrição

Devolve o n.º de dias totais de ausência quando existem períodos contínuos (sem interrupções) para ausências com determinada Tag e n.º mínimo de dias;

Utilização

GetYearAbsencesTotalDays (‘Tag’, int minDays, bool absentCalendarDays, bool absentInDays, bool absentInHalfDays, bool absentInHours).

O parâmetro minDays é opcional e define o n.º mínimo de dias que a ausência deve ter para ser considerada. Se não estiver preenchido, assume o valor 0.

O parâmetro absentCalendarDaystambém é opcional e corresponde ao tipo do n.º de dias a ser retornados pela função:

  • Se não estiver preenchido assume o valor 1;
  • 1: n.º de dias de ausência totais retornado corresponde a dias de calendário;
  • 0: corresponde a dias de trabalho;

Os parâmetros absentInDays, absentInHalfDays,absentInHours são relativos ao tipo de ausência a considerar na cálculo da função. Se algum destes parâmetros passar com o valor 0 não são considerados. Por predefinição, se não estiverem preenchidos assumem o valor 1.

Esta fórmula é para ser utilizada nos tipos de fórmula Contas Benefício a Crédito.

Exemplo

GetYearAbsencesTotalDays(‘TAG’, 15, 0, 1, 0, 0 )

São consideradas as ausências em períodos contínuos apenas  do tipo Dias com mínimo de 15 dias. O n.º de dias de ausência totais retornado corresponde a dias de trabalho e meios dias.

7. GetLongestAbsentPeriod

Descrição

Devolve o maior período das ausências com uma respetiva tag.

Utilização

GetLongestAbsentPeriodintMinimumValue,’Tag’).

  • MinimumValue: Valor mínimo obrigatório. Quando o valor da ausência é menor que o valor mínimo, retorna 0;
  • Tag: Valor da tag que será filtrado;

Esta fórmula deve ser utilizada nos tipos de fórmula Contas de Benefício a Crédito.

Exemplo

GetLongestAbsentPeriod(0,’Ferias’)

8. GetTotalAbsenceDays

Descrição

Devolve o n.º de dias de ausência para um determinado ano, mês e tag.

Utilização

GetTotalAbsenceDays(int Year, int Month,’Tag’).

  • Year: Ano das ausências;
  • Month: Mês das ausências;
  • Tag: Valor da tag que será filtrado;

Esta fórmula é para ser utilizada nos tipos de fórmula Contas de Benefício a Crédito e Processamento.

Exemplo

GetTotalAbsenceDays(2019,1,’Ferias)

9. GetAccumulatedEarnings

Descrição

Devolve o valor acumulado do ano para remunerações com uma determinada tag.

Utilização

GetAccumulatedEarnings (int Year,string Tag, string Field)

  • Year: Ano;
  • Tag: identificador da tag;
  • Field: Nome do campo para somar o valor acumulado. Estão disponíveis as opções: GrossValue, NetValue, IlliquidValue.

Esta fórmula deve ser utilizada nos tipos de fórmula Contas de Benefício a Crédito e Processamento.

Exemplo

GetTotalAmountPaidByTag(2019,’Ferias’, 'GrossValue')

10. GetIncomeTaxTbl 

Descrição

Devolve a taxa para uma determina coluna e tabela de IRS.

Utilização

GetIncomeTaxTbl(int Country, int Table, int Position, date ApplyDate, decimal Ammount)

  • Country: indicação do país;
  • Table: n.º da tabela de IRS;
  • Position: n.º da coluna da tabela da IRS;
  • ApplyDate: data de aplicação da taxa de IRS;
  • Ammount: valor para calcular taxa de IRS.

Exemplos:

GetIncomeTaxTbl('PT', 0, 0, '2020-01-01', 1000)

GetIncomeTaxTbl([Contract.Company.Country.CountryKey], 0, 0, [Processing.Date], [ProcessingDeduction.SubjectValue])

11. GetAccumulatedDeduction

Descrição

Devolve o valor acumulado do ano para uma dedução.

Utilização

GetAccumulatedDeduction(string Deduction, string Field)

  • Deduction: identificador da dedução;
  • Field: identificador do campo para somar o valor acumulado;

Exemplos

  • GetAccumulatedDeduction('D02', 'EmployeeValue')
  • GetAccumulatedDeduction([Deduction.NaturalKey], 'EmployeeValue')

12. GetGlobalVariable

Descrição

Devolve o valor de uma variável para um período.

Utilização

GetGlobalVariable(string Variable)

  • Variable: identificador da variável;

Exemplo

GetGlobalVariable('RMMG') ('EmployeeValue')

13. GetPeriodGrossValue

Descrição

Devolve o total do valor bruto das remunerações com uma determinada tag para um determinado contrato e período. Apenas são consideradas remunerações que constem do contrato;

Utilização

GetPeriodGrossValue (string Tag)

  • Tag: identificador da tag

Exemplo

GetPeriodGrossValue ('TAG')

Funções Cumulativas

Estas funções permitem avaliar uma expressão de agregação para os registos de detalhe do processamento, nomeadamente, as ausências e a folha de presença.

Ou seja, a sub-expressão é avaliada para cada um dos registos de detalhe e, de seguida, apresenta o valor agregado. Por exemplo, na função Sum devolve a soma. 

Nome  Descrição  Utilização  Exemplo 
Sum  Devolve a soma do resultado da avaliação da expressão para o detalhe especificado, que pode ser 'ProcessingTimeSheets' para a folha de presenças ou 'ProcessingAbsences' para ausências.  Sum(‘Detalhe’, Sub-expressão)  Sum(‘ProcessingAbsences’, [ProcessingAbsence.Efective]) 
Avg  Devolve a média do resultado da avaliação da expressão para o detalhe especificado, que pode ser 'ProcessingTimeSheets' para a folha de presenças ou 'ProcessingAbsences' para ausências.  Avg(‘Detalhe’, Sub-expressão)  Avg(‘ProcessingAbsences’, [ProcessingAbsence.Expected]) 
ToString  Devolve o valor do parâmetro em texto.  ToString(A)  ToString(100) 
Guardar ou partilhar este artigo
Esta página foi útil?
Obrigado pelo seu voto.

Faça login para deixar a sua opinião.

Obrigado pelo seu feedback. Iremos analisá-lo para continuarmos a melhorar!
Artigos Relacionados
Fórmulas Fórmulas Tipos de Funções nas Fórmulas