|
|
|
@ -5,42 +5,41 @@
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
package id.amigogroup.posterminal.transaksi;
|
|
|
|
package id.amigogroup.posterminal.transaksi;
|
|
|
|
|
|
|
|
|
|
|
|
import id.amigogroup.posterminal.pencarian.DialogCariBarangController;
|
|
|
|
import id.amigogroup.posterminal.FormUtamaController;
|
|
|
|
import java.io.IOException;
|
|
|
|
import id.amigogroup.posterminal.api.AmigoPosRx;
|
|
|
|
|
|
|
|
import id.amigogroup.posterminal.model.Barang;
|
|
|
|
|
|
|
|
import id.amigogroup.posterminal.model.DNotaTunai;
|
|
|
|
|
|
|
|
import id.amigogroup.posterminal.pencarian.BarangCache;
|
|
|
|
|
|
|
|
import id.amigogroup.posterminal.util.AlertUtil;
|
|
|
|
|
|
|
|
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.net.URL;
|
|
|
|
import java.util.ArrayList;
|
|
|
|
import java.util.ArrayList;
|
|
|
|
import java.util.HashMap;
|
|
|
|
|
|
|
|
import java.util.List;
|
|
|
|
import java.util.List;
|
|
|
|
import java.util.Map;
|
|
|
|
|
|
|
|
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.application.Platform;
|
|
|
|
|
|
|
|
import javafx.beans.property.ReadOnlyObjectWrapper;
|
|
|
|
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;
|
|
|
|
import javafx.fxml.FXML;
|
|
|
|
import javafx.fxml.FXML;
|
|
|
|
import javafx.fxml.FXMLLoader;
|
|
|
|
|
|
|
|
import javafx.fxml.Initializable;
|
|
|
|
import javafx.fxml.Initializable;
|
|
|
|
import javafx.scene.Parent;
|
|
|
|
import javafx.scene.control.Alert;
|
|
|
|
import javafx.scene.control.Button;
|
|
|
|
|
|
|
|
import javafx.scene.control.ComboBox;
|
|
|
|
import javafx.scene.control.ComboBox;
|
|
|
|
|
|
|
|
import javafx.scene.control.Label;
|
|
|
|
import javafx.scene.control.TableColumn;
|
|
|
|
import javafx.scene.control.TableColumn;
|
|
|
|
import javafx.scene.control.TableView;
|
|
|
|
import javafx.scene.control.TableView;
|
|
|
|
import javafx.scene.control.TextField;
|
|
|
|
import javafx.scene.control.TextField;
|
|
|
|
import javafx.scene.control.cell.PropertyValueFactory;
|
|
|
|
import javafx.scene.control.cell.PropertyValueFactory;
|
|
|
|
import javafx.scene.input.KeyCode;
|
|
|
|
import javafx.scene.input.KeyCode;
|
|
|
|
import javafx.scene.input.KeyCodeCombination;
|
|
|
|
|
|
|
|
import javafx.scene.input.KeyCombination;
|
|
|
|
|
|
|
|
import javafx.scene.input.KeyEvent;
|
|
|
|
import javafx.scene.input.KeyEvent;
|
|
|
|
|
|
|
|
import javafx.scene.layout.AnchorPane;
|
|
|
|
import javafx.scene.text.Text;
|
|
|
|
import javafx.scene.text.Text;
|
|
|
|
import javafx.stage.Window;
|
|
|
|
import retrofit2.HttpException;
|
|
|
|
import java.util.Date;
|
|
|
|
|
|
|
|
import java.text.DateFormat;
|
|
|
|
|
|
|
|
import java.text.SimpleDateFormat;
|
|
|
|
|
|
|
|
import javafx.scene.control.Label;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* FXML Controller class
|
|
|
|
* FXML Controller class
|
|
|
|
@ -49,10 +48,14 @@ import javafx.scene.control.Label;
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
public class FormTransaksiTunaiController implements Initializable {
|
|
|
|
public class FormTransaksiTunaiController implements Initializable {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@FXML
|
|
|
|
|
|
|
|
private AnchorPane apMain;
|
|
|
|
@FXML
|
|
|
|
@FXML
|
|
|
|
private TextField fldScan;
|
|
|
|
private TextField fldScan;
|
|
|
|
@FXML
|
|
|
|
@FXML
|
|
|
|
private TableView<TabelBarangTunai> tbvTranstunai;
|
|
|
|
private Label lblNoNota;
|
|
|
|
|
|
|
|
@FXML
|
|
|
|
|
|
|
|
private TableView<TabelBarangTunai> tbvTransaksi;
|
|
|
|
@FXML
|
|
|
|
@FXML
|
|
|
|
private TableColumn<TabelBarangTunai, Integer> tcNo;
|
|
|
|
private TableColumn<TabelBarangTunai, Integer> tcNo;
|
|
|
|
@FXML
|
|
|
|
@FXML
|
|
|
|
@ -75,131 +78,194 @@ public class FormTransaksiTunaiController implements Initializable {
|
|
|
|
private TableColumn<TabelBarangTunai, String> tcSubtotal;
|
|
|
|
private TableColumn<TabelBarangTunai, String> tcSubtotal;
|
|
|
|
@FXML
|
|
|
|
@FXML
|
|
|
|
private TableColumn<TabelBarangTunai, TextField> tcPramuniaga;
|
|
|
|
private TableColumn<TabelBarangTunai, TextField> tcPramuniaga;
|
|
|
|
final ObservableList<TabelBarangTunai> daftarTabelBarang = FXCollections.observableArrayList();
|
|
|
|
final ObservableList<TabelBarangTunai> daftarTabelTransaksi = FXCollections.observableArrayList();
|
|
|
|
@FXML
|
|
|
|
@FXML
|
|
|
|
private Text lblGrandTotal;
|
|
|
|
private Text lblGrandTotal;
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
private AmigoPosRx posRx = new AmigoPosRx();
|
|
|
|
|
|
|
|
|
|
|
|
// private String tableState = BTN_TUNAI;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* Initializes the controller class.
|
|
|
|
* Initializes the controller class.
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public void initialize(URL url, ResourceBundle rb) {
|
|
|
|
public void initialize(URL url, ResourceBundle rb) {
|
|
|
|
|
|
|
|
|
|
|
|
tcNo.setCellValueFactory((TableColumn.CellDataFeatures<TabelBarangTunai, Integer> cell) -> {
|
|
|
|
tcNo.setCellValueFactory((TableColumn.CellDataFeatures<TabelBarangTunai, Integer> cell) -> {
|
|
|
|
return new ReadOnlyObjectWrapper(tbvTranstunai.getItems().indexOf(cell.getValue()) + 1);
|
|
|
|
return new ReadOnlyObjectWrapper(tbvTransaksi.getItems().indexOf(cell.getValue()) + 1);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
tcKode.setCellValueFactory(new PropertyValueFactory<>("tcKode"));
|
|
|
|
tcKode.setCellValueFactory(new PropertyValueFactory<>("kode"));
|
|
|
|
tcNama.setCellValueFactory(new PropertyValueFactory<>("tcNama"));
|
|
|
|
tcNama.setCellValueFactory(new PropertyValueFactory<>("nama"));
|
|
|
|
tcUkur.setCellValueFactory(new PropertyValueFactory<>("tcUkur"));
|
|
|
|
tcUkur.setCellValueFactory(new PropertyValueFactory<>("ukur"));
|
|
|
|
tcJumlah.setCellValueFactory(new PropertyValueFactory<>("tcJumlah"));
|
|
|
|
tcJumlah.setCellValueFactory(new PropertyValueFactory<>("jumlah"));
|
|
|
|
tcHarga.setCellValueFactory(new PropertyValueFactory<>("tcHarga"));
|
|
|
|
tcHarga.setCellValueFactory(new PropertyValueFactory<>("harga"));
|
|
|
|
tcDisc1.setCellValueFactory(new PropertyValueFactory<>("tcDisc1"));
|
|
|
|
tcDisc1.setCellValueFactory(new PropertyValueFactory<>("disc1"));
|
|
|
|
tcDisc2.setCellValueFactory(new PropertyValueFactory<>("tcDisc2"));
|
|
|
|
tcDisc2.setCellValueFactory(new PropertyValueFactory<>("disc2"));
|
|
|
|
tcPromo.setCellValueFactory(new PropertyValueFactory<>("tcPromo"));
|
|
|
|
tcPromo.setCellValueFactory(new PropertyValueFactory<>("cbxPromo"));
|
|
|
|
tcSubtotal.setCellValueFactory(new PropertyValueFactory<>("tcSubtotal"));
|
|
|
|
tcSubtotal.setCellValueFactory(new PropertyValueFactory<>("subTotal"));
|
|
|
|
tcPramuniaga.setCellValueFactory(new PropertyValueFactory<>("tcPramuniaga"));
|
|
|
|
tcPramuniaga.setCellValueFactory(new PropertyValueFactory<>("fldPramuniaga"));
|
|
|
|
tbvTranstunai.setItems(daftarTabelBarang);
|
|
|
|
tbvTransaksi.setItems(daftarTabelTransaksi);
|
|
|
|
fillTable(new ArrayList<>());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// fillTable(new ArrayList<>());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public void initData(String noNota) {
|
|
|
|
|
|
|
|
posRx.getDNotaTunaiByNoNota(noNota).subscribe(getDNotaTunaiObserver);
|
|
|
|
|
|
|
|
lblNoNota.setText(Fucout.getTextColon(noNota));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void initShortcuts() {
|
|
|
|
private void refreshData(List<DNotaTunai> daftarNotaTunai) {
|
|
|
|
// Map<KeyCombination, Runnable> listShortcuts = new HashMap<>();
|
|
|
|
daftarTabelTransaksi.clear();
|
|
|
|
//
|
|
|
|
|
|
|
|
// KeyCombination kcBtnTunai = new KeyCodeCombination(KeyCode.F1);
|
|
|
|
String[] promo = {"Ulang Tahun", "Harbolnas", "Ultah Amigo"};
|
|
|
|
// Runnable rnBtnTunai = () -> btnTunai.fire();
|
|
|
|
for (DNotaTunai dNotaTunai : daftarNotaTunai) {
|
|
|
|
// listShortcuts.put(kcBtnTunai, rnBtnTunai);
|
|
|
|
ComboBox<String> cbxPromo = new ComboBox<>(FXCollections.observableArrayList(promo));
|
|
|
|
//
|
|
|
|
cbxPromo.getSelectionModel().select("Ulang Tahun");
|
|
|
|
// KeyCombination kcBtnBawa = new KeyCodeCombination(KeyCode.F2);
|
|
|
|
|
|
|
|
// Runnable rnBtnBawa = () -> btnBawaDulu.fire();
|
|
|
|
TextField fldPramuniaga = new TextField(dNotaTunai.getKodePram());
|
|
|
|
// listShortcuts.put(kcBtnBawa, rnBtnBawa);
|
|
|
|
fldPramuniaga.setOnKeyPressed((t) -> {
|
|
|
|
//
|
|
|
|
if (t.getCode() == KeyCode.ENTER) {
|
|
|
|
// KeyCombination kcBon = new KeyCodeCombination(KeyCode.F3);
|
|
|
|
fldScan.requestFocus();
|
|
|
|
// Runnable rnBon = () -> btnBon.fire();
|
|
|
|
}
|
|
|
|
// listShortcuts.put(kcBon, rnBon);
|
|
|
|
});
|
|
|
|
//
|
|
|
|
|
|
|
|
// KeyCombination kcRetur = new KeyCodeCombination(KeyCode.F4);
|
|
|
|
String namaBarang = "...";
|
|
|
|
// Runnable rnRetur = () -> btnRetur.fire();
|
|
|
|
if (BarangCache.getInstance().getDaftarBarang().containsKey(dNotaTunai.getKdBarang())) {
|
|
|
|
// listShortcuts.put(kcRetur, rnRetur);
|
|
|
|
namaBarang = Fucout.getText(BarangCache.getInstance().getDaftarBarang()
|
|
|
|
//
|
|
|
|
.get(dNotaTunai.getKdBarang()).getNamaBarang());
|
|
|
|
// Platform.runLater(() -> {
|
|
|
|
}
|
|
|
|
// fldScan.getScene().getAccelerators().putAll(listShortcuts);
|
|
|
|
|
|
|
|
// });
|
|
|
|
daftarTabelTransaksi.add(new TabelBarangTunai(
|
|
|
|
|
|
|
|
Fucout.getText(dNotaTunai.getKdBarang()),
|
|
|
|
|
|
|
|
namaBarang,
|
|
|
|
|
|
|
|
Fucout.getText(dNotaTunai.getNoBarang()),
|
|
|
|
|
|
|
|
Fucout.getText(String.valueOf(dNotaTunai.getJumlah())),
|
|
|
|
|
|
|
|
Fucout.getText(Fucout.formatRibuan(dNotaTunai.getHargaJual())),
|
|
|
|
|
|
|
|
Fucout.getText(Fucout.formatPersentase(dNotaTunai.getDiskon())),
|
|
|
|
|
|
|
|
Fucout.getText(Fucout.formatPersentase(dNotaTunai.getDiskon2())),
|
|
|
|
|
|
|
|
cbxPromo,
|
|
|
|
|
|
|
|
Fucout.getText(Fucout.formatRibuan(
|
|
|
|
|
|
|
|
dNotaTunai.getHargaJual() * dNotaTunai.getJumlah()
|
|
|
|
|
|
|
|
)),
|
|
|
|
|
|
|
|
fldPramuniaga));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (!BarangCache.getInstance().getDaftarBarang().containsKey(dNotaTunai.getKdBarang())) {
|
|
|
|
|
|
|
|
posRx.getBarangByKodeBarang(dNotaTunai.getKdBarang()).subscribe(getBarangObserver);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@FXML
|
|
|
|
// public void fillTable(List<TabelBarangTunai> daftarBarangTunai) {
|
|
|
|
void btnNavigasiOnAction(ActionEvent event) {
|
|
|
|
// String[] promo = {"Ulang Tahun", "Harbolnas", "Ultah Amigo"};
|
|
|
|
// Button buttonSource = (Button) event.getSource();
|
|
|
|
// ComboBox<String> cbxAction = new ComboBox<>(FXCollections.observableArrayList(promo));
|
|
|
|
// if (!tableState.equals(buttonSource.getText().toLowerCase())) {
|
|
|
|
// cbxAction.getSelectionModel().select("Ulang Tahun");
|
|
|
|
// switch (buttonSource.getText().toLowerCase()) {
|
|
|
|
// TextField txtScan = new TextField();
|
|
|
|
// case BTN_TUNAI:
|
|
|
|
// txtScan.setOnKeyPressed((t) -> {
|
|
|
|
// //ambil data tunai
|
|
|
|
// if (t.getCode() == KeyCode.ENTER) {
|
|
|
|
// tableState = BTN_TUNAI;
|
|
|
|
// fldScan.requestFocus();
|
|
|
|
// System.out.println("ambil data tunai");
|
|
|
|
|
|
|
|
// break;
|
|
|
|
|
|
|
|
// case BTN_BAWA_DULU:
|
|
|
|
|
|
|
|
// //ambil data bawa dulu
|
|
|
|
|
|
|
|
// tableState = BTN_BAWA_DULU;
|
|
|
|
|
|
|
|
// System.out.println("ambil data bawa dulu");
|
|
|
|
|
|
|
|
// break;
|
|
|
|
|
|
|
|
// case BTN_BON:
|
|
|
|
|
|
|
|
// //ambil data bon
|
|
|
|
|
|
|
|
// tableState = BTN_BON;
|
|
|
|
|
|
|
|
// System.out.println("ambil data bon");
|
|
|
|
|
|
|
|
// break;
|
|
|
|
|
|
|
|
// case BTN_RETUR:
|
|
|
|
|
|
|
|
// //ambil data retur
|
|
|
|
|
|
|
|
// tableState = BTN_RETUR;
|
|
|
|
|
|
|
|
// System.out.println("ambil data retur");
|
|
|
|
|
|
|
|
// break;
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// for (Button button : navigasi) {
|
|
|
|
|
|
|
|
// if (button.equals(buttonSource)) {
|
|
|
|
|
|
|
|
// if (!button.getStyleClass().contains("button-navigasi-transaksi-selected")) {
|
|
|
|
|
|
|
|
// button.getStyleClass().add("button-navigasi-transaksi-selected");
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
// } else {
|
|
|
|
|
|
|
|
// if (button.getStyleClass().contains("button-navigasi-transaksi-selected")) {
|
|
|
|
|
|
|
|
// button.getStyleClass().remove("button-navigasi-transaksi-selected");
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// });
|
|
|
|
//
|
|
|
|
// daftarTabelTransaksi.add(new TabelBarangTunai("AACOBA001ABCDXL", "Barang x", "XL", "1", "79.900", "0", "0", cbxAction,
|
|
|
|
// fldScan.requestFocus();
|
|
|
|
// "79.900", txtScan));
|
|
|
|
}
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
@FXML
|
|
|
|
@FXML
|
|
|
|
void fldScanOnKeyPressed(KeyEvent event) {
|
|
|
|
void fldScanOnKeyPressed(KeyEvent event) {
|
|
|
|
if (event.getCode() == KeyCode.ENTER) {
|
|
|
|
if (event.getCode() == KeyCode.ENTER) {
|
|
|
|
|
|
|
|
|
|
|
|
//proses scan
|
|
|
|
//proses scan
|
|
|
|
System.out.println("Scan");
|
|
|
|
System.out.println("Scan");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Observer<List<DNotaTunai>> getDNotaTunaiObserver = new Observer<>() {
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
|
|
public void onSubscribe(Disposable dspsbl) {
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
|
|
public void onNext(List<DNotaTunai> daftarDNotaTunai) {
|
|
|
|
|
|
|
|
refreshData(daftarDNotaTunai);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void fillTable(List<TabelBarangTunai> daftarBarangTunai) {
|
|
|
|
@Override
|
|
|
|
String[] promo = {"Ulang Tahun", "Harbolnas", "Ultah Amigo"};
|
|
|
|
public void onError(Throwable error) {
|
|
|
|
ComboBox<String> cbxAction = new ComboBox<>(FXCollections.observableArrayList(promo));
|
|
|
|
if (error instanceof HttpException) {
|
|
|
|
cbxAction.getSelectionModel().select("Ulang Tahun");
|
|
|
|
switch (((HttpException) error).code()) {
|
|
|
|
TextField txtScan = new TextField();
|
|
|
|
case HttpURLConnection.HTTP_NOT_FOUND:
|
|
|
|
txtScan.setOnKeyPressed((t) -> {
|
|
|
|
Alert alert = AlertUtil.getAlertError(
|
|
|
|
if (t.getCode() == KeyCode.ENTER){
|
|
|
|
AlertUtil.ERROR_TIDAK_DITEMUKAN_TITLE,
|
|
|
|
fldScan.requestFocus();
|
|
|
|
"Data nota tidak ditemukan.");
|
|
|
|
}
|
|
|
|
alert.initOwner(apMain.getScene().getWindow());
|
|
|
|
});
|
|
|
|
alert.show();
|
|
|
|
daftarTabelBarang.add(new TabelBarangTunai("AACOBA001ABCDXL", "Barang x", "XL","1","79.900","0","0", cbxAction,
|
|
|
|
}
|
|
|
|
"79.900", txtScan));
|
|
|
|
} else if (error instanceof SocketTimeoutException) {
|
|
|
|
}
|
|
|
|
Alert alert = AlertUtil.getAlertError(
|
|
|
|
|
|
|
|
AlertUtil.ERROR_KONEKSI_TIMEOUT_TITLE,
|
|
|
|
|
|
|
|
AlertUtil.ERROR_KONEKSI_TIMEOUT_MESSAGE);
|
|
|
|
|
|
|
|
alert.initOwner(apMain.getScene().getWindow());
|
|
|
|
|
|
|
|
alert.show();
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
Alert alert = AlertUtil.getAlertError(
|
|
|
|
|
|
|
|
AlertUtil.ERROR_TIDAK_TERDUGA_TITLE,
|
|
|
|
|
|
|
|
AlertUtil.ERROR_TIDAK_TERDUGA_MESSAGE);
|
|
|
|
|
|
|
|
alert.initOwner(apMain.getScene().getWindow());
|
|
|
|
|
|
|
|
alert.show();
|
|
|
|
|
|
|
|
Logger.getLogger(FormUtamaController.class
|
|
|
|
|
|
|
|
.getName()).log(Level.SEVERE, null, error);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
|
|
public void onComplete() {
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Observer<Barang> getBarangObserver = new Observer<>() {
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
|
|
public void onSubscribe(Disposable dspsbl) {
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
|
|
public void onNext(Barang b) {
|
|
|
|
|
|
|
|
BarangCache.getInstance().getDaftarBarang().put(b.getKodeBarang(), b);
|
|
|
|
|
|
|
|
for (TabelBarangTunai tbt : daftarTabelTransaksi) {
|
|
|
|
|
|
|
|
if (tbt.getKode().equals(b.getKodeBarang())) {
|
|
|
|
|
|
|
|
tbt.setNama(b.getNamaBarang());
|
|
|
|
|
|
|
|
tbvTransaksi.refresh();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@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,
|
|
|
|
|
|
|
|
"Barang dengan kode tersebut tidak ditemukan.");
|
|
|
|
|
|
|
|
alert.initOwner(apMain.getScene().getWindow());
|
|
|
|
|
|
|
|
alert.show();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
} else if (error instanceof SocketTimeoutException) {
|
|
|
|
|
|
|
|
Alert alert = AlertUtil.getAlertError(
|
|
|
|
|
|
|
|
AlertUtil.ERROR_KONEKSI_TIMEOUT_TITLE,
|
|
|
|
|
|
|
|
AlertUtil.ERROR_KONEKSI_TIMEOUT_MESSAGE);
|
|
|
|
|
|
|
|
alert.initOwner(apMain.getScene().getWindow());
|
|
|
|
|
|
|
|
alert.show();
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
Alert alert = AlertUtil.getAlertError(
|
|
|
|
|
|
|
|
AlertUtil.ERROR_TIDAK_TERDUGA_TITLE,
|
|
|
|
|
|
|
|
AlertUtil.ERROR_TIDAK_TERDUGA_MESSAGE);
|
|
|
|
|
|
|
|
alert.initOwner(apMain.getScene().getWindow());
|
|
|
|
|
|
|
|
alert.show();
|
|
|
|
|
|
|
|
Logger.getLogger(FormUtamaController.class
|
|
|
|
|
|
|
|
.getName()).log(Level.SEVERE, null, error);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
|
|
public void onComplete() {
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|