Пример #1
0
        public ActionResult EnviarLinkSenha([FromForm] string email)
        {
            string   codigo;
            DateTime agora = Globalization.HoraAtualBR();

            email.ToLower();

            var vEmail = _db.Int_DP_Usuarios.Where(a => a.Email == email && a.Ativo == 1).FirstOrDefault();

            if (vEmail != null)
            {
                codigo = vEmail.Id.ToString() + agora.Minute.ToString() + agora.Month.ToString() + agora.Day.ToString() +
                         agora.Year.ToString() + agora.Second.ToString() + agora.Hour.ToString();

                ValidacaoSenha valid = new ValidacaoSenha
                {
                    Id            = long.Parse(codigo),
                    Data          = agora,
                    DataExpiracao = agora.AddHours(5),
                    Utilizado     = 0,
                    Usuario       = vEmail.Id
                };

                _db.Int_DP_ValidSenhas.Add(valid);
                _db.SaveChanges();

                Log log = new Log();

                try
                {
                    string nome = Shared.PegarPrimeiroNome(vEmail.Nome);

                    Library.Mail.EnviarLinkSenha.EnviarLinkTrocarSenha(email, codigo, nome, vEmail.Login);

                    log.EsqueciMinhaSenha_Envio(vEmail.Id, codigo);

                    TempData["TrocaSenhaOK"] = "Um link foi enviado ao seu e-mail com instruções para trocar a senha";

                    return(RedirectToAction("Index"));
                }
                catch (Exception exp)
                {
                    log.EsqueciMinhaSenha_Envio_Erro(vEmail.Id, codigo, exp);

                    TempData["TrocaSenhaNotOK"] = "Ocorreu um erro ao tentar enviar o link, por favor tente novamente";

                    return(RedirectToAction("Index"));
                }
                finally
                {
                    _db.Int_DP_Logs.Add(log);
                    _db.SaveChanges();
                }
            }
            else
            {
                TempData["TrocaSenhaNotOK"] = "Esta email não está cadastrado no sistema";
                return(RedirectToAction("Index"));
            }
        }
Пример #2
0
        public void EnviarArquivoTxt(List <IFormFile> files, byte codigo)
        {
            DateTime agora = Globalization.HoraAtualBR();

            if (files.Count > 0)
            {
                foreach (var file in files)
                {
                    string path = Path.Combine(
                        Directory.GetCurrentDirectory(), "wwwroot\\textfiles",
                        string.Concat(codigo.ToString(), "_", file.FileName));


                    using (FileStream fs = System.IO.File.Create(path))
                    {
                        file.CopyTo(fs);
                        fs.Flush();
                    }

                    Arquivo arquivo = new Arquivo()
                    {
                        Nome              = file.FileName,
                        Processado        = 0,
                        Path              = path,
                        DataProcessamento = agora,
                        DataEnvio         = agora,
                        Tipo              = codigo
                    };

                    _db.Int_RH_Arquivos.Add(arquivo);
                    _db.SaveChanges();
                }
            }
        }
Пример #3
0
        public ActionResult Cadastrar([FromForm]Usuario user, string confirmasenha)
        {
            int loja = _db.Int_RH_Usuarios.Where(a => a.Id == user.Id).Select(s => s.Loja.Id).FirstOrDefault();
            user.Loja = _db.Int_RH_Lojas.Find(loja);
            
            ViewBag.User = user; 

            if (ValidarSenha(user.Senha))
            {
                if (user.Senha.Equals(confirmasenha))
                {
                    Log log = new Log();

                    try
                    {
                        user.Senha = user.Senha.Replace(",", "").Replace(".", "").Replace("'", "").Trim();

                        Usuario user_cad = _db.Int_RH_Usuarios.Find(user.Id);

                        user_cad.DataCadastro = Globalization.HoraAtualBR();
                        user_cad.Email = user.Email;
                        user_cad.Celular = Shared.RetirarCaracteres(user.Celular);
                        user_cad.Telefone = Shared.RetirarCaracteres(user.Telefone);                                        
                        
                        user_cad.Nivel = 2; //Usuário Comum
                        user_cad.Senha = Criptografia.GetMd5Hash(user.Senha);
                        user_cad.Cadastrado = 1;
                        user_cad.Ativo = 1;
                        user_cad.Verificado = 0; //Email não foi verificado
                        
                        _db.SaveChanges();

                        EnviarValidacaoEmail(user_cad.Id);

                        TempData["MensagemSucessoIndex"] = "Cadastro efetuado com Sucesso!";

                        log.CadastrarUsuario(user.Id);
                        
                        return RedirectToAction("Index", "Home");
                    }
                    catch (Exception exp)
                    {
                        TempData["CadastroNotOK"] = "Ocorreu um erro ao tentar cadastrar, por favor, tente novamente";
                        log.CadastrarUsuario_Erro(user.Id, exp);
                    }
                    finally
                    {
                        _db.Int_RH_Logs.Add(log);
                        _db.SaveChanges();
                    }
                }
                else
                {
                    TempData["SenhaNaoValidada"] = "Senhas não conferem!";
                }
            }

            return View();
        }
        public IActionResult Index()
        {
            ViewBag.Ocorrencia      = new Ocorrencia();
            ViewBag.Ocorrencia.Data = Globalization.HoraAtualBR();
            ViewBag.Anexo           = "";

            OcorrenciasFaltantes();

            return(View(new Ocorrencia()));
        }
