From 904e2ed225e719dba91d5f7a0424c3a00f504567 Mon Sep 17 00:00:00 2001 From: bachir souldi Date: Fri, 24 Jun 2022 15:49:35 +0100 Subject: [PATCH] allow multiple sub-creation of PO from children --- .../service/PurchaseOrderSupplierService.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/modules/axelor-open-suite/axelor-supplier-management/src/main/java/com/axelor/apps/suppliermanagement/service/PurchaseOrderSupplierService.java b/modules/axelor-open-suite/axelor-supplier-management/src/main/java/com/axelor/apps/suppliermanagement/service/PurchaseOrderSupplierService.java index 27cd351..1c041ce 100644 --- a/modules/axelor-open-suite/axelor-supplier-management/src/main/java/com/axelor/apps/suppliermanagement/service/PurchaseOrderSupplierService.java +++ b/modules/axelor-open-suite/axelor-supplier-management/src/main/java/com/axelor/apps/suppliermanagement/service/PurchaseOrderSupplierService.java @@ -41,6 +41,7 @@ import com.axelor.apps.supplychain.service.PurchaseOrderServiceSupplychainImpl; import com.axelor.apps.suppliermanagement.db.repo.PurchaseOrderSupplierLineRepository; import com.axelor.apps.suppliermanagement.db.PurchaseOrderSupplierLine; import com.axelor.auth.AuthUtils; +import com.axelor.db.JPA; import com.axelor.exception.AxelorException; import com.axelor.exception.db.repo.TraceBackRepository; import com.axelor.i18n.I18n; @@ -56,6 +57,9 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.util.HashSet; import java.util.Set; +import java.util.stream.Collector; +import java.util.stream.Collectors; +import javax.persistence.Query; public class PurchaseOrderSupplierService { @@ -136,9 +140,13 @@ public class PurchaseOrderSupplierService { // remove link purchase order purchase request PurchaseRequest purchaseRequest = Beans.get(PurchaseRequestRepository.class).find(purchaseOrder.getPurchaseRequestOrigin().getId()); - purchaseRequest.getPurchaseOrderSet().remove(purchaseOrder); - Set hash_Set = new HashSet(); + Set po = purchaseRequest.getPurchaseOrderSet().stream().filter((t) -> t.getId() != purchaseOrder.getId()).collect(Collectors.toSet()); + + purchaseRequest.getPurchaseOrderSet().removeIf((t) -> t.getId() == purchaseOrder.getId()); + + Set hash_Set = new HashSet(); + hash_Set.addAll(po); for (Partner supplierPartner : purchaseOrderLinesBySupplierPartner.keySet()) { PurchaseOrder PurchaseOrderNew = this.createPurchaseOrderSophal(