Пример #1
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 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.");
        }
        /// <summary>
        /// Método responsável por construir um objeto novaTarefaDto a partir de dados vindos de uma hash.
        /// </summary>
        /// <param name="dadosTarefa">Hash contendo os dados relevantes de uma tarefa que foi criada</param>
        /// <returns>Retorna um DTO com o Oid, NbId, lista de tarefas impactadas, data da atualização e quem atualizou a tarefa</returns>
        public static TarefaCriadaDto TarefaCriadaDtoFactory(CronogramaTarefa novaTarefa, List <CronogramaTarefa> impactadas, DateTime dataHoraAcao)
        {
            TarefaCriadaDto tarefa = new TarefaCriadaDto()
            {
                OidCronogramaTarefa                   = novaTarefa.Oid,
                OidCronograma                         = (Guid)novaTarefa.OidCronograma,
                OidTarefa                             = novaTarefa.Tarefa.Oid,
                NbIdTarefa                            = novaTarefa.NbID,
                TarefasImpactadas                     = impactadas.ToDictionary(o => o.Oid.ToString(), o => o.NbID),
                CsLinhaBaseSalva                      = novaTarefa.Tarefa.CsLinhaBaseSalva,
                DtInicio                              = (DateTime)novaTarefa.Tarefa.DtInicio,
                NbEstimativaInicial                   = novaTarefa.Tarefa.NbEstimativaInicial,
                NbEstimativaRestante                  = novaTarefa.Tarefa.NbEstimativaRestante,
                NbRealizado                           = novaTarefa.Tarefa.NbRealizado,
                OidSituacaoPlanejamentoTarefa         = novaTarefa.Tarefa.SituacaoPlanejamento.Oid,
                TxDescricaoColaborador                = novaTarefa.Tarefa.TxResponsaveis,
                TxDescricaoSituacaoPlanejamentoTarefa = novaTarefa.Tarefa.SituacaoPlanejamento.TxDescricao,
                TxDescricaoTarefa                     = novaTarefa.Tarefa.TxDescricao,
                TxObservacaoTarefa                    = novaTarefa.Tarefa.TxObservacao,
                DtAtualizadoEm                        = (DateTime)novaTarefa.Tarefa.DtAtualizadoEm,
                TxAtualizadoPor                       = novaTarefa.Tarefa.AtualizadoPor.NomeCompleto,
                dataHoraAcao                          = dataHoraAcao,
            };

            return(tarefa);
        }
        /// <summary>
        /// Método responsável por buscar uma tarefa pelo Oid e Converter para Dto
        /// </summary>
        /// <param name="oidCronogramaTarefa">Oid da tarefa a ser procurada</param>
        /// <returns>Tarefa encontrada</returns>
        public static CronogramaTarefaDto ConsultarCronogramaTarefaPorOidDto(Guid oidCronogramaTarefa)
        {
            CronogramaTarefa cronogramaTarefa = CronogramaTarefaDao.ConsultarCronogramaTarefaPorOid(oidCronogramaTarefa, o => o.Tarefa.AtualizadoPor.Usuario.Person, o => o.Tarefa.SituacaoPlanejamento, o => o.Cronograma);
            DateTime         dataHoraAcao     = DateTime.Now;

            return(CronogramaTarefaBo.DtoFactory(cronogramaTarefa, dataHoraAcao));
        }
        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);
        }
        /// <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);
        }
