public ActionResult VisualizarCliente(int id)
        {
            Cliente             cliente;
            List <Venda>        comprasDoCliente = new List <Venda>();
            List <Venda>        comprasDoMes     = new List <Venda>();
            List <ProdutoVenda> produtos;
            List <ProdutoVenda> produtosDoMes = new List <ProdutoVenda>();
            decimal             ValorTotal    = 0;
            decimal             ValorMensal   = 0;

            using (var dao = new ClienteDaoEntity())
            {
                cliente = dao.Pegar(id);
            }
            using (var dao = new VendaDaoEntity())
            {
                List <Venda> lista = dao.PegarLista() as List <Venda>;
                comprasDoCliente.AddRange(from v in lista where v.IdCliente == cliente.IdCliente select v);
            }
            using (var dao = new ProdutoVendaDaoEntity())
            {
                produtos = dao.PegarLista() as List <ProdutoVenda>;
            }

            foreach (ProdutoVenda pv in produtos)
            {
                ValorTotal += pv.Valor;
            }

            comprasDoMes.AddRange(from v in comprasDoCliente where v.DataDaVenda.Month.Equals(DateTime.Today.Month) select v);
            List <int> ids = new List <int>();

            foreach (Venda compra in comprasDoMes)
            {
                ids.Add(compra.IdVenda);
            }

            produtosDoMes.AddRange(from p in produtos where ids.Contains(p.IdVenda) select p);
            foreach (ProdutoVenda pv in produtosDoMes)
            {
                ValorMensal += pv.Valor;
            }

            VisualizarComprasClientesViewModel vm = new VisualizarComprasClientesViewModel
            {
                Cliente          = cliente,
                Compras          = comprasDoCliente,
                Produtos         = produtos,
                ValorTotal       = ValorTotal,
                ValorMensal      = ValorMensal,
                VolumeCompras    = comprasDoCliente.Count,
                VolumeComprasMes = comprasDoMes.Count
            };

            return(View(vm));
        }
Example #2
0
        public ActionResult AdicionarVenda(FormularioVenda formularioVenda)
        {
            Cliente cliente;

            using (var dao = new ClienteDaoEntity())
            {
                cliente = dao.Pegar(formularioVenda.Cpf);
            }
            Vendedor vendedor;

            using (var dao = new VendedorDaoEntity())
            {
                vendedor = dao.Pegar(Convert.ToInt32(System.Web.HttpContext.Current.Session["IdVendedor"].ToString()));
            }

            formularioVenda.Venda.IdCliente   = cliente.IdCliente;
            formularioVenda.Venda.IdVendedor  = vendedor.IdVendedor;
            formularioVenda.Venda.DataDaVenda = DateTime.Now;

            if (PasswordEncrypt.CompareHash(formularioVenda.Senha, vendedor.Senha, vendedor.SaltSenha))
            {
                int idDaVenda;

                using (var dao = new VendaDaoEntity())
                {
                    dao.Adicionar(formularioVenda.Venda);
                    List <Venda> lista = dao.PegarLista() as List <Venda>;
                    idDaVenda = lista.Last().IdVenda;
                }

                Produto p;
                using (var daoProduto = new ProdutoDaoEntity())
                {
                    using (var dao = new ProdutoVendaDaoEntity())
                    {
                        foreach (var produto in formularioVenda.Produtos)
                        {
                            p = daoProduto.Pegar(produto.IdProduto);
                            p.QuantidadeEmEstoque--;
                            daoProduto.Alterar(p);
                            produto.IdVenda = idDaVenda;
                            produto.Valor   = produto.Quantidade * p.ValorUnitario;
                            dao.Adicionar(produto);
                        }
                    }
                }



                return(RedirectToAction("ListarVendas"));
            }
            return(RedirectToAction("Form"));
        }
        public ActionResult Form(int id, string acao)
        {
            ClienteFormViewModel vm = new ClienteFormViewModel
            {
                Acao = $"../{acao}"
            };

            if (id == 0)
            {
                vm.Cliente = new Cliente();
            }
            else
            {
                using (var dao = new ClienteDaoEntity())
                {
                    vm.Cliente = dao.Pegar(id);
                }
            }

            return(View(vm));
        }