コード例 #1
0
        public RetornoModel <tValeIngresso> GetValeIngresso(string codigo)
        {
            RetornoModel <tValeIngresso> retorno = new RetornoModel <tValeIngresso>();
            tValeIngresso valeIngresso           = null;

            try
            {
                using (var ado = new MasterADOBase())
                {
                    ValeIngressoBO valeIngressoBO = new ValeIngressoBO(ado);
                    valeIngresso = valeIngressoBO.ValidarCodigo(codigo);
                }
            }
            catch (Exception ex)
            {
                retorno.Mensagem = ex.Message;
                retorno.Sucesso  = false;
                LogUtil.Error(ex);
                throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.InternalServerError, ParseRetorno(retorno)));
            }
            retorno.Retorno = valeIngresso;
            if (valeIngresso != null)
            {
                retorno.Mensagem = "OK";
                retorno.Sucesso  = true;
            }
            else
            {
                retorno.Mensagem = "Código do vale ingresso inválido";
                retorno.Sucesso  = false;
                NewRelicIgnoreTransaction();
                throw new HttpResponseException(Request.CreateResponse((HttpStatusCode)422, ParseRetorno(retorno)));
            }
            return(ParseRetorno(retorno));
        }
コード例 #2
0
        public void ValeIngressoBO_ValidarIngresso()
        {
            tValeIngresso valeIngressoValido        = valeIngressoBO.ValidarCodigo("V67YU28JK8");
            tValeIngresso valeIngressoInexistente   = valeIngressoBO.ValidarCodigo("X35YTE6171");
            tValeIngresso valeIngressoNaoDisponivel = valeIngressoBO.ValidarCodigo("00200105023098");

            Assert.AreEqual(true, valeIngressoValido != null && valeIngressoValido.ValeIngressoTipo != null && valeIngressoInexistente == null && valeIngressoNaoDisponivel == null);
        }
コード例 #3
0
        /// <summary>
        /// Método que remove um vale ingresso de uma compra e retorna a compra com valor recalculado.
        /// </summary>
        /// <param name="compra"></param>
        /// <param name="valeIngresso"></param>
        /// <returns></returns>
        public CompraModel RemoverValeIngresso(CompraModel compra, tValeIngresso valeIngresso)
        {
            CarrinhoBO carrinhoBO = new CarrinhoBO(ado);

            if (compra.ValeIngressos != null && valeIngresso != null)
            {
                compra.ValeIngressos.RemoveAll(x => x.ID == valeIngresso.ID);
                compra = carrinhoBO.CalcularValores(compra);
            }
            return(compra);
        }
コード例 #4
0
        /// <summary>
        /// Método que Verifica se pode ser inserido um valeIngresso em uma compra.
        /// </summary>
        /// <param name="compra"></param>
        /// <param name="valeIngresso"></param>
        /// <returns></returns>
        public RetornoModel <CompraModel> VerificarCompra(CompraModel compra, tValeIngresso valeIngresso = null)
        {
            RetornoModel <CompraModel> retorno = new RetornoModel <CompraModel>();

            retorno.Sucesso  = true;
            retorno.Mensagem = "Vale Ingresso pode ser inserido.";
            retorno.Retorno  = compra;
            //
            if (compra.CarrinhoItens != null && compra.CarrinhoItens.Count(x => x.CotaItemObject != null && x.CotaItemObject.ValidaBinAsBool) != 0)
            {
                retorno.Sucesso  = false;
                retorno.Mensagem = "O carrinho possui um item com cota bin, por isso não podem ser adicionados VIRs.";
            }
            //Teste de valor
            else if (compra.Total == null || compra.Total.ValorTotal == 0)
            {
                retorno.Sucesso  = false;
                retorno.Mensagem = "O carrinho está com valor total 0, por isso não podem ser adicionados VIRs.";
            }
            //teste que veirifica se existe um vale não acumulativo inserido
            else if (compra.ValeIngressos != null && compra.ValeIngressos.Count(x => !(x.ValeIngressoTipo.AcumulativoAsBool)) > 0)
            {
                retorno.Sucesso  = false;
                retorno.Mensagem = "A compra possui um vale ingresso não acumulativo, por isso não podem se adicionados VIRs.";
            }

            else if (valeIngresso != null)
            {
                //verifica se o VIR é não acumulativo e se já tem VIRs na compra
                if (!(valeIngresso.ValeIngressoTipo.AcumulativoAsBool) && compra.ValeIngressos.Count > 0)
                {
                    retorno.Sucesso  = false;
                    retorno.Mensagem = "A compra possui um ou mais vale(s) ingresso(s) e o vale ingresso que está sendo inserido não é acumulativo, por isso não pode ser adicionado.";
                }
                //Faz uma cópia do objeto compra adicionando o vale ingresso passado no parametro. Se o VIR adicionado não afetar o valor da compra não deixa inserir
                else
                {
                    CarrinhoBO  carrinhoBO = new CarrinhoBO(ado);
                    CompraModel compraAux  = new CompraModel();
                    compraAux.CopyFrom(compra);
                    compraAux.ValeIngressos = compra.ValeIngressos.ToList();
                    compraAux.ValeIngressos.Add(valeIngresso);
                    carrinhoBO.CalcularValores(compraAux);
                    if (compra.Total.ValorTotal == compraAux.Total.ValorTotal)
                    {
                        retorno.Sucesso  = false;
                        retorno.Mensagem = "O VIR que está sendo adicionado não altera o valor total da compra, por isso ele não pode ser adicionado.";
                    }
                }
            }

            return(retorno);
        }
