| @@ -29,6 +29,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; | ||||
| @@ -72,6 +73,8 @@ public class FormTransaksiReturController implements Initializable { | |||||
| private TableColumn<TabelBarangTunai, String> tcSubTotal; | private TableColumn<TabelBarangTunai, String> tcSubTotal; | ||||
| @FXML | @FXML | ||||
| private TableColumn<TabelBarangTunai, TextField> tcPramuniaga; | private TableColumn<TabelBarangTunai, TextField> tcPramuniaga; | ||||
| @FXML | |||||
| private TableColumn<TabelBarangTunai, Button> tcAction; | |||||
| // @FXML | // @FXML | ||||
| // private TableView<?> tbvRetur; | // private TableView<?> tbvRetur; | ||||
| @@ -117,6 +120,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); | ||||
| Platform.runLater(() -> { | Platform.runLater(() -> { | ||||
| fldNotaPenjualan.requestFocus(); | fldNotaPenjualan.requestFocus(); | ||||
| @@ -136,8 +140,18 @@ public class FormTransaksiReturController implements Initializable { | |||||
| daftarTabelPenjualan.clear(); | daftarTabelPenjualan.clear(); | ||||
| for (DNotaTunai dNotaTunai : daftarNotaTunai) { | for (DNotaTunai dNotaTunai : daftarNotaTunai) { | ||||
| //Button | |||||
| 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(dNotaTunai.getKodePram()); | TextField fldPramuniaga = new TextField(dNotaTunai.getKodePram()); | ||||
| String namaBarang = "..."; | String namaBarang = "..."; | ||||
| if (BarangCache.getInstance().getDaftarBarang().containsKey(dNotaTunai.getKdBarang())) { | if (BarangCache.getInstance().getDaftarBarang().containsKey(dNotaTunai.getKdBarang())) { | ||||
| namaBarang = Fucout.getText(BarangCache.getInstance().getDaftarBarang() | namaBarang = Fucout.getText(BarangCache.getInstance().getDaftarBarang() | ||||
| @@ -156,7 +170,8 @@ public class FormTransaksiReturController implements Initializable { | |||||
| Fucout.getText(Fucout.formatRibuan( | Fucout.getText(Fucout.formatRibuan( | ||||
| dNotaTunai.getHargaJual() * dNotaTunai.getJumlah() | dNotaTunai.getHargaJual() * dNotaTunai.getJumlah() | ||||
| )), | )), | ||||
| fldPramuniaga)); | |||||
| fldPramuniaga, | |||||
| btnAction)); | |||||
| if (!BarangCache.getInstance().getDaftarBarang().containsKey(dNotaTunai.getKdBarang())) { | if (!BarangCache.getInstance().getDaftarBarang().containsKey(dNotaTunai.getKdBarang())) { | ||||
| posRx.getBarangByKodeBarang(dNotaTunai.getKdBarang()).subscribe(getBarangObserver); | posRx.getBarangByKodeBarang(dNotaTunai.getKdBarang()).subscribe(getBarangObserver); | ||||
| @@ -28,6 +28,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; | ||||
| @@ -38,6 +41,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; | ||||
| /** | /** | ||||
| @@ -78,10 +82,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 AmigoPosRx posRx = new AmigoPosRx(); | private AmigoPosRx posRx = new AmigoPosRx(); | ||||
| @@ -103,6 +110,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<>()); | ||||
| @@ -114,6 +122,8 @@ public class FormTransaksiTunaiController implements Initializable { | |||||
| setTanggal(); | setTanggal(); | ||||
| } | } | ||||
| public void setTanggal(){ | public void setTanggal(){ | ||||
| java.util.Date skrg = new java.util.Date(); | java.util.Date skrg = new java.util.Date(); | ||||
| java.text.SimpleDateFormat kal = new | java.text.SimpleDateFormat kal = new | ||||
| @@ -126,14 +136,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 = "..."; | ||||
| @@ -154,7 +176,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 (!BarangCache.getInstance().getDaftarBarang().containsKey(dNotaTunai.getKdBarang())) { | if (!BarangCache.getInstance().getDaftarBarang().containsKey(dNotaTunai.getKdBarang())) { | ||||
| posRx.getBarangByKodeBarang(dNotaTunai.getKdBarang()).subscribe(getBarangObserver); | posRx.getBarangByKodeBarang(dNotaTunai.getKdBarang()).subscribe(getBarangObserver); | ||||
| @@ -166,11 +189,22 @@ 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 | |||||
| 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) { | ||||
| fldScan.requestFocus(); | fldScan.requestFocus(); | ||||
| } | } | ||||
| }); | }); | ||||
| daftarTabelTransaksi.add(new TabelBarangTunai( | daftarTabelTransaksi.add(new TabelBarangTunai( | ||||
| Fucout.getText(barang.getKodeBarang()), | Fucout.getText(barang.getKodeBarang()), | ||||
| @@ -182,7 +216,8 @@ public class FormTransaksiTunaiController implements Initializable { | |||||
| "...", | "...", | ||||
| cbxPromo, | cbxPromo, | ||||
| "...", | "...", | ||||
| fldPramuniaga)); | |||||
| fldPramuniaga, | |||||
| btnAction)); | |||||
| } | } | ||||
| //SCAN BARANG | //SCAN BARANG | ||||
| @@ -26,9 +26,10 @@ 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 SimpleObjectProperty<Button> btnAction; | |||||
| public TabelBarangTunai(String kode, String nama, String ukur, String jumlah, String harga, String disc1, | public TabelBarangTunai(String kode, String nama, String ukur, String jumlah, String harga, String disc1, | ||||
| String disc2, ComboBox cbxPromo, String subTotal, TextField fldPramuniaga) { | |||||
| 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); | ||||
| @@ -39,6 +40,7 @@ public class TabelBarangTunai { | |||||
| this.cbxPromo = new SimpleObjectProperty<ComboBox>(cbxPromo); | this.cbxPromo = new SimpleObjectProperty<ComboBox>(cbxPromo); | ||||
| this.subTotal = new SimpleStringProperty(subTotal); | this.subTotal = new SimpleStringProperty(subTotal); | ||||
| this.fldPramuniaga = new SimpleObjectProperty<TextField>(fldPramuniaga); | this.fldPramuniaga = new SimpleObjectProperty<TextField>(fldPramuniaga); | ||||
| this.btnAction = new SimpleObjectProperty<Button>(btnAction); | |||||
| } | } | ||||
| @@ -181,4 +183,18 @@ public class TabelBarangTunai { | |||||
| public void setFldPramuniaga(TextField fldPramuniaga) { | public void setFldPramuniaga(TextField fldPramuniaga) { | ||||
| this.fldPramuniaga.set(fldPramuniaga); | this.fldPramuniaga.set(fldPramuniaga); | ||||
| } | } | ||||
| /** | |||||
| * @return the action | |||||
| */ | |||||
| public Button getBtnAction() { | |||||
| return btnAction.get(); | |||||
| } | |||||
| /** | |||||
| * @param action the action to set | |||||
| */ | |||||
| public void setBtnAction(Button action) { | |||||
| this.btnAction.set(action); | |||||
| } | |||||
| } | } | ||||
| @@ -20,6 +20,7 @@ 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 Alert getAlertError(String title, String message){ | public static Alert getAlertError(String title, String message){ | ||||
| Alert alert = new Alert(Alert.AlertType.ERROR, message, ButtonType.OK); | Alert alert = new Alert(Alert.AlertType.ERROR, message, ButtonType.OK); | ||||
| @@ -28,6 +29,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"); | ||||
| @@ -107,6 +107,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" /> | ||||