NFE 2.0

Fórum sobre desenvolvimento de software para atender as exigências da legislação fiscal e tributária (NFe, NFCe, NFSe, SPEED, Projeto ACBr, TEF, ECD, EFD, etc.)

Moderador: Moderadores

Avatar do usuário
JAIR RANGEL
Usuário Nível 3
Usuário Nível 3
Mensagens: 178
Registrado em: 19 Jul 2005 16:01
Localização: RIO DE JANEIRO
Contato:

NFE 2.0

Mensagem por JAIR RANGEL »

Bom dia, amigos !

Instalei a NF-e 2.0 (Programa da Sefaz) em um Cliente. Ao gerar o arquivo de Produtos (TXT), atraves do meu ERP, e importar no Programa da Sefaz, ocorre o seguinte erro: Versão Inválida !
A versão indicada no arquivo TXT de Produtos é a 1.01.
Acontece que já mudei esta versão para vários outros números e ao importar para o programa da sefaz, a mensagem de erro é sempre a mesma: Versão Inválida.
Se alguem passou por isto, por favar me de uma dica, pois não sei mais o que fazer.

Desde já, obrigado !

Jair Rangel
MINIGUI + HARBOUR + BRMAKE + CDX
CLIPPER 5.2E + VISUALLIB 2 + BLINKER
Avatar do usuário
JAIR RANGEL
Usuário Nível 3
Usuário Nível 3
Mensagens: 178
Registrado em: 19 Jul 2005 16:01
Localização: RIO DE JANEIRO
Contato:

Re: NFE 2.0

Mensagem por JAIR RANGEL »

Olá !
Após contatos com a equipe de gestão da NFe da Sefaz, consegui obter a versão do layout dos arquivos de integração com o programa da Sefaz. Para quem tiver a mesma dúvida que eu, a versão é 1.02.
Fiz testes e funcionou beleza.

Até a próxima, pessoal !

Jair Rangel
MINIGUI + HARBOUR + BRMAKE + CDX
CLIPPER 5.2E + VISUALLIB 2 + BLINKER
rapazdarelva
Usuário Nível 1
Usuário Nível 1
Mensagens: 19
Registrado em: 11 Jun 2008 08:11
Localização: sdasda

Re: NFE 2.0

Mensagem por rapazdarelva »

Olá Rangel bom dia.



... eu ainda n fiz nada para a nfe 2.0... teve muitas alterações no txt ???? pode me dar umas dicas ??


abraço.
softcia
Usuário Nível 1
Usuário Nível 1
Mensagens: 4
Registrado em: 26 Out 2010 09:27
Localização: Santa Maria RS

Re: NFE 2.0

Mensagem por softcia »

Boa Tarde, Alguem poderia me enviar um prg de como gerar o TXT para NFE 2.0.

Sou de Santa Maria, RS.

Mario.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Re: NFE 2.0

Mensagem por JoséQuintas »

Esse tipo de coisa eu resolvo assim:
Cadastra no programa da Fazenda e exporta.
Ao exportar, vai ver como ele faz, e é só fazer igual.

Obs. ref. à pergunta da versão inválida

Aliás....
Já emiti milhares de notas com o programa da Fazenda e nunca precisei importar produtos.
Algum motivo especial?
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
Alexandre Silva
Usuário Nível 3
Usuário Nível 3
Mensagens: 376
Registrado em: 26 Mar 2007 00:16
Localização: Itapema - SC

Re: NFE 2.0

Mensagem por Alexandre Silva »

Oi,
Se voce esta usando a versao 2.00 do XML ,vc deve colocar no campo layout o valor 2.00 e na
versao do programa 2.0.4 (eu sempre deixo isso em parametros para o usuario, pois a versao do programa pode mudar)

Voces que usam a nova versao do 2.00 No validador nacional repararam o problema na impressao das parcelas no RODAPE, no modo retrato, se o valor das parcelas da NF for maior que R$ 99,99 (5 digitos) o valor quebra para outra linha, fica muito ruim..
Alquem já percebeu isso ?? ja tentaram mandar e-mail para o suporte deles..
http://www1.receita.fazenda.gov.br/fale ... efault.htm

Antes nao saia essas parcelas e eu colocava formatando com espacos vazios...
Eles deveriam colocar no corpo junto com o valor da fatura ou deixar como estava
* Clipper 5.2e/Gaspro 4.0 /CDX/Blinker 7.0 Harbour 3.2 Console Hbmk2
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Re: NFE 2.0

