public void NaoDeveSalvarAsDatasDoCronogramaQuandoADataInicioForMaiorQueADataTerminoDoCronograma()
        {
            var situacao = new SituacaoPlanejamento()
            {
                Oid        = Guid.NewGuid(),
                CsPadrao   = CsPadraoSistema.Sim,
                CsSituacao = CsTipoSituacaoPlanejamento.Ativo,
                CsTipo     = CsTipoPlanejamento.Planejamento
            };

            contexto.SituacaoPlanejamento.Add(situacao);
            contexto.SaveChanges();
            var cronograma = CronogramaBo.CriarCronogramaPadrao(contexto);


            var novaData        = DateTime.Now.Date.AddDays(1);
            var novaDataTermino = DateTime.Now.Date.AddDays(-1);

            var dto = new CronogramaDto
            {
                Oid      = cronograma.Oid,
                DtInicio = novaData,
                DtFinal  = novaDataTermino,
                OidSituacaoPlanejamento = cronograma.OidSituacaoPlanejamento,
                TxDescricao             = cronograma.TxDescricao
            };


            Assert.AreNotEqual(novaData, cronograma.DtFinal, "As datas devem ser inicialmente diferentes");
            Assert.IsFalse(CronogramaBo.EditarCronograma(dto), "Deveria ter salvo a edição do cronograma");

            contexto.Entry(cronograma).Reload();

            Assert.AreNotEqual(dto.DtFinal, cronograma.DtFinal, "Não deveria ter salvo a data de termino do cronograma");
        }
Exemple #2
0
        public void ConsultarCronogramaTarefasPorOidCronogramaQuandoExistirMaisDeUmaTarefa()
        {
            //cria situação planejamento
            SituacaoPlanejamento situacaoPlanejamento = CronogramaFactoryEntity.CriarSituacaoPlanejamento(contexto, "S1", CsTipoSituacaoPlanejamento.Ativo, CsTipoPlanejamento.Execução, CsPadraoSistema.Sim, true);

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

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

            string responsaveis = colaborador1.NomeCompleto;

            //iníco tarefa
            DateTime dtInicio     = DateTime.Now;
            DateTime dataHoraAcao = new DateTime();
            List <CronogramaTarefa> tarefasImpactadas;

            //cria tarefa
            CronogramaBo.CriarTarefa(cronograma1.Oid, "Tarefa 01", situacaoPlanejamento.Oid.ToString(), dtInicio, colaborador1.Usuario.UserName, "Criar método", responsaveis, out tarefasImpactadas, ref dataHoraAcao, 3, 0);
            CronogramaBo.CriarTarefa(cronograma1.Oid, "Tarefa 02", situacaoPlanejamento.Oid.ToString(), dtInicio, colaborador1.Usuario.UserName, "Criar método", responsaveis, out tarefasImpactadas, ref dataHoraAcao, 3, 0);
            CronogramaBo.CriarTarefa(cronograma1.Oid, "Tarefa 03", situacaoPlanejamento.Oid.ToString(), dtInicio, colaborador1.Usuario.UserName, "Criar método", responsaveis, out tarefasImpactadas, ref dataHoraAcao, 3, 0);
            CronogramaBo.CriarTarefa(cronograma1.Oid, "Tarefa 04", situacaoPlanejamento.Oid.ToString(), dtInicio, colaborador1.Usuario.UserName, "Criar método", responsaveis, out tarefasImpactadas, ref dataHoraAcao, 3, 0);
            CronogramaBo.CriarTarefa(cronograma1.Oid, "Tarefa 05", situacaoPlanejamento.Oid.ToString(), dtInicio, colaborador1.Usuario.UserName, "Criar método", responsaveis, out tarefasImpactadas, ref dataHoraAcao, 3, 0);

            //lista de oid tarefas.
            List <CronogramaTarefa> cronogramaTarefas = new List <CronogramaTarefa>();

            cronogramaTarefas = CronogramaTarefaDao.ConsultarCronogramaTarefasPorOidCronograma(cronograma1.Oid);

            Assert.AreEqual(1, cronogramaTarefas[0].NbID, "Deveria ser 1, pois o método de busca deveria ordenar adequadamente a partir do NbId de cada tarefa");
            Assert.AreEqual(2, cronogramaTarefas[1].NbID, "Deveria ser 2, pois o método de busca deveria ordenar adequadamente a partir do NbId de cada tarefa");
            Assert.AreEqual(3, cronogramaTarefas[2].NbID, "Deveria ser 3, pois o método de busca deveria ordenar adequadamente a partir do NbId de cada tarefa");
            Assert.AreEqual(4, cronogramaTarefas[3].NbID, "Deveria ser 4, pois o método de busca deveria ordenar adequadamente a partir do NbId de cada tarefa");
            Assert.AreEqual(5, cronogramaTarefas[4].NbID, "Deveria ser 5, pois o método de busca deveria ordenar adequadamente a partir do NbId de cada tarefa");
        }
        public void DevePoderAlterarOsDadosDoCronograma()
        {
            var situacao = new SituacaoPlanejamento()
            {
                Oid        = Guid.NewGuid(),
                CsPadrao   = CsPadraoSistema.Sim,
                CsSituacao = CsTipoSituacaoPlanejamento.Ativo,
                CsTipo     = CsTipoPlanejamento.Planejamento
            };

            contexto.SituacaoPlanejamento.Add(situacao);
            contexto.SaveChanges();

            var cronograma = CronogramaBo.CriarCronogramaPadrao(contexto);

            var          novaData      = DateTime.Now.Date.AddDays(1);
            const string novaDescricao = "Wex Teste";
            var          dto           = new CronogramaDto
            {
                Oid      = cronograma.Oid,
                DtInicio = cronograma.DtInicio,
                DtFinal  = cronograma.DtFinal,
                OidSituacaoPlanejamento = cronograma.OidSituacaoPlanejamento,
                TxDescricao             = novaDescricao
            };

            Assert.IsTrue(CronogramaBo.EditarCronograma(dto), "Deveria ter salvo a edição do cronograma");

            contexto.Entry(cronograma).Reload();
            Assert.AreEqual(dto.TxDescricao, cronograma.TxDescricao, "Deveria ter salvo o nome do cronograma");
            Assert.AreEqual(dto.DtInicio, cronograma.DtInicio, "Deveria ter salvo a data de inicio do cronograma");
            Assert.AreEqual(dto.DtFinal, cronograma.DtFinal, "Deveria ter salvo a data de termino do cronograma");
        }
        public void EditarTarefaQuandoLinhaBaseNaoEstiverSalvaTest()
        {
            //cria situação planejamento
            SituacaoPlanejamento situacaoPlanejamento = CronogramaFactoryEntity.CriarSituacaoPlanejamento(contexto, "S1",
                                                                                                          CsTipoSituacaoPlanejamento.Ativo, CsTipoPlanejamento.Execução,
                                                                                                          CsPadraoSistema.Sim, true);

            Cronograma cronogramaPadrao1 = CronogramaBo.CriarCronogramaPadrao(contexto);

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

            string responsaveis = colaborador1.NomeCompleto;

            //iníco tarefa
            DateTime dataInicio = DateTime.Now;

            List <CronogramaTarefa> tarefaImpactadas;

            DateTime dataHoraAcao = new DateTime();

            CronogramaTarefa novaTarefa = CronogramaTarefaBo.CriarCronogramaTarefa(cronogramaPadrao1.Oid, (string)"Tarefa 01", situacaoPlanejamento, dataInicio, responsaveis, colaborador1.Usuario.UserName, out tarefaImpactadas, ref dataHoraAcao, (string)"Criar método", 3, 0);

            //busca tarefa criada
            CronogramaTarefa tarefaCriada = contexto.CronogramaTarefa.FirstOrDefault(o => o.Oid == novaTarefa.Oid);

            //Alterando responsaveis
            Colaborador colaborador2 = ColaboradorFactoryEntity.CriarColaborador(contexto, "pedro.lins", true);

            colaborador2.Usuario.UserName = "******";

            Colaborador colaborador3 = ColaboradorFactoryEntity.CriarColaborador(contexto, "joao.lins", true);

            colaborador3.Usuario.UserName = "******";

            string responsaveisAlterado = String.Format("{0},{1}", colaborador2.NomeCompleto, colaborador3.NomeCompleto);

            //cria situação planejamento alterada
            SituacaoPlanejamento situacaoPlanejamento2 = CronogramaFactoryEntity.CriarSituacaoPlanejamento(contexto, "S2",
                                                                                                           CsTipoSituacaoPlanejamento.Ativo, CsTipoPlanejamento.Cancelamento,
                                                                                                           CsPadraoSistema.Sim, true);

            string txDescricaoAlterada           = "Tarefa 01 alterada";
            string txObservacaoAlterada          = "Criar método alterado";
            Int16  EstimativaInicialHoraAlterada = 4;

            TarefaBo.EditarTarefa(tarefaCriada.Oid.ToString(), txDescricaoAlterada, situacaoPlanejamento2.Oid.ToString(), colaborador1.Usuario.UserName,
                                  txObservacaoAlterada, responsaveisAlterado, EstimativaInicialHoraAlterada, new TimeSpan(0), new TimeSpan(0), false, dataInicio);

            //busca tarefa criada
            CronogramaTarefa tarefaAlterada = CronogramaTarefaDao.ConsultarCronogramaTarefaPorOid(tarefaCriada.Oid, o => o.Tarefa.SituacaoPlanejamento, o => o.Tarefa.TarefaResponsaveis);

            DateUtil.CurrentDateTime = (DateTime)tarefaAlterada.Tarefa.DtAtualizadoEm;

            Assert.AreEqual(DateUtil.CurrentDateTime, tarefaAlterada.Tarefa.DtAtualizadoEm, "As datas devem ser iguais.");
            Assert.AreEqual(txDescricaoAlterada, tarefaAlterada.Tarefa.TxDescricao, "Devem ser as mesmas, pois a descrição foi alterada.");
            Assert.AreEqual(txObservacaoAlterada, tarefaAlterada.Tarefa.TxObservacao, "Devem ser as mesmas, pois a data foi alterada.");
            Assert.AreEqual(EstimativaInicialHoraAlterada, tarefaAlterada.Tarefa.NbEstimativaInicial, "");
            Assert.AreEqual(situacaoPlanejamento2.Oid, tarefaAlterada.Tarefa.OidSituacaoPlanejamento, "");
            Assert.AreEqual(responsaveisAlterado, tarefaAlterada.Tarefa.TxResponsaveis);
        }
        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.");
        }
        public void CriarTarefaQuandoLogSofrerAlteracaoPorOutroUsuarioTest()
        {
            //cria situação planejamento
            SituacaoPlanejamento situacaoPlanejamento = CronogramaFactoryEntity.CriarSituacaoPlanejamento(contexto, "S1",
                                                                                                          CsTipoSituacaoPlanejamento.Ativo, CsTipoPlanejamento.Execução,
                                                                                                          CsPadraoSistema.Sim, true);


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

            string responsaveis = colaborador1.NomeCompleto;

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


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

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

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

            tarefa.TxDescricao    = "Tarefa Alterada";
            tarefa.DtAtualizadoEm = DateUtil.ConsultarDataHoraAtual();
            tarefa.AtualizadoPor  = colaborador2;

            contexto.SaveChanges();

            DateUtil.CurrentDateTime = (DateTime)tarefa.DtAtualizadoEm;

            Assert.AreEqual("Tarefa Alterada", tarefa.TxDescricao);
            Assert.AreEqual(DateUtil.CurrentDateTime, tarefa.DtAtualizadoEm);
            Assert.AreEqual(colaborador2, tarefa.AtualizadoPor);
        }
