Kaynağa Gözat

Bug fix error login tidak muncul error

[Logic] Menambahkan alert di catch error http exception
[Logic] Menambahkan fungsi logger di semua http exception case default
pull/14/head
Ronaldo Christnawan 5 yıl önce
ebeveyn
işleme
3fc1451ac8
9 değiştirilmiş dosya ile 157 ekleme ve 68 silme
  1. +4
    -1
      src/main/java/id/amigogroup/posterminal/FormUtamaController.java
  2. +4
    -3
      src/main/java/id/amigogroup/posterminal/bayar/FormBayarReturController.java
  3. +53
    -18
      src/main/java/id/amigogroup/posterminal/keamanan/FormLoginController.java
  4. +15
    -0
      src/main/java/id/amigogroup/posterminal/pencarian/DialogCariBarangController.java
  5. +38
    -40
      src/main/java/id/amigogroup/posterminal/pencarian/DialogCariNotaTundaController.java
  6. +9
    -4
      src/main/java/id/amigogroup/posterminal/pencarian/DialogCariPelangganController.java
  7. +3
    -0
      src/main/java/id/amigogroup/posterminal/transaksi/DialogTambahNotaController.java
  8. +17
    -0
      src/main/java/id/amigogroup/posterminal/transaksi/FormTransaksiReturController.java
  9. +14
    -2
      src/main/java/id/amigogroup/posterminal/transaksi/FormTransaksiTunaiController.java

+ 4
- 1
src/main/java/id/amigogroup/posterminal/FormUtamaController.java Dosyayı Görüntüle