Mensagem por JoséQuintas »

Na 1.0 eu acrescentava em informações adicionais.
A diferença é que a 2.0 acrescenta sozinha.
Não é impossível, mas acho difícil eles colocarem ajuste ortográfico na mensagem, pra alinhamento.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
Alexandre Silva
Usuário Nível 3
Usuário Nível 3
Mensagens: 376
Registrado em: 26 Mar 2007 00:16
Localização: Itapema - SC

Re: NFE 2.0

Mensagem por Alexandre Silva »

A solucao é muito simples
Eles estao escrevendo Duplicata - Num 123456/XX Venc.: 12/12/2010 , Valor: 9999.99 esse texto todo ocupa mais de 59 cararteres na fontes atual
Veja como fica para 3 parcelas

Duplicata - Num.: 001505/4-A, Venc.: 10/01/2011, Valor: 594
,35
Duplicata - Num.: 001505/4-B, Venc.: 11/01/2011, Valor: 594
,35
Duplicata - Num.: 001505/4-C, Venc.: 26/01/2011, Valor: 594
,35

Eu fazia assim para cada parcela:
vmsg+='Parc:'+vduplicta+' Vencto:'+dtoc(dtvencto)+' ValorR$:'+alltrim(transf(valorparc,'@e 999,999.99'))+space(vtamadic)
vtamadic = 59 para retrato 79 para paisagem

Mas eles nao precisam fazer isso, pois cada parcela e vencimento já tem a tag no XML. é uma questao de imprimir no Danfe, no lugar certo.. O Acbrmonitor por exemplo sai certinho..lá onde tem a parte de FATURA

Eu lamento que eles fizeram o aplicativo bom mas esqueceram isso na impessao do DANFE..

Se mais pessoas mandarem sugestoes pra eles ou mesmo ligarem.. 0800-978-2338 (Nacional) 0800-170-110 (SP)
espero que corrijam isso.
PS: Em anexo txt no novo formato, pouco mudou.. ver nos itens da venda(produtos) saiu o Genero, e foi acrescentado pedido do cliente e item no final...
Na versao 2.00 o NCM será obrigatorio..

Vejam aqui o que mudou:
http://www.acomsistemas.com.br/conteudo ... layout.asp
Anexos
modelo20Nfe.txt
TXT para versao 2.00 do XML Validador nacional
(1.23 KiB) Baixado 251 vezes
* Clipper 5.2e/Gaspro 4.0 /CDX/Blinker 7.0 Harbour 3.2 Console Hbmk2
softcia
Usuário Nível 1
Usuário Nível 1
Mensagens: 4
Registrado em: 26 Out 2010 09:27
Localização: Santa Maria RS

Re: NFE 2.0

Mensagem por softcia »

Boa Tarde, Amigos,

Estou precisando muito de um exemplo de como gerar o TXT ou o XML para a NFE 2.0 em Clipper ou outra linguagem parecida com o formato abaixo.
Me mandaram este exemplo mas é para a antiga e esta faltando informações.


Ex:

Código: Selecionar todos

#define CR chr( 13 )
M->final_linha := CHR( 13 ) + CHR( 10 )
cls
public nhandle
public cbuffer := ''
public taman := 0
public resta := 0
SN:="N"
@ 14,12 SAY "CONFIRMA CONFIRMAR ESTA NOTA " GET RE1
READ
IF SN="S"

        erase "C:\Docume~1\ADMINI~1\Desktop\NFE.TXT"
        M->arqui_vo     :=  "C:\Docume~1\ADMINI~1\Desktop\NFE.TXT"
        nhandle := FCREATE( M->arqui_vo , 0 )
       select empresa
           emit_cnpj         := emp_cnpj
           emit_xfant        := emp_fantasia
           emit_iEst         := emp_inscEst
           emit_imun         := Emp_inscMun
           emit_cnae         := emp_cnae
       select endEmpresa
           ende_xlgr       := end_LOGRA
           ende_nro        := END_NUM
           ende_compl      := END_COMPLE
           ende_xba        := END_BAIRRO
           ende_cnun       := END_CODMUN
           ende_xmun       := END_CIDADE
           ende_uf         := END_UF
           ende_cep        := END_CEP
           ende_cpais      := '1058'
           ende_xpais      := 'BRASIL'

          cabeca := 'A|1.10|'+M->final_linha
          FSEEK( nhandle , 0 , 2 )
          FWRITE( nhandle , cabeca )

          cabeca := 'B|'
          cabeca := cabeca + alltrim( ide_cuf ) +'||'
          cabeca := cabeca + alltrim(ide_natop  ) +'|' 
          cabeca := cabeca + alltrim(ide_indpag ) +'|'
          cabeca := cabeca + alltrim(ide_mod    ) +'|' 
          cabeca := cabeca + alltrim(ide_ser)     +'|'
          cabeca := cabeca + alltrim(ide_nnf )    +'|'
          cabeca := cabeca + alltrim(ide_demi   ) +'|' 
          cabeca := cabeca + alltrim(ide_dsaient) +'|'
          cabeca := cabeca + alltrim(ide_tpnf   ) +'|' 
          cabeca := cabeca + alltrim(ide_cmunfg ) +'|'
          cabeca := cabeca + alltrim(ide_tpimp  ) +'|' 
          cabeca := cabeca + alltrim(ide_tpemis ) +'|'
          cabeca := cabeca + alltrim(ide_cdv    ) +'|' 
          cabeca := cabeca + alltrim(ide_tpamb  ) +'|'
          cabeca := cabeca + alltrim(ide_finnfe ) +'|' 
          cabeca := cabeca + alltrim(ide_procemi) +'|'
          cabeca := cabeca + alltrim(ide_verproc) +'|'+M->final_linha
          FSEEK( nhandle , 0 , 2 )
          FWRITE( nhandle , cabeca )
