allow multiple sub-creation of PO from children

This commit is contained in:
bachir souldi
2022-06-24 15:49:35 +01:00
parent ed4bddc1c6
commit 904e2ed225

View File

@@ -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.repo.PurchaseOrderSupplierLineRepository;
import com.axelor.apps.suppliermanagement.db.PurchaseOrderSupplierLine; import com.axelor.apps.suppliermanagement.db.PurchaseOrderSupplierLine;
import com.axelor.auth.AuthUtils; import com.axelor.auth.AuthUtils;
import com.axelor.db.JPA;
import com.axelor.exception.AxelorException; import com.axelor.exception.AxelorException;
import com.axelor.exception.db.repo.TraceBackRepository; import com.axelor.exception.db.repo.TraceBackRepository;
import com.axelor.i18n.I18n; import com.axelor.i18n.I18n;
@@ -56,6 +57,9 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import java.util.HashSet; import java.util.HashSet;
import java.util.Set; import java.util.Set;
import java.util.stream.Collector;
import java.util.stream.Collectors;
import javax.persistence.Query;
public class PurchaseOrderSupplierService { public class PurchaseOrderSupplierService {
@@ -136,9 +140,13 @@ public class PurchaseOrderSupplierService {
// remove link purchase order purchase request // remove link purchase order purchase request
PurchaseRequest purchaseRequest = Beans.get(PurchaseRequestRepository.class).find(purchaseOrder.getPurchaseRequestOrigin().getId()); PurchaseRequest purchaseRequest = Beans.get(PurchaseRequestRepository.class).find(purchaseOrder.getPurchaseRequestOrigin().getId());
purchaseRequest.getPurchaseOrderSet().remove(purchaseOrder);
Set<PurchaseOrder> hash_Set = new HashSet<PurchaseOrder>();
Set<PurchaseOrder> po = purchaseRequest.getPurchaseOrderSet().stream().filter((t) -> t.getId() != purchaseOrder.getId()).collect(Collectors.toSet());
purchaseRequest.getPurchaseOrderSet().removeIf((t) -> t.getId() == purchaseOrder.getId());
Set<PurchaseOrder> hash_Set = new HashSet<PurchaseOrder>();
hash_Set.addAll(po);
for (Partner supplierPartner : purchaseOrderLinesBySupplierPartner.keySet()) { for (Partner supplierPartner : purchaseOrderLinesBySupplierPartner.keySet()) {
PurchaseOrder PurchaseOrderNew = this.createPurchaseOrderSophal( PurchaseOrder PurchaseOrderNew = this.createPurchaseOrderSophal(