Exemple #7
0
        /// <summary>
        /// Factory para crição do objeto de criação de tarefas
        /// </summary>
        /// <param name="contexto">contexto do banco</param>
        /// <param name="nbId">descrição para id da tarefa</param>
        /// <param name="txDescricao">descrição para nome da tarefa</param>
        /// <param name="txObservacao">descrição para observação da tarefa</param>
        /// <param name="situacaoPlanejamento">situação da tarefa</param>
        /// <param name="estimativaInicial">estimativa inicial da tarefa</param>
        /// <param name="realizado">Número de horas realizada na tarefa</param>
        /// <param name="colaborador">Colaborador atrelado a tarefa</param>
        /// <param name="cronograma">Cronograma da tarefa</param>
        /// <param name="tarefaSelecionada">verifica se nenhuma tarefa foi selecionada</param>
        /// <param name="save">verificação se é necessário salvar o objeto</param>
        /// <returns>Objeto de Tarefa</returns>
        public static CronogramaTarefa CriarTarefa(WexDb contexto, ushort nbId, String txDescricao, String txObservacao,
                                                   SituacaoPlanejamento situacaoPlanejamento, Int16 estimativaInicial, TimeSpan realizado,
                                                   Colaborador colaborador, Cronograma cronograma, CronogramaTarefa tarefaSelecionada, bool save = false)
        {
            CronogramaTarefa tarefa = new CronogramaTarefa()
            {
                Tarefa = new Tarefa()
                {
                    SituacaoPlanejamento = new SituacaoPlanejamento()
                }
            };

            tarefa.Cronograma = cronograma;

            if (situacaoPlanejamento != null)
            {
                tarefa.Tarefa.SituacaoPlanejamento = situacaoPlanejamento;
            }

            tarefa.Tarefa.TxDescricao             = txDescricao;
            tarefa.Tarefa.TxObservacao            = txObservacao;
            tarefa.Tarefa.DtInicio                = new DateTime(2011, 11, 01);
            tarefa.Tarefa.NbEstimativaInicial     = estimativaInicial;
            tarefa.Tarefa.TxResponsaveis          = colaborador.NomeCompleto;
            tarefa.Tarefa.EstimativaRealizadoHora = realizado;
            tarefa.Tarefa.AtualizadoPor           = colaborador;

            if (save)
            {
                contexto.CronogramaTarefa.Add(tarefa);
                contexto.SaveChanges();
            }

            return(tarefa);
        }
        public void DeveCriarUmRespectivoItemDeTrabalhoParaAsTarefasQueForemCriadas()
        {
            Assert.Inconclusive("Falta correção de ItemDeTrabalho");

            Cronograma cronograma = new Cronograma();

            cronograma.TxDescricao = "Cronograma1";
            contexto.Cronograma.Add(cronograma);

            SituacaoPlanejamento situacao = new SituacaoPlanejamento();

            situacao.CsTipo      = CsTipoPlanejamento.Planejamento;
            situacao.TxDescricao = "Nao iniciado";
            contexto.SituacaoPlanejamento.Add(situacao);

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

            contexto.SaveChanges();

            DateTime dat2 = DateTime.Now;
            List <CronogramaTarefa> tarefasList = new List <CronogramaTarefa>();

            CronogramaTarefaBo.CriarCronogramaTarefa(cronograma.Oid, "T1", situacao, DateTime.Now, "", "gabriel.matos", out tarefasList, ref dat2, "");
            CronogramaTarefaBo.CriarCronogramaTarefa(cronograma.Oid, "T2", situacao, DateTime.Now, "", "gabriel.matos", out tarefasList, ref dat2, "");
            CronogramaTarefaBo.CriarCronogramaTarefa(cronograma.Oid, "T3", situacao, DateTime.Now, "", "gabriel.matos", out tarefasList, ref dat2, "");
            CronogramaTarefaBo.CriarCronogramaTarefa(cronograma.Oid, "T4", situacao, DateTime.Now, "", "gabriel.matos", out tarefasList, ref dat2, "");
            List <Tarefa> tarefas = contexto.Tarefa.ToList();

            //List<ItemDeTrabalho> itens = new XPCollection<ItemDeTrabalho>( contexto ).ToList();
            //List<Guid> oidTarefas = new List<Guid>( tarefas.Select( o => o.Oid ) );
            //List<Guid> itensTrabalhoOid = new List<Guid>( itens.Select( o => o.Oid ) );
            //CollectionAssert.AreEquivalent( itensTrabalhoOid, oidTarefas, "Itens de trabalho deveria conter o oid de todas as tarefas criadas" );
        }
        public void CriarTarefaQuandoSituacaoPlanejamentoPadraoNaoExistirTest()
        {
            //Situação planejamento
            SituacaoPlanejamento situacaoPlanejamento1 = CronogramaFactoryEntity.CriarSituacaoPlanejamento(contexto,
                                                                                                           "S1", CsTipoSituacaoPlanejamento.Ativo, CsTipoPlanejamento.Execução, CsPadraoSistema.Não, true);


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


            string responsaveis = String.Format("{0}", colaborador1.NomeCompleto);

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

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

            tarefa1 = TarefaBo.CriarTarefa("Tarefa 01", null, dtInicio, colaborador1.Usuario.UserName, "Criar método1", responsaveis, 3);

            //busca tarefa criada
            Tarefa tarefaCriada1 = contexto.Tarefa.FirstOrDefault(o => o.Oid == tarefa1.Oid);

            //verifica se existe
            Assert.IsNotNull(tarefaCriada1, "Deveria retornar uma tarefa.");
            Assert.AreEqual(tarefa1, tarefaCriada1, "Deveria ter criado uma tarefa com os mesmos dados");
            //verifica se os responsáveis são os mesmos.
            Assert.AreEqual("Anderson,Pedro,Joao", tarefa1.TxResponsaveis, "Deveria retornar 3 responsáveis cadastrados na tarefa.");

            //Verifica Situação Planejamento
            Assert.AreEqual(situacaoPlanejamento1, tarefa1.SituacaoPlanejamento);
        }
        public void ExcluirTarefaQuandoNaoExistirTarefaParaExcluir()
        {
            //cria situação planejamento
            SituacaoPlanejamento situacaoPlanejamento = CronogramaFactoryEntity.CriarSituacaoPlanejamento(contexto, "S1",
                                                                                                          CsTipoSituacaoPlanejamento.Ativo, CsTipoPlanejamento.Execução,
                                                                                                          CsPadraoSistema.Sim, true);

            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", situacaoPlanejamento, dtInicio, colaborador1.Usuario.UserName, (string)"Criar método", responsaveis, 3);

            List <Guid> oidTarefas = new List <Guid>();

            oidTarefas.Add(tarefa.Oid);

            List <Guid> oidTarefasExcluidas = new List <Guid>();

            TarefaBo.ExcluirTarefa(contexto, oidTarefas);

            oidTarefasExcluidas = TarefaBo.ExcluirTarefa(contexto, oidTarefas);

            Tarefa tarefaExcluida = TarefaDao.ConsultarTarefaPorOid(tarefa.Oid);

            Assert.AreEqual(0, oidTarefasExcluidas.Count, "Não deve existir nenhuma tarefa na lista, pois nenhuma tarefa foi deletada (pois a tarefa já estava deletada)");
            Assert.IsNull(tarefaExcluida, "Deveria ser nulo, pois a tarefa deveria ter sido excluida.");
        }
        public void CriarTarefaQuandoHouverUmResponsavelApenasTest()
        {
            //cria situação planejamento
            SituacaoPlanejamento situacaoPlanejamento = CronogramaFactoryEntity.CriarSituacaoPlanejamento(contexto, "S1",
                                                                                                          CsTipoSituacaoPlanejamento.Ativo, CsTipoPlanejamento.Execução,
                                                                                                          CsPadraoSistema.Sim, true);

            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", situacaoPlanejamento, dtInicio, colaborador1.Usuario.UserName, (string)"Criar método", responsaveis, 3);

            //busca tarefa criada
            Tarefa tarefaCriada = contexto.Tarefa.FirstOrDefault(o => o.Oid == tarefa.Oid);

            //verifica se existe
            Assert.IsNotNull(tarefaCriada, "Deveria retornar uma tarefa.");
            Assert.AreEqual(tarefa.Oid, tarefaCriada.Oid, "Deveria ter criado uma tarefa com os mesmos dados");
        }
        public void DeveSalvarOsNovosDadosDoCronogramaQuandoForAlteradaASituacaoPlanejamento()
        {
            var naoIniciado = new SituacaoPlanejamento()
            {
                Oid        = Guid.NewGuid(),
                CsPadrao   = CsPadraoSistema.Não,
                CsSituacao = CsTipoSituacaoPlanejamento.Ativo,
                CsTipo     = CsTipoPlanejamento.Planejamento
            };

            contexto.SituacaoPlanejamento.Add(naoIniciado);
            contexto.SaveChanges();

            var cronograma = CronogramaBo.CriarCronogramaPadrao(contexto);

            var dto = new CronogramaDto
            {
                Oid      = cronograma.Oid,
                DtInicio = cronograma.DtInicio,
                DtFinal  = cronograma.DtFinal,
                OidSituacaoPlanejamento = naoIniciado.Oid,
                TxDescricao             = cronograma.TxDescricao
            };

            Assert.AreNotEqual(naoIniciado.Oid, cronograma.OidSituacaoPlanejamento, "a situação de planejamento devem ser inicialmente diferentes");

            Assert.IsTrue(CronogramaBo.EditarCronograma(dto), "Deveria ter salvo a edição do cronograma");

            contexto.Entry(cronograma).Reload();
            Assert.AreEqual(dto.TxDescricao, cronograma.TxDescricao, "Deveria ter salvo o nome do cronograma");
            Assert.AreEqual(dto.DtInicio, cronograma.DtInicio, "Deveria ter salvo a data de inicio do cronograma");
            Assert.AreEqual(dto.DtFinal, cronograma.DtFinal, "Deveria ter salvo a data de termino do cronograma");
            Assert.AreEqual(dto.OidSituacaoPlanejamento, cronograma.OidSituacaoPlanejamento, "Deveria ter salvo a nova situação planejamento de termino do cronograma");
        }
