From 7de2ea21a882680a08a9289995fe82913f0d8362 Mon Sep 17 00:00:00 2001
From: Haverinen Elias Viljami <elias.v.haverinen@student.jyu.fi>
Date: Wed, 26 Mar 2025 14:09:09 +0200
Subject: [PATCH] =?UTF-8?q?Nyt=20n=C3=A4ytt=C3=A4isi=20toimivan=20oikeelli?=
 =?UTF-8?q?suustarkastus=20vuoroja=20luodessa=20ja=20muokatessa?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../LisaaMuokkaaVuoroGUIController.java       | 63 ++++++++++++++++---
 .../src/vuororekisteri/Vuorot.java            |  1 -
 .../src/vuororekisteri/test/LajiTest.java     |  2 +-
 .../test/VuororekisteriTest.java              |  2 +-
 .../src/vuororekisteri/test/VuorotTest.java   |  6 +-
 5 files changed, 59 insertions(+), 15 deletions(-)

diff --git a/varausrekisteri/src/fxVuororekisteri/LisaaMuokkaaVuoroGUIController.java b/varausrekisteri/src/fxVuororekisteri/LisaaMuokkaaVuoroGUIController.java
index 09df7c9..46fd15e 100644
--- a/varausrekisteri/src/fxVuororekisteri/LisaaMuokkaaVuoroGUIController.java
+++ b/varausrekisteri/src/fxVuororekisteri/LisaaMuokkaaVuoroGUIController.java
@@ -93,6 +93,30 @@ public class LisaaMuokkaaVuoroGUIController implements ModalControllerInterface<
 
     }
 
+    /**
+     * Tässä tarkistetaan että ei ole tölläistä vuoroa jo olemassa, eikä ajat ole älyttömät ja pitää olla laji olemassa
+     * @return palauttaa true jos menee tarkastuksesta läpi false muuten
+     */
+    public boolean tarkistaVuoro(TextField aika, TextField laji, TextField sijainti, TextField taso) {
+
+        double alkuaika = Double.parseDouble(String.valueOf(textAika.getText()));
+        if ( !(alkuaika >= 0.0 && alkuaika <= 24.0) ) return false;
+
+        Laji laji2 = vuororekisteri.haeLajiVuorolle(textLaji.getText(), textSijainti.getText(), textTaso.getText());
+        if ( laji2 == null ) return false;
+        else {
+            int lajinid = laji2.getId();
+            for (int i = 0; i < vuororekisteri.getVuoroja(); i++) {
+                Vuoro vuoro2 = vuororekisteri.annaVuoro(i);
+                if (vuoro2.getLajiID() == lajinid && vuoro2.getAlkuaika() == alkuaika) {
+                    return false;
+                }
+            }
+        }
+
+        return true;
+    }
+
 
     /**
      * Kun painetaan nappia tallenna niin vuoro rekisteröidään eli sille annetaan id
@@ -106,33 +130,54 @@ public class LisaaMuokkaaVuoroGUIController implements ModalControllerInterface<
 
         if (muokattava == null) {
             this.vuoro = new Vuoro();
-            // vuoro.rekisteroiVuoro();
+
             if (textLaji.getText().isEmpty() || textSijainti.getText().isEmpty() || textTaso.getText().isEmpty() || textAika.getText().isEmpty()) {
-                vuoro.rekisteroiVuoro();
-                vuoro.asetaTesti();
-            } else {
+                if (tarkistaVuoro(aika, laji, sijainti, taso) == false) {
+                    Dialogs.showMessageDialog("tällänen vuoro on jo olemassa");
+                }
+                else {
+                    vuoro.rekisteroiVuoro();
+                    vuoro.asetaTesti();
+                }
+            }
+            else {
                 Laji lajiVuoroon = vuororekisteri.haeLajiVuorolle(textLaji.getText(), textSijainti.getText(), textTaso.getText());
                 if (lajiVuoroon == null) {
                     Dialogs.showMessageDialog("ei ole tuollasta lajia olemassa");
                 } else {
-                    vuoro.rekisteroiVuoro();
-                    vuoro.asetaTesti(lajiVuoroon.getId(), lajiVuoroon.getNimi(), lajiVuoroon.getSijainti(), lajiVuoroon.getTaso(), aika.getText());
+                    if (tarkistaVuoro(aika, laji, sijainti, taso) == false) {
+                        Dialogs.showMessageDialog("Tarkista alkuaika, ethän yrittänyt tehdä jo olemassa olevaa vuoroa");
+                    }
+                    else {
+                        vuoro.rekisteroiVuoro();
+                        vuoro.asetaTesti(lajiVuoroon.getId(), lajiVuoroon.getNimi(), lajiVuoroon.getSijainti(), lajiVuoroon.getTaso(), aika.getText());
+                    }
                 }
 
             }
         }
 
         else {
-            // int vuoroId = Integer.parseInt(Mjonot.erota(muokattava, ' '));
+
+            int n = 0;
             for (int i = 0; i < vuororekisteri.getVuoroja(); i++) {
                 Vuoro vuoro1 = vuororekisteri.annaVuoro(i);
                 if ( vuoro1.getVuoroID() == vuoroId ) {
-                    vuoro1.muokkaaVuoroa(String.valueOf(textAika.getText()));
+                    // Laji laji2 = vuororekisteri.lajiIdPerusteella(vuoro1.getLajiID());
+                    if (tarkistaVuoro(textAika, textLaji, textSijainti, textTaso) == false) {
+                        Dialogs.showMessageDialog("Tälläien vuoro on jo olemassa, valitse joku toinen aika");
+                    }
+                    else {
+                        vuoro1.muokkaaVuoroa(String.valueOf(textAika.getText()));
+                    }
                 }
+
+
             }
 
-        }
 
+        }
+        // Dialogs.showMessageDialog("Tälläien vuoro on jo olemassa, valitse joku toinen aika");
         ModalController.closeStage(buttonTallenna);
     }
 
diff --git a/varausrekisteri/src/vuororekisteri/Vuorot.java b/varausrekisteri/src/vuororekisteri/Vuorot.java
index df21cfa..45b637e 100644
--- a/varausrekisteri/src/vuororekisteri/Vuorot.java
+++ b/varausrekisteri/src/vuororekisteri/Vuorot.java
@@ -122,7 +122,6 @@ public class Vuorot {
      *             vuorot.lisaaVuoro(vuoro1);
      *             vuorot.lisaaVuoro(vuoro2);
      *             vuorot.lisaaVuoro(vuoro3);
-
      *
      *         } catch ( SailoException ex ) {
      *             System.out.println(ex.getMessage());
diff --git a/varausrekisteri/src/vuororekisteri/test/LajiTest.java b/varausrekisteri/src/vuororekisteri/test/LajiTest.java
index ac42efb..618e40f 100644
--- a/varausrekisteri/src/vuororekisteri/test/LajiTest.java
+++ b/varausrekisteri/src/vuororekisteri/test/LajiTest.java
@@ -8,7 +8,7 @@ import static vuororekisteri.Laji.*;
 
 /**
  * Test class made by ComTest
- * @version 2025.03.25 18:45:05 // Generated by ComTest
+ * @version 2025.03.26 10:08:32 // Generated by ComTest
  *
  */
 @SuppressWarnings({ "PMD" })
