Beispiel #1
0
        private void AtualizarPeriodicidade()
        {
            PERIODICIDADE       = new PeriodicidadeBO().GetPeriodicidade(((Periodicidade)gridPeriodicidade.CurrentRow.DataBoundItem).COD_PERIODICIDADE);
            PERIODICIDADE.ATIVO = !((Periodicidade)gridPeriodicidade.CurrentRow.DataBoundItem).ATIVO;

            new PeriodicidadeBO().SalvarPeriodicidade(PERIODICIDADE);
        }
Beispiel #2
0
        private List <Periodicidade> listPeriodicidade(Vacina vacina)
        {
            List <Periodicidade> lPeriodicidade = new List <Periodicidade>();

            try
            {
                this.conn.openConnection();

                SqlCommand cmd = new SqlCommand();
                cmd.CommandText = "SELECT p.id,p.periodo,pe.numero,pe.equivalencia FROM vacina v INNER JOIN vacina_periodicidade pe ON v.id  = pe.vacina_id  INNER JOIN periodicidade p ON pe.periodicidade_id  = p.id  WHERE v.id = @vacina";
                cmd.Connection  = this.conn.SqlConn;
                cmd.Parameters.AddWithValue("@vacina", vacina.Id);

                SqlDataReader reader = cmd.ExecuteReader();
                while (reader.Read())
                {
                    Periodicidade periodicidade = new Periodicidade();
                    periodicidade.Id          = reader.GetInt32(reader.GetOrdinal("id"));
                    periodicidade.QtdeDias    = reader.GetInt32(reader.GetOrdinal("periodo"));
                    periodicidade.Numero      = reader.GetInt32(reader.GetOrdinal("numero"));
                    periodicidade.Equivalecia = reader.GetString(reader.GetOrdinal("equivalencia"));

                    lPeriodicidade.Add(periodicidade);
                }
                this.conn.closeConnection();
            }
            catch (SqlException ce)
            {
                throw new DaoException("Erro ao listar Periodicidade :" + ce.Message);
            }

            return(lPeriodicidade);
        }
        public HttpResponseMessage Atualizar(HttpRequestMessage request, PeriodicidadeViewModel PeriodicidadeViewModel)
        {
            return(CreateHttpResponse(request, () =>
            {
                HttpResponseMessage response = null;

                if (!ModelState.IsValid)
                {
                    response = request.CreateResponse(HttpStatusCode.BadRequest,
                                                      ModelState.Keys.SelectMany(k => ModelState[k].Errors)
                                                      .Select(m => m.ErrorMessage).ToArray());
                }
                else
                {
                    Periodicidade _Periodicidade = _PeriodicidadeRep.GetSingle(PeriodicidadeViewModel.Id);

                    Usuario usuario = _usuarioRep.GetSingle(int.Parse(HttpContext.Current.User.Identity.GetUserId()));
                    _Periodicidade.AtualizarPeriodicidade(PeriodicidadeViewModel, usuario);

                    _unitOfWork.Commit();



                    // Update view model
                    PeriodicidadeViewModel = Mapper.Map <Periodicidade, PeriodicidadeViewModel>(_Periodicidade);
                    response = request.CreateResponse(HttpStatusCode.OK, PeriodicidadeViewModel);
                }

                return response;
            }));
        }
Beispiel #4
0
        public CadastrarAgendamentoEntrada(
            int idUsuario,
            int idCategoria,
            int?idConta,
            int?idCartaoCredito,
            MetodoPagamento tipoMetodoPagamento,
            decimal valorParcela,
            DateTime dataPrimeiraParcela,
            int quantidadeParcelas,
            Periodicidade periodicidadeParcelas,
            int?idPessoa      = null,
            string observacao = null)
        {
            this.IdUsuario             = idUsuario;
            this.IdCategoria           = idCategoria;
            this.IdConta               = idConta;
            this.IdCartaoCredito       = idCartaoCredito;
            this.TipoMetodoPagamento   = tipoMetodoPagamento;
            this.IdPessoa              = idPessoa;
            this.Observacao            = observacao;
            this.ValorParcela          = valorParcela;
            this.DataPrimeiraParcela   = dataPrimeiraParcela.Date;
            this.QuantidadeParcelas    = quantidadeParcelas;
            this.PeriodicidadeParcelas = periodicidadeParcelas;

            this.Validar();
        }
 public static void AtualizarPeriodicidade(this Periodicidade periodicidade, PeriodicidadeViewModel periodicidadeVm, Usuario usuario)
 {
     periodicidade.UsuarioAlteracao  = usuario;
     periodicidade.Ativo             = periodicidadeVm.Ativo;
     periodicidade.DescPeriodicidade = periodicidadeVm.DescPeriodicidade;
     periodicidade.DtAlteracao       = DateTime.Now;
 }