Пример #7
0
        public ActionResult CriarTarefa(TarefaCriacaoDto tarefa)
        {
            CronogramaTarefa        novaTarefa        = null;
            List <CronogramaTarefa> tarefasImpactadas = null;
            DateTime dataHoraAcao = new DateTime();

            novaTarefa = CronogramaBo.CriarTarefa(tarefa.OidCronograma, tarefa.TxDescricaoTarefa, tarefa.OidSituacaoPlanejamentoTarefa, tarefa.DtInicio, tarefa.AutorCriacao,
                                                  tarefa.TxObservacaoTarefa, tarefa.TxResponsaveis, out tarefasImpactadas, ref dataHoraAcao, tarefa.NbEstimativaInicial, tarefa.NbIdReferencia);
            return(Json(TarefaBo.TarefaCriadaDtoFactory(novaTarefa, tarefasImpactadas, dataHoraAcao)));
        }
        /// <summary>
        /// Método responsável por salvar um CronogramaTarefa no banco de dados.
        /// Caso gere exception, tenta novamente realizar a ação de salvar.
        /// </summary>
        /// <param name="contexto">contexto do banco</param>
        /// <param name="cronogramaTarefa">CronogramaTarefa que será salvo.</param>
        /// <param name="numeroTentativas">quantidade de vezes que irá tentar salvar</param>
        /// <returns>Tarefa que foi salva/atualizada</returns>
        public static CronogramaTarefa Salvar(CronogramaTarefa cronogramaTarefa)
        {
            CronogramaTarefa copia = cronogramaTarefa.Clone();

            copia.Cronograma = null;
            copia.Tarefa     = null;

            try
            {
                using (WexDb contexto = ContextFactoryManager.CriarWexDb())
                {
                    if (contexto.CronogramaTarefa.Existe(o => o.Oid == cronogramaTarefa.Oid))
                    {
                        contexto.CronogramaTarefa.Attach(copia);
                        contexto.Entry(copia).State = EntityState.Modified;
                    }
                    else
                    {
                        contexto.CronogramaTarefa.Add(copia);
                    }
                    contexto.SaveChanges();
                }
            }
            catch (Exception)
            {
                using (WexDb contexto = ContextFactoryManager.CriarWexDb())
                {
                    if (contexto.CronogramaTarefa.Existe(o => o.Oid == cronogramaTarefa.Oid))
                    {
                        if (contexto.CronogramaTarefa.ExisteLocalmente(o => o.Oid == cronogramaTarefa.Oid))
                        {
                            contexto.Entry <CronogramaTarefa>(copia).Reload();
                            contexto.CronogramaTarefa.Attach(copia);
                            contexto.Entry(copia).State = EntityState.Modified;
                        }
                        else
                        {
                            contexto.CronogramaTarefa.Attach(copia);
                            contexto.Entry <CronogramaTarefa>(copia).Reload();
                            contexto.CronogramaTarefa.Attach(copia);
                            contexto.Entry(copia).State = EntityState.Modified;
                        }
                    }
                    else
                    {
                        contexto.CronogramaTarefa.Add(copia);
                    }
                    contexto.SaveChanges();
                }
            }

            return(cronogramaTarefa);
        }
        /// <summary>
        /// Método responsável por realizar a exclusão de um objeto CronogramaTarefa
        /// obs: caso ele não consiga, ele atualiza o objeto (caso tenha sido alterado por outra thread) e realiza novamente a tentativa de exclusão.
        /// <param name="cronogramaTarefa">Tarefa que será excluida</param>
        /// <param name="numeroTentativas">número de tentivas para tentar excluir</param>
        public static void Excluir(CronogramaTarefa cronogramaTarefa)
        {
            Tarefa copiaTarefa = cronogramaTarefa.Tarefa.Clone();

            cronogramaTarefa.CsExcluido = true;
            cronogramaTarefa.Tarefa     = null;
            cronogramaTarefa.Cronograma = null;

            copiaTarefa.CsExcluido               = true;
            copiaTarefa.AtualizadoPor            = null;
            copiaTarefa.LogsAlteracao            = null;
            copiaTarefa.SituacaoPlanejamento     = null;
            copiaTarefa.TarefaHistoricoTrabalhos = null;
            copiaTarefa.TarefaResponsaveis       = null;

            try
            {
                using (WexDb contexto = ContextFactoryManager.CriarWexDb())
                {
                    if (contexto.CronogramaTarefa.Existe(o => o.Oid == cronogramaTarefa.Oid))
                    {
                        contexto.CronogramaTarefa.Attach(cronogramaTarefa);
                        contexto.Tarefa.Attach(copiaTarefa);
                        contexto.Entry(cronogramaTarefa).State = EntityState.Modified;
                        contexto.Entry(copiaTarefa).State      = EntityState.Modified;
                    }

                    contexto.SaveChanges();
                }
            }
            catch (Exception)
            {
                using (WexDb contexto = ContextFactoryManager.CriarWexDb())
                {
                    if (contexto.CronogramaTarefa.Existe(o => o.Oid == cronogramaTarefa.Oid))
                    {
                        contexto.CronogramaTarefa.Attach(cronogramaTarefa);
                        contexto.Tarefa.Attach(copiaTarefa);
                        contexto.Entry <CronogramaTarefa>(cronogramaTarefa).Reload();
                        cronogramaTarefa.CsExcluido = true;
                        contexto.Entry <Tarefa>(copiaTarefa).Reload();
                        copiaTarefa.CsExcluido = true;
                        contexto.CronogramaTarefa.Attach(cronogramaTarefa);
                        contexto.Tarefa.Attach(copiaTarefa);
                        contexto.Entry(cronogramaTarefa).State = EntityState.Modified;
                        contexto.Entry(copiaTarefa).State      = EntityState.Modified;
                    }

                    contexto.SaveChanges();
                }
            }
        }
        /// <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.");
        }
        public void DeveCriarUmHistoricoQuandoNaoPossuirHistoricoRestanteParaDataEspecificada()
        {
            DateTime dataInicio = DateTime.Parse("05/05/2014");

            AlterarDataInicioEDataFinalCronograma(dataInicio, DateTime.Parse("09/05/2014"));

            CronogramaTarefa cronogramaTarefa = _cronogramaTarefas.FirstOrDefault();

            const int nbHorasRestantes = 0;

            var tarefaEstimativa = new TarefaHistoricoEstimativaBuilder().Data(dataInicio).HorasRestantes(nbHorasRestantes).OidTarefa(cronogramaTarefa.OidTarefa).Criar();
            var novoHistorico    = TarefaHistoricoEstimativaDao.SalvarHistorico(tarefaEstimativa);

            Assert.IsNotNull(novoHistorico, "Deveria ter retornado o objeto do histórico criado");
            Assert.AreEqual(dataInicio.Date, novoHistorico.DtPlanejado.Date, string.Format("Deveria ter criado um histórico para a data {0}", dataInicio.Date));
            Assert.AreEqual(cronogramaTarefa.OidTarefa, novoHistorico.OidTarefa, string.Format("Deveria ter criado um histórico para a tarefa de oid {0}", cronogramaTarefa.OidTarefa));
            Assert.AreEqual(nbHorasRestantes, novoHistorico.NbHoraRestante, string.Format("Deveria ter criado um histórico para a data {0}", dataInicio.Date));
        }
