Parcourir la source

Menambahkan DialogTambahNotaController, membuat fungsi menampilkan dialog tambah nota(Tunai, Bon, Bawa, Retur), dan ambil dari checkout

pull/1/head
Jessica C Dewanta il y a 5 ans
Parent
révision
02931488a6
3 fichiers modifiés avec 131 ajouts et 19 suppressions
  1. +18
    -10
      src/main/java/id/amigogroup/posterminal/FormUtamaController.java
  2. +103
    -0
      src/main/java/id/amigogroup/posterminal/transaksi/DialogTambahNotaController.java
  3. +10
    -9
      src/main/resources/fxml/DialogTambahNota.fxml

+ 18
- 10
src/main/java/id/amigogroup/posterminal/FormUtamaController.java Voir le fichier

@@ -5,6 +5,7 @@ import id.amigogroup.posterminal.pencarian.DialogCariNotaTundaController;
import id.amigogroup.posterminal.pencarian.DialogCariPelangganController;
import id.amigogroup.posterminal.pencarian.DialogCetakUlangNotaController;
import id.amigogroup.posterminal.transaksi.DialogKonfirmasiReturController;
import id.amigogroup.posterminal.transaksi.DialogTambahNotaController;
import id.amigogroup.posterminal.transaksi.FormTransaksiReturController;
import id.amigogroup.posterminal.transaksi.FormTransaksiTunaiController;
import id.amigogroup.posterminal.util.Fucout;
@@ -93,11 +94,11 @@ public class FormUtamaController implements Initializable {
tipeNotaState = Fucout.TIPE_NOTA_TUNAI;
});
}
private void updateSelectedNota(ActionEvent event) {
Button buttonSource = (Button) event.getSource();
notaState = navigasi.indexOf(buttonSource);
Fucout.scrollToNode(spNavigasi,buttonSource);
Fucout.scrollToNode(spNavigasi, buttonSource);
// if (!tableState.equals(buttonSource.getText().toLowerCase())) {
// switch (buttonSource.getText().toLowerCase()) {
// case BTN_TUNAI:
@@ -248,7 +249,7 @@ public class FormUtamaController implements Initializable {
};
listShortcuts.put(kcCariNotaTunda, rnCariNotaTunda);

KeyCombination kcCariCetakUlangNota = new KeyCodeCombination(KeyCode.P,KeyCombination.CONTROL_DOWN);
KeyCombination kcCariCetakUlangNota = new KeyCodeCombination(KeyCode.P, KeyCombination.CONTROL_DOWN);
Runnable rnCetakUlangNota = () -> {
DialogCetakUlangNotaController dialogCetakUlangNota = new DialogCetakUlangNotaController();
dialogCetakUlangNota.initOwner((Stage) bpMain.getScene().getWindow());
@@ -260,7 +261,7 @@ public class FormUtamaController implements Initializable {

KeyCombination kcCheckout = new KeyCodeCombination(KeyCode.F8);
Runnable rnCheckout = () -> {
switch(tipeNotaState){
switch (tipeNotaState) {
case Fucout.TIPE_NOTA_TUNAI:
setContent(formFactory.getForm(FormConstanta.BAYAR, this));
break;
@@ -314,11 +315,18 @@ public class FormUtamaController implements Initializable {

@FXML
void btnTambahNotaOnAction(ActionEvent event) {
Button buttonBaru = generateButtonNota("10-0220-0000X",
FormConstanta.TRANSAKSI_TUNAI,
Fucout.TIPE_NOTA_TUNAI);
navigasi.add(buttonBaru);
vbNavigasi.getChildren().add(buttonBaru);
jumlahNota++;
DialogTambahNotaController dialogTambahNota = new DialogTambahNotaController();
dialogTambahNota.initOwner((Stage) bpMain.getScene().getWindow());
Optional<String> hasilReturn = dialogTambahNota.showAndWait();

if (hasilReturn.isPresent() && hasilReturn.get().equals("Tambah")) {

Button buttonBaru = generateButtonNota("10-0220-0000X",
FormConstanta.TRANSAKSI_TUNAI,
Fucout.TIPE_NOTA_TUNAI);
navigasi.add(buttonBaru);
vbNavigasi.getChildren().add(buttonBaru);
jumlahNota++;
}
}
}

+ 103
- 0
src/main/java/id/amigogroup/posterminal/transaksi/DialogTambahNotaController.java Voir le fichier

@@ -0,0 +1,103 @@
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package id.amigogroup.posterminal.transaksi;
import java.io.IOException;
import java.net.URL;
import java.util.ResourceBundle;
import java.util.logging.Level;
import java.util.logging.Logger;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.fxml.Initializable;
import javafx.scene.Parent;
import javafx.scene.control.ButtonType;
import javafx.scene.control.ComboBox;
import javafx.scene.control.Dialog;
import javafx.scene.control.TextField;
import javafx.scene.control.ToggleGroup;
import javafx.scene.layout.AnchorPane;
import javafx.stage.Window;
/**
*
* @author Josua
*/
public class DialogTambahNotaController extends Dialog<String> implements Initializable {
@FXML
private AnchorPane apTambahNota;
@FXML
private ToggleGroup tgTipe;
@FXML
private ComboBox cbxPilihNota;
@FXML
private TextField txtFieldAmbilDariCheckout;
public static final ButtonType btnLanjutkan = new ButtonType("Lanjutkan");
public static final ButtonType btnBatal = new ButtonType("Batal");
@Override
public void initialize(URL url, ResourceBundle rb) {
cbxPilihNota.getItems().setAll(
"Tunai",
"Bon",
"Bawa Dulu",
"Retur"
);
}
public DialogTambahNotaController() {
try {
Window window = getDialogPane().getScene().getWindow();
window.setOnCloseRequest(event -> this.close());
FXMLLoader loader = new FXMLLoader(getClass().getResource("/fxml/DialogTambahNota.fxml"));
loader.setController(this);
// DialogCariBarangController controller = loader.<DialogCariBarangController>getController();
Parent root = loader.load();
getDialogPane().setContent(root);
getDialogPane().getButtonTypes().add(btnBatal);
getDialogPane().getButtonTypes().add(btnLanjutkan);
setResultConverter(buttonType -> {
if (buttonType == btnLanjutkan) {
//radio button mana yang dipilih
//baru, balikin tipe yang dipilih
//dari checkout, balikin isi nomor nota (hanya jika nota ditemukan)
return "Tambah";
}
return "Batal";
});
setTitle("Tambah Nota");
} catch (IOException ex) {
Logger.getLogger(DialogKonfirmasiReturController.class.getName()).log(Level.SEVERE, null, ex);
}
}
@FXML
void rbNotaBaruOnAction(ActionEvent event) {
cbxPilihNota.setDisable(false);
txtFieldAmbilDariCheckout.setDisable(true);
// Button buttonBaru FormConstanta= generateButtonNota("10-0220-0000X",
// FormConstanta.TRANSAKSI_TUNAI,
// Fucout.TIPE_NOTA_TUNAI);
// navigasi.add(buttonBaru);
// vbNavigasi.getChildren().add(buttonBaru);
// jumlahNota++;
}
@FXML
void rbAmbilDariCheckoutOnAction(ActionEvent event) {
cbxPilihNota.setDisable(true);
txtFieldAmbilDariCheckout.setDisable(false);
}
}

+ 10
- 9
src/main/resources/fxml/DialogTambahNota.fxml Voir le fichier

@@ -1,25 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.control.Button?>
<?import javafx.scene.control.ComboBox?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.RadioButton?>
<?import javafx.scene.control.TextField?>
<?import javafx.scene.control.ToggleGroup?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.text.Font?>

<AnchorPane id="AnchorPane" prefHeight="250.0" prefWidth="400.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1">
<AnchorPane id="AnchorPane" fx:id="apTambahNota" prefHeight="189.0" prefWidth="400.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1">
<children>
<Label layoutX="14.0" layoutY="14.0" text="Tambah" AnchorPane.leftAnchor="4.0" AnchorPane.topAnchor="4.0">
<Label layoutX="14.0" layoutY="14.0" text="Tambah Nota" AnchorPane.leftAnchor="4.0" AnchorPane.topAnchor="4.0">
<font>
<Font size="16.0" />
</font>
</Label>
<RadioButton layoutX="33.0" layoutY="45.0" mnemonicParsing="false" onAction="#rbTambahNotaBaru" text="Baru" AnchorPane.leftAnchor="32.0" AnchorPane.topAnchor="46.0" />
<RadioButton layoutX="33.0" layoutY="121.0" mnemonicParsing="false" text="Ambil dari checkout" AnchorPane.leftAnchor="32.0" AnchorPane.topAnchor="122.0" />
<ComboBox layoutX="61.0" layoutY="79.0" prefWidth="150.0" promptText="Pilih salah satu" AnchorPane.leftAnchor="62.0" AnchorPane.topAnchor="70.0" />
<TextField layoutX="63.0" layoutY="150.0" AnchorPane.leftAnchor="62.0" AnchorPane.topAnchor="146.0" />
<Button layoutX="250.0" layoutY="200.0" mnemonicParsing="false" onAction="#btnBatal" text="Batal" AnchorPane.bottomAnchor="10.0" AnchorPane.rightAnchor="90.0" />
<Button layoutX="318.0" layoutY="200.0" mnemonicParsing="false" onAction="#btnLanjutkan" text="Lanjutkan" AnchorPane.bottomAnchor="10.0" AnchorPane.rightAnchor="10.0" />
<RadioButton layoutX="33.0" layoutY="45.0" mnemonicParsing="false" onAction="#rbNotaBaruOnAction" selected="true" text="Baru" AnchorPane.leftAnchor="32.0" AnchorPane.topAnchor="46.0">
<toggleGroup>
<ToggleGroup fx:id="tgTipe" />
</toggleGroup></RadioButton>
<RadioButton layoutX="33.0" layoutY="121.0" mnemonicParsing="false" onAction="#rbAmbilDariCheckoutOnAction" text="Ambil dari checkout" toggleGroup="$tgTipe" AnchorPane.leftAnchor="32.0" AnchorPane.topAnchor="122.0" />
<ComboBox fx:id="cbxPilihNota" layoutX="61.0" layoutY="79.0" prefWidth="150.0" promptText="Pilih nota" AnchorPane.leftAnchor="62.0" AnchorPane.topAnchor="70.0" />
<TextField fx:id="txtFieldAmbilDariCheckout" disable="true" layoutX="63.0" layoutY="150.0" AnchorPane.leftAnchor="62.0" AnchorPane.topAnchor="146.0" />
</children>
</AnchorPane>

Chargement…
Annuler
Enregistrer