Пример #1
0
        public ActionResult Excluir(string ukArquivo)
        {
            try
            {
                //Apenas exclusão lógica
                if (string.IsNullOrEmpty(ukArquivo))
                {
                    throw new Exception("A identificação do arquivo não foi localizada. Por favor, acione o administrador.");
                }

                Guid uk = Guid.Parse(ukArquivo);

                Arquivo arquivoPersistido = ArquivoBusiness.Consulta.FirstOrDefault(a => string.IsNullOrEmpty(a.UsuarioExclusao) && a.UniqueKey.Equals(uk));
                if (arquivoPersistido == null)
                {
                    throw new Exception("As informações para exclusão do arquivo não são válidas.");
                }

                arquivoPersistido.UsuarioExclusao = CustomAuthorizationProvider.UsuarioAutenticado.Login;
                arquivoPersistido.DataExclusao    = DateTime.Now;

                ArquivoBusiness.Alterar(arquivoPersistido);

                return(Json(new { }));
            }
            catch (Exception ex)
            {
                return(Json(new { erro = ex.Message }));
            }
        }
Пример #2
0
 private bool LerArquivoRetorno(OpenFileDialog openFile)
 {
     try
     {
         using (var bussBanco = new BancoBusiness())
         {
             var cbItem = cbBancos.SelectedValue;
             var banco  = bussBanco.ObterPorID(cbItem);
             foreach (var item in openFile.FileNames)
             {
                 var stream = new FileStream(item, FileMode.Open, FileAccess.Read);
                 //lê o arquivo de retorno
                 using (var bussArquivo = new ArquivoBusiness())
                 {
                     var tipo = bussArquivo.verificaTipoCNAB(item);
                     bussArquivo.lerArquivoRetorno(banco, stream, tipo);
                 }
             }
             return(true);
         }
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
Пример #3
0
 private void atualizarGridView()
 {
     using (var bc = new ArquivoBusiness())
     {
         dataGridView1.DataSource = bc.ObterTodos();
         dataGridView1.Columns["OcorrenciasCobranca"].Visible = false;
     }
 }
Пример #4
0
        public ActionResult Download(string id)
        {
            try
            {
                if (!string.IsNullOrEmpty(id))
                {
                    try
                    {
                        Incidente incidentePersistido = IncidenteBusiness.Consulta.FirstOrDefault(a => string.IsNullOrEmpty(a.UsuarioExclusao) && a.UniqueKey.Equals(id));
                        if (incidentePersistido == null)
                        {
                            throw new Exception("As informações para geração do pacote zip de arquivos não são válidas.");
                        }

                        List <Arquivo> arquivos = ArquivoBusiness.Consulta.Where(a => string.IsNullOrEmpty(a.UsuarioExclusao) && a.UKObjeto.Equals(id)).ToList();
                        if (arquivos == null || arquivos.Count == 0)
                        {
                            throw new Exception("Nenhum arquivo encontrado para o documento.");
                        }

                        byte[] conteudo = ArquivoBusiness.BaixarTodosArquivos(incidentePersistido.Codigo, arquivos);

                        var mimeType = string.Empty;
                        try
                        {
                            mimeType = MimeMapping.GetMimeMapping(incidentePersistido.Codigo + ".zip");
                        }
                        catch { }

                        if (string.IsNullOrWhiteSpace(mimeType))
                        {
                            mimeType = System.Net.Mime.MediaTypeNames.Application.Octet;
                        }

                        Response.AddHeader("Content-Disposition", string.Format("inline; filename=\"{0}\"", incidentePersistido.Codigo + ".zip"));

                        return(File(conteudo, mimeType));
                    }
                    catch (Exception ex)
                    {
                        Response.StatusCode = 500;
                        return(Content(ex.Message, "text/html"));
                    }
                }
                else
                {
                    Response.StatusCode = 500;
                    return(Content("Parâmetros para visualização de arquivo inválido.", "text/html"));
                }
            }
            catch (Exception ex)
            {
                Response.StatusCode = 500;
                return(Content(ex.Message, "text/html"));
            }
        }
Пример #5
0
        private async void btProcessarArquivoCronn_Click(object sender, EventArgs e)
        {
            var arquivo = new Arquivo();

            using (ArquivoBusiness arquivoBuss = new ArquivoBusiness())
            {
                arquivo = arquivoBuss.ObterPorId(guid);
            }
            processarArquivoCronn_PRD_SgvCobranca(arquivo);
        }
Пример #6
0
        public ActionResult Visualizar_Antigo(string id)
        {
            try
            {
                if (!string.IsNullOrEmpty(id))
                {
                    try
                    {
                        Guid uk = Guid.Parse(id);

                        Arquivo arq = ArquivoBusiness.Consulta.FirstOrDefault(a => string.IsNullOrEmpty(a.UsuarioExclusao) && a.UniqueKey.Equals(uk));
                        if (arq == null)
                        {
                            throw new Exception("Arquivo não encontrado através da identificação recebida como parâmetro.");
                        }
                        else
                        {
                            byte[] conteudo = ArquivoBusiness.Download(arq.NomeRemoto);

                            var mimeType = string.Empty;
                            try
                            {
                                mimeType = MimeMapping.GetMimeMapping(arq.NomeLocal);
                            }
                            catch { }

                            if (string.IsNullOrWhiteSpace(mimeType))
                            {
                                mimeType = System.Net.Mime.MediaTypeNames.Application.Octet;
                            }

                            Response.AddHeader("Content-Disposition", string.Format("inline; filename=\"{0}\"", arq.NomeLocal));

                            return(File(conteudo, mimeType));
                        }
                    }
                    catch (Exception ex)
                    {
                        Response.StatusCode = 500;
                        return(Content(ex.Message, "text/html"));
                    }
                }
                else
                {
                    Response.StatusCode = 500;
                    return(Content("Parâmetros para visualização de arquivo inválido.", "text/html"));
                }
            }
            catch (Exception ex)
            {
                Response.StatusCode = 500;
                return(Content(ex.Message, "text/html"));
            }
        }
Пример #7
0
        public ActionResult UploadV(Arquivo arquivo, string Registro)
        {
            try
            {
                HttpPostedFileBase arquivoPostado = null;
                foreach (string fileInputName in Request.Files)
                {
                    arquivoPostado = Request.Files[fileInputName];
                    if (arquivoPostado != null && arquivoPostado.ContentLength > 0)
                    {
                        if (ArquivoBusiness.Consulta.Where(a => string.IsNullOrEmpty(a.UsuarioExclusao) && a.UKObjeto.Equals(arquivo.UKObjeto) && a.NomeLocal.ToUpper().Equals(arquivoPostado.FileName.ToUpper())).Count() > 0)
                        {
                            throw new Exception("Já existe um arquivo com este nome anexado ao incidente.");
                        }
                        else
                        {
                            var target = new MemoryStream();
                            arquivoPostado.InputStream.CopyTo(target);
                            arquivo.NumRegistro     = Registro;
                            arquivo.Conteudo        = target.ToArray();
                            arquivo.UsuarioInclusao = CustomAuthorizationProvider.UsuarioAutenticado.Login;
                            arquivo.DataInclusao    = DateTime.Now;
                            arquivo.Extensao        = Path.GetExtension(arquivoPostado.FileName);
                            arquivo.NomeLocal       = arquivoPostado.FileName;

                            ArquivoBusiness.Inserir(arquivo);

                            var texto = "Abastecido";

                            string sql = "UPDATE tbMovimentacaoVeicular SET Abastecimento = '" + texto.Trim() + "' where UniqueKey = '" + arquivo.UKObjeto + "' ";

                            SqlCommand updatecommand = new SqlCommand(sql);

                            DataTable result = MovimentacaoVeicularBusiness.GetDataTable(sql);
                        }
                    }
                }

                if (Request.Files.Count == 1)
                {
                    return(Json(new { sucesso = "O arquivo '" + arquivoPostado.FileName + "' foi anexado com êxito." }));
                }
                else
                {
                    return(Json(new { sucesso = "Os arquivos foram anexados com êxito." }));
                }
            }
            catch (Exception ex)
            {
                return(Json(new { erro = ex.Message }));
            }
        }
Пример #8
0
        private void btDeletarTodos_Click(object sender, EventArgs e)
        {
            var linhaGrid = dataGridView1.Rows;

            foreach (var item in linhaGrid)
            {
                DataGridViewRow Lista = (DataGridViewRow)item;
                var             id    = (Guid)Lista.Cells["Id"].Value;

                using (var bc = new ArquivoBusiness())
                {
                    bc.DeletarPorId(id);
                }
            }
            atualizarGridView();
        }
Пример #9
0
        /// <summary>
        /// Processa o arquivo de retorno
        /// </summary>
        private bool LerArquivoRetorno()
        {
            try
            {
                OpenFileDialog openFile = new OpenFileDialog();
                openFile.Filter           = "Arquivos de Retorno (*.ret;*.crt)|*.ret;*.crt|Todos Arquivos (*.*)|*.*";
                openFile.Title            = "Selecione um arquivo!";
                openFile.InitialDirectory = @"C:\Users\joao.goncalves\Desktop\XML";

                //se o dialogo retornar OK
                if (openFile.ShowDialog() == DialogResult.OK)
                {
                    txtMsg.Text = openFile.FileName;

                    //verifica se o arquivo existe
                    if (openFile.CheckFileExists == true)
                    {
                        try
                        {
                            using (var bussBanco = new BancoBusiness())
                            {
                                var cbItem = cbBancos.SelectedValue;
                                var banco  = bussBanco.ObterPorID(cbItem);

                                //lê o arquivo de retorno
                                using (var bussArquivo = new ArquivoBusiness())
                                {
                                    var tipo = bussArquivo.verificaTipoCNAB(openFile.FileName);
                                    return(bussArquivo.lerArquivoRetorno(banco, openFile.OpenFile(), tipo));
                                }
                            }
                        }
                        catch (Exception)
                        {
                            throw;
                        }
                    }
                }
                return(false);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Пример #10
0
        public ActionResult Upload(Arquivo arquivo, string Registro)
        {
            try
            {
                HttpPostedFileBase arquivoPostado = null;
                foreach (string fileInputName in Request.Files)
                {
                    arquivoPostado = Request.Files[fileInputName];
                    if (arquivoPostado != null && arquivoPostado.ContentLength > 0)
                    {
                        //if (ArquivoBusiness.Consulta.Where(a => string.IsNullOrEmpty(a.UsuarioExclusao)).Count() > 0)
                        //{
                        //    throw new Exception("Já existe um arquivo com este nome anexado ao incidente.");
                        //}
                        //else
                        //{
                        var target = new MemoryStream();
                        arquivoPostado.InputStream.CopyTo(target);
                        arquivo.NumRegistro     = Registro;
                        arquivo.Conteudo        = target.ToArray();
                        arquivo.UsuarioInclusao = CustomAuthorizationProvider.UsuarioAutenticado.Login;
                        arquivo.DataInclusao    = DateTime.Now;
                        arquivo.Extensao        = Path.GetExtension(arquivoPostado.FileName);
                        arquivo.NomeLocal       = arquivoPostado.FileName;
                        //arquivo.NomeLocal = arquivo.NomeLocal;

                        ArquivoBusiness.Inserir(arquivo);
                        //}
                    }
                }

                if (Request.Files.Count == 1)
                {
                    return(Json(new { sucesso = "O arquivo '" + arquivoPostado.FileName + "' foi anexado com êxito." }));
                }
                else
                {
                    return(Json(new { sucesso = "Os arquivos foram anexados com êxito." }));
                }
            }
            catch (Exception ex)
            {
                return(Json(new { erro = ex.Message }));
            }
        }
Пример #11
0
        public ActionResult Cadastrar(Arquivo pArquivo)
        {
            //ViewBag.RegistroID = "7a8b9625-a7e0-44b9-92e1-762d9cc53369";

            if (ModelState.IsValid)
            {
                try
                {
                    //pArquivo.IDRegistro = ViewBag.RegistroID;

                    ArquivoBusiness.Inserir(pArquivo);

                    TempData["MensagemSucesso"] = "O Arquivo '" + pArquivo.NomeLocal + "' foi cadastrada com sucesso.";

                    return(Json(new { resultado = new RetornoJSON()
                                      {
                                          URL = Url.Action("Novo", "Arquivo")
                                      } }));
                }
                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
                                          } }));
                    }
                }
            }
            else
            {
                return(Json(new { resultado = TratarRetornoValidacaoToJSON() }));
            }
        }
