Search in sources :

Example 11 with Event

use of com.axelor.apps.crm.db.Event in project axelor-open-suite by axelor.

the class TrainingRegisterServiceImpl method plan.

@Transactional
@Override
public Event plan(TrainingRegister trainingRegister) {
    trainingRegister.setStatusSelect(1);
    trainingRegisterRepo.save(trainingRegister);
    Event event = generateMeeting(trainingRegister);
    return eventRepo.save(event);
}
Also used : Event(com.axelor.apps.crm.db.Event) Transactional(com.google.inject.persist.Transactional)

Example 12 with Event

use of com.axelor.apps.crm.db.Event in project axelor-open-suite by axelor.

the class TrainingRegisterServiceImpl method updateEventCalendar.

@Transactional
@Override
public void updateEventCalendar(TrainingRegister trainingRegister) {
    Event event = eventRepo.all().filter("self.relatedToSelect = ?1 AND self.relatedToSelectId = ?2", RELATED_TO_TRAINING_REGISTER, trainingRegister.getId()).fetchOne();
    if (event != null) {
        event.setCalendar(trainingRegister.getCalendar());
        eventRepo.save(event);
    }
}
Also used : Event(com.axelor.apps.crm.db.Event) Transactional(com.google.inject.persist.Transactional)

Example 13 with Event

use of com.axelor.apps.crm.db.Event in project axelor-open-suite by axelor.

the class TrainingRegisterServiceImpl method generateMeeting.

protected Event generateMeeting(TrainingRegister trainingRegister) {
    Event event = new Event();
    event.setTypeSelect(EventRepository.TYPE_MEETING);
    event.setStartDateTime(trainingRegister.getFromDate());
    event.setEndDateTime(trainingRegister.getToDate());
    event.setSubject(trainingRegister.getTraining().getName());
    event.setUser(trainingRegister.getEmployee().getUser());
    event.setCalendar(trainingRegister.getCalendar());
    event.setRelatedToSelect(RELATED_TO_TRAINING_REGISTER);
    event.setRelatedToSelectId(trainingRegister.getId());
    if (trainingRegister.getTrainingSession() != null) {
        event.setLocation(trainingRegister.getTrainingSession().getLocation());
    }
    return event;
}
Also used : Event(com.axelor.apps.crm.db.Event)

Example 14 with Event

use of com.axelor.apps.crm.db.Event in project axelor-open-suite by axelor.

the class TrainingRegisterServiceImpl method massTrainingRegisterCreation.

@Override
@Transactional
public String massTrainingRegisterCreation(ArrayList<LinkedHashMap<String, Object>> employeeList, TrainingSession trainingSession) {
    List<Long> eventsIds = new ArrayList<>();
    for (LinkedHashMap<String, Object> employeeMap : employeeList) {
        Employee employee = Beans.get(EmployeeRepository.class).find(Long.parseLong(employeeMap.get("id").toString()));
        if (employee.getUser() == null) {
            continue;
        }
        TrainingRegister trainingRegister = new TrainingRegister();
        trainingRegister.setTraining(trainingSession.getTraining());
        trainingRegister.setFromDate(trainingSession.getFromDate());
        trainingRegister.setToDate(trainingSession.getToDate());
        trainingRegister.setTrainingSession(trainingSession);
        trainingRegister.setEmployee(employee);
        trainingRegister.setRating(trainingSession.getOverallRatingToApply());
        Event event = this.plan(trainingRegister);
        trainingRegister.getEventList().add(event);
        eventsIds.add(event.getId());
        trainingSession.getTrainingRegisterList().add(trainingRegister);
    }
    Beans.get(TrainingSessionRepository.class).save(trainingSession);
    return eventsIds.toString().replace("[", "(").replace("]", ")");
}
Also used : EmployeeRepository(com.axelor.apps.hr.db.repo.EmployeeRepository) Employee(com.axelor.apps.hr.db.Employee) TrainingSessionRepository(com.axelor.apps.talent.db.repo.TrainingSessionRepository) TrainingRegister(com.axelor.apps.talent.db.TrainingRegister) ArrayList(java.util.ArrayList) Event(com.axelor.apps.crm.db.Event) Transactional(com.google.inject.persist.Transactional)

Example 15 with Event

use of com.axelor.apps.crm.db.Event in project axelor-open-suite by axelor.

the class TrainingSessionServiceImpl method updateTraingRegisterTraining.

@Override
@Transactional
public TrainingSession updateTraingRegisterTraining(TrainingSession trainingSession) {
    Training training = trainingSession.getTraining();
    for (TrainingRegister register : trainingSession.getTrainingRegisterList()) {
        register.setTraining(training);
        for (Event event : register.getEventList()) {
            event.setSubject(training.getName());
            Beans.get(EventRepository.class).save(event);
        }
    }
    return trainingSession;
}
Also used : Training(com.axelor.apps.talent.db.Training) TrainingRegister(com.axelor.apps.talent.db.TrainingRegister) Event(com.axelor.apps.crm.db.Event) EventRepository(com.axelor.apps.crm.db.repo.EventRepository) Transactional(com.google.inject.persist.Transactional)

Aggregations

Event (com.axelor.apps.crm.db.Event)36 Transactional (com.google.inject.persist.Transactional)21 EventRepository (com.axelor.apps.crm.db.repo.EventRepository)11 EventService (com.axelor.apps.crm.service.EventService)7 ICalendarEventService (com.axelor.base.service.ical.ICalendarEventService)7 TrainingRegister (com.axelor.apps.talent.db.TrainingRegister)6 Duration (java.time.Duration)6 AxelorException (com.axelor.exception.AxelorException)5 LocalDateTime (java.time.LocalDateTime)4 RecurrenceConfiguration (com.axelor.apps.crm.db.RecurrenceConfiguration)3 RecurrenceConfigurationRepository (com.axelor.apps.crm.db.repo.RecurrenceConfigurationRepository)3 HashMap (java.util.HashMap)3 TooManyIterationsException (org.apache.commons.math3.exception.TooManyIterationsException)3 Partner (com.axelor.apps.base.db.Partner)2 Lead (com.axelor.apps.crm.db.Lead)2 Training (com.axelor.apps.talent.db.Training)2 TrainingSession (com.axelor.apps.talent.db.TrainingSession)2 TrainingSessionRepository (com.axelor.apps.talent.db.repo.TrainingSessionRepository)2 User (com.axelor.auth.db.User)2 DayOfWeek (java.time.DayOfWeek)2