Árvore de páginas

Carregando...


01. DADOS GERAIS

Produto:

TOTVS Backoffice

Linha de Produto:

Linha Protheus

Segmento:

Backoffice

Módulo:

TOTVS Backoffice (Linha Protheus) - Compras (SIGACOM)

Função:

COMTRANSMITE

COMXCOL

COMXCOL2

SCHEDCOMCOL

MATA103

MATA103X

País:Brasil
Ticket:Não há
Requisito/Story/Issue (informe o requisito relacionado) :DMANMAT02-48516


02. SITUAÇÃO/REQUISITO

  • Implementação de importação de XML de NFSe Nacional (Tamanho documento até 15 caracteres).

03. SOLUÇÃO

  • Realizado desenvolvimento de importação de XML de NFSe Nacional (Tamanho documento até 15 caracteres).

04. DEMAIS INFORMAÇÕES

Detalhamento e configuração sobre o processo de importação de um XML de NFSe Nacional:


Dicionário: SX3 (Campos) e SX6 (Parâmetro)

IMPORTANTE!

Necessário aplicar expedição continua para atualização de dicionário: Pacotes de Atualização

Campos:

Campo:Tipo:Tamanho:Titulo:Descrição:Picture:Visual:Contexto:Browse:Grupo de Campos:Observação:
CKO_NFELETCaracter20NF EletrNota Fiscal Eletrônica@!AlterarRealNão124
CKO_CHVDOCCaracter50Chave DocChave Documento@!AlterarRealNão
Aumentar campo de 44 para 50
DS_NFELETRCaracter20NF EletrNota Fiscal Eletrônica@!AlterarRealSim124

Parâmetro:

Parâmetro:Tipo:Descrição:Conteúdo:
MV_NFSNAUTLogicoDefine geração de numeração automática para NFSe no documento de entradaF (Default)



Ao importar um XML de NFSe, será analisado o tamanho do documento recebido no XML. Caso seja maior que 9 caracteres (Default - Padrão Protheus), a numeração recebida pelo XML passara a ser gravada nos campos (CKO_NFELET / DS_NFELETR / F1_NFELETR / F3_NFELETR) e a numeração do documento (CKO_DOC / DS_DOC / F1_DOC / F3_DOC) passara a ser gravada com "T" + Contador (Ex: T00000001);

Tabela Importação:


Monitor:


Documento Entrada: 

No Documento de Entrada ao inserir um novo documento e informar a espécie igual a NFS, usuário será perguntado se a numeração desse documento é maior que 9 caracteres (Default - Padrão Protheus).


Se informar "Sim", a numeração do documento (F1_DOC), fica desabilitada para edição, pois ao confirmar a geração do documento será gerada uma nova numeração com "T" + Contador (Ex: T00000001);



Observação: Ao informar "Sim", para que a regra de numeração seja automática será necessário que o parâmetro MV_NFSNAUT esteja habilitado. E que preenche o campo "Numero NF Eletr" (F1_NFELETR) com a numeração maior que 9 (Default - Padrão Protheus). Caso não respeite essa regra, usuário será alertado, para que preencha corretamente ou então informe a espécie novamente "NFS" e selecione a opção "Não", assim deixando o campo (F1_DOC) disponível para preencher com a numeração desejada pelo usuário.

Exemplo de rotina automática (MATA103) para inserção de NFSe Nacional;

Observação: Necessário estar com o parâmetro MV_NFSNAUT habilitado, no cabeçalho enviar as informações de F1_DOC (Porem, ser alterado), F1_NFELETR (Numeração maior que 9), F1_ESPECIE (NFS), e um novo campo "NFSAUT" igual a 1, dessa forma ao inserir um documento de entrada a geração do documento será gerada uma nova numeração com "T" + Contador (Ex: T00000001);


Exemplo execauto:

Exemplo
#Include "Protheus.ch"
#Include "RwMake.ch"
#Include "TbiConn.ch"
#Include "Coverage.ch"

User Function EXEC103()

Local aCab			:= {}
Local aItem			:= {}
Local aItens		:= {}
Local nOpc			:= 3
Local cNum			:= ""
Local cSer			:= "   "
Local nI			:= 0
Local nX			:= 0
Local cInicio		:= Time()

Private lMsErroAuto := .F.
Private lMsHelpAuto := .F.
Private lTemF1GFE	:= .F. 

PREPARE ENVIRONMENT EMPRESA "T1" FILIAL "D MG 01" MODULO "COM" FUNNAME "MATA103"

lMsErroAuto := .F.  
	
If nOpc == 3
	cNum := GetSxeNum("SF1","F1_DOC")	
	SF1->(dbSetOrder(1))		
	While SF1->(dbSeek(xFilial("SF1")+cNum))			
		ConfirmSX8()			
		cNum := GetSxeNum("SF1","F1_DOC")		
	EndDo
Endif

aadd(aCab,{"F1_FORMUL"  	,"N"	 	,NIL})
aadd(aCab,{"F1_DOC"			,cNum		,NIL})
aadd(aCab,{"F1_SERIE"  		,cSer	  	,NIL})
aadd(aCab,{"F1_FORNECE"		,"COM002"	,NIL})
aadd(aCab,{"F1_LOJA"   		,"01"  		,NIL})
aadd(aCab,{"F1_EMISSAO"		,DDATABASE	,NIL})
aadd(aCab,{"F1_DTDIGIT"		,DDATABASE	,NIL})
aadd(aCab,{"F1_TIPO"   		,"N"	 	,NIL}) //I-Complemento ICMS / P - Complemento IPI
aadd(aCab,{"F1_ESPECIE" 	,"NFS"		,NIL})
aadd(aCab,{"F1_COND"   		,"000" 		,NIL}) 
aadd(aCab,{"F1_STATUS" 		, "A" , Nil})
aadd(aCab,{"NFSAUT" 		, "1" , Nil})
aadd(aCab,{"F1_NFELETR" 	, "2024112120241121" , Nil})
	
For nX := 1 To 1
	cProd1 := "01"
	
	aItem := {}
	aadd(aItem,{"D1_ITEM"		,StrZero(nX,TamSx3("D1_ITEM")[1]) ,NIL})
	aadd(aItem,{"D1_COD"   		,PadR(cProd1,TamSx3("D1_COD")[1]) ,NIL})
	aadd(aItem,{"D1_UM"  		,"UN"	,NIL}) 
	aadd(aItem,{"D1_LOCAL"  	,"01"  	,NIL})
	aadd(aItem,{"D1_QUANT" 		,10	  	,NIL}) 
	aadd(aItem,{"D1_VUNIT"  	,1000	,NIL}) 
	aadd(aItem,{"D1_TOTAL"  	,10000	,NIL})
	aadd(aItem,{"D1_TES"   		,"001" 	,NIL})
	aAdd(aItens,aItem)	
Next nX

MSExecAuto({|x,y,z,a| MATA103(x,y,z,a)},aCab,aItens,nOpc,.F.)

If !lMsErroAuto 
	ConOut("	Incluido NF: " + cNum)  
Else
	MostraErro() 

	ConOut("Erro na inclusao!") 
	Exit
EndIf

Conout("Inicio: " + cInicio)
ConOut("Fim: " + Time())
Conout("Tempo: " + ElapTime(cInicio,Time()))

RESET ENVIRONMENT

Return

05. ASSUNTOS RELACIONADOS

  • Não se aplica