Gera loterps flexdocs

12

Click here to load reader

Transcript of Gera loterps flexdocs

Page 1: Gera loterps   flexdocs

10.5. GeraLoteRPS

Gerar Lote de RPS

Assinatura

string geraLoteRPS(string LoteRPSTXT, string nroLote, string nomeCertificado, string cMunicipio, out int resultado, out string

msgResultado, out string erros, string licenca);

Descrição:

Funcionalidade para gerar um lote de RPS a partir de um TXT, é a forma mais simples e rápida de gerar um Lote de RPS.

Esta funcionalidade:

gera o XML do RPS a partir do TXT;

assina o XML do RPS se necessário;

forma o lote de RPS;

assina o lote de RPS.

Preenchimento do nomeCertificado

informar o Nome do titular (campo Assunto) do certificado digital a ser utlizado na conexão SSL. Ex.: "CN=NFe - Associacao

NF-e:99999090910270, C=BR, L=PORTO ALEGRE, O=Teste Projeto NFe RS, OU=Teste Projeto NFe RS, S=RS"

Parâmetros:

nome tipo fluxo descrição

loteRPSTXT string entradainformar a string com o TXT gerado de acordo com o leiaute da string TXT de entrada da DLL

desta página, existem exemplos de arquivos TXT no pasta ..\NFSe_Util\ExemploXML do demo.

nroLote string entradainformar a string com o número do lote

O número do lote não pode ser reutilizado na cidades atendidas pela Betha

nomeCertificado string entrada

informar o Nome do titular (campo Assunto) do certificado digital a ser utlizado na conexão SSL.

Ex.: "CN=NFe - Associacao NF-e:99999090910270, C=BR, L=PORTO ALEGRE, O=Teste Projeto

NFe RS, OU=Teste Projeto NFe RS, S=RS"

cMunicipio string entrada

informar o código do IBGE do Município para o qual será enviado o lote de RPS.

Obs: Verifique se a funcionalidade é compatível com o seu munícipio, a funcionalidade não é

compatível com: São Paulo/SP e municípios atendidos pelos provedores DSF e Equiplano

resultado inteiro saída retorna o resultado da chamada da funcionalidade

msgResultado string saída retorna a literal do resultado da chamada da DLL

erros string saída retorna a lista de erros ocorridos na conversão

licenca string entrada informar a chave da licença de uso, deixar em branco para uso em ambiente de homologação

Leiaute da string TXT de entrada:

Orientação de preenchimento

padrão do string de entrada - o string TXT pode ter até 100 registro RPS de tamanho fixo de 3053 caracteres separados

por CR/LF.

quantidade máxima de RPS por Lote - cada registro de 3053 caracteres representa um RPS, assim, a quantidade

máxima de RPS permitidos é 100 registros de RPS, mas nem todos os municípios aceitam mais de 50 RPS por lote, também

Guia de Uso da NFSe_Util v1.5a

Guia de Uso » Funcionalidades » GeraLoteRPS

GeraLoteRPS - Guia de Uso da NFSe_Util http://flexdocs.com.br/guiaNFSe/funcao.RPS.html

1 de 12 27/06/2012 17:30

Page 2: Gera loterps   flexdocs

pode existir o limite no tamanho da mensagem (Ex. 500Kb), assim verifique os limites na documentação técnica do

respectivo município.

preenchimento dos campos - Os registros são posicionais e os campos tem tamanho fixo que devem ser preenchidos da

seguinte forma:

C - campo caractere, preechimento da esquerda para a direita, acrescentar brancos até completar o tamanho do campo;

D - campo data, com o seguinte formato: AAAA-MM-DDTHH:MM:SS;

N - campo numérico, prenchimento da direita para a esquerda, acrescentar zeros à esquerda até completar o tamanho

do campo. Os campos de valores devem ser informados sem o ponto decimal, respeitando a quantidade de casas

decimais previstas: 2 para valor e 4 para alíquota.

preenchimento de campos ou grupos opcionais - nem todos os RPS têm os grupos e/ou campos destacados na cor

verde, quando não existir a informação o campo deve ser preechido com:

zeros, quando o campo for numérico;

brancos, quando o campo for caractere

diferença de leiaute dos RPS de cada município - não existe um padrão nacional de RPS, assim existem pequenas

