Beispiel #1
0
        public ActionResult MontarMenuDeOperacoes(string uk)
        {
            try
            {
                IncidenteVeiculo fichaPersistida = IncidenteVeiculoBusiness.Consulta.FirstOrDefault(a => string.IsNullOrEmpty(a.UsuarioExclusao) && a.UniqueKey.Equals(uk));
                if (fichaPersistida == null)
                {
                    throw new Exception("As informações fornecidas para montagem do menu de operações não são válidas.");
                }

                Workflow wfPersistida = WorkflowBusiness.Consulta.FirstOrDefault(a => string.IsNullOrEmpty(a.UsuarioExclusao) && a.UKObject.Equals(fichaPersistida.UniqueKey));
                if (wfPersistida == null)
                {
                    //Criar método
                }
                else
                {
                    fichaPersistida.Operacoes = OperacaoBusiness.RecuperarTodasPermitidas(CustomAuthorizationProvider.UsuarioAutenticado.Login, CustomAuthorizationProvider.UsuarioAutenticado.Permissoes, wfPersistida);
                }

                return(PartialView("_MenuOperacoes", fichaPersistida));
            }
            catch (Exception ex)
            {
                Response.StatusCode = 500;
                return(Content(ex.Message, "text/html"));
            }
        }
        public ActionResult RejeitarIncidente(ItemInbox item)
        {
            try
            {
                Incidente obj = IncidenteBusiness.Consulta.FirstOrDefault(a =>
                                                                          string.IsNullOrEmpty(a.UsuarioExclusao) &&
                                                                          a.UniqueKey.Equals(item.UniqueKey) &&
                                                                          a.Responsavel.ToUpper().Equals(CustomAuthorizationProvider.UsuarioAutenticado.Login.ToUpper()));

                if (obj == null)
                {
                    throw new Exception("Não foi possível recuperar o incidente através da identificação recebida.");
                }
                else
                {
                    ReiniciarCache(CustomAuthorizationProvider.UsuarioAutenticado.Login);

                    obj.StatusWF        = "RJ";
                    obj.DataExclusao    = DateTime.Now;
                    obj.UsuarioExclusao = CustomAuthorizationProvider.UsuarioAutenticado.Login;
                    IncidenteBusiness.Alterar(obj);

                    string novoStatus = OperacaoBusiness.RecuperarStatusAnterior(obj.Status);

                    string sql         = "select top 1 Responsavel from objincidente where uniquekey = '" + item.UniqueKey + "' and UsuarioExclusao is not null and Status = '" + novoStatus + "' order by DataExclusao desc";
                    string Responsavel = IncidenteBusiness.ExecuteQuery(sql);
                    if (string.IsNullOrEmpty(Responsavel))
                    {
                        List <string> Responsaveis = OperacaoBusiness.RecuperarResponsavelPorStatus(novoStatus);
                        foreach (string resp in Responsaveis)
                        {
                            Incidente obj2 = new Incidente();
                            PropertyCopy.Copy(obj, obj2);

                            obj2.ID            = Guid.NewGuid().ToString();
                            obj2.StatusWF      = "RS";
                            obj2.MensagemPasso = item.Comentarios;
                            obj2.Status        = novoStatus;

                            if (resp.Equals("Submitter"))
                            {
                                string sql2      = "select top 1 UsuarioInclusao from OBJIncidente where Codigo = '" + obj2.Codigo + "' order by DataInclusao";
                                string submitter = IncidenteBusiness.ExecuteQuery(sql2);
                                if (string.IsNullOrEmpty(submitter))
                                {
                                    throw new Exception("Não foi possível recuperar o usuário que criou o incidente.");
                                }

                                obj2.Responsavel = submitter;
                            }
                            else
                            {
                                obj2.Responsavel = resp;
                            }

                            obj2.UsuarioInclusao = CustomAuthorizationProvider.UsuarioAutenticado.Login;
                            obj2.UsuarioExclusao = null;
                            obj2.DataExclusao    = DateTime.MaxValue;
                            obj2.DataAtualizacao = DateTime.Now;

                            IncidenteBusiness.Inserir(obj2);

                            Severino.GravaCookie("MensagemSucesso", "O incidente " + obj2.Codigo + " foi rejeitado com sucesso.", 10);
                        }
                    }
                    else
                    {
                        Incidente obj2 = new Incidente();
                        PropertyCopy.Copy(obj, obj2);

                        obj2.ID              = Guid.NewGuid().ToString();
                        obj2.StatusWF        = "RS";
                        obj2.MensagemPasso   = item.Comentarios;
                        obj2.Status          = novoStatus;
                        obj2.Responsavel     = Responsavel;
                        obj2.UsuarioInclusao = CustomAuthorizationProvider.UsuarioAutenticado.Login;
                        obj2.UsuarioExclusao = null;
                        obj2.DataExclusao    = DateTime.MaxValue;
                        obj2.DataAtualizacao = DateTime.Now;

                        IncidenteBusiness.Inserir(obj2);

                        Severino.GravaCookie("MensagemSucesso", "O incidente " + obj2.Codigo + " foi rejeitado com sucesso.", 10);
                    }
                }

                return(Json(new { sucesso = "O passo do workflow associado ao documento foi aprovado com sucesso." }));
            }
            catch (Exception ex)
            {
                return(Json(new { erro = ex.Message }));
            }
        }
