示例#1
0
        public List <tIngresso> RelacionarBloqueioParceiroMidia(List <int> ingressosIds, int parceiroMidiaId, int usuarioID)
        {
            List <tIngresso> retorno = new List <tIngresso>();

            bool precoIngressoParceiroMidiaNaoVerificado = true;

            foreach (int item in ingressosIds)
            {
                tIngresso ingresso = Consultar(item);
                if (ingresso.StatusAsEnum == enumIngressoStatus.bloqueado)
                {
                    //OBS: Esse bloco é executado apenas se o preço do ingresso ainda não tiver sido verificado, pois todos os ingressos possuem o mesmo setor e apresentação
                    if (precoIngressoParceiroMidiaNaoVerificado)
                    {
                        PrecoBO         precoBO    = new PrecoBO(ado);
                        ParceiroMidiaBO parceiroBO = new ParceiroMidiaBO(ado);
                        ParceiroMidia   parceiro   = parceiroBO.Consultar(parceiroMidiaId);
                        precoBO.CadastrarParaIngressoParceiroMidia(ingresso, usuarioID, parceiro);
                        precoIngressoParceiroMidiaNaoVerificado = false;
                    }
                    ingresso.ParceiroMidiaID = parceiroMidiaId;
                    Salvar(ingresso, false);
                    retorno.Add(ingresso);
                }
            }
            Salvar();

            return(retorno);
        }
示例#2
0
        public bool ReservarIngresso(Carrinho carrinho, tIngresso ingresso, enumIngressoStatus status)
        {
            var result = (conIngresso.Execute(@"UPDATE tIngresso SET 
                                ClienteID = @clienteID, 
                                UsuarioID = @usuarioID, 
                                SessionID = @sessionID, 
                                PrecoID = @precoID,
                                TimeStampReserva = @timeStampReserva,
                                Status = 'R'
                            WHERE ID = @id AND Status = @status", new
            {
                clienteID = ingresso.ClienteID,
                sessionID = ingresso.SessionID,
                usuarioID = ingresso.UsuarioID,
                precoID = ingresso.PrecoID,
                timeStampReserva = ingresso.TimeStampReserva,
                id = ingresso.ID,
                status = status.ValueAsString()
            }) > 0);

            if (result)
            {
                result = Salvar(carrinho);
            }
            return(result);
        }
示例#3
0
        public RetornoModel <RetornoOsespModel> PostBloquearIngresso([FromBody] OsespIngresso req)
        {
            RetornoModel <RetornoOsespModel> retorno = new RetornoModel <RetornoOsespModel>();

            if (req.ingressoID == 0)
            {
                retorno.Mensagem = "Ingresso ID obrigatório";
                retorno.Sucesso  = false;
                NewRelicIgnoreTransaction();
                throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.BadRequest, ParseRetorno(retorno)));
            }

            int UsuarioOSESPID = Convert.ToInt32(ConfigurationManager.AppSettings["UsuarioOSESPID"]);
            int PluID          = Convert.ToInt32(ConfigurationManager.AppSettings["OSESPID_PLU"]);
            int PluUtilizadoID = Convert.ToInt32(ConfigurationManager.AppSettings["OSESPID_PLU_UTILIZADO"]);
            int BloqueioPadrao = Convert.ToInt32(ConfigurationManager.AppSettings["BLOQUEIO_PADRAO"]);

            try
            {
                using (var ado = new MasterADOBase())
                {
                    EventoBO   eventoBO   = new EventoBO(ado);
                    IngressoBO ingressoBO = new IngressoBO(ado);
                    retorno.Sucesso = ingressoBO.BloquearIngressoOSESP(req.ingressoID, UsuarioOSESPID, PluID, PluUtilizadoID, BloqueioPadrao);

                    if (retorno.Sucesso)
                    {
                        tIngresso ingresso = ingressoBO.BuscaRetornoOsesp(req.ingressoID);


                        RetornoOsespModel rom = new RetornoOsespModel();
                        rom.BloqueioID   = Convert.ToInt32(ingresso.BloqueioID);
                        rom.Status       = "Bloqueado";
                        rom.BloqueioNome = ingressoBO.BuscaNomeBloqueio(Convert.ToInt32(ingresso.BloqueioID));

                        retorno.Retorno = rom;
                    }
                }
            }
            catch (Exception ex)
            {
                retorno.Mensagem = ex.Message;
                retorno.Sucesso  = false;
                LogUtil.Error(ex);
                throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.InternalServerError, ParseRetorno(retorno)));
            }
            if (!retorno.Sucesso)
            {
                retorno.Mensagem = "Ingresso não encontrado ou não disponível para bloqueio";
                NewRelicIgnoreTransaction();
                throw new HttpResponseException(Request.CreateResponse((HttpStatusCode)422, ParseRetorno(retorno)));
            }
            else
            {
                retorno.Mensagem = "OK";
                return(ParseRetorno(retorno));
            }
        }
