diff --git a/desktop/src/main/java/org/example/petshopdesktop/controllers/SaleController.java b/desktop/src/main/java/org/example/petshopdesktop/controllers/SaleController.java index 7e80c531..22c96dbd 100644 --- a/desktop/src/main/java/org/example/petshopdesktop/controllers/SaleController.java +++ b/desktop/src/main/java/org/example/petshopdesktop/controllers/SaleController.java @@ -258,18 +258,23 @@ public class SaleController { if (sale.getItems() != null && !sale.getItems().isEmpty()) { for (SaleItemResponse item : sale.getItems()) { + boolean isRefund = sale.getIsRefund() != null && sale.getIsRefund(); double unitPrice = item.getUnitPrice() != null ? item.getUnitPrice().doubleValue() : 0.0; - double lineTotal = unitPrice * item.getQuantity(); + int quantity = item.getQuantity() != null ? item.getQuantity() : 0; + if (isRefund && quantity > 0) { + quantity = -quantity; + } + double lineTotal = unitPrice * quantity; lineItems.add(new SaleLineItem( sale.getSaleId().intValue(), saleDate, sale.getEmployeeName(), item.getProductName(), - item.getQuantity(), + quantity, unitPrice, lineTotal, sale.getPaymentMethod(), - sale.getIsRefund() != null && sale.getIsRefund() + isRefund )); } } @@ -501,9 +506,13 @@ public class SaleController { private SaleDetail mapToSaleDetail(SaleResponse sale) { ObservableList items = FXCollections.observableArrayList(); if (sale.getItems() != null) { + boolean isRefund = sale.getIsRefund() != null && sale.getIsRefund(); for (SaleItemResponse item : sale.getItems()) { double unitPrice = item.getUnitPrice() != null ? item.getUnitPrice().doubleValue() : 0.0; int quantity = item.getQuantity() != null ? item.getQuantity() : 0; + if (isRefund && quantity > 0) { + quantity = -quantity; + } items.add(new SaleDetail.SaleDetailItem( item.getProdId() != null ? item.getProdId().intValue() : 0, item.getProductName(),