public Pacto AtualizarStatus(Pacto pacto, Usuario usr, eAcaoPacto eAcao, bool isDirigente, bool commit = true)
        {
            bool ignorarValidacoes = false;


            ignorarValidacoes = ConfiguraProximoStatus(pacto, usr, eAcao, isDirigente, ignorarValidacoes);



            if (!ignorarValidacoes)
            {
                ValidarPacto(pacto);
                if (!pacto.ValidationResult.IsValid)
                {
                    return(pacto);
                }

                TratarInclusaoHistoricoAtualizacaoStatus(pacto, eAcao);
            }

            AtualizaEstadoEntidadesRelacionadas(pacto);

            pacto.ValidationResult.Message = Mensagens.MS_004;

            if (commit)
            {
                return(_classRepository.Atualizar(pacto, pacto.IdPacto));
            }
            else
            {
                return(pacto);
            }
        }
Пример #2
0
        private static void TratarSituacaoPactoAtualizacaoEditando(eAcaoPacto eAcao, Pacto pacto)
        {
            if (eAcao == eAcaoPacto.Editando)
            {
                pacto.CpfUsuarioDirigente      = null;
                pacto.StatusAprovacaoDirigente = null;
                pacto.DataAprovacaoDirigente   = (DateTime?)null;

                pacto.IdSituacaoPacto = (int)eSituacaoPacto.PendenteDeAssinatura;
            }
        }
        private bool ConfiguraProximoStatus(Pacto pacto, Usuario usuariologado, eAcaoPacto eAcaoPacto, bool isDirigente, bool ignorarValidacoes)
        {
            if (eAcaoPacto == eAcaoPacto.Assinando)
            {
                ConfiguraProximoStatusAssinando(pacto, usuariologado, isDirigente);
            }
            else if (eAcaoPacto == eAcaoPacto.Negando)
            {
                ConfiguraProximoStatusNegando(pacto);
            }
            else if (eAcaoPacto == eAcaoPacto.Interrompendo)
            {
                ConfiguraProximoStatusInterrompendo(pacto);
            }
            else if (eAcaoPacto == eAcaoPacto.VoltandoSuspensao)
            {
                ConfiguraProximoStatusVoltandoSuspensao(pacto);
            }
            else if (eAcaoPacto == eAcaoPacto.ReativandoAutomaticamente)
            {
                ConfiguraProximoPassoReativandoAutomaticamente(pacto);
            }
            else if (eAcaoPacto == eAcaoPacto.Suspendendo)
            {
                ConfiguraProximoPassoSuspendendo(pacto);
            }
            else if (eAcaoPacto == eAcaoPacto.Avaliando)
            {
                ConfiguraProximoPassoAvaliando(pacto);
            }
            else if (eAcaoPacto == eAcaoPacto.AvaliandoParcialmente)
            {
                ConfiguraProximoPassoAvaliandoParcialmente(pacto);
            }
            else if (eAcaoPacto == eAcaoPacto.Excluindo)
            {
                ignorarValidacoes = ConfiguraProximoPassoExcluindo(pacto);
            }
            else if (eAcaoPacto == eAcaoPacto.CancelandoAvaliacao || eAcaoPacto == eAcaoPacto.CancelandoAvaliacaoParcialmente)
            {
                ignorarValidacoes = ConfiguraProximoPassoCancelandoAvaliacao(pacto);
            }
            else if (eAcaoPacto == eAcaoPacto.Iniciando)
            {
                ignorarValidacoes = ConfiguraProximoPassoIniciando(pacto);
            }
            else if (eAcaoPacto == eAcaoPacto.Finalizando)
            {
                ignorarValidacoes = ConfiguraProximoPassoFinalizando(pacto);
            }

            return(ignorarValidacoes);
        }
 private void TratarInclusaoHistoricoAtualizacaoStatus(Pacto pacto, eAcaoPacto acao)
 {
     if (acao == eAcaoPacto.ReativandoAutomaticamente)
     {
         var historico = new Historico()
         {
             IdPacto   = pacto.IdPacto,
             Descricao = $"Plano de trabalho reativado automaticamente em { DateTime.Now.ToString("dd/MM/yyyy")}, às { DateTime.Now.ToString("HH:mm:ss")}, conforme programação da reativação."
         };
         _historicoService.Adicionar(historico);
     }
 }
