Lounas-päivällinen erottelu kuljetuksiin #34

Merged
laurimaaninka merged 17 commits from lounas-päivällinen into master 2026-05-31 14:00:15 +03:00
Showing only changes of commit 3bfa82610c - Show all commits
+40 -12
View File
@@ -8,11 +8,17 @@ import java.util.ArrayList;
@SuppressWarnings("DuplicatedCode") @SuppressWarnings("DuplicatedCode")
public class Kuljetus implements TietokantaOlio { public class Kuljetus implements TietokantaOlio {
public enum Tyyppi {
LOUNAS(),
PÄIVÄLLINEN();
}
private int id = -1; private int id = -1;
private int asiakasID; private int asiakasID;
private String nimi; private String nimi;
private LocalDate kuljetusPäivämäärä; private LocalDate kuljetusPäivämäärä;
private int kuljetusKierros; private int kuljetusKierros;
private Tyyppi tyyppi;
private int salaatit, pääruoat, jälkiruoat; private int salaatit, pääruoat, jälkiruoat;
private String osoite, lisätieto, avainTieto, ruokarajoite; private String osoite, lisätieto, avainTieto, ruokarajoite;
@@ -22,6 +28,7 @@ public class Kuljetus implements TietokantaOlio {
this.nimi = vanha.nimi; this.nimi = vanha.nimi;
this.kuljetusPäivämäärä = vanha.kuljetusPäivämäärä; this.kuljetusPäivämäärä = vanha.kuljetusPäivämäärä;
this.kuljetusKierros = vanha.kuljetusKierros; this.kuljetusKierros = vanha.kuljetusKierros;
this.tyyppi = vanha.tyyppi;
this.salaatit = vanha.salaatit; this.salaatit = vanha.salaatit;
this.pääruoat = vanha.pääruoat; this.pääruoat = vanha.pääruoat;
this.jälkiruoat = vanha.jälkiruoat; this.jälkiruoat = vanha.jälkiruoat;
@@ -31,11 +38,12 @@ public class Kuljetus implements TietokantaOlio {
this.ruokarajoite = vanha.ruokarajoite; this.ruokarajoite = vanha.ruokarajoite;
} }
public Kuljetus(Asiakas asiakas, LocalDate pvm, int kuljetusKierros) { public Kuljetus(Asiakas asiakas, LocalDate pvm, int kuljetusKierros, Tyyppi tyyppi) {
this.asiakasID = asiakas.getId(); this.asiakasID = asiakas.getId();
this.nimi = asiakas.getNimi(); this.nimi = asiakas.getNimi();
this.kuljetusPäivämäärä = pvm; this.kuljetusPäivämäärä = pvm;
this.kuljetusKierros = kuljetusKierros; this.kuljetusKierros = kuljetusKierros;
this.tyyppi = tyyppi;
this.salaatit = asiakas.getPäivänSalaatit(pvm); this.salaatit = asiakas.getPäivänSalaatit(pvm);
this.pääruoat = asiakas.getPäivänPääruoat(pvm); this.pääruoat = asiakas.getPäivänPääruoat(pvm);
this.jälkiruoat = asiakas.getPäivänJälkiruoat(pvm); this.jälkiruoat = asiakas.getPäivänJälkiruoat(pvm);
@@ -45,7 +53,19 @@ public class Kuljetus implements TietokantaOlio {
this.ruokarajoite = asiakas.getErityisruokavalio(); this.ruokarajoite = asiakas.getErityisruokavalio();
} }
private Kuljetus(int id, int asiakasID, String nimi, LocalDate kuljetusPäivämäärä, int kuljetusKierros, int salaatit, int pääruoat, int jälkiruoat, String osoite, String lisätieto, String avainTieto, String ruokarajoite) { private Kuljetus(int id,
int asiakasID,
String nimi,
LocalDate kuljetusPäivämäärä,
int kuljetusKierros,
int salaatit,
int pääruoat,
int jälkiruoat,
String osoite,
String lisätieto,
String avainTieto,
String ruokarajoite,
Tyyppi tyyppi) {
this.id = id; this.id = id;
this.asiakasID = asiakasID; this.asiakasID = asiakasID;
this.nimi = nimi; this.nimi = nimi;
@@ -118,19 +138,20 @@ public class Kuljetus implements TietokantaOlio {
@Override @Override
public 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 = ?, 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);
stmt.setString(2, nimi); stmt.setString(2, nimi);
stmt.setDate(3, Date.valueOf(kuljetusPäivämäärä)); stmt.setDate(3, Date.valueOf(kuljetusPäivämäärä));
stmt.setInt(4, kuljetusKierros); stmt.setInt(4, kuljetusKierros);
stmt.setInt(5, salaatit); stmt.setString(5, tyyppi.toString());
stmt.setInt(6, pääruoat); stmt.setInt(6, salaatit);
stmt.setInt(7, jälkiruoat); stmt.setInt(7, pääruoat);
stmt.setString(8, ruokarajoite); stmt.setInt(8, jälkiruoat);
stmt.setString(9, osoite); stmt.setString(9, ruokarajoite);
stmt.setString(10, avainTieto); stmt.setString(10, osoite);
stmt.setString(11, lisätieto); stmt.setString(11, avainTieto);
stmt.setInt(12, id); stmt.setString(12, lisätieto);
stmt.setInt(13, id);
stmt.executeUpdate(); stmt.executeUpdate();
return true; return true;
} catch (SQLException e) { } catch (SQLException e) {
@@ -169,6 +190,12 @@ public class Kuljetus implements TietokantaOlio {
try { try {
while (rs.next()) { while (rs.next()) {
Tyyppi kuljetusTyyppi = Tyyppi.LOUNAS;
switch (rs.getString("tyyppi")) {
case "LOUNAS": kuljetusTyyppi = Tyyppi.LOUNAS; break;
case "PÄIVÄLLINEN": kuljetusTyyppi = Tyyppi.PÄIVÄLLINEN; break;
}
Kuljetus uusi = new Kuljetus( Kuljetus uusi = new Kuljetus(
rs.getInt("id"), rs.getInt("id"),
rs.getInt("asiakasID"), rs.getInt("asiakasID"),
@@ -181,7 +208,8 @@ public class Kuljetus implements TietokantaOlio {
rs.getString("osoite"), rs.getString("osoite"),
rs.getString("lisätieto"), rs.getString("lisätieto"),
rs.getString("avainTieto"), rs.getString("avainTieto"),
rs.getString("ruokarajoite") rs.getString("ruokarajoite"),
kuljetusTyyppi
); );
kuljetukset.add(uusi); kuljetukset.add(uusi);
} }