Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Quando é efetuado o cálculo de provisão no mês que ocorre as férias, não ocorrerá a baixa devido a não haver o pagamento do 1/3 de férias e/ou abono pecuniário. No entanto, esse valor ainda deve ser será quitado , por isso é necessário retorná-los lo ao saldo da provisão do funcionário. Em 2020, foi liberado um tratamento através de ponto pontos de entrada, cuja documentação está disponível no endereço: 8581039 DRHPAG-35723 DT Cálculo e baixa de 1/3 de férias na provisão quando o 1/3 não foi calculado nas férias devido MP 927.

...

Para a MP 1.046/2021, como foi incluído a possibilidade da postergação do abono pecuniário, e portantoconsequentemente, todas as verbas relacionadas a abono, será efetuado tratamento no cálculo padrão da provisão de férias para retornar os valores de 1/3 de férias e/ou abono pecuniário ao saldo do funcionário. Ou seja, não será necessário utilizar um ponto de entrada para essa finalidade.

Para isso, além de toda a configuração de mnemônicos e verbas detalhados na documentação do endereço DRHPAG-46013 DT MP 1.046/2021 - Postergação do pagamento do 1/3 de férias e/ou abono pecuniário, foi efetuado a criação do mnemônico abaixo, onde deverá ser preenchido:

MnemônicoTipoObjetivoExemplo de preenchimento
P_MP1046QUICaracterDefine o período em que ocorrerá a quitação dos valores de 1/3 de férias e abono pecuniário postergados conforme MP 1.046/2021"202112"

...

No exemplo acima, foi definido que a quitação dos valores postergados conforme MP 1.046/2021 ocorrerá em 12/2021, então até o período 12/2021 será efetuado verificação no cálculo da provisão de férias para verificar se houve alguma férias com postergação do pagamento de 1/3 de férias e/ou abono pecuniário para que esses valores sejam retornados ao saldo da provisão de férias do funcionário.

O sistema verificará a verba vinculada no campo RV_CODMPA dos identificadores de cálculo abaixo e retornará o valor gerado no cálculo de férias para o saldo de provisão de férias vencidas do funcionário nas colunas conforme tabela abaixo:

...

Obs.: no padrão, a busca pela baixa de pagamento dos valores de férias somente ocorre quando o funcionário está de férias, mas no período configurado no mnemônico P_MP1046QUI será forçado a realização da busca desses valores mesmo se o funcionário não estiver de férias.


Para Mas para a realização da baixa do pagamento dos valores de 1/3 de férias e/ou abono pecuniário , será necessário utilizar o ponto de entrada GP070COD, que será utilizado para definir as verbas onde foram realizadas a quitação dos valores postergados.

...

Linha 149: se o cálculo da provisão está no período de pagamento em folha de 1/3 de férias adiado;

Linha 150: atribui .T. para a variável lBaixa para que indique ao sistema que seja forçado a busca pela baixa de férias;

Expandir
titleClique aqui para expandir a explicação do arquivo exemplo

Na parte superior do ponto de entrada, foram declaradas 12 32 variáveis auxiliares do tipo Static, que irão conter as definições de período inicial e das verbas. Os valores devem ser alterados conforme o período de adiamento de 1/3 de férias e de acordo com o código das verbas que foram cadastradas no cadastro de verbaspara a realização da quitação dos valores postergados:

Bloco de código
themeEmacs
firstline3
linenumberstrue
Static cPIniMP927   :=	"202003"//Variável para definir o período inicial que começou o adiamento de 1/3 de férias
Static cPFimMP927   :=	"202007"//Variável para definir o período final do adiamento de 1/3 de férias
Static cPPgtoFol    :=	"202012"//Variável para definir o período em que ocorre o pagamento em folha de 1/3 adiado
Static cVbUmTFer    :=	"MP1"//Variável para definir o código da verba de base de 1/3 de férias mês
Static cVbUmTFMS    :=	"MP2"//Variável para definir o código da verba de base de 1/3 de férias mês seguinte
Static cVbUmTAbo    :=	"MP5"//Variável para definir o código da verba de base de 1/3 de abono mês
Static cVbUmTAMS    :=	"MP6"//Variável para definir o código da verba de base de 1/3 de abono mês
Static cVbAboMes    :=	"MPX"//Variável para definir o código da verba de base de abono mês
Static cVbAboMS     :=	"MPY"//Variável para definir o código da verba de base de abono mês seguinte
Static cVbUmTFol    :=	"MP9"//Variável para definir o código da verba de 1/3 de férias paga na folha
Static cVbUmTAFol   :=	"MPA"//Variável para definir o código da verba de 1/3 de abono paga na folha
Static cVbAbTFol    :=	"MPZ"//Variável para definir o código da verba de abono paga na folha


