// UPDATE //------------------------------------------------------------------------------------------------------------ public bool UpdateFuncao(objFuncao func) { AcessoDados db = null; try { db = new AcessoDados(_DBPath); db.BeginTransaction(); //--- check duplicated MEMBRO //------------------------------------------------------------------------------------------------------------ db.LimparParametros(); db.AdicionarParametros("@Funcao", func.Funcao); db.AdicionarParametros("@IDFuncao", func.IDFuncao); db.ConvertNullParams(); //--- create and execute query string query = "SELECT * FROM tblFuncao WHERE Funcao = @Funcao AND IDFuncao <> @IDFuncao"; DataTable dt = db.ExecutarConsulta(CommandType.Text, query); if (dt.Rows.Count > 0) { throw new AppException("Já existe uma Função cadastrada que possui o mesmo nome..."); } //--- UPDATE //------------------------------------------------------------------------------------------------------------//--- clear Params db.LimparParametros(); //--- define Params db.AdicionarParametros("@Funcao", func.Funcao); db.AdicionarParametros("@Ativo", func.Ativo); db.AdicionarParametros("@Posicao", func.Posicao); db.AdicionarParametros("@IDFuncao", func.IDFuncao); //--- convert null parameters db.ConvertNullParams(); //--- create query query = db.CreateUpdateSQL("tblFuncao", "@IDFuncao"); //--- update db.ExecutarManipulacao(CommandType.Text, query); db.CommitTransaction(); return(true); } catch (OleDbException ex) { //--- ROLLBACK db.RollBackTransaction(); throw new AppException(ex.Message); } catch (Exception ex) { //--- ROLLBACK db.RollBackTransaction(); throw ex; } }
private void btnDescer_Click(object sender, EventArgs e) { if (dgvListagem.Rows.Count == 0) { return; } if (dgvListagem.SelectedCells.Count == 0) { AbrirDialog("Selecione uma Função para alterar a posição...", ""); return; } objFuncao funcao = (objFuncao)dgvListagem.SelectedCells[0].OwningRow.DataBoundItem; //--- get max posicao var maxPos = list.Max(x => x.Posicao); if (funcao.Posicao == maxPos) { return; } //--- get the old Funcao with posicao int selIndex = list.IndexOf((classFuncao)funcao); var oldFuncaoPos = list[selIndex + 1]; //--- change alternate positions oldFuncaoPos.Posicao -= 1; funcao.Posicao += 1; try { // --- Ampulheta ON Cursor.Current = Cursors.WaitCursor; fBLL.UpdateFuncao(oldFuncaoPos); fBLL.UpdateFuncao(funcao); ObterDados(); dgvListagem.CurrentCell = dgvListagem.Rows[funcao.Posicao - 1].Cells[1]; } catch (Exception ex) { AbrirDialog("Uma exceção ocorreu ao Sublevar a posição da Função..." + "\n" + ex.Message, "Exceção", DialogType.OK, DialogIcon.Exclamation); } finally { // --- Ampulheta OFF Cursor.Current = Cursors.Default; } }
private void AtivarDesativar_Click(object sender, EventArgs e) { //--- verifica se existe alguma cell if (dgvListagem.SelectedCells.Count == 0) { return; } //--- Verifica o item objFuncao funcao = (objFuncao)dgvListagem.SelectedCells[0].OwningRow.DataBoundItem; //---pergunta ao usuário var reponse = AbrirDialog($"Deseja realmente {(funcao.Ativo ? "DESATIVAR " : "ATIVAR")} essa Função?\n" + funcao.Funcao.ToUpper(), (funcao.Ativo ? "DESATIVAR " : "ATIVAR"), DialogType.SIM_NAO, DialogIcon.Question); if (reponse == DialogResult.No) { return; } //--- altera o valor funcao.Ativo = !funcao.Ativo; //--- Salvar o Registro try { // --- Ampulheta ON Cursor.Current = Cursors.WaitCursor; fBLL.UpdateFuncao(funcao); //--- altera a imagem dgvListagem.Refresh(); } catch (Exception ex) { AbrirDialog("Uma exceção ocorreu ao Alterar o registro da Função..." + "\n" + ex.Message, "Exceção", DialogType.OK, DialogIcon.Exclamation); } finally { // --- Ampulheta OFF Cursor.Current = Cursors.Default; } }
private void mnuExcluir_Click(object sender, EventArgs e) { //--- verifica se existe alguma cell if (dgvListagem.SelectedCells.Count == 0) { return; } //--- Verifica o item objFuncao funcao = (objFuncao)dgvListagem.SelectedCells[0].OwningRow.DataBoundItem; //---pergunta ao usuário var reponse = AbrirDialog($"Deseja realmente EXCLUIR definitivamente essa Função?\n" + funcao.Funcao.ToUpper(), "Excluir", DialogType.SIM_NAO, DialogIcon.Question); if (reponse == DialogResult.No) { return; } //--- Salvar o Registro try { // --- Ampulheta ON Cursor.Current = Cursors.WaitCursor; fBLL.DeleteFuncao(funcao); //--- altera a imagem ObterDados(); } catch (Exception ex) { AbrirDialog("Uma exceção ocorreu ao Excluir o registro da Função..." + "\n" + ex.Message, "Exceção", DialogType.OK, DialogIcon.Exclamation); } finally { // --- Ampulheta OFF Cursor.Current = Cursors.Default; } }
// GET LIST OF FUNCAO //------------------------------------------------------------------------------------------------------------ public List <objFuncao> GetListFuncao() { try { AcessoDados db = new AcessoDados(_DBPath); string query = "SELECT * FROM tblFuncao"; // add params db.LimparParametros(); query += " ORDER BY Posicao"; List <objFuncao> listagem = new List <objFuncao>(); DataTable dt = db.ExecutarConsulta(CommandType.Text, query); if (dt.Rows.Count == 0) { return(listagem); } foreach (DataRow row in dt.Rows) { objFuncao obj = new objFuncao(); obj.IDFuncao = (byte)row["IDFuncao"]; obj.Funcao = (string)row["Funcao"]; obj.ImagemCartaoFrente = row["ImagemCartaoFrente"] == DBNull.Value ? string.Empty : (string)row["ImagemCartaoFrente"]; obj.ImagemCartaoVerso = row["ImagemCartaoVerso"] == DBNull.Value ? string.Empty : (string)row["ImagemCartaoVerso"]; obj.Ativo = (bool)row["Ativo"]; obj.Posicao = (byte)row["Posicao"]; listagem.Add(obj); } return(listagem); } catch (Exception ex) { throw ex; } }
//================================================================================================= // TOOLSTRIP MENU //================================================================================================= #region ATIVAR DESATIVAR MENU private void dgvListagem_MouseDown(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Right) { Control c = (Control)sender; DataGridView.HitTestInfo hit = dgvListagem.HitTest(e.X, e.Y); dgvListagem.ClearSelection(); //---VERIFICAÇÕES NECESSARIAS if (hit.Type != DataGridViewHitTestType.Cell) { return; } // seleciona o ROW dgvListagem.Rows[hit.RowIndex].Cells[1].Selected = true; dgvListagem.Rows[hit.RowIndex].Selected = true; // mostra o MENU ativar e desativar if (dgvListagem.Columns[hit.ColumnIndex].Name == "Ativo") { objFuncao congregacao = (objFuncao)dgvListagem.Rows[hit.RowIndex].DataBoundItem; if (congregacao.Ativo == true) { mnuAtivar.Enabled = false; mnuDesativar.Enabled = true; } else { mnuAtivar.Enabled = true; mnuDesativar.Enabled = false; } // revela menu MenuListagem.Show(c.PointToScreen(e.Location)); } } }
//--- INSERE NOVO ITEM NO TBL Funcao public void ItemAlterar(objFuncao funcao) { try { //--- Ampulheta ON Cursor = Cursors.WaitCursor; fBLL.UpdateFuncao(funcao); } catch (Exception ex) { MessageBox.Show("Ocorreu uma exceção ao atualizar a Função/n" + ex.Message, "Exceção", MessageBoxButtons.OK, MessageBoxIcon.Error); throw ex; } finally { //--- Ampulheta OFF Cursor = Cursors.Default; } }
// CONTROL IMAGES OF LIST DATAGRID //------------------------------------------------------------------------------------------------------------ private void dgvListagem_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) { if (e.ColumnIndex == clnImage.Index) { objFuncao item = (objFuncao)dgvListagem.Rows[e.RowIndex].DataBoundItem; if (item.IDFuncao == null) { e.Value = ImgNew; } else { if (item.Ativo) { e.Value = ImgAtivo; } else { e.Value = ImgInativo; } } } }
//--- INSERE NOVO ITEM NO TBL congregacao public byte ItemInserir(objFuncao funcao) { try { //--- Ampulheta ON Cursor = Cursors.WaitCursor; byte newID = fBLL.InsertFuncao(funcao); funcao.IDFuncao = newID; return(newID); } catch (Exception ex) { MessageBox.Show("Ocorreu uma exceção ao inserir uma nova Função\n" + ex.Message, "Exceção", MessageBoxButtons.OK, MessageBoxIcon.Error); throw ex; } finally { //--- Ampulheta OFF Cursor = Cursors.Default; } }
// INSERT //------------------------------------------------------------------------------------------------------------ public byte InsertFuncao(objFuncao func) { AcessoDados db = null; try { db = new AcessoDados(_DBPath); db.BeginTransaction(); //--- check duplicated Funcao //------------------------------------------------------------------------------------------------------------ db.LimparParametros(); db.AdicionarParametros("@Funcao", func.Funcao.ToLower()); db.ConvertNullParams(); //--- create and execute query string query = "SELECT * FROM tblFuncao WHERE LCase(Funcao) = @Funcao"; DataTable dt = db.ExecutarConsulta(CommandType.Text, query); if (dt.Rows.Count > 0) { throw new AppException("Já existe uma Funcao cadastrada que possui o mesmo nome..."); } // GET POSITION FROM COUNT TO //------------------------------------------------------------------------------------------------------------ db.LimparParametros(); //--- Create NewID = MaxID + 1 int newPosition = 0; //--- create and execute query query = "SELECT COUNT(*) AS Total FROM tblFuncao"; dt = db.ExecutarConsulta(CommandType.Text, query); if (dt.Rows.Count == 0) { throw new AppException("Houve uma exceção ao obter o número de registros..."); } else { newPosition = (int)dt.Rows[0][0]; newPosition += 1; } //--- GET LAST/MAX ID FUNCAO //------------------------------------------------------------------------------------------------------------ db.LimparParametros(); db.AdicionarParametros("@IDFuncao", func.IDFuncao); db.ConvertNullParams(); //--- Create NewID = MaxID + 1 int newID = 0; //--- create and execute query query = "SELECT MAX(IDFuncao) AS ID FROM tblFuncao"; dt = db.ExecutarConsulta(CommandType.Text, query); if (dt.Rows.Count == 0) { newID = 1; } else { newID = (int)dt.Rows[0][0]; newID += 1; } // INSERT NEW FUNCAO //------------------------------------------------------------------------------------------------------------ db.LimparParametros(); //--- define Params db.AdicionarParametros("@IDFuncao", newID); db.AdicionarParametros("@Funcao", func.Funcao); db.AdicionarParametros("@Ativo", true); db.AdicionarParametros("@Posicao", newPosition); //--- convert null parameters db.ConvertNullParams(); //--- create query query = db.CreateInsertSQL("tblFuncao"); //--- insert db.ExecutarManipulacao(CommandType.Text, query); //--- COMMIT and RETURN db.CommitTransaction(); return((byte)newID); } catch (OleDbException ex) { //--- ROLLBACK db.RollBackTransaction(); throw new AppException(ex.Message); } catch (Exception ex) { //--- ROLLBACK db.RollBackTransaction(); throw ex; } }
// DELETE //------------------------------------------------------------------------------------------------------------ public bool DeleteFuncao(objFuncao func) { AcessoDados db = null; try { db = new AcessoDados(_DBPath); db.BeginTransaction(); //--- check IF used FUNCAO //------------------------------------------------------------------------------------------------------------ db.LimparParametros(); db.AdicionarParametros("@IDFuncao", func.IDFuncao); db.ConvertNullParams(); //--- create and execute query string query = "SELECT Count(*) AS Total FROM tblMembro WHERE IDFuncao = @IDFuncao"; DataTable dt = db.ExecutarConsulta(CommandType.Text, query); if (dt.Rows.Count == 0) { throw new AppException("Houve uma exceção ao acessar o Banco de Dados..."); } else { int Total = (int)dt.Rows[0][0]; if (Total > 0) { throw new AppException("Existem registros associados a essa função...\n" + "Favor alterar os registros associados para outra função antes de excluir."); } } //--- DELETE //------------------------------------------------------------------------------------------------------------//--- clear Params db.LimparParametros(); //--- define Params db.AdicionarParametros("@IDFuncao", func.IDFuncao); //--- convert null parameters db.ConvertNullParams(); //--- create query query = "DELETE * FROM tblFuncao WHERE IDFuncao = @IDFuncao"; //--- update db.ExecutarManipulacao(CommandType.Text, query); db.CommitTransaction(); // UPDATE POSICAO //------------------------------------------------------------------------------------------------------------ List <objFuncao> list = GetListFuncao(); byte i = 1; foreach (var funcao in list) { if (funcao.Posicao != i) { funcao.Posicao = i; UpdateFuncao(funcao); } i += 1; } return(true); } catch (OleDbException ex) { //--- ROLLBACK db.RollBackTransaction(); throw new AppException(ex.Message); } catch (Exception ex) { //--- ROLLBACK db.RollBackTransaction(); throw ex; } }