user stories 12 et 13
This commit is contained in:
parent
bea6960460
commit
a56983e215
6 changed files with 332 additions and 59 deletions
|
@ -68,8 +68,9 @@ public class BenevoleDemandesEncoursPage extends JFrame {
|
||||||
// Méthode pour charger les demandes acceptées
|
// Méthode pour charger les demandes acceptées
|
||||||
private void loadDemandesEnCours() {
|
private void loadDemandesEnCours() {
|
||||||
try (Connection connection = DatabaseConnection.getConnection()) {
|
try (Connection connection = DatabaseConnection.getConnection()) {
|
||||||
String sql = "SELECT id, description, statut FROM demandes_aide WHERE statut = 'en cours'";
|
String sql = "SELECT id, description, statut FROM demandes_aide WHERE statut = 'en cours' AND benevole_id = ?";
|
||||||
PreparedStatement statement = connection.prepareStatement(sql);
|
PreparedStatement statement = connection.prepareStatement(sql);
|
||||||
|
statement.setInt(1, utilisateurId);
|
||||||
ResultSet resultSet = statement.executeQuery();
|
ResultSet resultSet = statement.executeQuery();
|
||||||
|
|
||||||
tableModel.setRowCount(0); // Réinitialiser le tableau
|
tableModel.setRowCount(0); // Réinitialiser le tableau
|
||||||
|
@ -105,9 +106,8 @@ public class BenevoleDemandesEncoursPage extends JFrame {
|
||||||
|
|
||||||
if (resultSet.next()) {
|
if (resultSet.next()) {
|
||||||
String currentStatus = resultSet.getString("statut");
|
String currentStatus = resultSet.getString("statut");
|
||||||
Integer benevole_id = resultSet.getInt("benevole_id");
|
|
||||||
|
|
||||||
if ("en cours".equals(currentStatus) && benevole_id.equals(utilisateurId)) {
|
if ("en cours".equals(currentStatus)) {
|
||||||
// Mise à jour seulement si le statut est 'en cours'
|
// Mise à jour seulement si le statut est 'en cours'
|
||||||
String updateSql = "UPDATE demandes_aide SET statut = 'finalisée' WHERE id = ?";
|
String updateSql = "UPDATE demandes_aide SET statut = 'finalisée' WHERE id = ?";
|
||||||
PreparedStatement updateStatement = connection.prepareStatement(updateSql);
|
PreparedStatement updateStatement = connection.prepareStatement(updateSql);
|
||||||
|
|
193
src/main/java/controller/BenevoleDemandesFinaliseesPage.java
Normal file
193
src/main/java/controller/BenevoleDemandesFinaliseesPage.java
Normal file
|
@ -0,0 +1,193 @@
|
||||||
|
package controller;
|
||||||
|
|
||||||
|
import database.DatabaseConnection;
|
||||||
|
|
||||||
|
import javax.swing.*;
|
||||||
|
import javax.swing.table.DefaultTableModel;
|
||||||
|
import java.awt.event.ActionEvent;
|
||||||
|
import java.awt.event.ActionListener;
|
||||||
|
import java.sql.Connection;
|
||||||
|
import java.sql.PreparedStatement;
|
||||||
|
import java.sql.ResultSet;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
|
||||||
|
public class BenevoleDemandesFinaliseesPage extends JFrame {
|
||||||
|
private JTable table;
|
||||||
|
private DefaultTableModel tableModel;
|
||||||
|
private JButton voirAvisButton; // Bouton pour voir les avis
|
||||||
|
private JButton modifierAvisButton; // Bouton pour modifer l'avis (benevole)
|
||||||
|
private JButton retourBenevoleButton;
|
||||||
|
private int utilisateurId; // Ajout de l'ID du bénévole
|
||||||
|
|
||||||
|
public BenevoleDemandesFinaliseesPage(int utilisateurId) { // Ajout du paramètre utilisateurId
|
||||||
|
this.utilisateurId = utilisateurId; // Stockage de l'ID du bénévole
|
||||||
|
setTitle("Demandes finalisées");
|
||||||
|
setSize(600, 400);
|
||||||
|
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||||
|
setLocationRelativeTo(null);
|
||||||
|
|
||||||
|
// Tableau pour afficher les demandes
|
||||||
|
tableModel = new DefaultTableModel(new String[]{"ID", "Description", "Statut"}, 0);
|
||||||
|
table = new JTable(tableModel);
|
||||||
|
JScrollPane scrollPane = new JScrollPane(table);
|
||||||
|
|
||||||
|
// Bouton pour prendre et finaliser des demandes
|
||||||
|
voirAvisButton = new JButton("Voir les avis");
|
||||||
|
modifierAvisButton = new JButton("Modifier l'avis");
|
||||||
|
retourBenevoleButton = new JButton("Retour au menu bénévole");
|
||||||
|
|
||||||
|
// Panel des boutons
|
||||||
|
JPanel buttonPanel = new JPanel();
|
||||||
|
buttonPanel.add(voirAvisButton);
|
||||||
|
buttonPanel.add(modifierAvisButton);
|
||||||
|
buttonPanel.add(retourBenevoleButton);
|
||||||
|
|
||||||
|
getContentPane().add(scrollPane, "Center");
|
||||||
|
getContentPane().add(buttonPanel, "South");
|
||||||
|
|
||||||
|
// ActionListener pour finaliser une demande
|
||||||
|
voirAvisButton.addActionListener(new ActionListener() {
|
||||||
|
@Override
|
||||||
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
afficherAvis();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
modifierAvisButton.addActionListener(new ActionListener() {
|
||||||
|
@Override
|
||||||
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
modifierAvis();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// Bouton de retour à la page d'accueil
|
||||||
|
// ActionListener pour retourner à la page de connexion
|
||||||
|
retourBenevoleButton.addActionListener(new ActionListener() {
|
||||||
|
@Override
|
||||||
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
MenuBenevole menu = new MenuBenevole(utilisateurId);
|
||||||
|
menu.setVisible(true);
|
||||||
|
dispose();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// Charger les demandes acceptées
|
||||||
|
loadDemandesFinalisees();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void afficherAvis() {
|
||||||
|
int selectedRow = table.getSelectedRow();
|
||||||
|
if (selectedRow == -1) {
|
||||||
|
JOptionPane.showMessageDialog(this, "Veuillez sélectionner une demande dont vous voulez afficher les avis.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
int demandeId = (int) tableModel.getValueAt(selectedRow, 0);
|
||||||
|
|
||||||
|
try (Connection connection = DatabaseConnection.getConnection()) {
|
||||||
|
// Verifier si la demande est bien 'finalisée' d'abord
|
||||||
|
String checkSql = "SELECT description, statut, avis_besoin, avis_benevole 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 ("finalisée".equals(currentStatus)) {
|
||||||
|
// Affichage seulement si le statut est 'finalisée'
|
||||||
|
String desc = resultSet.getString("description");
|
||||||
|
String avis_besoin = resultSet.getString("avis_besoin");
|
||||||
|
String avis_benevole = resultSet.getString("avis_benevole");
|
||||||
|
|
||||||
|
String texte_avis =
|
||||||
|
"Description de la demande:\n" +
|
||||||
|
desc +
|
||||||
|
"\n___________________________________________________\n" +
|
||||||
|
"Avis de la personne dans le besoin :\n" +
|
||||||
|
avis_besoin +
|
||||||
|
"\n___________________________________________________\n" +
|
||||||
|
"Avis du benevole en charge de la demande :\n" +
|
||||||
|
avis_benevole;
|
||||||
|
|
||||||
|
JOptionPane.showMessageDialog(this, texte_avis);
|
||||||
|
} else {
|
||||||
|
// Statut n'est pas 'finalisée'
|
||||||
|
JOptionPane.showMessageDialog(this, "Avis non affichés car la demande n'est pas 'finalisée'. (Statut actuel : " + currentStatus + ")");
|
||||||
|
}
|
||||||
|
loadDemandesFinalisees(); // Recharger les demandes après tentative/réssuite de l'affichage des avis
|
||||||
|
}
|
||||||
|
} catch (SQLException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
JOptionPane.showMessageDialog(this, "Erreur lors de l'affichage des avis.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Méthode pour rejeter une demande
|
||||||
|
private void modifierAvis() {
|
||||||
|
int selectedRow = table.getSelectedRow();
|
||||||
|
if (selectedRow == -1) {
|
||||||
|
JOptionPane.showMessageDialog(this, "Veuillez sélectionner une demande dont vous voulez modifier l'avis.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
int demandeId = (int) tableModel.getValueAt(selectedRow, 0);
|
||||||
|
|
||||||
|
try (Connection connection = DatabaseConnection.getConnection()) {
|
||||||
|
// Verifier si la demande est bien 'finalisée' d'abord
|
||||||
|
String checkSql = "SELECT 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 ("finalisée".equals(currentStatus)) {
|
||||||
|
String avis = JOptionPane.showInputDialog(this, "Veuillez entrer votre avis (500 caractères max):", "Modification de l'avis", JOptionPane.PLAIN_MESSAGE);
|
||||||
|
|
||||||
|
if (!avis.isEmpty()) {
|
||||||
|
String sql = "UPDATE demandes_aide SET avis_benevole = ? WHERE id = ?";
|
||||||
|
PreparedStatement statement = connection.prepareStatement(sql);
|
||||||
|
statement.setString(1, avis);
|
||||||
|
statement.setInt(2, demandeId);
|
||||||
|
statement.executeUpdate();
|
||||||
|
|
||||||
|
JOptionPane.showMessageDialog(this, "Avis modifié avec succès.");
|
||||||
|
} else {
|
||||||
|
JOptionPane.showMessageDialog(this, "Votre avis ne peut pas être vide.");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// Statut n'est pas 'finalisée'
|
||||||
|
JOptionPane.showMessageDialog(this, "Vous ne pouvez pas modifier l'avis car la demande n'est pas 'finalisée'. (Statut actuel : " + currentStatus + ")");
|
||||||
|
}
|
||||||
|
loadDemandesFinalisees(); // Recharger les demandes après tentative/réssuite de modification de l'avis
|
||||||
|
}
|
||||||
|
} catch (SQLException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
JOptionPane.showMessageDialog(this, "Erreur lors de la modification de l'avis.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Méthode pour charger les demandes acceptées
|
||||||
|
private void loadDemandesFinalisees() {
|
||||||
|
try (Connection connection = DatabaseConnection.getConnection()) {
|
||||||
|
String sql = "SELECT id, description, statut FROM demandes_aide WHERE statut = 'finalisée' AND benevole_id = ?";
|
||||||
|
PreparedStatement statement = connection.prepareStatement(sql);
|
||||||
|
statement.setInt(1, utilisateurId);
|
||||||
|
ResultSet resultSet = statement.executeQuery();
|
||||||
|
|
||||||
|
tableModel.setRowCount(0); // Réinitialiser le tableau
|
||||||
|
while (resultSet.next()) {
|
||||||
|
int id = resultSet.getInt("id");
|
||||||
|
String description = resultSet.getString("description");
|
||||||
|
String statut = resultSet.getString("statut");
|
||||||
|
|
||||||
|
tableModel.addRow(new Object[]{id, description, statut});
|
||||||
|
}
|
||||||
|
} catch (SQLException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -15,7 +15,6 @@ public class BenevoleDemandesPage extends JFrame {
|
||||||
private JTable table;
|
private JTable table;
|
||||||
private DefaultTableModel tableModel;
|
private DefaultTableModel tableModel;
|
||||||
private JButton prendreDemandeButton;
|
private JButton prendreDemandeButton;
|
||||||
private JButton finaliserDemandeButton;
|
|
||||||
private JButton retourBenevoleButton;
|
private JButton retourBenevoleButton;
|
||||||
private int utilisateurId; // Ajout de l'ID du bénévole
|
private int utilisateurId; // Ajout de l'ID du bénévole
|
||||||
|
|
||||||
|
@ -33,13 +32,11 @@ public class BenevoleDemandesPage extends JFrame {
|
||||||
|
|
||||||
// Bouton pour prendre et finaliser des demandes
|
// Bouton pour prendre et finaliser des demandes
|
||||||
prendreDemandeButton = new JButton("Prendre la demande");
|
prendreDemandeButton = new JButton("Prendre la demande");
|
||||||
finaliserDemandeButton = new JButton("Finaliser la demande");
|
|
||||||
retourBenevoleButton = new JButton("Retour au menu bénévole");
|
retourBenevoleButton = new JButton("Retour au menu bénévole");
|
||||||
|
|
||||||
// Panel des boutons
|
// Panel des boutons
|
||||||
JPanel buttonPanel = new JPanel();
|
JPanel buttonPanel = new JPanel();
|
||||||
buttonPanel.add(prendreDemandeButton);
|
buttonPanel.add(prendreDemandeButton);
|
||||||
buttonPanel.add(finaliserDemandeButton);
|
|
||||||
buttonPanel.add(retourBenevoleButton);
|
buttonPanel.add(retourBenevoleButton);
|
||||||
|
|
||||||
getContentPane().add(scrollPane, "Center");
|
getContentPane().add(scrollPane, "Center");
|
||||||
|
@ -52,14 +49,6 @@ public class BenevoleDemandesPage extends JFrame {
|
||||||
prendreDemande();
|
prendreDemande();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// ActionListener pour finaliser une demande
|
|
||||||
finaliserDemandeButton.addActionListener(new ActionListener() {
|
|
||||||
@Override
|
|
||||||
public void actionPerformed(ActionEvent e) {
|
|
||||||
finaliserDemande();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// Bouton de retour à la page d'accueil
|
// Bouton de retour à la page d'accueil
|
||||||
// ActionListener pour retourner à la page de connexion
|
// ActionListener pour retourner à la page de connexion
|
||||||
|
@ -120,44 +109,4 @@ public class BenevoleDemandesPage extends JFrame {
|
||||||
JOptionPane.showMessageDialog(this, "Erreur lors de la prise de la demande.");
|
JOptionPane.showMessageDialog(this, "Erreur lors de la prise de la demande.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Méthode pour finaliser une demande
|
|
||||||
private void finaliserDemande() {
|
|
||||||
int selectedRow = table.getSelectedRow();
|
|
||||||
if (selectedRow == -1) {
|
|
||||||
JOptionPane.showMessageDialog(this, "Veuillez sélectionner une demande à finaliser.");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
int demandeId = (int) tableModel.getValueAt(selectedRow, 0);
|
|
||||||
|
|
||||||
try (Connection connection = DatabaseConnection.getConnection()) {
|
|
||||||
// Verifier si la demande est bien 'en cours' d'abord
|
|
||||||
String checkSql = "SELECT 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 ("en cours".equals(currentStatus)) {
|
|
||||||
// Mise à jour seulement si le statut est 'en cours'
|
|
||||||
String updateSql = "UPDATE demandes_aide SET statut = 'finalisée' WHERE id = ?";
|
|
||||||
PreparedStatement updateStatement = connection.prepareStatement(updateSql);
|
|
||||||
updateStatement.setInt(1, demandeId);
|
|
||||||
updateStatement.executeUpdate();
|
|
||||||
|
|
||||||
JOptionPane.showMessageDialog(this, "Demande finalisée avec succès.");
|
|
||||||
} else {
|
|
||||||
// Statut n'est pas 'en cours'
|
|
||||||
JOptionPane.showMessageDialog(this, "Demande non finalisée car le statut n'est pas 'en cours'. (Statut actuel : " + currentStatus + ")");
|
|
||||||
}
|
|
||||||
loadDemandesAcceptees(); // Recharger les demandes après tentative/réssuite de finalisation
|
|
||||||
}
|
|
||||||
} catch (SQLException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
JOptionPane.showMessageDialog(this, "Erreur lors de la finalisation de la demande.");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,6 +8,7 @@ import java.awt.event.ActionListener;
|
||||||
public class MenuBenevole extends JFrame{
|
public class MenuBenevole extends JFrame{
|
||||||
private JButton voirDemandesAcceptesButton;
|
private JButton voirDemandesAcceptesButton;
|
||||||
private JButton voirDemandesEnCoursButton;
|
private JButton voirDemandesEnCoursButton;
|
||||||
|
private JButton voirDemandesFinaliseesButton;
|
||||||
private JButton retourButton;
|
private JButton retourButton;
|
||||||
private int utilisateurId; // Ajout de l'ID du bénévole
|
private int utilisateurId; // Ajout de l'ID du bénévole
|
||||||
|
|
||||||
|
@ -33,9 +34,14 @@ public class MenuBenevole extends JFrame{
|
||||||
gbc.gridy = 1;
|
gbc.gridy = 1;
|
||||||
add(voirDemandesEnCoursButton, gbc);
|
add(voirDemandesEnCoursButton, gbc);
|
||||||
|
|
||||||
retourButton = new JButton("Retour à l'acceuil");
|
voirDemandesFinaliseesButton = new JButton("Voir demandes personelles finalisées");
|
||||||
gbc.gridx = 0;
|
gbc.gridx = 0;
|
||||||
gbc.gridy = 2;
|
gbc.gridy = 2;
|
||||||
|
add(voirDemandesFinaliseesButton, gbc);
|
||||||
|
|
||||||
|
retourButton = new JButton("Retour à l'acceuil");
|
||||||
|
gbc.gridx = 0;
|
||||||
|
gbc.gridy = 3;
|
||||||
add(retourButton, gbc);
|
add(retourButton, gbc);
|
||||||
|
|
||||||
voirDemandesAcceptesButton.addActionListener(new ActionListener() {
|
voirDemandesAcceptesButton.addActionListener(new ActionListener() {
|
||||||
|
@ -56,6 +62,15 @@ public class MenuBenevole extends JFrame{
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
voirDemandesFinaliseesButton.addActionListener(new ActionListener() {
|
||||||
|
@Override
|
||||||
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
BenevoleDemandesFinaliseesPage benevoleDemandesFinaliseesPage = new BenevoleDemandesFinaliseesPage(utilisateurId);
|
||||||
|
benevoleDemandesFinaliseesPage.setVisible(true);
|
||||||
|
dispose();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
// Bouton de retour à la page d'accueil
|
// Bouton de retour à la page d'accueil
|
||||||
// ActionListener pour retourner à la page de connexion
|
// ActionListener pour retourner à la page de connexion
|
||||||
retourButton.addActionListener(new ActionListener() {
|
retourButton.addActionListener(new ActionListener() {
|
||||||
|
|
|
@ -17,6 +17,8 @@ public class SoumettreDemande extends JFrame {
|
||||||
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 JButton voirMotifButton; // Bouton pour voir motif de rejet
|
||||||
|
private JButton voirAvisButton; // Bouton pour voir les avis
|
||||||
|
private JButton modifierAvisButton; // Bouton pour modifer l'avis (personne dans le besoin)
|
||||||
private JTable demandesTable;
|
private JTable demandesTable;
|
||||||
private DefaultTableModel tableModel;
|
private DefaultTableModel tableModel;
|
||||||
private int utilisateurId;
|
private int utilisateurId;
|
||||||
|
@ -37,6 +39,8 @@ public class SoumettreDemande extends JFrame {
|
||||||
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");
|
voirMotifButton = new JButton("Voir motif de refus");
|
||||||
|
voirAvisButton = new JButton("Voir les avis");
|
||||||
|
modifierAvisButton = new JButton("Modifier l'avis");
|
||||||
|
|
||||||
// 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);
|
||||||
|
@ -59,6 +63,10 @@ public class SoumettreDemande extends JFrame {
|
||||||
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);
|
bottomPanel.add(voirMotifButton);
|
||||||
add(bottomPanel, BorderLayout.SOUTH);
|
add(bottomPanel, BorderLayout.SOUTH);
|
||||||
|
bottomPanel.add(voirAvisButton);
|
||||||
|
add(bottomPanel, BorderLayout.SOUTH);
|
||||||
|
bottomPanel.add(modifierAvisButton);
|
||||||
|
add(bottomPanel, BorderLayout.SOUTH);
|
||||||
|
|
||||||
// Charger les anciennes demandes
|
// Charger les anciennes demandes
|
||||||
loadAnciennesDemandes();
|
loadAnciennesDemandes();
|
||||||
|
@ -82,13 +90,27 @@ public class SoumettreDemande extends JFrame {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// ActionListener pour soumettre une demande
|
// ActionListener pour afficher le motif de refus
|
||||||
voirMotifButton.addActionListener(new ActionListener() {
|
voirMotifButton.addActionListener(new ActionListener() {
|
||||||
@Override
|
@Override
|
||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
afficherMotifRefus();
|
afficherMotifRefus();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// ActionListener pour afficher les avis
|
||||||
|
voirAvisButton.addActionListener(new ActionListener() {
|
||||||
|
@Override
|
||||||
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
afficherAvis();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// ActionListener pour modifier l'avis
|
||||||
|
modifierAvisButton.addActionListener(new ActionListener() {
|
||||||
|
@Override
|
||||||
|
public void actionPerformed(ActionEvent e) {modifierAvis(); }
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// Méthode pour soumettre une demande
|
// Méthode pour soumettre une demande
|
||||||
|
@ -140,14 +162,14 @@ public class SoumettreDemande extends JFrame {
|
||||||
String desc = resultSet.getString("description");
|
String desc = resultSet.getString("description");
|
||||||
String motif = resultSet.getString("motif_rejet");
|
String motif = resultSet.getString("motif_rejet");
|
||||||
|
|
||||||
String message =
|
String texte_motif_refus =
|
||||||
"Description de la demande:\n" +
|
"Description de la demande:\n" +
|
||||||
desc +
|
desc +
|
||||||
"\n___________________________________________________\n" +
|
"\n___________________________________________________\n" +
|
||||||
"Motif de rejet :\n" +
|
"Motif de rejet :\n" +
|
||||||
motif;
|
motif;
|
||||||
|
|
||||||
JOptionPane.showMessageDialog(this, message);
|
JOptionPane.showMessageDialog(this, texte_motif_refus);
|
||||||
} else {
|
} else {
|
||||||
// Statut n'est pas 'rejetée'
|
// Statut n'est pas 'rejetée'
|
||||||
JOptionPane.showMessageDialog(this, "Motif non affiché car la demande n'est pas 'rejetée'. (Statut actuel : " + currentStatus + ")");
|
JOptionPane.showMessageDialog(this, "Motif non affiché car la demande n'est pas 'rejetée'. (Statut actuel : " + currentStatus + ")");
|
||||||
|
@ -160,6 +182,100 @@ public class SoumettreDemande extends JFrame {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void afficherAvis() {
|
||||||
|
int selectedRow = demandesTable.getSelectedRow();
|
||||||
|
if (selectedRow == -1) {
|
||||||
|
JOptionPane.showMessageDialog(this, "Veuillez sélectionner une demande dont vous voulez afficher les avis.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
int demandeId = (int) tableModel.getValueAt(selectedRow, 0);
|
||||||
|
|
||||||
|
try (Connection connection = DatabaseConnection.getConnection()) {
|
||||||
|
// Verifier si la demande est bien 'finalisée' d'abord
|
||||||
|
String checkSql = "SELECT description, statut, avis_besoin, avis_benevole 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 ("finalisée".equals(currentStatus)) {
|
||||||
|
// Affichage seulement si le statut est 'finalisée'
|
||||||
|
String desc = resultSet.getString("description");
|
||||||
|
String avis_besoin = resultSet.getString("avis_besoin");
|
||||||
|
String avis_benevole = resultSet.getString("avis_benevole");
|
||||||
|
|
||||||
|
String texte_avis =
|
||||||
|
"Description de la demande:\n" +
|
||||||
|
desc +
|
||||||
|
"\n___________________________________________________\n" +
|
||||||
|
"Avis de la personne dans le besoin :\n" +
|
||||||
|
avis_besoin +
|
||||||
|
"\n___________________________________________________\n" +
|
||||||
|
"Avis du benevole en charge de la demande :\n" +
|
||||||
|
avis_benevole;
|
||||||
|
|
||||||
|
JOptionPane.showMessageDialog(this, texte_avis);
|
||||||
|
} else {
|
||||||
|
// Statut n'est pas 'finalisée'
|
||||||
|
JOptionPane.showMessageDialog(this, "Avis non affichés car la demande n'est pas 'finalisée'. (Statut actuel : " + currentStatus + ")");
|
||||||
|
}
|
||||||
|
loadAnciennesDemandes(); // Recharger les demandes après tentative/réssuite de l'affichage des avis
|
||||||
|
}
|
||||||
|
} catch (SQLException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
JOptionPane.showMessageDialog(this, "Erreur lors de l'affichage des avis.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Méthode pour rejeter une demande
|
||||||
|
private void modifierAvis() {
|
||||||
|
int selectedRow = demandesTable.getSelectedRow();
|
||||||
|
if (selectedRow == -1) {
|
||||||
|
JOptionPane.showMessageDialog(this, "Veuillez sélectionner une demande dont vous voulez modifier l'avis.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
int demandeId = (int) tableModel.getValueAt(selectedRow, 0);
|
||||||
|
|
||||||
|
try (Connection connection = DatabaseConnection.getConnection()) {
|
||||||
|
// Verifier si la demande est bien 'finalisée' d'abord
|
||||||
|
String checkSql = "SELECT 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 ("finalisée".equals(currentStatus)) {
|
||||||
|
String avis = JOptionPane.showInputDialog(this, "Veuillez entrer votre avis (500 caractères max):", "Modification de l'avis", JOptionPane.PLAIN_MESSAGE);
|
||||||
|
|
||||||
|
if (!avis.isEmpty()) {
|
||||||
|
String sql = "UPDATE demandes_aide SET avis_besoin = ? WHERE id = ?";
|
||||||
|
PreparedStatement statement = connection.prepareStatement(sql);
|
||||||
|
statement.setString(1, avis);
|
||||||
|
statement.setInt(2, demandeId);
|
||||||
|
statement.executeUpdate();
|
||||||
|
|
||||||
|
JOptionPane.showMessageDialog(this, "Avis modifié avec succès.");
|
||||||
|
} else {
|
||||||
|
JOptionPane.showMessageDialog(this, "Votre avis ne peut pas être vide.");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// Statut n'est pas 'finalisée'
|
||||||
|
JOptionPane.showMessageDialog(this, "Vous ne pouvez pas modifier l'avis car la demande n'est pas 'finalisée'. (Statut actuel : " + currentStatus + ")");
|
||||||
|
}
|
||||||
|
loadAnciennesDemandes(); // Recharger les demandes après tentative/réssuite de modification de l'avis
|
||||||
|
}
|
||||||
|
} catch (SQLException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
JOptionPane.showMessageDialog(this, "Erreur lors de la modification de l'avis.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// 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()) {
|
||||||
|
|
|
@ -127,7 +127,7 @@ 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):");
|
String motif_rejet = JOptionPane.showInputDialog(this, "Veuillez entrer un motif de rejet (500 caractères max):", "Motif de rejet", JOptionPane.PLAIN_MESSAGE);
|
||||||
|
|
||||||
if (!motif_rejet.isEmpty()) {
|
if (!motif_rejet.isEmpty()) {
|
||||||
try (Connection connection = DatabaseConnection.getConnection()) {
|
try (Connection connection = DatabaseConnection.getConnection()) {
|
||||||
|
|
Loading…
Reference in a new issue