示例#1
0
        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);
        }
示例#2
0
        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);
        }
示例#3
0
        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);
        }
示例#4
0
        /// <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;
            }
        }