diff --git a/src/main/java/fi/lpam/dataluokat/Kuljetus.java b/src/main/java/fi/lpam/dataluokat/Kuljetus.java index a663ee2..e5efe97 100644 --- a/src/main/java/fi/lpam/dataluokat/Kuljetus.java +++ b/src/main/java/fi/lpam/dataluokat/Kuljetus.java @@ -8,11 +8,17 @@ import java.util.ArrayList; @SuppressWarnings("DuplicatedCode") public class Kuljetus implements TietokantaOlio { + public enum Tyyppi { + LOUNAS(), + PÄIVÄLLINEN(); + } + private int id = -1; private int asiakasID; private String nimi; private LocalDate kuljetusPäivämäärä; private int kuljetusKierros; + private Tyyppi tyyppi; private int salaatit, pääruoat, jälkiruoat; private String osoite, lisätieto, avainTieto, ruokarajoite; @@ -22,6 +28,7 @@ public class Kuljetus implements TietokantaOlio { this.nimi = vanha.nimi; this.kuljetusPäivämäärä = vanha.kuljetusPäivämäärä; this.kuljetusKierros = vanha.kuljetusKierros; + this.tyyppi = vanha.tyyppi; this.salaatit = vanha.salaatit; this.pääruoat = vanha.pääruoat; this.jälkiruoat = vanha.jälkiruoat; @@ -31,11 +38,12 @@ public class Kuljetus implements TietokantaOlio { 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.nimi = asiakas.getNimi(); this.kuljetusPäivämäärä = pvm; this.kuljetusKierros = kuljetusKierros; + this.tyyppi = tyyppi; this.salaatit = asiakas.getPäivänSalaatit(pvm); this.pääruoat = asiakas.getPäivänPääruoat(pvm); this.jälkiruoat = asiakas.getPäivänJälkiruoat(pvm); @@ -45,7 +53,19 @@ public class Kuljetus implements TietokantaOlio { 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.asiakasID = asiakasID; this.nimi = nimi; @@ -118,19 +138,20 @@ public class Kuljetus implements TietokantaOlio { @Override public boolean päivitäTietokantaan() { 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.setString(2, nimi); stmt.setDate(3, Date.valueOf(kuljetusPäivämäärä)); stmt.setInt(4, kuljetusKierros); - stmt.setInt(5, salaatit); - stmt.setInt(6, pääruoat); - stmt.setInt(7, jälkiruoat); - stmt.setString(8, ruokarajoite); - stmt.setString(9, osoite); - stmt.setString(10, avainTieto); - stmt.setString(11, lisätieto); - stmt.setInt(12, id); + stmt.setString(5, tyyppi.toString()); + stmt.setInt(6, salaatit); + stmt.setInt(7, pääruoat); + stmt.setInt(8, jälkiruoat); + stmt.setString(9, ruokarajoite); + stmt.setString(10, osoite); + stmt.setString(11, avainTieto); + stmt.setString(12, lisätieto); + stmt.setInt(13, id); stmt.executeUpdate(); return true; } catch (SQLException e) { @@ -169,6 +190,12 @@ public class Kuljetus implements TietokantaOlio { try { 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( rs.getInt("id"), rs.getInt("asiakasID"), @@ -181,7 +208,8 @@ public class Kuljetus implements TietokantaOlio { rs.getString("osoite"), rs.getString("lisätieto"), rs.getString("avainTieto"), - rs.getString("ruokarajoite") + rs.getString("ruokarajoite"), + kuljetusTyyppi ); kuljetukset.add(uusi); }