1 _________________________________________________________________________________________________________________________________________________________________________________________________________________________________
“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 cTipo = Tipo de somatório a ser feito. Pode ser " H " para que seja feito o V" para que os Valores das verbas somatório das Quantidades das verbas ou " V V ". 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", 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, 108, 109 e 110 da semana 40.
nValExt := fBuscaPD("105,106,107,108,109,110") 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 OBS.:Quando se efetua a somatória de verbas de Desconto , o Sistema retorna este valor NEGATIVO. NEGATIVO. Devendo o mesmo ser multiplicado por (-1), quando a verba a ser gerada depender deste resultado.
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.
fGeraVerba Objetivo:
Incluir ou Alterar uma Verba no Movimento.
Sintaxe: fGeraVerba(cCód,nVal,nHor,cSem,cCCusto,cTipo1,cTipo2,nParcelas, dData,lAltera) 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.
3 _________________________________________________________________________________________________________________________________________________________________________________________________________________________________
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.) 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)
4 _________________________________________________________________________________________________________________________________________________________________________________________________________________________________
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” 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
5 _________________________________________________________________________________________________________________________________________________________________________________________________________________________________
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 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.
6 _________________________________________________________________________________________________________________________________________________________________________________________________________________________________
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)
aPD nElem nBas nCond1 cParc1 nCond2 cParc2 nMes lSemana aCodFol
= Matriz com as verbas para Somatório = Incidência a ser somada conforme posição na matriz aPdV = Variável de retorno da somatória = Elemento para 1ª condição, conf. posição na matriz aPdV = Parâmetro para a 1ª condição (“S” ou “N”) = Elemento para 2ª condição, conf. posição na Matriz aPdV = Parâmetro para a 2ª condição (“S” ou “N”) = Se desejar especificar o mês de pagamento a ser somado. = .T. soma todas as semanas do mês. e .F. soma somente a semana do calc. = Matriz com os identificadores de cálculo.
Array incidências // 1-Codigo // 2-Percentual da Verba // 3-Codigo Correspondente // 4-Incidencia Base INSS // 5-Incidencia Base IR // 6-Incidencia Base FGTS // 7-Incidencia Media 13o // 8-Incidencia Media Ferias // 9-Incidencia Base Periculosidade // 10-Incidencia Base Insalubridade // 11-Se Refere a Ferias // 12-Se Refere a 13o Salario // 13-Se Refere a Adiantamento
7 _________________________________________________________________________________________________________________________________________________________________________________________________________________________________
// 14-Incidencia para RAIS // 15-Incidencia para DIRF // 16-Incidencia para DSR S/ Horas // 17-Se e Verba de Hora Extras // 18-Se a Verba Incorpora Salario // 19-Verba Adic. Tempo Servico // 20-Incidencia Base Contrib. Sindical // 21-Incidencia Base Sal. Familia // 22-Incidencia Base Seguro Vida // 23-Incidencia Media Aviso Previo // 24-Incidencia Base Convencao Coletiva // 25-Verba Deduz da Guia INSS // 26-Se e Media Reajustavel // 27-Tipo do Codigo 1=Prov.,2=Desc.,3=Base // 28-Incidencia para Pensao Alimenticia // 29-Incidencia para DSR Professores // 30-Incidencia para Horas Atividade Professores // 31-Codigo da Tarefa
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
8 _________________________________________________________________________________________________________________________________________________________________________________________________________________________________
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)}) 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 aPdv Val_SalMin Normal Descanso nValArred Val_Arre Val_Adto f_UltDia Salário SalMes SalHora SalDia nHorasTrab nHorasDsr DiasAfas
= Array contendo todas as verbas do movimento do funcionário. = Array com Incidências com as verbas do movimento. = Valor do Salário mínimo do mês de Calculo. = Horas do Parâmetro Comp. Do Mês ou Turno de trabalho = Horas do Parâmetro Comp. Do Mês ou Turno de Trabalho = Valor de Arredondamento da Folha = Valor do Arredondamento no Adto = Valor do Adiantamento = Ultimo dia do Mês = Salário Base Mês = Salário Composto pelas verbas que incorporam = Salário Hora Composto = Salário Dia Composto = Horas Trabalhadas (Param. Comp. do Mês ou Turno de Trabalho) = Horas Dsr (Param. Comp. do Mês ou Turno de Trabalho) = Total de Dias Afastados no Mês
9 _________________________________________________________________________________________________________________________________________________________________________________________________________________________________
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 nFgtsCt2 = Valor do percentual do Fgts para Contr. Tipo Determinado dData_Pgto = Data de Pagamento da Folha informado no parametro.