Se pudrem me ajudar assim que eu terminar posto aqui para todos.
Poderei POSTAR os Dbfs e a rotina para emissao do TXT ou XML completo.
Mario
Santa Maria, RS


Tenho esta rotina em Delphi mas é para a Nfe 1.0

Código: Selecionar todos

funcion geraNFE: string;

var

  cabeca: string;
  EMITENTE: string;
  destinatario: string;
  RODAPE: string;
  PRODUTO: string;
  DETALHE: string;
  id1: string;
  ID2: string;
  ID3: string;
  vaux: string;
  F_L: string;
  ITEM: INTEGER;
  AVULSO: string;
  IMPOSTOS: string;
begin
  memo1.Lines.Clear;

  f_l := #13#10;
  vaux := '9';
  ID1 := '';
  ID2 := '';
  id3 := '';
  ID1 := ID1 + 'NOTA FISCAL|1';
  memo1.Lines.add(id1);
  id2 := 'A|1.10';
  memo1.Lines.add(id2);

  cabeca := 'B|';
  cabeca := cabeca + trim(UF_N(FUNCOES.UFEmpresa)) + '||';
  cabeca := cabeca + trim('VENDA PRODUCAO DO ESTAB') + '|';
  cabeca := cabeca + trim('0') + '|';
  cabeca := cabeca + trim('55') + '|';
  cabeca := cabeca + trim('1') + '|';
  cabeca := cabeca + trim(vAux) + '|';
  cabeca := cabeca + trim(FormatDateTime('yyyy-mm-dd', date)) + '|';
  cabeca := cabeca + trim(FormatDateTime('yyyy-mm-dd', date)) + '|';
  cabeca := cabeca + trim('0') + '|';
  cabeca := cabeca + trim('4316907') + '|';
  cabeca := cabeca + trim('1') + '|';
  cabeca := cabeca + trim('1') + '|';
  cabeca := cabeca + trim('') + '|';
  cabeca := cabeca + trim('2') + '|';
  cabeca := cabeca + trim('1') + '|';
  cabeca := cabeca + trim('0') + '|';
  cabeca := cabeca + trim('1.4.2 TESTE') + '|';
  memo1.Lines.Add(cabeca);

  EMITENTE := 'C|';
  EMITENTE := EMITENTE + trim(FUNCOES.NomeEmpresaAtual) + '|';
  EMITENTE := EMITENTE + trim(FUNCOES.fantasiaempresaatual) + '|';
  EMITENTE := EMITENTE + trim(FUNCOES.InscEstEmpresa) + '||';
  EMITENTE := EMITENTE + trim(funcoes.INSCMUNICIPALEMPRESA) + '|';
  EMITENTE := EMITENTE + trim(FUNCOES.CNAEEmpresaAtual);
  memo1.Lines.Add(EMITENTE);

  EMITENTE := '';
  EMITENTE := 'C02|' + trim((FUNCOES.CnpjEmpresa)) + '|';
  memo1.Lines.Add(EMITENTE);
  EMITENTE := '';
  EMITENTE := 'C05|' + trim(FUNCOES.EnderecoEmpresa) + '|' + trim(FUNCOES.enderecoNumero);
  EMITENTE := EMITENTE + '|' + trim(FUNCOES.EnderecoComplemento) + '|';
  EMITENTE := EMITENTE + trim(FUNCOES.BairroEmpresa) + '|' + trim(funcoes.CodigoMunicipioIBGE) + '|';
  EMITENTE := EMITENTE + trim(funcoes.CidadeEmpresa) + '|' + trim(FUNCOES.UFEmpresa) + '|';
  EMITENTE := EMITENTE + trim(FUNCOES.CepEmpresa) + '|' + trim('1058') + '|';
  EMITENTE := EMITENTE + trim('BRASIL') + '|' + alltrim(FUNCOES.TelefoneEmpresa) + '|';
  MEMO1.Lines.Add(EMITENTE);
  DESTINATARIO := '';
  DESTINATARIO := 'E|' + trim(DSCLIENTES.DataSet.FIELDBYNAME('RAZAOSOCIAL').AsString) + '|';
  DESTINATARIO := DESTINATARIO + trim(DSCLIENTES.DataSet.FIELDBYNAME('INSCRESTADUAL').AsString) + '|';
  DESTINATARIO := DESTINATARIO + trim('') + '|';
  MEMO1.Lines.Add(DESTINATARIO);
  destinatario := '';
  if Length(alltrim(SoNumero(DSClientes.DataSet.fieldbyname('CNPJ').AsString))) > 11 then
    DESTINATARIO := 'E02|' + SONUMERO(dsclientes.DataSet.fieldbyname('CNPJ').AsString) + '|'
  else
    DESTINATARIO := 'E03|' + SONUMERO(dsclientes.DataSet.fieldbyname('CPF').AsString) + '|';

  MEMO1.Lines.Add(DESTINATARIO);

  DESTINATARIO := '';

  DESTINATARIO := 'E05|' + trim(DSCLIENTES.DATASET.FIELDBYNAME('ENDERECO').ASSTRING) + '|' + trim(DSCLIENTES.DATASET.FIELDBYNAME('NUMEND').ASSTRING) + '|';
  DESTINATARIO := DESTINATARIO + trim(DSCLIENTES.DATASET.FIELDBYNAME('COMPLEEND').ASSTRING) + '|';
  DESTINATARIO := DESTINATARIO + trim(DSCLIENTES.DATASET.FIELDBYNAME('BAIRRO').ASSTRING) + '|' + trim(DSCLIENTES.DATASET.FIELDBYNAME('CODMUN').ASSTRING) + '|';
  DESTINATARIO := DESTINATARIO + trim(DSCLIENTES.DATASET.FIELDBYNAME('CIDADE').ASSTRING) + '|' + trim(DSCLIENTES.DATASET.FIELDBYNAME('UF').ASSTRING) + '|';
  DESTINATARIO := DESTINATARIO + trim(DSCLIENTES.DATASET.FIELDBYNAME('CEP').ASSTRING) + '|' + trim('1058') + '|';
  DESTINATARIO := DESTINATARIO + trim('BRASIL') + '|' + ALLtrim(SONUMERO(DSCLIENTES.DATASET.FIELDBYNAME('TELEFONE').ASSTRING)) + '||';
  DESTINATARIO := DESTINATARIO + trim(SONUMERO(DSCLIENTES.DATASET.FIELDBYNAME('INSCRESTADUAL').ASSTRING)) + '|';
  MEMO1.Lines.Add(DESTINATARIO);

  PRODUTO := '';
  DSItensNF.DataSet.First;
  ITEM := 0;
  while not (DSItensNF.DataSet.Eof) do
  begin
    INC(ITEM);
    PRODUTO := '';
    PRODUTO := 'H|' + StrZero(ITEM, 3, 0) + '|';
    PRODUTO := PRODUTO + ' ' + trim(DSItensNF.DataSet.FIELDBYNAME('INFORMACOESADICIONAIS').AsString);
    PRODUTO := PRODUTO + '|';

    MEMO1.Lines.Add(PRODUTO);
    DETALHE := '';
    detalhe := 'I|';
    detalhe := detalhe + TRIM(DSItensNF.DataSet.FIELDBYNAME('CODIGO').AsString) + '|';
    detalhe := detalhe + TRIM(DSItensNF.DataSet.FIELDBYNAME('CODIGOBARRA').AsString) + '|';
    detalhe := detalhe + TRIM(DSItensNF.DataSet.FIELDBYNAME('NOMEPRODUTO').AsString) + '|';
    detalhe := detalhe + TRIM(DSItensNF.DataSet.FIELDBYNAME('NCM').AsString) + '|';
    detalhe := detalhe + TRIM('') + '|';
    detalhe := detalhe + TRIM('') + '|';
    detalhe := detalhe + TRIM(DSItensNF.DataSet.FIELDBYNAME('CFOP').AsString) + '|';
    detalhe := detalhe + TRIM(DSItensNF.DataSet.FIELDBYNAME('UNIDADE').AsString) + '|';
    detalhe := detalhe + TRIM(DSItensNF.DataSet.FIELDBYNAME('QTDE').AsString) + '|';
    detalhe := detalhe + TRIM(DSItensNF.DataSet.FIELDBYNAME('VALORUNITARIO').AsString) + '|';
    detalhe := detalhe + TRIM(DSItensNF.DataSet.FIELDBYNAME('SUBTOTAL').AsString) + '|';
    detalhe := detalhe + TRIM('') + '|';
    detalhe := detalhe + TRIM(DSItensNF.DataSet.FIELDBYNAME('UNIDADE').AsString) + '|';
    detalhe := detalhe + TRIM(DSItensNF.DataSet.FIELDBYNAME('VALORUNITARIO').AsString) + '|';
    detalhe := detalhe + TRIM(DSItensNF.DataSet.FIELDBYNAME('SUBTOTAL').AsString) + '|';
    detalhe := detalhe + TRIM('0') + '|'; //prod_Vfrete
    detalhe := detalhe + TRIM('0') + '|'; //prod_Vseg
    detalhe := detalhe + TRIM('0') + '|'; // prod_Vdesc
    MEMO1.Lines.Add(DETALHE);
    avulso := '';
    avulso := 'M' + '|';
    MEMO1.Lines.ADD(AVULSO);

    avulso := '';
    avulso := 'N' + '|';
    MEMO1.Lines.ADD(AVULSO);
    IMPOSTOS := '';

    if DSITENSNF.DATASET.FIELDBYNAME('CST').ASSTRING = '000' then
    begin
      impostos := '';
      impostos := 'N02|0|00|3|' + trim(DSItensNF.DataSet.FIELDBYNAME('SUBTOTAL').AsString) + '|17.00 |' + FloatToStr(DSItensNF.DataSet.FIELDBYNAME('SUBTOTAL').ASFLOAT * 17.00 / 100);
      IMPOSTOS := IMPOSTOS + '|';
      MEMO1.Lines.ADD(IMPOSTOS);
    end;

    avulso := '';
    avulso := 'O|99999||||999' + '|';
    MEMO1.Lines.ADD(AVULSO);

    avulso := '';
    avulso := 'O08|52';
    AVULSO := AVULSO + '|';
    MEMO1.Lines.ADD(AVULSO);

    avulso := '';
    avulso := 'Q' + '|';

    MEMO1.Lines.ADD(AVULSO);

    avulso := '';
    avulso := 'Q02|01|' + trim(DSItensNF.DataSet.FIELDBYNAME('SUBTOTAL').AsString) + '|0.65 |' + FloatToStr(DSItensNF.DataSet.FIELDBYNAME('SUBTOTAL').ASFLOAT * 0.65 / 100);
    AVULSO := AVULSO + '|';
    MEMO1.Lines.ADD(AVULSO);

    avulso := '';
    avulso := 'S' + '|';
    MEMO1.Lines.ADD(AVULSO);

    avulso := '';
    avulso := 'S02|01|' + trim(DSItensNF.DataSet.FIELDBYNAME('SUBTOTAL').AsString) + '|3.00|' + FloatToStr(DSItensNF.DataSet.FIELDBYNAME('SUBTOTAL').ASFLOAT * 3.00 / 100);
    AVULSO := AVULSO + '|';
    MEMO1.Lines.ADD(AVULSO);

    RODAPE := '';
    rodape := 'W|';
    MEMO1.Lines.ADD(RODAPE);

    DSItensNF.DataSet.Next;

  end;
