示例#1
0
        public ActionResult Incluir([DataSourceRequest] DataSourceRequest request, OcorrenciaViewModel item)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    Ocorrencia dados = Mapper.Map <Ocorrencia>(item);
                    _repositorio.Inserir(dados);
                    _contexto.SaveChanges();
                    item.OcorrenciaId = dados.OcorrenciaId;
                }
                catch (Exception erro)
                {
                    if (erro.InnerException.InnerException.Message.Contains("IdxNome"))
                    {
                        ModelState.AddModelError("", "O nome já foi incluído.");
                    }

                    _contexto.Rollback();
                    return(Json(ModelState.ToDataSourceResult()));
                }
            }

            return(Json(new[] { item }.ToDataSourceResult(request)));
        }
        public List <OcorrenciaViewModel> CarregarOcorrencias()
        {
            var usuarios = _db.Int_DP_Usuarios.ToList();
            int userID   = HttpContext.Session.GetInt32("ID") ?? 0;

            // Take(5) = SELECT TOP 5

            var relat = _db.Int_DP_Ocorrencias
                        .Where(a => a.Usuario.Id == userID && a.Ativo == 1)
                        .OrderByDescending(b => b.Data)
                        .Take(5)
                        .ToList();

            List <OcorrenciaViewModel> ocorVM = new List <OcorrenciaViewModel>();

            foreach (Ocorrencia ocor in relat)
            {
                OcorrenciaViewModel ocorrenciasVM = new OcorrenciaViewModel
                {
                    Id        = ocor.Id,
                    Descricao = ocor.Descricao,
                    Data      = ocor.Data,
                    Anexo     = ocor.Anexo
                };

                ocorVM.Add(ocorrenciasVM);
            }
            return(ocorVM);
        }
示例#3
0
        public ActionResult Detalhar(long id, int?page, DateTime?datainicio, DateTime?datafim, string setor, string loja)
        {
            ViewBag.PaginaRelat     = page ?? 1;
            ViewBag.DataInicioRelat = datainicio;
            ViewBag.DataFimRelat    = datafim;
            ViewBag.SetorRelat      = setor;
            ViewBag.LojarRelat      = loja;

            ViewBag.Setor = setores;

            ViewBag.Loja = lojas;
            Ocorrencia ocorrencia = _db.Int_DP_Ocorrencias.Find(id);

            var relat = _db.Int_DP_Ocorrencias
                        .Join(_db.Int_DP_Usuarios, o => o.Usuario.Id, u => u.Id, (o, u) => new { o, u })
                        .Join(_db.Int_DP_Setores, a => a.u.Setor.Id, b => b.Id, (a, b) => new { a, b })
                        .Join(_db.Int_DP_Lojas, r => r.a.u.Loja.Id, s => s.Id, (r, s) => new { r, s })
                        .Where(w => w.r.a.o.Id == id)
                        .Select(s => new
            {
                s.r.a.o.Data,
                s.r.a.o.DataEnvio,
                s.r.a.o.Descricao,
                s.r.a.o.Id,
                s.r.a.o.Anexo,
                s.r.a.u.Nome,
                Setor = s.r.b.Nome,
                Loja  = s.s.Nome,
                s.r.a.o.Acidente,
                s.r.a.o.Advertencia,
                s.r.a.o.Cedo,
                s.r.a.o.Atrasado,
                s.r.a.o.Outro
            }).FirstOrDefault();

            OcorrenciaViewModel detalhes = new OcorrenciaViewModel
            {
                Id          = relat.Id,
                Data        = relat.Data,
                DataEnvio   = relat.DataEnvio,
                Descricao   = relat.Descricao.Replace("\r\n", "<br />"),
                Nome        = relat.Nome,
                Setor       = relat.Setor,
                Loja        = relat.Loja,
                Anexo       = relat.Anexo,
                Advertencia = relat.Advertencia,
                Acidente    = relat.Acidente,
                Cedo        = relat.Cedo,
                Atrasado    = relat.Atrasado,
                Outro       = relat.Outro
            };

            return(View(detalhes));
        }