Beispiel #6
0
        public void TestExibicaoPeriodicidadeNoSingular()
        {
            // Arrange
            var umMes = new Periodicidade(1, dias: false);
            var umDia = new Periodicidade(1, dias: true);

            // Act & Assert
            Assert.AreEqual("1 mês", umMes.ToString());
            Assert.AreEqual("1 dia", umDia.ToString());
        }
        public ActionResult Salvar(int id, DateTime inicio, DateTime fim, Periodicidade periodicidade)
        {
            Espetaculo espetaculo = agenda.Espetaculo(id);

            IList <Sessao> novasSessoes = espetaculo.CriaSessoes(inicio, fim, periodicidade);

            agenda.Agende(novasSessoes);

            return(RedirectToAction("Index", "Sessoes"));
        }
Beispiel #8
0
        public void TestExibicaoPeriodicidadeMeses()
        {
            // Arrange
            var cincoMeses    = new Periodicidade(5);
            var sessentaMeses = new Periodicidade(60);

            // Act & Assert
            Assert.AreEqual("5 meses", cincoMeses.ToString());
            Assert.AreEqual("60 meses", sessentaMeses.ToString());
        }
        public ActionResult Salvar(int id, DateTime inicio, DateTime fim, Periodicidade periodicidade)
        {
            Espetaculo espetaculo = agenda.Espetaculo(id);

            IList<Sessao> novasSessoes = espetaculo.CriaSessoes(inicio, fim, periodicidade);

            agenda.Agende(novasSessoes);

            return RedirectToAction("Index", "Sessoes");
        }
Beispiel #10
0
        public void TestExibicaoPeriodicidadeDias()
        {
            // Arrange
            var seteDias    = new Periodicidade(7, dias: true);
            var noventaDias = new Periodicidade(90, dias: true);

            // Act & Assert
            Assert.AreEqual("7 dias", seteDias.ToString());
            Assert.AreEqual("90 dias", noventaDias.ToString());
        }
Beispiel #11
0
 public string RetornaTipoExecucao()
 {
     if (DisparoManual)
     {
         return($"Disparo {Periodicidade.ToString()}");
     }
     else
     {
         return($"{HoraInicio.Value.ToString("00")} : {MinutoInicio.Value.ToString("00")} {AmPm} - {Periodicidade.ToString()}");
     }
 }
Beispiel #12
0
 public AtividadeInfo(DayOfWeek diaDaSemana, int? nroSemana, double horarioIncio,
     double horarioFim, string descricao, Periodicidade periodicidade, string tipoAtividade)
 {
     this.DiaDaSemana = diaDaSemana;
     this.NroSemana = nroSemana;
     this.HorarioIncio = horarioIncio;
     this.HorarioFim = horarioFim;
     this.Descricao = descricao;
     this.Periodicidade = periodicidade;
     this.TipoAtividade = tipoAtividade;
 }
Beispiel #13
0
 public Atividade(DayOfWeek diaDaSemana, int? nroSemana, double horarioIncio,
     double horarioFim, string descricao, Periodicidade periodicidade, string tipoAtividade)
 {
     Contexto.Inserir(this);
     this.IdcDiaDaSemana = (int)diaDaSemana;
     this.NroSemana = nroSemana;
     this.HorarioIncio = (float)horarioIncio;
     this.HorarioFim = (float)horarioFim;
     this.Descricao = descricao;
     this.IdcPeriodicidade = (int)periodicidade;
     this.TipoAtividade = tipoAtividade;
 }
