public Solicitacao RealizarAnalise(Solicitacao solicitacao, Funcionario responsavel, bool clientePrecisaAprovar, string atividade, decimal custo, int diasParaEntrega, string analiseRealizada, Programa programa)
 {
     if (solicitacao.Situacao == SituacaoDaSolicitacao.Analise)
     {
         if (responsavel == null)
             solicitacao.RegraQuebrada(RegrasDeNegocioSolicitacao.SomenteUmFuncionaroPodeAnalisar);
         var analise = new AnaliseDeSolicitacao
                           {
                               Atividade = atividade,
                               Custo = custo,
                               Analise = analiseRealizada,
                               DataDaAnalise = SystemTime.Now,
                               DiasParaEntrega = diasParaEntrega,
                               Responsavel = responsavel,
                               Programa = programa
                           };
         solicitacao.Situacao = clientePrecisaAprovar
                                    ? SituacaoDaSolicitacao.Aprovacao
                                    : SituacaoDaSolicitacao.Processo;
         solicitacao.Analise = analise;
         return solicitacao;
     }
     solicitacao.RegraQuebrada(RegrasDeNegocioSolicitacao.DeveEstarComSituacaoEmAnalise);
     return solicitacao;
 }
Beispiel #2
0
 public Solicitacao RealizarAnalise(Solicitacao solicitacao, Funcionario responsavel, bool clientePrecisaAprovar, string atividade, decimal custo, int diasParaEntrega, string analiseRealizada, Programa programa)
 {
     if (solicitacao.Situacao == SituacaoDaSolicitacao.Analise)
     {
         if (responsavel == null)
         {
             solicitacao.RegraQuebrada(RegrasDeNegocioSolicitacao.SomenteUmFuncionaroPodeAnalisar);
         }
         var analise = new AnaliseDeSolicitacao
         {
             Atividade       = atividade,
             Custo           = custo,
             Analise         = analiseRealizada,
             DataDaAnalise   = SystemTime.Now,
             DiasParaEntrega = diasParaEntrega,
             Responsavel     = responsavel,
             Programa        = programa
         };
         solicitacao.Situacao = clientePrecisaAprovar
                                    ? SituacaoDaSolicitacao.Aprovacao
                                    : SituacaoDaSolicitacao.Processo;
         solicitacao.Analise = analise;
         return(solicitacao);
     }
     solicitacao.RegraQuebrada(RegrasDeNegocioSolicitacao.DeveEstarComSituacaoEmAnalise);
     return(solicitacao);
 }
Beispiel #3
0
        public Solicitacao RealizarEntrega(Solicitacao solicitacao, Cliente responsavel, bool aceita, string observacoes, Programa programa)
        {
            if (solicitacao.Situacao == SituacaoDaSolicitacao.Entregue)
            {
                if (responsavel == null)
                {
                    solicitacao.RegraQuebrada(RegrasDeNegocioSolicitacao.SomenteClientePodeAceitarEntrega);
                }

                var entrega = new EntregaDaSolicitacao
                {
                    Aceita       = aceita,
                    DataDoAceite = SystemTime.Now,
                    Observacoes  = observacoes,
                    Responsavel  = responsavel,
                    Programa     = programa
                };
                solicitacao.Entrega  = entrega;
                solicitacao.Situacao = entrega.Aceita
                                           ? SituacaoDaSolicitacao.Finalizado
                                           : SituacaoDaSolicitacao.Cancelado;
                return(solicitacao);
            }
            solicitacao.RegraQuebrada(RegrasDeNegocioSolicitacao.DeveEstarComSituacaoEntrege);
            return(solicitacao);
        }
