01. DADOS GERAIS
Linha de Produto: | Microsiga Protheus |
---|---|
Segmento: | RH |
Módulo: | SIGAGPE |
Função: | GPEM070.PRX |
Ticket: | |
Issue: | DRHPAG-23575 |
Pacote: | 12.1.17: |
Includes: |
02. SITUAÇÃO/REQUISITO
Disponibilizado o ponto de entrada GP090F13 para alterar os valores provisionados de 13 e/ou 14 salário.
03. SOLUÇÃO
Abaixo um exemplo de utilização do PE.
#INCLUDE "PROTHEUS.CH"
#INCLUDE "rwmake.ch"
#INCLUDE "TOPCONN.CH"
/*==================================================================================================
Ponto de entrada na provisao de 13º salario para alterar os valores de 14º salario.
No caso do cliente TestePE o 14º Salario nao é calculado as medias, entao devo refazer os valores
@author SeuNome.
@since 13/02/2019
@param
@version P12
@return
@project
@client TestePE
@variaveis a14salar, nv_valor, nv_adic
//================================================================================================== */
User Function GP090F13()
Local aArea := GetArea()
Local nxMes14 := 0
If n14Salario > 0
// Caso seja rescisao ou provisao mes
If lProvResc .And. TPR->PR_TIPMOVI == _Demitido
DbSelectArea("SRR")
DbSetOrder(1)
If DbSeek(TPR->PR_FILIAL + TPR->PR_MAT + 'R' + Dtos(SRG->RG_DTGERAR) + aCodFol[114,1])//13o. na Indenizacao Rescisao
While SRR->( !EoF() ) .And. SRR->RR_FILIAL+SRR->RR_MAT+SRR->RR_TIPO3+dToS(SRR->RR_DATA)+SRR->RR_PD == TPR->PR_FILIAL+TPR->PR_MAT+'R'+Dtos(SRG->RG_DTGERAR)+aCodFol[114,1]
nxMes14 += Round(((nSalMes * Int(SRR->RR_HORAS)) / 12) , 2)
//Em casos de lançamento manual da verba id 114, busca o valor lançado.
If nxMes14 == 0 .And. SRR->RR_TIPO2 == "I"
nxMes14 += SRR->RR_VALOR
EndIf
nV_FerRes += SRR->RR_VALOR
SRR->( dbSkip() )
EndDo
EndIf
If DbSeek(TPR->PR_FILIAL + TPR->PR_MAT + 'R' + Dtos(SRG->RG_DTGERAR) + aCodFol[1446,1])//13º na Indenizacao Rescisao Maternidade
While SRR->( !EoF() ) .And. SRR->RR_FILIAL+SRR->RR_MAT+SRR->RR_TIPO3+dToS(SRR->RR_DATA)+SRR->RR_PD == TPR->PR_FILIAL+TPR->PR_MAT+'R'+Dtos(SRG->RG_DTGERAR)+aCodFol[1446,1]
nxMes14 += Round(((nSalMes * Int(SRR->RR_HORAS)) / 12) , 2)
//Em casos de lançamento manual da verba id 1446, busca o valor lançado.
If nxMes14 == 0 .And. SRR->RR_TIPO2 == "I"
nxMes14 += SRR->RR_VALOR
EndIf
nV_FerRes += SRR->RR_VALOR
SRR->( dbSkip() )
EndDo
EndIf
Else
nxMes14 := Round(((nSalMes * nTotMes) / 12) , 2)
EndIf
If !(lBx13Pgt .And. Month(dDataRef) == 12 .and. !lDemitido)
a14Salar[_Atual,_Avos] := 0
a14Salar[_Atual,_Prov] := nxMes14
a14Salar[_Atual,_Adic] := 0//(a13Salar[_Atual,_Adic] * n14Salario)
a14Salar[_Atual,_1Par] := 0//(a13Salar[_Atual,_1Par] * n14Salario)
a14Salar[_Atual,_INSS] := 0//(a13Salar[_Atual,_INSS] * n14Salario)
a14Salar[_Atual,_FGTS] := 0//(a13Salar[_Atual,_FGTS] * n14Salario)
a14Salar[_Atual,_PIS] := 0//(a13Salar[_Atual,_PIS] * n14Salario)
Endif
Endif
Para saber mais sobre as baixas do 14º salário, clique aqui → http://tdn.totvs.com/x/VwwrGw