diff --git a/varausrekisteri/src/vuororekisteri/test/VuororekisteriTest.java b/varausrekisteri/src/vuororekisteri/test/VuororekisteriTest.java
index 37b6407..2a7db3a 100644
--- a/varausrekisteri/src/vuororekisteri/test/VuororekisteriTest.java
+++ b/varausrekisteri/src/vuororekisteri/test/VuororekisteriTest.java
@@ -7,7 +7,7 @@ import vuororekisteri.*;
 
 /**
  * Test class made by ComTest
- * @version 2025.03.25 18:37:12 // Generated by ComTest
+ * @version 2025.03.26 10:10:14 // Generated by ComTest
  *
  */
 @SuppressWarnings({ "PMD" })
diff --git a/varausrekisteri/src/vuororekisteri/test/VuorotTest.java b/varausrekisteri/src/vuororekisteri/test/VuorotTest.java
index 559f587..42ad32d 100644
--- a/varausrekisteri/src/vuororekisteri/test/VuorotTest.java
+++ b/varausrekisteri/src/vuororekisteri/test/VuorotTest.java
@@ -7,7 +7,7 @@ import vuororekisteri.*;
 
 /**
  * Test class made by ComTest
- * @version 2025.03.25 18:45:56 // Generated by ComTest
+ * @version 2025.03.26 10:08:12 // Generated by ComTest
  *
  */
 @SuppressWarnings({ "PMD" })
@@ -54,7 +54,7 @@ public class VuorotTest {
     } catch ( SailoException ex ) {
     System.out.println(ex.getMessage()); 
     }
-    assertEquals("From: Vuorot line: 131", 2, vuorot.annaVuoro(1).getLajiID()); 
-    assertEquals("From: Vuorot line: 132", 18.0, vuorot.annaVuoro(0).getAlkuaika(), 0.000001); 
+    assertEquals("From: Vuorot line: 130", 2, vuorot.annaVuoro(1).getLajiID()); 
+    assertEquals("From: Vuorot line: 131", 18.0, vuorot.annaVuoro(0).getAlkuaika(), 0.000001); 
   } // Generated by ComTest END
 }
\ No newline at end of file
-- 
GitLab