| @@ -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<KonversiPoin> getNilaiKonversiPoin = new Observer<KonversiPoin>() { | |||
| @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; | |||
| @@ -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; | |||
| } | |||
| @@ -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<KonversiPoin> 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) { | |||
| @@ -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<Pagination<Pelanggan>> getPelangganByNoTelpNoHp(@Path("no") String no); | |||
| //Ambil nilai konversi poin | |||
| @GET("periode-poins") | |||
| Observable<KonversiPoin> getNilaiKonversiPoin(); | |||
| } | |||
| @@ -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); | |||
| } | |||
| @@ -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(); | |||
| } | |||
| } | |||
| @@ -63,6 +63,6 @@ | |||
| </children> | |||
| </GridPane> | |||
| <Separator layoutX="65.0" layoutY="13.0" prefWidth="200.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="5.0" /> | |||
| <Label layoutX="558.0" layoutY="18.0" text="(1 Poin = Rp500)" textAlignment="RIGHT" AnchorPane.rightAnchor="14.0" AnchorPane.topAnchor="18.0" /> | |||
| <Label fx:id="lblKonversiPoin" layoutX="558.0" layoutY="18.0" text="(1 Poin = ...)" textAlignment="RIGHT" AnchorPane.rightAnchor="14.0" AnchorPane.topAnchor="18.0" /> | |||
| </children> | |||
| </AnchorPane> | |||