Example #1
0
        public void Quando_criar_uma_Venda_as_Comissões_devem_ser_geradas()
        {
            // arrage
            var produto1       = new Produto("H2OH 500 ml", 3.00m);
            var produto2       = new Produto("H2OH 1,5 l", 4.50m);
            var produto3       = new Produto("Café Pilão 500 g", 8.00m);
            var representante1 = new Representante("234567", "Antonio de Souza", 2);
            var representante2 = new Representante("345678", "Rafael de Moura", 3);
            var cliente        = new Cliente("123456", 1000, "José da Silva");
            var item1          = new ItemDaVenda(produto1, 2, representante1, "Item 1");
            var item2          = new ItemDaVenda(produto2, 5, representante1, "Item 2");
            var item3          = new ItemDaVenda(produto3, 1, representante2, "Item 3");
            var itensDaNota    = new HashSet <ItemDaVenda> {
                item1, item2, item3
            };

            // act
            var venda = new Venda(cliente, 98765432, new DateTime(2016, 03, 10),
                                  new DateTime(2016, 03, 10), "3 Itens", itensDaNota);

            // assert
            Assert.AreEqual(2, venda.Comissoes.Count);

            var comissao1 = venda.Comissoes.Single(c => c.Representante.Equals(representante1));

            Assert.AreEqual(28.50m, comissao1.ValorDaVenda);
            Assert.AreEqual(0.57m, comissao1.Valor);

            var comissao2 = venda.Comissoes.Single(c => c.Representante.Equals(representante2));

            Assert.AreEqual(8.00m, comissao2.ValorDaVenda);
            Assert.AreEqual(0.24m, comissao2.Valor);
        }
Example #2
0
        public void Quando_criar_uma_Venda_as_Comissões_devem_ser_geradas()
        {
            // arrage
            var produto1 = new Produto("H2OH 500 ml", 3.00m);
            var produto2 = new Produto("H2OH 1,5 l", 4.50m);
            var produto3 = new Produto("Café Pilão 500 g", 8.00m);
            var representante1 = new Representante("234567", "Antonio de Souza", 2);
            var representante2 = new Representante("345678", "Rafael de Moura", 3);
            var cliente = new Cliente("123456", 1000, "José da Silva");
            var item1 = new ItemDaVenda(produto1, 2, representante1, "Item 1");
            var item2 = new ItemDaVenda(produto2, 5, representante1, "Item 2");
            var item3 = new ItemDaVenda(produto3, 1, representante2, "Item 3");
            var itensDaNota = new HashSet<ItemDaVenda> { item1, item2, item3 };
            
            // act
            var venda = new Venda(cliente, 98765432, new DateTime(2016, 03, 10),
                new DateTime(2016, 03, 10), "3 Itens", itensDaNota);

            // assert
            Assert.AreEqual(2, venda.Comissoes.Count);

            var comissao1 = venda.Comissoes.Single(c => c.Representante.Equals(representante1));
            Assert.AreEqual(28.50m, comissao1.ValorDaVenda);
            Assert.AreEqual(0.57m, comissao1.Valor);

            var comissao2 = venda.Comissoes.Single(c => c.Representante.Equals(representante2));
            Assert.AreEqual(8.00m, comissao2.ValorDaVenda);
            Assert.AreEqual(0.24m, comissao2.Valor);
        }
Example #3
0
        private void btnAdicionar_Click(object sender, RoutedEventArgs e)
        {
            if (Venda.StatusDaVenda != eStatusDaVenda.NOVA)
            {
                MessageBox.Show("Não é possível solicitar produtos para uma compra já efetivada");
                return;
            }

            var formulario = new FormBuscaDeProduto();

            formulario.ShowDialog();
            if (formulario.ProdutoSelecionado != null)
            {
                var itemDaVenda = new ItemDaVenda
                {
                    Venda = new Venda {
                        Codigo = this.Codigo
                    },
                    Produto    = formulario.ProdutoSelecionado,
                    Quantidade = formulario.Quantidade,
                    Valor      = formulario.ProdutoSelecionado.ValorDeVenda
                };

                repositorioItemDaVenda.Adicionar(itemDaVenda);
                lstVendas.DataContext = repositorioItemDaVenda.Liste(Codigo);
            }
        }
        private void btnObterRecomendacao_Click(object sender, RoutedEventArgs e)
        {
            if (Venda.Status != eStatusDaVenda.NOVA)
            {
                MessageBox.Show("Não é possível adicionar produtos a uma venda já efetivada!");
                return;
            }

            var listaEstoqueBaixo = repositorioProduto.ObtenhaProdutosComEstoqueBaixo();

            foreach (var produto in listaEstoqueBaixo)
            {
                var itemDaVenda = new ItemDaVenda
                {
                    Venda = new Venda {
                        Codigo = this.Codigo
                    },
                    Produto    = produto,
                    Quantidade = produto.QuantidadeDesejavelEmEstoque - produto.QuantidadeEmEstoque,
                    Valor      = produto.ValorDeVenda
                };

                repositorioItemDaVenda.Adicione(itemDaVenda);
            }

            lstProdutos.DataContext = repositorioItemDaVenda.Liste(Codigo);
        }
        protected override void Seed(ContextoBanco context)
        {
            context.Produtos.Add(new Produto(nome: "Coca-cola Lata", preço: 2m));
            context.Produtos.Add(new Produto(nome: "Coca-cola garrafa 290ml", preço: 1.5m));
            context.Produtos.Add(new Produto(nome: "Coca-cola garrafa 600ml", preço: 2.5m));
            context.Produtos.Add(new Produto(nome: "Coca-cola garrafa 1L", preço: 3m));
            context.Produtos.Add(new Produto(nome: "Coca-cola garrafa 2L", preço: 4m));

            var produto = new Produto("Coca-Cola", preço: 4m);

            context.Produtos.Add(produto);

            var cliente = new Cliente(inscricao: "000.000.191-00", limiteDeCredito: 200000, nome: "Álvaro Brognoli");

            var representante = new Representante(inscricao: "001.910.000-00", nome: "Renan", percentualDeComissao: 5);

            var itemDaVenda = new ItemDaVenda(produto: produto, valorUnitario: 4,
                                              quantidade: 2, representante: representante, descricao: "Coca-cola 2L");

            var itensDaVenda = new List <ItemDaVenda> {
                itemDaVenda
            };

            var venda = new Venda(cliente: cliente, numeroDaNota: 123456789, dataDaEmissao: new DateTime(2011, 12, 31),
                                  dataDaSaida: new DateTime(2011, 12, 31), descricao: "Compra de coca-cola para o time.", itens: itensDaVenda);

            context.Vendas.Add(venda);

            context.Transportadoras.Add(new Transportadora(inscricao: "12345678", nome: "Ouro Negro"));
            context.Transportadoras.Add(new Transportadora(inscricao: "893843", nome: "Jolivan"));
            context.Transportadoras.Add(new Transportadora(inscricao: "937202", nome: "Mercurio"));

            context.SaveChanges();

            base.Seed(context);
        }
Example #6
0
        public void AdicionarItem(ItemDaVenda itemDaVenda)
        {
            if (itemDaVenda == null)
                throw new ArgumentNullException("itemDaVenda");

            this.ItensDaVenda.Add(itemDaVenda);
        }