예제 #1
0
        public static TefLinhaLista MontaRequisicaoCrt(
            int idRequisicao,
            decimal valor,
            string documentoVinculado,
            string nomeAutomacao,
            string registroCertificacao,
            IConfigAcTefDial configAcTefDial
            )
        {
            var listaRequisicao = new TefLinhaLista
            {
                new TefLinha("000-000", "CRT"),
                new TefLinha("001-000", idRequisicao),
                new TefLinha("002-000", documentoVinculado),
                new TefLinha("003-000", valor),
                new TefLinha("004-000", "0"),
                new TefLinha("716-000", nomeAutomacao),
                new TefLinha("738-000", registroCertificacao)
            };

            CapacidadesAutomacao(configAcTefDial, listaRequisicao);

            listaRequisicao.Add(new TefLinha("999-999", "0"));

            return(listaRequisicao);
        }
예제 #2
0
        public static TefLinhaLista MontaRequisicaoCnc(
            int idRequisicao,
            string rede,
            string nsu,
            DateTime transacaoEm,
            decimal valor,
            IConfigAcTefDial configAcTefDial
            )
        {
            var listaRequisicao = new TefLinhaLista
            {
                new TefLinha("000-000", "CNC"),
                new TefLinha("001-000", idRequisicao),
                new TefLinha("003-000", valor),
                new TefLinha("010-000", rede),
                new TefLinha("012-000", nsu),
                new TefLinha("022-000", transacaoEm.Date.ToString("ddMMyyyy")),
                new TefLinha("023-000", transacaoEm.TimeOfDay.ToString("hhmmss")),
                new TefLinha("738-000", configAcTefDial.RegistroCertificado)
            };

            CapacidadesAutomacao(configAcTefDial, listaRequisicao);

            listaRequisicao.Add(new TefLinha("999-999", "0"));

            return(listaRequisicao);
        }
예제 #3
0
        private static void CapacidadesAutomacao(IConfigAcTefDial configAcTefDial, TefLinhaLista listaRequisicao)
        {
            var capacidadesDaAutomacao = 0;

            if (configAcTefDial.SuporteTroco)
            {
                capacidadesDaAutomacao += 1;
            }

            if (configAcTefDial.SuporteDesconto)
            {
                capacidadesDaAutomacao += 2;
            }

            if (configAcTefDial.SuporteValorReajustado)
            {
                capacidadesDaAutomacao += 64;
            }

            if (configAcTefDial.SuporteNsuTamanho40)
            {
                capacidadesDaAutomacao += 128;
            }

            if (capacidadesDaAutomacao > 0)
            {
                listaRequisicao.Add(new TefLinha("706-000", capacidadesDaAutomacao));
            }
        }
        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 static TefLinhaLista LoadArquivo(string arquivo)
        {
            var listaDeLinhas = new TefLinhaLista();

            var conteudoArquivoSts = File.ReadAllLines(arquivo);

            foreach (var conteudoArquivoSt in conteudoArquivoSts)
            {
                listaDeLinhas.Add(new TefLinha(conteudoArquivoSt));
            }

            return(listaDeLinhas);
        }
예제 #6
0
        public static TefLinhaLista MontaRequisicaoAdm(int idRequisicao, IConfigAcTefDial configAcTefDial)
        {
            var listaRequisicao = new TefLinhaLista
            {
                new TefLinha("000-000", "ADM"),
                new TefLinha("001-000", idRequisicao),
                new TefLinha("738-000", configAcTefDial.RegistroCertificado)
            };

            CapacidadesAutomacao(configAcTefDial, listaRequisicao);

            listaRequisicao.Add(new TefLinha("999-999", "0"));

            return(listaRequisicao);
        }
예제 #7
0
 private static void Identificacao(IConfigAcTefDial configAcTefDial, TefLinhaLista listaRequisicao)
 {
     listaRequisicao.Add(new TefLinha("735-000", configAcTefDial.NomeAplicacaoComercial));
     listaRequisicao.Add(new TefLinha("736-000", configAcTefDial.VersaoAplicacaoComercial));
 }