예제 #1
0
 // passar o Usuario logado no sistema
 public ValeIngressoLogLista_B()
 {
     valeIngressoLog = new ValeIngressoLog();
 }
        public DataTable PesquisarSenhaValeIngresso(string senha)
        {
            DataTable tabela               = EstruturaHistorico();
            BD        bd                   = new BD();
            string    strStatus            = "";
            int       intVendaBilheteriaID = 0;

            try
            {
                using (IDataReader oDataReader = bd.Consulta("" +
                                                             "SELECT " +
                                                             "   tVendaBilheteria.ID, " +
                                                             "   tVendaBilheteria.Status " +
                                                             "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");
                }

                bd.Fechar();

                StringBuilder strSql = new StringBuilder();

                strSql.Append(" SELECT ");
                strSql.Append(" ( ");
                strSql.Append(" SELECT COUNT(tValeIngressoLog.ID) ");
                strSql.Append(" FROM tValeIngressoLog (NOLOCK) ");
                strSql.Append(" WHERE (tValeIngressoLog.VendaBilheteriaID = " + intVendaBilheteriaID + ") ");
                strSql.Append(" ) ");
                strSql.Append(" AS TotIngressos ");
                strSql.Append(" , vir.ID AS IngressoID     ");
                strSql.Append(" , vir.ID Codigo     ");
                strSql.Append(" , vir.Status   ");
                strSql.Append(" , il.VendaBilheteriaID     ");
                strSql.Append(" , il.ValeIngressoID     ");
                strSql.Append(" , il.ID ");
                strSql.Append(" , il.[TimeStamp] ");
                strSql.Append(" , il.Acao ");
                strSql.Append(" , il.Obs ");
                strSql.Append(" , il.CodigoBarra  ");
                strSql.Append(" , lo.Nome AS Loja    ");
                strSql.Append(" , u.Nome AS Usuario     ");
                strSql.Append(" , ci.Nome AS Cliente ");
                strSql.Append(" , vb.NotaFiscalEstabelecimento ");
                strSql.Append(" , vb.Senha ");
                strSql.Append(" , t.Tipo AS TaxaEntregaTipo ");
                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(" ,vb.ClienteEnderecoID AS EnderecoEntrega  ");
                strSql.Append(" ,pdv.Nome as PDVEntrega ");
                strSql.Append(" ,ci.Email ");
                strSql.Append(" ,cl.Nome AS Canal ");
                strSql.Append(" ,en.ID AS EntregaID ");
                strSql.Append("  FROM tValeIngressoLog il (NOLOCK)  ");
                strSql.Append("  LEFT JOIN tVendaBilheteria vb (NOLOCK) ON vb.ID = il.VendaBilheteriaID  ");
                strSql.Append("  LEFT JOIN tEntregaControle as te on te.ID = vb.EntregaControleID ");
                strSql.Append("  LEFT JOIN tEntrega as t on te.EntregaID = t.ID ");
                strSql.Append("  LEFT JOIN tUsuario u (NOLOCK) ON u.ID = il.UsuarioID  ");
                strSql.Append("  LEFT JOIN tUsuario us (NOLOCK) ON us.ID = il.SupervisorID  ");
                strSql.Append("  INNER JOIN tValeIngresso vir (NOLOCK) ON vir.ID = il.ValeIngressoID  ");
                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 = vir.ClienteID  ");
                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 (il.ValeIngressoID IN (            ");
                strSql.Append(" SELECT ValeIngressoID             ");
                strSql.Append(" FROM tValeIngressoLog (NOLOCK)            ");
                strSql.Append(" WHERE VendaBilheteriaID = " + intVendaBilheteriaID + ")     ");
                strSql.Append(" )  ");
                strSql.Append(" ORDER BY   il.ValeIngressoID,   il.ID  ");

                using (IDataReader oDataReader = bd.Consulta(strSql.ToString()))
                {
                    int     ingressoID      = 0;
                    bool    blnInserirDados = false;
                    string  strSenhaVenda   = "";
                    DataRow linha           = null;

                    while (oDataReader.Read())
                    {
                        // Atribui o ID do Ingresso Corrente e Desliga o Flag de Inserir Dados
                        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("TimeStamp");
                            linha["Cliente"]       = bd.LerString("Cliente");
                            linha["Loja"]          = bd.LerString("Loja");
                            // 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"]              = ValeIngressoLog.AcaoDescritiva(bd.LerString("Acao"));
                            linha["Status"]            = ValeIngressoLog.StatusDescritivo(bd.LerString("Status"));
                            linha["StatusDetalhado"]   = ValeIngressoLog.StatusDetalhado(bd.LerString("Status"), bd.LerString("TaxaEntregaTipo"));
                            linha["VendaBilheteriaID"] = bd.LerString("VendaBilheteriaID");
                            linha["Usuario"]           = bd.LerString("Usuario");
                            linha["CodigoBarra"]       = bd.LerString("CodigoBarra");
                            linha["Supervisor"]        = bd.LerString("Supervisor");
                            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");
                            linha["Email"]             = bd.LerString("Email");
                            linha["Canal"]             = bd.LerString("Canal");

                            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;
                        }
                    }
                }

                bd.Fechar();
            }
            catch (SqlException ex)
            {
                throw new ApplicationException("Problemas ao acessar o banco de dados: " + ex.Message);
            }
            catch
            {
                throw;
            }
            finally
            {
                bd.Fechar();
            }

            return(tabela);
        }