private
{ Private declarations }
public
{ Public declarations }
end;
function GeraLoteRps(tIde, tServico, tTomador : array of ShortString) : ShortString; stdcall; External dllNfse; far;
(...)
procedure TfrmPrincipal.Button1Click(Sender: TObject);
var
tIde, tServico, tTomador : array of shortstring;
ret, layout : ShortString;
vlrps : Integer;
begin
try
Screen.Cursor := crAppStart;
Button1.Enabled := False;
EditStatus.Text := 'Gerando NFS-e';
SetLength(tIde,26);
SetLength(tServico,27);
SetLength(tTomador,16);
layout := ParametroConfig('layout', '');
{São Paulo - SP}
if layout = '1' then
begin
{Dados de identificação do RPS}
tIde[0] := FormatFloat('00000000', StrToFloat(nrps.Text)); //<Numero> Número do RPS
tIde[1] := 'LLLLL'; //<Serie> Número de série do RPS
tIde[2] := 'RPS'; //<Tipo> [RPS, RPS-M, RPS-C]
tIde[3] := FormatDateTime('yyyy-mm-dd', Date()); //<DataEmissao> Data de Emissão do Documento
tIde[4] := '1'; //<NaturezaOperacao> Código de natureza da operação: 1 - Tributação no município; 2 - Tributação fora do município; 3 - Isenção; 4 - Imune; 5 - Exigibilidade suspensa por decisão judicial; 6 - Exigibilidade suspensa por procedimento administrativo.
tIde[5] := '6'; //<RegimeEspecialTributacao> Código de identificação do regime especial de tributação: 1 - Microempresa municipal; 2 - Estimativa; 3 - Sociedade de profissionais; 4 - Cooperativa.
tIde[6] := '1'; //<OptanteSimplesNacional> Identificação de Sim/Não: 1 - Sim; 2 - Não.
tIde[7] := '2'; //<IncentivadorCultural> Identificação de Sim/Não: 1 - Sim; 2 - Não.
tIde[8] := 'N'; //<StatusRPS> {SP:[N - Normal; C - Cancelado], Outros:[1 - Normal; 2 - Cancelado]; }
{Intermediario Servico}
tIde[9] := ''; //<Cnpj> ou <Cpf>
tIde[10] :=''; //<RazaoSocial>
tIde[11] := ''; //<InscricaoMunicipal> IntermediarioServico
{Conjunto de dados e valores que compõe o documento fiscal}
tServico[0] := '0.10'; //<ValorServicos>
tServico[1] := '0.00'; //<ValorDeducoes>
tServico[2] := '0.00'; //<ValorPis>
tServico[3] := '0.00'; //<ValorCofins>
tServico[4] := '0.00'; //<ValorInss>
tServico[5] := '0.00'; //<ValorIr>
tServico[6] := '0.00'; //<ValorCsll>
tServico[7] := 'false'; //<IssRetido> Layout - 1,3,4 = 'true'/'false'; Layout - 5 = 1/2
tServico[8] := ''; //<ValorIss>
tServico[9] := '0.00'; //<OutrasRetencoes>
tServico[10]:= '0.05'; //<Aliquota>
tServico[11] := '0.00'; //<DescontoIncondicionado>
tServico[12] := '0.00'; //<DescontoCondicionado>
tServico[13] := '2658'; //<CodigoServico>
tServico[14] := '4520001'; //<CNAE>
tServico[15] := '821999900'; //<CodigoTributacaoMunicipio>
tServico[16] := 'PRESTACAO DE SERVICO - TESTE'; //<Discriminacao>
tServico[17] := '3106200'; //<CodigoMunicipio>
tServico[18] := 'T'; //<TributacaoRPS> Layout - 1 (SP) = "T" - Tributação no município de São Paulo; "F" - T. fora do municÃpio de SP; "I" - Isento.
tServico[19] := ''; //<ValorCredito>
tServico[20] := '1'; //<BaseCalculo> Layout - 8 Aracajú
tServico[21] := '0.10'; //<ValorLiquidoNfse>
{Dados do tomador de serviço}
tTomador[0] := '60253632420'; //<CPFCNPJTomador>
tTomador[1] := '39619994'; //<InscricaoMunicipal>
tTomador[2] := 'RAZAO SOCIAL TESTE NFE PJ'; //<RazaoSocial>
tTomador[3] := 'R PEDRO AMERICO'; //<Endereco>
tTomador[4] := '32'; //<Numero>
tTomador[5] := 'ANDAR 27'; //<Complemento>
tTomador[6] := 'CENTRO'; //<Bairro>
tTomador[7] := '3550308'; //<CodigoMunicipio>
tTomador[8] := 'SP'; //<Uf>
tTomador[9] := '01045010'; //<Cep>
tTomador[10] := 'contato@asscomponentes.com.br'; //<EmailTomador> Layout - 8 Aracajú
tTomador[11] := 'R'; //<TipoLogradouro> "R" - Rua; "A" - Avenida.
tTomador[12] := 'ISENTO'; //<InscricaoEstadualTomador>
tTomador[13] := '3232323232'; //<Telefone>
end else
{Belo Horizonte - MG}
if layout = '2' then
begin
{ Dados de identificação do RPS }
tIde[0] := FormatFloat('00000000', StrToFloat(nrps.Text)); //<Numero> Número do RPS
tIde[1] := 'LLLLL'; //<Serie> Número de série do RPS
tIde[2] := '1'; //<Tipo> Código de tipo de RPS: 1 - RPS; 2 - Nota Fiscal Conjugada (Mista); 3 - Cupom.
tIde[3] := '2012-07-08T16:44:55'; //<DataEmissao> Data de Emissão do Documento
tIde[4] := '1'; //<NaturezaOperacao> Código de natureza da operação.
tIde[5] := '6'; //<RegimeEspecialTributacao> Código de identificação do regime especial de tributação.
tIde[6] := '1'; //<OptanteSimplesNacional> Identificação de Sim/Não: 1 - Sim; 2 - Não.
tIde[7] := '2'; //<IncentivadorCultural> Identificação de Sim/Não: 1 - Sim; 2 - Não.
{Conjunto de dados e valores que compõe o documento fiscal}
tServico[0] := '1000,00'; //valor servicos
tServico[1] := '10,00'; //valor deducoes
tServico[2] := '10,00'; //valor pis
tServico[3] := '10,00'; //valor cofins
tServico[4] := '10,00'; //valor inss
tServico[5] := '10,00'; //valor ir
tServico[6] := '10,00'; //valor csll
tServico[7] := '1'; //iss retido
tServico[8] := '10,00'; //valor iss
tServico[9] := '10,00'; //outras retençoes
tServico[10] := '0.05'; //aliquota
tServico[11] := '10,00'; //desconto incondicionado
tServico[12] := '10,00'; //desconto condicionado
tServico[13] := '17.02'; //item lista serviço
tServico[14] := ''; //cnae
tServico[15] := '821999900'; //codigo tributacao municipio
tServico[16] := 'SERVICO DE MONITORAMENTO DE DADOS'; //descriminação serviço
tServico[17] := '3106200'; //CodigoMunicipio
{Dados do tomador de serviço}
tTomador[0] := '11143662000137'; //CNPJ OU CPF
tTomador[1] := ''; //Insc. Municipal
tTomador[2] := 'RAZAO DE TESTE ASS COMPONENTES'; //razao social
tTomador[3] := 'DE SAO PAULO'; //endereço
tTomador[4] := '123'; //numero
tTomador[5] := ''; //complemento
tTomador[6] := 'CENTRO'; //bairro
tTomador[7] := '3106200'; //codigo municipio
tTomador[8] := 'MG'; //UF
tTomador[9] := '30170011'; //CEP
end else
{Recife - PE}
if layout = '3' then
begin
tide[0] := FormatFloat('00000000', StrToFloat(nrps.Text)); //<Numero> Número do RPS
tide[1] := 'LLLLL'; //<Serie> Número de série do RPS
tide[2] := '1'; //<Tipo> [RPS, RPS-M, RPS-C]
tide[3] := FormatDateTime('yyyy-mm-dd', Date()); //<DataEmissao> Data de Emissão do Documento
tide[4] := '1'; //<NaturezaOperacao> Código de natureza da operação: 1 – Tributação no municÃpio; 2 - Tributação fora do municÃpio; 3 - Isenção; 4 - Imune; 5 –Exigibilidade suspensa por decisão judicial; 6 – Exigibilidade suspensa por procedimento administrativo.
tide[5] := '1'; //<RegimeEspecialTributacao> Código de identificação do regime especial de tributação: 1 – Microempresa municipal; 2 - Estimativa; 3 – Sociedade de profissionais; 4 – Cooperativa.
tide[6] := '1'; //<OptanteSimplesNacional> Identificação de Sim/Não: 1 - Sim; 2 – Não.
tide[7] := '2'; //<IncentivadorCultural> Identificação de Sim/Não: 1 - Sim; 2 – Não.
tide[8] := '1'; //<StatusRPS> {SP:[N - Normal; C - Cancelado], Outros:[1 - Normal; 2 - Cancelado]; }
tservico[0] := '0.10'; //<ValorServicos>
tservico[1] := '0.00'; //<ValorDeducoes>
tservico[2] := '0.00'; //<ValorPis>
tservico[3] := '0.00'; //<ValorCofins>
tservico[4] := '0.00'; //<ValorInss>
tservico[5] := '0.00'; //<ValorIr>
tservico[6] := '0.00'; //<ValorCsll>
tservico[7] := '2'; //<IssRetido> Layout - 1,3,4 = "true"/"false"; Layout - 5,9 = "1"/"2"
tservico[8] := ''; //<ValorIss>
tservico[9] := '0.00'; //<OutrasRetencoes>
tservico[10] := '0.02'; //<Aliquota>
tservico[11] := '0.00'; //<DescontoIncondicionado>
tservico[12] := '0.00'; //<DescontoCondicionado>
tservico[13] := '0101'; //<CodigoServico>
tservico[14] := '0'; //<CNAE>
tservico[15] := '821999900'; //<CodigoTributacaoMunicipio>
tservico[16] := 'PRESTACAO DE SERVICO - TESTE;OUTRAS INFORMACOES DO SERVICO.'; //<Discriminacao>
tservico[17] := '3106200'; //<CodigoMunicipio>
tservico[18] := 'T'; //<TributacaoRPS> Layout - 1 (SP) = "T" - Tributação no municÃpio de São Paulo; "F" - T. fora do municÃpio de SP; "I" - Isento.
tservico[19] := ''; //<ValorCredito>
tservico[20] := '1'; //<BaseCalculo> Layout - 8 Aracajú
tservico[21] := '0.10'; //<ValorLiquidoNfse>
ttomador[0] := '04595104448'; //<CPFCNPJTomador>
ttomador[1] := ''; //<InscricaoMunicipal>
ttomador[2] := 'RAZAO SOCIAL TESTE NFE PJ'; //<RazaoSocial>
ttomador[3] := 'R PEDRO AMERICO'; //<Endereco>
ttomador[4] := '32'; //<Numero>
ttomador[5] := 'ANDAR 27'; //<Complemento>
ttomador[6] := 'CENTRO'; //<Bairro>
ttomador[7] := '3550308'; //<CodigoMunicipio>
ttomador[8] := 'SP'; //<Uf>
ttomador[9] := '01045010'; //<Cep>
ttomador[10] := 'contato@asscomponentes.com.br'; //<EmailTomador> Layout - 8 Aracajú
ttomador[11] := 'R'; //<TipoLogradouro> "R" - Rua; "A" - Avenida.
end else
{Sertãozinho - SP}
if layout = '12' then
begin
{Dados de identificação da solicitação de Emissão de Nota Eletrônica}
tIde[0] := nrps.Text; //<numeronfd> número sequencial, se informar "0" (zero), o num. da nf será gerado pelo sistema da prefeitura.
tIde[1] := '7'; //<codseriedocumento> série do documento, informar “7” fixo.
tIde[2] := '511'; //<codnaturezaoperacao> código fiscal de prestação de serviço (CFPS)
tIde[3] := '3'; //<codigocidade> Código da cidade, informar “3” fixo.
tIde[4] := '99999'; //<<inscricaomunicipalemissor> CCM da empresa emissora
tIde[5] := '18/11/2012'; //<dataemissao> Informar data de emissão da nota fiscal (somente aceitará o dia corrente)
{dados da transportadora - opcionais}
tIde[6] := ''; //<razaotransportadora>
tIde[7] := ''; //<cpfcnpjtransportadora>
tIde[8] := ''; //<enderecotransportadora>
tIde[9] := '0'; //<tipofrete>
tIde[10] :='0'; //<quantidade>
tIde[11] := ''; //<especie>
tIde[12] := '0'; //<pesoliquido>
tIde[13] := '0'; //<pesobruto>
{impostos}
tIde[14] := ''; //<pis>
tIde[15] := ''; //<cofins>
tIde[16] := ''; //<csll>
tIde[17] := ''; //<irrf>
tIde[18] := ''; //<inss>
tIde[19] := ''; //<descdeducoesconstrucao>
tIde[20] := ''; //<totaldeducoesconstrucao>
tIde[21] := 'true'; //<tributadonomunicipio> true ou false
tIde[22] := ''; //<numerort> Número do recibo provisório de serviço – RPS
tIde[23] := ''; //<codigoseriert> Serie do recibo, informar “7” fixo.
tIde[24] := ''; //<dataemissaort> Data que o RPS foi emitido
{Dados dos serviços e fatura - Atenção: separar as ocorrências por ";" conforme exemplo que gera 3 registros}
{dados fatura}
tServico[0] := '10/2012;11/2010;12/2010;'; //<numfatura>
tServico[1] := '10/10/2012;10/11/2012;10/12/2012;'; //<vencimentofatura>
tServico[2] := '100;100;100;'; //<valorfatura>
{dados serviço. Obs: todos os serviços devem estar enquadrados no mesmo código de serviço.}
tServico[3] := '2;3;1;'; //<quantidade>
tServico[4] := 'Servicos de Criacao de Logomarca;Servicos de Criacao de Logomarca;Servicos de Criacao de Logomarca'; //<descricao>
tServico[5] := '0101;0101;0101;'; //<codatividade> Deve ser o mesmo para todos os ítens de uma mesma nota
tServico[6] := '150;200;150;'; //<valorunitario>
tServico[7] := '5,5;5,5;5,5;'; //<aliquota>
tServico[8] := 'False;False;False;'; //<impostoretido>
{Dados do tomador de serviço}
tTomador[0] := 'MRN ltda.'; //<razaotomador>
tTomador[1] := 'MRN'; //<nomefantasiatomador>
tTomador[2] := 'R PEDRO AMERICO'; //<enderecotomador>
tTomador[3] := '32'; //<numeroendereco>
tTomador[4] := 'Ribeirao Preto'; //<cidadetomador>
tTomador[5] := 'SP'; //<estadotomador>
tTomador[6] := 'Brasil'; //<paistomador>
tTomador[7] := '21119898'; //<fonetomador>
tTomador[8] := ''; //<faxtomador>
tTomador[9] := '01045010'; //<ceptomador>
tTomador[10] := 'Centro'; //<bairrotomador>
tTomador[11] := 'teste@mrn.com.br'; //<emailtomador>
tTomador[12] := 'F'; //<tppessoa>
tTomador[13] := '30669959085'; //<cpfcnpjtomador>
tTomador[14] := ''; //<inscricaoestadualtomador>
tTomador[15] := ''; //<inscricaomunicipaltomador>
end else
{Curitiba - PR}
if (layout = '9') then
begin
{Dados de identificação do RPS}
tIde[0] := FormatFloat('00000000', StrToFloat(nrps.Text)); //<Numero> Número do RPS
tIde[1] := 'LLLLL'; //<Serie> Número de série do RPS
tIde[2] := '1'; //<Tipo> (RPS, RPS-M, RPS-C)
tIde[3] := '2012-08-02T09:08:47'; //<DataEmissao> Data de Emissão do Documento
tIde[4] := '1'; //<NaturezaOperacao> Código de natureza da operação: 1 – Tributação no município 2 - Tributação fora do município 3 - Isenção 4 - Imune 5 –Exigibilidade suspensa por decisão judicial 6 – Exigibilidade suspensa por procedimento administrativo.
tIde[5] := '1'; //<RegimeEspecialTributacao> Código de identificação do regime especial de tributação: 1 – Microempresa municipal 2 - Estimativa 3 – Sociedade de profissionais 4 – Cooperativa.
tIde[6] := '1'; //<OptanteSimplesNacional> Identificação de Sim/Não: 1 - Sim 2 – Não.
tIde[7] := '2'; //<IncentivadorCultural> Identificação de Sim/Não: 1 - Sim 2 – Não.
tIde[8] := '1'; //<StatusRPS> {SP:(N - Normal C - Cancelado), Outros:(1 - Normal 2 - Cancelado) }
{Intermediario Servico - opcional}
tIde[9] := ''; //<Cnpj> ou <Cpf>
tIde[10] := ''; //<RazaoSocial>
tIde[11] := ''; //<InscricaoMunicipal> IntermediarioServico
{Conjunto de dados e valores que compõe o documento fiscal}
tServico[0] := '0.10'; //<ValorServicos>
tServico[1] := '0.00'; //<ValorDeducoes>
tServico[2] := '0.00'; // <ValorPis>
tServico[3] := '0.00'; // <ValorCofins>
tServico[4] := '0.00'; // <ValorInss>
tServico[5] := '0.00'; // <ValorIr>
tServico[6] := '0.00'; // <ValorCsll>
tServico[7] := '2'; // <IssRetido> Layout - 1,3,4 = "true"/"false" Layout - 5,9 = "1"/"2"
tServico[8] := ''; // <ValorIss>
tServico[9] := '0.00'; // <OutrasRetencoes>
tServico[10] := '0.02'; // <Aliquota>
tServico[11] := '0.00'; // <DescontoIncondicionado>
tServico[12] := '0.00'; // <DescontoCondicionado>
tServico[13] := '0101'; // <CodigoServico>
tServico[14] := '0'; // <CNAE>
tServico[15] := '821999900'; // <CodigoTributacaoMunicipio>
tServico[16] := 'PRESTACAO DE SERVICO - TESTE OUTRAS INFORMACOES DO SERVICO.'; // <Discriminacao>
tServico[17] := '3106200'; // <CodigoMunicipio>
tServico[18] := 'T'; // <TributacaoRPS> Layout - 1 (SP) = "T" - Tributação no município de São Paulo "F" - T. fora do município de SP "I" - Isento.
tServico[19] := ''; // <ValorCredito>
tServico[20] := '1'; // <BaseCalculo> Layout - 8 Aracajú ??
tServico[21] := '0.10'; // <ValorLiquidoNfse>
{Dados do tomador de serviço}
tTomador[0] := '04595104448'; // <CPFCNPJTomador>
tTomador[1] := ''; // <InscricaoMunicipal>
tTomador[2] := 'RAZAO SOCIAL TESTE NFE PJ'; // <RazaoSocial>
tTomador[3] := 'R PEDRO AMERICO'; // <Endereco>
tTomador[4] := '32'; // <Numero>
tTomador[5] := 'ANDAR 27'; // <Complemento>
tTomador[6] := 'CENTRO'; // <Bairro>
tTomador[7] := '3550308'; // <CodigoMunicipio>
tTomador[8] := 'SP'; // <Uf>
tTomador[9] := '01045010'; // <Cep>
tTomador[10] := 'contato@asscomponentes.com.br'; // <EmailTomador> Layout - 8 Aracajú
tTomador[11] := 'R'; // <TipoLogradouro> "R" - Rua "A" - Avenida.c
tTomador[12] := 'ISENTO'; // <InscricaoEstadualTomador>
end else
{Campo Grande - MS}
if (layout = '13') then
begin
{Dados de identificação do RPS}
tIde[0] := FormatFloat('00000000', StrToFloat(nrps.Text)); // <Numero> Número do RPS
tIde[1] := ParametroConfig('ide_Razao', ''); // <RazaoSocialPrestador>
tIde[2] := 'RPS'; // <TipoRPS> padrão - RPS
tIde[3] := 'NF'; // <SerieRPS> padrão - NF
tIde[4] := ParametroConfig('ide_IM', ''); // <InscricaoMunicipalPrestador>
tIde[5] := '2011-11-16T11:00:00'; // <DataEmissaoRPS> Data de Emissão do RPS
tIde[6] := 'N'; // <SituacaoRPS> "N" - normal ou "C" - cancelada
tIde[7] := '99'; // <SeriePrestacao>
{Conjunto de dados e valores que compõe o documento fiscal}
tServico[0] := '010100188'; //<CodigoAtividade> CNAE
tServico[1] := '0.00'; //<AliquotaAtividade>
tServico[2] := 'A'; // <TipoRecolhimento> A - a receber, R - retido na fonte
tServico[3] := '19'; // <MunicipioPrestacao> cod. do município padrão siaf
tServico[4] := 'CAMPO GRANDE'; // <MunicipioPrestacaoDescricao>
tServico[5] := 'B'; // <Operacao> A - sem dedução, B - com dedução/materiais, C - Imune, D - Devolução/ Simples Remessa
tServico[6] := 'T'; // <Tributacao>
tServico[7] := '0.00'; // <ValorPIS>
tServico[8] := '0.00'; // <ValorCOFINS>
tServico[9] := '0.00'; // <ValorINSS>
tServico[10] := '0.00'; // <ValorIR>
tServico[11] := '0.00'; // <ValorCSLL>
tServico[12] := '0.00'; // <AliquotaPIS>
tServico[13] := '0.00'; //<AliquotaCOFINS>
tServico[14] := '0.00'; // <AliquotaINSS>
tServico[15] := '0.00'; // <AliquotaIR>
tServico[16] := '0.00'; // <AliquotaCSLL>
tServico[17] := 'PRESTACAO DE SERVICO - TESTE'; // <DescricaoRPS>
tServico[18] := '011'; // <DDDPrestador>
tServico[19] := '21526542'; // <TelefonePrestador>
tServico[20] := '011'; // <DDDTomador>
tServico[21] := '21522235'; // <TelefoneTomador>
tServico[22] := 'SERVICO DE MANUTENCAO'; // <DiscriminacaoServico>
tServico[23] := '1'; // <Quantidade>
tServico[24] := '100.00'; // <ValorUnitario>
tServico[25] := '100.00'; // <ValorTotal>
tServico[26] := 'N'; // <Tributavel>
{Dados do tomador de serviço}
tTomador[0] := '11143662000137'; // <CPFCNPJTomador> informar nesse campo o cpf ou o cnpj do tomador (11 ou 14 dígitos)
tTomador[1] := '2463040011'; // <InscricaoMunicipalTomador>
tTomador[2] := 'RAZAO DE TESTE ASS COMPONENTES'; // <RazaoSocialTomador>
tTomador[3] := 'R PEDRO AMERICO'; // <LogradouroTomador>
tTomador[4] := '32'; // <NumeroEnderecoTomador>
tTomador[5] := 'BAIRRO'; // <TipoBairroTomador>
tTomador[6] := 'APARECIDA'; // <BairroTomador>
tTomador[7] := '3106200'; // <CidadeTomador>
tTomador[8] := 'CAMPO GRANDE'; // <CidadeTomadorDescricao>
tTomador[9] := '01045010'; // <CEPTomador>
tTomador[10] := 'emailtomador@gmail.com.br'; // <EmailTomador> caso o tomador do serv. não possua email informar "-" e para mais de um email separar por ";" entre os email´s e no final
tTomador[11] := 'RUA'; // <TipoLogradouroTomador>
end else
showmessage('Layout definido ainda não liberado #'+layout+'.'+#13+'Contate o suporte.');
ret := GeraLoteRps(tIde,tServico, tTomador);
EditStatus.Text := 'path RPS Gerado: '+ ret;
finally
Screen.Cursor := crDefault;
Button1.Enabled := True;
vlrps := StrToInt(nrps.Text);
Inc(vlrps);
nrps.Text := IntToStr(vlrps);
end;
end;