GFEA1154 – Atribuição de Novo Valor a “Filial do Conhecimento”

Características do Requisito

Linha de Produto:

Microsiga Protheus

Segmento:

Logística

Módulo:

SIGAGFE

Ponto de Entrada - GFEA1154

Descrição:

Atribuição de novo valor a “Filial do Conhecimento”.

Localização:

Rotina de Importação de Conhecimentos/EDI.

Programa Fonte:

GFEA115A - Importação de Conhecimentos/EDI (SIGAGFE)

Parâmetros:

NomeTipoDescriçãoObrigatório
PARAMIXB[1]StringFilial do ConhecimentoSim
PARAMIXB[2]StringCNPJ do EmissorSim
PARAMIXB[3]StringCNPJ do EmbarcadorSim
PARAMIXB[4]StringCNPJ do DestinatárioSim
PARAMIXB[5]StringUF do RemetenteSim
PARAMIXB[6]StringUF do DestinatárioSim
PARAMIXB[7]ArrayDados pertencentes aos documentos de carga RelacionadosSim
PARAMIXB[8]StringCódigo do RemetenteSim
PARAMIXB[9]StringBuffer do arquivo de importaçãoSim

Retorno:

Nome

Tipo

Descrição

Obrigatório

aRet

Array

Valor que será atribuído à variável de Filial do Conhecimento e Código do Remetente

Sim

 

#Include 'Protheus.ch'
/* Se o conhecimento for substituição tributária e o remetente do frete estiver em SP 
   deve-se criar o conhecimento no estabelecimento de origem, ou se o destinatário do 
   documento estiver em SP deve-se criar o documento para o estabelecimento de destino. */
   
User Function GFEA1154()
	
	Local cFilCurr    := PARAMIXB[1]
	Local cCNPJEmiss  := PARAMIXB[2]
	Local cCNPJEmbarc := PARAMIXB[3]
	Local cCNPJDest   := PARAMIXB[4]
	Local cUFRem      := PARAMIXB[5]
	Local cUFDest     := PARAMIXB[6]
	Local cFilNew     := ''
	Local aGXH        := PARAMIXB[7]
	Local cCdRem      := PARAMIXB[8]
	Local cBuffer     := PARAMIXB[9]
	Local aRet        := Array(2)
	Local cCNPJConsi  := ""

	//If empty(cCNPJDest) .Or. cCNPJDest == "" #Comentando por Marcos Wagner Jr.
	If !Empty(GFEA115BF(SubStr(cBuffer, 681, 14), .F.))
		cCNPJDest := SubStr(cBuffer, 681, 14)	
	EndIf
	cCdEmis := A118EMIT("1",cCNPJEmiss,aGXH)	
	// Busca a Filial pelo CNPJ do Embarcador
	cFilCurr := GFEA115BF(cCNPJEmbarc, .F.)
	// Busca a filial pelo CNPJ do Destinatario
	If Empty(cFilCurr)
		cFilCurr := GFEA115BF(cCNPJDest, .F.)
	EndIf
	
	// Busca a filial pelo CNPJ do Emissor
	If Empty(cFilCurr)
		cFilCurr := GFEA115BF(cCNPJEmiss,  .F.)
	EndIf

	cCNPJConsi := SubStr(cBuffer, 728, 14)
	// Busca a filial pelo CNPJ do Consignatario
	If Empty(cFilCurr)
		cFilCurr := GFEA115BF(cCNPJConsi,  .T.)
	EndIf
	
	dbSelectArea("GU3")
	dbSetOrder(1)
	If dbSeek(xfilial("GU3")+ AllTrim(cCdEmis))
		
		If GU3->GU3_APUICM == "2"
			If AllTrim(cUFRem) == 'SP'
				cFilNew := GFEA115BF(cCNPJEmbarc, .T.)
			Else
				If AllTrim(cUFDest) == 'SP'
					cFilNew := GFEA115BF(cCNPJDest, .T.)
				EndIF
		   	EndIf
	   	EndIf
    EndIf	
       
    if !Empty(cFilNew)
    	cFilCurr := cFilNew
    EndIf
    
   if Empty(cCdRem)
    	cCdRem := ""
	EndIf
	
    dbSelectArea("GU3")
	dbSetOrder(11)
	If dbSeek(xfilial("GU3")+ AllTrim(cCNPJEmbarc))
		cCdRem := GU3->GU3_CDEMIT
	Else
		dbSelectArea("GU3")
		dbSetOrder(11)
		If dbSeek(xfilial("GU3")+ Substr(AllTrim(cCNPJEmbarc),04,11))
			cCdRem := GU3->GU3_CDEMIT
		EndIf
	
	EndIf	
    aRet[1] := cFilCurr
    aRet[2] := cCdRem
				    
