Skip to content
This repository has been archived by the owner on Sep 15, 2021. It is now read-only.

Exemplo de Uso da DLL usando a classe Proxy

Rodolfo Duarte edited this page Dec 16, 2016 · 1 revision

[TestMethod]

public void Enviar_Proxy() {

// Variaveis auxiliares
var numeroRPS = 123;
var numeroLote = 1;
var ret = false;
var msgAlerta = "";
var msgErro = "";

// Cria instancia da classe Proxy
var oNFSe = new ACBrNFSeProxy();

// Define como a DLL irá gerenciar os arquivos em disco
ret = oNFSe.SetupArquivos(true, @"C:\ACBR_NET_ACBR", @"C:\ACBR_NET_ACBR", @"C:\ACBR_NET_ACBR", ref msgAlerta, ref msgErro);
// Provedor a ser utilizado
ret = oNFSe.SetupWebService(3543402, (int)DFeTipoAmbiente.Homologacao, "Código do Certificado Digital - Para selecionar o certificado, utilize oNFSE.SelecionarCertificado(@msgAlerta, @msgErro)", "Senha do Certificado Digital", ref msgAlerta, ref msgErro);
// Prestador do Serviço
ret = oNFSe.SetupPrestador("CNPJ", "IM", "RAZAO SOCIAL", "FANTASIA", "AV", "NOME DA AVENIDA", "NUMERO", "COMPLEMENTO", "BAIRRO", 3543402, "RIBEIRÃO PRETO", "SP", "CEP", "16", "FONE", "EMAIL", ref msgAlerta, ref msgErro);

// Abre um novo RPS
ret = oNFSe.RPS("1", "1", (int)TipoRps.RPS, DateTime.Now, (int)SituacaoNFSeRps.Normal, "", "", 0, (int)NaturezaOperacao.NT01, (int)RegimeEspecialTributacao.SimplesNacional, (int)NFSeSimNao.Nao, ref msgAlerta, ref msgErro);
// Serviço prestado
ret = oNFSe.RPSServico("107", "01.07.00 / 00010700", "", 3543402, "MANUTENÇÃO TÉCNICA / VOCÊ PAGOU APROXIMADAMENTE R$ 1,23 DE TRIBUTOS FEDERAIS, R$ 2,34 DE TRIBUTOS MUNICIPAIS, R$ 96,43 PELOS SERVIÇOS, FONTE: IBPT.", ref msgAlerta, ref msgErro);
// Valores do serviço prestado
ret = oNFSe.RPSValores(100, 0, 0, 0, 0, 0, 0, (int)SituacaoTributaria.Normal, 0, 0, 100, 2, 0, 0, 0, 0, 0, ref msgAlerta, ref msgErro);
// Tomador do serviço
ret = oNFSe.RPSTomador("CNPJ OU CPF", "IM", "RAZAO SOCIAL / NOME", "AV", "NOME DA AVENIDA", "NUMERO", "COMPLEMENTO", "BAIRRO", 3543402, "RIBEIRÃO PRETO", "SP", "CEP", "16", "FONE", "EMAIL", ref msgAlerta, ref msgErro);

// Outros métodos disponíveis para preenchimento da coleção de RPS:
// oNFSe.RPSIntermediario, oNFSe.RPSOrgaoGerador, oNFSe.RPSConstrucaoCivil

// Se houver mais um RPS para adicionar no lote, repita a sequencia acima:
// oNFSe.RPS / oNFSe.RPSServico / oNFSe.RPSValores / oNFSe.RPSTomador
        
// Envia o Lote de RPS
ret = oNFSe.EnviarLote(numeroLote, false, false, ref msgAlerta, ref msgErro);
// Mensagem de Envio para o webservice
var xmlLoteEnvio = oNFSe.MensagemRetorno.XmlEnvio;
// Mensagem de Retorno do webservice
var xmlLoteRetorno = oNFSe.MensagemRetorno.XmlRetorno;
// Número do protocolo
var xmlLoteProtocolo = oNFSe.MensagemRetorno.Protocolo;

// Aguarda 10 segundos
Thread.Sleep(10000);

// Consulta Situação do Lote:
ret = oNFSe.ConsultarSituacaoLote(numeroLote, xmlLoteProtocolo, ref msgAlerta, ref msgErro);
// Mensagem de Envio para o webservice
var xmlSituacaoEnvio = oNFSe.MensagemRetorno.XmlEnvio;
// Mensagem de Retorno do webservice
var xmlSituacaoRetorno = oNFSe.MensagemRetorno.XmlRetorno;
// Situacao do Lote
var situacaoDoLote = oNFSe.MensagemRetorno.Situacao;

if (situacaoDoLote == "3" || situacaoDoLote == "4") // GINFES: 3 - Processado com Erros / 4-Processado Sem Erros
{
    // Consulta o Lote
    ret = oNFSe.ConsultarLote(numeroLote, xmlLoteProtocolo, ref msgAlerta, ref msgErro);
    // Mensagem de Envio para o webservice
    var xmlConsultaLoteEnvio = oNFSe.MensagemRetorno.XmlEnvio;
    // Mensagem de Retorno do webservice
    var xmlConsultaLoteRetorno = oNFSe.MensagemRetorno.XmlRetorno;
}

Assert.Inconclusive("OK?");

}

Clone this wiki locally