Exemplo n.º 1
0
        public DataTable getDttCotaItemPorCotaID(int[] cotaItemArray)
        {
            try
            {
                DataTable     dtt    = this.getEstruturaCotaItem();
                StringBuilder stbSQL = new StringBuilder();
                stbSQL.Append("SELECT it.ID, it.CotaID, it.PrecoIniciaCom, it.Quantidade, it.QuantidadePorCliente, it.ParceiroID, ");
                stbSQL.Append("it.ValidaBin, it.TextoValidacao, it.ObrigatoriedadeID, it.Nominal, it.QuantidadePorCodigo, it.TermoSite ");
                stbSQL.Append("FROM tCotaItem it (NOLOCK) ");
                stbSQL.Append("WHERE it.ID IN (" + Utilitario.ArrayToString(cotaItemArray));
                stbSQL.Append(") ORDER BY it.PrecoIniciaCom");
                bd.Consulta(stbSQL.ToString());

                while (bd.Consulta().Read())
                {
                    DataRow dtr = dtt.NewRow();
                    dtr["ID"]                   = bd.LerInt("ID");
                    dtr["CotaID"]               = bd.LerInt("CotaID");
                    dtr["PrecoIniciaCom"]       = bd.LerString("PrecoIniciaCom");
                    dtr["Quantidade"]           = bd.LerInt("Quantidade");
                    dtr["QuantidadePorCliente"] = bd.LerInt("QuantidadePorCliente");
                    dtr["ParceiroID"]           = bd.LerInt("ParceiroID");
                    dtr["ValidaBin"]            = bd.LerBoolean("ValidaBin");
                    dtr["TextoValidacao"]       = bd.LerString("TextoValidacao");
                    dtr["ObrigatoriedadeID"]    = bd.LerInt("ObrigatoriedadeID");
                    dtr["Nominal"]              = bd.LerBoolean("Nominal");
                    dtr["QuantidadePorCodigo"]  = bd.LerInt("QuantidadePorCodigo");
                    dtr["TermoSite"]            = bd.LerString("TermoSite");
                    dtt.Rows.Add(dtr);
                }
                return(dtt);
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                bd.Fechar();
            }
        }
