PC SOFT
ONLINE REPOSITORY
FOR WINDEVWEBDEV AND WINDEV MOBILE

Home |  | Sign in | English US
[DLL Unimake.DFe] Conhecendo e enviando a NFSe (Notas Fiscais de Serviços Eletrônicas) às Prefeituras - Parte 2
Published by Wandrey
in the category Various
New features



Description
No 16º episódio do Wandrey Descomplica sobre a DLL Unimake.DFe, aprendemos:

- Como consultar o lote RPS, RPS ou NFSe no (Padrão PAULISTANA);
- Como enviar XML da NFSe para municípios do padrão BETHA.

A seguir, apresento o código em WINDEV para realizar as tarefas descritas acima.

Como consultar o lote RPS, RPS ou NFSe no (Padrão PAULISTANA):

```
oConfiguracao is Unimake.Business.DFe.Servicos.Configuracao
oConfiguracao.TipoDFe = TipoDFe.NFSe
oConfiguracao.CertificadoArquivo = "C:\projetos\Unimake_PV.pfx"
oConfiguracao.CertificadoSenha = "12345678"
oConfiguracao.TipoAmbiente = TipoAmbiente.Producao

oConfiguracao.CodigoMunicipio = 3550308 //Código do IBGE de São Paulo-SP
oConfiguracao.Servico = 45 //Servico.NFSeEnvioRps
oConfiguracao.SchemaVersao = "2.00"

//oConfiguracao.MunicipioSenha = "123456"
//oConfiguracao.MunicipioUsuario = "01001001000113"

//Montar a string do XML
//xmlNfse is string = fLoadText("D:\testenfe\NFSeSP.xml")
xmlNfse is string = "" //###
xmlNfse = xmlNfse + "<?xml version=""1.0"" encoding=""UTF-8""?>"
xmlNfse = xmlNfse + "<PedidoEnvioRPS xmlns=""http://www.prefeitura.sp.gov.br/nfe"">"
xmlNfse = xmlNfse + "<Cabecalho Versao=""1"" xmlns="""">"
xmlNfse = xmlNfse + "<CPFCNPJRemetente>"
xmlNfse = xmlNfse + "<CNPJ>99999997000100</CNPJ>"
xmlNfse = xmlNfse + "</CPFCNPJRemetente>"
xmlNfse = xmlNfse + "</Cabecalho>"
xmlNfse = xmlNfse + "<RPS xmlns="""">"
xmlNfse = xmlNfse + "<Assinatura>d8Pg/jdA7t5tSaB8Il1d/CMiLGgfFAXzTL9o5stv6TNbhm9I94DIo0/ocqJpGx0KzoEeIQz4RSn99pWX4fiW/aETlNT3u5woqCAyL6U2hSyl/eQfWRYrqFu2zcdc4rsAG/wJbDjNO8y0Pz9b6rlTwkIJ+kMdLo+EWXMnB744olYE721g2O9CmUTvjtBgCfVUgvuN1MGjgzpgyussCOSkLpGbrqtM5+pYMXZsTaEVIIck1baDkoRpLmZ5Y/mcn1/Om1fMyhJVUAkgI5xBrORuotIP7e3+HLJnKgzQQPWCtLyEEyAqUk9Gq64wMayITua5FodaJsX+Eic/ie3kS5m50Q==</Assinatura>"
xmlNfse = xmlNfse + "<ChaveRPS>"
xmlNfse = xmlNfse + "<InscricaoPrestador>39616924</InscricaoPrestador>"
xmlNfse = xmlNfse + "<SerieRPS>BB</SerieRPS>"
xmlNfse = xmlNfse + "<NumeroRPS>4105</NumeroRPS>"
xmlNfse = xmlNfse + "</ChaveRPS>"
xmlNfse = xmlNfse + "<TipoRPS>RPS-M</TipoRPS>"
xmlNfse = xmlNfse + "<DataEmissao>2015-01-20</DataEmissao>"
xmlNfse = xmlNfse + "<StatusRPS>N</StatusRPS>"
xmlNfse = xmlNfse + "<TributacaoRPS>T</TributacaoRPS>"
xmlNfse = xmlNfse + "<ValorServicos>20500</ValorServicos>"
xmlNfse = xmlNfse + "<ValorDeducoes>5000</ValorDeducoes>"
xmlNfse = xmlNfse + "<ValorPIS>10</ValorPIS>"
xmlNfse = xmlNfse + "<ValorCOFINS>10</ValorCOFINS>"
xmlNfse = xmlNfse + "<ValorINSS>10</ValorINSS>"
xmlNfse = xmlNfse + "<ValorIR>10</ValorIR>"
xmlNfse = xmlNfse + "<ValorCSLL>10</ValorCSLL>"
xmlNfse = xmlNfse + "<CodigoServico>7617</CodigoServico>"
xmlNfse = xmlNfse + "<AliquotaServicos>0.05</AliquotaServicos>"
xmlNfse = xmlNfse + "<ISSRetido>false</ISSRetido>"
xmlNfse = xmlNfse + "<CPFCNPJTomador>"
xmlNfse = xmlNfse + "<CPF>12345678909</CPF>"
xmlNfse = xmlNfse + "</CPFCNPJTomador>"
xmlNfse = xmlNfse + "<RazaoSocialTomador>TOMADOR PF</RazaoSocialTomador>"
xmlNfse = xmlNfse + "<EnderecoTomador>"
xmlNfse = xmlNfse + "<TipoLogradouro>Av</TipoLogradouro>"
xmlNfse = xmlNfse + "<Logradouro>Paulista</Logradouro>"
xmlNfse = xmlNfse + "<NumeroEndereco>100</NumeroEndereco>"
xmlNfse = xmlNfse + "<ComplementoEndereco>Cj 35</ComplementoEndereco>"
xmlNfse = xmlNfse + "<Bairro>Bela Vista</Bairro>"
xmlNfse = xmlNfse + "<Cidade>3550308</Cidade>"
xmlNfse = xmlNfse + "<UF>SP</UF>"
xmlNfse = xmlNfse + "<CEP>1310100</CEP>"
xmlNfse = xmlNfse + "</EnderecoTomador>"
xmlNfse = xmlNfse + "<EmailTomador>tomador@teste.com.br</EmailTomador>"
xmlNfse = xmlNfse + "<Discriminacao>Desenvolvimento de Web Site Pessoal.</Discriminacao>"
xmlNfse = xmlNfse + "</RPS>"
xmlNfse = xmlNfse + "</PedidoEnvioRPS>"

EDT_RetornoWSString += "XML da NFSe:" + CR + CR + xmlNfse + CR + CR

WHEN EXCEPTION IN
oEnvioRPS is Unimake.Business.DFe.Servicos.NFSe.EnvioRps()
oEnvioRPS.Executar(xmlNfse, oConfiguracao) //###

EDT_RetornoWSString += "XML Retornado" + CR + CR
EDT_RetornoWSString += oEnvioRPS.RetornoWSString + CR +CR

//Criar o XML de consulta nfse por RPS
xmlConsultaRPS is string = ""
xmlConsultaRPS = xmlConsultaRPS + "<?xml version=""1.0"" encoding=""UTF-8""?>"
xmlConsultaRPS = xmlConsultaRPS + "<p1:PedidoConsultaNFe xmlns:p1=""http://www.prefeitura.sp.gov.br/nfe"" xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"">"
xmlConsultaRPS = xmlConsultaRPS + "<Cabecalho Versao=""1"">"
xmlConsultaRPS = xmlConsultaRPS + "<CPFCNPJRemetente>"
xmlConsultaRPS = xmlConsultaRPS + "<CNPJ>99999997000100</CNPJ>"
xmlConsultaRPS = xmlConsultaRPS + "</CPFCNPJRemetente>"
xmlConsultaRPS = xmlConsultaRPS + "</Cabecalho>"
xmlConsultaRPS = xmlConsultaRPS + "<Detalhe>"
xmlConsultaRPS = xmlConsultaRPS + "<ChaveRPS>"
xmlConsultaRPS = xmlConsultaRPS + "<InscricaoPrestador>39616924</InscricaoPrestador>"
xmlConsultaRPS = xmlConsultaRPS + "<SerieRPS>BB</SerieRPS>"
xmlConsultaRPS = xmlConsultaRPS + "<NumeroRPS>4105</NumeroRPS>"
xmlConsultaRPS = xmlConsultaRPS + "</ChaveRPS>"
xmlConsultaRPS = xmlConsultaRPS + "</Detalhe>"
xmlConsultaRPS = xmlConsultaRPS + "</p1:PedidoConsultaNFe>"

EDT_RetornoWSString += "XML Consulta" + CR + CR
EDT_RetornoWSString += xmlConsultaRPS + CR + CR

//Consumir o serviço de consulta nfse por RPS
oConfigConsulta is Unimake.Business.DFe.Servicos.Configuracao
oConfigConsulta.TipoDFe = 5 // TipoDFe.NFSe
oConfigConsulta.CertificadoArquivo = "C:\Projetos\Unimake_PV.pfx"
oConfigConsulta.CertificadoSenha = "12345678"
oConfigConsulta.TipoAmbiente = 1 // Produção
oConfigConsulta.CodigoMunicipio = 3550308 // Código do IBGE de São Paulo-SP
oConfigConsulta.Servico = 32 // Servico.NFSeConsultarNfse
oConfigConsulta.SchemaVersao = "2.00"

oConsultarNfse is Unimake.Business.DFe.Servicos.NFSe.ConsultarNfse()
oConsultarNfse.Executar(xmlConsultaRPS, oConfigConsulta)

EDT_RetornoWSString += "Retorno Consulta" +CR +CR
EDT_RetornoWSString += oConsultarNfse.RetornoWSString

Info("FIM")
DO
Info(ExceptionInfo(errFullDetails)) //Ele também pega o conteúdo da Exception do lado do C#, importante envolver o código em Try/Catch
END
```

