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); } }
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); } }
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); } }
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); }
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); }
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); }
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"); } } } }
private static bool VerificarSeDeveCriarHistoricoDeAssinatura(eAcaoPacto acao) { return(acao == eAcaoPacto.Assinando); }
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); }
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; } } }
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(); }