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;
        }
예제 #2
0
        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;
        }
예제 #10
0
        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();
        }
예제 #11
0
        //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);
        }
예제 #12
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++;
                }
            }
        }
예제 #13
0
        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;
        }
예제 #14
0
        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++;
                }
            }
        }
예제 #15
0
        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();
            }
        }