Пример #14
0
        /// <summary>
        /// Compara 2 objetos CronogramaTarefa
        /// </summary>
        /// <param name="t1">objeto 1</param>
        /// <param name="t2">objeto 2</param>
        /// <returns></returns>
        public bool CompararCronogramaTarefa(CronogramaTarefa t1, CronogramaTarefa t2)
        {
            if (t1 == null && t2 == null)
            {
                return(true);
            }

            if (t1 == null || t2 == null)
            {
                return(false);
            }

            if (t1.Oid.Equals(t2.Oid))
            {
                return(false);
            }

            return(false);
        }
        /// <summary>
        /// Método responsável por buscar os NbID de uma tarefa.
        /// </summary>
        /// <param name="oidCronogramaTarefa">Oid da tarefa a ser procurada</param>
        /// <returns>tarefa encontrada</returns>
        public static short ConsultarNbIDCronogramaTarefa(Guid oidCronogramaTarefa)
        {
            if (oidCronogramaTarefa == null)
            {
                new ArgumentException("Os parâmetros estão inválidos.");
            }

            using (WexDb contexto = ContextFactoryManager.CriarWexDb())
            {
                CronogramaTarefa tarefa = contexto.CronogramaTarefa.FirstOrDefault(o => o.Oid == oidCronogramaTarefa && !o.CsExcluido);
                if (tarefa != null)
                {
                    return(tarefa.NbID);
                }
                else
                {
                    return(0);
                }
            }
        }
        /// <summary>
        /// Responsável por encontrar o valor do maior ID da tarefa de um determinado cronograma
        /// </summary>
        /// <param name="oidCronograma">Oid do cronograma que será procurado</param>
        /// <returns>Maior NbId</returns>
        public static short ConsultarMaxNbIDPorCronograma(Guid oidCronograma)
        {
            using (WexDb contexto = ContextFactoryManager.CriarWexDb())
            {
                if (contexto == null || oidCronograma == null)
                {
                    new ArgumentException("Os parâmetros estão inválidos.");
                }

                CronogramaTarefa cronogramaTarefa = contexto.CronogramaTarefa.FirstOrDefault(o => o.OidCronograma == oidCronograma && !o.CsExcluido);

                if (cronogramaTarefa != null)
                {
                    return(contexto.CronogramaTarefa.Where(o => o.OidCronograma == oidCronograma && !o.CsExcluido).Select(o => o.NbID).Max());
                }
                else
                {
                    return(0);
                }
            }
        }
        public void ExcluirCronogramaQuandoCronogramaPossuirTarefasEUltimaSelecaoParaUmUsuarioTest()
        {
            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 colaborador = ColaboradorFactoryEntity.CriarColaborador(contexto, "anderson.lins", new DateTime(), "*****@*****.**", "Anderson", "", "Lins", "anderson.lins", null, true);

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

            CronogramaUltimaSelecao ultimaSelecao = new CronogramaUltimaSelecao();

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

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

            Assert.IsTrue(cronogramaExcluido, "Deveria ser true, pois o cronograma exclui quaisquer tarefas associadas a ele.");
        }
        public void EditarTarefaQuandoSalvarLinhaBaseTarefaTest()
        {
            //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, o => o.Cronograma, o => o.Tarefa.AtualizadoPor.Usuario.Person, o => o.Tarefa);

            bool salvarLinhaBaseTarefa = true;

            TimeSpan estimativaRestante = TarefaDao.ConsultarTarefaPorOid((Guid)tarefaCriada.OidTarefa).EstimativaRestanteHora;

            string responsaveisTarefaEdicao = colaborador1.NomeCompleto;

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

            //busca tarefa criada
            CronogramaTarefa tarefaAlterada = CronogramaTarefaDao.ConsultarCronogramaTarefaPorOid(tarefaCriada.Oid, o => o.Tarefa.SituacaoPlanejamento, o => o.Cronograma, o => o.Tarefa.AtualizadoPor.Usuario.Person, o => o.Tarefa.LogsAlteracao, o => o.Tarefa.TarefaHistoricoTrabalhos, o => o.Tarefa.TarefaResponsaveis);

            Assert.AreEqual(salvarLinhaBaseTarefa, tarefaAlterada.Tarefa.CsLinhaBaseSalva, "Deveria ter salvo a linha de base");
            Assert.AreEqual(estimativaRestante, tarefaAlterada.Tarefa.NbEstimativaRestante.ToTimeSpan(), "Deveria ter mudado a estimativa restando, pois salvou a linha de base");
        }
