Load Data Retur dari Database, Bug Fix

[Service] Membuat rute baru ambil DNotaRetur berdasarkan no nota
[Logic + UI] Membuat fungsi mengambil dan menampilkan data barang di nota retur
[UI] Bug fix alert tunda nota keluar beberapa kali
pull/11/head
Ronaldo Christnawan 6 years ago
parent ad2e16ad12
commit 98cd4bbda5

@ -5,8 +5,8 @@
*/
package id.amigogroup.posterminal.api;
import com.fasterxml.jackson.databind.JsonNode;
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.Pagination;
@ -92,6 +92,11 @@ public class AmigoPosRx {
.subscribeOn(Schedulers.trampoline());
}
public Observable<List<DNotaRetur>> getDNotaReturByNoNota(String noNota) {
return UtilsApi.getServiceApiBarang().getDNotaReturByNoNota(noNota)
.subscribeOn(Schedulers.io());
}
//Checkin API
public Observable<List<Tas>> getAllTas() {
return UtilsApi.getServiceApiCheckin().getAllTas();

@ -6,6 +6,7 @@
package id.amigogroup.posterminal.api;
import id.amigogroup.posterminal.model.Barang;
import id.amigogroup.posterminal.model.DNotaRetur;
import id.amigogroup.posterminal.model.DNotaTunai;
import id.amigogroup.posterminal.model.MNotaRetur;
import id.amigogroup.posterminal.model.MNotaTunai;
@ -99,4 +100,9 @@ public interface ServiceApiBarang {
//Mengambil Master Nota Retur by No Nota
@GET("m-nota-retur/no-nota/{noNota}")
Observable<MNotaRetur> getMNotaReturByNoNota(@Path("noNota") String noNota);
//D-NOTA-RETUR
//Mengambil Detail Nota Tunai by No Nota
@GET("d-nota-retur/no-nota/{noNota}")
Observable<List<DNotaRetur>> getDNotaReturByNoNota(@Path("noNota") String noNota);
}

@ -136,7 +136,7 @@ public class FormTransaksiReturController implements Initializable {
tcDisc2.setCellValueFactory(new PropertyValueFactory<>("disc2"));
tcSubTotal.setCellValueFactory(new PropertyValueFactory<>("subTotal"));
tcPramuniaga.setCellValueFactory(new PropertyValueFactory<>("fldPramuniaga"));
tcBtnBatal.setCellValueFactory(new PropertyValueFactory<>("btnBatal"));
// tcBtnBatal.setCellValueFactory(new PropertyValueFactory<>("btnBatal"));
tbvPenjualan.setItems(daftarTabelPenjualan);
tcNoRetur.setCellValueFactory((TableColumn.CellDataFeatures<TabelBarangRetur, Integer> cell) -> {
@ -160,22 +160,21 @@ public class FormTransaksiReturController implements Initializable {
public void initData(String noNota, boolean baru) {
this.noNota = noNota;
if(!baru){
if (!baru) {
posRx.getDNotaReturByNoNota(noNota).subscribe(getDaftarDNotaReturObserver);
}
if(SystemValue.karyawanLogin != null){
if (SystemValue.karyawanLogin != null) {
lblKasir.setText(Fucout.getTextColon(SystemValue.karyawanLogin.getNama()));
}
lblNomorNota.setText(Fucout.getTextColon(noNota));
}
private void refreshData(List<DNotaTunai> daftarNotaTunai) {
private void refreshDataPenjualan(List<DNotaTunai> daftarNotaTunai) {
daftarTabelPenjualan.clear();
daftarTabelRetur.clear();
for (DNotaTunai dNotaTunai : daftarNotaTunai) {
//Button
//Button
Button btnBatal = ButtonUtility.generateButton(ButtonUtility.CLOSE_ICON);
btnBatal.setOnAction((t) -> {
Alert alert = AlertUtil.getAlertDialogKonfirmasi(
@ -214,7 +213,44 @@ public class FormTransaksiReturController implements Initializable {
daftarTabelPenjualan.add(tbt);
if (!AmigoPosCache.getInstance().getDaftarBarang().containsKey(dNotaTunai.getKdBarang())) {
posRx.getBarangByKodeBarang(dNotaTunai.getKdBarang()).subscribe(getBarangObserver);
posRx.getBarangByKodeBarang(dNotaTunai.getKdBarang()).subscribe(getBarangPenjualanObserver);
}
}
}
private void refreshDataRetur(List<DNotaRetur> daftarDNotaRetur) {
daftarTabelRetur.clear();
for(DNotaRetur dNotaRetur : daftarDNotaRetur){
//Button
TextField fldPramuniaga = new TextField(dNotaRetur.getKodePram());
String namaBarang = "...";
if (AmigoPosCache.getInstance().getDaftarBarang().containsKey(dNotaRetur.getKdBarang())) {
Barang barang = AmigoPosCache.getInstance().getDaftarBarang()
.get(dNotaRetur.getKdBarang());
namaBarang = Fucout.getText(barang.getNamaBarang());
dNotaRetur.setBarang(barang);
}
TabelBarangRetur tbr = new TabelBarangRetur(
Fucout.getText(dNotaRetur.getKdBarang()),
namaBarang,
Fucout.getText(dNotaRetur.getNoBarang()),
Fucout.getText(String.valueOf(dNotaRetur.getJumlah())),
Fucout.getText(Fucout.formatRibuan(dNotaRetur.getHargaJual())),
Fucout.getText(Fucout.formatPersentase(dNotaRetur.getDiskon())),
Fucout.getText(Fucout.formatPersentase(dNotaRetur.getDiskon2())),
Fucout.getText(Fucout.formatRibuan(
dNotaRetur.getHargaJual() * dNotaRetur.getJumlah()
)),
fldPramuniaga);
tbr.setData(dNotaRetur);
daftarTabelRetur.add(tbr);
if (!AmigoPosCache.getInstance().getDaftarBarang().containsKey(dNotaRetur.getKdBarang())) {
posRx.getBarangByKodeBarang(dNotaRetur.getKdBarang()).subscribe(getBarangReturObserver);
}
}
}
@ -393,7 +429,7 @@ public class FormTransaksiReturController implements Initializable {
@Override
public void onNext(List<DNotaTunai> daftarDNotaTunai) {
fldNotaPenjualan.clear();
refreshData(daftarDNotaTunai);
refreshDataPenjualan(daftarDNotaTunai);
}
@Override
@ -420,7 +456,7 @@ public class FormTransaksiReturController implements Initializable {
};
Observer<Barang> getBarangObserver = new Observer<>() {
Observer<Barang> getBarangPenjualanObserver = new Observer<>() {
@Override
public void onSubscribe(Disposable dspsbl) {
}
@ -461,4 +497,79 @@ public class FormTransaksiReturController implements Initializable {
}
};
Observer<List<DNotaRetur>> getDaftarDNotaReturObserver = new Observer<>() {
@Override
public void onSubscribe(Disposable dspsbl) {
}
@Override
public void onNext(List<DNotaRetur> daftarDNotaRetur) {
refreshDataRetur(daftarDNotaRetur);
}
@Override
public void onError(Throwable error) {
if (error instanceof HttpException) {
switch (((HttpException) error).code()) {
case HttpURLConnection.HTTP_NOT_FOUND:
Platform.runLater(() -> {
Alert alert = AlertUtil.getAlertError(
AlertUtil.ERROR_TIDAK_DITEMUKAN_TITLE,
"Barang dengan kode tersebut tidak ditemukan.");
alert.initOwner(apMain.getScene().getWindow());
alert.show();
});
}
} else {
AmigoPosRx.handleGenericError(error, apMain.getScene().getWindow());
}
}
@Override
public void onComplete() {
}
};
Observer<Barang> getBarangReturObserver = new Observer<>() {
@Override
public void onSubscribe(Disposable dspsbl) {
}
@Override
public void onNext(Barang b) {
AmigoPosCache.getInstance().getDaftarBarang().put(b.getKodeBarang(), b);
for (TabelBarangRetur tbr : tbvRetur.getItems()) {
if (tbr.getData().getKdBarang().equals(b.getKodeBarang())) {
tbr.setNama(b.getNamaBarang());
tbr.getData().setBarang(b);
tbvRetur.refresh();
}
}
}
@Override
public void onError(Throwable error) {
if (error instanceof HttpException) {
switch (((HttpException) error).code()) {
case HttpURLConnection.HTTP_NOT_FOUND:
Platform.runLater(() -> {
Alert alert = AlertUtil.getAlertError(
AlertUtil.ERROR_TIDAK_DITEMUKAN_TITLE,
"Barang dengan kode tersebut tidak ditemukan.");
alert.initOwner(apMain.getScene().getWindow());
alert.show();
});
}
} else {
AmigoPosRx.handleGenericError(error, apMain.getScene().getWindow());
}
}
@Override
public void onComplete() {
}
};
}

@ -136,7 +136,7 @@ public class FormTransaksiTunaiController implements Initializable {
if (!baru) {
posRx.getDNotaTunaiByNoNota(noNota).subscribe(getDNotaTunaiObserver);
}
if(SystemValue.karyawanLogin != null){
if (SystemValue.karyawanLogin != null) {
lblKasir.setText(Fucout.getTextColon(SystemValue.karyawanLogin.getNama()));
}
@ -597,6 +597,13 @@ public class FormTransaksiTunaiController implements Initializable {
@Override
public void onComplete() {
Platform.runLater(() -> {
Alert alert = AlertUtil.getAlertInfo(
"Berhasil Ditunda",
"Nota berhasil ditunda!");
alert.initOwner(parent.getWindow());
alert.show();
});
}
};
@ -620,20 +627,12 @@ public class FormTransaksiTunaiController implements Initializable {
@Override
public void onComplete() {
Platform.runLater(() -> {
Alert alert = AlertUtil.getAlertInfo(
"Berhasil Ditunda",
"Nota berhasil ditunda!");
alert.initOwner(parent.getWindow());
alert.show();
if (parent != null) {
parent.notaContent.setControllerTunai(null);
parent.notaContent.setNodeTunai(null);
if (parent != null) {
parent.notaContent.setControllerTunai(null);
parent.notaContent.setNodeTunai(null);
parent.removeNota(parent.notaContent.getBtnTunai());
}
});
parent.removeNota(parent.notaContent.getBtnTunai());
}
}
};
}

Loading…
Cancel
Save