copier les champs ( projet, Description) quand on click sur générer achats

This commit is contained in:
walid seghier
2022-05-24 09:24:51 +01:00
parent 1fb51a427a
commit 0f12e7825e

View File

@@ -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();
}
}
}