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)