示例#4
0
 public ActionResult Excluir([DataSourceRequest] DataSourceRequest request, OcorrenciaViewModel item)
 {
     try
     {
         _contexto.Ocorrencias.Remove(_contexto.Ocorrencias.Find(item.OcorrenciaId));
         _contexto.SaveChanges();
         ModelState.IsValidField("true");
     }
     catch (Exception erro)
     {
         ModelState.IsValidField("false");
         ModelState.AddModelError("", erro.Message);
         _contexto.Rollback();
     }
     return(Json(ModelState.ToDataSourceResult()));
 }
示例#5
0
 public ActionResult Atualizar([DataSourceRequest] DataSourceRequest request, OcorrenciaViewModel item)
 {
     if (ModelState.IsValid)
     {
         try
         {
             Ocorrencia dados = Mapper.Map <Ocorrencia>(item);
             dados = _repositorio.Atualizar(dados);
             _contexto.Commit();
         }
         catch (Exception erro)
         {
             ModelState.AddModelError("", erro.Message);
             _contexto.Rollback();
         }
     }
     return(Json(ModelState.ToDataSourceResult()));
 }
示例#6
0
        public OcorrenciaViewModel Index(string usuarioId)
        {
            var listaDepartamento = _departamentoServico.ObterTodos();

            if (string.IsNullOrEmpty(usuarioId))
            {
                var listaUsuarios       = _servicoUsuario.ObterUsuariosOcorrencia();
                var listaOcorrenciaTipo = _servicoOcorrenciaTipo.ListarOcorrenciaTipoOcorrencia(null);
                var model = new OcorrenciaViewModel(new SelectList(listaOcorrenciaTipo, "id", "nomeExibicao"),
                                                    new SelectList(listaUsuarios, "id", "nome"), new SelectList(listaDepartamento, "id", "nome"));
                return(model);
            }
            else
            {
                var listaUsuarios       = _servicoUsuario.ObterUsuariosOcorrencia().Where(w => w.Id == usuarioId).ToList();
                var listaOcorrenciaTipo = _servicoOcorrenciaTipo.ListarOcorrenciaTipoOcorrencia(usuarioId);
                var model = new OcorrenciaViewModel(new SelectList(listaOcorrenciaTipo, "id", "nomeExibicao"),
                                                    new SelectList(listaUsuarios, "id", "nome"), new SelectList(listaDepartamento, "id", "nome"));
                return(model);
            }
        }
示例#7
0
 public Ocorrencia(long idCorrida, long idLog)
 {
     InitializeComponent();
     ViewModel      = new OcorrenciaViewModel(new CorridaServico(), idCorrida, idLog, UsuarioAutenticado.Instance);
     BindingContext = ViewModel;
 }
