Пример #1
0
        protected override TefLinhaLista EfetuaRequisicao(TefLinhaLista requisicao, out TefLinhaLista respostaRequisicaoAdm)
        {
            var tefResposta = _requisicao.Enviar(requisicao, this);

            respostaRequisicaoAdm = _requisicao.AguardaRespostaRequisicao();


            _requisicao.OnExibeMensagem(new ExibeMensagemEventArgs(respostaRequisicaoAdm));

            if (ConfereStatus(respostaRequisicaoAdm))
            {
                if (respostaRequisicaoAdm.RequerConfirmacao())
                {
                    Cnf(
                        respostaRequisicaoAdm.BuscaLinha(AcTefIdentificadorCampos.RedeAdquirente).Valor,
                        respostaRequisicaoAdm.BuscaLinha(AcTefIdentificadorCampos.Nsu).Valor,
                        respostaRequisicaoAdm.BuscaLinha(AcTefIdentificadorCampos.CodigoControle).Valor,
                        NomeAplicativoComercial,
                        VersaoAplicativoComercial,
                        RegistroCertificacao
                        );
                }

                ImprimirVias(respostaRequisicaoAdm);
            }

            return(tefResposta);
        }
Пример #2
0
        public override RespostaCrt ConfirmarCrt(AutorizaDfeEventArgs autorizaDfeEventArgs)
        {
            if (_statusTransacao)
            {
                if (autorizaDfeEventArgs.IsContemRejeicao() || autorizaDfeEventArgs.IsContemErro())
                {
                    if (_respostaRequisicaoCrt.RequerConfirmacao())
                    {
                        Ncn(
                            _respostaRequisicaoCrt.BuscaLinha(AcTefIdentificadorCampos.RedeAdquirente).Valor,
                            _respostaRequisicaoCrt.BuscaLinha(AcTefIdentificadorCampos.CodigoControle).Valor
                            );
                    }
                }

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


                ImprimirVias(_respostaRequisicaoCrt);
            }

            return(new RespostaCrt(_tefRespostaCrt, _respostaRequisicaoCrt, _statusTransacaoCrt));
        }
Пример #3
0
        public ImprimeViaEventArgs(TefLinhaLista respostaRequisicaoAdm)
        {
            var campo737 = respostaRequisicaoAdm.BuscaLinha(737);
            var campo028 = respostaRequisicaoAdm.BuscaLinha(028);

            if (campo737 != null)
            {
                ViaDeComprovante = (ViaComprovante)int.Parse(campo737.Valor);
            }

            if (ViaDeComprovante == ViaComprovante.NaoHaComprovante && campo028 != null && campo028.Valor != "0")
            {
                ViaDeComprovante = ViaComprovante.ViaClienteIEstabelecimento;
            }

            var viaEstabelecimento = new TefLinhaLista(respostaRequisicaoAdm.Where(x => x.Identificacao == AcTefIdentificadorCampos.ViaEstabelecimentoComprovante).ToList());
            var viaCliente         = new TefLinhaLista(respostaRequisicaoAdm.Where(x => x.Identificacao == AcTefIdentificadorCampos.ViaClienteComprovante).ToList());
            var viaUnica           = new TefLinhaLista(respostaRequisicaoAdm.Where(x => x.Identificacao == AcTefIdentificadorCampos.ViaUnicaComprovante).ToList());
            var viaReduzida        = new TefLinhaLista(respostaRequisicaoAdm.Where(x => x.Identificacao == AcTefIdentificadorCampos.ViaReduzidaComprovante));


            ViaEstabelecimento = viaEstabelecimento.GetValores();
            ViaCliente         = viaCliente.GetValores();
            ViaUnica           = viaUnica.GetValores();
            ViaReduzida        = viaReduzida.GetValores();
            TefLinhaLista      = respostaRequisicaoAdm;
        }
        public TefExpressImprimeViaEventArgs(TefLinhaLista respostaRequisicaoAdm)
        {
            // FEITO ESSE IF DEBUG SOMENTE PORQUE O SIMULADOR NA OPERAÇÃO CRT NÃO RETORNA O CAMPO 028-001, EM PRODUÇÃO O MESMO EXISTE
            #if DEBUG
            var campo028001 = respostaRequisicaoAdm.BuscaLinha(AcTefIdentificadorCampos.TamanhoViaUnica, 1);
            if (campo028001 == null)
            {
                respostaRequisicaoAdm.Add(new TefLinha("028-001", 12));
                respostaRequisicaoAdm = new TefLinhaLista(respostaRequisicaoAdm.OrderBy(x => x.Identificacao).ToList());
            }
            #endif

            var tamanhoPrimeiraVia = respostaRequisicaoAdm.BuscaLinha(AcTefIdentificadorCampos.TamanhoViaUnica, 1);


            var viaCliente = new TefLinhaLista(respostaRequisicaoAdm.Where(x => x.Identificacao == AcTefIdentificadorCampos.ViaUnicaComprovante &&
                                                                           x.Posicao <= int.Parse(tamanhoPrimeiraVia.Valor)).ToList());

            var viaEstabelecimento = new TefLinhaLista(respostaRequisicaoAdm.Where(x => x.Identificacao == AcTefIdentificadorCampos.ViaUnicaComprovante &&
                                                                                   x.Posicao > int.Parse(tamanhoPrimeiraVia.Valor)).ToList());

            ViaCliente         = viaCliente.GetValores();
            ViaEstabelecimento = viaEstabelecimento.GetValores();

            Via1 = ViaCliente;
            Via2 = ViaEstabelecimento;
        }
Пример #5
0
 public void VerificaSeTefEstaAtivo(TefLinhaLista requisicao)
 {
     if (requisicao.BuscaLinha(AcTefIdentificadorCampos.Comando)?.Valor != "ATV")
     {
         Atv();
     }
 }
Пример #6
0
        public static bool ConfereStatus(this TefLinhaLista tefLinhaLista)
        {
            var campoStatus = 009;

            var campo009Status = tefLinhaLista.BuscaLinha(campoStatus);

            if (campo009Status == null)
            {
                return(false);
            }

            if (campo009Status.Valor != "0")
            {
                return(false);
            }

            return(true);
        }
Пример #7
0
 public ExibeMensagemEventArgs(TefLinhaLista tefLinhaLista)
 {
     Mensagem = tefLinhaLista.BuscaLinha(030)?.Valor ?? string.Empty;
 }