Árvore de páginas

Tempo aproximado para leitura: 05 min

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