Пример #19
0
        public void RnValidarTarefaEditadaQuandoEstimativaInicialSejaAlteradaTest()
        {
            //cria situação planejamento
            SituacaoPlanejamento situacaoPlanejamento1 = CronogramaFactoryEntity.CriarSituacaoPlanejamento(contexto, "S1",
                                                                                                           CsTipoSituacaoPlanejamento.Ativo, CsTipoPlanejamento.Execução,
                                                                                                           CsPadraoSistema.Sim, true);

            //cria cronograma
            Cronograma cronograma1 = CronogramaFactoryEntity.CriarCronograma(contexto, "Cronograma 01", situacaoPlanejamento1, new DateTime(),
                                                                             new DateTime(), true);

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

            //adiciona colaborador como responsável pela tarefa
            string responsaveis = colaborador1.NomeCompleto;

            List <CronogramaTarefa> tarefasImpactadas;
            DateTime dataHoraAcao = new DateTime();
            //cria tarefa a partir da RnIncluirTarefa em CronogramaTarefa
            CronogramaTarefa novaTarefa = CronogramaTarefaBo.CriarCronogramaTarefa(cronograma1.Oid, "Tarefa 01", situacaoPlanejamento1, DateTime.Now, responsaveis, colaborador1.Usuario.UserName, out tarefasImpactadas, ref dataHoraAcao, "Criar método1", 3, 0);

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

            //criar um Dto da tarefa e repassa as informações para poder utilizar o método que está sendo testado
            CronogramaTarefaGridItem tarefaDto = new CronogramaTarefaGridItem();

            tarefaDto.OidCronogramaTarefa = tarefa.Oid;
            tarefaDto.TxDescricaoSituacaoPlanejamentoTarefa = tarefa.Tarefa.SituacaoPlanejamento.TxDescricao;
            tarefaDto.NbEstimativaInicial  = tarefa.Tarefa.NbEstimativaInicial;
            tarefaDto.NbEstimativaRestante = tarefa.Tarefa.NbEstimativaRestante;

            //adiciona tarefa na lista de tarefas antigas (antes de serem alteradas)
            List <CronogramaTarefaGridItem> tarefasAntigas = new List <CronogramaTarefaGridItem>();

            tarefasAntigas.Add(tarefaDto);

            //cria uma tarefa Dto alterada e modifica o campo situação de planejamento
            CronogramaTarefaGridItem tarefaDtoAlterada = new CronogramaTarefaGridItem();

            tarefaDtoAlterada.OidCronogramaTarefa = tarefaDto.OidCronogramaTarefa;
            tarefaDtoAlterada.TxDescricaoSituacaoPlanejamentoTarefa = tarefaDto.TxDescricaoSituacaoPlanejamentoTarefa;
            tarefaDtoAlterada.NbEstimativaInicial  = 5;
            tarefaDtoAlterada.NbEstimativaRestante = tarefaDto.NbEstimativaRestante;

            //adiciona a tarefa na lista de tarefas modificadas.
            List <CronogramaTarefaGridItem> tarefasAtualizadas = new List <CronogramaTarefaGridItem>();

            tarefasAtualizadas.Add(tarefaDtoAlterada);

            //valida os campos alterados
            Hashtable camposAlterados = TarefaEditada.ValidarCamposRelevantesAlterados(tarefasAntigas, tarefasAtualizadas);

            List <int> campos = new List <int>();

            campos = (List <int>)camposAlterados[tarefaDto.OidCronogramaTarefa];

            Assert.AreEqual(1, campos.Count, "Deveria ter sido alterado apenas um campo.");
            Assert.AreEqual((int)CsTipoCampoEditado.EstimativaInicial, campos[0], "O campo alterado deveria ser do mesmo Tipo");
            Assert.AreNotEqual(tarefaDto.NbEstimativaInicial, tarefaDtoAlterada.NbEstimativaInicial, "Não deveriam ser iguais, pois o campo foi alterado.");
        }
