From 472237246c0cd241600fa2ab053c0bc609c40a0f Mon Sep 17 00:00:00 2001 From: harish Date: Tue, 5 Nov 2024 18:47:43 +0530 Subject: [PATCH] Added validation in amendment and change email content --- .../dao/ApplicationAmendmentRequestDao.java | 3 +- .../dao/ApplicationEvaluationDao.java | 3 +- .../dao/EmailNotificationDao.java | 10 ++- ...pplicationAmendmentRequestServiceImpl.java | 67 ++++++++++++++++--- .../db/changelog/db.changelog-1.0.0.xml | 4 ++ ...ate_for_notification_mail_05_11_2024_4.sql | 16 +++++ 6 files changed, 87 insertions(+), 16 deletions(-) create mode 100644 src/main/resources/db/dump/update_system_email_template_for_notification_mail_05_11_2024_4.sql diff --git a/src/main/java/net/gepafin/tendermanagement/dao/ApplicationAmendmentRequestDao.java b/src/main/java/net/gepafin/tendermanagement/dao/ApplicationAmendmentRequestDao.java index 03ebcbd6..4af092dc 100644 --- a/src/main/java/net/gepafin/tendermanagement/dao/ApplicationAmendmentRequestDao.java +++ b/src/main/java/net/gepafin/tendermanagement/dao/ApplicationAmendmentRequestDao.java @@ -98,7 +98,7 @@ public class ApplicationAmendmentRequestDao { @Autowired private Validator validator; - public ApplicationAmendmentRequestResponse getApplicationDataForAmendment(HttpServletRequest request, Long applicationEvaluationId) { + public ApplicationAmendmentRequestResponse getApplicationDataForAmendment(Long applicationEvaluationId) { log.info("Fetching the application data for the Amendment process {}", applicationEvaluationId); ApplicationEvaluationEntity applicationEvaluationEntity = applicationEvaluationService.validateApplicationEvaluation(applicationEvaluationId); Long applicationId = applicationEvaluationEntity.getApplicationId(); @@ -341,7 +341,6 @@ public class ApplicationAmendmentRequestDao { } public List getAllApplicationAmendmentRequest(HttpServletRequest request,Long userId) { - UserEntity user = validator.validateUser(request); if(validator.checkIsPreInstructor() && userId == null) { throw new CustomValidationException(Status.BAD_REQUEST, Translator.toLocale(GepafinConstant.USER_ID_NOT_NULL_MSG)); } diff --git a/src/main/java/net/gepafin/tendermanagement/dao/ApplicationEvaluationDao.java b/src/main/java/net/gepafin/tendermanagement/dao/ApplicationEvaluationDao.java index cd1654bb..75e6bcc4 100644 --- a/src/main/java/net/gepafin/tendermanagement/dao/ApplicationEvaluationDao.java +++ b/src/main/java/net/gepafin/tendermanagement/dao/ApplicationEvaluationDao.java @@ -897,12 +897,13 @@ public class ApplicationEvaluationDao { assignedApplicationsRepository.save(assignedApplicationsEntity); ApplicationAmendmentRequestEntity amendmentRequest = applicationAmendmentRequestRepository.findByApplicationEvaluationIdAndIsDeletedFalse(entity.getId()); + if(amendmentRequest!=null){ if (Boolean.TRUE.equals(statusType.equals((ApplicationStatusTypeEnum.APPROVED.getValue())))) { emailNotificationDao.sendAdmissibilityNotificationEmailForApprovedApplication(amendmentRequest); } if (Boolean.TRUE.equals(statusType.equals((ApplicationStatusTypeEnum.REJECTED.getValue())))) { emailNotificationDao.sendInadmissibilityEmailForRejectedApplication(amendmentRequest); - } + }} return convertToResponse(entity); } return null; diff --git a/src/main/java/net/gepafin/tendermanagement/dao/EmailNotificationDao.java b/src/main/java/net/gepafin/tendermanagement/dao/EmailNotificationDao.java index f75e5796..43f3b4e4 100644 --- a/src/main/java/net/gepafin/tendermanagement/dao/EmailNotificationDao.java +++ b/src/main/java/net/gepafin/tendermanagement/dao/EmailNotificationDao.java @@ -77,9 +77,15 @@ public class EmailNotificationDao { UserEntity userEntity = userService.validateUser(applicationEntity.getUserId()); List recipientEmails = new ArrayList<>(); - if (applicationEntity.getCompany().getEmail() != null) { - recipientEmails.add(applicationEntity.getCompany().getEmail()); + String companyEmail = applicationEntity.getCompany().getEmail(); + String contactEmail = applicationEntity.getCompany().getContactEmail(); + if (companyEmail != null && !companyEmail.isEmpty()) { + recipientEmails.add(companyEmail); } + if (contactEmail != null && !contactEmail.isEmpty() && !contactEmail.equals(companyEmail)) { + recipientEmails.add(contactEmail); + } + if (userEntity.getBeneficiary().getEmail() != null) { recipientEmails.add(userEntity.getBeneficiary().getEmail()); } diff --git a/src/main/java/net/gepafin/tendermanagement/service/impl/ApplicationAmendmentRequestServiceImpl.java b/src/main/java/net/gepafin/tendermanagement/service/impl/ApplicationAmendmentRequestServiceImpl.java index 4d212377..fa059d57 100644 --- a/src/main/java/net/gepafin/tendermanagement/service/impl/ApplicationAmendmentRequestServiceImpl.java +++ b/src/main/java/net/gepafin/tendermanagement/service/impl/ApplicationAmendmentRequestServiceImpl.java @@ -39,60 +39,105 @@ public class ApplicationAmendmentRequestServiceImpl implements ApplicationAmendm @Override public ApplicationAmendmentRequestResponse getApplicationDataForAmendment(HttpServletRequest request, Long applicationEvaluationId) { - UserEntity user= validator.validateUser(request); - return applicationAmendmentRequestDao.getApplicationDataForAmendment(request,applicationEvaluationId); + Optional entityOptional = applicationEvaluationRepository.findByIdAndIsDeletedFalse(applicationEvaluationId); + entityOptional.ifPresent(applicationEvaluationEntity -> validator.validatePreInstructor(request, applicationEvaluationEntity.getUserId())); + return applicationAmendmentRequestDao.getApplicationDataForAmendment(applicationEvaluationId); } @Override public ApplicationAmendmentRequestResponse createApplicationAmendmentRequest(HttpServletRequest request, Long applicationEvaluationId , ApplicationAmendmentRequest applicationAmendmentRequest) { - UserEntity user= validator.validateUser(request); + Optional entityOptional = applicationEvaluationRepository.findByIdAndIsDeletedFalse(applicationEvaluationId); + entityOptional.ifPresent(applicationEvaluationEntity -> validator.validatePreInstructor(request, applicationEvaluationEntity.getUserId())); return applicationAmendmentRequestDao.createApplicationAmendmentRequest(applicationEvaluationId,applicationAmendmentRequest); } @Override public void deleteApplicationAmendmentRequest(HttpServletRequest request, Long id) { - applicationAmendmentRequestDao.deleteById(id); + ApplicationAmendmentRequestEntity amendment = applicationAmendmentRequestRepository.findByIdAndIsDeletedFalse(id) + .orElseThrow(() -> new ResourceNotFoundException(Status.NOT_FOUND, + Translator.toLocale(GepafinConstant.APPLICATION_AMENDMENT_NOT_FOUND_MSG))); + + Optional entityOptional = applicationEvaluationRepository.findByIdAndIsDeletedFalse(amendment.getApplicationEvaluationEntity().getId()); + if (entityOptional.isPresent()) { + UserEntity user = validator.validatePreInstructor(request, entityOptional.get().getUserId()); + + applicationAmendmentRequestDao.deleteById(id); + } } @Override public ApplicationAmendmentRequestResponse getApplicationAmendmentRequestById(HttpServletRequest request,Long id) { - return applicationAmendmentRequestDao.getApplicationAmendmentRequestById(id); + ApplicationAmendmentRequestEntity amendment = applicationAmendmentRequestRepository.findByIdAndIsDeletedFalse(id) + .orElseThrow(() -> new ResourceNotFoundException(Status.NOT_FOUND, + Translator.toLocale(GepafinConstant.APPLICATION_AMENDMENT_NOT_FOUND_MSG))); + + Optional entityOptional = applicationEvaluationRepository.findByIdAndIsDeletedFalse(amendment.getApplicationEvaluationEntity().getId()); + if (entityOptional.isPresent()) { + UserEntity user = validator.validatePreInstructor(request, entityOptional.get().getUserId()); + } + return applicationAmendmentRequestDao.getApplicationAmendmentRequestById(id); + } @Override public List getAllApplicationAmendmentRequest(HttpServletRequest request,Long userId) { + UserEntity user = validator.validatePreInstructor(request, userId); return applicationAmendmentRequestDao.getAllApplicationAmendmentRequest(request,userId); } @Override public ApplicationAmendmentRequestResponse updateApplicationAmendment(HttpServletRequest request, Long id, ApplicationAmendmentRequestBean applicationAmendmentRequestBean) { - UserEntity updatedByUser= validator.validateUser(request); - return applicationAmendmentRequestDao.updateApplicationAmendment(id,applicationAmendmentRequestBean); + ApplicationAmendmentRequestEntity amendment = applicationAmendmentRequestRepository.findByIdAndIsDeletedFalse(id) + .orElseThrow(() -> new ResourceNotFoundException(Status.NOT_FOUND, + Translator.toLocale(GepafinConstant.APPLICATION_AMENDMENT_NOT_FOUND_MSG))); + + Optional entityOptional = applicationEvaluationRepository.findByIdAndIsDeletedFalse(amendment.getApplicationEvaluationEntity().getId()); + if (entityOptional.isPresent()) { + UserEntity user = validator.validatePreInstructor(request, entityOptional.get().getUserId()); + } + return applicationAmendmentRequestDao.updateApplicationAmendment(id,applicationAmendmentRequestBean); } @Override public ApplicationAmendmentRequestEntity validateApplicationAmendmentRequest(Long applicationAmendmentId) { + return applicationAmendmentRequestDao.validateApplicationAmendmentRequest(applicationAmendmentId); } @Override public List getAllAmendmentRequestByBeneficiaryId(HttpServletRequest request, Long beneficiaryId) { + UserEntity user= validator.validateUser(request); return applicationAmendmentRequestDao.getAllAmendmentRequestByBeneficiaryId(beneficiaryId); } @Override public ApplicationAmendmentRequestResponse closeAmendmentRequest(HttpServletRequest request, Long id, CloseAmendmentRequest closeAmendmentRequest) { - return applicationAmendmentRequestDao.closeAmendmentRequest(id,closeAmendmentRequest); + ApplicationAmendmentRequestEntity amendment = applicationAmendmentRequestRepository.findByIdAndIsDeletedFalse(id) + .orElseThrow(() -> new ResourceNotFoundException(Status.NOT_FOUND, + Translator.toLocale(GepafinConstant.APPLICATION_AMENDMENT_NOT_FOUND_MSG))); + + Optional entityOptional = applicationEvaluationRepository.findByIdAndIsDeletedFalse(amendment.getApplicationEvaluationEntity().getId()); + if (entityOptional.isPresent()) { + UserEntity user = validator.validatePreInstructor(request, entityOptional.get().getUserId()); + } + return applicationAmendmentRequestDao.closeAmendmentRequest(id,closeAmendmentRequest); } @Override public ApplicationAmendmentRequestResponse extendResponseDays(HttpServletRequest request, Long id, Long addedDays) { - return applicationAmendmentRequestDao.extendResponseDays(id, addedDays); + UserEntity user= validator.validateUser(request); + return applicationAmendmentRequestDao.extendResponseDays(id, addedDays); } public ApplicationAmendmentRequestResponse getAmendmentByApplicationId(HttpServletRequest request, Long applicationId) { - UserEntity user= validator.validateUser(request); - return applicationAmendmentRequestDao.getAmendmentByApplicationId(request,applicationId); + ApplicationAmendmentRequestEntity amendment = applicationAmendmentRequestRepository.findByApplicationIdAndIsDeletedFalse(applicationId); + if(amendment!=null) { + + Optional entityOptional = applicationEvaluationRepository.findByIdAndIsDeletedFalse(amendment.getApplicationEvaluationEntity().getId()); + if (entityOptional.isPresent()) { + UserEntity user = validator.validatePreInstructor(request, entityOptional.get().getUserId()); + }} + return applicationAmendmentRequestDao.getAmendmentByApplicationId(request,applicationId); } @Override public ApplicationAmendmentRequestResponse updateApplicationStatus(HttpServletRequest request, Long applicationId, ApplicationAmendmentRequestEnum status) { 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 37b87d81..9aa2ec42 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 @@ -1716,4 +1716,8 @@ + + + diff --git a/src/main/resources/db/dump/update_system_email_template_for_notification_mail_05_11_2024_4.sql b/src/main/resources/db/dump/update_system_email_template_for_notification_mail_05_11_2024_4.sql new file mode 100644 index 00000000..1b43db33 --- /dev/null +++ b/src/main/resources/db/dump/update_system_email_template_for_notification_mail_05_11_2024_4.sql @@ -0,0 +1,16 @@ +UPDATE gepafin_schema.system_email_template +SET + subject = 'BANDO {{call_name}}- Domanda di concessione di finanziamento agevolato {{company_name}}', + html_content = ' + +
+

In riferimento alla domanda di concessione di Finanziamento agevolato a valere sul Fondo prestiti + {{call_name}} di cui all’oggetto, la stessa è stata regolarmente acquisita ed è stata + registrata con Protocollo n. {{protocol_number}} del {{protocol_date}} + alle {{protocol_time}}.

+

Distinti Saluti,

+

{{email_signature}}

+
+ + ' +WHERE "type" = 'DOCUMENTATION_INTEGRATION_REQUEST' AND "system" = true;