8 Commits

9 changed files with 122 additions and 160 deletions
+1 -1
View File
@@ -3,7 +3,7 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>fi.lpam.ruokamanageri</groupId> <groupId>fi.lpam.ruokamanageri</groupId>
<artifactId>Ruokamanageri</artifactId> <artifactId>Ruokamanageri</artifactId>
<version>4.0.0</version> <version>4.1.0</version>
<properties> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>25</maven.compiler.source> <maven.compiler.source>25</maven.compiler.source>
+64 -103
View File
@@ -1,6 +1,7 @@
package fi.lpam.dataluokat; package fi.lpam.dataluokat;
import fi.lpam.gui.virheDialogit.SiirtoVirhe; import fi.lpam.gui.virheDialogit.SiirtoVirhe;
import javafx.scene.control.Alert;
import java.sql.*; import java.sql.*;
import java.time.DayOfWeek; import java.time.DayOfWeek;
@@ -29,7 +30,6 @@ public class Asiakas implements TietokantaOlio {
} }
/** /**
* Vain MultiColumnListViewin käyttöön
* @param nimi Asiakkaan nimi * @param nimi Asiakkaan nimi
*/ */
public Asiakas(String nimi) { public Asiakas(String nimi) {
@@ -40,65 +40,9 @@ public class Asiakas implements TietokantaOlio {
* Kun luetaan asiakas tietokannasta * Kun luetaan asiakas tietokannasta
*/ */
private Asiakas(int id, private Asiakas(int id,
String nimi, String nimi) {
String osoite,
int maanantaiKpl,
int tiistaiKpl,
int keskiviikkoKpl,
int torstaiKpl,
int perjantaiKpl,
int salaatit,
int pääruoat,
int jälkiruoat,
String erityisruokavalio,
String avainTieto,
String lisätiedot,
String laskutusOsoite,
String yhteyshenkilönNimi,
String yhteyshenkilönPuhelinnumero,
String yhteyshenkilönSähköposti,
int lauantaiKpl,
int sunnuntaiKpl,
int dinnerMaanantaiKpl,
int dinnerTiistaiKpl,
int dinnerKeskiviikkoKpl,
int dinnerTorstaiKpl,
int dinnerPerjantaiKpl,
int dinnerLauantaiKpl,
int dinnerSunnuntaiKpl,
int dinnerSalaatit,
int dinnerPääruoat,
int dinnerJälkiruoat) {
this.id = id; this.id = id;
this.nimi = nimi; this.nimi = nimi;
this.osoite = osoite;
this.maanantaiKpl = maanantaiKpl;
this.tiistaiKpl = tiistaiKpl;
this.keskiviikkoKpl = keskiviikkoKpl;
this.torstaiKpl = torstaiKpl;
this.perjantaiKpl = perjantaiKpl;
this.lauantaiKpl = lauantaiKpl;
this.sunnuntaiKpl = sunnuntaiKpl;
this.salaatit = salaatit;
this.pääruoat = pääruoat;
this.jälkiruoat = jälkiruoat;
this.erityisruokavalio = erityisruokavalio;
this.avainTieto = avainTieto;
this.lisätiedot = lisätiedot;
this.laskutusOsoite = laskutusOsoite;
this.yhteyshenkilönNimi = yhteyshenkilönNimi;
this.yhteyshenkilönPuhelinnumero = yhteyshenkilönPuhelinnumero;
this.yhteyshenkilönSähköposti = yhteyshenkilönSähköposti;
this.dinnerMaanantaiKpl = dinnerMaanantaiKpl;
this.dinnerTiistaiKpl = dinnerTiistaiKpl;
this.dinnerKeskiviikkoKpl = dinnerKeskiviikkoKpl;
this.dinnerTorstaiKpl = dinnerTorstaiKpl;
this.dinnerPerjantaiKpl = dinnerPerjantaiKpl;
this.dinnerLauantaiKpl = dinnerLauantaiKpl;
this.dinnerSunnuntaiKpl = dinnerSunnuntaiKpl;
this.dinnerSalaatit = dinnerSalaatit;
this.dinnerPääruoat = dinnerPääruoat;
this.dinnerJälkiruoat = dinnerJälkiruoat;
} }
/** /**
@@ -106,15 +50,16 @@ public class Asiakas implements TietokantaOlio {
* @return ArrayList<Asiakas> * @return ArrayList<Asiakas>
*/ */
public static ArrayList<Asiakas> haeKaikki() { public static ArrayList<Asiakas> haeKaikki() {
ArrayList<Asiakas> asiakkaat = new ArrayList<>();
try (Connection tietokanta = Tietokanta.haeYhteys()) { try (Connection tietokanta = Tietokanta.haeYhteys()) {
Statement stmt = tietokanta.createStatement(); Statement stmt = tietokanta.createStatement();
ResultSet rs = stmt.executeQuery("select * from asiakkaat"); ResultSet rs = stmt.executeQuery("select id, nimi from asiakkaat");
return parsiResultSet(rs); asiakkaat = parsiResultSet(rs);
} catch (SQLException e) { } catch (SQLException e) {
SiirtoVirhe alert = new SiirtoVirhe(e); SiirtoVirhe alert = new SiirtoVirhe(e);
alert.showAndWait(); alert.showAndWait();
return null;
} }
return asiakkaat;
} }
/** /**
@@ -129,7 +74,7 @@ public class Asiakas implements TietokantaOlio {
sbIDt.append(", ").append(IDt[i]); sbIDt.append(", ").append(IDt[i]);
} }
try (Connection tietokanta = Tietokanta.haeYhteys()) { try (Connection tietokanta = Tietokanta.haeYhteys()) {
String sql = "select * from asiakkaat where id in (" + sbIDt + ")"; String sql = "select id, nimi from asiakkaat where id in (" + sbIDt + ")";
Statement stmt = tietokanta.createStatement(); Statement stmt = tietokanta.createStatement();
ResultSet rs = stmt.executeQuery(sql); ResultSet rs = stmt.executeQuery(sql);
@@ -149,49 +94,15 @@ public class Asiakas implements TietokantaOlio {
} }
/** /**
* Käsittelee ResultSettiä * Olettaa resultsetin sisältävän id:n ja nimen
* @param rs saatu ResultSet * @param rs saatu ResultSet
* @return ArrayList<Asiakas> * @return ArrayList<Asiakas>
*/ */
private static ArrayList<Asiakas> parsiResultSet(ResultSet rs) { private static ArrayList<Asiakas> parsiResultSet(ResultSet rs) {
ArrayList<Asiakas> asiakkaat = new ArrayList<>(); ArrayList<Asiakas> asiakkaat = new ArrayList<>();
try { try {
while (rs.next()) { while (rs.next()) {
int i = 1; asiakkaat.add(new Asiakas(rs.getInt("id"), rs.getString("nimi")));
Asiakas uusi = new Asiakas(
rs.getInt(i++),
rs.getString(i++),
rs.getString(i++),
rs.getInt(i++),
rs.getInt(i++),
rs.getInt(i++),
rs.getInt(i++),
rs.getInt(i++),
rs.getInt(i++),
rs.getInt(i++),
rs.getInt(i++),
rs.getString(i++),
rs.getString(i++),
rs.getString(i++),
rs.getString(i++),
rs.getString(i++),
rs.getString(i++),
rs.getString(i++),
rs.getInt(i++),
rs.getInt(i++),
rs.getInt(i++),
rs.getInt(i++),
rs.getInt(i++),
rs.getInt(i++),
rs.getInt(i++),
rs.getInt(i++),
rs.getInt(i++),
rs.getInt(i++),
rs.getInt(i++),
rs.getInt(i++)
);
asiakkaat.add(uusi);
} }
} }
catch (SQLException e) { catch (SQLException e) {
@@ -203,10 +114,8 @@ public class Asiakas implements TietokantaOlio {
/** /**
* Tallentaa uuden asiakkaan tietokantaan. Tietokanta luo automaattisesti id:n asiakkaalle. * Tallentaa uuden asiakkaan tietokantaan. Tietokanta luo automaattisesti id:n asiakkaalle.
*
*/ */
@Override private boolean tallennaUusi() {
public boolean tallennaUusi() {
try (Connection tietokanta = Tietokanta.haeYhteys()) { try (Connection tietokanta = Tietokanta.haeYhteys()) {
PreparedStatement stmt = tietokanta.prepareStatement("INSERT INTO asiakkaat (nimi, osoite, " + PreparedStatement stmt = tietokanta.prepareStatement("INSERT INTO asiakkaat (nimi, osoite, " +
"maanantaiKpl, tiistaiKpl, keskiviikkoKpl, torstaiKpl, perjantaiKpl, lauantaiKpl, sunnuntaiKpl, salaatit, pääruoat, jälkiruoat, " + "maanantaiKpl, tiistaiKpl, keskiviikkoKpl, torstaiKpl, perjantaiKpl, lauantaiKpl, sunnuntaiKpl, salaatit, pääruoat, jälkiruoat, " +
@@ -268,8 +177,7 @@ public class Asiakas implements TietokantaOlio {
/** /**
* Päivittää kutsuvan asiakkaan tiedot tietokantaan * Päivittää kutsuvan asiakkaan tiedot tietokantaan
*/ */
@Override private boolean päivitäTietokantaan() {
public boolean päivitäTietokantaan() {
try (Connection tietokanta = Tietokanta.haeYhteys()) { try (Connection tietokanta = Tietokanta.haeYhteys()) {
PreparedStatement stmt = tietokanta.prepareStatement("UPDATE asiakkaat set nimi = ?, osoite = ?, " + PreparedStatement stmt = tietokanta.prepareStatement("UPDATE asiakkaat set nimi = ?, osoite = ?, " +
"maanantaiKpl = ?, tiistaiKpl = ?, keskiviikkoKpl = ?, torstaiKpl = ?, perjantaiKpl = ?, lauantaiKpl = ?, sunnuntaiKpl = ?, salaatit = ?, pääruoat = ?, jälkiruoat = ?, " + "maanantaiKpl = ?, tiistaiKpl = ?, keskiviikkoKpl = ?, torstaiKpl = ?, perjantaiKpl = ?, lauantaiKpl = ?, sunnuntaiKpl = ?, salaatit = ?, pääruoat = ?, jälkiruoat = ?, " +
@@ -395,6 +303,53 @@ public class Asiakas implements TietokantaOlio {
}; };
} }
private String haeString(String sarake) {
try (Connection conn = Tietokanta.haeYhteys()) {
PreparedStatement stmt = conn.prepareStatement("select ? from asiakkaat where id = ?");
stmt.setString(1, sarake);
stmt.setInt(2, this.id);
ResultSet rs = stmt.executeQuery();
rs.next();
return rs.getString(1);
}
catch (Exception e) {
Alert alert = new SiirtoVirhe(e);
alert.showAndWait();
}
return null;
}
private int haeInt(String sarake) {
try (Connection conn = Tietokanta.haeYhteys()) {
PreparedStatement stmt = conn.prepareStatement("select ? from asiakkaat where id = ?");
stmt.setString(1, sarake);
stmt.setInt(2, this.id);
ResultSet rs = stmt.executeQuery();
rs.next();
return rs.getInt(1);
}
catch (Exception e) {
Alert alert = new SiirtoVirhe(e);
alert.showAndWait();
}
return 0;
}
private Date haeDate(String sarake) {
try (Connection conn = Tietokanta.haeYhteys()) {
PreparedStatement stmt = conn.prepareStatement("select ? from asiakkaat where id = ?");
stmt.setString(1, sarake);
stmt.setInt(2, this.id);
ResultSet rs = stmt.executeQuery();
rs.next();
return rs.getDate(1);
}
catch (Exception e) {
Alert alert = new SiirtoVirhe(e);
alert.showAndWait();
}
return null;
}
public int getId() { public int getId() {
return id; return id;
@@ -413,6 +368,9 @@ public class Asiakas implements TietokantaOlio {
} }
public String getOsoite() { public String getOsoite() {
if (osoite == null) {
osoite = haeString("osoite");
}
return osoite; return osoite;
} }
@@ -421,6 +379,9 @@ public class Asiakas implements TietokantaOlio {
} }
public int getMaanantaiKpl() { public int getMaanantaiKpl() {
if (maanantaiKpl == 0) {
maanantaiKpl = haeInt("maanantaiKpl");
}
return maanantaiKpl; return maanantaiKpl;
} }
@@ -86,8 +86,7 @@ public class Kierros implements TietokantaOlio {
} }
@Override private boolean tallennaUusi() {
public boolean tallennaUusi() {
try (Connection tietokanta = Tietokanta.haeYhteys()) { try (Connection tietokanta = Tietokanta.haeYhteys()) {
PreparedStatement stmt = tietokanta.prepareStatement("insert into kierrokset (kierrosNumero, asiakkaat) values (?, ?)", Statement.RETURN_GENERATED_KEYS); PreparedStatement stmt = tietokanta.prepareStatement("insert into kierrokset (kierrosNumero, asiakkaat) values (?, ?)", Statement.RETURN_GENERATED_KEYS);
stmt.setInt(1, kierrosNumero); stmt.setInt(1, kierrosNumero);
@@ -114,8 +113,7 @@ public class Kierros implements TietokantaOlio {
return true; return true;
} }
@Override private boolean päivitäTietokantaan() {
public boolean päivitäTietokantaan() {
try (Connection tietokanta = Tietokanta.haeYhteys()) { try (Connection tietokanta = Tietokanta.haeYhteys()) {
PreparedStatement stmt = tietokanta.prepareStatement("update kierrokset set asiakkaat = ?, kierrosnumero = ? where id = ?"); PreparedStatement stmt = tietokanta.prepareStatement("update kierrokset set asiakkaat = ?, kierrosnumero = ? where id = ?");
stmt.setString(1, muutaAsiakkaatMerkkijonoksi()); stmt.setString(1, muutaAsiakkaatMerkkijonoksi());
@@ -103,8 +103,7 @@ public class Kuljetus implements TietokantaOlio {
} }
} }
@Override private boolean tallennaUusi() {
public boolean tallennaUusi() {
try (Connection tietokanta = Tietokanta.haeYhteys()) { try (Connection tietokanta = Tietokanta.haeYhteys()) {
PreparedStatement stmt = tietokanta.prepareStatement("INSERT INTO kuljetukset (asiakasID, nimi, kuljetusPäivämäärä, kuljetusKierros, tyyppi, salaatit, pääruoat, jälkiruoat, ruokarajoite, osoite, avainTieto, lisätieto) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", Statement.RETURN_GENERATED_KEYS); PreparedStatement stmt = tietokanta.prepareStatement("INSERT INTO kuljetukset (asiakasID, nimi, kuljetusPäivämäärä, kuljetusKierros, tyyppi, salaatit, pääruoat, jälkiruoat, ruokarajoite, osoite, avainTieto, lisätieto) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", Statement.RETURN_GENERATED_KEYS);
stmt.setInt(1, asiakasID); stmt.setInt(1, asiakasID);
@@ -139,8 +138,7 @@ public class Kuljetus implements TietokantaOlio {
return true; return true;
} }
@Override private boolean päivitäTietokantaan() {
public boolean päivitäTietokantaan() {
try (Connection tietokanta = Tietokanta.haeYhteys()) { try (Connection tietokanta = Tietokanta.haeYhteys()) {
PreparedStatement stmt = tietokanta.prepareStatement("UPDATE kuljetukset set asiakasID = ?, nimi = ?, kuljetusPäivämäärä = ?, kuljetusKierros = ?, tyyppi = ?, salaatit = ?, pääruoat = ?, jälkiruoat = ?, ruokarajoite = ?, osoite = ?, avainTieto = ?, lisätieto = ? WHERE id = ?"); PreparedStatement stmt = tietokanta.prepareStatement("UPDATE kuljetukset set asiakasID = ?, nimi = ?, kuljetusPäivämäärä = ?, kuljetusKierros = ?, tyyppi = ?, salaatit = ?, pääruoat = ?, jälkiruoat = ?, ruokarajoite = ?, osoite = ?, avainTieto = ?, lisätieto = ? WHERE id = ?");
stmt.setInt(1, asiakasID); stmt.setInt(1, asiakasID);
@@ -1,12 +1,16 @@
package fi.lpam.dataluokat; package fi.lpam.dataluokat;
public interface TietokantaOlio { public interface TietokantaOlio {
/**
* Tallentaa joko uuden, tai päivittää olemassa olevaa riviä
* @return onnistuiko operaatio
*/
boolean tallenna();
boolean tallennaUusi(); /**
* Poistaa kutsuvan olion rivin tietokannasta
boolean päivitäTietokantaan(); * @return onnistuiko operaatio
*/
boolean poista(); boolean poista();
boolean tallenna();
} }
+38 -37
View File
@@ -7,7 +7,6 @@ import fi.lpam.gui.elementit.TabPohja;
import fi.lpam.Main; import fi.lpam.Main;
import javafx.geometry.Insets; import javafx.geometry.Insets;
import javafx.geometry.Pos; import javafx.geometry.Pos;
import javafx.geometry.Side;
import javafx.scene.Scene; import javafx.scene.Scene;
import javafx.scene.control.*; import javafx.scene.control.*;
import javafx.scene.image.Image; import javafx.scene.image.Image;
@@ -38,31 +37,19 @@ public class AsiakasIkkuna extends Stage {
this.setTitle("Uusi asiakas"); this.setTitle("Uusi asiakas");
} }
TabPane tabPane = new TabPane(); HBox hbTiedot = new HBox();
tabPane.setSide(Side.LEFT); hbTiedot.setOnKeyPressed(e -> {
int korkeus = 150;
tabPane.setTabMinWidth(korkeus);
tabPane.setTabMinWidth(korkeus);
tabPane.setTabMinHeight(35);
tabPane.setTabMaxHeight(35);
tabPane.setOnKeyPressed(e -> {
switch (e.getCode()) { switch (e.getCode()) {
case ENTER: tallenna(); break; case ENTER: tallenna(); break;
case ESCAPE: close(); break; case ESCAPE: close(); break;
default: break; default: break;
}}); }});
Tab tabLounastiedot, tabPäivällistiedot, tabAsiakastiedot;
tabLounastiedot = new TabPohja("Kuljetustiedot");
tabPäivällistiedot = new TabPohja("Päivällistiedot");
tabAsiakastiedot = new TabPohja("Asiakastiedot");
tabPane.getTabs().addAll(tabLounastiedot, tabPäivällistiedot, tabAsiakastiedot);
GridPane lounasTiedot = new GridPane(); GridPane lounasTiedot = new GridPane();
lounasTiedot.setPadding(new Insets(15)); lounasTiedot.setPadding(new Insets(15));
lounasTiedot.setHgap(10); lounasTiedot.setHgap(10);
lounasTiedot.setVgap(10); lounasTiedot.setVgap(10);
tabLounastiedot.setContent(lounasTiedot);
lounasTiedot.addRow(lounasTiedot.getRowCount(), new Label("Lounaat per kuljetus")); lounasTiedot.addRow(lounasTiedot.getRowCount(), new Label("Lounaat per kuljetus"));
@@ -106,27 +93,16 @@ public class AsiakasIkkuna extends Stage {
tfSunnuntai = new IntegerSpinner(); tfSunnuntai = new IntegerSpinner();
lounasTiedot.addRow(lounasTiedot.getRowCount(), new Label("Sunnuntai"), tfSunnuntai); lounasTiedot.addRow(lounasTiedot.getRowCount(), new Label("Sunnuntai"), tfSunnuntai);
Label ruokarajoitteet = new Label("Ruokarajoitteet");
tfRuokarajoitteet = new TextField();
lounasTiedot.addRow(lounasTiedot.getRowCount(), ruokarajoitteet, tfRuokarajoitteet);
Label avainTieto = new Label("Avaintieto");
tfAvainTieto = new TextField();
lounasTiedot.addRow(lounasTiedot.getRowCount(), avainTieto, tfAvainTieto);
Label lisätiedot = new Label("Kuljetuksen lisätiedot");
tfLisätiedot = new TextField();
tfLisätiedot.setPromptText("Näkyy raporteilla");
lounasTiedot.addRow(lounasTiedot.getRowCount(), lisätiedot, tfLisätiedot);
GridPane päivällisTiedot = new GridPane(); GridPane päivällisTiedot = new GridPane();
päivällisTiedot.setPadding(new Insets(15)); päivällisTiedot.setPadding(new Insets(15));
päivällisTiedot.setHgap(10); päivällisTiedot.setHgap(10);
päivällisTiedot.setVgap(10); päivällisTiedot.setVgap(10);
tabPäivällistiedot.setContent(päivällisTiedot);
päivällisTiedot.addRow(päivällisTiedot.getRowCount(), new Label("Päivälliset per kuljetus")); Button kopioiLounasPäivälliseen = new Button("Kopioi lounasmäärät");
kopioiLounasPäivälliseen.setOnAction(_->kopioiLounasmäärätPäivälliselle());
päivällisTiedot.addRow(päivällisTiedot.getRowCount(), new Label("Päivälliset per kuljetus"), kopioiLounasPäivälliseen);
tfDinnerSalaatit = new IntegerSpinner(); tfDinnerSalaatit = new IntegerSpinner();
päivällisTiedot.addRow(päivällisTiedot.getRowCount(), new Label("Salaatit"), tfDinnerSalaatit); päivällisTiedot.addRow(päivällisTiedot.getRowCount(), new Label("Salaatit"), tfDinnerSalaatit);
@@ -160,11 +136,12 @@ public class AsiakasIkkuna extends Stage {
tfDinnerSunnuntai = new IntegerSpinner(); tfDinnerSunnuntai = new IntegerSpinner();
päivällisTiedot.addRow(päivällisTiedot.getRowCount(), new Label("Sunnuntai"), tfDinnerSunnuntai); päivällisTiedot.addRow(päivällisTiedot.getRowCount(), new Label("Sunnuntai"), tfDinnerSunnuntai);
GridPane asiakasTiedot = new GridPane(); GridPane asiakasTiedot = new GridPane();
asiakasTiedot.setPadding(new Insets(15)); asiakasTiedot.setPadding(new Insets(15));
asiakasTiedot.setHgap(10); asiakasTiedot.setHgap(10);
asiakasTiedot.setVgap(10); asiakasTiedot.setVgap(10);
tabAsiakastiedot.setContent(asiakasTiedot);
Label nimi = new Label("Asiakkaan etu- ja sukunimi"); Label nimi = new Label("Asiakkaan etu- ja sukunimi");
nimi.setStyle("-fx-font-weight: bold;"); nimi.setStyle("-fx-font-weight: bold;");
@@ -194,6 +171,22 @@ public class AsiakasIkkuna extends Stage {
tfYhteyshenkilönSähköposti = new TextField(); tfYhteyshenkilönSähköposti = new TextField();
asiakasTiedot.addRow(asiakasTiedot.getRowCount(), yhteyshenkilönSähköposti, tfYhteyshenkilönSähköposti); asiakasTiedot.addRow(asiakasTiedot.getRowCount(), yhteyshenkilönSähköposti, tfYhteyshenkilönSähköposti);
Label ruokarajoitteet = new Label("Ruokarajoitteet");
tfRuokarajoitteet = new TextField();
asiakasTiedot.addRow(asiakasTiedot.getRowCount(), ruokarajoitteet, tfRuokarajoitteet);
Label avainTieto = new Label("Avaintieto");
tfAvainTieto = new TextField();
asiakasTiedot.addRow(asiakasTiedot.getRowCount(), avainTieto, tfAvainTieto);
Label lisätiedot = new Label("Kuljetuksen lisätiedot");
tfLisätiedot = new TextField();
tfLisätiedot.setPromptText("Näkyy raporteilla");
asiakasTiedot.addRow(asiakasTiedot.getRowCount(), lisätiedot, tfLisätiedot);
hbTiedot.getChildren().addAll(asiakasTiedot, lounasTiedot, päivällisTiedot);
HBox napit = new HBox(); HBox napit = new HBox();
Button peruuta = new Button("Peruuta"); Button peruuta = new Button("Peruuta");
peruuta.setFont(TabPohja.BUTTON_FONT); peruuta.setFont(TabPohja.BUTTON_FONT);
@@ -208,7 +201,7 @@ public class AsiakasIkkuna extends Stage {
VBox root = new VBox(); VBox root = new VBox();
root.getChildren().addAll(tabPane, napit); root.getChildren().addAll(hbTiedot, napit);
this.setScene(new Scene(root)); this.setScene(new Scene(root));
this.getIcons().add(new Image(Objects.requireNonNull(Main.class.getClassLoader().getResourceAsStream("kuljetusruokalaatikko.jpg")))); this.getIcons().add(new Image(Objects.requireNonNull(Main.class.getClassLoader().getResourceAsStream("kuljetusruokalaatikko.jpg"))));
this.setAlwaysOnTop(true); this.setAlwaysOnTop(true);
@@ -304,12 +297,7 @@ public class AsiakasIkkuna extends Stage {
int maxYritykset = 3; int maxYritykset = 3;
int yritykset = 0; int yritykset = 0;
while (!läpi) { while (!läpi) {
if (käsiteltäväAsiakas.getId() > 0) { läpi = käsiteltäväAsiakas.tallenna();
läpi = käsiteltäväAsiakas.päivitäTietokantaan();
}
else {
läpi = käsiteltäväAsiakas.tallennaUusi();
}
yritykset++; yritykset++;
if (yritykset > maxYritykset) { if (yritykset > maxYritykset) {
break; break;
@@ -337,4 +325,17 @@ public class AsiakasIkkuna extends Stage {
} }
this.setAlwaysOnTop(true); this.setAlwaysOnTop(true);
} }
private void kopioiLounasmäärätPäivälliselle() {
tfDinnerMaanantai.getValueFactory().setValue(tfMaanantai.getValue());
tfDinnerTiistai.getValueFactory().setValue(tfTiistai.getValue());
tfDinnerKeskiviikko.getValueFactory().setValue(tfKeskiviikko.getValue());
tfDinnerTorstai.getValueFactory().setValue(tfTorstai.getValue());
tfDinnerPerjantai.getValueFactory().setValue(tfPerjantai.getValue());
tfDinnerLauantai.getValueFactory().setValue(tfLauantai.getValue());
tfDinnerSunnuntai.getValueFactory().setValue(tfSunnuntai.getValue());
tfDinnerSalaatit.getValueFactory().setValue(tfSalaatit.getValue());
tfDinnerPääruoat.getValueFactory().setValue(tfPääruoat.getValue());
tfDinnerJälkiruoat.getValueFactory().setValue(tfJälkiruoat.getValue());
}
} }
@@ -192,11 +192,7 @@ public class KuljetusListat extends TabPohja {
private void tallennaKierros() { private void tallennaKierros() {
try { try {
for (Kuljetus kuljetus : tableView.getItems()) { for (Kuljetus kuljetus : tableView.getItems()) {
if (kuljetus.getId() > 0) { kuljetus.tallenna();
kuljetus.päivitäTietokantaan();
} else {
kuljetus.tallennaUusi();
}
} }
tallennusStatus.setText("Tallennettu: Kyllä"); tallennusStatus.setText("Tallennettu: Kyllä");
btnTulosta.setDisable(false); btnTulosta.setDisable(false);
@@ -12,7 +12,7 @@ public class KuljetusListaTulostaja extends Tulostaja{
public void luoKuljetusLista(ObservableList<Kuljetus> kuljetukset, int kierrosnumero) { public void luoKuljetusLista(ObservableList<Kuljetus> kuljetukset, int kierrosnumero) {
try { try {
sisältö.showText(kuljetukset.getFirst().getKuljetusPäivämäärä().format(DateTimeFormatter.ofPattern("dd/MM/yyyy")) + ", kierros: " + kierrosnumero); sisältö.showText(kuljetukset.getFirst().getKuljetusPäivämäärä().format(DateTimeFormatter.ofPattern("dd/MM/yyyy")) + ", kierros " + kierrosnumero + " " + kuljetukset.getFirst().getTyyppi());
uusiRivi(); uusiRivi();
for (Kuljetus kuljetus : kuljetukset) { for (Kuljetus kuljetus : kuljetukset) {
+4
View File
@@ -1,3 +1,7 @@
# 4.1.0
- Asiakasikkunaan nappi, jolla voi kopioida lounasmäärät päivälliselle
- Asiakasikkunan uudelleenjärjestely
# 4.0.0 # 4.0.0
- Kuljetuslistoista luodaan lounas- ja päivällislistat erikseen - Kuljetuslistoista luodaan lounas- ja päivällislistat erikseen
- Kuljetuslistalla asiakkaan nimeä ei voi enään muokata - Kuljetuslistalla asiakkaan nimeä ei voi enään muokata