Add Auto Event creation to importation folder

This commit is contained in:
2022-09-22 10:03:35 +01:00
parent 8535c5ced1
commit 789bdee1e0
2 changed files with 43 additions and 0 deletions

View File

@@ -31,6 +31,8 @@ import com.axelor.apps.crm.service.CalendarService;
import com.axelor.apps.crm.service.EventService; import com.axelor.apps.crm.service.EventService;
import com.axelor.apps.crm.service.LeadService; import com.axelor.apps.crm.service.LeadService;
import com.axelor.apps.message.db.EmailAddress; 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.DateTool;
import com.axelor.apps.tool.date.DurationTool; import com.axelor.apps.tool.date.DurationTool;
import com.axelor.auth.AuthUtils; import com.axelor.auth.AuthUtils;
@@ -44,21 +46,30 @@ import com.axelor.inject.Beans;
import com.axelor.rpc.ActionRequest; import com.axelor.rpc.ActionRequest;
import com.axelor.rpc.ActionResponse; import com.axelor.rpc.ActionResponse;
import com.google.common.base.Joiner; import com.google.common.base.Joiner;
import com.google.inject.Inject;
import com.google.inject.Singleton; import com.google.inject.Singleton;
import com.google.inject.persist.Transactional; import com.google.inject.persist.Transactional;
import java.lang.invoke.MethodHandles; import java.lang.invoke.MethodHandles;
import java.time.DayOfWeek; import java.time.DayOfWeek;
import java.time.Duration; import java.time.Duration;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import org.apache.commons.math3.ode.events.EventState;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@Singleton @Singleton
public class EventController { public class EventController {
@Inject ImportationFolderRepository importationFolderRepository;
private static final Logger LOG = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass()); private static final Logger LOG = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
public void computeFromStartDateTime(ActionRequest request, ActionResponse response) { public void computeFromStartDateTime(ActionRequest request, ActionResponse response) {
@@ -535,4 +546,24 @@ public class EventController {
TraceBackService.trace(response, e); TraceBackService.trace(response, e);
} }
} }
@Transactional
public void setImportationFolderEvent(ActionRequest request, ActionResponse response) {
Event event = new Event();
final ArrayList<String> 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);
}
} }

View File

@@ -0,0 +1,12 @@
<?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="ImportationFolder" lang="java">
<one-to-many name="events" ref="com.axelor.apps.crm.db.Event" />
</entity>
</domain-models>