예제 #1
0
        //setar no constructor se tiver  algum filtro.
        public static string  Carrega()
        {
            //primeira linha é o cabeçalho
            StringBuilder objStrSaida = new StringBuilder();

            objStrSaida.AppendLine("COD_CARGO;COD_MACRO_CARGO;DSC_CARGO"); //CABECALHO


            //Cria o data context
            gsatOrganogramaDataContext objDs = new gsatOrganogramaDataContext();


            //linhas nativas
            foreach (Negocio.ORG_CARGO o in objDs.ORG_CARGO.Where(f => f.DSC_TIPO_FUNC != "14"))
            {
                objStrSaida.AppendLine(string.Format("{0};{1};{2}", o.COD_CARGO, 1, o.DSC_CARGO));
            }

            //linhas avulsas
            foreach (Negocio.ORG_FUNCIONARIO_EXPORT_GD_MDL o in objDs.ORG_FUNCIONARIO_EXPORT_GD_MDL.Where(f => f.CARGO_COD_CARGO != null && f.CARGO_DSC_CARGO != null))
            {
                objStrSaida.AppendLine(string.Format("{0};{1};{2}", o.CARGO_COD_CARGO, 1, o.CARGO_DSC_CARGO));
            }



            return(objStrSaida.ToString());
        }
예제 #2
0
        //setar no constructor se tiver  algum filtro.
        public static string  Carrega()
        {
            //primeira linha é o cabeçalho
            StringBuilder objStrSaida = new StringBuilder();

            objStrSaida.AppendLine("COD_EMPRESA;NOM_EMPRESA"); //CABECALHO


            //Cria o data context
            gsatOrganogramaDataContext objDs = new gsatOrganogramaDataContext();


            //linhas nativas
            foreach (Negocio.ORG_EMPRESA o in objDs.ORG_EMPRESA)
            {
                objStrSaida.AppendLine(string.Format("{0};{1}", o.COD_EMPRESA, o.DESCRICAO));
            }

            //linhas avulsas
            foreach (Negocio.ORG_FUNCIONARIO_EXPORT_GD_MDL o in objDs.ORG_FUNCIONARIO_EXPORT_GD_MDL.Where(f => f.EMPRESA_COD_EMPRESA != null && f.EMPRESA_NOM_EMPRESA != null))
            {
                objStrSaida.AppendLine(string.Format("{0};{1}", o.EMPRESA_COD_EMPRESA, o.EMPRESA_NOM_EMPRESA));
            }



            return(objStrSaida.ToString());
        }
        //setar no constructor se tiver  algum filtro.
        public static string  Carrega()
        {
            //primeira linha é o cabeçalho
            StringBuilder objStrSaida = new StringBuilder();

            objStrSaida.AppendLine("COD_LOCAL_TRABALHO;NOM_LOCAL_TRABALHO"); //CABECALHO


            //Cria o data context
            gsatOrganogramaDataContext objDs = new gsatOrganogramaDataContext();


            //linhas nativas
            foreach (Negocio.ORG_LOCAL_TRABALHO o in objDs.ORG_LOCAL_TRABALHO)
            {
                objStrSaida.AppendLine(string.Format("{0};{1}", o.COD_LOCAL_TRABALHO, o.NOM_LOCAL_TRABALHO));
            }

            //linhas avulsas
            foreach (Negocio.ORG_FUNCIONARIO_EXPORT_GD_MDL o in objDs.ORG_FUNCIONARIO_EXPORT_GD_MDL.Where(f => f.LOC_TRAB_COD_LOCAL != null && f.LOC_TRAB_NOM_LOCAL_TRABALHO != null))
            {
                objStrSaida.AppendLine(string.Format("{0};{1}", o.LOC_TRAB_COD_LOCAL, o.LOC_TRAB_NOM_LOCAL_TRABALHO));
            }


            return(objStrSaida.ToString());
        }
