Ejemplo n.º 1
0
        public RetornoModel <SessionModel> GetSessao(bool completo = false)
        {
            if (completo)
            {
                using (var ado = new MasterADOBase())
                {
                    var bo = new CompraBOModel(SessionModel.GetSiteId(), ado);
                    CarregarCompra(bo, true);
                }
            }
            RetornoModel <SessionModel> retorno = new RetornoModel <SessionModel>();

            retorno.Sucesso  = true;
            retorno.Mensagem = "OK";
            retorno.Retorno  = SessionModel;
            return(ParseRetorno(retorno));
        }
Ejemplo n.º 2
0
        protected void CarregarCompra(CompraBOModel bo, bool carregarEntregas = false)
        {
            LogUtil.Debug(string.Format("##CarregarCompra## SESSION {0}", (this.SessionModel != null) ? this.SessionModel.SessionID : "NA"));

            CarregarCliente(bo.clienteBO, carregarEntregas);
            try
            {
                SessionModel.Compra = new CompraModel();
                SessionModel.Compra.EstruturaVenda = GerarEstruturaVenda();
                SessionModel.Compra.Login          = SessionModel.Login;
                SessionModel.Compra.SessionID      = SessionModel.SessionID;
                SessionModel.Compra.CarrinhoItens  = bo.carrinhoBO.Listar(SessionModel.SessionID, SessionModel.ClienteID, enumCarrinhoStatus.reservado);
                if ((carregarEntregas || SessionModel.EntregaControleID > 0) && SessionModel.Compra.CarrinhoItens.Count > 0)
                {
                    SessionModel.Compra = bo.entregaBO.Carregar(SessionModel.Compra);

                    var ativarTaxasEntregaDinamica = Convert.ToBoolean(ConfigurationManager.AppSettings["AtivarTaxasEntregaDinamica"]);

                    if (ativarTaxasEntregaDinamica)
                    {
                        var taxasEntregaDinamica = ConfigurationManager.AppSettings["TaxasEntregaDinamica"].Split('|');

                        foreach (var taxaEntregaDinamica in taxasEntregaDinamica)
                        {
                            var configTaxaEntregaDinamica = taxaEntregaDinamica.Split(';');

                            if (configTaxaEntregaDinamica.Length == 3)
                            {
                                var idEntregaControleDinamica    = Convert.ToInt32(configTaxaEntregaDinamica[0]);
                                var idEntregaControleCombinar    = Convert.ToInt32(configTaxaEntregaDinamica[1]);
                                var valorEntregaControleDinamica = Convert.ToDecimal(configTaxaEntregaDinamica[2], new CultureInfo("pt-BR"));

                                var temIdEntregaControleCombinar = SessionModel.Compra.EntregaControles.Any(a => a.ID == idEntregaControleCombinar);
                                if (temIdEntregaControleCombinar)
                                {
                                    var entregaControleDinamica = SessionModel.Compra.EntregaControles.FirstOrDefault(f => f.ID == idEntregaControleDinamica);

                                    if (entregaControleDinamica != null)
                                    {
                                        entregaControleDinamica.Valor = valorEntregaControleDinamica;
                                    }
                                }
                            }
                        }
                    }
                }
                if (SessionModel.Compra.EntregaControles != null && SessionModel.Compra.EntregaControles.Count > 0 && SessionModel.ValesIngressoID != null && SessionModel.ValesIngressoID.Count > 0)
                {
                    SessionModel.Compra.ValeIngressos = bo.valeIngressoBO.Listar(SessionModel.ValesIngressoID);
                }

                SessionModel.Compra.EntregaControleID = SessionModel.EntregaControleID;
                SessionModel.Compra.ClienteEnderecoID = SessionModel.ClienteEnderecoID;
                SessionModel.Compra.PDVID             = SessionModel.PDVID;
                SessionModel.Compra = bo.carrinhoBO.CalcularValores(SessionModel.Compra);
                SessionModel.Compra = bo.cotaBO.CarregarCotaInformacao(SessionModel.Compra);
            }
            catch (Exception ex)
            {
                LogUtil.Error(string.Format("##CarregarCompra.EXCEPTION## SESSION {0} MSG {1}", (this.SessionModel != null) ? this.SessionModel.SessionID : "NA", ex.Message), ex);

                var retorno = new RetornoModel <CompraModel>();
                retorno.Mensagem = ex.Message;
                retorno.Sucesso  = false;
                //LogUtil.Error(ex);
                throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.InternalServerError, ParseRetorno(retorno)));
            }
        }