Formulas Roteiro de Calculo

9
_________________________________________________________________________________________________________________________________________________________________________________________________________________________________ 1 00 “FUNÇÕES PARA USO EM FÓRMULAS” fBuscaPD Objetivo : Retorna o somatório dos Valores ou das Quantidades das Verbas indicadas. Sintaxe : fBuscaPD(cCódigos, cTipo, cSemana) cCódigos = Lista contendo o(s) código(s) da(s) verba(s) a ser(em) somada(s). Ex.: "105,106,107" ou "105" cTipo = Tipo de somatório a ser feito. Pode ser "H" para que seja feito o somatório das Quantidades das verbas ou "V" para que os Valores das verbas sejam somados. Se não for indicado será assumido "V". Ex.: "V" ou "H" cSemana = Número da semana, se não for indicado assume brancos. Somente deverá ser utilizado para funcionários cuja periodicidade de pagamento seja "semanal". Ex.: "14" Exemplo de Utilização : nHorExt := fBuscaPD("105,106,107,108,109,110", "H", "40") Armazenará na variável 'nHorExt' a somatória das QUANTIDADES DE HORAS DAS VERBAS 105, 106, 107, 108, 109 e 110 da semana 40. nValExt := fBuscaPD("105,106,107,108,109,110") Armazenará na variável 'nValExt' a somatória dos VALORES das verbas 105, 106, 107, 108, 109 e 110. OBS.:Quando se efetua a somatória de verbas de Desconto, o Sistema retorna este valor NEGATIVO. Devendo o mesmo ser multiplicado por (-1), quando a verba a ser gerada depender deste resultado.

Transcript of Formulas Roteiro de Calculo

Page 1: Formulas Roteiro de Calculo

_________________________________________________________________________________________________________________________________________________________________________________________________________________________________

1

00 “FUNÇÕES PARA USO EM FÓRMULAS”

fBuscaPD

Objetivo: Retorna o somatório dos Valores ou das Quantidades das Verbas indicadas.

Sintaxe: fBuscaPD(cCódigos, cTipo, cSemana)

cCódigos = Lista contendo o(s) código(s) da(s) verba(s) a ser(em) somada(s).

Ex.: "105,106,107" ou "105"

cTipo = Tipo de somatório a ser feito. Pode ser "H" para que seja feito o

somatório das Quantidades das verbas ou "V" para que os Valores das verbas

sejam somados. Se não for indicado será assumido "V".

Ex.: "V" ou "H"

cSemana = Número da semana, se não for indicado assume brancos. Somente

deverá ser utilizado para funcionários cuja periodicidade de pagamento seja

"semanal".

Ex.: "14"

Exemplo de Utilização:

nHorExt := fBuscaPD("105,106,107,108,109,110", "H", "40")

Armazenará na variável 'nHorExt' a somatória das QUANTIDADES DE HORAS

DAS VERBAS 105, 106, 107, 108, 109 e 110 da semana 40.

nValExt := fBuscaPD("105,106,107,108,109,110")

Armazenará na variável 'nValExt' a somatória dos VALORES das verbas 105,

106, 107, 108, 109 e 110.

OBS.:Quando se efetua a somatória de verbas de Desconto, o Sistema retorna este valor

NEGATIVO. Devendo o mesmo ser multiplicado por (-1), quando a verba a ser gerada

depender deste resultado.

Page 2: Formulas Roteiro de Calculo

_________________________________________________________________________________________________________________________________________________________________________________________________________________________________

2

Exemplos de Utilização:

fGeraVerba(“460”,fBuscaPD(“452”)*(-1)*0.1, , , , , , , , ,.T.)

Gera a verba 460, com 10% sobre o valor da verba de desconto 452.

nValExemp := fBuscaPD("105,106,110,410,405")

Armazenará na variável 'nValExemp' a somatória dos VALORES das verbas 105, 106 e

110 MENOS o valor das verbas 410 e 405.

FbuscaACM

Objetivo: Retorna valor contido nos acumulados anuais.

Sintaxe: fBuscaACM(verba,Mens/Hor, dDataI, dDataF, cTipo , ValRet, QtdRet)

verba = Verba do acumulado

Ex.: "105"

Mens/Hor = Condição para restringir a busca. Pode ser "H" para que seja feito

para a categoria horistas ou "M" para a categoria mensalistas ou por determinado

sindicato, etc.

Ex.: "H" ou "M"

