ソースを参照

-Mendirect dari dialog pembayaran belum lunas ke cetak nota

-Membuat notif error jika pembayaran masih kurang
-Menambahkan tgl dan jam di form utama
master
Josua Pascario 5年前
コミット
294d635cb3
7個のファイルの変更86行の追加4行の削除
  1. +18
    -1
      src/main/java/id/amigogroup/posterminal/FormUtamaController.java
  2. +2
    -0
      src/main/java/id/amigogroup/posterminal/bayar/BayarInterface.java
  3. +56
    -0
      src/main/java/id/amigogroup/posterminal/bayar/DialogSelesaiBayarTidakLunasController.java
  4. +7
    -0
      src/main/java/id/amigogroup/posterminal/bayar/FormBayarController.java
  5. +1
    -0
      src/main/java/id/amigogroup/posterminal/util/AlertUtil.java
  6. +1
    -2
      src/main/resources/fxml/DialogSelesaiBayarTidakLunas.fxml
  7. +1
    -1
      src/main/resources/fxml/FormUtama.fxml

+ 18
- 1
src/main/java/id/amigogroup/posterminal/FormUtamaController.java ファイルの表示

@@ -20,14 +20,20 @@ import io.reactivex.disposables.Disposable;
import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.ResourceBundle;
import java.util.Timer;
import java.util.TimerTask;
import java.util.logging.Level;
import java.util.logging.Logger;
import javafx.animation.Animation;
import javafx.animation.KeyFrame;
import javafx.animation.Timeline;
import javafx.application.Platform;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
@@ -50,6 +56,7 @@ import javafx.scene.layout.BorderPane;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
import javafx.stage.Window;
import javafx.util.Duration;
import retrofit2.HttpException;

