/// <summary> /// Cancelar o Ciclo Atual /// </summary> /// <param name="motivo">Motivo de Cancelamento</param> /// <param name="dtInicioNextCiclo">Data de Início do Próximo Ciclo</param> public void RnCancelarCiclo(MotivoCancelamento motivo, DateTime dtInicioNextCiclo) { IsCancelado = true; CsSituacaoCiclo = CsSituacaoCicloDomain.Cancelado; MotivoCancelamento = motivo; if (dtInicioNextCiclo != DateTime.MinValue && RnMostrarInicioProximoCiclo()) { DtTermino = Calendario.PrimeiroDiaUtilAnteriorData(Session, dtInicioNextCiclo); for (int position = Projeto.Ciclos.IndexOf(this) + 1; position < Projeto.Ciclos.Count; position++) { Projeto.Ciclos[position].DtInicio = dtInicioNextCiclo; Projeto.DtTerminoReal = Projeto.Ciclos[position].DtTermino = Calendario.AcrescimoDiasUteisData(Session, dtInicioNextCiclo, Projeto.NbCicloDuracaoDiasPlan); dtInicioNextCiclo = Calendario.AcrescimoDiasUteisData(Session, Projeto.Ciclos[position].DtTermino.AddDays(1), Projeto.NbCicloDiasIntervalo); } Projeto.Save(); } if (_ListaPrioridades != null && _ListaProximoCiclo != null && (_ListaPrioridades.Count > 0 || _ListaProximoCiclo.Count > 0)) { RnSalvarDestinoEstoriasPendentes(); } }
/// <summary> /// Validação do Motivo de Cancelamento /// </summary> /// <param name="motivo">Motivo de Cancelamento</param> /// <returns>Se é um Motivo válido</returns> public static string RnValidarMotivoCancelamento(MotivoCancelamento motivo) { if (motivo == null) { return("É necessário informar um Motivo de Cancelamento"); } return(string.Empty); }