Exemplo n.º 1
0
        private decimal CalcularPercentualDesconto(long vendaId)
        {
            var desconto  = 0M;
            var diferenca = 0M;

            var vendaBo      = new VendaLogic();
            var venda        = vendaBo.Get(vendaId);
            var indicadorMMN = venda.Lote.Loteamento.IndicadorMultinivel;

            var nivelUm = vendaBo.ListPorIndicador(vendaId);

            foreach (var vendaUm in nivelUm)
            {
                if (vendaUm.Pagas > 0 && vendaUm.Vencidas == 0)
                {
                    var descUm = (0.5M / indicadorMMN);
                    desconto += descUm;

                    if (venda.Valor > vendaUm.Valor)
                    {
                        diferenca += descUm * ((100 - (vendaUm.Valor * 100 / venda.Valor)) / 100);
                    }
                }

                var nivelDois = vendaBo.ListPorIndicador(vendaUm.Id);

                foreach (var vendaDois in nivelDois)
                {
                    if (vendaDois.Pagas > 0 && vendaDois.Vencidas == 0)
                    {
                        var descDois = (0.5M / (indicadorMMN * indicadorMMN));
                        desconto += descDois;

                        if (vendaUm.Valor > vendaDois.Valor)
                        {
                            diferenca += descDois * ((100 - (vendaDois.Valor * 100 / vendaUm.Valor)) / 100);
                        }
                    }
                }
            }

            desconto -= diferenca;

            return(desconto);
        }
Exemplo n.º 2
0
        public void GerarTitulos(long vendaId)
        {
            var vendaBo  = new VendaLogic();
            var venda    = vendaBo.Get(vendaId);
            var titulos  = new List <Titulo>();
            var dataVcto = DateTime.Today;

            if (dataVcto.Day > venda.DiaVencimento)
            {
                dataVcto = dataVcto.AddMonths(1);
            }

            dataVcto = Convert.ToDateTime($"{dataVcto.Year}-{dataVcto.Month}-{venda.DiaVencimento}");

            for (int i = 0; i < venda.QuantParcelas; i++)
            {
                var titulo = new Titulo
                {
                    Numero         = i + 1,
                    DataVencimento = dataVcto.AddMonths(i),
                    Valor          = venda.ValorParcela,
                    VendaId        = vendaId
                };

                titulos.Add(titulo);
            }

            var diferencaValor = Math.Round(venda.Valor - titulos.Sum(x => x.Valor), 2);
            var ultimoTitulo   = titulos.First();

            ultimoTitulo.Valor += diferencaValor;

            foreach (var titulo in titulos)
            {
                Save(titulo);
            }
        }
Exemplo n.º 3
0
 public DashboardClienteLogic()
 {
     _vendaBo  = new VendaLogic();
     _tituloBo = new TituloLogic();
 }