127c9d671b
Signed-off-by: laurimaaninka <lauri.maaninka@gmail.com>
129 lines
5.8 KiB
Java
129 lines
5.8 KiB
Java
package fi.lpam.gui;
|
|
|
|
import fi.lpam.Main;
|
|
import fi.lpam.dataluokat.Kuljetus;
|
|
import fi.lpam.dataluokat.RaporttiRivi;
|
|
import fi.lpam.gui.elementit.FontLabel;
|
|
import fi.lpam.tulostajat.KuljetusRaporttiTulostaja;
|
|
import fi.lpam.gui.tableCell.PaivamaaraTableCell;
|
|
import fi.lpam.gui.elementit.TabPohja;
|
|
import javafx.collections.FXCollections;
|
|
import javafx.geometry.Pos;
|
|
import javafx.scene.control.*;
|
|
import javafx.scene.control.cell.PropertyValueFactory;
|
|
import javafx.scene.layout.BorderPane;
|
|
import javafx.scene.layout.HBox;
|
|
|
|
import java.time.LocalDate;
|
|
import java.util.ArrayList;
|
|
import java.util.Objects;
|
|
|
|
|
|
@SuppressWarnings("unchecked")
|
|
public class KuljetusRaportit extends TabPohja {
|
|
private final TableView<RaporttiRivi> tableView = new TableView<>();
|
|
private final DatePicker alkuPvm, loppuPvm;
|
|
private ArrayList<RaporttiRivi> raportti;
|
|
private final CheckBox tarkka;
|
|
|
|
void haeRaportti() {
|
|
raportti = RaporttiRivi.haeRaportti(alkuPvm.getValue(), loppuPvm.getValue(), tarkka.isSelected());
|
|
tableView.setItems(FXCollections.observableArrayList(Objects.requireNonNull(raportti)));
|
|
tableView.refresh();
|
|
}
|
|
|
|
void tulostaRaportti() {
|
|
new KuljetusRaporttiTulostaja().luoRaportti(raportti, alkuPvm.getValue(), loppuPvm.getValue());
|
|
}
|
|
|
|
public KuljetusRaportit() {
|
|
super("Raportit");
|
|
|
|
BorderPane yläpalkki = new BorderPane();
|
|
root.setTop(yläpalkki);
|
|
|
|
Label infoTeksti = new FontLabel(TEKSTI_FONT, "Kuljetusraportit. \nTarkka-valinnalla koostetun raportin \ntulostaminen paperille ei suositeltua.");
|
|
yläpalkki.setLeft(infoTeksti);
|
|
|
|
HBox yläpalkinNapit = new HBox();
|
|
yläpalkinNapit.setAlignment(Pos.CENTER);
|
|
yläpalkinNapit.setSpacing(SPACING);
|
|
yläpalkki.setRight(yläpalkinNapit);
|
|
|
|
tarkka = new CheckBox("Tarkka");
|
|
tarkka.setFont(TEKSTI_FONT);
|
|
alkuPvm = new DatePicker(LocalDate.now().minusDays(LocalDate.now().getDayOfMonth() - 1));
|
|
loppuPvm = new DatePicker(LocalDate.now());
|
|
Button haeKuljetukset = new Button("Hae");
|
|
haeKuljetukset.setFont(BUTTON_FONT);
|
|
haeKuljetukset.setOnAction(_ ->haeRaportti());
|
|
Button tulostaRaportti = new Button("Tulosta raportti");
|
|
tulostaRaportti.setFont(BUTTON_FONT);
|
|
tulostaRaportti.setOnAction(_ ->tulostaRaportti());
|
|
yläpalkinNapit.getChildren().addAll(tarkka,
|
|
//new FontLabel(tekstiFont,"Hae kuljetukset välillä:"),
|
|
alkuPvm, new FontLabel(TEKSTI_FONT,"-"), loppuPvm,
|
|
haeKuljetukset, tulostaRaportti);
|
|
|
|
root.setCenter(tableView);
|
|
|
|
TableColumn<RaporttiRivi, String> tcNimi = new TableColumn<>("Nimi");
|
|
tcNimi.setMinWidth(200);
|
|
tcNimi.setCellValueFactory(new PropertyValueFactory<>("nimi"));
|
|
|
|
TableColumn<RaporttiRivi, LocalDate> tcPvm = new TableColumn<>("Päivämäärä");
|
|
tcPvm.setMinWidth(150);
|
|
tcPvm.setCellFactory(_ ->new PaivamaaraTableCell());
|
|
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");
|
|
tcSalaatit.setMinWidth(100);
|
|
tcSalaatit.setCellValueFactory(new PropertyValueFactory<>("salaatit"));
|
|
|
|
TableColumn<RaporttiRivi, Integer> tcPääruoat = new TableColumn<>("Pääruoat");
|
|
tcPääruoat.setMinWidth(100);
|
|
tcPääruoat.setCellValueFactory(new PropertyValueFactory<>("pääruoat"));
|
|
|
|
TableColumn<RaporttiRivi, Integer> tcJälkiruoat = new TableColumn<>("Jälkiruoat");
|
|
tcJälkiruoat.setMinWidth(100);
|
|
tcJälkiruoat.setCellValueFactory(new PropertyValueFactory<>("jälkiruoat"));
|
|
|
|
TableColumn<RaporttiRivi, String> tcErva = new TableColumn<>("Erityisruokavalio");
|
|
tcErva.setMinWidth(200);
|
|
tcErva.setCellValueFactory(new PropertyValueFactory<>("erva"));
|
|
|
|
TableColumn<RaporttiRivi, String> tcLisätiedot = new TableColumn<>("Lisätiedot");
|
|
tcLisätiedot.setMinWidth(300);
|
|
tcLisätiedot.setCellValueFactory(new PropertyValueFactory<>("lisätiedot"));
|
|
|
|
TableColumn<RaporttiRivi, String> tcYhteyshenkilönNimi = new TableColumn<>("Yhteyshenkilön nimi");
|
|
tcYhteyshenkilönNimi.setMinWidth(200);
|
|
tcYhteyshenkilönNimi.setCellValueFactory(new PropertyValueFactory<>("yhteyshenkilönNimi"));
|
|
|
|
TableColumn<RaporttiRivi, String> tcLaskutusOsoite = new TableColumn<>("Laskutusosoite");
|
|
tcLaskutusOsoite.setMinWidth(200);
|
|
tcLaskutusOsoite.setCellValueFactory(new PropertyValueFactory<>("laskutusOsoite"));
|
|
|
|
TableColumn<RaporttiRivi, String> tcYhteyshenkilönPuhelinnumero = new TableColumn<>("Puhelinnumero");
|
|
tcYhteyshenkilönPuhelinnumero.setMinWidth(200);
|
|
tcYhteyshenkilönPuhelinnumero.setCellValueFactory(new PropertyValueFactory<>("yhteyshenkilönPuhelinnumero"));
|
|
|
|
TableColumn<RaporttiRivi, String> tcYhteyshenkilönSähköposti = new TableColumn<>("Sähköposti");
|
|
tcYhteyshenkilönSähköposti.setMinWidth(200);
|
|
tcYhteyshenkilönSähköposti.setCellValueFactory(new PropertyValueFactory<>("yhteyshenkilönSähköposti"));
|
|
|
|
tableView.getColumns().addAll(tcNimi, tcPvm, tcTyyppi, tcSalaatit, tcPääruoat, tcJälkiruoat, tcErva, tcLisätiedot,
|
|
tcYhteyshenkilönNimi, tcLaskutusOsoite, tcYhteyshenkilönPuhelinnumero, tcYhteyshenkilönSähköposti);
|
|
tableView.setPlaceholder(new FontLabel(BUTTON_FONT, "Hae raportti"));
|
|
|
|
for (TableColumn<RaporttiRivi, ?> sarake : tableView.getColumns()) {
|
|
sarake.setEditable(false);
|
|
sarake.setResizable(true);
|
|
sarake.setStyle(TV_COLUMN_STYLE);
|
|
}
|
|
}
|
|
} |