Пример #12
0
        public ActionResult Cadastrar(Arquivo pArquivo)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    ArquivoBusiness.Inserir(pArquivo);

                    TempData["MensagemSucesso"] = "O Arquivo '" + pArquivo.NomeLocal + "' foi cadastrada com sucesso.";

                    return(Json(new { resultado = new RetornoJSON()
                                      {
                                          URL = Url.Action("Novo", "Arquivo")
                                      } }));
                }
                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
                                          } }));
                    }
                }
            }
            else
            {
                return(Json(new { resultado = TratarRetornoValidacaoToJSON() }));
            }
        }
Пример #13
0
        private void calcularQuantidadeTotalPorEmpresa()
        {
            listBoxMsg.Items.Clear();
            using (var todos = new ArquivoBusiness())
            {
                var arquivos = (List <Arquivo>)todos.ObterTodos();
                var log      = new List <ContadorPorEmpresa>();
                var rdc      = new List <ContadorPorEmpresa>();
                var drj      = new List <ContadorPorEmpresa>();

                List <ContadorPorEmpresa> contarPorQuantidade(Arquivo arquivo)
                {
                    var ListaContadorEmpresa = new List <ContadorPorEmpresa>();
                    //Separa as ocorrencias e mostra a quantidade de cada
                    var tipos_ocorrencia = from b in arquivo.OcorrenciasCobranca
                                           group b by b.CodigoOcorrencia into grupo
                                           select new { id = grupo.Key, qtde = grupo.Count() };

                    foreach (var item in tipos_ocorrencia)
                    {
                        var contadorEmpresa = new ContadorPorEmpresa();
                        contadorEmpresa.TipoOcorrencia = item.id;
                        contadorEmpresa.Quantidade     = item.qtde;

                        var valores = arquivo.OcorrenciasCobranca
                                      .Where(x => x.CodigoOcorrencia == item.id)
                                      .Select(g => new
                        {
                            Valor = g.ValorTitulo,
                            Pago  = g.ValorPago
                        });
                        contadorEmpresa.ValorTitulo = valores.Sum(x => x.Valor);
                        contadorEmpresa.ValorPago   = valores.Sum(x => x.Pago);
                        ListaContadorEmpresa.Add(contadorEmpresa);
                    }
                    return(ListaContadorEmpresa);

                    //Separa as ocorrencias e mostra a quantidade e valorpago de cada
                    //var contador = arquivo.OcorrenciasCobranca
                    //   .GroupBy(y => y.CodigoOcorrencia)
                    //   .Select(grop => new
                    //   {
                    //       CodigoOcorrencia = grop.Key,
                    //       Quantidade = grop.Count(),
                    //       ValorPago = grop.Sum(valor => valor.ValorPago)
                    //   });


                    //var resultados = new List<ContadorPorEmpresa>();
                    //foreach (var item in contador)
                    //{
                    //    var result = new ContadorPorEmpresa();
                    //    result.TipoOcorrencia = item.CodigoOcorrencia;
                    //    result.Quantidade = item.Quantidade;
                    //    result.ValorPago = item.ValorPago;
                    //    resultados.Add(result);
                    //}
                    //return resultados;
                }

                foreach (var item in arquivos)
                {
                    if (item.Nome.Trim().ToUpper().Contains("LOG"))
                    {
                        var contar = contarPorQuantidade(item);
                        foreach (var count in contar)
                        {
                            log.Add(count);
                        }
                    }
                    else if (item.Nome.Trim().ToUpper().Contains("RDC"))
                    {
                        var contar = contarPorQuantidade(item);
                        foreach (var count in contar)
                        {
                            rdc.Add(count);
                        }
                    }
                    else if (item.Nome.Trim().ToUpper().Contains("DRJ"))
                    {
                        var contar = contarPorQuantidade(item);
                        foreach (var count in contar)
                        {
                            drj.Add(count);
                        }
                    }
                }

                resultado(log, "LOG");
                resultado(rdc, "RDC");
                resultado(drj, "DRJ");

                void resultado(List <ContadorPorEmpresa> empresa, string nomeEmpresa)
                {
                    var tipos_ocorrencia = from b in empresa
                                           group b by b.TipoOcorrencia into grupo
                                           select new { id = grupo.Key, qtde = grupo.Count() };

                    var result = empresa
                                 .GroupBy(b => b.TipoOcorrencia)
                                 .Select(group => new
                    {
                        id          = group.Key,
                        qtda        = group.Sum(x => x.Quantidade),
                        valorTitulo = group.Sum(x => x.ValorTitulo),
                        valorPago   = group.Sum(x => x.ValorPago)
                    });


                    //var result = empresa
                    //    .GroupBy(y => y.TipoOcorrencia)
                    //   .Select(grop => new
                    //   {
                    //       CodigoOcorrencia = grop.Key,
                    //       Quantidade = grop.Count(),
                    //       ValorPago = grop.Sum(valor => valor.ValorPago)
                    //   });

                    listBoxMsg.Items.Add(string.Format($"Empresa {nomeEmpresa}"));

                    foreach (var itens in result)
                    {
                        listBoxMsg.Items.Add(string.Format($"A quantidade de registros do tipo {itens.id} é de: {itens.qtda}, valor do Titulo é de: {itens.valorTitulo} e o Valor Pago é de: {itens.valorPago}"));
                    }
                    listBoxMsg.Items.Add(string.Empty);
                }
            }
        }