Пример #5
0
        public void RegistrarProcessamento(long id)
        {
            Arquivo file = _db.Int_RH_Arquivos.Find(id);

            file.DataProcessamento = Globalization.HoraAtualBR();
            file.Processado        = 1;
            _db.SaveChanges();

            //
            ///INCLUIR CODIGO *INSERT* LOG AQUI///
            //
        }
        public ActionResult RHO_Incluir([FromForm] RHO_Usuario usuario)
        {
            DeclararViewBags();

            ViewBag.RHOFunc = usuario;

            usuario.CPF = usuario.CPF.Replace(".", "").Replace("-", "").Replace("/", "").Replace("\\", "").Replace(",", "").Trim();

            RHO_Usuario vUsuario = _db.Int_RH_Usuarios.Where(a => a.CPF.Equals(usuario.CPF)).FirstOrDefault();

            if (vUsuario == null)
            {
                usuario.DataCadastro = Globalization.HoraAtualBR();
                usuario.UltimoAcesso = Globalization.HoraAtualBR();
                usuario.Nivel        = 2;
                usuario.Ativo        = 1;
                usuario.Cadastrado   = 0;

                ViewBag.RHOFunc = usuario;

                if (usuario.CPF.Length == 11)
                {
                    try
                    {
                        _db.Int_RH_Usuarios.Add(usuario);

                        _db.SaveChanges();

                        TempData["RHO_IncluirOK"] = "Inclusão efetuada com sucesso, código: " + usuario.CodigoAtivacao;

                        return(RedirectToAction("RHO_Incluir"));
                    }
                    catch (Exception exp)
                    {
                        TempData["RHO_IncluirNotOK"] = "Ocorreu um Erro ao tentar incluir o funcionário";
                        return(View("RHO_Incluir"));
                    }
                }
                else
                {
                    TempData["RHO_IncluirNotOK"] = "CPF não valido";

                    return(View("RHO_Incluir"));
                }
            }
            else
            {
                TempData["RHO_IncluirNotOK"] = "CPF já cadastrado no sistema!";
                return(View("RHO_Incluir"));
            }
        }
Пример #7
0
        public void VerificarExperiencias()
        {
            int diasAvaliacao = 7;   //A cada quantos dias a avaliação deve ser requisitada
            int id_user       = HttpContext.Session.GetInt32("ID") ?? 0;

            Usuario encarregado = _db.Int_DP_Usuarios.Find(id_user);

            int loja = _db.Int_DP_Usuarios.Where(a => a.Id == id_user).Select(s => s.Loja.Id).FirstOrDefault();

            encarregado.Loja = _db.Int_DP_Lojas.Find(loja);

            DateTime           hoje = Globalization.HoraAtualBR();
            List <Funcionario> lista_funcionarios = new List <Funcionario>();

            List <Funcionario> funcs_exp = _db.Int_DP_Funcionarios
                                           .Where(a => a.Setor.Id == encarregado.Setor.Id && a.Loja.Id == encarregado.Loja.Id &&
                                                  a.Exp_DataInicio <= hoje && a.Exp_DataFim >= hoje && a.Ativo == 1)
                                           .OrderBy(o => o.Nome)
                                           .ToList();

            if (funcs_exp.Count > 0)
            {
                foreach (var func in funcs_exp)
                {
                    DateTime ultimaAvaliacao = _db.Int_DP_Avaliacoes
                                               .Where(a => a.Funcionario.Id == func.Id)
                                               .OrderByDescending(o => o.DataAvaliacao)
                                               .Select(s => s.DataAvaliacao)
                                               .FirstOrDefault();

                    if (ultimaAvaliacao <= hoje.AddDays(diasAvaliacao * -1) || ultimaAvaliacao == null)
                    {
                        lista_funcionarios.Add(func);
                    }
                }

                if (lista_funcionarios.Count > 0)
                {
                    ViewBag.Experiencia = lista_funcionarios;
                }
                else
                {
                    ViewBag.Experiencia = null;
                }
            }
            else
            {
                ViewBag.Experiencia = null;
            }
        }
