예제 #1
0
        public override RespostaCrt Crt(decimal valor, string documentoVinculado, bool confirmarManual = false)
        {
            VerificaInicializado();
            var requisicao = FabricarRequisicao.MontaRequisicaoCrt(
                IdRequisicao,
                valor,
                documentoVinculado,
                NomeAutomacaoComercial,
                RegistroCertificacao,
                _configAcTefDial);


            _tefRespostaCrt = _requisicao.Enviar(requisicao, this);

            _respostaRequisicaoCrt = _requisicao.AguardaRespostaRequisicao();

            _requisicao.OnExibeMensagem(new ExibeMensagemEventArgs(_respostaRequisicaoCrt));

            var autorizaDfeEventArgs = new AutorizaDfeEventArgs(_respostaRequisicaoCrt);

            _requisicao.OnAutorizaDfe(autorizaDfeEventArgs);

            _statusTransacao    = ConfereStatus(_respostaRequisicaoCrt);
            _statusTransacaoCrt = _statusTransacao ? AcTefStatus.Sucesso : AcTefStatus.Falha;

            if (confirmarManual)
            {
                return(new RespostaCrt(_tefRespostaCrt, _respostaRequisicaoCrt, _statusTransacaoCrt));
            }

            return(ConfirmarCrt(autorizaDfeEventArgs));
        }
예제 #2
0
파일: AcTefDial.cs 프로젝트: netopvh/Tef
        public virtual RespostaAtv Atv()
        {
            VerificaInicializado();
            var tefResposta = _requisicao.Enviar(FabricarRequisicao.MontaRequisicaoAtv(IdRequisicao, _configAcTefDial), this);

            return(new RespostaAtv(tefResposta));
        }
예제 #3
0
        public override RespostaCnc Cnc(string rede, string nsu, DateTime transacaoEm, decimal valor)
        {
            VerificaInicializado();
            var requisicao = FabricarRequisicao.MontaRequisicaoCnc(IdRequisicao, rede, nsu, transacaoEm, valor, _configAcTefDial);

            var tefResposta = EfetuaRequisicao(requisicao, out var respostaRequisicao);

            return(new RespostaCnc(tefResposta, respostaRequisicao));
        }
예제 #4
0
        public override RespostaAdm Adm()
        {
            VerificaInicializado();
            var requisicao = FabricarRequisicao.MontaRequisicaoAdm(IdRequisicao, _configAcTefDial);

            var tefResposta = EfetuaRequisicao(requisicao, out var respostaRequisicaoAdm);

            return(new RespostaAdm(tefResposta, respostaRequisicaoAdm));
        }
예제 #5
0
        public override RespostaCrt Crt(decimal valor, string documentoVinculado)
        {
            VerificaInicializado();
            var requisicao = FabricarRequisicao.MontaRequisicaoCrt(
                IdRequisicao,
                valor,
                documentoVinculado,
                NomeAutomacaoComercial,
                RegistroCertificacao,
                _configAcTefDial);


            var tefResposta = _requisicao.Enviar(requisicao);

            var respostaRequisicao = _requisicao.AguardaRespostaRequisicao();

            _requisicao.OnExibeMensagem(new ExibeMensagemEventArgs(respostaRequisicao));

            var autorizaDfeEventArgs = new AutorizaDfeEventArgs(respostaRequisicao);

            _requisicao.OnAutorizaDfe(autorizaDfeEventArgs);

            var statusTransacao = ConfereStatus(respostaRequisicao);
            var acTefStatus     = statusTransacao ? AcTefStatus.Sucesso : AcTefStatus.Falha;

            if (statusTransacao)
            {
                if (autorizaDfeEventArgs.IsContemRejeicao() || autorizaDfeEventArgs.IsContemErro())
                {
                    if (respostaRequisicao.RequerConfirmacao())
                    {
                        Ncn(
                            respostaRequisicao.BuscaLinha(AcTefIdentificadorCampos.RedeAdquirente).Valor,
                            respostaRequisicao.BuscaLinha(AcTefIdentificadorCampos.CodigoControle).Valor
                            );
                    }
                }

                if (respostaRequisicao.RequerConfirmacao() && autorizaDfeEventArgs.IsAutorizado())
                {
                    Cnf(
                        respostaRequisicao.BuscaLinha(AcTefIdentificadorCampos.RedeAdquirente).Valor,
                        respostaRequisicao.BuscaLinha(AcTefIdentificadorCampos.CodigoControle).Valor,
                        NomeAplicativoComercial,
                        VersaoAplicativoComercial,
                        RegistroCertificacao
                        );
                }


                ImprimirVias(respostaRequisicao);
            }

            return(new RespostaCrt(tefResposta, respostaRequisicao, acTefStatus));
        }
예제 #6
0
파일: AcTefDial.cs 프로젝트: netopvh/Tef
 public virtual void Cnf(
     string redeAdquirente,
     string codigoControle,
     string nomeAutomacao,
     string versaoAutomacao,
     string registroCertificacao
     )
 {
     VerificaInicializado();
     _requisicao.Enviar(FabricarRequisicao.MontaRequisicaoCnf(
                            IdRequisicao,
                            redeAdquirente,
                            codigoControle,
                            nomeAutomacao,
                            versaoAutomacao,
                            registroCertificacao
                            ), this);
 }
예제 #7
0
파일: AcTefDial.cs 프로젝트: netopvh/Tef
        public virtual RespostaCrt Crt(decimal valor, string documentoVinculado, bool confirmarManual = false)
        {
            VerificaInicializado();
            var requisicao = FabricarRequisicao.MontaRequisicaoCrt(
                IdRequisicao,
                valor,
                documentoVinculado,
                NomeAutomacaoComercial,
                RegistroCertificacao,
                _configAcTefDial);


            var tefResposta = _requisicao.Enviar(requisicao, this);

            var respostaRequisicao = _requisicao.AguardaRespostaRequisicao();

            var statusTransacao = respostaRequisicao.ConfereStatus();
            var acTefStatus     = statusTransacao ? AcTefStatus.Sucesso : AcTefStatus.Falha;

            return(new RespostaCrt(tefResposta, respostaRequisicao, acTefStatus));
        }
예제 #8
0
파일: AcTefDial.cs 프로젝트: netopvh/Tef
 public virtual void Ncn(string redeAdquirente, string codigoControle)
 {
     VerificaInicializado();
     _requisicao.Enviar(FabricarRequisicao.MontaRequisicaoNcn(IdRequisicao, redeAdquirente, RegistroCertificacao, codigoControle), this);
 }