Exemplo n.º 1
0
        public ActionResult Create(SolicitacaoCreateModel data)
        {
            StatusCriacaoSolicitacao statusUsuario = SolicitacaoBL.PodeCriarSolicitacao(User.Identity.Name);

            if (!ModelState.IsValid ||
                statusUsuario != StatusCriacaoSolicitacao.Permitido) //Inválido
            {
                if (!ModelState.IsValid)
                {
                    ViewBag.error = "Dados inválidos";
                }
                else
                {
                    switch (statusUsuario)
                    {
                    case StatusCriacaoSolicitacao.AvaliacaoPendente:
                        ViewBag.error = "Usuário possui avaliações pendentes!";
                        break;

                    default:
                        ViewBag.error = "Erro na autenticação do usuário";
                        break;
                    }
                }
                Fill(data);
                return(View(data));
            }

            try
            {
                var         user   = db.Users.Find(User.Identity.Name);
                Solicitacao target = SolicitacaoBL.CriarSolicitacao(data.Solicitacao);
                target.Itens = data.Itens;
                target.User  = user;

                db.Solicitacoes.Add(target);

                var avaliacao = AvaliacaoBL.CriarAvaliacao(target);

                db.Avaliacoes.Add(avaliacao);

                target.Avaliacao = avaliacao;

                db.SaveChanges();
            }
            catch (BusinessLogicException ex)
            {
                switch (ex.Razao)
                {
                case StatusCriacaoSolicitacao.AvaliacaoPendente:
                    TempData.Add("ErrorMessage", "Usuário possui avaliações pendentes");
                    break;
                }
            }
            return(RedirectToAction("Details", new { id = data.Solicitacao.Id }));
        }
        public ActionResult XL(int id)
        {
            Solicitacao solicitacao = db.Solicitacoes
                                      .Include("Avaliacao")
                                      .First(s => s.Id == id);

            MemoryStream result = new MemoryStream();

            AvaliacaoBL.EscreverXl(solicitacao.Avaliacao, Server.MapPath("~"), result);

            result.Position = 0;
            return(new FileStreamResult(result, "application/vnd.ms-excel")
            {
                FileDownloadName = "Avaliacao" + solicitacao.AnoSeq + ".xls"
            });
        }
        protected override void Seed(Reprografia.Data.ReprografiaContext context)
        {
            #region Roles
            var admin      = new Role("Administrator");
            var normalUser = new Role("user");
            #endregion

            #region Users
            var paolo = new User("sn1018302")
            {
                FullName = "Paolo Haji de Carvalho Bueno",
                Email    = "*****@*****.**",
                Password = "******"
            };
            var fulano = new User("fulano")
            {
                FullName = "Fulano da Silva",
                Email    = "*****@*****.**",
                Password = "******"
            };
            admin.Users.Add(paolo);
            normalUser.Users.Add(fulano);

            context.Roles.Add(admin);
            context.Users.Add(fulano);

            context.Users.Add(paolo);
            context.Users.Add(fulano);

            context.SaveChanges();
            #endregion

            #region Fornecedores
            var forn1 = new Fornecedor
            {
                Nome = "Copiadora Módulo LTDA."
            };

            context.Fornecedores.Add(forn1);
            #endregion

            #region Areas
            Area[] areas = new[] {
                new Area("CT")
                , new Area("CAI")
                , new Area("FC")
                , new Area("CST")
                , new Area("Pós Graduação", "Pos")
                , new Area("Olimpíada do Conhecimento", "Especificar")
                , new Area("Inova SENAI", "Especificar")
                , new Area("Copa SENAI", "Especificar")
            };
            foreach (Area item in areas)
            {
                context.Areas.Add(item);
            }
            #endregion

            #region Codificacoes
            var codificacoes = new[] {
                new Codificacao()
                {
                    CentroDeCusto = 11541, DescricaoCentroDeCusto = "Marketing Promocional", ContaMemo = 170201, DescricaoContaMemo = "Programa SENAI Casa Aberta"
                },
                new Codificacao()
                {
                    CentroDeCusto = 11521, DescricaoCentroDeCusto = "Suporte Administrativo/Financeiro", ContaMemo = 170300, DescricaoContaMemo = "Administracao das Unidades Operacionais - SENAI"
                },
                new Codificacao()
                {
                    CentroDeCusto = 11541, DescricaoCentroDeCusto = "Educacao e Tecnologia", ContaMemo = 600100, DescricaoContaMemo = "Formacao de Tecnologo"
                },
                new Codificacao()
                {
                    CentroDeCusto = 11541, DescricaoCentroDeCusto = "Educacao e Tecnologia", ContaMemo = 171101, DescricaoContaMemo = "Suporte Tecnico/Operacional - Aprendiz. Industrial"
                },
                new Codificacao()
                {
                    CentroDeCusto = 11541, DescricaoCentroDeCusto = "Educacao e Tecnologia", ContaMemo = 171103, DescricaoContaMemo = "Suporte Tecnico/Operacional - Curso Tecnico"
                },
                new Codificacao()
                {
                    CentroDeCusto = 11541, DescricaoCentroDeCusto = "Educacao e Tecnologia", ContaMemo = 400101, DescricaoContaMemo = "Iniciacao Profissional"
                },
                new Codificacao()
                {
                    CentroDeCusto = 11541, DescricaoCentroDeCusto = "Educacao e Tecnologia", ContaMemo = 400102, DescricaoContaMemo = "Iniciacao Profissional - PCFP"
                },
                new Codificacao()
                {
                    CentroDeCusto = 11541, DescricaoCentroDeCusto = "Educacao e Tecnologia", ContaMemo = 400105, DescricaoContaMemo = "Iniciacao Prof. - CIPA - Fomento SESI/DN"
                },
                new Codificacao()
                {
                    CentroDeCusto = 11541, DescricaoCentroDeCusto = "Educacao e Tecnologia", ContaMemo = 401501, DescricaoContaMemo = "Qualificacao Prof. Nivel Basico - Escola"
                },
                new Codificacao()
                {
                    CentroDeCusto = 11541, DescricaoCentroDeCusto = "Educacao e Tecnologia", ContaMemo = 401502, DescricaoContaMemo = "Qualificacao Prof. Nivel Basico - Empresa"
                },
                new Codificacao()
                {
                    CentroDeCusto = 11541, DescricaoCentroDeCusto = "Educacao e Tecnologia", ContaMemo = 401506, DescricaoContaMemo = "Qualificacao Prof. - Contrato SENAI/SDECT"
                },
                new Codificacao()
                {
                    CentroDeCusto = 11541, DescricaoCentroDeCusto = "Educacao e Tecnologia", ContaMemo = 401505, DescricaoContaMemo = "Qualificacao Prof. - Contrato SENAI/SERT"
                },
                new Codificacao()
                {
                    CentroDeCusto = 11541, DescricaoCentroDeCusto = "Educacao e Tecnologia", ContaMemo = 401503, DescricaoContaMemo = "Qualificacao Prof. Nivel Basico - Entidade"
                },
                new Codificacao()
                {
                    CentroDeCusto = 11541, DescricaoCentroDeCusto = "Educacao e Tecnologia", ContaMemo = 401504, DescricaoContaMemo = "Qualificacao Prof. Nivel Basico - PCFP"
                },
                new Codificacao()
                {
                    CentroDeCusto = 11541, DescricaoCentroDeCusto = "Educacao e Tecnologia", ContaMemo = 403001, DescricaoContaMemo = "Aperfeicoamento Prof. Nivel Basico - Escola"
                },
                new Codificacao()
                {
                    CentroDeCusto = 11541, DescricaoCentroDeCusto = "Educacao e Tecnologia", ContaMemo = 403002, DescricaoContaMemo = "Aperfeicoamento Prof. Nivel Basico - Empresa"
                },
                new Codificacao()
                {
                    CentroDeCusto = 11541, DescricaoCentroDeCusto = "Educacao e Tecnologia", ContaMemo = 403003, DescricaoContaMemo = "Aperfeicoamento Prof. Nivel Basico - Entidade"
                },
                new Codificacao()
                {
                    CentroDeCusto = 11541, DescricaoCentroDeCusto = "Educacao e Tecnologia", ContaMemo = 403004, DescricaoContaMemo = "Aperfeicoamento Prof. Nivel Basico - PCFP"
                },
                new Codificacao()
                {
                    CentroDeCusto = 11541, DescricaoCentroDeCusto = "Educacao e Tecnologia", ContaMemo = 404501, DescricaoContaMemo = "Especializacao Prof. Nivel Basico - Escola"
                },
                new Codificacao()
                {
                    CentroDeCusto = 11541, DescricaoCentroDeCusto = "Educacao e Tecnologia", ContaMemo = 404502, DescricaoContaMemo = "Especializacao Prof. Nivel Basico - Empresa"
                },
                new Codificacao()
                {
                    CentroDeCusto = 11541, DescricaoCentroDeCusto = "Educacao e Tecnologia", ContaMemo = 404503, DescricaoContaMemo = "Especializacao Prof. Nivel Basico - Entidade"
                },
                new Codificacao()
                {
                    CentroDeCusto = 11541, DescricaoCentroDeCusto = "Educacao e Tecnologia", ContaMemo = 404504, DescricaoContaMemo = "Especializacao Prof. Nivel Basico - PCFP"
                },
                new Codificacao()
                {
                    CentroDeCusto = 11541, DescricaoCentroDeCusto = "Educacao e Tecnologia", ContaMemo = 500101, DescricaoContaMemo = "Tecnico de Nivel Medio - Escola"
                },
                new Codificacao()
                {
                    CentroDeCusto = 11541, DescricaoCentroDeCusto = "Educacao e Tecnologia", ContaMemo = 500102, DescricaoContaMemo = "Tecnico de Nivel Medio - Empresa"
                },
                new Codificacao()
                {
                    CentroDeCusto = 11541, DescricaoCentroDeCusto = "Educacao e Tecnologia", ContaMemo = 500103, DescricaoContaMemo = "Tecnico de Nivel Medio - Entidade"
                },
                new Codificacao()
                {
                    CentroDeCusto = 11541, DescricaoCentroDeCusto = "Educacao e Tecnologia", ContaMemo = 500104, DescricaoContaMemo = "Tecnico de Nivel Medio - Projeto Especial"
                },
                new Codificacao()
                {
                    CentroDeCusto = 11541, DescricaoCentroDeCusto = "Educacao e Tecnologia", ContaMemo = 682000, DescricaoContaMemo = "Telecurso 2000 - Prestacao Servicos Educacionais"
                },
                new Codificacao()
                {
                    CentroDeCusto = 11541, DescricaoCentroDeCusto = "Educacao e Tecnologia", ContaMemo = 772100, DescricaoContaMemo = "Assessoria e Consultoria em Educacao"
                },
                new Codificacao()
                {
                    CentroDeCusto = 11541, DescricaoCentroDeCusto = "Educacao e Tecnologia", ContaMemo = 710000, DescricaoContaMemo = "Asses Tec/Tecnol - Gestao Empresarial"
                },
                new Codificacao()
                {
                    CentroDeCusto = 11541, DescricaoCentroDeCusto = "Educacao e Tecnologia", ContaMemo = 735000, DescricaoContaMemo = "Elaboracao/Disseminacao Informacoes (Serv. Docum.)"
                },
                new Codificacao()
                {
                    CentroDeCusto = 11541, DescricaoCentroDeCusto = "Educacao e Tecnologia", ContaMemo = 760000, DescricaoContaMemo = "Serv. Tec. Labor. - Calibracao Dimensional"
                },
                new Codificacao()
                {
                    CentroDeCusto = 11541, DescricaoCentroDeCusto = "Educacao e Tecnologia", ContaMemo = 773000, DescricaoContaMemo = "Desenvolv. Tecnologico - Pesquisa Aplicada"
                },
                new Codificacao()
                {
                    CentroDeCusto = 11541, DescricaoCentroDeCusto = "Educacao e Tecnologia", ContaMemo = 774000, DescricaoContaMemo = "Desenvolv. Tecnologico - Desenvolv. Experimental"
                },
                new Codificacao()
                {
                    CentroDeCusto = 11541, DescricaoCentroDeCusto = "Educacao e Tecnologia", ContaMemo = 775000, DescricaoContaMemo = "Desenvolv. Tecnologico - Design"
                },
                new Codificacao()
                {
                    CentroDeCusto = 11541, DescricaoCentroDeCusto = "Educacao e Tecnologia", ContaMemo = 755003, DescricaoContaMemo = "Gestao Estrategica do Design"
                },
                new Codificacao()
                {
                    CentroDeCusto = 11541, DescricaoCentroDeCusto = "Educacao e Tecnologia", ContaMemo = 163901, DescricaoContaMemo = "Supervisao de Projetos e de Infraestrutura"
                },
                new Codificacao()
                {
                    CentroDeCusto = 11541, DescricaoCentroDeCusto = "Educacao e Tecnologia", ContaMemo = 700101, DescricaoContaMemo = "Acao Global Regional"
                }
            };

            foreach (var codificacao in codificacoes)
            {
                context.Codificacoes.Add(codificacao);
            }
            #endregion

            #region Solicitacoes

            Solicitacao sol1 = SolicitacaoBL.CriarSolicitacao(paolo);
            sol1.User        = paolo;
            sol1.Formato     = "A4";
            sol1.Suporte     = "E-mail";
            sol1.Fornecedor  = forn1;
            sol1.Codificacao = codificacoes[0];
            sol1.Area        = areas[0];
            sol1.Seq         = 1;
            sol1.Ano         = DateTime.Now.Year;
            sol1.Itens       = new[]
            {
                new Item {
                    Descricao = "Apostila de NR 10 GMT", Espiral = true, CapaEmPVC = true, FrenteVerso = true, Copias = 5, Paginas = 5
                },
                new Item {
                    Descricao = "Avaliação NR 10 GMT", FrenteVerso = true, Copias = 5, Paginas = 5
                },
                new Item {
                    Descricao = "Exercícios GMT", FrenteVerso = true, Copias = 5, Paginas = 5
                }
            };

            Solicitacao sol2 = SolicitacaoBL.CriarSolicitacao(fulano);
            sol2.User        = fulano;
            sol2.Formato     = "A4";
            sol2.Suporte     = "E-mail";
            sol2.Fornecedor  = forn1;
            sol2.Codificacao = codificacoes[0];
            sol2.Area        = areas[0];
            sol2.Seq         = 1;
            sol2.Ano         = DateTime.Now.Year;
            sol2.Itens       = new[]
            {
                new Item {
                    Descricao = "Apostila de NR 10 GMT", Espiral = true, CapaEmPVC = true, FrenteVerso = true, Copias = 5, Paginas = 5
                },
                new Item {
                    Descricao = "Avaliação NR 10 GMT", FrenteVerso = true, Copias = 5, Paginas = 5
                },
                new Item {
                    Descricao = "Exercícios GMT", FrenteVerso = true, Copias = 5, Paginas = 5
                }
            };

            context.Solicitacoes.Add(sol1);
            context.Solicitacoes.Add(sol2);
            context.SaveChanges();
            #endregion

            #region Avaliacoes
            var ava1 = AvaliacaoBL.CriarAvaliacao(sol1);
            foreach (var item in ava1.ItensAvaliacao)
            {
                item.Acabamento = "N";
                item.Matriz     = "N";
                item.Nitidez    = "N";
                item.Paginacao  = "N";
                item.Prazo      = "N";
                item.Quantidade = "N";
            }

            var ava2 = AvaliacaoBL.CriarAvaliacao(sol2);

            context.Avaliacoes.Add(ava1);
            context.Avaliacoes.Add(ava2);

            #endregion

            context.SaveChanges();
            base.Seed(context);
        }