Guia de iniciação Contabilidade Ativos Compras Inventário Vendas Conta Corrente Bancos Impostos Integração com Rose People Sistema Sugestões Glossário
Rose Business Management Integração com Rose PeopleAlterações ao ProcessamentoFórmulas
Integração com Rose PeopleAlterações ao ProcessamentoFórmulas
Fórmulas

Fórmulas

Última alteração a 04/07/2022
Este artigo é aplicável a:
Administrador
Resp. de Vendas
Resp. de Compras
Financeiro
Técnico de RH
Configurador

As regras de cálculo das remunerações, deduções ou dos benefícios são definidas através de fórmulas para simplificar as configurações dos cálculos, bem como para facilitar a utilização do sistema que está pré-configurado com fórmulas que traduzem as regras legais e fiscais.

Na construção de uma fórmula, é possível incluir variáveis, funções e objetos, bem como 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.

O Rose disponibiliza de base um conjunto alargado de fórmulas. Contudo, caso seja necessário, com o perfil de Configurador poderá criar outras fórmulas.

Composição

As fórmulas são compostas por um/a:

  • Identificador;
  • Designação;
  • Contexto: para evitar erros na utilização das fórmulas, é possível determinar os cenários onde estas podem ser utilizadas, por exemplo, nas remunerações selecionar apenas as fórmulas que se aplicam a este contexto. Assim, e de acordo com o contexto da fórmula, estão disponíveis objetos (variáveis) e funções específicos. Para consultar a lista de objetos e funções disponíveis, deverá clicar simultaneamente nas teclas Ctrl + Espaço na área Expressão. 
  • Expressão: inclui as regras de cálculo de forma semelhante a uma fórmula de Excel. Depois de ser validada no cálculo do processamento, a expressão apresenta um valor numérico utilizado nos cálculos;
  • Expressão de descrição: descreve o cálculo e as regras utilizadas pela aplicação para justificar o valor apresentado.

As expressões podem ser compostas pofunções e variáveis, permitindo assim um número de combinações praticamente ilimitado. Por exemplo: if( Abs(-1) = 1, Cos(1), Floor(1.5555)).

Nota: As expressões suportam as operações aritméticas normais de adição, subtração, divisão e multiplicação. Nas funções com mais do que um parâmetro, deve ser utilizada a vírgula como separador. 

Sequência do Processamento

A sequência do processamento salarial é importante para obter os valores esperados em cada uma das fórmulas.

Aquando da avaliação da fórmula, alguns objetos podem não apresentar os valores finais do processo onde se inserem e tipicamente têm um comportamento lógico e sequencial. Por exemplo, numa remuneração de processamento, o valor é calculado depois da quantidade. Tal significa que, se na fórmula para a quantidade referenciar o objeto "Value" dessa remuneração, o valor será tipicamente zero.

De uma forma simplificada, os cálculos associados ao processamento seguem a seguinte sequência:

  1. Cálculo dos créditos das contas de benefício;
  2. Cálculo dos débitos das contas de benefício;
  3. Cálculo de remunerações base para determinar o valor bruto e base bruto (para a totalidade do mês, sem ausências);
  4. Cálculo de remunerações não base para determinar valor bruto;
  5. Considerar ausências;
  6. Cálculo de remunerações para determinar valor ilíquido;
  7. Cálculo de remunerações e deduções de acordo com dependências.

Nota: No cálculo do processamento, não poderá utilizar valores posteriores, por exemplo: não poderá usar o valor do cálculo dos débitos (n.º 2) no cálculo dos créditos (n.º 1).

Variáveis

As variáveis correspondem aos valores (propriedades) das entidades envolvidas numa fórmula, nomeadamente: Processamento, Contrato, Colaborador, Remuneração e Dedução. Desta forma, é possível utilizar as variáveis no cálculo das fórmulas para contextualizar a forma como a fórmula é calculada.  

Nas funções cumulativas, é possível obter valores de entidades do processamento - Ausências e Folha de Presença - consoante o tipo de interação indicado (ver secção Funções cumulativas).

Deverá ter em consideração que numa fórmula associada a uma remuneração não é possível obter diretamente o valor do objeto "Deduction", exceto pelas fórmulas de avaliação de registos. 

Tipos de Funções

No Rose, existe um conjunto de tipos de funções que poderá utilizar para obter valores concretos:

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 

Funções 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 

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. 

A seguinte tabela enumera as funções de avaliação de registo disponíveis:

Nome  Descrição  Utilização 
GetEarningValue  Devolve o valor de uma ou mais remunerações.  GetEarningValue('R1','R2', 'RN') 
GetEmployeeDeductionValue  Devolve o valor do funcionário de uma ou mais deduções.  GetEmployeeDeductionValue('D1','D2','DN') 
GetCompanyDeductionValue  Devolve o valor do encargo da empresa de uma ou mais deduções.  GetCompanyDeductionValue('D1','D2','DN') 

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) 