Пример #5
0
        public void CriaHistoricoAcaoEmPacto(Pacto pacto, eAcaoPacto acao)
        {
            string strHistorico = "";

            if ((int)acao == (int)PGD.Domain.Enums.eAcaoPacto.Finalizando)
            {
                strHistorico = "Situação do pacto alterada automaticamente para PENDENTE DE AVALIAÇÃO, pelo término do prazo de sua execução, em " + DateTime.Now.ToShortDateString() + ", às " + DateTime.Now.ToShortTimeString() + ", conforme horário oficial de Brasília.";
            }

            if (strHistorico != "")
            {
                var historico = new HistoricoViewModel()
                {
                    IdPacto = pacto.IdPacto, Descricao = strHistorico
                };
                var historicoVM = Mapper.Map <HistoricoViewModel, Historico>(historico);
                _historicoService.Adicionar(historicoVM);
            }
        }
Пример #6
0
        public PactoViewModel Atualizar(PactoViewModel pactoViewModel, UsuarioViewModel usuario, eAcaoPacto eAcao)
        {
            BeginTransaction();

            bool isDirigente = usuario.IsDirigente;

            CriaHistoricoAcaoEmPacto(pactoViewModel, isDirigente, usuario, eAcao);

            var pacto = Mapper.Map <PactoViewModel, Pacto>(pactoViewModel);

            TratarSituacaoPactoAtualizacao(pactoViewModel, usuario, eAcao, isDirigente, pacto);

            var pactoReturn = _pactoService.Atualizar(pacto, pacto.IdPacto);

            if (pactoReturn.ValidationResult.IsValid)
            {
                var acao = "";
                if (pactoViewModel.Acao == "Assinando")
                {
                    pactoReturn.ValidationResult.Message = Mensagens.MS_004;
                    acao = Domain.Enums.Operacao.Assinatura.ToString();
                }
                else
                {
                    pactoReturn.ValidationResult.Message = Mensagens.MS_006;
                    acao = Domain.Enums.Operacao.Alteração.ToString();
                }

                _logService.Logar(pacto, usuario.CPF, acao);
                Commit();
            }

            pactoViewModel = Mapper.Map <Pacto, PactoViewModel>(pactoReturn);
            return(pactoViewModel);
        }
Пример #7
0
        public PactoViewModel CancelarAvaliacao(PactoViewModel pactoVM, AvaliacaoProdutoViewModel avaliacaoProdutoVM, UsuarioViewModel user, eAcaoPacto acao)
        {
            BeginTransaction();

            CriaHistoricoAcaoEmPacto(pactoVM, user.IsDirigente, user, acao);

            var pacto = Mapper.Map <PactoViewModel, Pacto>(pactoVM);
            var usr   = Mapper.Map <UsuarioViewModel, Usuario>(user);

            pacto.DataTerminoReal = null;
            pacto.EntregueNoPrazo = null;

            var produto          = pacto.Produtos.FirstOrDefault(p => p.IdProduto == avaliacaoProdutoVM.IdProduto);
            var avaliacaoProduto = produto.Avaliacoes.FirstOrDefault(ap => ap.IdAvaliacaoProduto == avaliacaoProdutoVM.IdAvaliacaoProduto);

            _avaliacaoProdutoService.Remover(avaliacaoProduto);

            produto.Avaliacoes.Remove(avaliacaoProduto);

            pacto = _pactoService.AtualizarStatus(pacto, usr, acao, user.IsDirigente);

            if (pacto.ValidationResult.IsValid)
            {
                _logService.Logar(pacto, user.CPF, Domain.Enums.Operacao.Alteração.ToString());
                Commit();
            }

            pactoVM = Mapper.Map <Pacto, PactoViewModel>(pacto);
            return(pactoVM);
        }