Пример #8
0
        public ActionResult TrocarSenha(long? key)
        {
            long key2 = key ?? 1;

            DateTime agora = Globalization.HoraAtualBR();
            var vKey = _db.Int_DP_ValidSenhas.Find(key2);

            if (vKey != null)
            {
                if (vKey.DataExpiracao >= agora)
                {
                    if (vKey.Utilizado == 0)
                    {
                        Usuario usuario = _db.Int_RH_Usuarios.Find(vKey.Usuario);
                        
                        vKey.Utilizado = 1;
                        _db.SaveChanges();

                        ViewBag.Senha = "";
                        ViewBag.Nome = usuario.Nome;
                        ViewBag.Email = usuario.Email;
                        ViewBag.IdSenha = usuario.Id;
                        
                        ViewBag.TrocarSenha = vKey;
                        
                        return View();
                    }
                    else
                    {
                        //Quando o link já foi utilizado
                        TempData["MensagemErroIndex"] = "Link já Utilizado";
                        return RedirectToAction("Index");
                    }
                }
                else
                {
                    TempData["MensagemErroIndex"] = "Link Expirado";
                    return RedirectToAction("Index");
                }
            }
            else
            {
                TempData["MensagemErroIndex"] = "Link Inválido";
                return RedirectToAction("Index");
            }
        }
        public ActionResult Cadastrar([FromForm] Mensagem mensagem)
        {
            int idNotNull = HttpContext.Session.GetInt32("ID") ?? 0;


            Usuario vRemetente = _db.Int_DP_Usuarios.Find(idNotNull);

            mensagem.Remetente = vRemetente;
            mensagem.Data      = Globalization.HoraAtualBR();

            if (ModelState.IsValid == true)
            {
                Log log = new Log();

                try
                {
                    _db.Int_DP_Mensagens.Add(mensagem);
                    _db.SaveChanges();

                    log.EnviarMensagem(idNotNull, mensagem.Id);
                    _db.Int_DP_Logs.Add(log);

                    TempData["MensagemEnviada"] = "Mensagem enviada com sucesso!";
                }
                catch (Exception exp)
                {
                    log.EnviarMensagem_Erro(idNotNull, exp);
                    _db.Int_DP_Logs.Add(log);

                    TempData["MensagemNaoEnviada"] = "Ocorreu um erro ao enviar a mensagem, por favor, envie novamente!";
                }
                finally
                {
                    _db.SaveChangesAsync();
                }

                return(RedirectToAction("Index"));
            }
            else
            {
                TempData["MensagemNaoEnviada"] = "Ocorreu um erro ao enviar a mensagem, por favor, envie novamente!";
                return(RedirectToAction("Index"));
            }
        }
        public IActionResult ImprimirDetalhes(long?id)
        {
            long id_notnull = id ?? 0;

            int user_id = HttpContext.Session.GetInt32("ID") ?? 0;

            string data = Globalization.DataRelatorioPdfBR();

            Funcionario func = _db.Int_DP_Funcionarios.Find(id_notnull);

            func.Loja  = _db.Int_DP_Lojas.Where(a => a.Id == func.Loja.Id).FirstOrDefault();
            func.Setor = _db.Int_DP_Setores.Where(a => a.Id == func.Setor.Id).FirstOrDefault();

            List <Avaliacao> avaliacoes = _db.Int_DP_Avaliacoes
                                          .Where(a => a.Funcionario.Id == func.Id)
                                          .OrderByDescending(o => o.DataAvaliacao)
                                          .ToList();


            DetalhesFuncViewModel detalhesVM = new DetalhesFuncViewModel
            {
                Funcionario = func,
                Usuario     = _db.Int_DP_Usuarios.Find(user_id),
                Avaliacoes  = avaliacoes,
                Data        = Globalization.HoraAtualBR()
            };

            ViewAsPdf relatorioPDF = new ViewAsPdf
            {
                WkhtmlPath      = "~/OcorrenciasDP/wwwroot/Rotativa",
                ViewName        = "DetalhesEmPDF",
                IsGrayScale     = false,
                Model           = detalhesVM,
                PageOrientation = Rotativa.AspNetCore.Options.Orientation.Portrait,
                CustomSwitches  = "--page-offset 0 --footer-left " + data + " --footer-right [page]/[toPage] --footer-font-size 8",
                PageSize        = Rotativa.AspNetCore.Options.Size.A4
            };

            return(relatorioPDF);
        }
Пример #11
0
        public ActionResult Avaliacao([FromForm] Avaliacao avaliacao)
        {
            Log log        = new Log();
            int id_notnull = HttpContext.Session.GetInt32("ID") ?? 0;

            try
            {
                avaliacao.DataAvaliacao = Globalization.HoraAtualBR();

                avaliacao.Funcionario = _db.Int_DP_Funcionarios.Find(avaliacao.Funcionario.Id);

                avaliacao.Encarregado = _db.Int_DP_Usuarios.Find(id_notnull);

                _db.Int_DP_Avaliacoes.Add(avaliacao);

                _db.SaveChanges();

                TempData["AvaliacaoOK"] = "Avaliação enviada com sucesso!";

                log.EnviarAvaliacao(id_notnull, avaliacao.Funcionario.Id);

                _db.Int_DP_Logs.Add(log);

                _db.SaveChanges();

                return(RedirectToAction("Inicio"));
            }
            catch (Exception exp)
            {
                TempData["AvaliacaoNotOK"] = "Ocorreu um erro ao tentar enviar a avaliação, por favor, tente novamente!";

                log.EnviarAvaliacao_Erro(id_notnull, avaliacao.Funcionario.Id, exp);

                _db.Int_DP_Logs.Add(log);

                _db.SaveChanges();

                return(RedirectToAction("Inicio"));
            }
        }