Exemplo n.º 2
0
        public void FiltrarPorNome(string texto)
        {
            if (lista.Count > listaBasePesquisa.Count || listaBasePesquisa.Count == 0)
            {
                listaBasePesquisa = lista;
            }

            string IDsAtuais = Utilitario.ArrayToString(listaBasePesquisa);
            BD     bd        = new BD();

            try
            {
                bd.Consulta("SELECT ID FROM tCanalTipo WHERE ID IN (" + IDsAtuais + ") AND Nome like '%" + texto.Replace("'", "''").Trim() + "%' ORDER BY  Nome");

                ArrayList listaNova = new ArrayList();
                while (bd.Consulta().Read())
                {
                    listaNova.Add(bd.LerInt("ID"));
                }

                if (listaNova.Count > 0)
                {
                    lista = listaNova;
                }
                else
                {
                    throw new Exception("Nenhum resultado para a pesquisa!");
                }

                lista.TrimToSize();
                this.Primeiro();
            }
            catch
            {
                throw;
            }
            finally
            {
                bd.Fechar();
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// Obtem todas os bloqueios
        /// </summary>
        /// <returns></returns>
        public DataTable Todos(ArrayList locaisIDs)
        {
            try
            {
                DataTable tabela = new DataTable("Bloqueio");

                tabela.Columns.Add("ID", typeof(int));
                tabela.Columns.Add("Nome", typeof(string));
                tabela.Columns.Add("CorID", typeof(int));
                tabela.Columns.Add("RGB", typeof(string));
                tabela.Columns.Add("LocalID", typeof(int));

                string sql = "SELECT b.ID,b.Nome,b.CorID,b.LocalID,c.RGB " +
                             "FROM tBloqueio AS b,tCor AS c " +
                             "WHERE c.ID=b.CorID AND b.LocalID in (" + Utilitario.ArrayToString(locaisIDs) + ") " +
                             "ORDER BY b.LocalID,b.Nome";

                bd.Consulta(sql);

                while (bd.Consulta().Read())
                {
                    DataRow linha = tabela.NewRow();
                    linha["ID"]      = bd.LerInt("ID");
                    linha["Nome"]    = bd.LerString("Nome");
                    linha["CorID"]   = bd.LerInt("CorID");
                    linha["RGB"]     = bd.LerString("RGB");
                    linha["LocalID"] = bd.LerInt("LocalID");
                    tabela.Rows.Add(linha);
                }

                bd.Fechar();

                return(tabela);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Exemplo n.º 4
0
        public List <EstruturaEventoEntregaControle> Carregar(List <int> eventoIDs, int controleID)
        {
            try
            {
                List <EstruturaEventoEntregaControle> retorno = new List <EstruturaEventoEntregaControle>();
                EstruturaEventoEntregaControle        eEECAux = new EstruturaEventoEntregaControle();
                string sql = @"SELECT  tEventoEntregaControle.ID, tEventoEntregaControle.EventoID, tEventoEntregaControle.EntregaControleID, tEventoEntregaControle.DiasTriagem,
                CASE WHEN LEN(tEventoEntregaControle.ProcedimentoEntrega) > 0
	                THEN tEventoEntregaControle.ProcedimentoEntrega 
	                ELSE
		                CASE WHEN LEN(tEntregaControle.ProcedimentoEntrega) > 0
			                THEN tEntregaControle.ProcedimentoEntrega
			                ELSE tEntrega.ProcedimentoEntrega
		                END
	                END AS ProcedimentoEntrega
                FROM tEventoEntregaControle 
                INNER JOIN tEntregaControle ON tEntregaControle.ID = tEventoEntregaControle.EntregaControleID
                INNER JOIN tEntrega ON tEntrega.ID = tEntregaControle.EntregaID WHERE EventoID IN (" + Utilitario.ArrayToString(eventoIDs.ToArray()) + ") and EntregaControleID = " + controleID;
                bd.Consulta(sql);

                if (bd.Consulta().Read())
                {
                    eEECAux.ID                  = bd.LerInt("ID");
                    eEECAux.EventoID            = bd.LerInt("EventoID");
                    eEECAux.EntregaControleID   = bd.LerInt("EntregaControleID");
                    eEECAux.ProcedimentoEntrega = bd.LerString("ProcedimentoEntrega");
                    eEECAux.DiasTriagem         = bd.LerInt("DiasTriagem");

                    retorno.Add(eEECAux);
                }

                bd.Fechar();

                return(retorno);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Exemplo n.º 5
0
        public EstruturaCompraTemporaria RetornarCompraPorClienteSessionID()
        {
            try
            {
                if (this.ClienteID.Valor == 0)
                {
                    throw new Exception("Cliente inválido. Por favor, faça o login");
                }

                EstruturaCompraTemporaria oEstrutura;

                var sql = @"
                                SELECT
                                  tCompraTemporaria.ID,
                                  tCliente.Nome,
                                  tCliente.CPF,
                                  tCliente.RG,
                                  tCliente.CNPJ,
                                  IsNull(tFormaPagamento.ID, 0)       AS FormaPagamentoID,
                                  IsNull(tFormaPagamento.Nome, '--')  AS FormaPagamento,
                                  IsNull(tFormaPagamento.Parcelas, 1) AS Parcelas,
                                  tCompraTemporaria.ValorTotal,
                                  tCompraTemporaria.Bandeira,
                                  tCompraTemporaria.BIN,
                                  tCompraTemporaria.CodigoTrocaFixo,
                                  tCompraTemporaria.SomenteVir,
                                  tCompraTemporaria.SomenteCortesias,
                                  tCompraTemporaria.EnderecoID,
                                  tCompraTemporaria.PDVSelecionado,
                                  tCompraTemporaria.EntregaControleIDSelecionado,
                                  tCompraTemporaria.DataSelecionada,
                                  tCompraTemporaria.EntregaValor,
                                  tEntrega.Nome                       AS TaxaEntrega,
                                  tEvento.Nome                        AS Evento,
                                  tSetor.Nome                         AS Setor,
                                  tPreco.Nome                         AS Preco
                                FROM tCompraTemporaria ( NOLOCK )
                                LEFT JOIN tCliente  ( NOLOCK ) ON tCliente.ID = tCompraTemporaria.ClienteID
                                LEFT JOIN tFormaPagamento ( NOLOCK ) ON tFormaPagamento.ID = tCompraTemporaria.FormaPagamentoID
                                LEFT JOIN tIngresso ( NOLOCK ) ON tIngresso.SessionID = tCompraTemporaria.SessionID
                                LEFT JOIN tEvento ( NOLOCK ) ON tEvento.ID = tIngresso.EventoID
                                LEFT JOIN tSetor ( NOLOCK ) ON tSetor.ID = tIngresso.SetorID
                                LEFT JOIN tPreco ( NOLOCK ) ON tPreco.ID = tIngresso.PrecoID
                                INNER JOIN tEntregaControle ( NOLOCK ) ON tEntregaControle.ID = tCompraTemporaria.EntregaControleIDSelecionado
                                INNER JOIN tEntrega ( NOLOCK ) ON tEntrega.ID = tEntregaControle.EntregaID
                                WHERE tCompraTemporaria.ClienteID = @clienteId AND tCompraTemporaria.SessionID = @sessionId
                          ";

                var parametros = new List <SqlParameter>()
                {
                    new SqlParameter("clienteId", this.ClienteID.Valor),
                    new SqlParameter("sessionId", this.SessionID.Valor)
                };

                bd.Consulta(sql, parametros);

                if (bd.Consulta().Read())
                {
                    oEstrutura = new EstruturaCompraTemporaria
                    {
                        ClienteID                    = this.ClienteID.Valor,
                        ID                           = bd.LerInt("ID"),
                        Nome                         = bd.LerString("Nome"),
                        CPF                          = bd.LerString("CPF"),
                        RG                           = bd.LerString("RG"),
                        CNPJ                         = bd.LerString("CNPJ"),
                        FormaPagamento               = Utilitario.LimparTitulo(bd.LerString("FormaPagamento")),
                        FormaPagamentoID             = bd.LerInt("FormaPagamentoID"),
                        Parcelas                     = bd.LerInt("Parcelas"),
                        TaxaEntrega                  = bd.LerString("TaxaEntrega"),
                        ValorTotal                   = bd.LerDecimal("ValorTotal"),
                        Bandeira                     = Utilitario.LimparTitulo(bd.LerString("Bandeira")),
                        BIN                          = bd.LerInt("BIN"),
                        CodigoTrocaFixo              = bd.LerString("CodigoTrocaFixo"),
                        SomenteVir                   = bd.LerBoolean("SomenteVir"),
                        SomenteCortesias             = bd.LerBoolean("SomenteCortesias"),
                        EnderecoID                   = bd.LerInt("EnderecoID"),
                        PDVSelecionado               = bd.LerInt("PDVSelecionado"),
                        EntregaControleIDSelecionado = bd.LerInt("EntregaControleIDSelecionado"),
                        DataSelecionada              = bd.LerString("DataSelecionada"),
                        EntregaValor                 = bd.LerDecimal("EntregaValor"),
                        Encontrado                   = true,
                        Evento                       = bd.LerString("Evento"),
                        Setor                        = bd.LerString("Setor"),
                        PrecoNome                    = bd.LerString("Preco")
                    };
                }
                else
                {
                    oEstrutura = new EstruturaCompraTemporaria {
                        Encontrado = false
                    };
                }
                return(oEstrutura);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                bd.Fechar();
            }
        }
Exemplo n.º 6
0
        public DataTable getFormaPagamentoCotaItem(int[] cotaItemID)
        {
            try
            {
                DataTable dtt = new DataTable("CotaItemFormaPagamento");
                dtt.Columns.Add("FormaPagamentoID", typeof(int));
                dtt.Columns.Add("CotaItemID", typeof(int));

                bd.Consulta("SELECT FormaPagamentoID, CotaItemID FROM tCotaItemFormaPagamento (NOLOCK) WHERE CotaItemID IN ( " + Utilitario.ArrayToString(cotaItemID) + ") ORDER BY FormaPagamentoID");

                while (bd.Consulta().Read())
                {
                    DataRow dr = dtt.NewRow();
                    dr["FormaPagamentoID"] = bd.LerInt("FormaPagamentoID");
                    dr["CotaItemID"]       = bd.LerInt("CotaItemID");
                    dtt.Rows.Add(dr);
                }
                return(dtt);
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                bd.Fechar();
            }
        }
Exemplo n.º 7
0
        public List <KeyValuePair <string, XElement> > Buscar_BlacklistRecord()
        {
            BD bd = new BD();

            try
            {
                EventoIDsBlack = new List <int>();

                string SQL = string.Format(@"SELECT DISTINCT te.ID 
                FROM tEvento AS te (NOLOCK)
                INNER JOIN tApresentacao ta (NOLOCK) ON te.ID = ta.EventoID
                WHERE te.LocalID IN ({0}) AND ta.Horario >= '{1}%'", this.LocalID, DateTime.Now.AddDays(-1).ToString("yyyyMMdd"));

                bd.Consulta(SQL);

                while (bd.Consulta().Read())
                {
                    EventoIDsBlack.Add(bd.LerInt("ID"));
                }

                bd.FecharConsulta();

                if (EventoIDsBlack.Count > 0)
                {
                    BlacklistRecord black = new BlacklistRecord();

                    black.Header.Version  = Version;
                    black.Header.Issuer   = Issuer;
                    black.Header.Receiver = Receiver;
                    black.Header.ID       = ID;

                    black.Expire         = DateTime.Now;
                    black.Action         = "U";
                    black.BlockingReason = 1;
                    black.BlockingType   = 0;

                    black.DisplayMessage = "CANCELADO";
                    black.Comment        = "CANCELLED";

                    int id = 0;

                    DateTime Horarioinicial = new DateTime();
                    DateTime Horariofinal   = new DateTime();

                    for (int cont = 0; cont < EventoIDsBlack.Count; cont++)
                    {
                        SQL = string.Format(@"SELECT DISTINCT ticb.ID, ticb.CodigoBarra, SUBSTRING(ta.Horario,1,8) AS Horario, ta.Horario AS HorarioCompleto, 
                        tpt.ID AS PrecoTipoID, tash.HorarioInicial, tash.HorarioFinal, ticb.EventoID,
                        tgi.Horario as HoraGerenciada, ISNULL(tgi.PrecoTipoID, 0) AS GerencimanentoID
                        FROM tIngressoCodigoBarra ticb (NOLOCK) 
                        INNER JOIN tIngressoLog til (NOLOCK) ON til.CodigoBarra = ticb.CodigoBarra
                        INNER JOIN tIngresso ti (NOLOCK) ON ti.ID = til.IngressoID AND ti.EventoID = ticb.EventoID
                        INNER JOIN tApresentacao ta (NOLOCK) ON ta.ID = ti.ApresentacaoID AND ta.EventoID = ticb.EventoID
                        INNER JOIN tPreco tp (NOLOCK) ON tp.ID = til.PrecoID AND tp.ApresentacaoSetorID = ti.ApresentacaoSetorID
                        LEFT JOIN tPrecoTipo tpt (NOLOCK) ON tpt.ID = tp.PrecoTipoID
                        LEFT JOIN tGerenciamentoIngressos tgi (NOLOCK) ON tgi.ID = ti.GerenciamentoIngressosID
                        LEFT JOIN tAuxiliarSetoresHorario tash (NOLOCK) ON tash.SetorID = ti.SetorID
                        WHERE ticb.EventoID = {0} AND ticb.BlackList = 'T' AND (ticb.Sincronizado = 'T' OR ticb.Sincronizado = 'F')", EventoIDsBlack[cont]);

                        bd.Consulta(SQL);

                        while (bd.Consulta().Read())
                        {
                            black.From = DateTime.Now;
                            black.To   = black.From.AddMonths(1);

                            id = bd.LerInt("ID");

                            switch (bd.LerInt("GerencimanentoID"))
                            {
                            case GerenciamentoIngressos.PRECOHORAMARCADA:
                                Horarioinicial = Utilitario.String2DateTime(DateTime.Now.ToString("yyyyMMdd") + bd.LerString("HoraGerenciada"));
                                Horariofinal   = Horarioinicial.AddHours(1);
                                break;

                            default:
                                string horarioinicial = bd.LerString("HorarioInicial");

                                if (string.IsNullOrEmpty(horarioinicial))
                                {
                                    Horarioinicial = Utilitario.String2DateTime(bd.LerString("HorarioCompleto"));
                                }
                                else
                                {
                                    Horarioinicial = Utilitario.String2DateTime(bd.LerString("Horario") + horarioinicial);
                                }

                                string horariofinal = bd.LerString("HorarioFinal");

                                if (string.IsNullOrEmpty(horariofinal))
                                {
                                    Horariofinal = Utilitario.String2DateTime(bd.LerString("HorarioCompleto")).AddHours(7.5);
                                }
                                else
                                {
                                    Horariofinal = Utilitario.String2DateTime(bd.LerString("Horario") + horariofinal);
                                }
                                break;
                            }

                            black.Black_WhitelistRecord.Add(new WhitelistRecord_BlackListRecord()
                            {
                                Coding     = this.Coding,
                                UTID       = bd.LerString("CodigoBarra"),
                                Permission = new Permission_BlackListRecord()
                                {
                                    UPID = id
                                },
                                TSProperty = new TSProperty_BlackListRecord()
                                {
                                    AreaID         = this.AreaID,
                                    EventoID       = this.EventID == 0 ? bd.LerInt("EventoID").ToString() : this.EventID.ToString("00"),
                                    TicketTypeID   = this.TicketTypeID == 0 ? bd.LerInt("PrecoTipoID").ToString("00") : this.TicketTypeID.ToString("00"),
                                    SeasonTicketID = this.SeassonPassID,
                                    From           = Horarioinicial,
                                    To             = Horariofinal
                                }
                            });
                        }
                        bd.FecharConsulta();
                    }

                    return(this.Gerar_BlacklistRecord(black));
                }
                else
                {
                    return(null);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                bd.Fechar();
            }
        }
Exemplo n.º 8
0
        public bool SalvarRespostaBlack(string Key, string Value, string XmlRetorno, string XmlTipo, bool enviado)
        {
            try
            {
                StringBuilder sql;

                sql = new StringBuilder();
                sql.Append("INSERT INTO tLogEnvioXml (TimeStamp, XmlEnviado, XmlRetorno, XmlTipo, CodigoBarra) ");
                sql.Append("VALUES ('@000', '@001', '@002', '@003', '@004')");
                sql.Replace("@000", DateTime.Now.ToString("yyyyMMddHHmmss"));
                sql.Replace("@001", Value);
                sql.Replace("@002", XmlRetorno);
                sql.Replace("@003", XmlTipo);
                sql.Replace("@004", Key);

                int x = bd.Executar(sql.ToString());

                bool result = (x == 1);

                if (result == false)
                {
                    return(false);
                }

                bd.FecharConsulta();

                object id = bd.ConsultaValor("SELECT ID FROM tIngressoCodigoBarra (NOLOCK) WHERE CodigoBarra = '" + Key + "' AND BlackList = 'T' AND EventoID IN (" + Utilitario.ArrayToString(EventoIDsBlack.ToArray()) + ")");

                if (enviado)
                {
                    int ID = Convert.ToInt32(id);

                    if (ID > 0)
                    {
                        this.AtualizarListaCodigoBarraIngresso(ID, bd);
                    }
                }

                return(true);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Exemplo n.º 9
0
        public IRLib.Codigo.Brainiac.Retorno ConsultaCPF(string CPF, string nome, ref string nomeRet)
        {
            try
            {
                IRLib.Utilitario Utilitario = new Utilitario();


                #region Variaveis
                //Código e senha para acessar o sistema de TESTES
                string codigo_teste = ConfigurationManager.AppSettings["SCPC_codigo_teste"];
                string senha_teste  = ConfigurationManager.AppSettings["SCPC_senha_teste"];

                //Código e senha para acessar o sistema de PRODUÇÃO
                string codigo_prod = ConfigurationManager.AppSettings["SCPC_codigo_prod"];
                string senha_prod  = ConfigurationManager.AppSettings["SCPC_senha_prod"];

                //URL's para acessar o sistema de TESTES e PRODUÇÃO
                string url_teste = ConfigurationManager.AppSettings["SCPC_url_teste"];
                string url_prod  = ConfigurationManager.AppSettings["SCPC_url_prod"];

                string transacao         = ConfigurationManager.AppSettings["SCPC_transacao"];
                string versao            = ConfigurationManager.AppSettings["SCPC_versao"];
                string indicadorFimTexto = ConfigurationManager.AppSettings["SCPC_indicadorFimTexto"];
                string tipoConsulta      = ConfigurationManager.AppSettings["SCPC_tipoConsulta"];

                string _s5         = "     ";
                string _s10        = "          ";
                string urlConsulta = String.Empty;

                // TODO: remover esta linha - temporário para utilização sem SSL.
                ServicePointManager.ServerCertificateValidationCallback += new RemoteCertificateValidationCallback(Extensions.ValidateRemoteCertificate);


                /*
                 *
                 * Campos para a URL de COnsulta:
                 *
                 * ¨-¨-¨-¨-¨-¨-¨-¨-¨-¨-¨-¨-¨-¨-¨-¨-¨-¨-¨-¨-¨-¨-¨-¨-¨-¨
                 * Coluna 1: Ordem
                 * Coluna 2: Campo
                 * Coluna 3: Posição Inicial
                 * Coluna 4: Posição Final
                 * Coluna 5: Tam. Byte
                 * Coluna 6: Formato - Tipo
                 * Coluna 7: Formato - Casas Decimais
                 * Coluna 8: Conteúdo
                 * ¨-¨-¨-¨-¨-¨-¨-¨-¨-¨-¨-¨-¨-¨-¨-¨-¨-¨-¨-¨-¨-¨-¨-¨-¨-¨
                 |C1||C2                       | |C3|    |C4|    |C5|    |C6|   |C7| |C8|
                 * 01  TRANSAÇÃO                   001     008     008     X           “CSR50001”
                 * 02  VERSÃO                      009     010     002     X           “01”
                 * 03  RESERVADO SOLICITANTE       011     020     010     X           USO DO SOLICITANTE                                                 (Informar somente letras                                                maiúsculas, sem acentuação ou                                                números)
                 * 04  RESERVADO ACSP              021     040     020     X           USO DA ACSP
                 * 05  CÓDIGO                      041     048     008     N       0   CÓDIGO DE SERVIÇO
                 * 06  SENHA                       049     056     008     X           SENHA DE ACESSO
                 * 07  CONSULTA                    057     064     008     X           “CONF” – Conferencia de Nomes                                                     “SCAD” – Sintese P/ Documento                                                    “FONE” – Sintese P/ Nome + Data
                 * 08  CPF                         065     075     011     N       0   NÚMERO DO CPF COMPLETO
                 * 09  NOME                        076     125     050     X           NOME (Preencher apenas 40 posições)
                 * 10  DATA                        126     133     008     N       0   FORMATO: “DDMMAAAA”
                 * 11  RESERVADO                   134     148     015     X           BRANCOS
                 * 12  INDICADOR DE FIM DE TEXTO   149     150     002     X           X “0DA0” ou X“0D25”
                 * ¨-¨-¨-¨-¨-¨-¨-¨-¨-¨-¨-¨-¨-¨-¨-¨-¨-¨-¨-¨-¨-¨-¨-¨-¨-¨
                 * Campos obrigatórios:
                 * Transação,
                 * Versão,
                 * Código de Serviço,
                 * Senha de Acesso,
                 * Consulta e Indicador de Fim de Texto,
                 * CPF para a consulta “SCAD”,
                 * Nome e Data de Nascimento
                 */

                /*
                 * EXEMPLO:
                 *  ....+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
                 *  CSR5000101RRRRRRRRRR                    12345678SENHA  CONSULTA12345678901NOME
                 *  ....+....9....+....0....+....1....+....2....+....3....+....4....+....5
                 *                                               DDMMAAAA
                 */
                #endregion

                #region MontaStringURL
                //Tamanho 150 posições;
                //1-8
                urlConsulta = transacao;
                //9-10
                urlConsulta += versao;
                //11-20
                urlConsulta += _s10;
                //21-40
                urlConsulta += _s10 + _s10;
                //41-48
                //urlConsulta += codigo_teste;
                urlConsulta += codigo_prod;
                //49-56
                //urlConsulta += senha_teste;
                urlConsulta += senha_prod;
                //57-64
                urlConsulta += tipoConsulta;
                //65-75
                urlConsulta += CPF;
                //76-125
                //urlConsulta += nomeBD + _s10 + _s10 + _s5 + _s + _s + _s;


                // TODO: REmover esse for.
                for (int i = 1; i <= 50; i++)
                {
                    i     = nome.Length;
                    nome += " ";
                }

                urlConsulta += nome.Substring(0, 50);
                //126-133
                urlConsulta += DateTime.Now.ToString("ddMMyyyy");
                //134-148
                urlConsulta += _s10 + _s5;
                //149-150
                urlConsulta += indicadorFimTexto;

                urlConsulta = urlConsulta.Replace(" ", "%20");

                //string urlFinal = url_teste += urlConsulta;
                string urlFinal = url_prod += urlConsulta;

                int totalPosicoes = urlConsulta.Length;

                #endregion

                // TODO: Verificar se deu erro ou não = Algo sobre asteriscos.
                string strUrlRetorno = IRLib.Utilitario.HTTPGetPage(urlFinal).Trim().Replace("<PRE>", "").Replace("</PRE>", "").Replace("\n", "").Replace("\r", "");
                nomeRet = strUrlRetorno.Replace(" ", "$");
                nomeRet = nomeRet.Substring(73, 70).Replace("$$", "").Replace("$", " ").ToUpper().Trim();

                if (nomeRet.StartsWith("*"))
                {
                    return new IRLib.Codigo.Brainiac.Retorno()
                           {
                               TipoRetorno = IRLib.Codigo.Brainiac.Enumeradores.EnumTipoRetorno.Parcial,
                               Mensagem    = "Falha na Consulta."
                           }
                }
                ;

                // Verifica se o nome digitado pelo cliente é igual ao retornado na consulta.
                return
                    (new IRLib.Codigo.Brainiac.Gerenciador()
                     .IniciarNomes(nomeRet, nome));
            }
            catch (WebException)
            {
                return(new IRLib.Codigo.Brainiac.Retorno()
                {
                    TipoRetorno = IRLib.Codigo.Brainiac.Enumeradores.EnumTipoRetorno.ImplicarErro,
                    Mensagem = "Falha na Consulta."
                });
            }
        }
Exemplo n.º 10
0
        /// <summary>
        /// Captura os detalhes das taxas de entrega do evento
        /// </summary>
        /// <param name="eventoIDs">Lista de Eventos ID</param>
        /// <param name="taxaEntregaID">TaxaEntrega ID</param>
        /// <returns></returns>
        public List <string> DetalhesEntregaPorEventos(List <int> eventoIDs, int taxaEntregaID)
        {
            List <string> retorno = new List <string>();

            try
            {
                List <int> procedimentos = new List <int>();

                string sql = "";
                if (eventoIDs.Count > 0)
                {
                    sql = @"SELECT DISTINCT
                            CASE WHEN
		                            LEN(tEventoEntregaControle.ProcedimentoEntrega) > 0
			                            THEN tEventoEntregaControle.ProcedimentoEntrega
		                            ELSE
			                            CASE WHEN
				                            LEN(tEntregaControle.ProcedimentoEntrega) > 0
				                            THEN tEntregaControle.ProcedimentoEntrega
				                            ELSE tEntrega.ProcedimentoEntrega
			                            END
                            END as ProcedimentoEntrega,
                            CASE WHEN
		                            LEN(tEventoEntregaControle.ProcedimentoEntrega) > 0
			                            THEN 3
		                            ELSE
			                            CASE WHEN
				                            LEN(tEntregaControle.ProcedimentoEntrega) > 0
				                            THEN 2
				                            ELSE 1
			                            END
                            END as PrioridadeProcedimento
                            FROM tEventoEntregaControle
                            INNER JOIN tEntregaControle on  tEventoEntregaControle.EntregaControleID = tEntregaControle.ID
                            INNER JOIN tEntrega on tEntregaControle.EntregaID = tEntrega.ID
                            WHERE 
                            tEventoEntregaControle.EventoID IN ( " + Utilitario.ArrayToString(eventoIDs.ToArray()) + @") AND
                            tEntrega.ID = " + taxaEntregaID + @"
                            GROUP BY tEntregaControle.ID,tEntrega.ProcedimentoEntrega,tEntregaControle.ProcedimentoEntrega,
                            tEventoEntregaControle.ProcedimentoEntrega,tEventoEntregaControle.EventoID";
                }
                else
                {
                    sql = @"SELECT
			                tEntrega.ProcedimentoEntrega as ProcedimentoEntrega,
			                1 as PrioridadeProcedimento
                            FROM tEntrega 
                            WHERE tEntrega.ID = " + taxaEntregaID + @"";
                }

                using (IDataReader oDataReader = bd.Consulta(sql))
                {
                    while (oDataReader.Read())
                    {
                        switch (bd.LerInt("PrioridadeProcedimento"))
                        {
                        case 3:
                            retorno.Add(bd.LerString("ProcedimentoEntrega"));
                            break;

                        case 2:
                            if (!procedimentos.Contains(2))
                            {
                                procedimentos.Add(2);
                                retorno.Add(bd.LerString("ProcedimentoEntrega"));
                            }
                            break;

                        case 1:
                            if (!procedimentos.Contains(1))
                            {
                                procedimentos.Add(1);
                                retorno.Add(bd.LerString("ProcedimentoEntrega"));
                            }
                            break;

                        default:
                            break;
                        }
                    }
                }


                bd.Fechar();
            }
            catch (Exception ex)
            {
                throw new Exception("Procedimento de Entrega: " + ex.Message);
            }
            finally
            {
                bd.Fechar();
            }

            return(retorno);
        }
Exemplo n.º 11
0
        public List <EstruturaTrocaValeIngresso> ValidarTrocaValeIngresso(List <int> IDs)
        {
            try
            {
                StringBuilder stbSQL;

                stbSQL = new StringBuilder();
                List <EstruturaTrocaValeIngresso> retorno = new List <EstruturaTrocaValeIngresso>();

                stbSQL.Append("SELECT DISTINCT vi.ID, vip.Nome, vi.CodigoTroca, vip.CodigoTrocaFixo, vi.Status, vip.Valor, vip.Acumulativo, ");
                stbSQL.Append(" vip.TrocaConveniencia, vip.TrocaEntrega, vip.TrocaIngresso, vip.ValorPagamento, vip.ValorTipo ");
                stbSQL.Append("FROM tValeIngresso vi (NOLOCK) ");
                stbSQL.Append("INNER JOIN tValeIngressoTipo vip (NOLOCK) ON vi.ValeIngressoTipoID = vip.ID ");
                stbSQL.Append("WHERE vi.Status = '" + (char)ValeIngresso.enumStatus.Impresso + "' ");
                stbSQL.Append("AND (((vi.ID IN (" + Utilitario.ArrayToString(IDs.ToArray()) + ") ");
                stbSQL.Append("AND DataExpiracao >= '" + DateTime.Now.Date.ToString("yyyyMMdd") + "' ) ");
                stbSQL.Append("AND (DataExpiracao >= '" + System.DateTime.Now.Date.ToString("yyyyMMdd") + "'))) ");

                bd.Consulta(stbSQL.ToString());
                if (!bd.Consulta().Read())
                {
                    throw new Exception("Os vale ingressos utilizados não foram encontrados.");
                }

                do
                {
                    retorno.Add(new EstruturaTrocaValeIngresso()
                    {
                        ID                = bd.LerInt("ID"),
                        Nome              = bd.LerString("Nome"),
                        CodigoTroca       = bd.LerString("CodigoTroca"),
                        CodigoTrocaFixo   = bd.LerString("CodigoTrocaFixo"),
                        Acumulativo       = bd.LerString("Acumulativo"),
                        Status            = bd.LerString("Status"),
                        Valor             = bd.LerDecimal("Valor"),
                        Encontrado        = true,
                        TrocaConveniencia = bd.LerBoolean("TrocaConveniencia"),
                        TrocaEntrega      = bd.LerBoolean("TrocaEntrega"),
                        TrocaIngresso     = bd.LerBoolean("TrocaIngresso"),
                        ValorPagamento    = bd.LerDecimal("ValorPagamento"),
                        ValorTipo         = Convert.ToChar(bd.LerString("ValorTipo")),
                    });
                } while (bd.Consulta().Read());

                //this.AlterarStatus(enumStatus.Aguardando, oRetorno.ID);

                if (retorno.Count != IDs.Count)
                {
                    throw new Exception("Não foi possível encontrar todos os Vale Ingresos. Por favor tente novamente.");
                }
                return(retorno);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                bd.Fechar();
            }
        }
Exemplo n.º 12
0
        public int[] AdicionarMulti(int eventoID, int apresentacaoID, int setorID, int precoID, int todosID, string precoNome)
        {
            try
            {
                DataTable tabelaPrecosAlteraveis = precosAlteraveis(eventoID, apresentacaoID, setorID, precoID, todosID, precoNome);

                //verificar quais ainda nao existem na tabela
                Array precosIDs = Array.CreateInstance(typeof(DataRow), tabelaPrecosAlteraveis.Rows.Count);
                tabelaPrecosAlteraveis.Rows.CopyTo(precosIDs, 0);
                string precos = Utilitario.ArrayToString(precosIDs);

                string sqlPrecos = "SELECT tPreco.ID AS PrecoID, tCanalPreco.CanalID " +
                                   "FROM tPreco (NOLOCK) " +
                                   "LEFT JOIN tCanalPreco (NOLOCK) ON tCanalPreco.PrecoID=tPreco.ID AND tCanalPreco.CanalID=" + this.CanalID.Valor + " " +
                                   "WHERE tPreco.ID in (" + precos + ")";

                bd.Consulta(sqlPrecos);

                DataTable tabela = new DataTable("Canais");
                tabela.Columns.Add("PrecoID", typeof(int));
                tabela.Columns.Add("CanalID", typeof(int));

                while (bd.Consulta().Read())
                {
                    DataRow linha = tabela.NewRow();
                    linha["PrecoID"] = bd.LerInt("PrecoID");
                    linha["CanalID"] = bd.LerInt("CanalID");
                    tabela.Rows.Add(linha);
                }
                bd.Consulta().Close();

                CanalPreco canalPreco = new CanalPreco(this.Control.UsuarioID);
                canalPreco.Limpar();
                canalPreco.CanalID.Valor    = this.CanalID.Valor;
                canalPreco.DataInicio.Valor = this.DataInicio.Valor;
                canalPreco.DataFim.Valor    = this.DataFim.Valor;
                canalPreco.Quantidade.Valor = this.Quantidade.Valor;

                bd.IniciarTransacao();

                int countInseridos = 0;

                foreach (DataRow linha in tabela.Rows)
                {
                    int pID = (int)linha["PrecoID"];
                    int cID = (int)linha["CanalID"];

                    if (cID == 0)
                    { //null, pode incluir
                        canalPreco.PrecoID.Valor = pID;
                        canalPreco.Inserir(bd, true);

                        countInseridos++;
                    }
                }//while (bd.Consulta().Read())

                bd.FinalizarTransacao();
                int[] retorno = new int[2];
                retorno[0] = tabela.Rows.Count;
                retorno[1] = countInseridos;
                return(retorno);
            }
            catch (Exception ex)
            {
                bd.DesfazerTransacao();
                throw ex;
                //} finally {
                //    bd.Fechar();
                //    bd.Cnn.Dispose();
            }
        }
Exemplo n.º 13
0
        public DataTable CarregarTabelaPDV(List <int> eventosID, string estado, string cidade)
        {
            //if (eventosID.Count == 0)
            //    return CarregarTabelaPDV(estado, cidade);

            DataRow dr = null;

            string sql = "";

            DataTable PontoVenda = new DataTable("PontoVenda");

            PontoVenda.Columns.Add("ID", typeof(int));
            PontoVenda.Columns.Add("Local", typeof(string));
            PontoVenda.Columns.Add("Nome", typeof(string));
            PontoVenda.Columns.Add("Endereco", typeof(string));
            PontoVenda.Columns.Add("Numero", typeof(string));
            PontoVenda.Columns.Add("Compl", typeof(string));
            PontoVenda.Columns.Add("Cidade", typeof(string));
            PontoVenda.Columns.Add("Estado", typeof(string));
            PontoVenda.Columns.Add("Bairro", typeof(string));
            PontoVenda.Columns.Add("Obs", typeof(string));
            PontoVenda.Columns.Add("Referencia", typeof(string));
            PontoVenda.Columns.Add("CEP", typeof(string));
            PontoVenda.Columns.Add("PermiteRetirada", typeof(bool));

            try
            {
                // Pontos de Venda
                if (eventosID.Count != 0)
                {
                    sql =
                        string.Format(@"
                        SELECT 
		                    DISTINCT pv.ID, pv.Local, pv.Nome, pv.Endereco, pv.Numero, Compl, Cidade, Estado, Bairro, pv.Obs, Referencia, CEP, PermiteRetirada,
							                (COUNT(DISTINCT epv.EventoID) + 
							                CASE WHEN ev.HabilitarRetiradaTodosPDV = 'T'
								                THEN 1
								                ELSE 0
							                END) AS Disponivel
			                INTO #tmp
			                FROM tPontoVenda pv (NOLOCK)
	                        LEFT JOIN tEventoPontoDeVenda epv (NOLOCK) ON pv.ID = epv.PontoDeVendaID AND epv.EventoID IN ({0})
	                        LEFT JOIN tEvento ev (NOLOCK) ON ev.ID IN ({0})
	                        WHERE pv.Estado = '{1}' AND pv.Cidade = '{2}' AND pv.PermiteRetirada = 'T' AND (epv.ID IS NOT NULL OR ev.HabilitarRetiradaTodosPDV = 'T')
	                        GROUP BY pv.ID, pv.Local, pv.Nome, pv.Endereco, pv.Numero, Compl, Cidade, 
					                Estado, Bairro, pv.Obs, Referencia, CEP, PermiteRetirada, ev.HabilitarRetiradaTodosPDV                          
	                 SELECT 
		                ID, Local, Nome, Endereco, Numero, Compl, Cidade, 
					                Estado, Bairro, Obs, Referencia, CEP, PermiteRetirada
	                FROM #tmp
	                GROUP BY ID, Local, Nome, Endereco, Numero, Compl, Cidade, 
					                Estado, Bairro, Obs, Referencia, CEP, PermiteRetirada
	                HAVING SUM(Disponivel) = {3}
	                DROP TABLE #tmp
                    ", Utilitario.ArrayToString(eventosID.ToArray()), estado, cidade, eventosID.Count);
                }
                else
                {
                    sql = "SELECT * FROM tPontoVenda WHERE PermiteRetirada = 'T' AND IR = 'T' AND Estado = '" + estado + "' AND Cidade = '" + cidade + "' ORDER BY Nome";
                }

                bd.Consulta(sql);

                while (bd.Consulta().Read())
                {
                    dr = PontoVenda.NewRow();
                    PontoVenda.Rows.Add(dr);

                    dr["ID"]              = bd.LerInt("ID");
                    dr["Local"]           = bd.LerString("Local");
                    dr["Nome"]            = bd.LerString("Nome");
                    dr["Endereco"]        = bd.LerString("Endereco");
                    dr["Numero"]          = bd.LerString("Numero");
                    dr["Compl"]           = bd.LerString("Compl");
                    dr["Cidade"]          = bd.LerString("Cidade");
                    dr["Estado"]          = bd.LerString("Estado");
                    dr["Bairro"]          = bd.LerString("Bairro");
                    dr["Obs"]             = bd.LerString("Obs");
                    dr["Referencia"]      = bd.LerString("Referencia");
                    dr["CEP"]             = bd.LerString("CEP");
                    dr["PermiteRetirada"] = true;
                }
                bd.Fechar();


                return(PontoVenda);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Exemplo n.º 14
0
        private List <EstruturaAssinaturaBloqueio> CarregarAssinatura(List <int> lstAssClienteID)
        {
            BD bdaux = new BD();

            try
            {
                string sql = @"SELECT distinct i.Grupo,i.Classificacao, ac.id as AssinaturaClienteID, ac.AssinaturaID, i.LugarID, s.ID as SetorID, i.Codigo AS Lugar,s.Nome AS Setor, ass.Nome as NomeAssinatura, 
                                ISNULL(c.Nome,'') AS Assinante, ISNULL(c.ID,0) AS ClienteID, ISNULL(c.CPF,'') as CPF ,ISNULL(pt.Nome,'') AS Preco, ISNULL(ac.Status,'') as StatusAssinatura , ISNULL(ac.Acao,'') as AcaoAssinatura , 
                                i.Status as StatusIngresso, i.BloqueioID as IngressoBloqueioID,ass.BloqueioID AssinaturaBloqueioID, ass.DesistenciaBloqueioID AssinaturaDesistenciaBloqueioID, ass.ExtintoBloqueioID as AssinaturaExtintoBloqueioID, bl.Nome as BloqueioUtilizado,
                                l.PosicaoY, l.PosicaoX, bl.CorID AS BloqueioCorID
                                FROM tAssinaturaCliente ac
                                INNER JOIN tIngresso i (NOLOCK) ON ac.ID = i.AssinaturaClienteID
                                INNER JOIN tLugar l (NOLOCK) on i.LugarID = l.ID
                                INNER JOIN tAssinatura ass (NOLOCK) on ass.ID = ac.AssinaturaID
                                INNER JOIN tApresentacao ap (NOLOCK) on i.ApresentacaoID = ap.ID
                                INNER JOIN tSetor s (NOLOCK) on i.SetorID = s.ID
                                LEFT JOIN tCliente c (NOLOCK) ON ac.ClienteID = c.ID
                                LEFT JOIN tPrecoTipo pt (NOLOCK) ON ac.PrecoTipoID = pt.ID 
                                LEFT JOIN tBloqueio bl(NOLOCK) ON i.BloqueioID = bl.ID
                                WHERE ac.ID in(" + Utilitario.ArrayToString(lstAssClienteID.ToArray()) + @") 
                                ORDER BY i.Grupo,i.Classificacao";

                bdaux.Consulta(sql);

                var lstRetorno = new List <EstruturaAssinaturaBloqueio>();

                EstruturaAssinaturaBloqueio eABaux = new EstruturaAssinaturaBloqueio();

                while (bdaux.Consulta().Read())
                {
                    if (lstRetorno.Where(c => c.LugarID == bdaux.LerInt("LugarID")).Count() == 0)
                    {
                        string statusAssinatura = bdaux.LerString("StatusAssinatura") != "" ? ((AssinaturaCliente.EnumStatus)Convert.ToChar(bdaux.LerString("StatusAssinatura"))).ToString() : "--";
                        string statusIngresso   = bdaux.LerString("StatusIngresso") != "" ? ((Ingresso.StatusIngresso)Convert.ToChar(bdaux.LerString("StatusIngresso"))).ToString() : "--";


                        eABaux = new EstruturaAssinaturaBloqueio()
                        {
                            LugarID                 = bdaux.LerInt("LugarID"),
                            NomeAssinatura          = bdaux.LerString("NomeAssinatura"),
                            Assinante               = bdaux.LerString("Assinante"),
                            CPF                     = bdaux.LerString("CPF"),
                            Setor                   = bdaux.LerString("Setor"),
                            Lugar                   = bdaux.LerString("Lugar"),
                            Preco                   = bdaux.LerString("Preco"),
                            ClienteID               = bdaux.LerInt("ClienteID"),
                            AssinaturaClienteID     = bdaux.LerInt("AssinaturaClienteID"),
                            AssinaturaBloqueioID    = bdaux.LerInt("AssinaturaBloqueioID"),
                            BloqueioUtilizado       = bdaux.LerString("BloqueioUtilizado") != "" ? bdaux.LerString("BloqueioUtilizado") : "--",
                            StatusAssinatura        = statusAssinatura,
                            StatusIngresso          = statusIngresso,
                            SetorID                 = bdaux.LerInt("SetorID"),
                            Selecionar              = false,
                            PosicaoX                = bdaux.LerInt("PosicaoX"),
                            PosicaoY                = bdaux.LerInt("PosicaoY"),
                            BloqueioID              = bdaux.LerInt("IngressoBloqueioID"),
                            BloqueioCorID           = bdaux.LerInt("BloqueioCorID"),
                            AssinaturaID            = bdaux.LerInt("AssinaturaID"),
                            AssinaturaDesistenciaID = bdaux.LerInt("AssinaturaDesistenciaBloqueioID"),
                        };

                        eABaux.Status = this.VerificaStatusVisual(bdaux.LerString("StatusIngresso"), bdaux.LerString("StatusAssinatura"), bdaux.LerString("AcaoAssinatura"), bdaux.LerInt("IngressoBloqueioID"), bdaux.LerInt("AssinaturaBloqueioID"), bdaux.LerInt("AssinaturaExtintoBloqueioID"), bdaux.LerInt("AssinaturaDesistenciaBloqueioID"));

                        lstRetorno.Add(eABaux);
                    }
                    else
                    {
                        eABaux.Status            = EnumStatusVisual.Indisponivel;
                        eABaux.StatusIngresso    = "--";
                        eABaux.StatusAssinatura  = "--";
                        eABaux.BloqueioUtilizado = "--";
                        eABaux.BloqueioID        = 0;
                    }
                }

                return(lstRetorno);
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                bdaux.Fechar();
            }
        }
Exemplo n.º 15
0
        public IRLib.Codigo.Brainiac.Retorno CadastroEntregaValido()
        {
            if (!ValidacaoAtiva())
            {
                return new IRLib.Codigo.Brainiac.Retorno()
                       {
                           TipoRetorno = IRLib.Codigo.Brainiac.Enumeradores.EnumTipoRetorno.Ok
                       }
            }
            ;

            if (this.Pais.Valor != "Brasil")
            {
                return new IRLib.Codigo.Brainiac.Retorno()
                       {
                           TipoRetorno = IRLib.Codigo.Brainiac.Enumeradores.EnumTipoRetorno.Ok
                       }
            }
            ;

            // Método só estará disponível para utilização se o objeto estiver populado.
            if (this.Control.ID.Equals(0))
            {
                throw new ArgumentException("Cliente não encontrado para validação!");
            }

            ////Compara os nomes e atribui status;

            string retNomeConsultadoEntrega = string.Empty;

            IRLib.Codigo.Brainiac.Retorno retornoBrainiac = null;

            //Entrou com Nome de entrega Igual ao do Cliente -- Passa direto sem precisar validar novamente com a SCSP
            if (this.CPFEntrega.Valor == this.CPF.Valor &&
                Utilitario.CompararSemAcentos(this.Nome.Valor, this.NomeEntrega.Valor) == 0 &&
                this.StatusConsulta == enumStatusCPF.Confirmado)
            {
                retornoBrainiac =
                    new IRLib.Codigo.Brainiac.Gerenciador().IniciarNomes(this.Nome.Valor, this.NomeEntrega.Valor);

                switch (retornoBrainiac.TipoRetorno)
                {
                case IRLib.Codigo.Brainiac.Enumeradores.EnumTipoRetorno.Ok:
                    this.CPFConsultadoEntrega.Valor = this.CPFEntrega.Valor;

                    this.NomeConsultadoEntrega.Valor = this.NomeEntrega.Valor;
                    base.StatusConsultaEntrega.Valor = (int)enumStatusCPF.Confirmado;
                    SalvarConsultaCPFEntrega();
                    break;

                case IRLib.Codigo.Brainiac.Enumeradores.EnumTipoRetorno.ImplicarErro:
                    base.StatusConsultaEntrega.Valor = (int)enumStatusCPF.Invalido;
                    this.CPFConsultadoEntrega.Valor  = this.CPFEntrega.Valor;
                    this.NomeConsultadoEntrega.Valor = this.NomeEntrega.Valor;
                    SalvarConsultaCPFEntrega();
                    break;
                }
                return(retornoBrainiac);
            }
            // 1.0 Verifica se os valores de entrega anteriores sao diferentes dos que estao agora, se estiver, 1.1 ou 1.2
            else if (this.CPFEntrega.Valor != this.CPFConsultadoEntrega.Valor ||
                     (Utilitario.CompararSemAcentos(this.NomeEntrega.Valor.Trim(), this.NomeConsultadoEntrega.Valor.Trim()) != 0) ||
                     this.StatusConsultaEntrega != enumStatusCPF.Confirmado)
            {
                retornoBrainiac = this.CadastroValido(this.CPFEntrega.Valor, this.NomeEntrega.Valor, this.CPFConsultadoEntrega.Valor, this.NomeConsultadoEntrega.Valor,
                                                      this.StatusConsultaEntrega == enumStatusCPF.NaoConsultado ? enumStatusCPF.NaoConsultado : enumStatusCPF.Invalido, ref retNomeConsultadoEntrega);

                switch (retornoBrainiac.TipoRetorno)
                {
                //1.1 Verifica o Cadastro forcando o Status Invalido
                case IRLib.Codigo.Brainiac.Enumeradores.EnumTipoRetorno.Ok:
                    // Confirmado, salva no banco. sem precisar ir até a SCSP - Ja havia sido consultado.
                    this.CPFConsultadoEntrega.Valor  = this.CPFEntrega.Valor;
                    this.NomeConsultadoEntrega.Valor = retNomeConsultadoEntrega;
                    base.StatusConsultaEntrega.Valor = (int)enumStatusCPF.Confirmado;
                    SalvarConsultaCPFEntrega();
                    break;

                //1.2 Atribui o Status Invalido para mostrar no Retorno
                case IRLib.Codigo.Brainiac.Enumeradores.EnumTipoRetorno.ImplicarErro:
                    base.StatusConsultaEntrega.Valor = (int)enumStatusCPF.Invalido;
                    if (!string.IsNullOrEmpty(retNomeConsultadoEntrega))
                    {
                        this.CPFConsultadoEntrega.Valor  = this.CPFEntrega.Valor;
                        this.NomeConsultadoEntrega.Valor = retNomeConsultadoEntrega;
                    }
                    SalvarConsultaCPFEntrega();
                    break;

                case IRLib.Codigo.Brainiac.Enumeradores.EnumTipoRetorno.Parcial:
                    break;

                default:
                    throw new Exception("Falha ao consultar o CPF!");
                }
                return(retornoBrainiac);
            }
            //Utiliziou o mesmo Cliente da compra anterior nesta..
            else if (this.StatusConsultaEntrega == enumStatusCPF.Confirmado)
            {
                return new IRLib.Codigo.Brainiac.Retorno()
                       {
                           TipoRetorno = IRLib.Codigo.Brainiac.Enumeradores.EnumTipoRetorno.Ok
                       }
            }
            ;
            //Fez a pesquisa no SCPC no só que colocou nome errado, como esta digitado corretamente, só atribui o status de Confirmado
            else
            {
                this.StatusConsultaEntrega = enumStatusCPF.Confirmado;

                this.SalvarConsultaCPFEntrega();
                return(new IRLib.Codigo.Brainiac.Retorno()
                {
                    TipoRetorno = IRLib.Codigo.Brainiac.Enumeradores.EnumTipoRetorno.Ok
                });
            }
        }
Exemplo n.º 16
0
        public DataTable getInformacoesPorCotaItem(int[] IDs)
        {
            try
            {
                DataTable dtt = this.estrutura();
                bd.Consulta("SELECT tObrigatoriedade.* FROM tObrigatoriedade (NOLOCK) INNER JOIN tCotaItem (NOLOCK) " +
                            "ON tObrigatoriedade.ID = tCotaItem.ObrigatoriedadeID WHERE tCotaItem.ID IN( " + Utilitario.ArrayToString(IDs) + ")");

                while (bd.Consulta().Read())
                {
                    DataRow linha = dtt.NewRow();
                    linha["ID"]                 = bd.LerInt("ID");
                    linha["Nome"]               = bd.LerBoolean("Nome");
                    linha["RG"]                 = bd.LerBoolean("RG");
                    linha["CPF"]                = bd.LerBoolean("CPF");
                    linha["Telefone"]           = bd.LerBoolean("Telefone");
                    linha["TelefoneComercial"]  = bd.LerBoolean("TelefoneComercial");
                    linha["Celular"]            = bd.LerBoolean("Celular");
                    linha["DataNascimento"]     = bd.LerBoolean("DataNascimento");
                    linha["Email"]              = bd.LerBoolean("Email");
                    linha["CEPCliente"]         = bd.LerBoolean("CEPCliente");
                    linha["EnderecoCliente"]    = bd.LerBoolean("EnderecoCliente");
                    linha["NumeroCliente"]      = bd.LerBoolean("NumeroCliente");
                    linha["ComplementoCliente"] = bd.LerBoolean("ComplementoCliente");
                    linha["BairroCliente"]      = bd.LerBoolean("BairroCliente");
                    linha["EstadoCliente"]      = bd.LerBoolean("EstadoCliente");
                    linha["CidadeCliente"]      = bd.LerBoolean("CidadeCliente");
                    linha["NomeEntrega"]        = bd.LerBoolean("NomeEntrega");
                    linha["CPFEntrega"]         = bd.LerBoolean("CPFEntrega");
                    linha["RGEntrega"]          = bd.LerBoolean("RGEntrega");
                    linha["CEPEntrega"]         = bd.LerBoolean("CEPEntrega");
                    linha["EnderecoEntrega"]    = bd.LerBoolean("EnderecoEntrega");
                    linha["NumeroEntrega"]      = bd.LerBoolean("NumeroEntrega");
                    linha["ComplementoEntrega"] = bd.LerBoolean("ComplementoEntrega");
                    linha["BairroEntrega"]      = bd.LerBoolean("BairroEntrega");
                    linha["CidadeEntrega"]      = bd.LerBoolean("CidadeEntrega");
                    linha["EstadoEntrega"]      = bd.LerBoolean("EstadoEntrega");
                    linha["NomeResponsavel"]    = bd.LerBoolean("NomeResponsavel");
                    linha["CPFResponsavel"]     = bd.LerBoolean("CPFResponsavel");
                    dtt.Rows.Add(linha);
                }

                return(dtt);
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                bd.Fechar();
            }
        }
Exemplo n.º 17
0
        /// <summary>
        /// Método para retornar os ingressos (para reserva) dos melhores lugares de mesa fechada.
        /// kim
        /// </summary>
        /// <param name="usuarioID"></param>
        /// <param name="lojaID"></param>
        /// <param name="sessionID"></param>
        /// <param name="clienteID"></param>
        /// <param name="eventoID"></param>
        /// <param name="apresentacaoSetorID"></param>
        /// <param name="precos"></param>
        /// <param name="preReserva"></param>
        /// <returns></returns>
        public List <Ingresso> MelhoresIngressos(int usuarioID, int lojaID, string sessionID, int clienteID, int eventoID,
                                                 int apresentacaoID, int apresentacaoSetorID, int setorID, List <EstruturaPrecoReservaSite> precos,
                                                 Setor.enumLugarMarcado tipoSetor, EstruturaCotasInfo cotaInfo, int serieID, EstruturaReservaInternet estruturaReserva, bool isEntradaFranca)
        {
            BD               bd               = new BD(ConfigurationManager.AppSettings["ConexaoReadOnly"]);
            BD               bdReserva        = new BD();
            Ingresso         oIngresso        = new Ingresso();
            Bilheteria       oBilheteria      = new Bilheteria();
            Cota             oCota            = new Cota();
            CotaItemControle cotaItemControle = new CotaItemControle();
            CotaItem         oCotaItem        = new CotaItem();
            Lugar            oLugar           = new Lugar(); //usado para a busca de melhores lugares.
            List <Ingresso>  ingressosRetorno;
            decimal          precoValor;
            int              p;
            decimal          valorConv          = 0;
            decimal          valorProcessamento = 0;
            //decimal valor;
            Cortesia oCortesia        = new Cortesia();
            int      CortesiaPadraoID = 0;

            DateTime timeStamp = DateTime.Now.AddMinutes(new ConfigGerenciador().getValorTempoReserva());

            try
            {
                int qtdPrecos = 0;
                //Essa variavel duplica o preço e o valor pela quantidade de para reservar.
                //Dessa forma é possível reservar os lugares com os preços corretos. kim
                List <EstruturaPrecoReservaSite> precoPorLugar = new List <EstruturaPrecoReservaSite>();
                List <EstruturaPrecoReservaSite> listaPreco    = new List <EstruturaPrecoReservaSite>();
                EstruturaPrecoReservaSite        itemPreco;

                List <EstruturaCotaItemReserva> listaCotaItem = new List <EstruturaCotaItemReserva>();
                if (cotaInfo.CotaID_Apresentacao != 0 || cotaInfo.CotaID_ApresentacaoSetor != 0)
                {
                    listaCotaItem = oCotaItem.getListaCotaItemReserva(cotaInfo.CotaID_Apresentacao, cotaInfo.CotaID_ApresentacaoSetor);
                }

                cotaInfo.ApresentacaoID      = apresentacaoID;
                cotaInfo.ApresentacaoSetorID = apresentacaoSetorID;

                var qtdIncrementada = 0;

                foreach (EstruturaPrecoReservaSite preco in precos)
                {
                    //Verifica se é possivel reservar o ingresso apartir das cotas geradas p/ a apresentacao/setor

                    oCotaItem.AtualizarInformacoesCota(listaCotaItem, preco, cotaInfo);

                    if (listaCotaItem.Any() && cotaInfo.CotaItemID > 0)
                    {
                        cotaInfo.QuantidadeJaVendida = cotaItemControle.getQuantidadeNovo(cotaInfo.CotaItemID, cotaInfo.CotaItemID_APS, cotaInfo.ApresentacaoID, cotaInfo.ApresentacaoSetorID);
                        var qtdReservar = preco.QuantidadeReservar();
                        if (!cotaInfo.ValidaReserva(qtdReservar))
                        {
                            throw new BilheteriaException(string.Format("Não será possível reservar o preço \"{0}\", o limite de venda foi excedido.", preco.PrecoNome), Bilheteria.CodMensagemReserva.PrecoIndisponivel);
                        }
                    }

                    precoValor = 0;
                    // Verifica se existe quantidade do PrecoID disponivel para venda e retorna via referencia o valor do preço
                    if (preco.Quantidade != oBilheteria.GetIngressosQPodeReservar(clienteID, sessionID, preco.ID, preco.Quantidade, ref precoValor, false, serieID, estruturaReserva))
                    {
                        throw new BilheteriaException(string.Format("A quantidade disponível para o preço \"{0}\" foi excedida.", preco.PrecoNome), Bilheteria.CodMensagemReserva.PrecoIndisponivel);
                    }
                    //incrementa a quantidade
                    qtdPrecos += preco.Quantidade;

                    if (tipoSetor != IRLib.Setor.enumLugarMarcado.Pista)
                    {
                        //duplica os registros para serem usados mais tarde na hora da reserva de lugares marcados
                        for (int x = 0; x < preco.Quantidade; x++)
                        {
                            itemPreco    = new EstruturaPrecoReservaSite();
                            itemPreco.ID = preco.ID;
                            itemPreco.GerenciamentoIngressosID = preco.GerenciamentoIngressosID;
                            itemPreco.Valor             = precoValor;
                            itemPreco.Quantidade        = preco.Quantidade;
                            itemPreco.CotaItemID        = cotaInfo.CotaItemID;
                            itemPreco.CotaItemIDAPS     = cotaInfo.CotaItemID_APS;
                            itemPreco.CodigoCinema      = preco.CodigoCinema;
                            itemPreco.CodigoProgramacao = preco.CodigoProgramacao;
                            precoPorLugar.Add(itemPreco);
                        }
                    }
                    else
                    {
                        //gera novos registros para adicionar a cotaItemID do contrario não ha como verificar a multipla selecao de precos
                        itemPreco    = new EstruturaPrecoReservaSite();
                        itemPreco.ID = preco.ID;
                        itemPreco.GerenciamentoIngressosID = preco.GerenciamentoIngressosID;
                        itemPreco.PrecoNome         = preco.PrecoNome;
                        itemPreco.Quantidade        = preco.Quantidade;
                        itemPreco.Valor             = preco.Valor;
                        itemPreco.CotaItemID        = cotaInfo.CotaItemID;
                        itemPreco.CotaItemIDAPS     = cotaInfo.CotaItemID_APS;
                        itemPreco.CodigoCinema      = preco.CodigoCinema;
                        itemPreco.CodigoProgramacao = preco.CodigoProgramacao;
                        listaPreco.Add(itemPreco);
                    }
                }
                //Lugares marcados. Precisa achar os melhores lugares.
                if (tipoSetor != IRLib.Setor.enumLugarMarcado.Pista)
                {
                    #region Busca Ingresso de Lugar Marcado
                    // Busca a lista dos Melhores Lugares
                    List <Lugar> lugares = oLugar.MelhorLugarMarcado(qtdPrecos, apresentacaoSetorID, tipoSetor);

                    //Verifica se os ingressos estão juntos
                    if (tipoSetor == IRLib.Setor.enumLugarMarcado.MesaFechada)
                    {
                        if (lugares.Count == 0)
                        {
                            throw new Exception("Não foi possível efetuar todas as reserva.");
                        }

                        if (lugares.Count != qtdPrecos)
                        {
                            throw new Exception("Não existem mesas com a capacidade de acomodar todas as pessoas juntas");
                        }
                    }
                    int  quantidadeMesaAberta = 0;
                    bool mesaAberta           = (tipoSetor == IRLib.Setor.enumLugarMarcado.MesaAberta);
                    // Se for mesa aberta o total da de ingressos é a soma de todas as quantidades na listagem.
                    if (mesaAberta)
                    {
                        foreach (Lugar itemLugar in lugares)
                        {
                            quantidadeMesaAberta += itemLugar.Quantidade.Valor;
                        }
                        if (quantidadeMesaAberta != qtdPrecos) // Não encontrou a qtd suficiente?!
                        {
                            lugares.Clear();                   // Limpa os ingressos e passa para a próxima.
                        }
                    }
                    else
                    {
                        if (lugares.Count != qtdPrecos) // Não encontrou a qtd suficiente?!
                        {
                            lugares.Clear();            // Limpa os ingressos e passa para a próxima.
                        }
                    }

                    ingressosRetorno = new List <Ingresso>();
                    p = 0;                   //variavel de controle para os preços
                    int controlePrecoID = 0; //variavel de controle para saber se mudou o precoID e trazer a nova taxa de entrega
                    //Busca os ingressos para os melhores lugares encontrados
                    foreach (Lugar l in lugares)
                    {
                        try
                        {
                            //Só faz a select com base na quantidade caso seja mesa aberta.
                            string top = mesaAberta ? "TOP " + l.Quantidade.Valor : "";

                            string sql = "SELECT " + top + " ID, Codigo,EmpresaID FROM tIngresso(NOLOCK) " +
                                         "WHERE ApresentacaoSetorID = " + apresentacaoSetorID + " AND Status = '" + Ingresso.DISPONIVEL + "' " +
                                         "AND LugarID = " + l.Control.ID;

                            bd.Consulta(sql);


                            while (bd.Consulta().Read())
                            {
                                if (precoPorLugar[p].ID != controlePrecoID)
                                {
                                    valorConv = oBilheteria.TaxaConveniencia(eventoID, precoPorLugar[p].ID, estruturaReserva.CanalID);

                                    //Se não tem conveniencia, não deve contar que possui taxa de processamento, ignora a busca
                                    if (valorConv > 0)
                                    {
                                        valorProcessamento = oBilheteria.ValorTaxaProcessamento(eventoID);
                                    }

                                    controlePrecoID = precoPorLugar[p].ID;
                                }

                                //popula o objeto ingresso
                                oIngresso                        = new Ingresso();
                                oIngresso.Control.ID             = bd.LerInt("ID");
                                oIngresso.PrecoID.Valor          = precoPorLugar[p].ID;
                                oIngresso.UsuarioID.Valor        = usuarioID;
                                oIngresso.Codigo.Valor           = bd.LerString("Codigo");
                                oIngresso.LojaID.Valor           = lojaID;
                                oIngresso.ClienteID.Valor        = clienteID;
                                oIngresso.SessionID.Valor        = sessionID;
                                oIngresso.TimeStampReserva.Valor = timeStamp;
                                oIngresso.LugarID.Valor          = l.Control.ID;
                                oIngresso.TxConv                 = valorProcessamento > 0 ? 0 : valorConv;
                                oIngresso.TaxaProcessamentoValor = valorProcessamento;
                                oIngresso.Grupo.Valor            = l.Grupo.Valor;
                                oIngresso.Classificacao.Valor    = l.Classificacao.Valor;
                                oIngresso.CotaItemID             = precoPorLugar[p].CotaItemID;
                                oIngresso.CotaItemIDAPS          = precoPorLugar[p].CotaItemIDAPS;
                                oIngresso.EmpresaID.Valor        = bd.LerInt("EmpresaID");
                                oIngresso.SerieID.Valor          = serieID;

                                ////se não tiver valor e não tiver conveniencia não deve reservar
                                if (precoPorLugar[p].Valor == 0 && oIngresso.TxConv == 0 && oIngresso.TaxaProcessamentoValor == 0)
                                {
                                    // Atribui a Cortesia Padrão do Evento/Local - INICIO
                                    if (CortesiaPadraoID == 0)
                                    {
                                        CortesiaPadraoID = oCortesia.CortesiaPadraoEvento(eventoID);
                                    }

                                    if (CortesiaPadraoID <= 0)
                                    {
                                        throw new Exception("Falha ao reservar os ingressos. Não existe cortesia associada a este evento.");
                                    }

                                    oIngresso.CortesiaID.Valor = CortesiaPadraoID;
                                    //    // Atribui a Cortesia Padrão do Evento/Local - FIM

                                    //    oIngresso.Status.Valor = Ingresso.CORTESIA_SEM_CONVENIENCIA;
                                    ingressosRetorno.Add(oIngresso);
                                    //    break;//break para inserir somente um registro. esse registro de ingresso vai ser utilizado
                                    //    //como base de info para deletar o preço inválido do banco de dados do site.
                                }
                                else
                                {
                                    ingressosRetorno.Add(oIngresso);
                                }

                                if (tipoSetor != IRLib.Setor.enumLugarMarcado.MesaFechada)
                                {
                                    p++;
                                }
                            }
                            if (tipoSetor == IRLib.Setor.enumLugarMarcado.MesaFechada)
                            {
                                p++;
                            }
                        }
                        catch
                        {
                            throw;
                        }
                    }

                    #endregion
                }

                else //Ingressos de pista
                {
                    #region Busca Ingressos de Pista
                    Ingresso ing;
                    ingressosRetorno = new List <Ingresso>();
                    ArrayList ingressosIDInseridos = new ArrayList(); //lista de ingressos ID para não buscar os mesmos ingressos.
                    string    evitaDuplicidades    = "";              //monta a string para a sql
                    foreach (EstruturaPrecoReservaSite preco in listaPreco)
                    {
                        if (ingressosRetorno.Count > 0)
                        {
                            //Monta a query que evita duplicidade de ingressos na hora de reservar.
                            foreach (Ingresso item in ingressosRetorno)
                            {
                                ingressosIDInseridos.Add(item.Control.ID);
                            }

                            evitaDuplicidades = "AND ID NOT IN ( " + Utilitario.ArrayToString(ingressosIDInseridos) + ") ";
                        }
                        //Busca os ingressos de pista.
                        bd.FecharConsulta();

                        var bdBusca = new BD(ConfigurationManager.AppSettings["ConexaoReadOnly"]);

                        var readerCount = bdBusca.ConsultaCount(string.Format("SELECT TOP {0} ID, Codigo, LugarID FROM tIngresso(NOLOCK) WHERE ApresentacaoSetorID = {1} AND Status = '{2}' {3} ORDER BY newid()", preco.Quantidade, apresentacaoSetorID, Ingresso.DISPONIVEL, evitaDuplicidades));

                        if (readerCount.rowCount > 0 && readerCount.rowCount != preco.Quantidade)
                        {
                            throw new Exception("Quantidade de ingressos selecionado não está disponível. Tente com uma quantidade menor.");
                        }

                        while (bdBusca.Consulta().Read())
                        {
                            valorConv = oBilheteria.TaxaConveniencia(eventoID, preco.ID, estruturaReserva.CanalID);
                            //Se não tem conveniencia, não deve contar que possui taxa de processamento, ignora a busca
                            if (valorConv > 0)
                            {
                                valorProcessamento = oBilheteria.ValorTaxaProcessamento(eventoID);
                            }
                            else
                            {
                                valorProcessamento = 0;
                            }

                            //Popula o objeto ingresso e adiciona a lista de retorno
                            ing = new Ingresso
                            {
                                Control = { ID = bdBusca.LerInt("ID") },
                                PrecoID = { Valor = preco.ID },
                                GerenciamentoIngressosID = { Valor = preco.GerenciamentoIngressosID },
                                UsuarioID              = { Valor = estruturaReserva.UsuarioID },
                                Codigo                 = { Valor = bdBusca.LerString("Codigo") },
                                LojaID                 = { Valor = estruturaReserva.LojaID },
                                ClienteID              = { Valor = clienteID },
                                SessionID              = { Valor = sessionID },
                                TimeStampReserva       = { Valor = timeStamp },
                                LugarID                = { Valor = bdBusca.LerInt("LugarID") },
                                TxConv                 = valorProcessamento > 0 ? 0 : valorConv,
                                TaxaProcessamentoValor = valorProcessamento,
                                CotaItemID             = preco.CotaItemID,
                                CotaItemIDAPS          = preco.CotaItemIDAPS,
                                SerieID                = { Valor = serieID },
                                CompraGUID             = { Valor = estruturaReserva.GUID }
                            };

                            //Se for EntradaGratuita OU (se não tiver valor e não tiver conveniencia não deve reservar)
                            if (preco.Valor == 0 && ing.TxConv == 0 && ing.TaxaProcessamentoValor == 0)
                            {
                                // Atribui a Cortesia Padrão do Evento/Local - INICIO
                                if (CortesiaPadraoID == 0)
                                {
                                    CortesiaPadraoID = oCortesia.CortesiaPadraoEvento(eventoID, isEntradaFranca);
                                }

                                if (CortesiaPadraoID <= 0)
                                {
                                    throw new Exception("Não foi possível reservar o ingresso. Por favor, tente novamente mais tarde.");
                                }

                                ing.CortesiaID.Valor = CortesiaPadraoID;
                                // Atribui a Cortesia Padrão do Evento/Local - FIM

                                //ing.Status.Valor = Ingresso.CORTESIA_SEM_CONVENIENCIA;
                                ingressosRetorno.Add(ing);
                                //break;//break para inserir somente um registro. esse registro de ingresso vai ser utilizado
                                ////como base de info para deletar o preço inválido do banco de dados do site.
                            }
                            else
                            {
                                ingressosRetorno.Add(ing);
                            }
                        }//fim while consulta banco

                        bdBusca.Fechar();
                    }//fim foreach precos

                    //Ingressos para cinema, deve utilizar on demand!
                    if (listaPreco.Any(c => !string.IsNullOrEmpty(c.CodigoCinema)))
                    {
                        ingressosRetorno = this.NovoNaoMarcadoOnDemand(estruturaReserva, apresentacaoSetorID, eventoID, apresentacaoID, setorID, ingressosRetorno, listaPreco);
                    }

                    #endregion
                }

                return(ingressosRetorno);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                bdReserva.Fechar();
                bd.Fechar();
            }
        }
Exemplo n.º 18
0
        public List <EstruturaFonteNova> Buscar_BlacklistRecordFonte()
        {
            BD bd = new BD();

            try
            {
                List <EstruturaFonteNova> retorno = new List <EstruturaFonteNova>();
                EventoIDsBlack = new List <int>();

                string SQL = string.Format(@"SELECT DISTINCT te.ID 
                FROM tEvento AS te (NOLOCK)
                INNER JOIN tApresentacao ta (NOLOCK) ON te.ID = ta.EventoID
                WHERE te.LocalID IN ({0}) AND ta.Horario >= '{1}%'", this.LocalID, DateTime.Now.AddDays(-1).ToString("yyyyMMdd"));

                bd.Consulta(SQL);

                while (bd.Consulta().Read())
                {
                    EventoIDsBlack.Add(bd.LerInt("ID"));
                }

                bd.FecharConsulta();

                if (EventoIDsBlack.Count > 0)
                {
                    SQL = string.Format(@"
                    SELECT DISTINCT ti.ID, ticb.CodigoBarra, te.Nome AS Evento, tasf.aIdEvento
                    FROM tIngressoCodigoBarra ticb (NOLOCK) 
                    INNER JOIN tIngressoLog til (NOLOCK) ON til.CodigoBarra = ticb.CodigoBarra
                    INNER JOIN tIngresso ti (NOLOCK) ON ti.ID = til.IngressoID AND ti.EventoID = ticb.EventoID
                    INNER JOIN tApresentacao ta (NOLOCK) ON ta.ID = ti.ApresentacaoID AND ta.EventoID = ticb.EventoID
                    INNER JOIN tPreco tp (NOLOCK) ON tp.ID = til.PrecoID AND tp.ApresentacaoSetorID = ti.ApresentacaoSetorID
                    INNER JOIN tSetor ts (NOLOCK) ON ts.ID = ti.SetorID
                    LEFT JOIN tLugar tl (NOLOCK) ON tl.ID = ti.LugarID
                    LEFT JOIN tCliente tc (NOLOCK) ON tc.ID = ti.ClienteID
                    INNER JOIN tAuxiliarSetoresFonte tasf (NOLOCK) ON tasf.SetorID = ti.SetorID AND tasf.PrecoID = ti.PrecoID
                    INNER JOIN tEvento te (NOLOCK) ON te.ID = ta.EventoID
                    WHERE ticb.EventoID IN ({0}) AND ticb.BlackList = 'T' AND ticb.Sincronizado = 'T'", Utilitario.ArrayToString(EventoIDsBlack.ToArray()));

                    bd.Consulta(SQL);

                    while (bd.Consulta().Read())
                    {
                        retorno.Add(new EstruturaFonteNova()
                        {
                            CodigoBarra = bd.LerString("CodigoBarra"),
                            Evento      = bd.LerString("Evento"),
                            aIdEvento   = bd.LerString("aIdEvento")
                        });
                    }

                    return(retorno);
                }
                else
                {
                    return(null);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                bd.Fechar();
            }
        }