dDataI = Informar a data inicial (DDMMAAAAA) para a procura dentro dos

Acumulados anuais.

dDataF = Informar a data final(DDMMAAAAA) para a procura dentro dos

Acumulados anuais.

cTipo = Informar “V” para valor ou “H” para horas.

ValRet = Valor de retorno.

QtdRet = Quantidade de retorno.

fGeraVerba

Objetivo: Incluir ou Alterar uma Verba no Movimento.

Sintaxe: fGeraVerba(cCód,nVal,nHor,cSem,cCCusto,cTipo1,cTipo2,nParcelas, dData,lAltera)

Page 3: Formulas Roteiro de Calculo

_________________________________________________________________________________________________________________________________________________________________________________________________________________________________

3

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. Pose ser utilizada a variável "cSemana"

que é a semana indicada nas perguntas do programa.

cCCusto = Código do Centro de Custo do funcionário.

cTipo1 = Tipo da Verba. Pode ser "V" para Valor, "H" para Horas ou "D" para

Dias. Se não for informado será assumido "V".

cTipo2 = Após o Tipo deve ser informado o Tipo 2. Pode ser informado “I” para

informada, “A” para Adiantamento, “C” para calculado, “K” para Férias.

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",”I” , 0, , dData_Pgto, .T.)

fGeraVerba("223", 0, SRA->RA_HRSMES, " ", SRA->RA_CC, "H",”I” , 99, , dData_Pgto, .T.)

OBS.: Caso o usuário necessite apenas do último argumento, lAltera, poderá deixar os demais

em branco, para que o Sistema assuma o default.

Exemplo:

fGeraVerba(“222”, nValExtra, nHorExt, , , , , , , ,.T.)

Page 4: Formulas Roteiro de Calculo

_________________________________________________________________________________________________________________________________________________________________________________________________________________________________

4

Sistema irá regravar a verba 222, com o Valor da variável nValExtra e a qtde. de Horas

da variável nHorExt.

Caso não queira que o campo horas seja regravado a função ficará:

fGeraVerba(“222”,nValExtra, , , , , , , , ,.T.)

OBS.: Se o argumento “.T.” for omitido, o Sistema não regravará a verba, caso a mesma já

exista, assumindo, assim, o argumento “.F.” como default.

REGRAVAR VERBA INFORMADA PELO USUÁRIO

A função fgeraverba não regrava verba informada pelo usuário, portanto para os casos

que houver necessidade deve proceder da seguinte maneira no roteiro de calculo:

Condição

If FlocaliaPd("999") > 0 => Ex. Localizar a posicão da verba "999" no Array aPd

Verdadeiro

aPd[fLocaliaPd("999"),5] := ((SalMes * 0.10) * FbuscaPd("999","H") )

Ex. Gravar na Posicão do Valor no aPD o seguinte Calculo:

((Salario * 10%) * Horas Informadas)

Matriz aPd

Matriz onde as Verbas São Calculadas e Criadas através dos Cálculos

aPd[Verba,1] = Código da Verba

aPd[Verba,2] = Semana da Verba

aPd[Verba,3] = C.Custo da Verba

aPd[Verba,4] = Horas

aPd[Verba,5] = Valor

aPd[Verba,6] = Tipo 1 ([H]oras,[V]alor,[D]ias)

