Árvore de páginas

Versões comparadas

Chave

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

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

cRet

aRet

String

Array

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

Sim

 

Bloco de código
languagedelphithemeMidnight
titleExemplo: GFEA1154
linenumberstrue
#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	
       
Return cFilCurr    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