diferenças nos RPS de cada município ou provedor, sendo necessário consultar a documentação técnica disponibilizada pela

prefeitura para fazer o correto preenchimento dos campos.

Solicitamos que entre em contato sempre que identificar alguma informação incorreta ou equívocada.

IMPORTANTE: A DLL somente oferece a funcionalidade para converter os dados informados no TXT para o XML do RPS, os

esclarecimentos de como cada campo do RPS deve ser preenchido e quais seriam os valores válidos devem ser obtidos na

documentação da prefeitura.

Falha na Assinatura

O certificado digital é responsável pela falha na assinatura, as principais causas são:

Uso de Certificado Digital sem chave privada - é comum o desenvolvedoer receber o arquivo de certificado digital de

seu cliente sem a chave privada, este tipo de arquivo tem extensão cer, se este for o caso solicite o arquivo novamente e

peça para exportar a chave privada. o arquivo gerado deve ter a extensão pfx e será protegido por senha.

Certificado Digital do tipo A3 ausente - o certificado digital do tipo A3 pode estar com mal contato ou ausente, tente

reconectar o dispositivo e verifique o status do certificado digital no aplicativo de administração do certificado digital.

Certificado Digital do tipo A1 da CEF

Download do Manual da CAIXA

Existe um "macete" para utilizar o certificado digital da CAIXA:

O problema deste certificado é que apesar de ser um certificado digital A1, ele age como se fosse um certificado digital A3 e

utiliza o CSP próprio (cefcert.dll que fica na pasta csp da aplicação da caixa), que não tem suporte para o tipo de assinatura

do projeto (só funciona para autenticação).

Assim, é necessário fazer com que o certificado utilize o CSP do Windows.

Os passos são:

instalar o certificado digital conforme orientação da CEF;1.

verificar o funcionamento do certificado e que o certificado consta da lista de certificados no Internet Explorer;2.

exportar o certificado digital pelo Internet Explorer;3.

desinstalar o aplicativo da CAIXA;4.

verificar se a DLL não ficou na pasta da aplicação da CAIXA;5.

importar o certificado digital exportado no item 3.6.

Os passos acima funcionam para windows XP e vista, mas não existe garantia de funcionamento para o windows 7, assim se

o equipamento tiver windows 7, tente fazer o processo em um equipamento que tenha windows XP, o certificado gerado no

item 3 deve funcionar no windows 7.

Reinstale o Certificado Digital - se não for nenhum dos casos acima, tente reinstalar o certificado digital novamente.

Campo tipo tam.posição

inicial

posição

finalobservação

IdentificacaoRps

Numero N 15 1 15

Serie C 5 16 20

deve ser numérico para

Belo Horizonte/MG e os

municípios usuários do

GeraLoteRPS - Guia de Uso da NFSe_Util http://flexdocs.com.br/guiaNFSe/funcao.RPS.html

2 de 12 27/06/2012 17:30

Page 3: Gera loterps   flexdocs

Campo tipo tam.posição

inicial

posição

finalobservação

ISS.NET

Tipo C 1 21 21

informar o código de tipo

de RPS:

1 - RPS

2 - Nota Fiscal Conjugada

(Mista)

3 - Cupom

DataEmissao D 19 22 40informar no formato:

AAAA-MM-DDTHH:MM:SS

NaturezaOperacao C 1 41 41

informar o 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

Obs.:informar os seguintes

códigos para municípios

com provedor Pública:

1 - ISS próprio

2 - ISS retido por tomador

do município

3 - ISS retido por tomador

de fora do município

4 - Isento/Imune

5 - ISS próprio pago para

outro município

6 - Simples Nacional

(pagamento na DAS)

7 - Simples Nacional

(imposto retido)

8 - ISS Fixo (sociedade

uniprofissional)

9 - Estimativa Fiscal

A - Escritório Contábil

(Simples Nacional)

informar os seguintes

códigos para municípios

com provedor Thema:

1- Imposto devido em São

Leopoldo, com obrigação

de retenção na fonte

2 - Imposto devido em São

Leopoldo, sem obrigação

de retenção na fonte

3 - Não tributável

4 - Imposto recolhido pelo

regime único de

arrecadação Simples

Nacional

5 - Imposto devido em São

Leopoldo, com obrigação

de retenção na fonte

6 - Imposto devido em São

