public Hashtable EditarTarefa(CronogramaTarefaDto tarefaEditada) { Hashtable hash = new Hashtable(); CronogramaTarefaGridItem tarefa = tarefas.FirstOrDefault(o => o.OidCronogramaTarefa.ToString().Equals(tarefaEditada.OidTarefa)); if (tarefa != null) { hash.Add("EdicaoStatus", true); hash.Add("DtAtualizadoEm", DateTime.Now); hash.Add("TxAtualizadoPor", tarefaEditada.TxAtualizadoPor); tarefa.TxDescricaoTarefa = tarefaEditada.TxDescricaoTarefa; tarefa.OidSituacaoPlanejamentoTarefa = tarefaEditada.OidSituacaoPlanejamentoTarefa; tarefa.TxAtualizadoPor = tarefaEditada.TxAtualizadoPor; tarefa.TxObservacaoTarefa = tarefaEditada.TxObservacaoTarefa; tarefa.TxDescricaoColaborador = tarefaEditada.TxDescricaoColaborador; tarefa.NbRealizado = tarefaEditada.NbRealizado; tarefa.NbEstimativaRestante = tarefaEditada.NbEstimativaRestante; tarefa.NbEstimativaInicial = tarefaEditada.NbEstimativaInicial; tarefa.CsLinhaBaseSalva = tarefaEditada.CsLinhaBaseSalva; tarefa.DtInicio = tarefaEditada.DtInicio; } else { hash.Add("EdicaoStatus", true); } return(hash); }
/// <summary> /// Método que verifica se uma tarefa possui estimativa inicial /// </summary> /// <param name="tarefa"></param> /// <returns></returns> protected bool PossuiEstimativaInicial(CronogramaTarefaDto tarefa) { if (TarefaNula(tarefa)) { return(false); } return(PossuiTempoEstimado(tarefa.NbEstimativaInicial)); }
/// <summary> /// Retorna se a tarefa possui horas restantes /// </summary> /// <param name="tarefa"></param> /// <returns></returns> protected bool PossuiHorasRestantes(CronogramaTarefaDto tarefa) { if (TarefaNula(tarefa)) { return(false); } return(PossuiTempoEstimado(tarefa.NbEstimativaRestante)); }
/// <summary> /// Executar a movimentação da tarefa /// </summary> public override void Executar() { gerenciador.EsperarLeituraDataSource(); CronogramaTarefaDto tarefaAtual = gerenciador.Datasource.FirstOrDefault(o => o.OidCronogramaTarefa == tarefaMovida.OidTarefa); gerenciador.LiberarLeituraDataSource(); tarefaAtual.NbID = tarefaMovida.PosicaoFinal; }
/// <summary> /// Retorna se a tarefa possui esforço realizado /// </summary> /// <param name="tarefa"></param> /// <returns></returns> protected bool PossuiEsforcoRealizado(CronogramaTarefaDto tarefa) { if (TarefaNula(tarefa)) { return(false); } return(PossuiTempoEstimado(tarefa.NbRealizado)); }
/// <summary> /// Método responsável por solicitar ao serviço a edição de uma tarefa. /// </summary> /// <param name="oidTarefa">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">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 dados da edicao como atualizado em, atualizado por e confirmação da edicao</returns> public Hashtable EditarTarefa(CronogramaTarefaDto tarefa) { //PUT: {base_url}/Cronogramas/Tarefas/ RestRequest requisicao = new RestRequest("Cronogramas/Tarefas"); requisicao.RequestFormat = DataFormat.Json; requisicao.AddBody(tarefa); return(DeserializarResposta(restClient.Put <Hashtable>(requisicao))); }
public void DevePermitirEdicaoSituacaoPlanejamentoParaAndamentoApenasQuandoPossuirHorasParaConsumir() { CronogramaTarefaDto novaTarefa = new CronogramaTarefaDto() { CsLinhaBaseSalva = false, DtAtualizadoEm = DateTime.Now, NbEstimativaInicial = 0, NbEstimativaRestante = 0, NbRealizado = 0, }; CronogramaTarefaDto novaTarefaComEstimativa = new CronogramaTarefaDto() { CsLinhaBaseSalva = false, DtAtualizadoEm = DateTime.Now, NbEstimativaInicial = 8, NbEstimativaRestante = ConversorTimeSpan.ConverterHorasDeStringParaTicks("8:00"), NbRealizado = 0, }; CronogramaTarefaDto tarefaConsumidaParcialmente = new CronogramaTarefaDto() { CsLinhaBaseSalva = true, DtAtualizadoEm = DateTime.Now, NbEstimativaInicial = 8, NbEstimativaRestante = ConversorTimeSpan.ConverterHorasDeStringParaTicks("4:00"), NbRealizado = ConversorTimeSpan.ConverterHorasDeStringParaTicks("4:00"), }; CronogramaTarefaDto tarefaPronta = new CronogramaTarefaDto() { CsLinhaBaseSalva = true, DtAtualizadoEm = DateTime.Now, NbEstimativaInicial = 8, NbEstimativaRestante = 0, NbRealizado = ConversorTimeSpan.ConverterHorasDeStringParaTicks("8:00"), }; CronogramaTarefaDto tarefaCancelada = new CronogramaTarefaDto() { CsLinhaBaseSalva = false, DtAtualizadoEm = DateTime.Now, NbEstimativaInicial = 8, NbEstimativaRestante = 0, NbRealizado = 0, }; string mensagem; Assert.IsFalse(TarefaEditada.ValidarEdicaoSituacaoPlanejamento(novaTarefa, CsTipoPlanejamento.Execução, out mensagem), "Não deveria permitir setar a situação como execução pois não foi estimada uma quantidade de horas a ser realizada a tarefa."); Assert.IsTrue(TarefaEditada.ValidarEdicaoSituacaoPlanejamento(novaTarefaComEstimativa, CsTipoPlanejamento.Execução, out mensagem), "Deveria permitir setar a situação como execução pois foi estimada uma quantidade de horas a ser realizada a tarefa."); Assert.IsTrue(TarefaEditada.ValidarEdicaoSituacaoPlanejamento(tarefaConsumidaParcialmente, CsTipoPlanejamento.Execução, out mensagem), "Deveria permitir setar a situação como execução pois ainda há horas restantes para executar a tarefa."); Assert.IsFalse(TarefaEditada.ValidarEdicaoSituacaoPlanejamento(tarefaPronta, CsTipoPlanejamento.Execução, out mensagem), "Não deveria permitir setar a situação como execução pois foram consumidas todas as horas de execução da tarefa."); Assert.IsFalse(TarefaEditada.ValidarEdicaoSituacaoPlanejamento(tarefaCancelada, CsTipoPlanejamento.Execução, out mensagem), "Não deveria permitir setar a situação como execução pois após o cancelamento não há horas restantes para trabalhar na tarefa."); }
/// <summary> /// Método utilizado para atualizar o nbid das tarefas (Simulando a atualização de tarefas do CronogramaPresenter) /// </summary> /// <param name="novoNbId">novo nbid</param> /// <param name="oidTarefa">oid da tarefa a ser atualizada</param> /// <param name="tarefas">lista de tarefas armazenadas(View)</param> public static void AtualizarNbIdTarefa(short novoNbId, Guid oidTarefa, List <CronogramaTarefaDto> tarefas) { if (tarefas == null) { return; } CronogramaTarefaDto tarefa = tarefas.FirstOrDefault(o => o.OidCronogramaTarefa == oidTarefa); if (tarefa != null) { tarefa.NbID = novoNbId; } }
public ActionResult EditarTarefa(CronogramaTarefaDto tarefa) { if (tarefa == null) { return(Json(new { })); } Hashtable dadosEdicaoTarefa = null; dadosEdicaoTarefa = TarefaBo.EditarTarefa(tarefa.OidCronogramaTarefa.ToString(), tarefa.TxDescricaoTarefa, tarefa.OidSituacaoPlanejamentoTarefa.ToString(), tarefa.TxAtualizadoPor, tarefa.TxObservacaoTarefa, tarefa.TxDescricaoColaborador, tarefa.NbEstimativaInicial, tarefa.NbEstimativaRestante.ToTimeSpan(), tarefa.NbRealizado.ToTimeSpan(), tarefa.CsLinhaBaseSalva, tarefa.DtInicio); return(new JsonNetResult(TarefaBo.EdicaoDtoFactory(dadosEdicaoTarefa))); }
public void DevePermitirEdicaoSituacaoPlanejamentoParaProntoSePossuirEstimativaInicial() { CronogramaTarefaDto novaTarefa = new CronogramaTarefaDto() { CsLinhaBaseSalva = false, DtAtualizadoEm = DateTime.Now, NbEstimativaInicial = 0, NbEstimativaRestante = 0, NbRealizado = 0, }; CronogramaTarefaDto novaTarefaComEstimativa = new CronogramaTarefaDto() { CsLinhaBaseSalva = false, DtAtualizadoEm = DateTime.Now, NbEstimativaInicial = 8, NbEstimativaRestante = ConversorTimeSpan.ConverterHorasDeStringParaTicks("8:00"), NbRealizado = 0, }; CronogramaTarefaDto tarefaConsumidaParcialmente = new CronogramaTarefaDto() { CsLinhaBaseSalva = true, DtAtualizadoEm = DateTime.Now, NbEstimativaInicial = 8, NbEstimativaRestante = ConversorTimeSpan.ConverterHorasDeStringParaTicks("4:00"), NbRealizado = ConversorTimeSpan.ConverterHorasDeStringParaTicks("4:00"), }; CronogramaTarefaDto tarefaCanceladaParcialmenteRealizada = new CronogramaTarefaDto() { CsLinhaBaseSalva = false, DtAtualizadoEm = DateTime.Now, NbEstimativaInicial = 8, NbEstimativaRestante = ConversorTimeSpan.ConverterHorasDeStringParaTicks("6:00"), NbRealizado = ConversorTimeSpan.ConverterHorasDeStringParaTicks("2:00"), }; string mensagem; Assert.IsFalse(TarefaEditada.ValidarEdicaoSituacaoPlanejamento(novaTarefa, CsTipoPlanejamento.Encerramento, out mensagem), "Não deve permitir ir para o estado de pronto pois não possui uma estimativa inicial de duração"); Assert.IsTrue(TarefaEditada.ValidarEdicaoSituacaoPlanejamento(novaTarefaComEstimativa, CsTipoPlanejamento.Encerramento, out mensagem), "Deve permitir pois a tarefa já possui uma estimativa inicial de duração."); Assert.IsTrue(TarefaEditada.ValidarEdicaoSituacaoPlanejamento(tarefaConsumidaParcialmente, CsTipoPlanejamento.Encerramento, out mensagem), "Deve permitir pois a tarefa já possui uma estimativa inicial de duração"); Assert.IsTrue(TarefaEditada.ValidarEdicaoSituacaoPlanejamento(tarefaCanceladaParcialmenteRealizada, CsTipoPlanejamento.Encerramento, out mensagem), "Deve permitir a edição pois a tarefa já possui uma estimativa inicial de duração."); }
/// <summary> /// Método responsável por exibir em Debug o resultado da movimentação /// </summary> /// <param name="retornoMovimentacao"></param> public static void ExibirLogTarefaMovida(TarefasMovidasDto retornoMovimentacao, List <CronogramaTarefaDto> tarefas, string alias = "") { Debug.WriteLine(string.Format("\n***** Resultado Movimentação {0} *****\n", alias)); Debug.WriteLine("Data e hora ação:{0}", retornoMovimentacao.DataHoraAcao.TimeOfDay); Debug.WriteLine("Oid Tarefa Movida: {0}", retornoMovimentacao.OidCronogramaTarefaMovida); CronogramaTarefaDto tarefa = tarefas.FirstOrDefault(o => o.OidCronogramaTarefa == retornoMovimentacao.OidCronogramaTarefaMovida); if (tarefa != null) { Debug.WriteLine("\nTarefa {0} movida para posição {1}", tarefa.TxDescricaoTarefa, retornoMovimentacao.NbIDTarefaMovida); } else { Debug.WriteLine("A tarefa correspondente ao Oid:{0} não foi encontrada na lista!"); } ExibirLogTarefasImpactadas(retornoMovimentacao.TarefasImpactadas, tarefas, retornoMovimentacao.DataHoraAcao); Debug.WriteLine("\n*******************************************"); }
/// <summary> /// Método que verifica se tarefa atual pode receber um tipo de situacaoPlanejamento /// </summary> /// <param name="tarefa">instancia da tarefa</param> /// <param name="tipo">tipo de planejamento que irá receber</param> protected bool ValidarEdicaoSituacaoPlanejamento(CronogramaTarefaDto tarefa, CsTipoPlanejamento tipo, out string motivo) { motivo = null; if (tarefa == null) { return(false); } switch (tipo) { case CsTipoPlanejamento.Encerramento: if (PossuiEstimativaInicial(tarefa)) { return(true); } motivo = Resources.Alerta_DevePossuirDuracaoTarefa; return(false); case CsTipoPlanejamento.Execução: if (PossuiHorasRestantes(tarefa)) { return(true); } motivo = Resources.Alerta_DevePossuirDuracaoTarefa; return(false); case CsTipoPlanejamento.Planejamento: if (!PossuiEsforcoRealizado(tarefa)) { return(true); } motivo = Resources.Alerta_PossuiEsforcoRealizadoCadastrado; return(false); default: return(true); } }
/// <summary> /// Método para verificar se uma tarefa é nula /// </summary> /// <param name="tarefa"></param> /// <returns></returns> protected bool TarefaNula(CronogramaTarefaDto tarefa) { return(tarefa == null); }
/// <summary> /// Retorna se a tarefa possuir ou não esforço realizado /// </summary> /// <param name="tarefa"></param> /// <returns></returns> protected bool NaoPossuiEsforcoRealizado(CronogramaTarefaDto tarefa) { return(!PossuiEsforcoRealizado(tarefa)); }
/// <summary> /// Método para converter um objeto CronogramaTarefaDto em CronogramaTarefaDecorator /// </summary> /// <param name="dto">Instancia do objeto CronogramaTarefaDto</param> /// <returns></returns> public static CronogramaTarefaDecorator ToDecorator(this CronogramaTarefaDto dto) { string dtoString = JsonConvert.SerializeObject(dto); return(JsonConvert.DeserializeObject <CronogramaTarefaDecorator>(dtoString)); }
/// <summary> /// Verifica se uma tarefa não possui estimativa inicial /// </summary> /// <param name="tarefa"></param> /// <returns></returns> protected bool NaoPossuiHorasRestantes(CronogramaTarefaDto tarefa) { return(!PossuiHorasRestantes(tarefa)); }
/// <summary> /// Verifica se uma tarefa não possui estimativa inicial /// </summary> /// <param name="tarefa"></param> /// <returns></returns> protected bool NaoPossuiEstimativaInicial(CronogramaTarefaDto tarefa) { return(!PossuiEstimativaInicial(tarefa)); }
/// <summary> /// Verifica se uma tarefa não possui estimativa inicial /// </summary> /// <param name="tarefa"></param> /// <returns></returns> public static bool NaoPossuiEstimativaInicial(CronogramaTarefaDto tarefa) { return(!PossuiEstimativaInicial(tarefa)); }
public void DevePermitirEdicaoSituacaoPlanejamentoParaNaoIniciadoApenasQuandoNaoFoiRealizadoNenhumEsforco() { CronogramaTarefaDto novaTarefa = new CronogramaTarefaDto() { CsLinhaBaseSalva = false, DtAtualizadoEm = DateTime.Now, NbEstimativaInicial = 0, NbEstimativaRestante = 0, NbRealizado = 0, }; CronogramaTarefaDto novaTarefaComEstimativa = new CronogramaTarefaDto() { CsLinhaBaseSalva = false, DtAtualizadoEm = DateTime.Now, NbEstimativaInicial = 8, NbEstimativaRestante = ConversorTimeSpan.ConverterHorasDeStringParaTicks("8:00"), NbRealizado = 0, }; CronogramaTarefaDto tarefaConsumidaParcialmente = new CronogramaTarefaDto() { CsLinhaBaseSalva = true, DtAtualizadoEm = DateTime.Now, NbEstimativaInicial = 8, NbEstimativaRestante = ConversorTimeSpan.ConverterHorasDeStringParaTicks("4:00"), NbRealizado = ConversorTimeSpan.ConverterHorasDeStringParaTicks("4:00"), }; CronogramaTarefaDto tarefaPronta = new CronogramaTarefaDto() { CsLinhaBaseSalva = true, DtAtualizadoEm = DateTime.Now, NbEstimativaInicial = 8, NbEstimativaRestante = 0, NbRealizado = ConversorTimeSpan.ConverterHorasDeStringParaTicks("8:00"), }; CronogramaTarefaDto tarefaCancelada = new CronogramaTarefaDto() { CsLinhaBaseSalva = false, DtAtualizadoEm = DateTime.Now, NbEstimativaInicial = 8, NbEstimativaRestante = 0, NbRealizado = 0, }; CronogramaTarefaDto tarefaCanceladaParcialmenteRealizada = new CronogramaTarefaDto() { CsLinhaBaseSalva = false, DtAtualizadoEm = DateTime.Now, NbEstimativaInicial = 8, NbEstimativaRestante = ConversorTimeSpan.ConverterHorasDeStringParaTicks("6:00"), NbRealizado = ConversorTimeSpan.ConverterHorasDeStringParaTicks("2:00"), }; string mensagem; Assert.IsTrue(TarefaEditada.ValidarEdicaoSituacaoPlanejamento(novaTarefa, CsTipoPlanejamento.Planejamento, out mensagem), "Deve poder estar na situação de não iniciado pois não foi realizado nenhum esforço"); Assert.IsTrue(TarefaEditada.ValidarEdicaoSituacaoPlanejamento(novaTarefaComEstimativa, CsTipoPlanejamento.Planejamento, out mensagem), "Deve poder estar na situação de não iniciado pois não foi realizado nenhum esforço."); Assert.IsFalse(TarefaEditada.ValidarEdicaoSituacaoPlanejamento(tarefaConsumidaParcialmente, CsTipoPlanejamento.Planejamento, out mensagem), "Não deve poder estar na situação de não iniciado pois foi estimado um esforço realizado."); Assert.IsFalse(TarefaEditada.ValidarEdicaoSituacaoPlanejamento(tarefaPronta, CsTipoPlanejamento.Planejamento, out mensagem), "Não deve poder estar na situação de não iniciado pois a tarefa já foi executada."); Assert.IsTrue(TarefaEditada.ValidarEdicaoSituacaoPlanejamento(tarefaCancelada, CsTipoPlanejamento.Planejamento, out mensagem), "Deve poder estar na situação de não iniciado pois não foi realizado nenhum esforço."); Assert.IsFalse(TarefaEditada.ValidarEdicaoSituacaoPlanejamento(tarefaCanceladaParcialmenteRealizada, CsTipoPlanejamento.Planejamento, out mensagem), "Não deve poder estar na situação de não iniciado pois foi realizado um esforço parcial na tarefa."); }
/// <summary> /// Verifica se uma tarefa não possui estimativa inicial /// </summary> /// <param name="tarefa"></param> /// <returns></returns> public static bool NaoPossuiHorasRestantes(CronogramaTarefaDto tarefa) { return(!PossuiHorasRestantes(tarefa)); }
/// <summary> /// Método para verificar se uma tarefa é nula /// </summary> /// <param name="tarefa"></param> /// <returns></returns> private static bool TarefaNula(CronogramaTarefaDto tarefa) { return(tarefa == null); }
/// <summary> /// Retorna se a tarefa possuir ou não esforço realizado /// </summary> /// <param name="tarefa"></param> /// <returns></returns> public static bool NaoPossuiEsforcoRealizado(CronogramaTarefaDto tarefa) { return(!PossuiEsforcoRealizado(tarefa)); }