diff --git a/src/main/java/net/gepafin/tendermanagement/dao/ApplicationDao.java b/src/main/java/net/gepafin/tendermanagement/dao/ApplicationDao.java index 126277d0..0537d703 100644 --- a/src/main/java/net/gepafin/tendermanagement/dao/ApplicationDao.java +++ b/src/main/java/net/gepafin/tendermanagement/dao/ApplicationDao.java @@ -20,6 +20,7 @@ import net.gepafin.tendermanagement.service.CompanyService; import net.gepafin.tendermanagement.service.DocumentService; import net.gepafin.tendermanagement.service.FormService; import net.gepafin.tendermanagement.service.SystemEmailTemplatesService; +import net.gepafin.tendermanagement.service.UserService; import net.gepafin.tendermanagement.util.DateTimeUtil; import net.gepafin.tendermanagement.util.FieldValidator; import net.gepafin.tendermanagement.util.MailUtil; @@ -122,6 +123,9 @@ public class ApplicationDao { @Value("${default.hub.uuid}") private String defaultHubUuid; + + @Autowired + private UserService userService; public ApplicationResponseBean createApplication(HttpServletRequest request, ApplicationRequestBean applicationRequestBean, Long formId, Long applicationId) { @@ -581,8 +585,8 @@ public class ApplicationDao { } public ApplicationResponse updateApplicationStatus(HttpServletRequest request, Long applicationId, ApplicationStatusTypeEnum status) { - UserEntity userEntity = validator.validateUser(request); ApplicationEntity applicationEntity = validateApplication(applicationId); + UserEntity userEntity = userService.validateUser(applicationEntity.getUserId()); validator.validateUserWithCompany(request, applicationEntity.getCompany().getId()); if (ApplicationStatusTypeEnum.SUBMIT.getValue().equals(applicationEntity.getStatus())) { throw new CustomValidationException(Status.BAD_REQUEST, Translator.toLocale(GepafinConstant.APPLICATION_SUBMITTED_CANNOT_CHANGE)); @@ -611,16 +615,18 @@ public class ApplicationDao { throw new CustomValidationException(Status.BAD_REQUEST, Translator.toLocale(GepafinConstant.APPLICATION_IS_INCOMPLETE_MSG)); } Long protocolNumber = getProtocolNumber(userEntity.getHub()); - ProtocolEntity protocolEntity=createProtocolEntity(applicationEntity,protocolNumber); + ProtocolEntity protocolEntity = createProtocolEntity(applicationEntity,protocolNumber, userEntity.getHub().getId()); applicationEntity.setProtocol(protocolEntity); applicationEntity.setStatus(ApplicationStatusTypeEnum.SUBMIT.getValue()); applicationEntity.setSubmissionDate(DateTimeUtil.DateServerToUTC(LocalDateTime.now())); + applicationEntity = saveApplicationEntity(applicationEntity); sendMailToUserAndCompany(userEntity, applicationEntity); sendMailTodefaultSystemAndGepafin(userEntity, applicationEntity); } else { applicationEntity.setStatus(status.getValue()); + applicationEntity = saveApplicationEntity(applicationEntity); } - applicationEntity = saveApplicationEntity(applicationEntity); + return getApplicationResponse(applicationEntity); } @@ -706,7 +712,7 @@ public class ApplicationDao { } } - public ProtocolEntity createProtocolEntity(ApplicationEntity applicationEntity,Long protocolNumber){ + public ProtocolEntity createProtocolEntity(ApplicationEntity applicationEntity,Long protocolNumber, Long hubId){ ProtocolEntity protocolEntity=new ProtocolEntity(); protocolEntity.setCall(applicationEntity.getCall().getId()); LocalDateTime utcDateTime = DateTimeUtil.DateServerToUTC(LocalDateTime.now()); @@ -714,6 +720,7 @@ public class ApplicationDao { protocolEntity.setProtocolNumber(protocolNumber); protocolEntity.setTime(LocalTime.now()); protocolEntity.setApplicationId(applicationEntity.getId()); + protocolEntity.setHubId(hubId); protocolRepository.save(protocolEntity); return protocolEntity; } @@ -778,7 +785,9 @@ public class ApplicationDao { mailUtil.sendByMailGun(subject, body, List.of(defaultSystemReceiverEmail), null); mailUtil.sendByMailGun(subject, body, List.of(gepafinEmail), null); mailUtil.sendByMailGun(subject, body, List.of(rinaldoEmail), null); - mailUtil.sendByMailGun(subject, body, List.of(carloEmail), null); + if(validator.isProductionProfileActivated()) { + mailUtil.sendByMailGun(subject, body, List.of(carloEmail), null); + } } public ApplicationSignedDocumentResponse uploadSignedDocument(HttpServletRequest request, Long applicationId, diff --git a/src/main/java/net/gepafin/tendermanagement/util/Validator.java b/src/main/java/net/gepafin/tendermanagement/util/Validator.java index b4c36227..01ee7943 100644 --- a/src/main/java/net/gepafin/tendermanagement/util/Validator.java +++ b/src/main/java/net/gepafin/tendermanagement/util/Validator.java @@ -17,11 +17,13 @@ import net.gepafin.tendermanagement.web.rest.api.errors.Status; import net.gepafin.tendermanagement.web.rest.api.errors.UnauthorizedAccessException; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.env.Environment; import org.springframework.security.core.Authentication; import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.stereotype.Component; +import java.util.Arrays; import java.util.Map; @Component @@ -38,6 +40,9 @@ public class Validator { @Autowired private CallService callService; + + @Autowired + private Environment environment; public Map getUserInfoFromToken(HttpServletRequest request) { return tokenProvider.getUserInfoAndUserIdFromToken(request); @@ -114,6 +119,9 @@ public class Validator { return callEntity; } - + public Boolean isProductionProfileActivated() { + String[] activeProfiles = environment.getActiveProfiles(); + return Arrays.stream(activeProfiles).anyMatch("production"::equals); + } } diff --git a/src/main/resources/application-dev.properties b/src/main/resources/application-dev.properties index 5b6ca7a9..f7ccb81a 100644 --- a/src/main/resources/application-dev.properties +++ b/src/main/resources/application-dev.properties @@ -9,3 +9,6 @@ spring.h2.console.enabled=true isVatCheckGloballyDisabled = false isMailSendingEnabled = true +default_System_Receiver_Email=antonio.manca@bflows.net +gepafin_email=rinaldo.bonazzo@bflows.net +rinaldo_email=rinaldo.bonazzo@bflows.net \ No newline at end of file diff --git a/src/main/resources/application-production.properties b/src/main/resources/application-production.properties index 91fb1979..725d9c8a 100644 --- a/src/main/resources/application-production.properties +++ b/src/main/resources/application-production.properties @@ -15,3 +15,7 @@ fe.base.url=https://bandi.gepafin.it spid.ipd.base.url=https://login.regione.umbria.it active.profile.folder=production isMailSendingEnabled = true +default_System_Receiver_Email=antonio.manca@bflows.net +gepafin_email=bandi@pec.gepafin.it +rinaldo_email=rinaldo.bonazzo@bflows.net +carlo_email=carlo.mancosu@bflows.net diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 411dcd33..75ab20cf 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -61,8 +61,8 @@ apiKey=xkeysib-d15439fedd7ff36d86676ac248153fc2c496ed9b879ca9dc8cee9a27fa309087- #senderEmail=mailer@bflows.net isMailSendingEnabled = false default_System_Receiver_Email=antonio.manca@bflows.net -gepafin_email=bandi@pec.gepafin.it +gepafin_email=rinaldo.bonazzo@bflows.net rinaldo_email=rinaldo.bonazzo@bflows.net -carlo_email=carlo.mancosu@bflows.net +carlo_email=rinaldo.bonazzo@bflows.net default.hub.uuid=p4lk3bcx1RStqTaIVVbXs diff --git a/src/main/resources/db/changelog/db.changelog-1.0.0.xml b/src/main/resources/db/changelog/db.changelog-1.0.0.xml index 54ed8f4f..ae704451 100644 --- a/src/main/resources/db/changelog/db.changelog-1.0.0.xml +++ b/src/main/resources/db/changelog/db.changelog-1.0.0.xml @@ -1286,4 +1286,14 @@ + + + + + +