public Venda ListarPorId(long id) { SqlConnection conn = null; try { Venda Venda = new Venda(); using (conn = new SqlConnection(Conexao.Conexao.StringConexao)) { conn.Open(); SqlCommand cmd = new SqlCommand(); cmd.Connection = conn; cmd.CommandText = @"SELECT SP.*, SPI.idVendaItem, SPI.quantidade AS quantidadeItem, SPI.valorUnitario AS valorUnitarioItem, SPI.valorTotal AS valorTotalItem, SPI.custo, SPI.custoTotal, P.idProduto, P.descricao AS produtoDesc, U.idUnidade, U.descricao AS unidadeDesc, M.idMarca, M.descricao AS marcaDesc FROM Venda AS SP INNER JOIN VendaItem AS SPI ON (SP.idVenda = SPI.idVenda) INNER JOIN Produto AS P ON (SPI.idProduto = P.idProduto) INNER JOIN Unidade AS U ON (P.idUnidade = U.idUnidade) INNER JOIN Marca AS M ON (P.idMarca = M.idMarca) WHERE SP.idVenda = @idVenda; "; cmd.Parameters.AddWithValue("@idVenda", id); using (SqlDataReader reader = cmd.ExecuteReader()) { bool firstRow = true; while (reader.Read()) { if (firstRow) { firstRow = false; Venda.IdVenda = Convert.ToInt64(reader["idVenda"]); Venda.DataInicio = Convert.ToDateTime(reader["dataInicio"]); Venda.Status = Convert.ToInt32(reader["status"]); Venda.QuantidadeTotal = Convert.ToDecimal(reader["quantidadeTotal"]); Venda.ValorTotal = Convert.ToDecimal(reader["valorTotal"]); if (reader["dataTermino"].ToString() != "") { Venda.DataTermino = Convert.ToDateTime(reader["dataTermino"]); } Venda.Itens = new List <Vendatem>(); } Vendatem item = new Vendatem(); item.Produto = new Produto(); item.IdVendaItem = Convert.ToInt64(reader["idVendaItem"]); item.Produto.IdProduto = Convert.ToInt64(reader["idProduto"]); item.Produto.Descricao = reader["produtoDesc"].ToString(); item.Produto.Unidade = new Unidade(); item.Produto.Unidade.IdUnidade = Convert.ToInt32(reader["idUnidade"]); item.Produto.Unidade.Descricao = reader["unidadeDesc"].ToString(); item.Produto.Marca = new Marca(); item.Produto.Marca.IdMarca = Convert.ToInt32(reader["idMarca"]); item.Produto.Marca.Descricao = reader["marcaDesc"].ToString(); item.Quantidade = Convert.ToDecimal(reader["quantidadeItem"]); item.ValorUnitario = Convert.ToDecimal(reader["valorUnitarioItem"]); item.ValorTotal = Convert.ToDecimal(reader["valorTotalItem"]); item.Custo = Convert.ToDecimal(reader["custo"]); item.CustoTotal = Convert.ToDecimal(reader["custoTotal"]); item.Venda = new Venda(); item.Venda.IdVenda = id; Venda.Itens.Add(item); } } } return(Venda); } catch (Exception ex) { throw ex; } }
private void btnConfirmar_Click(object sender, EventArgs e) { if (dgvMovimentacoesProdutos.Rows.Count == 0) { MessageBox.Show("Insira pelo menos 1 produto para continuar.", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } Venda venda = new Venda(); venda.DataInicio = DateTime.Now; venda.DataTermino = DateTime.Now; venda.Status = Venda.STATUS_FINALIZADO; venda.QuantidadeTotal = Convert.ToDecimal(lblTotalQuantidade.Text); venda.ValorTotal = Convert.ToDecimal(lblTotalValor.Text.Replace("R$", "").Trim()); venda.Itens = new List <Vendatem>(); ProdutoController produtoController = new ProdutoController(); for (int i = 0; i < dgvMovimentacoesProdutos.Rows.Count; i++) { Produto produto = null; try { produto = produtoController.ListarPorId(Convert.ToInt64(dgvMovimentacoesProdutos.Rows[i].Cells["CellIdProduto"].Value)); } catch (Exception ex) { MessageBox.Show("Problemas ao localizar produtos: " + ex.Message, "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } Vendatem item = new Vendatem(); item.Produto = produto; item.Custo = item.Produto.Custo; item.Quantidade = Convert.ToDecimal(dgvMovimentacoesProdutos.Rows[i].Cells["CellQuantidadeMovimentacao"].Value); item.ValorUnitario = Convert.ToDecimal(dgvMovimentacoesProdutos.Rows[i].Cells["CellValorUnitario"].Value.ToString().Replace("R$", "").Trim()); item.ValorTotal = Convert.ToDecimal(dgvMovimentacoesProdutos.Rows[i].Cells["CellValorTotalMovimentacao"].Value.ToString().Replace("R$", "").Trim()); item.CustoTotal = item.Custo * item.Quantidade; venda.Itens.Add(item); } try { venda = new VendaController().Inserir(venda); dgvMovimentacoesProdutos.Rows.Clear(); LimparDetalhes(); MessageBox.Show("Venda Finalizada com sucesso!", "Sucesso", MessageBoxButtons.OK, MessageBoxIcon.Information); try { Form form = Application.OpenForms["frmDashboard"]; if (form != null) { frmDashboard frmDashboard = (frmDashboard)form; frmDashboard.CarregarVendas(); frmDashboard.CarregarHistoricoProdutos(); } } catch { } } catch (Exception ex) { MessageBox.Show("Problemas ao registrar saída de produtos: " + ex.Message, "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } }