/// <summary> /// Envia um evento do tipo "EPEC" /// </summary> /// <param name="idlote"></param> /// <param name="sequenciaEvento"></param> /// <param name="nfe"></param> /// <param name="veraplic"></param> /// <returns>Retorna um objeto da classe RetornoRecepcaoEvento com o retorno do serviço RecepcaoEvento</returns> public RetornoRecepcaoEvento RecepcaoEventoEpec(int idlote, int sequenciaEvento, Classes.NFe nfe, string veraplic) { var versaoServico = Auxiliar.VersaoServicoParaString(ServicoNFe.RecepcaoEvento, _cFgServico.VersaoRecepcaoEvento); if (String.IsNullOrEmpty(nfe.infNFe.Id)) nfe.Assina().Valida(); var detevento = new detEvento { versao = versaoServico, cOrgaoAutor = nfe.infNFe.ide.cUF, tpAutor = TipoAutor.taEmpresaEmitente, verAplic = veraplic, dhEmi = !String.IsNullOrEmpty(nfe.infNFe.ide.dhEmi) ? nfe.infNFe.ide.dhEmi : Convert.ToDateTime(nfe.infNFe.ide.dEmi).ToString("yyyy-MM-ddTHH:mm:sszzz"), tpNF = nfe.infNFe.ide.tpNF, IE = nfe.infNFe.emit.IE, dest = new dest { UF = nfe.infNFe.dest.enderDest.UF, CNPJ = nfe.infNFe.dest.CNPJ, CPF = nfe.infNFe.dest.CPF, IE = nfe.infNFe.dest.IE, vNF = nfe.infNFe.total.ICMSTot.vNF, vICMS = nfe.infNFe.total.ICMSTot.vICMS, vST = nfe.infNFe.total.ICMSTot.vST } }; var infEvento = new infEventoEnv { cOrgao = Estado.AN, tpAmb = nfe.infNFe.ide.tpAmb, CNPJ = nfe.infNFe.emit.CNPJ, CPF = nfe.infNFe.emit.CPF, chNFe = nfe.infNFe.Id.Substring(3), dhEvento = DateTime.Now.ToString("yyyy-MM-ddTHH:mm:sszzz"), tpEvento = 110140, nSeqEvento = sequenciaEvento, verEvento = versaoServico, detEvento = detevento }; var evento = new evento {versao = versaoServico, infEvento = infEvento}; var retorno = RecepcaoEvento(idlote, new List<evento> {evento}, TipoRecepcaoEvento.Epec); return retorno; }
public RetornoRecepcaoEvento RecepcaoEventoManifestacaoDestinatario(int idlote, int sequenciaEvento, string chaveNFe, TipoEventoManifestacaoDestinatario tipoEventoManifestacaoDestinatario, string cpfcnpj, string justificativa = null) { var versaoServico = Conversao.VersaoServicoParaString(ServicoNFe.RecepcaoEventoManifestacaoDestinatario, _cFgServico.VersaoRecepcaoEventoCceCancelamento); var detEvento = new detEvento { versao = versaoServico, descEvento = tipoEventoManifestacaoDestinatario.Descricao(), xJust = justificativa }; var infEvento = new infEventoEnv { cOrgao = _cFgServico.cUF == Estado.RS ? _cFgServico.cUF : Estado.AN, //RS possui endereço próprio para manifestação do destinatário. Demais UFs usam o ambiente nacional tpAmb = _cFgServico.tpAmb, chNFe = chaveNFe, dhEvento = DateTime.Now.ToString("yyyy-MM-ddTHH:mm:sszzz"), tpEvento = (int) tipoEventoManifestacaoDestinatario, nSeqEvento = sequenciaEvento, verEvento = versaoServico, detEvento = detEvento }; if (cpfcnpj.Length == 11) infEvento.CPF = cpfcnpj; else infEvento.CNPJ = cpfcnpj; var evento = new evento { versao = versaoServico, infEvento = infEvento }; var retorno = RecepcaoEvento(idlote, new List<evento> { evento }, ServicoNFe.RecepcaoEventoManifestacaoDestinatario); return retorno; }
/// <summary> /// Envia um evento do tipo "Carta de Correção" /// </summary> /// <param name="idlote"></param> /// <param name="sequenciaEvento"></param> /// <param name="chaveNFe"></param> /// <param name="correcao"></param> /// <param name="cpfcnpj"></param> /// <returns>Retorna um objeto da classe RetornoRecepcaoEvento com o retorno do serviço RecepcaoEvento</returns> public RetornoRecepcaoEvento RecepcaoEventoCartaCorrecao(int idlote, int sequenciaEvento, string chaveNFe, string correcao, string cpfcnpj) { var versaoServico = Auxiliar.VersaoServicoParaString(ServicoNFe.RecepcaoEvento, _cFgServico.VersaoRecepcaoEvento); var detEvento = new detEvento {versao = versaoServico, xCorrecao = correcao}; var infEvento = new infEventoEnv { cOrgao = _cFgServico.cUF, tpAmb = _cFgServico.tpAmb, chNFe = chaveNFe, dhEvento = DateTime.Now.ToString("yyyy-MM-ddTHH:mm:sszzz"), tpEvento = 110110, nSeqEvento = sequenciaEvento, verEvento = versaoServico, detEvento = detEvento }; if (cpfcnpj.Length == 11) infEvento.CPF = cpfcnpj; else infEvento.CNPJ = cpfcnpj; var evento = new evento {versao = versaoServico, infEvento = infEvento}; var retorno = RecepcaoEvento(idlote, new List<evento> {evento}, TipoRecepcaoEvento.CartaCorrecao); return retorno; }
/// <summary> /// Envia um evento do tipo "Cancelamento" /// </summary> /// <param name="idlote"></param> /// <param name="sequenciaEvento"></param> /// <param name="protocoloAutorizacao"></param> /// <param name="chaveNFe"></param> /// <param name="justificativa"></param> /// <param name="cpfcnpj"></param> /// <returns>Retorna um objeto da classe RetornoRecepcaoEvento com o retorno do serviço RecepcaoEvento</returns> public RetornoRecepcaoEvento RecepcaoEventoCancelamento(int idlote, int sequenciaEvento, string protocoloAutorizacao, string chaveNFe, string justificativa, string cpfcnpj) { var versaoServico = Conversao.VersaoServicoParaString(ServicoNFe.RecepcaoEventoCancelmento, _cFgServico.VersaoRecepcaoEventoCceCancelamento); var detEvento = new detEvento { nProt = protocoloAutorizacao, versao = versaoServico, xJust = justificativa }; var infEvento = new infEventoEnv { cOrgao = _cFgServico.cUF, tpAmb = _cFgServico.tpAmb, chNFe = chaveNFe, dhEvento = DateTime.Now.ToString("yyyy-MM-ddTHH:mm:sszzz"), tpEvento = 110111, nSeqEvento = sequenciaEvento, verEvento = versaoServico, detEvento = detEvento }; if (cpfcnpj.Length == 11) infEvento.CPF = cpfcnpj; else infEvento.CNPJ = cpfcnpj; var evento = new evento {versao = versaoServico, infEvento = infEvento}; var retorno = RecepcaoEvento(idlote, new List<evento> {evento}, ServicoNFe.RecepcaoEventoCancelmento); return retorno; }