diff --git a/src/main/java/id/amigogroup/posterminal/api/AmigoPosRx.java b/src/main/java/id/amigogroup/posterminal/api/AmigoPosRx.java index 9fabfc5..4ee9863 100644 --- a/src/main/java/id/amigogroup/posterminal/api/AmigoPosRx.java +++ b/src/main/java/id/amigogroup/posterminal/api/AmigoPosRx.java @@ -66,6 +66,11 @@ public class AmigoPosRx { return UtilsApi.getServiceApiBarang().getMNotaTunaiByNoNota(noNota) .subscribeOn(Schedulers.trampoline()); } + + public Observable> getMNotaTunaiByStatus(String status, Integer limit) { + return UtilsApi.getServiceApiBarang().getMNotaTunaiByStatus(status, limit) + .subscribeOn(Schedulers.io()); + } public Observable validasiMNotaTunaiByNoNotaTanggal(String noNota) { return UtilsApi.getServiceApiBarang().validasiMNotaTunaiByNoNotaTanggal(noNota) diff --git a/src/main/java/id/amigogroup/posterminal/api/ServiceApiBarang.java b/src/main/java/id/amigogroup/posterminal/api/ServiceApiBarang.java index a0842d5..441fdb8 100644 --- a/src/main/java/id/amigogroup/posterminal/api/ServiceApiBarang.java +++ b/src/main/java/id/amigogroup/posterminal/api/ServiceApiBarang.java @@ -58,6 +58,11 @@ public interface ServiceApiBarang { @GET("m-nota-tunai/no-nota/{noNota}") Observable getMNotaTunaiByNoNota(@Path("noNota") String noNota); + //Mengambil Master Nota Tunai By Status Tunda + @GET("m-nota-tunai/status/{status}/limit/{limit}") + Observable> getMNotaTunaiByStatus( + @Path("status") String status, + @Path("limit") Integer limit); //Validasi Master Nota Tunai by No Nota @GET("m-nota-tunai/no-nota/{noNota}/valid") Observable validasiMNotaTunaiByNoNotaTanggal(@Path("noNota") String noNota); diff --git a/src/main/java/id/amigogroup/posterminal/pencarian/DialogCariNotaTundaController.java b/src/main/java/id/amigogroup/posterminal/pencarian/DialogCariNotaTundaController.java index 5c210ec..fa06798 100644 --- a/src/main/java/id/amigogroup/posterminal/pencarian/DialogCariNotaTundaController.java +++ b/src/main/java/id/amigogroup/posterminal/pencarian/DialogCariNotaTundaController.java @@ -5,18 +5,38 @@ */ package id.amigogroup.posterminal.pencarian; +import id.amigogroup.posterminal.api.AmigoPosRx; +import id.amigogroup.posterminal.model.MNotaTunai; +import id.amigogroup.posterminal.model.Pagination; +import id.amigogroup.posterminal.transaksi.TabelBarangTunai; +import id.amigogroup.posterminal.util.AlertUtil; +import io.reactivex.Observer; +import io.reactivex.disposables.Disposable; import java.io.IOException; +import java.net.HttpURLConnection; import java.net.URL; import java.util.ResourceBundle; import java.util.logging.Level; import java.util.logging.Logger; +import javafx.beans.property.ReadOnlyObjectWrapper; +import javafx.collections.FXCollections; +import javafx.collections.ObservableList; +import javafx.fxml.FXML; import javafx.fxml.FXMLLoader; import javafx.fxml.Initializable; import javafx.scene.Parent; +import javafx.scene.control.Alert; 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.TableColumn; +import javafx.scene.control.TableView; +import javafx.scene.control.cell.PropertyValueFactory; +import javafx.scene.input.KeyEvent; +import javafx.scene.layout.AnchorPane; import javafx.stage.Window; +import retrofit2.HttpException; /** * FXML Controller class @@ -24,6 +44,37 @@ import javafx.stage.Window; * @author ronal */ public class DialogCariNotaTundaController extends Dialog implements Initializable { + + @FXML + AnchorPane apContent; + @FXML + private ComboBox cbxCariNotaTunda; + @FXML + private TableView tbvBarangTunda; + @FXML + private TableColumn tcNo; + @FXML + private TableColumn tcKode; + @FXML + private TableColumn tcNama; + @FXML + private TableColumn tcUkur; + @FXML + private TableColumn tcJml; + @FXML + private TableColumn tcHarga; + @FXML + private TableColumn tcDisc1; + @FXML + private TableColumn tcDisc2; + @FXML + private TableColumn tcSubTotal; + @FXML + private TableColumn tcPromo; + @FXML + private TableColumn tcPramuniaga; + final ObservableList daftarTabelBarangTunai = FXCollections.observableArrayList(); + AmigoPosRx posRx = new AmigoPosRx(); /** * Initializes the controller class. @@ -31,7 +82,9 @@ public class DialogCariNotaTundaController extends Dialog implements Ini @Override public void initialize(URL url, ResourceBundle rb) { getDialogPane().getButtonTypes().add(new ButtonType("Tutup", ButtonData.CANCEL_CLOSE)); - } +// + } + public DialogCariNotaTundaController(/*FormPresensiController parent*/) { try { @@ -44,7 +97,7 @@ public class DialogCariNotaTundaController extends Dialog implements Ini Parent root = loader.load(); getDialogPane().setContent(root); setTitle("Cari Nota Tunda"); - + posRx.getMNotaTunaiByStatus("T", 25).subscribe(getNotaTunaiTundaObserver); // getDialogPane().getButtonTypes().add(ButtonType.CANCEL); // setResultConverter(buttonType -> { // return str; @@ -54,4 +107,38 @@ public class DialogCariNotaTundaController extends Dialog implements Ini .getName()).log(Level.SEVERE, null, e); } } + + + public Observer> getNotaTunaiTundaObserver = new Observer>() { + @Override + public void onSubscribe(Disposable dspsbl) { + } + + @Override + public void onNext(Pagination daftarMNotaTunai) { + for (MNotaTunai mNotaTunai : daftarMNotaTunai.getData()){ + cbxCariNotaTunda.getItems().add(mNotaTunai.getNoNota()); + } + } + + @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, + "Nota Tunda Tidak Ditemukan"); + alert.initOwner(apContent.getScene().getWindow()); + alert.show(); + } + } else { + AmigoPosRx.handleGenericError(error, apContent.getScene().getWindow()); + } + } + + @Override + public void onComplete() { + } + }; } diff --git a/src/main/java/id/amigogroup/posterminal/transaksi/FormTransaksiReturController.java b/src/main/java/id/amigogroup/posterminal/transaksi/FormTransaksiReturController.java index 84bcc4e..71035ad 100644 --- a/src/main/java/id/amigogroup/posterminal/transaksi/FormTransaksiReturController.java +++ b/src/main/java/id/amigogroup/posterminal/transaksi/FormTransaksiReturController.java @@ -107,6 +107,8 @@ public class FormTransaksiReturController implements Initializable { @FXML private TableColumn tcPramuniagaRetur; @FXML + private TableColumn tcBtnBatal; + @FXML private StackPane stpReturDrop; @FXML private Label lblTambahKeTabelRetur; @@ -134,7 +136,7 @@ public class FormTransaksiReturController implements Initializable { tcDisc2.setCellValueFactory(new PropertyValueFactory<>("disc2")); tcSubTotal.setCellValueFactory(new PropertyValueFactory<>("subTotal")); tcPramuniaga.setCellValueFactory(new PropertyValueFactory<>("fldPramuniaga")); -// tcAction.setCellValueFactory(new PropertyValueFactory<>("btnAction")); + tcBtnBatal.setCellValueFactory(new PropertyValueFactory<>("btnBatal")); tbvPenjualan.setItems(daftarTabelPenjualan); tcNoRetur.setCellValueFactory((TableColumn.CellDataFeatures cell) -> { @@ -173,9 +175,9 @@ public class FormTransaksiReturController implements Initializable { daftarTabelRetur.clear(); for (DNotaTunai dNotaTunai : daftarNotaTunai) { - //Button - Button btnAction = ButtonUtility.generateButton(ButtonUtility.CLOSE_ICON); - btnAction.setOnAction((t) -> { + //Button + Button btnBatal = ButtonUtility.generateButton(ButtonUtility.CLOSE_ICON); + btnBatal.setOnAction((t) -> { Alert alert = AlertUtil.getAlertDialogKonfirmasi( AlertUtil.DIALOG_KONFIRMASI_MESSAGE, "Yakin ingin menghapus barang?"); @@ -206,7 +208,7 @@ public class FormTransaksiReturController implements Initializable { dNotaTunai.getHargaJual() * dNotaTunai.getJumlah() )), fldPramuniaga, - btnAction); + btnBatal); tbt.setData(dNotaTunai); daftarTabelPenjualan.add(tbt); diff --git a/src/main/java/id/amigogroup/posterminal/transaksi/FormTransaksiTunaiController.java b/src/main/java/id/amigogroup/posterminal/transaksi/FormTransaksiTunaiController.java index d8101d7..8f1e2cd 100644 --- a/src/main/java/id/amigogroup/posterminal/transaksi/FormTransaksiTunaiController.java +++ b/src/main/java/id/amigogroup/posterminal/transaksi/FormTransaksiTunaiController.java @@ -14,6 +14,7 @@ import id.amigogroup.posterminal.model.MNotaTunai; import id.amigogroup.posterminal.model.NoBarang; import id.amigogroup.posterminal.util.AmigoPosCache; import id.amigogroup.posterminal.util.AlertUtil; +import id.amigogroup.posterminal.util.ButtonUtility; import id.amigogroup.posterminal.util.Fucout; import io.reactivex.Observable; import io.reactivex.Observer; @@ -215,7 +216,7 @@ public class FormTransaksiTunaiController implements Initializable { ComboBox cbxPromo = new ComboBox<>(FXCollections.observableArrayList(promo)); cbxPromo.getSelectionModel().select("Ulang Tahun"); //Button - Button btnAction = new Button("BATAL"); + Button btnAction = ButtonUtility.generateButton(ButtonUtility.CLOSE_ICON); btnAction.setOnAction((t) -> { Alert alert = AlertUtil.getAlertError( AlertUtil.DIALOG_KONFIRMASI_MESSAGE, @@ -298,7 +299,7 @@ public class FormTransaksiTunaiController implements Initializable { ComboBox cbxPromo = new ComboBox<>(FXCollections.observableArrayList(promo)); cbxPromo.getSelectionModel().select("Ulang Tahun"); - Button btnAction = new Button("BATAL"); + Button btnAction = ButtonUtility.generateButton(ButtonUtility.CLOSE_ICON); btnAction.setOnAction((t) -> { Alert alert = AlertUtil.getAlertDialogKonfirmasi( AlertUtil.DIALOG_KONFIRMASI_MESSAGE, diff --git a/src/main/resources/fxml/DialogCariNotaTunda.fxml b/src/main/resources/fxml/DialogCariNotaTunda.fxml index 7f87f13..d225154 100644 --- a/src/main/resources/fxml/DialogCariNotaTunda.fxml +++ b/src/main/resources/fxml/DialogCariNotaTunda.fxml @@ -14,7 +14,7 @@ - +