From bbc28bef478c97908c22ea411d4d4de543d22312 Mon Sep 17 00:00:00 2001 From: Harkamal Randhawa Date: Tue, 10 Mar 2026 21:59:48 -0600 Subject: [PATCH] Prefill refund dialog --- .../api/dto/sale/SaleItemResponse.java | 7 +++++++ .../petshopdesktop/controllers/SaleController.java | 5 +++++ .../dialogcontrollers/RefundDialogController.java | 12 ++++++++++++ 3 files changed, 24 insertions(+) diff --git a/src/main/java/org/example/petshopdesktop/api/dto/sale/SaleItemResponse.java b/src/main/java/org/example/petshopdesktop/api/dto/sale/SaleItemResponse.java index ab6815a2..8bed99b1 100644 --- a/src/main/java/org/example/petshopdesktop/api/dto/sale/SaleItemResponse.java +++ b/src/main/java/org/example/petshopdesktop/api/dto/sale/SaleItemResponse.java @@ -51,4 +51,11 @@ public class SaleItemResponse { public void setUnitPrice(BigDecimal unitPrice) { this.unitPrice = unitPrice; } + + public BigDecimal getLineTotal() { + if (unitPrice == null || quantity == null) { + return BigDecimal.ZERO; + } + return unitPrice.multiply(BigDecimal.valueOf(quantity)); + } } diff --git a/src/main/java/org/example/petshopdesktop/controllers/SaleController.java b/src/main/java/org/example/petshopdesktop/controllers/SaleController.java index 0e6315b8..d85bffab 100644 --- a/src/main/java/org/example/petshopdesktop/controllers/SaleController.java +++ b/src/main/java/org/example/petshopdesktop/controllers/SaleController.java @@ -371,6 +371,7 @@ public class SaleController { private void openRefundDialog() { try { + SaleLineItem selectedSale = tvSales.getSelectionModel().getSelectedItem(); FXMLLoader loader = new FXMLLoader(getClass().getResource( "/org/example/petshopdesktop/dialogviews/refund-dialog-view.fxml")); Stage dialog = new Stage(); @@ -378,6 +379,10 @@ public class SaleController { dialog.initModality(Modality.APPLICATION_MODAL); dialog.setTitle("Process Refund"); dialog.setScene(new Scene(loader.load())); + if (selectedSale != null) { + loader.getController() + .prefillSale((long) selectedSale.getSaleId()); + } dialog.setResizable(false); dialog.showAndWait(); diff --git a/src/main/java/org/example/petshopdesktop/controllers/dialogcontrollers/RefundDialogController.java b/src/main/java/org/example/petshopdesktop/controllers/dialogcontrollers/RefundDialogController.java index d886a451..581b579d 100644 --- a/src/main/java/org/example/petshopdesktop/controllers/dialogcontrollers/RefundDialogController.java +++ b/src/main/java/org/example/petshopdesktop/controllers/dialogcontrollers/RefundDialogController.java @@ -114,6 +114,18 @@ public class RefundDialogController { @FXML void btnLoadSaleClicked(ActionEvent event) { + loadSale(); + } + + public void prefillSale(Long saleId) { + if (saleId == null) { + return; + } + txtSaleId.setText(String.valueOf(saleId)); + loadSale(); + } + + private void loadSale() { String saleIdText = txtSaleId.getText().trim(); if (saleIdText.isEmpty()) { showError("Load Sale", "Enter a transaction ID.");