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