From 7fa2ccfd259d1966fb102457d63e82a83e22e5d2 Mon Sep 17 00:00:00 2001 From: laurimaaninka Date: Sat, 30 May 2026 01:31:34 +0300 Subject: [PATCH] =?UTF-8?q?#27=20Kuljetustyyppi=20raporteille=20Ominaisuus?= =?UTF-8?q?=20muodollisesti=20valmis,=20vaatii=20viel=C3=A4=20testausta?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: laurimaaninka --- src/main/java/fi/lpam/dataluokat/Asiakas.java | 13 ++++---- .../java/fi/lpam/dataluokat/Kuljetus.java | 8 ++--- .../java/fi/lpam/dataluokat/RaporttiRivi.java | 31 +++++++++++++------ .../java/fi/lpam/gui/KuljetusRaportit.java | 8 ++++- 4 files changed, 38 insertions(+), 22 deletions(-) diff --git a/src/main/java/fi/lpam/dataluokat/Asiakas.java b/src/main/java/fi/lpam/dataluokat/Asiakas.java index 6b343c9..521908d 100644 --- a/src/main/java/fi/lpam/dataluokat/Asiakas.java +++ b/src/main/java/fi/lpam/dataluokat/Asiakas.java @@ -1,7 +1,6 @@ package fi.lpam.dataluokat; import fi.lpam.gui.virheDialogit.SiirtoVirhe; -import org.apache.commons.lang3.NotImplementedException; import java.sql.*; import java.time.DayOfWeek; @@ -353,22 +352,22 @@ public class Asiakas implements TietokantaOlio { public int getKuljetuksenSalaatit(LocalDate päivä, Kuljetus.Tyyppi tyyppi) { return switch (tyyppi) { - case Kuljetus.Tyyppi.LOUNAS -> getLounasKuljetusKerroin(päivä) * getSalaatit(); - case Kuljetus.Tyyppi.PÄIVÄLLINEN -> getPäivällisKuljetusKerroin(päivä) * getDinnerSalaatit(); + case Kuljetus.Tyyppi.Lounas -> getLounasKuljetusKerroin(päivä) * getSalaatit(); + case Kuljetus.Tyyppi.Päivällinen -> getPäivällisKuljetusKerroin(päivä) * getDinnerSalaatit(); }; } public int getKuljetuksenPääruoat(LocalDate päivä, Kuljetus.Tyyppi tyyppi) { return switch (tyyppi) { - case Kuljetus.Tyyppi.LOUNAS -> getLounasKuljetusKerroin(päivä) * getPääruoat(); - case Kuljetus.Tyyppi.PÄIVÄLLINEN -> getPäivällisKuljetusKerroin(päivä) * getDinnerPääruoat(); + case Kuljetus.Tyyppi.Lounas -> getLounasKuljetusKerroin(päivä) * getPääruoat(); + case Kuljetus.Tyyppi.Päivällinen -> getPäivällisKuljetusKerroin(päivä) * getDinnerPääruoat(); }; } public int getKuljetuksenJälkiruoat(LocalDate päivä, Kuljetus.Tyyppi tyyppi) { return switch (tyyppi) { - case Kuljetus.Tyyppi.LOUNAS -> getLounasKuljetusKerroin(päivä) * getJälkiruoat(); - case Kuljetus.Tyyppi.PÄIVÄLLINEN -> getPäivällisKuljetusKerroin(päivä) * getDinnerJälkiruoat(); + case Kuljetus.Tyyppi.Lounas -> getLounasKuljetusKerroin(päivä) * getJälkiruoat(); + case Kuljetus.Tyyppi.Päivällinen -> getPäivällisKuljetusKerroin(päivä) * getDinnerJälkiruoat(); }; } diff --git a/src/main/java/fi/lpam/dataluokat/Kuljetus.java b/src/main/java/fi/lpam/dataluokat/Kuljetus.java index dc402cb..ae339b1 100644 --- a/src/main/java/fi/lpam/dataluokat/Kuljetus.java +++ b/src/main/java/fi/lpam/dataluokat/Kuljetus.java @@ -9,8 +9,8 @@ import java.util.ArrayList; @SuppressWarnings("DuplicatedCode") public class Kuljetus implements TietokantaOlio { public enum Tyyppi { - LOUNAS(), - PÄIVÄLLINEN(); + Lounas, + Päivällinen; } private int id = -1; @@ -208,8 +208,8 @@ public class Kuljetus implements TietokantaOlio { rs.getString("ruokarajoite"), Tyyppi.valueOf(rs.getString("tyyppi").strip()) ); - System.out.println(rs.getString("tyyppi").equals(Tyyppi.LOUNAS.toString())); - System.out.println(Tyyppi.LOUNAS); + System.out.println(rs.getString("tyyppi").equals(Tyyppi.Lounas.toString())); + System.out.println(Tyyppi.Lounas); System.out.println(uusi.getTyyppi()); System.out.println(Tyyppi.valueOf(rs.getString("tyyppi"))); kuljetukset.add(uusi); diff --git a/src/main/java/fi/lpam/dataluokat/RaporttiRivi.java b/src/main/java/fi/lpam/dataluokat/RaporttiRivi.java index 54d8ec1..10f95aa 100644 --- a/src/main/java/fi/lpam/dataluokat/RaporttiRivi.java +++ b/src/main/java/fi/lpam/dataluokat/RaporttiRivi.java @@ -10,12 +10,13 @@ import java.util.ArrayList; public class RaporttiRivi { private final String nimi; private final LocalDate pvm; + private final Kuljetus.Tyyppi tyyppi; private final int salaatit, pääruoat, jälkiruoat; private final String erva; private final String lisätiedot; private final String yhteyshenkilönNimi, laskutusOsoite, yhteyshenkilönPuhelinnumero, yhteyshenkilönSähköposti; - public RaporttiRivi(String nimi, + private RaporttiRivi(String nimi, LocalDate pvm, int salaatit, int pääruoat, @@ -25,9 +26,11 @@ public class RaporttiRivi { String laskutusOsoite, String yhteyshenkilönPuhelinnumero, String yhteyshenkilönSähköposti, - String erva) { + String erva, + Kuljetus.Tyyppi tyyppi) { this.nimi = nimi; this.pvm = pvm; + this.tyyppi = tyyppi; this.salaatit = salaatit; this.pääruoat = pääruoat; this.jälkiruoat = jälkiruoat; @@ -57,11 +60,12 @@ public class RaporttiRivi { asiakkaat.laskutusosoite, asiakkaat.yhteyshenkilönPuhelinnumero, asiakkaat.yhteyshenkilönSähköposti, - asiakkaat.erityisruokavalio + asiakkaat.erityisruokavalio, + kuljetukset.tyyppi from kuljetukset left join asiakkaat on kuljetukset.asiakasID=asiakkaat.id where kuljetusPäivämäärä between ? and ? - order by kuljetukset.nimi + order by kuljetukset.nimi, kuljetukset.kuljetusPäivämäärä, kuljetukset.tyyppi """); stmt.setDate(1, Date.valueOf(alkuPvm)); stmt.setDate(2, Date.valueOf(loppuPvm)); @@ -80,7 +84,8 @@ public class RaporttiRivi { rs.getString(i++), rs.getString(i++), rs.getString(i++), - rs.getString(i++) + rs.getString(i++), + Kuljetus.Tyyppi.valueOf(rs.getString(i++)) ); raportti.add(uusi); } @@ -99,12 +104,13 @@ public class RaporttiRivi { asiakkaat.laskutusosoite, asiakkaat.yhteyshenkilönPuhelinnumero, asiakkaat.yhteyshenkilönSähköposti, - asiakkaat.erityisruokavalio + asiakkaat.erityisruokavalio, + kuljetukset.tyyppi from kuljetukset left join asiakkaat on kuljetukset.asiakasID=asiakkaat.id where kuljetusPäivämäärä between ? and ? - group by kuljetukset.nimi - order by kuljetukset.nimi + group by kuljetukset.nimi, kuljetukset.tyyppi + order by kuljetukset.nimi, kuljetukset.kuljetusPäivämäärä, kuljetukset.tyyppi """); stmt.setString(1, "\n"); stmt.setDate(2, Date.valueOf(alkuPvm)); @@ -124,7 +130,8 @@ public class RaporttiRivi { rs.getString(i++), rs.getString(i++), rs.getString(i++), - rs.getString(i++) + rs.getString(i++), + Kuljetus.Tyyppi.valueOf(rs.getString(i++)) ); raportti.add(uusi); } @@ -145,7 +152,7 @@ public class RaporttiRivi { "\n" + yhteyshenkilönSähköposti; return nimi + " " + erva + - "\nSal: " + salaatit + ", Pr: " + pääruoat + ", Jr: " + jälkiruoat + + "\n" + tyyppi + " Sal: " + salaatit + ", Pr: " + pääruoat + ", Jr: " + jälkiruoat + "\nLisätiedot:\n" + getLisätiedot() + laskutustiedot.replace("\nnull", "").strip(); @@ -195,4 +202,8 @@ public class RaporttiRivi { public String getErva() { return erva; } + + public Kuljetus.Tyyppi getTyyppi() { + return tyyppi; + } } \ No newline at end of file diff --git a/src/main/java/fi/lpam/gui/KuljetusRaportit.java b/src/main/java/fi/lpam/gui/KuljetusRaportit.java index f792c2c..453aa59 100644 --- a/src/main/java/fi/lpam/gui/KuljetusRaportit.java +++ b/src/main/java/fi/lpam/gui/KuljetusRaportit.java @@ -1,6 +1,7 @@ package fi.lpam.gui; import fi.lpam.Main; +import fi.lpam.dataluokat.Kuljetus; import fi.lpam.dataluokat.RaporttiRivi; import fi.lpam.gui.elementit.FontLabel; import fi.lpam.tulostajat.KuljetusRaporttiTulostaja; @@ -75,6 +76,10 @@ public class KuljetusRaportit extends TabPohja { tcPvm.setCellFactory(_ ->new PaivamaaraTableCell()); tcPvm.setCellValueFactory(new PropertyValueFactory<>("pvm")); + TableColumn tcTyyppi = new TableColumn<>("Tyyppi"); + tcTyyppi.setMinWidth(150); + tcTyyppi.setCellValueFactory(new PropertyValueFactory<>("tyyppi")); + TableColumn tcSalaatit = new TableColumn<>("Salaatit"); tcSalaatit.setMinWidth(100); tcSalaatit.setCellValueFactory(new PropertyValueFactory<>("salaatit")); @@ -111,9 +116,10 @@ public class KuljetusRaportit extends TabPohja { tcYhteyshenkilönSähköposti.setMinWidth(200); tcYhteyshenkilönSähköposti.setCellValueFactory(new PropertyValueFactory<>("yhteyshenkilönSähköposti")); - tableView.getColumns().addAll(tcNimi, tcPvm, tcSalaatit, tcPääruoat, tcJälkiruoat, tcErva, tcLisätiedot, + tableView.getColumns().addAll(tcNimi, tcPvm, tcTyyppi, tcSalaatit, tcPääruoat, tcJälkiruoat, tcErva, tcLisätiedot, tcYhteyshenkilönNimi, tcLaskutusOsoite, tcYhteyshenkilönPuhelinnumero, tcYhteyshenkilönSähköposti); tableView.setPlaceholder(new FontLabel(BUTTON_FONT, "Hae raportti")); + for (TableColumn sarake : tableView.getColumns()) { sarake.setSortable(false); sarake.setEditable(false);