示例#8
0
        public IActionResult Index(int?page)
        {
            ViewBag.Setores = setores;
            ViewBag.Lojas   = lojas;

            ViewBag.Pesquisa = new FiltrarPesquisaRelatViewModel();

            int    pageNumber = page ?? 1;
            Log    log        = new Log();
            int    id_notnull = HttpContext.Session.GetInt32("ID") ?? 0;
            string filtros    = GerarFiltros(DateTime.MinValue, DateTime.MaxValue, "0", "0");

            /*  SELECT O.DATA,O.DESCRICAO,O.ID,U.NOME,R.SETOR, L.LOJA
             *  FROM INT_DP_OCORRENCIAS AS O
             *  INNER JOIN INT_DP_USUARIOS AS U ON O.ID_USUARIO = U.ID
             *  INNER JOIN INT_DP_SETORES AS R ON U.SETORID = R.ID
             *  INNER JOIN INT_DP_LOJAS AS L ON U.LOJAID = L.ID
             *  ORDER BY O.DATA */

            try
            {
                if (relatorioVM.Count == 0)
                {
                    var relat = _db.Int_DP_Ocorrencias
                                .Join(_db.Int_DP_Usuarios, o => o.Usuario.Id, u => u.Id, (o, u) => new { o, u })
                                .Join(_db.Int_DP_Setores, a => a.u.Setor.Id, b => b.Id, (a, b) => new { a, b })
                                .Join(_db.Int_DP_Lojas, r => r.a.u.Loja.Id, s => s.Id, (r, s) => new { r, s })
                                .Where(a => a.r.a.o.Ativo == 1)
                                .OrderByDescending(c => c.r.a.o.Data)
                                .ThenByDescending(a => a.r.a.o.Id)
                                .Select(s => new
                    {
                        s.r.a.o.Data,
                        s.r.a.o.Descricao,
                        s.r.a.o.Id,
                        s.r.a.o.Anexo,
                        s.r.a.u.Nome,
                        Setor = s.r.a.u.Setor.Nome,
                        Loja  = s.r.a.u.Loja.Nome
                    }).ToList();

                    foreach (var linha in relat)
                    {
                        OcorrenciaViewModel ocorVM = new OcorrenciaViewModel
                        {
                            Nome      = linha.Nome,
                            Loja      = linha.Loja,
                            Setor     = linha.Setor,
                            Descricao = linha.Descricao,
                            Data      = linha.Data,
                            Id        = linha.Id,
                            Anexo     = linha.Anexo
                        };
                        relatorioVM.Add(ocorVM);
                    }
                }

                IPagedList <OcorrenciaViewModel> resultadoPaginado = relatorioVM.ToPagedList(pageNumber, paginasPagedList);

                log.ConsultarRelatorio(id_notnull, filtros);
                _db.Int_DP_Logs.Add(log);
                _db.SaveChanges();

                return(View(resultadoPaginado));
            }
            catch (Exception exp)
            {
                log.ConsultarRelatorio_Erro(id_notnull, filtros, exp);
                _db.Int_DP_Logs.Add(log);
                _db.SaveChanges();

                TempData["ErroRelat"] = "Ocorreu um erro ao tentar consultar o relatório...";

                return(View());
            }
        }