예제 #4
0
        /// <summary>
        /// Limpa todas as subseções que não estejam contidas na lista de seções
        /// </summary>
        private void LimpaSecoes()
        {
            using (gsatOrganogramaDataContext objDs = new gsatOrganogramaDataContext())
            {
                StringBuilder strSecoes = new StringBuilder();

                strSecoes.AppendLine("DELETE FROM ORG_FUNCIONARIO_SUBSECAO where COD_SECAO in (");
                strSecoes.AppendLine("SELECT h.COD_SECAO FROM ORG_HIERARQUIA h ");
                strSecoes.AppendLine("LEFT OUTER JOIN ORG_SECAO s on s.cod_secao=h.cod_secao_sup ");
                strSecoes.AppendLine("where h.subsecao='1' and s.cod_Secao is null)");

                objDs.ExecuteStoreCommand(strSecoes.ToString(), null);


                StringBuilder strSecoes2 = new StringBuilder();

                strSecoes2.Append("DELETE FROM ORG_HIERARQUIA where COD_SECAO in (");
                strSecoes2.Append("SELECT h.COD_SECAO FROM ORG_HIERARQUIA h ");
                strSecoes2.Append("LEFT OUTER JOIN ORG_SECAO s on s.cod_secao=h.cod_secao_sup ");
                strSecoes2.Append("where h.subsecao='1' and s.cod_Secao is null)");


                objDs.ExecuteStoreCommand(strSecoes.ToString(), null);

                objDs.ExecuteStoreCommand("commit");
            }
        }
예제 #5
0
 public Validador()
 {
     //cria o contexto de dados
     Negocio.gsatOrganogramaDataContext objDs = new gsatOrganogramaDataContext();
     empresas = (from s in objDs.ORG_EMPRESA
                 select s).ToList <ORG_EMPRESA>();
     objDs.Dispose();
 }
예제 #6
0
        /// <summary>
        /// Executa a consulta referente a regra:
        /// 5.16.1.  O sistema deverá permitir a visualização em tela
        /// e a extração de relatórios, com as seções e subseções que não
        /// possuem seção superior e diretoria definidas, com exceção das
        /// seções que possuem o flag marcado, indicando que não possuem seção superior
        /// e diretoria.
        /// </summary>
        /// <returns>Validacao carregada</returns>
        public Validacao ConsultaSecaoSemSuperior()
        {
            //cria o contexto de dados
            Negocio.gsatOrganogramaDataContext objDs = new gsatOrganogramaDataContext();


            //carrega a validação
            var lst = (from s in objDs.ORG_LISTA_SECOES_SIMPLES
                       where (s.COD_SECAO_SUP == null || s.COD_SECAO_SUP == "") &&
                       (s.POSSUI_SUP == null || s.POSSUI_SUP == "0") &&
                       s.COD_EMPRESA.Contains(strEmpresa)
                       select s).OrderBy(f => f.COD_EMPRESA);



            if (lst.Count() <= 0)
            {
                return(null);
            }

            //cria o objeto de saída
            Validacao objValid = new Validacao();

            objValid.Id            = 1; //validacao de seções sem seção superior
            objValid.dtAtualizacao = DateTime.Now;
            //adiciona o título
            if (lst.Count() > 1)
            {
                objValid.Titulo = string.Format("Existem {0} seções/subseções sem seção superior/diretoria definida. Atualizado em: {1}", lst.Count(), DateTime.Now.ToString("dd/MM/yyyy HH:mm"));
            }
            else
            {
                objValid.Titulo = string.Format("Existe {0} seção/subseção sem seção superior/diretoria definida. Atualizado em: {1}", lst.Count(), DateTime.Now.ToString("dd/MM/yyyy HH:mm"));
            }

            foreach (var s in lst)
            {
                //adiciona os itens
                string emp = empresas.Where(f => f.COD_EMPRESA.Equals(s.COD_EMPRESA)).First().DESCRICAO;


                objValid.ListaValidacaoDetalhe.Add(
                    new ValidacaoDetalhe(objValid.Id,
                                         string.Format("{0} - {1} - {2}", emp, s.NOME_SECAO, s.COD_SECAO)
                                         ,
                                         ""
                                         ));
            }



            objValid.ListaValidacaoDetalhe = objValid.ListaValidacaoDetalhe.OrderBy(f => f.Titulo).ToList();
            return(objValid);
        }