GeraLoteRPS - Guia de Uso da NFSe_Util http://flexdocs.com.br/guiaNFSe/funcao.RPS.html

3 de 12 27/06/2012 17:30

Page 4: Gera loterps   flexdocs

Campo tipo tam.posição

inicial

posição

finalobservação

Leopoldo, sem obrigação de

retenção na fonte

7 - Imposto devido fora de

São Leopoldo, com

obrigação de retenção na

fonte

8 - Imposto devido fora de

São Leopoldo, sem

obrigação de retenção na

fonte

9 - Não tributável

A - Imposto recolhido pelo

regime único de

arrecadação Simples

Nacional

B - Não tributável.

RegimeEspecialTributacao C 1 42 42

informar o código de

identificação do regime

especial de tributação:

1 - Microempresa municipal

2 - Estimativa

3 - Sociedade de

profissionais

4 - Cooperativa

5 – MEI – Simples Nacional

6 – ME EPP – Simples

Nacional

informar branco para omitir

o campo

OptanteSimplesNacional C 1 43 43informar: 1 - Sim ou 2 -

Não

IncentivoCultural C 1 44 44informar: 1 - Sim ou 2 -

Não

Status C 1 45 45

informar o código de status

do RPS:

1 - Normal

2 - Cancelado

RpsSubstituido

Numero C 15 46 60

informar brancos nas

posições 46 a 66 para

omitir o grupo

RpsSubstituído

Serie C 5 61 65

deve ser numérico para

municípios usuários do

ISS.NET

Tipo C 1 66 66

informar o Código de tipo

de RPS:

1 - RPS

2 - Nota Fiscal Conjugada

(Mista)

3 - Cupom

Servico Valores

ValorServicos N 15,2 67 81

ValorDeducoes N 15,2 82 96

ValorPis N 15,2 97 111

ValorCofins N 15,2 112 126

ValorInss N 15,2 127 141

ValorIR N 15,2 142 156

GeraLoteRPS - Guia de Uso da NFSe_Util http://flexdocs.com.br/guiaNFSe/funcao.RPS.html

4 de 12 27/06/2012 17:30

Page 5: Gera loterps   flexdocs

Campo tipo tam.posição

inicial

posição

finalobservação

ValorCsll N 15,2 157 171

IssRetido N 1 172 172informar: 1 - Sim ou 2 -

Não

ValorIss N 15,2 173 187

ValorIssRetido N 15,2 188 202

OutrasRetencoes N 15,2 203 217

BaseCalculo N 15,2 218 232

(+) Valor dos serviços

(-) Valor das deduções

(-) Descontos

incondicionados

Aliquota N 5,4 233 237FAQ - preenchimento da

Aliquota

ValorLiquidoNfse N 15,2 238 252

(+) ValorServicos

(-) ValorPIS

(-) ValorCOFINS

(-) ValorINSS

(-) ValorIR

(-) ValorCSLL

(-) OutrasRetençoes

(-) ValorISSRetido

(-) DescontoIncondicionado

(-) DescontoCondicionado

Este campo deve ser

informado apesar de

constar como opcional.

DescontoIncondicionado N 15,2 253 267

DescontoCondicionado N 15,2 268 282

ItemListaServico C 5 283 287

Tabela de código de

Serviços

Em alguns municípios o

campo deve ser informado

sem ponto, com 4 dígitos

ajustado à esquerda com

um branco no final

Informar com 4 posições

no RPS do

ISS.NET(posições de 283 a

286)

FAQ - preenchimento do

ItemListaServico

CodigoCnae C 7 288 294

Pesquisa CNAE

Informar com 8 posições

no RPS do ISS.NET

(posições de 287 a 294).

Preencha o campo com

zeros se desejar omitir a

tag.

CodigoTributacaoMunicipio C 20 295 314

A tag

CodigoTributacaoMunicipio

- Codigo de Tributação do

Município é um código

"proprietário" de cada

município, não existe

qualquer padrão, assim é

necessário contatar o

município para identificar

GeraLoteRPS - Guia de Uso da NFSe_Util http://flexdocs.com.br/guiaNFSe/funcao.RPS.html

5 de 12 27/06/2012 17:30

Page 6: Gera loterps   flexdocs

Campo tipo tam.posição

inicial

posição

finalobservação

qual é a codificação

