From 789bdee1e00eae798c0ccbbb1be7c6e6a4071d70 Mon Sep 17 00:00:00 2001 From: bachir souldi Date: Thu, 22 Sep 2022 10:03:35 +0100 Subject: [PATCH] Add Auto Event creation to importation folder --- .../axelor/apps/crm/web/EventController.java | 31 +++++++++++++++++++ .../resources/domains/ImportationFolder.xml | 12 +++++++ 2 files changed, 43 insertions(+) create mode 100644 modules/axelor-open-suite/axelor-crm/src/main/resources/domains/ImportationFolder.xml diff --git a/modules/axelor-open-suite/axelor-crm/src/main/java/com/axelor/apps/crm/web/EventController.java b/modules/axelor-open-suite/axelor-crm/src/main/java/com/axelor/apps/crm/web/EventController.java index e2d1072..f444bf4 100644 --- a/modules/axelor-open-suite/axelor-crm/src/main/java/com/axelor/apps/crm/web/EventController.java +++ b/modules/axelor-open-suite/axelor-crm/src/main/java/com/axelor/apps/crm/web/EventController.java @@ -31,6 +31,8 @@ import com.axelor.apps.crm.service.CalendarService; import com.axelor.apps.crm.service.EventService; import com.axelor.apps.crm.service.LeadService; import com.axelor.apps.message.db.EmailAddress; +import com.axelor.apps.purchase.db.ImportationFolder; +import com.axelor.apps.purchase.db.repo.ImportationFolderRepository; import com.axelor.apps.tool.date.DateTool; import com.axelor.apps.tool.date.DurationTool; import com.axelor.auth.AuthUtils; @@ -44,21 +46,30 @@ import com.axelor.inject.Beans; import com.axelor.rpc.ActionRequest; import com.axelor.rpc.ActionResponse; import com.google.common.base.Joiner; +import com.google.inject.Inject; import com.google.inject.Singleton; import com.google.inject.persist.Transactional; import java.lang.invoke.MethodHandles; import java.time.DayOfWeek; import java.time.Duration; import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; + +import org.apache.commons.math3.ode.events.EventState; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @Singleton public class EventController { + @Inject ImportationFolderRepository importationFolderRepository; + + private static final Logger LOG = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass()); public void computeFromStartDateTime(ActionRequest request, ActionResponse response) { @@ -535,4 +546,24 @@ public class EventController { TraceBackService.trace(response, e); } } + + @Transactional + public void setImportationFolderEvent(ActionRequest request, ActionResponse response) { + Event event = new Event(); + + final ArrayList importationSequences = new ArrayList(Arrays.asList("PREPARATION","ENTAME","VALIDATION COA/FICHE TECHNIQUE","LOGISTIQUE","TRANSIT","DEDOUANEMENT","RECEPTION")); + + ImportationFolder importationFolder = Beans.get(ImportationFolderRepository.class).find(request.getContext().asType(ImportationFolder.class).getId()); + event.setSubject(importationSequences.get(Integer.parseInt(request.getContext().get("statusSelect").toString()))); + event.setStatusSelect(1); + event.setStartDateTime(LocalDateTime.now()); + event.setEndDateTime(LocalDateTime.now().plusDays(10)); + event.setUser(AuthUtils.getUser()); + Beans.get(EventRepository.class).save(event); + Beans.get(EventRepository.class).flush(); + importationFolder.addEvent(event); + Beans.get(ImportationFolderRepository.class).save(importationFolder); + response.setReload(true); + } + } diff --git a/modules/axelor-open-suite/axelor-crm/src/main/resources/domains/ImportationFolder.xml b/modules/axelor-open-suite/axelor-crm/src/main/resources/domains/ImportationFolder.xml new file mode 100644 index 0000000..a67e53b --- /dev/null +++ b/modules/axelor-open-suite/axelor-crm/src/main/resources/domains/ImportationFolder.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + \ No newline at end of file