/// <summary> /// Método para adicionar funcionário no banco /// </summary> /// <param name="emp"></param> public void AddEmploye(Employe emp) { try { //Abrindo conexão conn.Open(); //Definindo comando para inserção string command = $"BEGIN; insert into {Refs.TABLE_ADRESS}" + $"(rua, numero, bairro, cidade, uf, cep) values (" + $"@street, @number, @neighborhood, @city, @uf, @cep);" + $"insert into {Refs.TABLE_PEOPLE}(id_endereco, nome_pessoa, status) values (" + $"last_insert_id(), @name, @status);" + $"insert into {Refs.TABLE_EMPLOYES}(id_pessoa, permissao, cpf, " + $"data_admissao, funcao) values (" + $"last_insert_id(), @role, @cpf, " + $"@admission, @job);"; if (emp.user != null) { command += $"insert into {Refs.TABLE_USERS}(id_funcionario, login, password) values (" + $"last_insert_id(), @username, @password);"; } command += $" COMMIT;"; //Definindo objetos para inserção dos dados MySqlCommand cmd = new MySqlCommand(command, conn) { CommandType = CommandType.Text }; //Definindo parametros para inserção cmd.Parameters.Add(new MySqlParameter("@street", emp.adress.street)); cmd.Parameters.Add(new MySqlParameter("@number", emp.adress.number)); cmd.Parameters.Add(new MySqlParameter("@neighborhood", emp.adress.neighborhood)); cmd.Parameters.Add(new MySqlParameter("@city", emp.adress.city)); cmd.Parameters.Add(new MySqlParameter("@uf", emp.adress.UF)); cmd.Parameters.Add(new MySqlParameter("@cep", emp.adress.CEP)); cmd.Parameters.Add(new MySqlParameter("@name", emp.name)); cmd.Parameters.Add(new MySqlParameter("@status", emp.IsActive())); cmd.Parameters.Add(new MySqlParameter("@role", emp.role)); cmd.Parameters.Add(new MySqlParameter("@cpf", emp.cpf)); cmd.Parameters.Add(new MySqlParameter("@admission", emp.admission)); cmd.Parameters.Add(new MySqlParameter("@job", emp.job)); //Caso funcionário possuir usuário if (emp.user != null) { cmd.Parameters.Add(new MySqlParameter("@username", emp.user.GetLogin())); cmd.Parameters.Add(new MySqlParameter("@password", emp.user.GetEncryptedCode())); } //Preparando comando com os parametros cmd.Prepare(); //Executando inserção cmd.ExecuteNonQuery(); //Fechando conexão com banco conn.Close(); //Mensagem de sucesso MessageBox.Show( "Funcionário Inserido!", "Sucesso", MessageBoxButton.OK, MessageBoxImage.Information ); } catch (MySqlException err) { //Fechando a conexão e retornando erro ao usuário conn.Close(); MessageBox.Show(err.Message); throw new DatabaseInsertException(); } }
/// <summary> /// Evento ao selecionar algum funcionario /// </summary> /// <param name="sender"></param> /// <param name="args"></param> private void dgUsuarios_SelectionChanged(object sender, SelectionChangedEventArgs args) { //Verificando se ha seleção feita if (dgUsuarios.SelectedItems.Count > 0) { //Recuperando dados do cliente selecionado Employe source = dgUsuarios.SelectedItem as Employe; aux = dao.GetEmployeData(source.id); //Preenchendo campos (Comboboxes) if (aux.IsActive()) { cbActive.SelectedIndex = 0; } else { cbActive.SelectedIndex = 1; } if (aux.role.Equals("none")) { cbHasUser.SelectedIndex = 2; } else if (aux.role.Equals("User")) { cbHasUser.SelectedIndex = 1; } else { cbHasUser.SelectedIndex = 0; } //Recuperando Estado int index = -1; foreach (ComboBoxItem item in cbState.Items) { index++; if (item.Content.Equals(aux.adress.UF)) { break; } } cbState.SelectedIndex = index; //Preenchendo campos (Textboxes) NameEdit.Text = aux.name; cpfEdit.Text = aux.cpf; AdressEdit.Text = aux.adress.street; NeighboorhoodEdit.Text = aux.adress.neighborhood; cepEdit.Text = aux.adress.CEP; NumberEdit.Text = aux.adress.number; CityEdit.Text = aux.adress.city; admissionEdit.Text = aux.admission; RoleEdit.Text = aux.job; //Dados de usuário if (aux.user != null) { //Preenchendo dados do usuário usernameEdit.Text = aux.user.GetLogin(); passwordEdit.Password = aux.user.GetPassword(); } //Definindo ação como nula actionIndex = -1; //Desabiilitando campos e preenchendo com dados BlockFields(); } }
/// <summary> /// Método para alterar funcionário no banco /// </summary> /// <param name="emp"></param> public void EditEmploye(Employe emp) { try { //Abrindo conexão conn.Open(); //Definindo comando para inserção string command = $"BEGIN; update {Refs.TABLE_ADRESS} set " + $"rua = @street, numero = @number, bairro = @neighborhood," + $"cidade = @city, uf = @uf, cep = @cep " + $"where id_endereco = @id_endereco;" + $"update {Refs.TABLE_PEOPLE} set nome_pessoa = @name, status = @status " + $"where id_pessoa = @id_pessoa;" + $"update {Refs.TABLE_EMPLOYES} set permissao = @role, cpf = @cpf, " + $"data_admissao = @admission, funcao = @job " + $"where id_funcionario = @id_funcionario;"; if (emp.user != null) { command += $"replace into {Refs.TABLE_USERS}(id_funcionario, login, password) values (" + $"@id_funcionario, @username, @password);"; } else { command += $"delete from {Refs.TABLE_USERS} where id_funcionario = @id_funcionario;"; } command += $" COMMIT;"; //Definindo objetos para inserção dos dados MySqlCommand cmd = new MySqlCommand(command, conn) { CommandType = CommandType.Text }; //Definindo parametros para inserção cmd.Parameters.Add(new MySqlParameter("@id_endereco", emp.adress.id)); cmd.Parameters.Add(new MySqlParameter("@id_pessoa", emp.id_person)); cmd.Parameters.Add(new MySqlParameter("@id_funcionario", emp.id)); cmd.Parameters.Add(new MySqlParameter("@street", emp.adress.street)); cmd.Parameters.Add(new MySqlParameter("@number", emp.adress.number)); cmd.Parameters.Add(new MySqlParameter("@neighborhood", emp.adress.neighborhood)); cmd.Parameters.Add(new MySqlParameter("@city", emp.adress.city)); cmd.Parameters.Add(new MySqlParameter("@uf", emp.adress.UF)); cmd.Parameters.Add(new MySqlParameter("@cep", emp.adress.CEP)); cmd.Parameters.Add(new MySqlParameter("@name", emp.name)); cmd.Parameters.Add(new MySqlParameter("@status", emp.IsActive())); cmd.Parameters.Add(new MySqlParameter("@role", emp.role)); cmd.Parameters.Add(new MySqlParameter("@cpf", emp.cpf)); cmd.Parameters.Add(new MySqlParameter("@admission", emp.admission)); cmd.Parameters.Add(new MySqlParameter("@job", emp.job)); //Caso funsionário possuir usuário if (emp.user != null) { cmd.Parameters.Add(new MySqlParameter("@username", emp.user.GetLogin())); cmd.Parameters.Add(new MySqlParameter("@password", emp.user.GetEncryptedCode())); } //Preparando comando com os parametros cmd.Prepare(); //Executando inserção cmd.ExecuteNonQuery(); //Fechando conexão com banco conn.Close(); //Mensagem de sucesso MessageBox.Show( "Funcionário Atualizado!", "Sucesso", MessageBoxButton.OK, MessageBoxImage.Information ); } catch (MySqlException) { //Fechando conexão e retornando erro conn.Close(); } }