Beispiel #14
0
        public void TestSomaPeriodicidadeMesesComDateTime()
        {
            // Arrange
            var dataInicio   = new DateTime(2020, 05, 09);
            var dozeMeses    = new Periodicidade(12);
            var dataEsperada = new DateTime(2021, 05, 09);

            // Act
            var dataPlanejada = dataInicio + dozeMeses;

            // Assert
            Assert.AreEqual(dataEsperada, dataPlanejada);
        }
        /*
         * Esse metodo eh responsavel por criar sessoes para
         * o respectivo espetaculo, dado o intervalo de inicio e fim,
         * mais a periodicidade.
         *
         * O algoritmo funciona da seguinte forma:
         * - Caso a data de inicio seja 01/01/2010, a data de fim seja 03/01/2010,
         * e a periodicidade seja DIARIA, o algoritmo cria 3 sessoes, uma
         * para cada dia: 01/01, 02/01 e 03/01.
         *
         * - Caso a data de inicio seja 01/01/2010, a data fim seja 31/01/2010,
         * e a periodicidade seja SEMANAL, o algoritmo cria 5 sessoes, uma
         * a cada 7 dias: 01/01, 08/01, 15/01, 22/01 e 29/01.
         *
         * Repare que a data da primeira sessao é sempre a data inicial.
         */
        public virtual IList<Sessao> CriaSessoes(DateTime inicio, DateTime fim, Periodicidade periodicidade)
        {
            IList<Sessao> sessoes = new List<Sessao>();

            for (int i = 0; i <= fim.Subtract(inicio).Days  ; i += (int)periodicidade)
            {
                sessoes.Add(new Sessao() {
                    Inicio = inicio.AddDays(i)
                });
            }

            return sessoes;
        }
Beispiel #16
0
        public void TestSomaPeriodicidadeDiasComDateTime()
        {
            // Arrange
            var dataInicio   = new DateTime(2020, 04, 29);
            var seteDias     = new Periodicidade(7, dias: true);
            var dataEsperada = new DateTime(2020, 05, 06);

            // Act
            var dataPlanejada = dataInicio + seteDias;

            // Assert
            Assert.AreEqual(dataEsperada, dataPlanejada);
        }
Beispiel #17
0
 public Planejamento(List <Objeto> objetos, Procedimento procedimento, DateTime data_inicio, Periodicidade periodicidade)
 {
     AddNotifications(
         new Contract()
         .Requires()
         .IsNotNull(procedimento, "Procedimento", "Procedimento Inválido")
         .IsNotNull(periodicidade, "Periodicidade", "Periocidade inválida")
         );
     DataInicio         = data_inicio;
     Periodicidade      = periodicidade;
     Objetos            = objetos;
     Procedimento       = procedimento;
     StatusPlanejamento = StatusPlanejamento.Ativo;
 }
Beispiel #18
0
        public void TestSomaPeriodicidadeComDateTimeDeveSerComutativa()
        {
            // Arrange
            var dataInicio   = new DateTime(2020, 04, 29);
            var seteDias     = new Periodicidade(7, dias: true);
            var dataEsperada = new DateTime(2020, 05, 06);

            // Act
            var dataPlanejada1 = dataInicio + seteDias;
            var dataPlanejada2 = seteDias + dataInicio;

            // Assert
            Assert.AreEqual(dataEsperada, dataPlanejada1);
            Assert.AreEqual(dataEsperada, dataPlanejada2);
        }
        public virtual IList<Sessao> CriaSessoes(DateTime inicio, DateTime fim, Periodicidade periodicidade)
        {
            IList<Sessao> sessoes = new List<Sessao>();
            int dias = (fim.Date - inicio.Date).Days;
            for (int i = 0; i <= dias; i++)
            {
                Sessao sessao = new Sessao();
                sessao.Espetaculo = this;
                sessao.Inicio = inicio.AddDays(i);

                sessoes.Add(sessao);
            }

            return sessoes;
        }
Beispiel #20
0
 public async Task <IActionResult> Post(Periodicidade periodicidade)
 {
     try
     {
         _repo.Add(periodicidade);
         if (await _repo.SaveChangesAsync())
         {
             return(Created($"/api/Periodicidade/{periodicidade.PeriodicidadeId}", periodicidade));
         }
     }
     catch (System.Exception)
     {
         return(this.StatusCode(StatusCodes.Status500InternalServerError, "Banco de dados falhou"));
     }
     return(BadRequest());
 }
