private void BtnEditar_Click(object sender, EventArgs e) { var ProdutosNaoAtualizados = ""; if (TextNomeClienteEditar.Text.Length == 0 || IdClienteVendaEditar.Length == 0) { MessageBox.Show(this, "Favor selecionar um cliente !", null, MessageBoxButtons.OK, MessageBoxIcon.Error); } if (TextParcelasEditar.Text.Length == 0) { MessageBox.Show(this, "Favor preencher a quantidade de parcelas !", null, MessageBoxButtons.OK, MessageBoxIcon.Error); } else { if (IdVenda.Length == 0) { MessageBox.Show(this, "Favor realizar a busca de uma venda !", null, MessageBoxButtons.OK, MessageBoxIcon.Error); } else { var TotalCompra = new decimal(); for (int i = 0; i < GridProdutosEditar.RowCount; i++) { TotalCompra = TotalCompra + Convert.ToDecimal(GridProdutosEditar.Rows[i].Cells[3].Value.ToString()) * Convert.ToInt32(GridProdutosEditar.Rows[i].Cells[4].Value); } if (TextDescontoEditar.Value > 0) { TotalCompra = TotalCompra - ((TotalCompra * TextDescontoEditar.Value) / 100); if (ValorTotal.DecimalValue != (decimal)TotalCompra) { MessageBox.Show(this, "O valor total da compra não é igual a soma do custo dos produtos!", null, MessageBoxButtons.OK, MessageBoxIcon.Error); } } if (ValorTotal.DecimalValue != (decimal)TotalCompra) { MessageBox.Show(this, "O valor total da compra não é igual a soma do custo dos produtos!", null, MessageBoxButtons.OK, MessageBoxIcon.Error); } else { var TabelaCadastrada = Venda.RetornaProdutoVenda(IdVenda); var Existe = false; var ExisteEstoque = false; var ProdutosFora = new ArrayList(); for (int j = 0; j < TabelaCadastrada.Rows.Count; j++) { for (int i = 0; i < GridProdutosEditar.RowCount; i++) { if (TabelaCadastrada.Rows[j]["ID PRODUTO"].ToString() .Equals(GridProdutosEditar.Rows[i].Cells[0].Value.ToString())) { Existe = true; if (Convert.ToInt32(TabelaCadastrada.Rows[j]["QUANTIDADE"]) < Convert.ToInt32(GridProdutosEditar.Rows[i].Cells[4].Value)) { ExisteEstoque = Venda.VerificaDisponibilidade( GridProdutosEditar.Rows[i].Cells[0].Value.ToString(), (Convert.ToInt32(GridProdutosEditar.Rows[i].Cells[4].Value) - Convert.ToInt32(TabelaCadastrada.Rows[j]["QUANTIDADE"])).ToString()); if (ExisteEstoque) { for (int k = 0; k < Convert.ToInt32(GridProdutosEditar.Rows[i].Cells[4].Value) - Convert.ToInt32(TabelaCadastrada.Rows[j]["QUANTIDADE"]); k++) { Venda.CadastrarProdutoVenda(IdVenda, GridProdutosEditar.Rows[i].Cells[0].Value.ToString(), GridProdutosEditar.Rows[i].Cells[3].Value.ToString()); Venda.RemoveProdutoEstoque( GridProdutosEditar.Rows[i].Cells[0].Value.ToString(), "1"); } } else { ProdutosFora.Add(GridProdutosEditar.Rows[i].Cells[2].Value.ToString()); } } else if (Convert.ToInt32(TabelaCadastrada.Rows[j]["QUANTIDADE"]) > Convert.ToInt32(GridProdutosEditar.Rows[i].Cells[4].Value)) { var Diferenca = Convert.ToInt32(TabelaCadastrada.Rows[j]["QUANTIDADE"]) - Convert.ToInt32(GridProdutosEditar.Rows[i].Cells[4].Value); Venda.DeletaProdutoVenda(GridProdutosEditar.Rows[i].Cells[0].Value.ToString(), IdVenda, Diferenca.ToString()); Venda.AdicionaProdutoEstoque( GridProdutosEditar.Rows[i].Cells[0].Value.ToString(), Diferenca.ToString()); } } } if (!Existe) { Venda.DeletaTodosProdutoVenda(TabelaCadastrada.Rows[j]["ID PRODUTO"].ToString(), IdVenda); Venda.AdicionaProdutoEstoque(TabelaCadastrada.Rows[j]["ID PRODUTO"].ToString(), TabelaCadastrada.Rows[j]["QUANTIDADE"].ToString()); } Existe = false; ExisteEstoque = false; } for (int i = 0; i < GridProdutosEditar.RowCount; i++) { for (int j = 0; j < TabelaCadastrada.Rows.Count; j++) { if (TabelaCadastrada.Rows[j]["ID PRODUTO"].ToString() .Equals(GridProdutosEditar.Rows[i].Cells[0].Value.ToString())) { Existe = true; } } if (!Existe) { ExisteEstoque = Venda.VerificaDisponibilidade( GridProdutosEditar.Rows[i].Cells[0].Value.ToString(), (Convert.ToInt32(GridProdutosEditar.Rows[i].Cells[4].Value)).ToString()); if (ExisteEstoque) { for (int k = 0; k < Convert.ToInt32(GridProdutosEditar.Rows[i].Cells[4].Value); k++) { Venda.CadastrarProdutoVenda(IdVenda, GridProdutosEditar.Rows[i].Cells[0].Value.ToString(), GridProdutosEditar.Rows[i].Cells[3].Value.ToString()); Venda.RemoveProdutoEstoque( GridProdutosEditar.Rows[i].Cells[0].Value.ToString(), "1"); } } else { ProdutosFora.Add(GridProdutosEditar.Rows[i].Cells[2].Value.ToString()); } } Existe = false; } for (int i = 0; i < ProdutosFora.Count; i++) { ProdutosNaoAtualizados = ProdutosNaoAtualizados + ProdutosFora[i] + " | "; } if (ProdutosFora.Count == 0) { Venda.AtualizarVenda(IdVenda, IdClienteVendaEditar, ValorTotal.DecimalValue.ToString(), ComboFormaPagamentoEditar.SelectedValue.ToString(), TextDescontoEditar.Text, TextParcelasEditar.Text); } else { var ValorTotalBanco = Venda.RetornaTotalVenda(IdVenda); var ValorTotalFinal = Convert.ToDecimal(ValorTotalBanco.Rows[0][0].ToString()) - ((Convert.ToDecimal(ValorTotalBanco.Rows[0][0].ToString()) * TextDescontoEditar.Value) / 100); Venda.AtualizarVenda(IdVenda, IdClienteVendaEditar, ValorTotalFinal.ToString(), ComboFormaPagamentoEditar.SelectedValue.ToString(), TextDescontoEditar.Text, TextParcelasEditar.Text); } MessageBox.Show(this, "Venda atualizada com sucesso! Porém os seguintes produtos não foram atualizados por falta de estoque: " + ProdutosNaoAtualizados + "", null, MessageBoxButtons.OK, MessageBoxIcon.Information); TextNomeClienteEditar.Text = ""; IdClienteVendaEditar = ""; TextParcelasEditar.Text = ""; ValorTotal.Text = "0"; TextDescontoEditar.Text = "0"; GridProdutosEditar.Rows.Clear(); } } } }