utilizada.

Algumas prefeituras

adotam o codificação da

lista de serviço da LC

116/03 ampliada, como é o

caso do prefeitura

municipal do Rio de

Janeiro/RJ.

A prefeitura de Belo

Horizonte/MG passou a

adotar o CTISS - Código de

Tributação do ISSQN a

partir de 01/04/2012.

As prefeituras que adotam

o padrão GINFES utilizam

os códigos utilizados no

GISS, este é um detalhe

importante, verifique se já

existia algum sistema ou

padrão de prestação de

informação na prefeitura,

pois as chances de

utilizarem a mesma

codificação anterior é

enorme.

Belo Horizonte - o CTISS

deve ser utilizado em

substituição a CNAE-BH a

partir de 01/04/2012.

Rio de Janeiro - tabela de

serviços.

CIDADES GINFES -

Consultar a lista de

Atividades da GISS Online

1. Seleciona seu Estado e a

Cidade;

2. Selecione a Lista de

atividades.

Informar com o seguinte

formato "14.03.00 /

00140300" em Ribeirão

Preto/SP

FAQ preenchimento do

CodigoTributacaoMunicipio

Discriminacao C 2000 315 2314

A DLL substituí a sequência

|| por CR/LF na montagem

do XML, mas cabe observar

que a informação de CR/LF

para formatar o texto nem

sempre é permitida.

A Prefeitura de BH/MG

substituí o | por CR/LF.

GeraLoteRPS - Guia de Uso da NFSe_Util http://flexdocs.com.br/guiaNFSe/funcao.RPS.html

6 de 12 27/06/2012 17:30

Page 7: Gera loterps   flexdocs

Campo tipo tam.posição

inicial

posição

finalobservação

CodigoMunicipio C 7 2315 2321

Informar o código do

município de prestação do

serviço.

Este campo chama-se

MunicipioPrestador no RPS

do ISS.NET e deve ser

informado com 999 para

uso no ambiente de

homologação do ISS.NET

PrestadorCnpj C 14 2322 2335

InscricaoMunicipal C 15 2336 2350

Tomador

IdentificacaoTomadorCpfCnpj

Cpf C 11 2351 2361

Cnpj C 14 2362 2375

InscricaoMunicipal C 15 2376 2390

RazaoSocial C 115 2391 2505

Endereco

Endereco C 125 2506 2630

Numero C 10 2631 2640

Complemento C 60 2641 2700

Bairro C 60 2701 2760

CodigoMunicipio C 7 2761 2767Este campo chama-se

Cidade no RPS do ISS.NET

UF C 2 2768 2769Este campo chama-se

Estado no RPS do ISS.NET

Cep C 8 2770 2777

ContatoTelefone C 11 2778 2788

Email C 80 2789 2868

ItermediarioServico

RazaoSocial C 115 2869 2983

informar brancos nas

posições 2869 a 3023 para

omitir o grupo

IntermediarioServico

CpfCnpjCpf C 11 2984 2994

Cnpj C 14 2995 3008

InscricaoMunicipal C 15 3009 3023

ConstrucaoCivilCodigoObra C 15 3024 3038

informar brancos nas

posições 3024 a 3053 para

omitir o grupo

ConstrucaoCivil

Art C 15 3039 3053

Diagrama de RPS padrão:

ATENÇÃO

Podem existir pequenas diferenças no leiaute de cada município, assim utilize o diagrama abaixo como mero material de apoio,

procure consultar a documentação técnica do município para ter o diagrama correto.

GeraLoteRPS - Guia de Uso da NFSe_Util http://flexdocs.com.br/guiaNFSe/funcao.RPS.html

7 de 12 27/06/2012 17:30

Page 8: Gera loterps   flexdocs

GeraLoteRPS - Guia de Uso da NFSe_Util http://flexdocs.com.br/guiaNFSe/funcao.RPS.html

8 de 12 27/06/2012 17:30

Page 9: Gera loterps   flexdocs

Exemplo de Criação do TXT

Delphi

procedure TForm1.Button4Click(Sender: TObject);

var

NumeroRPS: currency;

SerieRPS, TipoRPS:string;

DataEmissao:TDateTime;

VServico, Aliquota: currency;

TXT: widestring;

begin

//

// inicializa valores

//

NumeroRPS := 1234;