예제 #7
0
        /// <summary>
        /// Limpa todos os funcionários e gerentes que não estão contidos na view
        /// org_funcionario
        /// </summary>
        private void LimpaFuncionarios()
        {
            //cria o contexto de dados
            using (gsatOrganogramaDataContext objDs = new gsatOrganogramaDataContext())
            {
                StringBuilder strGestores = new StringBuilder();
                strGestores.Append(" UPDATE ORG_HIERARQUIA SET GESTOR_MOD='0' , GESTOR='' ");
                strGestores.Append(" WHERE GESTOR in");
                strGestores.Append(" (Select h.GESTOR  from ORG_HIERARQUIA  h  Left outer join ORG_FUNCIONARIO fu on h.GESTOR = fu.CPF   ");
                strGestores.Append("  where h.GESTOR is not null and fu.CPF is null)  ");



                objDs.ExecuteStoreCommand(strGestores.ToString(), null);



                StringBuilder strAlocados = new StringBuilder();
                strAlocados.Append(" DELETE FROM ORG_FUNCIONARIO_SUBSECAO WHERE CPF in ");
                strAlocados.Append(" (SELECT fs.CPF FROM ORG_FUNCIONARIO_SUBSECAO fs ");
                strAlocados.Append(" Left outer join ORG_FUNCIONARIO fu on fs.CPF=fu.CPF ");
                strAlocados.Append(" where fu.CPF is null)");


                objDs.ExecuteStoreCommand(strAlocados.ToString(), null);

                objDs.ExecuteStoreCommand("commit");

                /*
                 * //apaga o funcionário da ORG_FUNCIONARIO_SUBSECAO
                 * var tes = from f in
                 *            objDs.ORG_FUNCIONARIO_SUBSECAO.Except(from f in objDs.ORG_FUNCIONARIO_SUBSECAO
                 *                                                  join fu in objDs.ORG_FUNCIONARIO on f.CPF equals fu.CPF
                 *                                                  select f)
                 *        select f;
                 *
                 * foreach (ORG_FUNCIONARIO_SUBSECAO fu in tes)
                 * {
                 *  AuditTrail.GravaLogAuditTrail("MANUTENÇÃO", string.Format("O funcionário: {0} foi excluído da seção: {1} por não estar presente na ORG_FUNCIONARIO ", fu.CPF, fu.COD_SECAO), "");
                 *  objDs.ORG_FUNCIONARIO_SUBSECAO.DeleteObject(fu);
                 *
                 * }
                 *
                 *
                 *
                 *
                 *
                 * //grava as mudanças.
                 * objDs.SaveChanges();
                 */
            }
        }
예제 #8
0
        /// <summary>
        /// Executa a validação do suposto item 4.2.2
        /// </summary>
        /// <returns></returns>
        public Validacao ConsultaInconsistenciaCadastroFuncionario()
        {
            //cria o  contexto de dados
            Negocio.gsatOrganogramaDataContext objDs = new gsatOrganogramaDataContext();


            //monta uma lista de gestores
            var funcionarios = (from fu in objDs.ORG_VALIDACAO_04
                                where fu.COD_EMPRESA.Contains(strEmpresa)
                                select new
            {
                NOME_EMPRESA = fu.EMPRESA,
                NOME = fu.NOME,
                NOME_SECAO = fu.NOME_SECAO
            }).Distinct();


            if (funcionarios.Count() <= 0)
            {
                return(null);
            }

            //cria o objeto de saída
            Validacao objValid = new Validacao();

            objValid.Id            = 4; //validacao funcionario cadastrado errado
            objValid.dtAtualizacao = DateTime.Now;
            //adiciona o título


            objValid.Titulo = string.Format("Existem {0} problema{2} no cadastro de gestores das seções/subseções {1}", funcionarios.Count(), DateTime.Now.ToString("dd/MM/yyyy HH:mm"), funcionarios.Count() > 1 ? "s":"");



            //adiciona as SEÇÕES no obj saída.
            foreach (var s in funcionarios)
            {
                //Adciona os itens de detalhe
                objValid.ListaValidacaoDetalhe.Add(
                    new ValidacaoDetalhe(objValid.Id,
                                         string.Format("{0} - Subseção: {1} - Funcionário: {2}", s.NOME_EMPRESA, s.NOME_SECAO, s.NOME),
                                         ""
                                         ));
            }



            objValid.ListaValidacaoDetalhe = objValid.ListaValidacaoDetalhe.OrderBy(f => f.Descricao).ToList();
            return(objValid);
        }
