public int Add(VendaItem item)
        {
            try
            {
                var _conn = new SqlConnection(_connectionString);

                var _cmdText = "";

                if (item.VendaItemId == 0)
                {
                    _cmdText = " INSERT INTO VENDA_ITENS ( " +
                               "  VEN_ITEM_VEN_ID, " +
                               "  VEN_ITEM_PROD_ID, " +
                               "  VEN_ITEM_QTDE, " +
                               "  VEN_ITEM_VALOR_UNITARIO, " +
                               "  VEN_ITEM_DESCONTO ) " +
                               " VALUES ( " +
                               "  @VEN_ITEM_VEN_ID, " +
                               "  @VEN_ITEM_PROD_ID, " +
                               "  @VEN_ITEM_QTDE, " +
                               "  @VEN_ITEM_VALOR_UNITARIO, " +
                               "  @VEN_ITEM_DESCONTO ); " +
                               " SELECT SCOPE_IDENTITY(); ";
                }
                else
                {
                    _cmdText = " UPDATE VENDA_ITENS SET " +
                               "  VEN_ITEM_VEN_ID = @VEN_ITEM_VEN_ID, " +
                               "  VEN_ITEM_PROD_ID = @VEN_ITEM_PROD_ID, " +
                               "  VEN_ITEM_QTDE = @VEN_ITEM_QTDE, " +
                               "  VEN_ITEM_VALOR_UNITARIO = @VEN_ITEM_VALOR_UNITARIO, " +
                               "  VEN_ITEM_DESCONTO = @VEN_ITEM_DESCONTO " +
                               " WHERE VEN_ITEM_ID = @VEN_ITEM_ID ";
                }


                var _cmd = new SqlCommand(_cmdText, _conn);

                if (item.VendaItemId > 0)
                {
                    _cmd.Parameters.AddWithValue("@VEN_ITEM_ID", item.VendaItemId);
                }

                _cmd.Parameters.AddWithValue("@VEN_ITEM_VEN_ID", item.VendaId);
                _cmd.Parameters.AddWithValue("@VEN_ITEM_PROD_ID", item.Produto.ProdutoId);
                _cmd.Parameters.AddWithValue("@VEN_ITEM_QTDE", item.Quantidade);
                _cmd.Parameters.AddWithValue("@VEN_ITEM_VALOR_UNITARIO", item.ValorUnitario);
                _cmd.Parameters.AddWithValue("@VEN_ITEM_DESCONTO", item.Desconto);

                _conn.Open();
                var _retorno = Convert.ToInt32(_cmd.ExecuteScalar());
                _conn.Close();

                return(_retorno);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Exemple #2
0
 private bool equals(VendaItem vendaItem1, VendaItem vendaItem2)
 {
     return(vendaItem1 != null && vendaItem2 != null &&
            vendaItem1.ItemID == vendaItem2.ItemID &&
            vendaItem1.ItemPrice == vendaItem2.ItemPrice &&
            vendaItem1.ItemQuantity == vendaItem2.ItemQuantity);
 }
Exemple #3
0
        static void NovaVenda()
        {
            var cliente = new Cliente();

            cliente.Nome           = "PEDRO";
            cliente.DataNascimento = new DateTime(2000, 12, 1);
            cliente.Cpf            = "999.999.999-99";

            var produto = new Produto();

            produto.Codigo    = "9999";
            produto.Descricao = "CAMISA NIKE";
            produto.Valor     = 100;

            var itemVenda = new VendaItem();

            itemVenda.Produto    = produto;
            itemVenda.Quantidade = 2;
            itemVenda.Desconto   = 10;

            var venda = new Venda();

            venda.Cliente      = cliente;
            venda.ItensDaVenda = new List <VendaItem>();
            venda.ItensDaVenda.Add(itemVenda);

            var contexto = new VendasContext();

            contexto.Vendas.Add(venda);

            contexto.SaveChanges();
        }
Exemple #4
0
        private void SalvarItens(IEnumerable <ComandaItemDto> itens, AdicionarVendaItemRequest vendaItemRequest)
        {
            if (vendaItemRequest.VendaId == 0)
            {
                InserirVenda(itens);
            }

            var itensAtualizar = new List <VendaItem>();

            foreach (var item in itens.Where(i => i.State == Tracking.Modified))
            {
                itensAtualizar.Add(VendaItem.Novo(item));
            }

            var itensInserir = new List <VendaItem>();

            foreach (var item in itens.Where(i => i.State == Tracking.Inserted))
            {
                var vendaItem = VendaItem.Novo(item);
                itensInserir.Add(vendaItem);
                item.VendaItemId = vendaItem.Id;
            }

            vendaItemRepository.Salvar(itensInserir, itensAtualizar);
            unitOfWork.Commit();

            PreencherVendaItemIds(itens, itensInserir);
        }
        public async Task <IActionResult> Edit(long id, [Bind("Id,ProdutoId,VendaId,Quantidade,Valor,Desconto")] VendaItem vendaItem)
        {
            if (id != vendaItem.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(vendaItem);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!VendaItemExists(vendaItem.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["ProdutoId"] = new SelectList(_context.Produtos, "Id", "Id", vendaItem.ProdutoId);
            ViewData["VendaId"]   = new SelectList(_context.Vendas, "Id", "Id", vendaItem.VendaId);
            return(View(vendaItem));
        }
        public IActionResult vendaItemPost(int vendaId, [FromBody] VendaItem vendaItem)
        {
            try
            {
                if (vendaItem == null)
                {
                    return(BadRequest(ModelState));
                }

                if (ModelState.IsValid)
                {
                    vendaItem.VendaItemId = 0;
                    vendaItem.VendaItemId = _vendaItemRepository.Add(vendaItem);

                    return(CreatedAtAction("Get", new { Id = vendaItem.VendaItemId }, vendaItem));
                }
                else
                {
                    return(BadRequest(ModelState));
                }
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("", "Erro ao criar uma vendaitem." + System.Environment.NewLine + " Detalhes:" + ex.Message);
                return(BadRequest(ModelState));
            }
        }
        public void Remover(VendaItem vendaItem)
        {
            var itemVenda = contexto.Clientes.FirstOrDefault(x => x.Id == vendaItem.Id);

            itemVenda.Ativo = false;

            contexto.SaveChanges();
        }
        public VendaItemDTO Converter(VendaItem item)
        {
            var retorno = new VendaItemDTO();

            retorno.Item       = _produtosRepository.Obter(item.ProdutoId);
            retorno.Quantidade = item.Quantidade;
            return(retorno);
        }
        public VendaItem Converter(VendaItemDTO item, int idVenda)
        {
            var retorno = new VendaItem();

            retorno.ProdutoId  = item.Item.Id;
            retorno.Quantidade = item.Quantidade;
            retorno.VendaId    = idVenda;
            return(retorno);
        }
Exemple #10
0
        private void InserirItem(object sender, EventArgs e)
        {
            try
            {
                var idVenda         = int.Parse(labelIdVenda.Text.ToString());
                var idTipoQuentinha = 0;
                if (inputTipoQuentinha.SelectedValue != null)
                {
                    int.TryParse(inputTipoQuentinha.SelectedValue.ToString(), out idTipoQuentinha);
                }
                var quantidade = 0;
                int.TryParse(inputQuantidade.Text.ToString(), out quantidade);

                if (idTipoQuentinha == 0)
                {
                    throw new Exception("Selecione um Tipo de Quentinha");
                }

                if (quantidade == 0)
                {
                    throw new Exception("Preencha corretamente o campo de Quantidade");
                }

                using (var context = new ApplicationDbContext())
                {
                    var tipoQuentinha = context.TiposQuentinha.Where(x => x.Id == idTipoQuentinha).FirstOrDefault();
                    if (tipoQuentinha == null)
                    {
                        throw new Exception("Tipo não encontrado");
                    }

                    var valorPagoUnidade = quantidade >= 5 ? (tipoQuentinha.Valor * 0.9785M) : tipoQuentinha.Valor;

                    var venda = context.Vendas.FirstOrDefault(x => x.Id == idVenda);
                    if (venda == null)
                    {
                        throw new Exception("Venda não encontrada");
                    }

                    var itemVenda = new VendaItem();
                    itemVenda.VendaId          = idVenda;
                    itemVenda.Quantidade       = quantidade;
                    itemVenda.ValorPagoUnidade = valorPagoUnidade;
                    itemVenda.TipoQuentinhaId  = idTipoQuentinha;

                    context.VendaItens.Add(itemVenda);
                    context.SaveChanges();

                    CarregaValorVenda(sender, e);
                    CarregaItensVenda(idVenda);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Erro");
            }
        }
Exemple #11
0
        public GeraVendaCommandTests()
        {
            _vendaCommand = new GeraVendaCommand(_usuario);

            _vi1 = new VendaItem(_p1, 10);
            _vi2 = new VendaItem(_p2, 10);
            _vi3 = new VendaItem(_p3, 10);
            _vi4 = new VendaItem(_p4, 10);
            _vi5 = new VendaItem(_p5, 10);
        }
        public VendaTest()
        {
            _novaVenda = new Venda(_usuario);

            _vi1 = new VendaItem(_p1, 10);
            _vi2 = new VendaItem(_p2, 10);
            _vi3 = new VendaItem(_p3, 10);
            _vi4 = new VendaItem(_p4, 10);
            _vi5 = new VendaItem(_p5, 10);
        }
Exemple #13
0
 public ItemVendaViewModel Map(VendaItem vendaItem)
 {
     return(new ItemVendaViewModel
     {
         PrecoUnitario = vendaItem.PrecoUnitario,
         Quantidade = vendaItem.Quantidade,
         CodigoProduto = vendaItem.CodigoProduto,
         DescricaoProduto = vendaItem.Produto?.Descricao
     });
 }
        public async Task Adicionar(VendaItem vendaItem)
        {
            if (_vendaItemRepository.Buscar(v => v.Id == vendaItem.Id).Result.Any())
            {
                Notificar("Este Item já foi adicionado");
                return;
            }

            await _vendaItemRepository.Adicionar(vendaItem);
        }
        public int AdicionarItem(AdicionarVendaItemRequest vendaItemRequest)
        {
            if (!ValidarRequest(vendaItemRequest))
            {
                return(0);
            }

            var vendaItem = new VendaItem(vendaItemRequest.VendaId, vendaItemRequest.ProdutoId, string.Empty, vendaItemRequest.Preco, vendaItemRequest.Desconto);

            return(vendaService.AdicionarItem(vendaItem));
        }
Exemple #16
0
        public void TestAdd()
        {
            Venda venda = new Venda("00000000001", Cliente.InstanceClienteWithFields("Cliente novo", "21109414056", new DateTime(1988, 9, 12), "*****@*****.**", "(35) 98417-9253"));

            venda.AddVendaItem(VendaItem.InstanceVendaItemWithFields(Produto.InstanceProdutoWithFields("Produto 1"), (decimal)10.00, 5));
            venda.AddVendaItem(VendaItem.InstanceVendaItemWithFields(Produto.InstanceProdutoWithFields("Produto 2"), (decimal)20.00, 6));
            venda.AddVendaItem(VendaItem.InstanceVendaItemWithFields(Produto.InstanceProdutoWithFields("Produto 3"), (decimal)30.00, 7));
            venda.AddVendaItem(VendaItem.InstanceVendaItemWithFields(Produto.InstanceProdutoWithFields("Produto 4"), (decimal)40.00, 8));

            repository.Save(venda);
        }
Exemple #17
0
        public void Verifica_Baixa_Estoque()
        {
            var vendaItem = new VendaItem();
            var produto   = new Produto();

            vendaItem.Quantidade      = 3;
            produto.QuantidadeEstoque = 3;
            vendaItem.Produto         = produto;
            var obj = vendaItem.Produto.Diminuir_Quantidade_Venda(3);

            Assert.AreEqual(0, obj);
        }
Exemple #18
0
        private static void InserirItensDaVenda(VendaViewModel vendaTipada, Venda venda)
        {
            var         itensDaVenda = vendaTipada.ItensVendas.Replace("[", "").Replace("]", "").Split(",");
            CultureInfo cultures     = new CultureInfo("en-US");

            foreach (var itemDaVenda in itensDaVenda)
            {
                var dadosDoItem = itemDaVenda.Split("-");
                var item        = new VendaItem(int.Parse(dadosDoItem[0]), int.Parse(dadosDoItem[1]), Convert.ToDecimal(dadosDoItem[2], cultures));
                venda.Itens.Add(item);
            }
        }
        public VendaItem GetItem(int Id)
        {
            if (Id <= 0)
            {
                throw new Exception("O parâmetro Id deve ser um número inteiro positivo!");
            }

            try
            {
                var _produtoRepository = new ProdutoRepository();

                var _conn = new SqlConnection(_connectionString);

                var _cmdText = " SELECT " +
                               "  VEN_ITEM_ID, " +
                               "  VEN_ITEM_VEN_ID, " +
                               "  VEN_ITEM_PROD_ID, " +
                               "  VEN_ITEM_QTDE, " +
                               "  VEN_ITEM_VALOR_UNITARIO, " +
                               "  VEN_ITEM_DESCONTO " +
                               " FROM VENDA_ITENS " +
                               " WHERE VEN_ITEM_ID = @VEN_ITEM_ID ";

                var _cmd = new SqlCommand(_cmdText, _conn);

                _cmd.Parameters.AddWithValue("@VEN_ITEM_ID", Id);

                var _dt = new DataTable();

                _conn.Open();
                _dt.Load(_cmd.ExecuteReader());
                _conn.Close();

                var _vendaItem = new VendaItem();

                if (_dt.Rows.Count > 0)
                {
                    _vendaItem.VendaItemId   = Convert.ToInt32(_dt.Rows[0]["VEN_ITEM_ID"]);
                    _vendaItem.VendaId       = Convert.ToInt32(_dt.Rows[0]["VEN_ITEM_VEN_ID"].ToString());
                    _vendaItem.Produto       = _produtoRepository.GetItem(Convert.ToInt32((_dt.Rows[0]["VEN_ITEM_PROD_ID"])));
                    _vendaItem.Quantidade    = Convert.ToInt32(_dt.Rows[0]["VEN_ITEM_QTDE"].ToString());
                    _vendaItem.ValorUnitario = Convert.ToDecimal(_dt.Rows[0]["VEN_ITEM_VALOR_UNITARIO"]);
                    _vendaItem.Desconto      = Convert.ToDecimal(_dt.Rows[0]["VEN_ITEM_DESCONTO"].ToString());
                }

                return(_vendaItem);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Exemple #20
0
        public Venda Salvar(long id,
                            long[] produtoId,
                            decimal[] quantidade,
                            DateTime dataVenda,
                            string cliente
                            )
        {
            Venda venda = null;

            if (id > 0)
            {
                venda = _vendaRepository.GetById(id);
            }
            else
            {
                venda = new Venda
                {
                    NomeCliente = cliente,
                    DataVenda   = DateTime.Now
                };
            }

            //Atualiza de acordo com o que foi digitado
            venda.Itens.Clear();
            for (int i = 0; i < produtoId.Count(); i++)
            {
                var prod = _produtoRepository.GetById(produtoId[i]);

                var item = new VendaItem()
                {
                    Venda      = venda,
                    Produto    = prod,
                    Quantidade = quantidade[i],
                    Total      = quantidade[i] * prod.Preco
                };
                var msg = string.Empty;
                //if (prod.QuantidadeEstoque < quantidade[i])
                if (!item.Verifica_Estoque_E_Qtd_Zerada(out msg))
                {
                    throw new InvalidOperationException(msg);
                }

                prod.Diminuir_Quantidade_Venda(quantidade[i]);

                venda.Itens.Add(item);
            }
            venda.Total = venda.Itens.Sum(x => x.Total);
            _vendaRepository.Save(venda);
            _vendaRepository.CommitTran();

            return(venda);
        }
        // GET: VendaItem/Create
        public IActionResult Create(long?idVenda)
        {
            ViewData["ProdutoId"] = new SelectList(_context.Produtos, "Id", "Id");

            var vendaItem = new VendaItem();

            if (idVenda.HasValue)
            {
                vendaItem.VendaId = idVenda.Value;
            }

            return(View(vendaItem));
        }
Exemple #22
0
        public void Verifica_Estoque_E_Qtd_Zerada_Passando_Quantidade_Menor_Estoque()
        {
            var msg       = String.Empty;
            var vendaItem = new VendaItem();
            var produto   = new Produto();

            vendaItem.Quantidade      = 3;
            produto.QuantidadeEstoque = 3;
            vendaItem.Produto         = produto;
            var obj = vendaItem.Verifica_Estoque_E_Qtd_Zerada(out msg);

            Assert.AreEqual(true, obj);
        }
        public async Task <IActionResult> Create([Bind("Id,ProdutoId,VendaId,Quantidade,Valor,Desconto")] VendaItem vendaItem)
        {
            if (ModelState.IsValid)
            {
                _context.Add(vendaItem);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["ProdutoId"] = new SelectList(_context.Produtos, "Id", "Id", vendaItem.ProdutoId);
            ViewData["VendaId"]   = new SelectList(_context.Vendas, "Id", "Id", vendaItem.VendaId);
            return(View(vendaItem));
        }
        public List <VendaItem> RetornarTodosPorVendaId(int vendaId)
        {
            try
            {
                var _vendaItens        = new List <VendaItem>();
                var _produtoRepository = new ProdutoRepository();

                var _conn = new SqlConnection(_connectionString);

                var _cmdText = " SELECT " +
                               "  VEN_ITEM_ID, " +
                               "  VEN_ITEM_VEN_ID, " +
                               "  VEN_ITEM_PROD_ID, " +
                               "  VEN_ITEM_QTDE, " +
                               "  VEN_ITEM_VALOR_UNITARIO, " +
                               "  VEN_ITEM_DESCONTO " +
                               " FROM VENDA_ITENS " +
                               " WHERE VEN_ITEM_VEN_ID = @VEN_ITEM_VEN_ID ";

                var _cmd = new SqlCommand(_cmdText, _conn);
                _cmd.Parameters.AddWithValue("@VEN_ITEM_VEN_ID", vendaId);


                var _dt = new DataTable();

                _conn.Open();
                _dt.Load(_cmd.ExecuteReader());
                _conn.Close();

                foreach (DataRow _row in _dt.Rows)
                {
                    var _vendaItem = new VendaItem();

                    _vendaItem.VendaItemId   = Convert.ToInt32(_row["VEN_ITEM_ID"]);
                    _vendaItem.VendaId       = Convert.ToInt32(_row["VEN_ITEM_VEN_ID"].ToString());
                    _vendaItem.Produto       = _produtoRepository.GetItem(Convert.ToInt32((_row["VEN_ITEM_PROD_ID"])));
                    _vendaItem.Quantidade    = Convert.ToInt32(_row["VEN_ITEM_QTDE"].ToString());
                    _vendaItem.ValorUnitario = Convert.ToDecimal(_row["VEN_ITEM_VALOR_UNITARIO"]);
                    _vendaItem.Desconto      = Convert.ToDecimal(_row["VEN_ITEM_DESCONTO"].ToString());

                    _vendaItens.Add(_vendaItem);
                }

                return(_vendaItens);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Exemple #25
0
 public void Adicionar(VendaItem venda)
 {
     using (var con = _provider.CreateConnection())
     {
         con.Execute($@"INSERT INTO vendaItem 
                     (VendaId, ProdutoId, Quantidade) VALUES
                     (@VendaId, @ProdutoId, @Quantidade)",
                     new
         {
             VendaId    = venda.VendaId,
             ProdutoId  = venda.ProdutoId,
             Quantidade = venda.Quantidade
         });
     }
 }
        public void Salvar(VendaItem vendaItem)
        {
            if (vendaItem.Id > 0)
            {
                var itemVenda = contexto.VendaItens.FirstOrDefault(x => x.Id == vendaItem.Id);

                itemVenda.Produto       = vendaItem.Produto;
                itemVenda.Quantidade    = vendaItem.Quantidade;
                itemVenda.ValorUnitario = vendaItem.ValorUnitario;
            }
            else
            {
                contexto.VendaItens.Add(vendaItem);
            }

            contexto.SaveChanges();
        }
Exemple #27
0
 private void AdicionarAoCarrinho(VendaItem vendaItem)
 {
     if (TempData["Carrinho"] != null)
     {
         var carrinho = TempData["Carrinho"] as List <VendaItem>;
         vendaItem.Id = carrinho.Count + 1;
         carrinho.Add(vendaItem);
         TempData["Carrinho"] = carrinho;
     }
     else
     {
         TempData["Carrinho"] = new List <VendaItem>
         {
             vendaItem
         }
     };
 }
Exemple #28
0
 public void VendaItem(Venda venda, VendaItem item)
 {
     if (venda == null)
     {
         return;
     }
     if (item == null)
     {
         return;
     }
     venda.Itens.Add(item);
     if (item.IdVenda == 0)
     {
         item.IdVenda = venda.IdVenda;
     }
     _repositorioVenda.AdicionarItem(item);
 }
Exemple #29
0
        protected void btnFinalizarVenda_Click(object sender, EventArgs e)
        {
            int     venda      = Convert.ToInt32(Session["VendaID"]);
            int     produto    = Convert.ToInt32(Session["ProdutoID"]);
            int     quantidade = Convert.ToInt32(lblQuantidade.Text);
            decimal subtotal   = Convert.ToDecimal(lblSubtotal.Text);
            decimal preco      = Convert.ToDecimal(lblPreco.Text);

            VendaItemBD vendaItemBD = new VendaItemBD();
            VendaItem   vendaItem   = new VendaItem();

            vendaItem.Produto       = produto;
            vendaItem.Venda         = venda;
            vendaItem.Quantidade    = quantidade;
            vendaItem.Subtotal      = subtotal;
            vendaItem.PrecoUnitario = preco;
            vendaItemBD.Insert(vendaItem);

            VendaBD vendaBD = new VendaBD();

            vendaBD.UpdateTotal(venda, subtotal);

            Session["VendaID"]     = 0;
            Session["CategoriaID"] = 0;
            Session["ProdutoID"]   = 0;



            ProdutoMPBD bd = new ProdutoMPBD();
            DataSet     ds = bd.SelectProdutoMP(produto);

            for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
            {
                DataRow dr           = ds.Tables[0].Rows[i];
                int     MP           = Convert.ToInt32(dr["mat_codigo"]);
                double  quantidademp = Convert.ToDouble(dr["pmp_quantidade"]);
                int     saida        = 1;

                double total = quantidade * quantidademp;

                EstoqueMPBD estoque = new EstoqueMPBD();
                estoque.InsertEstoque(MP, total, saida);
            }

            Response.Redirect("NovaVenda.aspx");
        }
Exemple #30
0
        public bool Insert(VendaItem item)
        {
            System.Data.IDbConnection objConexao;
            System.Data.IDbCommand    objCommand;
            string sql = "INSERT INTO tbl_vendaitem(pro_codigo, ven_codigo, vit_quantidade, vit_subtotal, vit_precounitario) VALUES (?produto, ?venda, ?quantidade, ?subtotal, ?precounitario)";

            objConexao = Mapped.Connection();
            objCommand = Mapped.Command(sql, objConexao);

            objCommand.Parameters.Add(Mapped.Parameter("?produto", item.Produto));
            objCommand.Parameters.Add(Mapped.Parameter("?venda", item.Venda));
            objCommand.Parameters.Add(Mapped.Parameter("?quantidade", item.Quantidade));
            objCommand.Parameters.Add(Mapped.Parameter("?subtotal", item.Subtotal));
            objCommand.Parameters.Add(Mapped.Parameter("?precounitario", item.PrecoUnitario));

            objCommand.ExecuteNonQuery();
            objConexao.Close();
            objCommand.Dispose();
            objConexao.Dispose();

            return(true);
        }