Exemple #13
0
        /// <summary>
        /// Factory para criação de situação planejamento
        /// </summary>
        /// <param name="contexto">Contexto do banco</param>
        /// <param name="txDescricao">descrição para descrição da situação planejamento</param>
        /// <param name="csSituacao">enum de situacao</param>
        /// <param name="csTipo">enum de tipo</param>
        /// <param name="padraoSistema">Verifica se é padrão do sistema</param>
        /// <param name="save">verificação se é necessário salvar o objeto</param>
        /// <returns>Objeto de Situação Planejamento</returns>
        public static SituacaoPlanejamento CriarSituacaoPlanejamento(WexDb contexto,
                                                                     String txDescricao = "",
                                                                     CsTipoSituacaoPlanejamento csSituacao = CsTipoSituacaoPlanejamento.Ativo,
                                                                     CsTipoPlanejamento csTipo             = CsTipoPlanejamento.Execução,
                                                                     CsPadraoSistema padraoSistema         = CsPadraoSistema.Não,
                                                                     bool save = true)
        {
            SituacaoPlanejamento situacaoPlanejamento = new SituacaoPlanejamento
            {
                TxDescricao = txDescricao,
                CsPadrao    = padraoSistema,
                TxKeys      = ((Shortcut)(contadorAtalhos + seedShortcut)).ToString(),
                KeyPress    = contadorAtalhos + seedShortcut,
                CsSituacao  = csSituacao,
                CsTipo      = csTipo
            };

            if (save)
            {
                contexto.SituacaoPlanejamento.Add(situacaoPlanejamento);
                contexto.SaveChanges();
            }
            contadorAtalhos++;

            return(situacaoPlanejamento);
        }
        /// <summary>
        /// Método responsável por editar uma tarefa
        /// </summary>
        /// <param name="contexto">Sessão corrente</param>
        /// <param name="oidCronogramaTarefa">Oid (Guid) da tarefa a ser editada</param>
        /// <param name="txDescricao">Descrição da tarefa alterada</param>
        /// <param name="oidSituacaoPlanejamento">Oid (Guid) da tarefa editada</param>
        /// <param name="dataInicio">Data de Inicio da tarefa editada</param>
        /// <param name="login">Login do usuário que editou a tarefa</param>
        /// <param name="txObservacao">Observação da tarefa editada</param>
        /// <param name="responsaveis">array de responsáveis pela tarefa</param>
        /// <param name="nbEstimativaInicial">Estimativa inicial da tarefa</param>
        /// <param name="nbEstimativaRestante">Estimativa restante da tarefa</param>
        /// <param name="nbRealizado">Horas realizadas da tarefa</param>
        /// <param name="csLinhaBaseSalva">Boolean afirmando se a tarefa foi salva a linda de base</param>
        /// <returns>Retorna uma Hash contendo dados de atualizado em, atualizado por e confirmação da edição</returns>
        public static Hashtable EditarTarefa(string oidCronogramaTarefa, string txDescricao, string oidSituacaoPlanejamento,
                                             string login, string txObservacao, string responsaveis,
                                             Int16 nbEstimativaInicial, TimeSpan nbEstimativaRestante, TimeSpan nbRealizado, bool csLinhaBaseSalva, DateTime dataInicio)
        {
            if (oidCronogramaTarefa == null || txDescricao == null || oidSituacaoPlanejamento == null ||
                login == null)
            {
                throw new ArgumentException("Os parâmetros OidCronogramaTarefa, TxDescricao, DataInício, SituacaoPlanejamento, login e TxObservação são obrigatórios.");
            }

            Hashtable        dadosEdicaoTarefa = new Hashtable();
            CronogramaTarefa cronogramaTarefa  = CronogramaTarefaDao.ConsultarCronogramaTarefaPorOid(Guid.Parse(oidCronogramaTarefa), o => o.Tarefa.SituacaoPlanejamento, o => o.Tarefa.AtualizadoPor.Usuario.Person);

            if (cronogramaTarefa == null)
            {
                dadosEdicaoTarefa.Add("EdicaoStatus", false);
                return(dadosEdicaoTarefa);
            }

            Tarefa               tarefaAntiga         = cronogramaTarefa.Tarefa.Clone();
            Colaborador          colaborador          = ColaboradorDAO.ConsultarColaborador(login, o => o.Usuario.Person);
            SituacaoPlanejamento situacaoPlanejamento = SituacaoPlanejamentoDAO.ConsultarSituacaoPlanejamentoPorOid(Guid.Parse(oidSituacaoPlanejamento));

            if (colaborador != null)
            {
                cronogramaTarefa.Tarefa.OidAtualizadoPor = colaborador.Oid;
                cronogramaTarefa.Tarefa.AtualizadoPor    = null;
            }

            if (situacaoPlanejamento != null)
            {
                cronogramaTarefa.Tarefa.OidSituacaoPlanejamento = situacaoPlanejamento.Oid;
                cronogramaTarefa.Tarefa.SituacaoPlanejamento    = null;
            }


            cronogramaTarefa.Tarefa.CsLinhaBaseSalva        = csLinhaBaseSalva;
            cronogramaTarefa.Tarefa.NbEstimativaInicial     = nbEstimativaInicial;
            cronogramaTarefa.Tarefa.EstimativaRealizadoHora = nbRealizado;
            cronogramaTarefa.Tarefa.TxDescricao             = txDescricao;
            cronogramaTarefa.Tarefa.TxObservacao            = txObservacao;
            cronogramaTarefa.Tarefa.DtAtualizadoEm          = DateTime.Now;
            cronogramaTarefa.Tarefa.TxResponsaveis          = responsaveis;
            cronogramaTarefa.Tarefa.DtInicio = dataInicio;

            EstimarHorasRestantesSugeridaPorTipoSituacaoPlanejamento(cronogramaTarefa.Tarefa, nbEstimativaRestante.Ticks, situacaoPlanejamento);
            TarefaDao.SalvarTarefa(cronogramaTarefa.Tarefa);
            TarefaHistoricoEstimativaBo.CriarHistorico(DateUtil.ConsultarDataHoraAtual(), cronogramaTarefa.Tarefa.Oid, cronogramaTarefa.Tarefa.NbEstimativaRestante);
            TarefaLogAlteracaoBo.CriarLogTarefa(cronogramaTarefa.Tarefa, tarefaAntiga);

            dadosEdicaoTarefa.Add("EdicaoStatus", true);
            dadosEdicaoTarefa.Add("DtAtualizadoEm", cronogramaTarefa.Tarefa.DtAtualizadoEm);
            dadosEdicaoTarefa.Add("TxAtualizadoPor", colaborador.NomeCompleto);

            return(dadosEdicaoTarefa);
        }
