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 tCor 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(); } }
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 "); 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"); dtt.Rows.Add(dtr); } return(dtt); } catch (Exception) { throw; } finally { bd.Fechar(); } }
/// <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; } }
/// <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 = @"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"; 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) { throw; } finally { bd.Fechar(); } return(retorno); }
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(); } }
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(); } }
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; } }
public EstruturaCompraTemporaria RetornarCompraPorSessionID() { try { EstruturaCompraTemporaria oEstrutura; StringBuilder stbSQL = new StringBuilder(); stbSQL.Append("SELECT tCompraTemporaria.ID, tCliente.Nome, tCliente.CPF, tCliente.RG, tCliente.CNPJ, IsNull(tFormaPagamento.ID, 0) AS FormaPagamentoID, "); stbSQL.Append("tEvento.Nome as Evento, tSetor.Nome as Setor, tPreco.Nome as Preco, IsNull(tFormaPagamento.Nome, '--') AS FormaPagamento, IsNull(tFormaPagamento.Parcelas, 1) AS Parcelas, tCompraTemporaria.ValorTotal, tCompraTemporaria.Bandeira, tCompraTemporaria.BIN, tCompraTemporaria.CodigoTrocaFixo, "); stbSQL.Append("tCompraTemporaria.SomenteVir, tCompraTemporaria.SomenteCortesias, tCompraTemporaria.EnderecoID , tCompraTemporaria.PDVSelecionado , tCompraTemporaria.EntregaControleIDSelecionado, "); stbSQL.Append("tCompraTemporaria.DataSelecionada, tCompraTemporaria.EntregaValor, tEntrega.Nome as TaxaEntrega "); stbSQL.Append("FROM tCompraTemporaria (NOLOCK) "); stbSQL.Append("LEFT JOIN tCliente (NOLOCK) ON tCliente.ID = tCompraTemporaria.ClienteID "); stbSQL.Append("LEFT JOIN tFormaPagamento (NOLOCK) ON tFormaPagamento.ID = tCompraTemporaria.FormaPagamentoID "); stbSQL.Append("LEFT JOIN tIngresso (NOLOCK) ON tIngresso.ClienteID = tCliente.ID "); stbSQL.Append("LEFT JOIN tEvento (NOLOCK) ON tEvento.ID = tIngresso.EventoID "); stbSQL.Append("LEFT JOIN tSetor (NOLOCK) ON tSetor.ID = tIngresso.SetorID "); stbSQL.Append("LEFT JOIN tPreco (NOLOCK) ON tPreco.ID = tIngresso.PrecoID "); stbSQL.Append("INNER JOIN tEntregaControle (NOLOCK) ON tEntregaControle.ID = tCompraTemporaria.EntregaControleIDSelecionado "); stbSQL.Append("INNER JOIN tEntrega (NOLOCK) ON tEntrega.ID = tEntregaControle.EntregaID "); stbSQL.Append("WHERE tCompraTemporaria.SessionID = '" + this.SessionID.Valor + "'"); bd.Consulta(stbSQL.ToString()); if (bd.Consulta().Read()) { oEstrutura = new EstruturaCompraTemporaria(); oEstrutura.ClienteID = this.ClienteID.Valor; oEstrutura.ID = bd.LerInt("ID"); oEstrutura.Nome = bd.LerString("Nome"); oEstrutura.CPF = bd.LerString("CPF"); oEstrutura.RG = bd.LerString("RG"); oEstrutura.CNPJ = bd.LerString("CNPJ"); oEstrutura.FormaPagamento = Utilitario.LimparTitulo(bd.LerString("FormaPagamento")); oEstrutura.FormaPagamentoID = bd.LerInt("FormaPagamentoID"); oEstrutura.Parcelas = bd.LerInt("Parcelas"); oEstrutura.TaxaEntrega = bd.LerString("TaxaEntrega"); oEstrutura.ValorTotal = bd.LerDecimal("ValorTotal"); oEstrutura.Bandeira = Utilitario.LimparTitulo(bd.LerString("Bandeira")); oEstrutura.BIN = bd.LerInt("BIN"); oEstrutura.CodigoTrocaFixo = bd.LerString("CodigoTrocaFixo"); oEstrutura.SomenteVir = bd.LerBoolean("SomenteVir"); oEstrutura.SomenteCortesias = bd.LerBoolean("SomenteCortesias"); oEstrutura.EnderecoID = bd.LerInt("EnderecoID"); oEstrutura.PDVSelecionado = bd.LerInt("PDVSelecionado"); oEstrutura.EntregaControleIDSelecionado = bd.LerInt("EntregaControleIDSelecionado"); oEstrutura.DataSelecionada = bd.LerString("DataSelecionada"); oEstrutura.EntregaValor = bd.LerDecimal("EntregaValor"); oEstrutura.Encontrado = true; oEstrutura.Evento = bd.LerString("Evento"); oEstrutura.Setor = bd.LerString("Setor"); oEstrutura.PrecoNome = bd.LerString("Preco"); } else { oEstrutura = new EstruturaCompraTemporaria(); oEstrutura.Encontrado = false; } return(oEstrutura); } catch (Exception ex) { throw ex; } finally { bd.Fechar(); } }
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(); } }
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(); } }
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(6.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(); } }
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; } }
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(); } }
/// <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) { BD bd = new BD(ConfigurationManager.AppSettings["ConexaoReadOnly"]); BD bdReserva = new BD(); Ingresso oIngresso = new Ingresso(); BilheteriaParalela oBilheteria = new BilheteriaParalela(); Cota oCota = new Cota(); 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 ConfigGerenciadorParalela().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; List <int> retornoCotaItens = new List <int>(2); foreach (EstruturaPrecoReservaSite preco in precos) { //Verifica se é possivel reservar o ingresso apartir das cotas geradas p/ a apresentacao/setor //Dispara Exception e nao deixa reservar if (listaCotaItem.Count != 0) { retornoCotaItens = oCotaItem.getQuantidadeQPodeReservarCota(listaCotaItem, preco, cotaInfo); //cotaItemID = oCotaItem.getQuantidadeQPodeReservarCota(-2, -1, listaCotaItem, preco, cotaInfo); if (retornoCotaItens.Count > 0 && (retornoCotaItens[0].Equals(-1) || retornoCotaItens[1].Equals(-1))) { throw new BilheteriaException("Infelizmente não será possível comprar o preço \"" + preco.PrecoNome + "\", pois o limite de venda foi excedido. <br /> Escolha um novo preço.", BilheteriaParalela.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("A Quantidade disponível para o preço \"" + preco.PrecoNome.ToString() + "\" foi excedida.", BilheteriaParalela.CodMensagemReserva.PrecoIndisponivel); } //incrementa a quantidade qtdPrecos += preco.Quantidade; //só utiliza os preços duplicados caso seja lugar marcado while (retornoCotaItens.Count < 2) { retornoCotaItens.Add(0); } if (tipoSetor != IRLib.Paralela.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 = retornoCotaItens[0]; itemPreco.CotaItemIDAPS = retornoCotaItens[1]; 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 = retornoCotaItens[0]; itemPreco.CotaItemIDAPS = retornoCotaItens[1]; itemPreco.CodigoCinema = preco.CodigoCinema; itemPreco.CodigoProgramacao = preco.CodigoProgramacao; listaPreco.Add(itemPreco); } } //Lugares marcados. Precisa achar os melhores lugares. if (tipoSetor != IRLib.Paralela.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.Paralela.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.Paralela.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.Paralela.Setor.enumLugarMarcado.MesaFechada) { p++; } } if (tipoSetor == IRLib.Paralela.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"]); bdBusca.Consulta(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)); 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(); ing.Control.ID = bdBusca.LerInt("ID"); ing.PrecoID.Valor = preco.ID; ing.GerenciamentoIngressosID.Valor = preco.GerenciamentoIngressosID; ing.UsuarioID.Valor = estruturaReserva.UsuarioID; ing.Codigo.Valor = bdBusca.LerString("Codigo"); ing.LojaID.Valor = estruturaReserva.LojaID; ing.ClienteID.Valor = clienteID; ing.SessionID.Valor = sessionID; ing.TimeStampReserva.Valor = timeStamp; ing.LugarID.Valor = bdBusca.LerInt("LugarID"); ing.TxConv = valorProcessamento > 0 ? 0 : valorConv; ing.TaxaProcessamentoValor = valorProcessamento; ing.CotaItemID = preco.CotaItemID; ing.CotaItemIDAPS = preco.CotaItemIDAPS; ing.SerieID.Valor = serieID; ing.CompraGUID.Valor = estruturaReserva.GUID; //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); } 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(); } }
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_IngressoMais 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_IngressoMais 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; } }
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(); } }
public IRLib.Paralela.Codigo.Brainiac.Retorno ConsultaCPF(string CPF, string nome) { try { string nomeRet = ""; IRLib.Paralela.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.Paralela.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.Paralela.Codigo.Brainiac.Retorno() { TipoRetorno = IRLib.Paralela.Codigo.Brainiac.Enumeradores.EnumTipoRetorno.Parcial, Mensagem = "Falha na Consulta." } } ; // Verifica se o nome digitado pelo cliente é igual ao retornado na consulta. return (new IRLib.Paralela.Codigo.Brainiac.Gerenciador() .IniciarNomes(nomeRet, nome)); } catch (WebException) { return(new IRLib.Paralela.Codigo.Brainiac.Retorno() { TipoRetorno = IRLib.Paralela.Codigo.Brainiac.Enumeradores.EnumTipoRetorno.ImplicarErro, Mensagem = "Falha na Consulta." }); } }