Пример #12
0
        public void GerarId()
        {
            DateTime agora = Globalization.HoraAtualBR();

            int data = agora.Day + agora.Month + agora.Year + agora.Hour + agora.Minute + agora.Second + agora.Millisecond;

            string id = Usuario.Id + CompetenciaMes.ToString("00") + CompetenciaAno.ToString("0000") + data.ToString();

            int digitoVerificador = 0;

            for (int i = 0; i < id.Length; i++)
            {
                digitoVerificador += int.Parse(id.Substring(i, 1));
            }

            id += digitoVerificador.ToString().Substring(0, 1);

            this.Id = long.Parse(id);

            //Converte o Id para Hexadecimal e aloca na Autenticação
            this.Autenticacao = this.Id.ToString("X");
        }
        public ActionResult Excluir(int id)
        {
            Log log = new Log();
            int user_id = HttpContext.Session.GetInt32("ID") ?? 0;

            try
            {

                Usuario usuario = _db.Int_DP_Usuarios.Find(id);
                string usuario_temp = usuario.Login;
                usuario.Ativo = 0;
                usuario.Login = string.Concat(usuario.Login, Globalization.HoraAtualBR().Day.ToString(), Globalization.HoraAtualBR().Second.ToString(), Globalization.HoraAtualBR().Minute.ToString());
                //_db.Int_Dp_Usuarios.Remove(usuario);
                _db.SaveChanges();
                TempData["UsuarioExcluido"] = "O usuário '" + usuario_temp + "' foi excluido!";

                log.ExcluirUsuario(user_id, id);
                _db.Int_DP_Logs.Add(log);

            }
            catch (Exception exp)
            {

                TempData["UsuarioErro"] = "Ocorreu um erro ao tentar excluir o usuário";

                log.ExcluirUsuario_Erro(user_id, id, exp);
                _db.Int_DP_Logs.Add(log);

            }
            finally
            {
                _db.SaveChanges();
            }

            return RedirectToAction("Index");
        }
Пример #14
0
        public ActionResult Login(string cpf, string senha)
        {
            cpf = Shared.RetirarCaracteres(cpf);

            Usuario user = _db.Int_RH_Usuarios.Where(a => a.CPF.Equals(cpf)).FirstOrDefault();

            if (user != null)
            {
                ViewBag.User = user;
               
                if (user.Ativo == 1)
                {
                    senha = senha.Replace(",", "").Replace(".", "").Replace("'", "").Replace(".", "").Trim();

                    bool senha_comparacao = Criptografia
                        .VerifyMd5Hash(senha.Replace(",", "").Replace(".", "").Replace("'", "").Trim(), user.Senha);

                    if (senha_comparacao)
                    {
                        Log log = new Log();

                        try
                        {
                            int loja = _db.Int_RH_Usuarios.Where(a => a.Id == user.Id).Select(s => s.Loja.Id).FirstOrDefault();
                            user.Loja = _db.Int_RH_Lojas.Find(loja);
                            
                            HttpContext.Session.SetInt32("ID", user.Id);
                            HttpContext.Session.SetInt32("Nivel", user.Nivel); //1: Administrador, 2: Usuario Comum, 3: Suporte 
                            HttpContext.Session.SetInt32("Loja", user.Loja.Id);
                            HttpContext.Session.SetString("Nome", user.Nome);
                            HttpContext.Session.SetString("CPF", user.CPF);
                            HttpContext.Session.SetString("UltimoAcesso", Globalization.DataHoraExtensoBR(user.UltimoAcesso));

                            user.UltimoAcesso = Globalization.HoraAtualBR();

                            _db.SaveChanges();

                            log.LogIn(user.Id);
                            
                            return RedirectToAction("Inicio");

                        }
                        catch (Exception exp)
                        {
                            string mensagem = exp.Message;

                            TempData["MensagemErroIndex"] = "Ocorreu um erro ao tentar efetuar o login";

                            log.LogIn_Erro(user.Id, exp);

                            return RedirectToAction("Index");
                        }
                        finally
                        {
                            _db.Int_RH_Logs.Add(log);
                            _db.SaveChanges();
                        }
                    }
                    else
                    {
                        TempData["MensagemErroIndex"] = "Senha Incorreta!";
                        return RedirectToAction("Index");
                    }
                }
                else
                {
                    TempData["MensagemErroIndex"] = "Usuário não está ativo";
                    return RedirectToAction("Index");
                }
            }
            else
            {
                TempData["MensagemErroIndex"] = "Usuário não encontrado!";
                return RedirectToAction("Index");
            }
        }
