public List <RotinaDTO> GetRotinaModulo(string modulo) { try { dbCommand = db.GetStoredProcCommand("GetRotinaModulo"); db.AddInParameter(dbCommand, "Modulo", DbType.String, modulo); using (IDataReader DR = db.ExecuteReader(dbCommand)) { List <RotinaDTO> List = new List <RotinaDTO>(); while (DR.Read()) { RotinaDTO tab = new RotinaDTO(); tab.Id = int.Parse(DR["id"].ToString()); tab.Descricao = DR["descricao"].ToString(); tab.Nivel = DR["nivel"].ToString(); tab.Menu = bool.Parse(DR["menu"].ToString()); tab.Acesso = bool.Parse(DR["acesso"].ToString()); tab.Log = bool.Parse(DR["log"].ToString()); tab.Assembler = DR["assembler"].ToString(); tab.Classe = DR["classe"].ToString(); tab.Metodo = DR["metodo"].ToString(); tab.Ativaempresa = bool.Parse(DR["ativaempresa"].ToString()); tab.Acao = DR["acao"].ToString(); tab.Indiceimagem = int.Parse(DR["indiceimagem"].ToString()); List.Add(tab); } return(List); } } catch { throw; } }
/// <summary> /// Retorna um objeto RotinaDTO caso a instrução seja bem sucedida. /// </summary> public RotinaDTO GetRotina(int id) { try { dbCommand = db.GetStoredProcCommand("GetRotina"); db.AddInParameter(dbCommand, "@id", DbType.Int32, id); using (IDataReader DR = (Transaction == null ? db.ExecuteReader(dbCommand) : db.ExecuteReader(dbCommand, Transaction))) { DR.Read(); RotinaDTO tab = new RotinaDTO(); tab.Id = int.Parse(DR["id"].ToString()); tab.Indiceimagem = int.Parse(DR["indiceimagem"].ToString()); tab.Descricao = DR["descricao"].ToString(); tab.Nivel = DR["nivel"].ToString(); tab.Assembler = DR["assembler"].ToString(); tab.Classe = DR["classe"].ToString(); tab.Metodo = DR["metodo"].ToString(); tab.Ativaempresa = bool.Parse(DR["ativaempresa"].ToString()); tab.Acao = DR["acao"].ToString(); tab.Menu = bool.Parse(DR["menu"].ToString()); tab.Acesso = bool.Parse(DR["acesso"].ToString()); tab.Log = bool.Parse(DR["log"].ToString()); return(tab); } } catch { throw; } }
/// <summary> /// Retorna um tipo VERDADEIRO caso a instrução seja bem sucedida. /// </summary> public bool Update(RotinaDTO rotina) { try { return(regrasdados.Update(rotina)); } catch (Exception ex) { throw new FaultException(ex.Message); } }
/// <summary> /// Retorna o ID gerado pelo Banco de dados caso a instrução seja bem sucedida. /// </summary> public int Insert(RotinaDTO rotina) { try { return(regrasdados.Insert(rotina)); } catch (Exception ex) { throw new FaultException(ex.Message); } }
private void treeListClick(object sender, EventArgs e) { MouseEventArgs mouse = (MouseEventArgs)e; if (mouse.Button == MouseButtons.Right) { return; } TreeList treelist = (TreeList)sender; TreeListNode currentnode = treelist.FocusedNode; if (currentnode.Tag == null) { return; } RotinaDTO no = (RotinaDTO)currentnode.Tag; Cursor = Cursors.WaitCursor; this.ExecutarRotina(no); Cursor = Cursors.Default; }
private void ExecutarRotina(RotinaDTO rotina) { string metodo = rotina.Metodo; try { if (rotina.Metodo.Equals("")) { return; } // Não é possível chamar métodos da classe frmPrincipal if (rotina.Assembler.Equals("MechTech.UI") || rotina.Classe.Equals("frmPrincipal")) { if (rotina.Metodo.Equals("Close")) { this.Close(); } } //VERIFICA PERMISSÕES DE ACESSO //if (!ValidaAcesso(rotina.Id)) // return; //NÃO PERMITE ABRIR AVISOS ENQUANTO NÃO HOUVER EMPRESA ATIVA //if (rotina.Classe.Equals("frmAvisos")) //{ // if (File.Exists(Global.LocalPath + @"\Sistemas\MECHTECH\appConfig.xml")) //EXISTE EMPRESA ATIVA. // VerificaAvisos(); // else // { // MessageBox.Show("Para visualizar os avisos é necessário selecionar uma empresa.", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); // return; // } //} ////EXECUÇÃO DE MÓDULOS EXTERNOS //if (rotina.Classe.Equals("Modulos.exe")) //{ // Modulos(); // return; //} ////VERIFICA ACESSO (ÍTENS DA TREEVIEW) //if (rotina.Ativaempresa) //{ // if (Ativaempresa) // { // MessageBox.Show("Opção indisponível no momento. É necessário a seleção de uma empresa.", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Warning); // return; // } //} ////VERIFICA USUÁRIO MECHTECH PARA ACESSAR ROTINA DE MODULOS E PROGRAMAS //if (rotina.Metodo.Equals("ShowMP")) //{ // if (Global.UsuarioAtivo.ToString().ToUpper() != "MECHTECH") // { // MessageBox.Show("Acesso permitido somente para funcionários MECHTECH.", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); // return; // } // foreach (Form umform in Application.OpenForms) // { // if (umform.Text.Equals("Módulos e Programas")) // return; // } //} Assembly assembly = Assembly.Load(rotina.Assembler); Type classe = assembly.GetType(rotina.Assembler + "." + rotina.Classe); Object instancia; if (!rotina.Classe.Equals("frmLogin") && !rotina.Classe.Equals("frmSelecionaEmpresa") && !rotina.Classe.Equals("FinalMes")) //VERIFICAÇÃO NECESSÁRIA PARA QUE O FORM DE LOGIN/ SELEÇÃO DE EMPRESA/ FINAL DE MÊS TENHA AUTONOMIA PARA INVOCAR MÉTODOS DO FORM PRINCIPAL. { //ACESSO RESTRITO AO SUPERVISOR if (rotina.Classe.Equals("frmParametros") || rotina.Classe.Equals("frmImportacaoDados") || rotina.Classe.Equals("Forms.frmLog")) { if (!MechTech.Util.Global.Supervisor) { MessageBox.Show("Acesso restrito somente a usuários com permissão de Supervisor.", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } } /*REUTILIZAR FORMULÁRIOS ABERTOS*/ string classname = rotina.Classe; if (classname.Contains("Forms.")) { classname = classname.Replace("Forms.", string.Empty); } try { bool isopened = false; if (rotina.Metodo.Equals("ShowH")) { foreach (Form umformopened in Application.OpenForms) { if (umformopened.Text.Equals("Digitação de Holerith")) { if (umformopened.Enabled) { umformopened.BringToFront(); } else { MessageBox.Show("Já existe uma tela de " + umformopened.Text + " em uso por outro processo.", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Information); } isopened = true; break; } } } else if (rotina.Metodo.Equals("ShowF")) { foreach (Form umformopened in Application.OpenForms) { if (umformopened.Text.Equals("Férias Individualizada")) { if (umformopened.Enabled) { umformopened.BringToFront(); } else { MessageBox.Show("Já existe uma tela de " + umformopened.Text + " em uso por outro processo.", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Information); } isopened = true; break; } } } else if (rotina.Metodo.Equals("ShowR")) { foreach (Form umformopened in Application.OpenForms) { if (umformopened.Text.Equals("Rescisão Individualizada")) { if (umformopened.Enabled) { umformopened.BringToFront(); } else { MessageBox.Show("Já existe uma tela de " + umformopened.Text + " em uso por outro processo.", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Information); } isopened = true; break; } } } else if (rotina.Metodo.Equals("ShowMP")) { foreach (Form umformopened in Application.OpenForms) { if (umformopened.Text.Equals("Módulos e Programas")) { if (umformopened.Enabled) { umformopened.BringToFront(); } else { MessageBox.Show("Já existe uma tela de " + umformopened.Text + " em uso por outro processo.", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Information); } isopened = true; break; } } } else if (rotina.Metodo.Equals("ShowCM")) { foreach (Form umformopened in Application.OpenForms) { if (umformopened.Text.Equals("Circulares MECHTECH")) { if (umformopened.Enabled) { umformopened.BringToFront(); } else { MessageBox.Show("Já existe uma tela de " + umformopened.Text + " em uso por outro processo.", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Information); } isopened = true; break; } } } else { Form formopened = Application.OpenForms[classname]; if (formopened.Enabled) { formopened.BringToFront(); isopened = true; } else { MessageBox.Show("Já existe uma tela de " + formopened.Text + " em uso por outro processo.", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Information); isopened = true; } } if (isopened) { return; } } catch { } /**/ instancia = classe.InvokeMember(null, BindingFlags.CreateInstance, null, null, null); } else { instancia = classe.InvokeMember(null, BindingFlags.CreateInstance, null, null, new object[] { this }); } if (rotina.Metodo.Equals("Show")) { classe.InvokeMember("MdiParent", BindingFlags.SetProperty, null, instancia, new object[] { this }); } classe.InvokeMember(rotina.Metodo, BindingFlags.InvokeMethod, null, instancia, null); rotina.Metodo = metodo; //CARREGAR EMPRESA ATIVA //if (rotina.Classe.Equals("frmSelecionaEmpresa")) //{ // if (DialogResult != DialogResult.Cancel) // { // if (File.Exists(Global.LocalPath + @"\Sistemas\MECHTECH\appConfig.xml")) //EXISTE EMPRESA ATIVA. // { // empresa = new EmpresaDTO().Deserializar(); // VerificaAvisos(); // dialogResult = DialogResult.Cancel; // } // } //} } catch { //if (rotina.Metodo.Equals("Start")) // SuporteASSIST(); //if (rotina.Metodo.Equals("Open")) // SuporteConnect(); } }
/// <summary> /// Retorna o ID gerado pelo Banco de dados caso a instrução seja bem sucedida. /// </summary> public int Insert(RotinaDTO rotina) { DbConnection connection = null; bool transactionstart = false; try { using (connection = db.CreateConnection()) { connection.Open(); if (Transaction == null) { Transaction = connection.BeginTransaction(IsolationLevel.ReadCommitted); transactionstart = true; db.ExecuteNonQuery(Transaction, CommandType.Text, "SELECT GravaLOG_App(11, 'Inserindo registro','" + MechTech.Util.Global.UsuarioAtivo + "');"); } dbCommand = db.GetSqlStringCommand(" INSERT INTO public.rotina(" + " indiceimagem," + " descricao," + " nivel," + " assembler," + " classe," + " metodo," + " ativaempresa," + " acao," + " menu," + " acesso," + " log" + ") VALUES (" + " @indiceimagem," + " @descricao," + " @nivel," + " @assembler," + " @classe," + " @metodo," + " @ativaempresa," + " @acao," + " @menu," + " @acesso," + " @log);" + " SELECT currval('rotina_id_seq');"); db.AddInParameter(dbCommand, "@indiceimagem", DbType.Int32, rotina.Indiceimagem); db.AddInParameter(dbCommand, "@descricao", DbType.String, rotina.Descricao); db.AddInParameter(dbCommand, "@nivel", DbType.String, rotina.Nivel); db.AddInParameter(dbCommand, "@assembler", DbType.String, rotina.Assembler); db.AddInParameter(dbCommand, "@classe", DbType.String, rotina.Classe); db.AddInParameter(dbCommand, "@metodo", DbType.String, rotina.Metodo); db.AddInParameter(dbCommand, "@ativaempresa", DbType.Boolean, rotina.Ativaempresa); db.AddInParameter(dbCommand, "@acao", DbType.String, rotina.Acao); db.AddInParameter(dbCommand, "@menu", DbType.Boolean, rotina.Menu); db.AddInParameter(dbCommand, "@acesso", DbType.Boolean, rotina.Acesso); db.AddInParameter(dbCommand, "@log", DbType.Boolean, rotina.Log); int id = Convert.ToInt32(db.ExecuteScalar(dbCommand, Transaction)); if (transactionstart) { Transaction.Commit(); Transaction = null; } connection.Close(); return(id); } } catch { if (transactionstart) { if (Transaction.Connection.State == ConnectionState.Open) { Transaction.Rollback(); } Transaction = null; } if (connection.State == ConnectionState.Open) { connection.Close(); } throw; } }
/// <summary> /// Retorna um tipo VERDADEIRO caso a instrução seja bem sucedida. /// </summary> public bool Update(RotinaDTO rotina) { DbConnection connection = null; bool transactionstart = false; try { using (connection = db.CreateConnection()) { connection.Open(); if (Transaction == null) { Transaction = connection.BeginTransaction(IsolationLevel.ReadCommitted); transactionstart = true; db.ExecuteNonQuery(Transaction, CommandType.Text, "SELECT GravaLOG_App(12, 'Atualizando registro','" + MechTech.Util.Global.UsuarioAtivo + "');"); } dbCommand = db.GetSqlStringCommand(" UPDATE public.rotina SET" + " indiceimagem = @indiceimagem," + " descricao = @descricao," + " nivel = @nivel," + " assembler = @assembler," + " classe = @classe," + " metodo = @metodo," + " ativaempresa = @ativaempresa," + " acao = @acao," + " menu = @menu," + " acesso = @acesso," + " log = @log" + " WHERE" + " id = @id"); db.AddInParameter(dbCommand, "@id", DbType.Int32, rotina.Id); db.AddInParameter(dbCommand, "@indiceimagem", DbType.Int32, rotina.Indiceimagem); db.AddInParameter(dbCommand, "@descricao", DbType.String, rotina.Descricao); db.AddInParameter(dbCommand, "@nivel", DbType.String, rotina.Nivel); db.AddInParameter(dbCommand, "@assembler", DbType.String, rotina.Assembler); db.AddInParameter(dbCommand, "@classe", DbType.String, rotina.Classe); db.AddInParameter(dbCommand, "@metodo", DbType.String, rotina.Metodo); db.AddInParameter(dbCommand, "@ativaempresa", DbType.Boolean, rotina.Ativaempresa); db.AddInParameter(dbCommand, "@acao", DbType.String, rotina.Acao); db.AddInParameter(dbCommand, "@menu", DbType.Boolean, rotina.Menu); db.AddInParameter(dbCommand, "@acesso", DbType.Boolean, rotina.Acesso); db.AddInParameter(dbCommand, "@log", DbType.Boolean, rotina.Log); db.ExecuteNonQuery(dbCommand, Transaction); if (transactionstart) { Transaction.Commit(); Transaction = null; } connection.Close(); return(true); } } catch { if (transactionstart) { if (Transaction.Connection.State == ConnectionState.Open) { Transaction.Rollback(); } Transaction = null; } if (connection.State == ConnectionState.Open) { connection.Close(); } throw; } }