NFE 2.0
Moderador: Moderadores
- JAIR RANGEL
- Usuário Nível 3

- Mensagens: 178
- Registrado em: 19 Jul 2005 16:01
- Localização: RIO DE JANEIRO
- Contato:
NFE 2.0
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
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
CLIPPER 5.2E + VISUALLIB 2 + BLINKER
- JAIR RANGEL
- Usuário Nível 3

- Mensagens: 178
- Registrado em: 19 Jul 2005 16:01
- Localização: RIO DE JANEIRO
- Contato:
Re: NFE 2.0
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
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
CLIPPER 5.2E + VISUALLIB 2 + BLINKER
-
rapazdarelva
- Usuário Nível 1

- Mensagens: 19
- Registrado em: 11 Jun 2008 08:11
- Localização: sdasda
Re: NFE 2.0
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.
... eu ainda n fiz nada para a nfe 2.0... teve muitas alterações no txt
abraço.
Re: NFE 2.0
Boa Tarde, Alguem poderia me enviar um prg de como gerar o TXT para NFE 2.0.
Sou de Santa Maria, RS.
Mario.
Sou de Santa Maria, RS.
Mario.
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Re: NFE 2.0
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?
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/
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/
- Alexandre Silva
- Usuário Nível 3

- Mensagens: 376
- Registrado em: 26 Mar 2007 00:16
- Localização: Itapema - SC
Re: NFE 2.0
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
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
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Re: NFE 2.0
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.
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/
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/
- Alexandre Silva
- Usuário Nível 3

- Mensagens: 376
- Registrado em: 26 Mar 2007 00:16
- Localização: Itapema - SC
Re: NFE 2.0
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
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
Re: NFE 2.0
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:
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
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 )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
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
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Re: NFE 2.0
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:
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/
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/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Re: NFE 2.0
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>
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/
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

- Mensagens: 9
- Registrado em: 06 Jul 2004 09:30
- Localização: Estancia
Re: NFE 2.0
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
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
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Re: NFE 2.0
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.
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/
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

- Mensagens: 9
- Registrado em: 06 Jul 2004 09:30
- Localização: Estancia
Re: NFE 2.0
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
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