コード例 #1
0
 public void Save(presenca entity)
 {
     DataModel.Entry(entity).State = entity.id_presenca == 0 ?
                                     EntityState.Added :
                                     EntityState.Modified;
     DataModel.SaveChanges();
 }
コード例 #2
0
        public void AtribuirHoras(presenca presenca)
        {
            var usuario   = presenca.inscricao.usuario;
            var inscricao = presenca.inscricao;
            var juri      = presenca.juri;

            presenca.horas_certif = calcularHoras(presenca).ToString();
        }
コード例 #3
0
 public ActionResult List(presenca entity, String message)
 {
     ViewData["message"] = message;
     if (string.IsNullOrEmpty(entity.inscricao.usuario.num_matric_aluno) &&
         string.IsNullOrEmpty(entity.inscricao.usuario.nome_completo) && (entity.inscricao.funcao.id_funcao == 0) &&
         (entity.pfk_id_juri == 0))
     {
         return(View(PresencaRepository.GetAll()));
     }
     else
     {
         return(View(PresencaRepository.GetAllByCriteria(entity.inscricao.usuario.nome_completo ?? "",
                                                         entity.inscricao.funcao.id_funcao, entity.pfk_id_juri)));
     }
 }
コード例 #4
0
        public ActionResult Edit(int id, int idJuri, presenca presenca)
        {
            LoadFormJuri();
            LoadFormFuncao();

            try
            {
                PresencaRepository.Edit(presenca);
                return(RedirectToAction("ListAllByAutorizados", new { id = presenca.pfk_id_juri, idJuri = presenca.pfk_id_juri,
                                                                      message = "Dados editados com sucesso!" }));
            }
            catch
            {
                return(View());
            }
        }
コード例 #5
0
        //Calcular horas do certificado
        public TimeSpan calcularHoras(presenca presenca)
        {
            var usuario   = presenca.inscricao.usuario;
            var inscricao = presenca.inscricao;
            var juri      = presenca.juri;

            TimeSpan qtdeHoras = TimeSpan.Zero;
            TimeSpan ref2hrs   = new TimeSpan(2, 0, 0);
            TimeSpan ref3hrs   = new TimeSpan(3, 0, 0);
            TimeSpan ref4hrs   = new TimeSpan(4, 0, 0);
            TimeSpan ref5hrs   = new TimeSpan(5, 0, 0);

            if (inscricao.fk_id_funcao == 1 || inscricao.fk_id_funcao == 2 || inscricao.fk_id_funcao == 9)
            {
                qtdeHoras = new TimeSpan(15, 0, 0);
            }
            if (inscricao.fk_id_funcao == 3 || inscricao.fk_id_funcao == 4 || inscricao.fk_id_funcao == 5 ||
                inscricao.fk_id_funcao == 7 || inscricao.fk_id_funcao == 8)
            {
                qtdeHoras = new TimeSpan(5, 0, 0);
            }
            if (inscricao.fk_id_funcao == 6 && presenca.pres_saida_total == true && presenca.pres_saida_parcial == false)
            {
                qtdeHoras = new TimeSpan(5, 0, 0);
            }
            if (inscricao.fk_id_funcao == 6 && presenca.pres_saida_total == false && presenca.pres_saida_parcial == true)
            {
                var calcHoras = presenca.hora_saida_parcial - juri.data_hora_juri.TimeOfDay;

                if (calcHoras < ref2hrs)
                {
                    qtdeHoras = ref2hrs;
                }
                if (calcHoras > ref2hrs && calcHoras < ref3hrs)
                {
                    qtdeHoras = ref3hrs;
                }
                if (calcHoras > ref3hrs && calcHoras < ref5hrs)
                {
                    qtdeHoras = ref4hrs;
                }
            }

            return(qtdeHoras);
        }
コード例 #6
0
        public bool validate(presenca entity)
        {
            bool retorno = false;

            if (entity != null)
            {
                if (entity.pres_saida_parcial == false && entity.pres_saida_total == false)
                {
                    ModelState.AddModelError("", "Você não participou deste júri simulado");
                    retorno = true;
                }
            }
            else
            {
                ModelState.AddModelError("", "Você não participou deste júri simulado");
                retorno = true;
            }

            return(retorno);
        }
コード例 #7
0
        public ActionResult Index(presenca presenca)
        {
            LoadFormJuri();

            var idUser       = ((Sisjuri.Models.usuario)Session["usuario"]).id_usuario;
            var presencaJuri = PresencaRepository.GetOneByJuriAndPresenca(presenca.pfk_id_juri, idUser);

            if (validate(presencaJuri))
            {
                return(View(presenca));
            }
            else
            {
                AtribuirHoras(presencaJuri);

                presenca = presencaJuri;
                PresencaRepository.Edit(presenca);

                return(RedirectToAction("GerarCertificado", new { idJuri = presenca.pfk_id_juri, idUsuario = idUser }));
            }
        }
コード例 #8
0
 public void Delete(presenca entity)
 {
     DataModel.presenca.Remove(entity);
     DataModel.SaveChanges();
 }