Editado pela última vez por Toledo em 13 Dez 2010 19:50, em um total de 1 vez.
Razão: Mensagem editada para colocar a tag [ code ]<br>Veja como utilizar esta tag: http://www.pctoledo.com.br/forum/faq.php?mode=bbcode#f2r1
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Re: NFE 2.0

Mensagem por JoséQuintas »

Pera lá...
Está pedindo um exemplo, e diz que já tem mas é pra versão antiga.
Então não quer um exemplo, quer a rotina pronta.

Aqui eu fiz um troço esquisito, mas que tá dando certo.

Peguei minha rotina antiga de txt 1.0 e incrementei.
Agora ela gera txt e xml ao mesmo tempo, podendo escolher entre 1.0 ou 2.0.

Ficou legal assim, porque quando tenho dúvida, uso o txt pra importar no programa da Fazenda.
E posso testar o XML no programa da Fazenda.

Pode até ser usado o mesmo esquema pra qualquer linguagem de programação.
Uma rotina só de protótipo:

Código: Selecionar todos

mTxt := ""
mXml := ""
GeraId()
GeraEmitente()
GeraDestinatario()

GravaArquivo("nota.txt",mTxt)
GravaArquivo("nota.xml",mXml)

Function GeraId()
mTxt += "NotaFiscal" + mTraco + mCrLf
If mLayout="1"
   mTxt += "chaveantiga"