No exemplo acima, foi definido que em 03/2020 foi iniciado o adiamento de 1/3 de férias com término em 07/2020 e em 12/2020 será efetuado o pagamento em folha do valor de 1/3 adiado. As verbas MP1 e MP2 foram cadastradas como do tipo base referente ao 1/3 de férias mês e mês seguinte adiado, as verbas MP5 e MP6 foram cadastradas como do tipo base referente ao 1/3 de abono mês e mês seguinte adiado, as verbas MPX e MPY foram cadastradas como do tipo base referente ao abono mês e mês seguinte adiado e são gerados no Cálculo de Férias; já a verba MP9 é a verba de provento que será gerada na folha para o pagamento de 1/3 de férias adiado, a verba MPA é a verba de provento que será gerada na folha para o pagamento de 1/3 de abono adiado e a verba MPZ é a verba de provento que será gerada na folha para o pagamento do abono adiado.



Linha 136: adiciona o código da verba de quitação de 1/3 de férias adiado na folha na variável Private cCodUmTer, para que o sistema efetue a baixa na coluna de 1/3 de férias;

Linha 137: adiciona o código da verba de quitação de 1/3 de abono adiado na folha na variável Private cCodUmTer, para que o sistema efetue a baixa na coluna de 1/3 de férias;

Linha 138: adiciona o código da verba de quitação de 1/3 de abono adiado na folha na variável Private cCodAbono, para que o sistema efetue a baixa na coluna de 1/3 de férias;

Linha 139: adiciona o código da verba de quitação do abono adiado na folha na variável Private cCodAbono, para que o sistema efetue a baixa na coluna de férias;

Expandir
titleClique para expandir explicação do PE GP070P13GP070COD

Linha 136: adiciona o código da verba de quitação de 1/3 de férias adiado na folha na variável Private cCodUmTer, para que o sistema efetue a baixa na coluna de

O ponto de entrada irá efetuar os seguintes procedimentos:

Linha 33: se o cálculo da provisão está entre o período inicial e período de pagamento 1/3 de férias;

Linha 35137: se o período estiver em aberto, efetua busca na tabela SRC para verba adiciona o código da verba de quitação de 1/3 de férias adiado, ou se o período estiver fechado, efetua a busca na tabela SRD. Se encontrar a verba, significa que não é necessário retornar o saldo abono adiado na folha na variável Private cCodUmTer, para que o sistema efetue a baixa na coluna de 1/3 de férias;

Linha 43138: se precisa retornar o saldo adiciona o código da verba de quitação de 1/3 de férias e encontrar cálculo de férias para o funcionário na tabela SRH;

Linha 45: percorre todos os registros da tabela SRH para o funcionário;

Linha 47: se o cálculo de férias iniciou entre o período inicial e período final do adiamento abono adiado na folha na variável Private cCodAbono, para que o sistema efetue a baixa na coluna de 1/3 de férias;

Linha 49: se encontrou na tabela SRR pela verba de base de 1/3 de férias mês;

Linha 51: percorre todos os registros da tabela SRR da verba de base de 1/3 de férias mês para o funcionário;

Linha 52: pega o valor da verba através do campo RR_VALOR;

Linha 53: adiciona o valor da verba encontrada na posição do Array de férias vencidas correspondente ao saldo atual de 1/3 de férias;

Linha 54: adiciona o valor de INSS correspondente a verba encontrada na posição do Array de férias vencidas correspondente ao saldo atual de INSS;

Linha 55: adiciona o valor de FGTS correspondente a verba encontrada na posição do Array de férias vencidas correspondente ao saldo atual de FGTS;

