ajout de mettre/afficher motif_rejet

This commit is contained in:
skferrei 2024-10-16 18:51:57 +02:00
parent 399439d11f
commit bea6960460
2 changed files with 77 additions and 13 deletions

View file

@ -16,6 +16,7 @@ public class SoumettreDemande extends JFrame {
private JTextField descriptionField; private JTextField descriptionField;
private JButton soumettreButton; private JButton soumettreButton;
private JButton retourButton; // Bouton retour private JButton retourButton; // Bouton retour
private JButton voirMotifButton; // Bouton pour voir motif de rejet
private JTable demandesTable; private JTable demandesTable;
private DefaultTableModel tableModel; private DefaultTableModel tableModel;
private int utilisateurId; private int utilisateurId;
@ -35,6 +36,7 @@ public class SoumettreDemande extends JFrame {
descriptionField = new JTextField(20); descriptionField = new JTextField(20);
soumettreButton = new JButton("Soumettre"); soumettreButton = new JButton("Soumettre");
retourButton = new JButton("Retour à l'accueil"); // Création du bouton retour retourButton = new JButton("Retour à l'accueil"); // Création du bouton retour
voirMotifButton = new JButton("Voir motif de refus");
// Tableau pour afficher les anciennes demandes // Tableau pour afficher les anciennes demandes
tableModel = new DefaultTableModel(new String[]{"ID", "Description", "Statut", "Bénévole en charge"}, 0); tableModel = new DefaultTableModel(new String[]{"ID", "Description", "Statut", "Bénévole en charge"}, 0);
@ -55,6 +57,8 @@ public class SoumettreDemande extends JFrame {
JPanel bottomPanel = new JPanel(new FlowLayout(FlowLayout.CENTER)); JPanel bottomPanel = new JPanel(new FlowLayout(FlowLayout.CENTER));
bottomPanel.add(retourButton); bottomPanel.add(retourButton);
add(bottomPanel, BorderLayout.SOUTH); // Ajouter le panel du bouton retour en bas add(bottomPanel, BorderLayout.SOUTH); // Ajouter le panel du bouton retour en bas
bottomPanel.add(voirMotifButton);
add(bottomPanel, BorderLayout.SOUTH);
// Charger les anciennes demandes // Charger les anciennes demandes
loadAnciennesDemandes(); loadAnciennesDemandes();
@ -77,6 +81,14 @@ public class SoumettreDemande extends JFrame {
dispose(); // Fermer la page actuelle dispose(); // Fermer la page actuelle
} }
}); });
// ActionListener pour soumettre une demande
voirMotifButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
afficherMotifRefus();
}
});
} }
// Méthode pour soumettre une demande // Méthode pour soumettre une demande
@ -103,6 +115,51 @@ public class SoumettreDemande extends JFrame {
} }
} }
// Méthode pour charger les anciennes demandes
private void afficherMotifRefus() {
int selectedRow = demandesTable.getSelectedRow();
if (selectedRow == -1) {
JOptionPane.showMessageDialog(this, "Veuillez sélectionner une demande dont vous voulez afficher le motif de rejet.");
return;
}
int demandeId = (int) tableModel.getValueAt(selectedRow, 0);
try (Connection connection = DatabaseConnection.getConnection()) {
// Verifier si la demande est bien 'rejetée' d'abord
String checkSql = "SELECT description, motif_rejet, statut FROM demandes_aide WHERE id = ? ";
PreparedStatement checkStatement = connection.prepareStatement(checkSql);
checkStatement.setInt(1, demandeId);
ResultSet resultSet = checkStatement.executeQuery();
if (resultSet.next()) {
String currentStatus = resultSet.getString("statut");
if ("rejetée".equals(currentStatus)) {
// Affichage seulement si le statut est 'rejetée'
String desc = resultSet.getString("description");
String motif = resultSet.getString("motif_rejet");
String message =
"Description de la demande:\n" +
desc +
"\n___________________________________________________\n" +
"Motif de rejet :\n" +
motif;
JOptionPane.showMessageDialog(this, message);
} else {
// Statut n'est pas 'rejetée'
JOptionPane.showMessageDialog(this, "Motif non affiché car la demande n'est pas 'rejetée'. (Statut actuel : " + currentStatus + ")");
}
loadAnciennesDemandes(); // Recharger les demandes après tentative/réssuite de l'affichage du motif
}
} catch (SQLException e) {
e.printStackTrace();
JOptionPane.showMessageDialog(this, "Erreur lors de l'affichage du motif.");
}
}
// Méthode pour charger les anciennes demandes // Méthode pour charger les anciennes demandes
private void loadAnciennesDemandes() { private void loadAnciennesDemandes() {
try (Connection connection = DatabaseConnection.getConnection()) { try (Connection connection = DatabaseConnection.getConnection()) {
@ -112,7 +169,8 @@ public class SoumettreDemande extends JFrame {
"LEFT JOIN utilisateur " + "LEFT JOIN utilisateur " +
"ON demandes_aide.benevole_id = utilisateur.id " + "ON demandes_aide.benevole_id = utilisateur.id " +
"AND utilisateur.role = 'benevole' " + "AND utilisateur.role = 'benevole' " +
"WHERE demandes_aide.utilisateur_id = ? ;"; "WHERE demandes_aide.utilisateur_id = ? " +
"ORDER BY demandes_aide.statut ;";
PreparedStatement statement = connection.prepareStatement(sql); PreparedStatement statement = connection.prepareStatement(sql);
statement.setInt(1, utilisateurId); statement.setInt(1, utilisateurId);
ResultSet resultSet = statement.executeQuery(); ResultSet resultSet = statement.executeQuery();
@ -133,7 +191,7 @@ public class SoumettreDemande extends JFrame {
} }
public static void main(String[] args) { public static void main(String[] args) {
SoumettreDemande soumettreDemande = new SoumettreDemande(4); // Test avec un utilisateur par défaut SoumettreDemande soumettreDemande = new SoumettreDemande(1); // Test avec un utilisateur par défaut
soumettreDemande.setVisible(true); soumettreDemande.setVisible(true);
} }
} }

View file

@ -127,11 +127,14 @@ public class Validateur extends JFrame {
} }
int demandeId = (int) tableModel.getValueAt(selectedRow, 0); int demandeId = (int) tableModel.getValueAt(selectedRow, 0);
String motif_rejet = JOptionPane.showInputDialog(this, "Veuillez entrer un motif de rejet (500 caractères max):");
if (!motif_rejet.isEmpty()) {
try (Connection connection = DatabaseConnection.getConnection()) { try (Connection connection = DatabaseConnection.getConnection()) {
String sql = "UPDATE demandes_aide SET statut = 'rejetée' WHERE id = ?"; String sql = "UPDATE demandes_aide SET statut = 'rejetée', motif_rejet = ? WHERE id = ?";
PreparedStatement statement = connection.prepareStatement(sql); PreparedStatement statement = connection.prepareStatement(sql);
statement.setInt(1, demandeId); statement.setString(1, motif_rejet);
statement.setInt(2, demandeId);
statement.executeUpdate(); statement.executeUpdate();
JOptionPane.showMessageDialog(this, "Demande rejetée avec succès."); JOptionPane.showMessageDialog(this, "Demande rejetée avec succès.");
@ -140,5 +143,8 @@ public class Validateur extends JFrame {
e.printStackTrace(); e.printStackTrace();
JOptionPane.showMessageDialog(this, "Erreur lors du rejet de la demande."); JOptionPane.showMessageDialog(this, "Erreur lors du rejet de la demande.");
} }
} else {
JOptionPane.showMessageDialog(this, "Le motif de rejet ne peut pas être vide.");
}
} }
} }