Á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

aRet

Array

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

Sim

 

Bloco de código
languagedelphi
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	
       
    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 EmbarcadorcFilCurr := GFEA115BF(cCNPJEmbarc, .F.)//msginfo('cCNPJEmbarc: '+cCNPJEmbarc + ' filial retorno: '+cFilCurr)// Busca a filial pelo CNPJ do DestinatarioIf Empty(cFilCurr)cFilCurr := GFEA115BF(cCNPJDest, .F.)//msginfo('cCNPJDest: '+cCNPJDest + ' filial retorno: '+cFilCurr)EndIf// Busca a filial pelo CNPJ do EmissorIf Empty(cFilCurr)cFilCurr := GFEA115BF(cCNPJEmiss,  .F.)//msginfo('cCNPJEmiss: '+cCNPJEmiss + ' filial retorno: '+cFilCurr)EndIF
cCNPJConsi := SubStr(cBuffer, 728, 14)// Busca a filial pelo CNPJ do ConsignatarioIf Empty(cFilCurr)cFilCurr := GFEA115BF(cCNPJConsi,  .T.)//msginfo('cCNPJConsi: '+cCNPJConsi + ' filial retorno: '+cFilCurr)EndIFdbSelectArea("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)ElseIf 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_CDEMITElsedbSelectArea("GU3")dbSetOrder(11)If dbSeek(xfilial("GU3")+ Substr(AllTrim(cCNPJEmbarc),04,11))cCdRem := GU3->GU3_CDEMITEndIfEndIf//msginfo('filial que vai ser gravada: '+cFilCurr)    aRet[1] := cFilCurr    aRet[2] := cCdRem    Return aRet