From cfd42014e9161a7e9b13e2bcfc0d82b4e3f756eb Mon Sep 17 00:00:00 2001 From: Ronaldo Christnawan Date: Fri, 20 Mar 2020 11:35:34 +0700 Subject: [PATCH] Fungsi mengambil konversi poin dari server --- .../posterminal/FormUtamaController.java | 26 +++++ .../amigogroup/posterminal/SystemValue.java | 3 + .../posterminal/api/AmigoPosRx.java | 6 ++ .../posterminal/api/ServiceApiPelanggan.java | 5 + .../bayar/FormBayarPoinController.java | 7 ++ .../posterminal/model/KonversiPoin.java | 95 +++++++++++++++++++ src/main/resources/fxml/FormBayarPoin.fxml | 2 +- 7 files changed, 143 insertions(+), 1 deletion(-) create mode 100644 src/main/java/id/amigogroup/posterminal/model/KonversiPoin.java diff --git a/src/main/java/id/amigogroup/posterminal/FormUtamaController.java b/src/main/java/id/amigogroup/posterminal/FormUtamaController.java index 2e8e106..fd22b8f 100644 --- a/src/main/java/id/amigogroup/posterminal/FormUtamaController.java +++ b/src/main/java/id/amigogroup/posterminal/FormUtamaController.java @@ -1,6 +1,7 @@ package id.amigogroup.posterminal; import id.amigogroup.posterminal.api.AmigoPosRx; +import id.amigogroup.posterminal.model.KonversiPoin; import id.amigogroup.posterminal.model.Pelanggan; import id.amigogroup.posterminal.pencarian.DialogCariBarangController; import id.amigogroup.posterminal.pencarian.DialogCariNotaTundaController; @@ -99,6 +100,9 @@ public class FormUtamaController implements Initializable { if (SystemValue.karyawanLogin != null) { lblNamaLogin.setText(Fucout.getTextColon(SystemValue.karyawanLogin.getNama())); } + if (SystemValue.konversiPoin == null) { + posRx.getNilaiKonversiPoin().subscribe(getNilaiKonversiPoin); + } initShorcuts(); } @@ -636,6 +640,28 @@ public class FormUtamaController implements Initializable { } }; + Observer getNilaiKonversiPoin = new Observer() { + @Override + public void onSubscribe(Disposable dspsbl) { + } + + @Override + public void onNext(KonversiPoin k) { + if (k != null) { + SystemValue.konversiPoin = k; + } + } + + @Override + public void onError(Throwable error) { + Logger.getLogger(FormUtamaController.class.getName()).log(Level.SEVERE, null, error); + } + + @Override + public void onComplete() { + } + }; + public class NotaContent { private Button btnTunai; diff --git a/src/main/java/id/amigogroup/posterminal/SystemValue.java b/src/main/java/id/amigogroup/posterminal/SystemValue.java index 264c0b9..90845da 100644 --- a/src/main/java/id/amigogroup/posterminal/SystemValue.java +++ b/src/main/java/id/amigogroup/posterminal/SystemValue.java @@ -6,6 +6,7 @@ package id.amigogroup.posterminal; import id.amigogroup.posterminal.model.Karyawan; +import id.amigogroup.posterminal.model.KonversiPoin; import id.amigogroup.posterminal.model.Pelanggan; /** @@ -17,4 +18,6 @@ public class SystemValue { public static Pelanggan member = null; public static Karyawan karyawanLogin = null; public static String idToko = "03"; + + public static KonversiPoin konversiPoin = null; } diff --git a/src/main/java/id/amigogroup/posterminal/api/AmigoPosRx.java b/src/main/java/id/amigogroup/posterminal/api/AmigoPosRx.java index 38a0164..61286a1 100644 --- a/src/main/java/id/amigogroup/posterminal/api/AmigoPosRx.java +++ b/src/main/java/id/amigogroup/posterminal/api/AmigoPosRx.java @@ -9,6 +9,7 @@ import id.amigogroup.posterminal.model.Barang; import id.amigogroup.posterminal.model.DNotaRetur; import id.amigogroup.posterminal.model.DNotaTunai; import id.amigogroup.posterminal.model.Karyawan; +import id.amigogroup.posterminal.model.KonversiPoin; import id.amigogroup.posterminal.model.Pagination; import id.amigogroup.posterminal.model.MNotaRetur; import id.amigogroup.posterminal.model.MNotaTunai; @@ -136,6 +137,11 @@ public class AmigoPosRx { .subscribeOn(Schedulers.io()); } + public Observable getNilaiKonversiPoin(){ + return UtilsApi.getServiceApiPelanggan().getNilaiKonversiPoin() + .subscribeOn(Schedulers.io()); + } + public static void handleGenericError(Throwable error, Window window) { if (error instanceof SocketException || error instanceof UnknownHostException || error instanceof SocketTimeoutException) { diff --git a/src/main/java/id/amigogroup/posterminal/api/ServiceApiPelanggan.java b/src/main/java/id/amigogroup/posterminal/api/ServiceApiPelanggan.java index ce90ac2..588463b 100644 --- a/src/main/java/id/amigogroup/posterminal/api/ServiceApiPelanggan.java +++ b/src/main/java/id/amigogroup/posterminal/api/ServiceApiPelanggan.java @@ -5,6 +5,7 @@ */ package id.amigogroup.posterminal.api; +import id.amigogroup.posterminal.model.KonversiPoin; import id.amigogroup.posterminal.model.Pagination; import id.amigogroup.posterminal.model.Pelanggan; import io.reactivex.Observable; @@ -28,4 +29,8 @@ public interface ServiceApiPelanggan { @GET("pelanggans/no-kontak/{no}") Observable> getPelangganByNoTelpNoHp(@Path("no") String no); + //Ambil nilai konversi poin + @GET("periode-poins") + Observable getNilaiKonversiPoin(); + } diff --git a/src/main/java/id/amigogroup/posterminal/bayar/FormBayarPoinController.java b/src/main/java/id/amigogroup/posterminal/bayar/FormBayarPoinController.java index b40ce64..2c9d443 100644 --- a/src/main/java/id/amigogroup/posterminal/bayar/FormBayarPoinController.java +++ b/src/main/java/id/amigogroup/posterminal/bayar/FormBayarPoinController.java @@ -26,6 +26,8 @@ public class FormBayarPoinController implements Initializable { private TextField fldPoin; @FXML private Label lblPoin; + @FXML + private Label lblKonversiPoin; private BayarInterface parent; int poin = 0; @@ -39,6 +41,11 @@ public class FormBayarPoinController implements Initializable { lblPoin.setText(Fucout.getTextColon(Fucout.formatRibuan(SystemValue.member.getPoin()))); poin = SystemValue.member.getPoin(); } + if (SystemValue.konversiPoin != null) { + lblKonversiPoin.setText("(1 poin = " + + Fucout.formatRupiah(SystemValue.konversiPoin.getKonversiPoin()) + + ")"); + } Fucout.forceFieldInteger(fldPoin); } diff --git a/src/main/java/id/amigogroup/posterminal/model/KonversiPoin.java b/src/main/java/id/amigogroup/posterminal/model/KonversiPoin.java new file mode 100644 index 0000000..cf3b684 --- /dev/null +++ b/src/main/java/id/amigogroup/posterminal/model/KonversiPoin.java @@ -0,0 +1,95 @@ + +package id.amigogroup.posterminal.model; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.Date; +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({ + "tgl_awal", + "tgl_akhir", + "konversi_poin", + "rp_to_poin" +}) +public class KonversiPoin { + + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "YYYY-MM-DD") + @JsonProperty("tgl_awal") + private Date tglAwal; + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "YYYY-MM-DD") + @JsonProperty("tgl_akhir") + private Date tglAkhir; + @JsonProperty("konversi_poin") + private int konversiPoin; + @JsonProperty("rp_to_poin") + private int rpToPoin; + + @JsonProperty("tgl_awal") + public Date getTglAwal() { + return tglAwal; + } + + @JsonProperty("tgl_awal") + public void setTglAwal(Date tglAwal) { + this.tglAwal = tglAwal; + } + + @JsonProperty("tgl_akhir") + public Date getTglAkhir() { + return tglAkhir; + } + + @JsonProperty("tgl_akhir") + public void setTglAkhir(Date tglAkhir) { + this.tglAkhir = tglAkhir; + } + + @JsonProperty("konversi_poin") + public int getKonversiPoin() { + return konversiPoin; + } + + @JsonProperty("konversi_poin") + public void setKonversiPoin(int konversiPoin) { + this.konversiPoin = konversiPoin; + } + + @JsonProperty("rp_to_poin") + public int getRpToPoin() { + return rpToPoin; + } + + @JsonProperty("rp_to_poin") + public void setRpToPoin(int rpToPoin) { + this.rpToPoin = rpToPoin; + } + + @Override + public String toString() { + return new ToStringBuilder(this).append("tglAwal", tglAwal).append("tglAkhir", tglAkhir).append("konversiPoin", konversiPoin).append("rpToPoin", rpToPoin).toString(); + } + + @Override + public int hashCode() { + return new HashCodeBuilder().append(konversiPoin).append(rpToPoin).append(tglAwal).append(tglAkhir).toHashCode(); + } + + @Override + public boolean equals(Object other) { + if (other == this) { + return true; + } + if ((other instanceof KonversiPoin) == false) { + return false; + } + KonversiPoin rhs = ((KonversiPoin) other); + return new EqualsBuilder().append(konversiPoin, rhs.konversiPoin).append(rpToPoin, rhs.rpToPoin).append(tglAwal, rhs.tglAwal).append(tglAkhir, rhs.tglAkhir).isEquals(); + } + +} diff --git a/src/main/resources/fxml/FormBayarPoin.fxml b/src/main/resources/fxml/FormBayarPoin.fxml index 21eb496..7068469 100644 --- a/src/main/resources/fxml/FormBayarPoin.fxml +++ b/src/main/resources/fxml/FormBayarPoin.fxml @@ -63,6 +63,6 @@ -