예제 #9
0
        //setar no constructor se tiver  algum filtro.
        public static string  Carrega()
        {
            //primeira linha é o cabeçalho
            StringBuilder objStrSaida = new StringBuilder();

            objStrSaida.AppendLine("COD_ORGAO;COD_ORGAO_SUPERIOR;COD_DIRETORIA;SGL_ORGAO;NOM_ORGAO;IND_ATIVO"); //CABECALHO


            //Cria o data context
            gsatOrganogramaDataContext objDs = new gsatOrganogramaDataContext();


            //linhas nativas SEÇÕES
            foreach (ORG_LISTA_SECOES_CONSOLIDADO s in objDs.ORG_LISTA_SECOES_CONSOLIDADO)
            {
                objStrSaida.AppendLine(string.Format("{0};{1};{2};{3};{4};{5}",
                                                     s.COD_SECAO,
                                                     (s.POSSUI_SUPERIOR != null && s.POSSUI_SUPERIOR.Equals("1")) ? "0" : s.COD_SECAO_SUP,
                                                     (s.POSSUI_SUPERIOR != null && s.POSSUI_SUPERIOR.Equals("1")) ? "" : s.COD_DIRETORIA,
                                                     "",
                                                     s.NOME_SECAO,
                                                     "S"));
            }


            //linhas avulsas
            foreach (ORG_FUNCIONARIO_EXPORT_GD_MDL s in objDs.ORG_FUNCIONARIO_EXPORT_GD_MDL.Where(f => f.ORGAOS_COD_ORGAO != null && f.ORGAOS_COD_DIRETORIA != null && f.ORGAOS_NOM_ORGAO != null))
            {
                objStrSaida.AppendLine(string.Format("{0};{1};{2};{3};{4};{5}",
                                                     s.ORGAOS_COD_ORGAO,
                                                     s.ORGAOS_COD_ORGAO_SUPERIOR,
                                                     s.ORGAOS_COD_DIRETORIA,
                                                     "",
                                                     s.ORGAOS_NOM_ORGAO,
                                                     "S"));
            }



            return(objStrSaida.ToString());
        }
예제 #10
0
        //setar no constructor se tiver  algum filtro.
        public static string  Carrega(DateTime DataCorte)
        {
            //primeira linha é o cabeçalho
            StringBuilder objStrSaida = new StringBuilder();

            objStrSaida.AppendLine("COD_FUNCIONARIO;NUM_MATRICULA;COD_EMPRESA;COD_ORGAO;COD_CARGO;COD_SUPERVISOR;DSC_DOMINIO;DSC_LOGON;DSC_SENHA;NOM_FUNCIONARIO;IND_SEXO;DAT_ADMISSAO;DSC_EMAIL;COD_TIPO_FUNCIONARIO;COD_TIPO_USUARIO;DAT_NASCIMENTO;COD_LOCAL_TRABALHO;COD_CPF;DSC_APELIDO;DAT_INICIO_FERIAS;DAT_FIM_FERIAS;COD_SUPERVISOR_FUNCIONAL;DSC_GRADE_SALARIAL;DAT_INICIO_CARGO;COD_IDIOMA_PREF;COD_PAIS;COD_UF"); //CABECALHO


            //Cria o data context
            gsatOrganogramaDataContext objDs = new gsatOrganogramaDataContext();



            //linhas nativas
            foreach (Negocio.ORG_FUNCIONARIO_EXPORT_GD o in objDs.ORG_FUNCIONARIO_EXPORT_GD.Where(f => f.COD_TIPO_FUNC != "14"))
            {
                DateTime dtAdmissao = DateTime.ParseExact(o.DAT_ADMISSAO, "yyyyMMdd", null);

                if (dtAdmissao <= DataCorte)
                {
                    objStrSaida.AppendLine(string.Format("{0};{1};{2};{3};{4};{5};{6};{7};{8};{9};{10};{11};{12};{13};{14};{15};{16};{17};{18};{19};{20};{21};{22};{23};{24};{25};{26}",
                                                         o.COD_FUNCIONARIO, o.NUM_MATRICULA, o.COD_EMPRESA, o.COD_ORGAO, o.COD_CARGO, o.COD_SUPERVISOR, "", o.DSC_LOGON, "", o.NOM_FUNCIONARIO, o.SEXO,
                                                         dtAdmissao.ToString("dd/MM/yyyy"), o.DSC_EMAIL, o.COD_TIPO_FUNC, "", o.DAT_NASCIMENTO, o.COD_FILIAL, "", "", "", "", "", "", "", "1", "", ""));
                }
            }


            foreach (Negocio.ORG_FUNCIONARIO_EXPORT_GD_MDL o in objDs.ORG_FUNCIONARIO_EXPORT_GD_MDL.Where(f => f.NOM_FUNCIONARIO != null))
            {
                objStrSaida.AppendLine(string.Format("{0};{1};{2};{3};{4};{5};{6};{7};{8};{9};{10};{11};{12};{13};{14};{15};{16};{17};{18};{19};{20};{21};{22};{23};{24};{25};{26}",
                                                     o.COD_FUNCIONARIO, o.NUM_MATRICULA, o.COD_EMPRESA, o.COD_ORGAO, o.COD_CARGO, o.COD_SUPERVISOR, "", o.DSC_LOGON, "", o.NOM_FUNCIONARIO, o.SEXO,
                                                     o.DAT_ADMISSAO, o.DSC_EMAIL, o.COD_TIPO_FUNC, "", o.DAT_NASCIMENTO, o.COD_FILIAL, "", "", "", "", "", "", "", "1", "", ""));
            }



            return(objStrSaida.ToString());
        }