Linha 56: adiciona o valor de PIS correspondente a verba encontrada na posição do Array de férias vencidas correspondente ao saldo atual de PIS;

Linha 61: se encontrou na tabela SRR pela verba de base de 1/3 de férias mês seguinte;

Linha 63: percorre todos os registros da tabela SRR da verba de base de 1/3 de férias mês seguinte para o funcionário;

Linha 64: pega o valor da verba através do campo RR_VALOR;

Linha 65: adiciona o valor da verba encontrada na posição do Array de férias vencidas correspondente ao saldo atual de 1/3 de férias;

Linha 66: adiciona o valor de INSS correspondente a verba encontrada na posição do Array de férias vencidas correspondente ao saldo atual de INSS;

Linha 67: adiciona o valor de FGTS correspondente a verba encontrada na posição do Array de férias vencidas correspondente ao saldo atual de FGTS;

Linha 68: adiciona o valor de PIS correspondente a verba encontrada na posição do Array de férias vencidas correspondente ao saldo atual de PIS;

Linha 73: se encontrou na tabela SRR pela verba de base de 1/3 de abono mês;

Linha 75: percorre todos os registros da tabela SRR da verba de base de 1/3 de abono mês para o funcionário;

Linha 76: pega o valor da verba através do campo RR_VALOR;

Linha 77: adiciona o valor da verba encontrada na posição do Array de férias vencidas correspondente ao saldo atual de 1/3 de férias;

Linha 78: adiciona o valor de INSS correspondente a verba encontrada na posição do Array de férias vencidas correspondente ao saldo atual de INSS;

Linha 79: adiciona o valor de FGTS correspondente a verba encontrada na posição do Array de férias vencidas correspondente ao saldo atual de FGTS;

Linha 80: adiciona o valor de PIS correspondente a verba encontrada na posição do Array de férias vencidas correspondente ao saldo atual de PIS;

Linha 85: se encontrou na tabela SRR pela verba de base de 1/3 de abono mês seguinte;

Linha 87: percorre todos os registros da tabela SRR da verba de base de 1/3 de abono mês seguinte para o funcionário;

Linha 88: pega o valor da verba através do campo RR_VALOR;

Linha 89: adiciona o valor da verba encontrada na posição do Array de férias vencidas correspondente ao saldo atual de 1/3 de férias;

Linha 90: adiciona o valor de INSS correspondente a verba encontrada na posição do Array de férias vencidas correspondente ao saldo atual de INSS;

Linha 91: adiciona o valor de FGTS correspondente a verba encontrada na posição do Array de férias vencidas correspondente ao saldo atual de FGTS;

Linha 92: adiciona o valor de PIS correspondente a verba encontrada na posição do Array de férias vencidas correspondente ao saldo atual de PIS;

Linha 97: se encontrou na tabela SRR pela verba de base de abono mês;

Linha 99: percorre todos os registros da tabela SRR da verba de abono mês para o funcionário;

Linha 100: pega o valor da verba através do campo RR_VALOR;

Linha 101: adiciona o valor da verba encontrada na posição do Array de férias vencidas correspondente ao saldo atual de 1/3 de férias;

Linha 102: adiciona o valor de INSS correspondente a verba encontrada na posição do Array de férias vencidas correspondente ao saldo atual de INSS;

Linha 103: adiciona o valor de FGTS correspondente a verba encontrada na posição do Array de férias vencidas correspondente ao saldo atual de FGTS;

Linha 104: adiciona o valor de PIS correspondente a verba encontrada na posição do Array de férias vencidas correspondente ao saldo atual de PIS;

Linha 109: se encontrou na tabela SRR pela verba de base de abono mês seguinte;

Linha 111: percorre todos os registros da tabela SRR da verba de base de abono mês seguinte para o funcionário;

Linha 112: pega o valor da verba através do campo RR_VALOR;

Linha 113: adiciona o valor da verba encontrada na posição do Array de férias vencidas correspondente ao saldo atual de 1/3 de férias;

Linha 114: adiciona o valor de INSS correspondente a verba encontrada na posição do Array de férias vencidas correspondente ao saldo atual de INSS;

Linha 115: adiciona o valor de FGTS correspondente a verba encontrada na posição do Array de férias vencidas correspondente ao saldo atual de FGTS;

