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; }
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); }
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; }
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); }
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++; } }