示例#9
0
        public IActionResult Filtrar(DateTime?datainicio, DateTime?datafim, string setor, string loja, int?page, bool?pdf)
        {
            Log log        = new Log();
            int id_notnull = HttpContext.Session.GetInt32("ID") ?? 0;
            FiltrarPesquisaRelatViewModel pesquisa = new FiltrarPesquisaRelatViewModel()
            {
                DataInicio = datainicio, DataFim = datafim, Setor = setor, Loja = loja
            };

            ViewBag.Setores = setores;
            ViewBag.Lojas   = lojas;
            int    pageNumber = page ?? 1;
            string filtros    = "";

            var query = _db.Int_DP_Ocorrencias
                        .Join(_db.Int_DP_Usuarios, o => o.Usuario.Id, u => u.Id, (o, u) => new { o, u })
                        .Join(_db.Int_DP_Setores, a => a.u.Setor.Id, b => b.Id, (a, b) => new { a, b })
                        .Join(_db.Int_DP_Lojas, r => r.a.u.Loja.Id, s => s.Id, (r, s) => new { r, s })
                        .OrderByDescending(c => c.r.a.o.Data)
                        .ThenByDescending(a => a.r.a.o.Id)
                        .AsQueryable();

            if (pesquisa.DataInicio != null)
            {
                if (pesquisa.DataFim != null)
                {
                    query = query.Where(a => a.r.a.o.Data >= pesquisa.DataInicio && a.r.a.o.Data <= pesquisa.DataFim);
                }
                else
                {
                    query = query.Where(a => a.r.a.o.Data >= pesquisa.DataInicio);
                }
            }

            if (pesquisa.Setor != null && pesquisa.Setor != "0")
            {
                query = query.Where(a => a.r.a.u.Setor.Id == int.Parse(pesquisa.Setor));
            }

            if (pesquisa.Loja != null && pesquisa.Loja != "0")
            {
                query = query.Where(a => a.r.a.u.Loja.Id == int.Parse(pesquisa.Loja));
            }

            query = query.Where(y => y.r.a.o.Ativo == 1);

            DateTime datainicio_notnull = pesquisa.DataInicio ?? DateTime.MinValue;

            DateTime datafim_notnull = pesquisa.DataFim ?? DateTime.MaxValue;

            var relat = query.Select(s => new
            {
                s.r.a.o.Data,
                s.r.a.o.Descricao,
                s.r.a.o.Id,
                s.r.a.o.Anexo,
                s.r.a.u.Nome,
                Setor = s.r.a.u.Setor.Nome,
                Loja  = s.r.a.u.Loja.Nome
            }).ToList();

            foreach (var linha in relat)
            {
                OcorrenciaViewModel ocorVM = new OcorrenciaViewModel
                {
                    Nome      = linha.Nome,
                    Setor     = linha.Setor,
                    Loja      = linha.Loja,
                    Descricao = linha.Descricao,
                    Data      = linha.Data,
                    Id        = linha.Id,
                    Anexo     = linha.Anexo
                };
                relatorioVM.Add(ocorVM);
            }

            if (relatorioVM.Count > 0)
            {
                filtros = GerarFiltros(datainicio_notnull, datafim_notnull, setor, loja);
                relatorioVM[0].DadosPesquisa = filtros; //Armazena os dados que veio do filtro no primeiro index do modelo (.pdf)
            }

            Setor vPesquisa = _db.Int_DP_Setores.Find(int.Parse(pesquisa.Setor));

            Loja vPesquisa2 = _db.Int_DP_Lojas.Find(int.Parse(pesquisa.Loja));

            if (vPesquisa != null)
            {
                ViewBag.NomeSetor = vPesquisa.Nome;
            }
            else
            {
                ViewBag.NomeSetor = "*Todos*";
            }

            if (vPesquisa2 != null)
            {
                ViewBag.NomeLoja = vPesquisa2.Nome;
            }
            else
            {
                ViewBag.NomeLoja = "*Todas*";
            }

            if (pdf != true)
            {
                ViewBag.Pesquisa = pesquisa;

                try
                {
                    IPagedList <OcorrenciaViewModel> resultadoPaginado = relatorioVM.ToPagedList(pageNumber, paginasPagedList);

                    log.ConsultarRelatorio(id_notnull, filtros);
                    _db.Int_DP_Logs.Add(log);
                    _db.SaveChanges();

                    return(View("Index", resultadoPaginado));
                }
                catch (Exception exp)
                {
                    log.ConsultarRelatorio_Erro(id_notnull, filtros, exp);
                    _db.Int_DP_Logs.Add(log);
                    _db.SaveChanges();

                    TempData["ErroRelat"] = "Ocorreu um erro ao tentar consultar o relatório...";

                    return(View("Index"));
                }
            }
            else
            {
                try
                {
                    string data = Globalization.DataRelatorioPdfBR();

                    ViewAsPdf relatorioPDF = new ViewAsPdf
                    {
                        WkhtmlPath      = "~/OcorrenciasDP/wwwroot/Rotativa",
                        ViewName        = "VisualizarComoPDF",
                        IsGrayScale     = false,
                        Model           = relatorioVM,
                        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
                    };

                    log.ExportarRelatorio(id_notnull, filtros);
                    _db.Int_DP_Logs.Add(log);
                    _db.SaveChanges();

                    return(relatorioPDF);
                }
                catch (Exception exp)
                {
                    log.ExportarRelatorio_Erro(id_notnull, exp);
                    _db.Int_DP_Logs.Add(log);
                    _db.SaveChanges();

                    TempData["ErroRelat"] = "Ocorreu um erro ao tentar exportar o relátório, por favor, tente novamente...";

                    return(RedirectToAction("Index"));
                }
            }
        }
示例#10
0
 public IEnumerable <OcorrenciaAcompanhamento> BuscarOcorrenciaSupervisao(OcorrenciaViewModel model)
 {
     return(_servicoOcorrenciaAcompanhamento.ObterAcompanhamentoPadrao(model.DataInicio, model.DataFinal,
                                                                       model.CriadoPorId, model.ResponsavelId, model.SlaAtrasado, model.Cliente, model.StatusIds,
                                                                       model.OcorrenciaTipoId, model.DepartamentoId));
 }
 public Task <RetornoViewModel> IncluirOcorrencia(OcorrenciaViewModel ocorrencia)
 {
     throw new NotImplementedException();
 }