From 853d481e2c106fd903b318f37ac788bc10678d1b Mon Sep 17 00:00:00 2001 From: bachir souldi Date: Wed, 31 Aug 2022 09:30:40 +0100 Subject: [PATCH] add autofollow for purchase request's user and his superior --- .../web/PurchaseRequestController.java | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/modules/axelor-open-suite/axelor-purchase/src/main/java/com/axelor/apps/purchase/web/PurchaseRequestController.java b/modules/axelor-open-suite/axelor-purchase/src/main/java/com/axelor/apps/purchase/web/PurchaseRequestController.java index 1858947..aa4f513 100644 --- a/modules/axelor-open-suite/axelor-purchase/src/main/java/com/axelor/apps/purchase/web/PurchaseRequestController.java +++ b/modules/axelor-open-suite/axelor-purchase/src/main/java/com/axelor/apps/purchase/web/PurchaseRequestController.java @@ -23,16 +23,23 @@ import com.axelor.apps.purchase.db.repo.PurchaseRequestRepository; import com.axelor.apps.purchase.exception.IExceptionMessage; import com.axelor.apps.purchase.service.PurchaseRequestService; import com.axelor.apps.tool.StringTool; +import com.axelor.auth.AuthUtils; import com.axelor.auth.db.User; +import com.axelor.auth.db.repo.UserRepository; import com.axelor.exception.AxelorException; import com.axelor.exception.db.repo.TraceBackRepository; import com.axelor.i18n.I18n; import com.axelor.inject.Beans; +import com.axelor.mail.db.repo.MailFollowerRepository; import com.axelor.meta.schema.actions.ActionView; import com.axelor.meta.schema.actions.ActionView.ActionViewBuilder; import com.axelor.rpc.ActionRequest; import com.axelor.rpc.ActionResponse; import com.google.inject.Singleton; + +import wslite.json.JSONException; +import wslite.json.JSONObject; + import java.util.List; import java.util.stream.Collectors; import com.axelor.apps.purchase.service.print.PurchaseRequestPrintService; @@ -41,6 +48,8 @@ import com.axelor.rpc.Context; import com.google.common.base.Function; import java.util.List; import javax.annotation.Nullable; +import javax.json.JsonObject; + import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.axelor.apps.report.engine.ReportSettings; @@ -211,4 +220,17 @@ public class PurchaseRequestController { } } + public void followPurchaseRequest(ActionRequest request, ActionResponse response) throws JSONException{ + Long id = request.getContext().asType(PurchaseRequest.class).getId(); + PurchaseRequest purchaseRequest = Beans.get(PurchaseRequestRepository.class).find(id); + Beans.get(MailFollowerRepository.class).follow(purchaseRequest, AuthUtils.getUser()); + + JSONObject obj = new JSONObject(purchaseRequest.getAttrs()); + JSONObject superiorId = obj.getJSONObject("superior_user"); + + User sup = Beans.get(UserRepository.class).find(superiorId.getLong("id")); + + Beans.get(MailFollowerRepository.class).follow(purchaseRequest, sup); + } + }