@@ -483,7 +483,7 @@ public class FormUtamaController implements Initializable {
notaContent.setBtnTunai(buttonBaru);
break;
}
if (buttonBaru != null) {
navigasi.add(buttonBaru);
vbNavigasi.getChildren().add(buttonBaru);
@@ -585,6 +585,9 @@ public class FormUtamaController implements Initializable {
"Pelanggan dengan kode member tersebut tidak ditemukan.");
alert.initOwner(bpMain.getScene().getWindow());
alert.show();
break;
default:
Logger.getLogger(FormUtamaController.class.getName()).log(Level.SEVERE, null, error);
}
} else {
AmigoPosRx.handleGenericError(error, bpMain.getScene().getWindow());


+ 4
- 3
src/main/java/id/amigogroup/posterminal/bayar/FormBayarReturController.java Dosyayı Görüntüle

@@ -5,7 +5,6 @@
*/
package id.amigogroup.posterminal.bayar;

import id.amigogroup.posterminal.FormUtamaController;
import id.amigogroup.posterminal.api.AmigoPosRx;
import id.amigogroup.posterminal.model.MNotaRetur;
import id.amigogroup.posterminal.util.AlertUtil;
@@ -13,7 +12,6 @@ import id.amigogroup.posterminal.util.Fucout;
import io.reactivex.Observer;
import io.reactivex.disposables.Disposable;
import java.net.HttpURLConnection;
import java.net.SocketTimeoutException;
import java.net.URL;
import java.util.ResourceBundle;
import java.util.logging.Level;
@@ -75,7 +73,7 @@ public class FormBayarReturController implements Initializable {
if (parent != null && parent.getBayarContent() != null
&& parent.getBayarContent().getNodeTunai() != null) {
lblNominalRetur.setText(Fucout.formatRupiah(mNotaRetur.getTotalDiskon()));
parent.getBayarContent().setBayarRetur(mNotaRetur.getTotalDiskon());
parent.updateKurangBayarView();
}
@@ -93,6 +91,9 @@ public class FormBayarReturController implements Initializable {
alert.initOwner(apMain.getScene().getWindow());
alert.show();
});
break;
default:
Logger.getLogger(FormBayarReturController.class.getName()).log(Level.SEVERE, null, error);
}
} else {
AmigoPosRx.handleGenericError(error, apMain.getScene().getWindow());


+ 53
- 18
src/main/java/id/amigogroup/posterminal/keamanan/FormLoginController.java Dosyayı Görüntüle

@@ -7,6 +7,7 @@ package id.amigogroup.posterminal.keamanan;

import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.JsonNodeFactory;
import com.fasterxml.jackson.databind.node.ObjectNode;
import id.amigogroup.posterminal.SystemValue;
import id.amigogroup.posterminal.api.AmigoPosRx;
@@ -17,6 +18,7 @@ import io.reactivex.Observable;
import io.reactivex.Observer;
import io.reactivex.disposables.Disposable;
import java.io.IOException;
import java.math.BigDecimal;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ResourceBundle;
@@ -77,12 +79,12 @@ public class FormLoginController implements Initializable {
public void btnLoginOnAction(ActionEvent event) {
if (!fldNamaPengguna.getText().equals("") && !fldKataSandi.getText().equals("")) {
String nik = fldNamaPengguna.getText();
Observable.zip(
posRx.getKaryawanByNik(fldNamaPengguna.getText()),
posRx.loginKaryawanByNikPin(nik, fldKataSandi.getText()),
(Karyawan k, ResponseBody response) -> {
return new KaryawanLogin(k,response);
return new KaryawanLogin(k, response);
}).subscribe(karyawanLoginObserver);
} else {
Alert alert = AlertUtil.getAlertWarning(
@@ -106,15 +108,14 @@ public class FormLoginController implements Initializable {
try {
JsonNode jsonNode = mapper.readTree(k.result.string());
ObjectNode objectNode = jsonNode.deepCopy();

if(objectNode.get("status").asBoolean()){
if (objectNode.get("status").asBoolean()) {
SystemValue.karyawanLogin = k.karyawan;
generateNewWindow("/fxml/FormUtama.fxml").show();
Stage thisStage = (Stage) apMain.getScene().getWindow();
thisStage.hide();
}
else{
} else {
System.out.println("Gagal ");
Alert alert = AlertUtil.getAlertError(
AlertUtil.ERROR_KARYAWAN_TIDAK_BOLEH_AKSES_TITLE,
objectNode.get("message").asText());
@@ -127,7 +128,7 @@ public class FormLoginController implements Initializable {
"Terjadi error yang tidak diduga sehingga karyawan tidak boleh mengakses.");
alert.initOwner((Stage) apMain.getScene().getWindow());
alert.show();
Logger.getLogger(FormLoginController.class.getName()).log(Level.SEVERE, null, ex);
}
} else {
@@ -142,13 +143,46 @@ public class FormLoginController implements Initializable {
@Override
public void onError(Throwable error) {
if (error instanceof HttpException) {
switch (((HttpException) error).code()) {
case HttpURLConnection.HTTP_NOT_FOUND:
Alert alert = AlertUtil.getAlertError(
AlertUtil.ERROR_TIDAK_DITEMUKAN_TITLE,
"Karyawan dengan nomor tersebut tidak ditemukan.");
alert.initOwner(apMain.getScene().getWindow());
alert.show();
HttpException httpError = (HttpException) error;
Alert alert;

ObjectMapper mapper = new ObjectMapper();
try {
JsonNode jsonNode = null;
ObjectNode objectNode = new ObjectNode(JsonNodeFactory.instance);
objectNode.put("message", "Login invalid. Username/password salah");
if (httpError.response() != null && httpError.response().errorBody() != null) {
jsonNode = mapper.readTree(httpError.response().errorBody().string());
objectNode = jsonNode.deepCopy();
}
switch (((HttpException) error).code()) {
case HttpURLConnection.HTTP_NOT_FOUND:
alert = AlertUtil.getAlertError(
AlertUtil.ERROR_TIDAK_DITEMUKAN_TITLE,
"Karyawan dengan nomor tersebut tidak ditemukan.");
alert.initOwner(apMain.getScene().getWindow());
alert.show();
break;
case HttpURLConnection.HTTP_BAD_REQUEST:
alert = AlertUtil.getAlertError(
AlertUtil.ERROR_KARYAWAN_TIDAK_BOLEH_AKSES_TITLE,
objectNode.get("message").asText());
alert.initOwner(apMain.getScene().getWindow());
alert.show();
break;
default:
Logger.getLogger(FormLoginController.class.getName()).log(Level.SEVERE, null, error);
}
} catch (IOException ex) {
alert = AlertUtil.getAlertError(
AlertUtil.ERROR_KARYAWAN_TIDAK_BOLEH_AKSES_TITLE,
"Terjadi error yang tidak diduga sehingga karyawan tidak boleh mengakses.");
alert.initOwner((Stage) apMain.getScene().getWindow());
alert.show();

Logger.getLogger(FormLoginController.class.getName()).log(Level.SEVERE, null, ex);
}
} else {
AmigoPosRx.handleGenericError(error, apMain.getScene().getWindow());
@@ -159,8 +193,9 @@ public class FormLoginController implements Initializable {
public void onComplete() {
}
};
private class KaryawanLogin{

private class KaryawanLogin {

private Karyawan karyawan;
private ResponseBody result;

@@ -168,5 +203,5 @@ public class FormLoginController implements Initializable {
this.karyawan = karyawan;
this.result = result;
}
}
}
}

+ 15
- 0
src/main/java/id/amigogroup/posterminal/pencarian/DialogCariBarangController.java Dosyayı Görüntüle

@@ -213,6 +213,9 @@ public class DialogCariBarangController extends Dialog<BarangFull> implements In
"Barang dengan kode tersebut tidak ditemukan.");
alert.initOwner(apContent.getScene().getWindow());
alert.show();
break;
default:
Logger.getLogger(DialogCariBarangController.class.getName()).log(Level.SEVERE, null, error);
}
} else {
AmigoPosRx.handleGenericError(error, apContent.getScene().getWindow());
@@ -245,6 +248,9 @@ public class DialogCariBarangController extends Dialog<BarangFull> implements In
alert.initOwner(apContent.getScene().getWindow());
alert.show();
});
break;
default:
Logger.getLogger(DialogCariBarangController.class.getName()).log(Level.SEVERE, null, error);
}
} else {
AmigoPosRx.handleGenericError(error, apContent.getScene().getWindow());
@@ -306,6 +312,9 @@ public class DialogCariBarangController extends Dialog<BarangFull> implements In
alert.initOwner(apContent.getScene().getWindow());
alert.show();
});
break;
default:
Logger.getLogger(DialogCariBarangController.class.getName()).log(Level.SEVERE, null, error);
}
} else if (error instanceof InterruptedIOException) {
daftarTabelBarang.clear();
@@ -356,6 +365,9 @@ public class DialogCariBarangController extends Dialog<BarangFull> implements In
alert.initOwner(apContent.getScene().getWindow());
alert.show();
});
break;
default:
Logger.getLogger(DialogCariBarangController.class.getName()).log(Level.SEVERE, null, error);
}
} else {
AmigoPosRx.handleGenericError(error, apContent.getScene().getWindow());
@@ -390,6 +402,9 @@ public class DialogCariBarangController extends Dialog<BarangFull> implements In
alert.initOwner(apContent.getScene().getWindow());
alert.show();
});
break;
default:
Logger.getLogger(DialogCariBarangController.class.getName()).log(Level.SEVERE, null, error);
}
} else {
AmigoPosRx.handleGenericError(error, apContent.getScene().getWindow());


+ 38
- 40
src/main/java/id/amigogroup/posterminal/pencarian/DialogCariNotaTundaController.java Dosyayı Görüntüle

@@ -18,7 +18,6 @@ import java.net.URL;
import java.util.ResourceBundle;
import java.util.logging.Level;
import java.util.logging.Logger;
import javafx.beans.property.ReadOnlyObjectWrapper;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.event.ActionEvent;
@@ -33,9 +32,6 @@ import javafx.scene.control.ComboBox;
import javafx.scene.control.Dialog;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.cell.PropertyValueFactory;
import javafx.scene.input.KeyCode;
import javafx.scene.input.KeyEvent;
import javafx.scene.layout.AnchorPane;
import javafx.stage.Window;
import retrofit2.HttpException;
@@ -46,7 +42,7 @@ import retrofit2.HttpException;
* @author ronal
*/
public class DialogCariNotaTundaController extends Dialog<String> implements Initializable {
@FXML
AnchorPane apContent;
@FXML
@@ -85,14 +81,13 @@ public class DialogCariNotaTundaController extends Dialog<String> implements Ini
public void initialize(URL url, ResourceBundle rb) {
getDialogPane().getButtonTypes().add(new ButtonType("Tutup", ButtonData.CANCEL_CLOSE));
//
}
}

public DialogCariNotaTundaController(/*FormPresensiController parent*/) {
try {
Window window = getDialogPane().getScene().getWindow();
window.setOnCloseRequest(event -> this.close());
FXMLLoader loader = new FXMLLoader(getClass().getResource("/fxml/DialogCariNotaTunda.fxml"));
loader.setController(this);
// DialogCariBarangController controller = loader.<DialogCariBarangController>getController();
@@ -109,42 +104,45 @@ public class DialogCariNotaTundaController extends Dialog<String> implements Ini
.getName()).log(Level.SEVERE, null, e);
}
}
@FXML
void cbxNotaTundaOnAction(ActionEvent event) {

@FXML
void cbxNotaTundaOnAction(ActionEvent event) {

}

public Observer<Pagination<MNotaTunai>> getNotaTunaiTundaObserver = new Observer<Pagination<MNotaTunai>>() {
@Override
public void onSubscribe(Disposable dspsbl) {
}
public Observer<Pagination<MNotaTunai>> getNotaTunaiTundaObserver = new Observer<Pagination<MNotaTunai>>() {
@Override
public void onSubscribe(Disposable dspsbl) {
}

@Override
public void onNext(Pagination<MNotaTunai> daftarMNotaTunai) {
for (MNotaTunai mNotaTunai : daftarMNotaTunai.getData()){
cbxCariNotaTunda.getItems().add(mNotaTunai.getNoNota());
}
@Override
public void onNext(Pagination<MNotaTunai> daftarMNotaTunai) {
for (MNotaTunai mNotaTunai : daftarMNotaTunai.getData()) {
cbxCariNotaTunda.getItems().add(mNotaTunai.getNoNota());
}
}

@Override
public void onError(Throwable error) {
if (error instanceof HttpException) {
switch (((HttpException) error).code()) {
case HttpURLConnection.HTTP_NOT_FOUND:
Alert alert = AlertUtil.getAlertError(
AlertUtil.ERROR_TIDAK_DITEMUKAN_TITLE,
"Nota Tunda Tidak Ditemukan");
alert.initOwner(apContent.getScene().getWindow());
alert.show();
}
} else {
AmigoPosRx.handleGenericError(error, apContent.getScene().getWindow());
@Override
public void onError(Throwable error) {
if (error instanceof HttpException) {
switch (((HttpException) error).code()) {
case HttpURLConnection.HTTP_NOT_FOUND:
Alert alert = AlertUtil.getAlertError(
AlertUtil.ERROR_TIDAK_DITEMUKAN_TITLE,
"Nota Tunda Tidak Ditemukan");
alert.initOwner(apContent.getScene().getWindow());
alert.show();
break;
default:
Logger.getLogger(DialogCariNotaTundaController.class.getName()).log(Level.SEVERE, null, error);
}
} else {
AmigoPosRx.handleGenericError(error, apContent.getScene().getWindow());
}
}

@Override
public void onComplete() {
}
};
@Override
public void onComplete() {
}
};
}

+ 9
- 4
src/main/java/id/amigogroup/posterminal/pencarian/DialogCariPelangganController.java Dosyayı Görüntüle

@@ -5,7 +5,6 @@
*/
package id.amigogroup.posterminal.pencarian;

import id.amigogroup.posterminal.FormUtamaController;
import id.amigogroup.posterminal.api.AmigoPosRx;
import id.amigogroup.posterminal.model.Pagination;
import id.amigogroup.posterminal.model.Pelanggan;
@@ -125,18 +124,18 @@ public class DialogCariPelangganController extends Dialog<Pelanggan> implements
public void updateTabelPelanggan(List<Pelanggan> daftarPelanggan) {
daftarTabelPelanggan.clear();
for (Pelanggan pelanggan : daftarPelanggan) {
TabelPelanggan tp = new TabelPelanggan(
TabelPelanggan tp = new TabelPelanggan(
pelanggan.getAlias(),
pelanggan.getNama(),
pelanggan.getAlamat(),
pelanggan.getTelp() + " / " + pelanggan.getPonsel(),
pelanggan.getUpline());
tp.setData(pelanggan);
daftarTabelPelanggan.add(tp);
}
}
@FXML
void tfPencarianOnKeyReleased(KeyEvent event) {
daftarTabelPelanggan.clear();
@@ -198,6 +197,9 @@ public class DialogCariPelangganController extends Dialog<Pelanggan> implements
"Pelanggan dengan kode member tersebut tidak ditemukan.");
alert.initOwner(apContent.getScene().getWindow());
alert.show();
break;
default:
Logger.getLogger(DialogCariPelangganController.class.getName()).log(Level.SEVERE, null, error);
}
} else {
AmigoPosRx.handleGenericError(error, apContent.getScene().getWindow());
@@ -231,6 +233,9 @@ public class DialogCariPelangganController extends Dialog<Pelanggan> implements
"Pelanggan dengan kode member tersebut tidak ditemukan.");
alert.initOwner(apContent.getScene().getWindow());
alert.show();
break;
default:
Logger.getLogger(DialogCariPelangganController.class.getName()).log(Level.SEVERE, null, error);
}
} else {
AmigoPosRx.handleGenericError(error, apContent.getScene().getWindow());


+ 3
- 0
src/main/java/id/amigogroup/posterminal/transaksi/DialogTambahNotaController.java Dosyayı Görüntüle

@@ -133,6 +133,9 @@ public class DialogTambahNotaController extends Dialog<String> implements Initia
alert.initOwner(apTambahNota.getScene().getWindow());
alert.initModality(Modality.APPLICATION_MODAL);
alert.show();
break;
default:
Logger.getLogger(DialogTambahNotaController.class.getName()).log(Level.SEVERE, null, he);
}
} catch (Exception error) {
AmigoPosRx.handleGenericError(error, apTambahNota.getScene().getWindow());


+ 17
- 0
src/main/java/id/amigogroup/posterminal/transaksi/FormTransaksiReturController.java Dosyayı Görüntüle

@@ -23,6 +23,8 @@ import java.net.HttpURLConnection;
import java.net.URL;
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;
@@ -295,6 +297,9 @@ public class FormTransaksiReturController implements Initializable {
alert.initOwner(apMain.getScene().getWindow());
alert.show();
});
break;
default:
Logger.getLogger(FormTransaksiReturController.class.getName()).log(Level.SEVERE, null, error);
}
} else {
AmigoPosRx.handleGenericError(error, apMain.getScene().getWindow());
@@ -466,6 +471,9 @@ public class FormTransaksiReturController implements Initializable {
alert.initOwner(apMain.getScene().getWindow());
alert.show();
});
break;
default:
Logger.getLogger(FormTransaksiReturController.class.getName()).log(Level.SEVERE, null, error);
}
} else {
AmigoPosRx.handleGenericError(error, apMain.getScene().getWindow());
@@ -508,6 +516,9 @@ public class FormTransaksiReturController implements Initializable {
alert.initOwner(apMain.getScene().getWindow());
alert.show();
});
break;
default:
Logger.getLogger(FormTransaksiReturController.class.getName()).log(Level.SEVERE, null, error);
}
} else {
AmigoPosRx.handleGenericError(error, apMain.getScene().getWindow());
@@ -542,6 +553,9 @@ public class FormTransaksiReturController implements Initializable {
alert.initOwner(apMain.getScene().getWindow());
alert.show();
});
break;
default:
Logger.getLogger(FormTransaksiReturController.class.getName()).log(Level.SEVERE, null, error);
}
} else {
AmigoPosRx.handleGenericError(error, apMain.getScene().getWindow());
@@ -583,6 +597,9 @@ public class FormTransaksiReturController implements Initializable {
alert.initOwner(apMain.getScene().getWindow());
alert.show();
});
break;
default:
Logger.getLogger(FormTransaksiReturController.class.getName()).log(Level.SEVERE, null, error);
}
} else {
AmigoPosRx.handleGenericError(error, apMain.getScene().getWindow());


+ 14
- 2
src/main/java/id/amigogroup/posterminal/transaksi/FormTransaksiTunaiController.java Dosyayı Görüntüle

@@ -26,6 +26,8 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
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;
@@ -34,8 +36,6 @@ import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Alert;
import javafx.scene.control.Button;
import javafx.scene.control.ButtonBar;
import javafx.scene.control.ButtonType;
import javafx.scene.control.ComboBox;
import javafx.scene.control.Label;
import javafx.scene.control.TableColumn;
@@ -433,6 +433,9 @@ public class FormTransaksiTunaiController implements Initializable {
alert.initOwner(apMain.getScene().getWindow());
alert.show();
});
break;
default:
Logger.getLogger(FormTransaksiTunaiController.class.getName()).log(Level.SEVERE, null, error);
}
} else {
AmigoPosRx.handleGenericError(error, apMain.getScene().getWindow());
@@ -474,6 +477,9 @@ public class FormTransaksiTunaiController implements Initializable {
alert.initOwner(apMain.getScene().getWindow());
alert.show();
});
break;
default:
Logger.getLogger(FormTransaksiTunaiController.class.getName()).log(Level.SEVERE, null, error);
}
} else {
AmigoPosRx.handleGenericError(error, apMain.getScene().getWindow());
@@ -523,6 +529,9 @@ public class FormTransaksiTunaiController implements Initializable {
alert.initOwner(apMain.getScene().getWindow());
alert.show();
});
break;
default:
Logger.getLogger(FormTransaksiTunaiController.class.getName()).log(Level.SEVERE, null, error);
}
} else {
AmigoPosRx.handleGenericError(error, apMain.getScene().getWindow());
@@ -558,6 +567,9 @@ public class FormTransaksiTunaiController implements Initializable {
alert.initOwner(apMain.getScene().getWindow());
alert.show();
});
break;
default:
Logger.getLogger(FormTransaksiTunaiController.class.getName()).log(Level.SEVERE, null, error);
}
} else {
AmigoPosRx.handleGenericError(error, apMain.getScene().getWindow());


Yükleniyor…
İptal
Kaydet