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_NFELET | Caracter | 20 | NF Eletr | Nota Fiscal Eletrônica | @! | Alterar | Real | Não | 124 | |
CKO_CHVDOC | Caracter | 50 | Chave Doc | Chave Documento | @! | Alterar | Real | Não | Aumentar campo de 44 para 50 | |
DS_NFELETR | Caracter | 20 | NF Eletr | Nota Fiscal Eletrônica | @! | Alterar | Real | Sim | 124 |
Parâmetro:
Parâmetro: | Tipo: | Descrição: | Conteúdo: |
---|---|---|---|
MV_NFSNAUT | Logico | Define geração de numeração automática para NFSe no documento de entrada | F (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:
#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