diff --git a/src/main/java/id/amigogroup/posterminal/FormUtamaController.java b/src/main/java/id/amigogroup/posterminal/FormUtamaController.java index bf376a1..7979c22 100644 --- a/src/main/java/id/amigogroup/posterminal/FormUtamaController.java +++ b/src/main/java/id/amigogroup/posterminal/FormUtamaController.java @@ -164,17 +164,30 @@ public class FormUtamaController implements Initializable { try { switch (tipe) { case FormConstanta.TRANSAKSI_TUNAI: - loader.setLocation(getClass().getResource("/fxml/FormTransaksiTunai.fxml")); - node = loader.load(); - FormTransaksiTunaiController fttc = loader.getController(); - notaContent.controllerTunai = fttc; - fttc.initData(noNota, baru); + if (notaContent.nodeTunai != null) { + node = notaContent.nodeTunai; + } else { + loader.setLocation(getClass().getResource("/fxml/FormTransaksiTunai.fxml")); + node = loader.load(); + notaContent.nodeTunai = node; + + FormTransaksiTunaiController fttc = loader.getController(); + notaContent.controllerTunai = fttc; + fttc.initData(noNota, baru); + } break; case FormConstanta.TRANSAKSI_RETUR: - loader.setLocation(getClass().getResource("/fxml/FormTransaksiRetur.fxml")); - node = loader.load(); - FormTransaksiReturController ftrc = loader.getController(); - ftrc.initData(noNota, baru); + if (notaContent.nodeRetur != null) { + node = notaContent.nodeRetur; + } else { + loader.setLocation(getClass().getResource("/fxml/FormTransaksiRetur.fxml")); + node = loader.load(); + notaContent.nodeRetur = node; + + FormTransaksiReturController ftrc = loader.getController(); + notaContent.controllerRetur = ftrc; + ftrc.initData(noNota, baru); + } break; } @@ -227,6 +240,12 @@ public class FormUtamaController implements Initializable { }; listShortcuts.put(kcNextNota, rnNextNota); + KeyCombination kcTambah = new KeyCodeCombination(KeyCode.F3); + Runnable rnTambah = () -> { + btnTambahNota.fire(); + }; + listShortcuts.put(kcTambah, rnTambah); + KeyCombination kcCariBarang = new KeyCodeCombination(KeyCode.F5); Runnable rnCariBarang = () -> { DialogCariBarangController dialogCariBarang = new DialogCariBarangController(); @@ -306,12 +325,6 @@ public class FormUtamaController implements Initializable { }; listShortcuts.put(kcCariCetakUlangNota, rnCetakUlangNota); - KeyCombination kcTambah = new KeyCodeCombination(KeyCode.T, KeyCombination.CONTROL_DOWN); - Runnable rnTambah = () -> { - btnTambahNota.fire(); - }; - listShortcuts.put(kcTambah, rnTambah); - KeyCombination kcScanMember = new KeyCodeCombination(KeyCode.S, KeyCombination.CONTROL_DOWN); Runnable rnScanMember = () -> { tfScanMember.requestFocus(); @@ -321,7 +334,10 @@ public class FormUtamaController implements Initializable { KeyCombination kcLogout = new KeyCodeCombination(KeyCode.L, KeyCombination.CONTROL_DOWN); Runnable rnLogout = () -> { try { - generateNewWindow("/fxml/FormLogin.fxml").show(); + Stage stage = generateNewWindow("/fxml/FormLogin.fxml"); + stage.setResizable(false); + stage.show(); + Stage thisStage = (Stage) bpMain.getScene().getWindow(); thisStage.close(); } catch (IOException ex) { @@ -538,9 +554,11 @@ public class FormUtamaController implements Initializable { Button btnTunai; FormTransaksiTunaiController controllerTunai = null; + Node nodeTunai = null; Button btnBawa; Button btnBon; Button btnRetur; FormTransaksiReturController controllerRetur = null; + Node nodeRetur = null; } } diff --git a/src/main/java/id/amigogroup/posterminal/pencarian/DialogCariPelangganController.java b/src/main/java/id/amigogroup/posterminal/pencarian/DialogCariPelangganController.java index 6f57cbd..f55fa96 100644 --- a/src/main/java/id/amigogroup/posterminal/pencarian/DialogCariPelangganController.java +++ b/src/main/java/id/amigogroup/posterminal/pencarian/DialogCariPelangganController.java @@ -39,6 +39,8 @@ import javafx.scene.control.ToggleGroup; import javafx.scene.control.cell.PropertyValueFactory; import javafx.scene.input.KeyCode; import javafx.scene.input.KeyEvent; +import javafx.scene.input.MouseButton; +import javafx.scene.input.MouseEvent; import javafx.scene.layout.AnchorPane; import javafx.stage.Window; import retrofit2.HttpException; @@ -78,7 +80,7 @@ public class DialogCariPelangganController extends Dialog implements private TableColumn tcUpline; final ObservableList daftarTabelPelanggan = FXCollections.observableArrayList(); AmigoPosRx posRx = new AmigoPosRx(); - private Pelanggan pelanggan = null; + private Pelanggan selectedPelanggan = null; /** * Initializes the controller class. @@ -112,7 +114,7 @@ public class DialogCariPelangganController extends Dialog implements setTitle("Cari Pelanggan"); setResultConverter(buttonType -> { - return pelanggan; + return selectedPelanggan; }); } catch (IOException e) { Logger.getLogger(DialogCariBarangController.class @@ -123,15 +125,18 @@ public class DialogCariPelangganController extends Dialog implements public void updateTabelPelanggan(List daftarPelanggan) { daftarTabelPelanggan.clear(); for (Pelanggan pelanggan : daftarPelanggan) { - daftarTabelPelanggan.add(new TabelPelanggan( + TabelPelanggan tp = new TabelPelanggan( pelanggan.getAlias(), pelanggan.getNama(), pelanggan.getAlamat(), pelanggan.getTelp() + " / " + pelanggan.getPonsel(), - pelanggan.getUpline())); + pelanggan.getUpline()); + tp.setData(pelanggan); + + daftarTabelPelanggan.add(tp); } } - + @FXML void tfPencarianOnKeyReleased(KeyEvent event) { daftarTabelPelanggan.clear(); @@ -148,6 +153,28 @@ public class DialogCariPelangganController extends Dialog implements } + @FXML + void tbvPelangganOnKeyPressed(KeyEvent event) { + if (event.getCode() == KeyCode.ENTER) { + if (tbvPelanggan.getSelectionModel().getSelectedItem() != null) { + selectedPelanggan = tbvPelanggan.getSelectionModel().getSelectedItem().getData(); + close(); + } + } + } + + @FXML + void tbvPelangganOnMouseClicked(MouseEvent event) { + if (event.getButton().equals(MouseButton.PRIMARY)) { + if (event.getClickCount() >= 2) { + if (tbvPelanggan.getSelectionModel().getSelectedItem() != null) { + selectedPelanggan = tbvPelanggan.getSelectionModel().getSelectedItem().getData(); + close(); + } + } + } + } + public Observer pelangganMemberObserver = new Observer() { @Override public void onSubscribe(Disposable dspsbl) { @@ -155,9 +182,8 @@ public class DialogCariPelangganController extends Dialog implements @Override public void onNext(Pelanggan p) { - System.out.println("COBA AJA"); if (p != null) { - pelanggan = p; + selectedPelanggan = p; close(); } } diff --git a/src/main/java/id/amigogroup/posterminal/pencarian/TabelPelanggan.java b/src/main/java/id/amigogroup/posterminal/pencarian/TabelPelanggan.java index 339c764..1688c85 100644 --- a/src/main/java/id/amigogroup/posterminal/pencarian/TabelPelanggan.java +++ b/src/main/java/id/amigogroup/posterminal/pencarian/TabelPelanggan.java @@ -5,6 +5,7 @@ */ package id.amigogroup.posterminal.pencarian; +import id.amigogroup.posterminal.model.Pelanggan; import javafx.beans.property.SimpleStringProperty; /** @@ -18,6 +19,8 @@ public class TabelPelanggan { private final SimpleStringProperty alamat; private final SimpleStringProperty noTelp; private final SimpleStringProperty upline; + + private Pelanggan data; public TabelPelanggan(String kode, String nama, String alamat, String noTelp, String upline) { this.kode = new SimpleStringProperty(kode); @@ -96,4 +99,18 @@ public class TabelPelanggan { public void setUpline(String upline) { this.upline.set(upline); } + + /** + * @return the data + */ + public Pelanggan getData() { + return data; + } + + /** + * @param data the data to set + */ + public void setData(Pelanggan data) { + this.data = data; + } } diff --git a/src/main/java/id/amigogroup/posterminal/transaksi/FormTransaksiReturController.java b/src/main/java/id/amigogroup/posterminal/transaksi/FormTransaksiReturController.java index f0732e3..0fafa30 100644 --- a/src/main/java/id/amigogroup/posterminal/transaksi/FormTransaksiReturController.java +++ b/src/main/java/id/amigogroup/posterminal/transaksi/FormTransaksiReturController.java @@ -5,7 +5,6 @@ */ package id.amigogroup.posterminal.transaksi; -import id.amigogroup.posterminal.FormUtamaController; import id.amigogroup.posterminal.api.AmigoPosRx; import id.amigogroup.posterminal.model.Barang; import id.amigogroup.posterminal.model.DNotaRetur; @@ -17,12 +16,9 @@ import id.amigogroup.posterminal.util.Fucout; import io.reactivex.Observer; import io.reactivex.disposables.Disposable; import java.net.HttpURLConnection; -import java.net.SocketTimeoutException; import java.net.URL; import java.util.List; import java.util.ResourceBundle; -import java.util.logging.Level; -import java.util.logging.Logger; import javafx.application.Platform; import javafx.beans.property.ReadOnlyObjectWrapper; import javafx.collections.FXCollections; @@ -109,7 +105,7 @@ public class FormTransaksiReturController implements Initializable { @FXML private Label lblTambahKeTabelRetur; private TableColumn tcAction; - + private final AmigoPosRx posRx = new AmigoPosRx(); private String noNota = ""; private final ObservableList daftarTabelPenjualan = FXCollections.observableArrayList(); @@ -133,7 +129,7 @@ public class FormTransaksiReturController implements Initializable { tcDisc2.setCellValueFactory(new PropertyValueFactory<>("disc2")); tcSubTotal.setCellValueFactory(new PropertyValueFactory<>("subTotal")); tcPramuniaga.setCellValueFactory(new PropertyValueFactory<>("fldPramuniaga")); - tcAction.setCellValueFactory(new PropertyValueFactory<>("btnAction")); +// tcAction.setCellValueFactory(new PropertyValueFactory<>("btnAction")); tbvPenjualan.setItems(daftarTabelPenjualan); tcNoRetur.setCellValueFactory((TableColumn.CellDataFeatures cell) -> { diff --git a/src/main/java/id/amigogroup/posterminal/transaksi/FormTransaksiTunaiController.java b/src/main/java/id/amigogroup/posterminal/transaksi/FormTransaksiTunaiController.java index fc2c950..6014043 100644 --- a/src/main/java/id/amigogroup/posterminal/transaksi/FormTransaksiTunaiController.java +++ b/src/main/java/id/amigogroup/posterminal/transaksi/FormTransaksiTunaiController.java @@ -5,7 +5,6 @@ */ package id.amigogroup.posterminal.transaksi; -import id.amigogroup.posterminal.FormUtamaController; import id.amigogroup.posterminal.api.AmigoPosRx; import id.amigogroup.posterminal.model.Barang; import id.amigogroup.posterminal.model.DNotaTunai; @@ -17,12 +16,9 @@ import io.reactivex.Observable; import io.reactivex.Observer; import io.reactivex.disposables.Disposable; import java.net.HttpURLConnection; -import java.net.SocketTimeoutException; import java.net.URL; import java.util.List; import java.util.ResourceBundle; -import java.util.logging.Level; -import java.util.logging.Logger; import javafx.application.Platform; import javafx.beans.property.ReadOnlyObjectWrapper; import javafx.collections.FXCollections; @@ -43,7 +39,6 @@ import javafx.scene.input.KeyCode; import javafx.scene.input.KeyEvent; import javafx.scene.layout.AnchorPane; import javafx.scene.text.Text; -import javax.swing.JOptionPane; import retrofit2.HttpException; /** diff --git a/src/main/resources/fxml/DialogCariPelanggan.fxml b/src/main/resources/fxml/DialogCariPelanggan.fxml index 9b6883c..523ec87 100644 --- a/src/main/resources/fxml/DialogCariPelanggan.fxml +++ b/src/main/resources/fxml/DialogCariPelanggan.fxml @@ -26,7 +26,7 @@ - + diff --git a/src/main/resources/fxml/FormTransaksiRetur.fxml b/src/main/resources/fxml/FormTransaksiRetur.fxml index edf331b..fac5bc4 100644 --- a/src/main/resources/fxml/FormTransaksiRetur.fxml +++ b/src/main/resources/fxml/FormTransaksiRetur.fxml @@ -110,11 +110,11 @@ - - + + - - + +