user story 9

comme la plupart était déjà fait, j'ai juste :
- ajouté un 3e bouton sur le menu pour consulter les demandes
- mis à jour la fonction "finaliserDemande()" pour qu'on ne puisse finaliser que les demandes 'en cours' (car les demandes 'acceptés' n'ont pas été attribuées)
This commit is contained in:
Sami-Koe Ferreira 2024-10-13 18:42:12 +02:00
parent f15d31a14d
commit 4881462c38
2 changed files with 97 additions and 6 deletions

View file

@ -132,16 +132,35 @@ public class BenevoleDemandesPage extends JFrame {
int demandeId = (int) tableModel.getValueAt(selectedRow, 0); int demandeId = (int) tableModel.getValueAt(selectedRow, 0);
try (Connection connection = DatabaseConnection.getConnection()) { try (Connection connection = DatabaseConnection.getConnection()) {
String sql = "UPDATE demandes_aide SET statut = 'finalisée' WHERE id = ?"; // Verifier si la demande est bien 'en cours' d'abord
PreparedStatement statement = connection.prepareStatement(sql); String checkSql = "SELECT statut FROM demandes_aide WHERE id = ?";
statement.setInt(1, demandeId); PreparedStatement checkStatement = connection.prepareStatement(checkSql);
statement.executeUpdate(); checkStatement.setInt(1, demandeId);
ResultSet resultSet = checkStatement.executeQuery();
JOptionPane.showMessageDialog(this, "Demande finalisée avec succès."); if (resultSet.next()) {
loadDemandesAcceptees(); // Recharger les demandes après la finalisation 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) { } catch (SQLException e) {
e.printStackTrace(); e.printStackTrace();
JOptionPane.showMessageDialog(this, "Erreur lors de la finalisation de la demande."); JOptionPane.showMessageDialog(this, "Erreur lors de la finalisation de la demande.");
} }
} }
} }

View file

@ -0,0 +1,72 @@
package controller;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class MainMenu extends JFrame {
private JButton ajouterUtilisateurButton;
private JButton soumettreDemandeButton;
private JButton consulterDemandeButton;
public MainMenu() {
setTitle("Menu Principal");
setSize(400, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setLayout(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
gbc.insets = new Insets(10, 10, 10, 10);
gbc.fill = GridBagConstraints.HORIZONTAL;
ajouterUtilisateurButton = new JButton("Ajouter un utilisateur");
gbc.gridx = 0;
gbc.gridy = 0;
add(ajouterUtilisateurButton, gbc);
soumettreDemandeButton = new JButton("Soumettre une demande d'aide");
gbc.gridx = 0;
gbc.gridy = 1;
add(soumettreDemandeButton, gbc);
consulterDemandeButton = new JButton("Consulter les demandes d'aide acceptées");
gbc.gridx = 0;
gbc.gridy = 2;
add(consulterDemandeButton, gbc);
ajouterUtilisateurButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
AjoutUtilisateur ajoutUtilisateur = new AjoutUtilisateur();
ajoutUtilisateur.setVisible(true);
dispose();
}
});
soumettreDemandeButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
SoumettreDemande soumettreDemande = new SoumettreDemande(1); // Test avec un utilisateur par défaut
soumettreDemande.setVisible(true);
dispose();
}
});
consulterDemandeButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
BenevoleDemandesPage benevoleDemandesPage = new BenevoleDemandesPage(1); // Test avec un utilisateur par défaut
benevoleDemandesPage.setVisible(true);
dispose();
}
});
}
public static void main(String[] args) {
MainMenu menu = new MainMenu();
menu.setVisible(true);
}
}