Exemplo n.º 1
0
        /// <summary>
        /// Método para editar funcionário via GUI
        /// </summary>
        private void EditEmploye()
        {
            //Verificando se campos estão preenchidos
            if (IsValidFields())
            {
                string cpf = cpfEdit.Text.Replace(".", "").Replace("-", "").Replace("_", ".");
                string cep = cepEdit.Text.Replace("-", "").Replace("_", "");
                if (Validator.IsCpf(cpf))    //Validando documentos
                {
                    try {
                        //Recuperando dados do funcionário
                        ComboBoxItem selected = cbState.Items[cbState.SelectedIndex] as ComboBoxItem;
                        aux.adress.street       = AdressEdit.Text;
                        aux.adress.city         = CityEdit.Text;
                        aux.adress.neighborhood = NeighboorhoodEdit.Text;
                        aux.adress.number       = NumberEdit.Text;
                        aux.adress.UF           = selected.Content.ToString();
                        aux.adress.CEP          = cep;
                        aux.name      = NameEdit.Text;
                        aux.cpf       = cpf;
                        aux.admission = admissionEdit.Text;
                        aux.job       = RoleEdit.Text;
                        if (cbActive.SelectedIndex == 1)
                        {
                            aux.Inactivate();
                        }
                        else
                        {
                            aux.Activate();
                        }
                        if (cbHasUser.SelectedIndex == 2)
                        {
                            aux.role = "none";
                            aux.user = null;
                        }
                        else
                        {
                            if (cbHasUser.SelectedIndex == 1)
                            {
                                aux.role = "User";
                            }
                            else
                            {
                                aux.role = "Admin";
                            }
                            aux.user = new User(usernameEdit.Text, passwordEdit.Password);
                        }

                        //Alterando registro no banco
                        dao.EditEmploye(aux);

                        //Registrando log de alteração
                        Model.Log edited = new Model.Log();
                        edited.employe = _employe;
                        edited.action  = "Funcionário {aux.name} com ID = {aux.id} sofreu alteração no sistema!";
                        logs.Register(edited);

                        //Atualizando grid e limpando campos de texto
                        RefreshGrid();
                        ClearFields();
                        BlockFields();
                        actionIndex = -1;
                        aux         = null;
                    }
                    catch (DatabaseEditException err) {
                        //Retornando mensagem de erro para usuário
                        MessageBox.Show(
                            err.Message,
                            "Erro ao gravar dados",
                            MessageBoxButton.OK,
                            MessageBoxImage.Error);
                    }
                }
                else
                {
                    //Retornando mensagem de validação
                    MessageBox.Show(
                        "CPF ou RG Inválido(s)",
                        "Dados incorretos!",
                        MessageBoxButton.OK,
                        MessageBoxImage.Warning
                        );
                }
            }
            else
            {
                //Mostrando alerta de validação
                MessageBox.Show(
                    "Há Campos Vazios",
                    "Erro de Prenchimento de Formulário",
                    MessageBoxButton.OK,
                    MessageBoxImage.Warning
                    );
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Método para recuperar fornecedor especifico com base no ID
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public Employe GetEmployeData(int id)
        {
            try {
                //Abrindo conexão com o banco
                conn.Open();

                //Definindo string de coneção
                string command = $"select f.id_funcionario, p.id_pessoa, p.nome_pessoa, " +
                                 $"p.status, e.id_endereco, e.rua, e.numero, e.bairro, e.cidade, " +
                                 $"e.uf, e.cep, f.data_admissao, f.cpf, f.funcao, f.permissao " +
                                 $"from {Refs.TABLE_ADRESS} e, {Refs.TABLE_PEOPLE} p, {Refs.TABLE_EMPLOYES} f " +
                                 $"where e.id_endereco = p.id_endereco and " +
                                 $"p.id_pessoa = f.id_pessoa and " +
                                 $"f.id_funcionario = @id";

                //Definindo comando e resultados
                MySqlDataReader reader;
                MySqlCommand    cmd = new MySqlCommand(command, conn)
                {
                    CommandType = CommandType.Text
                };

                //Definindo parametros
                MySqlParameter employeId = new MySqlParameter("@id", MySqlDbType.Int64);
                employeId.Value = id;

                //Adicionando parametros e preaparando consulta
                cmd.Parameters.Add(employeId);
                cmd.Prepare();

                //Realizando consulta
                reader = cmd.ExecuteReader();

                //Definindo cliente
                Employe employe = new Employe();
                while (reader.Read())
                {
                    //Recuperando dados do cliente
                    employe.id                  = (int)reader["id_funcionario"];
                    employe.id_person           = (int)reader["id_pessoa"];
                    employe.adress.id           = (int)reader["id_endereco"];
                    employe.name                = (string)reader["nome_pessoa"];
                    employe.adress.street       = (string)reader["rua"];
                    employe.adress.number       = reader["numero"].ToString();
                    employe.adress.neighborhood = (string)reader["bairro"];
                    employe.adress.city         = (string)reader["cidade"];
                    employe.adress.UF           = (string)reader["uf"];
                    employe.adress.CEP          = (string)reader["cep"];
                    employe.cpf                 = (string)reader["cpf"];
                    employe.role                = (string)reader["permissao"];
                    employe.job                 = (string)reader["funcao"];
                    employe.admission           = (string)reader["data_admissao"];

                    //Booleanos
                    if (!(bool)reader["status"])
                    {
                        employe.Inactivate();
                    }
                }
                reader.Close();

                //Segunda query, opcionals e funcionário possuir usuário
                if (!employe.role.Equals("none"))
                {
                    command = $"select u.login, u.password " +
                              $"from {Refs.TABLE_USERS} u, {Refs.TABLE_EMPLOYES} f " +
                              $"where u.id_funcionario = f.id_funcionario " +
                              $"and f.id_funcionario = @id;";

                    //Definindo novo comando
                    cmd = new MySqlCommand(command, conn)
                    {
                        CommandType = CommandType.Text
                    };

                    //Limpando parametros e preparando outra consulta
                    cmd.Parameters.Add(employeId);
                    cmd.Prepare();

                    //Executando consulta por usuário
                    reader = cmd.ExecuteReader();

                    //Verifiando resultados
                    while (reader.Read())
                    {
                        User user = new User();
                        user.SetLogin((string)reader["login"]);
                        user.SetEncryptedCode((string)reader["password"]);
                        employe.user = user;
                    }
                }

                //Fechando conexão
                conn.Close();

                //Retornando cliente
                return(employe);
            }
            catch (MySqlException) {
                //Fechando conexão e retrnando mensagem de erro
                conn.Close();
                MessageBox.Show(
                    "Ops... Ocorreu algum erro de conexão com o banco! Tente novamente mais tarde...",
                    "Erro de Conexão!",
                    MessageBoxButton.OK,
                    MessageBoxImage.Error
                    );

                //Retornando usuário vazio
                Employe _return = new Employe();
                _return.name = "";
                _return.role = "none";
                return(_return);
            }
        }