Пример #14
0
        public ActionResult ExcluirDocEmpregadoWorkflow(string ukArquivo, string UKEmpregado, string UKLocacao, string UKObjeto)
        {
            try
            {
                //Apenas exclusão lógica
                if (string.IsNullOrEmpty(ukArquivo))
                {
                    throw new Exception("A identificação do arquivo não foi localizada. Por favor, acione o administrador.");
                }

                Guid uk    = Guid.Parse(ukArquivo);
                Guid ukLoc = Guid.Parse(UKLocacao);
                Guid ukObj = Guid.Parse(UKObjeto);

                Arquivo arquivoPersistido = ArquivoBusiness.Consulta.FirstOrDefault(a => string.IsNullOrEmpty(a.UsuarioExclusao) && a.UniqueKey.Equals(uk));
                if (arquivoPersistido == null)
                {
                    throw new Exception("As informações para exclusão do arquivo não são válidas.");
                }

                REL_ArquivoEmpregado oArquivoEmp = Rel_ArquivoEmpregadoBusiness.Consulta.FirstOrDefault(a => string.IsNullOrEmpty(a.UsuarioExclusao) && a.UKObjetoArquivo.Equals(uk));

                if (oArquivoEmp == null)
                {
                    throw new Exception("As informações para exclusão do arquivo não são válidas.");
                }

                REL_DocumentosAlocados oDocalocado = REL_DocumentosAlocadosoBusiness.Consulta.FirstOrDefault(a => string.IsNullOrEmpty(a.UsuarioExclusao) && a.UKAlocacao.Equals(ukLoc) && a.UKDocumento.Equals(ukObj));

                if (oArquivoEmp == null)
                {
                    throw new Exception("As informações para exclusão do arquivo não são válidas.");
                }


                arquivoPersistido.UsuarioInclusao = CustomAuthorizationProvider.UsuarioAutenticado.Login;
                //arquivoPersistido.DataInclusao = DateTime.Now;
                arquivoPersistido.status = Convert.ToString(4);

                ArquivoBusiness.Alterar(arquivoPersistido);

                oArquivoEmp.UsuarioInclusao = CustomAuthorizationProvider.UsuarioAutenticado.Login;
                //oArquivoEmp.DataExclusao = DateTime.Now;
                oArquivoEmp.status = Convert.ToString(4);

                Rel_ArquivoEmpregadoBusiness.Alterar(oArquivoEmp);

                oDocalocado.UsuarioInclusao = CustomAuthorizationProvider.UsuarioAutenticado.Login;
                //oArquivoEmp.DataExclusao = DateTime.Now;
                oDocalocado.Posicao = 1;

                REL_DocumentosAlocadosoBusiness.Alterar(oDocalocado);

                return(Json(new { resultado = new RetornoJSON()
                                  {
                                      URL = Url.Action("Index", "Ged", new { id = UKEmpregado.ToString() })
                                  } }));
            }
            catch (Exception ex)
            {
                return(Json(new { erro = ex.Message }));
            }
        }
