Compare commits

..

2 Commits

Author SHA1 Message Date
Ronaldo Christnawan a08b2fe770 Bug fix Shortcut CTRL + T 6 years ago
Ronaldo Christnawan 3fc1451ac8 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
6 years ago

@ -168,6 +168,7 @@ public class FormUtamaController implements Initializable {
case FormConstanta.TRANSAKSI_TUNAI: case FormConstanta.TRANSAKSI_TUNAI:
if (notaContent.nodeTunai != null) { if (notaContent.nodeTunai != null) {
node = notaContent.nodeTunai; node = notaContent.nodeTunai;
notaContent.controllerTunai.initShortcuts();
} else { } else {
loader.setLocation(getClass().getResource("/fxml/FormTransaksiTunai.fxml")); loader.setLocation(getClass().getResource("/fxml/FormTransaksiTunai.fxml"));
node = loader.load(); node = loader.load();
@ -585,6 +586,9 @@ public class FormUtamaController implements Initializable {
"Pelanggan dengan kode member tersebut tidak ditemukan."); "Pelanggan dengan kode member tersebut tidak ditemukan.");
alert.initOwner(bpMain.getScene().getWindow()); alert.initOwner(bpMain.getScene().getWindow());
alert.show(); alert.show();
break;
default:
Logger.getLogger(FormUtamaController.class.getName()).log(Level.SEVERE, null, error);
} }
} else { } else {
AmigoPosRx.handleGenericError(error, bpMain.getScene().getWindow()); AmigoPosRx.handleGenericError(error, bpMain.getScene().getWindow());

@ -5,7 +5,6 @@
*/ */
package id.amigogroup.posterminal.bayar; package id.amigogroup.posterminal.bayar;
import id.amigogroup.posterminal.FormUtamaController;
import id.amigogroup.posterminal.api.AmigoPosRx; import id.amigogroup.posterminal.api.AmigoPosRx;
import id.amigogroup.posterminal.model.MNotaRetur; import id.amigogroup.posterminal.model.MNotaRetur;
import id.amigogroup.posterminal.util.AlertUtil; import id.amigogroup.posterminal.util.AlertUtil;
@ -13,7 +12,6 @@ import id.amigogroup.posterminal.util.Fucout;
import io.reactivex.Observer; import io.reactivex.Observer;
import io.reactivex.disposables.Disposable; import io.reactivex.disposables.Disposable;
import java.net.HttpURLConnection; import java.net.HttpURLConnection;
import java.net.SocketTimeoutException;
import java.net.URL; import java.net.URL;
import java.util.ResourceBundle; import java.util.ResourceBundle;
import java.util.logging.Level; import java.util.logging.Level;
@ -93,6 +91,9 @@ public class FormBayarReturController implements Initializable {
alert.initOwner(apMain.getScene().getWindow()); alert.initOwner(apMain.getScene().getWindow());
alert.show(); alert.show();
}); });
break;
default:
Logger.getLogger(FormBayarReturController.class.getName()).log(Level.SEVERE, null, error);
} }
} else { } else {
AmigoPosRx.handleGenericError(error, apMain.getScene().getWindow()); AmigoPosRx.handleGenericError(error, apMain.getScene().getWindow());

@ -7,6 +7,7 @@ package id.amigogroup.posterminal.keamanan;
import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.JsonNodeFactory;
import com.fasterxml.jackson.databind.node.ObjectNode; import com.fasterxml.jackson.databind.node.ObjectNode;
import id.amigogroup.posterminal.SystemValue; import id.amigogroup.posterminal.SystemValue;
import id.amigogroup.posterminal.api.AmigoPosRx; import id.amigogroup.posterminal.api.AmigoPosRx;
@ -17,6 +18,7 @@ import io.reactivex.Observable;
import io.reactivex.Observer; import io.reactivex.Observer;
import io.reactivex.disposables.Disposable; import io.reactivex.disposables.Disposable;
import java.io.IOException; import java.io.IOException;
import java.math.BigDecimal;
import java.net.HttpURLConnection; import java.net.HttpURLConnection;
import java.net.URL; import java.net.URL;
import java.util.ResourceBundle; import java.util.ResourceBundle;
@ -106,15 +108,14 @@ public class FormLoginController implements Initializable {
try { try {
JsonNode jsonNode = mapper.readTree(k.result.string()); JsonNode jsonNode = mapper.readTree(k.result.string());
ObjectNode objectNode = jsonNode.deepCopy(); ObjectNode objectNode = jsonNode.deepCopy();
if (objectNode.get("status").asBoolean()) { if (objectNode.get("status").asBoolean()) {
SystemValue.karyawanLogin = k.karyawan; SystemValue.karyawanLogin = k.karyawan;
generateNewWindow("/fxml/FormUtama.fxml").show(); generateNewWindow("/fxml/FormUtama.fxml").show();
Stage thisStage = (Stage) apMain.getScene().getWindow(); Stage thisStage = (Stage) apMain.getScene().getWindow();
thisStage.hide(); thisStage.hide();
} } else {
else{ System.out.println("Gagal ");
Alert alert = AlertUtil.getAlertError( Alert alert = AlertUtil.getAlertError(
AlertUtil.ERROR_KARYAWAN_TIDAK_BOLEH_AKSES_TITLE, AlertUtil.ERROR_KARYAWAN_TIDAK_BOLEH_AKSES_TITLE,
objectNode.get("message").asText()); objectNode.get("message").asText());
@ -142,13 +143,46 @@ public class FormLoginController implements Initializable {
@Override @Override
public void onError(Throwable error) { public void onError(Throwable error) {
if (error instanceof HttpException) { if (error instanceof HttpException) {
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()) { switch (((HttpException) error).code()) {
case HttpURLConnection.HTTP_NOT_FOUND: case HttpURLConnection.HTTP_NOT_FOUND:
Alert alert = AlertUtil.getAlertError( alert = AlertUtil.getAlertError(
AlertUtil.ERROR_TIDAK_DITEMUKAN_TITLE, AlertUtil.ERROR_TIDAK_DITEMUKAN_TITLE,
"Karyawan dengan nomor tersebut tidak ditemukan."); "Karyawan dengan nomor tersebut tidak ditemukan.");
alert.initOwner(apMain.getScene().getWindow()); alert.initOwner(apMain.getScene().getWindow());
alert.show(); 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 { } else {
AmigoPosRx.handleGenericError(error, apMain.getScene().getWindow()); AmigoPosRx.handleGenericError(error, apMain.getScene().getWindow());
@ -161,6 +195,7 @@ public class FormLoginController implements Initializable {
}; };
private class KaryawanLogin { private class KaryawanLogin {
private Karyawan karyawan; private Karyawan karyawan;
private ResponseBody result; private ResponseBody result;

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

@ -18,7 +18,6 @@ import java.net.URL;
import java.util.ResourceBundle; import java.util.ResourceBundle;
import java.util.logging.Level; import java.util.logging.Level;
import java.util.logging.Logger; import java.util.logging.Logger;
import javafx.beans.property.ReadOnlyObjectWrapper;
import javafx.collections.FXCollections; import javafx.collections.FXCollections;
import javafx.collections.ObservableList; import javafx.collections.ObservableList;
import javafx.event.ActionEvent; import javafx.event.ActionEvent;
@ -33,9 +32,6 @@ import javafx.scene.control.ComboBox;
import javafx.scene.control.Dialog; import javafx.scene.control.Dialog;
import javafx.scene.control.TableColumn; import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView; 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.scene.layout.AnchorPane;
import javafx.stage.Window; import javafx.stage.Window;
import retrofit2.HttpException; import retrofit2.HttpException;
@ -87,7 +83,6 @@ public class DialogCariNotaTundaController extends Dialog<String> implements Ini
// //
} }
public DialogCariNotaTundaController(/*FormPresensiController parent*/) { public DialogCariNotaTundaController(/*FormPresensiController parent*/) {
try { try {
Window window = getDialogPane().getScene().getWindow(); Window window = getDialogPane().getScene().getWindow();
@ -137,6 +132,9 @@ public class DialogCariNotaTundaController extends Dialog<String> implements Ini
"Nota Tunda Tidak Ditemukan"); "Nota Tunda Tidak Ditemukan");
alert.initOwner(apContent.getScene().getWindow()); alert.initOwner(apContent.getScene().getWindow());
alert.show(); alert.show();
break;
default:
Logger.getLogger(DialogCariNotaTundaController.class.getName()).log(Level.SEVERE, null, error);
} }
} else { } else {
AmigoPosRx.handleGenericError(error, apContent.getScene().getWindow()); AmigoPosRx.handleGenericError(error, apContent.getScene().getWindow());

@ -5,7 +5,6 @@
*/ */
package id.amigogroup.posterminal.pencarian; package id.amigogroup.posterminal.pencarian;
import id.amigogroup.posterminal.FormUtamaController;
import id.amigogroup.posterminal.api.AmigoPosRx; import id.amigogroup.posterminal.api.AmigoPosRx;
import id.amigogroup.posterminal.model.Pagination; import id.amigogroup.posterminal.model.Pagination;
import id.amigogroup.posterminal.model.Pelanggan; import id.amigogroup.posterminal.model.Pelanggan;
@ -198,6 +197,9 @@ public class DialogCariPelangganController extends Dialog<Pelanggan> implements
"Pelanggan dengan kode member tersebut tidak ditemukan."); "Pelanggan dengan kode member tersebut tidak ditemukan.");
alert.initOwner(apContent.getScene().getWindow()); alert.initOwner(apContent.getScene().getWindow());
alert.show(); alert.show();
break;
default:
Logger.getLogger(DialogCariPelangganController.class.getName()).log(Level.SEVERE, null, error);
} }
} else { } else {
AmigoPosRx.handleGenericError(error, apContent.getScene().getWindow()); AmigoPosRx.handleGenericError(error, apContent.getScene().getWindow());
@ -231,6 +233,9 @@ public class DialogCariPelangganController extends Dialog<Pelanggan> implements
"Pelanggan dengan kode member tersebut tidak ditemukan."); "Pelanggan dengan kode member tersebut tidak ditemukan.");
alert.initOwner(apContent.getScene().getWindow()); alert.initOwner(apContent.getScene().getWindow());
alert.show(); alert.show();
break;
default:
Logger.getLogger(DialogCariPelangganController.class.getName()).log(Level.SEVERE, null, error);
} }
} else { } else {
AmigoPosRx.handleGenericError(error, apContent.getScene().getWindow()); AmigoPosRx.handleGenericError(error, apContent.getScene().getWindow());

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

@ -23,6 +23,8 @@ import java.net.HttpURLConnection;
import java.net.URL; import java.net.URL;
import java.util.List; import java.util.List;
import java.util.ResourceBundle; import java.util.ResourceBundle;
import java.util.logging.Level;
import java.util.logging.Logger;
import javafx.application.Platform; import javafx.application.Platform;
import javafx.beans.property.ReadOnlyObjectWrapper; import javafx.beans.property.ReadOnlyObjectWrapper;
import javafx.collections.FXCollections; import javafx.collections.FXCollections;
@ -295,6 +297,9 @@ public class FormTransaksiReturController implements Initializable {
alert.initOwner(apMain.getScene().getWindow()); alert.initOwner(apMain.getScene().getWindow());
alert.show(); alert.show();
}); });
break;
default:
Logger.getLogger(FormTransaksiReturController.class.getName()).log(Level.SEVERE, null, error);
} }
} else { } else {
AmigoPosRx.handleGenericError(error, apMain.getScene().getWindow()); AmigoPosRx.handleGenericError(error, apMain.getScene().getWindow());
@ -466,6 +471,9 @@ public class FormTransaksiReturController implements Initializable {
alert.initOwner(apMain.getScene().getWindow()); alert.initOwner(apMain.getScene().getWindow());
alert.show(); alert.show();
}); });
break;
default:
Logger.getLogger(FormTransaksiReturController.class.getName()).log(Level.SEVERE, null, error);
} }
} else { } else {
AmigoPosRx.handleGenericError(error, apMain.getScene().getWindow()); AmigoPosRx.handleGenericError(error, apMain.getScene().getWindow());
@ -508,6 +516,9 @@ public class FormTransaksiReturController implements Initializable {
alert.initOwner(apMain.getScene().getWindow()); alert.initOwner(apMain.getScene().getWindow());
alert.show(); alert.show();
}); });
break;
default:
Logger.getLogger(FormTransaksiReturController.class.getName()).log(Level.SEVERE, null, error);
} }
} else { } else {
AmigoPosRx.handleGenericError(error, apMain.getScene().getWindow()); AmigoPosRx.handleGenericError(error, apMain.getScene().getWindow());
@ -542,6 +553,9 @@ public class FormTransaksiReturController implements Initializable {
alert.initOwner(apMain.getScene().getWindow()); alert.initOwner(apMain.getScene().getWindow());
alert.show(); alert.show();
}); });
break;
default:
Logger.getLogger(FormTransaksiReturController.class.getName()).log(Level.SEVERE, null, error);
} }
} else { } else {
AmigoPosRx.handleGenericError(error, apMain.getScene().getWindow()); AmigoPosRx.handleGenericError(error, apMain.getScene().getWindow());
@ -583,6 +597,9 @@ public class FormTransaksiReturController implements Initializable {
alert.initOwner(apMain.getScene().getWindow()); alert.initOwner(apMain.getScene().getWindow());
alert.show(); alert.show();
}); });
break;
default:
Logger.getLogger(FormTransaksiReturController.class.getName()).log(Level.SEVERE, null, error);
} }
} else { } else {
AmigoPosRx.handleGenericError(error, apMain.getScene().getWindow()); AmigoPosRx.handleGenericError(error, apMain.getScene().getWindow());

@ -26,6 +26,8 @@ import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.ResourceBundle; import java.util.ResourceBundle;
import java.util.logging.Level;
import java.util.logging.Logger;
import javafx.application.Platform; import javafx.application.Platform;
import javafx.beans.property.ReadOnlyObjectWrapper; import javafx.beans.property.ReadOnlyObjectWrapper;
import javafx.collections.FXCollections; import javafx.collections.FXCollections;
@ -34,8 +36,6 @@ import javafx.fxml.FXML;
import javafx.fxml.Initializable; import javafx.fxml.Initializable;
import javafx.scene.control.Alert; import javafx.scene.control.Alert;
import javafx.scene.control.Button; import javafx.scene.control.Button;
import javafx.scene.control.ButtonBar;
import javafx.scene.control.ButtonType;
import javafx.scene.control.ComboBox; import javafx.scene.control.ComboBox;
import javafx.scene.control.Label; import javafx.scene.control.Label;
import javafx.scene.control.TableColumn; import javafx.scene.control.TableColumn;
@ -145,13 +145,12 @@ public class FormTransaksiTunaiController implements Initializable {
setTanggal(); setTanggal();
} }
private void initShortcuts() { public void initShortcuts() {
Map<KeyCombination, Runnable> listShortcuts = new HashMap<>(); Map<KeyCombination, Runnable> listShortcuts = new HashMap<>();
KeyCombination kcTundaNota = new KeyCodeCombination(KeyCode.T, KeyCombination.CONTROL_DOWN); KeyCombination kcTundaNota = new KeyCodeCombination(KeyCode.T, KeyCombination.CONTROL_DOWN);
Runnable rnTundaNota = () -> { Runnable rnTundaNota = () -> {
List<DNotaTunai> daftarDNotaTunai = new ArrayList<>(); List<DNotaTunai> daftarDNotaTunai = new ArrayList<>();
if (noNota != null && !noNota.equals("")) { if (noNota != null && !noNota.equals("")) {
for (TabelBarangTunai tbt : daftarTabelTransaksi) { for (TabelBarangTunai tbt : daftarTabelTransaksi) {
tbt.getData().setNoNota(noNota); tbt.getData().setNoNota(noNota);
@ -196,7 +195,9 @@ public class FormTransaksiTunaiController implements Initializable {
}; };
listShortcuts.put(kcTundaNota, rnTundaNota); listShortcuts.put(kcTundaNota, rnTundaNota);
Platform.runLater(() -> {
apMain.getScene().getAccelerators().putAll(listShortcuts); apMain.getScene().getAccelerators().putAll(listShortcuts);
});
} }
public void setTanggal() { public void setTanggal() {
@ -433,6 +434,9 @@ public class FormTransaksiTunaiController implements Initializable {
alert.initOwner(apMain.getScene().getWindow()); alert.initOwner(apMain.getScene().getWindow());
alert.show(); alert.show();
}); });
break;
default:
Logger.getLogger(FormTransaksiTunaiController.class.getName()).log(Level.SEVERE, null, error);
} }
} else { } else {
AmigoPosRx.handleGenericError(error, apMain.getScene().getWindow()); AmigoPosRx.handleGenericError(error, apMain.getScene().getWindow());
@ -474,6 +478,9 @@ public class FormTransaksiTunaiController implements Initializable {
alert.initOwner(apMain.getScene().getWindow()); alert.initOwner(apMain.getScene().getWindow());
alert.show(); alert.show();
}); });
break;
default:
Logger.getLogger(FormTransaksiTunaiController.class.getName()).log(Level.SEVERE, null, error);
} }
} else { } else {
AmigoPosRx.handleGenericError(error, apMain.getScene().getWindow()); AmigoPosRx.handleGenericError(error, apMain.getScene().getWindow());
@ -523,6 +530,9 @@ public class FormTransaksiTunaiController implements Initializable {
alert.initOwner(apMain.getScene().getWindow()); alert.initOwner(apMain.getScene().getWindow());
alert.show(); alert.show();
}); });
break;
default:
Logger.getLogger(FormTransaksiTunaiController.class.getName()).log(Level.SEVERE, null, error);
} }
} else { } else {
AmigoPosRx.handleGenericError(error, apMain.getScene().getWindow()); AmigoPosRx.handleGenericError(error, apMain.getScene().getWindow());
@ -558,6 +568,9 @@ public class FormTransaksiTunaiController implements Initializable {
alert.initOwner(apMain.getScene().getWindow()); alert.initOwner(apMain.getScene().getWindow());
alert.show(); alert.show();
}); });
break;
default:
Logger.getLogger(FormTransaksiTunaiController.class.getName()).log(Level.SEVERE, null, error);
} }
} else { } else {
AmigoPosRx.handleGenericError(error, apMain.getScene().getWindow()); AmigoPosRx.handleGenericError(error, apMain.getScene().getWindow());
@ -626,12 +639,14 @@ public class FormTransaksiTunaiController implements Initializable {
@Override @Override
public void onComplete() { public void onComplete() {
Platform.runLater(() -> {
if (parent != null) { if (parent != null) {
parent.notaContent.setControllerTunai(null); parent.notaContent.setControllerTunai(null);
parent.notaContent.setNodeTunai(null); parent.notaContent.setNodeTunai(null);
parent.removeNota(parent.notaContent.getBtnTunai()); parent.removeNota(parent.notaContent.getBtnTunai());
} }
});
} }
}; };
} }

Loading…
Cancel
Save