Пример #15
0
        public ActionResult EnviarLinkSenha(string cpf)
        {

            string codigo;
            DateTime agora = Globalization.HoraAtualBR();
            
            cpf = Shared.RetirarCaracteres(cpf);

            Usuario user = _db.Int_RH_Usuarios.Where(a => a.CPF.Equals(cpf)).FirstOrDefault();

            if (user != null)
            {
                if (user.Email != null && user.Email != "")
                {
                    codigo = "99" + user.Id.ToString() + agora.Minute.ToString() + agora.Month.ToString() + agora.Day.ToString() +
                         agora.Year.ToString().Substring(2, 2) + user.CPF.Substring(3, 3) + agora.Hour.ToString();

                    ValidacaoSenha valid = new ValidacaoSenha
                    {
                        Id = long.Parse(codigo),
                        Data = agora,
                        DataExpiracao = agora.AddHours(5),
                        Utilizado = 0,
                        Usuario = user.Id
                    };

                    _db.Int_DP_ValidSenhas.Add(valid);
                    _db.SaveChanges();

                    Log log = new Log();

                    try
                    {
                        string nome = Shared.PegarPrimeiroNome(user.Nome);

                        Library.Mail.EnviarLinkSenha.EnviarLinkTrocarSenha(user.Email, codigo, nome);

                        //log.EsqueciMinhaSenha_Envio(vEmail.Id, codigo);

                        log.EsqueciMinhaSenha_Envio(user.Id, codigo);
                        
                        TempData["MensagemSucessoIndex"] = "Um link foi enviado ao seu e-mail com instruções para trocar a senha";

                        return RedirectToAction("Index");
                    }
                    catch (Exception exp)
                    {
                        //log.EsqueciMinhaSenha_Envio_Erro(vEmail.Id, codigo, exp);

                        TempData["MensagemErroIndex"] = "Ocorreu um erro ao tentar enviar o link, por favor tente novamente";

                        log.EsqueciMinhaSenha_Envio_Erro(user.Id, codigo, exp);

                        return RedirectToAction("Index");
                    }
                    finally
                    {
                        _db.Int_RH_Logs.Add(log);
                        _db.SaveChanges();
                    }
                
                }
                else
                {
                    TempData["MensagemErroIndex"] = "Não há e-mail cadastrado para esse CPF, entre em contato com o TI!";
                }
            }
            else
            {
                TempData["MensagemErroIndex"] = "CPF não encontrado!";
            }

            return RedirectToAction("Index");
        }