Else
   mTxt += "chavenova"
Endif
mXml += XmlTag("nota",NumNota)
If mLayout = "1"
   mXml += XmlTag("chave",ChaveAntiga)
Else
   mXml += XmlTag("chave",ChaveNova)
Endif
Return NIL
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
softcia
Usuário Nível 1
Usuário Nível 1
Mensagens: 4
Registrado em: 26 Out 2010 09:27
Localização: Santa Maria RS

Re: NFE 2.0

Mensagem por softcia »

Ola.

Como é a sua funcao que gera o XML?

mXml += XmlTag("nota",NumNota)

Mario
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Re: NFE 2.0

Mensagem por JoséQuintas »

A função de gerar o XML é desse jeito que viu.
XmlTag() não gera o XML, gera apenas uma "tag" do xml.

? XmlTag("nota","12345")

Isso retorna:
<nota>12345</nota>
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Marcos Francisco
Usuário Nível 1
Usuário Nível 1
Mensagens: 9
Registrado em: 06 Jul 2004 09:30
Localização: Estancia

Re: NFE 2.0

Mensagem por Marcos Francisco »

Amigo
Se não for pedir muito, poste aqui o exemplo de como gerar o TXT ou XLM para a versão da NFE 2.0, estamos com muitas dificuldades.