Пример #15
0
        public ActionResult ConfirmaAnalise(string UKAlocacao, string UKREL_DocAloc, string Coment, string status, string UKobjetoArquivo)
        {
            Guid Aloc = Guid.Parse(UKAlocacao);
            Guid Rel  = Guid.Parse(UKREL_DocAloc);
            //uniquekey do arquivo
            Guid RelArq = Guid.Parse(UKobjetoArquivo);



            DataTable oSql = retornaAdm(UKAlocacao);

            DataTable oSql1 = retornaLoc(UKAlocacao);

            DataTable result = null;

            if (oSql != null)
            {
                result = oSql;
            }

            if (oSql1 != null)
            {
                result = oSql1;
            }


            string ukEmp = "";

            if (result.Rows.Count > 0)
            {
                foreach (DataRow row in result.Rows)
                {
                    if (ukEmp == "")
                    {
                        ukEmp = row["ukemp"].ToString();
                    }
                }
            }

            Guid ukempreg = Guid.Parse(ukEmp);

            if (ModelState.IsValid)
            {
                try
                {
                    REL_DocumentosAlocados oRelDoc = REL_DocumentosAlocadosBusiness.Consulta.FirstOrDefault(a => string.IsNullOrEmpty(a.UsuarioExclusao) && a.UniqueKey.Equals(Rel));

                    Rel_DocAdmissao oRelDocAd = Rel_DocAdmissaoBusiness.Consulta.FirstOrDefault(a => string.IsNullOrEmpty(a.UsuarioExclusao) && a.UniqueKey.Equals(Rel));


                    REL_ArquivoEmpregado oArqemp = REL_ArquivoEmpregadoBusiness.Consulta.FirstOrDefault(a => string.IsNullOrEmpty(a.UsuarioExclusao) && a.UKObjetoArquivo.Equals(RelArq));

                    var Cstatus = Convert.ToInt32(status);


                    var oArquivos = ArquivoBusiness.Consulta.FirstOrDefault(a => string.IsNullOrEmpty(a.UsuarioExclusao) && a.UniqueKey.Equals(RelArq));



                    //oRelDoc.Posicao = Cstatus;
                    //REL_DocumentosAlocadosBusiness.Alterar(oRelDoc);

                    //oArqemp.status = status;
                    //REL_ArquivoEmpregadoBusiness.Alterar(oArqemp);

                    //oArquivos.status = status;
                    //ArquivoBusiness.Alterar(oArquivos);

                    string sttatus = "";


                    if (oRelDoc != null)
                    {
                        var oStatus = ArquivoBusiness.Consulta.Where(a => string.IsNullOrEmpty(a.UsuarioExclusao) && a.UKObjeto.Equals(oRelDoc.UKDocumento) && a.NumRegistro.Equals(UKAlocacao)).ToList();



                        var contador = oStatus.Count();

                        var contador1 = 0;
                        var contador2 = 0;
                        var contador3 = 0;

                        if (oStatus != null)
                        {
                            foreach (var item in oStatus)
                            {
                                if (item.status == Convert.ToString(3))
                                {
                                    contador3 = contador3 + 1;

                                    //sttatus = "3";
                                }
                                if (item.status == Convert.ToString(1))
                                {
                                    contador1 = contador1 + 1;

                                    //sttatus = "1";
                                }


                                if (item.status == Convert.ToString(2))
                                {
                                    contador2 = contador2 + 1;

                                    //sttatus = "2";
                                }
                            }
                        }
                        switch (status)
                        {
                        case "3":

                            if (oArquivos.UniqueKey == RelArq && status == "3" && contador3 >= 1)
                            {
                                throw new Exception("Você precisa corrigir ou deletar o arquivo reprovado!");
                            }
                            else
                            {
                                oRelDoc.Posicao = Cstatus;
                                REL_DocumentosAlocadosBusiness.Alterar(oRelDoc);

                                oArqemp.status = status;
                                REL_ArquivoEmpregadoBusiness.Alterar(oArqemp);

                                oArquivos.status = status;
                                ArquivoBusiness.Alterar(oArquivos);
                            }


                            break;

                        case "1":

                            if (oArquivos.UniqueKey == RelArq && contador1 > 1 && contador3 == 0)
                            {
                                //oRelDoc.Posicao = Cstatus;
                                //REL_DocumentosAlocadosBusiness.Alterar(oRelDoc);

                                oArqemp.status = status;
                                REL_ArquivoEmpregadoBusiness.Alterar(oArqemp);

                                oArquivos.status = status;
                                ArquivoBusiness.Alterar(oArquivos);
                            }
                            else
                            if (oArquivos.UniqueKey == RelArq && contador1 > 1 && contador3 >= 1)
                            {
                                throw new Exception("Você precisa corrigir ou deletar o arquivo reprovado!");
                            }
                            else
                            if (oArquivos.UniqueKey == RelArq && contador1 == 0 && contador3 >= 1)

                            {
                                throw new Exception("Você precisa corrigir ou deletar o arquivo reprovado!");
                            }
                            else
                            {
                                oRelDoc.Posicao = Cstatus;
                                REL_DocumentosAlocadosBusiness.Alterar(oRelDoc);

                                oArqemp.status = status;
                                REL_ArquivoEmpregadoBusiness.Alterar(oArqemp);

                                oArquivos.status = status;
                                ArquivoBusiness.Alterar(oArquivos);
                            }

                            break;

                        case "2":

                            if (oArquivos.UniqueKey == RelArq && status == "2" && contador1 < contador - 1 && contador1 >= 2)
                            {
                                oRelDoc.Posicao = Cstatus;
                                REL_DocumentosAlocadosBusiness.Alterar(oRelDoc);

                                oArqemp.status = status;
                                REL_ArquivoEmpregadoBusiness.Alterar(oArqemp);

                                oArquivos.status = status;
                                ArquivoBusiness.Alterar(oArquivos);
                            }
                            else


                            if (oArquivos.UniqueKey == RelArq && status == "2" && contador1 == 1)
                            {
                                oRelDoc.Posicao = Cstatus;
                                REL_DocumentosAlocadosBusiness.Alterar(oRelDoc);

                                oArqemp.status = status;
                                REL_ArquivoEmpregadoBusiness.Alterar(oArqemp);

                                oArquivos.status = status;
                                ArquivoBusiness.Alterar(oArquivos);
                            }



                            break;
                        }
                    }

                    if (oRelDocAd != null)
                    {
                        var oStatus = ArquivoBusiness.Consulta.Where(a => string.IsNullOrEmpty(a.UsuarioExclusao) && a.UKObjeto.Equals(oRelDocAd.UniqueKey)).ToList();



                        var contador = oStatus.Count();

                        var contador1 = 0;
                        var contador2 = 0;
                        var contador3 = 0;

                        if (oStatus != null)
                        {
                            foreach (var item in oStatus)
                            {
                                if (item.status == Convert.ToString(3))
                                {
                                    contador3 = contador3 + 1;

                                    //sttatus = "3";
                                }
                                if (item.status == Convert.ToString(1))
                                {
                                    contador1 = contador1 + 1;

                                    //sttatus = "1";
                                }


                                if (item.status == Convert.ToString(2))
                                {
                                    contador2 = contador2 + 1;

                                    //sttatus = "2";
                                }
                            }
                        }
                        switch (status)
                        {
                        case "3":

                            if (oArquivos.UniqueKey == RelArq && status == "3" && contador3 >= 1)
                            {
                                throw new Exception("Você precisa corrigir ou deletar o arquivo reprovado!");
                            }
                            else
                            {
                                oRelDocAd.Posicao = Cstatus;
                                Rel_DocAdmissaoBusiness.Alterar(oRelDocAd);

                                oArqemp.status = status;
                                REL_ArquivoEmpregadoBusiness.Alterar(oArqemp);

                                oArquivos.status = status;
                                ArquivoBusiness.Alterar(oArquivos);
                            }


                            break;

                        case "1":

                            if (oArquivos.UniqueKey == RelArq && contador1 > 1 && contador3 == 0)
                            {
                                //oRelDoc.Posicao = Cstatus;
                                //REL_DocumentosAlocadosBusiness.Alterar(oRelDoc);

                                oArqemp.status = status;
                                REL_ArquivoEmpregadoBusiness.Alterar(oArqemp);

                                oArquivos.status = status;
                                ArquivoBusiness.Alterar(oArquivos);
                            }
                            else
                            if (oArquivos.UniqueKey == RelArq && contador1 > 1 && contador3 >= 1)
                            {
                                throw new Exception("Você precisa corrigir ou deletar o arquivo reprovado!");
                            }
                            else
                            if (oArquivos.UniqueKey == RelArq && contador1 == 0 && contador3 >= 1)

                            {
                                throw new Exception("Você precisa corrigir ou deletar o arquivo reprovado!");
                            }
                            else
                            {
                                oRelDocAd.Posicao = Cstatus;
                                Rel_DocAdmissaoBusiness.Alterar(oRelDocAd);

                                oArqemp.status = status;
                                REL_ArquivoEmpregadoBusiness.Alterar(oArqemp);

                                oArquivos.status = status;
                                ArquivoBusiness.Alterar(oArquivos);
                            }

                            break;

                        case "2":

                            if (oArquivos.UniqueKey == RelArq && status == "2" && contador1 < contador - 1 && contador1 >= 2)
                            {
                                //oRelDoc.Posicao = Cstatus;
                                //REL_DocumentosAlocadosBusiness.Alterar(oRelDoc);

                                oArqemp.status = status;
                                REL_ArquivoEmpregadoBusiness.Alterar(oArqemp);

                                oArquivos.status = status;
                                ArquivoBusiness.Alterar(oArquivos);
                            }
                            else


                            if (oArquivos.UniqueKey == RelArq && status == "2" && contador1 == 1)
                            {
                                oRelDocAd.Posicao = Cstatus;
                                Rel_DocAdmissaoBusiness.Alterar(oRelDocAd);

                                oArqemp.status = status;
                                REL_ArquivoEmpregadoBusiness.Alterar(oArqemp);

                                oArquivos.status = status;
                                ArquivoBusiness.Alterar(oArquivos);
                            }



                            break;
                        }
                    }


                    Workflow wor = new Workflow();

                    wor.UKAlocacao      = Aloc;
                    wor.UKREL_DocAloc   = Rel;
                    wor.Comentarios     = Coment;
                    wor.Status          = Convert.ToInt32(status);
                    wor.UsuarioInclusao = CustomAuthorizationProvider.UsuarioAutenticado.Login;

                    WorkflowBusiness.Inserir(wor);

                    Extensions.GravaCookie("MensagemSucesso", "Solicitação enviada com sucesso", 10);



                    return(Json(new { resultado = new RetornoJSON()
                                      {
                                          URL = Url.Action("Index", "Ged", new { id = ukEmp.ToString() })
                                      } }));
                }
                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
                                          } }));
                    }
                }
            }
            else
            {
                return(Json(new { resultado = TratarRetornoValidacaoToJSON() }));
            }
        }