Árvore de páginas

GFE09502 – Integrar Fatura de Frete no Financeiro com data do Fiscal

Características do Requisito

Linha de Produto:

Protheus

Segmento:

Distribuição e Logística

Módulo:

SIGAGFE

Ponto de Entrada - GFE09502

Descrição:

Integrar as Faturas de Frete no Financeiro utilizando a data de integração no Fiscal dos Documentos de Frete.

Localização:

Na contabilização da Fatura, quando for integrar com o Financeiro

Programa Fonte:

GFEA095 - Geração de Movimentos Contábeis.

Parâmetros:

NomeTipoDescriçãoObrigatório
PARAMIXB[1]CaractereFilial GW6Sim
PARAMIXB[2]CaractereEmissor FaturaSim
PARAMIXB[3]CaractereSérie FaturaSim
PARAMIXB[4]CaractereNumero FaturaSim
PARAMIXB[5]DateData EmissãoSim

Retorno:

NomeTipoDescriçãoObrigatório
aRetArray

1-Data para integração, Date

2-Se pegou a data correto, lógico

3-Mensagem de erro, Caractere

Sim

 

Exemplo: GFE09502
#INCLUDE "PROTHEUS.CH"

User Function GFE09502()
	Local cGW6_FILIAL := PARAMIXB[1]
	Local cGW6_EMIFAT := PARAMIXB[2]
	Local cGW6_SERFAT := PARAMIXB[3]
	Local cGW6_NRFAT := PARAMIXB[4]
	Local cGW6_DTEMIS := PARAMIXB[5]
	Local aRet := {.T.,'',.F.,'Parametro não ativo',}
	
	conout("GFE09502")
	
	aRet := IntFinCFis(cGW6_FILIAL, cGW6_EMIFAT, cGW6_SERFAT, cGW6_NRFAT, cGW6_DTEMIS,aRet)
	
	conout("fim GFE09502")
Return aRet

Static Function IntFinCFis(cGW6_FILIAL,cGW6_EMIFAT,cGW6_SERFAT,cGW6_NRFAT,cGW6_DTEMIS,aRet)
	Local cQuery
	Local cAliasGW3
	Local cMV_XDTOF := GetMv("MV_XDTOF")
	aRet[2] := STOD('00000000')
	
	conout(cvaltochar(cMV_XDTOF) + " / " + cGW6_NRFAT )

	If cMV_XDTOF == 1
		cQuery := 'SELECT DISTINCT GW3.GW3_DTFIS, GW3.GW3_DTREC, GW3.GW3_NRDF,'
		cQuery += ' GV5.GV5_SENTID FROM '+RetSqlName('GW3')+" GW3"
		cQuery += ' INNER JOIN '+RetSqlName('GW4')+" GW4"
		cQuery += ' ON  GW4.GW4_FILIAL = GW3.GW3_FILIAL
		cQuery += ' AND GW4.GW4_EMISDF = GW3.GW3_EMISDF
		cQuery += ' AND GW4.GW4_CDESP  = GW3.GW3_CDESP
		cQuery += ' AND GW4.GW4_SERDF  = GW3.GW3_SERDF
		cQuery += ' AND GW4.GW4_NRDF   = GW3.GW3_NRDF
		cQuery += ' AND GW4.GW4_DTEMIS = GW3.GW3_DTEMIS
		cQuery += " AND GW4.D_E_L_E_T_ = ' '"
		cQuery += ' LEFT JOIN '+RetSqlName('GW1')+" GW1"
		cQuery += ' ON  GW1.GW1_FILIAL = GW4.GW4_FILIAL
		cQuery += ' AND GW1.GW1_CDTPDC = GW4.GW4_TPDC
		cQuery += ' AND GW1.GW1_EMISDC = GW4.GW4_EMISDC
		cQuery += ' AND GW1.GW1_SERDC  = GW4.GW4_SERDC
		cQuery += ' AND GW1.GW1_NRDC   = GW4.GW4_NRDC
		cQuery += " AND GW1.D_E_L_E_T_ = ' '"
		cQuery += ' INNER JOIN '+RetSqlName('GV5')+" GV5"
		cQuery += ' ON    GV5.GV5_CDTPDC = GW1.GW1_CDTPDC'
		cQuery += " WHERE GW3.GW3_FILFAT = '"+cGW6_FILIAL+"'"
		cQuery += " AND   GW3.GW3_EMIFAT = '"+cGW6_EMIFAT +"'"
		cQuery += " AND   GW3.GW3_SERFAT = '"+cGW6_SERFAT+"'"
		cQuery += " AND   GW3.GW3_NRFAT  = '"+cGW6_NRFAT+"'"
		cQuery += " AND   GW3.GW3_DTEMFA = '"+DTOS(cGW6_DTEMIS)+"'"
		cQuery += " AND   GW3.D_E_L_E_T_ = ''"
		cQuery := ChangeQuery(cQuery)
		cAliasGW3 := GetNextAlias()
		DbUseArea(.T.,'TOPCONN',TcGenQry(,,cQuery),cAliasGW3,.F.,.T.)
		
		conout(cQuery)
		
		While !(cAliasGW3)->( Eof() )
		
			conout("Documento de frete: " + (cAliasGW3)->GV5_SENTID + "/" + (cAliasGW3)->GW3_NRDF)
		
			If EMPTY((cAliasGW3)->GW3_DTFIS) .and. EMPTY((cAliasGW3)->GW3_DTREC)
				If aRet[4] == 'GFEA0707'
					Msginfo("Documento de Frete "+(cAliasGW3)->GW3_NRDF+" não está integrado no módulo Fiscal.";
						+" Integração com o Financeiro não permitida","Documento de Frete ínvalido")
				Else
					aRet[4] := "** Documento de Frete "+(cAliasGW3)->GW3_NRDF+" não está integrado no módulo Fiscal.";
						+" Integração com o Financeiro não permitida"
				EndIf
				aRet[2] := Date()
				Exit
			EndIf
			
			if !EMPTY((cAliasGW3)->GW3_DTFIS) .and. (cAliasGW3)->GV5_SENTID == '2'
				If (cAliasGW3)->GW3_DTFIS > DTOS(aRet[2])
					aRet[2] := STOD((cAliasGW3)->GW3_DTFIS)
					aRet[3] := .T.
					aRet[4] := ''
				EndIF
			ElseIf !EMPTY((cAliasGW3)->GW3_DTREC) .and. (cAliasGW3)->GV5_SENTID == '1'
				If (cAliasGW3)->GW3_DTREC > DTOS(aRet[2])
					aRet[2] := STOD((cAliasGW3)->GW3_DTREC)
					aRet[3] := .T.
					aRet[4] := ''
				EndIF
			EndIf
			(cAliasGW3)->( dbSkip() )
		EndDo
		(cAliasGW3)->(dbCloseArea())
		
		CONOUT("Data integração: " + cvaltochar(aRet[2]) + "/" + cvaltochar(aRet[3]))

	Else
		aRet[1] := .F.
	EndIf
Return aRet