Пример #20
0
        public void ConsultarTarefasPorOidCronogramaTarefaQuandoReceberUmaListaDeOidCronogramaTarefaTest()
        {
            SituacaoPlanejamento situacaoPlanejamento = CronogramaFactoryEntity.CriarSituacaoPlanejamento(contexto, "S1", CsTipoSituacaoPlanejamento.Ativo, CsTipoPlanejamento.Execução, CsPadraoSistema.Sim, true);

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

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

            //nova tarefa
            CronogramaTarefa novaTarefa1 = new CronogramaTarefa()
            {
                Tarefa = new Tarefa()
            };
            CronogramaTarefa novaTarefa2 = new CronogramaTarefa()
            {
                Tarefa = new Tarefa()
            };
            CronogramaTarefa novaTarefa3 = new CronogramaTarefa()
            {
                Tarefa = new Tarefa()
            };
            CronogramaTarefa novaTarefa4 = new CronogramaTarefa()
            {
                Tarefa = new Tarefa()
            };
            CronogramaTarefa novaTarefa5 = new CronogramaTarefa()
            {
                Tarefa = new Tarefa()
            };

            novaTarefa1.OidCronograma = cronograma1.Oid;
            novaTarefa2.OidCronograma = cronograma1.Oid;
            novaTarefa3.OidCronograma = cronograma1.Oid;
            novaTarefa4.OidCronograma = cronograma1.Oid;
            novaTarefa5.OidCronograma = cronograma1.Oid;

            //Atribui um Id inexistente para tarefa
            CronogramaTarefaBo.AtribuirId(novaTarefa1, 0);
            //Atribui um Id inexistente para tarefa
            CronogramaTarefaBo.AtribuirId(novaTarefa2, 0);
            //Atribui um Id inexistente para tarefa
            CronogramaTarefaBo.AtribuirId(novaTarefa3, 0);
            //Atribui um Id inexistente para tarefa
            CronogramaTarefaBo.AtribuirId(novaTarefa4, 0);
            //Atribui um Id inexistente para tarefa
            CronogramaTarefaBo.AtribuirId(novaTarefa5, 0);

            novaTarefa1.Tarefa.TxDescricao          = "Tarefa 01";
            novaTarefa1.Tarefa.SituacaoPlanejamento = situacaoPlanejamento;
            novaTarefa1.Tarefa.AtualizadoPor        = colaborador1;

            novaTarefa2.Tarefa.TxDescricao          = "Tarefa 02";
            novaTarefa2.Tarefa.SituacaoPlanejamento = situacaoPlanejamento;
            novaTarefa2.Tarefa.AtualizadoPor        = colaborador1;

            novaTarefa3.Tarefa.TxDescricao          = "Tarefa 03";
            novaTarefa3.Tarefa.SituacaoPlanejamento = situacaoPlanejamento;
            novaTarefa3.Tarefa.AtualizadoPor        = colaborador1;

            novaTarefa4.Tarefa.TxDescricao          = "Tarefa 04";
            novaTarefa4.Tarefa.SituacaoPlanejamento = situacaoPlanejamento;
            novaTarefa4.Tarefa.AtualizadoPor        = colaborador1;

            novaTarefa5.Tarefa.TxDescricao          = "Tarefa 05";
            novaTarefa5.Tarefa.SituacaoPlanejamento = situacaoPlanejamento;
            novaTarefa5.Tarefa.AtualizadoPor        = colaborador1;

            contexto.CronogramaTarefa.Add(novaTarefa1);
            contexto.CronogramaTarefa.Add(novaTarefa2);
            contexto.CronogramaTarefa.Add(novaTarefa3);
            contexto.CronogramaTarefa.Add(novaTarefa4);
            contexto.CronogramaTarefa.Add(novaTarefa5);
            contexto.SaveChanges();

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

            oidCronogramaTarefas.Add(novaTarefa1.Oid);
            oidCronogramaTarefas.Add(novaTarefa2.Oid);

            List <CronogramaTarefa> tarefas = CronogramaTarefaDao.ConsultarCronogramaTarefasPorOid(oidCronogramaTarefas, o => o.Cronograma, o => o.Tarefa.SituacaoPlanejamento, o => o.Tarefa.AtualizadoPor.Usuario.Person.Party);

            Assert.AreEqual(2, tarefas.Count, "Deveria possuir 2 tarefas armazenadas!");

            CronogramaTarefa tarefaEsperada1 = tarefas.FirstOrDefault(o => o.Oid.Equals(novaTarefa1.Oid));
            CronogramaTarefa tarefaEsperada2 = tarefas.FirstOrDefault(o => o.Oid.Equals(novaTarefa2.Oid));

            Assert.IsNotNull(tarefaEsperada1, "Deveria ter recebido a tarefas esperada");
            Assert.IsNotNull(tarefaEsperada2, "Deveria ter recebido a tarefas esperada");

            Assert.AreEqual(novaTarefa1.Oid, tarefaEsperada1.Oid, "Deveria ser o mesmo CronogramaTarefa");
            Assert.AreEqual(novaTarefa1.OidCronograma, tarefaEsperada1.OidCronograma, "Deveriam estar no mesmo cronograma");
            Assert.AreEqual(novaTarefa1.OidTarefa, tarefaEsperada1.OidTarefa, "Deveriam estar relacionadas a mesma tarefa");
            Assert.AreEqual(novaTarefa1.NbID, tarefaEsperada1.NbID, "Deveria estar com o mesmo NbId");
            Assert.AreEqual(novaTarefa1.CsExcluido, tarefaEsperada1.CsExcluido, "Deveriam estar com o mesmo estado de exclusão");


            Assert.AreEqual(novaTarefa2.Oid, tarefaEsperada2.Oid, "Deveria ser o mesmo CronogramaTarefa");
            Assert.AreEqual(novaTarefa2.OidCronograma, tarefaEsperada2.OidCronograma, "Deveriam estar no mesmo cronograma");
            Assert.AreEqual(novaTarefa2.OidTarefa, tarefaEsperada2.OidTarefa, "Deveriam estar relacionadas a mesma tarefa");
            Assert.AreEqual(novaTarefa2.NbID, tarefaEsperada2.NbID, "Deveria estar com o mesmo NbId");
            Assert.AreEqual(novaTarefa2.CsExcluido, tarefaEsperada2.CsExcluido, "Deveriam estar com o mesmo estado de exclusão");

            //Assert.IsTrue( tarefas.Contains( novaTarefa1 ), "Deveria conter a tarefa na lista" );
            //Assert.IsTrue( tarefas.Contains( novaTarefa2 ), "Deveria conter a tarefa na lista" );
        }
