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

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

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

Aceitar