Beispiel #4
0
 public Solicitacao RealizarProcesso(Solicitacao solicitacao, Funcionario responsavel, string solucao, string observacoes, Programa programa)
 {
     if (solicitacao.Situacao == SituacaoDaSolicitacao.Processo)
     {
         if (responsavel == null)
         {
             solicitacao.RegraQuebrada(RegrasDeNegocioSolicitacao.SomenteFuncionarioPodeDarProcesso);
         }
         var processo = new ProcessoDaSolicitacao
         {
             DataDoProcesso = SystemTime.Now,
             Observacoes    = observacoes,
             Solucao        = solucao,
             Responsavel    = responsavel,
             Programa       = programa
         };
         solicitacao.Processo = processo;
         solicitacao.Situacao = SituacaoDaSolicitacao.Entregue;
         return(solicitacao);
     }
     solicitacao.RegraQuebrada(RegrasDeNegocioSolicitacao.DeveEstarComSituacaoEmProcesso);
     return(solicitacao);
 }
 public Solicitacao RealizarAprovacao(Solicitacao solicitacao, Cliente responsavel, bool aprovado, string observacoes, Programa programa)
 {
     if (solicitacao.Situacao == SituacaoDaSolicitacao.Aprovacao)
     {
         if (responsavel == null)
             solicitacao.RegraQuebrada(RegrasDeNegocioSolicitacao.SomenteUmClientePodeAprovar);
         var aprovacao = new AprovacaoDeSolicitacao
                             {
                                 Aprovado = aprovado,
                                 DataDeAprovacao = SystemTime.Now,
                                 Observacoes = observacoes,
                                 Responsavel = responsavel,
                                 Programa = programa
                             };
         solicitacao.Aprovacao = aprovacao;
         solicitacao.Situacao = aprovado ? SituacaoDaSolicitacao.Processo : SituacaoDaSolicitacao.Cancelado;
         return solicitacao;
     }
     solicitacao.AdicionarRegraQuebrada(RegrasDeNegocioSolicitacao.DeveEstarComSituacaoParaAprovacao);
     return solicitacao;
 }
Beispiel #6
0
 public Solicitacao RealizarAprovacao(Solicitacao solicitacao, Cliente responsavel, bool aprovado, string observacoes, Programa programa)
 {
     if (solicitacao.Situacao == SituacaoDaSolicitacao.Aprovacao)
     {
         if (responsavel == null)
         {
             solicitacao.RegraQuebrada(RegrasDeNegocioSolicitacao.SomenteUmClientePodeAprovar);
         }
         var aprovacao = new AprovacaoDeSolicitacao
         {
             Aprovado        = aprovado,
             DataDeAprovacao = SystemTime.Now,
             Observacoes     = observacoes,
             Responsavel     = responsavel,
             Programa        = programa
         };
         solicitacao.Aprovacao = aprovacao;
         solicitacao.Situacao  = aprovado ? SituacaoDaSolicitacao.Processo : SituacaoDaSolicitacao.Cancelado;
         return(solicitacao);
     }
     solicitacao.AdicionarRegraQuebrada(RegrasDeNegocioSolicitacao.DeveEstarComSituacaoParaAprovacao);
     return(solicitacao);
 }
        public Solicitacao RealizarEntrega(Solicitacao solicitacao, Cliente responsavel, bool aceita, string observacoes, Programa programa)
        {
            if (solicitacao.Situacao == SituacaoDaSolicitacao.Entregue)
            {
                if (responsavel == null)
                    solicitacao.RegraQuebrada(RegrasDeNegocioSolicitacao.SomenteClientePodeAceitarEntrega);

                var entrega = new EntregaDaSolicitacao
                                  {
                                      Aceita = aceita,
                                      DataDoAceite = SystemTime.Now,
                                      Observacoes = observacoes,
                                      Responsavel = responsavel,
                                      Programa = programa
                                  };
                solicitacao.Entrega = entrega;
                solicitacao.Situacao = entrega.Aceita
                                           ? SituacaoDaSolicitacao.Finalizado
                                           : SituacaoDaSolicitacao.Cancelado;
                return solicitacao;
            }
            solicitacao.RegraQuebrada(RegrasDeNegocioSolicitacao.DeveEstarComSituacaoEntrege);
            return solicitacao;
        }
 public Solicitacao RealizarProcesso(Solicitacao solicitacao, Funcionario responsavel, string solucao, string observacoes, Programa programa)
 {
     if (solicitacao.Situacao == SituacaoDaSolicitacao.Processo)
     {
         if (responsavel == null)
             solicitacao.RegraQuebrada(RegrasDeNegocioSolicitacao.SomenteFuncionarioPodeDarProcesso);
         var processo = new ProcessoDaSolicitacao
                            {
                                DataDoProcesso = SystemTime.Now,
                                Observacoes = observacoes,
                                Solucao = solucao,
                                Responsavel = responsavel,
                                Programa = programa
                            };
         solicitacao.Processo = processo;
         solicitacao.Situacao = SituacaoDaSolicitacao.Entregue;
         return solicitacao;
     }
     solicitacao.RegraQuebrada(RegrasDeNegocioSolicitacao.DeveEstarComSituacaoEmProcesso);
     return solicitacao;
 }