Esempio n. 1
0
        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);
            }
        }
Esempio n. 2
0
        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();
        }
Esempio n. 3
0
        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();
        }
Esempio n. 4
0
        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();
        }
Esempio n. 5
0
 public static EstadosProjeto processar(EstadosProjeto estado, EventosProjeto evento)
 {
     return(maquinaDeEstados[estado][evento]);
 }
Esempio n. 6
0
 public static string EstadoParaString(EstadosProjeto estado)
 {
     return(Enum.GetName(typeof(EstadosProjeto), estado));
 }