Ejemplo n.º 1
0
        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;
                }
            }
        }