add link between po children and purchase request

This commit is contained in:
bachir souldi
2022-06-23 10:59:31 +01:00
parent d3f7079152
commit 879e4d4716
3 changed files with 22 additions and 1 deletions

View File

@@ -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<PurchaseOrder> hash_Set = new HashSet<PurchaseOrder>();
hash_Set.add(purchaseOrder);

View File

@@ -69,6 +69,8 @@
<integer name="importationType" selection="importation.folder.type.select" title="Type d'importation" default="1" />
<many-to-one name="importationFolder" ref="com.axelor.apps.purchase.db.ImportationFolder" title="Dossier d'importation" />
<many-to-one name="purchaseRequestOrigin" ref="com.axelor.apps.purchase.db.PurchaseRequest" title="Purchase Request" />
<unique-constraint columns="purchaseOrderSeq,company"/>
<extra-code>

View File

@@ -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<Partner, List<PurchaseOrderLine>> 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<PurchaseOrder> hash_Set = new HashSet<PurchaseOrder>();
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;