public class FormUtamaController implements Initializable {
@@ -78,6 +85,8 @@ public class FormUtamaController implements Initializable {
private Label lblNoTelpPelanggan;
@FXML
private TextField tfScanMember;
@FXML
private Label lblTanggal;

private final FormFactory formFactory = new FormFactory();

@@ -103,8 +112,8 @@ public class FormUtamaController implements Initializable {
if (SystemValue.konversiPoin == null) {
posRx.getNilaiKonversiPoin().subscribe(getNilaiKonversiPoin);
}
System.out.println("Hello");

setTanggalJam();
initShorcuts();
}

@@ -641,6 +650,14 @@ public class FormUtamaController implements Initializable {
}
};

public void setTanggalJam() {
Timeline timeline = new Timeline(new KeyFrame(Duration.seconds(1), ev -> {
lblTanggal.setText(new SimpleDateFormat("dd/MM/yyyy HH:mm:ss").format(new java.util.Date()));
}));
timeline.setCycleCount(Animation.INDEFINITE);
timeline.play();
}

Observer<KonversiPoin> getNilaiKonversiPoin = new Observer<KonversiPoin>() {
@Override
public void onSubscribe(Disposable dspsbl) {


+ 2
- 0
src/main/java/id/amigogroup/posterminal/bayar/BayarInterface.java ファイルの表示

@@ -6,6 +6,7 @@
package id.amigogroup.posterminal.bayar;

import javafx.scene.Node;
import javafx.stage.Window;

/**
*
@@ -21,5 +22,6 @@ public interface BayarInterface {
final String BAYAR_POIN = "Poin";
public BayarContent getBayarContent();
public Window getWindow();
public void updateKurangBayarView();
}

+ 56
- 0
src/main/java/id/amigogroup/posterminal/bayar/DialogSelesaiBayarTidakLunasController.java ファイルの表示

@@ -5,26 +5,38 @@
*/
package id.amigogroup.posterminal.bayar;

import id.amigogroup.posterminal.FormUtamaController;
import id.amigogroup.posterminal.pencarian.DialogCariBarangController;
import id.amigogroup.posterminal.pencarian.DialogCetakNotaController;
import id.amigogroup.posterminal.util.AlertUtil;
import id.amigogroup.posterminal.util.Fucout;
import java.io.IOException;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.ResourceBundle;
import java.util.logging.Level;
import java.util.logging.Logger;
import javafx.application.Platform;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.fxml.Initializable;
import javafx.scene.Node;
import javafx.scene.Parent;
import javafx.scene.control.Alert;
import javafx.scene.control.ButtonBar;
import javafx.scene.control.ButtonType;
import javafx.scene.control.CheckBox;
import javafx.scene.control.Dialog;
import javafx.scene.control.Label;
import javafx.scene.input.KeyCode;
import javafx.scene.input.KeyCodeCombination;
import javafx.scene.input.KeyCombination;
import javafx.scene.layout.AnchorPane;
import javafx.scene.layout.VBox;
import javafx.stage.Window;

@@ -35,6 +47,8 @@ import javafx.stage.Window;
*/
public class DialogSelesaiBayarTidakLunasController extends Dialog implements Initializable, BayarInterface {

@FXML
private AnchorPane apContent;
@FXML
private CheckBox chkTunai;
@FXML
@@ -60,6 +74,7 @@ public class DialogSelesaiBayarTidakLunasController extends Dialog implements In
private List<CheckBox> daftarChkBayarSyarat;
private List<CheckBox> daftarChkBayarOpsional;
public BayarContent bayarContent = new BayarContent();
private FormUtamaController parentFormUtamaController = null;

/**
* Initializes the controller class.
@@ -74,6 +89,42 @@ public class DialogSelesaiBayarTidakLunasController extends Dialog implements In
daftarChkBayarOpsional.add(chkOvo);
daftarChkBayarOpsional.add(chkPoin);
getDialogPane().getButtonTypes().add(new ButtonType("Tutup", ButtonBar.ButtonData.CANCEL_CLOSE));
initShortcuts();
}

public void initData(FormUtamaController parent) {
this.parentFormUtamaController = parent;
}

private void initShortcuts() {
Map<KeyCombination, Runnable> listShortcuts = new HashMap<>();

KeyCombination kcSelesaiBayar = new KeyCodeCombination(KeyCode.F10);
Runnable rnSelesaiBayar = () -> {
if (bayarContent.getTotalBayar() >= bayarContent.getTotalPerluBayar()) {
if (parentFormUtamaController != null) {
DialogCetakNotaController dialogCetakNotaController = new DialogCetakNotaController();
dialogCetakNotaController.initOwner(parent.getWindow());
dialogCetakNotaController.initData(
parentFormUtamaController.notaContent.getControllerTunai() != null
? parentFormUtamaController.notaContent.getControllerTunai().daftarTabelTransaksi : null,
parentFormUtamaController.notaContent.getControllerRetur() != null
? parentFormUtamaController.notaContent.getControllerRetur().daftarTabelRetur : null,
this);
Optional<String> result = dialogCetakNotaController.showAndWait();
}
} else {
Alert alert = AlertUtil.getAlertWarning(
AlertUtil.DIALOG_UANG_BELUM_CUKUP,
"Nominal yang anda masukan masih kurang");
alert.show();
}
};
listShortcuts.put(kcSelesaiBayar, rnSelesaiBayar);

Platform.runLater(() -> {
apContent.getScene().getAccelerators().putAll(listShortcuts);
});
}

public DialogSelesaiBayarTidakLunasController(BayarInterface parent, int kurangBayar) {
@@ -226,4 +277,9 @@ public class DialogSelesaiBayarTidakLunasController extends Dialog implements In
lblPerluBayar.setText(Fucout.getTextColon(Fucout.formatRupiah(
bayarContent.getTotalPerluBayar() - bayarContent.getTotalBayar())));
}

@Override
public Window getWindow() {
return apContent.getScene().getWindow();
}
}

+ 7
- 0
src/main/java/id/amigogroup/posterminal/bayar/FormBayarController.java ファイルの表示

@@ -32,6 +32,7 @@ import javafx.scene.input.KeyCodeCombination;
import javafx.scene.input.KeyCombination;
import javafx.scene.layout.AnchorPane;
import javafx.scene.layout.VBox;
import javafx.stage.Window;

/**
* FXML Controller class
@@ -136,6 +137,7 @@ public class FormBayarController implements Initializable, BayarInterface {
= new DialogSelesaiBayarTidakLunasController(this,
bayarContent.getTotalPerluBayar()
- bayarContent.getTotalBayar());
dsbtlc.initData(parent);
dsbtlc.initOwner(apContent.getScene().getWindow());
dsbtlc.show();
}
@@ -297,4 +299,9 @@ public class FormBayarController implements Initializable, BayarInterface {
lblKurangBayar.setText(Fucout.formatRupiah(
bayarContent.getTotalPerluBayar() - bayarContent.getTotalBayar()));
}

@Override
public Window getWindow() {
return apContent.getScene().getWindow();
}
}

+ 1
- 0
src/main/java/id/amigogroup/posterminal/util/AlertUtil.java ファイルの表示

@@ -25,6 +25,7 @@ public class AlertUtil {
public static final String ERROR_KONEKSI_TIMEOUT_MESSAGE = "Koneksi ke server mengalami kegagalan.";
public static final String DIALOG_KONFIRMASI_MESSAGE = "Apakah anda yakin?";
public static final String ERROR_TIDAK_LENGKAP_TITLE = "Error: Data Tidak Lengkap";
public static final String DIALOG_UANG_BELUM_CUKUP = "Nominal Belum Cukup";
public static final ButtonType BUTTON_YA = new ButtonType("Ya", ButtonData.YES);
public static final ButtonType BUTTON_TIDAK = new ButtonType("Tidak", ButtonData.NO);


+ 1
- 2
src/main/resources/fxml/DialogSelesaiBayarTidakLunas.fxml ファイルの表示

@@ -9,8 +9,7 @@
<?import javafx.scene.layout.VBox?>
<?import javafx.scene.text.Font?>


<AnchorPane id="AnchorPane" prefHeight="400.0" prefWidth="600.0" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/11.0.1">
<AnchorPane id="AnchorPane" fx:id="apContent" prefHeight="400.0" prefWidth="600.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="Bayar" AnchorPane.leftAnchor="4.0" AnchorPane.topAnchor="4.0">
<font>


+ 1
- 1
src/main/resources/fxml/FormUtama.fxml ファイルの表示

@@ -67,7 +67,7 @@
<Insets right="5.0" />
</HBox.margin>
</Separator>
<Label text="21/01/2019 11:55:44">
<Label fx:id="lblTanggal" text="21/01/2019 11:55:44">
<font>
<Font name="System Bold" size="12.0" />
</font>


読み込み中…
キャンセル
保存