public void CalcularParcelaForaAno() { ////------------------------------------------------------------------------- //// Criar uma condição de pagamento ////------------------------------------------------------------------------- ICondicaoPagamento condicaoPagamento = new CondicaoPagamento(); condicaoPagamento.PrazoMedio = 1; condicaoPagamento.FormaCalculoVencimento = Enuns.Cadastro.Financeiro.FormaCalculoVencimento.Periodico; condicaoPagamento.VencimentoFeriado = Enuns.Cadastro.Financeiro.VencimentoFeriado.Manter; condicaoPagamento.MesmoDiaMes = true; #region Período de vencimento IPeriodo periodo = new OpenPOS.Data.Cadastro.Periodo.Periodo(); periodo.Tipo = TipoVencimento.ForaAno; periodo.Anuais = new List<IAnual> { new Anual { MesFinal = MesesAno.Janeiro, MesInicial = MesesAno.Janeiro, DiaVencimento = DiaMes.DiaQuinze, MesVencimento = MesesAno.Janeiro, AnoVencimento = AnoVencimento.AnoCorrente }, new Anual { MesFinal = MesesAno.Janeiro, MesInicial = MesesAno.Janeiro, DiaVencimento = DiaMes.DiaQuinze, MesVencimento = MesesAno.Janeiro, AnoVencimento = AnoVencimento.AnoCorrente } }; #endregion IParcela parcelaUm = new Parcela(); parcelaUm.APartirDataEmissao = 30; parcelaUm.APartirDataVencimentoAnterior = 30; parcelaUm.Percentual = 35; parcelaUm.PeriodoVencimento = periodo; parcelaUm.PeriodoVencimento = periodo; condicaoPagamento.Parcelas.Add(parcelaUm); IParcela parcelaDois = new Parcela(); parcelaDois.APartirDataEmissao = 30; parcelaDois.APartirDataVencimentoAnterior = 60; parcelaDois.Percentual = 65; parcelaDois.PeriodoVencimento = periodo; parcelaDois.PeriodoVencimento = periodo; condicaoPagamento.Parcelas.Add(parcelaDois); //------------------------------------------------------------------------- // Calcular as parcelas //------------------------------------------------------------------------- var parcelas = condicaoPagamento.GerarParcelas(1000, DateTime.Today); DumpElement(parcelas); }
public void CalcularParcelaMensalJurosCompostos() { ////------------------------------------------------------------------------- //// Criar uma condição de pagamento ////------------------------------------------------------------------------- ICondicaoPagamento condicaoPagamento = new CondicaoPagamento(); condicaoPagamento.PrazoMedio = 1; condicaoPagamento.FormaCalculoVencimento = Enuns.Cadastro.Financeiro.FormaCalculoVencimento.Mensal; condicaoPagamento.VencimentoFeriado = Enuns.Cadastro.Financeiro.VencimentoFeriado.Manter; condicaoPagamento.MesmoDiaMes = true; condicaoPagamento.TipoJuros = Enuns.Financeiro.TipoJuros.SistemaPrice; condicaoPagamento.PercentualJuros = 5; #region Período de vencimento IPeriodo periodo = new OpenPOS.Data.Cadastro.Periodo.Periodo(); periodo.Tipo = TipoVencimento.ForaMes; #endregion IParcela parcelaUm = new Parcela(); parcelaUm.APartirDataEmissao = 30; parcelaUm.APartirDataVencimentoAnterior = 30; parcelaUm.Percentual = 100/3; parcelaUm.PeriodoVencimento = periodo; condicaoPagamento.Parcelas.Add(parcelaUm); IParcela parcelaDois = new Parcela(); parcelaDois.APartirDataEmissao = 30; parcelaDois.APartirDataVencimentoAnterior = 60; parcelaDois.Percentual = 100 / 3; parcelaDois.PeriodoVencimento = periodo; condicaoPagamento.Parcelas.Add(parcelaDois); IParcela parcelaTres = new Parcela(); parcelaTres.APartirDataEmissao = 30; parcelaTres.APartirDataVencimentoAnterior = 60; parcelaTres.Percentual = 100/3; parcelaTres.PeriodoVencimento = periodo; condicaoPagamento.Parcelas.Add(parcelaTres); //------------------------------------------------------------------------- // Calcular as parcelas //------------------------------------------------------------------------- var parcelas = condicaoPagamento.GerarParcelas(1000, DateTime.Today); DumpElement(parcelas); }
public void CalcularParcelaForaSemana() { ////------------------------------------------------------------------------- //// Criar uma condição de pagamento ////------------------------------------------------------------------------- ICondicaoPagamento condicaoPagamento = new CondicaoPagamento(); condicaoPagamento.PrazoMedio = 1; condicaoPagamento.FormaCalculoVencimento = Enuns.Cadastro.Financeiro.FormaCalculoVencimento.Periodico; condicaoPagamento.VencimentoFeriado = Enuns.Cadastro.Financeiro.VencimentoFeriado.Manter; condicaoPagamento.MesmoDiaMes = true; #region Período de vencimento IPeriodo periodo = new OpenPOS.Data.Cadastro.Periodo.Periodo(); periodo.Tipo = TipoVencimento.ForaSemana; periodo.Semanais = new List<ISemanal> { new Semanal { DiaFinal = DiaSemana.Domingo, DiaInicial = DiaSemana.Domingo, DiaVencimento = DiaSemana.QuartaFeira, SemanaVencimento = SemanaVencimento.PrimeiraSemanaAposCorrente }, new Semanal{ DiaFinal = DiaSemana.Domingo, DiaInicial = DiaSemana.Domingo, DiaVencimento = DiaSemana.QuartaFeira, SemanaVencimento = SemanaVencimento.PrimeiraSemanaAposCorrente } }; #endregion IParcela parcelaUm = new Parcela(); parcelaUm.APartirDataEmissao = 30; parcelaUm.APartirDataVencimentoAnterior = 30; parcelaUm.Percentual = 35; parcelaUm.PeriodoVencimento = periodo; parcelaUm.PeriodoVencimento = periodo; condicaoPagamento.Parcelas.Add(parcelaUm); IParcela parcelaDois = new Parcela(); parcelaDois.APartirDataEmissao = 30; parcelaDois.APartirDataVencimentoAnterior = 60; parcelaDois.Percentual = 65; parcelaDois.PeriodoVencimento = periodo; parcelaDois.PeriodoVencimento = periodo; condicaoPagamento.Parcelas.Add(parcelaDois); //------------------------------------------------------------------------- // Calcular as parcelas //------------------------------------------------------------------------- var parcelas = condicaoPagamento.GerarParcelas(1000, DateTime.Today); DumpElement(parcelas); }
/// <summary> /// Adiciona as parcelas de acordo com a condição de pagamento /// </summary> /// <param name="sender">Objeto que disparou o evento</param> /// <param name="e">Argumento do evento gerado</param> private void addToGridCondicao_Click(object sender, EventArgs e) { if (GUID.IsValid(sfCondicaoPagamento.SelectedItem.GUID)) { if (ValorTotalLiquido <= 0) { MessageBox.ShowWarning("O valor do movimento não pode ser menor ou igual á zero."); sfCondicaoPagamento.Clear(); return; } grdParcela.Clear(); if (ValorTotalJuros > 0) ValorTotalLiquido -= ValorTotalJuros; if (grdParcela.RowsCount == 0) ValorTotalJuros = 0; ICondicaoPagamento condicao = new CondicaoPagamento(sfCondicaoPagamento.SelectedItem.GUID); IList<IParcelaResult> parcelas = condicao.GerarParcelas(ValorTotalLiquido, DataMovimento); double vJuros = 0; Populating = true; foreach (IParcelaResult parcela in parcelas) { AddParcela(GUID.Empty, parcela.Parcela, parcela.Valor, parcela.Juros, parcela.DataVencimento, parcela.Historico); vJuros += parcela.Juros; } ValorTotalJuros = vJuros; ValorTotalLiquido += vJuros; if (OnParcelaRecalculada != null) OnParcelaRecalculada(Parcelas); Populating = false; } }