Asiakas luokka muokattu, asiakashallinta muokattu, asiakasikkunaan lisätty laskutustiedot välilehti

Signed-off-by: laurimaaninka <lauri.maaninka@gmail.com>
This commit is contained in:
2026-04-12 22:31:21 +03:00
parent fac9334688
commit 6601a588c2
7 changed files with 232 additions and 116 deletions
@@ -4,7 +4,6 @@ import fi.lpam.ruokamanageri.gui.virheDialogit.SiirtoVirhe;
import java.sql.*;
import java.util.ArrayList;
@SuppressWarnings("DuplicatedCode")
public class Asiakas implements TietokantaOlio {
private int id = -1;
@@ -15,6 +14,7 @@ public class Asiakas implements TietokantaOlio {
private String erityisruokavalio;
private String avainTieto;
private String lisätiedot;
private String laskutusOsoite, yhteyshenkilönNimi, yhteyshenkilönPuhelinnumero, yhteyshenkilönSähköposti;
/**
* Tyhjä konstruktori uusien luomista varten
@@ -46,8 +46,29 @@ public class Asiakas implements TietokantaOlio {
* @param erityisruokavalio ...
* @param avainTieto ...
* @param lisätiedot mahdolliset lisätilaukset/tiedot
* @param laskutusOsoite ...
* @param yhteyshenkilönNimi ...
* @param yhteyshenkilönPuhelinnumero ...
* @param yhteyshenkilönSähköposti ...
*/
private Asiakas(int id, 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) {
private Asiakas(int id,
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) {
this.id = id;
this.nimi = nimi;
this.osoite = osoite;
@@ -62,37 +83,10 @@ public class Asiakas implements TietokantaOlio {
this.erityisruokavalio = erityisruokavalio;
this.avainTieto = avainTieto;
this.lisätiedot = lisätiedot;
}
/**
* @param nimi asiakkaan nimi
* @param osoite osoite
* @param maanantaiKpl kuljetettava määrä
* @param tiistaiKpl kuljetettava määrä
* @param keskiviikkoKpl kuljetettava määrä
* @param torstaiKpl kuljetettava määrä
* @param perjantaiKpl kuljetettava määrä
* @param salaatit kuljetettava määrä
* @param pääruoat kuljetettava määrä
* @param jälkiruoat kuljetettava määrä
* @param erityisruokavalio ...
* @param avainTieto ...
* @param lisätiedot mahdolliset lisätilaukset/tiedot
*/
public Asiakas(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) {
this.nimi = nimi;
this.osoite = osoite;
this.maanantaiKpl = maanantaiKpl;
this.tiistaiKpl = tiistaiKpl;
this.keskiviikkoKpl = keskiviikkoKpl;
this.torstaiKpl = torstaiKpl;
this.perjantaiKpl = perjantaiKpl;
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;
}
/**
@@ -145,21 +139,26 @@ public class Asiakas implements TietokantaOlio {
try {
while (rs.next()) {
int i = 1;
Asiakas uusi = new Asiakas(
rs.getInt("id"),
rs.getString("nimi"),
rs.getString("osoite"),
rs.getInt("maanantaiKpl"),
rs.getInt("tiistaiKpl"),
rs.getInt("keskiviikkoKpl"),
rs.getInt("torstaiKpl"),
rs.getInt("perjantaiKpl"),
rs.getInt("salaatit"),
rs.getInt("pääruoat"),
rs.getInt("jälkiruoat"),
rs.getString("erityisruokavalio"),
rs.getString("avainTieto"),
rs.getString("lisätiedot")
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++)
);
asiakkaat.add(uusi);
}
@@ -178,20 +177,26 @@ public class Asiakas implements TietokantaOlio {
@Override
public boolean tallennaUusi() {
try (Connection tietokanta = Tietokanta.haeYhteys()) {
PreparedStatement stmt = tietokanta.prepareStatement("INSERT INTO asiakkaat (nimi, osoite, maanantaiKpl, tiistaiKpl, keskiviikkoKpl, torstaiKpl, perjantaiKpl, salaatit, pääruoat, jälkiruoat, erityisruokavalio, avainTieto, lisätiedot) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", Statement.RETURN_GENERATED_KEYS);
stmt.setString(1, nimi);
stmt.setString(2, osoite);
stmt.setInt(3, maanantaiKpl);
stmt.setInt(4, tiistaiKpl);
stmt.setInt(5, keskiviikkoKpl);
stmt.setInt(6, torstaiKpl);
stmt.setInt(7, perjantaiKpl);
stmt.setInt(8, salaatit);
stmt.setInt(9, pääruoat);
stmt.setInt(10, jälkiruoat);
stmt.setString(11, erityisruokavalio);
stmt.setString(12, avainTieto);
stmt.setString(13, lisätiedot);
PreparedStatement stmt = tietokanta.prepareStatement("INSERT INTO asiakkaat (nimi, osoite, maanantaiKpl, tiistaiKpl, keskiviikkoKpl, torstaiKpl, perjantaiKpl, salaatit, pääruoat, jälkiruoat, erityisruokavalio, avainTieto, lisätiedot, laskutusosoite, yhteyshenkilönNimi, yhteyshenkilönPuhelinnumero, yhteyshenkilönSähköposti) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", Statement.RETURN_GENERATED_KEYS);
int i = 1;
stmt.setString(i++, nimi);
stmt.setString(i++, osoite);
stmt.setInt(i++, maanantaiKpl);
stmt.setInt(i++, tiistaiKpl);
stmt.setInt(i++, keskiviikkoKpl);
stmt.setInt(i++, torstaiKpl);
stmt.setInt(i++, perjantaiKpl);
stmt.setInt(i++, salaatit);
stmt.setInt(i++, pääruoat);
stmt.setInt(i++, jälkiruoat);
stmt.setString(i++, erityisruokavalio);
stmt.setString(i++, avainTieto);
stmt.setString(i++, lisätiedot);
stmt.setString(i++, laskutusOsoite);
stmt.setString(i++, yhteyshenkilönNimi);
stmt.setString(i++, yhteyshenkilönPuhelinnumero);
stmt.setString(i++, yhteyshenkilönSähköposti);
int muokatutRivit = stmt.executeUpdate();
if (muokatutRivit == 0) {
@@ -219,21 +224,27 @@ public class Asiakas implements TietokantaOlio {
@Override
public boolean päivitäTietokantaan() {
try (Connection tietokanta = Tietokanta.haeYhteys()) {
PreparedStatement stmt = tietokanta.prepareStatement("UPDATE asiakkaat set nimi = ?, osoite = ?, maanantaiKpl = ?, tiistaiKpl = ?, keskiviikkoKpl = ?, torstaiKpl = ?, perjantaiKpl = ?, salaatit = ?, pääruoat = ?, jälkiruoat = ?, erityisruokavalio = ?, avainTieto = ?, lisätiedot = ? WHERE id = ?");
stmt.setString(1, nimi);
stmt.setString(2, osoite);
stmt.setInt(3, maanantaiKpl);
stmt.setInt(4, tiistaiKpl);
stmt.setInt(5, keskiviikkoKpl);
stmt.setInt(6, torstaiKpl);
stmt.setInt(7, perjantaiKpl);
stmt.setInt(8, salaatit);
stmt.setInt(9, pääruoat);
stmt.setInt(10, jälkiruoat);
stmt.setString(11, erityisruokavalio);
stmt.setString(12, avainTieto);
stmt.setString(13, lisätiedot);
stmt.setInt(14, id);
PreparedStatement stmt = tietokanta.prepareStatement("UPDATE asiakkaat set nimi = ?, osoite = ?, maanantaiKpl = ?, tiistaiKpl = ?, keskiviikkoKpl = ?, torstaiKpl = ?, perjantaiKpl = ?, salaatit = ?, pääruoat = ?, jälkiruoat = ?, erityisruokavalio = ?, avainTieto = ?, lisätiedot = ?, laskutusosoite = ?, yhteyshenkilönNimi = ?, yhteyshenkilönPuhelinnumero = ?, yhteyshenkilönSähköposti = ? WHERE id = ?");
int i = 1;
stmt.setString(i++, nimi);
stmt.setString(i++, osoite);
stmt.setInt(i++, maanantaiKpl);
stmt.setInt(i++, tiistaiKpl);
stmt.setInt(i++, keskiviikkoKpl);
stmt.setInt(i++, torstaiKpl);
stmt.setInt(i++, perjantaiKpl);
stmt.setInt(i++, salaatit);
stmt.setInt(i++, pääruoat);
stmt.setInt(i++, jälkiruoat);
stmt.setString(i++, erityisruokavalio);
stmt.setString(i++, avainTieto);
stmt.setString(i++, lisätiedot);
stmt.setString(i++, laskutusOsoite);
stmt.setString(i++, yhteyshenkilönNimi);
stmt.setString(i++, yhteyshenkilönPuhelinnumero);
stmt.setString(i++, yhteyshenkilönSähköposti);
stmt.setInt(i++, id);
stmt.executeUpdate();
return true;
} catch (SQLException e) {
@@ -388,4 +399,36 @@ public class Asiakas implements TietokantaOlio {
public void setLisätiedot(String lisätiedot) {
this.lisätiedot = lisätiedot;
}
public String getLaskutusOsoite() {
return laskutusOsoite;
}
public void setLaskutusOsoite(String laskutusOsoite) {
this.laskutusOsoite = laskutusOsoite;
}
public String getYhteyshenkilönNimi() {
return yhteyshenkilönNimi;
}
public void setYhteyshenkilönNimi(String yhteyshenkilönNimi) {
this.yhteyshenkilönNimi = yhteyshenkilönNimi;
}
public String getYhteyshenkilönPuhelinnumero() {
return yhteyshenkilönPuhelinnumero;
}
public void setYhteyshenkilönPuhelinnumero(String yhteyshenkilönPuhelinnumero) {
this.yhteyshenkilönPuhelinnumero = yhteyshenkilönPuhelinnumero;
}
public String getYhteyshenkilönSähköposti() {
return yhteyshenkilönSähköposti;
}
public void setYhteyshenkilönSähköposti(String yhteyshenkilönSähköposti) {
this.yhteyshenkilönSähköposti = yhteyshenkilönSähköposti;
}
}