Objetos

Os objetos são entidades com propriedades que são utilizadas no cálculo do processamento.

De salientar que algumas entidades só estão disponíveis no seu contexto, ou seja:

  • as entidades relativas a remunerações só estão disponíveis no contexto de cálculo de remunerações;
  • as entidades de dedução apenas estão disponíveis no contexto de cálculo de deduções. 

As seguintes tabelas enumeram os objetos disponíveis:

Processing

Esta entidade contém os dados gerais do processamento:

Propriedade  Tipo  Descrição 
Contract  Entidade  Contrato 
Employee  Entidade  Colaborador 
PeriodYear  Número  Ano de processamento 
PeriodMonth  Número  Mês de processamento 
Date  Data  Período processamento ao dia 1 do mês 
StartDate  Data  Limite inferior do período de processamento 
EndDate  Data  Limite superior do período de processamento 
Number  Número  Número do Processamento 
TypeValue  Número  Tipo de Processamento (0 - normal, 1 - extra, 2 - retroativo) 
Company  Entidade  Empresa 
HourlyWage  Monetário  Salário Hora 
GrossBaseAllowance  Monetário  Valor Bruto 
IlliquidBaseAllowance  Monetário  Valor Ilíquido 
CalendarDaysCount  Número  Dias de calendário considerando dias de admissão/demissão. 
WorkedCalendarDaysCount  Número  Dias de calendário trabalhados 
AbsentCalendarDayCount  Número  Dias de ausência em dias de calendário 
WorkDaysCount  Número  Dias de Trabalho 
WorkHoursCount  Número  Horas de Trabalho 
AbsentWorkDaysCount  Número  Dias de ausência 
AbsentWorkHoursCount  Número  Horas de ausência 
WorkedWorkDaysCount  Número  Dias de trabalho trabalhados 
WorkedWorkHoursCount  Número  Horas de trabalho trabalhadas 
Worked30DaysMonthCount  Número  Dias de trabalho em mês de 30 dias 
Absent30DaysMonthCount  Número  Ausências em mês de 30 dias 
VacationDaysCount  Número  Dias de férias do período 
NextVacationDayCount  Número  Dias de férias do próximo período 
YearPeriodCount  Número  Número de períodos de processamento previstos 
MajVacationPeriod  Número  Maior período de férias previsto 
LastPeriod  Número  Último período de processamento previsto 
DaysInMonth  Número  Número de dias do mês 
Days30  Número  Número de dias 30 no período considerando dias de admissão/demissão. 

Contract 

Esta entidade contém os dados do contrato:

Propriedade  Tipo  Descrição 
HiringDate  Data  Data de admissão 
HiringReason  Entidade  Motivo de admissão 
TrialPeriodDays  Número  Número de dias de período experimental 
TrialPeriodEndDate  Data  Data de fim do período experimental 
EstimatedEndDate  Data  Data prevista de fim de contrato 
EndDate  Data  Data de fim de contrato 
LeavingReason  Entidade  Motivo de Saída 
WorkLocation  Entidade  Local de trabalho 
WorkTimeDurationValue  Número  Duração do tempo de trabalho 
TaxJurisdictionService  Texto  Serviço de Finanças 
TaxResidenceValue  Número  Domicílio fiscal 
DisabilityDegreePlus  Booleano  Grau de incapacidade superior a 60% 
ExistsSecondIncomeProvider  Booleano  Existe segundo titular de rendimentos 
SecIncProvDisDegreePlus  Booleano  Segundo titular de rendimentos tem grau de 
Incapacidade superior a 60% 
NumberOfDependants  Número  Número de dependentes 
NumberDepDisDegreePlus  Número  Número de dependentes com grau de incapacidade superior a 60% 
Remarks  Texto  Notas 
WorkLocationWorkSchedule  Entidade  Calendário de Trabalho 
HourlyWageFormulaValue  Número  Tipo de fórmula de salário hora 
HourlyWage  Monetário  Valor de Salário Hora quando fixo 

ContractEarning 

Este entidade corresponde à remuneração no contrato: 

Propriedade  Tipo  Descrição 
PeriodStart  Data  Período Inicial 
periodEnd  Data  Período Final 
QuantityKindValue  Número  Tipo de quantidade 
QuantityValue  Número  Valor da quantidade 
QuantityFormula  Entidade  Fórmula da quantidade 
ValueKindValue  Número  Tipo de valor 
ValueMoney  Monetário  Valor do valor 
ValueFormula  Entidade  Fórmula do valor 

ProcessingEarning 

Esta entidade corresponde à remuneração no processamento:

