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); }
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); } }
public DashboardClienteLogic() { _vendaBo = new VendaLogic(); _tituloBo = new TituloLogic(); }