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: | Nome | Tipo | Descrição | Obrigatório |
---|
PARAMIXB[1] | String | Filial do Conhecimento | Sim | PARAMIXB[2] | String | CNPJ do Emissor | Sim | PARAMIXB[3] | String | CNPJ do Embarcador | Sim | PARAMIXB[4] | String | CNPJ do Destinatário | Sim | PARAMIXB[5] | String | UF do Remetente | Sim | PARAMIXB[6] | String | UF do Destinatário | Sim | PARAMIXB[7] | Array | Dados pertencentes aos documentos de carga Relacionados | Sim | PARAMIXB[8] | String | Código do Remetente | Sim | PARAMIXB[9] | String | Buffer do arquivo de importação | Sim |
|
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