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.");