/// <summary> /// Obtém Evento, Apresentacao e Setor de cada item /// </summary> /// <returns></returns> public override DataTable EventoApresentacaoSetorPreco(string ItensID, string status) { int ingressoID; DataTable tabelaIngresso; DataTable tabelaDados; tabelaDados = EstruturaEventoApresentacaoSetorPreco(); DataRow linha; try { string[] itensIDVetor = ItensID.Split(','); int[] itensIDVetorInt = CTLib.Utilitario.VetorStringParaInteiro(itensIDVetor); foreach (int itemID in itensIDVetorInt) { // Obter o primeiro IngressoID de cada item this.Control.ID = itemID; ingressoID = this.PrimeiroIngressoID(); // Obter Evento, Apresentação, Setor, Preço deste ingresso (conforme o status) IngressoLista ingressoLista = new IngressoLista(); // precisa estar aqui dentro senão os filtros vão se somando ingressoLista.FiltroSQL = "ID =" + ingressoID; ingressoLista.FiltroSQL = "Status in (" + status + ")"; ingressoLista.Carregar(); ingressoLista.Primeiro(); if (ingressoLista.ToString() != "") { tabelaIngresso = ingressoLista.Ingresso.EventoApresentacaoSetor(); linha = tabelaDados.NewRow(); linha["ItemID"] = this.Control.ID; linha["Evento"] = tabelaIngresso.Rows[0]["Evento"]; linha["Apresentacao"] = tabelaIngresso.Rows[0]["Apresentacao"]; linha["Setor/Produto"] = tabelaIngresso.Rows[0]["Setor/Produto"]; linha["Preco"] = tabelaIngresso.Rows[0]["Preco"]; this.Ler(this.Control.ID); if (this.PacoteID.Valor <= 0) { linha["Valor"] = tabelaIngresso.Rows[0]["Valor"]; } else { Pacote pacote = new Pacote(); pacote.Ler(this.PacoteID.Valor); linha["Valor"] = pacote.Valor(); } tabelaDados.Rows.Add(linha); } } } catch (Exception erro) { throw erro; } return(tabelaDados); }// fim de IngressosPorItens
/// <summary> /// Exclui todos os itens da lista carregada /// </summary> /// <returns></returns> public override bool ExcluirTudo() { try { Carregar(); } catch (Exception ex) { throw ex; } try { bool ok = true; if (lista.Count > 0) { //verifica se tem itens // Verificar de tem ingresso indisponivel IngressoLista ingressoLista = new IngressoLista(); ingressoLista.FiltroSQL = "LugarID in (" + this.ToString() + ")"; ingressoLista.FiltroSQL = "Status<>'" + Ingresso.DISPONIVEL + "' AND Status<>'" + Ingresso.BLOQUEADO + "'"; ingressoLista.Carregar(); if (ingressoLista.Tamanho > 0) { throw new LugarException("Não pode excluir esses lugares porque há " + ingressoLista.Tamanho + " ingressos não-disponíveis em todos ou em algum deles."); } ingressoLista.FiltroSQL = null; ingressoLista.FiltroSQL = "LugarID in (" + this.ToString() + ")"; ingressoLista.Carregar(); if (ingressoLista.Tamanho > 0) { IngressoLogLista ingressoLogLista = new IngressoLogLista(); ingressoLogLista.FiltroSQL = "IngressoID in (" + ingressoLista + ")"; ingressoLogLista.FiltroSQL = "VendaBilheteriaItemID <> 0"; ingressoLogLista.Carregar(1); if (ingressoLogLista.Tamanho > 0) { throw new LugarException("Não pode excluir esses lugares porque há ingressos com venda efetuada."); } else { ingressoLogLista.FiltroSQL = null; ingressoLogLista.FiltroSQL = "IngressoID in (" + ingressoLista + ")"; ok = ingressoLogLista.ExcluirTudo(); } } if (ok) { Ultimo(); //fazer varredura de traz pra frente. do { ok = base.Excluir(); }while (ok && Anterior()); } } else { //nao tem itens na lista //Devolve true como se os itens ja tivessem sido excluidos, com a premissa dos ids existirem de fato. ok = true; } return(ok); } catch (Exception ex) { throw ex; } }