Obrigado
Marcos
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Re: NFE 2.0

Mensagem por JoséQuintas »

Afinal está com dificuldades no que?
E tem o que pronto?

Quer um jeito prático de gerar XML ou TXT?

Obs. Não usei a formatação do fonte, porque o fonte em si não é importante.

Você tem lá o XML da nota assim:
<emitente>Antonio da silva</emitente><destinatario>Juca da Silva</destinatario>

Coloque no fonte Clipper o XML inteiro.
?? [<emitente>Antonio da silva</emitente><destinatario>Juca da Silva</destinatario>]

Pronto, seu fonte já gera XML da nota, sempre igual, mas gera.

Separe o fonte em blocos, pra facilitar.

?? [<emitente>]
?? [Antonio da Silva]
?? [</emitente>]
?? [<destinatario>]
?? [Juca da Silva]
?? [</destinatario>]

Seu fonte continua fazendo a mesma coisa, só dividiu em linhas o fonte.
Agora é só mudar a parte variável, de acordo com sua base de dados

?? [<emitente>]
?? Trim(empresa->Nome) //[Antonio da Silva]
?? [</emitente>]
?? [<destinatario>]
?? Trim(cliente->Nome) // [Juca da Silva]
?? [</destinatario>]

A partir de um XML existente, chegou-se a um fonte.
A partir daí, só ir ajustando para as variações e melhorando/reduzindo o código.

Mais fácil que isso, só negociando preço.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Marcos Francisco
Usuário Nível 1
Usuário Nível 1
Mensagens: 9
Registrado em: 06 Jul 2004 09:30
Localização: Estancia

Re: NFE 2.0

Mensagem por Marcos Francisco »

JoseQuintas

Eu já utilizo a rotina em Clipper para gerar Nfe em TXT na versão 1.0, utilizando o Emissor da Sefaz , minha duvida e o que alterar na rotina da geração da versão 1.0 para gerar o TXT ou XML da versão 2.0, do Emissor da Sefaz, segundo informações apartir do proximo ano não será mais pemitido a utilização em TXT e sim em XML,

Obrigado pela ajuda.

Marcos
Responder