Asiakas luokka muokattu, asiakashallinta muokattu, asiakasikkunaan lisätty laskutustiedot välilehti
Signed-off-by: laurimaaninka <lauri.maaninka@gmail.com>
This commit is contained in:
@@ -6,10 +6,14 @@ import fi.lpam.ruokamanageri.gui.elementit.IntegerSpinner;
|
||||
import fi.lpam.ruokamanageri.gui.elementit.TabPohja;
|
||||
import fi.lpam.ruokamanageri.Main;
|
||||
import javafx.geometry.Insets;
|
||||
import javafx.geometry.Pos;
|
||||
import javafx.geometry.Side;
|
||||
import javafx.scene.Scene;
|
||||
import javafx.scene.control.*;
|
||||
import javafx.scene.image.Image;
|
||||
import javafx.scene.layout.GridPane;
|
||||
import javafx.scene.layout.HBox;
|
||||
import javafx.scene.layout.VBox;
|
||||
import javafx.stage.Stage;
|
||||
|
||||
import java.util.Objects;
|
||||
@@ -17,7 +21,7 @@ import java.util.Objects;
|
||||
|
||||
public class AsiakasIkkuna extends Stage {
|
||||
final Asiakas käsiteltäväAsiakas;
|
||||
final TextField tfNimi, tfOsoite, tfRuokarajoitteet, tfAvainTieto, tfLisätiedot;
|
||||
final TextField tfNimi, tfOsoite, tfRuokarajoitteet, tfAvainTieto, tfLisätiedot, tfYhteyshenkilönNimi, tfLaskutusOsoite, tfYhteyshenkilönPuhelinnumero, tfYhteyshenkilönSähköposti;
|
||||
final IntegerSpinner tfMaanantai, tfTiistai, tfKeskiviikko, tfTorstai, tfPerjantai, tfSalaatit, tfPääruoat, tfJälkiruoat;
|
||||
|
||||
/**
|
||||
@@ -28,91 +32,136 @@ public class AsiakasIkkuna extends Stage {
|
||||
this.käsiteltäväAsiakas = käsiteltäväAsiakas;
|
||||
this.setTitle("Asiakasikkuna");
|
||||
|
||||
GridPane root = new GridPane();
|
||||
root.setPadding(new Insets(15));
|
||||
root.setHgap(10);
|
||||
root.setVgap(10);
|
||||
root.setOnKeyPressed(e -> {
|
||||
TabPane tabPane = new TabPane();
|
||||
tabPane.setSide(Side.LEFT);
|
||||
int korkeus = 150;
|
||||
tabPane.setTabMinWidth(korkeus);
|
||||
tabPane.setTabMinWidth(korkeus);
|
||||
tabPane.setTabMinHeight(35);
|
||||
tabPane.setTabMaxHeight(35);
|
||||
tabPane.setOnKeyPressed(e -> {
|
||||
switch (e.getCode()) {
|
||||
case ENTER: tallenna(); break;
|
||||
case ESCAPE: close(); break;
|
||||
default: break;
|
||||
}});
|
||||
|
||||
root.addRow(root.getRowCount(), new Label("Vahvistetut kentät pakollisia"));
|
||||
Tab tabAsiakasTiedot, tabLaskutusTiedot;
|
||||
tabAsiakasTiedot = new Tab("Asiakastiedot");
|
||||
tabLaskutusTiedot = new Tab("Laskutustiedot");
|
||||
tabPane.getTabs().addAll(tabAsiakasTiedot, tabLaskutusTiedot);
|
||||
for (Tab tab : tabPane.getTabs()) {
|
||||
tab.setClosable(false);
|
||||
tab.setStyle("-fx-font-size: 18px; -fx-font-weight: bold; -fx-font-family: Open Sans");
|
||||
}
|
||||
|
||||
GridPane asiakasTiedot = new GridPane();
|
||||
asiakasTiedot.setPadding(new Insets(15));
|
||||
asiakasTiedot.setHgap(10);
|
||||
asiakasTiedot.setVgap(10);
|
||||
tabAsiakasTiedot.setContent(asiakasTiedot);
|
||||
|
||||
asiakasTiedot.addRow(asiakasTiedot.getRowCount(), new Label("Vahvistetut kentät pakollisia"));
|
||||
|
||||
Label nimi = new Label("Asiakkaan etu- ja sukunimi");
|
||||
nimi.setStyle("-fx-font-weight: bold;");
|
||||
tfNimi = new TextField();
|
||||
tfNimi.setPromptText("Pakollinen tieto");
|
||||
root.addRow(root.getRowCount(), nimi, tfNimi);
|
||||
asiakasTiedot.addRow(asiakasTiedot.getRowCount(), nimi, tfNimi);
|
||||
|
||||
Label osoite = new Label("Osoite");
|
||||
osoite.setStyle("-fx-font-weight: bold;");
|
||||
tfOsoite = new TextField();
|
||||
tfOsoite.setPromptText("Pakollinen tieto");
|
||||
root.addRow(root.getRowCount(), osoite, tfOsoite);
|
||||
asiakasTiedot.addRow(asiakasTiedot.getRowCount(), osoite, tfOsoite);
|
||||
|
||||
root.addRow(root.getRowCount(), new Label("Määrät per kuljetus"));
|
||||
asiakasTiedot.addRow(asiakasTiedot.getRowCount(), new Label("Määrät per kuljetus"));
|
||||
|
||||
Label salaatit = new Label("Salaatit");
|
||||
tfSalaatit = new IntegerSpinner();
|
||||
root.addRow(root.getRowCount(), salaatit, tfSalaatit);
|
||||
asiakasTiedot.addRow(asiakasTiedot.getRowCount(), salaatit, tfSalaatit);
|
||||
|
||||
Label pääruoat = new Label("Pääruoat");
|
||||
tfPääruoat = new IntegerSpinner();
|
||||
root.addRow(root.getRowCount(), pääruoat, tfPääruoat);
|
||||
asiakasTiedot.addRow(asiakasTiedot.getRowCount(), pääruoat, tfPääruoat);
|
||||
|
||||
Label jälkiruoat = new Label("Jälkiruoat");
|
||||
tfJälkiruoat = new IntegerSpinner();
|
||||
root.addRow(root.getRowCount(), jälkiruoat, tfJälkiruoat);
|
||||
asiakasTiedot.addRow(asiakasTiedot.getRowCount(), jälkiruoat, tfJälkiruoat);
|
||||
|
||||
root.addRow(root.getRowCount(), new Label("Kuljetukset per päivä"));
|
||||
asiakasTiedot.addRow(asiakasTiedot.getRowCount(), new Label("Kuljetukset per päivä"));
|
||||
|
||||
Label maanantai = new Label("Maanantai");
|
||||
tfMaanantai = new IntegerSpinner();
|
||||
root.addRow(root.getRowCount(), maanantai, tfMaanantai);
|
||||
asiakasTiedot.addRow(asiakasTiedot.getRowCount(), maanantai, tfMaanantai);
|
||||
|
||||
Label tiistai = new Label("Tiistai");
|
||||
tfTiistai = new IntegerSpinner();
|
||||
root.addRow(root.getRowCount(), tiistai, tfTiistai);
|
||||
asiakasTiedot.addRow(asiakasTiedot.getRowCount(), tiistai, tfTiistai);
|
||||
|
||||
Label keskiviikko = new Label("Keskiviikko");
|
||||
tfKeskiviikko = new IntegerSpinner();
|
||||
root.addRow(root.getRowCount(), keskiviikko, tfKeskiviikko);
|
||||
asiakasTiedot.addRow(asiakasTiedot.getRowCount(), keskiviikko, tfKeskiviikko);
|
||||
|
||||
Label torstai = new Label("Torstai");
|
||||
tfTorstai = new IntegerSpinner();
|
||||
root.addRow(root.getRowCount(), torstai, tfTorstai);
|
||||
asiakasTiedot.addRow(asiakasTiedot.getRowCount(), torstai, tfTorstai);
|
||||
|
||||
Label perjantai = new Label("Perjantai");
|
||||
tfPerjantai = new IntegerSpinner();
|
||||
root.addRow(root.getRowCount(), perjantai, tfPerjantai);
|
||||
asiakasTiedot.addRow(asiakasTiedot.getRowCount(), perjantai, tfPerjantai);
|
||||
|
||||
Label ruokarajoitteet = new Label("Ruokarajoitteet");
|
||||
tfRuokarajoitteet = new TextField();
|
||||
root.addRow(root.getRowCount(), ruokarajoitteet, tfRuokarajoitteet);
|
||||
asiakasTiedot.addRow(asiakasTiedot.getRowCount(), ruokarajoitteet, tfRuokarajoitteet);
|
||||
|
||||
Label avainTieto = new Label("Avaintieto");
|
||||
tfAvainTieto = new TextField();
|
||||
root.addRow(root.getRowCount(), avainTieto, tfAvainTieto);
|
||||
asiakasTiedot.addRow(asiakasTiedot.getRowCount(), avainTieto, tfAvainTieto);
|
||||
|
||||
Label lisätiedot = new Label("Kuljetuksen lisätiedot");
|
||||
tfLisätiedot = new TextField();
|
||||
tfLisätiedot.setPromptText("Näkyy raporteilla");
|
||||
root.addRow(root.getRowCount(), lisätiedot, tfLisätiedot);
|
||||
asiakasTiedot.addRow(asiakasTiedot.getRowCount(), lisätiedot, tfLisätiedot);
|
||||
|
||||
|
||||
GridPane laskutusTiedot = new GridPane();
|
||||
laskutusTiedot.setPadding(new Insets(15));
|
||||
laskutusTiedot.setHgap(10);
|
||||
laskutusTiedot.setVgap(10);
|
||||
tabLaskutusTiedot.setContent(laskutusTiedot);
|
||||
|
||||
Label yhteyshenkilönNimi = new Label("Yhteyshenkilön etu- ja sukunimi");
|
||||
tfYhteyshenkilönNimi = new TextField();
|
||||
laskutusTiedot.addRow(laskutusTiedot.getRowCount(), yhteyshenkilönNimi, tfYhteyshenkilönNimi);
|
||||
|
||||
Label laskutusOsoite = new Label("Laskutusosoite");
|
||||
tfLaskutusOsoite = new TextField();
|
||||
laskutusTiedot.addRow(laskutusTiedot.getRowCount(), laskutusOsoite, tfLaskutusOsoite);
|
||||
|
||||
Label yhteyshenkilönPuhelinnumero = new Label("Puhelinnumero");
|
||||
tfYhteyshenkilönPuhelinnumero = new TextField();
|
||||
laskutusTiedot.addRow(laskutusTiedot.getRowCount(), yhteyshenkilönPuhelinnumero, tfYhteyshenkilönPuhelinnumero);
|
||||
|
||||
Label yhteyshenkilönSähköposti = new Label("Sähköposti");
|
||||
tfYhteyshenkilönSähköposti = new TextField();
|
||||
laskutusTiedot.addRow(laskutusTiedot.getRowCount(), yhteyshenkilönSähköposti, tfYhteyshenkilönSähköposti);
|
||||
|
||||
HBox napit = new HBox();
|
||||
Button peruuta = new Button("Peruuta");
|
||||
peruuta.setFont(TabPohja.buttonFont);
|
||||
peruuta.setMinWidth(160);
|
||||
peruuta.setOnAction(_ -> this.close());
|
||||
Button tallenna = new Button("Tallenna");
|
||||
tallenna.setFont(TabPohja.buttonFont);
|
||||
tallenna.setMinWidth(160);
|
||||
tallenna.setOnAction(_ -> tallenna());
|
||||
root.addRow(root.getRowCount(), peruuta, tallenna);
|
||||
napit.getChildren().addAll(peruuta, tallenna);
|
||||
napit.setAlignment(Pos.CENTER_RIGHT);
|
||||
napit.setSpacing(10);
|
||||
napit.setPadding(TabPohja.oletusInsets);
|
||||
|
||||
|
||||
VBox root = new VBox();
|
||||
root.getChildren().addAll(tabPane, napit);
|
||||
this.setScene(new Scene(root));
|
||||
this.getIcons().add(new Image(Objects.requireNonNull(Main.class.getClassLoader().getResourceAsStream("kuljetusruokalaatikko.jpg"))));
|
||||
this.setAlwaysOnTop(true);
|
||||
@@ -142,6 +191,10 @@ public class AsiakasIkkuna extends Stage {
|
||||
tfRuokarajoitteet.setText(käsiteltäväAsiakas.getErityisruokavalio());
|
||||
tfAvainTieto.setText(käsiteltäväAsiakas.getAvainTieto());
|
||||
tfLisätiedot.setText(käsiteltäväAsiakas.getLisätiedot());
|
||||
tfYhteyshenkilönNimi.setText(käsiteltäväAsiakas.getYhteyshenkilönNimi());
|
||||
tfLaskutusOsoite.setText(käsiteltäväAsiakas.getLaskutusOsoite());
|
||||
tfYhteyshenkilönPuhelinnumero.setText(käsiteltäväAsiakas.getYhteyshenkilönPuhelinnumero());
|
||||
tfYhteyshenkilönSähköposti.setText(käsiteltäväAsiakas.getYhteyshenkilönSähköposti());
|
||||
}
|
||||
|
||||
private void tallenna() {
|
||||
@@ -171,6 +224,10 @@ public class AsiakasIkkuna extends Stage {
|
||||
käsiteltäväAsiakas.setErityisruokavalio(tfRuokarajoitteet.getText());
|
||||
käsiteltäväAsiakas.setAvainTieto(tfAvainTieto.getText());
|
||||
käsiteltäväAsiakas.setLisätiedot(tfLisätiedot.getText());
|
||||
käsiteltäväAsiakas.setYhteyshenkilönNimi(tfYhteyshenkilönNimi.getText());
|
||||
käsiteltäväAsiakas.setLaskutusOsoite(tfLaskutusOsoite.getText());
|
||||
käsiteltäväAsiakas.setYhteyshenkilönPuhelinnumero(tfYhteyshenkilönPuhelinnumero.getText());
|
||||
käsiteltäväAsiakas.setYhteyshenkilönSähköposti(tfYhteyshenkilönSähköposti.getText());
|
||||
|
||||
boolean läpi = false;
|
||||
int maxYritykset = 3;
|
||||
@@ -188,7 +245,6 @@ public class AsiakasIkkuna extends Stage {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (läpi) {
|
||||
int viikonKuljetukset = käsiteltäväAsiakas.getMaanantaiKpl() + käsiteltäväAsiakas.getTiistaiKpl() + käsiteltäväAsiakas.getKeskiviikkoKpl() + käsiteltäväAsiakas.getTorstaiKpl() + käsiteltäväAsiakas.getPerjantaiKpl();
|
||||
Alert alert = new Alert(Alert.AlertType.INFORMATION);
|
||||
|
||||
@@ -103,8 +103,21 @@ public class Asiakashallinta extends TabPohja {
|
||||
TableColumn<Asiakas, String> tcLisätiedot = new TableColumn<>("Lisätieto kuljetukselle");
|
||||
tcLisätiedot.setMinWidth(250);
|
||||
tcLisätiedot.setCellValueFactory(new PropertyValueFactory<>("lisätiedot"));
|
||||
TableColumn<Asiakas, String> tcYhteyshenkilönNimi = new TableColumn<>("Yhteyshenkilö");
|
||||
tcYhteyshenkilönNimi.setMinWidth(250);
|
||||
tcYhteyshenkilönNimi.setCellValueFactory(new PropertyValueFactory<>("yhteyshenkilönNimi"));
|
||||
TableColumn<Asiakas, String> tcLaskutusOsoite = new TableColumn<>("Laskutusosoite");
|
||||
tcLaskutusOsoite.setMinWidth(250);
|
||||
tcLaskutusOsoite.setCellValueFactory(new PropertyValueFactory<>("laskutusOsoite"));
|
||||
TableColumn<Asiakas, String> tcYhteyshenkilönPuhelinnumero = new TableColumn<>("Yhteyshenkilön puhelinnumero");
|
||||
tcYhteyshenkilönPuhelinnumero.setMinWidth(250);
|
||||
tcYhteyshenkilönPuhelinnumero.setCellValueFactory(new PropertyValueFactory<>("yhteyshenkilönPuhelinnumero"));
|
||||
TableColumn<Asiakas, String> tcYhteyshenkilönSähköposti = new TableColumn<>("Yhteyshenkilön sähköposti");
|
||||
tcYhteyshenkilönSähköposti.setMinWidth(250);
|
||||
tcYhteyshenkilönSähköposti.setCellValueFactory(new PropertyValueFactory<>("yhteyshenkilönSähköposti"));
|
||||
|
||||
tvAsiakkaat.getColumns().addAll(tcNimi, tcOsoite, tcKuljetuspäivät, tcKuljetusmäärät, tcErityisruokavalio, tcAvainTieto, tcLisätiedot, tcYhteyshenkilönNimi, tcLaskutusOsoite, tcYhteyshenkilönPuhelinnumero, tcYhteyshenkilönSähköposti);
|
||||
|
||||
tvAsiakkaat.getColumns().addAll(tcNimi, tcOsoite, tcKuljetuspäivät, tcKuljetusmäärät, tcErityisruokavalio, tcAvainTieto, tcLisätiedot);
|
||||
for (TableColumn<Asiakas, ?> column : tvAsiakkaat.getColumns()) {
|
||||
column.setEditable(false);
|
||||
column.setReorderable(false);
|
||||
|
||||
@@ -12,7 +12,6 @@ import javafx.scene.text.FontWeight;
|
||||
public class TabPohja extends StackPane {
|
||||
public static final Insets oletusInsets = new Insets(5);
|
||||
public static final String oletusStyle = "-fx-background-color: lightgray;";
|
||||
public static final Font otsikkoFont = Font.font("Open Sans", FontWeight.BOLD, 18);
|
||||
public static final Font buttonFont = Font.font("Open Sans", FontWeight.BOLD, 16);
|
||||
public static final Font tekstiFont = Font.font("Open Sans", FontWeight.NORMAL, 16);
|
||||
public static final Border oletusBorder = new Border(new BorderStroke(Color.BLACK, BorderStrokeStyle.SOLID, new CornerRadii(5), BorderWidths.DEFAULT));
|
||||
|
||||
Reference in New Issue
Block a user