Пример #16
0
 public Log()
 {
     this.Sistema_Operacional = Environment.OSVersion.VersionString;
     this.Data = Globalization.HoraAtualBR();
 }
        public ActionResult Atualizar([FromForm] Ocorrencia ocorrencia)
        {
            //POST - Request.Form (HTML)
            //GET - Request.QueryString (URL)

            //Ocorrencia ocorrencia = new Ocorrencia();

            ocorrencia.Data      = DateTime.Parse(Request.Form["data"]);
            ocorrencia.Descricao = Request.Form["descricao"];
            ocorrencia.Anexo     = Request.Form["anexo"];

            int id_notnull = HttpContext.Session.GetInt32("ID") ?? 0;

            Usuario usuario = _db.Int_DP_Usuarios.Find(id_notnull);

            ocorrencia.Usuario   = usuario;
            ocorrencia.DataEnvio = Globalization.HoraAtualBR();

            if (ModelState.IsValid)
            {
                ViewBag.Ocorrencia      = new Ocorrencia();
                ViewBag.Ocorrencia.Data = Globalization.HoraAtualBR();

                Log log = new Log();

                try
                {
                    _db.Int_DP_Ocorrencias.Add(ocorrencia);
                    _db.SaveChanges();

                    OcorrenciasFaltantes();

                    List <DateTime> diasFaltantes = new List <DateTime>();

                    if (ViewBag.Calendario != null)
                    {
                        diasFaltantes = ViewBag.Calendario;
                    }

                    if (diasFaltantes.Count < 3)
                    {
                        TempData["MsgOcorrenciaOK"] = "Ocorrência Cadastrada com Sucesso";
                    }
                    else
                    {
                        TempData["MsgOcorrenciaAlerta"] = "Ocorrencia Cadastrada com sucesso, porém você ainda tem " + diasFaltantes.Count + " ocorrências para enviar!";
                    }

                    log.IncluirOcorrencia(id_notnull, ocorrencia.Id);
                    _db.Int_DP_Logs.Add(log);
                }
                catch (Exception exp)
                {
                    //MsgOcorrenciaNotOK já está em uso!
                    TempData["MsgOcorrenciaNotOK2"] = "Ocorreu um erro ao enviar, por favor, tente novamente...";

                    log.IncluirOcorrencia_Erro(id_notnull, exp);
                    _db.Int_DP_Logs.Add(log);
                }
                finally
                {
                    _db.SaveChanges();
                }

                return(View("Index", ocorrencia));
            }

            return(View());
        }
        public ActionResult Index([FromForm] Ocorrencia ocorrencia, IFormFile anexo, string update)
        {
            if (ocorrencia.Descricao == null)
            {
                ocorrencia.Descricao = "Não houve ocorrências";
            }

            int id_notnull = HttpContext.Session.GetInt32("ID") ?? 0;

            Usuario usuario = _db.Int_DP_Usuarios.Find(id_notnull);

            ocorrencia.Usuario = usuario;

            ocorrencia.DataEnvio = Globalization.HoraAtualBR();

            OcorrenciasFaltantes();

            List <DateTime> diasFaltantes = new List <DateTime>();

            if (ViewBag.Calendario != null)
            {
                diasFaltantes = ViewBag.Calendario;
            }

            if (ModelState.IsValid)
            {
                //SELECT * FROM INT_DP_OCORRENCIAS WHERE DATA = '" & Format(Data.Text, "YYYYMMDD") & "'";

                Ocorrencia vOcorrencia = _db.Int_DP_Ocorrencias
                                         .Where(o => o.Data.Equals(ocorrencia.Data) && (o.Usuario.Id == ocorrencia.Usuario.Id) && o.Ativo == 1)
                                         .FirstOrDefault();

                //Se for igual a null, não há nenhuma ocorrencia lançada com a data informada
                if (vOcorrencia == null || update == "true")
                {
                    ViewBag.Ocorrencia      = new Ocorrencia();
                    ViewBag.Ocorrencia.Data = Globalization.HoraAtualBR();
                    Log log = new Log();

                    if (anexo != null)
                    {
                        ViewBag.Ocorrencia.Anexo = anexo.FileName;
                        ocorrencia.Anexo         = anexo.FileName;
                        ViewBag.Anexo            = anexo;
                    }
                    try
                    {
                        _db.Int_DP_Ocorrencias.Add(ocorrencia);
                        _db.SaveChanges();

                        log.IncluirOcorrencia(ocorrencia.Usuario.Id, ocorrencia.Id);
                        _db.Int_DP_Logs.Add(log);
                    }
                    catch (Exception exp)
                    {
                        log.IncluirOcorrencia_Erro(id_notnull, exp);
                        _db.Int_DP_Logs.Add(log);

                        TempData["MsgOcorrenciaNotOK2"] = "Ocorreu um erro ao enviar, por favor, tente novamente...";

                        OcorrenciasFaltantes();

                        return(View("Index", ocorrencia));
                    }
                    finally
                    {
                        _db.SaveChanges();
                    }

                    idOcorrencia = ocorrencia.Id.ToString() + "_";

                    if (anexo != null)
                    {
                        UploadFile(anexo);
                    }

                    if (diasFaltantes.Count < 3)
                    {
                        TempData["MsgOcorrenciaOK"] = "Ocorrência Cadastrada com Sucesso";
                    }
                    else
                    {
                        TempData["MsgOcorrenciaAlerta"] = "Ocorrencia Cadastrada com sucesso, porém você ainda tem " + diasFaltantes.Count + " ocorrências para enviar!";
                    }

                    OcorrenciasFaltantes(); //Atualiza as datas

                    return(View("Index", ocorrencia));
                }
                else
                {
                    ViewBag.Ocorrencia = ocorrencia;

                    if (anexo != null)
                    {
                        ViewBag.Ocorrencia.Anexo = anexo.FileName;
                    }

                    //### Gerar alerta para o usuário perguntando se ele quer que atualize a pagina, se sim, executa este código, senão, não executa e volta pra View;
                    TempData["MsgOcorrenciaNotOK"] = "Já existe uma ocorrencia cadastrada para esta data!";
                    //Retorna o valor como Objeto Ocorrencia para a View

                    OcorrenciasFaltantes();

                    return(View("Index", ocorrencia));
                }
            }

            ViewBag.Ocorrencia = ocorrencia;

            if (anexo != null)
            {
                ViewBag.Ocorrencia.Anexo = anexo.FileName;
            }

            OcorrenciasFaltantes();

            return(View());
        }
        public void OcorrenciasFaltantes()
        {
            if (HttpContext.Session.GetString("Perfil") != "admin")
            {
                List <DateTime> dias         = new List <DateTime>(); //30 últimos dias
                List <DateTime> enviados     = new List <DateTime>(); //Ultimas ocorrências enviadas
                List <DateTime> calend       = new List <DateTime>(); //Dias - Falta
                List <DateTime> calend_final = new List <DateTime>(); //Calend - Finais de Semana


                try
                {
                    int id_user = HttpContext.Session.GetInt32("ID") ?? 0;

                    DateTime dataCadastro = _db.Int_DP_Usuarios
                                            .Where(a => a.Id == id_user)
                                            .Select(s => s.DataCadastro)
                                            .FirstOrDefault();

                    List <DateTime> feriados = _db.Int_DP_Feriados
                                               .OrderByDescending(a => a.Data)
                                               .Select(s => s.Data)
                                               .ToList();

                    int usuario = HttpContext.Session.GetInt32("ID") ?? 0;

                    TimeSpan diff = Globalization.HoraAtualBR().Subtract(dataCadastro); //Diferença de dias entre data do cadastro e hoje
                    DateTime dataInicial;

                    if (diff.Days >= 30)
                    {
                        //dataInicial = DateTime.Today.AddDays(-30);
                        dataInicial = Globalization.HojeBR().AddDays(-30);

                        //Adiciona 30 dias anteriores a hoje na lista
                        for (int i = 29; i >= 0; i--)
                        {
                            dias.Add(Globalization.HojeBR().AddDays(i * -1));
                        }
                    }
                    else
                    {
                        dataInicial = dataCadastro.Date;

                        for (int i = diff.Days; i >= 0; i--)
                        {
                            //dias.Add(DateTime.Today.AddDays(i * -1));
                            dias.Add(Globalization.HojeBR().AddDays(i * -1));
                        }
                    }

                    enviados = _db.Int_DP_Ocorrencias
                               .Where(a => a.Data >= dataInicial && a.Usuario.Id == usuario && a.Ativo == 1)
                               .OrderByDescending(a => a.Data)
                               .Select(a => a.Data)
                               .ToList();

                    //Pega os útimos 30 dias

                    calend = dias.Except(enviados).ToList();   //Retira os dias que foram enviados
                    calend = calend.Except(feriados).ToList(); //Retira os feriados

                    //Retira o sábado e o domingo da lista
                    foreach (DateTime dia in calend)
                    {
                        if (!dia.DayOfWeek.Equals(DayOfWeek.Saturday) && !dia.DayOfWeek.Equals(DayOfWeek.Sunday))
                        {
                            calend_final.Add(dia);
                        }
                    }

                    //calend_final.Reverse(); //Reverte a ordem das datas para decrescente

                    ViewBag.Calendario = calend_final;
                }
                catch (Exception)
                {
                    ViewBag.Calendario = null;
                }
            }
        }
        public ActionResult Cadastrar([FromForm] Funcionario func, int exp_periodo)
        {
            DeclararViewBags();

            ViewBag.Func = new Funcionario();
            int id_notnull = HttpContext.Session.GetInt32("ID") ?? 1;

            DateTime hoje = Globalization.HojeBR();

            //Verifica se há um funcionário com o mesmo nome e encarregado cadastrado
            Funcionario vFuncionario = _db.Int_DP_Funcionarios
                                       .Where(a => a.Nome.Equals(func.Nome) && a.Setor.Id == func.Setor.Id &&
                                              a.Loja.Id == func.Loja.Id && a.Ativo == 1)
                                       .FirstOrDefault();

            if (vFuncionario == null)
            {
                Log log = new Log();

                try
                {
                    func.DataCadastro = Globalization.HoraAtualBR();
                    func.Setor        = _db.Int_DP_Setores.Find(func.Setor.Id);
                    func.Loja         = _db.Int_DP_Lojas.Find(func.Loja.Id);
                    int id_user = HttpContext.Session.GetInt32("ID") ?? 0;
                    func.CadastradoPor = _db.Int_DP_Usuarios.Find(id_user);
                    func.Exp_DataFim   = func.Exp_DataInicio.AddDays(exp_periodo);

                    if (exp_periodo != 0)
                    {
                        if (func.Exp_DataFim >= hoje && func.Exp_DataInicio <= hoje)
                        {
                            func.Experiencia = 1;
                        }
                        else
                        {
                            func.Experiencia = 0;
                        }
                    }
                    else
                    {
                        func.Experiencia = 0;
                    }

                    _db.Int_DP_Funcionarios.Add(func);
                    _db.SaveChanges();

                    log.CadastrarFuncionario(id_notnull, func.Id);
                    _db.SaveChanges();

                    TempData["FuncionarioOK"] = "Funcionário cadastrado com sucesso!";

                    return(RedirectToAction("Index"));
                }
                catch (Exception exp)
                {
                    ViewBag.Func = func;

                    log.CadastrarFuncionario_Erro(id_notnull, func.Id, exp);
                    _db.SaveChanges();

                    TempData["FuncionarioNotOK"] = "Ocorreu um erro ao tentar inserir o funcionário!";

                    return(View());
                }
            }
            else
            {
                if (exp_periodo != 0)
                {
                    func.Experiencia = 1;
                }
                else
                {
                    func.Experiencia = 0;
                }

                ViewBag.Func = func;

                TempData["FuncionarioNotOK"] = "Já existe um funcionário cadastrado com esse Nome e Setor";
            }

            return(View());
        }
        public ActionResult Cadastrar([FromForm]Usuario usuario, string confirmasenha)
        {
            Setor vSetor = _db.Int_DP_Setores.Find(usuario.Setor.Id);
            usuario.Setor = vSetor;

            Loja vLoja = _db.Int_DP_Lojas.Find(usuario.Loja.Id);
            usuario.Loja = vLoja;

            ViewBag.User = new Usuario();
            ViewBag.Setores2 = setores2;
            ViewBag.Lojas = _db.Int_DP_Lojas.OrderBy(a => a.Id).ToList();

            if (ModelState.IsValid)
            {
                Usuario vUsuario = _db.Int_DP_Usuarios.Where(a => a.Login.Equals(usuario.Login)).FirstOrDefault();

                if (vUsuario == null)
                {
                    usuario.Login = usuario.Login.ToLower(); //Passa para minúsculo o Login
                    usuario.Senha = usuario.Senha.Replace(";", "").Replace(",", "").Replace(".", "").Replace("'", "").ToLower(); //Passa para minúsculo a Senha
                    confirmasenha = confirmasenha.Replace(";", "").Replace(",", "").Replace(".", "").Replace("'", "").ToLower(); //Passa para minúsculo a Confirmação da Senha
                    if (usuario.Email != null)
                    {
                        usuario.Email = usuario.Email.ToLower();
                    }
                    else
                    {
                        usuario.Email = "";
                    }
                    usuario.UltimoLogin = Globalization.HoraAtualBR();
                    usuario.DataCadastro = Globalization.HoraAtualBR();

                    if (usuario.Senha == confirmasenha)
                    {

                        Usuario vEmail = new Usuario();

                        if (usuario.Email != null && usuario.Email != "")
                        {

                            vEmail = _db.Int_DP_Usuarios.Where(a => a.Email == usuario.Email && a.Ativo == 1).FirstOrDefault();

                        }
                        else
                        {
                            vEmail = null;
                        }

                        if (vEmail == null)
                        {
                            int id_user = HttpContext.Session.GetInt32("ID") ?? 0;

                            try
                            {
                                _db.Int_DP_Usuarios.Add(usuario);
                                _db.SaveChanges();

                                Log log = new Log();
                                log.CadastrarUsuario(id_user, usuario.Id);
                                _db.Int_DP_Logs.Add(log);

                                TempData["CadastroUserOK"] = "O usuário '" + usuario.Login + "' foi cadastrado com sucesso!";

                            }
                            catch (Exception exp)
                            {
                                Log log = new Log();
                                log.CadastrarUsuario_Erro(id_user, usuario.Login, exp);
                                _db.Int_DP_Logs.Add(log);
                                TempData["CadastroUserNotOK"] = "Erro ao cadastrar o usuário!";
                            }
                            finally
                            {
                                _db.SaveChanges();
                            }

                            return RedirectToAction("Index");

                        }
                        else
                        {

                            TempData["ExisteUsuario"] = "Já existe um usuário com esse email cadastrado!";
                            ViewBag.User = usuario;
                            return View();
                        }

                    }
                    else
                    {
                        TempData["SenhaNaoConfere"] = "Senhas não conferem!";
                        ViewBag.User = usuario;
                        return View();
                    }
                }
                else
                {
                    TempData["ExisteUsuario"] = "Já existe um usuário com esse login, favor escolher outro!";
                    ViewBag.User = usuario;
                    return View();
                }

            }

            return View();

        }