Exemple #15
0
        /// <summary>
        /// Método responsável por criar um histórico para uma determinada tarefa.
        /// </summary>
        ///
        /// <param name="oidTarefa">Oid da Tarefa</param>
        /// <param name="login">Login do usuário</param>
        /// <param name="nbHoraRealizado">Horas realizadas na atividade.</param>
        /// <param name="dtRealizado">Data de realização da atividade.</param>
        /// <param name="nbHoraInicial">Hora Inicial da atividade</param>
        /// <param name="nbHoraFinal">Hora Final da atividade</param>
        /// <param name="txComentario">Comentário da atividade</param>
        /// <param name="nbHoraRestante">Horas restantes da atividade</param>
        /// <param name="oidSituacaoPlanejamento">Oid da Situação Planejamento da atividade</param>
        /// <param name="txJustificativaReducao">Justificativa de redução da atividade</param>
        public static void CriarHistoricoTarefa(Guid oidTarefa, string login, TimeSpan nbHoraRealizado, DateTime dtRealizado, TimeSpan nbHoraInicial, TimeSpan nbHoraFinal, string txComentario, TimeSpan nbHoraRestante, Guid oidSituacaoPlanejamento, string txJustificativaReducao)
        {
            if (oidTarefa == new Guid() || String.IsNullOrEmpty(login))
            {
                throw new ArgumentException("Os parâmetros Login e OidTarefa não podem ser nulos.");
            }

            TarefaHistoricoTrabalho historico = new TarefaHistoricoTrabalho();
            Tarefa      tarefa      = TarefaDao.ConsultarTarefaPorOid(oidTarefa);
            Colaborador colaborador = ColaboradorDAO.ConsultarColaborador(login, o => o.Usuario.Person);

            if (tarefa == null)
            {
                return;
            }

            SituacaoPlanejamento situacaoPlanejamento = SituacaoPlanejamentoDAO.ConsultarSituacaoPlanejamentoPorOid(oidSituacaoPlanejamento);

            if (tarefa.NbEstimativaInicial <= 0 && (situacaoPlanejamento.CsTipo == CsTipoPlanejamento.Cancelamento || situacaoPlanejamento.CsTipo == CsTipoPlanejamento.Planejamento))
            {
                TarefaBo.AtualizarDadosTarefa(tarefa.Oid, colaborador, situacaoPlanejamento, nbHoraRealizado, nbHoraRestante, tarefa.CsLinhaBaseSalva);
                return;
            }
            // Caso não possua estimativa inicial não deve salvar historico da tarefa
            if (tarefa.NbEstimativaInicial <= 0 && situacaoPlanejamento.CsTipo != CsTipoPlanejamento.Impedimento)
            {
                throw new EstimativaInicialInvalidaException("Histórico da Tarefa não pode ser salvo, pois não foi estimado um tempo inicial para realização da tarefa");
            }

            if (!tarefa.CsLinhaBaseSalva)
            {
                TarefaBo.SalvarLinhaBaseTarefa(tarefa);
            }

            historico.OidTarefa               = tarefa.Oid;
            historico.HoraRealizado           = nbHoraRealizado;
            historico.DtRealizado             = dtRealizado;
            historico.HoraInicio              = nbHoraInicial;
            historico.HoraFinal               = nbHoraFinal;
            historico.TxComentario            = txComentario;
            historico.HoraRestante            = nbHoraRestante;
            historico.TxJustificativaReducao  = txJustificativaReducao;
            historico.OidColaborador          = colaborador.Oid;
            historico.OidSituacaoPlanejamento = situacaoPlanejamento.Oid;
            historico.TxComentario            = txComentario;
            historico.TxJustificativaReducao  = txJustificativaReducao;

            using (WexDb contexto = ContextFactoryManager.CriarWexDb())
            {
                contexto.TarefaHistoricoTrabalho.Add(historico);
                contexto.SaveChanges();
            }

            //Atualiza os dados da tarefa a partir dos dados salvos no histórico.
            TarefaBo.AtualizarDadosTarefa(tarefa.Oid, colaborador, situacaoPlanejamento, historico.HoraRealizado, historico.HoraRestante, tarefa.CsLinhaBaseSalva);
        }
        public void ExcluirCronogramaQuandoCronogramaNaoPossuirTarefasENaoPossuirUltimaSelecaoParaUmUsuarioTest()
        {
            SituacaoPlanejamento situacaoPlanejamento = CronogramaFactoryEntity.CriarSituacaoPlanejamento(contexto, "S1", CsTipoSituacaoPlanejamento.Ativo, CsTipoPlanejamento.Execução, CsPadraoSistema.Sim, true);

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

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

            Assert.IsTrue(cronogramaExcluido, "Deveria ser verdadeiro, pois o cronograma não possui tarefas e ele ainda existe");
        }
        /// <summary>
        /// Método responsável por buscar a situaçao de planejamento padrão
        /// É acionado pelo serviço, acessa a classe SituaçãoPlanejamento
        /// </summary>
        /// <param name="session">Sessão Corrente</param>
        /// <returns>Objeto SituaçãoPlanejamento</returns>
        public static SituacaoPlanejamentoDTO ConsultarSituacaoPadraoDto(Session session)
        {
            SituacaoPlanejamento situacaoPlanejamento = ConsultarSituacaoPadrao(session);

            if (situacaoPlanejamento != null)
            {
                return(situacaoPlanejamento.DtoFactory());
            }

            return(null);
        }
        /// <summary>
        /// Método responsável por buscar uma situaçao de planejamento especificada pelo Tipo
        /// É acionado pelo serviço, acessa a classe SituaçãoPlanejamento
        /// </summary>
        /// <param name="session">Sessão Corrente</param>
        /// <returns>Objeto SituaçãoPlanejamento</returns>
        public static SituacaoPlanejamentoDTO ConsultarSituacaoPlanejamentoPorTipoDto(Session session, int tipoSituacaoPlanejamento)
        {
            SituacaoPlanejamento situacaoPlanejamento = SituacaoPlanejamentoDAO.ConsultarSituacao(session, (CsTipoPlanejamento)tipoSituacaoPlanejamento);

            if (situacaoPlanejamento != null)
            {
                return(situacaoPlanejamento.DtoFactory());
            }

            return(null);
        }
        public void ExcluirTarefaQuandoExistirHistoricoELogAlteracao()
        {
            //cria situação planejamento
            SituacaoPlanejamento situacaoPlanejamento = CronogramaFactoryEntity.CriarSituacaoPlanejamento(contexto, "S1",
                                                                                                          CsTipoSituacaoPlanejamento.Ativo, CsTipoPlanejamento.Execução,
                                                                                                          CsPadraoSistema.Sim, true);

            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", situacaoPlanejamento, dtInicio, colaborador1.Usuario.UserName, (string)"Criar método", responsaveis, 3);

            TarefaHistoricoTrabalho tarefaHistorico = new TarefaHistoricoTrabalho();

            tarefaHistorico.OidTarefa      = tarefa.Oid;
            tarefaHistorico.OidColaborador = colaborador1.Oid;
            tarefaHistorico.DtRealizado    = DateTime.Now;
            tarefaHistorico.HoraFinal      = new TimeSpan(10, 0, 0);
            tarefaHistorico.HoraInicio     = new TimeSpan(5, 0, 0);
            tarefaHistorico.HoraRealizado  = new TimeSpan(4, 0, 0);
            tarefaHistorico.HoraRestante   = new TimeSpan(6, 0, 0);
            tarefaHistorico.TxComentario   = "Comentario";

            contexto.TarefaHistoricoTrabalho.Add(tarefaHistorico);
            contexto.SaveChanges();

            List <Guid> oidTarefas = new List <Guid>();

            oidTarefas.Add(tarefa.Oid);

            List <Guid> oidTarefasExcluidas = new List <Guid>();

            oidTarefasExcluidas = TarefaBo.ExcluirTarefa(contexto, oidTarefas);

            Tarefa tarefaExcluida = TarefaDao.ConsultarTarefaPorOid(tarefa.Oid);

            TarefaHistoricoTrabalho tarefaHistoricoExcluido = contexto.TarefaHistoricoTrabalho.FirstOrDefault(o => o.OidTarefa == tarefa.Oid);

            TarefaLogAlteracao tarefaLogExcluido = contexto.TarefaLogAlteracao.FirstOrDefault(o => o.OidTarefa == tarefa.Oid);

            Assert.AreEqual(1, oidTarefasExcluidas.Count, "Deve ter excluido uma tarefa");
            Assert.AreEqual(tarefa.Oid, oidTarefasExcluidas[0], "Deve ter excluido a tarefa com este oid");
            Assert.IsNull(tarefaExcluida, "Deveria ser nulo, pois a tarefa deveria ter sido excluida.");
            Assert.IsNotNull(tarefaHistoricoExcluido, "Não deveria ser nulo, pois a tarefa deveria ter sido excluida, mas o historico permanece.");
            Assert.IsNotNull(tarefaLogExcluido, "Não deveria ser nulo, pois a tarefa deveria ter sido excluida, mas o Log permanece.");
        }
        /// <summary>
        /// Método responsável por criar uma tarefa dependente de projeto e cronograma.
        /// É acessado pelo serviço de planejamento quando solicitado pela tela de cronograma.
        /// </summary>
        /// <param name="contexto">Contexto do banco</param>
        /// <param name="login">Login do usuario</param>
        /// <param name="oidCronograma"> oid cronograma</param>
        /// <param name="txDescricaoTarefa"> descrição da tarefa </param>
        /// <param name="txObservacaoTarefa">observações da tarefa</param>
        /// <param name="oidSituacao">oid situação da tarefa</param>
        /// <param name="responsaveis">responsáveis pela tarefa</param>
        /// <param name="nbEstimativaInicial"> horas estimadas inicialmente</param>
        /// <param name="dtInicio"> data de inicio da tarefa</param>
        /// <param name="oidTarefaSelecionada">oid da tarefa</param>
        /// <param name="salvar"> condição para indicar se irá salvar ou não a tarefa dentro da classe tarefa</param>
        /// <returns>hash contendo informações sobre a tarefa e lista das tarefas impactadas</returns>
        public static CronogramaTarefa CriarTarefa(Guid oidCronograma, string txDescricaoTarefa, string oidSituacao, DateTime dtInicio, string login, string txObservacaoTarefa, string responsaveis, out List <CronogramaTarefa> tarefasImpactadas, ref DateTime dataHoraAcao, Int16 nbEstimativaInicial = 0, short nbIDReferencia = 0)
        {
            if (oidCronograma == null || oidCronograma == new Guid() || String.IsNullOrEmpty(oidSituacao))
            {
                throw new ArgumentException("Os parametros session, oidCronograma sao obrigatorios.");
            }

            SituacaoPlanejamento situacaoPlanejamento = SituacaoPlanejamentoDAO.ConsultarSituacaoPlanejamentoPorOid(Guid.Parse(oidSituacao));

            CronogramaTarefa novaTarefa = CronogramaTarefaBo.CriarCronogramaTarefa(oidCronograma, txDescricaoTarefa, situacaoPlanejamento, dtInicio, responsaveis, login, out tarefasImpactadas, ref dataHoraAcao, txObservacaoTarefa, nbEstimativaInicial, nbIDReferencia);

            return(novaTarefa);
        }
        public void ExcluirCronogramaQuandoCronogramaPossuirTarefasENaoPossuirUltimaSelecaoTest()
        {
            SituacaoPlanejamento situacaoPlanejamento = CronogramaFactoryEntity.CriarSituacaoPlanejamento(contexto, "S1", CsTipoSituacaoPlanejamento.Ativo, CsTipoPlanejamento.Execução, CsPadraoSistema.Sim, true);

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

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

            CronogramaTarefa cronogramaTarefa = CronogramaFactoryEntity.CriarTarefa(contexto, 1, "Tarefa 01", "", situacaoPlanejamento, 0, new TimeSpan(), colaborador, cronograma1, null, true);

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

            Assert.IsTrue(cronogramaExcluido, "Deveria ser true, pois o cronograma exclui quaisquer tarefas associadas a ele.");
        }
        public void EditarTarefaQuandoAlterarHorasRestantesEHorasRealizadoTarefaTest()
        {
            //cria situação planejamento
            SituacaoPlanejamento situacaoPlanejamento = CronogramaFactoryEntity.CriarSituacaoPlanejamento(contexto, "S1",
                                                                                                          CsTipoSituacaoPlanejamento.Ativo, CsTipoPlanejamento.Execução,
                                                                                                          CsPadraoSistema.Sim, true);

            Cronograma cronogramaPadrao1 = CronogramaBo.CriarCronogramaPadrao(contexto);


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

            string responsaveis = colaborador1.NomeCompleto;

            //iníco tarefa
            DateTime dataInicio = DateTime.Now;

            List <CronogramaTarefa> tarefasImpactadas;
            DateTime         dataHoraAcao = new DateTime();
            CronogramaTarefa novaTarefa   = CronogramaTarefaBo.CriarCronogramaTarefa(cronogramaPadrao1.Oid, (string)"Tarefa 01", situacaoPlanejamento, dataInicio, responsaveis, colaborador1.Usuario.UserName, out tarefasImpactadas, ref dataHoraAcao, (string)"Criar método", 3, 0);

            //busca tarefa criada
            CronogramaTarefa tarefaCriada = CronogramaTarefaDao.ConsultarCronogramaTarefaPorOid(novaTarefa.Oid, o => o.Tarefa.SituacaoPlanejamento);

            //Salvando a linha de base
            bool     salvarLinhaBaseTarefa = true;
            TimeSpan estimativaRestante    = tarefaCriada.Tarefa.EstimativaInicialHora;

            string responsaveisAlterado = colaborador1.NomeCompleto;

            TarefaBo.EditarTarefa(tarefaCriada.Oid.ToString(), tarefaCriada.Tarefa.TxDescricao, tarefaCriada.Tarefa.SituacaoPlanejamento.Oid.ToString(), colaborador1.Usuario.UserName,
                                  tarefaCriada.Tarefa.TxObservacao, responsaveisAlterado, tarefaCriada.Tarefa.NbEstimativaInicial, estimativaRestante, new TimeSpan(0), salvarLinhaBaseTarefa, dataInicio);

            //busca tarefa criada
            CronogramaTarefa tarefaAlterada = contexto.CronogramaTarefa.FirstOrDefault(o => o.Oid == tarefaCriada.Oid);

            //Alterando Estimativa Restante da tarefa
            TimeSpan estimativaRestanteAlterada = new TimeSpan(1, 0, 0);
            TimeSpan horasRealizado             = new TimeSpan(2, 0, 0);

            TarefaBo.EditarTarefa(tarefaCriada.Oid.ToString(), tarefaCriada.Tarefa.TxDescricao, tarefaCriada.Tarefa.SituacaoPlanejamento.Oid.ToString(), colaborador1.Usuario.UserName,
                                  tarefaCriada.Tarefa.TxObservacao, responsaveisAlterado, tarefaCriada.Tarefa.NbEstimativaInicial, estimativaRestanteAlterada, horasRealizado, salvarLinhaBaseTarefa, DateTime.Now);

            //busca tarefa criada
            CronogramaTarefa tarefaAlteradaHorario = CronogramaTarefaDao.ConsultarCronogramaTarefaPorOid(tarefaCriada.Oid, o => o.Tarefa.SituacaoPlanejamento);

            Assert.AreEqual(new TimeSpan(3, 0, 0), tarefaCriada.Tarefa.EstimativaInicialHora, "Deve ser a mesma estimativa inicial.");
            Assert.AreEqual(estimativaRestanteAlterada, tarefaAlteradaHorario.Tarefa.EstimativaRestanteHora, "Deve ter alterado a estimativa restante.");
            Assert.AreEqual(horasRealizado, tarefaAlteradaHorario.Tarefa.EstimativaRealizadoHora, "Deve ter alterado as horas realizado.");
        }
