浏览代码

Merge Agnes-MembatalkanKodeBarangYangTerlanjurDiScan

Conflicts:
	src/main/java/id/amigogroup/posterminal/transaksi/FormTransaksiReturController.java
	src/main/java/id/amigogroup/posterminal/transaksi/FormTransaksiTunaiController.java
	src/main/java/id/amigogroup/posterminal/transaksi/TabelBarangTunai.java
	src/main/java/id/amigogroup/posterminal/util/AlertUtil.java
pull/7/head
父节点
当前提交
c9e707d594
共有 5 个文件被更改,包括 90 次插入12 次删除
  1. +19
    -3
      src/main/java/id/amigogroup/posterminal/transaksi/FormTransaksiReturController.java
  2. +35
    -2
      src/main/java/id/amigogroup/posterminal/transaksi/FormTransaksiTunaiController.java
  3. +24
    -7
      src/main/java/id/amigogroup/posterminal/transaksi/TabelBarangTunai.java
  4. +11
    -0
      src/main/java/id/amigogroup/posterminal/util/AlertUtil.java
  5. +1
    -0
      src/main/resources/fxml/FormTransaksiTunai.fxml

+ 19
- 3
src/main/java/id/amigogroup/posterminal/transaksi/FormTransaksiReturController.java 查看文件

