public void ExcluirCronogramaQuandoExistirTarefasComHistoricoNoCronogramaTest()
        {
            //cria situação planejamento
            SituacaoPlanejamento situacaoPlanejamentoNaoIniciado = CronogramaFactoryEntity.CriarSituacaoPlanejamento(contexto, "Não Iniciado",
                                                                                                                     CsTipoSituacaoPlanejamento.Ativo, CsTipoPlanejamento.Planejamento,
                                                                                                                     CsPadraoSistema.Sim, true);

            SituacaoPlanejamento situacaoPlanejamentoEmAndamento = CronogramaFactoryEntity.CriarSituacaoPlanejamento(contexto, "Em Andamento",
                                                                                                                     CsTipoSituacaoPlanejamento.Ativo, CsTipoPlanejamento.Planejamento,
                                                                                                                     CsPadraoSistema.Sim, true);


            Colaborador colaborador = ColaboradorFactoryEntity.CriarColaborador(contexto, "anderson.lins", true);

            Cronograma cronograma1 = CronogramaFactoryEntity.CriarCronograma(contexto, "Cronograma 01", situacaoPlanejamentoNaoIniciado, new DateTime(), new DateTime(), true);

            List <CronogramaTarefa> tarefasReordenadas = new List <CronogramaTarefa>();
            DateTime dataHoraDaAcao = new DateTime();

            CronogramaTarefa cronogramaTarefa = CronogramaBo.CriarTarefa(cronograma1.Oid, (string)"Tarefa 01", situacaoPlanejamentoNaoIniciado.Oid.ToString(), DateTime.Today, colaborador.Usuario.UserName, "", "", out tarefasReordenadas, ref dataHoraDaAcao, 5);

            TarefaHistoricoTrabalhoBo.CriarHistoricoTarefa((Guid)cronogramaTarefa.OidTarefa, colaborador.Usuario.UserName, new TimeSpan(3, 0, 0), DateTime.Now, new TimeSpan(8, 0, 0), new TimeSpan(11, 0, 0), "comentário", new TimeSpan(2, 0, 0), situacaoPlanejamentoEmAndamento.Oid, "");

            TarefaHistoricoTrabalho historicoCriado = TarefaHistoricoTrabalhoDao.ConsultarTarefaHistoricoAtualPorOidTarefa((Guid)cronogramaTarefa.OidTarefa);

            bool cronogramaExcluido = CronogramaBo.ExcluirCronograma(contexto, cronograma1.Oid);

            Assert.IsNotNull(historicoCriado, "Deveria ter criado um histórico pra tarefa");
            Assert.IsTrue(cronogramaExcluido, "Deveria ser true, pois o cronograma exclui quaisquer tarefas associadas a ele.");
        }
