FAQs - Suporte técnico

RH - Linha Datasul - Técnicas - Exemplos para elaboração de programas de Fórmula de Cálculo

relogio.png Tempo aproximado para leitura: 00:07:00 min

Dúvida
Quais são os procedimentos para elaboração de programas de fórmula de cálculo?

Ambiente
TOTVS RH – TOTVS RH (Linha Datasul) – Técnicas  – Versão 12

Solução
Abaixo, contém os procedimentos necessários para a elaboração de um programa de fórmula de cálculo, que atenda as necessidades do Cliente ou Usuário:

  • Diagnosticar a real necessidade do usuário, analisando se não podem ser utilizadas as fórmulas criadas através do programa FP2600 - Manutenção Fórmula de Cálculo dos Eventos.
  • Efetuar o levantamento dos campos e tabelas a serem utilizadas no programa.
  • Fazer o programa específico, sendo que as variáveis abaixo deverão ser utilizadas para retorno da informação. Estas variáveis já estão valorizadas para a fórmula utilizada na função FP2600.

Variáveis disponíveis no módulo de Folha de Pagamento:

i-un-retorno: variável shared que retorna a unidade calculada pelo programa específico para o programa principal.

i-vl-retorno:
 variável shared que retorna o valor calculado pelo programa específico para o programa principal.

i-bs-retorno:
 variável shared que retorna a base de cálculo do programa específico para o programa principal.

def shared var i-un-retorno as dec no - undo
def shared var i-vl-retorno as dec no - undo
def shared var i-bs-retorno as dec no - undo

Buffers disponíveis que poderão ser utilizados em programas específicos da folha de pagamento - FP2600:

Def shared buffer bfunciona for funciona.
Def shared buffer bestabel for estabel.
Def shared buffer bturno for turno.
Def shared buffer bsindicato for sindicato.
Def shared buffer bcontrole for controle.
Def shared buffer btbinss for tbinss.
Def shared buffer bmvtobefo for mvtobefo.
Def shared buffer bsituacao for situacao.
Def shared buffer baltersit for altersit.

- Variáveis disponíveis no módulo de Benefícios Sociais BS0540 - Manutenção Fórmula de Cálculo:

d-vl-benefic: Variável shared utilizada na geração de benefícios que contém o valor atual do benefício.

d-acum-tot:
 Variável shared extent usada para acumular os totais usados no programa de cálculo que será tratado na geração de benefícios - Retorna para o programa principal.

d-acum-tot[1]:
 Total funcionário.

