/// <summary> /// Grava uma Categoria de Conta /// </summary> /// <param name="categoria">obj categoria com descricao valida</param> /// <param name="notificacao">notificacoes de erro ou sucesso</param> /// <returns>verdadeiro se não houver erros</returns> public bool Gravar(Categoria categoria, out Notificacao notificacao) { bool cadastro = categoria.Id == 0; categoria.Descricao = categoria.Descricao.ToUpper().Trim();//maiuscula sem espacos padrao! if (string.IsNullOrEmpty(categoria.Descricao)) { notificacao = new Notificacao("Descrição inválida, informe uma descrição valida para gravar", 'e'); return false; } if (categoria.Descricao.Length < 3) { notificacao = new Notificacao("Descrição inválida, a descrição deve conter pelo menos 3 caracteres", 'e'); return false; } if (!(cadastro ? new CategoriaProdutoBD().Inserir(categoria) : new CategoriaProdutoBD().Atualizar(categoria))) { if (cadastro && categoria.Id > 0) notificacao = new Notificacao("Categoria já está cadastrada", 'a'); else { notificacao = new Notificacao("Erro de banco de dados, notifique o administrador", 'e'); } return false; } notificacao = cadastro ? new Notificacao("Categoria cadastrada com Sucesso", 's') : new Notificacao("Categoria atualizada com Sucesso", 's'); return true; }
/// <summary> /// Exclui fisica/logicamente uma Categoria de Conta no Banco de Dados /// </summary> /// <param name="categoria">Obj categoria com Descricao</param> /// <returns>verdadeiro em caso de sucesso</returns> public bool Excluir(Categoria categoria) { _bd = new Persistencia(); try { _bd.Cmd.CommandText = @"delete from CategoriasConta where id = @id"; _bd.Cmd.Parameters.AddWithValue("@id", categoria.Id); _bd.ExecuteNonQuery();// se a categoria estiver em uso ela é desativada } catch (Exception) { //se nao excluir faz exclusao logica try { _bd.Cmd.Parameters.Clear(); _bd.Cmd.CommandText = @"UPDATE CategoriasConta SET excluida = @value WHERE id = @id"; _bd.Cmd.Parameters.AddWithValue("@value", 1); _bd.ExecuteNonQuery(); } catch (Exception) { return false; } } //se excluiu ou desativou =sucesso return true; }
//construtor para lancar uma conta e repetir public ContaContabilidade(int id, bool pagar, string descricao, string notaFiscal, DateTime emissao, Pessoa pessoa, Categoria categoria) { _id = id; _pagar = pagar; _descricao = descricao; _notaFiscal = notaFiscal; _emissao = emissao; _pessoa = pessoa; _categoria = categoria; }
/// <summary> /// Exclui uma Categoria de Produto /// </summary> /// <param name="categoria">obj categoria com id valida</param> /// <param name="notificacao">notificacoes de erro ou sucesso</param> /// <returns>verdadeiro se não houver erros</returns> public bool Excluir(Categoria categoria, out Notificacao notificacao) { if (categoria.Id <= 0) { notificacao = new Notificacao("Não foi possivel identificar o codigo da Categoria a ser excluida", 'e'); return false; } if (new CategoriaProdutoBD().Excluir(categoria)) { notificacao = new Notificacao("Categoria excluida com Sucesso", 's'); return true; } notificacao = new Notificacao("Não foi possivel excluir a categoria informada, tente novamente, se o erro persistir contate o adminsitrador", 'e'); return false; }
//construtor para recuperar varios lançamentos BD public ContaContabilidade(int id, bool pagar, Categoria categoria, DateTime emissao, DateTime vencimento, string descricao, decimal valor, string notaFiscal, CompraVenda compraVenda, decimal descontos, decimal juros, decimal valorQuitado, Pessoa pessoa) { _id = id; _pagar = pagar; _categoria = categoria; _emissao = emissao; _vencimento = vencimento; _descricao = descricao; _valor = valor; _notaFiscal = notaFiscal; _compraVenda = compraVenda; _descontos = descontos; _juros = juros; _valorQuitado = valorQuitado; Pessoa = pessoa; }
/// <summary> /// Atualiza uma Categoria de Conta no Banco de Dados /// </summary> /// <param name="categoria">Obj categoria com Descricao</param> /// <returns>verdadeiro em caso de sucesso</returns> public bool Atualizar(Categoria categoria) { _bd = new Persistencia(); try { _bd.Cmd.CommandText = @"UPDATE categoriasConta SET descricao = @descricao WHERE id = @id"; _bd.Cmd.Parameters.AddWithValue("@descricao", categoria.Descricao); _bd.Cmd.Parameters.AddWithValue("@id", categoria.Id); if (!(_bd.ExecuteNonQuery() > 0)) { return false; } } catch (Exception) { return false; } return true; }
public void BtnOpcoes(object sender, CommandEventArgs e) { switch (e.CommandName) { case "trocarTipo": { tipoCategoria.Value = tipoCategoria.Value == "p" ? "c" : "p"; LimparCampos(); ListarCategorias(); } break; case "gravar": { Notificacao notificacao; var categoria = new Categoria(Convert.ToInt32(categoriaId.Value), ttbnDescricao.Text); bool gravou = tipoCategoria.Value == "p" ? new CategoriaProdutoCtrl().Gravar(categoria, out notificacao) : new CategoriaContaCtrl().Gravar(categoria, out notificacao); notificacoes.Add(notificacao); if (gravou) { LimparCampos(); ListarCategorias(); } else {//só lista sem atualizar a lista de categorias ((Sistema)Master).ExibirNotificacoes(notificacoes); } } break; case "cancelar": { LimparCampos(); ListarCategorias(); } break; case "remover": { Notificacao notificacao; var categoria = new Categoria(Convert.ToInt32(categoriaId.Value)); bool excluiu = tipoCategoria.Value == "p" ? new CategoriaProdutoCtrl().Excluir(categoria, out notificacao) : new CategoriaContaCtrl().Excluir(categoria, out notificacao); notificacoes.Add(notificacao); if (excluiu) { LimparCampos();//zera id e limpa caso o amado usuário tenha solicitado edicao antes de excluir a categoria... ListarCategorias(); } else ((Sistema)Master).ExibirNotificacoes(notificacoes); } break; case "editar": { Notificacao notificacao; var categoria = new Categoria(Convert.ToInt32(e.CommandArgument)); bool recuperou = tipoCategoria.Value == "p" ? new CategoriaProdutoCtrl().Recuperar(categoria, out notificacao) : new CategoriaContaCtrl().Recuperar(categoria, out notificacao); if (recuperou) { btnCancelar.Visible = true; categoriaId.Value = categoria.Id.ToString();//salva a id em edicao ttbnDescricao.Text = categoria.Descricao;//exibe descricao selecionada } else {//informa o erro notificacoes.Add(notificacao); } ListarCategorias(); } break; } }
public Produto(int id, string descricao, Categoria categoria) { _id = id; Descricao = descricao; _categoria = categoria; }
/// <summary> /// Recupera uma Categoria de Produto /// </summary> /// <param name="categoria">obj categoria com id valida</param> /// <param name="notificacao">notificacoes de erro ou sucesso</param> /// <returns>verdadeiro se não houver erros</returns> public bool Recuperar(Categoria categoria, out Notificacao notificacao) { if (categoria.Id <= 0) { notificacao = new Notificacao("Não foi possivel identificar o codigo da categoria a ser recuperado", 'e'); return false; } if (!new CategoriaProdutoBD().Recuperar(categoria)) { notificacao = new Notificacao("Não foi possivel recuperar a Categoria, Erro no Banco de Dados", 'e'); return false; } notificacao = new Notificacao("Categoria recuperada com sucesso", 's'); return true; }
/// <summary> /// Recupera uma Categoria de Conta no Banco de Dados /// </summary> /// <param name="categoria">Obj categoria com Descricao</param> /// <returns>verdadeiro em caso de sucesso</returns> public bool Recuperar(Categoria categoria) { _bd = new Persistencia(); try { _bd.Cmd.CommandText = @"select c.descricao from categoriasConta c where c.id = @id"; _bd.Cmd.Parameters.AddWithValue("@id", categoria.Id); DataTable dado = _bd.ExecuteReader(); categoria.Descricao = dado.Rows[0]["descricao"].ToString(); } catch { return false; } return true; }
/// <summary> /// Insere uma Categoria de Conta no Banco de dados /// </summary> /// <param name="categoria">Obj categoria com Descricao</param> /// <returns>verdadeiro em caso de sucesso</returns> public bool Inserir(Categoria categoria) { _bd = new Persistencia(); try { _bd.Cmd.CommandText = @"INSERT INTO `CategoriasConta` (`descricao`) VALUES (@descricao)"; _bd.Cmd.Parameters.AddWithValue("@descricao", categoria.Descricao); if (_bd.ExecuteNonQuery() <= 0)//descricao repetidas causam erros de UNIQUEKEY, zero linhas, ninguem foi inserido! return false; return true; } catch (Exception) { //faz ativacao logica try { _bd.Cmd.CommandText = @"select excluida from CategoriasConta where descricao = @descricao"; //se a categoria existir e estiver desativada ele reativa e informa inserido com sucesso if (Convert.ToInt32(_bd.ExecuteScalar()) == 1) { _bd.Cmd.CommandText = @"UPDATE CategoriasConta SET excluida = @value WHERE descricao = @descricao; select id from CategoriasConta where descricao = @descricao"; _bd.Cmd.Parameters.AddWithValue("@value", 0);//ativo categoria.Id = Convert.ToInt32(_bd.ExecuteScalar());//recupera id return true; } _bd.Cmd.CommandText = @"select id from CategoriasConta where descricao = @descricao"; categoria.Id = Convert.ToInt32(_bd.ExecuteScalar());//recupera id return false;//se ja estiver ativa retorna falso! } catch (Exception) { return false;//erro de banco de dados! } } }