public Resultado IncluirVenda(Venda venda)
        {
            Resultado resultado = DadosValidos(venda);

            resultado.Acao = "Inclusão de Venda";

            if (resultado.Inconsistencias.Count == 0)
            {
                venda.DataVenda = DateTime.Now;

                _context.Vendas.Add(venda);



                foreach (var item in venda.Itens)
                {
                    item.VendaID = venda.VendaID;

                    // Busca valor do CashBack
                    decimal valorPercentualCash = _cashBackRepository.ObterCashBack(item.Disco.Genero);
                    item.ValorCashBack = decimal.Round(item.Disco.PrecoVenda * valorPercentualCash, 2);
                    item.Disco         = _catalogo.ObterDiscoPorID(item.Disco.ID);

                    _context.ItensVendas.Add(item);
                    _context.Entry(item.Disco).State = EntityState.Unchanged;
                }

                if (venda.Itens != null && venda.Itens.Any())
                {
                    venda.CashBackTotalVenda = venda.Itens.Sum(x => x.ValorCashBack);
                    venda.ValorTotalItens    = venda.Itens.Sum(x => x.Disco.PrecoVenda);
                    _context.SaveChanges();
                }
            }


            return(resultado);
        }
Example #2
0
 public Disco ObterDiscoPorID(int id)
 {
     return(_catalogoRepository.ObterDiscoPorID(id));
 }