Propriedade  Tipo  Descrição 
SourceTypeValue  Número  Origem 
Earning  Entidade  Remuneração 
Name  Texto  Nome 
Quantity  Número  Quantidade 
UnitValue  Monetário  Valor unitário 
Value  Monetário  Valor total 

Earning 

Este objeto corresponde à entidade da remuneração:

Propriedade  Tipo  Descrição 
SourceTypeValue  Número  Origem 
Earning  Entidade  Remuneração 
Name  Texto  Nome 
Quantity  Número  Quantidade 
UnitValue  Monetário  Valor unitário 
Value  Monetário  Valor total 

ContractDeduction 

Este objeto corresponde à entidade da dedução do processamento:

Propriedade  Tipo  Descrição 
Deduction  Entidade  Dedução 
PeriodStart  Data  Período Inicial 
PeriodEnd  Data  Período final 
SubscriptorNumber  Texto  Número de subscritor 
CalculationKindValue  Número  Tipo de cálculo 
EmployeeValue  Monetário  Valor para funcionário 
EmployeePercentage  Percentagem  Percentagem do colaborador 
EmployeeFormula  Entidade  Fórmula 

Deduction 

Esta objeto corresponde à entidade Dedução:

Propriedade  Tipo  Descrição 
DeductionKey  Texto  Código 
Name  Texto  Nome 
IsMandatory  Booleano  Dedução obrigatória 
EarningDeductionGroupValue  Número  Grupo de deduções 

PeriodDeduction

Este objeto corresponde à entidade da configuração de dedução por período:

Propriedade  Tipo  Descrição 
PeriodStart  Data  Período inicial 
PeriodEnd  Data  Período final 
DeductionValueKindValue  Número  Tipo de Valor 
AppliesEmployee  Booleano  Aplica-se ao colaborador 
EmployeeValue  Monetário  Valor do colaborador 
EmployeePercentage  Número  Percentagem para colaborador 
EmployeeFormula  Entidade  Fórmula do colaborador 
EmployeeMinValue  Monetário  Valor mínimo para o colaborador 
EmployeeMaxValue  Monetário  Valor máximo para o colaborador 
AppliesCompany  Booleano  Aplica-se à entidade patronal 
CompanyValue  Monetário  Valor da entidade patronal 
CompanyPercentage  Número  Percentagem da entidade patronal 
CompanyFormula  Entidade  Fórmula para entidade patronal 
CompanyMinValue  Monetário  Valor mínimo para a entidade patronal 
CompanyMaxValue  Monetário  Valor máximo para entidade patronal 

ProcessingAbsences 

Este objeto corresponde à existência de ausências no processamento. Esta entidade só está disponível quando é utilizada como sub-expressão de uma função cumulativa, quando nesta é especificada no parâmetro de detalhe ‘ProcessingAbsences’: 

Propriedade  Tipo  Descrição 
StartDate  Data  Data de início 
EndDate  Data  Data de fim 
Duration  Número  Duração 
AbsentCalendarDays  Número  Ausência em dias de calendário 
AbsentWorkDays  Número  Ausência em dias de trabalho 
AbsentWorkHours  Número  Ausência em horas 
UnitValue  Número  Unidade 

AbsenceType 

Este objeto corresponde à existência de ausências no processamento. Esta entidade só está disponível quando é utilizada como sub-expressão de uma função cumulativa, quando nesta é especificada no parâmetro de detalhe ‘ProcessingAbsences’: 

Propriedade  Tipo  Descrição 
AbsenceType  Entidade  Tipo de ausência 
StartDate  Data  Data de início 
EndDate  Data  Data de fim 
Duration  Número  Duração 
AbsentCalendarDays  Número  Ausência em dias de calendário 
AbsentWorkDays  Número  Ausência em dias de trabalho 
AbsentWorkHours  Número  Ausência em horas 
UnitValue  Número  Unidade 

ProcessingTimesheets

Este objeto corresponde à entidade de registo na folha de presenças. Esta entidade apenas está disponível quando é utilizada numa sub-expressão de uma função cumulativa, quando está especificada no parâmetro de detalhe ‘ProcessingTimesheets’: 

Propriedade  Tipo  Descrição 
Date  Data  Data 
Expected  Número  Horas esperadas 
Efective  Número  Horas efetivas 
Absence  Número  Horas de ausência 

Variáveis

Na versão atual, está apenas disponível a variável Result:

Nome  Descrição  Utilização  Exemplo 
Result  Devolve o resultado da Expressão. Poderá ser utilizada na descrição da expressão de uma fórmula  Result  ‘Fração de dias trabalhados: ‘ + Result 

Para obter o valor de uma variável, esta deve referenciada entre parêntesis retos, indicando o nome da entidade (em inglês) e separada por ponto para indicar o nome da propriedade do objeto, como por exemplo [Processing.CalendarDaysCount].

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