private List <int> InsereApresentacoes(BD bd) { var apresentacoesInseridas = new List <int>(); var apresentacao = new Apresentacao(this.UsuarioID); try { foreach (var ap in InfoFase1.Etapa2.Apresentacoes) { apresentacao.EventoID.Valor = this.Resultado.Evento.Control.ID; apresentacao.Horario.Valor = ap; apresentacao.DisponivelAjuste.Valor = true; apresentacao.DisponivelRelatorio.Valor = true; apresentacao.DisponivelVenda.Valor = false; apresentacao.Impressao.Valor = "A"; if (!apresentacao.Inserir(bd)) { throw new ApplicationException("Falha ao inserir apresentação: " + ap); } apresentacoesInseridas.Add(apresentacao.Control.ID); } Fluxo.Apresentacoes.OK(); return(apresentacoesInseridas); } catch (Exception ex) { Fluxo.Apresentacoes.Erro(ex.Message); throw ex; } }
private List <Programacao> MontarProgramacao(Sala sala, List <Filme> filmes, List <Sala> salas, List <Programacao> programacoes) { BD bd = new BD(); Apresentacao oApresentacao = new Apresentacao(); ApresentacaoSetor oApresentacaoSetor = new ApresentacaoSetor(); Preco oPreco = new Preco(); CanalPreco oCanalPreco = new CanalPreco(); foreach (var programacao in programacoes) { try { var eventoID = filmes.Where(c => c.FilmeID == programacao.IDFilme).Select(c => c.EventoID).FirstOrDefault(); var setorID = salas.Where(c => c.CodSala == programacao.CodSala).Select(c => c.SetorID).FirstOrDefault(); if (eventoID == 0) { continue; } int apresentacaoID = Convert.ToInt32(bd.ConsultaValor("SELECT ID FROM tApresentacao (NOLOCK) WHERE CodigoProgramacao = '" + programacao.IDProg + "'")); if (apresentacaoID > 0) { programacao.ApresentacaoID = apresentacaoID; continue; } bd.IniciarTransacao(); oApresentacao.Limpar(); oApresentacao.EventoID.Valor = eventoID; oApresentacao.Horario.Valor = Convert.ToDateTime(programacao.DataSessao); oApresentacao.DisponivelVenda.Valor = true; oApresentacao.DisponivelAjuste.Valor = true; oApresentacao.DisponivelRelatorio.Valor = true; oApresentacao.CodigoProgramacao.Valor = programacao.IDProg; oApresentacao.Inserir(bd); oApresentacaoSetor.Limpar(); oApresentacaoSetor.ApresentacaoID.Valor = oApresentacao.Control.ID; oApresentacaoSetor.SetorID.Valor = setorID; oApresentacaoSetor.NVendeLugar.Valor = Convert.ToBoolean(programacao.NVendLuga); oApresentacaoSetor.Inserir(bd); foreach (var preco in programacao.Ingressos) { int precoID = Convert.ToInt32(bd.ConsultaValor("SELECT ID FROM tPreco (NOLOCK) WHERE CodigoCinema = '" + preco.CodIngress + "' AND ApresentacaoSetorID = " + oApresentacaoSetor.Control.ID)); if (precoID > 0) { continue; } oPreco.Limpar(); oPreco.ApresentacaoSetorID.Valor = oApresentacaoSetor.Control.ID; oPreco.Nome.Valor = preco.CodIngress; oPreco.Valor.Valor = Convert.ToDecimal(preco.Valor); oPreco.CodigoCinema.Valor = preco.CodIngress; oPreco.CorID.Valor = 1; oPreco.Inserir(eventoID, setorID, oApresentacao.Control.ID, false, bd); preco.PrecoID = oPreco.Control.ID; //Distribuição de Preços por Canal oCanalPreco.Limpar(); oCanalPreco.CanalID.Valor = Canal.CANAL_INTERNET; oCanalPreco.PrecoID.Valor = oPreco.Control.ID; oCanalPreco.Inserir(bd, false); } bd.FinalizarTransacao(); } catch { bd.DesfazerTransacao(); } finally { bd.Fechar(); } } return(programacoes); }