Compare commits
22 Commits
f4eefc4ec1
..
master
| Author | SHA1 | Date | |
|---|---|---|---|
| 00267ebe72 | |||
| 05d124ac55 | |||
| 2ed9f81f75 | |||
| ebd76ab728 | |||
| c8b0ae911a | |||
| f192efda05 | |||
| 127c9d671b | |||
| 0634e8a13b | |||
| 15c935d6b7 | |||
| a6ea5890a1 | |||
| d19142da97 | |||
| ed76bab9a1 | |||
| f5c37241ad | |||
| 892b75b18f | |||
| 13110641b3 | |||
| 7fa2ccfd25 | |||
| 67b2b92b51 | |||
| 853bda3a4b | |||
| b4eecb3d67 | |||
| 4fef0d4fab | |||
| da30703af6 | |||
| a2e615770c |
@@ -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>3.2.1</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>
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
package fi.lpam.dataluokat;
|
package fi.lpam.dataluokat;
|
||||||
|
|
||||||
import fi.lpam.gui.virheDialogit.SiirtoVirhe;
|
import fi.lpam.gui.virheDialogit.SiirtoVirhe;
|
||||||
import org.apache.commons.lang3.NotImplementedException;
|
|
||||||
|
|
||||||
import java.sql.*;
|
import java.sql.*;
|
||||||
import java.time.DayOfWeek;
|
import java.time.DayOfWeek;
|
||||||
@@ -353,22 +352,22 @@ public class Asiakas implements TietokantaOlio {
|
|||||||
|
|
||||||
public int getKuljetuksenSalaatit(LocalDate päivä, Kuljetus.Tyyppi tyyppi) {
|
public int getKuljetuksenSalaatit(LocalDate päivä, Kuljetus.Tyyppi tyyppi) {
|
||||||
return switch (tyyppi) {
|
return switch (tyyppi) {
|
||||||
case Kuljetus.Tyyppi.LOUNAS -> getLounasKuljetusKerroin(päivä) * getSalaatit();
|
case Kuljetus.Tyyppi.Lounas -> getLounasKuljetusKerroin(päivä) * getSalaatit();
|
||||||
case Kuljetus.Tyyppi.PÄIVÄLLINEN -> getPäivällisKuljetusKerroin(päivä) * getDinnerSalaatit();
|
case Kuljetus.Tyyppi.Päivällinen -> getPäivällisKuljetusKerroin(päivä) * getDinnerSalaatit();
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getKuljetuksenPääruoat(LocalDate päivä, Kuljetus.Tyyppi tyyppi) {
|
public int getKuljetuksenPääruoat(LocalDate päivä, Kuljetus.Tyyppi tyyppi) {
|
||||||
return switch (tyyppi) {
|
return switch (tyyppi) {
|
||||||
case Kuljetus.Tyyppi.LOUNAS -> getLounasKuljetusKerroin(päivä) * getPääruoat();
|
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.Päivällinen -> getPäivällisKuljetusKerroin(päivä) * getDinnerPääruoat();
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getKuljetuksenJälkiruoat(LocalDate päivä, Kuljetus.Tyyppi tyyppi) {
|
public int getKuljetuksenJälkiruoat(LocalDate päivä, Kuljetus.Tyyppi tyyppi) {
|
||||||
return switch (tyyppi) {
|
return switch (tyyppi) {
|
||||||
case Kuljetus.Tyyppi.LOUNAS -> getLounasKuljetusKerroin(päivä) * getJälkiruoat();
|
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.Päivällinen -> getPäivällisKuljetusKerroin(päivä) * getDinnerJälkiruoat();
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -9,8 +9,8 @@ import java.util.ArrayList;
|
|||||||
@SuppressWarnings("DuplicatedCode")
|
@SuppressWarnings("DuplicatedCode")
|
||||||
public class Kuljetus implements TietokantaOlio {
|
public class Kuljetus implements TietokantaOlio {
|
||||||
public enum Tyyppi {
|
public enum Tyyppi {
|
||||||
LOUNAS(),
|
Lounas,
|
||||||
PÄIVÄLLINEN();
|
Päivällinen;
|
||||||
}
|
}
|
||||||
|
|
||||||
private int id = -1;
|
private int id = -1;
|
||||||
@@ -44,9 +44,9 @@ public class Kuljetus implements TietokantaOlio {
|
|||||||
this.kuljetusPäivämäärä = pvm;
|
this.kuljetusPäivämäärä = pvm;
|
||||||
this.kuljetusKierros = kuljetusKierros;
|
this.kuljetusKierros = kuljetusKierros;
|
||||||
this.tyyppi = tyyppi;
|
this.tyyppi = tyyppi;
|
||||||
this.salaatit = asiakas.getPäivänSalaatit(pvm);
|
this.salaatit = asiakas.getKuljetuksenSalaatit(pvm, tyyppi);
|
||||||
this.pääruoat = asiakas.getPäivänPääruoat(pvm);
|
this.pääruoat = asiakas.getKuljetuksenPääruoat(pvm, tyyppi);
|
||||||
this.jälkiruoat = asiakas.getPäivänJälkiruoat(pvm);
|
this.jälkiruoat = asiakas.getKuljetuksenJälkiruoat(pvm, tyyppi);
|
||||||
this.osoite = asiakas.getOsoite();
|
this.osoite = asiakas.getOsoite();
|
||||||
this.avainTieto = asiakas.getAvainTieto();
|
this.avainTieto = asiakas.getAvainTieto();
|
||||||
this.lisätieto = asiakas.getLisätiedot();
|
this.lisätieto = asiakas.getLisätiedot();
|
||||||
@@ -71,6 +71,7 @@ public class Kuljetus implements TietokantaOlio {
|
|||||||
this.nimi = nimi;
|
this.nimi = nimi;
|
||||||
this.kuljetusPäivämäärä = kuljetusPäivämäärä;
|
this.kuljetusPäivämäärä = kuljetusPäivämäärä;
|
||||||
this.kuljetusKierros = kuljetusKierros;
|
this.kuljetusKierros = kuljetusKierros;
|
||||||
|
this.tyyppi = tyyppi;
|
||||||
this.salaatit = salaatit;
|
this.salaatit = salaatit;
|
||||||
this.pääruoat = pääruoat;
|
this.pääruoat = pääruoat;
|
||||||
this.jälkiruoat = jälkiruoat;
|
this.jälkiruoat = jälkiruoat;
|
||||||
@@ -84,13 +85,15 @@ public class Kuljetus implements TietokantaOlio {
|
|||||||
* Hakee tietyn kierroksen kuljetukset
|
* Hakee tietyn kierroksen kuljetukset
|
||||||
* @param päivä kierroksen päivä
|
* @param päivä kierroksen päivä
|
||||||
* @param kuljetusKierros kierroksen numero
|
* @param kuljetusKierros kierroksen numero
|
||||||
|
* @param tyyppi kuljetuksen tyyppi
|
||||||
* @return valitun päivän valitun kierroksen kuljetukset
|
* @return valitun päivän valitun kierroksen kuljetukset
|
||||||
*/
|
*/
|
||||||
public static ArrayList<Kuljetus> haePäivänKuljetuksetKierroksella(LocalDate päivä, int kuljetusKierros) {
|
public static ArrayList<Kuljetus> haeKierroksenKuljetukset(LocalDate päivä, int kuljetusKierros, Tyyppi tyyppi) {
|
||||||
try (Connection tietokanta = Tietokanta.haeYhteys()) {
|
try (Connection tietokanta = Tietokanta.haeYhteys()) {
|
||||||
PreparedStatement stmt = tietokanta.prepareStatement("SELECT * FROM kuljetukset WHERE kuljetusKierros = ? and kuljetusPäivämäärä = ?");
|
PreparedStatement stmt = tietokanta.prepareStatement("SELECT * FROM kuljetukset WHERE kuljetusKierros = ? and kuljetusPäivämäärä = ? and tyyppi = ?");
|
||||||
stmt.setInt(1, kuljetusKierros);
|
stmt.setInt(1, kuljetusKierros);
|
||||||
stmt.setDate(2, Date.valueOf(päivä));
|
stmt.setDate(2, Date.valueOf(päivä));
|
||||||
|
stmt.setString(3, tyyppi.toString());
|
||||||
ResultSet rs = stmt.executeQuery();
|
ResultSet rs = stmt.executeQuery();
|
||||||
return parsiResultSet(rs);
|
return parsiResultSet(rs);
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
@@ -103,18 +106,19 @@ public class Kuljetus implements TietokantaOlio {
|
|||||||
@Override
|
@Override
|
||||||
public 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, 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);
|
||||||
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.setString(12, lisätieto);
|
||||||
int muokatutRivit = stmt.executeUpdate();
|
int muokatutRivit = stmt.executeUpdate();
|
||||||
|
|
||||||
if (muokatutRivit == 0) {
|
if (muokatutRivit == 0) {
|
||||||
@@ -190,12 +194,6 @@ 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"),
|
||||||
@@ -209,8 +207,12 @@ public class Kuljetus implements TietokantaOlio {
|
|||||||
rs.getString("lisätieto"),
|
rs.getString("lisätieto"),
|
||||||
rs.getString("avainTieto"),
|
rs.getString("avainTieto"),
|
||||||
rs.getString("ruokarajoite"),
|
rs.getString("ruokarajoite"),
|
||||||
kuljetusTyyppi
|
Tyyppi.valueOf(rs.getString("tyyppi").strip())
|
||||||
);
|
);
|
||||||
|
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);
|
kuljetukset.add(uusi);
|
||||||
}
|
}
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
@@ -228,6 +230,7 @@ public class Kuljetus implements TietokantaOlio {
|
|||||||
", nimi='" + nimi + '\'' +
|
", nimi='" + nimi + '\'' +
|
||||||
", kuljetusPäivämäärä=" + kuljetusPäivämäärä +
|
", kuljetusPäivämäärä=" + kuljetusPäivämäärä +
|
||||||
", kuljetusKierros=" + kuljetusKierros +
|
", kuljetusKierros=" + kuljetusKierros +
|
||||||
|
", tyyppi =" + tyyppi +
|
||||||
", salaatit=" + salaatit +
|
", salaatit=" + salaatit +
|
||||||
", pääruoat=" + pääruoat +
|
", pääruoat=" + pääruoat +
|
||||||
", jälkiruoat=" + jälkiruoat +
|
", jälkiruoat=" + jälkiruoat +
|
||||||
@@ -246,9 +249,9 @@ public class Kuljetus implements TietokantaOlio {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void palautaMäärät(Asiakas asiakas) {
|
public void palautaMäärät(Asiakas asiakas) {
|
||||||
setSalaatit(asiakas.getPäivänSalaatit(kuljetusPäivämäärä));
|
setSalaatit(asiakas.getKuljetuksenSalaatit(kuljetusPäivämäärä, tyyppi));
|
||||||
setPääruoat(asiakas.getPäivänPääruoat(kuljetusPäivämäärä));
|
setPääruoat(asiakas.getKuljetuksenPääruoat(kuljetusPäivämäärä, tyyppi));
|
||||||
setJälkiruoat(asiakas.getPäivänJälkiruoat(kuljetusPäivämäärä));
|
setJälkiruoat(asiakas.getKuljetuksenJälkiruoat(kuljetusPäivämäärä, tyyppi));
|
||||||
setLisätieto(asiakas.getLisätiedot());
|
setLisätieto(asiakas.getLisätiedot());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -351,4 +354,12 @@ public class Kuljetus implements TietokantaOlio {
|
|||||||
public void setRuokarajoite(String ruokarajoite) {
|
public void setRuokarajoite(String ruokarajoite) {
|
||||||
this.ruokarajoite = ruokarajoite;
|
this.ruokarajoite = ruokarajoite;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Tyyppi getTyyppi() {
|
||||||
|
return tyyppi;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTyyppi(Tyyppi tyyppi) {
|
||||||
|
this.tyyppi = tyyppi;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -10,12 +10,13 @@ import java.util.ArrayList;
|
|||||||
public class RaporttiRivi {
|
public class RaporttiRivi {
|
||||||
private final String nimi;
|
private final String nimi;
|
||||||
private final LocalDate pvm;
|
private final LocalDate pvm;
|
||||||
|
private final Kuljetus.Tyyppi tyyppi;
|
||||||
private final int salaatit, pääruoat, jälkiruoat;
|
private final int salaatit, pääruoat, jälkiruoat;
|
||||||
private final String erva;
|
private final String erva;
|
||||||
private final String lisätiedot;
|
private final String lisätiedot;
|
||||||
private final String yhteyshenkilönNimi, laskutusOsoite, yhteyshenkilönPuhelinnumero, yhteyshenkilönSähköposti;
|
private final String yhteyshenkilönNimi, laskutusOsoite, yhteyshenkilönPuhelinnumero, yhteyshenkilönSähköposti;
|
||||||
|
|
||||||
public RaporttiRivi(String nimi,
|
private RaporttiRivi(String nimi,
|
||||||
LocalDate pvm,
|
LocalDate pvm,
|
||||||
int salaatit,
|
int salaatit,
|
||||||
int pääruoat,
|
int pääruoat,
|
||||||
@@ -25,9 +26,11 @@ public class RaporttiRivi {
|
|||||||
String laskutusOsoite,
|
String laskutusOsoite,
|
||||||
String yhteyshenkilönPuhelinnumero,
|
String yhteyshenkilönPuhelinnumero,
|
||||||
String yhteyshenkilönSähköposti,
|
String yhteyshenkilönSähköposti,
|
||||||
String erva) {
|
String erva,
|
||||||
|
Kuljetus.Tyyppi tyyppi) {
|
||||||
this.nimi = nimi;
|
this.nimi = nimi;
|
||||||
this.pvm = pvm;
|
this.pvm = pvm;
|
||||||
|
this.tyyppi = tyyppi;
|
||||||
this.salaatit = salaatit;
|
this.salaatit = salaatit;
|
||||||
this.pääruoat = pääruoat;
|
this.pääruoat = pääruoat;
|
||||||
this.jälkiruoat = jälkiruoat;
|
this.jälkiruoat = jälkiruoat;
|
||||||
@@ -57,11 +60,12 @@ public class RaporttiRivi {
|
|||||||
asiakkaat.laskutusosoite,
|
asiakkaat.laskutusosoite,
|
||||||
asiakkaat.yhteyshenkilönPuhelinnumero,
|
asiakkaat.yhteyshenkilönPuhelinnumero,
|
||||||
asiakkaat.yhteyshenkilönSähköposti,
|
asiakkaat.yhteyshenkilönSähköposti,
|
||||||
asiakkaat.erityisruokavalio
|
asiakkaat.erityisruokavalio,
|
||||||
|
kuljetukset.tyyppi
|
||||||
from kuljetukset
|
from kuljetukset
|
||||||
left join asiakkaat on kuljetukset.asiakasID=asiakkaat.id
|
left join asiakkaat on kuljetukset.asiakasID=asiakkaat.id
|
||||||
where kuljetusPäivämäärä between ? and ?
|
where (kuljetusPäivämäärä between ? and ?) and (kuljetukset.salaatit > 0 or kuljetukset.pääruoat > 0 or kuljetukset.jälkiruoat > 0 or LENGTH(kuljetukset.lisätieto) > 3)
|
||||||
order by kuljetukset.nimi
|
order by asiakkaat.yhteyshenkilönNimi DESC, kuljetukset.nimi, kuljetukset.kuljetusPäivämäärä, kuljetukset.tyyppi
|
||||||
""");
|
""");
|
||||||
stmt.setDate(1, Date.valueOf(alkuPvm));
|
stmt.setDate(1, Date.valueOf(alkuPvm));
|
||||||
stmt.setDate(2, Date.valueOf(loppuPvm));
|
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++),
|
rs.getString(i++),
|
||||||
rs.getString(i++)
|
rs.getString(i++),
|
||||||
|
Kuljetus.Tyyppi.valueOf(rs.getString(i++))
|
||||||
);
|
);
|
||||||
raportti.add(uusi);
|
raportti.add(uusi);
|
||||||
}
|
}
|
||||||
@@ -99,12 +104,13 @@ public class RaporttiRivi {
|
|||||||
asiakkaat.laskutusosoite,
|
asiakkaat.laskutusosoite,
|
||||||
asiakkaat.yhteyshenkilönPuhelinnumero,
|
asiakkaat.yhteyshenkilönPuhelinnumero,
|
||||||
asiakkaat.yhteyshenkilönSähköposti,
|
asiakkaat.yhteyshenkilönSähköposti,
|
||||||
asiakkaat.erityisruokavalio
|
asiakkaat.erityisruokavalio,
|
||||||
|
kuljetukset.tyyppi
|
||||||
from kuljetukset
|
from kuljetukset
|
||||||
left join asiakkaat on kuljetukset.asiakasID=asiakkaat.id
|
left join asiakkaat on kuljetukset.asiakasID=asiakkaat.id
|
||||||
where kuljetusPäivämäärä between ? and ?
|
where (kuljetusPäivämäärä between ? and ?) and (kuljetukset.salaatit > 0 or kuljetukset.pääruoat > 0 or kuljetukset.jälkiruoat > 0 or LENGTH(kuljetukset.lisätieto) > 3)
|
||||||
group by kuljetukset.nimi
|
group by kuljetukset.asiakasID, kuljetukset.tyyppi
|
||||||
order by kuljetukset.nimi
|
order by asiakkaat.yhteyshenkilönNimi DESC, kuljetukset.nimi, kuljetukset.kuljetusPäivämäärä, kuljetukset.tyyppi
|
||||||
""");
|
""");
|
||||||
stmt.setString(1, "\n");
|
stmt.setString(1, "\n");
|
||||||
stmt.setDate(2, Date.valueOf(alkuPvm));
|
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++),
|
rs.getString(i++),
|
||||||
rs.getString(i++)
|
rs.getString(i++),
|
||||||
|
Kuljetus.Tyyppi.valueOf(rs.getString(i++))
|
||||||
);
|
);
|
||||||
raportti.add(uusi);
|
raportti.add(uusi);
|
||||||
}
|
}
|
||||||
@@ -145,7 +152,7 @@ public class RaporttiRivi {
|
|||||||
"\n" + yhteyshenkilönSähköposti;
|
"\n" + yhteyshenkilönSähköposti;
|
||||||
|
|
||||||
return nimi + " " + erva +
|
return nimi + " " + erva +
|
||||||
"\nSal: " + salaatit + ", Pr: " + pääruoat + ", Jr: " + jälkiruoat +
|
"\n" + tyyppi + " Sal: " + salaatit + ", Pr: " + pääruoat + ", Jr: " + jälkiruoat +
|
||||||
"\nLisätiedot:\n" +
|
"\nLisätiedot:\n" +
|
||||||
getLisätiedot() +
|
getLisätiedot() +
|
||||||
laskutustiedot.replace("\nnull", "").strip();
|
laskutustiedot.replace("\nnull", "").strip();
|
||||||
@@ -195,4 +202,8 @@ public class RaporttiRivi {
|
|||||||
public String getErva() {
|
public String getErva() {
|
||||||
return erva;
|
return erva;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Kuljetus.Tyyppi getTyyppi() {
|
||||||
|
return tyyppi;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -23,6 +23,7 @@ public class AsiakasIkkuna extends Stage {
|
|||||||
final Asiakas käsiteltäväAsiakas;
|
final Asiakas käsiteltäväAsiakas;
|
||||||
final TextField tfNimi, tfOsoite, tfRuokarajoitteet, tfAvainTieto, tfLisätiedot, tfYhteyshenkilönNimi, tfLaskutusOsoite, tfYhteyshenkilönPuhelinnumero, tfYhteyshenkilönSähköposti;
|
final TextField tfNimi, tfOsoite, tfRuokarajoitteet, tfAvainTieto, tfLisätiedot, tfYhteyshenkilönNimi, tfLaskutusOsoite, tfYhteyshenkilönPuhelinnumero, tfYhteyshenkilönSähköposti;
|
||||||
final IntegerSpinner tfMaanantai, tfTiistai, tfKeskiviikko, tfTorstai, tfPerjantai, tfLauantai, tfSunnuntai, tfSalaatit, tfPääruoat, tfJälkiruoat;
|
final IntegerSpinner tfMaanantai, tfTiistai, tfKeskiviikko, tfTorstai, tfPerjantai, tfLauantai, tfSunnuntai, tfSalaatit, tfPääruoat, tfJälkiruoat;
|
||||||
|
final IntegerSpinner tfDinnerMaanantai, tfDinnerTiistai, tfDinnerKeskiviikko, tfDinnerTorstai, tfDinnerPerjantai, tfDinnerLauantai, tfDinnerSunnuntai, tfDinnerSalaatit, tfDinnerPääruoat, tfDinnerJälkiruoat;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Luo ikkunan jossa muokataan saatua asiakasta
|
* Luo ikkunan jossa muokataan saatua asiakasta
|
||||||
@@ -37,92 +38,111 @@ 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 tabKuljetusTiedot, tabAsiakastiedot;
|
|
||||||
tabKuljetusTiedot = new TabPohja("Kuljetustiedot");
|
|
||||||
tabAsiakastiedot = new TabPohja("Asiakastiedot");
|
|
||||||
tabPane.getTabs().addAll(tabKuljetusTiedot, tabAsiakastiedot);
|
|
||||||
|
|
||||||
GridPane kuljetusTiedot = new GridPane();
|
GridPane lounasTiedot = new GridPane();
|
||||||
kuljetusTiedot.setPadding(new Insets(15));
|
lounasTiedot.setPadding(new Insets(15));
|
||||||
kuljetusTiedot.setHgap(10);
|
lounasTiedot.setHgap(10);
|
||||||
kuljetusTiedot.setVgap(10);
|
lounasTiedot.setVgap(10);
|
||||||
tabKuljetusTiedot.setContent(kuljetusTiedot);
|
|
||||||
|
|
||||||
kuljetusTiedot.addRow(kuljetusTiedot.getRowCount(), new Label("Määrät per kuljetus"));
|
lounasTiedot.addRow(lounasTiedot.getRowCount(), new Label("Lounaat per kuljetus"));
|
||||||
|
|
||||||
Label salaatit = new Label("Salaatit");
|
Label salaatit = new Label("Salaatit");
|
||||||
tfSalaatit = new IntegerSpinner();
|
tfSalaatit = new IntegerSpinner();
|
||||||
kuljetusTiedot.addRow(kuljetusTiedot.getRowCount(), salaatit, tfSalaatit);
|
lounasTiedot.addRow(lounasTiedot.getRowCount(), salaatit, tfSalaatit);
|
||||||
|
|
||||||
Label pääruoat = new Label("Pääruoat");
|
Label pääruoat = new Label("Pääruoat");
|
||||||
tfPääruoat = new IntegerSpinner();
|
tfPääruoat = new IntegerSpinner();
|
||||||
kuljetusTiedot.addRow(kuljetusTiedot.getRowCount(), pääruoat, tfPääruoat);
|
lounasTiedot.addRow(lounasTiedot.getRowCount(), pääruoat, tfPääruoat);
|
||||||
|
|
||||||
Label jälkiruoat = new Label("Jälkiruoat");
|
Label jälkiruoat = new Label("Jälkiruoat");
|
||||||
tfJälkiruoat = new IntegerSpinner();
|
tfJälkiruoat = new IntegerSpinner();
|
||||||
kuljetusTiedot.addRow(kuljetusTiedot.getRowCount(), jälkiruoat, tfJälkiruoat);
|
lounasTiedot.addRow(lounasTiedot.getRowCount(), jälkiruoat, tfJälkiruoat);
|
||||||
|
|
||||||
kuljetusTiedot.addRow(kuljetusTiedot.getRowCount(), new Label("Kuljetukset per päivä"));
|
lounasTiedot.addRow(lounasTiedot.getRowCount(), new Label("Kuljetukset per päivä"));
|
||||||
|
|
||||||
Label maanantai = new Label("Maanantai");
|
Label maanantai = new Label("Maanantai");
|
||||||
tfMaanantai = new IntegerSpinner();
|
tfMaanantai = new IntegerSpinner();
|
||||||
kuljetusTiedot.addRow(kuljetusTiedot.getRowCount(), maanantai, tfMaanantai);
|
lounasTiedot.addRow(lounasTiedot.getRowCount(), maanantai, tfMaanantai);
|
||||||
|
|
||||||
Label tiistai = new Label("Tiistai");
|
Label tiistai = new Label("Tiistai");
|
||||||
tfTiistai = new IntegerSpinner();
|
tfTiistai = new IntegerSpinner();
|
||||||
kuljetusTiedot.addRow(kuljetusTiedot.getRowCount(), tiistai, tfTiistai);
|
lounasTiedot.addRow(lounasTiedot.getRowCount(), tiistai, tfTiistai);
|
||||||
|
|
||||||
Label keskiviikko = new Label("Keskiviikko");
|
Label keskiviikko = new Label("Keskiviikko");
|
||||||
tfKeskiviikko = new IntegerSpinner();
|
tfKeskiviikko = new IntegerSpinner();
|
||||||
kuljetusTiedot.addRow(kuljetusTiedot.getRowCount(), keskiviikko, tfKeskiviikko);
|
lounasTiedot.addRow(lounasTiedot.getRowCount(), keskiviikko, tfKeskiviikko);
|
||||||
|
|
||||||
Label torstai = new Label("Torstai");
|
Label torstai = new Label("Torstai");
|
||||||
tfTorstai = new IntegerSpinner();
|
tfTorstai = new IntegerSpinner();
|
||||||
kuljetusTiedot.addRow(kuljetusTiedot.getRowCount(), torstai, tfTorstai);
|
lounasTiedot.addRow(lounasTiedot.getRowCount(), torstai, tfTorstai);
|
||||||
|
|
||||||
Label perjantai = new Label("Perjantai");
|
Label perjantai = new Label("Perjantai");
|
||||||
tfPerjantai = new IntegerSpinner();
|
tfPerjantai = new IntegerSpinner();
|
||||||
kuljetusTiedot.addRow(kuljetusTiedot.getRowCount(), perjantai, tfPerjantai);
|
lounasTiedot.addRow(lounasTiedot.getRowCount(), perjantai, tfPerjantai);
|
||||||
|
|
||||||
tfLauantai = new IntegerSpinner();
|
tfLauantai = new IntegerSpinner();
|
||||||
kuljetusTiedot.addRow(kuljetusTiedot.getRowCount(), new Label("Lauantai"), tfLauantai);
|
lounasTiedot.addRow(lounasTiedot.getRowCount(), new Label("Lauantai"), tfLauantai);
|
||||||
|
|
||||||
tfSunnuntai = new IntegerSpinner();
|
tfSunnuntai = new IntegerSpinner();
|
||||||
kuljetusTiedot.addRow(kuljetusTiedot.getRowCount(), new Label("Sunnuntai"), tfSunnuntai);
|
lounasTiedot.addRow(lounasTiedot.getRowCount(), new Label("Sunnuntai"), tfSunnuntai);
|
||||||
|
|
||||||
Label ruokarajoitteet = new Label("Ruokarajoitteet");
|
|
||||||
tfRuokarajoitteet = new TextField();
|
|
||||||
kuljetusTiedot.addRow(kuljetusTiedot.getRowCount(), ruokarajoitteet, tfRuokarajoitteet);
|
|
||||||
|
|
||||||
Label avainTieto = new Label("Avaintieto");
|
|
||||||
tfAvainTieto = new TextField();
|
|
||||||
kuljetusTiedot.addRow(kuljetusTiedot.getRowCount(), avainTieto, tfAvainTieto);
|
|
||||||
|
|
||||||
Label lisätiedot = new Label("Kuljetuksen lisätiedot");
|
GridPane päivällisTiedot = new GridPane();
|
||||||
tfLisätiedot = new TextField();
|
päivällisTiedot.setPadding(new Insets(15));
|
||||||
tfLisätiedot.setPromptText("Näkyy raporteilla");
|
päivällisTiedot.setHgap(10);
|
||||||
kuljetusTiedot.addRow(kuljetusTiedot.getRowCount(), lisätiedot, tfLisätiedot);
|
päivällisTiedot.setVgap(10);
|
||||||
|
|
||||||
|
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();
|
||||||
|
päivällisTiedot.addRow(päivällisTiedot.getRowCount(), new Label("Salaatit"), tfDinnerSalaatit);
|
||||||
|
|
||||||
|
tfDinnerPääruoat = new IntegerSpinner();
|
||||||
|
päivällisTiedot.addRow(päivällisTiedot.getRowCount(), new Label("Pääruoat"), tfDinnerPääruoat);
|
||||||
|
|
||||||
|
tfDinnerJälkiruoat = new IntegerSpinner();
|
||||||
|
päivällisTiedot.addRow(päivällisTiedot.getRowCount(), new Label("Jälkiruoat"), tfDinnerJälkiruoat);
|
||||||
|
|
||||||
|
päivällisTiedot.addRow(päivällisTiedot.getRowCount(), new Label("Kuljetukset per päivä"));
|
||||||
|
|
||||||
|
tfDinnerMaanantai = new IntegerSpinner();
|
||||||
|
päivällisTiedot.addRow(päivällisTiedot.getRowCount(), new Label("Maanantai"), tfDinnerMaanantai);
|
||||||
|
|
||||||
|
tfDinnerTiistai = new IntegerSpinner();
|
||||||
|
päivällisTiedot.addRow(päivällisTiedot.getRowCount(), new Label("Tiistai"), tfDinnerTiistai);
|
||||||
|
|
||||||
|
tfDinnerKeskiviikko = new IntegerSpinner();
|
||||||
|
päivällisTiedot.addRow(päivällisTiedot.getRowCount(), new Label("Keskiviikko"), tfDinnerKeskiviikko);
|
||||||
|
|
||||||
|
tfDinnerTorstai = new IntegerSpinner();
|
||||||
|
päivällisTiedot.addRow(päivällisTiedot.getRowCount(), new Label("Torstai"), tfDinnerTorstai);
|
||||||
|
|
||||||
|
tfDinnerPerjantai = new IntegerSpinner();
|
||||||
|
päivällisTiedot.addRow(päivällisTiedot.getRowCount(), new Label("Perjantai"), tfDinnerPerjantai);
|
||||||
|
|
||||||
|
tfDinnerLauantai = new IntegerSpinner();
|
||||||
|
päivällisTiedot.addRow(päivällisTiedot.getRowCount(), new Label("Lauantai"), tfDinnerLauantai);
|
||||||
|
|
||||||
|
tfDinnerSunnuntai = new IntegerSpinner();
|
||||||
|
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;");
|
||||||
@@ -152,6 +172,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);
|
||||||
@@ -166,7 +202,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);
|
||||||
@@ -195,6 +231,16 @@ public class AsiakasIkkuna extends Stage {
|
|||||||
tfSalaatit.getValueFactory().setValue(käsiteltäväAsiakas.getSalaatit());
|
tfSalaatit.getValueFactory().setValue(käsiteltäväAsiakas.getSalaatit());
|
||||||
tfPääruoat.getValueFactory().setValue(käsiteltäväAsiakas.getPääruoat());
|
tfPääruoat.getValueFactory().setValue(käsiteltäväAsiakas.getPääruoat());
|
||||||
tfJälkiruoat.getValueFactory().setValue(käsiteltäväAsiakas.getJälkiruoat());
|
tfJälkiruoat.getValueFactory().setValue(käsiteltäväAsiakas.getJälkiruoat());
|
||||||
|
tfDinnerMaanantai.getValueFactory().setValue(käsiteltäväAsiakas.getDinnerMaanantaiKpl());
|
||||||
|
tfDinnerTiistai.getValueFactory().setValue(käsiteltäväAsiakas.getDinnerTiistaiKpl());
|
||||||
|
tfDinnerKeskiviikko.getValueFactory().setValue(käsiteltäväAsiakas.getDinnerKeskiviikkoKpl());
|
||||||
|
tfDinnerTorstai.getValueFactory().setValue(käsiteltäväAsiakas.getDinnerTorstaiKpl());
|
||||||
|
tfDinnerPerjantai.getValueFactory().setValue(käsiteltäväAsiakas.getDinnerPerjantaiKpl());
|
||||||
|
tfDinnerLauantai.getValueFactory().setValue(käsiteltäväAsiakas.getDinnerLauantaiKpl());
|
||||||
|
tfDinnerSunnuntai.getValueFactory().setValue(käsiteltäväAsiakas.getDinnerSunnuntaiKpl());
|
||||||
|
tfDinnerSalaatit.getValueFactory().setValue(käsiteltäväAsiakas.getDinnerSalaatit());
|
||||||
|
tfDinnerPääruoat.getValueFactory().setValue(käsiteltäväAsiakas.getDinnerPääruoat());
|
||||||
|
tfDinnerJälkiruoat.getValueFactory().setValue(käsiteltäväAsiakas.getDinnerJälkiruoat());
|
||||||
tfRuokarajoitteet.setText(käsiteltäväAsiakas.getErityisruokavalio());
|
tfRuokarajoitteet.setText(käsiteltäväAsiakas.getErityisruokavalio());
|
||||||
tfAvainTieto.setText(käsiteltäväAsiakas.getAvainTieto());
|
tfAvainTieto.setText(käsiteltäväAsiakas.getAvainTieto());
|
||||||
tfLisätiedot.setText(käsiteltäväAsiakas.getLisätiedot());
|
tfLisätiedot.setText(käsiteltäväAsiakas.getLisätiedot());
|
||||||
@@ -230,6 +276,16 @@ public class AsiakasIkkuna extends Stage {
|
|||||||
käsiteltäväAsiakas.setSalaatit(tfSalaatit.getValue());
|
käsiteltäväAsiakas.setSalaatit(tfSalaatit.getValue());
|
||||||
käsiteltäväAsiakas.setPääruoat(tfPääruoat.getValue());
|
käsiteltäväAsiakas.setPääruoat(tfPääruoat.getValue());
|
||||||
käsiteltäväAsiakas.setJälkiruoat(tfJälkiruoat.getValue());
|
käsiteltäväAsiakas.setJälkiruoat(tfJälkiruoat.getValue());
|
||||||
|
käsiteltäväAsiakas.setDinnerMaanantaiKpl(tfDinnerMaanantai.getValue());
|
||||||
|
käsiteltäväAsiakas.setDinnerTiistaiKpl(tfDinnerTiistai.getValue());
|
||||||
|
käsiteltäväAsiakas.setDinnerKeskiviikkoKpl(tfDinnerKeskiviikko.getValue());
|
||||||
|
käsiteltäväAsiakas.setDinnerTorstaiKpl(tfDinnerTorstai.getValue());
|
||||||
|
käsiteltäväAsiakas.setDinnerPerjantaiKpl(tfDinnerPerjantai.getValue());
|
||||||
|
käsiteltäväAsiakas.setDinnerLauantaiKpl(tfDinnerLauantai.getValue());
|
||||||
|
käsiteltäväAsiakas.setDinnerSunnuntaiKpl(tfDinnerSunnuntai.getValue());
|
||||||
|
käsiteltäväAsiakas.setDinnerSalaatit(tfDinnerSalaatit.getValue());
|
||||||
|
käsiteltäväAsiakas.setDinnerPääruoat(tfDinnerPääruoat.getValue());
|
||||||
|
käsiteltäväAsiakas.setDinnerJälkiruoat(tfDinnerJälkiruoat.getValue());
|
||||||
käsiteltäväAsiakas.setErityisruokavalio(tfRuokarajoitteet.getText());
|
käsiteltäväAsiakas.setErityisruokavalio(tfRuokarajoitteet.getText());
|
||||||
käsiteltäväAsiakas.setAvainTieto(tfAvainTieto.getText());
|
käsiteltäväAsiakas.setAvainTieto(tfAvainTieto.getText());
|
||||||
käsiteltäväAsiakas.setLisätiedot(tfLisätiedot.getText());
|
käsiteltäväAsiakas.setLisätiedot(tfLisätiedot.getText());
|
||||||
@@ -255,7 +311,8 @@ public class AsiakasIkkuna extends Stage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (läpi) {
|
if (läpi) {
|
||||||
int viikonKuljetukset = käsiteltäväAsiakas.getMaanantaiKpl() +
|
int viikonKuljetukset =
|
||||||
|
käsiteltäväAsiakas.getMaanantaiKpl() +
|
||||||
käsiteltäväAsiakas.getTiistaiKpl() +
|
käsiteltäväAsiakas.getTiistaiKpl() +
|
||||||
käsiteltäväAsiakas.getKeskiviikkoKpl() +
|
käsiteltäväAsiakas.getKeskiviikkoKpl() +
|
||||||
käsiteltäväAsiakas.getTorstaiKpl() +
|
käsiteltäväAsiakas.getTorstaiKpl() +
|
||||||
@@ -266,11 +323,25 @@ public class AsiakasIkkuna extends Stage {
|
|||||||
Alert alert = new Alert(Alert.AlertType.INFORMATION);
|
Alert alert = new Alert(Alert.AlertType.INFORMATION);
|
||||||
alert.setTitle("Onnistuimme!");
|
alert.setTitle("Onnistuimme!");
|
||||||
alert.setHeaderText("Asiakkaan tallentaminen onnistui!");
|
alert.setHeaderText("Asiakkaan tallentaminen onnistui!");
|
||||||
alert.setContentText(String.format("%s saa jatkossa yhteensä \n%s salaattia, %s pääruokaa ja %s jälkiruokaa viikossa",
|
//TODO tähän myös dinneri määrät...
|
||||||
|
alert.setContentText(String.format("%s saa lounaalla yhteensä \n%s salaattia, %s pääruokaa ja %s jälkiruokaa viikossa",
|
||||||
käsiteltäväAsiakas.getNimi(), käsiteltäväAsiakas.getSalaatit()*viikonKuljetukset, käsiteltäväAsiakas.getPääruoat()*viikonKuljetukset, käsiteltäväAsiakas.getPääruoat()*viikonKuljetukset));
|
käsiteltäväAsiakas.getNimi(), käsiteltäväAsiakas.getSalaatit()*viikonKuljetukset, käsiteltäväAsiakas.getPääruoat()*viikonKuljetukset, käsiteltäväAsiakas.getPääruoat()*viikonKuljetukset));
|
||||||
alert.showAndWait();
|
alert.showAndWait();
|
||||||
this.close();
|
this.close();
|
||||||
}
|
}
|
||||||
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());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -1,9 +1,7 @@
|
|||||||
package fi.lpam.gui;
|
package fi.lpam.gui;
|
||||||
|
|
||||||
import fi.lpam.Main;
|
|
||||||
import fi.lpam.dataluokat.Asiakas;
|
import fi.lpam.dataluokat.Asiakas;
|
||||||
import fi.lpam.gui.elementit.FontLabel;
|
import fi.lpam.gui.elementit.FontLabel;
|
||||||
import fi.lpam.gui.elementit.MaaraTableColumn;
|
|
||||||
import fi.lpam.gui.elementit.TabPohja;
|
import fi.lpam.gui.elementit.TabPohja;
|
||||||
import javafx.collections.FXCollections;
|
import javafx.collections.FXCollections;
|
||||||
import javafx.scene.control.*;
|
import javafx.scene.control.*;
|
||||||
@@ -56,31 +54,31 @@ public class Asiakashallinta extends TabPohja {
|
|||||||
tcOsoite.setCellValueFactory(new PropertyValueFactory<>("osoite"));
|
tcOsoite.setCellValueFactory(new PropertyValueFactory<>("osoite"));
|
||||||
|
|
||||||
int minWidth = 40;
|
int minWidth = 40;
|
||||||
TableColumn<Asiakas, MaaraTableColumn<Asiakas, Integer>> tcKuljetuspäivät = new TableColumn<>("Kuljetukset per päivä");
|
// TableColumn<Asiakas, MaaraTableColumn<Asiakas, Integer>> tcKuljetuspäivät = new TableColumn<>("Kuljetukset per päivä");
|
||||||
MaaraTableColumn<Asiakas, Integer> tcMaanantaiKpl = new MaaraTableColumn<>("MA", minWidth);
|
// MaaraTableColumn<Asiakas, Integer> tcMaanantaiKpl = new MaaraTableColumn<>("MA", minWidth);
|
||||||
tcMaanantaiKpl.setCellValueFactory(new PropertyValueFactory<>("maanantaiKpl"));
|
// tcMaanantaiKpl.setCellValueFactory(new PropertyValueFactory<>("maanantaiKpl"));
|
||||||
MaaraTableColumn<Asiakas, Integer> tcTiistaiKpl = new MaaraTableColumn<>("TI", minWidth);
|
// MaaraTableColumn<Asiakas, Integer> tcTiistaiKpl = new MaaraTableColumn<>("TI", minWidth);
|
||||||
tcTiistaiKpl.setCellValueFactory(new PropertyValueFactory<>("tiistaiKpl"));
|
// tcTiistaiKpl.setCellValueFactory(new PropertyValueFactory<>("tiistaiKpl"));
|
||||||
MaaraTableColumn<Asiakas, Integer> tcKeskiviikkoKpl = new MaaraTableColumn<>("KE", minWidth);
|
// MaaraTableColumn<Asiakas, Integer> tcKeskiviikkoKpl = new MaaraTableColumn<>("KE", minWidth);
|
||||||
tcKeskiviikkoKpl.setCellValueFactory(new PropertyValueFactory<>("keskiviikkoKpl"));
|
// tcKeskiviikkoKpl.setCellValueFactory(new PropertyValueFactory<>("keskiviikkoKpl"));
|
||||||
MaaraTableColumn<Asiakas, Integer> tcTorstaiKpl = new MaaraTableColumn<>("TO", minWidth);
|
// MaaraTableColumn<Asiakas, Integer> tcTorstaiKpl = new MaaraTableColumn<>("TO", minWidth);
|
||||||
tcTorstaiKpl.setCellValueFactory(new PropertyValueFactory<>("torstaiKpl"));
|
// tcTorstaiKpl.setCellValueFactory(new PropertyValueFactory<>("torstaiKpl"));
|
||||||
MaaraTableColumn<Asiakas, Integer> tcPerjantaiKpl = new MaaraTableColumn<>("PE", minWidth);
|
// MaaraTableColumn<Asiakas, Integer> tcPerjantaiKpl = new MaaraTableColumn<>("PE", minWidth);
|
||||||
tcPerjantaiKpl.setCellValueFactory(new PropertyValueFactory<>("perjantaiKpl"));
|
// tcPerjantaiKpl.setCellValueFactory(new PropertyValueFactory<>("perjantaiKpl"));
|
||||||
MaaraTableColumn<Asiakas, Integer> tcLauantaiKpl = new MaaraTableColumn<>("LA", minWidth);
|
// MaaraTableColumn<Asiakas, Integer> tcLauantaiKpl = new MaaraTableColumn<>("LA", minWidth);
|
||||||
tcLauantaiKpl.setCellValueFactory(new PropertyValueFactory<>("lauantaiKpl"));
|
// tcLauantaiKpl.setCellValueFactory(new PropertyValueFactory<>("lauantaiKpl"));
|
||||||
MaaraTableColumn<Asiakas, Integer> tcSunnuntaiKpl = new MaaraTableColumn<>("SU", minWidth);
|
// MaaraTableColumn<Asiakas, Integer> tcSunnuntaiKpl = new MaaraTableColumn<>("SU", minWidth);
|
||||||
tcSunnuntaiKpl.setCellValueFactory(new PropertyValueFactory<>("sunnuntaiKpl"));
|
// tcSunnuntaiKpl.setCellValueFactory(new PropertyValueFactory<>("sunnuntaiKpl"));
|
||||||
tcKuljetuspäivät.getColumns().addAll(tcMaanantaiKpl, tcTiistaiKpl, tcKeskiviikkoKpl, tcTorstaiKpl, tcPerjantaiKpl, tcLauantaiKpl, tcSunnuntaiKpl);
|
// tcKuljetuspäivät.getColumns().addAll(tcMaanantaiKpl, tcTiistaiKpl, tcKeskiviikkoKpl, tcTorstaiKpl, tcPerjantaiKpl, tcLauantaiKpl, tcSunnuntaiKpl);
|
||||||
|
//
|
||||||
TableColumn<Asiakas, MaaraTableColumn<Asiakas, Integer>> tcKuljetusmäärät = new TableColumn<>("Määrät per kuljetus");
|
// TableColumn<Asiakas, MaaraTableColumn<Asiakas, Integer>> tcKuljetusmäärät = new TableColumn<>("Määrät per kuljetus");
|
||||||
MaaraTableColumn<Asiakas, Integer> tcSalaatit = new MaaraTableColumn<>("Salaatit", minWidth, 150);
|
// MaaraTableColumn<Asiakas, Integer> tcSalaatit = new MaaraTableColumn<>("Salaatit", minWidth, 150);
|
||||||
tcSalaatit.setCellValueFactory(new PropertyValueFactory<>("salaatit"));
|
// tcSalaatit.setCellValueFactory(new PropertyValueFactory<>("salaatit"));
|
||||||
MaaraTableColumn<Asiakas, Integer> tcPääruoat = new MaaraTableColumn<>("Pääruoat", minWidth, 150);
|
// MaaraTableColumn<Asiakas, Integer> tcPääruoat = new MaaraTableColumn<>("Pääruoat", minWidth, 150);
|
||||||
tcPääruoat.setCellValueFactory(new PropertyValueFactory<>("pääruoat"));
|
// tcPääruoat.setCellValueFactory(new PropertyValueFactory<>("pääruoat"));
|
||||||
MaaraTableColumn<Asiakas, Integer> tcJälkiruoat = new MaaraTableColumn<>("Jälkiruoat", minWidth, 150);
|
// MaaraTableColumn<Asiakas, Integer> tcJälkiruoat = new MaaraTableColumn<>("Jälkiruoat", minWidth, 150);
|
||||||
tcJälkiruoat.setCellValueFactory(new PropertyValueFactory<>("jälkiruoat"));
|
// tcJälkiruoat.setCellValueFactory(new PropertyValueFactory<>("jälkiruoat"));
|
||||||
tcKuljetusmäärät.getColumns().addAll(tcSalaatit, tcPääruoat, tcJälkiruoat);
|
// tcKuljetusmäärät.getColumns().addAll(tcSalaatit, tcPääruoat, tcJälkiruoat);
|
||||||
|
|
||||||
TableColumn<Asiakas, String> tcErityisruokavalio = new TableColumn<>("Ruokarajoitteet");
|
TableColumn<Asiakas, String> tcErityisruokavalio = new TableColumn<>("Ruokarajoitteet");
|
||||||
tcErityisruokavalio.setCellValueFactory(new PropertyValueFactory<>("erityisruokavalio"));
|
tcErityisruokavalio.setCellValueFactory(new PropertyValueFactory<>("erityisruokavalio"));
|
||||||
@@ -97,7 +95,7 @@ public class Asiakashallinta extends TabPohja {
|
|||||||
TableColumn<Asiakas, String> tcYhteyshenkilönSähköposti = new TableColumn<>("Yhteyshenkilön sähköposti");
|
TableColumn<Asiakas, String> tcYhteyshenkilönSähköposti = new TableColumn<>("Yhteyshenkilön sähköposti");
|
||||||
tcYhteyshenkilönSähköposti.setCellValueFactory(new PropertyValueFactory<>("yhteyshenkilönSähköposti"));
|
tcYhteyshenkilönSähköposti.setCellValueFactory(new PropertyValueFactory<>("yhteyshenkilönSähköposti"));
|
||||||
|
|
||||||
tvAsiakkaat.getColumns().addAll(tcId, tcNimi, tcOsoite, tcKuljetuspäivät, tcKuljetusmäärät, tcErityisruokavalio, tcAvainTieto, tcLisätiedot, tcYhteyshenkilönNimi, tcLaskutusOsoite, tcYhteyshenkilönPuhelinnumero, tcYhteyshenkilönSähköposti);
|
tvAsiakkaat.getColumns().addAll(tcId, tcNimi, tcOsoite, tcErityisruokavalio, tcAvainTieto, tcLisätiedot, tcYhteyshenkilönNimi, tcLaskutusOsoite, tcYhteyshenkilönPuhelinnumero, tcYhteyshenkilönSähköposti);
|
||||||
|
|
||||||
for (TableColumn<Asiakas, ?> column : tvAsiakkaat.getColumns()) {
|
for (TableColumn<Asiakas, ?> column : tvAsiakkaat.getColumns()) {
|
||||||
column.getColumns().forEach(this::määritäColumn);
|
column.getColumns().forEach(this::määritäColumn);
|
||||||
@@ -191,10 +189,6 @@ public class Asiakashallinta extends TabPohja {
|
|||||||
column.setEditable(false);
|
column.setEditable(false);
|
||||||
column.setReorderable(false);
|
column.setReorderable(false);
|
||||||
column.setResizable(true);
|
column.setResizable(true);
|
||||||
column.setStyle(
|
column.setStyle(TV_COLUMN_STYLE);
|
||||||
"-fx-alignment: CENTER;" +
|
|
||||||
"-fx-font-size: " + Main.properties.getProperty("tekstiFonttiKoko") + "px;" +
|
|
||||||
"-fx-font-family: " + Main.properties.getProperty("tekstiFontti")
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -143,10 +143,7 @@ public class KuljetusListat extends TabPohja {
|
|||||||
sarake.setSortable(false);
|
sarake.setSortable(false);
|
||||||
sarake.setEditable(true);
|
sarake.setEditable(true);
|
||||||
sarake.setResizable(true);
|
sarake.setResizable(true);
|
||||||
sarake.setStyle(
|
sarake.setStyle(TV_COLUMN_STYLE);
|
||||||
"-fx-alignment: CENTER;" +
|
|
||||||
"-fx-font-size: " + Main.properties.getProperty("tekstiFonttiKoko") + "px;" +
|
|
||||||
"-fx-font-family: " + Main.properties.getProperty("tekstiFontti"));
|
|
||||||
}
|
}
|
||||||
tcNimi.setEditable(false);
|
tcNimi.setEditable(false);
|
||||||
}
|
}
|
||||||
@@ -156,7 +153,7 @@ public class KuljetusListat extends TabPohja {
|
|||||||
int valittuKierros = kierrosValinta.getValue();
|
int valittuKierros = kierrosValinta.getValue();
|
||||||
Kuljetus.Tyyppi kuljetusTyyppi = tyyppiValinta.getValue();
|
Kuljetus.Tyyppi kuljetusTyyppi = tyyppiValinta.getValue();
|
||||||
|
|
||||||
ArrayList<Kuljetus> luetutKuljetuksetKierrokselle = Kuljetus.haePäivänKuljetuksetKierroksella(valittuPäivä, valittuKierros);
|
ArrayList<Kuljetus> luetutKuljetuksetKierrokselle = Kuljetus.haeKierroksenKuljetukset(valittuPäivä, valittuKierros, kuljetusTyyppi);
|
||||||
ObservableList<Asiakas> kierroksenAsiakkaat = Objects.requireNonNull(Kierros.haeKierros(valittuKierros)).getAsiakkaat();
|
ObservableList<Asiakas> kierroksenAsiakkaat = Objects.requireNonNull(Kierros.haeKierros(valittuKierros)).getAsiakkaat();
|
||||||
ArrayList<Kuljetus> näytettävätKuljetukset = new ArrayList<>();
|
ArrayList<Kuljetus> näytettävätKuljetukset = new ArrayList<>();
|
||||||
HashSet<Integer> näytettävätAsiakasIDt = new HashSet<>();
|
HashSet<Integer> näytettävätAsiakasIDt = new HashSet<>();
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package fi.lpam.gui;
|
package fi.lpam.gui;
|
||||||
|
|
||||||
import fi.lpam.Main;
|
import fi.lpam.Main;
|
||||||
|
import fi.lpam.dataluokat.Kuljetus;
|
||||||
import fi.lpam.dataluokat.RaporttiRivi;
|
import fi.lpam.dataluokat.RaporttiRivi;
|
||||||
import fi.lpam.gui.elementit.FontLabel;
|
import fi.lpam.gui.elementit.FontLabel;
|
||||||
import fi.lpam.tulostajat.KuljetusRaporttiTulostaja;
|
import fi.lpam.tulostajat.KuljetusRaporttiTulostaja;
|
||||||
@@ -75,6 +76,10 @@ public class KuljetusRaportit extends TabPohja {
|
|||||||
tcPvm.setCellFactory(_ ->new PaivamaaraTableCell());
|
tcPvm.setCellFactory(_ ->new PaivamaaraTableCell());
|
||||||
tcPvm.setCellValueFactory(new PropertyValueFactory<>("pvm"));
|
tcPvm.setCellValueFactory(new PropertyValueFactory<>("pvm"));
|
||||||
|
|
||||||
|
TableColumn<RaporttiRivi, Kuljetus.Tyyppi> tcTyyppi = new TableColumn<>("Tyyppi");
|
||||||
|
tcTyyppi.setMinWidth(150);
|
||||||
|
tcTyyppi.setCellValueFactory(new PropertyValueFactory<>("tyyppi"));
|
||||||
|
|
||||||
TableColumn<RaporttiRivi, Integer> tcSalaatit = new TableColumn<>("Salaatit");
|
TableColumn<RaporttiRivi, Integer> tcSalaatit = new TableColumn<>("Salaatit");
|
||||||
tcSalaatit.setMinWidth(100);
|
tcSalaatit.setMinWidth(100);
|
||||||
tcSalaatit.setCellValueFactory(new PropertyValueFactory<>("salaatit"));
|
tcSalaatit.setCellValueFactory(new PropertyValueFactory<>("salaatit"));
|
||||||
@@ -111,17 +116,14 @@ public class KuljetusRaportit extends TabPohja {
|
|||||||
tcYhteyshenkilönSähköposti.setMinWidth(200);
|
tcYhteyshenkilönSähköposti.setMinWidth(200);
|
||||||
tcYhteyshenkilönSähköposti.setCellValueFactory(new PropertyValueFactory<>("yhteyshenkilönSähköposti"));
|
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);
|
tcYhteyshenkilönNimi, tcLaskutusOsoite, tcYhteyshenkilönPuhelinnumero, tcYhteyshenkilönSähköposti);
|
||||||
tableView.setPlaceholder(new FontLabel(BUTTON_FONT, "Hae raportti"));
|
tableView.setPlaceholder(new FontLabel(BUTTON_FONT, "Hae raportti"));
|
||||||
|
|
||||||
for (TableColumn<RaporttiRivi, ?> sarake : tableView.getColumns()) {
|
for (TableColumn<RaporttiRivi, ?> sarake : tableView.getColumns()) {
|
||||||
sarake.setSortable(false);
|
|
||||||
sarake.setEditable(false);
|
sarake.setEditable(false);
|
||||||
sarake.setResizable(true);
|
sarake.setResizable(true);
|
||||||
sarake.setStyle(
|
sarake.setStyle(TV_COLUMN_STYLE);
|
||||||
"-fx-alignment: CENTER;" +
|
|
||||||
"-fx-font-size: " + Main.properties.getProperty("tekstiFonttiKoko") + "px;" +
|
|
||||||
"-fx-font-family: " + Main.properties.getProperty("tekstiFontti"));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -17,6 +17,7 @@ public class TabPohja extends Tab {
|
|||||||
public static Insets INSETS;
|
public static Insets INSETS;
|
||||||
public static Border BORDER = new Border(new BorderStroke(Color.BLACK, BorderStrokeStyle.SOLID, new CornerRadii(5), BorderWidths.DEFAULT));
|
public static Border BORDER = new Border(new BorderStroke(Color.BLACK, BorderStrokeStyle.SOLID, new CornerRadii(5), BorderWidths.DEFAULT));
|
||||||
public static String STYLE;
|
public static String STYLE;
|
||||||
|
public static String TV_COLUMN_STYLE;
|
||||||
public static Font BUTTON_FONT;
|
public static Font BUTTON_FONT;
|
||||||
public static Font TEKSTI_FONT;
|
public static Font TEKSTI_FONT;
|
||||||
public static double SPACING;
|
public static double SPACING;
|
||||||
@@ -29,6 +30,10 @@ public class TabPohja extends Tab {
|
|||||||
INSETS = new Insets(Double.parseDouble(prop.getProperty("insets")));
|
INSETS = new Insets(Double.parseDouble(prop.getProperty("insets")));
|
||||||
SPACING = Double.parseDouble(prop.getProperty("insets"));
|
SPACING = Double.parseDouble(prop.getProperty("insets"));
|
||||||
STYLE = "-fx-background-color: " + prop.getProperty("taustaVari");
|
STYLE = "-fx-background-color: " + prop.getProperty("taustaVari");
|
||||||
|
TV_COLUMN_STYLE =
|
||||||
|
"-fx-alignment: CENTER;" +
|
||||||
|
"-fx-font-size: " + Main.properties.getProperty("tekstiFonttiKoko") + "px;" +
|
||||||
|
"-fx-font-family: " + Main.properties.getProperty("tekstiFontti");
|
||||||
BUTTON_FONT = Font.font(prop.getProperty("buttonFontti"), FontWeight.BOLD, Double.parseDouble(prop.getProperty("buttonFonttiKoko")));
|
BUTTON_FONT = Font.font(prop.getProperty("buttonFontti"), FontWeight.BOLD, Double.parseDouble(prop.getProperty("buttonFonttiKoko")));
|
||||||
TEKSTI_FONT = Font.font(prop.getProperty("tekstiFontti"), FontWeight.NORMAL, Double.parseDouble(prop.getProperty("tekstiFonttiKoko")));
|
TEKSTI_FONT = Font.font(prop.getProperty("tekstiFontti"), FontWeight.NORMAL, Double.parseDouble(prop.getProperty("tekstiFonttiKoko")));
|
||||||
|
|
||||||
|
|||||||
@@ -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) {
|
||||||
|
|||||||
@@ -1,3 +1,11 @@
|
|||||||
|
# 4.1.0
|
||||||
|
- Asiakasikkunaan nappi, jolla voi kopioida lounasmäärät päivälliselle
|
||||||
|
- Asiakasikkunan uudelleenjärjestely
|
||||||
|
|
||||||
|
# 4.0.0
|
||||||
|
- Kuljetuslistoista luodaan lounas- ja päivällislistat erikseen
|
||||||
|
- Kuljetuslistalla asiakkaan nimeä ei voi enään muokata
|
||||||
|
|
||||||
# 3.2.1
|
# 3.2.1
|
||||||
- Asiakkaan erityisruokavalio osaksi raporttia
|
- Asiakkaan erityisruokavalio osaksi raporttia
|
||||||
|
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ alter table asiakkaat add lauantaiKpl int not null default 0;
|
|||||||
alter table asiakkaat add sunnuntaiKpl int not null default 0;
|
alter table asiakkaat add sunnuntaiKpl int not null default 0;
|
||||||
|
|
||||||
--3.x.x->4.0.0
|
--3.x.x->4.0.0
|
||||||
alter table kuljetukset add tyyppi varchar(50);
|
alter table kuljetukset add tyyppi varchar(50) not null default 'Lounas';
|
||||||
alter table asiakkaat add dinner_maanantaiKpl int not null default 0;
|
alter table asiakkaat add dinner_maanantaiKpl int not null default 0;
|
||||||
alter table asiakkaat add dinner_tiistaiKpl int not null default 0;
|
alter table asiakkaat add dinner_tiistaiKpl int not null default 0;
|
||||||
alter table asiakkaat add dinner_keskiviikkoKpl int not null default 0;
|
alter table asiakkaat add dinner_keskiviikkoKpl int not null default 0;
|
||||||
|
|||||||
Reference in New Issue
Block a user