Exemple #1
0
        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);
        }