Return aRet


/* Se o conhecimento for substituição tributária e o remetente do frete estiver em SP    deve-se criar o conhecimento no estabelecimento de origem, ou se o destinatário do    documento estiver em SP deve-se criar o documento para o estabelecimento de destino. */   User Function GFEA1154() Local cFilCurr    := PARAMIXB[1] Local cCNPJEmiss  := PARAMIXB[2] Local cCNPJEmbarc := PARAMIXB[3] Local cCNPJDest   := PARAMIXB[4] Local cUFRem      := PARAMIXB[5] Local cUFDest     := PARAMIXB[6] Local cFilNew     := '' Local aGXH        := PARAMIXB[7] Local cCdRem      := PARAMIXB[8] Local cBuffer     := PARAMIXB[9] Local aRet        := Array(2) Local cCNPJConsi  := ""
//msginfo('cCNPJDest do buffer: '+cCNPJDest) //If empty(cCNPJDest) .Or. cCNPJDest == "" #Comentando por Marcos Wagner Jr. If !Empty(GFEA115BF(SubStr(cBuffer, 681, 14), .F.)) cCNPJDest := SubStr(cBuffer, 681, 14) EndIF//msginfo('cCNPJDest apos o buffer: '+cCNPJDest) cCdEmis := A118EMIT("1",cCNPJEmiss,aGXH)//msginfo('cCNPJEmiss: '+cCNPJEmiss) // Busca a Filial pelo CNPJ do Embarcador cFilCurr := GFEA115BF(cCNPJEmbarc, .F.)//msginfo('cCNPJEmbarc: '+cCNPJEmbarc + ' filial retorno: '+cFilCurr) // Busca a filial pelo CNPJ do Destinatario If Empty(cFilCurr) cFilCurr := GFEA115BF(cCNPJDest, .F.)//msginfo('cCNPJDest: '+cCNPJDest + ' filial retorno: '+cFilCurr) EndIf // Busca a filial pelo CNPJ do Emissor If Empty(cFilCurr) cFilCurr := GFEA115BF(cCNPJEmiss,  .F.)//msginfo('cCNPJEmiss: '+cCNPJEmiss + ' filial retorno: '+cFilCurr) EndIF
cCNPJConsi := SubStr(cBuffer, 728, 14) // Busca a filial pelo CNPJ do Consignatario If Empty(cFilCurr) cFilCurr := GFEA115BF(cCNPJConsi,  .T.)//msginfo('cCNPJConsi: '+cCNPJConsi + ' filial retorno: '+cFilCurr) EndIF dbSelectArea("GU3") dbSetOrder(1) If dbSeek(xfilial("GU3")+ AllTrim(cCdEmis)) If GU3->GU3_APUICM == "2" If AllTrim(cUFRem) == 'SP' cFilNew := GFEA115BF(cCNPJEmbarc, .T.)//msginfo('cCNPJEmiss SP: '+cCNPJEmbarc + ' filial retorno: '+cFilNew) Else If AllTrim(cUFDest) == 'SP' cFilNew := GFEA115BF(cCNPJDest, .T.)//msginfo('cCNPJDest SP: '+cCNPJEmbarc + ' filial retorno: '+cFilNew) EndIF     EndIf     EndIF    EndIf            if !Empty(cFilNew)    cFilCurr := cFilNew    EndIF       if Empty(cCdRem)    cCdRem := "" EndIf     dbSelectArea("GU3") dbSetOrder(11) If dbSeek(xfilial("GU3")+ AllTrim(cCNPJEmbarc)) cCdRem := GU3->GU3_CDEMIT Else dbSelectArea("GU3") dbSetOrder(11) If dbSeek(xfilial("GU3")+ Substr(AllTrim(cCNPJEmbarc),04,11)) cCdRem := GU3->GU3_CDEMIT EndIf EndIf //msginfo('filial que vai ser gravada: '+cFilCurr)    aRet[1] := cFilCurr    aRet[2] := cCdRem     Return aRet