示例#1
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() }));
            }
        }
示例#2
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 }));
            }
        }
示例#3
0
        public ActionResult SaveUpload(string ukEmpregado, string ukAlocado, string ukFuncao, string ukdocumento)
        {
            try
            {
                string nomeArquivo     = string.Empty;
                string arquivoEnviados = string.Empty;
                Guid   UKEmpregado     = Guid.Parse(ukEmpregado);
                Guid   UKDocumento     = Guid.Parse(ukdocumento);
                Guid   ukAloc          = Guid.Parse(ukAlocado);

                HttpPostedFileBase arquivoPostado = null;
                foreach (string arquivo in Request.Files)
                {
                    arquivoPostado = Request.Files[arquivo];
                    if (arquivoPostado != null && arquivoPostado.ContentLength > 0)
                    {
                        var target = new MemoryStream();
                        arquivoPostado.InputStream.CopyTo(target);

                        nomeArquivo = Request.Files[arquivo].FileName;
                        if (ArquivosBusiness.Consulta.Where(a => string.IsNullOrEmpty(a.UsuarioExclusao) &&
                                                            a.UniqueKey.Equals(UKEmpregado) && a.NomeLocal.ToUpper().Equals(arquivoPostado.FileName.ToUpper())).Count() > 0)
                        {
                            throw new Exception("Já existe um arquivo com este nome.");
                        }
                        else
                        {
                            var _arquivo = new Arquivo()
                            {
                                UKObjeto        = UKDocumento,
                                Conteudo        = target.ToArray(),
                                UsuarioInclusao = CustomAuthorizationProvider.UsuarioAutenticado.Login,
                                DataInclusao    = DateTime.Now,
                                DataExclusao    = new DateTime(9999, 12, 31, 23, 59, 59, 997),
                                Extensao        = Path.GetExtension(nomeArquivo),
                                NomeLocal       = nomeArquivo,
                                NumRegistro     = ukAlocado
                            };

                            this.ArquivosBusiness.Inserir(_arquivo);

                            var _RELarquivoEmpregado = new REL_ArquivoEmpregado()
                            {
                                UKEmpregado     = UKEmpregado,
                                UKObjetoArquivo = _arquivo.UniqueKey,
                                UKLocacao       = Guid.Parse(ukAlocado),
                                //se função vier vazio é pq o documento é para admissao então UKFuncao vai receber a UKObjeto de tbArquivo
                                UKFuncao = ukFuncao != null?Guid.Parse(ukFuncao) : _arquivo.UKObjeto,
                                               UsuarioInclusao = CustomAuthorizationProvider.UsuarioAutenticado.Login,
                            };

                            this.REL_ArquivoEmpregadoBusiness.Inserir(_RELarquivoEmpregado);
                        }
                    }
                }
                ;

                if (Request.Files.Count == 1)
                {
                    Extensions.GravaCookie("MensagemSucesso", "O arquivo '" + arquivoPostado.FileName + "' foi anexado com êxito.", 1);
                }
                else
                {
                    Extensions.GravaCookie("MensagemSucesso", "Os arquivos foram anexados com êxito.", 1);
                }
                Response.StatusCode = 200;
                return(Json(new { resultado = new RetornoJSON()
                                  {
                                      URL = Url.Action("Index", "Ged", new { id = UKEmpregado.ToString() })
                                  } }));

                //return RedirectToAction(nameof(Upload), new { id = UKEmpregado.ToString() });
                //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)
            {
                Response.StatusCode = 500;
                if (ex.GetBaseException() == null)
                {
                    Extensions.GravaCookie("MensagemErro", ex.Message, 1);
                    return(Json(new { resultado = new RetornoJSON()
                                      {
                                          Erro = ex.Message
                                      } }));
                }
                else
                {
                    Extensions.GravaCookie("MensagemErro", ex.GetBaseException().Message, 1);
                    return(Json(new { resultado = new RetornoJSON()
                                      {
                                          Erro = ex.GetBaseException().Message
                                      } }));
                }
            }
        }