コード例 #5
0
        public void ValeIngressoBO_RemoverVale()
        {
            CarrinhoBO  carrinhoBO = new CarrinhoBO();
            CompraModel compra     = new CompraModel();

            compra.CarrinhoItens = carrinhoBO.Listar("0003zo4qtrvb2ckt4c2qdy00", IRCore.DataAccess.Model.Enumerator.enumCarrinhoStatus.reservado);
            compra = carrinhoBO.CalcularValores(compra);
            tValeIngresso valeIngressoNaoAcumulativo = valeIngressoBO.ValidarCodigo("abc123teste2");
            tValeIngresso valeIngressoAcumulativo    = valeIngressoBO.ValidarCodigo("abc123teste3");
            RetornoModel <CompraModel> retorno       = valeIngressoBO.InserirValeIngresso(compra, valeIngressoAcumulativo);

            compra = retorno.Retorno;
            compra = valeIngressoBO.RemoverValeIngresso(compra, valeIngressoAcumulativo);
            Assert.AreEqual(true, compra.Total != null && compra.Total.ValorTotal == 118 && compra.ValeIngressos.Count == 0);
        }
コード例 #6
0
        /// <summary>
        /// Método que insere um vale ingresso em um objeto compra.
        /// </summary>
        /// <param name="compra"></param>
        /// <param name="valeIngresso"></param>
        /// <returns></returns>
        public RetornoModel <CompraModel> InserirValeIngresso(CompraModel compra, tValeIngresso valeIngresso)
        {
            if (compra.ValeIngressos == null)
            {
                compra.ValeIngressos = new List <tValeIngresso>();
            }

            RetornoModel <CompraModel> retornoModel = VerificarCompra(compra, valeIngresso);

            if (retornoModel.Sucesso)
            {
                CarrinhoBO carrinhoBO = new CarrinhoBO(ado);
                retornoModel.Retorno.ValeIngressos.Add(valeIngresso);
                retornoModel.Retorno = carrinhoBO.CalcularValores(retornoModel.Retorno);
            }
            return(retornoModel);
        }
コード例 #7
0
        public void ValeIngressoBO_InserirVales()
        {
            CarrinhoBO  carrinhoBO = new CarrinhoBO();
            CompraModel compra     = new CompraModel();

            compra.CarrinhoItens = carrinhoBO.Listar("0003zo4qtrvb2ckt4c2qdy00", IRCore.DataAccess.Model.Enumerator.enumCarrinhoStatus.reservado);
            compra = carrinhoBO.CalcularValores(compra);
            tValeIngresso valeIngressoNaoAcumulativo = valeIngressoBO.ValidarCodigo("abc123teste2");
            tValeIngresso valeIngressoAcumulativo    = valeIngressoBO.ValidarCodigo("abc123teste3");
            RetornoModel <CompraModel> retorno       = valeIngressoBO.InserirValeIngresso(compra, valeIngressoAcumulativo);

            compra = retorno.Retorno;
            Assert.AreEqual(true, retorno.Sucesso && compra.Total.ValorTotal == 18);
            //Segunda parte
            retorno = valeIngressoBO.InserirValeIngresso(compra, valeIngressoNaoAcumulativo);
            compra  = retorno.Retorno;
            Assert.AreEqual(true, !retorno.Sucesso && retorno.Mensagem.Equals("A compra possui um ou mais vale(s) ingresso(s) e o vale ingresso que está sendo inserido não é acumulativo, por isso não pode ser adicionado."));
        }
コード例 #8
0
 private tValeIngresso addResultListar(tValeIngresso vale, tValeIngressoTipo tipo)
 {
     vale.ValeIngressoTipo = tipo;
     return(vale);
 }