public void AtribuirHoras(presenca presenca)
 {
     var usuario = presenca.inscricao.usuario;
     var inscricao = presenca.inscricao;
     var juri = presenca.juri;
     presenca.horas_certif = calcularHoras(presenca).ToString();      
 }
示例#2
0
 public void Save(presenca entity)
 {
     DataModel.Entry(entity).State = entity.id_presenca == 0 ?
        EntityState.Added :
        EntityState.Modified;
     DataModel.SaveChanges();
 }
示例#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));
     }
 }
        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 });
            }
        }
        //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;
        }
        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 void Delete(presenca entity)
 {
     DataModel.presenca.Remove(entity);
     DataModel.SaveChanges();
 }
示例#8
0
 public void Edit(presenca entity)
 {
     Save(entity);
 }
示例#9
0
 public void Create(presenca entity)
 {
     Save(entity);
 }
示例#10
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();
     }
 }
示例#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);
        }