public DataTable DetalhesItem(int VendaBilheteriaItemID) { DataTable tabela = new DataTable("DetalhesItem"); try { tabela.Columns.Add("PacoteNome", typeof(string)); tabela.Columns.Add("LocalNome", typeof(string)); tabela.Columns.Add("EventoNome", typeof(string)); tabela.Columns.Add("Horario", typeof(string)); tabela.Columns.Add("SetorNome", typeof(string)); tabela.Columns.Add("PrecoNome", typeof(string)); tabela.Columns.Add("PrecoValor", typeof(decimal)); tabela.Columns.Add("Status", typeof(string)); tabela.Columns.Add("Codigo", typeof(string)); bd.Consulta("" + "SELECT " + " tPacote.Nome AS PacoteNome, "+ " tLocal.Nome AS LocalNome, "+ " tEvento.Nome AS EventoNome, "+ " tApresentacao.Horario, "+ " tSetor.Nome AS SetorNome, "+ " tPreco.Nome AS PrecoNome, "+ " tPreco.Valor AS PrecoValor, "+ " tIngresso.Status, "+ " tIngresso.Codigo "+ "FROM " + " tVendaBilheteriaItem "+ "INNER JOIN " + " tIngressoLog ON tIngressoLog.VendaBilheteriaItemID = tVendaBilheteriaItem.ID "+ "INNER JOIN " + " tIngresso ON tIngresso.ID = tIngressoLog.IngressoID "+ "INNER JOIN " + " tLocal ON tLocal.ID = tIngresso.LocalID "+ "INNER JOIN " + " tEvento ON tEvento.ID = tIngresso.EventoID "+ "INNER JOIN " + " tApresentacao ON tApresentacao.ID = tIngresso.ApresentacaoID "+ "INNER JOIN " + " tSetor ON tSetor.ID = tIngresso.SetorID "+ "INNER JOIN " + " tPreco ON tPreco.ID = tIngresso.PrecoID "+ "LEFT OUTER JOIN " + " tPacote ON tPacote.ID = tIngresso.PacoteID "+ "WHERE " + " tVendaBilheteriaItem.ID = "+ VendaBilheteriaItemID + " " + ""); while (bd.Consulta().Read()) { DataRow linha = tabela.NewRow(); linha["PacoteNome"] = bd.LerString("PacoteNome"); linha["LocalNome"] = bd.LerString("LocalNome"); linha["EventoNome"] = bd.LerString("EventoNome"); linha["Horario"] = bd.LerDateTime("Horario"); linha["SetorNome"] = bd.LerString("SetorNome"); linha["PrecoNome"] = bd.LerString("PrecoNome"); linha["PrecoValor"] = bd.LerDecimal("PrecoValor"); linha["Status"] = Ingresso.StatusDescritivo(bd.LerString("Status")); linha["Codigo"] = bd.LerString("Codigo"); tabela.Rows.Add(linha); } bd.Fechar(); } catch (Exception ex) { throw ex; } return(tabela); }
public DataTable PesquisarSenha(string senha, bool novoHistorico = false, int intVendaBilheteriaID = 0) { DataTable tabela; if (novoHistorico) { tabela = EstruturaHistoricoNovo(); } else { tabela = EstruturaHistorico(); } BD bd = new BD(); string strStatus = ""; bool pagamentoProcessado = false; try { if (intVendaBilheteriaID.Equals(0)) { using (IDataReader oDataReader = bd.Consulta("" + "SELECT " + " tVendaBilheteria.ID, " + " tVendaBilheteria.Status, " + " tVendaBilheteria.PagamentoProcessado " + "FROM " + " tVendaBilheteria (NOLOCK) " + "WHERE " + " (Senha = '" + senha + "')" )) { if (!oDataReader.Read()) { throw new ApplicationException("Venda não encontrada!"); } if (bd.LerInt("ID") < 1) { throw new ApplicationException("Venda não encontrada!"); } intVendaBilheteriaID = bd.LerInt("ID"); strStatus = bd.LerString("Status"); pagamentoProcessado = bd.LerBoolean("PagamentoProcessado"); } bd.Fechar(); } StringBuilder strSql = new StringBuilder(); strSql.Append(" SELECT "); strSql.Append("( "); strSql.Append(" SELECT "); strSql.Append(" COUNT(tIngressoLog.ID) "); strSql.Append(" FROM "); strSql.Append(" tIngressoLog (NOLOCK) "); strSql.Append(" WHERE "); strSql.Append(" (tIngressoLog.VendaBilheteriaID = " + intVendaBilheteriaID + ") "); strSql.Append(" ) AS TotIngressos, "); strSql.Append(" i.ID AS IngressoID, "); strSql.Append(" il.VendaBilheteriaID, "); strSql.Append(" i.Codigo, "); strSql.Append(" il.IngressoID, "); strSql.Append(" ev.ID EventoID, "); strSql.Append(" ev.Nome Evento, "); strSql.Append(" il.ID, "); strSql.Append(" il.[TimeStamp] as Data, "); strSql.Append(" il.Acao, "); strSql.Append(" il.Obs, "); strSql.Append(" p.Nome AS Preco, "); strSql.Append(" p.Valor, "); strSql.Append(" b.Nome AS Bloqueio, "); strSql.Append(" c.Nome AS Cortesia, "); strSql.Append(" lo.Nome AS Loja, "); strSql.Append(" i.Status, "); strSql.Append(" p.ID AS PrecoID, "); strSql.Append(" u.Nome AS Usuario, "); strSql.Append(" ci.Nome AS Cliente, vb.CLienteID, "); strSql.Append(" vb.NotaFiscalEstabelecimento, "); strSql.Append(" vb.Senha, "); strSql.Append(" l.Nome AS Local, l.Cidade, "); strSql.Append(" a.Horario AS Apresentacao, "); strSql.Append(" a.ID AS ApresentacaoID, "); strSql.Append(" s.Nome AS Setor, "); strSql.Append(" il.CodigoBarra, "); strSql.Append(" en.Tipo AS TaxaEntregaTipo, "); // Calcula os campos TaxaConvenienciaValor e TaxaConveniencia por ingresso strSql.Append(" vb.TaxaEntregaValor, "); strSql.Append(" CASE WHEN (SELECT COUNT(ID) FROM tingresso WHERE VendaBilheteriaID = " + intVendaBilheteriaID + ") > 1 "); strSql.Append(" THEN CAST(vbi.TaxaConveniencia/(SELECT COUNT(ID) FROM tIngresso WHERE VendaBilheteriaID = " + intVendaBilheteriaID + ") AS DECIMAL(10,2)) "); strSql.Append(" ELSE vbi.TaxaConveniencia END AS TaxaConveniencia, "); strSql.Append(" CASE WHEN (SELECT COUNT(ID) FROM tingresso WHERE VendaBilheteriaID = " + intVendaBilheteriaID + ") > 1 "); strSql.Append(" THEN CAST(vbi.TaxaConvenienciaValor/(SELECT COUNT(ID) FROM tIngresso WHERE VendaBilheteriaID = " + intVendaBilheteriaID + ") AS DECIMAL(10,2)) "); strSql.Append(" ELSE ISNULL(vbi.TaxaConvenienciaValor,0) END AS TaxaConvenienciaValor, "); //Forma antiga de exibição //strSql.Append(" vbi.TaxaConveniencia, "); //strSql.Append(" ISNULL(vbi.TaxaConvenienciaValor,0) AS TaxaConvenienciaValor, "); strSql.Append(" IsNull(us.Nome, ' - ') as Supervisor, "); strSql.Append(" ep.Nome AS PeriodoAgenda ,"); strSql.Append(" en.Nome AS EntregaNome ,"); strSql.Append(" ea.Data AS DataAgenda ,"); strSql.Append(" ear.Nome AS AreaEntrega ,"); strSql.Append(" en.Tipo AS TaxaEntregaTipo, "); strSql.Append(" ISNULL(vb.ClienteEnderecoID,0) AS EnderecoEntrega , "); strSql.Append(" pdv.Nome as PDVEntrega, "); strSql.Append(" ev.TipoCodigoBarra, i.ApresentacaoSetorID "); strSql.Append(" ,ci.Email "); strSql.Append(" ,cl.Nome AS Canal "); strSql.Append(" ,en.ID AS EntregaID "); strSql.Append(" ,i.Status AS StatusDet "); strSql.Append(" ,i.LugarID "); strSql.Append(" ,i.PacoteID "); strSql.Append(" ,i.PacoteGrupo "); strSql.Append(" ,vb.EntregaControleID "); strSql.Append(" FROM tIngressoLog il (NOLOCK) "); strSql.Append(" LEFT JOIN tVendaBilheteria vb (NOLOCK) ON vb.ID = il.VendaBilheteriaID "); strSql.Append(" LEFT JOIN tVendaBilheteriaItem vbi (NOLOCK) ON il.VendaBilheteriaItemID = vbi.ID "); strSql.Append(" INNER JOIN tUsuario u (NOLOCK) ON u.ID = il.UsuarioID "); strSql.Append(" LEFT JOIN tUsuario us (NOLOCK) ON us.ID = il.SupervisorID "); strSql.Append(" LEFT OUTER JOIN tPreco p (NOLOCK) ON p.ID = il.PrecoID "); strSql.Append(" INNER JOIN tIngresso i (NOLOCK) ON i.ID = IngressoID "); strSql.Append(" INNER JOIN tEvento ev (NOLOCK) ON ev.ID = i.EventoID "); strSql.Append(" INNER JOIN tLocal l (NOLOCK) ON l.ID = i.LocalID "); strSql.Append(" INNER JOIN tSetor s (NOLOCK) ON s.ID = i.SetorID "); strSql.Append(" INNER JOIN tApresentacao a (NOLOCK) ON a.ID = i.ApresentacaoID "); strSql.Append(" LEFT JOIN tLoja lo (NOLOCK) ON lo.ID = il.LojaID "); strSql.Append(" LEFT JOIN tCanal cl (NOLOCK) ON cl.ID = il.CanalID "); strSql.Append(" LEFT JOIN tCliente ci (NOLOCK) ON ci.ID = vb.ClienteID "); strSql.Append(" LEFT JOIN tCortesia c (NOLOCK) ON c.ID = il.CortesiaID "); strSql.Append(" LEFT JOIN tBloqueio b (NOLOCK) ON b.ID = il.BloqueioID "); strSql.Append(" LEFT JOIN tEntregaControle ec (NOLOCK) ON vb.EntregaControleID = ec.ID "); strSql.Append(" LEFT JOIN tEntrega en (NOLOCK) ON ec.EntregaID = en.ID "); strSql.Append(" LEFT JOIN tEntregaPeriodo ep (NOLOCK) ON ec.PeriodoID = ep.ID "); strSql.Append(" LEFT JOIN tEntregaArea ear (NOLOCK) ON ec.EntregaAreaID = ear.ID "); strSql.Append(" LEFT JOIN tEntregaAgenda ea (NOLOCK) ON vb.EntregaAgendaID = ea.ID "); strSql.Append(" LEFT JOIN tPontoVenda pdv (NOLOCK) ON vb.PdvID = pdv.ID "); strSql.Append(" WHERE "); strSql.Append(" ( "); strSql.Append(" il.IngressoID IN ( "); strSql.Append(" SELECT "); strSql.Append(" IngressoID "); strSql.Append(" FROM "); strSql.Append(" tIngressoLog (NOLOCK) "); strSql.Append(" WHERE "); strSql.Append(" (VendaBilheteriaID = " + intVendaBilheteriaID + ") "); strSql.Append(" ) "); strSql.Append(" ) "); strSql.Append(" ORDER BY "); strSql.Append(" il.IngressoID, "); strSql.Append(" il.ID "); using (IDataReader oDataReader = bd.Consulta(strSql.ToString())) { int ingressoID = 0; bool blnInserirDados = false; string strSenhaVenda = ""; DataRow linha = null; int itens = 0; while (oDataReader.Read()) { itens++; if (ingressoID != bd.LerInt("IngressoID")) { ingressoID = bd.LerInt("IngressoID"); blnInserirDados = false; strSenhaVenda = ""; } if (bd.LerString("Acao") == IngressoLog.VENDER) { strSenhaVenda = bd.LerString("Senha"); } // Se a operação for venda, Liga o Flag de Inserir Dados if (((bd.LerString("Acao") == IngressoLog.VENDER || bd.LerString("Acao") == IngressoLog.PRE_RESERVA) && strStatus != VendaBilheteria.CANCELADO && bd.LerInt("VendaBilheteriaID") == intVendaBilheteriaID) || (bd.LerString("Acao") == IngressoLog.CANCELAR && strStatus == VendaBilheteria.CANCELADO && bd.LerInt("VendaBilheteriaID") == intVendaBilheteriaID)) { blnInserirDados = true; } // Insere as Informações dos Ingressos if (blnInserirDados) { if (strSenhaVenda == "") { if (strStatus == VendaBilheteria.PRE_RESERVADO) { strSenhaVenda = "-"; } else { strSenhaVenda = bd.LerString("Senha"); } } linha = tabela.NewRow(); linha["IngressoID"] = bd.LerInt("IngressoID"); linha["IngressoLogID"] = bd.LerInt("ID"); linha["Codigo"] = bd.LerString("Codigo"); linha["Data"] = bd.LerStringFormatoDataHora("Data"); linha["Cliente"] = bd.LerString("Cliente"); linha["ClienteID"] = bd.LerString("ClienteID"); linha["Evento"] = bd.LerString("Evento"); linha["EventoID"] = bd.LerString("EventoID"); linha["ApresentacaoID"] = bd.LerString("ApresentacaoID"); linha["ApresentacaoSetorID"] = bd.LerInt("ApresentacaoSetorID"); linha["TipoCodigoBarra"] = bd.LerString("TipoCodigoBarra"); // Se for uma senha de cancelamento alimentar a Senha de Venda e Senha de Cancelamento if (strStatus == VendaBilheteria.CANCELADO) { linha["Senha"] = strSenhaVenda; linha["SenhaCancelamento"] = bd.LerString("Senha"); } else { // Se for uma senha de venda, armazenar senha de venda, e somente a senha de cancalemento se for uma ação cancelar linha["Senha"] = strSenhaVenda; if (bd.LerString("Acao") == IngressoLog.CANCELAR) { linha["SenhaCancelamento"] = bd.LerString("Senha"); } else { linha["SenhaCancelamento"] = " - "; } } linha["Ação"] = IngressoLog.AcaoDescritiva(bd.LerString("Acao")); linha["Status"] = Ingresso.StatusDescritivo(bd.LerString("Status")); linha["StatusDetalhado"] = Ingresso.StatusDetalhado(bd.LerString("Status"), bd.LerString("TaxaEntregaTipo")); linha["PrecoID"] = bd.LerInt("PrecoID"); linha["Preço"] = bd.LerString("Preco"); linha["Loja"] = bd.LerString("Loja"); linha["PagamentoProcessado"] = pagamentoProcessado; linha["VendaBilheteriaID"] = bd.LerString("VendaBilheteriaID"); linha["EntregaID"] = bd.LerInt("EntregaID"); linha["Entrega"] = bd.LerString("EntregaNome"); linha["Periodo"] = bd.LerString("PeriodoAgenda"); linha["DataAgenda"] = bd.LerDateTime("DataAgenda"); linha["AreaEntrega"] = bd.LerString("AreaEntrega"); linha["EnderecoEntrega"] = bd.LerInt("EnderecoEntrega"); linha["PDVEntrega"] = bd.LerString("PDVEntrega"); if (novoHistorico) { linha["StatusDet"] = bd.LerString("StatusDet"); linha["TaxaEntregaValor"] = bd.LerString("TaxaEntregaValor"); linha["TaxaConveniencia"] = bd.LerInt("TaxaConveniencia"); linha["TaxaConvenienciaValor"] = bd.LerString("TaxaConvenienciaValor"); linha["TaxaEntregaTipo"] = bd.LerString("TaxaEntregaTipo"); linha["Cidade"] = bd.LerString("Cidade"); } if (bd.LerString("Acao") == IngressoLog.VENDER || bd.LerString("Acao") == IngressoLog.CANCELAR) { linha["Valor"] = bd.LerDecimal("Valor"); } if (bd.LerString("Cortesia") != "") { linha["Cortesia"] = bd.LerString("Cortesia"); } if (bd.LerString("Bloqueio") != "") { linha["Bloqueio"] = bd.LerString("Bloqueio"); } linha["Usuario"] = bd.LerString("Usuario"); linha["Obs"] = bd.LerString("Obs"); linha["Local"] = bd.LerString("Local"); linha["Apresentacao"] = bd.LerStringFormatoDataHora("Apresentacao"); linha["Setor"] = bd.LerString("Setor"); linha["CodigoBarra"] = bd.LerString("CodigoBarra"); linha["Supervisor"] = bd.LerString("Supervisor"); linha["Email"] = bd.LerString("Email"); linha["Canal"] = bd.LerString("Canal"); if (novoHistorico) { linha["LugarID"] = bd.LerInt("LugarID"); linha["PacoteID"] = bd.LerInt("PacoteID"); linha["PacoteGrupo"] = bd.LerString("PacoteGrupo"); linha["EntregaControleID"] = bd.LerInt("EntregaControleID"); } tabela.Rows.Add(linha); } // Caso a operação inserida for Cancelar, Desligar a Flag de Inserir Dados if (bd.LerString("Acao") == IngressoLog.CANCELAR) { blnInserirDados = false; } } } } catch (SqlException ex) { throw new ApplicationException("Problemas ao acessar o banco de dados: " + ex.Message); } catch { throw; } finally { bd.Fechar(); } return(tabela); }
public DataSet RelatorioClientesCompras(int ApresentacaoID, int EventoID) { try { DataSet retorno = EstruturaBuscaRelatorioClientesCompras(); string sql = ""; string filtro = ""; if (ApresentacaoID > 0) { filtro = "WHERE ApresentacaoID = " + ApresentacaoID; } else { filtro = "WHERE tIngresso.EventoID = " + EventoID; } sql = @"SELECT tIngressoLog.ClienteID,CASE WHEN tCliente.CNPJ <> '' THEN tCliente.NomeFantasia ELSE tCliente.Nome COLLATE Latin1_General_CI_AI END AS Nome,tCliente.DDDTelefone,tCliente.Telefone,tCliente.DDDTelefoneComercial, tCliente.TelefoneComercial,tCliente.DDDCelular,tCliente.Celular,tCliente.Email,tCliente.RecebeEmail, tCliente.CEPCliente,tCliente.EnderecoCliente,tCliente.NumeroCliente,tCliente.CidadeCliente,tCliente.EstadoCliente, tCliente.ComplementoCliente,tCliente.BairroCliente,tCliente.ContatoTipoID FROM tIngressoLog INNER JOIN tIngresso ON (tIngresso.ID = tIngressoLog.IngressoID) INNER JOIN tCliente ON (tIngressoLog.ClienteID=tCliente.ID) " + filtro + @" GROUP BY tIngressoLog.ClienteID,tCliente.Nome,tCliente.DDDTelefone,tCliente.Telefone,tCliente.DDDTelefoneComercial, tCliente.TelefoneComercial,tCliente.DDDCelular,tCliente.Celular,tCliente.Email,tCliente.RecebeEmail, tCliente.CEPCliente,tCliente.EnderecoCliente,tCliente.NumeroCliente,tCliente.CidadeCliente,tCliente.EstadoCliente, tCliente.ComplementoCliente,tCliente.BairroCliente,tCliente.ContatoTipoID, tCliente.CNPJ ,tCliente.NomeFantasia" ; bd.Consulta(sql); while (bd.Consulta().Read()) { DataRow linha = retorno.Tables[TAB_CLIENTE].NewRow(); int clienteID = bd.LerInt("ClienteID"); linha[CLIENTE_ID] = clienteID; linha[NOME] = bd.LerString("Nome"); string endereco = bd.LerString("EnderecoCliente") + "," + bd.LerString("NumeroCliente") + "," + bd.LerString("ComplementoCliente") + "," + bd.LerString("BairroCliente") + "," + bd.LerString("CidadeCliente") + "," + bd.LerString("EstadoCliente") + "," + bd.LerString("CEPCliente"); linha[ENDERECO] = endereco.Replace(",,", ","); linha[TELEFONE] = bd.LerString("DDDTelefone") + "-" + bd.LerString("Telefone"); linha[TELEFONE_COMERCIAL] = bd.LerString("DDDTelefoneComercial") + "-" + bd.LerString("TelefoneComercial"); linha[TELEFONE_CELULAR] = bd.LerString("DDDCelular") + "-" + bd.LerString("Celular"); linha[EMAIL] = bd.LerString("Email"); ContatoTipo oContatoTipo = new ContatoTipo(); linha[PREFERENCIA_CONTATO] = oContatoTipo.TipoContato(bd.LerInt("ContatoTipoID")); retorno.Tables[TAB_CLIENTE].Rows.Add(linha); } bd.Fechar(); foreach (DataRow linha in retorno.Tables[TAB_CLIENTE].Rows) { linha[QTD_INGRESSOS_CLIENTE] = QtdIngressosComprados((int)linha[CLIENTE_ID], filtro); } sql = @"SELECT tIngressoLog.VendaBilheteriaID,tIngressoLog.ClienteID, COUNT(tIngressoLog.VendaBilheteriaID) AS QtdIngressos, tVendaBilheteria.Senha, ValorTotal, ISNULL(VendaCancelada,'F') AS VendaCancelada FROM tIngressoLog INNER JOIN tIngresso ON (tIngresso.ID = tIngressoLog.IngressoID) INNER JOIN tCliente ON (tIngressoLog.ClienteID=tCliente.ID) INNER JOIN tVendaBilheteria ON (tVendaBilheteria.ID = tIngressoLog.VendaBilheteriaID) " + filtro + @" and Acao = 'V' GROUP BY tIngressoLog.VendaBilheteriaID,tIngressoLog.ClienteID,tIngressoLog.VendaBilheteriaID, tVendaBilheteria.Senha, ValorTotal, VendaCancelada" ; bd.Consulta(sql); while (bd.Consulta().Read()) { DataRow linha = retorno.Tables[TAB_COMPRA].NewRow(); int clienteID = bd.LerInt("ClienteID"); linha[VENDA_ID] = bd.LerInt("VendaBilheteriaID"); linha[CLIENTE_ID] = clienteID; linha[SENHA] = bd.LerString("Senha"); linha[VALOR_TOTAL] = bd.LerDecimal("ValorTotal").ToString("c"); linha[COMPRA_CANCELADA] = bd.LerString("VendaCancelada") == "T" ? "Sim" : "Não"; linha[QTD_INGRESSO] = bd.LerInt("QtdIngressos"); retorno.Tables[TAB_COMPRA].Rows.Add(linha); } bd.Fechar(); VendaBilheteria oVendaBilheteria = new VendaBilheteria(); foreach (DataRow linha in retorno.Tables[TAB_COMPRA].Rows) { linha[FORMA_PAGAMENTO] = oVendaBilheteria.FormasPagametoString((int)linha[VENDA_ID]); } sql = @"SELECT tIngressoLog.VendaBilheteriaID,tIngresso.Codigo, tApresentacao.Horario, tSetor.Nome as Setor, tPreco.Nome as Preco,tPreco.Valor ,tIngresso.CodigoBarra,tIngresso.Status FROM tIngressoLog INNER JOIN tIngresso ON (tIngresso.ID = tIngressoLog.IngressoID) INNER JOIN tCliente ON (tIngressoLog.ClienteID=tCliente.ID) INNER JOIN tApresentacao ON (tIngresso.ApresentacaoID=tApresentacao.ID) INNER JOIN tSetor ON (tIngresso.SetorID=tSetor.ID) INNER JOIN tPreco ON (tIngressoLog.PrecoID=tPreco.ID) " + filtro + @" AND Acao = 'V' AND tIngressoLog.ClienteID > 0 "; bd.Consulta(sql); while (bd.Consulta().Read()) { DataRow linha = retorno.Tables[TAB_INGRESSO].NewRow(); linha[VENDA_ID] = bd.LerInt("VendaBilheteriaID"); linha[CODIGO_INGRESSO] = bd.LerString("Codigo");; string dataApresentacao = bd.LerDateTime("Horario").ToString(); linha[APRESENTACAO] = dataApresentacao.Remove(dataApresentacao.Length - 3); linha[SETOR] = bd.LerString("Setor"); linha[PRECO] = bd.LerString("Preco") + " - " + bd.LerDecimal("Valor").ToString("c"); linha[CODIGO_BARRAS] = bd.LerString("CodigoBarra"); linha[STATUS_INGRESSO] = Ingresso.StatusDescritivo(bd.LerString("Status")); retorno.Tables[TAB_INGRESSO].Rows.Add(linha); } bd.Fechar(); return(retorno); } catch (Exception ex) { throw ex; } }