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:
- 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.
- 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) |