public void AlterarSituacao(Int32 situacaoId, String responsavelOperacaoId, String observacoes) { if (!PodeAlteracaoSituacao(situacaoId)) { throw new SISRHDomainException("A situação atual do plano não permite mudar para o estado solicitado"); } this.SituacaoId = situacaoId; //Quando iniciar ou encerrar a execução // Deve executar alguns procedimentos para permitir que os servidores possam acomparnhar as atividades if (SituacaoId == (int)SituacaoPactoTrabalhoEnum.EmExecucao) { if (DateTime.Now.Date < this.DataInicio) { throw new SISRHDomainException("Não é possível iniciar a execução do plano de trabalho antes da data de início"); } this.IniciarExecucao(); } else if (SituacaoId == (int)SituacaoPactoTrabalhoEnum.Aceito) { this.TermoAceite = this.PlanoTrabalho.TermoAceite; } else if (SituacaoId == (int)SituacaoPactoTrabalhoEnum.Executado) { this.EncerrarExecucao(); } this.Historico.Add(PactoTrabalhoHistorico.Criar(this.PlanoTrabalhoId, this.SituacaoId, responsavelOperacaoId, observacoes)); }
public void AlterarSituacao(Int32 situacaoId, String responsavelOperacao, String observacoes) { if (!PodeAlteracaoSituacao(situacaoId)) { throw new SISRHDomainException("A situação atual do plano não permite mudar para o estado solicitado"); } //Não deve permitir que a própria pessoa encerre um plano seu sem ter concluído todas as atividades int responsavelOperacaoId = -1; Int32.TryParse(responsavelOperacao, out responsavelOperacaoId); if (situacaoId == (int)SituacaoPactoTrabalhoEnum.Executado && this.PessoaId == responsavelOperacaoId && this.Atividades.Any(a => a.ItemCatalogo.FormaCalculoTempoItemCatalogoId == (int)FormaCalculoTempoItemCatalogoEnum.PredefinidoPorTarefa && a.SituacaoId != (int)SituacaoAtividadePactoTrabalhoEnum.Done)) { throw new SISRHDomainException("O próprio servidor não pode encerrar um plano de trabalho que ainda tem atividades a serem executadas. Favor solicitar que o chefe faça o encerramento."); } if (this.SituacaoId == (int)Domain.Enums.SituacaoPactoTrabalhoEnum.Executado && situacaoId == (int)Domain.Enums.SituacaoPactoTrabalhoEnum.EmExecucao && this.PessoaId == responsavelOperacaoId) { throw new SISRHDomainException("O próprio servidor não pode reabrir seu próprio plano de trabalho. Favor solicitar que o chefe faça a reabertura."); } this.SituacaoId = situacaoId; //Quando iniciar ou encerrar a execução // Deve executar alguns procedimentos para permitir que os servidores possam acomparnhar as atividades if (SituacaoId == (int)SituacaoPactoTrabalhoEnum.EmExecucao) { if (DateTime.Now.Date < this.DataInicio) { throw new SISRHDomainException("Não é possível iniciar a execução do plano de trabalho antes da data de início"); } this.IniciarExecucao(); } else if (SituacaoId == (int)SituacaoPactoTrabalhoEnum.Aceito) { this.TermoAceite = this.PlanoTrabalho.TermoAceite; } else if (SituacaoId == (int)SituacaoPactoTrabalhoEnum.Executado) { this.EncerrarExecucao(); } this.Historico.Add(PactoTrabalhoHistorico.Criar(this.PlanoTrabalhoId, this.SituacaoId, responsavelOperacao, observacoes)); }