From 7dd4d956fdfb59a601f7237a7efa67399868979a Mon Sep 17 00:00:00 2001 From: bachir souldi Date: Mon, 12 Sep 2022 16:42:42 +0100 Subject: [PATCH] add file's inheretence for purchaseOrders --- .../service/PurchaseOrderSupplierService.java | 56 ++++++++++++++++++- .../PurchaseOrderSupplierLineController.java | 1 + 2 files changed, 56 insertions(+), 1 deletion(-) 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 94038f57..c44e1495 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 @@ -42,10 +42,15 @@ import com.axelor.apps.suppliermanagement.db.repo.PurchaseOrderSupplierLineRepos import com.axelor.apps.suppliermanagement.db.PurchaseOrderSupplierLine; import com.axelor.auth.AuthUtils; import com.axelor.db.JPA; +import com.axelor.dms.db.DMSFile; +import com.axelor.dms.db.repo.DMSFileRepository; import com.axelor.exception.AxelorException; import com.axelor.exception.db.repo.TraceBackRepository; import com.axelor.i18n.I18n; import com.axelor.inject.Beans; +import com.axelor.meta.db.MetaAttachment; +import com.axelor.meta.db.MetaFile; +import com.axelor.meta.db.repo.MetaAttachmentRepository; import com.google.inject.Inject; import com.google.inject.persist.Transactional; import java.lang.invoke.MethodHandles; @@ -75,6 +80,10 @@ public class PurchaseOrderSupplierService { @Inject private PurchaseRequestRepository purchaseRequestRepo; + @Inject private MetaAttachmentRepository metaAttachmentRepository; + + @Inject private DMSFileRepository dmsFileRepository; + @Transactional public void generateAllSuppliersRequests(PurchaseOrder purchaseOrder) { @@ -152,7 +161,52 @@ public class PurchaseOrderSupplierService { PurchaseOrder PurchaseOrderNew = this.createPurchaseOrderSophal( supplierPartner, purchaseOrderLinesBySupplierPartner.get(supplierPartner), purchaseOrder); // sophal - hash_Set.add(PurchaseOrderNew); + hash_Set.add(PurchaseOrderNew); + + // start attachement heritage + List metaAttachments = metaAttachmentRepository.all().filter("self.objectId = ?1",purchaseOrder.getId()).fetch(); + List dmsFiles = dmsFileRepository.all().filter("self.relatedId = ?1",purchaseOrder.getId()).fetch(); + + Long idRoot = dmsFileRepository.all().filter("self.relatedId = ?1 and relatedModel = ?2",(long) 0,purchaseOrder.getClass().getCanonicalName()).fetchOne().getId(); + + for (MetaAttachment metaAttach : metaAttachments) { + MetaAttachment metaAttachment = new MetaAttachment(); + metaAttachment.setObjectId(PurchaseOrderNew.getId()); + metaAttachment.setObjectName(purchaseOrder.getClass().getCanonicalName()); + metaAttachment.setMetaFile(metaAttach.getMetaFile()); + metaAttachmentRepository.save(metaAttachment); + } + + + for (DMSFile dmsFile : dmsFiles) { + if(dmsFile.getIsDirectory() == true){ + DMSFile dms = new DMSFile(); + dms.setFileName(dmsFile.getFileName()); + dms.setRelatedId(PurchaseOrderNew.getId()); + dms.setFileName(dmsFile.getFileName()); + dms.setIsDirectory(dmsFile.getIsDirectory()); + dms.setParent(dmsFileRepository.find(idRoot)); + dms.setRelatedModel(purchaseOrder.getClass().getCanonicalName()); + dmsFileRepository.save(dms); + } + } + + for (DMSFile dmsFile : dmsFiles) { + if(dmsFile.getIsDirectory() != true){ + DMSFile dmsParent = dmsFileRepository.all().filter("self.relatedId = ?1 and self.isDirectory = true",PurchaseOrderNew.getId()).fetchOne(); + DMSFile dms = new DMSFile(); + dms.setFileName(dmsFile.getFileName()); + dms.setRelatedId(PurchaseOrderNew.getId()); + dms.setFileName(dmsFile.getFileName()); + dms.setMetaFile(dmsFile.getMetaFile()); + dms.setIsDirectory(dmsFile.getIsDirectory()); + dms.setRelatedModel(purchaseOrder.getClass().getCanonicalName()); + dms.setParent(dmsParent); + + dmsFileRepository.save(dms); + } + } + createPurchaseOrderSupplierLineTCO(PurchaseOrderNew.getPurchaseOrderLineList() ,purchaseOrderLinesBySupplierPartner.get(supplierPartner)); } diff --git a/modules/axelor-open-suite/axelor-supplier-management/src/main/java/com/axelor/apps/suppliermanagement/web/PurchaseOrderSupplierLineController.java b/modules/axelor-open-suite/axelor-supplier-management/src/main/java/com/axelor/apps/suppliermanagement/web/PurchaseOrderSupplierLineController.java index 8f0a33e2..3e4a1ad0 100644 --- a/modules/axelor-open-suite/axelor-supplier-management/src/main/java/com/axelor/apps/suppliermanagement/web/PurchaseOrderSupplierLineController.java +++ b/modules/axelor-open-suite/axelor-supplier-management/src/main/java/com/axelor/apps/suppliermanagement/web/PurchaseOrderSupplierLineController.java @@ -52,6 +52,7 @@ public class PurchaseOrderSupplierLineController { .param("show-toolbar", "false") .param("show-confirm", "false") .param("popup-save", "false") + .param("show-toolbar","true") .param("popup", "true") .context("_showRecord", String.valueOf(purchaseOrder.getId())) .map());