Árvore de páginas

01. DADOS GERAIS

Linha de Produto:Microsiga Protheus®
Segmento:Backoffice
Módulo:Financeiro
Função:

FA473Marca - Conciliação Bancária

Requisito/Story/Issue (informe o requisito relacionado) :DFINTES-14434


02. DESCRIÇÃO

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

05. EXEMPLO DE UTILIZAÇÃO

FA473003
#INCLUDE "PROTHEUS.CH"
#INCLUDE "FINA473A.CH" 
#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     Nil
/*/
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 Lançamento de Credito x Lançamento Dé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