SerieRPS := 'A';

TipoRPS := '1';

//

DataEmissao := now();

//

VServico := 120.25;

Aliquota := 0.02;

//

// Monta linha de RPS

//------------------------------------------------------------

// Exemplo para formatar CARACTER

//

// Format('%-5s',[SerieRPS]);

//

// signficados de %-5s:

// - ---> ajustar o texto a esquerda

// 5 ---> tamanho final da string

//

// signficados de %-2000s:

// - ---> ajustar o texto a esquerda

// 2000 ---> tamanho final da string

//

//------------------------------------------------------------

// Exemplo para formatar VALOR

//

// FormatCurr('000000000000', NumeroRPS);

//

// Mascara deve ter a quantidade de zeros previsto para campo

//

// IMPORTANTE: necessário "eliminar os decimais" dos valores

// multiplique o valor por 100 nos campos de valor

// multiplique o valor por 10000 nos campos de aliquota

//

//------------------------------------------------------------

// Exemplo para formatar DATA

//

// FormatDateTime('yyyy-mm-dd',DataEmissao)+'T'+FormatDateTime('hh:nn:ss',DataEmissao)

//

//------------------------------------------------------------

// Concatenar RPS:

//

// Arquivo := Arquivo + #13+#10+ TXT;

//

TXT :='';

TXT := TXT + FormatCurr('000000000000', NumeroRPS);

TXT := TXT + Format('%-5s',[SerieRPS]);

TXT := TXT + Format('%-1s',[TipoRPS]);

TXT := TXT + FormatDateTime('yyyy-mm-dd',DataEmissao)+'T'+FormatDateTime('hh:nn:ss',DataEmissao);

GeraLoteRPS - Guia de Uso da NFSe_Util http://flexdocs.com.br/guiaNFSe/funcao.RPS.html

9 de 12 27/06/2012 17:30

Page 10: Gera loterps   flexdocs

TXT := TXT + FormatCurr('000000000000', VServico * 100);

TXT := TXT + FormatCurr('00000', Aliquota * 10000);

ShowMessage(TXT);

end;

VB 6.0

Private Sub Command1_Click()

Dim NumeroRPS As Double

Dim SerieRPS As String

Dim TipoRPS As String

Dim DataEmissao As Date

Dim Vservico As Double

Dim Aliquota As Double

Dim TXT As String

'

' inicializa valores

'

NumeroRPS = 1234

SerieRPS = "A"

TipoRPS = "1"

'

DataEmissao = Now()

'

Vservico = 120.25

Aliquota = 0.0215

'

' Monta linha de RPS

'------------------------------------------------------------

' Exemplo para formatar CARACTERE

'

' Left(SerieRPS + Space(5), 5)

'

' onde 5 e tamanha maximo do campo desejado

'

'------------------------------------------------------------

' Exemplo para formatar VALOR

'

' Format(NumeroRPS, "000000000000" )

'

' Mascara deve ter a quantidade de zeros previsto para campo

'

' IMPORTANTE: necessário "eliminar os decimais" dos valores

' multiplique o valor por 100 nos campos de valor

' multiplique o valor por 10000 nos campos de aliquota

'

'------------------------------------------------------------

' Exemplo para formatar DATA

'

' Format(DataEmissao, "yyyy-mm-dd") + "T" + Format(DataEmissao, "hh:mm:ss")

'

'------------------------------------------------------------

' Concatenar RPS:

'

' Arquivo = Arquivo + chr(13)+ chr(10)+ TXT

'

TXT = ""

TXT = TXT + Format(NumeroRPS, "000000000000")

TXT = TXT + Left(SerieRPS + Space(5), 5)

TXT = TXT + Left(TipoRPS + Space(1), 1)

TXT = TXT + Format(DataEmissao, "yyyy-mm-dd") + "T" + Format(DataEmissao, "hh:mm:ss")

GeraLoteRPS - Guia de Uso da NFSe_Util http://flexdocs.com.br/guiaNFSe/funcao.RPS.html

10 de 12 27/06/2012 17:30

Page 11: Gera loterps   flexdocs

TXT = TXT + Format(Vservico * 100, "000000000000")

TXT = TXT + Format(Aliquota * 10000, "00000")

MsgBox TXT

End Sub

Visual FoxPro

Local NumeroRPS as Double