Beispiel #3
0
        public ActionResult Detalhes(string uniquekey)
        {
            try
            {
                if (string.IsNullOrEmpty(uniquekey))
                {
                    throw new Exception("Não foi possível localizar o parâmetro que identifica o incidente com veículo.");
                }
                else
                {
                    List <IncidenteVeiculo> lista    = IncidenteVeiculoBusiness.Consulta.Where(a => a.UniqueKey.Equals(uniquekey) && string.IsNullOrEmpty(a.UsuarioExclusao)).ToList();
                    IncidenteVeiculo        registro = lista[0];

                    registro.PassoAtual = WorkflowBusiness.Consulta.FirstOrDefault(a => string.IsNullOrEmpty(a.UsuarioExclusao) && a.UKObject.Equals(registro.UniqueKey));


                    VMIncidenteVeiculo vm = new VMIncidenteVeiculo();

                    if (registro.PassoAtual != null)
                    {
                        vm.UKWorkflow = registro.PassoAtual.UniqueKey;
                        vm.StatusWF   = registro.PassoAtual.Nome;
                    }
                    else
                    {
                        vm.StatusWF = registro.Status.ToString();
                    }

                    vm.UniqueKey = registro.UniqueKey;
                    vm.Codigo    = registro.Codigo;
                    //vm.Status = registro.Status;
                    vm.Descricao          = registro.Descricao;
                    vm.AcidenteFatal      = registro.AcidenteFatal ? "Sim" : "Não";
                    vm.AcidenteGraveIP102 = registro.AcidenteGraveIP102 ? "Sim" : "Não";
                    vm.Centro             = registro.Centro.GetDisplayName();
                    vm.Regional           = registro.Regional.ToString();
                    vm.NumeroSmart        = registro.NumeroSmart;

                    if (registro.ETipoEntrada != 0)
                    {
                        vm.TipoEntrada = registro.ETipoEntrada.GetDisplayName();
                    }



                    Municipio mun = MunicipioBusiness.Consulta.FirstOrDefault(a => string.IsNullOrEmpty(a.UsuarioExclusao) && a.UniqueKey.Equals(registro.UKMunicipio));
                    if (mun != null)
                    {
                        vm.Municipio = mun.NomeCompleto;
                    }

                    ESocial eso = ESocialBusiness.Consulta.FirstOrDefault(a => string.IsNullOrEmpty(a.UsuarioExclusao) && a.UniqueKey.Equals(registro.UKESocial));
                    if (eso != null)
                    {
                        vm.ESocial          = eso.Codigo;
                        ViewBag.ESocialDesc = eso.Descricao;
                    }


                    vm.Estado           = registro.Estado;
                    vm.Logradouro       = registro.Logradouro;
                    vm.NumeroLogradouro = registro.NumeroLogradouro;
                    vm.ETipoAcidente    = registro.ETipoAcidente.GetDisplayName();
                    vm.LocalAcidente    = registro.LocalAcidente;


                    Departamento dep = DepartamentoBusiness.Consulta.FirstOrDefault(a => string.IsNullOrEmpty(a.UsuarioExclusao) && a.UniqueKey.Equals(registro.UKOrgao));
                    if (dep != null)
                    {
                        vm.Orgao = dep.Sigla;
                    }

                    if (registro.TipoLocalAcidente != 0)
                    {
                        vm.TipoLocalAcidente = registro.TipoLocalAcidente.GetDisplayName();
                    }


                    vm.DataIncidente = registro.DataIncidente.ToString("dd/MM/yyyy");
                    vm.HoraIncidente = registro.HoraIncidente;
                    vm.DataInclusao  = registro.DataInclusao.ToString("dd/MM/yyyy HH:mm");

                    if (registro.DataAtualizacao != null)
                    {
                        vm.DataAtualizacao = ((DateTime)registro.DataAtualizacao).ToString("dd/MM/yyyy HH:mm");
                    }

                    vm.UsuarioInclusao = registro.UsuarioInclusao;

                    vm.Arquivos = ArquivoBusiness.Consulta.Where(a => string.IsNullOrEmpty(a.UsuarioExclusao) && a.UKObjeto.Equals(uniquekey)).ToList();

                    vm.Operacoes = OperacaoBusiness.RecuperarTodasPermitidas(CustomAuthorizationProvider.UsuarioAutenticado.Login, CustomAuthorizationProvider.UsuarioAutenticado.Permissoes, lista);

                    registro.Operacoes = vm.Operacoes;

                    ViewBag.Incidente = registro;

                    vm.Veiculos = (from iv in IncidenteVeiculoVeiculoBusiness.Consulta.Where(p => string.IsNullOrEmpty(p.UsuarioExclusao) && p.UKIncidenteVeiculo.Equals(vm.UniqueKey)).ToList()
                                   join v in VeiculoBusiness.Consulta.Where(p => string.IsNullOrEmpty(p.UsuarioExclusao)).ToList() on iv.UKVeiculo equals v.UniqueKey
                                   select new VMVeiculo()
                    {
                        TipoCondutor = iv.TipoCondutor,
                        NomeCondutor = iv.NomeCondutor,
                        TipoFrota = v.TipoFrota,
                        Placa = v.Placa,
                        TipoVeiculo = v.TipoVeiculo,
                        UKRel = iv.UniqueKey
                    }).ToList();

                    vm.Populacao = (from iv in IncidenteVeiculoPopulacaoBusiness.Consulta.Where(p => string.IsNullOrEmpty(p.UsuarioExclusao) && p.UKIncidenteVeiculo.Equals(vm.UniqueKey)).ToList()
                                    join v in PopulacaoBusiness.Consulta.Where(p => string.IsNullOrEmpty(p.UsuarioExclusao)).ToList() on iv.UKPopulacao equals v.UniqueKey
                                    select new VMPopulacao()
                    {
                        TipoAcidente = iv.TipoAcidente,
                        Atividade = iv.Atividade,
                        Causa = iv.Causa,
                        AgenteCausador = iv.AgenteCausador,
                        DataNascimento = v.DataNascimento.ToString("dd/MM/yyyy"),
                        Sexo = v.Sexo,
                        Nome = v.Nome,
                        Natureza = iv.Natureza,
                        UKPopulacao = v.UniqueKey,
                        UKRel = iv.UniqueKey
                    }).ToList();

                    vm.Materiais = MaterialBusiness.Consulta.Where(a => string.IsNullOrEmpty(a.UsuarioExclusao) && a.UKIncidente.Equals(vm.UniqueKey)).ToList();

                    return(PartialView("_DetalhesVeiculo", vm));
                }
            }
            catch (Exception ex)
            {
                if (ex.GetBaseException() == null)
                {
                    return(Json(new { resultado = new RetornoJSON()
                                      {
                                          Erro = ex.Message
                                      } }));
                }
                else
                {
                    return(Json(new { resultado = new RetornoJSON()
                                      {
                                          Erro = ex.GetBaseException().Message
                                      } }));
                }
            }
        }
        public ActionResult AprovarIncidente(ItemInbox item)
        {
            try
            {
                Incidente obj = IncidenteBusiness.Consulta.FirstOrDefault(a =>
                                                                          string.IsNullOrEmpty(a.UsuarioExclusao) &&
                                                                          a.UniqueKey.Equals(item.UniqueKey) &&
                                                                          a.Responsavel.ToUpper().Equals(CustomAuthorizationProvider.UsuarioAutenticado.Login.ToUpper()));

                if (obj == null)
                {
                    throw new Exception("Não foi possível recuperar o incidente através da identificação recebida.");
                }
                else
                {
                    ReiniciarCache(CustomAuthorizationProvider.UsuarioAutenticado.Login);

                    obj.StatusWF        = "SO";
                    obj.DataExclusao    = DateTime.Now;
                    obj.UsuarioExclusao = CustomAuthorizationProvider.UsuarioAutenticado.Login;
                    IncidenteBusiness.Alterar(obj);

                    string        novoStatus   = OperacaoBusiness.RecuperarProximoStatus(obj.Status);
                    List <string> Responsaveis = OperacaoBusiness.RecuperarResponsavelPorStatus(novoStatus);

                    foreach (string resp in Responsaveis)
                    {
                        Incidente obj2 = new Incidente();
                        PropertyCopy.Copy(obj, obj2);

                        obj2.ID        = Guid.NewGuid().ToString();
                        obj2.UniqueKey = item.UniqueKey;

                        if (novoStatus.Equals("Concluído"))
                        {
                            obj2.StatusWF = "SO";
                        }
                        else
                        {
                            obj2.StatusWF = "RS";
                        }

                        obj2.MensagemPasso   = item.Comentarios;
                        obj2.Status          = novoStatus;
                        obj2.Responsavel     = resp;
                        obj2.UsuarioInclusao = CustomAuthorizationProvider.UsuarioAutenticado.Login;
                        obj2.UsuarioExclusao = null;
                        obj2.DataExclusao    = DateTime.MaxValue;
                        obj2.DataAtualizacao = DateTime.Now;

                        IncidenteBusiness.Inserir(obj2);

                        Severino.GravaCookie("MensagemSucesso", "O incidente " + obj2.Codigo + " foi aprovado com sucesso.", 10);
                    }
                }

                return(Json(new { sucesso = "O passo do workflow associado ao documento foi aprovado com sucesso." }));
            }
            catch (Exception ex)
            {
                return(Json(new { erro = ex.Message }));
            }
        }