Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Ponto de Entrada PNM08001

...

para tratamento de saldos descartados.

 

...

Descrição:

Este Ponto de Entrada tem como objetivo o tratamento de saldos descartados.

Necessidade original: ao obter um saldo negativo, quando solicitado crédito, deve-se dar baixa nos lançamentos que compuseram o saldo.

Eventos:

Fechamento do Banco de Horas.

Este ponto de entrada é chamado Chamado após o cálculo do saldo absoluto dos valores da SPI, de acordo com o tipo de fechamento e saldo diferente de zero (Fechamento por crédito e saldo negativo OU fechamento por débito e saldo positivo).

Consiste Saldo Escolhido X Saldo Efetivo (A consistência do Tipo de Fechamento não se aplica a Fechamento Por Período com limitação de desconto ao total de proventos visto que o saldo será reajustado SEMPRE para ZERO ou Positivo).

Programa Fonte:

PONM080.prx

Função:

PNM080Processa

Parâmetros:

Estrutura da variável PARAMIXB:

PosiçãoNomeTipoDescrição
PARAMIXB[1]cEveProvCEvento de Provento do Banco de Horas
PARAMIXB[2]cEveDescCEvento de Desconto do Banco de Horas
PARAMIXB[3]aSPIAValores do Banco de Horas
PARAMIXB[4]aDelSPIARegistros a serem Baixados
PARAMIXB[5]dDtPagtoDData do Pagamento para Baixa
PARAMIXB[6]nSaldoNValor absoluto do Saldo
PARAMIXB[7]nTpFechNTipo de Fechamento (1=Crédito; 2=Débito; 3=Resultado.)

Retorno:

 

...

...

User function GP090OK() 
Local aCols	:= PARAMIXB[1] 
Local lOk	:= .F.  
 
Alert ('Passou pelo ponto GP090OK')    //Neste ponto sera exibido o alert e interrompida a adicao/exclusao/alteracao, pois o lOk esta falso
 
Return(lOk)

(Nil)

 

Exemplo:

Bloco de código
titlePE PNM08001
collapsetrue
User Function PNM08001()

MsgInfo("Evento Provento: "+PARAMIXB[1]+CRLF+"Evento Desconto: "+PARAMIXB[2]+CRLF+"Data: "+ DTOC(PARAMIXB[5]) +CRLF+"Saldo: "+PARAMIXB[6]+CRLF+"Tp.Fech: "+PARAMIXB[7],"PE PNM08001")

Return(Nil

Exemplos:

 

Bloco de código
themeEclipse
titleGP090OK - P12
USER FUNCTION GP090OK()

Local lRet	:= .T.
Local nX	:= 0
Local nY	:= 0
Local nPosDeleted   := GdFieldPos( "GDDELETED" )
Local nPosValor		:= GdFieldPos("RGB_VALOR")
Local nPosHorasC	:= GdFieldPos("RGB_HORAS")
Local nPosDtRef 	:= GdFieldPos("RGB_DTREF")

If Len(aColsAnt) > 0
	For nX := 1 to Len(aCols)
		nY := aScan(aColsAnt, { |x| x[2] == aCols[nx][2] })
		If aCols[nx][2] == "013" .AND. aCols[nx][nPosDeleted] == .T. //se verba esta como deletada
			MsgAlert("Verba não pode ser deletada - GP090OK","ATENCAO")
			aCols[nx][nPosDeleted] := .F.
			lRet := .F.
		ElseIf nY > 0 .AND. (aCols[nx][nPosValor] != aColsAnt[ny][nPosValor] .OR. aCols[nx][nPosDtRef] != aColsAnt[ny][nPosDtRef])
			aCols[nx][nPosValor] := aColsAnt[ny][nPosValor]
			aCols[nx][nPosDtRef] := aColsAnt[ny][nPosDtRef]	
			MsgAlert("Verba não pode ser alterada - GP090OK","ATENCAO")
		EndIf
	Next nX
EndIf

Return (lRet)