Пример #21
0
        public void DevePesquisarADataEHoraDaUltimaHoraTrabalhadaPeloColaborador()
        {
            #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, "gabriel.matos", 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();
            DateTime dataRealizado = DateTime.Now;

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

            TarefaHistoricoTrabalhoBo.CriarHistoricoTarefa(tarefa1.Oid, colaborador1.Usuario.UserName, new TimeSpan(1, 0, 0), dataRealizado, new TimeSpan(11, 0, 0), new TimeSpan(12, 0, 0), "comentário", new TimeSpan(2, 0, 0), situacaoPlanejamentoEmAndamento.Oid, "");

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

            TarefaHistoricoTrabalhoDto historicoTrabalhoMaisRecente = TarefaHistoricoTrabalhoBo.ConsultarUltimoEsforcoRealizadoColaboradorDto(contexto, colaborador1.Usuario.UserName);
            Assert.IsNotNull(historicoTrabalhoMaisRecente, "Deveria ter encontrado pois foi criado histórico para tarefa");
            Assert.AreEqual(dataRealizado, historicoTrabalhoMaisRecente.DtRealizado, "Deveria ser a mesma data realizada");
            Assert.AreEqual(new TimeSpan(12, 0, 0), historicoTrabalhoMaisRecente.NbHoraFinal, "O horário final deveria ser igual ao horário final do ultimo esforço do colaborador");
        }
