From 4881462c38ac7c04c8251b123a67d65326a3c70e Mon Sep 17 00:00:00 2001 From: Sami-Koe Ferreira Date: Sun, 13 Oct 2024 18:42:12 +0200 Subject: [PATCH] user story 9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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) --- .../java/controller/BenevoleDemandesPage.java | 31 ++++++-- src/main/java/controller/MainMenu.java | 72 +++++++++++++++++++ 2 files changed, 97 insertions(+), 6 deletions(-) create mode 100644 src/main/java/controller/MainMenu.java diff --git a/src/main/java/controller/BenevoleDemandesPage.java b/src/main/java/controller/BenevoleDemandesPage.java index a38f068..ffabf7b 100644 --- a/src/main/java/controller/BenevoleDemandesPage.java +++ b/src/main/java/controller/BenevoleDemandesPage.java @@ -132,16 +132,35 @@ public class BenevoleDemandesPage extends JFrame { int demandeId = (int) tableModel.getValueAt(selectedRow, 0); try (Connection connection = DatabaseConnection.getConnection()) { - String sql = "UPDATE demandes_aide SET statut = 'finalisée' WHERE id = ?"; - PreparedStatement statement = connection.prepareStatement(sql); - statement.setInt(1, demandeId); - statement.executeUpdate(); + // 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(); - JOptionPane.showMessageDialog(this, "Demande finalisée avec succès."); - loadDemandesAcceptees(); // Recharger les demandes après la finalisation + 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."); } + } + + } diff --git a/src/main/java/controller/MainMenu.java b/src/main/java/controller/MainMenu.java new file mode 100644 index 0000000..d678a25 --- /dev/null +++ b/src/main/java/controller/MainMenu.java @@ -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); + } +}