Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
GFEA1183 - Possibilita a inclusão de novas condições para definição do tipo de documento de frete na importação do

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:

Microsiga Protheus

Segmento:

Supply Chain - Logística

Módulo:

SIGAGFE

Ponto de Entrada -

GFEA1183

GFEA1184

Descrição:

Recebe o objeto 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 antes do processamento de importação padrão do GFEna 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 completo parcial do XML, a partir da tag <CTe>.Sim

Retorno:

NomeTipoDescriçãoObrigatório
lRetBooleano

Indica se deve ou não continuar o processamento e importação do arquivo XMLo tipo do documento de frete utilizado será o definido no PE ou pelo programa padrão:

.T. -> Continua a importação do arquivo XMLAssume o tipo do documento de frete do PE, a partir do parâmetro de retorno cTpDF;
.F. -> Aborta a importação do arquivo XML 

Sim

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: GFEA1183GFEA1184
linenumberstrue
User Function GFEA1183GFEA1184()
	
	Local _cTPDF := "1"
	Local _oXMLoCte := PARAMIXB[1]
	Local _cTpCte := U_XmlValid(_oCte,{"_INFCTE","_IDE"},"_TPCTE")
	Local _cTpServ 	:= U_XmlValid(_oCte,{"_INFCTE","_IDE"},"_TPSERV") 
	Local _cXCaracAd := ""
	Local _lRet := .TF.
	Local _cTpCteIf XmlChildEx(_oCte:_INFCTE,"_COMPL") != Nil .And. XmlChildEx(_oCte:_INFCTE:_COMPL,"_XCARACAD") != Nil
		_cXCaracAd := U_XmlValid(_oXMLoCte,{"_INFCTE","_IDECOMPL"},"_TPCTEXCARACAD")
	EndIf
	
	If _cTpCte == '1' .And. _cTpServ == '0' .And. Upper(_cXCaracAd) $ 'PALETIZACAO'
		_cTPDF := '2;3'
		// CT-e de anulação/substituição não devem ser importados.
		_lRet := .F.
	EndIf
Return _lRet7'
		_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
			Exit 
		Endif
		If nCont == Len(aNode)
			cReturn := &("oXML:"+cTag+':TEXT')
			Exit
		EndIf
	Next nCont
Return cReturn