public override bool IsSatisfiedBy(Carga candidate) { base.IsSatisfiedBy(candidate); var centroDeCustoNaoExisteEDeSejaIncluir = this.CentroDeCusto == null && EstruturaOrcamentariaExcel.TipoAlteracaoCentroDeCusto == TipoAlteracao.Inclusao; var centroDeCustoExisteEDesejaAlterar = this.CentroDeCusto != null && EstruturaOrcamentariaExcel.TipoAlteracaoCentroDeCusto == TipoAlteracao.Alteracao; var satisfeito = centroDeCustoNaoExisteEDeSejaIncluir || centroDeCustoExisteEDesejaAlterar; var mensagemComplementarDeErro = EstruturaOrcamentariaExcel.TipoAlteracaoCentroDeCusto == TipoAlteracao.Inclusao ? "já existe no banco de dados" : "não existe no banco de dados"; var alteracaoCorreta = (EstruturasOrcamentariasExcel != null && EstruturaOrcamentariaExcel.TipoAlteracaoCentroDeCusto == TipoAlteracao.Alteracao && EstruturasOrcamentariasExcel.Any( p => p.CodigoCentroDeCusto == EstruturaOrcamentariaExcel.CodigoCentroDeCusto && p.TipoAlteracaoCentroDeCusto == TipoAlteracao.Inclusao)); if (!satisfeito && !alteracaoCorreta) candidate.AdicionarDetalhe("Centro de Custo não pode ser salvo", string.Format("Centro de Custo '{0}' {1}", EstruturaOrcamentariaExcel.NomeCentroDeCusto, mensagemComplementarDeErro), EstruturaOrcamentariaExcel.Linha, TipoDetalheEnum.erroDeValidacao); return satisfeito; }
public override void Processar(Carga carga, bool salvar = false) { try { funcionarios = new List<FuncionarioExcel>(); this.carga = carga; LerExcel(carga, funcionarios); if (NenhunFuncionarioEncontrado()) return; ValidarCarga(); if (CargaContemErros()) return; SalvarAlteracoes(salvar); } catch (Exception ex) { carga.AdicionarDetalhe("Erro ao processar funcionários", "Ocorreu um erro ao tentar processar os funcionários.", 0, TipoDetalheEnum.erroDeProcesso, ex.Message); } }
public override bool IsSatisfiedBy(Carga candidate) { var grupoDeContaNaoExisteEDeSejaIncluir = this.GrupoDeConta == null && EstruturaOrcamentariaExcel.TipoAlteracaoGrupoDeConta == TipoAlteracao.Inclusao; var grupoDeContaExisteEDesejaAlterar = this.GrupoDeConta != null && EstruturaOrcamentariaExcel.TipoAlteracaoGrupoDeConta == TipoAlteracao.Alteracao; var satisfeito = grupoDeContaNaoExisteEDeSejaIncluir || grupoDeContaExisteEDesejaAlterar; var mensagemComplementarDeErro = EstruturaOrcamentariaExcel.TipoAlteracaoGrupoDeConta == TipoAlteracao.Inclusao ? "já existe no banco de dados" : "não existe no banco de dados"; var alteracaoCorreta = (EstruturasOrcamentariasExcel != null && EstruturaOrcamentariaExcel.TipoAlteracaoGrupoDeConta == TipoAlteracao.Alteracao && EstruturasOrcamentariasExcel.Any( p => p.NomeDoGrupoDeConta == EstruturaOrcamentariaExcel.NomeDoGrupoDeConta && p.TipoAlteracaoGrupoDeConta == TipoAlteracao.Inclusao)); if (!satisfeito && !alteracaoCorreta) candidate.AdicionarDetalhe("Grupo de Conta não pode ser salvo", string.Format("Grupo de Conta {0} {1}", EstruturaOrcamentariaExcel.NomeDoGrupoDeConta, mensagemComplementarDeErro), EstruturaOrcamentariaExcel.Linha, TipoDetalheEnum.erroDeValidacao); return satisfeito; }
public override void Processar(Carga carga, bool salvar = false) { try { this.carga = carga; ticketsDeProducaoExcel = new List<TicketDeProducaoExcel>(); LerExcel(ticketsDeProducaoExcel, carga); if (NenhumRegistroEncontrado(carga)) return; ValidarCarga(); if (CargaContemErros()) return; ProcessarTicketsDeProducao(); if (CargaContemErros()) return; SalvarAlteracoes(salvar); } catch (Exception ex) { carga.AdicionarDetalhe("Erro ao processar Tickets de produção", "Ocorreu um erro ao tentar processar os tickets de producão.", 0, TipoDetalheEnum.erroDeProcesso, ex.Message); } }
public override bool IsSatisfiedBy(Carga candidate) { bool satisfeito = SetoresHospitalares != null && SetoresHospitalares.Count > 0 && SetoresHospitalares.Any(s => s.NomeSetor == TicketDeProducaoExcel.setor); if (!satisfeito) candidate.AdicionarDetalhe("Setor não encontrado", "Setor: " + TicketDeProducaoExcel.setor + " inexistente.", TicketDeProducaoExcel.Linha, TipoDetalheEnum.erroDeValidacao); return satisfeito; }
public override bool IsSatisfiedBy(Carga candidate) { base.IsSatisfiedBy(candidate); var satisfeito = Departamento != null; if (!satisfeito) candidate.AdicionarDetalhe("Hospital não encontrado", "Hospital: " + TicketDeInsumoExcel.Departamento + " inexistente.", TicketDeInsumoExcel.Linha, TipoDetalheEnum.erroDeValidacao); return satisfeito; }
public override bool IsSatisfiedBy(Carga candidate) { base.IsSatisfiedBy(candidate); var satisfeito = Insumos.Any(t => t.Departamento.Nome == TicketDeInsumoExcel.Departamento); if (!satisfeito) { candidate.AdicionarDetalhe("Não foi encontrado", string.Format("Não foi encontrado parcelas de insumos no hospital: {0} do subsetor : {1}", TicketDeInsumoExcel.Departamento, TicketDeInsumoExcel.subSetor), TicketDeInsumoExcel.Linha, TipoDetalheEnum.erroDeValidacao); } return satisfeito; }
public override bool IsSatisfiedBy(Carga candidate) { base.IsSatisfiedBy(candidate); var satisfeito = TicketsDeProducao.Any(t => t.Setor.NomeSetor == TicketDeProducaoExcel.setor && t.SubSetor.NomeSetor == TicketDeProducaoExcel.subSetor); if (!satisfeito) { //Passar setores e subSertoresa candidate.AdicionarDetalhe("Parcela não encontrada", string.Format("Não foi possível encontrar a Parcela: {0} do subsetor : {1}", TicketDeProducaoExcel.mes, TicketDeProducaoExcel.subSetor), TicketDeProducaoExcel.Linha, TipoDetalheEnum.erroDeValidacao); } return satisfeito; }
public override bool IsSatisfiedBy(Carga candidate) { base.IsSatisfiedBy(candidate); bool satisfeito = (TicketDeProducaoExcel.mes >= 1 && TicketDeProducaoExcel.mes <= 12) && TicketsParcela != null && TicketsParcela.Count > 0 && TicketsParcela.Any(t => TicketDeProducaoExcel.mes == (int) t.Mes); //if (TicketsParcela.Count(t => TicketDeProducaoExcel.mes == (int)t.Mes) == 1) // candidate.AdicionarDetalhe("Mais de uma parcela", // string.Format("Existe mais de uma Parcela: {0} do subsetor : {1}", // TicketDeProducaoExcel.mes, // TicketDeProducaoExcel.subSetor), // TicketDeProducaoExcel.Linha, TipoDetalheEnum.erroDeValidacao); if (!satisfeito) candidate.AdicionarDetalhe("Parcela não encontrada", string.Format("Não foi possível encontrar a Parcela: {0} do subsetor : {1}", TicketDeProducaoExcel.mes, TicketDeProducaoExcel.subSetor), TicketDeProducaoExcel.Linha, TipoDetalheEnum.erroDeValidacao); return satisfeito; }
private void LerExcel(Carga carga, List<FuncionarioExcel> funcionarios) { processo = new Processo(); OleDbDataReader reader = processo.InicializarCarga(carga); if (reader == null) carga.AdicionarDetalhe("Nao foi possivel Ler o excel", "Nao foi possivel Ler o excel por favor verifique o layout.", 0, TipoDetalheEnum.erroLeituraExcel); else LerExcel(carga, funcionarios, reader); processo.FinalizarCarga(); }
//D:\\cargaorcamento2014\\FuncionariosCoorporativoComplementar.xls public void Processar(Carga carga) { var funcionarios = new List<FuncionarioExcel>(); LerExcel(carga, funcionarios); var setores = new Setores(); 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.Any(d => d.Nome == funcionarioExcel.Departamento)) { var setor = setores.ObterPor(funcionarioExcel.Departamento); if (setor == null) throw new Exception(); departamentos.Add(setor); } 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.FirstOrDefault(d => d.Nome == funcionarioExcel.Departamento); var centro = centros.FirstOrDefault(d => d.CodigoDoCentroDeCusto == funcionarioExcel.CodigoCentroDeCusto); if (centro == null) { carga.AdicionarDetalhe("Centro de custo nulo", "Centro de custo codigo: " + funcionarioExcel.CodigoCentroDeCusto + " inexistente.", funcionarioExcel.Linha); centrosNaoEncontradosNew.Add(funcionarioExcel.CodigoCentroDeCusto); continue; } var funcionario = new Funcionario(setor); if (funcionarioExcel.Ano == default(int)) carga.AdicionarDetalhe("Ano não preenchido", "Ano do funcionário não preenchido", funcionarioExcel.Linha); else funcionario.AnoAdmissao = funcionarioExcel.Ano; if (string.IsNullOrEmpty(funcionarioExcel.Funcao)) carga.AdicionarDetalhe("Função não preenchida", "Função do funcionário não preenchida", funcionarioExcel.Linha); else funcionario.Cargo = funcionarioExcel.Funcao; if (funcionarioExcel.Mes == default(int)) carga.AdicionarDetalhe("Mês não preenchido", "Mês do funcionário não preenchido", funcionarioExcel.Linha); else funcionario.DataAdmissao = funcionarioExcel.Mes; if (string.IsNullOrEmpty(funcionarioExcel.NumeroMatricula)) carga.AdicionarDetalhe("Número de matrícula não preenchido", "Número de matrícula não preenchido", funcionarioExcel.Linha); else funcionario.Matricula = funcionarioExcel.NumeroMatricula; if (string.IsNullOrEmpty(funcionarioExcel.Nome)) carga.AdicionarDetalhe("Nome não Preenchido", "Nome não Preenchido", funcionarioExcel.Linha); else funcionario.Nome = funcionarioExcel.Nome; if (funcionarioExcel.Salario == default(double)) carga.AdicionarDetalhe("Salário não preenchido", "Salário não preenchido", funcionarioExcel.Linha); else funcionario.Salario = funcionarioExcel.Salario; if (funcionarioExcel.NumeroVaga == default(int)) carga.AdicionarDetalhe("Número de vaga não preenchido", "Número de vaga não preenchido", funcionarioExcel.Linha); else funcionario.NumeroDeVaga = funcionarioExcel.NumeroVaga; centro.Adicionar(funcionario); } var teste = centrosNaoEncontradosNew.Distinct(); // centrosDeCusto.SalvarLista(centros); }
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++; } } }
private bool NenhumRegistroEncontrado(Carga carga) { if (estruturaOrcamentariaExcel.Count == 0) { carga.AdicionarDetalhe("Nenhum registro foi obtido", "Nenhum registro foi obtido por favor verifique o excel.", 0, TipoDetalheEnum.erroLeituraExcel); return true; } return false; }
private void LerExcel(List<EstruturaOrcamentariaExcel> estruturaOrcamentariaExcel, Carga carga, OleDbDataReader reader) { int i = 0; while (reader.Read()) { try { if (i > 0) { if (reader[0] == DBNull.Value || string.IsNullOrEmpty(reader[0].ToString())) break; var itemEstruturaOrcamentariaExcel = new EstruturaOrcamentariaExcel(); itemEstruturaOrcamentariaExcel.Departamento = reader[0].ToString(); itemEstruturaOrcamentariaExcel.TipoDepartamento = (TipoDepartamento)int.Parse(reader[1].ToString()); itemEstruturaOrcamentariaExcel.TipoAlteracaoDepartamento = (TipoAlteracao)int.Parse(reader[2].ToString()); itemEstruturaOrcamentariaExcel.NomeDaConta = reader[3].ToString(); itemEstruturaOrcamentariaExcel.CodigoDaConta = reader[4].ToString(); itemEstruturaOrcamentariaExcel.TipoAlteracaoConta = (TipoAlteracao)int.Parse(reader[5].ToString()); itemEstruturaOrcamentariaExcel.NomeCentroDeCusto = reader[6].ToString(); itemEstruturaOrcamentariaExcel.CodigoCentroDeCusto = reader[7].ToString(); itemEstruturaOrcamentariaExcel.TipoAlteracaoCentroDeCusto = (TipoAlteracao)int.Parse(reader[8].ToString()); itemEstruturaOrcamentariaExcel.NomeDoGrupoDeConta = reader[9].ToString(); itemEstruturaOrcamentariaExcel.TipoAlteracaoGrupoDeConta = (TipoAlteracao)int.Parse(reader[10].ToString()); itemEstruturaOrcamentariaExcel.Linha = i + 1; estruturaOrcamentariaExcel.Add(itemEstruturaOrcamentariaExcel); } } catch (Exception ex) { carga.AdicionarDetalhe("Erro na linha", "Ocorreu um erro ao tentar ler a linha do excel", i + 1, TipoDetalheEnum.erroLeituraExcel); } finally { i++; } } }
public override void Processar(Carga carga, bool salvar = false) { try { this.carga = carga; estruturaOrcamentariaExcel = new List<EstruturaOrcamentariaExcel>(); LerExcel(); if (NenhumRegistroEncontrado(carga)) return; ValidarCarga(); if (!CargaContemErros()) SalvarAlteracoes(salvar); } catch (Exception ex) { carga.AdicionarDetalhe("Erro ao processar Estrutura Orçamentária", "Ocorreu um erro ao tentar processar a Estrutura Orçamentária.", 0, TipoDetalheEnum.erroDeProcesso, ex.Message); } }
private void LerExcel(List<TicketDeProducaoExcel> ticketsDeProducaoExcel, Carga carga, OleDbDataReader reader) { int i = 0; while (reader.Read()) { try { if (i > 0) { if (reader[0] == DBNull.Value || string.IsNullOrEmpty(reader[0].ToString())) break; var ticketDeProducaoExcel = new TicketDeProducaoExcel(); ticketDeProducaoExcel.Departamento = reader[0].ToString(); ticketDeProducaoExcel.setor = reader[1].ToString(); ticketDeProducaoExcel.subSetor = reader[2].ToString(); ticketDeProducaoExcel.mes = Convert.ToInt32(reader[3]); ticketDeProducaoExcel.valor = Convert.ToInt32(reader[4]); ticketDeProducaoExcel.Linha = i + 1; ticketsDeProducaoExcel.Add(ticketDeProducaoExcel); } } catch (Exception ex) { carga.AdicionarDetalhe("Erro na linha", "Ocorreu um erro ao tentar ler a linha do excel", i + 1, TipoDetalheEnum.erroLeituraExcel); } finally { i++; } } }
private void LerExcel(List<TicketDeProducaoExcel> ticketsDeProducaoExcel, Carga carga) { try { processo = new Processo(); var reader = processo.InicializarCarga(carga); if (reader == null) carga.AdicionarDetalhe("Nao foi possivel Ler o excel", "Nao foi possivel Ler o excel por favor verifique o layout.", 0, TipoDetalheEnum.erroLeituraExcel); else LerExcel(ticketsDeProducaoExcel, carga, reader); } catch (Exception ex) { carga.AdicionarDetalhe("Nao foi possivel Ler o excel", "Nao foi possivel Ler o excel por favor verifique o layout.", 0, TipoDetalheEnum.erroLeituraExcel, ex.Message); } finally { processo.FinalizarCarga(); } }