示例#1
0
 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;
     }
 }
示例#2
0
        /// <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;
            }
        }
示例#3
0
 /// <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);
     }
 }
示例#4
0
 /// <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);
     }
 }
示例#5
0
        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;
        }
示例#6
0
        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();
            }
        }
示例#7
0
        /// <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;
            }
        }
示例#8
0
        /// <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;
            }
        }