Como enviar XML da NFSe para municípios do padrão BETHA:

```
oConfiguracao is Unimake.Business.DFe.Servicos.Configuracao
oConfiguracao.TipoDFe = TipoDFe.NFSe
oConfiguracao.CertificadoArquivo = "C:\projetos\Unimake_PV.pfx"
oConfiguracao.CertificadoSenha = "12345678"
oConfiguracao.TipoAmbiente = TipoAmbiente.Producao

oConfiguracao.CodigoMunicipio = 9999903 //Código do IBGE de São Paulo-SP
oConfiguracao.Servico = 29 //Servico.NFSeRecepcionarLoteRpsSincrono
oConfiguracao.SchemaVersao = "2.02"

//oConfiguracao.MunicipioSenha = "123456"
//oConfiguracao.MunicipioUsuario = "01001001000113"

//Montar a string do XML
//xmlNfse is string = fLoadText("D:\testenfe\NFSeSP.xml")
xmlNfse is string = ""
xmlNfse = xmlNfse + "<?xml version=""1.0"" encoding=""utf-8""?>"
xmlNfse = xmlNfse + "<EnviarLoteRpsSincronoEnvio xmlns=""http://www.betha.com.br/e-nota-contribuinte-ws"">"
xmlNfse = xmlNfse + "<LoteRps Id=""LOTE11628"" versao=""2.02"">"
xmlNfse = xmlNfse + "<NumeroLote>11628</NumeroLote>"
xmlNfse = xmlNfse + "<CpfCnpj>"
xmlNfse = xmlNfse + "<Cnpj>00000000000000</Cnpj>"
xmlNfse = xmlNfse + "</CpfCnpj>"
xmlNfse = xmlNfse + "<InscricaoMunicipal>1111</InscricaoMunicipal>"
xmlNfse = xmlNfse + "<QuantidadeRps>1</QuantidadeRps>"
xmlNfse = xmlNfse + "<ListaRps>"
xmlNfse = xmlNfse + "<Rps>"
xmlNfse = xmlNfse + "<InfDeclaracaoPrestacaoServico Id=""RPS1551"">"
xmlNfse = xmlNfse + "<Rps>"
xmlNfse = xmlNfse + "<IdentificacaoRps>"
xmlNfse = xmlNfse + "<Numero>1551</Numero>"
xmlNfse = xmlNfse + "<Serie>1</Serie>"
xmlNfse = xmlNfse + "<Tipo>1</Tipo>"
xmlNfse = xmlNfse + "</IdentificacaoRps>"
xmlNfse = xmlNfse + "<DataEmissao>2021-07-27</DataEmissao>"
xmlNfse = xmlNfse + "<Status>1</Status>"
xmlNfse = xmlNfse + "</Rps>"
xmlNfse = xmlNfse + "<Competencia>2021-07-27</Competencia>"
xmlNfse = xmlNfse + "<Servico>"
xmlNfse = xmlNfse + "<Valores>"
xmlNfse = xmlNfse + "<ValorServicos>50.00</ValorServicos>"
xmlNfse = xmlNfse + "<ValorDeducoes>0.00</ValorDeducoes>"
xmlNfse = xmlNfse + "<ValorPis>0.00</ValorPis>"
xmlNfse = xmlNfse + "<ValorCofins>0.00</ValorCofins>"
xmlNfse = xmlNfse + "<ValorInss>0.00</ValorInss>"
xmlNfse = xmlNfse + "<ValorIr>0.00</ValorIr>"
xmlNfse = xmlNfse + "<ValorCsll>0.00</ValorCsll>"
xmlNfse = xmlNfse + "<OutrasRetencoes>0.00</OutrasRetencoes>"
xmlNfse = xmlNfse + "<DescontoIncondicionado>0.00</DescontoIncondicionado>"
xmlNfse = xmlNfse + "<DescontoCondicionado>0.00</DescontoCondicionado>"
xmlNfse = xmlNfse + "</Valores>"
xmlNfse = xmlNfse + "<IssRetido>2</IssRetido>"
xmlNfse = xmlNfse + "<ItemListaServico>1401</ItemListaServico>"
xmlNfse = xmlNfse + "<Discriminacao>SERVICO DE CORTE E DOBRA A/c</Discriminacao>"
xmlNfse = xmlNfse + "<CodigoMunicipio>1111111</CodigoMunicipio>"
xmlNfse = xmlNfse + "<ExigibilidadeISS>1</ExigibilidadeISS>"
xmlNfse = xmlNfse + "<MunicipioIncidencia>1111111</MunicipioIncidencia>"
xmlNfse = xmlNfse + "</Servico>"
xmlNfse = xmlNfse + "<Prestador>"
xmlNfse = xmlNfse + "<CpfCnpj>"
xmlNfse = xmlNfse + "<Cnpj>00000000000000</Cnpj>"
xmlNfse = xmlNfse + "</CpfCnpj>"
xmlNfse = xmlNfse + "<InscricaoMunicipal>1111</InscricaoMunicipal>"
xmlNfse = xmlNfse + "</Prestador>"
xmlNfse = xmlNfse + "<Tomador>"
xmlNfse = xmlNfse + "<IdentificacaoTomador>"
xmlNfse = xmlNfse + "<CpfCnpj>"
xmlNfse = xmlNfse + "<Cnpj>00000000000000</Cnpj>"
xmlNfse = xmlNfse + "</CpfCnpj>"
xmlNfse = xmlNfse + "</IdentificacaoTomador>"
xmlNfse = xmlNfse + "<RazaoSocial>xxxxxxxx ALIMENTOS LTDA</RazaoSocial>"
xmlNfse = xmlNfse + "<Endereco>"
xmlNfse = xmlNfse + "<Endereco>ROD. xxxxx xxxxxxxxx</Endereco>"
xmlNfse = xmlNfse + "<Numero>sn</Numero>"
xmlNfse = xmlNfse + "<Bairro>ZONA RURAL</Bairro>"
xmlNfse = xmlNfse + "<CodigoMunicipio>1111111</CodigoMunicipio>"
xmlNfse = xmlNfse + "<Uf>PR</Uf>"
xmlNfse = xmlNfse + "<Cep>87706060</Cep>"
xmlNfse = xmlNfse + "</Endereco>"
xmlNfse = xmlNfse + "<Contato>"
xmlNfse = xmlNfse + "<Telefone>1111111111111</Telefone>"
xmlNfse = xmlNfse + "<Email>teste@hotmail.com</Email>"
xmlNfse = xmlNfse + "</Contato>"
xmlNfse = xmlNfse + "</Tomador>"
xmlNfse = xmlNfse + "<RegimeEspecialTributacao>1</RegimeEspecialTributacao>"
xmlNfse = xmlNfse + "<OptanteSimplesNacional>2</OptanteSimplesNacional>"
xmlNfse = xmlNfse + "<IncentivoFiscal>2</IncentivoFiscal>"
xmlNfse = xmlNfse + "</InfDeclaracaoPrestacaoServico>"
xmlNfse = xmlNfse + "</Rps>"
xmlNfse = xmlNfse + "</ListaRps>"
xmlNfse = xmlNfse + "</LoteRps>"
xmlNfse = xmlNfse + "</EnviarLoteRpsSincronoEnvio>"

EDT_RetornoWSString += "XML da NFSe:" + CR + CR + xmlNfse + CR + CR

WHEN EXCEPTION IN
oRecepcionarLoteRpsSincrono is Unimake.Business.DFe.Servicos.NFSe.RecepcionarLoteRpsSincrono()
oRecepcionarLoteRpsSincrono.Executar(xmlNfse, oConfiguracao)

EDT_RetornoWSString += "XML Retornado" + CR + CR
EDT_RetornoWSString += oRecepcionarLoteRpsSincrono.RetornoWSString + CR +CR

//Criar o XML de consulta nfse por RPS
xmlConsultaRPS is string = ""
xmlConsultaRPS = xmlConsultaRPS + "<?xml version=""1.0"" encoding=""utf-8""?>"
xmlConsultaRPS = xmlConsultaRPS + "<ConsultarNfseRpsEnvio xmlns=""http://www.betha.com.br/e-nota-contribuinte-ws"">"
xmlConsultaRPS = xmlConsultaRPS + "<IdentificacaoRps>"
xmlConsultaRPS = xmlConsultaRPS + "<Numero>24</Numero>"
xmlConsultaRPS = xmlConsultaRPS + "<Serie>A1</Serie>"
xmlConsultaRPS = xmlConsultaRPS + "<Tipo>1</Tipo>"
xmlConsultaRPS = xmlConsultaRPS + "</IdentificacaoRps>"
xmlConsultaRPS = xmlConsultaRPS + "<Prestador>"
xmlConsultaRPS = xmlConsultaRPS + "<CpfCnpj>"
xmlConsultaRPS = xmlConsultaRPS + "<Cnpj>45111111111100</Cnpj>"
xmlConsultaRPS = xmlConsultaRPS + "</CpfCnpj>"
xmlConsultaRPS = xmlConsultaRPS + "<InscricaoMunicipal>123498</InscricaoMunicipal>"
xmlConsultaRPS = xmlConsultaRPS + "</Prestador>"
xmlConsultaRPS = xmlConsultaRPS + "</ConsultarNfseRpsEnvio>"

EDT_RetornoWSString += "XML Consulta" + CR + CR
EDT_RetornoWSString += xmlConsultaRPS + CR + CR

//Consumir o serviço de consulta nfse por RPS
oConfigConsulta is Unimake.Business.DFe.Servicos.Configuracao
oConfigConsulta.TipoDFe = 5 // TipoDFe.NFSe
oConfigConsulta.CertificadoArquivo = "C:\Projetos\Unimake_PV.pfx"
oConfigConsulta.CertificadoSenha = "12345678"
oConfigConsulta.TipoAmbiente = 1 // Produção
oConfigConsulta.CodigoMunicipio = 9999903 // Código do IBGE de São Paulo-SP
oConfigConsulta.Servico = 36 // Servico.NFSeConsultarNfsePorRps
oConfigConsulta.SchemaVersao = "2.02"

oConsultarNfsePorRps is Unimake.Business.DFe.Servicos.NFSe.ConsultarNfsePorRps()
oConsultarNfsePorRps.Executar(xmlConsultaRPS, oConfigConsulta)

EDT_RetornoWSString += "Retorno Consulta" +CR +CR
EDT_RetornoWSString += oConsultarNfsePorRps.RetornoWSString

Info("FIM")
DO
Info(ExceptionInfo(errFullDetails)) //Ele também pega o conteúdo da Exception do lado do C#, importante envolver o código em Try/Catch
END
```

Para uma explicação mais detalhada do conteúdo deste post, confira o vídeo no seguinte link:
https://www.youtube.com/watch?v=eP3AZH7VSfw
Illustrations, screen shots
none
none
User reviews
(To evaluate this resource, click 'Write a review')
No review or comment? Be the first one!