예제 #1
0
        public static eventoCTe CriaEvento(CTeEletronico cte, TipoEvento tipoEvento, int sequenciaEvento, EventoContainer container)
        {
            var configuracaoServico = ConfiguracaoServico.Instancia;

            var id = new StringBuilder("ID");

            id.Append((int)tipoEvento);
            id.Append(cte.Chave());
            id.Append(sequenciaEvento.ToString("D2"));

            return(new eventoCTe
            {
                versao = configuracaoServico.VersaoLayout,
                infEvento = new infEventoEnv
                {
                    tpAmb = configuracaoServico.tpAmb,
                    CNPJ = cte.infCte.emit.CNPJ,
                    cOrgao = configuracaoServico.cUF,
                    chCTe = cte.Chave(),
                    dhEvento = DateTime.Now,
                    nSeqEvento = sequenciaEvento,
                    tpEvento = tipoEvento,
                    detEvento = new detEvento
                    {
                        versaoEvento = configuracaoServico.VersaoLayout,
                        EventoContainer = container
                    },
                    Id = id.ToString()
                }
            });
        }
예제 #2
0
        public static void SalvarXmlEmDisco(this CteEletronica cte, ConfiguracaoServico configuracaoServico = null)
        {
            var instanciaServico = configuracaoServico ?? ConfiguracaoServico.Instancia;

            if (instanciaServico.NaoSalvarXml())
            {
                return;
            }

            var caminhoXml = instanciaServico.DiretorioSalvarXml;

            var arquivoSalvar = Path.Combine(caminhoXml, cte.Chave() + "-cte.xml");

            FuncoesXml.ClasseParaArquivoXml(cte, arquivoSalvar);
        }
예제 #3
0
        public static void SalvarXmlEmDisco(this CteEletronica cte)
        {
            var instanciaServico = ConfiguracaoServico.Instancia;

            if (instanciaServico.NaoSalvarXml())
            {
                return;
            }

            var caminhoXml = instanciaServico.DiretorioSalvarXml;

            var arquivoSalvar = caminhoXml + @"\" + cte.Chave() + "-cte.xml";

            FuncoesXml.ClasseParaArquivoXml(cte, arquivoSalvar);
        }
예제 #4
0
        public retEventoCTe Cancelar(ConfiguracaoServico configuracaoServico = null)
        {
            var evento = ClassesFactory.CriaEvCancCTe(_justificativa, _numeroProtocolo);

            EventoEnviado = FactoryEvento.CriaEvento(CTeTipoEvento.Cancelamento, _sequenciaEvento, _cte.Chave(), _cte.infCte.emit.CNPJ, evento, configuracaoServico);
            RetornoSefaz  = new ServicoController().Executar(_cte, _sequenciaEvento, evento, CTeTipoEvento.Cancelamento, configuracaoServico);

            return(RetornoSefaz);
        }
예제 #5
0
        public retEventoCTe AdicionarCorrecoes(ConfiguracaoServico configuracaoServico = null)
        {
            var eventoCorrecao = ClassesFactory.CriaEvCCeCTe(_infCorrecaos);

            EventoEnviado = FactoryEvento.CriaEvento(CTeTipoEvento.CartaCorrecao, _sequenciaEvento, _cte.Chave(), _cte.infCte.emit.CNPJ, eventoCorrecao, configuracaoServico);
            RetornoSefaz  = new ServicoController().Executar(_cte, _sequenciaEvento, eventoCorrecao, CTeTipoEvento.CartaCorrecao, configuracaoServico);

            return(RetornoSefaz);
        }
예제 #6
0
 //Vou manter para evitar quebra de código pois a classe e o metodo são publicos
 public static eventoCTe CriaEvento(CTeEletronico cte, CTeTipoEvento cTeTipoEvento, int sequenciaEvento, EventoContainer container)
 {
     return(CriaEvento(cTeTipoEvento, sequenciaEvento, cte.Chave(), cte.infCte.emit.CNPJ, container));
 }
예제 #7
0
 //Vou manter para evitar quebra de código pois a classe e o metodo são publicos
 public static eventoCTe CriaEvento(CTeEletronico cte, CTeTipoEvento cTeTipoEvento, int sequenciaEvento, EventoContainer container, ConfiguracaoServico configuracaoServico = null)
 {
     return(CriaEvento(cTeTipoEvento, sequenciaEvento, cte.Chave(), cte.infCte.emit.CNPJ, container, configuracaoServico));
 }
예제 #8
0
 public async Task <retEventoCTe> ExecutarAsync(CteEletronico cte, int sequenciaEvento, EventoContainer container, CTeTipoEvento cTeTipoEvento, ConfiguracaoServico configuracaoServico = null)
 {
     return(await ExecutarAsync(cTeTipoEvento, sequenciaEvento, cte.Chave(), cte.infCte.emit.CNPJ, container, configuracaoServico));
 }
예제 #9
0
 public retEventoCTe Executar(CteEletronico cte, int sequenciaEvento, EventoContainer container, CTeTipoEvento cTeTipoEvento, ConfiguracaoServico configuracaoServico = null)
 {
     return(Executar(cTeTipoEvento, sequenciaEvento, cte.Chave(), cte.infCte.emit.CNPJ, container, configuracaoServico));
 }