Linha 116: adiciona o valor de PIS correspondente a verba encontrada na posição do Array de férias vencidas correspondente ao saldo atual de PIS;

Bloco de código
themeEmacs
firstline16
linenumberstrue
//Ponto de entrada para alterar o valor provisionado de férias vencidas para retornar o valor de 1/3 para o saldo
User Function GP070P13()

Local aAreaSRC := SRC->( GetArea() )
Local aAreaSRD := SRD->( GetArea() )
Local aAreaSRH := SRH->( GetArea() )
Local aAreaSRR := SRR->( GetArea() )
Local lProvUmT := .T.
Local nValAbo := 0
Local nValUmT := 0

SRC->( dbSetOrder(1) )//RC_FILIAL+RC_MAT+RC_PD+RC_CC+RC_SEMANA+RC_SEQ
SRD->( dbSetOrder(1) )//RD_FILIAL+RD_MAT+RD_DATARQ+RD_PD+RD_SEMANA+RD_SEQ+RD_CC+RD_PROCES
SRH->( dbSetOrder(1) )//RH_FILIAL+RH_MAT+DTOS(RH_DATABAS)+DTOS(RH_DATAINI)
SRR->( dbSetOrder(1) )//RR_FILIAL+RR_MAT+RR_TIPO3+DTOS(RR_DATA)+RR_PD+RR_CC+RR_PROCES