예제 #11
0
        //setar no constructor se tiver  algum filtro.
        public static string  Carrega()
        {
            //primeira linha é o cabeçalho
            StringBuilder objStrSaida = new StringBuilder();

            // objStrSaida.AppendLine("FIRSTNAME;LASTNAME;EMAIL;USERNAME;PASSWORD;PERSONSTATUS;USERSTATUS;CPF;COD_EMPRESA;EMPRESA;COD_FILIAL;NOME_FILIAL;DATA_ADMISSAO;SECAO;NOME_SECAO;CHAPA;CÓDIGO_FUNCAO;FUNCAO;CPF_GESTOR;NOME_GESTOR;EMAIL_GESTOR;SEXO;DTNASCIMENTO;CODTIPO;DESCRICAO_TIPO_FUNCIONARIO;PERFIL_PROFISSIONAL;COD_SECAO_SUPERIOR;NOME_SECAO_SUPERIOR;COD_DIRETORIA;NOME_DIRETORIA"); //CABECALHO orig

            objStrSaida.AppendLine("FIRST_NAME;LAST_NAME;EMAIL;USERNAME;PASSWORD;PERSONSTATUS;USERSTATUS;CPF;COD_EMPRESA;NOME_EMPRESA;COD_FILIAL;NOME_FILIAL;DAT_ADMISSAO;COD_SECAO;NOME_SECAO;CHAPA;COD_CARGO;NOME_FUNCAO;CPF_GESTOR;NOME_GESTOR;EMAIL_GESTOR;SEXO;DATA_NASCIMENTO;COD_TIPO_FUNC;DESC_TIPO_FUNC;COD_SECAO_SUP;NOME_SECAO_SUP;COD_DIRETORIA;NOME_DIRETORIA;PERFIL_PROFISSIONAL"); //cab novo


            //Cria o data context
            Negocio.gsatOrganogramaDataContext objDs = new gsatOrganogramaDataContext();

            try
            {
                //linhas nativas
                foreach (Negocio.ORG_FUNCIONARIO_EXPORT_TR o in   objDs.ORG_FUNCIONARIO_EXPORT_TR)
                {
                    objStrSaida.AppendLine(string.Format("{0};{1};{2};{3};{4};{5};{6};{7};{8};{9};{10};{11};{12};{13};{14};{15};{16};{17};{18};{19};{20};{21};{22};{23};{24};{25};{26};{27};{28};{29}",
                                                         o.FIRST_NAME,
                                                         o.LAST_NAME,
                                                         o.EMAIL,
                                                         o.USERNAME,
                                                         o.PASSWORD,
                                                         o.PERSONSTATUS,
                                                         o.USERSTATUS,
                                                         o.CPF,
                                                         o.COD_EMPRESA,
                                                         o.NOME_EMPRESA,
                                                         o.COD_FILIAL,
                                                         o.NOME_FILIAL,
                                                         DateTime.ParseExact(o.DAT_ADMISSAO, "yyyyMMdd", null).ToString("dd/MM/yyyy"),
                                                         o.COD_SECAO,
                                                         o.NOME_SECAO,
                                                         o.CHAPA,
                                                         o.COD_CARGO,
                                                         o.NOME_FUNCAO,
                                                         o.CPF_GESTOR,
                                                         o.NOME_GESTOR,
                                                         o.EMAIL_GESTOR,
                                                         o.SEXO,
                                                         o.DATA_NASCIMENTO,
                                                         o.COD_TIPO_FUNC,
                                                         o.DESC_TIPO_FUNC,
                                                         o.COD_SECAO_SUP,
                                                         o.NOME_SECAO_SUP,
                                                         o.COD_DIRETORIA,
                                                         o.NOME_DIRETORIA,
                                                         o.PERFIL_PROFISSIONAL
                                                         ));
                }
            }
            catch (Exception ex)
            {
                throw (ex);
            }



            //linhas Avulsas
            foreach (Negocio.ORG_FUNCIONARIO_EXPORT_TR_MDL o in objDs.ORG_FUNCIONARIO_EXPORT_TR_MDL)
            {
                objStrSaida.AppendLine(string.Format("{0};{1};{2};{3};{4};{5};{6};{7};{8};{9};{10};{11};{12};{13};{14};{15};{16};{17};{18};{19};{20};{21};{22};{23};{24};{25};{26};{27};{28};{29}",
                                                     o.FIRST_NAME,
                                                     o.LAST_NAME,
                                                     o.EMAIL,
                                                     o.USERNAME,
                                                     o.PASSWORD,
                                                     o.PERSONSTATUS,
                                                     o.USERSTATUS,
                                                     o.CPF,
                                                     o.COD_EMPRESA,
                                                     o.NOME_EMPRESA,
                                                     o.COD_FILIAL,
                                                     o.NOME_FILIAL,
                                                     o.DAT_ADMISSAO,
                                                     o.COD_SECAO,
                                                     o.NOME_SECAO,
                                                     o.CHAPA,
                                                     o.COD_CARGO,
                                                     o.NOME_FUNCAO,
                                                     o.CPF_GESTOR,
                                                     o.NOME_GESTOR,
                                                     o.EMAIL_GESTOR,
                                                     o.SEXO,
                                                     o.DATA_NASCIMENTO,
                                                     o.COD_TIPO_FUNC,
                                                     o.DESC_TIPO_FUNC,
                                                     o.COD_SECAO_SUP,
                                                     o.NOME_SECAO_SUP,
                                                     o.COD_DIRETORIA,
                                                     o.NOME_DIRETORIA,
                                                     o.PERFIL_PROFISSIONAL
                                                     ));
            }



            return(objStrSaida.ToString());
        }