Пример #8
0
        public PactoViewModel AtualizarStatus(PactoViewModel pactoViewModel, UsuarioViewModel usuario, eAcaoPacto eAcao, bool commit = true)
        {
            BeginTransaction();

            if (!usuario.IsDirigente && pactoViewModel.StatusAprovacaoDirigente != null)
            {
                pactoViewModel.CpfUsuarioSolicitante      = usuario.CPF;
                pactoViewModel.StatusAprovacaoSolicitante = 1;
                pactoViewModel.DataAprovacaoSolicitante   = DateTime.Now;
            }

            CriaHistoricoAcaoEmPacto(pactoViewModel, usuario.IsDirigente, usuario, eAcao);

            var pacto = Mapper.Map <PactoViewModel, Pacto>(pactoViewModel);
            var usr   = Mapper.Map <UsuarioViewModel, Usuario>(usuario);

            if (eAcao == eAcaoPacto.Avaliando)
            {
                if (pactoViewModel.DataTerminoReal != null)
                {
                    pacto.DataTerminoReal = pactoViewModel.DataTerminoReal.Value;
                }

                pacto.EntregueNoPrazo = 1;
            }

            pacto = _pactoService.AtualizarStatus(pacto, usr, eAcao, usuario.IsDirigente, false);

            if (pacto.ValidationResult.IsValid)
            {
                if (eAcao == eAcaoPacto.Assinando)
                {
                    pacto.ValidationResult.Message = Mensagens.MS_006;
                }

                string oper = Domain.Enums.Operacao.Alteração.ToString();

                switch (eAcao.ToString())
                {
                case "Suspendendo":
                    oper = Domain.Enums.Operacao.Suspensão.ToString();
                    break;

                case "Interrompendo":
                    oper = Domain.Enums.Operacao.Interrupção.ToString();
                    break;

                case "Avaliando":
                    oper = Domain.Enums.Operacao.Avaliacao.ToString();
                    break;

                case "VoltandoSuspensao":
                    oper = Domain.Enums.Operacao.VoltandoSuspensão.ToString();
                    break;
                }

                _logService.Logar(pacto, usuario.CPF, oper);

                List <ValidationError> lstErros = Commit();

                if (lstErros?.Count > 0)
                {
                    lstErros.ForEach(e =>
                    {
                        // LogManagerComum.LogarErro(null, null, " Erro ao salvar a ação. " + e.Message);
                        pacto.ValidationResult.Add(e);
                    });

                    pacto.ValidationResult.Message = Mensagens.MS_010;
                }
            }

            pactoViewModel = Mapper.Map <Pacto, PactoViewModel>(pacto);
            return(pactoViewModel);
        }
Пример #9
0
        private void TratarHistoricoRestricaoVisualizacao(PactoViewModel pacto, UsuarioViewModel user, eAcaoPacto acao, List <string> lstHistorico, string strPerfil)
        {
            if ((int)acao == (int)PGD.Domain.Enums.eAcaoPacto.Assinando || (int)acao == (int)PGD.Domain.Enums.eAcaoPacto.Editando || (int)acao == (int)PGD.Domain.Enums.eAcaoPacto.Criando)
            {
                bool registrarHistoricoPacto = false;
                if (pacto.IdPacto > 0)
                {
                    var pactoAtual = _pactoService.BuscarPorId(pacto.IdPacto);
                    registrarHistoricoPacto = pactoAtual.IndVisualizacaoRestrita != pacto.IndVisualizacaoRestrita;
                }
                else
                {
                    registrarHistoricoPacto = pacto.IndVisualizacaoRestrita;
                }

                if (registrarHistoricoPacto)
                {
                    if (pacto.IndVisualizacaoRestrita)
                    {
                        lstHistorico.Add("Plano de Trabalho marcado como reservado por " + _usuarioService.ObterPorCPF(user.CpfUsuario).Nome + "," + strPerfil + ", na unidade " + _unidadeService.ObterUnidades().FirstOrDefault(x => x.IdUnidade == pacto.UnidadeExercicio).Nome + " em " + DateTime.Now.ToShortDateString() + ", às " + DateTime.Now.ToShortTimeString() + ", conforme horário oficial de Brasília");
                    }
                    else
                    {
                        lstHistorico.Add("Excluída a marcação de Plano de Trabalho reservado por " + _usuarioService.ObterPorCPF(user.CpfUsuario).Nome + "," + strPerfil + ", na unidade " + _unidadeService.ObterUnidades().FirstOrDefault(x => x.IdUnidade == pacto.UnidadeExercicio).Nome + " em " + DateTime.Now.ToShortDateString() + ", às " + DateTime.Now.ToShortTimeString() + ", conforme horário oficial de Brasília");
                    }
                }
            }
        }
Пример #10
0
 private static bool VerificarSeDeveCriarHistoricoDeAssinatura(eAcaoPacto acao)
 {
     return(acao == eAcaoPacto.Assinando);
 }
