diff --git a/modules/axelor-open-suite/axelor-business-project/src/main/resources/domains/PurchaseRequest.xml b/modules/axelor-open-suite/axelor-business-project/src/main/resources/domains/PurchaseRequest.xml new file mode 100644 index 0000000..52cd565 --- /dev/null +++ b/modules/axelor-open-suite/axelor-business-project/src/main/resources/domains/PurchaseRequest.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + 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 85c8106..140a77c 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 @@ -29,6 +29,7 @@ import com.axelor.auth.AuthUtils; import com.axelor.exception.AxelorException; import com.google.inject.Inject; import com.google.inject.persist.Transactional; +import java.math.BigInteger; import java.time.LocalDate; import java.util.ArrayList; import java.util.HashMap; @@ -89,12 +90,22 @@ public class PurchaseRequestServiceImpl implements PurchaseRequestService { purchaseOrder = purchaseOrderMap.get(key); } else { purchaseOrder = createPurchaseOrder(purchaseRequest); + // SOPHAL + setProjectPurchaseOrder(purchaseOrder, purchaseRequest); + purchaseOrder.setNotes(purchaseRequest.getDescription()); + purchaseOrderRepo.save(purchaseOrder); + // SOPHAL key = key == null ? purchaseRequest.getId().toString() : key; purchaseOrderMap.put(key, purchaseOrder); } if (purchaseOrder == null) { purchaseOrder = createPurchaseOrder(purchaseRequest); + // SOPHAL + setProjectPurchaseOrder(purchaseOrder, purchaseRequest); + purchaseOrder.setNotes(purchaseRequest.getDescription()); + purchaseOrderRepo.save(purchaseOrder); + // SOPHAL } for (PurchaseRequestLine purchaseRequestLine : purchaseRequest.getPurchaseRequestLineList()) { @@ -168,4 +179,31 @@ public class PurchaseRequestServiceImpl implements PurchaseRequestService { protected String getPurchaseOrderGroupBySupplierKey(PurchaseRequest purchaseRequest) { return purchaseRequest.getSupplierUser().getId().toString(); } + + @Transactional + protected void setProjectPurchaseOrder( + PurchaseOrder purchaseOrder, PurchaseRequest purchaseRequest) { + javax.persistence.Query query = + com.axelor + .db + .JPA + .em() + .createNativeQuery("SELECT project from purchase_purchase_request where id = ?1") + .setParameter(1, purchaseRequest.getId()); + + BigInteger id_project = (BigInteger) query.getSingleResult(); + + if (id_project != null) { + javax.persistence.Query update = + com.axelor + .db + .JPA + .em() + .createNativeQuery( + "UPDATE purchase_purchase_order SET " + " project = :project WHERE id = :id"); + update.setParameter("project", id_project); + update.setParameter("id", purchaseOrder.getId()); + update.executeUpdate(); + } + } }