示例#4
0
        private bool addResultListarIngresso(tIngresso ingresso, tSetor setor, tEvento evento, EventoMidia eventoMidia, EventoTipoMidia eventoTipoMidia, tLocal local, tApresentacao apresentacao)
        {
            tIngresso aux = ingressos.Where(x => x.ID == ingresso.ID).FirstOrDefault();

            if (aux == null)
            {
                aux                     = ingresso;
                aux.tSetor              = setor;
                aux.tEvento             = evento;
                aux.tEvento.EventoMidia = new List <EventoMidia>();
                if (eventoMidia != null)
                {
                    eventoMidia.EventoTipoMidia = eventoTipoMidia;
                    aux.tEvento.EventoMidia.Add(eventoMidia);
                }
                aux.tEvento.tLocal        = local;
                aux.tEvento.tApresentacao = new List <tApresentacao>();
                if (apresentacao != null)
                {
                    aux.tEvento.tApresentacao.Add(apresentacao);
                    if (apresentacao.ID == aux.ApresentacaoID)
                    {
                        aux.tApresentacao = apresentacao;
                    }
                }



                ingressos.Add(aux);
            }
            else
            {
                if (eventoMidia != null && aux.tEvento.EventoMidia.All(x => x.ID != eventoMidia.ID))
                {
                    eventoMidia.EventoTipoMidia = eventoTipoMidia;
                    aux.tEvento.EventoMidia.Add(eventoMidia);
                }
                if (apresentacao != null && aux.tEvento.tApresentacao.All(x => x.ID != apresentacao.ID))
                {
                    aux.tEvento.tApresentacao.Add(apresentacao);
                    if (apresentacao.ID == aux.ApresentacaoID)
                    {
                        aux.tApresentacao = apresentacao;
                    }
                }
            }
            return(true);
        }
示例#5
0
        public RetornoModel <RetornoOsespModel> DeleteDesbloquearIngresso(int ingressoID)
        {
            RetornoModel <RetornoOsespModel> retorno = new RetornoModel <RetornoOsespModel>();

            int UsuarioOSESPID = Convert.ToInt32(ConfigurationManager.AppSettings["UsuarioOSESPID"]);
            int PluID          = Convert.ToInt32(ConfigurationManager.AppSettings["OSESPID_PLU"]);
            int PluUtilizadoID = Convert.ToInt32(ConfigurationManager.AppSettings["OSESPID_PLU_UTILIZADO"]);
            int BloqueioPadrao = Convert.ToInt32(ConfigurationManager.AppSettings["BLOQUEIO_PADRAO"]);

            try
            {
                using (var ado = new MasterADOBase())
                {
                    IngressoBO ingressoBO = new IngressoBO(ado);
                    retorno.Sucesso = ingressoBO.DesbloquearIngressoOSESP(ingressoID, UsuarioOSESPID, PluID, PluUtilizadoID, BloqueioPadrao);

                    if (retorno.Sucesso)
                    {
                        RetornoOsespModel rom      = new RetornoOsespModel();
                        tIngresso         ingresso = ingressoBO.BuscaRetornoOsesp(ingressoID);

                        switch (ingresso.Status)
                        {
                        case "B":
                            rom.Status = "Bloqueado";
                            break;

                        case "D":
                            rom.Status = "Desbloqueado";
                            break;

                        default:
                            rom.Status = ingresso.Status;
                            break;
                        }

                        rom.BloqueioID   = Convert.ToInt32(ingresso.BloqueioID);
                        rom.BloqueioNome = ingressoBO.BuscaNomeBloqueio(Convert.ToInt32(ingresso.BloqueioID));

                        retorno.Retorno = rom;
                    }
                }
            }
            catch (Exception ex)
            {
                retorno.Mensagem = ex.Message;
                retorno.Sucesso  = false;
                LogUtil.Error(ex);
                throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.InternalServerError, ParseRetorno(retorno)));
            }

            if (!retorno.Sucesso)
            {
                retorno.Mensagem = "Ingresso não encontrado ou não disponível para desbloqueio";
                NewRelicIgnoreTransaction();
                throw new HttpResponseException(Request.CreateResponse((HttpStatusCode)422, ParseRetorno(retorno)));
            }
            else
            {
                retorno.Mensagem = "OK";
                return(ParseRetorno(retorno));
            }
        }