コード例 #9
0
 public void Edit(presenca entity)
 {
     Save(entity);
 }
コード例 #10
0
 public void Create(presenca entity)
 {
     Save(entity);
 }
コード例 #11
0
        public ActionResult Sortear(int id, inscricao inscricao, String messageError)
        {
            ViewData["messageError"] = messageError;
            List <inscricao> PromotorSort    = new List <inscricao>();
            List <inscricao> AdvDefesaSort   = new List <inscricao>();
            List <inscricao> EscrivaoSort    = new List <inscricao>();
            List <inscricao> JuradoSort      = new List <inscricao>();
            List <inscricao> OficJusticaSort = new List <inscricao>();
            List <inscricao> Assistente      = new List <inscricao>();
            List <inscricao> SegurancaSort   = new List <inscricao>();
            List <inscricao> ReuSort         = new List <inscricao>();
            List <inscricao> JuizSort        = new List <inscricao>();

            /*  OS CAMPOS ABAIXO ESTÃO COMENTADOS PORQUE DÁ ERRO NO SORTEIO SE NÃO TIVER UMA QUANTIDADE MÍNIMA DE INSCRIÇÕES FEITAS
             *  EM DETERMINADA FUNÇÃO MAIOR QUE O ÚLTIMO NÚMERO DE CADA LINHA DE CÓDIGO. DESCOMENTAR O CÓDIGO ABAIXO QUANDO TIVER
             *  MUITAS INSCRIÇÕES E FOR EXECUTAR O SORTEIO...  */


            // Verificando se há a quantidade mínima de inscrições para fazer o sorteio
            if (InscricaoRepository.GetPromotorByAuthorization(id).Count < 3 ||
                InscricaoRepository.GetAdvogadoDefesaByAuthorization(id).Count < 3 ||
                InscricaoRepository.GetEscrivaoByAuthorization(id).Count < 1 ||
                InscricaoRepository.GetJuradoByAuthorization(id).Count < 25 ||
                InscricaoRepository.GetOficialJusticaoByAuthorization(id).Count < 4 ||
                InscricaoRepository.GetSegurancaByAuthorization(id).Count < 4 ||
                InscricaoRepository.GetReuByAuthorization(id).Count < 1 ||
                InscricaoRepository.GetJuizByAuthorization(id).Count < 1)
            {
                return(RedirectToAction("List", "Juri", new { messageError = "Não é possível realizar o sorteio porque a quantidade de inscrições autorizadas é insuficiente para preencher todas as funções obrigatórias." }));
            }

            // Realizando o sorteio
            PromotorSort    = Sorteio(InscricaoRepository.GetPromotorByAuthorization(id), 3);
            AdvDefesaSort   = Sorteio(InscricaoRepository.GetAdvogadoDefesaByAuthorization(id), 3);
            EscrivaoSort    = Sorteio(InscricaoRepository.GetEscrivaoByAuthorization(id), 1);
            JuradoSort      = Sorteio(InscricaoRepository.GetJuradoByAuthorization(id), 25);
            OficJusticaSort = Sorteio(InscricaoRepository.GetOficialJusticaoByAuthorization(id), 4);
            SegurancaSort   = Sorteio(InscricaoRepository.GetSegurancaByAuthorization(id), 4);
            ReuSort         = Sorteio(InscricaoRepository.GetReuByAuthorization(id), 1);
            JuizSort        = Sorteio(InscricaoRepository.GetJuizByAuthorization(id), 1);
            Assistente      = InscricaoRepository.GetAssistenteByAuthorization(id);


            // Cria uma lista de sorteados do júri simulado
            List <inscricao> sorteados = new List <inscricao>();

            foreach (var sort in PromotorSort)
            {
                sorteados.Add(sort);
            }
            foreach (var sort in AdvDefesaSort)
            {
                sorteados.Add(sort);
            }
            foreach (var sort in EscrivaoSort)
            {
                sorteados.Add(sort);
            }
            foreach (var sort in JuradoSort)
            {
                sorteados.Add(sort);
            }
            foreach (var sort in OficJusticaSort)
            {
                sorteados.Add(sort);
            }
            foreach (var sort in SegurancaSort)
            {
                sorteados.Add(sort);
            }
            foreach (var sort in ReuSort)
            {
                sorteados.Add(sort);
            }
            foreach (var sort in JuizSort)
            {
                sorteados.Add(sort);
            }
            foreach (var sort in Assistente)
            {
                sorteados.Add(sort);
            }

            //Atribui true a juri_sorteado para mostrar que o júri já foi sorteado e que suas inscrições estão encerradas
            juri juri = JuriRepository.GetOne(id);

            juri.juri_sorteado = true;
            JuriRepository.Edit(juri);

            //Cria a lista de presença
            List <inscricao> lst = InscricaoRepository.GetAllByAutorizados(juri.id_juri);

            foreach (var item in lst)
            {
                presenca temp = new presenca();
                temp.pfk_id_juri      = juri.id_juri;
                temp.pfk_id_inscricao = item.id_inscricao;

                PresencaRepository.Create(temp);
            }


            return(View(sorteados));
        }