//Se o cálculo da provisão estiver dentro do período do adiamento do 1/3
If cAnoMes >= cPIniMP927 .And. cAnoMes <= cPFimMP927
//Pesquisa na tabela SRC a verba de pagamento do 1/3 adiado
If SRC->( dbSeek(SRA->RA_FILIAL + SRA->RA_MAT + cVbUmTFol) ) .And. SRC->RC_PERIODO == cAnoMes
lProvUmT := .F.
EndIf
//Pesquisa na tabela SRD a verba de pagamento do 1/3 adiado
If SRD->( dbSeek(SRA->RA_FILIAL + SRA->RA_MAT + cAnoMes + cVbUmTFol) )
lProvUmT := .F.
EndIf
//Se não houve pagamento do 1/3 adiado realiza busca na tabela SRH para verificar se o funcionário possui férias calculadas
If lProvUmT .And. SRH->( dbSeek(SRA->RA_FILIAL + SRA->RA_MAT) )
//Pesquisa por todos os registros existentes na tabela SRH para o funcionário
While SRH->( !Eof() ) .And. SRA->RA_FILIAL+SRA->RA_MAT == SRH->RH_FILIAL+SRH->RH_MAT
//Se o cálculo das férias estiver dentro do período do adiamento do 1/3
If cAnoMes >= AnoMes(SRH->RH_DATAINI) .And. AnoMes(SRH->RH_DATAINI) >= cPIniMP927 .And. AnoMes(SRH->RH_DATAINI) <= cPFimMP927
//Pesquisa nas verbas calculadas nas férias do funcionário pela verba de base de 1/3 de férias mês
If SRR->( dbSeek(SRA->RA_FILIAL + SRA->RA_MAT + "F" + dToS(SRH->RH_DATAINI) + cVbUmTFer ) )
//Pesquisa por todos os registros existentes na tabela SRR para o funcionário referente à verba de base de 1/3
While SRR->( !Eof() ) .And. SRA->RA_FILIAL+SRA->RA_MAT+"F"+dToS(SRH->RH_DATAINI)+cVbUmTFer == SRR->RR_FILIAL+SRR->RR_MAT+SRR->RR_TIPO3+dToS(SRR->RR_DATA)+SRR->RR_PD
nValUmT := SRR->RR_VALOR
aFerVenc[_Atual,_1Ter] += nValUmT//1/3 de férias
aFerVenc[_Atual,_INSS] += NoRound(nValUmT * (nPercEmp+nPercTer+nPercAcTrab))//INSS
aFerVenc[_Atual,_FGTS] += NoRound(nValUmT * nPercFgts)//FGTS
aFerVenc[_Atual,_PIS] += NoRound(nValUmT * nPercPis)//PIS
SRR->( dbSkip() )
End
EndIf
//Pesquisa nas verbas calculadas nas férias do funcionário pela verba de base de 1/3 de férias mês seguinte
If SRR->( dbSeek(SRA->RA_FILIAL + SRA->RA_MAT + "F" + dToS(SRH->RH_DATAINI) + cVbUmTFMS ) )
//Pesquisa por todos os registros existentes na tabela SRR para o funcionário referente à verba de base de 1/3
While SRR->( !Eof() ) .And. SRA->RA_FILIAL+SRA->RA_MAT+"F"+dToS(SRH->RH_DATAINI)+cVbUmTFMS == SRR->RR_FILIAL+SRR->RR_MAT+SRR->RR_TIPO3+dToS(SRR->RR_DATA)+SRR->RR_PD
nValUmT := SRR->RR_VALOR
aFerVenc[_Atual,_1Ter] += nValUmT//1/3 de férias
aFerVenc[_Atual,_INSS] += NoRound(nValUmT * (nPercEmp+nPercTer+nPercAcTrab))//INSS
aFerVenc[_Atual,_FGTS] += NoRound(nValUmT * nPercFgts)//FGTS
aFerVenc[_Atual,_PIS] += NoRound(nValUmT * nPercPis)//PIS
SRR->( dbSkip() )
End
EndIf
//Pesquisa nas verbas calculadas nas férias do funcionário pela verba de base de 1/3 de abono mês
If SRR->( dbSeek(SRA->RA_FILIAL + SRA->RA_MAT + "F" + dToS(SRH->RH_DATAINI) + cVbUmTAbo ) )
//Pesquisa por todos os registros existentes na tabela SRR para o funcionário referente à verba de base de 1/3
While SRR->( !Eof() ) .And. SRA->RA_FILIAL+SRA->RA_MAT+"F"+dToS(SRH->RH_DATAINI)+cVbUmTAbo == SRR->RR_FILIAL+SRR->RR_MAT+SRR->RR_TIPO3+dToS(SRR->RR_DATA)+SRR->RR_PD
nValUmT := SRR->RR_VALOR
aFerVenc[_Atual,_1Ter] += nValUmT//1/3 de abono
aFerVenc[_Atual,_INSS] += NoRound(nValUmT * (nPercEmp+nPercTer+nPercAcTrab))//INSS
aFerVenc[_Atual,_FGTS] += NoRound(nValUmT * nPercFgts)//FGTS
aFerVenc[_Atual,_PIS] += NoRound(nValUmT * nPercPis)//PIS
SRR->( dbSkip() )
End
EndIf
//Pesquisa nas verbas calculadas nas férias do funcionário pela verba de base de 1/3 de abono mês seguinte
If SRR->( dbSeek(SRA->RA_FILIAL + SRA->RA_MAT + "F" + dToS(SRH->RH_DATAINI) + cVbUmTAMS ) )
//Pesquisa por todos os registros existentes na tabela SRR para o funcionário referente à verba de base de 1/3
While SRR->( !Eof() ) .And. SRA->RA_FILIAL+SRA->RA_MAT+"F"+dToS(SRH->RH_DATAINI)+cVbUmTAMS == SRR->RR_FILIAL+SRR->RR_MAT+SRR->RR_TIPO3+dToS(SRR->RR_DATA)+SRR->RR_PD
nValUmT := SRR->RR_VALOR
aFerVenc[_Atual,_1Ter] += nValUmT//1/3 de abono
aFerVenc[_Atual,_INSS] += NoRound(nValUmT * (nPercEmp+nPercTer+nPercAcTrab))//INSS
aFerVenc[_Atual,_FGTS] += NoRound(nValUmT * nPercFgts)//FGTS
aFerVenc[_Atual,_PIS] += NoRound(nValUmT * nPercPis)//PIS
SRR->( dbSkip() )
End
EndIf
//Pesquisa nas verbas calculadas nas férias do funcionário pela verba de base de abono mês
If SRR->( dbSeek(SRA->RA_FILIAL + SRA->RA_MAT + "F" + dToS(SRH->RH_DATAINI) + cVbAboMes ) )
//Pesquisa por todos os registros existentes na tabela SRR para o funcionário referente à verba de base de 1/3
While SRR->( !Eof() ) .And. SRA->RA_FILIAL+SRA->RA_MAT+"F"+dToS(SRH->RH_DATAINI)+cVbAboMes == SRR->RR_FILIAL+SRR->RR_MAT+SRR->RR_TIPO3+dToS(SRR->RR_DATA)+SRR->RR_PD
nValAbo := SRR->RR_VALOR
aFerVenc[_Atual,_Prov] += nValAbo//Abono
aFerVenc[_Atual,_INSS] += NoRound(nValAbo * (nPercEmp+nPercTer+nPercAcTrab))//INSS
aFerVenc[_Atual,_FGTS] += NoRound(nValAbo * nPercFgts)//FGTS
aFerVenc[_Atual,_PIS] += NoRound(nValAbo * nPercPis)//PIS
SRR->( dbSkip() )
End
EndIf
//Pesquisa nas verbas calculadas nas férias do funcionário pela verba de base de abono mês seguinte
If SRR->( dbSeek(SRA->RA_FILIAL + SRA->RA_MAT + "F" + dToS(SRH->RH_DATAINI) + cVbAboMS ) )
//Pesquisa por todos os registros existentes na tabela SRR para o funcionário referente à verba de base de 1/3
While SRR->( !Eof() ) .And. SRA->RA_FILIAL+SRA->RA_MAT+"F"+dToS(SRH->RH_DATAINI)+cVbAboMS == SRR->RR_FILIAL+SRR->RR_MAT+SRR->RR_TIPO3+dToS(SRR->RR_DATA)+SRR->RR_PD
nValAbo := SRR->RR_VALOR
aFerVenc[_Atual,_Prov] += nValAbo//Abono
aFerVenc[_Atual,_INSS] += NoRound(nValAbo * (nPercEmp+nPercTer+nPercAcTrab))//INSS
aFerVenc[_Atual,_FGTS] += NoRound(nValAbo * nPercFgts)//FGTS
aFerVenc[_Atual,_PIS] += NoRound(nValAbo * nPercPis)//PIS
SRR->( dbSkip() )
End
EndIf
EndIf
SRH->( dbSkip() )
End
EndIf
EndIf

