public bool inItensPedido(int idEmp, int idPed, ProdutosCarrinho produtos) { string insertId = ""; string id = ""; //Abertura da conexão DBService.conexao.Open(); foreach (ProdutosCesta item in produtos.produtos) { if (item.idItemPedido != 0) { insertId = "itp_ItemPedido_int_PK,"; id = item.idItemPedido + ","; } string comandoSql = "insert into TB_CA_ItensPedido_itp (" + insertId + "itp_Empresa_int_FK, " + "itp_Pedido_int_FK, " + "itp_Produto_int_FK, " + "itp_Quantidade_int, " + "itp_ValorUnitario_mon, " + "itp_ValorTotal_mon, " + "itp_ValorDesconto_mon ) " + "VALUES (" + id + idEmp.ToString() + ",'" + idPed.ToString() + "','" + item.produto.idProduto.ToString() + "','" + item.quantidade.ToString() + "','" + item.produto.valor.ToString() + "','" + item.valorTotal.ToString() + "','" + item.desconto.ToString() + "');"; OleDbCommand cmd = new OleDbCommand(comandoSql, DBService.conexao); try { //A conexão ja esta aberta //Executar o comando e ler os dados retornados int succ = cmd.ExecuteNonQuery(); if (succ == 0) { return(false); } } catch (Exception exc) { throw new Exception(exc.Message); } finally { } } return(true); }
public void restoreBackUp(string nomeTabela, JToken tabela) { DBService dBService = new DBService(); dBService.truncateTable(nomeTabela, "itp_ItemPedido_int_PK"); ParseUtils encodeString = new ParseUtils(); foreach (var linha in tabela) { ProdutosCarrinho produtos = new ProdutosCarrinho(); produtos.produtos = new List <ProdutosCesta>(); ProdutosCesta produtosCesta = new ProdutosCesta(); produtosCesta.produto = new ProdutosModel(); for (int i = 0; i < linha.Count(); i++) { var itens = linha[i]; if (itens.Value <int>("itp_ItemPedido_int_PK") != 0) { produtosCesta.idItemPedido = itens.Value <int>("itp_ItemPedido_int_PK"); } if (itens.Value <int>("itp_Empresa_int_FK") != 0) { produtos.idEmpresa = itens.Value <int>("itp_Empresa_int_FK"); } if (itens.Value <int>("itp_Pedido_int_FK") != 0) { produtos.idPedido = itens.Value <int>("itp_Pedido_int_FK"); } if (itens.Value <int>("itp_Produto_int_FK") != 0) { produtosCesta.produto.idProduto = itens.Value <int>("itp_Produto_int_FK"); } if (itens.Value <decimal>("itp_Quantidade_int") != 0) { produtosCesta.quantidade = itens.Value <decimal>("itp_Quantidade_int"); } if (itens.Value <decimal>("itp_ValorUnitario_mon") != 0) { produtosCesta.produto.valor = itens.Value <decimal>("itp_ValorUnitario_mon"); } if (itens.Value <decimal>("itp_ValorTotal_mon") != 0) { produtosCesta.valorTotal = itens.Value <decimal>("itp_ValorTotal_mon"); } if (itens.Value <decimal>("itp_ValorDesconto_mon") != 0) { produtosCesta.desconto = itens.Value <decimal>("itp_ValorDesconto_mon"); } } produtos.produtos.Add(produtosCesta); inItensPedido(produtos.idEmpresa, produtos.idPedido, produtos); DBService.conexao.Close(); } }
public Carrinho AddProduto(string userId, string produtoId) { var usuario = _usuarioRepository.BuscarUsuario(userId); if (usuario != null) { var produto = _produtoRepository.BuscarProduto(produtoId); if (produto != null) { if (produto.User != userId) { if (produto.Quantity > 0 && produto.Ativo) { ProdutosCarrinho novoProduto = new ProdutosCarrinho(); novoProduto.IdProduto = produtoId; novoProduto.NameProduto = produto.Name; novoProduto.Quantidade = 1; novoProduto.Preco = produto.Price; novoProduto.Frete = produto.Frete; novoProduto.IdUserVenda = produto.User; novoProduto.url_imagem = produto.url_imagem; var carrinho = _carrinhoService.GetCarrinhoByUser(usuario.Id); if (carrinho == null) { Carrinho novoCarrinho = new Carrinho(); novoCarrinho.UserId = userId; novoCarrinho.Produtos = new List <ProdutosCarrinho>(); novoCarrinho.Produtos.Add(novoProduto); carrinho = _carrinhoService.CreateCarrinho(novoCarrinho); } else { bool existe = false; foreach (ProdutosCarrinho prod in carrinho.Produtos) { if (prod.IdProduto == produtoId) { existe = true; if (prod.Quantidade + 1 <= produto.Quantity) { prod.Quantidade += 1; } else { return(null); } } } if (!existe) { carrinho.Produtos.Add(novoProduto); } _carrinhoService.UpdateCarrinho(carrinho, userId); } if (produto.Carrinhos == null) { produto.Carrinhos = new List <string>(); } produto.Carrinhos.Add(carrinho.Id); _produtoRepository.AtualizarProduto(produto.User, produto.Id, produto); return(_carrinhoService.GetCarrinhoByUser(userId)); } } } } return(null); }
public Pedido CriarPedido(string userId, Carrinho carrinho) { if (carrinho != null) { Random number = new Random(); var endereco = _enderecoRepository.BuscarEndereco(carrinho.EnderecoId); Pedido pedido = new Pedido(); List <Venda> listaVenda = new List <Venda>(); pedido.Produtos = new List <ProdutosCarrinho>(); pedido.NumPedido = number.Next(10000, 99999); pedido.UserId = userId; pedido.NomeEndereco = endereco.NomeEndereco; pedido.Uf = endereco.Uf; pedido.Cidade = endereco.Cidade; pedido.Cep = endereco.Cep; pedido.Bairro = endereco.Bairro; pedido.Rua = endereco.Rua; pedido.Numero = endereco.Numero; pedido.Complemento = endereco.Complemento; pedido.DataPedidoRealizado = DateTime.Now; pedido.StatusFinalizado = false; pedido.statusPagamento = false; //Verificar se todos os produtos estão ativos e com estoque foreach (ProdutosCarrinho prod in carrinho.Produtos) { var produto = _produtoRepository.BuscarProduto(prod.IdProduto); if (produto.Quantity < prod.Quantidade || !produto.Ativo) { return(null); } } //Somar preços e atualizar estoque dos produtos foreach (ProdutosCarrinho prod in carrinho.Produtos) { ProdutosCarrinho produtoCarrinho = new ProdutosCarrinho(); Venda venda = new Venda(); var produto = _produtoRepository.BuscarProduto(prod.IdProduto); pedido.VlTotal += (prod.Preco * prod.Quantidade); pedido.VlFrete += (prod.Frete * prod.Quantidade); //Atualizar estoque produto.Quantity -= prod.Quantidade; produto.Carrinhos.Remove(carrinho.Id); _produtoRepository.AtualizarProduto(prod.IdUserVenda, prod.IdProduto, produto); //Adicionar produto no pedido produtoCarrinho.Preco = prod.Preco * prod.Quantidade; produtoCarrinho.Quantidade = prod.Quantidade; produtoCarrinho.NameProduto = prod.NameProduto; produtoCarrinho.IdUserVenda = prod.IdUserVenda; produtoCarrinho.IdProduto = prod.IdProduto; produtoCarrinho.url_imagem = prod.url_imagem; produtoCarrinho.Frete = prod.Frete; produtoCarrinho.StatusCancelado = false; produtoCarrinho.StatusEmTransporte = false; produtoCarrinho.StatusEntregue = false; pedido.Produtos.Add(produtoCarrinho); //criar pedido de venda venda.BairroCompra = pedido.Bairro; venda.CepCompra = pedido.Cep; venda.CidadeCompra = pedido.Cidade; venda.Complemento = pedido.Complemento; venda.NomeEnderecoCompra = pedido.NomeEndereco; venda.NumeroCompra = pedido.Numero; venda.PedidoIdCompra = pedido.Id; venda.RuaCompra = pedido.Rua; venda.UfCompra = pedido.Uf; venda.NumPedido = pedido.NumPedido; venda.DataPedidoRealizadoCompra = DateTime.Now; venda.StatusCancelado = false; venda.StatusEmTransporte = false; venda.StatusFinalizado = false; venda.IdProdutoCompra = produto.Id; venda.UserIdVenda = produto.User; venda.VlTotalCompra = prod.Preco * prod.Quantidade; venda.VlFreteCompra = prod.Frete * prod.Quantidade; venda.VlFinalCompra = venda.VlTotalCompra + venda.VlFreteCompra; venda.NomeProduto = prod.NameProduto; venda.Url_imagem = prod.url_imagem; venda.Quandidade = prod.Quantidade; Venda v = CriarVenda(venda); listaVenda.Add(v); } pedido.VlFinal = pedido.VlTotal + pedido.VlFrete; var user = _usuarioRepository.BuscarUsuario(userId); string products = ""; foreach (var prod in pedido.Produtos) { products = products + "\n" + prod.NameProduto; } _emailRepository.EnviarEmail(user.Email, "Pedido confirmado com sucesso!", $"Caro(a) {user.Name}, \n\nseu pedido de número {pedido.NumPedido} foi processado em nosso sistema.\n\nObrigado por comprar em nossa loja!"); Pedido pedidoFinal = _pedidoService.CreatePedido(pedido); foreach (Venda v in listaVenda) { v.PedidoIdCompra = pedidoFinal.Id; _vendaService.UpdateSale(v, v.Id); } return(pedidoFinal); } return(null); }
public ProdutosCarrinho seItensPedido(int idEmp, int idPed) { //TB_CA_ItensPedido_itp //itp_ItemPedido_int_PK itp_Empresa_int_FK itp_Pedido_int_FK itp_Produto_int_FK itp_Quantidade_int itp_ValorUnitario_mon itp_ValorDesconto_mon itp_ValorTotal_mon string comandoSql = "select " + "itp_ItemPedido_int_PK," + "itp_Empresa_int_FK," + "itp_Pedido_int_FK," + "itp_Produto_int_FK," + "itp_Quantidade_int," + "itp_ValorUnitario_mon," + "itp_ValorDesconto_mon," + "itp_ValorTotal_mon " + "from TB_CA_ItensPedido_itp " + "where itp_Empresa_int_FK = " + idEmp.ToString() + " and " + "itp_Pedido_int_FK = " + idPed.ToString(); OleDbCommand commando = new OleDbCommand(comandoSql, DBService.conexao); try { //Abertura da conexão DBService.conexao.Open(); //Executar o comando e ler os dados retornados OleDbDataReader dados = commando.ExecuteReader(); ProdutosCarrinho itensPedido = new ProdutosCarrinho(); ProdutoService produtoService = new ProdutoService(); itensPedido.produtos = new List <ProdutosCesta>(); while (dados.Read()) { if ((int)dados["itp_ItemPedido_int_PK"] != -1) { ProdutosCesta produtos = new ProdutosCesta(); int idProduto = (int)dados["itp_Produto_int_FK"]; produtos.produto = produtoService.seProdutos(idEmp, idProduto); //produtos.produto.idProduto = (int)dados["itp_Produto_int_FK"]; //produtos.produto.valor = (decimal)dados["itp_ValorUnitario_mon"]; produtos.idItemPedido = (int)dados["itp_ItemPedido_int_PK"]; itensPedido.idEmpresa = (int)dados["itp_Empresa_int_FK"]; itensPedido.idPedido = (int)dados["itp_Pedido_int_FK"]; produtos.quantidade = decimal.Parse(dados["itp_Quantidade_int"].ToString()); produtos.desconto = (decimal)dados["itp_ValorDesconto_mon"]; produtos.valorTotal = (decimal)dados["itp_ValorTotal_mon"]; itensPedido.produtos.Add(produtos); } else { return(null); } } return(itensPedido); } catch (Exception exc) { throw new Exception(exc.Message); } finally { DBService.conexao.Close(); } }