Пример #11
0
        public PactoViewModel CriaHistoricoAcaoEmPacto(PactoViewModel pacto, bool isDirigente, UsuarioViewModel user, eAcaoPacto acao)
        {
            List <string> lstHistorico = new List <string>();
            string        strPerfil    = ObterDescricaoPerfilUsuario(isDirigente, user);

            if (VerificarSeDeveCriarHistoricoDeAssinatura(acao))
            {
                TratarHistoricoDeAssinatura(pacto, isDirigente, user, lstHistorico, strPerfil);
            }
            else if ((int)PGD.Domain.Enums.eAcaoPacto.Interrompendo == (int)acao)
            {
                lstHistorico.Add("Plano de Trabalho interrompido por " + _usuarioService.ObterPorCPF(user.CpfUsuario).Nome + "," + strPerfil + ", na unidade " + _unidadeService.ObterUnidades().FirstOrDefault(x => x.IdUnidade == pacto.UnidadeExercicio).Nome + ", em " + DateTime.Now.ToShortDateString() + ", às " + DateTime.Now.ToShortTimeString() + ", conforme horário oficial de Brasília. Motivo: " + pacto.Motivo);
            }
            else if ((int)acao == (int)PGD.Domain.Enums.eAcaoPacto.Avaliando)
            {
                lstHistorico.Add("Plano de Trabalho avaliado por " + _usuarioService.ObterPorCPF(user.CpfUsuario).Nome + "," + strPerfil + ", na unidade " + _unidadeService.ObterUnidades().FirstOrDefault(x => x.IdUnidade == pacto.UnidadeExercicio).Nome + " em " + DateTime.Now.ToShortDateString() + ", às " + DateTime.Now.ToShortTimeString() + ", conforme horário oficial de Brasília.");
            }
            else if ((int)acao == (int)PGD.Domain.Enums.eAcaoPacto.AvaliandoParcialmente)
            {
                lstHistorico.Add("Plano de Trabalho avaliado parcialmente por " + _usuarioService.ObterPorCPF(user.CpfUsuario).Nome + "," + strPerfil + ", na unidade " + _unidadeService.ObterUnidades().FirstOrDefault(x => x.IdUnidade == pacto.UnidadeExercicio).Nome + " em " + DateTime.Now.ToShortDateString() + ", às " + DateTime.Now.ToShortTimeString() + ", conforme horário oficial de Brasília.");
            }
            else if ((int)acao == (int)PGD.Domain.Enums.eAcaoPacto.Excluindo)
            {
                lstHistorico.Add("Plano de Trabalho excluido por " + _usuarioService.ObterPorCPF(user.CpfUsuario).Nome + "," + strPerfil + ", na unidade " + _unidadeService.ObterUnidades().FirstOrDefault(x => x.IdUnidade == pacto.UnidadeExercicio).Nome + " em " + DateTime.Now.ToShortDateString() + ", às " + DateTime.Now.ToShortTimeString() + ", conforme horário oficial de Brasília.");
            }
            else if ((int)acao == (int)PGD.Domain.Enums.eAcaoPacto.Negando)
            {
                lstHistorico.Add("Solicitação de Plano de Trabalho negada por " + _usuarioService.ObterPorCPF(user.CpfUsuario).Nome + "," + strPerfil + ", na unidade " + _unidadeService.ObterUnidades().FirstOrDefault(x => x.IdUnidade == pacto.UnidadeExercicio).Nome + " em " + DateTime.Now.ToShortDateString() + ", às " + DateTime.Now.ToShortTimeString() + ", conforme horário oficial de Brasília.");
            }
            else if ((int)acao == (int)PGD.Domain.Enums.eAcaoPacto.Suspendendo)
            {
                string textoReativacao = "";
                if (pacto.SuspensoAte.HasValue)
                {
                    textoReativacao = ", com reativação programada para dia " + pacto.SuspensoAte.Value.ToString("dd/MM/yyyy");
                }
                lstHistorico.Add("Pacto Plano de Trabalho por " + _usuarioService.ObterPorCPF(user.CpfUsuario).Nome + "," + strPerfil + ", na unidade " + _unidadeService.ObterUnidades().FirstOrDefault(x => x.IdUnidade == pacto.UnidadeExercicio).Nome + " em " + DateTime.Now.ToShortDateString() + ", às " + DateTime.Now.ToShortTimeString() + ", conforme horário oficial de Brasília" + textoReativacao + "." + pacto.Motivo);
            }
            else if ((int)acao == (int)PGD.Domain.Enums.eAcaoPacto.VoltandoSuspensao)
            {
                lstHistorico.Add("Término da suspensão por " + _usuarioService.ObterPorCPF(user.CpfUsuario).Nome + "," + strPerfil + ", na unidade " + _unidadeService.ObterUnidades().FirstOrDefault(x => x.IdUnidade == pacto.UnidadeExercicio).Nome + " em " + DateTime.Now.ToShortDateString() + ", às " + DateTime.Now.ToShortTimeString() + ", conforme horário oficial de Brasília." + pacto.Motivo);
            }
            else if ((int)acao == (int)PGD.Domain.Enums.eAcaoPacto.Editando)
            {
                lstHistorico.Add("Plano de Trabalho alterado por " + _usuarioService.ObterPorCPF(user.CpfUsuario).Nome + "," + strPerfil + ", na unidade " + _unidadeService.ObterUnidades().FirstOrDefault(x => x.IdUnidade == pacto.UnidadeExercicio).Nome + " em " + DateTime.Now.ToShortDateString() + ", às " + DateTime.Now.ToShortTimeString() + ", conforme horário oficial de Brasília." + pacto.Motivo);
            }
            else if ((int)acao == (int)PGD.Domain.Enums.eAcaoPacto.CancelandoAvaliacao)
            {
                lstHistorico.Add("Avaliação de Plano de Trabalho cancelada por " + _usuarioService.ObterPorCPF(user.CpfUsuario).Nome + "," + strPerfil + ", na unidade " + _unidadeService.ObterUnidades().FirstOrDefault(x => x.IdUnidade == pacto.UnidadeExercicio).Nome + " em " + DateTime.Now.ToShortDateString() + ", às " + DateTime.Now.ToShortTimeString() + ", conforme horário oficial de Brasília." + pacto.Motivo);
            }
            else if ((int)acao == (int)PGD.Domain.Enums.eAcaoPacto.CancelandoAvaliacaoParcialmente)
            {
                lstHistorico.Add("Avaliação parcial de Plano de Trabalho cancelada por " + _usuarioService.ObterPorCPF(user.CpfUsuario).Nome + "," + strPerfil + ", na unidade " + _unidadeService.ObterUnidades().FirstOrDefault(x => x.IdUnidade == pacto.UnidadeExercicio).Nome + " em " + DateTime.Now.ToShortDateString() + ", às " + DateTime.Now.ToShortTimeString() + ", conforme horário oficial de Brasília." + pacto.Motivo);
            }
            else if ((int)acao == (int)PGD.Domain.Enums.eAcaoPacto.Finalizando)
            {
                lstHistorico.Add("Situação do Plano de Trabalho alterada automaticamente pelo término do prazo de sua execução, em " + DateTime.Now.ToShortDateString() + ", às " + DateTime.Now.ToShortTimeString() + ", conforme horário oficial de Brasília.");
            }

            TratarHistoricoRestricaoVisualizacao(pacto, user, acao, lstHistorico, strPerfil);
            AdicionarListaHistoricos(pacto, lstHistorico);
            return(pacto);
        }