Beispiel #21
0
        public void Test_12Meses_Nem_Sempre_Igual_365Dias()
        {
            // Arrange
            var dataInicio    = new DateTime(2019, 05, 09);
            var umAno         = new Periodicidade(365, dias: true);
            var dataEsperada1 = new DateTime(2020, 05, 08); // 2020 é bissexto.
            var dozeMeses     = new Periodicidade(12);
            var dataEsperada2 = new DateTime(2020, 05, 09);

            // Act
            var dataPlanejada1 = dataInicio + umAno;
            var dataPlanejada2 = dataInicio + dozeMeses;

            // Assert
            Assert.AreEqual(dataEsperada1, dataPlanejada1);
            Assert.AreEqual(dataEsperada2, dataPlanejada2);
        }
Beispiel #22
0
        public void Test_30Dias_Nem_Sempre_Igual_UmMes()
        {
            // Arrange
            var dataInicio    = new DateTime(2020, 05, 09);
            var trintaDias    = new Periodicidade(30, dias: true);
            var dataEsperada1 = new DateTime(2020, 06, 08);
            var umMes         = new Periodicidade(1);
            var dataEsperada2 = new DateTime(2020, 06, 09);

            // Act
            var dataPlanejada1 = dataInicio + trintaDias;
            var dataPlanejada2 = dataInicio + umMes;

            // Assert
            Assert.AreEqual(dataEsperada1, dataPlanejada1);
            Assert.AreEqual(dataEsperada2, dataPlanejada2);
        }
