add file's inheretence for purchaseOrders

This commit is contained in:
2022-09-12 16:42:42 +01:00
parent 06ea3969f3
commit 7dd4d956fd
2 changed files with 56 additions and 1 deletions

View File

@@ -42,10 +42,15 @@ import com.axelor.apps.suppliermanagement.db.repo.PurchaseOrderSupplierLineRepos
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.db.JPA;
import com.axelor.dms.db.DMSFile;
import com.axelor.dms.db.repo.DMSFileRepository;
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;
import com.axelor.inject.Beans; 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.Inject;
import com.google.inject.persist.Transactional; import com.google.inject.persist.Transactional;
import java.lang.invoke.MethodHandles; import java.lang.invoke.MethodHandles;
@@ -75,6 +80,10 @@ public class PurchaseOrderSupplierService {
@Inject private PurchaseRequestRepository purchaseRequestRepo; @Inject private PurchaseRequestRepository purchaseRequestRepo;
@Inject private MetaAttachmentRepository metaAttachmentRepository;
@Inject private DMSFileRepository dmsFileRepository;
@Transactional @Transactional
public void generateAllSuppliersRequests(PurchaseOrder purchaseOrder) { public void generateAllSuppliersRequests(PurchaseOrder purchaseOrder) {
@@ -152,7 +161,52 @@ public class PurchaseOrderSupplierService {
PurchaseOrder PurchaseOrderNew = this.createPurchaseOrderSophal( PurchaseOrder PurchaseOrderNew = this.createPurchaseOrderSophal(
supplierPartner, purchaseOrderLinesBySupplierPartner.get(supplierPartner), purchaseOrder); supplierPartner, purchaseOrderLinesBySupplierPartner.get(supplierPartner), purchaseOrder);
// sophal // sophal
hash_Set.add(PurchaseOrderNew); hash_Set.add(PurchaseOrderNew);
// start attachement heritage
List<MetaAttachment> metaAttachments = metaAttachmentRepository.all().filter("self.objectId = ?1",purchaseOrder.getId()).fetch();
List<DMSFile> 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)); createPurchaseOrderSupplierLineTCO(PurchaseOrderNew.getPurchaseOrderLineList() ,purchaseOrderLinesBySupplierPartner.get(supplierPartner));
} }

View File

@@ -52,6 +52,7 @@ public class PurchaseOrderSupplierLineController {
.param("show-toolbar", "false") .param("show-toolbar", "false")
.param("show-confirm", "false") .param("show-confirm", "false")
.param("popup-save", "false") .param("popup-save", "false")
.param("show-toolbar","true")
.param("popup", "true") .param("popup", "true")
.context("_showRecord", String.valueOf(purchaseOrder.getId())) .context("_showRecord", String.valueOf(purchaseOrder.getId()))
.map()); .map());