Árvore de páginas


Ponto de Entrada GPM610V - Dedução 13º Salário Licença Maternidade

Características do Requisito

Linha de Produto:

Microsiga Protheus®.

Segmento:

Serviços.

Módulo:

SIGAGPE.

Rotina:

Rotina

Nome Técnico

GPEM610.

Geração SEFIP

Chamados Relacionados

DRHPAG-16191

Tabelas Utilizadas:

SRA - Funcionários

Ponto de Entrada

Descrição:

Este Ponto de Entrada tem como objetivo retornar o valor de dedução do 13º salário de licença maternidade que será utilizado no registro tipo 12 da SEFIP.

O valor retornado pelo ponto de entrada será utilizado no registro 12.

Localização:

SIGAGPE - Miscelanea - FGTS - Geração SEFIP

Eventos:

Geração SEFIP

Programa Fonte:

GPEM610.prx

Função:

GPEM610

Retorno:

Valor de dedução do 13º salário licença maternidade

 

Exemplo:

GP100OK
USER FUNCTION GPM610V()

Local nDeduc	:= ""
Local aStru		:= {}
Local cQuery	:= ""
Local cTmp		:= GetNextAlias()


				aStru := SRC->(dbStruct())
			
				cQuery := "SELECT RC_VALOR  "
				cQuery += " FROM "+ RetSqlName("SRC")+ " RC "
				cQuery += " WHERE RC_FILIAL = '"+ SRA->RA_FILIAL  + "'"
				cQuery += " AND RC_MAT = '"+ SRA->RA_MAT  + "'"
				cQuery += " AND RC_PERIODO	= '" + cPeriodo + "'"
				If nTipo == 1 //Folha + Autonomo
					cQuery += " AND RC_ROTEIR IN (" + "'" + fGetCalcRot("1") + "','" + fGetCalcRot("9") + "'" + ")"
				Else //13º 
					cQuery += " AND RC_ROTEIR IN (" + "'" + fGetCalcRot("1") + "','" + fGetCalcRot("9") + "','"  + fGetCalcRot("6") + "'" + ")"
				EndIf
				cQuery += " AND RC.D_E_L_E_T_ = ' ' "
				cQuery += " AND RC.RC_PD = '"+aCodFol[670,1]+"'"        
				
				cQuery += " UNION ALL "
				
				cQuery += " SELECT RD_VALOR"
				cQuery += " FROM "+RetSqlName("SRD")+" RD "
				cQuery += " WHERE RD_FILIAL = '"+ SRA->RA_FILIAL +"'"
				cQuery += " AND RD_MAT = '" +SRA->RA_MAT+"'"
				cQuery += " AND RD_PERIODO	= '" + cPeriodo + "'"
				cQuery += " AND RD.D_E_L_E_T_ = ' ' "
				cQuery += " AND RD.RD_PD = '"+aCodFol[670,1]+"'"        
				If nTipo == 1 //Folha + Autonomo
					cQuery += " AND RD_ROTEIR IN (" + "'" + fGetCalcRot("1") + "','" + fGetCalcRot("9") + "'" + ")"
				Else //13º 
					cQuery += " AND RD_ROTEIR IN (" + "'" + fGetCalcRot("1") + "','" + fGetCalcRot("9") + "','"  + fGetCalcRot("6") + "'" + ")"
				EndIf
				cQuery 		:= ChangeQuery(cQuery)
				
				dbUseArea(.T.,"TOPCONN",TcGenQry(,,cQuery),cTmp,.T.,.T.)
				
				For nX := 1 To Len(aStru)
					If ( aStru[nX][2] <> "C" )
						TcSetField(cTmp,aStru[nX][1],aStru[nX][2],aStru[nX][3],aStru[nX][4])
					EndIf
				Next nX	


				While !(cTmp)->(Eof())
					nDeduc += (cTmp)->RC_VALOR
					(cTmp)->(dbSkip())
				EndDo
				(cTmp)->(dbCloseArea())

Return ( nDeduc )