Beispiel #23
0
 public void SalvarPeriodicidade(Periodicidade _periodicidade)
 {
     try
     {
         if (_periodicidade.COD_PERIODICIDADE == 0)
         {
             _DAO.Add(_periodicidade);
         }
         _DAO.SaveChanges();
     }
     catch (DbEntityValidationException dbex)
     {
         throw dbex;
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
Beispiel #24
0
        public static MvcHtmlString SelectPeriodicidade(this HtmlHelper html, Periodicidade periodicidade = Periodicidade.Mensal)
        {
            TagBuilder tag = new TagBuilder("select");

            tag.MergeAttribute("id", "Periodicidade");
            tag.MergeAttribute("name", "Periodicidade");
            tag.MergeAttribute("class", "form-control");

            foreach (var item in Enum.GetValues(typeof(Periodicidade)))
            {
                TagBuilder itemTag = new TagBuilder("option");
                itemTag.MergeAttribute("value", ((int)item).ToString());
                if ((int)item == (int)periodicidade)
                {
                    itemTag.MergeAttribute("selected", "selected");
                }
                itemTag.InnerHtml = item.ToString();
                tag.InnerHtml    += itemTag.ToString();
            }
            return(new MvcHtmlString(tag.ToString()));
        }
        public HttpResponseMessage Inserir(HttpRequestMessage request, PeriodicidadeViewModel PeriodicidadeViewModel)
        {
            return(CreateHttpResponse(request, () =>
            {
                HttpResponseMessage response = null;

                if (!ModelState.IsValid)
                {
                    response = request.CreateResponse(HttpStatusCode.BadRequest,
                                                      ModelState.Keys.SelectMany(k => ModelState[k].Errors)
                                                      .Select(m => m.ErrorMessage).ToArray());
                }
                else
                {
                    Usuario usuario = _usuarioRep.GetSingle(int.Parse(HttpContext.Current.User.Identity.GetUserId()));



                    Periodicidade novoPeriodicidade = new Periodicidade()
                    {
                        UsuarioCriacao = usuario,
                        DtCriacao = DateTime.Now,
                        DescPeriodicidade = PeriodicidadeViewModel.DescPeriodicidade,
                        Ativo = PeriodicidadeViewModel.Ativo
                    };
                    _PeriodicidadeRep.Add(novoPeriodicidade);

                    _unitOfWork.Commit();

                    // Update view model
                    PeriodicidadeViewModel = Mapper.Map <Periodicidade, PeriodicidadeViewModel>(novoPeriodicidade);
                    response = request.CreateResponse(HttpStatusCode.Created, PeriodicidadeViewModel);
                }

                return response;
            }));
        }
Beispiel #26
0
 public DadosPagamentoBuilder ComPeriodicidade(Periodicidade periodicidade)
 {
     Mock.SetupGet(p => p.Periodicidade).Returns(periodicidade);
     return(this);
 }
Beispiel #27
0
        /// <summary>
        /// Cria as parcelas do agendamento
        /// </summary>
        /// <param name="quantidadeParcelas">Quantidade total de parcelas do agendamento</param>
        /// <param name="dataPrimeiraParcela">Data do vencimento da primeira parcela</param>
        /// <param name="valor">Valor da parcela</param>
        /// <param name="periodicidade">Periodicidade no lançamento das parcelas</param>
        /// <param name="observacao">Observação da parcela</param>
        private IEnumerable <Parcela> CriarParcelas(int quantidadeParcelas, DateTime dataPrimeiraParcela, decimal valor, Periodicidade periodicidade, string observacao)
        {
            var cont = 1;

            var parcelas = new List <Parcela>()
            {
                new Parcela(dataPrimeiraParcela, valor, cont, observacao)
            };                                                                                                // Parcela 1

            var dataParcela = dataPrimeiraParcela;

            while (cont < quantidadeParcelas)
            {
                cont++;

                dataParcela = dataParcela.AddMonths((int)periodicidade);

                parcelas.Add(new Parcela(dataParcela, valor, cont, observacao));
            }

            return(parcelas);
        }
Beispiel #28
0
        public ArrayList gerarBoletos()
        {
            Boleto        novoBoleto;
            BoletoDAO     boletoDAO     = new BoletoDAO();
            Periodicidade periodicidade = _Contrato.PERIODICIDADE_FK;

            ArrayList boletos = new ArrayList();

            decimal  valorParcela = decimal.Parse(((_Contrato.VALOR + (_Contrato.VALOR * _Contrato.JUROS / 100)) / _Contrato.PERIODO).ToString());
            DateTime dataProx     = DateTime.Now;

            for (int i = 0; i < _Contrato.PERIODO; i++)
            {
                novoBoleto = new Boleto();

                novoBoleto.COD_CONTRATO        = _Contrato.COD_CONTRATO;
                novoBoleto.COD_SITUACAO_BOLETO = 1;
                switch (periodicidade.DESCRICAO)
                {
                case "Diária":
                    if (i == 0)
                    {
                        novoBoleto.DATA_VENCIMENTO = verificaDataVencimento(DateTime.Now.AddDays(i + 2), _Contrato.CONTRATANTE_FK.DIA_FK.COD_DIA);
                        dataProx = novoBoleto.DATA_VENCIMENTO.AddDays(1);
                    }
                    else
                    {
                        novoBoleto.DATA_VENCIMENTO = verificaDataVencimento(dataProx, _Contrato.CONTRATANTE_FK.DIA_FK.COD_DIA);
                        dataProx = novoBoleto.DATA_VENCIMENTO.AddDays(1);
                    }
                    break;

                case "Mensal":
                    if (i == 0)
                    {
                        novoBoleto.DATA_VENCIMENTO = verificaDataVencimento(DateTime.Now.AddMonths(i + 1), _Contrato.CONTRATANTE_FK.DIA_FK.COD_DIA);
                        dataProx = dataProx.AddMonths(2);
                    }
                    else
                    {
                        novoBoleto.DATA_VENCIMENTO = verificaDataVencimento(dataProx, _Contrato.CONTRATANTE_FK.DIA_FK.COD_DIA);
                        dataProx = dataProx.AddMonths(1);
                    }
                    break;

                case "Quinzenal":
                    if (i == 0)
                    {
                        novoBoleto.DATA_VENCIMENTO = verificaDataVencimento(DateTime.Now.AddDays(i + 15), _Contrato.CONTRATANTE_FK.DIA_FK.COD_DIA);
                        dataProx = dataProx.AddDays(30);
                    }
                    else
                    {
                        novoBoleto.DATA_VENCIMENTO = verificaDataVencimento(dataProx, _Contrato.CONTRATANTE_FK.DIA_FK.COD_DIA);
                        dataProx = dataProx.AddDays(15);
                    }
                    break;

                case "Semanal":
                    if (i == 0)
                    {
                        novoBoleto.DATA_VENCIMENTO = verificaDataVencimento(DateTime.Now.AddDays(i + 7), _Contrato.CONTRATANTE_FK.DIA_FK.COD_DIA);
                        dataProx = dataProx.AddDays(14);
                    }
                    else
                    {
                        novoBoleto.DATA_VENCIMENTO = verificaDataVencimento(dataProx, _Contrato.CONTRATANTE_FK.DIA_FK.COD_DIA);
                        dataProx = dataProx.AddDays(7);
                    }
                    break;

                case "Bimestral":
                    if (i == 0)
                    {
                        novoBoleto.DATA_VENCIMENTO = verificaDataVencimento(DateTime.Now.AddMonths(i + 2), _Contrato.CONTRATANTE_FK.DIA_FK.COD_DIA);
                        dataProx = dataProx.AddMonths(4);
                    }
                    else
                    {
                        novoBoleto.DATA_VENCIMENTO = verificaDataVencimento(dataProx, _Contrato.CONTRATANTE_FK.DIA_FK.COD_DIA);
                        dataProx = dataProx.AddMonths(2);
                    }

                    break;

                case "Trimestral":
                    if (i == 0)
                    {
                        novoBoleto.DATA_VENCIMENTO = verificaDataVencimento(DateTime.Now.AddMonths(i + 3), _Contrato.CONTRATANTE_FK.DIA_FK.COD_DIA);
                        dataProx = dataProx.AddMonths(6);
                    }
                    else
                    {
                        novoBoleto.DATA_VENCIMENTO = verificaDataVencimento(dataProx, _Contrato.CONTRATANTE_FK.DIA_FK.COD_DIA);
                        dataProx = dataProx.AddMonths(3);
                    }
                    break;

                case "Semestral":
                    if (i == 0)
                    {
                        novoBoleto.DATA_VENCIMENTO = verificaDataVencimento(DateTime.Now.AddMonths(i + 6), _Contrato.CONTRATANTE_FK.DIA_FK.COD_DIA);
                        dataProx = dataProx.AddMonths(12);
                    }
                    else
                    {
                        novoBoleto.DATA_VENCIMENTO = verificaDataVencimento(dataProx, _Contrato.CONTRATANTE_FK.DIA_FK.COD_DIA);
                        dataProx = dataProx.AddMonths(6);
                    }
                    break;

                default:
                    novoBoleto.DATA_VENCIMENTO = verificaDataVencimento(DateTime.Now.AddDays(i + 1), _Contrato.CONTRATANTE_FK.DIA_FK.COD_DIA);
                    break;
                }
                //dataProx = novoBoleto.DATA_VENCIMENTO;
                novoBoleto.PARCELA = i + 1;
                novoBoleto.VALOR   = valorParcela;

                boletoDAO.Add(novoBoleto);
                boletoDAO.SaveChanges();
                boletos.Add(novoBoleto);
            }
            return(boletos);
        }
Beispiel #29
0
 public void Update(Periodicidade vo)
 {
     _dao.Update(vo);
 }
Beispiel #30
0
 public void Add(Periodicidade vo)
 {
     _dao.Add(vo);
 }
Beispiel #31
0
 /*
  * Esse metodo eh responsavel por criar sessoes para
  * o respectivo espetaculo, dado o intervalo de inicio e fim,
  * mais a periodicidade.
  *
  * O algoritmo funciona da seguinte forma:
  * - Caso a data de inicio seja 01/01/2010, a data de fim seja 03/01/2010,
  * e a periodicidade seja DIARIA, o algoritmo cria 3 sessoes, uma
  * para cada dia: 01/01, 02/01 e 03/01.
  *
  * - Caso a data de inicio seja 01/01/2010, a data fim seja 31/01/2010,
  * e a periodicidade seja SEMANAL, o algoritmo cria 5 sessoes, uma
  * a cada 7 dias: 01/01, 08/01, 15/01, 22/01 e 29/01.
  *
  * Repare que a data da primeira sessao é sempre a data inicial.
  */
 public virtual IList <Sessao> CriaSessoes(DateTime inicio, DateTime fim, Periodicidade periodicidade)
 {
     // ALUNO: Não apague esse metodo. Esse sim será usado no futuro! ;)
     return(null);
 }
Beispiel #32
0
        /// <summary>
        /// Cria as parcelas do agendamento
        /// </summary>
        /// <param name="quantidadeParcelas">Quantidade total de parcelas do agendamento</param>
        /// <param name="dataPrimeiraParcela">Data do vencimento da primeira parcela</param>
        /// <param name="valor">Valor da parcela</param>
        /// <param name="periodicidade">Periodicidade no lançamento das parcelas</param>
        /// <param name="observacao">Observação da parcela</param>
        private IEnumerable <Parcela> CriarParcelas(int quantidadeParcelas, DateTime dataPrimeiraParcela, decimal valor, Periodicidade periodicidade, string observacao)
        {
            var parcela1 = new Parcela(new CadastrarParcelaEntrada(this.IdUsuario, this.Id, null, dataPrimeiraParcela, valor, quantidadeParcelas > 1
                ? (!string.IsNullOrEmpty(observacao)
                    ? $"{observacao} / Parcela (1/{quantidadeParcelas})"
                    : $"Parcela (1/{quantidadeParcelas})")
                : observacao));

            var parcelas = new List <Parcela>()
            {
                parcela1
            };

            var cont = 1;

            var dataParcela = dataPrimeiraParcela;

            while (cont < quantidadeParcelas)
            {
                cont++;

                dataParcela = dataParcela.AddMonths((int)periodicidade);

                var parcela = new Parcela(new CadastrarParcelaEntrada(this.IdUsuario, this.Id, null, dataParcela, valor, !string.IsNullOrEmpty(observacao)
                    ? $"{observacao} / Parcela ({cont}/{quantidadeParcelas})"
                    : $"Parcela ({cont}/{quantidadeParcelas})"));

                parcelas.Add(parcela);
            }

            return(parcelas);
        }
 /*
  * Esse metodo eh responsavel por criar sessoes para
  * o respectivo espetaculo, dado o intervalo de inicio e fim,
  * mais a periodicidade.
  *
  * O algoritmo funciona da seguinte forma:
  * - Caso a data de inicio seja 01/01/2010, a data de fim seja 03/01/2010,
  * e a periodicidade seja DIARIA, o algoritmo cria 3 sessoes, uma
  * para cada dia: 01/01, 02/01 e 03/01.
  *
  * - Caso a data de inicio seja 01/01/2010, a data fim seja 31/01/2010,
  * e a periodicidade seja SEMANAL, o algoritmo cria 5 sessoes, uma
  * a cada 7 dias: 01/01, 08/01, 15/01, 22/01 e 29/01.
  *
  * Repare que a data da primeira sessao é sempre a data inicial.
  */
 public virtual List<Sessao> CriaSessoes(DateTime inicio, DateTime fim, Periodicidade periodicidade)
 {
     // ALUNO: Não apague esse metodo. Esse sim será usado no futuro! ;)
     return null;
 }
 public void EQueAPeriodicidadeDeApuracaoE(Periodicidade periodicidade)
 {
     _periodicidade = periodicidade;
 }
 /*
  * Esse metodo eh responsavel por criar sessoes para
  * o respectivo espetaculo, dado o intervalo de inicio e fim,
  * mais a periodicidade.
  *
  * O algoritmo funciona da seguinte forma:
  * - Caso a data de inicio seja 01/01/2010, a data de fim seja 03/01/2010,
  * e a periodicidade seja DIARIA, o algoritmo cria 3 sessoes, uma
  * para cada dia: 01/01, 02/01 e 03/01.
  *
  * - Caso a data de inicio seja 01/01/2010, a data fim seja 31/01/2010,
  * e a periodicidade seja SEMANAL, o algoritmo cria 5 sessoes, uma
  * a cada 7 dias: 01/01, 08/01, 15/01, 22/01 e 29/01.
  *
  * Repare que a data da primeira sessao é sempre a data inicial.
  */
 public virtual List<Sessao> CriaSessoes(DateTime inicio, DateTime fim, Periodicidade periodicidade)
 {
     return null;
 }
Beispiel #36
0
        public ICalculoFinanceiro CriarCalculoComCorrecaoExponencial(decimal valorPresente, decimal taxaDeJuros, int diasDeApropriacao, Periodicidade periodicidade)
        {
            var periodoDeCapitalizacao = new PeriodoDeCapitalizacao(diasDeApropriacao, periodicidade);
            var capitalizacaoComposta  = new CapitalizacaoComposta(taxaDeJuros, periodoDeCapitalizacao.PeriodoTotal);

            return(new CalculoExponencial(valorPresente, capitalizacaoComposta));
        }
 public PeriodoDeCapitalizacao(int prazo, Periodicidade periodicidade)
 {
     _prazo         = prazo;
     _diasNoPeriodo = ((int)periodicidade) * 30;
 }