Skip to content

Commit

Permalink
Merge branch '1367-modificare-la-dicitura-richiesta-in-comunicazione-…
Browse files Browse the repository at this point in the history
…nel-flusso-per-ferie-e-riposi-compensativi' into 'master'

Resolve "Modificare la dicitura "richiesta" in "comunicazione" nel flusso per ferie e riposi compensativi per ricercatori e tecnologi"

Closes #1367

See merge request epas/epas!1604
  • Loading branch information
Dario Tagliaferri committed Sep 20, 2022
2 parents 3f52ae6 + 9fa2828 commit 69a2a7d
Show file tree
Hide file tree
Showing 20 changed files with 417 additions and 91 deletions.
10 changes: 10 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,23 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [2.6.0] - UNRELEASED
### Added
- Completata la gestione delle comunicazioni ferie/riposi compensativi per i livelli I-III
nel caso il parametro generale sia configurato per non permettere approvazioni per i
livelli I-III

## [2.5.5] - 2022-09-19
### Changed
- Corretta la rimozione dai gruppi, servizi di reperibità e turno delle persone
con contratto scaduto.

## [2.5.4] - 2022-09-16
### Added
- Aggiunta la possibilità di disabilitare la configurabilità delle approvazioni delle ferie
e riposi compensati dei livelli I-III. Con l'apposita configurazione generale abilitata
i livelli I-III hanno dei flussi solo per comunicare le asssenze, senza autorizzazioni e
con le etichette dei flussi modificati da "richiesta" a "comunicazione"
- Aggiunta la possibilità di disattivare e cancellare gli orari di lavoro predefiniti
non utilizzati.
- Aggiunta la possibilità di rinominare gli orari di lavoro predefiniti.
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2.5.5
2.6.0-rc1
15 changes: 14 additions & 1 deletion app/controllers/AbsenceRequests.java
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
import com.google.common.collect.Lists;
import common.security.SecurityRules;
import dao.AbsenceRequestDao;
import dao.GeneralSettingDao;
import dao.GroupDao;
import dao.PersonDao;
import dao.PersonReperibilityDayDao;
Expand Down Expand Up @@ -131,6 +132,8 @@ public class AbsenceRequests extends Controller {
@Inject
static PersonReperibilityDayDao personReperibilityDayDao;

@Inject
static GeneralSettingDao generalSettingDao;

/**
* Lista delle richiesta di assenza di tipo ferie.
Expand Down Expand Up @@ -550,7 +553,17 @@ public static void save(@Required @Valid AbsenceRequest absenceRequest,
if (isNewRequest || !absenceRequest.flowStarted) {
absenceRequestManager.executeEvent(absenceRequest, absenceRequest.person,
AbsenceRequestEventType.STARTING_APPROVAL_FLOW, Optional.absent());
if (absenceRequest.person.isSeatSupervisor() || (absenceRequest.person.isGroupManager()

//Nel caso si tratti di una "comunicazione" di assenza da parte di
//un livelli I-III e non sia necessaria nessuna autorizzazione, allora
//si invia solo una notifica al responsabile sede e/o responsabile gruppo
//(dipendente dalla configurazione)
if (!generalSettingDao.generalSetting().enableAbsenceTopLevelAuthorization &&
absenceRequest.person.isTopQualification() &&
absenceRequest.type.canBeInsertedByTopLevelWithoutApproval) {
absenceRequestManager.topLevelSelfApproval(absenceRequest, Security.getUser().get().person);
notificationManager.sendEmailAbsenceNotification(absenceRequest);
} else if (absenceRequest.person.isSeatSupervisor() || (absenceRequest.person.isGroupManager()
&& !absenceRequest.officeHeadApprovalForManagerRequired)) {
approval(absenceRequest.id);
} else {
Expand Down
20 changes: 18 additions & 2 deletions app/controllers/Configurations.java
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
import com.google.common.base.Preconditions;
import com.google.common.base.Verify;
import common.security.SecurityRules;
import dao.GeneralSettingDao;
import dao.OfficeDao;
import dao.PersonDao;
import java.io.File;
Expand Down Expand Up @@ -75,7 +76,8 @@ public class Configurations extends Controller {
static PeriodManager periodManager;
@Inject
static SecurityRules rules;

@Inject
static GeneralSettingDao generalSettingDao;

private static IPropertyInPeriod compute(IPropertyInPeriod configuration, EpasParam epasParam,
ConfigurationDto configurationDto) {
Expand Down Expand Up @@ -256,10 +258,24 @@ public static void show(Long officeId, EpasParamCategory paramCategory) {
.filter(conf -> conf.epasParam.category == EpasParam.EpasParamCategory.AUTOCERTIFICATION)
.collect(Collectors.toList());

final List<Configuration> flows = configurations.stream()
List<Configuration> flows = configurations.stream()
.filter(conf -> conf.epasParam.category == EpasParam.EpasParamCategory.FLOWS)
.collect(Collectors.toList());

if (!generalSettingDao.generalSetting().enableAbsenceTopLevelAuthorization) {
flows = flows.stream().filter(conf ->
!conf.epasParam.equals(EpasParam.COMPENSATORY_REST_REQUEST_I_III_MANAGER_APPROVAL_REQUIRED) &&
!conf.epasParam.equals(EpasParam.COMPENSATORY_REST_REQUEST_I_III_OFFICE_HEAD_APPROVAL_REQUIRED) &&
!conf.epasParam.equals(EpasParam.VACATION_REQUEST_I_III_MANAGER_APPROVAL_REQUIRED) &&
!conf.epasParam.equals(EpasParam.VACATION_REQUEST_I_III_OFFICE_HEAD_APPROVAL_REQUIRED))
.collect(Collectors.toList());
} else {
flows = flows.stream().filter(conf ->
!conf.epasParam.equals(EpasParam.ABSENCE_TOP_LEVEL_GROUP_MANAGER_NOTIFICATION) &&
!conf.epasParam.equals(EpasParam.ABSENCE_TOP_LEVEL_OFFICE_HEAD_NOTIFICATION) &&
!conf.epasParam.equals(EpasParam.ABSENCE_TOP_LEVEL_OF_GROUP_MANAGER_OFFICE_HEAD_NOTIFICATION))
.collect(Collectors.toList());
}
final List<Configuration> competenceFlows = configurations.stream()
.filter(conf -> conf.epasParam.category == EpasParam.EpasParamCategory.COMPETENCE_FLOWS)
.collect(Collectors.toList());
Expand Down
8 changes: 8 additions & 0 deletions app/helpers/TemplateUtility.java
Original file line number Diff line number Diff line change
Expand Up @@ -909,4 +909,12 @@ public String getCompanyUrl() {
return CompanyConfig.url();
}


/**
* Indica se è permessa la configurabilità delle richieste di assenza
* per i livelli I-III.
*/
public boolean absenceRequestAuthorizationTopLevelEnabled () {
return generalSettingDao.generalSetting().enableAbsenceTopLevelAuthorization;
}
}
Loading

0 comments on commit 69a2a7d

Please sign in to comment.