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 |
---|
theme | Emacs |
---|
firstline | 16 |
---|
linenumbers | true |
---|
| //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
|
|