private void btnSalvar_Click(object sender, EventArgs e) { errorProvider.Clear(); int codigoProdutoBackup = produtoControle.entidade.id; if (Sistema.campoIsNull(txbNome.Text)) { errorProvider.SetError(txbNome, "Informe o nome do produto"); return; } if (Sistema.campoIsNull(txbDescricao.Text)) { errorProvider.SetError(txbDescricao, "Informe algum detalhe do produto"); return; } if (Sistema.numeroInvalido(Convert.ToString(numPreco.Value))) { errorProvider.SetError(numPreco, "Informe o preço do produto"); return; } try { produtoControle.entidade.nome = txbNome.Text; produtoControle.entidade.descricao = txbDescricao.Text; produtoControle.entidade.preco = Convert.ToDouble(numPreco.Value); produtoControle.entidade.validade = validade.Value; produtoControle.entidade.quantidadeEstoque = Convert.ToInt32(numQuantidade.Value); if (produtoControle.entidade.id <= 0) { historicoControle.entidade.buildValues(produtoControle.salvarRetornandoEntidadeNova(produtoControle.entidade)); historicoControle.salvar(historicoControle.entidade); } else { produtoControle.editar(produtoControle.entidade); QuantidadeAlterada.quantidadeAntiga = produtoControle.entidade.quantidadeEstoque; if (QuantidadeAlterada.isAlterado()) { historicoControle.entidade.buildValues(produtoControle.entidade); historicoControle.salvar(historicoControle.entidade); } } lblMensagem.Visible = true; lblMensagem.Text = "Produto salvo com sucesso!"; lblMensagem.BackColor = Color.GreenYellow; limparCampos(); carregarRegistros(); } catch (Exception ex) { produtoControle.entidade.id = codigoProdutoBackup; lblMensagem.Visible = true; lblMensagem.Text = "Erro ao salvar produto: " + ex.Message; lblMensagem.BackColor = Color.LightCoral; } }