diff --git a/Ohj2HT/src/Luokat/Kalenteri.java b/Ohj2HT/src/Luokat/Kalenteri.java
index bc673b02fb70168631ecbd3c505330f3478342e0..34525d3a0710b8ade590a9bb12b3c98faef27a61 100644
--- a/Ohj2HT/src/Luokat/Kalenteri.java
+++ b/Ohj2HT/src/Luokat/Kalenteri.java
@@ -1,5 +1,7 @@
 package Luokat;
 
+import fi.jyu.mit.fxgui.Dialogs;
+
 /**
  * Pääluokka sisältää kaikki reissut ja samalla kaikki saaliit ja vieheet sekä laskurit
  */
@@ -37,4 +39,34 @@ public class Kalenteri {
     public Tulkki getVieheTulkki() { return vieheTulkki; }
 
     public Tulkki getKokoTulkki() { return kokoTulkki;  }
+
+    public boolean tallenna(int aluksi, int reissumaara) {
+        TiedostonHiplailija reissu = new TiedostonHiplailija(System.getProperty("user.dir") + "/../reissut.dat");
+        TiedostonHiplailija saalis = new TiedostonHiplailija(System.getProperty("user.dir")+ "/../saaliit.dat");
+        TiedostonHiplailija saalisLaskuri = new TiedostonHiplailija(System.getProperty("user.dir")+ "/../kalaLaskuri.dat");
+        TiedostonHiplailija vieheet = new TiedostonHiplailija(System.getProperty("user.dir")+ "/../vieheLaskuri.dat");
+        System.out.println(System.getProperty("user.dir"));
+        Tulkki lajit = new Tulkki(System.getProperty("user.dir") + "/../lajit.dat");
+        Tulkki vieheTulkki = new Tulkki(System.getProperty("user.dir") + "/../vieheTyypit.dat");
+        Tulkki kokoTulkki = new Tulkki(System.getProperty("user.dir") + "/../koot.dat");
+        for (int i = aluksi; i < reissumaara; i++){
+            System.out.println(reissut.getReissut().get(i));
+            reissu.kirjoita(reissut.getReissut().get(i).toString());
+
+            for (Saalis s : reissut.getReissut().get(i).getSaaliit()) {
+                saalis.kirjoita(s.tiedotTallenusMuodossa(lajit,vieheTulkki,kokoTulkki));
+            }
+        }
+        for (String s : kalaLaskuri.tallennusTiedot()){
+            saalisLaskuri.kirjoita(s);
+        }
+        for (String s : vieheLaskuri.tallennusTiedot()){
+            vieheet.kirjoita(s);
+        }
+        reissu.sulje();
+        saalis.sulje();
+        saalisLaskuri.sulje();
+        vieheet.sulje();
+        return true;
+    }
 }
