@@ -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>
|
||||||
@@ -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();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user