示例#6
0
 public void Salvar(tIngresso ingresso, bool updateDataBase = true)
 {
     ado.Salvar(ingresso, updateDataBase);
 }
示例#7
0
        /// <summary>
        /// Método que cadastra um preço de ingresso para um parceiro de midia, se ainda não existir
        /// </summary>
        /// <param name="ingresso"></param>
        public RetornoModel CadastrarParaIngressoParceiroMidia(tIngresso ingresso, int usuarioID, ParceiroMidia parceiroMidia)
        {
            int     lojaId  = ConfiguracaoAppUtil.GetAsInt(enumConfiguracaoBO.lojaIdSistema);
            LojaADO lojaADO = new LojaADO(ado);
            tLoja   loja    = lojaADO.Consultar(lojaId);

            if (parceiroMidia != null && ingresso.ApresentacaoID != null && ingresso.SetorID != null)
            {
                PrecoParceiroMidia precoParceiro = ConsultarParceiro(ingresso.SetorID.Value, ingresso.ApresentacaoID.Value, parceiroMidia.ID);
                if (precoParceiro == null)
                {
                    tPreco      preco      = ado.ConsultarPreco(ingresso.SetorID.Value, ingresso.ApresentacaoID.Value, parceiroMidia.ID);
                    tCanalPreco canalPreco = null;

                    if (preco == null)
                    {
                        preco       = new tPreco();
                        preco.Nome  = parceiroMidia.Nome;
                        preco.Valor = 0;
                        preco.ApresentacaoSetorID = ingresso.ApresentacaoSetorID;
                        preco.ParceiroMidiaID     = parceiroMidia.ID;
                        preco.IRVende             = "F";
                        preco.CorID = 1;
                        Salvar(preco, usuarioID);

                        try
                        {
                            IRLib.CodigoBarra codigoBarra = new IRLib.CodigoBarra();
                            codigoBarra.Inserir(ingresso.EventoID.Value, ingresso.ApresentacaoID.Value, ingresso.SetorID.Value, preco.ID, new BD());
                        }
                        catch (Exception ex)
                        {
                            LogUtil.Error(ex);
                            Remover(preco, usuarioID);
                            return(new RetornoModel()
                            {
                                Sucesso = false, Mensagem = "Erro para gerar o codigo de barras do preco"
                            });
                        }
                    }
                    else
                    {
                        canalPreco = ado.ConsultarCanal(preco.ID, loja.CanalID.Value);
                    }

                    if ((preco != null) && (canalPreco == null))
                    {
                        canalPreco            = new tCanalPreco();
                        canalPreco.DataInicio = "";
                        canalPreco.DataFim    = "";
                        canalPreco.PrecoID    = preco.ID;
                        canalPreco.Quantidade = 0;
                        canalPreco.CanalID    = loja.CanalID.Value;
                        Salvar(canalPreco, usuarioID);
                    }
                }
            }
            return(new RetornoModel()
            {
                Sucesso = true
            });
        }