diff --git a/Ohj2HT/src/Luokat/Laskuri.java b/Ohj2HT/src/Luokat/Laskuri.java
index 27200ea45ef3f27955e4cb046b0eed473918010d..3566abe0e18d3edb366e4da474a2f631af86c055 100644
--- a/Ohj2HT/src/Luokat/Laskuri.java
+++ b/Ohj2HT/src/Luokat/Laskuri.java
@@ -19,6 +19,17 @@ public class Laskuri {
 
     public Laskuri(String osoite, Tulkki tulkki) {
         this.tulkki = tulkki;
+        TiedostonHiplailija th = new TiedostonHiplailija(osoite);
+        List<String> tiedot  = th.lueRivit();
+        th.sulje();
+        for(String t: tiedot) {
+            int id = Integer.parseInt(t.split("\\|")[0]);
+            int maara = Integer.parseInt(t.split("\\|")[1]);
+            if (maara != 0){
+                arvot.put(id,maara);
+            }
+
+        }
     }
 
     public Laskuri(String[] tiedot,Tulkki tulkki) {
@@ -107,6 +118,12 @@ public class Laskuri {
         return arvot.get(id);
     }
 
+    public List<String> tallennusTiedot(){
+        List<String> tiedot = new ArrayList<>();
+        arvot.forEach((k,v) -> tiedot.add(k + "|" + v) );
+        return tiedot;
+    }
+
     public static void main(String[] args) {
     	   String[] tiedot = new String[] {"1|2", "2|4", "3|1", "4|5"};
         Tulkki lajit = new Tulkki(System.getProperty("user.dir") + "/../lajit.dat");
diff --git a/Ohj2HT/src/Luokat/Reissu.java b/Ohj2HT/src/Luokat/Reissu.java
index 2574e9f6eba0be5b17e64f30cee970968f688f6a..27e989863899d3fcfbef93862ba945c0e3f8812e 100644
--- a/Ohj2HT/src/Luokat/Reissu.java
+++ b/Ohj2HT/src/Luokat/Reissu.java
@@ -33,7 +33,6 @@ private boolean poistetaanko;
 
 	
     public int getTag() {
-    	
         return reissunTag;
     }
 
@@ -44,17 +43,12 @@ private boolean poistetaanko;
     	 DateTimeFormatter date = DateTimeFormatter.ofPattern("dd-MM-yyyy");
     	    return Pvm.format(date);
     }
-  
-
     public String getSijainti() {
         return sijainti;
     }
-
-
     public List<Saalis> getSaaliit() {
         return saaliit;
     }
-
     public String getKeli() {
         return keli;
     }
@@ -113,16 +107,23 @@ private boolean poistetaanko;
     
     public String toString() {
     	String tag = Integer.toString(reissunTag);
-    	 return  tag + "|" + Pvm + "|" + sijainti + "|" + keli;
+        String pvm = Pvm.format(DateTimeFormatter.ofPattern("dd-MM-yyyy")).replace('-', '.');
+    	 return  tag + "|" + pvm + "|" + sijainti + "|" + keli;
     }
    
     
     //helppo testi
     public static void main(String[] args) {
     	
-    	Reissu testi = new Reissu( sToDate("12-12-2025"), "Jyväskylä", "lumisade", new ArrayList<>(), false);
-    		System.out.println(testi);
-    		
+    	Reissu testi = new Reissu( sToDate("01.12.2025"), "Jyväskylä", "lumisade", new ArrayList<>(), false);
+        System.out.println(testi);
+    	LocalDate date = LocalDate.parse("01-12-2025", DateTimeFormatter.ofPattern("dd-MM-yyyy"));
+        LocalDate nyt = LocalDate.now();
+        if (nyt.isBefore(date)) {
+            System.out.println(nyt + " on myöhemmin kuin " + date);
+        }
+
+
     }
 }
 
diff --git a/Ohj2HT/src/Luokat/Saalis.java b/Ohj2HT/src/Luokat/Saalis.java
index 8050dead7a08ff2155621b9a597bcba28d669e66..1a5faaea38facf5590b38b1f1cdace42eacd09cb 100644
--- a/Ohj2HT/src/Luokat/Saalis.java
+++ b/Ohj2HT/src/Luokat/Saalis.java
@@ -9,7 +9,7 @@ public class Saalis {
     private final String koko;
     private final String laji;
     private int reissunTagi;
-    private Viehe viehe;
+    private final Viehe viehe;
     /**
      * muodostin merkkijono taulukosta, tarvitaan saaliin muodostamiseen tiedostosta
      * @param rivi mitä tietoja saaliin muodostamiseen tarvitaan
diff --git a/Ohj2HT/src/fxKalenteri/KalenteriGUIController.java b/Ohj2HT/src/fxKalenteri/KalenteriGUIController.java
index 569bb8f9cd864144de57ac7ea2ed30e2cfa0c44f..5a425315e684cff840656c76813b486e623f97ae 100644
--- a/Ohj2HT/src/fxKalenteri/KalenteriGUIController.java
+++ b/Ohj2HT/src/fxKalenteri/KalenteriGUIController.java
@@ -86,11 +86,15 @@ public class KalenteriGUIController implements Initializable {
         Saaliisi.setItems(FXCollections.observableArrayList(kalenteri.getKalaLaskuri().getArvotAsList()));
         reissumaara.set(kalenteri.getReissut().getReissut().size());
         saalismaara.set(kalenteri.getKalaLaskuri().getSumma());
-        parasViehe.set(kalenteri.getVieheTulkki().getValueFromId(kalenteri.getVieheLaskuri().getSuurinId()));
+        int paras = kalenteri.getVieheLaskuri().getSuurinId();
+        if (paras != -1){
+            parasViehe.set(kalenteri.getVieheTulkki().getValueFromId(paras));
+        }
 
     }
 
     private void tallenna() {
+<<<<<<< HEAD
         Dialogs.showMessageDialog("Tallennetetaan! Mutta ei toimi vielä");
         kalenteri.getReissut().sort();
         if ( reissumaara.get() - aluksi > 0){
@@ -110,12 +114,14 @@ public class KalenteriGUIController implements Initializable {
                 	sa.kirjoita(s.tiedotTallenusMuodossa(lajit,vieheTulkki,kokoTulkki));
                 	
                 }
+=======
+        if ( reissumaara.get() - aluksi > 0){
+            if (kalenteri.tallenna(aluksi, reissumaara.get())) {
+                Dialogs.showMessageDialog("Tallennus onnistui!");
+                aluksi = reissumaara.get();
+>>>>>>> 221eff0ca0b5d6fe1d360c1fa8c1591c4d1554d8
             }
-            t.sulje();
-            sa.sulje();
-            aluksi = reissumaara.get();
         }
-        
     }
 
 
@@ -195,16 +201,11 @@ public class KalenteriGUIController implements Initializable {
                  reissutLista.add(reissu.getPaivamaara() +" " + reissu.getSijainti(),reissu);
              }
          }
-         reissumaara.set(kalenteri.getReissut().getReissut().size());
-         saalismaara.set(kalenteri.getKalaLaskuri().getSumma());
-         int paras = kalenteri.getVieheLaskuri().getSuurinId();
-         if (paras != -1){
-             parasViehe.set(kalenteri.getVieheTulkki().getValueFromId(paras));
-         }
          this.reissuLkm.textProperty().bind(reissumaara.asString());
          this.saalisLkm.textProperty().bind(saalismaara.asString());
          this.lempiViehe.textProperty().bind(parasViehe);
          Saaliisi.setItems(FXCollections.observableArrayList(kalenteri.getKalaLaskuri().getArvotAsList()));
+         tekstienPaivitys();
     }
     
     
diff --git a/Ohj2HT/src/fxKalenteri/KalenteriGUIView.fxml b/Ohj2HT/src/fxKalenteri/KalenteriGUIView.fxml
index 1a41f563cb50b74577233f1d6e1faa7bc369dd07..0da7fdb73c06e41332b31840518017ccadbd5ffc 100644
--- a/Ohj2HT/src/fxKalenteri/KalenteriGUIView.fxml
+++ b/Ohj2HT/src/fxKalenteri/KalenteriGUIView.fxml
@@ -56,7 +56,7 @@
    <center>
       <ImageView fitHeight="409.0" fitWidth="330.0" pickOnBounds="true" preserveRatio="true" BorderPane.alignment="TOP_LEFT">
          <image>
-            <Image url="@../media/Kartta.png" />
+            <Image url="@../media/UusiKartta.png" />
          </image>
       </ImageView>
    </center>
diff --git a/kalaLaskuri.dat b/kalaLaskuri.dat
new file mode 100644
index 0000000000000000000000000000000000000000..bed0e998a9958facc6d3b4804e9f6c93129f318a
--- /dev/null
+++ b/kalaLaskuri.dat
@@ -0,0 +1,12 @@
+; saatujen kalalajien määrä, kenttien järjestys seuraava
+; lajinId|määrä
+
+1|3
+2|2
+4|1
+5|1
+1|3
+2|2
+3|1
+4|1
+5|1
diff --git a/reissut.dat b/reissut.dat
index de35b58d77a772a5cd7de1faa5357803b026a20d..c5e60e549fb30cc2c48317fa0e8a19d264b09564 100644
--- a/reissut.dat
+++ b/reissut.dat
@@ -6,3 +6,4 @@
 3|12.03.2024|Laukaa|Pilvinen
 4|17.11.2025|Vuontee|aurinkoinen
 5|16.11.2025|Tikkakoski|sateinen
+6|18.03.2025|Muurame|Aurinkoinen
diff --git a/saaliit.dat b/saaliit.dat
index 4fede98183678cd0123476eb3d66b7393f9ab4c9..41cbf295668bc1406e47fedae4d9a7f55e464c18 100644
--- a/saaliit.dat
+++ b/saaliit.dat
@@ -8,3 +8,4 @@
 5|1|3|4|3|sininen
 6|2|1|4|1|hopea
 7|5|1|5|1|kupari
+8|3|2|6|1|hopeinen
diff --git a/vieheLaskuri.dat b/vieheLaskuri.dat
new file mode 100644
index 0000000000000000000000000000000000000000..1e2f2948c3312d9a6247344bca73301e39938370
--- /dev/null
+++ b/vieheLaskuri.dat
@@ -0,0 +1,9 @@
+; Kenttien järjestys tiedostossa seuraava
+; Id|määrä
+
+1|5
+2|2
+3|1
+1|6
+2|2
+3|1