Árvore de páginas

GFEA1185 - Possibilita criar validações de CT-e para atribuir a situação 'Erro Impeditivo'

Características do Requisito

Linha de Produto:

Protheus

Segmento:

Supply Chain - Logística

Módulo:

SIGAGFE

Ponto de Entrada - GFEA1185

Descrição:

Tem por objetivo criar validações de conteúdo do arquivo de forma a impossibilitar o processamento do XML. Nesse caso, o CT-e será importado com situação "Erro Impeditivo". Por consequência, o processamento não será permitido.

Recebe o conteúdo parcial do XML, a partir da tag <CTe> e também outro conteúdo parcial do XML, a partir da tag <ProtCTe>.

Localização:

Será executado na importação do CT-e.

Programa Fonte:

GFEA118 - Importação de CT-e

Parâmetros:

NomeTipoDescriçãoObrigatório
PARAMIXB[1]ArrayObjeto parcial do XML, a partir da tag <CTe>.Sim
PARAMIXB[2]ArrayObjeto parcial do XML, a partir da tag <ProtCte>Não

Retorno:

NomeTipoDescriçãoObrigatório
lRetBooleano

Variável lógica que define a situação do CT-e importado.

.F. -> Atribui a situação 'Erro Impeditivo' (5);

.T. -> Mantém a atribuição realizada pelo fonte padrão.

Sim

 

Exemplo: GFEA1185
User Function GFEA1185()
	Local _oCte := PARAMIXB[1]
	Local _oProtCte := PARAMIXB[2] 
	Local _cXCaracAd := ""
	Local _lRet := .F.
	Local _cdhRecbto := If(_oProtCte != "",U_XmlValid(_oProtCte,{"_INFPROT"},"_DHRECBTO",.F.), "")
	Local _cDtRecbto := SubStr(_cdhRecbto, 1, 4) + SubStr(_cdhRecbto, 6, 2) + SubStr(_cdhRecbto, 9, 2)
	Local lRet := .T.
	
	If _cDtRecbto > DtoS(dDatabase)
		lRet := .F.
	EndIf
Return lRet
User Function XmlValid(oTEMP,aNode,cTag,lREALNAME)
	Local nCont
	Private oXML := oTEMP
	Default lREALNAME := .F.
	//Navega dentro do objeto XML usando a variavel aNode como base, retornando o conteudo do TEXT ou o
	For nCont := 1 to Len(aNode)
		If ValType( XmlChildEx( oXML,aNode[nCont]  ) ) == 'O'
			oXML :=  XmlChildEx( oXML,aNode[nCont]  )
		Else
			Return
		Endif
		If nCont == Len(aNode)
			If !lREALNAME
				cReturn := &("oXML:"+cTag+':TEXT')
				Return cReturn
			Else
				cReturn := &("oXML:REALNAME")
				Return cReturn
			Endif
		EndIf
	Next nCont
	FreeObj(oXML)
	FreeObj(xRet)
	FreeObj(xRet1)
Return ''