/// <summary> /// Evento de CLICK do btnAlterar /// <para>Possui 3 etapas:</para> /// <para>1) Preparar a txtIdentidade para receber a identidade</para> /// <para>2) Recebe a identidade para pesquisa do cliente</para> /// <para>3) Armazena as informações recebidas se o usuário confirmar</para> /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param> private void BtnAlterar_Click(object sender, EventArgs e) { try { if (btnAlterar.Text.ToUpper() == "Alterar".ToUpper()) { if (dgvProdutos.SelectedRows.Count == 1) { ControlEnable(true); btnCadastrar.Enabled = false; btnExcluir.Enabled = false; btnCancelar.Visible = true; numQuantidade.Enabled = false; PRODUTOSDataTable dt = new PRODUTOSDataTable(); id = (int)dgvProdutos.SelectedCells[0].Value; Produto produto = new Produto(id); dt = banco.SelectProduto(produto.Id); txtNome.Text = dt.Rows[0]["NOME_PRODUTO"].ToString(); numQuantidade.Value = (decimal)dt.Rows[0]["QUANTIDADE_PRODUTO"]; numValor.Value = (decimal) dt.Rows[0]["VALOR_PRODUTO"]; cmbFornecedores.SelectedValue = dt.Rows[0]["ID_FORNECEDOR_PRODUTO"]; txtObs.Text = dt.Rows[0]["OBS_PRODUTO"].ToString(); btnAlterar.Text = "Gravar".ToUpper(); } else { throw new Exception("Selecione uma e apenas uma linha na tabela para alterar"); } } else { FORNECEDORESDataTable fornecedordt = fORNECEDORESTableAdapter.GetDataFornecedor((int) cmbFornecedores.SelectedValue); Fornecedor fornecedor = new Fornecedor( Convert.ToInt32(fornecedordt.Rows[0]["Id_fornecedor"]), Convert.ToString(fornecedordt.Rows[0]["nome_fornecedor"]), Convert.ToString(fornecedordt.Rows[0]["identidade_fornecedor"]), Convert.ToString(fornecedordt.Rows[0]["cep_fornecedor"]), Convert.ToString(fornecedordt.Rows[0]["rua_fornecedor"]), Convert.ToString(fornecedordt.Rows[0]["numero_fornecedor"]), Convert.ToString(fornecedordt.Rows[0]["bairro_fornecedor"]), Convert.ToString(fornecedordt.Rows[0]["cidade_fornecedor"]), Convert.ToString(fornecedordt.Rows[0]["estado_fornecedor"]), Convert.ToString(fornecedordt.Rows[0]["telefone_fornecedor"]), Convert.ToString(fornecedordt.Rows[0]["celular_fornecedor"]), Convert.ToString(fornecedordt.Rows[0]["email_fornecedor"]), Convert.ToString(fornecedordt.Rows[0]["obs_fornecedor"]), Convert.ToDateTime(fornecedordt.Rows[0]["data_info_fornecedor"]) ); Produto produto = new Produto(id, txtNome.Text, fornecedor, numValor.Value, numQuantidade.Value, txtObs.Text); banco.UpdateProduto(produto); //log.WriteEntry(String.Format("produto {0} alterado", produto.Nome)); BtnCancelar_Click(null, null); } } catch (Exception ex) { //log.WriteEntry(ex); MessageBox.Show(ex.Message); } finally { TableRefresh(); } }
private void CheckEstoque() { Dictionary <int, decimal> estoqueReal = new Dictionary <int, decimal>(); foreach (int id in IdsRepetidosInRows(dgvProdutos.Rows)) { estoqueReal.Add(id, 0); foreach (ProdOper produto in this.produtos) { if (id == produto.Produto.Id) { estoqueReal[id] += produto.Quantidade; } } } foreach (int id in estoqueReal.Keys) { PRODUTOSDataTable produto = banco.SelectProduto(id); string msg = String.Empty; if (produto.Rows.Count == 1) { if ((decimal)produto.Rows[0]["quantidade_produto"] < estoqueReal[id]) { msg += String.Format("\nQuantidade do produto {0} insuficiente para a venda", produto.Rows[0]["nome_produto"]); } if ((decimal)produto.Rows[0]["quantidade_produto"] == estoqueReal[id]) { msg += String.Format("\nQuantidade do produto {0} suficiente para a venda, " + "mas o estoque será zerado", produto.Rows[0]["nome_produto"]); } } if (msg != String.Empty) { throw new Exception(msg); } } }
private void dgvProdutos_CellEndEdit(object sender, DataGridViewCellEventArgs e) { if (dgvProdutos.Columns[e.ColumnIndex].HeaderText.Equals("ID")) { PRODUTOSDataTable prodsdt = banco.SelectProduto(Convert.ToInt32(dgvProdutos[e.ColumnIndex, e.RowIndex].Value)); if (prodsdt.Rows.Count == 1) { dgvProdutos[e.ColumnIndex + 1, e.RowIndex].Value = prodsdt.Rows[0]["Nome_Produto"]; dgvProdutos[e.ColumnIndex + 3, e.RowIndex].Value = prodsdt.Rows[0]["Valor_Produto"]; dgvProdutos[e.ColumnIndex, e.RowIndex].ReadOnly = true; dgvProdutos[e.ColumnIndex, e.RowIndex].Style.BackColor = Color.LightGray; BeginInvoke((MethodInvoker) delegate() { dgvProdutos.CurrentCell = dgvProdutos[e.ColumnIndex + 2, e.RowIndex]; dgvProdutos.CurrentCell.ReadOnly = false; dgvProdutos.CurrentCell.ToolTipText = "Quantidade Máxima " + prodsdt.Rows[0]["Quantidade_Produto"].ToString(); dgvProdutos.CurrentCell.Style.BackColor = Color.White; } ); } else { MessageBox.Show("ID não encontrado"); BeginInvoke((MethodInvoker) delegate() { dgvProdutos[e.ColumnIndex, e.RowIndex].ReadOnly = false; dgvProdutos[e.ColumnIndex, e.RowIndex].Style.BackColor = Color.White; dgvProdutos.CurrentCell = dgvProdutos[e.ColumnIndex, e.RowIndex]; }); } } if (dgvProdutos.Columns[e.ColumnIndex].HeaderText.Equals("QUANTIDADE")) { try { PRODUTOSDataTable produtosdt = banco.SelectProduto(Convert.ToInt32(dgvProdutos["IdProduto", e.RowIndex].Value)); FORNECEDORESDataTable fornecedordt = banco.SelectFornecedor(Convert.ToInt32(produtosdt.Rows[0]["id_fornecedor_produto"])); Fornecedor fornecedor = new Fornecedor( Convert.ToInt32(fornecedordt.Rows[0]["id_fornecedor"]), Convert.ToString(fornecedordt.Rows[0]["nome_fornecedor"]), Convert.ToString(fornecedordt.Rows[0]["identidade_fornecedor"]), Convert.ToString(fornecedordt.Rows[0]["cep_fornecedor"]), Convert.ToString(fornecedordt.Rows[0]["rua_fornecedor"]), Convert.ToString(fornecedordt.Rows[0]["numero_fornecedor"]), Convert.ToString(fornecedordt.Rows[0]["bairro_fornecedor"]), Convert.ToString(fornecedordt.Rows[0]["cidade_fornecedor"]), Convert.ToString(fornecedordt.Rows[0]["estado_fornecedor"]), Convert.ToString(fornecedordt.Rows[0]["telefone_fornecedor"]), Convert.ToString(fornecedordt.Rows[0]["celular_fornecedor"]), Convert.ToString(fornecedordt.Rows[0]["email_fornecedor"]), Convert.ToString(fornecedordt.Rows[0]["obs_fornecedor"]), Convert.ToDateTime(fornecedordt.Rows[0]["data_info_fornecedor"]) ); Produto produto = new Produto( Convert.ToInt32(produtosdt.Rows[0]["id_produto"]), Convert.ToString(produtosdt.Rows[0]["nome_produto"]), fornecedor, Convert.ToDecimal(produtosdt.Rows[0]["valor_produto"]), Convert.ToDecimal(produtosdt.Rows[0]["quantidade_produto"]), produtosdt.Rows[0]["obs_produto"].ToString() ); ProdOper prodOper = new ProdOper(produto, Convert.ToDecimal(dgvProdutos[e.ColumnIndex, e.RowIndex].Value)); InsertDataProd(prodOper); ValorSet(); BeginInvoke((MethodInvoker) delegate() { dgvProdutos[e.ColumnIndex, e.RowIndex].Style.BackColor = Color.LightGray; dgvProdutos[e.ColumnIndex, e.RowIndex].ReadOnly = true; dgvProdutos.CurrentCell = dgvProdutos["IdProduto", dgvProdutos.NewRowIndex]; }); } catch (Exception ex) { MessageBox.Show(ex.Message); PRODUTOSDataTable prodsdt = banco.SelectProduto(Convert.ToInt32(dgvProdutos["IdProduto", e.RowIndex].Value)); dgvProdutos.CurrentCell.Value = prodsdt.Rows[0]["Quantidade_Produto"]; } } }