NFSe - varias notas no xml

26/02/2014

0

Ola!
Eu consegui gerar este exemplo. (Código Abaixo)
O arquivo gerado pelo exemplo foi lido pelo site da Ginfes e gerado NFSe com sucesso.

O meu problema é:
1º Como colocar neste código varias notas fiscais.
2º Como imprimir a NFSe por este arquivo XML.

Obrigado.

CÓDIGO...
procedure TForm1.Button1Click(Sender: TObject);
var
NodeNivelA, NodeNivelB, NodeNivelC, NodeNivelD, NodeNivelE, NodeNivelF,
NodeNivelG, NodeNivelH, NodeNivelI, NodeNivelJ: IXMLNode;
vXMLDoc: TXMLDocument;
begin
vXMLDoc := TXMLDocument.Create(self);
Try
With vXMLDoc do
begin
Active := True;
Version := '1.0';
Encoding := 'UTF-8';
AddChild('EnviarLoteRpsEnvio',
'http://www.ginfes.com.br/servico_enviar_lote_rps_envio');
DocumentElement.Attributes['xmlns:tip'] :=
'http://www.ginfes.com.br/tipos';

// Dados da NFSe
NodeNivelA := DocumentElement;
NodeNivelA.ChildValues['NumeroLote'] := '1';
NodeNivelA.ChildValues['Cnpj'] := '11111111111111';
NodeNivelA.ChildValues['InscricaoMunicipal'] := '2222222';
NodeNivelA.ChildValues['QuantidadeRps'] := '1';

NodeNivelA := NodeNivelA.ChildNodes['ListaRps'];

NodeNivelA := NodeNivelA.ChildNodes['Rps'];
NodeNivelB := NodeNivelA.ChildNodes['tip:IdentificacaoRps'];
NodeNivelB.ChildValues['Numero'] := '1';
NodeNivelB.ChildValues['Serie'] := 'NFSe';
NodeNivelB.ChildValues['Tipo'] := '1';
NodeNivelA.ChildValues['tip:DataEmissao'] := '2014-02-26T09:58:52';
NodeNivelA.ChildValues['tip:NaturezaOperacao'] := '1';
NodeNivelA.ChildValues['tip:RegimeEspecialTributacao'] := '1';
NodeNivelA.ChildValues['tip:OptanteSimplesNacional'] := '1';
NodeNivelA.ChildValues['tip:IncentivadorCultural'] := '2';
NodeNivelA.ChildValues['tip:Status'] := '1';

// Serviço e Valores
NodeNivelC := NodeNivelA.ChildNodes['tip:Servico'];
NodeNivelD := NodeNivelC.ChildNodes['tip:Valores'];
NodeNivelD.ChildValues['tip:ValorServicos'] := '10.00';
NodeNivelD.ChildValues['tip:IssRetido'] := '2';
NodeNivelD.ChildValues['tip:ValorIss'] := '0.00';
NodeNivelD.ChildValues['tip:BaseCalculo'] := '10.00';
NodeNivelD.ChildValues['tip:Aliquota'] := '0.0350';
NodeNivelD.ChildValues['tip:ValorLiquidoNfse'] := '10.00';
NodeNivelC.ChildValues['tip:ItemListaServico'] := '1401';
NodeNivelC.ChildValues['tip:CodigoTributacaoMunicipio'] := '14.01.00';
NodeNivelC.ChildValues['tip:Discriminacao'] := 'Teste NFSe';
NodeNivelC.ChildValues['tip:MunicipioPrestacaoServico'] := '3543402';

// Prestador
NodeNivelE := NodeNivelA.ChildNodes['tip:Prestador'];
NodeNivelE.ChildValues['tip:Cnpj'] := '11111111111111';
NodeNivelE.ChildValues['tip:InscricaoMunicipal'] := '2222222';

// Tomador
NodeNivelF := NodeNivelA.ChildNodes['tip:Tomador'];
NodeNivelG := NodeNivelF.ChildNodes['tip:IdentificacaoTomador'];
NodeNivelH := NodeNivelG.ChildNodes['tip:CpfCnpj'];
NodeNivelH.ChildValues['tip:Cpf'] := '33333333333';
NodeNivelF.ChildValues['tip:RazaoSocial'] := 'MIRIANE NUNES DA SILVA';

// Tomador Endereço
NodeNivelI := NodeNivelF.ChildNodes['tip:Endereco'];
NodeNivelI.ChildValues['tip:Endereco'] := 'RUA SAO CRISTOVAO DA LAGUNA';
NodeNivelI.ChildValues['tip:Numero'] := '513';
NodeNivelI.ChildValues['tip:Bairro'] := 'ANCHIETA';
NodeNivelI.ChildValues['tip:Cidade'] := '3549805';
NodeNivelI.ChildValues['tip:Estado'] := 'SP';
NodeNivelI.ChildValues['tip:Cep'] := '15100000';

// Tomador Contato
NodeNivelJ := NodeNivelF.ChildNodes['tip:Contato'];
NodeNivelJ.ChildValues['tip:Telefone'] := '4444444444';
NodeNivelJ.ChildValues['tip:Email'] := 'miriane.silva@hotmail.com';

vXMLDoc.SaveToFile('EnviNFSe.xml');
WebBrowser1.Navigate(ExtractFileDir(application.ExeName) +
'\EnviNFSe.xml');
end;
finally
vXMLDoc.Free;
end;
end;

Rogério Américo

Rogério Américo

Responder

Posts

28/02/2014

Rogério Américo

Consegui resolver.

procedure TForm1.Button2Click(Sender: TObject);
var
arq: tstringlist;
nItens: integer;
begin
arq := tstringlist.Create;
arq.ADD('<?xml version="1.0"?>');
arq.ADD('<EnviarLoteRpsEnvio xmlns="http://www.ginfes.com.br/servico_enviar_lote_rps_envio" xmlns:tip="http://www.ginfes.com.br/tipos">');
arq.ADD('<NumeroLote>1</NumeroLote>');
arq.ADD('<Cnpj>11111111111111</Cnpj>');
arq.ADD('<InscricaoMunicipal>222222222</InscricaoMunicipal>');
arq.ADD('<QuantidadeRps>1</QuantidadeRps>');
arq.ADD('<ListaRps>');
For nItens := 1 to 2 do
begin
arq.ADD('<Rps>');
arq.ADD('<tip:IdentificacaoRps>');
arq.ADD('<tip:Numero>153</tip:Numero>');
arq.ADD('<tip:Serie>NFSe</tip:Serie>');
arq.ADD('</tip:IdentificacaoRps>');
arq.ADD('</Rps>');
end;
arq.ADD('</ListaRps>');
arq.ADD('</EnviarLoteRpsEnvio>');
arq.SaveToFile('NFSeEnvia.xml');
Responder

04/05/2014

Info Jr.

Boa, estou com a mesma duvida , como eu faco pra colocar varios rps, no mesmo lote. agradeço antecipadamente. obrigado.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar