Membuat Fungsi Batal dan Fungsi Pengurangan Bayar Otomatis Menggunakan Retur

[Logic] Fungsi tombol batal, mengurangi jumlah jika barang tsb >1 dan menghapus dari tabel jika tidak 
[Logic + UI] Jika ada transaksi retur, dan transaksi tersebut berasal dari tunai, maka akan mengurangkan nominal tunai
pull/14/head
Ronaldo Christnawan 6 years ago
parent a890572880
commit 32ccd3df74

@ -65,6 +65,7 @@ public class FormBayarController implements Initializable, BayarInterface {
private final List<CheckBox> daftarChkBayarSyarat;
private final List<CheckBox> daftarChkBayarOpsional;
public BayarContent bayarContent = new BayarContent();
private FormUtamaController parent = null;
public FormBayarController() {
daftarChkBayarSyarat = new ArrayList<>();
@ -90,8 +91,15 @@ public class FormBayarController implements Initializable, BayarInterface {
}
public void initData(FormUtamaController parent) {
this.parent = parent;
if (parent != null && parent.notaContent.getControllerTunai() != null) {
bayarContent.setTotalPerluBayar(parent.notaContent.getControllerTunai().total);
int bayarRetur = 0;
if (parent.notaContent.getControllerRetur() != null
&& parent.notaContent.getControllerRetur().tipeRetur.equals(
Fucout.TEKS_TIPE_NOTA_TUNAI)) {
bayarRetur = parent.notaContent.getControllerRetur().nominalRetur;
}
bayarContent.setTotalPerluBayar(parent.notaContent.getControllerTunai().total - bayarRetur);
updateGrandTotalView();
updateKurangBayarView();
}
@ -103,7 +111,16 @@ public class FormBayarController implements Initializable, BayarInterface {
KeyCombination kcSelesaiBayar = new KeyCodeCombination(KeyCode.F10);
Runnable rnSelesaiBayar = () -> {
if (bayarContent.getTotalBayar() >= bayarContent.getTotalPerluBayar()) {
if (parent != null) {
DialogCetakNotaController dialogCetakNotaController = new DialogCetakNotaController();
dialogCetakNotaController.initOwner(apContent.getScene().getWindow());
dialogCetakNotaController.initData(
parent.notaContent.getControllerTunai() != null ?
parent.notaContent.getControllerTunai().daftarTabelTransaksi : null,
parent.notaContent.getControllerRetur() != null ?
parent.notaContent.getControllerRetur().daftarTabelRetur : null);
Optional<String> result = dialogCetakNotaController.showAndWait();
}
} else {
DialogSelesaiBayarTidakLunasController dsbtlc
= new DialogSelesaiBayarTidakLunasController(this,

@ -22,12 +22,10 @@ import javafx.fxml.Initializable;
import javafx.scene.Parent;
import javafx.scene.control.ButtonBar.ButtonData;
import javafx.scene.control.ButtonType;
import javafx.scene.control.ComboBox;
import javafx.scene.control.Dialog;
import javafx.scene.control.ScrollPane;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.TextField;
import javafx.scene.control.TitledPane;
import javafx.scene.control.cell.PropertyValueFactory;
import javafx.scene.layout.AnchorPane;

@ -22,6 +22,7 @@ import io.reactivex.disposables.Disposable;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.List;
import java.util.Optional;
import java.util.ResourceBundle;
import java.util.logging.Level;
import java.util.logging.Logger;
@ -33,6 +34,7 @@ import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Alert;
import javafx.scene.control.Button;
import javafx.scene.control.ButtonType;
import javafx.scene.control.Label;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
@ -121,6 +123,10 @@ public class FormTransaksiReturController implements Initializable {
public final ObservableList<TabelBarangRetur> daftarTabelRetur = FXCollections.observableArrayList();
private TabelBarangTunai draggedTabelBarangTunai = null;
public String lastNoNotaPenjualan = "";
public String tipeRetur = "";
public int nominalRetur = 0;
/**
* Initializes the controller class.
*/
@ -138,7 +144,6 @@ 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"));
tbvPenjualan.setItems(daftarTabelPenjualan);
tcNoRetur.setCellValueFactory((TableColumn.CellDataFeatures<TabelBarangRetur, Integer> cell) -> {
@ -177,16 +182,6 @@ public class FormTransaksiReturController implements Initializable {
daftarTabelPenjualan.clear();
for (DNotaTunai dNotaTunai : daftarNotaTunai) {
//Button
Button btnBatal = ButtonUtility.generateButton(ButtonUtility.CLOSE_ICON);
btnBatal.setOnAction((t) -> {
Alert alert = AlertUtil.getAlertDialogKonfirmasi(
AlertUtil.DIALOG_KONFIRMASI_MESSAGE,
"Yakin ingin menghapus barang?");
alert.initOwner(apMain.getScene().getWindow());
alert.show();
});
TextField fldPramuniaga = new TextField(dNotaTunai.getKodePram());
String namaBarang = "...";
@ -210,7 +205,7 @@ public class FormTransaksiReturController implements Initializable {
dNotaTunai.getHargaJual() * dNotaTunai.getJumlah()
)),
fldPramuniaga,
btnBatal);
null);
tbt.setData(dNotaTunai);
daftarTabelPenjualan.add(tbt);
@ -227,14 +222,6 @@ public class FormTransaksiReturController implements Initializable {
for (DNotaRetur dNotaRetur : daftarDNotaRetur) {
//Button
Button btnBatal = ButtonUtility.generateButton(ButtonUtility.CLOSE_ICON);
btnBatal.setOnAction((t) -> {
Alert alert = AlertUtil.getAlertDialogKonfirmasi(
AlertUtil.DIALOG_KONFIRMASI_MESSAGE,
"Yakin ingin menghapus barang?");
alert.initOwner(apMain.getScene().getWindow());
alert.show();
});
TextField fldPramuniaga = new TextField(dNotaRetur.getKodePram());
String namaBarang = "...";
@ -259,6 +246,10 @@ public class FormTransaksiReturController implements Initializable {
fldPramuniaga,
btnBatal);
btnBatal.setOnAction((t) -> {
batalRetur(tbr);
});
tbr.setData(dNotaRetur);
daftarTabelRetur.add(tbr);
@ -268,9 +259,42 @@ public class FormTransaksiReturController implements Initializable {
}
}
private void batalRetur(TabelBarangRetur tbr) {
Alert alert = AlertUtil.getAlertDialogKonfirmasi(
AlertUtil.DIALOG_KONFIRMASI_MESSAGE,
"Yakin ingin menghapus barang?");
alert.initOwner(apMain.getScene().getWindow());
Optional<ButtonType> result = alert.showAndWait();
if (result.isPresent() && result.get() == AlertUtil.BUTTON_YA) {
if (tbr.getData().getJumlah() > 1) {
tbr.getData().setJumlah(tbr.getData().getJumlah() - 1);
tbr.setJumlah(String.valueOf(tbr.getData().getJumlah()));
tbvRetur.refresh();
} else {
daftarTabelRetur.remove(tbr);
}
nominalRetur -= tbr.getData().getHargaJual();
}
}
@FXML
void fldNotaPenjualanOnKeyPressed(KeyEvent event) {
if (event.getCode() == KeyCode.ENTER) {
switch(fldNotaPenjualan.getText().charAt(0)){
case Fucout.KODE_NOTA_BAWA:
tipeRetur = Fucout.TEKS_TIPE_NOTA_BAWA;
break;
case Fucout.KODE_NOTA_BON:
tipeRetur = Fucout.TEKS_TIPE_NOTA_BAWA;
break;
case Fucout.KODE_NOTA_RETUR:
break;
default:
tipeRetur = Fucout.TEKS_TIPE_NOTA_TUNAI;
break;
}
Disposable disposable = posRx.validasiMNotaTunaiByNoNotaTanggal(fldNotaPenjualan.getText())
.subscribe((response) -> {
ObjectMapper mapper = new ObjectMapper();
@ -383,6 +407,7 @@ public class FormTransaksiReturController implements Initializable {
)));
tbvRetur.refresh();
nominalRetur += tbr.getData().getHargaJual();
} else {
Alert alert = AlertUtil.getAlertError(
"Jumlah Barang Kurang",
@ -400,14 +425,6 @@ public class FormTransaksiReturController implements Initializable {
if (!ada) {
Button btnBatal = ButtonUtility.generateButton(ButtonUtility.CLOSE_ICON);
btnBatal.setOnAction((t) -> {
Alert alert = AlertUtil.getAlertDialogKonfirmasi(
AlertUtil.DIALOG_KONFIRMASI_MESSAGE,
"Yakin ingin menghapus barang?");
alert.initOwner(apMain.getScene().getWindow());
alert.show();
});
TextField fldPramuniaga = new TextField();
DNotaRetur dNotaRetur = new DNotaRetur(noNota, draggedTabelBarangTunai.getData());
@ -425,8 +442,14 @@ public class FormTransaksiReturController implements Initializable {
fldPramuniaga,
btnBatal);
btnBatal.setOnAction((t) -> {
batalRetur(tbr);
});
tbr.setData(dNotaRetur);
nominalRetur += tbr.getData().getHargaJual();
daftarTabelRetur.add(tbr);
}
}
@ -455,7 +478,7 @@ public class FormTransaksiReturController implements Initializable {
@Override
public void onNext(List<DNotaTunai> daftarDNotaTunai) {
fldNotaPenjualan.clear();
lastNoNotaPenjualan = fldNotaPenjualan.getText();
refreshDataPenjualan(daftarDNotaTunai);
}

@ -25,6 +25,7 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.ResourceBundle;
import java.util.logging.Level;
import java.util.logging.Logger;
@ -36,6 +37,7 @@ import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Alert;
import javafx.scene.control.Button;
import javafx.scene.control.ButtonType;
import javafx.scene.control.ComboBox;
import javafx.scene.control.Label;
import javafx.scene.control.TableColumn;
@ -217,14 +219,7 @@ public class FormTransaksiTunaiController implements Initializable {
cbxPromo.getSelectionModel().select("Ulang Tahun");
//Button
Button btnBatal = ButtonUtility.generateButton(ButtonUtility.CLOSE_ICON);
btnBatal.setOnAction((t) -> {
Alert alert = AlertUtil.getAlertError(
AlertUtil.DIALOG_KONFIRMASI_MESSAGE,
"Yakin ingin menghapus barang?");
alert.initOwner(apMain.getScene().getWindow());
alert.show();
});
//TextField
TextField fldPramuniaga = new TextField(dNotaTunai.getKodePram());
fldPramuniaga.setOnKeyPressed((t) -> {
@ -240,7 +235,7 @@ public class FormTransaksiTunaiController implements Initializable {
.get(dNotaTunai.getKdBarang()).getNamaBarang());
}
daftarTabelTransaksi.add(new TabelBarangTunai(
TabelBarangTunai tbt = new TabelBarangTunai(
Fucout.getText(dNotaTunai.getKdBarang()),
namaBarang,
Fucout.getText(dNotaTunai.getNoBarang()),
@ -253,7 +248,20 @@ public class FormTransaksiTunaiController implements Initializable {
dNotaTunai.getHargaJual() * dNotaTunai.getJumlah()
)),
fldPramuniaga,
btnBatal));
btnBatal);
tbt.setData(dNotaTunai);
daftarTabelTransaksi.add(tbt);
btnBatal.setOnAction((t) -> {
Alert alert = AlertUtil.getAlertError(
AlertUtil.DIALOG_KONFIRMASI_MESSAGE,
"Yakin ingin menghapus barang?");
alert.initOwner(apMain.getScene().getWindow());
alert.show();
batalTunai(tbt);
});
if (!AmigoPosCache.getInstance().getDaftarBarang().containsKey(dNotaTunai.getKdBarang())) {
posRx.getBarangByKodeBarang(dNotaTunai.getKdBarang()).subscribe(getBarangObserver);
@ -261,6 +269,24 @@ public class FormTransaksiTunaiController implements Initializable {
}
}
private void batalTunai(TabelBarangTunai tbt) {
Alert alert = AlertUtil.getAlertDialogKonfirmasi(
AlertUtil.DIALOG_KONFIRMASI_MESSAGE,
"Yakin ingin menghapus barang?");
alert.initOwner(apMain.getScene().getWindow());
Optional<ButtonType> result = alert.showAndWait();
if (result.isPresent() && result.get() == AlertUtil.BUTTON_YA) {
if (tbt.getData().getJumlah() > 1) {
tbt.getData().setJumlah(tbt.getData().getJumlah() - 1);
tbt.setJumlah(String.valueOf(tbt.getData().getJumlah()));
tbvTransaksi.refresh();
} else {
daftarTabelTransaksi.remove(tbt);
}
}
}
public void addToTable(Barang barang, NoBarang noBarang) {
if (barang != null && noBarang != null) {
fldScan.setText("");
@ -299,15 +325,7 @@ public class FormTransaksiTunaiController implements Initializable {
ComboBox<String> cbxPromo = new ComboBox<>(FXCollections.observableArrayList(promo));
cbxPromo.getSelectionModel().select("Ulang Tahun");
Button btnAction = ButtonUtility.generateButton(ButtonUtility.CLOSE_ICON);
btnAction.setOnAction((t) -> {
Alert alert = AlertUtil.getAlertDialogKonfirmasi(
AlertUtil.DIALOG_KONFIRMASI_MESSAGE,
"Yakin ingin menghapus barang?");
alert.initOwner(apMain.getScene().getWindow());
alert.show();
});
Button btnBatal = ButtonUtility.generateButton(ButtonUtility.CLOSE_ICON);
TextField fldPramuniaga = new TextField();
fldPramuniaga.setOnKeyPressed((t) -> {
@ -341,9 +359,13 @@ public class FormTransaksiTunaiController implements Initializable {
1 * noBarang.getHargaJual())
),
fldPramuniaga,
btnAction);
btnBatal);
tbt.setData(dNotaTunai);
btnBatal.setOnAction((t) -> {
batalTunai(tbt);
});
total += noBarang.getHargaJual();
updateLabelGrandTotal();
daftarTabelTransaksi.add(tbt);

@ -27,6 +27,7 @@ public class AlertUtil {
public static final String ERROR_TIDAK_LENGKAP_TITLE = "Error: Data Tidak Lengkap";
public static final ButtonType BUTTON_YA = new ButtonType("Ya", ButtonData.YES);
public static final ButtonType BUTTON_TIDAK = new ButtonType("Tidak", ButtonData.NO);
public static Alert getAlertInfo(String title, String message){
Alert alert = new Alert(Alert.AlertType.INFORMATION, message, ButtonType.OK);
@ -50,7 +51,7 @@ public class AlertUtil {
}
public static Alert getAlertDialogKonfirmasi (String title, String message){
Alert alert = new Alert(Alert.AlertType.CONFIRMATION, message, ButtonType.OK, ButtonType.CANCEL);
Alert alert = new Alert(Alert.AlertType.CONFIRMATION, message, BUTTON_YA, BUTTON_TIDAK);
alert.setTitle(title);
alert.setHeaderText(null);
return alert;

Loading…
Cancel
Save