Árvore de páginas

Versões comparadas

Chave

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

...

Ao utilizar o ponto de entrada FA473003 podemos criar uma nova lógica para a conciliação manual. Neste exemplo disponibilizamos a janela de seleção para o item a ser conciliado. Caso seja necessário, podemos incluir um campo de seleção nos pontos de entrada F473VIEW e FA473MOD e inserir uma nova lógica para efetivação da conciliação neste PE.

OBS. Caso o  ponto de entrada esteja compilado o sistema não irá mais respeitar o processo padrão e sim a lógica aplicada ao ponto de entrada.

03. PARÂMETROS

        oModelDet - Modelo dos itens da conciliação bancária (passado por referência).


04. RETORNO

Nome

Tipo

Descrição

oModelDet Nil

ONil

NilModelo dos itens da conciliação bancária.

05. EXEMPLO DE UTILIZAÇÃO

Bloco de código
languagevb
themeMidnight
firstline1
titleFA473003
linenumberstrue
#INCLUDE "PROTHEUS.CH"
#INCLUDE "FINA473A.CH" 
#include#INCLUDE "fileio.ch"
#INCLUDE "FWMVCDEF.CH"


/*/{Protheus.doc} FA473001
Ponto de entrada para executar operações no final da rotina F473Concil após o controle de transação.
 
oModelDet - Modelo dos itens da conciliação bancária (passado por referência).
 
@type       User Function
@author     TOTVS
@since      18/11/2020
@return     @aItConcNil
/*/

