private void ConfirmarDespachoExpirado(Projeto projeto, DespachoBonificacao despachoBonificacao) { DateTime dataLimite = despachoBonificacao.periodo.GetValueOrDefault(); if (DateTime.Compare(DateTime.Today, dataLimite) > 0) { String estado = servicoObterEstados.ObterEstado(projeto.estado).estado1; EstadosProjeto estadoAntigo = Utils.StringParaEstado(estado); EstadosProjeto estadoNovo = MaquinaDeEstados.processar(estadoAntigo, EventosProjeto.pagamento_completo); String superEstadoNovo = Utils.EstadoParaString(estadoNovo); projeto.estado = servicoObterEstados.ObterIdEstado(superEstadoNovo); servicoProjetos.AtualizarProjeto(projeto); } }
public override void Notificar(StringArgs args) { if (!VerificarArgumentos(args)) { Erro erro = new Erro("Por favor preencha todos os campos necessários com o formato pretendido."); return; } double montantePago = Double.Parse(args.texto); Pagamento pagamento = new Pagamento() { id_projeto = projeto.id, id_despacho = despachoMaisRecente.Despacho.id, data = DateTime.Now, valor = montantePago }; servicoPagamento.RealizarPagamento(pagamento); String estado = servicoObterEstados.ObterEstado(projeto.estado).estado1; EstadosProjeto estadoAntigo = Utils.StringParaEstado(estado); EstadosProjeto estadoNovo; if (aPagar < montantePago) { estadoNovo = MaquinaDeEstados.processar(estadoAntigo, EventosProjeto.pagamento_completo); double excesso = montantePago - despachoMaisRecente.montante.GetValueOrDefault(); Vista.MostraMensagemDeTexto("Foi pago em excesso, cerca de " + excesso + "€ (Euros) ."); } else if (aPagar == montantePago) { estadoNovo = MaquinaDeEstados.processar(estadoAntigo, EventosProjeto.pagamento_completo); } else { estadoNovo = MaquinaDeEstados.processar(estadoAntigo, EventosProjeto.pagamento); } String superEstadoNovo = Utils.EstadoParaString(estadoNovo); projeto.estado = servicoObterEstados.ObterIdEstado(superEstadoNovo); servicoProjetos.AtualizarProjeto(projeto); Vista.Hide(); Vista.Close(); }
public override void Notificar(StringArgs args) { Historico historico = servicoHistorico.LerHistorico(new Historico() { id_projeto = projeto.id }); String estado = servicoObterEstados.ObterEstado(projeto.estado).estado1; switch (args.texto) { case "sim": pedidoDeReforco.decisao = "aprovado"; servicoPedidoDeReforco.AtualizarPedidoDeReforco(pedidoDeReforco); String estadoNovo = Utils.EstadoParaString(MaquinaDeEstados.processar( Utils.StringParaEstado(estado), EventosProjeto.despacho_aprovado)); projeto.estado = servicoObterEstados.ObterIdEstado(estadoNovo); servicoProjetos.AtualizarProjeto(projeto); break; case "nao": pedidoDeReforco.decisao = "rejeitado"; servicoPedidoDeReforco.AtualizarPedidoDeReforco(pedidoDeReforco); EstadosProjeto estadoRecente = MaquinaDeEstados.processar( Utils.StringParaEstado(estado), EventosProjeto.despacho_rejeitado); if (estadoRecente == EstadosProjeto.historico) { projeto.estado = historico.estado; servicoProjetos.AtualizarProjeto(projeto); } break; } servicoHistorico.EliminarHistorico(historico); Vista.Hide(); Vista.Close(); }
public override void Notificar(EmitirParecerTecnicoArgs args) { if (!verificarArgumentos(args)) { Erro erro = new Erro("Por favor preencha todos os campos necessários"); return; } ParecerTecnico parecer = new ParecerTecnico() { texto = args.texto, decisao = args.decisao.ToLower(), id_projeto = projeto.id, data_parecer = DateTime.Now }; servicoParecer.CriarParecerTecnico(parecer); String estado = servicoObterEstados.ObterEstado(projeto.estado).estado1; EstadosProjeto estadoAntigo = Utils.StringParaEstado(estado); EstadosProjeto estadoNovo; if (args.decisao.Equals("Aprovado")) { estadoNovo = MaquinaDeEstados.processar(estadoAntigo, EventosProjeto.parecer_favoravel); } else { estadoNovo = MaquinaDeEstados.processar(estadoAntigo, EventosProjeto.parecer_desfavoravel); } String superEstadoNovo = Utils.EstadoParaString(estadoNovo); projeto.estado = servicoObterEstados.ObterIdEstado(superEstadoNovo); servicoProjetos.AtualizarProjeto(projeto); Vista.Hide(); Vista.Close(); }
public static EstadosProjeto processar(EstadosProjeto estado, EventosProjeto evento) { return(maquinaDeEstados[estado][evento]); }
public static string EstadoParaString(EstadosProjeto estado) { return(Enum.GetName(typeof(EstadosProjeto), estado)); }