ajout de mettre/afficher motif_rejet
This commit is contained in:
parent
399439d11f
commit
bea6960460
2 changed files with 77 additions and 13 deletions
|
@ -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;
|
||||||
|
@ -34,7 +35,8 @@ public class SoumettreDemande extends JFrame {
|
||||||
JLabel descriptionLabel = new JLabel("Description de la demande :");
|
JLabel descriptionLabel = new JLabel("Description de la demande :");
|
||||||
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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -127,18 +127,24 @@ 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):");
|
||||||
|
|
||||||
try (Connection connection = DatabaseConnection.getConnection()) {
|
if (!motif_rejet.isEmpty()) {
|
||||||
String sql = "UPDATE demandes_aide SET statut = 'rejetée' WHERE id = ?";
|
try (Connection connection = DatabaseConnection.getConnection()) {
|
||||||
PreparedStatement statement = connection.prepareStatement(sql);
|
String sql = "UPDATE demandes_aide SET statut = 'rejetée', motif_rejet = ? WHERE id = ?";
|
||||||
statement.setInt(1, demandeId);
|
PreparedStatement statement = connection.prepareStatement(sql);
|
||||||
statement.executeUpdate();
|
statement.setString(1, motif_rejet);
|
||||||
|
statement.setInt(2, demandeId);
|
||||||
|
statement.executeUpdate();
|
||||||
|
|
||||||
JOptionPane.showMessageDialog(this, "Demande rejetée avec succès.");
|
JOptionPane.showMessageDialog(this, "Demande rejetée avec succès.");
|
||||||
loadDemandesEnAttente(); // Recharger les demandes
|
loadDemandesEnAttente(); // Recharger les demandes
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
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.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue