CONTEÚDO
01. VISÃO GERAL
Com esse template, será possível visualizar de forma fácil como ocorrerá a aplicação de fórmulas e o funcionamento das mesmas na apuração do valor da verba/evento.
02. IMPORTANTE
- O cadastro de fórmulas e sua manutenção é de responsabilidade da empresa detentora do erp, dessa forma espera-se que o time a desenvolver a mesma tenha expertise para análise de todos os casos a serem validados;
- Sempre defina um script de finalização para as demais exceções que não refletirem as regras tratadas, desta forma após todas as condições serem aplicadas, deve-se garantir que todos os funcionários da empresa serão validados com valor de margem aceita; lembre-se a margem com valor zero é considerada inválida para novas simulações de empréstimo consignado;
- Respeite as melhores práticas do departamento documentando as regras se necessário para que fique claro os objetivos e conceitos aplicados;
- Cada erp possui características específicas conforme suas premissas para estruturar e realizar esse cadastro, em caso de dúvidas verifique as documentações de seu produto.
03. MODELOS
Abaixo seguem exemplos de expressão sugeridos para te auxiliar na criação da fórmula a ser vinculada a verba/evento de Margem Consignável Customizada :
Passos para utilização da fórmula customizada no Protheus: - Criar a Fórmula desejada com o código a ser vinculado (EX: U_002) no novo Roteiro de cálculo;
- Desabilitar o Roteiro de cálculo padrão (coluna Habilitado = Não) ;
- Criar o novo roteiro de cálculo vinculando a Fórmula através da busca padrão pelo filtro existente (lupa) (EX: U_002)
- O novo roteiro deverá estar com a coluna Habilitado = Sim
Necessário lembrar que precisará ser desabilitado no Roteiro de Cálculo de Folha a regra de cálculo da margem consignável padrão e criar nova regra de usuário habilitado. Segue abaixo sugestão de cadastro de fórmulas a ser vinculada a verba de id. de cálculo 1857 - Margem Consignável Customizada: Somente serão destacados dados relevantes de preenchimento.
Fórmula Protheus - Exemplo 1: Evidências visuais | Regra 1: % dif. por tipo de recebimento | Exemplo prático |
---|
==> ==> | - Condição: VERIFICA SEMANALISTA
- 1a.Expressao:
SRA->RA_CATFUNC == "S" - Op.3
.END.
- Lógica: Variável para Buscar Valor da Verba
- Resultado:
nValor := fBuscaPd("ZZ1*ZZ2", "V") // Atenção: Dentro do parênteses informe todas as verbas a serem consideradas para encontrar a base de cálculo, que se encontrarem no movimento sempre usando o mesmo separador, exemplo: "ZZ1*ZZ2*ZZ3*ZZ4","V" // - Op.3
.CNT.
- Lógica: Aplica 20% no valor acima encontrado
- Resultado
nResult := nValor * 0.2 // Atenção: o percentual aplicado fica a critério da empresa, lembrando que a legislação limita a 30% //
- Condição: VERIFICA MENSALISTA
- 1a.Expressao:
SRA->RA_CATFUNC == "M" - Op.3
.END.
- Lógica: Variável para Buscar Valor da Verba
- Resultado:
nValor := fBuscaPd("ZZ1*ZZ2", "V") // Atenção: Dentro do parênteses informe todas as verbas a serem consideradas para encontrar a base de cálculo, que se encontrarem no movimento sempre usando o mesmo separador, exemplo: "ZZ1*ZZ2*ZZ3*ZZ4","V" // - Op.3
.CNT.
- Lógica: Aplica 40% no valor acima encontrado
- Resultado:
nResult := nValor * 0.4 // Atenção: o percentual aplicado fica a critério da empresa, lembrando que a legislação limita a 30% //
- Condição: VERIFICA SE DIF. MENSALISTA E SEMANALISTA
- 1a.Expressao:
SRA->RA_CATFUNC != "S" .AND. SRA->RA_CATFUNC != "M" - Op.3
.END.
- Lógica: Variável para Busca Valor da Verba
- Resultado:
nValor := fBuscaPd("ZZ1*ZZ2", "V") // Atenção: Dentro do parênteses informe todas as verbas a serem consideradas para encontrar a base de cálculo, que se encontrarem no movimento sempre usando o mesmo separador, exemplo: "ZZ1*ZZ2*ZZ3*ZZ4","V" // - Op.3
.CNT.
- Lógica: Aplica 30% no valor acima encontrado
- Resultado:
nResult := nValor * 0.3 // Atenção: o percentual aplicado fica a critério da empresa, lembrando que a legislação limita a 30% //
- Resultado Final: GERA VERBA NO CALCULO DA FOLHA
- 1a.Expressao:
FGERAVERBA(aCodFol[1857, 1],nResult) - Op.3
.END.
| Mês da Competência atual = 6
==> Funcionário com tipo de recebimento Semanalista Valor das Verbas no Movimento 6 verba código ZZ1 = + 2000,00 verba código ZZ2 = - 1000,00 Resultado acumulado na variável nValor = 1000,00 nValor = 1000,00 * % = 1000,00 * 0.2 = R$ 200,00 será o valor Total ref. a Margem Consignável do Funcionário
==> Funcionário com tipo de recebimento Mensalista Valor das Verbas no Movimento 6 verba código ZZ1 = + 5000,00 verba código ZZ2 = - 3000,00 Resultado acumulado na variável nValor = 2000,00 nValor = 2000,00 * % = 2000,00 * 0.4 = R$ 800,00 será o valor Total ref. a Margem Consignável do Funcionário
==> Funcionário com tipo de recebimento diferente de Mensalista e Semanalista Valor das Verbas no Movimento 6 verba código ZZ1 = + 4000,00 verba código ZZ2 = - 2000,00 Resultado acumulado na variável nValor = 2000,00 nValor = 2000,00 * % = 2000,00 * 0.3 = R$ 600,00 será o valor Total ref. a Margem Consignável do Funcionário
Após rodar todas as condições e regras e apurar o valor final a verba cadastrada com o id de cálculo 1857 será gravada no movimento atual 6 com seu devido valor encontrado conforme descrito acima. |
Fórmula Protheus - Exemplo 2: Evidências visuais | Regra 2: % dif. por Filial e/ou Função | Exemplo prático |
---|
==> ==> | - Condição: VERIFICA 1a FILIAL
- 1a.Expressao:
SRA->RA_FILIAL == "D MG 01" // Atenção: Dentro da aspas consta um valor para identificação da filial que é variável conforme desejado pelo cliente // - Op.3
.END.
- Lógica: Variável para Buscar Valor da Verba
- Resultado:
nValor := fBuscaPd("ZZ1*ZZ2", "V") // Atenção: Dentro do parênteses informe todas as verbas a serem consideradas para encontrar a base de cálculo, que se encontrarem no movimento sempre usando o mesmo separador, exemplo: "ZZ1*ZZ2*ZZ3*ZZ4","V" // - Op.3
.CNT.
- Lógica: Aplica 20% no valor acima encontrado
- Resultado
nResult := nValor * 0.2 // Atenção: o percentual aplicado fica a critério da empresa, lembrando que a legislação limita a 30% //
- Condição: VERIFICA 2a FILIAL e duas funções específicas desta mesma filial
- 1a.Expressao:
SRA->RA_FILIAL == "M SP 01" .AND. ( SRA->RA_CODFUN =="00001" .OR. SRA->RA_CODFUN =="00004") // Atenção: Dentro da aspas consta um valor para identificação da filial w código da função que é variável conforme desejado pelo cliente //
- Op.3
.END.
- Lógica: Variável para Buscar Valor da Verba
- Resultado:
nValor := fBuscaPd("ZZ1*ZZ2", "V") // Atenção: Dentro do parênteses informe todas as verbas a serem consideradas para encontrar a base de cálculo, que se encontrarem no movimento sempre usando o mesmo separador, exemplo: "ZZ1*ZZ2*ZZ3*ZZ4","V" // - Op.3
.CNT.
- Lógica: Aplica 20% no valor acima encontrado
- Resultado:
nResult := nValor * 0.2 // Atenção: o percentual aplicado fica a critério da empresa, lembrando que a legislação limita a 30% //
- Condição: VERIFICA SE DIF. 1a FILIAL e DIF. 2a FILIAL e duas funções específicas desta mesma filial
- Lógica: Aplica 30% no valor acima encontrado
- Resultado:
nResult := nValor * 0.3 // Atenção: o percentual aplicado fica a critério da empresa, lembrando que a legislação limita a 30% //
- Resultado Final: GERA VERBA NO CALCULO DA FOLHA
- 1a.Expressao:
FGERAVERBA(aCodFol[1857, 1],nResult) - Op.3
.END.
| Mês da Competência atual = 6
==> Funcionário alocado na Filial "D MG 01" Valor das Verbas no Movimento 6 verba código ZZ1 = + 2000,00 verba código ZZ2 = - 1000,00 Resultado acumulado na variável nValor = 1000,00 nValor = 1000,00 * % = 1000,00 * 0.2 = R$ 200,00 será o valor Total ref. a Margem Consignável do Funcionário
==> Funcionário alocado na Filial "M SP 01" e exercendo a função de Código = "00001" Valor das Verbas no Movimento 6 verba código ZZ1 = + 5000,00 verba código ZZ2 = - 3000,00 Resultado acumulado na variável nValor = 2000,00 nValor = 2000,00 * % = 2000,00 * 0.2 = R$ 400,00 será o valor Total ref. a Margem Consignável do Funcionário
Funcionário alocado na Filial "M SP 01" e exercendo a função de Código = "00004" Valor das Verbas no Movimento 6 verba código ZZ1 = + 3000,00 verba código ZZ2 = - 2000,00 Resultado acumulado na variável nValor = 1000,00 nValor = 1000,00 * % = 1000,00 * 0.2 = R$ 200,00 será o valor Total ref. a Margem Consignável do Funcionário
==> Funcionário alocados em outras filiais diferente de 1a FILIAL ou alocado na 2a FILIAL exercendo a função "00009" Valor das Verbas no Movimento 6 verba código ZZ1 = + 4000,00 verba código ZZ2 = - 2000,00 Resultado acumulado na variável nValor = 2000,00 nValor = 2000,00 * % = 2000,00 * 0.3 = R$ 600,00 será o valor Total ref. a Margem Consignável do Funcionário
Após rodar todas as condições e regras e apurar o valor final a verba cadastrada com o id de cálculo 1857 será gravada no movimento atual 6 com seu devido valor encontrado conforme descrito acima. |
|
Observação:
Caso exista Política Ativa cadastrada no Portal de Gestão do RH e esta, possua configurada a regra "Qual a porcentagem máxima do salário que pode ser alocado para o empréstimo?" , o valor da margem consignável vinda do ERP (independente se for margem customizada por fórmula), poderá ser substituído pelo limite imposto pela política caso este valor originado do ERP ultrapasse o limite calculado pela regra.
Exemplos:
Exemplo 1:
Política Ativa cadastrada
Regra: "Qual a porcentagem máxima do salário que pode ser alocado para o empréstimo?" com o percentual informado 30
Valor da Margem original do ERP = R$ 520,00
Salário bruto do funcionário = R$ 1200,00
Valor da margem consignável a ser considerado para análise da instituição de crédito: R$ 360,00
Exemplo 2:
Política Ativa cadastrada
Regra: "Qual a porcentagem máxima do salário que pode ser alocado para o empréstimo?" com o percentual informado 30
Valor da Margem original do ERP = R$ 220,00
Salário bruto do funcionário = R$ 1200,00
Valor da margem consignável a ser considerado para análise da instituição de crédito: R$ 220,00
04 Exemplo do uso de Funções para uso em Fórmulas (GPEA160 - SIGAGPE - V12)
Sugestão de funções para Incluir ou Alterar uma Verba no Movimento do funcionário.
Sintaxe:
- fGeraVerba(cCód,nVal,nHor,cSem,cCCusto,cTipo,,nParcelas,,dData,lAltera)
onde:
- cCód - Código da Verba a ser gerada.
- nVal - Valor da Verba.
- nHor - Quantidade da Verba.
- cSem - Número da Semana, somente deve ser utilizado para funcionários cuja periodicidade de pagamento seja semanal. Pode ser utilizada a variável “cSemana” que é a semana indicada nas perguntas do programa.
- cCCusto - Código do Centro de Custo do funcionário.
- cTipo - Tipo da Verba. Pode ser V para Valor, H para Horas ou D para Dias. Se não for informado será assumido V.
- Nulo - Após o Tipo deve ser informado um parâmetro Nulo ou seja, deve-se colocar DUAS vírgulas após o Tipo.
- nParcelas - Número de Parcelas da Verba. Deve estar entre 0 e 99.
- Nulo - Após a Parcela deve ser informado um parâmetro Nulo ou seja, deve-se colocar DUAS vírgulas após a Parcela.
- dData - Data do efetivo pagamento da Verba. Pode-se utilizar a Variável dData_Pgto que é a data informada nas perguntas do cálculo.
- lAltera - Variável lógica para indicar se a verba pode ser alterada, caso já exista no movimento do funcionário. Pode ser .T. ou .F..
Exemplo de Utilização:
fGeraVerba(222,nValExt,nHorExt,cSemana,SRA->RA_CC,V,,0,,dData_Pgto,.T.)
fGeraVerba(223,0,SRA->RA_HRSMES, ,SRA->A_CC,H,99,,dData_Pgto,.T.)
05. LINKS ÚTEIS