Árvore de páginas

Versões comparadas

Chave

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

GFEA1184 - Possibilita a inclusão de regras para definição do tipo de documento de frete na importação do CT-e

Características do Requisito

Linha de Produto:

Protheus

Segmento:

Supply Chain - Logística

Módulo:

SIGAGFE

Ponto de Entrada - GFEA1184

Descrição:

Recebe o conteúdo parcial do XML do CT-e que está sendo importado, a partir da tag <Cte>, inclusive todos os nós e informações descendentes.

A partir deste conteúdo, pode-se criar regras para determinação do Tipo do Documento de Frete.

Localização:

Será executado na importação do CT-e, na função que realiza a atribuição do Tipo do Documento de Frete.

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

Retorno:

NomeTipoDescriçãoObrigatório
lRetBooleano

Indica se o tipo do documento de frete utilizado será o definido no PE ou pelo programa padrão:

.T. -> Assume o tipo do documento de frete do PE, a partir do parâmetro de retorno cTpDF;
.F. -> Realiza as regras do fonte padrão para definição do tipo do documento de frete.

Sim
cTpDFCaracterTipo do Documento de Frete que será atribuído.Não

 

Bloco de código
languagedelphi
titleExemplo: GFEA1184
linenumberstrue
User Function GFEA1184()
	
	Local _cTPDF := "1"
	Local _oCte := PARAMIXB[1]
	Local _cTpCte := U_XmlValid(_oCte,{"_INFCTE","_IDE"},"_TPCTE")
	Local _cTpServ 	:= U_XmlValid(_oCte,{"_INFCTE","_IDE"},"_TPSERV") 
	Local _cXCaracAd := ""
	Local _lRet := .F.
	If XmlChildEx(_oCte:_INFCTE,"_COMPL") != Nil .And. XmlChildEx(_oCte:_INFCTE:_COMPL,"_XCARACAD") != Nil
		_cXCaracAd := U_XmlValid(_oCte,{"_INFCTE","_COMPL"},"_XCARACAD")
	EndIf
	
	If _cTpCte == '1' .And. _cTpServ == '0' .And. Upper(_cXCaracAd) $ 'PALETIZACAO'
		_cTPDF := '7'
		_lRet := .T.
	EndIf
Return {_lRet, _cTPDF}
 
User Function XmlValid(oTEMP,aNode,cTag)
Local nCont
Local cReturn := ''
Private oXML := oTEMP

	//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
			ReturnExit ''
		Endif
		If nCont == Len(aNode)
			cReturn := &("oXML:"+cTag+':TEXT')
			Return cReturnExit
		EndIf
	Next nCont
	
	FreeObj(oXML)
Return ''cReturn