Conflicts: src/main/java/id/amigogroup/posterminal/transaksi/FormTransaksiReturController.java src/main/java/id/amigogroup/posterminal/transaksi/FormTransaksiTunaiController.java src/main/java/id/amigogroup/posterminal/transaksi/TabelBarangTunai.java src/main/java/id/amigogroup/posterminal/util/AlertUtil.javapull/7/head
| @@ -12,6 +12,7 @@ import id.amigogroup.posterminal.model.DNotaRetur; | |||||
| import id.amigogroup.posterminal.model.DNotaTunai; | import id.amigogroup.posterminal.model.DNotaTunai; | ||||
| import id.amigogroup.posterminal.util.AmigoPosCache; | import id.amigogroup.posterminal.util.AmigoPosCache; | ||||
| import id.amigogroup.posterminal.util.AlertUtil; | import id.amigogroup.posterminal.util.AlertUtil; | ||||
| import id.amigogroup.posterminal.util.ButtonUtility; | |||||
| import id.amigogroup.posterminal.util.Fucout; | import id.amigogroup.posterminal.util.Fucout; | ||||
| import io.reactivex.Observer; | import io.reactivex.Observer; | ||||
| import io.reactivex.disposables.Disposable; | import io.reactivex.disposables.Disposable; | ||||
| @@ -29,6 +30,7 @@ import javafx.collections.ObservableList; | |||||
| import javafx.fxml.FXML; | 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.Label; | 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; | ||||
| @@ -106,6 +108,7 @@ public class FormTransaksiReturController implements Initializable { | |||||
| private StackPane stpReturDrop; | private StackPane stpReturDrop; | ||||
| @FXML | @FXML | ||||
| private Label lblTambahKeTabelRetur; | private Label lblTambahKeTabelRetur; | ||||
| private TableColumn<TabelBarangTunai, Button> tcAction; | |||||
| private final AmigoPosRx posRx = new AmigoPosRx(); | private final AmigoPosRx posRx = new AmigoPosRx(); | ||||
| private String noNota = ""; | private String noNota = ""; | ||||
| @@ -130,6 +133,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")); | ||||
| tcAction.setCellValueFactory(new PropertyValueFactory<>("btnAction")); | |||||
| tbvPenjualan.setItems(daftarTabelPenjualan); | tbvPenjualan.setItems(daftarTabelPenjualan); | ||||
| tcNoRetur.setCellValueFactory((TableColumn.CellDataFeatures<TabelBarangRetur, Integer> cell) -> { | tcNoRetur.setCellValueFactory((TableColumn.CellDataFeatures<TabelBarangRetur, Integer> cell) -> { | ||||
| @@ -161,8 +165,18 @@ public class FormTransaksiReturController implements Initializable { | |||||
| daftarTabelRetur.clear(); | daftarTabelRetur.clear(); | ||||
| for (DNotaTunai dNotaTunai : daftarNotaTunai) { | for (DNotaTunai dNotaTunai : daftarNotaTunai) { | ||||
| //Button | |||||
| 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(); | |||||
| }); | |||||
| TextField fldPramuniaga = new TextField(dNotaTunai.getKodePram()); | TextField fldPramuniaga = new TextField(dNotaTunai.getKodePram()); | ||||
| String namaBarang = "..."; | String namaBarang = "..."; | ||||
| if (AmigoPosCache.getInstance().getDaftarBarang().containsKey(dNotaTunai.getKdBarang())) { | if (AmigoPosCache.getInstance().getDaftarBarang().containsKey(dNotaTunai.getKdBarang())) { | ||||
| Barang barang = AmigoPosCache.getInstance().getDaftarBarang() | Barang barang = AmigoPosCache.getInstance().getDaftarBarang() | ||||
| @@ -183,10 +197,12 @@ public class FormTransaksiReturController implements Initializable { | |||||
| Fucout.getText(Fucout.formatRibuan( | Fucout.getText(Fucout.formatRibuan( | ||||
| dNotaTunai.getHargaJual() * dNotaTunai.getJumlah() | dNotaTunai.getHargaJual() * dNotaTunai.getJumlah() | ||||
| )), | )), | ||||
| fldPramuniaga); | |||||
| fldPramuniaga, | |||||
| btnAction); | |||||
| tbt.setData(dNotaTunai); | tbt.setData(dNotaTunai); | ||||
| 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(getBarangObserver); | ||||
| } | } | ||||
| @@ -30,6 +30,9 @@ import javafx.collections.ObservableList; | |||||
| import javafx.fxml.FXML; | 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.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; | ||||
| @@ -40,6 +43,7 @@ import javafx.scene.input.KeyCode; | |||||
| import javafx.scene.input.KeyEvent; | import javafx.scene.input.KeyEvent; | ||||
| import javafx.scene.layout.AnchorPane; | import javafx.scene.layout.AnchorPane; | ||||
| import javafx.scene.text.Text; | import javafx.scene.text.Text; | ||||
| import javax.swing.JOptionPane; | |||||
| import retrofit2.HttpException; | import retrofit2.HttpException; | ||||
| /** | /** | ||||
| @@ -80,10 +84,13 @@ public class FormTransaksiTunaiController implements Initializable { | |||||
| @FXML | @FXML | ||||
| private TableColumn<TabelBarangTunai, TextField> tcPramuniaga; | private TableColumn<TabelBarangTunai, TextField> tcPramuniaga; | ||||
| @FXML | @FXML | ||||
| private TableColumn<TabelBarangTunai, Button> tcAction; | |||||
| @FXML | |||||
| private Label txtTanggal; | private Label txtTanggal; | ||||
| final ObservableList<TabelBarangTunai> daftarTabelTransaksi = FXCollections.observableArrayList(); | final ObservableList<TabelBarangTunai> daftarTabelTransaksi = FXCollections.observableArrayList(); | ||||
| @FXML | @FXML | ||||
| private Text lblGrandTotal; | private Text lblGrandTotal; | ||||
| public static final ButtonType btnAction = new ButtonType("BATAL", ButtonBar.ButtonData.YES); | |||||
| private String noNota = ""; | private String noNota = ""; | ||||
| private AmigoPosRx posRx = new AmigoPosRx(); | private AmigoPosRx posRx = new AmigoPosRx(); | ||||
| @@ -108,6 +115,7 @@ public class FormTransaksiTunaiController implements Initializable { | |||||
| tcPromo.setCellValueFactory(new PropertyValueFactory<>("cbxPromo")); | tcPromo.setCellValueFactory(new PropertyValueFactory<>("cbxPromo")); | ||||
| tcSubtotal.setCellValueFactory(new PropertyValueFactory<>("subTotal")); | tcSubtotal.setCellValueFactory(new PropertyValueFactory<>("subTotal")); | ||||
| tcPramuniaga.setCellValueFactory(new PropertyValueFactory<>("fldPramuniaga")); | tcPramuniaga.setCellValueFactory(new PropertyValueFactory<>("fldPramuniaga")); | ||||
| tcAction.setCellValueFactory(new PropertyValueFactory<>("btnAction")); | |||||
| tbvTransaksi.setItems(daftarTabelTransaksi); | tbvTransaksi.setItems(daftarTabelTransaksi); | ||||
| // fillTable(new ArrayList<>()); | // fillTable(new ArrayList<>()); | ||||
| @@ -133,14 +141,26 @@ public class FormTransaksiTunaiController implements Initializable { | |||||
| String[] promo = {"Ulang Tahun", "Harbolnas", "Ultah Amigo"}; | String[] promo = {"Ulang Tahun", "Harbolnas", "Ultah Amigo"}; | ||||
| for (DNotaTunai dNotaTunai : daftarNotaTunai) { | for (DNotaTunai dNotaTunai : daftarNotaTunai) { | ||||
| //ComboBox | |||||
| ComboBox<String> cbxPromo = new ComboBox<>(FXCollections.observableArrayList(promo)); | ComboBox<String> cbxPromo = new ComboBox<>(FXCollections.observableArrayList(promo)); | ||||
| cbxPromo.getSelectionModel().select("Ulang Tahun"); | cbxPromo.getSelectionModel().select("Ulang Tahun"); | ||||
| //Button | |||||
| Button btnAction = new Button("BATAL"); | |||||
| btnAction.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()); | TextField fldPramuniaga = new TextField(dNotaTunai.getKodePram()); | ||||
| fldPramuniaga.setOnKeyPressed((t) -> { | fldPramuniaga.setOnKeyPressed((t) -> { | ||||
| if (t.getCode() == KeyCode.ENTER) { | if (t.getCode() == KeyCode.ENTER) { | ||||
| fldScan.requestFocus(); | fldScan.requestFocus(); | ||||
| } | } | ||||
| }); | }); | ||||
| String namaBarang = "..."; | String namaBarang = "..."; | ||||
| @@ -161,7 +181,8 @@ public class FormTransaksiTunaiController implements Initializable { | |||||
| Fucout.getText(Fucout.formatRibuan( | Fucout.getText(Fucout.formatRibuan( | ||||
| dNotaTunai.getHargaJual() * dNotaTunai.getJumlah() | dNotaTunai.getHargaJual() * dNotaTunai.getJumlah() | ||||
| )), | )), | ||||
| fldPramuniaga)); | |||||
| fldPramuniaga, | |||||
| btnAction)); | |||||
| 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(getBarangObserver); | ||||
| @@ -199,6 +220,17 @@ public class FormTransaksiTunaiController implements Initializable { | |||||
| String[] promo = {"Ulang Tahun", "Harbolnas", "Ultah Amigo"}; | String[] promo = {"Ulang Tahun", "Harbolnas", "Ultah Amigo"}; | ||||
| ComboBox<String> cbxPromo = new ComboBox<>(FXCollections.observableArrayList(promo)); | ComboBox<String> cbxPromo = new ComboBox<>(FXCollections.observableArrayList(promo)); | ||||
| cbxPromo.getSelectionModel().select("Ulang Tahun"); | cbxPromo.getSelectionModel().select("Ulang Tahun"); | ||||
| Button btnAction = new Button("BATAL"); | |||||
| btnAction.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(); | TextField fldPramuniaga = new TextField(); | ||||
| fldPramuniaga.setOnKeyPressed((t) -> { | fldPramuniaga.setOnKeyPressed((t) -> { | ||||
| if (t.getCode() == KeyCode.ENTER) { | if (t.getCode() == KeyCode.ENTER) { | ||||
| @@ -230,7 +262,8 @@ public class FormTransaksiTunaiController implements Initializable { | |||||
| Fucout.getText(Fucout.formatRibuan( | Fucout.getText(Fucout.formatRibuan( | ||||
| 1 * noBarang.getHargaJual()) | 1 * noBarang.getHargaJual()) | ||||
| ), | ), | ||||
| fldPramuniaga); | |||||
| fldPramuniaga, | |||||
| btnAction); | |||||
| tbt.setData(dNotaTunai); | tbt.setData(dNotaTunai); | ||||
| daftarTabelTransaksi.add(tbt); | daftarTabelTransaksi.add(tbt); | ||||
| @@ -8,6 +8,7 @@ package id.amigogroup.posterminal.transaksi; | |||||
| import id.amigogroup.posterminal.model.DNotaTunai; | import id.amigogroup.posterminal.model.DNotaTunai; | ||||
| import javafx.beans.property.SimpleObjectProperty; | import javafx.beans.property.SimpleObjectProperty; | ||||
| import javafx.beans.property.SimpleStringProperty; | import javafx.beans.property.SimpleStringProperty; | ||||
| import javafx.scene.control.Button; | |||||
| import javafx.scene.control.ComboBox; | import javafx.scene.control.ComboBox; | ||||
| import javafx.scene.control.TextField; | import javafx.scene.control.TextField; | ||||
| @@ -16,6 +17,7 @@ import javafx.scene.control.TextField; | |||||
| * @author AGNES | * @author AGNES | ||||
| */ | */ | ||||
| public class TabelBarangTunai { | public class TabelBarangTunai { | ||||
| private SimpleStringProperty kode; | private SimpleStringProperty kode; | ||||
| private SimpleStringProperty nama; | private SimpleStringProperty nama; | ||||
| private SimpleStringProperty ukur; | private SimpleStringProperty ukur; | ||||
| @@ -26,11 +28,12 @@ public class TabelBarangTunai { | |||||
| private SimpleObjectProperty<ComboBox> cbxPromo; | private SimpleObjectProperty<ComboBox> cbxPromo; | ||||
| private SimpleStringProperty subTotal; | private SimpleStringProperty subTotal; | ||||
| private SimpleObjectProperty<TextField> fldPramuniaga; | private SimpleObjectProperty<TextField> fldPramuniaga; | ||||
| private DNotaTunai data; | private DNotaTunai data; | ||||
| private SimpleObjectProperty<Button> btnAction; | |||||
| public TabelBarangTunai(String kode, String nama, String ukur, String jumlah, String harga, String disc1, | |||||
| String disc2, ComboBox cbxPromo, String subTotal, TextField fldPramuniaga) { | |||||
| public TabelBarangTunai(String kode, String nama, String ukur, String jumlah, String harga, String disc1, | |||||
| String disc2, ComboBox cbxPromo, String subTotal, TextField fldPramuniaga, Button btnAction) { | |||||
| this.kode = new SimpleStringProperty(kode); | this.kode = new SimpleStringProperty(kode); | ||||
| this.nama = new SimpleStringProperty(nama); | this.nama = new SimpleStringProperty(nama); | ||||
| this.ukur = new SimpleStringProperty(ukur); | this.ukur = new SimpleStringProperty(ukur); | ||||
| @@ -38,12 +41,12 @@ public class TabelBarangTunai { | |||||
| this.harga = new SimpleStringProperty(harga); | this.harga = new SimpleStringProperty(harga); | ||||
| this.disc1 = new SimpleStringProperty(disc1); | this.disc1 = new SimpleStringProperty(disc1); | ||||
| this.disc2 = new SimpleStringProperty(disc2); | this.disc2 = new SimpleStringProperty(disc2); | ||||
| this.cbxPromo = new SimpleObjectProperty<ComboBox>(cbxPromo); | |||||
| this.cbxPromo = new SimpleObjectProperty<>(cbxPromo); | |||||
| this.subTotal = new SimpleStringProperty(subTotal); | this.subTotal = new SimpleStringProperty(subTotal); | ||||
| this.fldPramuniaga = new SimpleObjectProperty<TextField>(fldPramuniaga); | |||||
| this.fldPramuniaga = new SimpleObjectProperty<>(fldPramuniaga); | |||||
| this.btnAction = new SimpleObjectProperty<>(btnAction); | |||||
| } | } | ||||
| /** | /** | ||||
| * @return the kode | * @return the kode | ||||
| */ | */ | ||||
| @@ -197,4 +200,18 @@ public class TabelBarangTunai { | |||||
| public void setData(DNotaTunai data) { | public void setData(DNotaTunai data) { | ||||
| this.data = data; | this.data = data; | ||||
| } | } | ||||
| } | |||||
| /** | |||||
| * @return the action | |||||
| */ | |||||
| public Button getBtnAction() { | |||||
| return btnAction.get(); | |||||
| } | |||||
| /** | |||||
| * @param action the action to set | |||||
| */ | |||||
| public void setBtnAction(Button action) { | |||||
| this.btnAction.set(action); | |||||
| } | |||||
| } | |||||
| @@ -6,6 +6,7 @@ | |||||
| package id.amigogroup.posterminal.util; | package id.amigogroup.posterminal.util; | ||||
| import javafx.scene.control.Alert; | import javafx.scene.control.Alert; | ||||
| import javafx.scene.control.Button; | |||||
| import javafx.scene.control.ButtonBar.ButtonData; | import javafx.scene.control.ButtonBar.ButtonData; | ||||
| import javafx.scene.control.ButtonType; | import javafx.scene.control.ButtonType; | ||||
| import javafx.scene.image.Image; | import javafx.scene.image.Image; | ||||
| @@ -21,8 +22,11 @@ public class AlertUtil { | |||||
| public static final String ERROR_TIDAK_TERDUGA_MESSAGE = "Terjadi kesalahan yang tidak terduga."; | public static final String ERROR_TIDAK_TERDUGA_MESSAGE = "Terjadi kesalahan yang tidak terduga."; | ||||
| public static final String ERROR_KONEKSI_TIMEOUT_TITLE = "Error: Timeout - Koneksi Gagal"; | public static final String ERROR_KONEKSI_TIMEOUT_TITLE = "Error: Timeout - Koneksi Gagal"; | ||||
| public static final String ERROR_KONEKSI_TIMEOUT_MESSAGE = "Koneksi ke server mengalami kegagalan."; | public static final String ERROR_KONEKSI_TIMEOUT_MESSAGE = "Koneksi ke server mengalami kegagalan."; | ||||
| public static final String DIALOG_KONFIRMASI_MESSAGE = "Dialog Konfirmasi"; | |||||
| public static final String ERROR_TIDAK_LENGKAP_TITLE = "Error: Data Tidak Lengkap"; | 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 Alert getAlertWarning(String title, String message){ | public static Alert getAlertWarning(String title, String message){ | ||||
| Alert alert = new Alert(Alert.AlertType.WARNING, message, ButtonType.OK); | Alert alert = new Alert(Alert.AlertType.WARNING, message, ButtonType.OK); | ||||
| alert.setTitle(title); | alert.setTitle(title); | ||||
| @@ -37,6 +41,13 @@ public class AlertUtil { | |||||
| return alert; | return alert; | ||||
| } | } | ||||
| public static Alert getAlertDialogKonfirmasi (String title, String message){ | |||||
| Alert alert = new Alert(Alert.AlertType.CONFIRMATION, message, ButtonType.OK, ButtonType.CANCEL); | |||||
| alert.setTitle(title); | |||||
| alert.setHeaderText(null); | |||||
| return alert; | |||||
| } | |||||
| public static Alert getAlertUlangTahun(String nama) { | public static Alert getAlertUlangTahun(String nama) { | ||||
| Alert alert = new Alert(Alert.AlertType.INFORMATION); | Alert alert = new Alert(Alert.AlertType.INFORMATION); | ||||
| Image image = new Image("/assets/birthday.png"); | Image image = new Image("/assets/birthday.png"); | ||||
| @@ -109,6 +109,7 @@ | |||||
| <TableColumn fx:id="tcPromo" prefWidth="-1.0" sortable="false" text="Promo" /> | <TableColumn fx:id="tcPromo" prefWidth="-1.0" sortable="false" text="Promo" /> | ||||
| <TableColumn fx:id="tcSubtotal" prefWidth="-1.0" text="Sub Total" /> | <TableColumn fx:id="tcSubtotal" prefWidth="-1.0" text="Sub Total" /> | ||||
| <TableColumn fx:id="tcPramuniaga" prefWidth="-1.0" sortable="false" text="Pramuniaga" /> | <TableColumn fx:id="tcPramuniaga" prefWidth="-1.0" sortable="false" text="Pramuniaga" /> | ||||
| <TableColumn fx:id="tcAction" prefWidth="75.0" text="Action" /> | |||||
| </columns> | </columns> | ||||
| <columnResizePolicy> | <columnResizePolicy> | ||||
| <TableView fx:constant="CONSTRAINED_RESIZE_POLICY" /> | <TableView fx:constant="CONSTRAINED_RESIZE_POLICY" /> | ||||