From 1151b1d01534d856e9059d56e08a31be802a538d Mon Sep 17 00:00:00 2001 From: walid seghier Date: Tue, 22 Nov 2022 11:31:02 +0100 Subject: [PATCH] fix the bug of Tracking Number Available Qty fix the bug of Tracking Number Available Qty ( stock moves => move lines => Tracking Number) --- .../repo/TrackingNumberManagementRepository.java | 6 +++--- .../stock/service/StockLocationLineService.java | 11 +++++++++++ .../service/StockLocationLineServiceImpl.java | 14 ++++++++++++++ 3 files changed, 28 insertions(+), 3 deletions(-) diff --git a/modules/axelor-open-suite/axelor-stock/src/main/java/com/axelor/apps/stock/db/repo/TrackingNumberManagementRepository.java b/modules/axelor-open-suite/axelor-stock/src/main/java/com/axelor/apps/stock/db/repo/TrackingNumberManagementRepository.java index 95a6bd01..94dc6cf9 100644 --- a/modules/axelor-open-suite/axelor-stock/src/main/java/com/axelor/apps/stock/db/repo/TrackingNumberManagementRepository.java +++ b/modules/axelor-open-suite/axelor-stock/src/main/java/com/axelor/apps/stock/db/repo/TrackingNumberManagementRepository.java @@ -47,9 +47,9 @@ public class TrackingNumberManagementRepository extends TrackingNumberRepository if (stockLocation != null) { BigDecimal availableQty = - stockLocationLineService.getAvailableQty( - stockLocation, trackingNumber.getProduct()); - + stockLocationLineService.getTrackingNumberAvailableQty( + stockLocation, trackingNumber); + json.put("$availableQty", availableQty); } } diff --git a/modules/axelor-open-suite/axelor-stock/src/main/java/com/axelor/apps/stock/service/StockLocationLineService.java b/modules/axelor-open-suite/axelor-stock/src/main/java/com/axelor/apps/stock/service/StockLocationLineService.java index 292cc4ed..3bc94619 100644 --- a/modules/axelor-open-suite/axelor-stock/src/main/java/com/axelor/apps/stock/service/StockLocationLineService.java +++ b/modules/axelor-open-suite/axelor-stock/src/main/java/com/axelor/apps/stock/service/StockLocationLineService.java @@ -246,4 +246,15 @@ public interface StockLocationLineService { * @param stockMoveLine the move line responsible for the WAP change. */ void updateWap(StockLocationLine stockLocationLine, BigDecimal wap, StockMoveLine stockMoveLine); + + + /** + * Allow to get the available qty of product for a given Tracking Number. + * + * @param stockLocation + * @param trackingNumber + * @return + */ + public BigDecimal getTrackingNumberAvailableQty( + StockLocation stockLocation, TrackingNumber trackingNumber); } diff --git a/modules/axelor-open-suite/axelor-stock/src/main/java/com/axelor/apps/stock/service/StockLocationLineServiceImpl.java b/modules/axelor-open-suite/axelor-stock/src/main/java/com/axelor/apps/stock/service/StockLocationLineServiceImpl.java index 048bd3b8..7dc8877a 100644 --- a/modules/axelor-open-suite/axelor-stock/src/main/java/com/axelor/apps/stock/service/StockLocationLineServiceImpl.java +++ b/modules/axelor-open-suite/axelor-stock/src/main/java/com/axelor/apps/stock/service/StockLocationLineServiceImpl.java @@ -741,4 +741,18 @@ public class StockLocationLineServiceImpl implements StockLocationLineService { stockLocationLine.getUnit(), stockMoveLine)); } + + @Override + public BigDecimal getTrackingNumberAvailableQty( + StockLocation stockLocation, TrackingNumber trackingNumber) { + StockLocationLine detailStockLocationLine = + getDetailLocationLine(stockLocation, trackingNumber.getProduct(), trackingNumber); + + BigDecimal availableQty = BigDecimal.ZERO; + + if (detailStockLocationLine != null) { + availableQty = detailStockLocationLine.getCurrentQty(); + } + return availableQty; + } }