d-acum-tot[[2]:
 Total empresa.

d-acum-tot[3]: Total dependentes.

d-acum-tot[4]: Total correção.

i-inf-cd: Variável shared, sendo que no campo contínuo o extent [2] traz do programa de geração o salário atual do funcionário.

i-cd-benefic: Variável shared que contém o código do benefício que está sendo calculado.

Pré-requisitos para fazer o programa.

O diretório onde deverá estar o programa deve ser:

FMP: Folha de Pagamento - FP2600.
FBP: Benefícios Sociais - BS0540.

Exemplo de nomes e programas:

FM000416.P: FM + código do evento sendo que deverá ter 6 dígitos, e os primeiros deverão ser preenchidos com zeros à esquerda, no programa FP2600.

FB00120.P: FB + código do evento sendo que deverá ter 6 dígitos, e os primeiros deverão ser preenchidos com zeros à esquerda, no programa BS0540.

Exemplo de programa de fórmula de cálculo benefícios sociais:

Programa: Especifico/Beneficio
Data....: Julho/1995
Autor...: DATASUL
Objetivo: Formula de Calculo para Plano de Saude

{lib/lib020.i}

def shared var d-vl-benefic as dec no-undo.
Def shared var d-acum-tot as dec extent 10 no-undo.
Def shared var i-inf-cd as dec extent 15 no-undo.
Def shared var i-cd-benefic like mvtobene.cd-benefic no-undo.

Def var i-cont-dep as int initial 1 no-undo.
Def var d-vl-func as dec no-undo.
Def var d-vl-tot as dec no-undo.
Def var d-vl-benef as dec no-undo.
Def var d-vl-salar as dec no-undo.

Def shared buffer bfunciona for funciona.

For each depend dor bfunciona no-lock:
Assign i-cont-dep = i-cont-dep + 1.
End.
Find benefic no-lock where
Benefic.cd-benefic = i-cd-benefic no error.
If available benefic then do:
Find first benefunc of benefic no-lock no-error.
If available benefunc then do:
Find first tabvalor where
Tabvalor.ep-codigo = ngs-i-codemp and
Tabvalor.cd-tabela = 1 and
Tabvalor.sequencia = 4 no lock no-error.
Assign d-vl-func = tabvalor.vl-assumir * tabvalor.vl-base
d-vl-tot = tabvalor.vl-assumir * i-cont-dep
d-vl-benef = d-vl-func * i-cont-dep
d-vl-salar = i-inf-cd[2] * 0.06.
if d-vl-benef > d-vl-salar then
assign d-acum-tot[1] = d-vl-salar
d-acum-tot[2] = d-vl-tot - d-vl-salar.
Else
Assign d-acum-tot[1] = d-vl-tot.
End.
End.

A referência feita a tabela de valores é uma opção para cadastrarmos valores, evitando com isso, o tratamento interno destes valores no programa de fórmula de cálculo, gerando como benefício a constante alteração destes por parte do usuário.

FBP/FP000120.P

Exemplo de programa de fórmula de cálculo folha de pagamento:

Programa: FM000233.P
Data....: Setembro/1996
Autor...: DATASUL
Objetivo: Cálcular o evento 233 - férias vencidas indenizadas a partir do evento 890 Formula de Calculo para Plano de Saude

{lib/lib020.i}

def shared var i-un-retorno as dec no-undo.
Def shared var i-vl-retorno as dec no-undo.
Def shared var i-bs-retorno as dec no-undo.

Def var d-qtd as dec no-undo.
Def var d-salario as dec no-undo.

Def shared workfile wmovto no-undo.
Field seq-calculo as int
Field ev-codigo as int
Field un-inf as dec
Field hr-inf as dec
Field vl-inf as dec
Field un-calc as dec
Field hr-calc as dec
Field vl-calc as dec
Field bs-calc as dec
Field hr-carga as dec
Field ger-fixo as int
Field ev-indice as int
Field origem as cha format "x" initial "C"
Field valoriza as log init no.

Def buffer b-wmovto for wmovto.

Find first b-wmovto where
b-wmovto.ev-codigo = 233
no-lock no-error.
If not avail b-wmovto then return.
Assign d-qtd = b-wmovto.un-calc.

Find first b-wmovto where
b-wmovto.ev-codigo = 890
no-lock no-error.
If not avail b-wmovto then return.

Assign d-salario = b-wmovto.vl-calc
i-vl-retorno = trunc(round(d-salario * d-qtd / 30,2),2).

Return.

FM000233.P

Exemplo de programa de fórmula de cálculo folha de pagamento.

Programa: FM000377.P
Data....: Setembro/1998
Autor...: DATASUL
Objetivo: Cálcular o evento 377 - 13. Salario proporcional - a partir do evento 890

{lib/lib020.i}

def shared var i-un-retorno as dec no-undo.
Def shared var i-vl-retorno as dec no-undo.
Def shared var i-bs-retorno as dec no-undo.

Def var d-qtd as dec no-undo.
Def var d-salario as dec no-undo.

Def shared workfile wmovto no-undo.
Field seq-calculo as int
Field ev-codigo as int
Field un-inf as dec
Field hr-inf as dec
Field vl-inf as dec
Field un-calc as dec
Field hr-calc as dec
Field vl-calc as dec
Field bs-calc as dec
Field hr-carga as dec
Field ger-fixo as int
Field ev-indice as int
Field origem as cha format "x" initial "C"
Field valoriza as log init no.

Def buffer b-wmovto for wmovto.

Find first b-wmovto where
b-wmovto.ev-codigo = 377
no-lock no-error.
If not avail b-wmovto then return.
Assign d-qtd = b-wmovto.un-calc.

Find first b-wmovto where
b-wmovto.ev-codigo = 890
no-lock no-error.
If not avail b-wmovto then return.

Assign d-salario = b-wmovto.vl-calc
i-vl-retorno = trunc(round(d-salario * d-qtd / 12,2),2).

Return.

FM000377.P

Esse artigo foi útil?
Usuários que acharam isso útil: 0 de 0

0 Comentários

Por favor, entre para comentar.
X Fechar

Olá ,

Há pendência referente a um de seus produtos contratados para a empresa ().

Entre em contato com o Centro de Serviços TOTVS para tratativa.

Ligue! 4003-0015 opção 4 e 9 ou registre uma solicitação para CST – Cobrança – Verificação de pendências financeiras . clique aqui.

TOTVS

X Fechar

Olá ,

Seu contato não está cadastrado no Portal do Cliente como um perfil autorizado a solicitar consultoria telefônica.

Por gentileza, acione o administrador do Portal de sua empresa para: (1)configurar o seu acesso ou (2)buscar um perfil autorizado para registro desse atendimento.

Em caso de dúvidas sobre a identificação do contato administrador do Portal, ligue (11) 4003-0015, opção 7 e, em seguida, opção 4 para buscar o suporte com o time de Assessoria ao Portal do Cliente. . clique aqui.

TOTVS

X Fechar

Olá ,

Para o atendimento de "Consultoria Telefônica" você deverá estar de acordo com o Faturamento.

TOTVS

X Fechar

Olá,

Algo inesperado ocorreu, e o usuario nao foi reconhecido ou você nao se encontra logado

Por favor realize um novo login

Em caso de dúvidas, entre em contato com o administrador do Portal de Clientes de sua empresa para verificação do seu usuário, ou Centro de Serviços TOTVS.

Ligue! 4003-0015 opção 4 e 9 ou registre uma solicitação para CST – Cadastros . clique aqui.

TOTVS

Chat _

Preencha os campos abaixo para iniciar o atendimento:

Chat _