@@ -112,7 +112,7 @@ public class FormTransaksiReturController implements Initializable {
private StackPane stpReturDrop;
private StackPane stpReturDrop;
@FXML
@FXML
private Label lblTambahKeTabelRetur;
private Label lblTambahKeTabelRetur;
private final AmigoPosRx posRx = new AmigoPosRx();
private final AmigoPosRx posRx = new AmigoPosRx();
private String noNota = "";
private String noNota = "";
private final ObservableList<TabelBarangTunai> daftarTabelPenjualan = FXCollections.observableArrayList();
private final ObservableList<TabelBarangTunai> daftarTabelPenjualan = FXCollections.observableArrayList();
@@ -136,7 +136,7 @@ public class FormTransaksiReturController implements Initializable {
tcDisc2.setCellValueFactory(new PropertyValueFactory<>("disc2"));
tcDisc2.setCellValueFactory(new PropertyValueFactory<>("disc2"));
tcSubTotal.setCellValueFactory(new PropertyValueFactory<>("subTotal"));
tcSubTotal.setCellValueFactory(new PropertyValueFactory<>("subTotal"));
tcPramuniaga.setCellValueFactory(new PropertyValueFactory<>("fldPramuniaga"));
tcPramuniaga.setCellValueFactory(new PropertyValueFactory<>("fldPramuniaga"));
tcBtnBatal.setCellValueFactory(new PropertyValueFactory<>("btnBatal"));
// tcBtnBatal.setCellValueFactory(new PropertyValueFactory<>("btnBatal"));
tbvPenjualan.setItems(daftarTabelPenjualan);
tbvPenjualan.setItems(daftarTabelPenjualan);
tcNoRetur.setCellValueFactory((TableColumn.CellDataFeatures<TabelBarangRetur, Integer> cell) -> {
tcNoRetur.setCellValueFactory((TableColumn.CellDataFeatures<TabelBarangRetur, Integer> cell) -> {
@@ -160,23 +160,22 @@ public class FormTransaksiReturController implements Initializable {
public void initData(String noNota, boolean baru) {
public void initData(String noNota, boolean baru) {
this.noNota = noNota;
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()));
lblKasir.setText(Fucout.getTextColon(SystemValue.karyawanLogin.getNama()));
}
}
lblNomorNota.setText(Fucout.getTextColon(noNota));
lblNomorNota.setText(Fucout.getTextColon(noNota));
}
}
private void refreshData(List<DNotaTunai> daftarNotaTunai) {
private void refreshDataPenjualan (List<DNotaTunai> daftarNotaTunai) {
daftarTabelPenjualan.clear();
daftarTabelPenjualan.clear();
daftarTabelRetur.clear();
for (DNotaTunai dNotaTunai : daftarNotaTunai) {
for (DNotaTunai dNotaTunai : daftarNotaTunai) {
//Button
Button btnBatal = ButtonUtility.generateButton(ButtonUtility.CLOSE_ICON);
//Button
Button btnBatal = ButtonUtility.generateButton(ButtonUtility.CLOSE_ICON);
btnBatal.setOnAction((t) -> {
btnBatal.setOnAction((t) -> {
Alert alert = AlertUtil.getAlertDialogKonfirmasi(
Alert alert = AlertUtil.getAlertDialogKonfirmasi(
AlertUtil.DIALOG_KONFIRMASI_MESSAGE,
AlertUtil.DIALOG_KONFIRMASI_MESSAGE,
@@ -214,7 +213,44 @@ public class FormTransaksiReturController implements Initializable {
daftarTabelPenjualan.add(tbt);
daftarTabelPenjualan.add(tbt);
if (!AmigoPosCache.getInstance().getDaftarBarang().containsKey(dNotaTunai.getKdBarang())) {
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);
}
}
}
}
}
}
@@ -227,7 +263,7 @@ public class FormTransaksiReturController implements Initializable {
ObjectMapper mapper = new ObjectMapper();
ObjectMapper mapper = new ObjectMapper();
JsonNode jsonNode = mapper.readTree(response.string());
JsonNode jsonNode = mapper.readTree(response.string());
ObjectNode node = jsonNode.deepCopy();
ObjectNode node = jsonNode.deepCopy();
if (node.get("result") != null && node.get("result").asBoolean()) {
if (node.get("result") != null && node.get("result").asBoolean()) {
posRx.getDNotaTunaiByNoNota(fldNotaPenjualan.getText()).subscribe(getDNotaTunaiObserver);
posRx.getDNotaTunaiByNoNota(fldNotaPenjualan.getText()).subscribe(getDNotaTunaiObserver);
} else {
} else {
@@ -393,7 +429,7 @@ public class FormTransaksiReturController implements Initializable {
@Override
@Override
public void onNext(List<DNotaTunai> daftarDNotaTunai) {
public void onNext(List<DNotaTunai> daftarDNotaTunai) {
fldNotaPenjualan.clear();
fldNotaPenjualan.clear();
refreshData(daftarDNotaTunai);
refreshDataPenjualan (daftarDNotaTunai);
}
}
@Override
@Override
@@ -420,7 +456,7 @@ public class FormTransaksiReturController implements Initializable {
};
};
Observer<Barang> getBarangObserver = new Observer<>() {
Observer<Barang> getBarangPenjualan Observer = new Observer<>() {
@Override
@Override
public void onSubscribe(Disposable dspsbl) {
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() {
}
};
}
}