DIRF Informe de Rendimentos Descrição Outros

Para gerar a descrição  Salario família no campo outros  no informe de rendimento foi criado um ponto de entrada.
Segue a baixo:

#INCLUDE "PROTHEUS.CH"

User Function GPE550ICD()
    Local _aRet := aClone( ParamIxb[1] )
    Local _aOut := {}
    Local _cAno := cAno
    Local _cFil := SRA->RA_FILIAL
    Local _cMat := SRA->RA_MAT
    Local _aArea:= GetArea()
    Local _aASRD:= SRD->(GetArea())
    Local _aASRV:= SRV->(GetArea())
    Local _cPD  := '054'
    Local _cDtini:= _cAno+'01'
    Local _cDtfim:= _cAno+'12'
    Local _nValor:= 0

    DbSelectArea("SRD")
    DbSetOrder(1)//RD_FILIAL+RD_MAT+RD_DATARQ+RD_PD+RD_SEMANA+RD_SEQ+RD_CC+RD_PROCES                                                                                              
    If DbSeek(_cFil+_cMat+_cAno)
        While !Eof() .And. SRD->RD_FILIAL == _cFil ;
                     .And. SRD->RD_MAT == _cMat ;
                     .And. SRD->RD_DATARQ >= _cDtini ;
                     .And. SRD->RD_DATARQ <= _cDtfim
           
            If SRD->RD_PD == _cPD
                _nValor += SRD->RD_VALOR
            EndIf

            DbSelectArea("SRD")
            DbSkip()
        End
    EndIf

    If _nValor > 0
        DbSelectArea("SRV")
        DbSetOrder(1)//RV_FILIAL+RV_COD                                                                                                                                                
        If DbSeek(xFilial("SRV")+_cPD)
            //Para outros o array abenef receberá:
            AaDd(_aOut,SRV->RV_DESC) //1 - Descrição
            AaDd(_aOut,"") //2 - CPF
            AaDd(_aOut,"") //3 - Verba Adiantamento  
            AaDd(_aOut,"") //4 - Verba Folha
            AaDd(_aOut,"") //5 - Verba Férias
            AaDd(_aOut,"") //6 - Verba 13º 1º Parcela
            AaDd(_aOut,"") //7 - Verba 13º 2º Parcela
            AaDd(_aOut,"") //8 - Verba PLR
            AaDd(_aOut, 0) //9 - Valor
            AaDd(_aOut,_cPD) //10 - Verba    
            AaDd(_aOut,"I") //11 - Tipo Rendimento
            AaDd(_aOut,"") //12 - Verba Pagamento dif. Férias
            AaDd(_aOut,"") //13 - Referente a 13o
            AaDd(_aOut,"") //14 - Verba de dif. de dissidio para PLR
            AaDd(_aOut,"") //15 - Verba Pagamento Beneficiário Folha
            AaDd(_aOut,SRV->RV_DESC) //16 - Não utilizado
        EndIf
    EndIf

    If Len(_aOut) > 0
        AaDd(_aRet,_aOut)
    Endif
   
    RestArea(_aASRV)
    RestArea(_aASRD)
    RestArea(_aArea)
Return(_aRet)

Detalhes do artigo

ID do Artigo:
9
Classificação :