Пример #22
0
        public ActionResult Index([FromForm] Usuario usuario)
        {
            if (ModelState.IsValid) //Se a autenticação é válida
            {
                //Verifica se o login existe no banco
                Usuario vLogin = _db.Int_DP_Usuarios.Where(a => a.Login.Equals(usuario.Login)).FirstOrDefault();

                //Se existir ele entra no if
                if (vLogin != null)
                {
                    //Verifica se está ativo
                    if (vLogin.Ativo == 1)
                    {
                        //Verifica se a senha está correta
                        if (Equals(vLogin.Senha, usuario.Senha.Replace(";", "").Replace(",", "").Replace(".", "").Replace("'", "").ToLower()))
                        {
                            try
                            {
                                //Envia para a página
                                HttpContext.Session.SetString("Login", vLogin.Nome);
                                HttpContext.Session.SetString("Setor", vLogin.Setor.Nome);
                                HttpContext.Session.SetString("Perfil", vLogin.Perfil);
                                HttpContext.Session.SetInt32("ID", vLogin.Id);
                                HttpContext.Session.SetString("UltimoAcesso", vLogin.UltimoLogin.ToString("dd/MM/yyyy HH:mm:ss"));
                                HttpContext.Session.SetString("Visualizado", "false");

                                int loja = _db.Int_DP_Usuarios.Where(a => a.Id == vLogin.Id).Select(s => s.Loja.Id).FirstOrDefault();

                                HttpContext.Session.SetInt32("Loja", loja);

                                vLogin.UltimoLogin = Globalization.HoraAtualBR();

                                Log log = new Log();
                                log.LogIn(vLogin.Id);
                                _db.Int_DP_Logs.Add(log);

                                _db.SaveChanges();

                                return(RedirectToAction("Inicio", "Home")); //Vai para a página de Início
                            }
                            catch (Exception exp)
                            {
                                Log log = new Log();
                                log.LogIn_Erro(vLogin.Id, exp);
                                _db.Int_DP_Logs.Add(log);

                                _db.SaveChanges();
                                HttpContext.Session.Clear(); //Limpa a sessão para voltar ao início
                                TempData["MensagemErro"] = "Ocorreu um erro ao tentar logar";
                                return(RedirectToAction("Index", "Home"));
                            }
                        }
                        else
                        {
                            TempData["MensagemErro"] = "Senha incorreta";
                            return(View(usuario));
                        }
                    }
                    else
                    {
                        TempData["MensagemErro"] = "O Usuário não está Ativo";
                        return(View(usuario));
                    }
                }
                else
                {
                    TempData["MensagemErro"] = "Usuário não Encontrado";
                    return(View(usuario));
                }
            }

            return(View());
        }