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); + } +}