From e066eb51730e0f0a0244c73e072e876800951520 Mon Sep 17 00:00:00 2001 From: Josua Pascario Date: Fri, 13 Mar 2020 13:33:11 +0700 Subject: [PATCH] -Menghilangkan radio button di UI cari barang -Bisa cari barang bukan berdasarkan nama dan kode lagi, tapi bisa sekaligus(nama,kode, art) dalam satu pecarian --- .../posterminal/api/AmigoPosRx.java | 5 ++ .../posterminal/api/ServiceApiBarang.java | 15 +++-- .../pencarian/DialogCariBarangController.java | 55 ++----------------- .../transaksi/DialogTambahNotaController.java | 24 ++++---- src/main/resources/fxml/DialogCariBarang.fxml | 13 +---- src/main/resources/fxml/DialogTambahNota.fxml | 4 +- 6 files changed, 33 insertions(+), 83 deletions(-) diff --git a/src/main/java/id/amigogroup/posterminal/api/AmigoPosRx.java b/src/main/java/id/amigogroup/posterminal/api/AmigoPosRx.java index 2850a77..b103575 100644 --- a/src/main/java/id/amigogroup/posterminal/api/AmigoPosRx.java +++ b/src/main/java/id/amigogroup/posterminal/api/AmigoPosRx.java @@ -35,6 +35,11 @@ import okhttp3.ResponseBody; public class AmigoPosRx { //Barang API + public Observable> getBarangByKodeNamaArtikel (String input) { + return UtilsApi.getServiceApiBarang().getBarangByKodeNamaArtikel(input) + .subscribeOn(Schedulers.io()); + } + public Observable getBarangByKodeBarang(String kodeBarang) { return UtilsApi.getServiceApiBarang().getBarangByKodeBarang(kodeBarang) .subscribeOn(Schedulers.trampoline()); diff --git a/src/main/java/id/amigogroup/posterminal/api/ServiceApiBarang.java b/src/main/java/id/amigogroup/posterminal/api/ServiceApiBarang.java index 19f4821..815818f 100644 --- a/src/main/java/id/amigogroup/posterminal/api/ServiceApiBarang.java +++ b/src/main/java/id/amigogroup/posterminal/api/ServiceApiBarang.java @@ -23,16 +23,20 @@ import retrofit2.http.Path; */ public interface ServiceApiBarang { //BARANG + //Mengambil Barang berdasarkan Kode Barang, Nama Barang & Artikel + @GET("barangs/kode-nama-artikel/{input}/limit/15") + Observable> getBarangByKodeNamaArtikel(@Path("input") String input); + //Mengambil Barang by Kode Barang @GET("barangs/kode/{kode}") Observable getBarangByKodeBarang(@Path("kode") String kode); - + //NO-BARANG //Mengambil No Barang by Id Gabungan & Ukuran @GET("no-barangs/id-gabungan/{idGabungan}/kolom-urut/nomor") Observable> getByIdGabunganSortNomor( @Path("idGabungan") String idGabungan); - + //Mengambil No Barang by Id Gabungan & Ukuran @GET("no-barangs/id-gabungan/{idGabungan}/nomor/{nomor}") Observable getByIdGabunganNomor( @@ -42,16 +46,16 @@ public interface ServiceApiBarang { //Mengambil Barang Berdasarkan Nama Barang @GET("barangs/nama/{namaBarang}") Observable> getBarangByNamaBarang(@Path("namaBarang") String namaBarang); - + //M-NOTA-TUNAI //Mengambil Master Nota Tunai by No Nota @GET("m-nota-tunai/no-nota/{noNota}") Observable getMNotaTunaiByNoNota(@Path("noNota") String noNota); - + //Validasi Master Nota Tunai by No Nota @GET("m-nota-tunai/no-nota/{noNota}/valid") Observable validasiMNotaTunaiByNoNotaTanggal(@Path("noNota") String noNota); - + //D-NOTA-TUNAI //Mengambil Detail Nota Tunai by No Nota @GET("d-nota-tunai/no-nota/{noNota}") @@ -65,7 +69,6 @@ public interface ServiceApiBarang { // //Mengambil Master Nota Bon by No Nota // @GET("m-nota-bon/no-nota/{noNota}") // Observable getMNotaBonByNoNota(@Path("noNota") String noNota); - //M-NOTA-RETUR //Mengambil Master Nota Retur by No Nota @GET("m-nota-retur/no-nota/{noNota}") diff --git a/src/main/java/id/amigogroup/posterminal/pencarian/DialogCariBarangController.java b/src/main/java/id/amigogroup/posterminal/pencarian/DialogCariBarangController.java index cc75db0..b0b4e39 100644 --- a/src/main/java/id/amigogroup/posterminal/pencarian/DialogCariBarangController.java +++ b/src/main/java/id/amigogroup/posterminal/pencarian/DialogCariBarangController.java @@ -173,53 +173,14 @@ public class DialogCariBarangController extends Dialog implements In @FXML void tfPencarianOnKeyReleased(KeyEvent event) { - if (((RadioButton) tgTipe.getSelectedToggle() == rbKodeBarang - && event.getCode() == KeyCode.ENTER)) { - idx = 0; - - if (tfPencarian.getText().length() <= 9) { - posRx.getBarangByKodeBarang(tfPencarian.getText()).subscribe(barangKodeObserver); - } else { - String kodeFull = tfPencarian.getText(); - String kodeBarang = Fucout.getKodeBarangFromKodeFull(kodeFull); - String ukur = Fucout.getNomorBarangFromKodeFull(kodeFull); - - if (AmigoPosCache.getInstance().getDaftarBarang().containsKey(kodeBarang)) { - Barang barang = AmigoPosCache.getInstance().getDaftarBarang().get(kodeBarang); - - selectedBarangFull.setBarang(barang); - if (AmigoPosCache.getInstance().getDaftarNoBarang().containsKey( - barang.getIdGabungan() + ukur)) { - NoBarang noBarang = AmigoPosCache.getInstance().getDaftarNoBarang() - .get(barang.getIdGabungan() + ukur); - - selectedBarangFull.setNoBarang(noBarang); - } else { - Observable.zip(posRx.getBarangByKodeBarang(kodeBarang), - posRx.getNoBarangByIdGabunganNomor(barang.getIdGabungan(), ukur), - (b, nB) -> new BarangFull(b, nB)).subscribe(getBarangFullGetNoBarangFromBarangObserver); - } - } - if (!AmigoPosCache.getInstance().getDaftarBarang().containsKey(kodeBarang)) { - Observable.zip(posRx.getBarangByKodeBarang(kodeBarang), - Observable.just(ukur), - (barang, nomor) -> { - barang.setNomor(nomor); - return barang; - }).subscribe(getTambahBarangObserver); - } - } - - } else if (((RadioButton) tgTipe.getSelectedToggle() == rbNamaBarang - && tfPencarian.getText().length() >= 3)) { + if (tfPencarian.getText().length() >= 3) { compositeDisposable.clear(); daftarTabelBarang.clear(); idx = 0; - Disposable d = posRx.getBarangByNamaBarang(tfPencarian.getText()) + Disposable d = posRx.getBarangByKodeNamaArtikel(tfPencarian.getText()) .subscribeWith(getDaftarBarangObserver()); compositeDisposable.add(d); - } else if ((RadioButton) tgTipe.getSelectedToggle() == rbNamaBarang - && tfPencarian.getText().length() < 3) { + } else if (tfPencarian.getText().length() < 3) { compositeDisposable.clear(); daftarTabelBarang.clear(); } @@ -305,16 +266,11 @@ public class DialogCariBarangController extends Dialog implements In if (idx < daftarTabelBarang.size()) { TabelBarangCari tbc = daftarTabelBarang.get(idx); String idGabungan = daftarNb.get(0).getIdGabungan(); -// System.out.println("Barang " + (i + 1) + ": " + daftarTabelBarang.get(i).getDataBarang().getIdGabungan()); - if (tbc.getDataBarang() != null && tbc.getDataBarang().getIdGabungan().equals(idGabungan)) { Barang b = tbc.getDataBarang(); -// System.out.println("### Ditemukan id gabungan sama dengan hasil api: " + b.getNamaBarang() -// + "(Urutan ke: " + (i + 1) + ") ###"); int j = 0; for (NoBarang nb : daftarNb) { if (j == 0) { -// System.out.println("Nomor pertama: " + nb.getNomor()); b.setNomor(nb.getNomor()); tbc.setDataNoBarang(nb); tbc.setUkur(Fucout.getText(nb.getNomor())); @@ -322,7 +278,6 @@ public class DialogCariBarangController extends Dialog implements In tbvBarang.refresh(); } else { -// System.out.println("Nomor " + (j + 1) + ": " + nb.getNomor()); TabelBarangCari tbcBaru = new TabelBarangCari( Fucout.getText(b.getKodeBarang()), Fucout.getText(b.getNamaBarang()), @@ -332,11 +287,9 @@ public class DialogCariBarangController extends Dialog implements In tbcBaru.setDataNoBarang(nb); daftarTabelBarang.add(idx + j, tbcBaru); } -// System.out.println("Masuk di urutan: " + (i + j + 1)); j++; } idx += daftarNb.size(); -// System.out.println("### SELESAI ###\n"); } } } @@ -366,7 +319,7 @@ public class DialogCariBarangController extends Dialog implements In } }; } - + Observer getTambahBarangObserver = new Observer<>() { @Override public void onSubscribe(Disposable dspsbl) { diff --git a/src/main/java/id/amigogroup/posterminal/transaksi/DialogTambahNotaController.java b/src/main/java/id/amigogroup/posterminal/transaksi/DialogTambahNotaController.java index 7cce3bd..5f2c0da 100644 --- a/src/main/java/id/amigogroup/posterminal/transaksi/DialogTambahNotaController.java +++ b/src/main/java/id/amigogroup/posterminal/transaksi/DialogTambahNotaController.java @@ -68,6 +68,16 @@ public class DialogTambahNotaController extends Dialog implements Initia "Retur" ); cbxPilihNota.getSelectionModel().select(0); + tgTipe.selectedToggleProperty().addListener(((observable, oldValue, newValue) -> { + if (newValue.equals(rbBaru)) { + cbxPilihNota.setDisable(false); + tfAmbilDariCheckout.setDisable(true); + } else if (newValue.equals(rbAmbilDariCheckout)) { + cbxPilihNota.setDisable(true); + tfAmbilDariCheckout.setDisable(false); + tfAmbilDariCheckout.requestFocus(); + } + })); } public DialogTambahNotaController() { @@ -77,7 +87,7 @@ public class DialogTambahNotaController extends Dialog implements Initia FXMLLoader loader = new FXMLLoader(getClass().getResource("/fxml/DialogTambahNota.fxml")); loader.setController(this); - + Parent root = loader.load(); getDialogPane().setContent(root); @@ -151,16 +161,4 @@ public class DialogTambahNotaController extends Dialog implements Initia } } - @FXML - void rbNotaBaruOnAction(ActionEvent event) { - cbxPilihNota.setDisable(false); - tfAmbilDariCheckout.setDisable(true); - } - - @FXML - 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 0b14fea..fd169cc 100644 --- a/src/main/resources/fxml/DialogCariBarang.fxml +++ b/src/main/resources/fxml/DialogCariBarang.fxml @@ -1,11 +1,9 @@ - - @@ -16,16 +14,9 @@ - +