Ejemplo n.º 2
0
        public void DeveRetornarUmaDiariaDeOitoAsDezoitoQuandoODiaAtualNaoPossuirPeriodosDeTrabalhoCadastrados()
        {
            SemanaTrabalho semana = SemanaTrabalhoBo.SemanaTrabalhoPadraoFactory();
            DiaTrabalhoDto diaDto = TarefaHistoricoTrabalhoDao.ConsultarDiaAtualDeTrabalhoDto(DayOfWeek.Saturday, semana);

            Assert.AreEqual(1, diaDto.PeriodosTrabalho.Count, "So deveria conter 1 periodo de 8:00 as 18:00");
            Assert.AreEqual("8:00", diaDto.PeriodosTrabalho[0].HoraInicial, "O horario inicial deveria ser as 8:00");
            Assert.AreEqual("18:00", diaDto.PeriodosTrabalho[0].HoraFinal, "O horario inicial deveria ser as 8:00");
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Método responsável por retornar a ultima hora trabalhada pelo colaborador
        /// </summary>
        /// <param name="contexto"></param>
        /// <param name="login"></param>
        /// <returns></returns>
        public static TarefaHistoricoTrabalhoDto ConsultarUltimoEsforcoRealizadoColaboradorDto(WexDb contexto, string login)
        {
            TarefaHistoricoTrabalho historicoAtual = TarefaHistoricoTrabalhoDao.ConsultarUltimoEsforcoRealizadoColaborador(contexto, login);

            if (historicoAtual == null)
            {
                return(new TarefaHistoricoTrabalhoDto());
            }
            return(DtoFactory(historicoAtual));
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Método responsável por buscar o histórico mais atual de uma tarefa.
        /// </summary>
        /// <param name="contexto">Sessão Corrente</param>
        /// <param name="oidTarefa">Oid da Tarefa</param>
        /// <returns>Objeto TarefaHistoricoTrabalhoDto</returns>
        public static TarefaHistoricoTrabalhoDto ConsultarTarefaHistoricoAtualPorOidTarefaDto(Guid oidTarefa)
        {
            TarefaHistoricoTrabalho historicoAtual = TarefaHistoricoTrabalhoDao.ConsultarTarefaHistoricoAtualPorOidTarefa(oidTarefa);

            if (historicoAtual == null)
            {
                return(new TarefaHistoricoTrabalhoDto());
            }
            return(DtoFactory(historicoAtual));
        }
Ejemplo n.º 5
0
 /// <summary>
 /// Método responsável por buscar a ultima hora trabalhada em um dia especifico
 /// </summary>
 /// <param name="contexto">Sessão atual do banco</param>
 /// <param name="login">login do colaborador atual</param>
 /// <param name="dataEspecifica"> data selecionada pelo colaborador</param>
 /// <returns>inicializador de estimativa</returns>
 public static InicializadorEstimativaDto SelecionarInicializadorEstimativaColaboradorParaDataEspecifica(string login, DateTime dataEspecifica)
 {
     using (WexDb contexto = ContextFactoryManager.CriarWexDb())
     {
         TimeSpan ultimaHoraTrabalhada = TarefaHistoricoTrabalhoDao.ConsultarHorarioUltimaTarefaDiaColaborador(contexto, login, dataEspecifica);
         return(new InicializadorEstimativaDto()
         {
             DataEstimativa = dataEspecifica.Date, HoraInicialEstimativa = ultimaHoraTrabalhada, DiaAtual = TarefaHistoricoTrabalhoDao.ConsultarDiaAtualDeTrabalhoDtoDaSemanaPadrao(dataEspecifica.DayOfWeek)
         });
     }
 }
Ejemplo n.º 6
0
        public void ConsultarHorarioUltimaTarefaDiaColaboradorQuandoColaboradorTiverRealizadoTarefaNoDia()
        {
            //cria situação planejamento
            SituacaoPlanejamento situacaoPlanejamentoNaoIniciado = CronogramaFactoryEntity.CriarSituacaoPlanejamento(contexto, "Não Iniciado",
                                                                                                                     CsTipoSituacaoPlanejamento.Ativo, CsTipoPlanejamento.Planejamento,
                                                                                                                     CsPadraoSistema.Sim, true);

            SituacaoPlanejamento situacaoPlanejamentoEmAndamento = CronogramaFactoryEntity.CriarSituacaoPlanejamento(contexto, "Em Andamento",
                                                                                                                     CsTipoSituacaoPlanejamento.Ativo, CsTipoPlanejamento.Planejamento,
                                                                                                                     CsPadraoSistema.Sim, true);

            //colaborador1
            Colaborador colaborador1 = ColaboradorFactoryEntity.CriarColaborador(contexto, "anderson.lins", true);



            string responsaveis = colaborador1.NomeCompleto;

            //iníco tarefa
            DateTime dtInicio = new DateTime();

            //cria tarefa
            Tarefa tarefa = new Tarefa();

            tarefa = TarefaBo.CriarTarefa((string)"Tarefa 01", situacaoPlanejamentoNaoIniciado, dtInicio, colaborador1.Usuario.UserName,
                                          (string)"Criar método", responsaveis, 5);

            //Salvando linha base tarefa
            tarefa.CsLinhaBaseSalva = true;
            contexto.Entry <Tarefa>(tarefa).State = System.Data.EntityState.Modified;
            contexto.SaveChanges();

            TarefaHistoricoTrabalhoBo.CriarHistoricoTarefa(tarefa.Oid, colaborador1.Usuario.UserName, new TimeSpan(3, 0, 0), DateTime.Now, new TimeSpan(8, 0, 0), new TimeSpan(11, 0, 0), "comentário", new TimeSpan(2, 0, 0), situacaoPlanejamentoEmAndamento.Oid, "");

            //colaborador2
            Colaborador colaborador2 = ColaboradorFactoryEntity.CriarColaborador(contexto, "gabriel.matos", true);

            TarefaHistoricoTrabalhoBo.CriarHistoricoTarefa(tarefa.Oid, colaborador2.Usuario.UserName, new TimeSpan(1, 0, 0), DateTime.Now, new TimeSpan(13, 0, 0), new TimeSpan(14, 0, 0), "comentário historico 2", new TimeSpan(1, 0, 0), situacaoPlanejamentoEmAndamento.Oid, "");

            TimeSpan nbHoraFinal = TarefaHistoricoTrabalhoDao.ConsultarHorarioUltimaTarefaDiaColaborador(contexto, colaborador1.Usuario.UserName, DateTime.Now);

            Assert.AreEqual(new TimeSpan(11, 0, 0), nbHoraFinal, "Deveria ser o mesmo horário, pois o colaborador 1 realizou uma tarefa de 8 às 11 no dia.");
        }
Ejemplo n.º 7
0
        /// <summary>
        /// Método para preencher uma inicialização do dia selecionado
        /// </summary>
        /// <param name="semanaTrabalho">semana de trabalho do colaborador</param>
        /// <param name="dataSelecionada">data de selecao</param>
        /// <returns></returns>
        private static InicializadorEstimativaDto PreencherInicializacaoDiaSelecionado(SemanaTrabalho semanaTrabalho, DateTime dataSelecionada)
        {
            InicializadorEstimativaDto inicializadorDto = new InicializadorEstimativaDto();

            if (SemanaTrabalhoBo.DiaAtualPossuiPeriodoTrabalho(semanaTrabalho, dataSelecionada.DayOfWeek))
            {
                inicializadorDto.DataEstimativa = dataSelecionada;
                DiaTrabalho dia   = SemanaTrabalhoDao.SelecionarDiaTrabalho(semanaTrabalho, dataSelecionada.DayOfWeek);
                long        ticks = dia.PeriodosDeTrabalho.Min(o => ConversorTimeSpan.ConverterHorasDeStringParaTicks(o.HoraInicial));
                inicializadorDto.HoraInicialEstimativa = new TimeSpan(ticks);
            }
            else
            {
                inicializadorDto = new InicializadorEstimativaDto()
                {
                    DataEstimativa = dataSelecionada, HoraInicialEstimativa = new TimeSpan(8, 0, 0)
                }
            };

            inicializadorDto.DiaAtual = TarefaHistoricoTrabalhoDao.ConsultarDiaAtualDeTrabalhoDto(dataSelecionada.DayOfWeek, semanaTrabalho);
            return(inicializadorDto);
        }
Ejemplo n.º 8
0
        /// <summary>
        /// Método responsável por efetuar a seleção da hora de inicio da estimativa de uma tarefa para o colaborador
        /// </summary>
        /// <param name="contexto">sessão atual do banco</param>
        /// <param name="loginColaborador">login do colaborador atual</param>
        /// <returns>tarefaHistorico preenchida com</returns>
        public static InicializadorEstimativaDto SelecionarInicializadorEstimativaDto(string loginColaborador, DateTime dataSolicitacao, SemanaTrabalho semanaTrabalho)
        {
            WexDb contexto = ContextFactoryManager.CriarWexDb();

            TarefaHistoricoTrabalho ultimoHistoricoTrabalho = TarefaHistoricoTrabalhoDao.ConsultarUltimoEsforcoRealizadoColaborador(contexto, loginColaborador, dataSolicitacao);

            InicializadorEstimativaDto inicializadorEstimativaDto = new InicializadorEstimativaDto();

            DateTime dataSelecionada;

            if (!ValidarTarefaHistoricoTrabalho(ultimoHistoricoTrabalho))
            {
                dataSelecionada = dataSolicitacao.Date;
                SelecionarDataDiaUtilInicial(semanaTrabalho, ref dataSelecionada);
                return(PreencherInicializacaoDiaSelecionado(semanaTrabalho, dataSelecionada));
            }

            bool ultrapassouLimiteDia = ultimoHistoricoTrabalho.HoraFinal.Days > 0;

            dataSelecionada = new DateTime(ultimoHistoricoTrabalho.DtRealizado.Ticks);
            if (ultrapassouLimiteDia)
            {
                dataSelecionada = SelecionarDataProximoDiaUtil(semanaTrabalho, dataSelecionada);
                return(PreencherInicializacaoDiaSelecionado(semanaTrabalho, dataSelecionada));
            }

            SelecionarDataDiaUtilInicial(semanaTrabalho, ref dataSelecionada);
            if (dataSelecionada.Equals(dataSolicitacao.Date))
            {
                if (dataSelecionada.Equals(ultimoHistoricoTrabalho.DtRealizado))
                {
                    inicializadorEstimativaDto.DataEstimativa        = dataSelecionada;
                    inicializadorEstimativaDto.HoraInicialEstimativa = ultimoHistoricoTrabalho.HoraFinal;
                    inicializadorEstimativaDto.DiaAtual = TarefaHistoricoTrabalhoDao.ConsultarDiaAtualDeTrabalhoDto(dataSelecionada.DayOfWeek, semanaTrabalho);
                    return(inicializadorEstimativaDto);
                }
                return(PreencherInicializacaoDiaSelecionado(semanaTrabalho, dataSelecionada));
            }
            else
            {
                if (SemanaTrabalhoBo.DiaAtualPossuiPeriodoTrabalho(semanaTrabalho, dataSelecionada.DayOfWeek))
                {
                    DiaTrabalho dia   = SemanaTrabalhoDao.SelecionarDiaTrabalho(semanaTrabalho, dataSelecionada.DayOfWeek);
                    long        ticks = dia.PeriodosDeTrabalho.Max(o => ConversorTimeSpan.ConverterHorasDeStringParaTicks(o.HoraFinal));
                    TimeSpan    horaFinalExpediente = new TimeSpan(ticks);
                    if (ultimoHistoricoTrabalho.HoraFinal >= horaFinalExpediente)
                    {
                        dataSelecionada = SelecionarDataProximoDiaUtil(semanaTrabalho, dataSelecionada);
                        return(PreencherInicializacaoDiaSelecionado(semanaTrabalho, dataSelecionada));
                    }
                    if (dataSelecionada.Equals(ultimoHistoricoTrabalho.DtRealizado))
                    {
                        inicializadorEstimativaDto.DataEstimativa        = dataSelecionada;
                        inicializadorEstimativaDto.HoraInicialEstimativa = ultimoHistoricoTrabalho.HoraFinal;
                        inicializadorEstimativaDto.DiaAtual = TarefaHistoricoTrabalhoDao.ConsultarDiaAtualDeTrabalhoDto(dataSelecionada.DayOfWeek, semanaTrabalho);
                        return(inicializadorEstimativaDto);
                    }
                    return(PreencherInicializacaoDiaSelecionado(semanaTrabalho, dataSelecionada));
                }
                else
                {
                    inicializadorEstimativaDto.DataEstimativa        = dataSolicitacao.Date;
                    inicializadorEstimativaDto.HoraInicialEstimativa = new TimeSpan(8, 0, 0);
                    inicializadorEstimativaDto.DiaAtual = TarefaHistoricoTrabalhoDao.ConsultarDiaAtualDeTrabalhoDto(dataSolicitacao.DayOfWeek, semanaTrabalho);
                }
                return(inicializadorEstimativaDto);
            }
        }
Ejemplo n.º 9
0
        public void ConsultarHorarioUltimaTarefaDiaColaboradorQuandoColaboradorTiverRealizadoTarefasEmDiferentesCronogramas()
        {
            #region Construção Cenário
            SituacaoPlanejamento situacaoPlanejamentoNaoIniciado = CronogramaFactoryEntity.CriarSituacaoPlanejamento(contexto, "Não Iniciado",
                                                                                                                     CsTipoSituacaoPlanejamento.Ativo, CsTipoPlanejamento.Planejamento,
                                                                                                                     CsPadraoSistema.Sim, true);

            SituacaoPlanejamento situacaoPlanejamentoEmAndamento = CronogramaFactoryEntity.CriarSituacaoPlanejamento(contexto, "Em Andamento",
                                                                                                                     CsTipoSituacaoPlanejamento.Ativo, CsTipoPlanejamento.Planejamento,
                                                                                                                     CsPadraoSistema.Sim, true);

            Cronograma cronograma1 = new Cronograma()
            {
                DtInicio             = new DateTime(2013, 02, 1),
                DtFinal              = new DateTime(2013, 02, 15),
                TxDescricao          = "WexCronograma1",
                SituacaoPlanejamento = situacaoPlanejamentoEmAndamento
            };
            contexto.Cronograma.Add(cronograma1);
            contexto.SaveChanges();

            Cronograma cronograma2 = new Cronograma()
            {
                DtInicio             = new DateTime(2013, 02, 1),
                DtFinal              = new DateTime(2013, 02, 16),
                TxDescricao          = "WexCronograma2",
                SituacaoPlanejamento = situacaoPlanejamentoEmAndamento
            };
            contexto.Cronograma.Add(cronograma2);
            contexto.SaveChanges();

            Colaborador colaborador1 = ColaboradorFactoryEntity.CriarColaborador(contexto, "anderson.lins", true);

            string responsaveis = colaborador1.NomeCompleto;

            Tarefa tarefa1 = new Tarefa()
            {
                DtInicio             = new DateTime(2013, 02, 25),
                CsLinhaBaseSalva     = true,
                TxDescricao          = "Cria método Cadastro",
                TxResponsaveis       = colaborador1.NomeCompleto,
                NbEstimativaInicial  = 8,
                SituacaoPlanejamento = situacaoPlanejamentoNaoIniciado,
                AtualizadoPor        = colaborador1
            };
            contexto.Tarefa.Add(tarefa1);
            contexto.SaveChanges();

            Tarefa tarefa2 = new Tarefa()
            {
                DtInicio             = new DateTime(2013, 02, 25),
                CsLinhaBaseSalva     = true,
                TxDescricao          = "Criar método Exclusão",
                TxResponsaveis       = colaborador1.NomeCompleto,
                NbEstimativaInicial  = 4,
                SituacaoPlanejamento = situacaoPlanejamentoNaoIniciado,
                AtualizadoPor        = colaborador1
            };
            contexto.Tarefa.Add(tarefa2);
            contexto.SaveChanges();
            #endregion

            CronogramaTarefa cronogramaTarefa = new CronogramaTarefa()
            {
                Cronograma = cronograma1, NbID = 1, Tarefa = tarefa1
            };
            contexto.CronogramaTarefa.Add(cronogramaTarefa);
            contexto.SaveChanges();
            CronogramaTarefa cronogramaTarefa2 = new CronogramaTarefa()
            {
                Cronograma = cronograma2, NbID = 1, Tarefa = tarefa2
            };
            contexto.CronogramaTarefa.Add(cronogramaTarefa2);
            contexto.SaveChanges();

            TarefaHistoricoTrabalhoBo.CriarHistoricoTarefa(tarefa1.Oid, colaborador1.Usuario.UserName, new TimeSpan(2, 0, 0), DateTime.Now, new TimeSpan(8, 0, 0), new TimeSpan(10, 0, 0), "comentário", new TimeSpan(6, 0, 0), situacaoPlanejamentoEmAndamento.Oid, "");

            TarefaHistoricoTrabalhoBo.CriarHistoricoTarefa(tarefa2.Oid, colaborador1.Usuario.UserName, new TimeSpan(1, 0, 0), DateTime.Now, new TimeSpan(10, 0, 0), new TimeSpan(11, 0, 0), "comentário", new TimeSpan(3, 0, 0), situacaoPlanejamentoEmAndamento.Oid, "");

            TimeSpan nbHoraFinal = TarefaHistoricoTrabalhoDao.ConsultarHorarioUltimaTarefaDiaColaborador(contexto, colaborador1.Usuario.UserName, DateTime.Now);

            Assert.AreEqual(new TimeSpan(11, 0, 0), nbHoraFinal, "A hora final deveria ser igual a 11:00 pois o colaborador investiu esforço realizado " +
                            " em outra tarefa independente do cronograma em que está lançando a hora realizada");
        }