Aplikasi POS Amigo, dibangun dengan JavaFX dengan Maven
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

127 lines
4.8 KiB

  1. /*
  2. * To change this license header, choose License Headers in Project Properties.
  3. * To change this template file, choose Tools | Templates
  4. * and open the template in the editor.
  5. */
  6. package id.amigogroup.posterminal.api;
  7. import id.amigogroup.posterminal.model.Barang;
  8. import id.amigogroup.posterminal.model.DNotaTunai;
  9. import id.amigogroup.posterminal.model.Karyawan;
  10. import id.amigogroup.posterminal.model.Pagination;
  11. import id.amigogroup.posterminal.model.MNotaRetur;
  12. import id.amigogroup.posterminal.model.MNotaTunai;
  13. import id.amigogroup.posterminal.model.NoBarang;
  14. import id.amigogroup.posterminal.model.Pelanggan;
  15. import id.amigogroup.posterminal.model.Tas;
  16. import id.amigogroup.posterminal.util.AlertUtil;
  17. import io.reactivex.Observable;
  18. import io.reactivex.schedulers.Schedulers;
  19. import java.net.SocketException;
  20. import java.net.SocketTimeoutException;
  21. import java.net.UnknownHostException;
  22. import java.util.List;
  23. import java.util.logging.Level;
  24. import java.util.logging.Logger;
  25. import javafx.application.Platform;
  26. import javafx.scene.control.Alert;
  27. import javafx.stage.Window;
  28. import okhttp3.ResponseBody;
  29. /**
  30. *
  31. * @author ronal
  32. */
  33. public class AmigoPosRx {
  34. //Barang API
  35. public Observable<Barang> getBarangByKodeBarang(String kodeBarang) {
  36. return UtilsApi.getServiceApiBarang().getBarangByKodeBarang(kodeBarang)
  37. .subscribeOn(Schedulers.trampoline());
  38. }
  39. public Observable<Pagination<Barang>> getBarangByNamaBarang(String namaBarang) {
  40. return UtilsApi.getServiceApiBarang().getBarangByNamaBarang(namaBarang)
  41. .subscribeOn(Schedulers.io());
  42. }
  43. public Observable<List<NoBarang>> getNoBarangByIdGabunganSortNomor(String idGabungan) {
  44. return UtilsApi.getServiceApiBarang().getByIdGabunganSortNomor(idGabungan)
  45. .subscribeOn(Schedulers.trampoline());
  46. }
  47. public Observable<NoBarang> getNoBarangByIdGabunganNomor(String idGabungan, String nomor) {
  48. return UtilsApi.getServiceApiBarang().getByIdGabunganNomor(idGabungan, nomor)
  49. .subscribeOn(Schedulers.io());
  50. }
  51. public Observable<MNotaTunai> getMNotaTunaiByNoNota(String noNota) {
  52. return UtilsApi.getServiceApiBarang().getMNotaTunaiByNoNota(noNota)
  53. .subscribeOn(Schedulers.trampoline());
  54. }
  55. public Observable<ResponseBody> validasiMNotaTunaiByNoNotaTanggal(String noNota) {
  56. return UtilsApi.getServiceApiBarang().validasiMNotaTunaiByNoNotaTanggal(noNota)
  57. .subscribeOn(Schedulers.trampoline());
  58. }
  59. public Observable<List<DNotaTunai>> getDNotaTunaiByNoNota(String noNota) {
  60. return UtilsApi.getServiceApiBarang().getDNotaTunaiByNoNota(noNota)
  61. .subscribeOn(Schedulers.io());
  62. }
  63. public Observable<MNotaRetur> getMNotaReturByNoNota(String noNota) {
  64. return UtilsApi.getServiceApiBarang().getMNotaReturByNoNota(noNota)
  65. .subscribeOn(Schedulers.trampoline());
  66. }
  67. //Checkin API
  68. public Observable<List<Tas>> getAllTas() {
  69. return UtilsApi.getServiceApiCheckin().getAllTas();
  70. }
  71. //Karyawan API
  72. public Observable<Karyawan> getKaryawanByNik(String nik) {
  73. return UtilsApi.getServiceApiKaryawan().getKaryawanByNik(nik)
  74. .subscribeOn(Schedulers.trampoline());
  75. }
  76. //Pelanggan API
  77. public Observable<Pelanggan> getPelangganByKodeMember(String kodeMember) {
  78. return UtilsApi.getServiceApiPelanggan().getPelangganByKodeMember(kodeMember)
  79. .subscribeOn(Schedulers.trampoline());
  80. }
  81. public Observable<Pagination<Pelanggan>> getPelangganByNama(String nama) {
  82. return UtilsApi.getServiceApiPelanggan().getPelangganByNama(nama)
  83. .subscribeOn(Schedulers.io());
  84. }
  85. public Observable<Pagination<Pelanggan>> getPelangganByNoTelpNoHp(String no) {
  86. return UtilsApi.getServiceApiPelanggan().getPelangganByNoTelpNoHp(no)
  87. .subscribeOn(Schedulers.io());
  88. }
  89. public static void handleGenericError(Throwable error, Window window) {
  90. if (error instanceof SocketException || error instanceof UnknownHostException
  91. || error instanceof SocketTimeoutException) {
  92. Platform.runLater(() -> {
  93. Alert alert = AlertUtil.getAlertError(
  94. AlertUtil.ERROR_KONEKSI_TIMEOUT_TITLE,
  95. AlertUtil.ERROR_KONEKSI_TIMEOUT_MESSAGE);
  96. alert.initOwner(window);
  97. alert.show();
  98. });
  99. } else {
  100. Platform.runLater(() -> {
  101. Alert alert = AlertUtil.getAlertError(
  102. AlertUtil.ERROR_TIDAK_TERDUGA_TITLE,
  103. AlertUtil.ERROR_TIDAK_TERDUGA_MESSAGE);
  104. alert.initOwner(window);
  105. alert.show();
  106. Logger.getLogger(AmigoPosRx.class.getName()).log(Level.SEVERE, null, error);
  107. });
  108. }
  109. }
  110. }