From 879e4d4716f30e717ee2a96d38224e11df435b1c Mon Sep 17 00:00:00 2001 From: bachir souldi Date: Thu, 23 Jun 2022 10:59:31 +0100 Subject: [PATCH] add link between po children and purchase request --- .../service/PurchaseRequestServiceImpl.java | 4 ++++ .../main/resources/domains/PurchaseOrder.xml | 2 ++ .../service/PurchaseOrderSupplierService.java | 17 ++++++++++++++++- 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/modules/axelor-open-suite/axelor-purchase/src/main/java/com/axelor/apps/purchase/service/PurchaseRequestServiceImpl.java b/modules/axelor-open-suite/axelor-purchase/src/main/java/com/axelor/apps/purchase/service/PurchaseRequestServiceImpl.java index 140a77cb..40cd4dbf 100644 --- a/modules/axelor-open-suite/axelor-purchase/src/main/java/com/axelor/apps/purchase/service/PurchaseRequestServiceImpl.java +++ b/modules/axelor-open-suite/axelor-purchase/src/main/java/com/axelor/apps/purchase/service/PurchaseRequestServiceImpl.java @@ -93,6 +93,9 @@ public class PurchaseRequestServiceImpl implements PurchaseRequestService { // SOPHAL setProjectPurchaseOrder(purchaseOrder, purchaseRequest); purchaseOrder.setNotes(purchaseRequest.getDescription()); + // sophal set purchase request + // purchaseOrder.setPurchaseRequest(purchaseRequest.getId()); + // sophal purchaseOrderRepo.save(purchaseOrder); // SOPHAL key = key == null ? purchaseRequest.getId().toString() : key; @@ -133,6 +136,7 @@ public class PurchaseRequestServiceImpl implements PurchaseRequestService { } purchaseOrder.getPurchaseOrderLineList().addAll(purchaseOrderLineList); purchaseOrderService.computePurchaseOrder(purchaseOrder); + purchaseOrder.setPurchaseRequestOrigin(purchaseRequest); purchaseOrderRepo.save(purchaseOrder); Set hash_Set = new HashSet(); hash_Set.add(purchaseOrder); diff --git a/modules/axelor-open-suite/axelor-purchase/src/main/resources/domains/PurchaseOrder.xml b/modules/axelor-open-suite/axelor-purchase/src/main/resources/domains/PurchaseOrder.xml index 16df4c18..87874097 100644 --- a/modules/axelor-open-suite/axelor-purchase/src/main/resources/domains/PurchaseOrder.xml +++ b/modules/axelor-open-suite/axelor-purchase/src/main/resources/domains/PurchaseOrder.xml @@ -69,6 +69,8 @@ + + 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 3533c001..8943069f 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 @@ -28,9 +28,11 @@ import com.axelor.apps.base.service.PartnerPriceListService; import com.axelor.apps.base.service.app.AppBaseService; import com.axelor.apps.purchase.db.PurchaseOrder; import com.axelor.apps.purchase.db.PurchaseOrderLine; +import com.axelor.apps.purchase.db.PurchaseRequest; import com.axelor.apps.purchase.db.SupplierCatalog; import com.axelor.apps.purchase.db.repo.PurchaseOrderLineRepository; import com.axelor.apps.purchase.db.repo.PurchaseOrderRepository; +import com.axelor.apps.purchase.db.repo.PurchaseRequestRepository; import com.axelor.apps.purchase.service.PurchaseOrderLineService; import com.axelor.apps.purchase.service.app.AppPurchaseService; import com.axelor.apps.stock.service.StockLocationService; @@ -52,6 +54,8 @@ import java.util.List; import java.util.Map; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.util.HashSet; +import java.util.Set; public class PurchaseOrderSupplierService { @@ -65,6 +69,8 @@ public class PurchaseOrderSupplierService { @Inject protected PurchaseOrderRepository poRepo; + @Inject private PurchaseRequestRepository purchaseRequestRepo; + @Transactional public void generateAllSuppliersRequests(PurchaseOrder purchaseOrder) { @@ -128,13 +134,22 @@ public class PurchaseOrderSupplierService { Map> purchaseOrderLinesBySupplierPartner = this.splitBySupplierPartner(purchaseOrder.getPurchaseOrderLineList()); + // 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(); + for (Partner supplierPartner : purchaseOrderLinesBySupplierPartner.keySet()) { PurchaseOrder PurchaseOrderNew = this.createPurchaseOrderSophal( supplierPartner, purchaseOrderLinesBySupplierPartner.get(supplierPartner), purchaseOrder); + // sophal + hash_Set.add(PurchaseOrderNew); createPurchaseOrderSupplierLineTCO(PurchaseOrderNew.getPurchaseOrderLineList() ,purchaseOrderLinesBySupplierPartner.get(supplierPartner)); } + purchaseRequest.setPurchaseOrderSet(hash_Set); + purchaseRequestRepo.save(purchaseRequest); purchaseOrder.setArchived(true); poRepo.save(purchaseOrder); } @@ -273,7 +288,7 @@ public class PurchaseOrderSupplierService { purchaseOrder.setStatusSelect(PurchaseOrderRepository.STATUS_REQUESTED); purchaseOrder.setReceiptState(PurchaseOrderRepository.STATE_NOT_RECEIVED); - + purchaseOrder.setPurchaseRequestOrigin(parentPurchaseOrder.getPurchaseRequestOrigin()); poRepo.save(purchaseOrder); return purchaseOrder;