예제 #1
0
        private Funcionario CriarFuncionario(FuncionarioExcel funcionarioExcel)
        {
            Funcionario funcionario;
            if (FuncionarioExiste(funcionarioExcel))
                funcionario =
                    funcionarioExcel.CentroDeCusto.Funcionarios.FirstOrDefault(
                        c => c.Matricula == funcionarioExcel.NumeroMatricula && funcionarioExcel.Departamento == c.Departamento.Nome);
            else
                funcionario = new Funcionario(funcionarioExcel.DepartamentoEntidade);

            PreencherFuncionario(funcionario, funcionarioExcel);

            return funcionario;
        }
예제 #2
0
 private static bool FuncionarioExiste(FuncionarioExcel funcionarioExcel)
 {
     return funcionarioExcel.CentroDeCusto.Funcionarios != null &&
            funcionarioExcel.CentroDeCusto.Funcionarios.Any(f => f.Matricula == funcionarioExcel.NumeroMatricula && f.Departamento.Nome == funcionarioExcel.Departamento);
 }
예제 #3
0
 private void PreencherFuncionario(Funcionario funcionario, FuncionarioExcel funcionarioExcel)
 {
     funcionario.Matricula = funcionarioExcel.NumeroMatricula;
     funcionario.Salario = funcionarioExcel.Salario;
     funcionario.Nome = funcionarioExcel.Nome;
     funcionario.DataAdmissao = funcionarioExcel.Mes;
     funcionario.Cargo = funcionarioExcel.Funcao;
     funcionario.AnoAdmissao = funcionarioExcel.Ano;
     funcionario.NumeroDeVaga = funcionarioExcel.NumeroVaga;
 }
