Á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

Nil

Nil

Nil

...

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