Merge pull request #10 from root/dev

Dev
This commit is contained in:
root
2022-05-24 10:32:57 +02:00
2 changed files with 52 additions and 0 deletions

View File

@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<domain-models xmlns="http://axelor.com/xml/ns/domain-models"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://axelor.com/xml/ns/domain-models http://axelor.com/xml/ns/domain-models/domain-models_5.2.xsd">
<module name="purchase" package="com.axelor.apps.purchase.db"/>
<entity name="PurchaseRequest" lang="java">
<many-to-one name="project" ref="com.axelor.apps.project.db.Project" title="Project" />
</entity>
</domain-models>

View File

@@ -29,6 +29,7 @@ import com.axelor.auth.AuthUtils;
import com.axelor.exception.AxelorException; import com.axelor.exception.AxelorException;
import com.google.inject.Inject; import com.google.inject.Inject;
import com.google.inject.persist.Transactional; import com.google.inject.persist.Transactional;
import java.math.BigInteger;
import java.time.LocalDate; import java.time.LocalDate;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
@@ -89,12 +90,22 @@ public class PurchaseRequestServiceImpl implements PurchaseRequestService {
purchaseOrder = purchaseOrderMap.get(key); purchaseOrder = purchaseOrderMap.get(key);
} else { } else {
purchaseOrder = createPurchaseOrder(purchaseRequest); purchaseOrder = createPurchaseOrder(purchaseRequest);
// SOPHAL
setProjectPurchaseOrder(purchaseOrder, purchaseRequest);
purchaseOrder.setNotes(purchaseRequest.getDescription());
purchaseOrderRepo.save(purchaseOrder);
// SOPHAL
key = key == null ? purchaseRequest.getId().toString() : key; key = key == null ? purchaseRequest.getId().toString() : key;
purchaseOrderMap.put(key, purchaseOrder); purchaseOrderMap.put(key, purchaseOrder);
} }
if (purchaseOrder == null) { if (purchaseOrder == null) {
purchaseOrder = createPurchaseOrder(purchaseRequest); purchaseOrder = createPurchaseOrder(purchaseRequest);
// SOPHAL
setProjectPurchaseOrder(purchaseOrder, purchaseRequest);
purchaseOrder.setNotes(purchaseRequest.getDescription());
purchaseOrderRepo.save(purchaseOrder);
// SOPHAL
} }
for (PurchaseRequestLine purchaseRequestLine : purchaseRequest.getPurchaseRequestLineList()) { for (PurchaseRequestLine purchaseRequestLine : purchaseRequest.getPurchaseRequestLineList()) {
@@ -168,4 +179,31 @@ public class PurchaseRequestServiceImpl implements PurchaseRequestService {
protected String getPurchaseOrderGroupBySupplierKey(PurchaseRequest purchaseRequest) { protected String getPurchaseOrderGroupBySupplierKey(PurchaseRequest purchaseRequest) {
return purchaseRequest.getSupplierUser().getId().toString(); 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();
}
}
} }