Пример #22
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");
        }
Пример #23
0
        public void ConsultarCronogramaTarefasCarregandoASituacaoPlanejamento()
        {
            contexto = ContextFactoryManager.CriarWexDb();
            SituacaoPlanejamento situacaoPlanejamento = CronogramaFactoryEntity.CriarSituacaoPlanejamento(contexto, "S1", CsTipoSituacaoPlanejamento.Ativo, CsTipoPlanejamento.Execução, CsPadraoSistema.Sim, true);

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

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

            //nova tarefa
            CronogramaTarefa novaTarefa1 = new CronogramaTarefa()
            {
                Tarefa = new Tarefa()
            };
            CronogramaTarefa novaTarefa2 = new CronogramaTarefa()
            {
                Tarefa = new Tarefa()
            };
            CronogramaTarefa novaTarefa3 = new CronogramaTarefa()
            {
                Tarefa = new Tarefa()
            };
            CronogramaTarefa novaTarefa4 = new CronogramaTarefa()
            {
                Tarefa = new Tarefa()
            };
            CronogramaTarefa novaTarefa5 = new CronogramaTarefa()
            {
                Tarefa = new Tarefa()
            };

            novaTarefa1.OidCronograma = cronograma1.Oid;
            novaTarefa2.OidCronograma = cronograma1.Oid;
            novaTarefa3.OidCronograma = cronograma1.Oid;
            novaTarefa4.OidCronograma = cronograma1.Oid;
            novaTarefa5.OidCronograma = cronograma1.Oid;

            //Atribui um Id inexistente para tarefa
            CronogramaTarefaBo.AtribuirId(novaTarefa1, 0);
            //Atribui um Id inexistente para tarefa
            CronogramaTarefaBo.AtribuirId(novaTarefa2, 0);
            //Atribui um Id inexistente para tarefa
            CronogramaTarefaBo.AtribuirId(novaTarefa3, 0);
            //Atribui um Id inexistente para tarefa
            CronogramaTarefaBo.AtribuirId(novaTarefa4, 0);
            //Atribui um Id inexistente para tarefa
            CronogramaTarefaBo.AtribuirId(novaTarefa5, 0);

            novaTarefa1.Tarefa.TxDescricao          = "Tarefa 01";
            novaTarefa1.Tarefa.SituacaoPlanejamento = situacaoPlanejamento;
            novaTarefa1.Tarefa.AtualizadoPor        = colaborador1;

            novaTarefa2.Tarefa.TxDescricao          = "Tarefa 02";
            novaTarefa2.Tarefa.SituacaoPlanejamento = situacaoPlanejamento;
            novaTarefa2.Tarefa.AtualizadoPor        = colaborador1;

            novaTarefa3.Tarefa.TxDescricao          = "Tarefa 03";
            novaTarefa3.Tarefa.SituacaoPlanejamento = situacaoPlanejamento;
            novaTarefa3.Tarefa.AtualizadoPor        = colaborador1;

            novaTarefa4.Tarefa.TxDescricao          = "Tarefa 04";
            novaTarefa4.Tarefa.SituacaoPlanejamento = situacaoPlanejamento;
            novaTarefa4.Tarefa.AtualizadoPor        = colaborador1;

            novaTarefa5.Tarefa.TxDescricao          = "Tarefa 05";
            novaTarefa5.Tarefa.SituacaoPlanejamento = situacaoPlanejamento;
            novaTarefa5.Tarefa.AtualizadoPor        = colaborador1;

            contexto.CronogramaTarefa.Add(novaTarefa1);
            contexto.CronogramaTarefa.Add(novaTarefa2);
            contexto.CronogramaTarefa.Add(novaTarefa3);
            contexto.CronogramaTarefa.Add(novaTarefa4);
            contexto.CronogramaTarefa.Add(novaTarefa5);
            contexto.SaveChanges();

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

            oidCronogramaTarefas.Add(novaTarefa1.Oid);
            oidCronogramaTarefas.Add(novaTarefa2.Oid);



            List <CronogramaTarefa> tarefas = CronogramaTarefaDao.ConsultarCronogramaTarefasPorOid(oidCronogramaTarefas, o => o.Tarefa.SituacaoPlanejamento, o => o.Cronograma.SituacaoPlanejamento, o => o.Tarefa.AtualizadoPor.Usuario.Person);

            Assert.AreEqual(2, tarefas.Count, "Deveria possuir 2 tarefas armazenadas!");
            var t1 = tarefas.FirstOrDefault(o => o.Oid.Equals(novaTarefa1.Oid));
            var t2 = tarefas.FirstOrDefault(o => o.Oid.Equals(novaTarefa2.Oid));

            Assert.IsTrue(tarefas.Contains(t1), "Deveria encontrar a tarefa na lista");
            Assert.IsTrue(tarefas.Contains(t2), "Deveria encontrar a tarefa na lista");
        }
        public void EditarTarefaQuandoOutroUsuarioAlterarTarefaTest()
        {
            //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;
            DateTime dataHoraAcao = new DateTime();
            List <CronogramaTarefa> tarefasImpactadas;

            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 = contexto.CronogramaTarefa.FirstOrDefault(o => o.Oid == novaTarefa.Oid);

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

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

            List <Colaborador> responsaveisAlterados = new List <Colaborador>();

            responsaveisAlterados.Add(colaborador2);
            responsaveisAlterados.Add(colaborador3);

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

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

            string   txDescricaoAlterada           = "Tarefa 01 alterada";
            DateTime dataInicioAlterada            = new DateTime(2013, 12, 10);
            string   txObservacaoAlterada          = "Criar método alterado";
            Int16    EstimativaInicialHoraAlterada = 4;

            string responsaveisAlterado = colaborador1.NomeCompleto;

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

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

            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, "Devem ser iguais, pois foi alterada");
            Assert.AreEqual(situacaoPlanejamento2.Oid, tarefaAlterada.Tarefa.OidSituacaoPlanejamento, "Devem ser iguais, pois foi alterada");
            Assert.AreEqual(colaborador2.Oid, tarefaAlterada.Tarefa.OidAtualizadoPor, "Deve ser o mesmo, pois foi outro usuário que alterou a tarefa");
        }