Local SerieRPS as String

Local TipoRPS as String

Local DataEmissao as DateTime

Local Vservico as Double

Local Aliquota as Short

Local TXT as String

&&

&& inicializa valores

&&

NumeroRPS = 1234

SerieRPS = "A"

TipoRPS = "1"

&&

DataEmissao = DATETIME()

&&

Vservico = 120.25

Aliquota = 0.0215

&&

&& Monta linha de RPS

&&------------------------------------------------------------

&& Exemplo para formatar CARACTERE

&&

&& Left(SerieRPS + Space(5), 5)

&&

&& onde 5 e tamanha maximo do campo desejado

&&

&&------------------------------------------------------------

&& Exemplo para formatar VALOR

&&

&& TXT + TRANSFORM(Vservico * 100, "@L 999999999999")

&&

&& Mascara deve ter a quantidade de zeros previsto para campo

&&

&& IMPORTANTE: necessário "eliminar os decimais" dos valores

&& multiplique o valor por 100 nos campos de valor

&& multiplique o valor por 10000 nos campos de aliquota

&&

&&------------------------------------------------------------

&& Exemplo para formatar DATA

&&

&& TRANSFORM(TTOC(DataEmissao,1),"@R 9999-99-99T99:99:99")

&&

&&------------------------------------------------------------

&& Concatenar RPS:

&&

&& Arquivo = Arquivo + chr(13)+ chr(10)+ TXT

&&

TXT = ""

TXT = TXT + TRANSFORM(NumeroRPS, "@L 999999999999")

TXT = TXT + Left(SerieRPS + Space(5), 5)

TXT = TXT + Left(TipoRPS + Space(1), 1)

TXT = TXT + TRANSFORM(TTOC(DataEmissao,1),"@R 9999-99-99T99:99:99")

TXT = TXT + TRANSFORM(Vservico * 100, "@L 999999999999")

TXT = TXT + TRANSFORM(Aliquota * 10000, "@L 99999")

GeraLoteRPS - Guia de Uso da NFSe_Util http://flexdocs.com.br/guiaNFSe/funcao.RPS.html

11 de 12 27/06/2012 17:30

Page 12: Gera loterps   flexdocs

? TXT

Retorno:

O resultado da chamada do geraLoteRPS é o XML de lote de RPS.

O parâmetro resultado retorna um código numérico com os seguintes significados:

código Mensagem origem regra

5800 Lote de RPS gerado com sucesso! DLL -

5801 Erro: O parâmetro LoteRPSTXT sem conteúdo DLL -

5802 Erro: O parâmetro nroLote não contém um valor numérico: [valor recebido pela DLL] DLL -

5803Erro: O parâmetro nroLote contém um valor fora do intervalo válido (1-999999999999999): [valor

recebido pela DLL]DLL -

5804 Erro: O parâmetro nomeCertificado sem conteúdo DLL -

5805 Erro: O parâmetro LoteRPSTXT com conteúdo inválido, veja os erros: [lista de erros] DLL -

5806 Erro: O parâmetro LoteRPSTXT informado com erro de preenchimento, analise o log de erros DLL -

5807 Erro: Erro inesperado no tratamento da leitura do LoteRPSTXT: [mensagem do Windows DLL -

5808 Erro: A quantidade de RPS existente no lote: [{0:0}] fora do intervadlo válido (1-50) DLL -

5809 Erro: O parâmetro LoteRPSTXT informado com erro de preenchimento, analise o log de erros DLL -

5810Erro: A DLL ainda não foi customizada para gerar o LoteRPS para o Município: [cMunicipio], contate o

suporte (www.flexdocs.com.br/suporte) para outras informaçõesDLL -

5811 Erro: Falha na assinatura do lote DLL -

Histórico de atualização:

2010-10-18 - 1.0e - Versão beta preliminar.

2011-01-08 - 1.0i

2011-10-22 - 1.4a - Acrésicmo de código exemplo de geração do TXT do lote RPS

Copyright © FlexDocs Documentos Eletrônicos - 2008-2012 - Todos os direitos reservados

Generated by TypeFriendly 0.1.3 by Invenzzia

GeraLoteRPS - Guia de Uso da NFSe_Util http://flexdocs.com.br/guiaNFSe/funcao.RPS.html

12 de 12 27/06/2012 17:30