User Function FA473003

	Local oModelDet   		:= Paramixb[1]
	Local lRet			:= .T.
	LOCAL nSequen 		:= 0
	LOCAL lIsBanco 		:= .F.
	LOCAL lEfetiva 		:= .F.

	Local nTamDet		:= oModelDet:Length()
	Local nLinOri		:= oModelDet:GetLine()
	Local nLinhaNov		:= 0
	Local aSaveLines	:= FWSaveRows()


	Local nSeqOri		:= 0
	Local cDCOri		:= ""
	Local nValOri		:= 0
	Local dDataOri		:= cTod("")
	Local cNumOri		:= ""
	Local cAgeOri		:= ""
	Local cCtaOri		:= ""
	Local cHistOri		:= ""
	Local nRecnoSE5		:= 0

	Local nValDes		:= 0
	Local dDataDes		:= cTod("")
	Local cNumDes		:= ""
	Local cAgeDes		:= ""
	Local cCtaDes		:= ""
	Local cHistDes		:= ""
	Local aArea			:= GetArea()
	Local aAreaSE5		:= SE5->(GetArea())
	Local nSeqDes		:= 0

	Local cCor			:= ""
	Local lcanok		:= .F.
	Local lf473			:= .T.	

		DEFINE MSDIALOG oDlg1 FROM  69,70 TO 160,331 TITLE "Crie sua logica aqui" PIXEL 
	
		@ 0, 2 TO 22, 165 OF oDlg1 PIXEL
		@ 7, 98 MSGET nSequen Picture "9999" VALID (nSequen <= nTamDet) .and. (nSequen > 0) SIZE 20, 10 OF oDlg1 PIXEL
		@ 8, 08 SAY  STR0046  SIZE 90, 7 OF oDlg1 PIXEL //"Sequencia a Reconciliar"
		DEFINE SBUTTON FROM 29, 71 TYPE 1 ENABLE ACTION  (nOpca1:=1,If((nSequen <= nTamDet ) .and. (nSequen > 0) ,oDLg1:End() , nOpca1:=0 ) )  OF oDlg1
		DEFINE SBUTTON FROM 29, 99 TYPE 2 ENABLE ACTION (oDlg1:End()) OF oDlg1
	
		ACTIVATE MSDIALOG oDlg1 CENTERED
	
		If nOpca1 == 1
	
			//Verifica se a linha clicada ‚ Mov. Banco ou Sistema	
			If !Empty(oModelDet:GetValue("IG_VLRMOV")) .And. Empty(oModelDet:GetValue("IG_VLREXT"))
				lIsBanco := .T.
			Endif
			
			nSeqOri := Val(oModelDet:GetValue("SEQDIG") )
			cDCOri	:= oModelDet:GetValue("IG_CARTER")
			nValOri	:= IIF(lIsBanco, oModelDet:GetValue("IG_VLRMOV") , oModelDet:GetValue("IG_VLREXT") )
			dDataOri := IIF(lIsBanco, oModelDet:GetValue("IG_DTMOVI") , oModelDet:GetValue("IG_DTEXTR") )
			cNumOri	:= IIF(lIsBanco, oModelDet:GetValue("IG_DOCMOV"), oModelDet:GetValue("IG_DOCEXT"))
			cAgeOri	:= IIF(lIsBanco, oModelDet:GetValue("IG_AGEMOV") , oModelDet:GetValue("IG_AGEEXT"))
			cCtaOri	:= IIF(lIsBanco, oModelDet:GetValue("IG_CONMOV") , oModelDet:GetValue("IG_CONEXT"))
			cHistOri:= IIF(lIsBanco, oModelDet:GetValue("IG_HISMOV") , oModelDet:GetValue("IG_HISTEXT"))
			nRecnoSE5	:= oModelDet:GetValue("RECSE5")
			oModelDet:GoLine(nSequen)
			
			//Verifica tentativa de reconciliar Banco x Banco ou SE5 x SE5
			//ou LancamentoLançamento de Credito x LancamentoLançamento D‚bitoDébito ou vice-versa 
			
			If ( 	( !Empty(oModelDet:GetValue("IG_VLRMOV")) .And.  Empty(oModelDet:GetValue("IG_VLREXT"))  .and. lIsBanco) .or. ;
					(  Empty(oModelDet:GetValue("IG_VLRMOV")) .And. !Empty(oModelDet:GetValue("IG_VLREXT")) .and. !lIsBanco) .or. ;
					oModelDet:GetValue("IG_CARTER") != cDCOri )
				Help(" ",1,"NORECONC")
				lRet := .F.
			Endif
			
			If lRet .And. (IIf(lIsBanco , oModelDet:GetValue("IG_VLREXT") != nValOri , oModelDet:GetValue("IG_VLRMOV") != nValOri))
				Help(" ",1,"NORECONC")
				lRet := .F.
			Endif
			
			//Movimento Extrato
			If lRet .And.  !lIsBanco
			
				nValDes		:= oModelDet:GetValue("IG_VLRMOV")
				dDataDes 		:= oModelDet:GetValue("IG_DTMOVI")
				cNumDes		:= oModelDet:GetValue("IG_DOCMOV")
				cAgeDes		:= oModelDet:GetValue("IG_AGEMOV")
				cCtaDes		:= oModelDet:GetValue("IG_CONMOV")
				cHistDes		:= oModelDet:GetValue("IG_HISMOV")
				nRecnoSE5		:= oModelDet:GetValue("RECSE5")
				
				oModelDet:DeleteLine()
				oModelDet:GoLine(nLinOri)
				
				oModelDet:LoadValue("IG_VLRMOV", nValDes)
				oModelDet:LoadValue("IG_DTMOVI", dDataDes)
				oModelDet:LoadValue("IG_DOCMOV", cNumDes)
				oModelDet:LoadValue("IG_AGEMOV", cAgeDes)
				oModelDet:LoadValue("IG_CONMOV", cCtaDes)
				oModelDet:LoadValue("IG_STATUS", "3")
				cCor := F473COR("3")
				oModelDet:LoadValue("COR", cCor)
				oModelDet:LoadValue("RECSE5", nRecnoSE5)
				oModelDet:LoadValue("IG_HISMOV", cHistDes)
				oModelDet:LoadValue("DESCONC", "")
			ElseIf lRet
			
				oModelDet:LoadValue("IG_VLRMOV", nValOri)
				oModelDet:LoadValue("IG_DTMOVI", dDataOri)
				oModelDet:LoadValue("IG_DOCMOV", cNumOri)
				oModelDet:LoadValue("IG_AGEMOV", cAgeOri)
				oModelDet:LoadValue("IG_CONMOV", cCtaOri)
				cCor := F473COR("3")
				oModelDet:LoadValue("IG_STATUS", "3")
				oModelDet:LoadValue("COR", cCor)
				oModelDet:LoadValue("RECSE5", nRecnoSE5)
				oModelDet:LoadValue("IG_HISMOV", cHistOri)
				oModelDet:LoadValue("DESCONC", "")
				
				oModelDet:GoLine(nLinOri)
				oModelDet:DeleteLine()
		
			Endif
		Endif
		

Return