예제 #12
0
        /// <summary>
        /// Executa a consulta referente a regra:
        /// 5.16.3.  O sistema deverá permitir a visualização em  tela e
        /// a extração de relatórios, identificando os funcionários que possuam
        /// subseções que não são filhas da seção associada aos mesmos.
        /// </summary>
        /// <returns></returns>
        public Validacao ConsultaFuncionarioAlocadoSubsecaoNaoFilha()
        {
            //cria o contexto de dados
            gsatOrganogramaDataContext objDs = new gsatOrganogramaDataContext();


            //carrega os funcionários
            var funcionarios = from f in objDs.ORG_FUNCIONARIO
                               join fs in objDs.ORG_FUNCIONARIO_SUBSECAO on f.CPF equals fs.CPF
                               join hi in objDs.ORG_HIERARQUIA on fs.COD_SECAO equals hi.COD_SECAO
                               where (!(hi.COD_SECAO_SUP.Equals(f.COD_SECAO)) && hi.SUBSECAO.Equals("1")
                                      ) && hi.COD_EMPRESA.Contains(strEmpresa)
                               select new
            {
                f.NOME_EMPRESA,
                f.CPF,
                f.NOME,
                SECAO_ALOCADO     = hi.NOME + " " + hi.COD_SECAO,
                SECAO_ALOCADO_SUP = hi.COD_SECAO_SUP,
                COD_SECAO_RM      = f.COD_SECAO,
                NOME_SECAO        = hi.NOME,
                NOME_SECAO_RM     = f.NOME_SECAO + " " + f.COD_SECAO
            };



            if (funcionarios.Count() <= 0)
            {
                return(null);
            }



            //cria o objeto de saída
            Validacao objValid = new Validacao();

            objValid.Id            = 3; //validacao funcionario em subsecao não filha da que vem do rm
            objValid.dtAtualizacao = DateTime.Now;
            //adiciona o título
            if (funcionarios.Count() > 1)
            {
                objValid.Titulo = string.Format("Existem {0} Funcionários alocados a subseções não filhas das seções originais. Atualizado em: {1}", funcionarios.Count(), DateTime.Now.ToString("dd/MM/yyyy HH:mm"));
            }
            else
            {
                objValid.Titulo = string.Format("Existe {0} Funcionário alocado a uma subseção não filha da seção original. Atualizado em: {1}", funcionarios.Count(), DateTime.Now.ToString("dd/MM/yyyy HH:mm"));
            }


            //adiciona as SEÇÕES no obj saída.
            foreach (var s in funcionarios)
            {
                //Adciona os itens de detalhe
                objValid.ListaValidacaoDetalhe.Add(
                    new ValidacaoDetalhe(objValid.Id,
                                         string.Format("{0} - Funcionário: {1} - Subseção: {2} - Seção RH: {3} ", s.NOME_EMPRESA, s.NOME, s.SECAO_ALOCADO, s.NOME_SECAO_RM),
                                         ""
                                         ));
            }



            objValid.ListaValidacaoDetalhe = objValid.ListaValidacaoDetalhe.OrderBy(f => f.Descricao).ToList();
            return(objValid);
        }
