add autofollow for purchase request's user and his superior

This commit is contained in:
2022-08-31 09:30:40 +01:00
parent 8f7c1fe9c3
commit 853d481e2c

View File

@@ -23,16 +23,23 @@ import com.axelor.apps.purchase.db.repo.PurchaseRequestRepository;
import com.axelor.apps.purchase.exception.IExceptionMessage; import com.axelor.apps.purchase.exception.IExceptionMessage;
import com.axelor.apps.purchase.service.PurchaseRequestService; import com.axelor.apps.purchase.service.PurchaseRequestService;
import com.axelor.apps.tool.StringTool; import com.axelor.apps.tool.StringTool;
import com.axelor.auth.AuthUtils;
import com.axelor.auth.db.User; import com.axelor.auth.db.User;
import com.axelor.auth.db.repo.UserRepository;
import com.axelor.exception.AxelorException; import com.axelor.exception.AxelorException;
import com.axelor.exception.db.repo.TraceBackRepository; import com.axelor.exception.db.repo.TraceBackRepository;
import com.axelor.i18n.I18n; import com.axelor.i18n.I18n;
import com.axelor.inject.Beans; 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;
import com.axelor.meta.schema.actions.ActionView.ActionViewBuilder; import com.axelor.meta.schema.actions.ActionView.ActionViewBuilder;
import com.axelor.rpc.ActionRequest; import com.axelor.rpc.ActionRequest;
import com.axelor.rpc.ActionResponse; import com.axelor.rpc.ActionResponse;
import com.google.inject.Singleton; import com.google.inject.Singleton;
import wslite.json.JSONException;
import wslite.json.JSONObject;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import com.axelor.apps.purchase.service.print.PurchaseRequestPrintService; import com.axelor.apps.purchase.service.print.PurchaseRequestPrintService;
@@ -41,6 +48,8 @@ import com.axelor.rpc.Context;
import com.google.common.base.Function; import com.google.common.base.Function;
import java.util.List; import java.util.List;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import javax.json.JsonObject;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import com.axelor.apps.report.engine.ReportSettings; 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);
}
} }