From 8cd7e2358722408bea17a5ab61aa0f0f0ad60752 Mon Sep 17 00:00:00 2001 From: laurimaaninka Date: Thu, 9 Apr 2026 23:35:21 +0300 Subject: [PATCH] Ominaisuus valmis? Signed-off-by: laurimaaninka --- .idea/dataSources.xml | 11 ++----- .idea/db-forest-config.xml | 10 ------- .../java/fi/lpam/dataluokat/Kuljetus.java | 29 +++++++++++++++++-- .../java/fi/lpam/gui/Asiakashallinta.java | 2 +- src/main/java/fi/lpam/gui/KuljetusListat.java | 4 +-- .../lpam/gui/elementit/KuljetaTableCell.java | 29 +++++-------------- 6 files changed, 38 insertions(+), 47 deletions(-) delete mode 100644 .idea/db-forest-config.xml diff --git a/.idea/dataSources.xml b/.idea/dataSources.xml index 3b5e717..6a3623d 100644 --- a/.idea/dataSources.xml +++ b/.idea/dataSources.xml @@ -1,18 +1,11 @@ - + sqlite.xerial true org.sqlite.JDBC - jdbc:sqlite:$PROJECT_DIR$/tietokanta.db - $ProjectFileDir$ - - - sqlite.xerial - true - org.sqlite.JDBC - jdbc:sqlite:C:\Users\TheHy\OneDrive\Kuljetusruokasovellus\tietokanta.db + jdbc:sqlite:C:\Users\TheHy\Ohjelmointi\Ruokamanageri\testikanta.db $ProjectFileDir$ diff --git a/.idea/db-forest-config.xml b/.idea/db-forest-config.xml deleted file mode 100644 index c79cc1a..0000000 --- a/.idea/db-forest-config.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - . - ---------------------------------------- - 1:0:8c9f99af-23ef-4827-90d5-7f18c4b74bec - 2:0:c8259506-eca1-4fc2-b380-a099ca4c8bb4 - . - - \ No newline at end of file diff --git a/src/main/java/fi/lpam/dataluokat/Kuljetus.java b/src/main/java/fi/lpam/dataluokat/Kuljetus.java index 1c3c01a..3a44a37 100644 --- a/src/main/java/fi/lpam/dataluokat/Kuljetus.java +++ b/src/main/java/fi/lpam/dataluokat/Kuljetus.java @@ -16,6 +16,21 @@ public class Kuljetus implements TietokantaOlio { private int salaatit, pääruoat, jälkiruoat; private String osoite, lisätieto, avainTieto, ruokarajoite; + public Kuljetus(Kuljetus vanha) { + this.id = vanha.id; + this.asiakasID = vanha.asiakasID; + this.nimi = vanha.nimi; + this.kuljetusPäivämäärä = vanha.kuljetusPäivämäärä; + this.kuljetusKierros = vanha.kuljetusKierros; + this.salaatit = vanha.salaatit; + this.pääruoat = vanha.pääruoat; + this.jälkiruoat = vanha.jälkiruoat; + this.osoite = vanha.osoite; + this.lisätieto = vanha.lisätieto; + this.avainTieto = vanha.avainTieto; + this.ruokarajoite = vanha.ruokarajoite; + } + public Kuljetus(Asiakas asiakas, LocalDate pvm, int kuljetusKierros) { this.asiakasID = asiakas.getId(); this.nimi = asiakas.getNimi(); @@ -276,9 +291,17 @@ public class Kuljetus implements TietokantaOlio { } public void palautaMäärät(Asiakas asiakas) { - setSalaatit(asiakas.getSalaatit()); - setPääruoat(asiakas.getPääruoat()); - setJälkiruoat(asiakas.getJälkiruoat()); + int kuljetusKerroin = switch (kuljetusPäivämäärä.getDayOfWeek()) { + case MONDAY -> asiakas.getMaanantaiKpl(); + case TUESDAY -> asiakas.getTiistaiKpl(); + case WEDNESDAY -> asiakas.getKeskiviikkoKpl(); + case THURSDAY -> asiakas.getTorstaiKpl(); + case FRIDAY -> asiakas.getPerjantaiKpl(); + default -> 0; + }; + setSalaatit(asiakas.getSalaatit() * kuljetusKerroin); + setPääruoat(asiakas.getPääruoat() * kuljetusKerroin); + setJälkiruoat(asiakas.getJälkiruoat() * kuljetusKerroin); setLisätieto(asiakas.getLisätiedot()); } diff --git a/src/main/java/fi/lpam/gui/Asiakashallinta.java b/src/main/java/fi/lpam/gui/Asiakashallinta.java index 72d308a..bcd2154 100644 --- a/src/main/java/fi/lpam/gui/Asiakashallinta.java +++ b/src/main/java/fi/lpam/gui/Asiakashallinta.java @@ -141,7 +141,7 @@ public class Asiakashallinta extends TabPohja { if (valittuAsiakas != null) { Alert alert = new Alert(Alert.AlertType.CONFIRMATION); alert.setTitle("Oletko varma?"); - alert.setHeaderText("Poistetaanko valittu valittu asiakas?"); + alert.setHeaderText("Poistetaanko valittu asiakas?"); alert.setContentText(valittuAsiakas.getNimi()); Optional result = alert.showAndWait(); if (result.isPresent() && result.get() == ButtonType.OK) { diff --git a/src/main/java/fi/lpam/gui/KuljetusListat.java b/src/main/java/fi/lpam/gui/KuljetusListat.java index 9f5c0e2..0639a07 100644 --- a/src/main/java/fi/lpam/gui/KuljetusListat.java +++ b/src/main/java/fi/lpam/gui/KuljetusListat.java @@ -9,7 +9,6 @@ import fi.lpam.gui.elementit.MaaraTableColumn; import fi.lpam.gui.elementit.TabPohja; import javafx.beans.property.SimpleBooleanProperty; -import javafx.beans.value.ObservableValue; import javafx.collections.FXCollections; import javafx.collections.ObservableList; import javafx.geometry.Pos; @@ -19,7 +18,6 @@ import javafx.scene.control.cell.PropertyValueFactory; import javafx.scene.control.cell.TextFieldTableCell; import javafx.scene.layout.BorderPane; import javafx.scene.layout.HBox; -import javafx.util.Callback; import java.time.LocalDate; import java.util.ArrayList; @@ -95,7 +93,7 @@ public class KuljetusListat extends TabPohja { TableColumn tcNappi = new TableColumn<>("Kuljeta"); tcNappi.setMinWidth(100); - tcNappi.setCellFactory(_ -> new KuljetaTableCell(asiakkaat, tableView)); + tcNappi.setCellFactory(_ -> new KuljetaTableCell(asiakkaat)); tcNappi.setCellValueFactory(features -> new SimpleBooleanProperty(features.getValue() != null)); TableColumn tcNimi = new TableColumn<>("Nimi"); diff --git a/src/main/java/fi/lpam/gui/elementit/KuljetaTableCell.java b/src/main/java/fi/lpam/gui/elementit/KuljetaTableCell.java index fc21d2b..8cc37bc 100644 --- a/src/main/java/fi/lpam/gui/elementit/KuljetaTableCell.java +++ b/src/main/java/fi/lpam/gui/elementit/KuljetaTableCell.java @@ -3,49 +3,36 @@ package fi.lpam.gui.elementit; import fi.lpam.dataluokat.Asiakas; import fi.lpam.dataluokat.Kuljetus; import fi.lpam.gui.KuljetusListat; -import javafx.collections.FXCollections; -import javafx.collections.ObservableList; import javafx.geometry.Insets; import javafx.scene.control.Button; import javafx.scene.control.ContentDisplay; import javafx.scene.control.TableCell; -import javafx.scene.control.TableView; import javafx.scene.layout.StackPane; -import java.sql.Array; -import java.util.ArrayList; -import java.util.Collections; import java.util.HashMap; public class KuljetaTableCell extends TableCell { - private final Button nappi = new Button("Vaihda"); private final StackPane paddedNappi = new StackPane(); - public KuljetaTableCell(final HashMap asiakkaat, final TableView table) { + public KuljetaTableCell(HashMap asiakkaat) { paddedNappi.setPadding(new Insets(3)); + Button nappi = new Button("Muuta"); paddedNappi.getChildren().add(nappi); - nappi.setOnAction(_ -> { + nappi.setOnMouseClicked(_ -> { + getTableView().getSelectionModel().select(getIndex()); Kuljetus kuljetus = getTableRow().getItem(); - System.out.println(kuljetus); + if (kuljetus == null) return; if (kuljetus.kuljetetaan()) { kuljetus.nollaa(); - System.out.println("Nollattu"); - System.out.println(kuljetus); + } else { + kuljetus.palautaMäärät(asiakkaat.get(kuljetus.getAsiakasID())); } - else { - Asiakas asiakas = asiakkaat.get(kuljetus.getAsiakasID()); - System.out.println(asiakas); - kuljetus.palautaMäärät(asiakas); - System.out.println("Palautettu"); - } - table.refresh(); + getTableRow().setItem(new Kuljetus(kuljetus)); KuljetusListat.tallennusStatus.setText("Tallennettu: Ei"); }); } - - /** places an add button in the row only if the row is not empty. */ @Override protected void updateItem(Boolean item, boolean empty) { super.updateItem(item, empty); if (!empty) {