예제 #13
0
        /// <summary>
        ///5.16.2.  O sistema deverá permitir a visualização em tela e a extração
        ///de relatórios, com as seções que não possuem gestor definido.
        ///Para os casos das seções que possuem gestor modificado em relação ao sistema de RH,
        ///o sistema deverá verificar se existe um gestor definido neste campo.
        ///Para os casos das seções sem gestores modificados, o sistema deverá verificar se
        ///existe um gestor definido nos dados disponibilizados pelo sistema de RH
        /// </summary>
        /// <returns></returns>
        public Validacao ConsultaSecaoSemGestor()
        {
            //cria o contexto de dados
            gsatOrganogramaDataContext objDs = new gsatOrganogramaDataContext();

            //carrega as seções sem gestor definido
            var secoes = from s in objDs.ORG_LISTA_SECOES_SIMPLES
                         where (s.CPF_GESTOR == null || s.CPF_GESTOR.Equals(string.Empty)) &&
                         s.COD_EMPRESA.Contains(strEmpresa)
                         select s;



            //carrega as subseções sem gestor definido.
            var subSecoes = from s in objDs.ORG_HIERARQUIA
                            where (s.SUBSECAO.Equals("1") && (s.GESTOR == null || s.GESTOR.Equals(string.Empty))
                                   ) && s.COD_EMPRESA.Contains(strEmpresa)
                            select s;


            //caso não tenha nenhuma info volta zerada
            if (secoes.Count() <= 0 && subSecoes.Count() <= 0)
            {
                return(null);
            }


            //cria o objeto de saída
            Validacao objValid = new Validacao();

            objValid.Id            = 2; //validacao de seções sem gestor
            objValid.dtAtualizacao = DateTime.Now;
            //adiciona o título
            objValid.Titulo = string.Format("Existe{2} {0} seções/subseções sem gestor definido. Atualizado em: {1}", secoes.Count() + subSecoes.Count(), DateTime.Now.ToString("dd/MM/yyyy HH:mm"), (secoes.Count() + subSecoes.Count()) > 1 ? "s": string.Empty);


            //adiciona as SEÇÕES no obj saída.
            foreach (var s in secoes)
            {
                //Carrega a empresa (descrição)
                string emp = empresas.Where(f => f.COD_EMPRESA.Equals(s.COD_EMPRESA)).First().DESCRICAO;

                //Adciona os itens de detalhe
                objValid.ListaValidacaoDetalhe.Add(
                    new ValidacaoDetalhe(objValid.Id,
                                         string.Format("{0} - {1} - {2}", emp, s.NOME_SECAO, s.COD_SECAO), ""));
            }

            //adiciona as SUBSEÇÕES
            foreach (var s in subSecoes)
            {
                //Carrega a empresa (descrição)
                string emp = empresas.Where(f => f.COD_EMPRESA.Equals(s.COD_EMPRESA)).First().DESCRICAO;

                //Adciona os itens de detalhe
                objValid.ListaValidacaoDetalhe.Add(
                    new ValidacaoDetalhe(objValid.Id,
                                         string.Format("{0} - {1} - {2}", emp, s.NOME, s.COD_SECAO), ""));
            }


            objValid.ListaValidacaoDetalhe = objValid.ListaValidacaoDetalhe.OrderBy(f => f.Titulo).ToList();
            return(objValid);
        }