@@ -12,6 +12,7 @@ import id.amigogroup.posterminal.model.DNotaRetur;
import id.amigogroup.posterminal.model.DNotaTunai; import id.amigogroup.posterminal.model.DNotaTunai;
import id.amigogroup.posterminal.util.AmigoPosCache; import id.amigogroup.posterminal.util.AmigoPosCache;
import id.amigogroup.posterminal.util.AlertUtil; import id.amigogroup.posterminal.util.AlertUtil;
import id.amigogroup.posterminal.util.ButtonUtility;
import id.amigogroup.posterminal.util.Fucout; import id.amigogroup.posterminal.util.Fucout;
import io.reactivex.Observer; import io.reactivex.Observer;
import io.reactivex.disposables.Disposable; import io.reactivex.disposables.Disposable;
@@ -29,6 +30,7 @@ import javafx.collections.ObservableList;
import javafx.fxml.FXML; import javafx.fxml.FXML;
import javafx.fxml.Initializable; import javafx.fxml.Initializable;
import javafx.scene.control.Alert; import javafx.scene.control.Alert;
import javafx.scene.control.Button;
import javafx.scene.control.Label; import javafx.scene.control.Label;
import javafx.scene.control.TableColumn; import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView; import javafx.scene.control.TableView;
@@ -106,6 +108,7 @@ public class FormTransaksiReturController implements Initializable {
private StackPane stpReturDrop; private StackPane stpReturDrop;
@FXML @FXML
private Label lblTambahKeTabelRetur; private Label lblTambahKeTabelRetur;
private TableColumn<TabelBarangTunai, Button> tcAction;


private final AmigoPosRx posRx = new AmigoPosRx(); private final AmigoPosRx posRx = new AmigoPosRx();
private String noNota = ""; private String noNota = "";
@@ -130,6 +133,7 @@ public class FormTransaksiReturController implements Initializable {
tcDisc2.setCellValueFactory(new PropertyValueFactory<>("disc2")); tcDisc2.setCellValueFactory(new PropertyValueFactory<>("disc2"));
tcSubTotal.setCellValueFactory(new PropertyValueFactory<>("subTotal")); tcSubTotal.setCellValueFactory(new PropertyValueFactory<>("subTotal"));
tcPramuniaga.setCellValueFactory(new PropertyValueFactory<>("fldPramuniaga")); tcPramuniaga.setCellValueFactory(new PropertyValueFactory<>("fldPramuniaga"));
tcAction.setCellValueFactory(new PropertyValueFactory<>("btnAction"));
tbvPenjualan.setItems(daftarTabelPenjualan); tbvPenjualan.setItems(daftarTabelPenjualan);


tcNoRetur.setCellValueFactory((TableColumn.CellDataFeatures<TabelBarangRetur, Integer> cell) -> { tcNoRetur.setCellValueFactory((TableColumn.CellDataFeatures<TabelBarangRetur, Integer> cell) -> {
@@ -161,8 +165,18 @@ public class FormTransaksiReturController implements Initializable {
daftarTabelRetur.clear(); daftarTabelRetur.clear();


for (DNotaTunai dNotaTunai : daftarNotaTunai) { for (DNotaTunai dNotaTunai : daftarNotaTunai) {
//Button
Button btnAction = ButtonUtility.generateButton(ButtonUtility.CLOSE_ICON);
btnAction.setOnAction((t) -> {
Alert alert = AlertUtil.getAlertDialogKonfirmasi(
AlertUtil.DIALOG_KONFIRMASI_MESSAGE,
"Yakin ingin menghapus barang?");
alert.initOwner(apMain.getScene().getWindow());
alert.show();
});
TextField fldPramuniaga = new TextField(dNotaTunai.getKodePram()); TextField fldPramuniaga = new TextField(dNotaTunai.getKodePram());

String namaBarang = "..."; String namaBarang = "...";
if (AmigoPosCache.getInstance().getDaftarBarang().containsKey(dNotaTunai.getKdBarang())) { if (AmigoPosCache.getInstance().getDaftarBarang().containsKey(dNotaTunai.getKdBarang())) {
Barang barang = AmigoPosCache.getInstance().getDaftarBarang() Barang barang = AmigoPosCache.getInstance().getDaftarBarang()
@@ -183,10 +197,12 @@ public class FormTransaksiReturController implements Initializable {
Fucout.getText(Fucout.formatRibuan( Fucout.getText(Fucout.formatRibuan(
dNotaTunai.getHargaJual() * dNotaTunai.getJumlah() dNotaTunai.getHargaJual() * dNotaTunai.getJumlah()
)), )),
fldPramuniaga);
fldPramuniaga,
btnAction);

tbt.setData(dNotaTunai); tbt.setData(dNotaTunai);
daftarTabelPenjualan.add(tbt); daftarTabelPenjualan.add(tbt);
if (!AmigoPosCache.getInstance().getDaftarBarang().containsKey(dNotaTunai.getKdBarang())) { if (!AmigoPosCache.getInstance().getDaftarBarang().containsKey(dNotaTunai.getKdBarang())) {
posRx.getBarangByKodeBarang(dNotaTunai.getKdBarang()).subscribe(getBarangObserver); posRx.getBarangByKodeBarang(dNotaTunai.getKdBarang()).subscribe(getBarangObserver);
} }


+ 35
- 2
src/main/java/id/amigogroup/posterminal/transaksi/FormTransaksiTunaiController.java 查看文件

@@ -30,6 +30,9 @@ import javafx.collections.ObservableList;
import javafx.fxml.FXML; import javafx.fxml.FXML;
import javafx.fxml.Initializable; import javafx.fxml.Initializable;
import javafx.scene.control.Alert; import javafx.scene.control.Alert;
import javafx.scene.control.Button;
import javafx.scene.control.ButtonBar;
import javafx.scene.control.ButtonType;
import javafx.scene.control.ComboBox; import javafx.scene.control.ComboBox;
import javafx.scene.control.Label; import javafx.scene.control.Label;
import javafx.scene.control.TableColumn; import javafx.scene.control.TableColumn;
@@ -40,6 +43,7 @@ import javafx.scene.input.KeyCode;
import javafx.scene.input.KeyEvent; import javafx.scene.input.KeyEvent;
import javafx.scene.layout.AnchorPane; import javafx.scene.layout.AnchorPane;
import javafx.scene.text.Text; import javafx.scene.text.Text;
import javax.swing.JOptionPane;
import retrofit2.HttpException; import retrofit2.HttpException;


/** /**
@@ -80,10 +84,13 @@ public class FormTransaksiTunaiController implements Initializable {
@FXML @FXML
private TableColumn<TabelBarangTunai, TextField> tcPramuniaga; private TableColumn<TabelBarangTunai, TextField> tcPramuniaga;
@FXML @FXML
private TableColumn<TabelBarangTunai, Button> tcAction;
@FXML
private Label txtTanggal; private Label txtTanggal;
final ObservableList<TabelBarangTunai> daftarTabelTransaksi = FXCollections.observableArrayList(); final ObservableList<TabelBarangTunai> daftarTabelTransaksi = FXCollections.observableArrayList();
@FXML @FXML
private Text lblGrandTotal; private Text lblGrandTotal;
public static final ButtonType btnAction = new ButtonType("BATAL", ButtonBar.ButtonData.YES);


private String noNota = ""; private String noNota = "";
private AmigoPosRx posRx = new AmigoPosRx(); private AmigoPosRx posRx = new AmigoPosRx();
@@ -108,6 +115,7 @@ public class FormTransaksiTunaiController implements Initializable {
tcPromo.setCellValueFactory(new PropertyValueFactory<>("cbxPromo")); tcPromo.setCellValueFactory(new PropertyValueFactory<>("cbxPromo"));
tcSubtotal.setCellValueFactory(new PropertyValueFactory<>("subTotal")); tcSubtotal.setCellValueFactory(new PropertyValueFactory<>("subTotal"));
tcPramuniaga.setCellValueFactory(new PropertyValueFactory<>("fldPramuniaga")); tcPramuniaga.setCellValueFactory(new PropertyValueFactory<>("fldPramuniaga"));
tcAction.setCellValueFactory(new PropertyValueFactory<>("btnAction"));
tbvTransaksi.setItems(daftarTabelTransaksi); tbvTransaksi.setItems(daftarTabelTransaksi);


// fillTable(new ArrayList<>()); // fillTable(new ArrayList<>());
@@ -133,14 +141,26 @@ public class FormTransaksiTunaiController implements Initializable {


String[] promo = {"Ulang Tahun", "Harbolnas", "Ultah Amigo"}; String[] promo = {"Ulang Tahun", "Harbolnas", "Ultah Amigo"};
for (DNotaTunai dNotaTunai : daftarNotaTunai) { for (DNotaTunai dNotaTunai : daftarNotaTunai) {
//ComboBox
ComboBox<String> cbxPromo = new ComboBox<>(FXCollections.observableArrayList(promo)); ComboBox<String> cbxPromo = new ComboBox<>(FXCollections.observableArrayList(promo));
cbxPromo.getSelectionModel().select("Ulang Tahun"); cbxPromo.getSelectionModel().select("Ulang Tahun");
//Button
Button btnAction = new Button("BATAL");
btnAction.setOnAction((t) -> {
Alert alert = AlertUtil.getAlertError(
AlertUtil.DIALOG_KONFIRMASI_MESSAGE,
"Yakin ingin menghapus barang?");
alert.initOwner(apMain.getScene().getWindow());
alert.show();


});
//TextField
TextField fldPramuniaga = new TextField(dNotaTunai.getKodePram()); TextField fldPramuniaga = new TextField(dNotaTunai.getKodePram());
fldPramuniaga.setOnKeyPressed((t) -> { fldPramuniaga.setOnKeyPressed((t) -> {
if (t.getCode() == KeyCode.ENTER) { if (t.getCode() == KeyCode.ENTER) {
fldScan.requestFocus(); fldScan.requestFocus();
} }

}); });


String namaBarang = "..."; String namaBarang = "...";
@@ -161,7 +181,8 @@ public class FormTransaksiTunaiController implements Initializable {
Fucout.getText(Fucout.formatRibuan( Fucout.getText(Fucout.formatRibuan(
dNotaTunai.getHargaJual() * dNotaTunai.getJumlah() dNotaTunai.getHargaJual() * dNotaTunai.getJumlah()
)), )),
fldPramuniaga));
fldPramuniaga,
btnAction));


if (!AmigoPosCache.getInstance().getDaftarBarang().containsKey(dNotaTunai.getKdBarang())) { if (!AmigoPosCache.getInstance().getDaftarBarang().containsKey(dNotaTunai.getKdBarang())) {
posRx.getBarangByKodeBarang(dNotaTunai.getKdBarang()).subscribe(getBarangObserver); posRx.getBarangByKodeBarang(dNotaTunai.getKdBarang()).subscribe(getBarangObserver);
@@ -199,6 +220,17 @@ public class FormTransaksiTunaiController implements Initializable {
String[] promo = {"Ulang Tahun", "Harbolnas", "Ultah Amigo"}; String[] promo = {"Ulang Tahun", "Harbolnas", "Ultah Amigo"};
ComboBox<String> cbxPromo = new ComboBox<>(FXCollections.observableArrayList(promo)); ComboBox<String> cbxPromo = new ComboBox<>(FXCollections.observableArrayList(promo));
cbxPromo.getSelectionModel().select("Ulang Tahun"); cbxPromo.getSelectionModel().select("Ulang Tahun");

Button btnAction = new Button("BATAL");
btnAction.setOnAction((t) -> {
Alert alert = AlertUtil.getAlertDialogKonfirmasi(
AlertUtil.DIALOG_KONFIRMASI_MESSAGE,
"Yakin ingin menghapus barang?");
alert.initOwner(apMain.getScene().getWindow());
alert.show();

});

TextField fldPramuniaga = new TextField(); TextField fldPramuniaga = new TextField();
fldPramuniaga.setOnKeyPressed((t) -> { fldPramuniaga.setOnKeyPressed((t) -> {
if (t.getCode() == KeyCode.ENTER) { if (t.getCode() == KeyCode.ENTER) {
@@ -230,7 +262,8 @@ public class FormTransaksiTunaiController implements Initializable {
Fucout.getText(Fucout.formatRibuan( Fucout.getText(Fucout.formatRibuan(
1 * noBarang.getHargaJual()) 1 * noBarang.getHargaJual())
), ),
fldPramuniaga);
fldPramuniaga,
btnAction);
tbt.setData(dNotaTunai); tbt.setData(dNotaTunai);


daftarTabelTransaksi.add(tbt); daftarTabelTransaksi.add(tbt);


+ 24
- 7
src/main/java/id/amigogroup/posterminal/transaksi/TabelBarangTunai.java 查看文件

@@ -8,6 +8,7 @@ package id.amigogroup.posterminal.transaksi;
import id.amigogroup.posterminal.model.DNotaTunai; import id.amigogroup.posterminal.model.DNotaTunai;
import javafx.beans.property.SimpleObjectProperty; import javafx.beans.property.SimpleObjectProperty;
import javafx.beans.property.SimpleStringProperty; import javafx.beans.property.SimpleStringProperty;
import javafx.scene.control.Button;
import javafx.scene.control.ComboBox; import javafx.scene.control.ComboBox;
import javafx.scene.control.TextField; import javafx.scene.control.TextField;


@@ -16,6 +17,7 @@ import javafx.scene.control.TextField;
* @author AGNES * @author AGNES
*/ */
public class TabelBarangTunai { public class TabelBarangTunai {

private SimpleStringProperty kode; private SimpleStringProperty kode;
private SimpleStringProperty nama; private SimpleStringProperty nama;
private SimpleStringProperty ukur; private SimpleStringProperty ukur;
@@ -26,11 +28,12 @@ public class TabelBarangTunai {
private SimpleObjectProperty<ComboBox> cbxPromo; private SimpleObjectProperty<ComboBox> cbxPromo;
private SimpleStringProperty subTotal; private SimpleStringProperty subTotal;
private SimpleObjectProperty<TextField> fldPramuniaga; private SimpleObjectProperty<TextField> fldPramuniaga;
private DNotaTunai data; private DNotaTunai data;
private SimpleObjectProperty<Button> btnAction;


public TabelBarangTunai(String kode, String nama, String ukur, String jumlah, String harga, String disc1,
String disc2, ComboBox cbxPromo, String subTotal, TextField fldPramuniaga) {
public TabelBarangTunai(String kode, String nama, String ukur, String jumlah, String harga, String disc1,
String disc2, ComboBox cbxPromo, String subTotal, TextField fldPramuniaga, Button btnAction) {
this.kode = new SimpleStringProperty(kode); this.kode = new SimpleStringProperty(kode);
this.nama = new SimpleStringProperty(nama); this.nama = new SimpleStringProperty(nama);
this.ukur = new SimpleStringProperty(ukur); this.ukur = new SimpleStringProperty(ukur);
@@ -38,12 +41,12 @@ public class TabelBarangTunai {
this.harga = new SimpleStringProperty(harga); this.harga = new SimpleStringProperty(harga);
this.disc1 = new SimpleStringProperty(disc1); this.disc1 = new SimpleStringProperty(disc1);
this.disc2 = new SimpleStringProperty(disc2); this.disc2 = new SimpleStringProperty(disc2);
this.cbxPromo = new SimpleObjectProperty<ComboBox>(cbxPromo);
this.cbxPromo = new SimpleObjectProperty<>(cbxPromo);
this.subTotal = new SimpleStringProperty(subTotal); this.subTotal = new SimpleStringProperty(subTotal);
this.fldPramuniaga = new SimpleObjectProperty<TextField>(fldPramuniaga);
this.fldPramuniaga = new SimpleObjectProperty<>(fldPramuniaga);
this.btnAction = new SimpleObjectProperty<>(btnAction);
} }


/** /**
* @return the kode * @return the kode
*/ */
@@ -197,4 +200,18 @@ public class TabelBarangTunai {
public void setData(DNotaTunai data) { public void setData(DNotaTunai data) {
this.data = data; this.data = data;
} }
}

/**
* @return the action
*/
public Button getBtnAction() {
return btnAction.get();
}

/**
* @param action the action to set
*/
public void setBtnAction(Button action) {
this.btnAction.set(action);
}
}

+ 11
- 0
src/main/java/id/amigogroup/posterminal/util/AlertUtil.java 查看文件

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


import javafx.scene.control.Alert; import javafx.scene.control.Alert;
import javafx.scene.control.Button;
import javafx.scene.control.ButtonBar.ButtonData; import javafx.scene.control.ButtonBar.ButtonData;
import javafx.scene.control.ButtonType; import javafx.scene.control.ButtonType;
import javafx.scene.image.Image; import javafx.scene.image.Image;
@@ -21,8 +22,11 @@ public class AlertUtil {
public static final String ERROR_TIDAK_TERDUGA_MESSAGE = "Terjadi kesalahan yang tidak terduga."; public static final String ERROR_TIDAK_TERDUGA_MESSAGE = "Terjadi kesalahan yang tidak terduga.";
public static final String ERROR_KONEKSI_TIMEOUT_TITLE = "Error: Timeout - Koneksi Gagal"; public static final String ERROR_KONEKSI_TIMEOUT_TITLE = "Error: Timeout - Koneksi Gagal";
public static final String ERROR_KONEKSI_TIMEOUT_MESSAGE = "Koneksi ke server mengalami kegagalan."; public static final String ERROR_KONEKSI_TIMEOUT_MESSAGE = "Koneksi ke server mengalami kegagalan.";
public static final String DIALOG_KONFIRMASI_MESSAGE = "Dialog Konfirmasi";
public static final String ERROR_TIDAK_LENGKAP_TITLE = "Error: Data Tidak Lengkap"; public static final String ERROR_TIDAK_LENGKAP_TITLE = "Error: Data Tidak Lengkap";
public static final ButtonType BUTTON_YA = new ButtonType("Ya", ButtonData.YES);
public static Alert getAlertWarning(String title, String message){ public static Alert getAlertWarning(String title, String message){
Alert alert = new Alert(Alert.AlertType.WARNING, message, ButtonType.OK); Alert alert = new Alert(Alert.AlertType.WARNING, message, ButtonType.OK);
alert.setTitle(title); alert.setTitle(title);
@@ -37,6 +41,13 @@ public class AlertUtil {
return alert; return alert;
} }
public static Alert getAlertDialogKonfirmasi (String title, String message){
Alert alert = new Alert(Alert.AlertType.CONFIRMATION, message, ButtonType.OK, ButtonType.CANCEL);
alert.setTitle(title);
alert.setHeaderText(null);
return alert;
}
public static Alert getAlertUlangTahun(String nama) { public static Alert getAlertUlangTahun(String nama) {
Alert alert = new Alert(Alert.AlertType.INFORMATION); Alert alert = new Alert(Alert.AlertType.INFORMATION);
Image image = new Image("/assets/birthday.png"); Image image = new Image("/assets/birthday.png");


+ 1
- 0
src/main/resources/fxml/FormTransaksiTunai.fxml 查看文件

@@ -109,6 +109,7 @@
<TableColumn fx:id="tcPromo" prefWidth="-1.0" sortable="false" text="Promo" /> <TableColumn fx:id="tcPromo" prefWidth="-1.0" sortable="false" text="Promo" />
<TableColumn fx:id="tcSubtotal" prefWidth="-1.0" text="Sub Total" /> <TableColumn fx:id="tcSubtotal" prefWidth="-1.0" text="Sub Total" />
<TableColumn fx:id="tcPramuniaga" prefWidth="-1.0" sortable="false" text="Pramuniaga" /> <TableColumn fx:id="tcPramuniaga" prefWidth="-1.0" sortable="false" text="Pramuniaga" />
<TableColumn fx:id="tcAction" prefWidth="75.0" text="Action" />
</columns> </columns>
<columnResizePolicy> <columnResizePolicy>
<TableView fx:constant="CONSTRAINED_RESIZE_POLICY" /> <TableView fx:constant="CONSTRAINED_RESIZE_POLICY" />


正在加载...
取消
保存