aPd[Verba,7] = Tipo 2 ([I]nformada [C]alc.folha [R]Calc. Resc. [F]Calc.Ferias

[S]2o.Parc [P]1o. Parc

aPd[Verba,8] = Parcela da Verba

aPd[Verba,9] = Tipo da Verba na Matriz ([D] = Deletada na Matriz )

aPd[Verba,10] = Data do Lançamento

Exemplo de Utilização:

aPD[fLocaliaPD(“113”),9]:=“D”

Page 5: Formulas Roteiro de Calculo

_________________________________________________________________________________________________________________________________________________________________________________________________________________________________

5

Deleta a verba 113 do arquivo de movimento mensal.

FdelPd

Objetivo: Excluir/Deletar Verbas no Movimento durante o calculo.

Sintaxe: fDelPd(cCódigos, cSemana)

cCódigos = Códigos das Verba a serem excluidas.

cSem = Número da Semana, somente deve ser utilizado para funcionários cuja periodicidade de pagamento seja semanal. Pose ser utilizada a variável "cSemana" que é a semana indicada nas perguntas do programa.

Exemplo de Utilização:

fDelPd("222,109,409")

fDelPd("222,109,409",cSemana)

Matriz aPdv

Incidências das Verbas carregadas através da função fMatriz.

aPdv[Verba,1] = Código da Verba

aPdv[Verba,2] = Percentual da Verba

aPdv[Verba,3] = Código Correspondente

aPdv[Verba,4] = Incidência p/ Base de INSS

aPdv[Verba,5] = Incidência p/ Base de Ir

aPdv[Verba,6] = Incidência p/ Base de FGTS

aPdv[Verba,7] = Incidência p/ Med. 13º

aPdv[Verba,8] = Incidência p/ Med. de Ferias

aPdv[Verba,9] = Incidência p/ Base de Periculosidade

aPdv[Verba,10] = Incidência de Base de Insalubridade

aPdv[Verba,11] = Se Refere a Ferias

aPdv[Verba,12] = Se Refere a 13º

aPdv[Verba,13] = Incidência p/ Mapa de Custo

aPdv[Verba,14] = Incidência p/ Rais

aPdv[Verba,15] = Incidência p/ Dirf

aPdv[Verba,16] = Incidência p/ Dsr s/ Horas

Page 6: Formulas Roteiro de Calculo

_________________________________________________________________________________________________________________________________________________________________________________________________________________________________

6

aPdv[Verba,17] = Se e Verba de Hora Extra

aPdv[Verba,18] = Se a Verba Incorpora Salário

aPdv[Verba,19] = Se a Verba e de Adic tempo serviço

aPdv[Verba,20] = Incidência p/ Base de Contribuição Sindical

aPdv[Verba,21] = Incidência p/ Base do Salário Família

aPdv[Verba,22] = Incidência p/ Base do Seguro de Vida

aPdv[Verba,23] = Incidência p/ Média de Aviso Prévio

aPdv[Verba,24] = Incidência p/ Base de Convenção coletiva

aPdv[Verba,25] = Se a Verba e Deduzida na Guia de INSS (GRPS)

aPdv[Verba,26] = Se a Média Reajustável

aPdv[Verba,27] = Se Tem Formula para a Verba

aPdv[Verba,28] = Incidência p/ Pensão Alimentícia

Funções:

nUltDia := f_UltDia(dData) // Retorna Ultimo dia do mês da data

// passada como parametro

nPosPd := fLocaliaPd("999") // Posição da Verba na Matriz aPd

Matriz aPd = Descrição para roteiro de cálculo.

aPd[nPosPd,1] = Código da Verba

aPd[nposPd,2] = Semana da Verba

aPd[nposPd,3] = C.Custo da Verba

aPd[nPosPd,4] = Horas

aPd[nPosPd,5] = Valor

aPd[nposPd,6] = Tipo 1 ([H]oras,[V]alor,[D]ias)

aPd[nPosPd,7] = Tipo 2 ([I]nformada - [C]alc.folha - [R]Calc. Resc -. [K]Calc.Ferias [S]2o.Parc - [P]1o. Parc

aPd[nPosPd,8] = Parcela da Verba ¦

aPd[nposPd,9] = Tipo da Verba na Matriz ([D] = Deletada na Matriz) ¦

aPd[nPosPd,10] = Data de Pagamento ¦

¦

Função SomaInc

Objetivo : Somar as verbas na matriz aPd conforme incidências solicitadas.

Sintaxe: SomaInc(aPd,nElem,nBas,nCond1,cParc1,nCond2,cParc2,nMes,lSemana,aCodfol)

Page 7: Formulas Roteiro de Calculo

_________________________________________________________________________________________________________________________________________________________________________________________________________________________________

7

aPD = Matriz com as verbas para Somatório

nElem = Incidência a ser somada conforme posição na matriz aPdV

nBas = Variável de retorno da somatória

nCond1 = Elemento para 1ª condição, conf. posição na matriz aPdV

cParc1 = Parâmetro para a 1ª condição (“S” ou “N”)

nCond2 = Elemento para 2ª condição, conf. posição na Matriz aPdV

cParc2 = Parâmetro para a 2ª condição (“S” ou “N”)

nMes = Se desejar especificar o mês de pagamento a ser somado.

lSemana = .T. soma todas as semanas do mês. e .F. soma somente a semana do calc.

aCodFol = Matriz com os identificadores de cálculo.

Exemplo de Função para somatória de verbas, checando incidências

Total de Proventos:

nTotProv:=0.00 -> Var. de retorno do total de proventos

aEval(aPD,{|X| SomaInc(X,1,@nTotProv, , , , , , ,aCodFol})

Total de Descontos

nTotDesc:=0.00 -> Var. de retorno do total de descontos

aEval(aPD,{|X| SomaInc(X,1,@nTotDesc, , , , , , ,aCodFol})

Líquido

nTotLiq:=0.00 -> Var. de retorno do valor Liquido

aEval(aPD,{|X| SomaInc(X,1,@nTotLiq, , , , , , ,aCodFol})

Base de INSS sem 13º Salário

nInssBas:=0.00

aEval(aPD,{|X| SomaInc(X,4,@InssBas,12,”N”, , , , ,aCodFol})

Base de Ir sem férias e 13º Salário

nIrBas:=0.00

aEval(aPD,{|X| SomaInc(X,5,@IrBas,11,”N”,”12”,”N” , , ,aCodFol})

Valor Bruto

ValBruto:=0

Aeval(aPD,{|X|SomaInc(X,5,@ValBruto,11,”N”,12,”N”,, ,aCodFol)})

Page 8: Formulas Roteiro de Calculo

_________________________________________________________________________________________________________________________________________________________________________________________________________________________________

8

Efetua a Somatória dos eventos que incidem para IRRF, e estão com “N” para os campos “Se

Refere a Férias” e “Se Refere a 13º”, acumulando este valor na variável “ValBruto”.

OBS.: Quanto ao “Ponto de Entrada” das Fórmulas, usuário deverá estudar qual o momento do

cálculo, informando a seqüência correta/apropriada.

Exemplo de Roteiro para Retornar o Percentual do Evento:

nPerc:=PosSrv(“114”,SRA->RA_FILIAL,”RV_PERC”)

Função para Buscar um Det. Param. do CFG

GETMV(“MV_DIASMES”)

Variáveis Disponíveis nos Cálculos:

aPd = Array contendo todas as verbas do movimento do funcionário.

aPdv = Array com Incidências com as verbas do movimento.

Val_SalMin = Valor do Salário mínimo do mês de Calculo.

Normal = Horas do Parâmetro Comp. Do Mês ou Turno de trabalho

Descanso = Horas do Parâmetro Comp. Do Mês ou Turno de Trabalho

nValArred = Valor de Arredondamento da Folha

Val_Arre = Valor do Arredondamento no Adto

Val_Adto = Valor do Adiantamento

f_UltDia = Ultimo dia do Mês

Salário = Salário Base Mês

SalMes = Salário Composto pelas verbas que incorporam

SalHora = Salário Hora Composto

SalDia = Salário Dia Composto

nHorasTrab = Horas Trabalhadas (Param. Comp. do Mês ou Turno de Trabalho)

nHorasDsr = Horas Dsr (Param. Comp. do Mês ou Turno de Trabalho)

DiasAfas = Total de Dias Afastados no Mês

nDiasEnf = Total de Dias de Enfermidade no Mês

nDiasMes = Dias de Ferias do Funcionário no Mês

nDiasMse = Dias de Férias do Funcionário Mês Seguinte

Diastrab = Dias Trabalhados do Funcionário

DiasDsr = Dias de Dsr do Funcionário

cTipRes = Tipo de Rescisão

DesprezaFuncionários = irá desprezar o funcionário determinado no cálculo

nFgtsCt1 = Valor do percentual do Fgts para Contr. Tipo Indeterminado

Page 9: Formulas Roteiro de Calculo

_________________________________________________________________________________________________________________________________________________________________________________________________________________________________

9

nFgtsCt2 = Valor do percentual do Fgts para Contr. Tipo Determinado

dData_Pgto = Data de Pagamento da Folha informado no parametro.

Para incluir um RDMAKE nos roteiros, informar no verdadeiro:

Execblock(NOME DO RDMAKE)

Para pegar um parâmetro MV_........ no SX6 para utilizar em roteiro:

A função Getmv(“MV_....”) retorna o conteúdo do parâmetro para o roteiro ou rdmake.

Tabelas utilizadas nas formulas

GPEA290

RC2 - Cabeçalho das fórmulas

RC3 - Itens das fórmulas

RC4 - Cabeçalho da biblioteca de funções

RC5 - itens da biblioteca de funções

RCA - Mnemônicos