diff --git a/src/main/java/id/amigogroup/posterminal/model/NoBarang.java b/src/main/java/id/amigogroup/posterminal/model/NoBarang.java new file mode 100644 index 0000000..6d5878f --- /dev/null +++ b/src/main/java/id/amigogroup/posterminal/model/NoBarang.java @@ -0,0 +1,143 @@ + +package id.amigogroup.posterminal.model; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import org.apache.commons.lang.builder.EqualsBuilder; +import org.apache.commons.lang.builder.HashCodeBuilder; +import org.apache.commons.lang.builder.ToStringBuilder; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@JsonPropertyOrder({ + "id", + "id_gabungan", + "nomor", + "harga_pokok", + "harga_jual", + "stok_min", + "stok", + "stok_operasional" +}) +public class NoBarang { + + @JsonProperty("id") + private int id; + @JsonProperty("id_gabungan") + private String idGabungan; + @JsonProperty("nomor") + private String nomor; + @JsonProperty("harga_pokok") + private String hargaPokok; + @JsonProperty("harga_jual") + private int hargaJual; + @JsonProperty("stok_min") + private int stokMin; + @JsonProperty("stok") + private int stok; + @JsonProperty("stok_operasional") + private int stokOperasional; + + @JsonProperty("id") + public int getId() { + return id; + } + + @JsonProperty("id") + public void setId(int id) { + this.id = id; + } + + @JsonProperty("id_gabungan") + public String getIdGabungan() { + return idGabungan; + } + + @JsonProperty("id_gabungan") + public void setIdGabungan(String idGabungan) { + this.idGabungan = idGabungan; + } + + @JsonProperty("nomor") + public String getNomor() { + return nomor; + } + + @JsonProperty("nomor") + public void setNomor(String nomor) { + this.nomor = nomor; + } + + @JsonProperty("harga_pokok") + public String getHargaPokok() { + return hargaPokok; + } + + @JsonProperty("harga_pokok") + public void setHargaPokok(String hargaPokok) { + this.hargaPokok = hargaPokok; + } + + @JsonProperty("harga_jual") + public int getHargaJual() { + return hargaJual; + } + + @JsonProperty("harga_jual") + public void setHargaJual(int hargaJual) { + this.hargaJual = hargaJual; + } + + @JsonProperty("stok_min") + public int getStokMin() { + return stokMin; + } + + @JsonProperty("stok_min") + public void setStokMin(int stokMin) { + this.stokMin = stokMin; + } + + @JsonProperty("stok") + public int getStok() { + return stok; + } + + @JsonProperty("stok") + public void setStok(int stok) { + this.stok = stok; + } + + @JsonProperty("stok_operasional") + public int getStokOperasional() { + return stokOperasional; + } + + @JsonProperty("stok_operasional") + public void setStokOperasional(int stokOperasional) { + this.stokOperasional = stokOperasional; + } + + @Override + public String toString() { + return new ToStringBuilder(this).append("id", id).append("idGabungan", idGabungan).append("nomor", nomor).append("hargaPokok", hargaPokok).append("hargaJual", hargaJual).append("stokMin", stokMin).append("stok", stok).append("stokOperasional", stokOperasional).toString(); + } + + @Override + public int hashCode() { + return new HashCodeBuilder().append(idGabungan).append(hargaPokok).append(stokMin).append(stokOperasional).append(id).append(hargaJual).append(stok).append(nomor).toHashCode(); + } + + @Override + public boolean equals(Object other) { + if (other == this) { + return true; + } + if ((other instanceof NoBarang) == false) { + return false; + } + NoBarang rhs = ((NoBarang) other); + return new EqualsBuilder().append(idGabungan, rhs.idGabungan).append(hargaPokok, rhs.hargaPokok).append(stokMin, rhs.stokMin).append(stokOperasional, rhs.stokOperasional).append(id, rhs.id).append(hargaJual, rhs.hargaJual).append(stok, rhs.stok).append(nomor, rhs.nomor).isEquals(); + } + +} diff --git a/src/main/java/id/amigogroup/posterminal/pencarian/BarangCache.java b/src/main/java/id/amigogroup/posterminal/pencarian/BarangCache.java index fefc999..7ee881c 100644 --- a/src/main/java/id/amigogroup/posterminal/pencarian/BarangCache.java +++ b/src/main/java/id/amigogroup/posterminal/pencarian/BarangCache.java @@ -6,6 +6,7 @@ package id.amigogroup.posterminal.pencarian; import id.amigogroup.posterminal.model.Barang; +import id.amigogroup.posterminal.model.NoBarang; import java.util.HashMap; import java.util.Map; @@ -16,7 +17,8 @@ import java.util.Map; public class BarangCache { private static BarangCache instance; private Map daftarBarang; - + private Map daftarNoBarang; + private BarangCache(){ daftarBarang = new HashMap<>(); } @@ -29,4 +31,8 @@ public class BarangCache { public Map getDaftarBarang(){ return daftarBarang; } + + public Map getDaftarNoBarang() { + return daftarNoBarang; + } } diff --git a/src/main/java/id/amigogroup/posterminal/pencarian/DialogCariBarangController.java b/src/main/java/id/amigogroup/posterminal/pencarian/DialogCariBarangController.java index f2b5c67..3405814 100644 --- a/src/main/java/id/amigogroup/posterminal/pencarian/DialogCariBarangController.java +++ b/src/main/java/id/amigogroup/posterminal/pencarian/DialogCariBarangController.java @@ -10,15 +10,18 @@ import id.amigogroup.posterminal.api.AmigoPosRx; import id.amigogroup.posterminal.model.Barang; import id.amigogroup.posterminal.model.Pagination; import id.amigogroup.posterminal.util.AlertUtil; +import id.amigogroup.posterminal.util.Fucout; import io.reactivex.Observer; import io.reactivex.disposables.Disposable; import java.io.IOException; import java.net.HttpURLConnection; import java.net.URL; +import java.util.ArrayList; 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; import javafx.collections.ObservableList; @@ -27,7 +30,8 @@ import javafx.fxml.FXMLLoader; import javafx.fxml.Initializable; import javafx.scene.Parent; import javafx.scene.control.Alert; -import javafx.scene.control.Button; +import javafx.scene.control.ButtonBar.ButtonData; +import javafx.scene.control.ButtonType; import javafx.scene.control.Dialog; import javafx.scene.control.RadioButton; import javafx.scene.control.TableColumn; @@ -82,6 +86,10 @@ public class DialogCariBarangController extends Dialog implements Initia */ @Override public void initialize(URL url, ResourceBundle rb) { + Platform.runLater(() -> { + tfPencarian.requestFocus(); + }); + getDialogPane().getButtonTypes().add(new ButtonType("Tutup", ButtonData.CANCEL_CLOSE)); tcNo.setCellValueFactory((TableColumn.CellDataFeatures cell) -> { return new ReadOnlyObjectWrapper(tbvBarang.getItems().indexOf(cell.getValue()) + 1); }); @@ -119,30 +127,21 @@ public class DialogCariBarangController extends Dialog implements Initia } } -// public void fillTable(List daftarBarang) { - //STATIC FUNCTION, hilangkan jika sudah tidak dipakai -// Button btnTambah = new Button("Tambah"); -// btnTambah.setOnAction((event) -> { -// setResult("Barang x"); -// this.close(); -// }); -// daftarTabelBarang.add(new TabelBarangCari("AACOBA001ABCDXL", "Barang x", "XL", "79.900", btnTambah)); -// } - public void updateTabelBarang(List daftarBarang) { daftarTabelBarang.clear(); for (Barang barang : daftarBarang) { -// Button btnTambah = new Button("Tambah"); +// String noBarang = "..."; +// if (BarangCache.getInstance().getDaftarNoBarang().containsKey(barang.getKodeBarang())) { +// noBarang = Fucout.getText(BarangCache.getInstance().getDaftarNoBarang() +// .get(barang.getKodeBarang()).getNomor()); +// } daftarTabelBarang.add(new TabelBarangCari( +// Fucout.getText(barang.getKodeBarang()), barang.getKodeBarang(), barang.getNamaBarang(), - "42", - "14000")); -// btnTambah.setOnAction((event) -> { -// setResult("Barang x"); -// this.close(); -// }); - + "-", + "-")); + } } @@ -155,6 +154,7 @@ public class DialogCariBarangController extends Dialog implements Initia && tfPencarian.getText().length() >= 3)) { posRx.getBarangByNamaBarang(tfPencarian.getText()).subscribe(daftarBarangObserver); } + tfPencarian.requestFocus(); } public Observer barangKodeObserver = new Observer() { @@ -165,8 +165,9 @@ public class DialogCariBarangController extends Dialog implements Initia @Override public void onNext(Barang b) { if (b != null) { - barang = b; - close(); + List db = new ArrayList<>(); + db.add(b); + updateTabelBarang(db); } } diff --git a/src/main/java/id/amigogroup/posterminal/pencarian/DialogCariNotaTundaController.java b/src/main/java/id/amigogroup/posterminal/pencarian/DialogCariNotaTundaController.java index 324b2f3..5c210ec 100644 --- a/src/main/java/id/amigogroup/posterminal/pencarian/DialogCariNotaTundaController.java +++ b/src/main/java/id/amigogroup/posterminal/pencarian/DialogCariNotaTundaController.java @@ -13,6 +13,8 @@ import java.util.logging.Logger; import javafx.fxml.FXMLLoader; import javafx.fxml.Initializable; import javafx.scene.Parent; +import javafx.scene.control.ButtonBar.ButtonData; +import javafx.scene.control.ButtonType; import javafx.scene.control.Dialog; import javafx.stage.Window; @@ -28,7 +30,7 @@ public class DialogCariNotaTundaController extends Dialog implements Ini */ @Override public void initialize(URL url, ResourceBundle rb) { - // TODO + getDialogPane().getButtonTypes().add(new ButtonType("Tutup", ButtonData.CANCEL_CLOSE)); } public DialogCariNotaTundaController(/*FormPresensiController parent*/) { diff --git a/src/main/java/id/amigogroup/posterminal/pencarian/DialogCariPelangganController.java b/src/main/java/id/amigogroup/posterminal/pencarian/DialogCariPelangganController.java index 2f04484..c63e41c 100644 --- a/src/main/java/id/amigogroup/posterminal/pencarian/DialogCariPelangganController.java +++ b/src/main/java/id/amigogroup/posterminal/pencarian/DialogCariPelangganController.java @@ -5,10 +5,7 @@ */ package id.amigogroup.posterminal.pencarian; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; import id.amigogroup.posterminal.FormUtamaController; -import id.amigogroup.posterminal.SystemValue; import id.amigogroup.posterminal.api.AmigoPosRx; import id.amigogroup.posterminal.model.Pagination; import id.amigogroup.posterminal.model.Pelanggan; @@ -22,15 +19,16 @@ 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; import javafx.collections.ObservableList; -import javafx.event.ActionEvent; import javafx.fxml.FXML; import javafx.fxml.FXMLLoader; import javafx.fxml.Initializable; import javafx.scene.Parent; import javafx.scene.control.Alert; +import javafx.scene.control.ButtonBar.ButtonData; import javafx.scene.control.ButtonType; import javafx.scene.control.Dialog; import javafx.scene.control.RadioButton; @@ -87,7 +85,10 @@ public class DialogCariPelangganController extends Dialog implements */ @Override public void initialize(URL url, ResourceBundle rb) { - getDialogPane().getButtonTypes().add(ButtonType.CLOSE); + Platform.runLater(() -> { + tfPencarian.requestFocus(); + }); + getDialogPane().getButtonTypes().add(new ButtonType("Tutup", ButtonData.CANCEL_CLOSE)); tcNo.setCellValueFactory((TableColumn.CellDataFeatures cell) -> { return new ReadOnlyObjectWrapper(tbvPelanggan.getItems().indexOf(cell.getValue()) + 1); }); @@ -136,7 +137,7 @@ public class DialogCariPelangganController extends Dialog implements pelanggan.getAlias(), pelanggan.getNama(), pelanggan.getAlamat(), - pelanggan.getTelp() + " / " +pelanggan.getPonsel(), + pelanggan.getTelp() + " / " + pelanggan.getPonsel(), pelanggan.getUpline())); } } diff --git a/src/main/java/id/amigogroup/posterminal/transaksi/DialogTambahNotaController.java b/src/main/java/id/amigogroup/posterminal/transaksi/DialogTambahNotaController.java index 78b27a6..026d117 100644 --- a/src/main/java/id/amigogroup/posterminal/transaksi/DialogTambahNotaController.java +++ b/src/main/java/id/amigogroup/posterminal/transaksi/DialogTambahNotaController.java @@ -24,6 +24,7 @@ import javafx.fxml.Initializable; import javafx.scene.Parent; import javafx.scene.control.Alert; import javafx.scene.control.Button; +import javafx.scene.control.ButtonBar.ButtonData; import javafx.scene.control.ButtonType; import javafx.scene.control.ComboBox; import javafx.scene.control.Dialog; @@ -55,8 +56,8 @@ public class DialogTambahNotaController extends Dialog implements Initia private TextField tfAmbilDariCheckout; private AmigoPosRx posRx = new AmigoPosRx(); - public static final ButtonType btnLanjutkan = new ButtonType("Lanjutkan"); - public static final ButtonType btnBatal = new ButtonType("Batal"); + public static final ButtonType btnLanjutkan = new ButtonType("Lanjutkan", ButtonData.YES); + public static final ButtonType btnBatal = new ButtonType("Batal", ButtonData.CANCEL_CLOSE); @Override public void initialize(URL url, ResourceBundle rb) { @@ -66,6 +67,7 @@ public class DialogTambahNotaController extends Dialog implements Initia "Bawa Dulu", "Retur" ); + cbxPilihNota.getSelectionModel().select(0); } public DialogTambahNotaController() { @@ -84,6 +86,7 @@ public class DialogTambahNotaController extends Dialog implements Initia getDialogPane().getButtonTypes().add(btnLanjutkan); Button btnLanjutkanR = (Button) getDialogPane().lookupButton(btnLanjutkan); + btnLanjutkanR.setDefaultButton(true); btnLanjutkanR.addEventFilter(ActionEvent.ACTION, event -> { if (((RadioButton) tgTipe.getSelectedToggle()) == rbAmbilDariCheckout) { boolean notaExists = false; @@ -166,5 +169,6 @@ public class DialogTambahNotaController extends Dialog implements Initia void rbAmbilDariCheckoutOnAction(ActionEvent event) { cbxPilihNota.setDisable(true); tfAmbilDariCheckout.setDisable(false); + tfAmbilDariCheckout.requestFocus(); } } diff --git a/src/main/resources/fxml/DialogCariBarang.fxml b/src/main/resources/fxml/DialogCariBarang.fxml index 1e81a48..eb9384a 100644 --- a/src/main/resources/fxml/DialogCariBarang.fxml +++ b/src/main/resources/fxml/DialogCariBarang.fxml @@ -24,7 +24,7 @@ - + @@ -32,7 +32,6 @@ - diff --git a/src/main/resources/fxml/DialogCariPelanggan.fxml b/src/main/resources/fxml/DialogCariPelanggan.fxml index ea37b4e..9b6883c 100644 --- a/src/main/resources/fxml/DialogCariPelanggan.fxml +++ b/src/main/resources/fxml/DialogCariPelanggan.fxml @@ -24,7 +24,7 @@ - +