예제 #4
0
        private void LerExcel(Carga carga, List<FuncionarioExcel> funcionarios, OleDbDataReader reader)
        {
            int i = 0;
            while (reader.Read())
            {
                try
                {
                    if (i > 0)
                    {
                        if (reader[0] == DBNull.Value)
                            break;

                        var funcionarioExcel = new FuncionarioExcel();

                        if (reader[5] == DBNull.Value)
                            continue;

                        funcionarioExcel.Departamento = (string) reader[1];
                        funcionarioExcel.CodigoCentroDeCusto = Convert.ToString(reader[2]);
                        funcionarioExcel.NumeroMatricula = Convert.ToInt32(reader[5]).ToString();
                        funcionarioExcel.Nome = (string) reader[6];
                        funcionarioExcel.Funcao = (string) reader[7];
                        funcionarioExcel.Salario = double.Parse( reader[8].ToString());
                        funcionarioExcel.Mes = int.Parse( reader[10].ToString());
                        funcionarioExcel.Ano = int.Parse( reader[11].ToString());
                        funcionarioExcel.NumeroVaga = int.Parse(reader[13].ToString());
                        funcionarioExcel.Linha = i + 1;
                        funcionarios.Add(funcionarioExcel);
                    }
                }
                catch (Exception ex)
                {
                    carga.AdicionarDetalhe("Erro na linha", "Ocorreu um erro ao tentar ler a linha do excel", i + 1,
                                           TipoDetalheEnum.erroLeituraExcel, ex.Message);
                }
                finally
                {
                    i++;
                }
            }
        }
        public void atualizar_quadro_de_funcionarios_atualizar_salario_hospitalares()
        {
            string _conectionstring;
            _conectionstring = @"Provider=Microsoft.Jet.OLEDB.4.0;";
            _conectionstring += String.Format("Data Source={0};", "D:\\cargaorcamento2014\\FuncionariosHospitalAdicionalSalarial.xls");
            _conectionstring += "Extended Properties='Excel 8.0;HDR=NO;'";

            var cn = new OleDbConnection(_conectionstring);
            var cmd = new OleDbCommand("Select * from [carga$]", cn);
            cn.Open();

            var reader = cmd.ExecuteReader();

            var funcionarios = new List<FuncionarioExcel>();

            int i = 0;

            while (reader.Read())
            {
                if (i > 0)
                {
                    if (reader[0] == DBNull.Value)
                        break;

                    var funcionarioExcel = new FuncionarioExcel();

                    if (reader[5] == DBNull.Value)
                        continue;

                    //if(reader[1].ToString() == "CAXIAS")
                    //    continue;

                    funcionarioExcel.Departamento = (string)reader[1];
                    funcionarioExcel.CodigoCentroDeCusto = (string)reader[2];
                    funcionarioExcel.NumeroMatricula = Convert.ToInt32(reader[5]).ToString();
                    funcionarioExcel.Nome = (string)reader[6];
                    funcionarioExcel.Funcao = (string)reader[7];
                    funcionarioExcel.Salario = (double)reader[8];
                    funcionarioExcel.Mes = (int)(double)reader[10];
                    funcionarioExcel.Ano = (int)(double)reader[11];
                    funcionarioExcel.NumeroVaga = int.Parse(reader[13].ToString());

                    funcionarios.Add(funcionarioExcel);
                }
                i++;
            }

            var setores = new Hospitais();
            var centrosDeCusto = new CentrosDeCusto();
            var departamentos = new List<Departamento>();
            var centros = new List<CentroDeCusto>();
            var centrosNaoEncontrados = new List<string>();
            foreach (var funcionarioExcel in funcionarios)
            {
                if (!departamentos.Where(d => d != null).Any(d => d.Nome == funcionarioExcel.Departamento))
                    departamentos.Add(setores.ObterPor(funcionarioExcel.Departamento));

                if (!centros.Any(d => d.CodigoDoCentroDeCusto == funcionarioExcel.CodigoCentroDeCusto))
                {
                    var centroR = centrosDeCusto.ObterPor(funcionarioExcel.CodigoCentroDeCusto);

                    if (centroR == null)
                        centrosNaoEncontrados.Add(funcionarioExcel.CodigoCentroDeCusto);
                    else
                    {
                        centros.Add(centroR);
                    }

                }

            }
            List<string> centrosNaoEncontradosNew = new List<string>();
            foreach (var funcionarioExcel in funcionarios)
            {

                var setor = departamentos.Where(d => d != null).FirstOrDefault(d => d.Nome == funcionarioExcel.Departamento);
                var centro =
             centros.FirstOrDefault(d => d.CodigoDoCentroDeCusto == funcionarioExcel.CodigoCentroDeCusto);
                if (centro == null)
                {
                    centrosNaoEncontradosNew.Add(funcionarioExcel.CodigoCentroDeCusto);
                    continue;
                }

                var funcionario = centro.Funcionarios.Where(f=> f.Departamento.Nome == funcionarioExcel.Departamento).Single(f => f.Matricula == funcionarioExcel.NumeroMatricula);
                funcionario.Salario = funcionarioExcel.Salario;
            }
            var teste = centrosNaoEncontradosNew.Distinct();
            centrosDeCusto.SalvarLista(centros);
        }
예제 #6
0
        private void LerExcel(Carga carga, List<FuncionarioExcel> funcionarios)
        {
            string _conectionstring;
            _conectionstring = @"Provider=Microsoft.Jet.OLEDB.4.0;";
            _conectionstring += carga.Diretorio;
            _conectionstring += "Extended Properties='Excel 8.0;HDR=NO;'";

            var cn = new OleDbConnection(_conectionstring);
            var cmd = new OleDbCommand("Select * from [carga$]", cn);
            cn.Open();
            var reader = cmd.ExecuteReader();

            int i = 0;

            while (reader.Read())
            {
                if (i > 0)
                {
                    if (reader[0] == DBNull.Value)
                        break;

                    var funcionarioExcel = new FuncionarioExcel();

                    if (reader[5] == DBNull.Value)
                        continue;

                    funcionarioExcel.Departamento = (string)reader[1];
                    funcionarioExcel.CodigoCentroDeCusto = (string)reader[2];
                    funcionarioExcel.NumeroMatricula = Convert.ToInt32(reader[5]).ToString();
                    funcionarioExcel.Nome = (string)reader[6];
                    funcionarioExcel.Funcao = (string)reader[7];
                    funcionarioExcel.Salario = (double)reader[8];
                    funcionarioExcel.Mes = (int)(double)reader[10];
                    funcionarioExcel.Ano = (int)(double)reader[11];
                    funcionarioExcel.NumeroVaga = int.Parse(reader[13].ToString());
                    funcionarioExcel.Linha = i + 1;
                    funcionarios.Add(funcionarioExcel);
                }
                i++;
            }
        }