RestArea( aAreaSRC )
RestArea( aAreaSRD )
RestArea( aAreaSRH )
RestArea( aAreaSRR )

Return
Expandir
titleClique para expandir explicação do PE GP070COD
Bloco de código
themeEmacs
firstline133
linenumberstrue
//Ponto de entrada para adicionar uma verba específica nas variáveis que irão controlar a divisão da baixa de férias
User Function GP070COD()

cCodUmTer   += cVbUmTFol+"*"
cCodAbono   += cVbUmTAFol+"*"
cCodAbono   += cVbAbTFol+"*"

Return
Expandir
titleClique para expandir explicação do PE GP070FBX
Bloco de código
themeEmacs
firstline143
linenumberstrue
//Ponto de entrada para forçar a busca pela baixa de férias, mesmo em mês que o funcionário não está de férias
User Function GP070FBX()

Local lBaixa := .F.

//Se o cálculo da provisão estiver no período de pagamento do 1/3 adiado em folha, força a verificação da baixa
If cAnoMes == cPPgtoFol
    lBaixa := .T.
EndIf

Return lBaixa
Dica
titleDica

139: adiciona o código da verba de quitação do abono adiado na folha na variável Private cCodAbono, para que o sistema efetue a baixa na coluna de férias;


Bloco de código
themeEmacs
firstline133
linenumberstrue
//Ponto de entrada para adicionar uma verba específica nas variáveis que irão controlar a divisão da baixa de férias
User Function GP070COD()

cCodUmTer   += cVbUmTFol+"*"
cCodAbono   += cVbUmTAFol+"*"
cCodAbono   += cVbAbTFol+"*"

Return
O tratamento para retornar o 1/3 de férias para o saldo de provisão do funcionário continuará a ser realizada conforme documentação disponível no endereço: 8581039 DRHPAG-35723 DT Cálculo e baixa de 1/3 de férias na provisão quando o 1/3 não foi calculado nas férias devido MP 927.



04. DEMAIS INFORMAÇÕES

DRHPAG-46013 DT MP 1.046/2021 - Postergação do pagamento do 1/3 de férias e/ou abono pecuniário.

...