Exemple #23
0
        public void ConsultarUltimoCronogramaSelecionadoQuandoUmUsuarioPossuirUmCronogramaAnteriormenteSelecinadoTest()
        {
            SituacaoPlanejamento situacaoPlanejamento1 = CronogramaFactoryEntity.CriarSituacaoPlanejamento(contexto, "Situacao 01", CsTipoSituacaoPlanejamento.Ativo, CsTipoPlanejamento.Execução, CsPadraoSistema.Sim, true);

            User usuario01 = CronogramaFactoryEntity.CriarUsuario(contexto, "anderson.lins", "Anderson", "Lins", "*****@*****.**", true);

            Cronograma cronograma01 = CronogramaFactoryEntity.CriarCronograma(contexto, "Cronograma01", situacaoPlanejamento1, DateTime.Now, DateTime.Now, true);

            CronogramaUltimaSelecaoDao.SalvarUltimoCronogramaSelecionado(contexto, usuario01.UserName, cronograma01.Oid);

            Cronograma cronogramaUsuario01 = CronogramaUltimaSelecaoDao.ConsultarUltimoCronogramaSelecionado(contexto, usuario01.UserName);

            Assert.AreEqual(cronograma01, cronogramaUsuario01, "Deve ser o mesmo Cronograma, pois salvou como último cronograma selecionado para este usuário");
        }
        public void DeveCriarEArmazenarUmaSituacaoPlanejamento()
        {
            const string txDescricao          = "Não iniciado";
            Guid         fixedOid             = Guid.NewGuid();
            var          situacaoPlanejamento = new SituacaoPlanejamento();

            situacaoPlanejamento.Oid         = fixedOid;
            situacaoPlanejamento.TxDescricao = txDescricao;
            situacaoPlanejamento.CsPadrao    = CsPadraoSistema.Sim;
            situacaoPlanejamento.CsSituacao  = CsTipoSituacaoPlanejamento.Ativo;
            situacaoPlanejamento.CsTipo      = CsTipoPlanejamento.Planejamento;
            SituacaoPlanejamentoDAO.CriarSituacaoPlanejamento(contexto, situacaoPlanejamento);
            Assert.AreEqual(1, contexto.SituacaoPlanejamento.Local.Count, "Deveria conter uma nova situação planejamento");
            Assert.AreEqual(txDescricao, contexto.SituacaoPlanejamento.Find(fixedOid).TxDescricao, string.Format("Deveria ter encontrado uma situação com a seguinte descrição {0}", txDescricao));
        }
        public void ExcluirCronogramaQuandoCronogramaNaoExistirMaisTest()
        {
            SituacaoPlanejamento situacaoPlanejamento = CronogramaFactoryEntity.CriarSituacaoPlanejamento(contexto, "S1", CsTipoSituacaoPlanejamento.Ativo, CsTipoPlanejamento.Execução, CsPadraoSistema.Sim, true);

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

            Guid oidCronograma = cronograma1.Oid;

            contexto.Cronograma.Remove(cronograma1);
            contexto.SaveChanges();

            bool cronogramaExcluido = CronogramaBo.ExcluirCronograma(contexto, oidCronograma);

            Assert.IsFalse(cronogramaExcluido, "Deveria ser falo, pois o cronograma não deveria existir mais.");
        }
        public void AtualizarDadosTarefaQuandoJáExistirColaboradorNaListaDeResponsaveisTest()
        {
            //Cria situação planejamento
            SituacaoPlanejamento situacaoPlanejamentoNaoIniciado = CronogramaFactoryEntity.CriarSituacaoPlanejamento(contexto, "Não Iniciado",
                                                                                                                     CsTipoSituacaoPlanejamento.Ativo,
                                                                                                                     CsTipoPlanejamento.Execução,
                                                                                                                     CsPadraoSistema.Não, true);

            //Cria situação planejamento
            SituacaoPlanejamento situacaoPlanejamentoEmAndamento = CronogramaFactoryEntity.CriarSituacaoPlanejamento(contexto, "Em Andamento",
                                                                                                                     CsTipoSituacaoPlanejamento.Ativo,
                                                                                                                     CsTipoPlanejamento.Execução,
                                                                                                                     CsPadraoSistema.Não, true);

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


            string responsaveis = String.Format("{0}", colaborador1.NomeCompleto);


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

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

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

            //busca tarefa criada
            Tarefa tarefaCriada = TarefaDao.ConsultarTarefaPorOid(tarefa1.Oid, o => o.SituacaoPlanejamento);

            //simulando passagem de parâmetros ao criar um histórico.
            TarefaBo.AtualizarDadosTarefa(tarefaCriada.Oid, colaborador1, situacaoPlanejamentoEmAndamento, new TimeSpan(3, 0, 0), new TimeSpan(2, 0, 0), tarefaCriada.CsLinhaBaseSalva);

            Tarefa        tarefaAlterada     = TarefaDao.ConsultarTarefaPorOid(tarefaCriada.Oid, o => o.SituacaoPlanejamento);
            List <string> responsaveisTarefa = new List <string>(tarefaAlterada.TxResponsaveis.Split(','));

            //Responsável Tarefa
            Assert.AreEqual(1, responsaveisTarefa.Count, "Deveria ter um responsável, pois foi adicionado apenas 1 colaborador pela tarefa.");
            Assert.AreEqual(colaborador1.NomeCompleto, responsaveisTarefa.First(), "Deveriam ser iguais, pois é o único cadastrado.");

            //Situacao Planejamento
            Assert.AreEqual(tarefaAlterada.OidSituacaoPlanejamento, situacaoPlanejamentoEmAndamento.Oid, "Deveria ser o mesmo Oid, pois a tarefa foi alterada para Em Andamento.");

            //Estimativas
            Assert.AreEqual(new TimeSpan(2, 0, 0), tarefaAlterada.NbEstimativaRestante.ToTimeSpan(), "Deveriam ser iguais, pois a tarefa possui 5 horas de estimativa inicial e foram realizadas 3 horas, então sobram 2");
            Assert.AreEqual(new TimeSpan(3, 0, 0), tarefaAlterada.NbRealizado.ToTimeSpan(), "Deveria ser 3 horas, pois foram realizadas 3 horas na tarefa e o historico foi salvo.");
        }