Пример #12
0
        private static void TratarSituacaoPactoAtualizacaoAssinando(PactoViewModel pactoViewModel, UsuarioViewModel usuario, eAcaoPacto eAcao, bool isDirigente, Pacto pacto)
        {
            if (eAcao == eAcaoPacto.Assinando && pactoViewModel.DataPrevistaInicio > DateTime.Today && (!isDirigente && pacto.StatusAprovacaoDirigente == 1 || (isDirigente && pacto.StatusAprovacaoSolicitante == 1)))
            {
                pacto.IdSituacaoPacto = (int)eSituacaoPacto.AIniciar;
            }

            if (eAcao == eAcaoPacto.Assinando && pactoViewModel.DataPrevistaInicio <= DateTime.Today)
            {
                if (isDirigente && pacto.StatusAprovacaoSolicitante == 1 || !isDirigente && pacto.StatusAprovacaoDirigente == 1)
                {
                    pacto.IdSituacaoPacto = (int)eSituacaoPacto.EmAndamento;
                }

                if (isDirigente && pactoViewModel.StatusAprovacaoDirigente == null)
                {
                    pacto.StatusAprovacaoDirigente = 1;
                    pacto.DataAprovacaoDirigente   = DateTime.Today;
                    pacto.CpfUsuarioDirigente      = usuario.CPF;
                }
            }
        }
Пример #13
0
 private static void TratarSituacaoPactoAtualizacao(PactoViewModel pactoViewModel, UsuarioViewModel usuario, eAcaoPacto eAcao, bool isDirigente, Pacto pacto)
 {
     TratarSituacaoPactoAtualizacaoEditando(eAcao, pacto);
     TratarSituacaoPactoAtualizacaoAssinando(pactoViewModel, usuario, eAcao, isDirigente, pacto);
 }
 public Pacto AtualizarStatus(Pacto obj, Usuario usuariologado, eAcaoPacto eAcaoPacto)
 {
     throw new NotImplementedException();
 }