Exemple #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() }));
            }
        }
Exemple #2
0
        public ActionResult Cadastrar(Admissao entidade)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    Empregado oEmp = EmpregadoBusiness.Consulta.FirstOrDefault(a => string.IsNullOrEmpty(a.UsuarioExclusao) && a.UniqueKey.Equals(entidade.UKEmpregado));
                    if (oEmp == null)
                    {
                        throw new Exception("Não foi possível encontrar o empregado relacionado a admissão.");
                    }

                    entidade.Status          = GISModel.Enums.Situacao.Ativo;
                    entidade.UsuarioInclusao = CustomAuthorizationProvider.UsuarioAutenticado.Login;
                    AdmissaoBusiness.Inserir(entidade);

                    oEmp.UsuarioExclusao = CustomAuthorizationProvider.UsuarioAutenticado.Login;
                    EmpregadoBusiness.Terminar(oEmp);

                    EmpregadoBusiness.Inserir(new Empregado()
                    {
                        CPF             = oEmp.CPF,
                        Nome            = oEmp.Nome,
                        DataNascimento  = oEmp.DataNascimento,
                        Email           = oEmp.Email,
                        UsuarioInclusao = CustomAuthorizationProvider.UsuarioAutenticado.Login,
                        UniqueKey       = oEmp.UniqueKey,
                        Status          = "Atualmente admitido"
                    });

                    var adm = @"select top 1  UniqueKey, DataInclusao  from tbAdmissao LAST_INSET_ID ORDER BY DataInclusao DESC  ";

                    List <Admissao> lista1 = new List <Admissao>();

                    DataTable result1 = DocumentosPessoalBusiness.GetDataTable(adm);

                    if (result1.Rows.Count > 0)
                    {
                        Admissao UkAdm      = null;
                        Guid     ukadmissao = Guid.Empty;

                        foreach (DataRow row in result1.Rows)
                        {
                            if (UkAdm == null)
                            {
                                UkAdm = new Admissao()
                                {
                                    UniqueKey = Guid.Parse(row["UniqueKey"].ToString())
                                };
                            }
                        }

                        if (UkAdm != null)
                        {
                            lista1.Add(UkAdm);
                        }

                        foreach (var item in lista1)
                        {
                            if (item != null)
                            {
                                ukadmissao = item.UniqueKey;
                            }
                        }


                        //ukad = Uniquekey da ultima admissao


                        List <Admissao> lista = new List <Admissao>();

                        // aqui faço uma pesquisa de documentos relacionados a admissao

                        var sql = @"select UniqueKey as UKad, NomeDocumento as nome from tbDocumentosPessoal where Tipo = 1";

                        DataTable result = DocumentosPessoalBusiness.GetDataTable(sql);

                        //abaixo monto uma lista de objetos com a Uniquekey da alocação e a relação de documentos relacionados a atividade alocada

                        if (result.Rows.Count > 0)
                        {
                            Admissao          obj  = null;
                            DocumentosPessoal oDoc = null;

                            foreach (DataRow row in result.Rows)
                            {
                                if (obj == null)
                                {
                                    obj = new Admissao()
                                    {
                                        UniqueKey         = ukadmissao,
                                        DocumentosPessoal = new List <DocumentosPessoal>()
                                    };

                                    if (!string.IsNullOrEmpty(row["UKad"].ToString()))
                                    {
                                        oDoc = new DocumentosPessoal()
                                        {
                                            UniqueKey     = ukadmissao,
                                            NomeDocumento = row["nome"].ToString(),
                                        };


                                        obj.DocumentosPessoal.Add(oDoc);
                                    }
                                }
                                else if (obj.UniqueKey.Equals(Guid.Parse(row["UKad"].ToString())))
                                {
                                    if (!string.IsNullOrEmpty(row["UKad"].ToString()))
                                    {
                                        if (oDoc == null)
                                        {
                                            oDoc = new DocumentosPessoal()
                                            {
                                                UniqueKey     = ukadmissao,
                                                NomeDocumento = row["nome"].ToString(),
                                            };

                                            obj.DocumentosPessoal.Add(oDoc);
                                        }


                                        else
                                        {
                                            oDoc = new DocumentosPessoal()
                                            {
                                                UniqueKey     = ukadmissao,
                                                NomeDocumento = row["nome"].ToString(),
                                            };

                                            obj.DocumentosPessoal.Add(oDoc);
                                        }
                                    }
                                }
                                else
                                {
                                    lista.Add(obj);

                                    obj = new Admissao()
                                    {
                                        UniqueKey         = ukadmissao,
                                        DocumentosPessoal = new List <DocumentosPessoal>()
                                    };

                                    if (!string.IsNullOrEmpty(row["UKad"].ToString()))
                                    {
                                        oDoc = new DocumentosPessoal()
                                        {
                                            UniqueKey     = ukadmissao,
                                            NomeDocumento = row["nome"].ToString(),
                                        };


                                        obj.DocumentosPessoal.Add(oDoc);
                                    }
                                }
                            }

                            if (obj != null)
                            {
                                lista.Add(obj);
                            }


                            if (lista == null)
                            {
                                throw new Exception("Nenhum Documento para vincular.");
                            }

                            string documento = string.Empty;

                            foreach (var item in lista)
                            {
                                if (item != null)
                                {
                                    foreach (var item2 in item.DocumentosPessoal)
                                    {
                                        documento += item2.NomeDocumento + ",";
                                    }
                                }
                            }

                            // se vier uma array entra aqui neste if

                            if (documento.Contains(","))
                            {
                                documento = documento.Remove(documento.Length - 1);

                                foreach (string ativ in documento.Split(','))
                                {
                                    if (!string.IsNullOrEmpty(ativ.Trim()))
                                    {
                                        DocumentosPessoal pTemp = DocumentosPessoalBusiness.Consulta.FirstOrDefault(a => string.IsNullOrEmpty(a.UsuarioExclusao) && a.NomeDocumento.Equals(ativ.Trim()));
                                        if (pTemp != null)
                                        {
                                            if (Rel_DocAdmissaoBusiness.Consulta.Where(a => string.IsNullOrEmpty(a.UsuarioExclusao) && a.UKDocumento.Equals(pTemp.UniqueKey) && a.UKAdmissoa.Equals(ukadmissao)).Count() == 0)
                                            {
                                                Rel_DocAdmissaoBusiness.Inserir(new Rel_DocAdmissao()
                                                {
                                                    Posicao         = 0,
                                                    UKAdmissoa      = ukadmissao,
                                                    UKDocumento     = pTemp.UniqueKey,
                                                    DataDocumento   = DateTime.MaxValue,
                                                    UsuarioInclusao = CustomAuthorizationProvider.UsuarioAutenticado.Login
                                                });
                                            }
                                            //else
                                            //{
                                            //    return Json(new { resultado = new RetornoJSON() { Erro = "Este documento já está cadastrado para esta alocação!." } });
                                            //}
                                        }
                                    }
                                }
                            }

                            // se vier somente um documento entre aqui
                            else
                            {
                                DocumentosPessoal pTemp = DocumentosPessoalBusiness.Consulta.FirstOrDefault(a => string.IsNullOrEmpty(a.UsuarioExclusao) && a.NomeDocumento.Equals(documento.Trim()));
                                if (pTemp != null)
                                {
                                    if (Rel_DocAdmissaoBusiness.Consulta.Where(a => string.IsNullOrEmpty(a.UsuarioExclusao) && a.UKDocumento.Equals(pTemp.UniqueKey) && a.UKAdmissoa.Equals(ukadmissao)).Count() == 0)
                                    {
                                        Rel_DocAdmissaoBusiness.Inserir(new Rel_DocAdmissao()
                                        {
                                            UKAdmissoa      = ukadmissao,
                                            UKDocumento     = pTemp.UniqueKey,
                                            UsuarioInclusao = CustomAuthorizationProvider.UsuarioAutenticado.Login
                                        });
                                    }
                                }
                            }
                        }
                    }



                    Extensions.GravaCookie("MensagemSucesso", "Admissão realizada com sucesso.", 10);

                    return(Json(new { resultado = new RetornoJSON()
                                      {
                                          URL = Url.Action("Perfil", "Empregado", new { id = entidade.UKEmpregado.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() }));
            }
        }