Exemple #27
0
        public void CriarContextoTest()
        {
            //cria situação planejamento
            SituacaoPlanejamento situacaoPlanejamento = CronogramaFactoryEntity.CriarSituacaoPlanejamento(contexto, "Não Iniciado",
                                                                                                          CsTipoSituacaoPlanejamento.Ativo, CsTipoPlanejamento.Planejamento,
                                                                                                          CsPadraoSistema.Sim, true);

            //cria cronograma
            Cronograma cronograma1 = CronogramaFactoryEntity.CriarCronograma(contexto, "C1", situacaoPlanejamento, new DateTime(), new DateTime(), true);
            Cronograma cronograma2 = CronogramaFactoryEntity.CriarCronograma(contexto, "C2", situacaoPlanejamento, new DateTime(), new DateTime(), true);
            Cronograma cronograma3 = CronogramaFactoryEntity.CriarCronograma(contexto, "C3", situacaoPlanejamento, new DateTime(), new DateTime(), true);

            cronogramas.Add(cronograma1);
            cronogramas.Add(cronograma2);
            cronogramas.Add(cronograma3);
        }
        public void CriarTarefaQuandoTarefasForemImpactadasTest()
        {
            SituacaoPlanejamento situacaoPlanejamento = CronogramaFactoryEntity.CriarSituacaoPlanejamento(contexto, "S1", CsTipoSituacaoPlanejamento.Ativo, CsTipoPlanejamento.Execução, CsPadraoSistema.Sim, true);

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

            Cronograma cronograma2 = CronogramaFactoryEntity.CriarCronograma(contexto, "Cronograma 02", situacaoPlanejamento, new DateTime(), new DateTime(), true);

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

            string responsaveis = colaborador1.NomeCompleto;

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

            List <CronogramaTarefa> tarefasImpactadas1;
            List <CronogramaTarefa> tarefasImpactadas2;
            DateTime dataHoraAcao = new DateTime();

            //cria tarefas cronograma1
            CronogramaBo.CriarTarefa(cronograma1.Oid, "Tarefa 01", situacaoPlanejamento.Oid.ToString(), dtInicio, colaborador1.Usuario.UserName, "Criar método", responsaveis, out tarefasImpactadas1, ref dataHoraAcao, 3, 0);

            List <CronogramaTarefa> lstCronoTarefa1 = contexto.CronogramaTarefa.Where(o => o.OidCronograma == cronograma1.Oid).ToList();

            CronogramaBo.CriarTarefa(cronograma1.Oid, "Tarefa 02", situacaoPlanejamento.Oid.ToString(), dtInicio, colaborador1.Usuario.UserName, "Criar método", responsaveis, out tarefasImpactadas1, ref dataHoraAcao, 3, lstCronoTarefa1[0].NbID);

            lstCronoTarefa1 = contexto.CronogramaTarefa.Where(o => o.OidCronograma == cronograma1.Oid).ToList();

            CronogramaBo.CriarTarefa(cronograma1.Oid, "Tarefa 03", situacaoPlanejamento.Oid.ToString(), dtInicio, colaborador1.Usuario.UserName, "Criar método", responsaveis, out tarefasImpactadas1, ref dataHoraAcao, 3, lstCronoTarefa1[0].NbID);

            lstCronoTarefa1 = contexto.CronogramaTarefa.Where(o => o.OidCronograma == cronograma1.Oid).ToList();

            CronogramaBo.CriarTarefa(cronograma2.Oid, "Tarefa 01", situacaoPlanejamento.Oid.ToString(), dtInicio, colaborador1.Usuario.UserName, "Criar método", responsaveis, out tarefasImpactadas2, ref dataHoraAcao, 3, 0);

            List <CronogramaTarefa> lstCronoTarefa2 = contexto.CronogramaTarefa.Where(o => o.OidCronograma == cronograma2.Oid).ToList();

            CronogramaBo.CriarTarefa(cronograma2.Oid, "Tarefa 02", situacaoPlanejamento.Oid.ToString(), dtInicio, colaborador1.Usuario.UserName, "Criar método", responsaveis, out tarefasImpactadas2, ref dataHoraAcao, 3, lstCronoTarefa2[0].NbID);

            lstCronoTarefa2 = contexto.CronogramaTarefa.Where(o => o.OidCronograma == cronograma2.Oid).ToList();

            Assert.IsNotNull(lstCronoTarefa1);
            Assert.AreEqual(3, lstCronoTarefa1.Count);
            Assert.AreEqual(2, tarefasImpactadas1.Count);

            Assert.IsNotNull(lstCronoTarefa2);
            Assert.AreEqual(2, lstCronoTarefa2.Count);
        }
        public void ExcluirCronogramaQuandoCronogramaNaoPossuirTarefasEPossuirUltimaSelecaoTest()
        {
            SituacaoPlanejamento situacaoPlanejamento = CronogramaFactoryEntity.CriarSituacaoPlanejamento(contexto, "S1", CsTipoSituacaoPlanejamento.Ativo, CsTipoPlanejamento.Execução, CsPadraoSistema.Sim, true);

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

            User usuario = CronogramaFactoryEntity.CriarUsuario(contexto, "anderson.lins", "Anderson", "Lins", "*****@*****.**", true);

            CronogramaUltimaSelecao ultimaSelecao = new CronogramaUltimaSelecao();

            ultimaSelecao.DataAcesso          = DateTime.Now;
            ultimaSelecao.Usuario             = usuario;
            ultimaSelecao.OidUltimoCronograma = cronograma1.Oid;
            ultimaSelecao.Cronograma          = cronograma1;

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

            Assert.IsTrue(cronogramaExcluido, "Deveria ser verdadeiro, pois o cronograma não possui tarefas associadas a ele.");
        }
Exemple #30
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.");
        }