public async Task <IActionResult> Edit(int id, [Bind("Valor,Comprado,DataCadastro,DataAlteracao,DataCompra,IdCompra,Id,Nome")] ItemCompra itemCompra)
        {
            if (id != itemCompra.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(itemCompra);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!ItemCompraExists(itemCompra.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["IdCompra"] = new SelectList(_context.Compra, "Id", "Id", itemCompra.IdCompra);
            return(View(itemCompra));
        }
예제 #2
0
 private void SelecionarItemCompra(object sender, SelectionChangedEventArgs e)
 {
     if (Carrinho.SelectedItem != null)
     {
         itemC = Carrinho.SelectedItem as ItemCompra;
     }
 }
예제 #3
0
        public void InserirItemCompra(ItemCompra ItemCompra)
        {
            conexao.InserirItemCompra(ItemCompra);
            CProduto produto = new CProduto();

            produto.EntradaEstoqueProduto(ItemCompra.getQtdItens(), ItemCompra.getIdProduto());
        }
        public void Deve_Retornar_10_Para_Promocao_3Por10_Com_3_Itens_Inseridos()
        {
            // Arrange
            var id            = Guid.NewGuid();
            var identificador = "A";
            var descricao     = "Molho de tomate, 100gr";
            var preco         = 1.8M;
            var promocaoId    = this.PromocoesConstants._3Por10;

            var produto = new Produto(
                id,
                identificador,
                descricao,
                preco,
                promocaoId
                );

            var itemCompra = new ItemCompra(3, produto);

            // Act

            // Assert
            Assert.AreEqual(3, itemCompra.Quantidade);
            Assert.AreEqual(produto, itemCompra.Produto);
            Assert.AreEqual(10, itemCompra.ValorTotal);
        }
예제 #5
0
        public List <ItemCompra> ListarItemCompra(int idCompra)
        {
            List <ItemCompra> Lista = new List <ItemCompra>();

            this.Conect();
            sql = "SELECT id, idproduto, qtditens, totalpreco, prccompra, idcompra FROM tbitemcompra where idcompra = @idcompra order by id;";
            cmd = new NpgsqlCommand(sql, con);
            cmd.Parameters.AddWithValue("idcompra", idCompra);
            cmd.Prepare();
            rdr = cmd.ExecuteReader();

            while (rdr.Read())
            {
                ItemCompra i = new ItemCompra();
                i.setID(rdr.GetInt32(0));
                i.setIdProduto(rdr.GetInt32(1));
                i.setQtdItens(rdr.GetInt32(2));
                i.setTotalPreco(rdr.GetDouble(3));
                i.setPrcCusto(rdr.GetDouble(4));
                i.setIdDocumento(rdr.GetInt32(5));
                Lista.Add(i);
            }
            this.Desconect();
            return(Lista);
        }
예제 #6
0
        public async Task <ActionResult <ItemCompra> > PostItem(ItemCompra item)
        {
            _context.LIstaComprasItems.Add(item);
            await _context.SaveChangesAsync();

            return(CreatedAtAction(nameof(getItem), new { id = item.Id }, item));
        }
        public void Deve_Retornar_10_Para_Produto_Sem_Promocao_Com_2_Itens_Inseridos_E_Valor_Unitario_5()
        {
            // Arrange
            var id            = Guid.NewGuid();
            var identificador = "A";
            var descricao     = "Molho de tomate, 100gr";
            var preco         = 5M;

            var produto = new Produto(
                id,
                identificador,
                descricao,
                preco,
                null
                );

            var itemCompra = new ItemCompra(2, produto);

            // Act

            // Assert
            Assert.AreEqual(2, itemCompra.Quantidade);
            Assert.AreEqual(produto, itemCompra.Produto);
            Assert.AreEqual(10, itemCompra.ValorTotal);
        }
        public void Deve_Retornar_10_Para_Promocao_Pague1Leve2_Com_3_Itens_Inseridos_E_Valor_Unitario_5()
        {
            // Arrange
            var id            = Guid.NewGuid();
            var identificador = "A";
            var descricao     = "Molho de tomate, 100gr";
            var preco         = 5M;
            var promocaoId    = this.PromocoesConstants.Pague1Leve2;

            var produto = new Produto(
                id,
                identificador,
                descricao,
                preco,
                promocaoId
                );

            var itemCompra = new ItemCompra(3, produto);

            // Act

            // Assert
            Assert.AreEqual(3, itemCompra.Quantidade, "Quantidade ímpares deveriam adicionar o valor unitário do produto");
            Assert.AreEqual(produto, itemCompra.Produto);
            Assert.AreEqual(10, itemCompra.ValorTotal);
        }
예제 #9
0
        public ActionResult SalvarCompra(string cnpj, string razaoSocial, DateTime dataCompra, float?valorCompra, int?quantidade, string nome, string descricao, float?valorUnitario)
        {
            var fornecedor = new Fornecedor();
            var compra     = new Compra();
            var itemCompra = new ItemCompra();
            var produto    = new Produto();
            var result     = new JsonResult();

            try
            {
                fornecedor.CNPJ        = cnpj;
                fornecedor.RazaoSocial = razaoSocial;
                _session.Save(fornecedor);
                compra.DataCompra = dataCompra;
                compra.Fornecedor = fornecedor;
                compra.ValorTotal = valorCompra == null ? 0 : valorCompra.Value;
                _session.Save(compra);
                produto.Descricao = descricao;
                produto.Nome      = nome;
                produto.Valor     = valorUnitario == null ? 0 : valorUnitario.Value;
                _session.Save(produto);
                itemCompra.Quantidade = quantidade == null ? 0 : quantidade.Value;
                itemCompra.Compra     = compra;
                itemCompra.Produto    = produto;
                _session.Save(itemCompra);
                result.Data = true;
            }
            catch
            {
                result.Data = false;
            }
            return(Json(result, JsonRequestBehavior.AllowGet));
        }
예제 #10
0
        internal void RealizarCompra(int fornecedorId, int produtoId, int quantidade)
        {
            database1Entities1 context   = new database1Entities1();
            ProdutoGD          produtoGD = new ProdutoGD(context);

            var produto    = produtoGD.RecuperarPorId(produtoId);
            var fornecedor = new FornecedorGD(context).RecuperarPorId(fornecedorId);

            if ((produto.estoque + quantidade) > 1000)
            {
                throw new Exception("quantidade excedida");
            }
            produto.estoque += quantidade;

            produtoGD.Editar(produto);

            Compra compra = new Compra()
            {
                data       = DateTime.Now,
                Fornecedor = fornecedor,
            };
            ItemCompra itemCompra = new ItemCompra()
            {
                precoUnitario = produto.precoUnitario,
                quantidade    = quantidade,
                Produto       = produto,
                Compra        = compra
            };

            new CompraGD(context).Adicionar(compra);
            new ItemCompraGD(context).Adicionar(itemCompra);
        }
예제 #11
0
        //--------------------------------------------------------
        public static ItemCompra BuscarPorId(long id)
        {
            ItemCompra itenscompra = null;

            try
            {
                SqlCommand cmd;
                cmd = new SqlCommand("select * from item_compra as ic where ic.id=@id", DBUtil.getConnection());
                DBUtil.getConnection().Open();
                cmd.Parameters.AddWithValue("@id", id);
                cmd.ExecuteNonQuery();

                DataTable dt = new DataTable();

                SqlDataAdapter da = new SqlDataAdapter();
                da.SelectCommand = cmd;
                da.Fill(dt);

                itenscompra = GetItemCompra(dt.Rows[0].ItemArray);
            }
            catch (Exception e)
            {
                Debug.WriteLine("Erro ao buscar por id do item compra" + e.Message);
            }
            finally
            {
                DBUtil.closeConnection();
            }

            return(itenscompra);
        }
예제 #12
0
        public async Task <ActionResult <ItemCompra> > PostItemCompra(ItemCompra itemCompra)
        {
            _context.LIstaComprasItems.Add(itemCompra);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetItemCompra", new { id = itemCompra.Id }, itemCompra));
        }
예제 #13
0
        public async Task <IActionResult> PutItemCompra(int id, ItemCompra itemCompra)
        {
            if (id != itemCompra.Id)
            {
                return(BadRequest());
            }

            _context.Entry(itemCompra).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!ItemCompraExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
예제 #14
0
        public void Deletar()
        {
            ItemCompra i = ItemCompraDao.BuscarPorId(ItemCompraDao.getLastId());

            Assert.IsTrue(ItemCompraDao.Excluir(ItemCompraDao.getLastId()));

            // Assert.IsTrue(InstituicaoDAO.Excluir(i));
        }
예제 #15
0
        public ActionResult DeleteConfirmed(int id)
        {
            ItemCompra itemCompra = db.ItemCompra.Find(id);

            db.ItemCompra.Remove(itemCompra);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
예제 #16
0
        public ListaCompra RemoveItem(int id, ItemCompra item)
        {
            var itemCompras = ServiceLocator.Current.GetInstance <ItemCompraServico>();

            itemCompras.ExcluirPorId(item.Id);
            //
            return(AtualizaLista(id));
        }
예제 #17
0
        public ActionResult AdicionarItem([FromBody] ItemCompra itemCompra)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var item = _carrinhoComprasService.Adicionar(itemCompra);

            return(CreatedAtAction("ObterItem", new { id = item.Id }, item));
        }
예제 #18
0
        public void PersistirInserir()
        {
            ItemCompra i = new ItemCompra();

            i.Quantidade = 11;
            i.Valor      = 11;
            i.Produto    = ProdutoDAO.BuscarPorId(ProdutoDAO.getLastId());
            i.Compra     = CompraDao.BuscarPorId(CompraDao.getLastId());

            Assert.IsTrue(ItemCompraDao.Persistir(i));
        }
예제 #19
0
        public void PersistirAtualizar()
        {
            ItemCompra i = ItemCompraDao.BuscarPorId(ItemCompraDao.getLastId());

            i.Quantidade = 22;
            i.Valor      = 22;
            i.Produto    = ProdutoDAO.BuscarPorId(ProdutoDAO.getLastId());
            i.Compra     = CompraDao.BuscarPorId(CompraDao.getLastId());

            Assert.IsTrue(ItemCompraDao.Persistir(i));
        }
예제 #20
0
        // GET: ItemCompra/Edit/5
        public ActionResult Edit(int id)
        {
            ItemCompra i = ItemCompraDao.BuscarPorId(id);

            if (i == null)
            {
                return(HttpNotFound());
            }

            return(View(i));
        }
예제 #21
0
        public ListaCompra AdicionaItem(int id, ItemCompra item)
        {
            var listaCompra = BuscarPorId(id);

            if (listaCompra == null)
            {
                throw new Exception("Lista de compras não encontrada.");
            }

            var descontos = listaCompra?.Usuario?.Pessoa?.ListaDescontoPessoa ?? new List <DescontoPessoa>();

            // Trata casos em que o cliente volta à lista de produtos e pede para adicionar um produto já existente no carrinho
            var itemCompras = ServiceLocator.Current.GetInstance <ItemCompraServico>();

            if (item.PlanoVenda == null)
            {
                var itemExistente = listaCompra.Itens.FirstOrDefault(x => x.Produto.Id.Equals(item.Produto.Id) && x.Produto.DepartamentoProduto.CategoriaProduto.Id != (int)CategoriaDeProduto.Convenio);
                if (itemExistente == null)
                {
                    if (descontos != null && descontos.Count > 0)
                    {
                        item.Total = item.Quantidade * (descontos?.FirstOrDefault(x => (x?.ProdutoPreco?.Id ?? 0) == item.Preco.Id)?.ValorProdutoComDesconto ?? item.Preco.Valor);
                    }
                    else
                    {
                        item.Total = item.Quantidade * item.Preco.Valor;
                    }
                    item.ListaCompra = listaCompra;
                    itemCompras.Salvar(item);
                }
                else
                {
                    itemExistente.Quantidade += item.Quantidade;
                    itemExistente.Total       = itemExistente.Quantidade * (descontos?.FirstOrDefault(x => (x?.ProdutoPreco?.Id ?? 0) == item.Preco.Id)?.ValorProdutoComDesconto ?? item.Preco.Valor);
                    itemCompras.Salvar(itemExistente);
                }
            }
            else
            {
                var itemExistente = listaCompra.Itens.FirstOrDefault(x => x.PlanoVenda.Id.Equals(item.PlanoVenda.Id) && x.Beneficiario.Id.Equals(item.Beneficiario.Id));

                if (itemExistente != null)
                {
                    throw new Exception("Item ja adicionado na lista!");
                }

                item.Total       = item.Quantidade * (item.PlanoVenda.ValorDesconto != 0 ? item.PlanoVenda.ValorDesconto: item.PlanoVenda.Valor);
                item.ListaCompra = listaCompra;
                itemCompras.Salvar(item);
            }

            return(AtualizaLista(id));
        }
예제 #22
0
        private void AddItemLista(Produto prod)
        {
            ItemCompra itemV = new ItemCompra();

            itemV.setID(ic.NovoId());
            itemV.setIdDocumento(int.Parse(lblID.Text));
            itemV.setIdProduto(prod.getIdProduto());
            itemV.setQtdItens(int.Parse(txtQtd.Text));
            itemV.setPrcCusto(prod.getPrecoCusto());
            itemV.setTotalPreco(prod.getPrecoCusto() * int.Parse(txtQtd.Text));
            itensCompra.Add(itemV);
        }
예제 #23
0
        private void FillLoadData(string action, ItemCompra item)
        {
            switch (action.ToUpper())
            {
            case "NEW":
            {
                this._idProducto               = item.IdProducto;
                this._descripcion              = item.Descripcion;
                this._descripcionOriginal      = item.Descripcion;
                this._descripcionCorta         = item.DescripcionCorta;
                this._descripcionLarga         = item.DescripcionLarga;
                this._descripcionLargaOriginal = item.DescripcionLarga;
                this._cantidad                = Math.Abs(item.Cantidad) * this.ItemsComprobantes.Parent.Signo;
                this._precioDeCosto           = item.PrecioCosto;
                this._idComprobanteOrigen     = null;
                this._ordinalOrigen           = long.MinValue;
                this._idTipoComprobanteOrigen = null;
                this._ordinal = this.ItemsComprobantes.Count;
                this._codigo  = item.Codigo;
                break;
            }

            case "EDIT":
                this._idProducto               = item.IdProducto;
                this._descripcion              = item.Descripcion;
                this._descripcionOriginal      = item.Descripcion;
                this._descripcionCorta         = item.DescripcionCorta;
                this._descripcionLarga         = item.DescripcionLarga;
                this._descripcionLargaOriginal = item.DescripcionLarga;
                this._cantidad      = item.Cantidad;
                this._precioDeCosto = item.PrecioCosto;;
                this._ordinalOrigen = long.MinValue;
                this._ordinal       = item.OrdinalDestino;
                this._codigo        = item.Codigo;
                break;

            case "STEP":
                this._idProducto               = item.IdProducto;
                this._descripcion              = item.Descripcion;
                this._descripcionOriginal      = item.Descripcion;
                this._descripcionCorta         = item.DescripcionCorta;
                this._descripcionLarga         = item.DescripcionLarga;
                this._descripcionLargaOriginal = item.DescripcionLarga;
                this._cantidad                = item.Cantidad;
                this._precioDeCosto           = item.PrecioCosto;
                this._idComprobanteOrigen     = item.IdComprobanteOrigen;
                this._ordinalOrigen           = item.OrdinalOrigen;
                this._ordinal                 = item.OrdinalDestino;
                this._idTipoComprobanteOrigen = item.IdTipoComprobanteOrigen;
                this._codigo = item.Codigo;
                break;
            }
        }
        public async Task <IActionResult> Create([Bind("Valor,Comprado,DataCadastro,DataAlteracao,DataCompra,IdCompra,Id,Nome")] ItemCompra itemCompra)
        {
            if (ModelState.IsValid)
            {
                _context.Add(itemCompra);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["IdCompra"] = new SelectList(_context.Compra, "Id", "Id", itemCompra.IdCompra);
            return(View(itemCompra));
        }
예제 #25
0
        public async Task <IActionResult> PostItemCompra([FromBody] ItemCompra itemCompra)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            _context.ItemCompra.Add(itemCompra);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetItemCompra", new { id = itemCompra.Id }, itemCompra));
        }
예제 #26
0
 public ActionResult Edit([Bind(Include = "ItemCompraId,IdProduto,Quantidade,Valor,IdFornecedor")] ItemCompra itemCompra)
 {
     if (ModelState.IsValid)
     {
         db.Entry(itemCompra).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.IdFornecedor = new SelectList(db.Fornecedor, "FornecedorId", "Nome", itemCompra.IdFornecedor);
     ViewBag.IdProduto    = new SelectList(db.Produto, "ProdutoId", "Nome", itemCompra.IdProduto);
     return(View(itemCompra));
 }
예제 #27
0
        public ItemCompraModelView(ItemCompra itemCompra)
        {
            if (itemCompra == null)
            {
                throw new Exception("O item compra não foi encontrado.");
            }

            Produto            = new ProdutoModelView(itemCompra.Produto);
            Preco              = new ProdutoPrecoModelView(itemCompra.Produto, itemCompra.Preco);
            Quantidade         = itemCompra.Quantidade;
            Total              = itemCompra.Total;
            StatusProdutoPreco = itemCompra.StatusProdutoPreco;
        }
예제 #28
0
        public ListaCompra AlteraItem(int id, ItemCompra item)
        {
            var listaCompra = item.ListaCompra.Usuario == null?BuscarPorId(item.ListaCompra.Id) : item.ListaCompra;

            var descontos = listaCompra?.Usuario?.Pessoa?.ListaDescontoPessoa;
            // Item já possui id e referências
            var itemCompras = ServiceLocator.Current.GetInstance <ItemCompraServico>();

            item.Total = item.Quantidade * (descontos?.FirstOrDefault(x => (x?.ProdutoPreco?.Id ?? 0) == item.Preco.Id)?.ValorProdutoComDesconto ?? item.Preco.Valor);
            itemCompras.Salvar(item);
            //
            return(AtualizaLista(id));
        }
예제 #29
0
        /// <summary>
        /// Método que devuelve un objeto de tipo ItemCompra encontrado en la lista de ItemCompra seleccionados por el usuario.
        /// </summary>
        /// <param name="idProducto">Entero que representa el id de un producto</param>
        /// <returns></returns>
        public ItemCompra buscarItemCompraPorId(int idProducto)
        {
            ItemCompra auxItem = null;

            for (int i = 0; i < Comercio.listaDelCarrito.Count; i++)
            {
                if (Comercio.listaDelCarrito[i].codigoDeProducto == idProducto)
                {
                    auxItem = Comercio.listaDelCarrito[i];
                }
            }
            return(auxItem);
        }
        public void Adicionar_Retorna_CreatedResponse()
        {
            // Arrange
            var item = new ItemCompra();

            item.AdicionarDetalhesItemCompra("Item 4", 12.00M, "Fabricante1");

            // Act
            var createdResponse = _controller.AdicionarItem(item);

            // Assert
            Assert.IsType <CreatedAtActionResult>(createdResponse);
        }
예제 #31
0
        private ItemCompra CarregarItem()
        {
            ItemCompra i = new ItemCompra();
            try
            {
                i.Produto = new Produto(Convert.ToInt32(cboProduto.SelectedValue));
            }
            catch (Exception ex)
            {
                throw new ApplicationException("Selecione um produto", ex);
            }

            try
            {
                i.Preco = Convert.ToDecimal(txtPreco.Text);
            }
            catch (Exception ex)
            {
                throw new ApplicationException("Digite o preço corretamente", ex);
            }

            try
            {
                i.Quantidade = Convert.ToInt32(txtQuantidade.Text);
            }
            catch (Exception ex)
            {
                throw new ApplicationException("Digite a quantidade corretamente", ex);
            }

            return i;

        }
예제 #32
0
 private void btnRemover_Click(object sender, EventArgs e)
 {
     if (_itemSelecionado != null)
     {
         _itens.Remove(_itemSelecionado);
         _itemSelecionado = null;
         AtualizarItens();
     }
 }
예제 #33
0
 private void gdvItensCompra_CellClick(object sender, DataGridViewCellEventArgs e)
 {
     if (e.RowIndex < _itens.Count && e.RowIndex > -1)
     {
         _itemSelecionado = _itens[e.RowIndex];
         ExibirItem(_itemSelecionado);
     }
 }
예제 #34
0
 private void ExibirItem(ItemCompra item)
 {
     txtPreco.Text = item.Preco.ToString();
     txtQuantidade.Text = item.Quantidade.ToString();
     _produtos.Clear();
     _produtos.Add(item.Produto);
     AtualizarComboProduto();
 }
예제 #35
0
 public void AdicionarItem(ItemCompra i)
 {
     i.Compra = this;
     Itens.Add(i);
 }