private void Salva() { if (!editando) { return; } bool ok = false; if (tbCodigo.Text.Length <= 0) { if (MessageBox.Show("Código em branco, deseja gerar um código automaticamente?", "Aviso", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.No) { return; } tbCodigo.Text = itemDAO.BuscaProxCodigoDisponivel().ToString(); ok = false; } if (item == null) { item = new Item(); } item.ItemID = int.Parse(tbCodigo.Text); item.CodigoInterno = tbCodigoInterno.Text; item.Descricao = tbDescricao.Text; item.DescCompra = tbDescricaoDeCompra.Text; item.Referencia = tbReferencia.Text; item.TipoItem = rbProduto.Checked ? "P" : "S"; item.Quantidade = dbQuantidade.Valor; item.Custo = 0; item.ValorEntrada = dbValorEntrada.Valor; item.ValorUnitario = dbPrecoVenda.Valor; item.Estoquenecessario = dbEstoqueNecessario.Valor; item.Unimedida = buscaUnimedidaItem.unimedida; item.SubGrupoItem = buscaSubGrupoItem.subgrupoItem; var controls = (ControlCollection)this.Controls; if (item.CodigoInterno.Length > 0 && item.Referencia.Length > 0) { var itemIgual = itemDAO.ChecaSeExistemItemIgual(item.CodigoInterno, item.Referencia); if (itemIgual != null && itemIgual != item.ItemID.ToString()) { MessageBox.Show($"Já existe item com código interno e referência iguais! \n Item: {itemIgual}", "Problema ao salvar", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } } ok = validacao.ValidarEntidade(item, controls); if (ok) { validacao.despintarCampos(controls); int resultado = itemDAO.SalvaOuAtualiza(item); if (resultado == 0) { MessageBox.Show("Problema ao salvar o registro", "Problema ao salvar", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } else if (resultado == 1) { if (rbDesiNao.Checked) { desintegracaoDAO.RemoverDesintegracao(item.ItemID); } gbDesintegracao.Enabled = true; itemdesintegrar = item; tbAjuda.Text = "Dados salvos com sucesso"; Editando(false); return; } else if (resultado == 2) { if (rbDesiNao.Checked) { desintegracaoDAO.RemoverDesintegracao(item.ItemID); } tbAjuda.Text = "Dados atualizados com sucesso"; Editando(false); return; } } }