From ae3b3a309bebd725179bb0d40d381822bbfffe67 Mon Sep 17 00:00:00 2001 From: harish Date: Tue, 12 Nov 2024 20:13:35 +0530 Subject: [PATCH 1/8] Fixed email issue --- .../tendermanagement/service/impl/MailgunEmailService.java | 2 +- .../gepafin/tendermanagement/service/impl/PecEmailService.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/net/gepafin/tendermanagement/service/impl/MailgunEmailService.java b/src/main/java/net/gepafin/tendermanagement/service/impl/MailgunEmailService.java index 03d1344c..dad2d2ca 100644 --- a/src/main/java/net/gepafin/tendermanagement/service/impl/MailgunEmailService.java +++ b/src/main/java/net/gepafin/tendermanagement/service/impl/MailgunEmailService.java @@ -38,7 +38,7 @@ public class MailgunEmailService implements EmailService { // Send email via Mailgun API if (Boolean.FALSE.equals(validator.isTestProfileActivated())) { - ResponseEntity response = mailgunFeignClient.sendEmail(domain, from, List.of("rajeshkhoreupwork@gmail.com"), subject, body, authHeader); + ResponseEntity response = mailgunFeignClient.sendEmail(domain, from, recipientEmails, subject, body, authHeader); if (!response.getStatusCode().is2xxSuccessful()) { throw new RuntimeException("Failed to send email via Mailgun: " + response.getStatusCode()); } diff --git a/src/main/java/net/gepafin/tendermanagement/service/impl/PecEmailService.java b/src/main/java/net/gepafin/tendermanagement/service/impl/PecEmailService.java index 38f94613..e7e1f0ea 100644 --- a/src/main/java/net/gepafin/tendermanagement/service/impl/PecEmailService.java +++ b/src/main/java/net/gepafin/tendermanagement/service/impl/PecEmailService.java @@ -38,7 +38,7 @@ public class PecEmailService implements EmailService { PecEmailRequest emailRequest = new PecEmailRequest(); emailRequest.setSender(emailConfig.getSender()); - emailRequest.setRecipient(List.of("rajeshkhoreupwork@gmail.com")); + emailRequest.setRecipient(recipientEmails); emailRequest.setSubject(subject); emailRequest.setBody(body); emailRequest.setUsername(emailConfig.getUsername()); From 49e157dd6e7845248e502f9f0282f7b486f2e923 Mon Sep 17 00:00:00 2001 From: harish Date: Wed, 13 Nov 2024 23:56:52 +0530 Subject: [PATCH 2/8] Send mail to gepafin or sviluppumbria based on hub email --- .../tendermanagement/dao/ApplicationDao.java | 5 +- .../tendermanagement/util/MailUtil.java | 78 ------------------- src/main/resources/application.properties | 9 +-- 3 files changed, 4 insertions(+), 88 deletions(-) delete mode 100644 src/main/java/net/gepafin/tendermanagement/util/MailUtil.java diff --git a/src/main/java/net/gepafin/tendermanagement/dao/ApplicationDao.java b/src/main/java/net/gepafin/tendermanagement/dao/ApplicationDao.java index 716c1d11..b0aabe3a 100644 --- a/src/main/java/net/gepafin/tendermanagement/dao/ApplicationDao.java +++ b/src/main/java/net/gepafin/tendermanagement/dao/ApplicationDao.java @@ -97,9 +97,6 @@ public class ApplicationDao { @Value("${default_System_Receiver_Email}") private String defaultSystemReceiverEmail; - @Value("${gepafin_email}") - private String gepafinEmail; - @Value("${rinaldo_email}") private String rinaldoEmail; @@ -845,7 +842,7 @@ public class ApplicationDao { // mailUtil.sendByMailGun(subject, body, List.of(carloEmail), null); emailNotificationDao.sendMail(hub.getId(), subject, body, List.of(carloEmail)); } - emailNotificationDao.sendMail(hub.getId(), subject, body, List.of(gepafinEmail)); + emailNotificationDao.sendMail(hub.getId(), subject, body, List.of(hub.getEmail())); emailNotificationDao.sendMail(hub.getId(), subject, body, List.of(defaultSystemReceiverEmail)); emailNotificationDao.sendMail(hub.getId(), subject, body, List.of(rinaldoEmail)); diff --git a/src/main/java/net/gepafin/tendermanagement/util/MailUtil.java b/src/main/java/net/gepafin/tendermanagement/util/MailUtil.java deleted file mode 100644 index 8b41ea3f..00000000 --- a/src/main/java/net/gepafin/tendermanagement/util/MailUtil.java +++ /dev/null @@ -1,78 +0,0 @@ -package net.gepafin.tendermanagement.util; - -import java.util.Arrays; -import java.util.List; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.core.env.Environment; -import org.springframework.stereotype.Component; -import org.springframework.util.CollectionUtils; - -import com.mailgun.api.v3.MailgunMessagesApi; -import com.mailgun.client.MailgunClient; - -@Component -public class MailUtil { - - @Value("${apiKey}") - private String apiKeyValue; - - @Value("${mailGun_user}") - private String mailGunUser; - - @Value("${mailGun_apiKey}") - private String mailGunApiKey; - - @Value("${mailGun_domainName}") - private String mailGunDomainName; - - @Value("${mailGun_base_url}") - private String mailGunBaseUrl; - - @Value("${isMailSendingEnabled}") - private String isEmailSendingEnabled; - - @Autowired - private Environment environment; - - public Boolean isTestProfileActivated() { - String[] activeProfiles = environment.getActiveProfiles(); - return Arrays.stream(activeProfiles).anyMatch("test"::equals); - } - - public void sendMailByMailGunAPI(List recipents, List CC, List BCC, String subject, - String body, String replyTo) { - if (Boolean.FALSE.equals(Boolean.parseBoolean(isEmailSendingEnabled))) { - return; - } - - MailgunMessagesApi mailgunMessagesApi = MailgunClient.config(mailGunBaseUrl, mailGunApiKey) - .createApi(MailgunMessagesApi.class); - - String mailFrom = mailGunUser; - - com.mailgun.model.message.Message.MessageBuilder temp = com.mailgun.model.message.Message.builder() - .replyTo(replyTo).from(mailFrom).to(recipents).subject(subject).html(body); - - if (Boolean.FALSE.equals(CollectionUtils.isEmpty(CC))) { - temp.cc(CC); - } - - if (Boolean.FALSE.equals(CollectionUtils.isEmpty(BCC))) { - temp.bcc(BCC); - } - - if (Boolean.FALSE.equals(isTestProfileActivated())) { - com.mailgun.model.message.Message message = temp.build(); - mailgunMessagesApi.sendMessage(mailGunDomainName, message); - } - - } - - public void sendByMailGun(String subject, String body, List receiverEmails, String replyTo) { - sendMailByMailGunAPI(receiverEmails, null, null, subject, body, replyTo); - - } - -} diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index d2a1e3fb..19988cf3 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -53,13 +53,10 @@ vatCheckNewToken: 66026bd891a51044e90e08c4 spid.ipd.base.url=https://federatest.umbriadigitale.it active.profile.folder=dev -# MailGun API Key -mailGun_apiKey= 398e3dea1911fe941af261906ec99362-07e2c238-8094421f -mailGun_user=comunicazione@paghiamoci.ai -mailGun_domainName=paghiamoci.ai +# MailGun API mailGun_base_url=https://api.eu.mailgun.net/ -# SendinBlue API key -apiKey=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 + + api.pecUrl=https://ws.pecmassiva.com #senderEmail=mailer@bflows.net From 9970db7676cf004d8a5667c762b231ac857e478f Mon Sep 17 00:00:00 2001 From: rajesh Date: Tue, 19 Nov 2024 21:23:05 +0530 Subject: [PATCH 3/8] updated default_System_Receiver_Email property for production --- src/main/resources/application-production.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/application-production.properties b/src/main/resources/application-production.properties index 8c19671b..b3704a3d 100644 --- a/src/main/resources/application-production.properties +++ b/src/main/resources/application-production.properties @@ -16,7 +16,7 @@ spid.ipd.base.url=https://login.regione.umbria.it active.profile.folder=production isMailSendingEnabled = true -default_System_Receiver_Email=antonio.manca@bflows.net +default_System_Receiver_Email=c.moretti@gepafin.it gepafin_email=bandi@pec.gepafin.it rinaldo_email=rinaldo.bonazzo@bflows.net carlo_email=carlo.mancosu@bflows.net From 9fe5a916f182ab4f81fe8070caec076326f1142d Mon Sep 17 00:00:00 2001 From: rajesh Date: Wed, 27 Nov 2024 12:20:06 +0530 Subject: [PATCH 4/8] Fixed issue with evaluation --- .../dao/ApplicationEvaluationDao.java | 18 ++++++++++++------ .../CallTargetAudienceChecklistRepository.java | 4 ++-- .../EvaluationCriteriaRepository.java | 2 +- .../impl/ApplicationEvaluationServiceImpl.java | 10 ++++------ 4 files changed, 19 insertions(+), 15 deletions(-) diff --git a/src/main/java/net/gepafin/tendermanagement/dao/ApplicationEvaluationDao.java b/src/main/java/net/gepafin/tendermanagement/dao/ApplicationEvaluationDao.java index 1b725c96..ee5cfe23 100644 --- a/src/main/java/net/gepafin/tendermanagement/dao/ApplicationEvaluationDao.java +++ b/src/main/java/net/gepafin/tendermanagement/dao/ApplicationEvaluationDao.java @@ -111,8 +111,10 @@ public class ApplicationEvaluationDao { populateBasicDetails(entity, response); CallEntity call = callRepository.findCallEntityByApplicationId(entity.getApplicationId()); - List evaluationCriterias = evaluationCriteriaRepository.findByCallId(call.getId()); - List checklistEntities = callTargetAudienceChecklistRepository.findByCallId(call.getId()); + List evaluationCriterias = evaluationCriteriaRepository + .findByCallIdAndLookupDataTypeAndIsDeletedFalse(call.getId(), LookUpDataEntity.LookUpDataTypeEnum.EVALUATION_CRITERIA.getValue()); + List checklistEntities = callTargetAudienceChecklistRepository + .findByCallIdAndLookupDataTypeAndIsDeletedFalse(call.getId(), LookUpDataEntity.LookUpDataTypeEnum.CHECKLIST.getValue()); List applicationFormEntities = applicationFormRepository.findByApplicationId(entity.getApplicationId()); setCriteriaResponses(entity, response, evaluationCriterias); @@ -633,8 +635,10 @@ public class ApplicationEvaluationDao { call = callRepository.findCallEntityByApplicationId(applicationId); assignedApplications = assignedApplicationsRepository.findByApplicationIdAndIsDeletedFalse(applicationId).orElse(null); } - List evaluationCriterias = evaluationCriteriaRepository.findByCallId(call.getId()); - List checklistEntities = callTargetAudienceChecklistRepository.findByCallId(call.getId()); + List evaluationCriterias = evaluationCriteriaRepository + .findByCallIdAndLookupDataTypeAndIsDeletedFalse(call.getId(), LookUpDataEntity.LookUpDataTypeEnum.EVALUATION_CRITERIA.getValue()); + List checklistEntities = callTargetAudienceChecklistRepository + .findByCallIdAndLookupDataTypeAndIsDeletedFalse(call.getId(), LookUpDataEntity.LookUpDataTypeEnum.CHECKLIST.getValue()); List applicationFormEntities = applicationFormRepository.findByApplicationId(applicationId); response.setApplicationId(application.getId()); response.setAssignedApplicationId(assignedApplications.getId()); @@ -966,7 +970,8 @@ public class ApplicationEvaluationDao { } private List getEvaluationCriterias(CallEntity call) { - return evaluationCriteriaRepository.findByCallId(call.getId()); + return evaluationCriteriaRepository + .findByCallIdAndLookupDataTypeAndIsDeletedFalse(call.getId(), LookUpDataEntity.LookUpDataTypeEnum.EVALUATION_CRITERIA.getValue()); } private CriteriaResponse buildCriteriaResponse(Long applicationId, EvaluationCriteriaEntity criteria) { @@ -1207,7 +1212,8 @@ public class ApplicationEvaluationDao { List getChecklistResponse(Long applicationId) { CallEntity call = callRepository.findCallEntityByApplicationId(applicationId); - List checklistEntities = callTargetAudienceChecklistRepository.findByCallId(call.getId()); + List checklistEntities = callTargetAudienceChecklistRepository + .findByCallIdAndLookupDataTypeAndIsDeletedFalse(call.getId(), LookUpDataEntity.LookUpDataTypeEnum.CHECKLIST.getValue()); List checklistResponses = checklistEntities.stream().map(checklist -> { ChecklistResponse response = new ChecklistResponse(); response.setId(checklist.getId()); diff --git a/src/main/java/net/gepafin/tendermanagement/repositories/CallTargetAudienceChecklistRepository.java b/src/main/java/net/gepafin/tendermanagement/repositories/CallTargetAudienceChecklistRepository.java index d092ea4a..95f58f8a 100644 --- a/src/main/java/net/gepafin/tendermanagement/repositories/CallTargetAudienceChecklistRepository.java +++ b/src/main/java/net/gepafin/tendermanagement/repositories/CallTargetAudienceChecklistRepository.java @@ -12,10 +12,10 @@ import net.gepafin.tendermanagement.entities.CallTargetAudienceChecklistEntity; @Repository public interface CallTargetAudienceChecklistRepository extends JpaRepository { - + @Query("SELECT c FROM CallTargetAudienceChecklistEntity c WHERE c.id = :id AND c.isDeleted = false") Optional findById(@Param("id") Long id); List findByCallIdAndLookupDataTypeAndIsDeletedFalse(Long id, String type); - List findByCallId(Long callId); +// List findByCallId(Long callId); } diff --git a/src/main/java/net/gepafin/tendermanagement/repositories/EvaluationCriteriaRepository.java b/src/main/java/net/gepafin/tendermanagement/repositories/EvaluationCriteriaRepository.java index 8b25fc1f..1a7f7ccd 100644 --- a/src/main/java/net/gepafin/tendermanagement/repositories/EvaluationCriteriaRepository.java +++ b/src/main/java/net/gepafin/tendermanagement/repositories/EvaluationCriteriaRepository.java @@ -16,6 +16,6 @@ public interface EvaluationCriteriaRepository extends JpaRepository findById(@Param("id") Long id); List findByCallIdAndLookupDataTypeAndIsDeletedFalse(Long callId, String type); - List findByCallId(Long callId); +// List findByCallId(Long callId); } diff --git a/src/main/java/net/gepafin/tendermanagement/service/impl/ApplicationEvaluationServiceImpl.java b/src/main/java/net/gepafin/tendermanagement/service/impl/ApplicationEvaluationServiceImpl.java index 6ccee608..30cdaf80 100644 --- a/src/main/java/net/gepafin/tendermanagement/service/impl/ApplicationEvaluationServiceImpl.java +++ b/src/main/java/net/gepafin/tendermanagement/service/impl/ApplicationEvaluationServiceImpl.java @@ -14,6 +14,7 @@ import net.gepafin.tendermanagement.model.response.ApplicationEvaluationResponse import net.gepafin.tendermanagement.repositories.AssignedApplicationsRepository; import net.gepafin.tendermanagement.service.ApplicationEvaluationService; +import net.gepafin.tendermanagement.service.AssignedApplicationsService; import net.gepafin.tendermanagement.util.Validator; import net.gepafin.tendermanagement.web.rest.api.errors.CustomValidationException; import net.gepafin.tendermanagement.web.rest.api.errors.ResourceNotFoundException; @@ -32,8 +33,9 @@ public class ApplicationEvaluationServiceImpl implements ApplicationEvaluationSe @Autowired private Validator validator; @Autowired + private AssignedApplicationsService assignedApplicationsService; + @Autowired private AssignedApplicationsRepository assignedApplicationsRepository; - @Override @Transactional(rollbackFor = Exception.class) public ApplicationEvaluationResponse createOrUpdateApplicationEvaluation( @@ -41,11 +43,7 @@ public class ApplicationEvaluationServiceImpl implements ApplicationEvaluationSe ApplicationEvaluationRequest req, Long assignedApplicationsId) { - AssignedApplicationsEntity assignedApplication = assignedApplicationsRepository - .findByIdAndIsDeletedFalse(assignedApplicationsId) - .orElseThrow(() -> new ResourceNotFoundException( - Status.NOT_FOUND, - Translator.toLocale(GepafinConstant.ASSIGNED_APPLICATION_NOT_FOUND_MSG))); + AssignedApplicationsEntity assignedApplication =assignedApplicationsService.validateAssignedApplication(assignedApplicationsId); UserEntity user = validator.validatePreInstructor(request, assignedApplication.getUserId()); From 676a3298da5d172790122df7865abedfa0e86eb8 Mon Sep 17 00:00:00 2001 From: rajesh Date: Tue, 3 Dec 2024 15:39:30 +0530 Subject: [PATCH 5/8] Updated code --- .../dao/ApplicationEvaluationDao.java | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/main/java/net/gepafin/tendermanagement/dao/ApplicationEvaluationDao.java b/src/main/java/net/gepafin/tendermanagement/dao/ApplicationEvaluationDao.java index ee5cfe23..b0bf6465 100644 --- a/src/main/java/net/gepafin/tendermanagement/dao/ApplicationEvaluationDao.java +++ b/src/main/java/net/gepafin/tendermanagement/dao/ApplicationEvaluationDao.java @@ -252,7 +252,8 @@ public class ApplicationEvaluationDao { Optional formFieldEntityOptional = applicationFormFieldRepository .findByFieldIdAndApplicationFormIdAndApplicationFormApplicationId(formFieldId, applicationFormId, applicationId); - if (formFieldEntityOptional.isPresent()) { + if (formFieldEntityOptional.isPresent() && formFieldEntityOptional.get().getFieldValue()!=null && Boolean.FALSE.equals(formFieldEntityOptional.get() + .getFieldValue().isEmpty())) { String[] documentIds = formFieldEntityOptional.get().getFieldValue().split(","); List documentResponseBeans = new ArrayList<>(); @@ -795,6 +796,10 @@ public class ApplicationEvaluationDao { ObjectMapper objectMapper = new ObjectMapper(); findFormFieldValue(applicationId, formFieldId).ifPresent(formField -> { Object value = formField.getFieldValue(); + if (value == null) { + mappedField.setFieldValue(null); + return; + } List labels = new ArrayList<>(); if (value instanceof String) { String fieldValue = (String) value; @@ -1132,7 +1137,7 @@ public class ApplicationEvaluationDao { List documentResponseBeans = new ArrayList<>(); findFormFieldValue(applicationId, criteriaFormField.getFormFieldId()).ifPresent(formField -> { String fieldValue = formField.getFieldValue(); - if (fieldValue != null) { + if (fieldValue != null && (Boolean.FALSE.equals(fieldValue.isEmpty()))) { String[] fieldValues = fieldValue.split(","); for (String value : fieldValues) { Long documentId = Long.valueOf(value.trim()); @@ -1164,7 +1169,10 @@ public class ApplicationEvaluationDao { findFormFieldValue(applicationId, criteriaFormField.getFormFieldId()).ifPresent(formField -> { Object value = formField.getFieldValue(); List labels = new ArrayList<>(); - + if (value == null) { + mappedField.setFieldValue(null); + return; + } if (value instanceof String) { List parsedValue = parseJsonValue((String) value, objectMapper); addLabelsFromParsedValues(parsedValue, contentResponseBean, labels); @@ -1249,7 +1257,7 @@ public class ApplicationEvaluationDao { if (optionalFormField.isPresent()) { ApplicationFormFieldEntity formField = optionalFormField.get(); - if (formField.getFieldValue() != null) { + if (formField.getFieldValue() != null &&(Boolean.FALSE.equals(formField.getFieldValue().isEmpty()))) { FieldResponse fieldResponse = new FieldResponse(); fieldResponse.setId(fieldId); String label = null; From dcbad56f073ba4e175840b642366a3dedf28ae21 Mon Sep 17 00:00:00 2001 From: piyushkag Date: Tue, 3 Dec 2024 19:29:31 +0530 Subject: [PATCH 6/8] Resolved conflicts --- .../dao/EmailNotificationDao.java | 155 ++++++++++++------ .../db/changelog/db.changelog-1.0.0.xml | 6 + ...nt_mail_notification_mail_03_12_2024_1.sql | 26 +++ 3 files changed, 136 insertions(+), 51 deletions(-) create mode 100644 src/main/resources/db/dump/update_system_email_template_for_updating_amendment_mail_notification_mail_03_12_2024_1.sql diff --git a/src/main/java/net/gepafin/tendermanagement/dao/EmailNotificationDao.java b/src/main/java/net/gepafin/tendermanagement/dao/EmailNotificationDao.java index 2f193047..7a2f38ca 100644 --- a/src/main/java/net/gepafin/tendermanagement/dao/EmailNotificationDao.java +++ b/src/main/java/net/gepafin/tendermanagement/dao/EmailNotificationDao.java @@ -9,9 +9,13 @@ import net.gepafin.tendermanagement.enums.EmailEntityTypeEnum; import net.gepafin.tendermanagement.enums.RecipientTypeEnum; import net.gepafin.tendermanagement.enums.StatusTypeEnum; import net.gepafin.tendermanagement.entities.*; +import net.gepafin.tendermanagement.model.request.ApplicationAmendmentRequest; import net.gepafin.tendermanagement.model.request.EmailConfig; import net.gepafin.tendermanagement.model.request.EmailLogRequest; +import net.gepafin.tendermanagement.model.response.AmendmentFormFieldResponse; import net.gepafin.tendermanagement.model.response.SystemEmailTemplateResponse; +import net.gepafin.tendermanagement.repositories.ApplicationFormFieldRepository; +import net.gepafin.tendermanagement.repositories.ApplicationFormRepository; import net.gepafin.tendermanagement.repositories.EmailLogRepository; import net.gepafin.tendermanagement.repositories.HubRepository; import net.gepafin.tendermanagement.service.ApplicationService; @@ -30,6 +34,8 @@ import org.springframework.stereotype.Component; import java.time.LocalDateTime; import java.util.*; +import static net.gepafin.tendermanagement.dao.ApplicationAmendmentRequestDao.filterByName; + @Component public class EmailNotificationDao { @@ -43,7 +49,7 @@ public class EmailNotificationDao { @Autowired private UserService userService; - + @Autowired private HubService hubService; @@ -59,85 +65,132 @@ public class EmailNotificationDao { @Autowired private EmailLogRepository emailLogRepository; + @Autowired + private CompanyService companyService; - private void sendEmail(ApplicationEntity applicationEntity, SystemEmailTemplatesEntity.SystemEmailTemplatesEntityTypeEnum templateType, - Map bodyPlaceholders, List additionalRecipients,Long amendmentId) { + @Autowired + private ApplicationFormRepository applicationFormRepository; + + @Autowired + private ApplicationFormFieldRepository applicationFormFieldRepository; + + private void sendEmail(ApplicationEntity applicationEntity, SystemEmailTemplatesEntity.SystemEmailTemplatesEntityTypeEnum templateType, Map bodyPlaceholders, + List additionalRecipients, Long amendmentId) { HubEntity hubEntity = hubService.valdateHub(applicationEntity.getHubId()); - String service = determineService(applicationEntity.getHubId()); - String legalMail = service.equals("Gepafin S.p.a.") ? "bandi.gepafin@legalmail.it" : "bandi.sviluppumbria@legalmail.it"; +// String service = determineService(applicationEntity.getHubId()); +// String legalMail = service.equals("Gepafin S.p.a.") ? "bandi.gepafin@legalmail.it" : "bandi.sviluppumbria@legalmail.it"; SystemEmailTemplateResponse systemEmailTemplateResponse = systemEmailTemplatesService.retrieveTemplateByTypeAndCall(templateType, hubEntity, null); Map subjectPlaceholders = new HashMap<>(); + CompanyEntity company = companyService.validateCompany(applicationEntity.getCompanyId()); subjectPlaceholders.put("{{call_name}}", applicationEntity.getCall().getName()); - subjectPlaceholders.put("{{company_name}}", applicationEntity.getCompany().getCompanyName()); - bodyPlaceholders.put("{{legal_mail}}", legalMail); + subjectPlaceholders.put("{{company_name}}", company.getCompanyName()); +// bodyPlaceholders.put("{{legal_mail}}", legalMail); String subject = Utils.replacePlaceholders(systemEmailTemplateResponse.getSubject(), subjectPlaceholders); String body = Utils.replacePlaceholders(systemEmailTemplateResponse.getHtmlContent(), bodyPlaceholders); UserEntity userEntity = userService.validateUser(applicationEntity.getUserId()); List recipientEmails = getRecipientEmails(applicationEntity, userEntity, additionalRecipients); - EmailLogRequest emailLogRequest=emailLogDao.createEmailLogRequest(systemEmailTemplateResponse.getEmailScenario(), RecipientTypeEnum.BENEFICIARY,userEntity.getBeneficiary().getId(),Utils.listToCommaSeparatedString(recipientEmails),userEntity.getId(),applicationEntity.getId(),amendmentId ,applicationEntity.getCall().getId()); - sendMail(applicationEntity.getHubId(), subject, body, recipientEmails,emailLogRequest); + EmailLogRequest emailLogRequest = emailLogDao.createEmailLogRequest(systemEmailTemplateResponse.getEmailScenario(), RecipientTypeEnum.BENEFICIARY, 1L, + Utils.listToCommaSeparatedString(recipientEmails), userEntity.getId(), applicationEntity.getId(), amendmentId, applicationEntity.getCall().getId()); + sendMail(applicationEntity.getHubId(), subject, body, recipientEmails, emailLogRequest); } private List getRecipientEmails(ApplicationEntity applicationEntity, UserEntity userEntity, List additionalRecipients) { + List recipientEmails = new ArrayList<>(); - 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()); - } - if (additionalRecipients != null) { - recipientEmails.addAll(additionalRecipients); - } + CompanyEntity company = companyService.validateCompany(applicationEntity.getCompanyId()); + // String companyEmail = company.getEmail(); + // String contactEmail = company.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()); + // } + // if (additionalRecipients != null) { + // recipientEmails.addAll(additionalRecipients); + // } + recipientEmails.add("piyush1.kag1@gmail.com"); return recipientEmails; } +// +// private String determineService(Long hubId) { +// +// HubEntity hub = hubRepository.findById(hubId).orElseThrow(() -> new IllegalArgumentException("Invalid Hub ID: " + hubId)); +// return hub.getEmailServiceType().equalsIgnoreCase("MAILGUN_SERVICE") ? "Sviluppumbria" : "Gepafin S.p.a."; +// } + public void sendMailToNotifyBeneficiaryRegardingNewAmendment(ApplicationAmendmentRequestEntity applicationAmendmentRequestEntity) { - private String determineService(Long hubId) { - - HubEntity hub = hubRepository.findById(hubId).orElseThrow(() -> new IllegalArgumentException("Invalid Hub ID: " + hubId)); - return hub.getEmailServiceType().equalsIgnoreCase("MAILGUN_SERVICE") ? "Gepafin S.p.a." : "Sviluppumbria"; - } - - public void sendMailToNotifyBeneficiaryRegardingNewAmendment(ApplicationAmendmentRequestEntity applicationAmendmentRequest) { - - ApplicationEntity applicationEntity = applicationService.validateApplication(applicationAmendmentRequest.getApplicationId()); + ApplicationEntity applicationEntity = applicationService.validateApplication(applicationAmendmentRequestEntity.getApplicationId()); Map bodyPlaceholders = new HashMap<>(); bodyPlaceholders.put("{{call_name}}", applicationEntity.getCall().getName()); - bodyPlaceholders.put("{{protocol_number}}", applicationAmendmentRequest.getProtocol().getProtocolNumber().toString()); - bodyPlaceholders.put("{{protocol_date}}", DateTimeUtil.formatLocalDateTime(applicationAmendmentRequest.getProtocol().getCreatedDate(), GepafinConstant.DD_MM_YYYY)); - bodyPlaceholders.put("{{protocol_time}}", DateTimeUtil.parseLocalTimeToString(applicationAmendmentRequest.getProtocol().getTime(), GepafinConstant.HH_MM_SS)); - String formFieldsJson = applicationAmendmentRequest.getFormFields(); - ObjectMapper objectMapper = new ObjectMapper(); + bodyPlaceholders.put("{{protocol_number}}", applicationAmendmentRequestEntity.getProtocol().getProtocolNumber().toString()); + bodyPlaceholders.put("{{protocol_date}}", DateTimeUtil.formatLocalDateTime(applicationAmendmentRequestEntity.getProtocol().getCreatedDate(), GepafinConstant.DD_MM_YYYY)); + bodyPlaceholders.put("{{protocol_time}}", DateTimeUtil.parseLocalTimeToString(applicationAmendmentRequestEntity.getProtocol().getTime(), GepafinConstant.HH_MM_SS)); try { - List> formFields = objectMapper.readValue(formFieldsJson, new TypeReference>>() { - }); - //• + // Retrieve forms and initialize required collections + List forms = applicationFormRepository.findByApplicationId(applicationEntity.getId()); + List allFormFields = new ArrayList<>(); StringBuilder bulletPoints = new StringBuilder(); - for (Map field : formFields) { - String label = (String) field.get("label"); - boolean selected = (boolean) field.get("selected"); - if (!selected) { - bulletPoints.append("• ").append(label).append("\n"); - } + + // Extract data from forms + for (ApplicationFormEntity form : forms) { + String content = form.getForm().getContent(); + List> result = filterByName(content, "fileupload"); + allFormFields.addAll(getIdAndLabelFromResult(result)); } + + // Process allFormFields and generate bullet points + for (AmendmentFormFieldResponse field : allFormFields) { + // Build bullet points + bulletPoints.append(field.getLabel()); + bulletPoints.append("\n"); + } + // Add the generated bullet points to placeholders bodyPlaceholders.put("{{form_dataInput}}", bulletPoints.toString()); } catch (Exception e) { - log.error("Failed to parse form fields JSON: ", e); + log.error("Failed to process form fields: ", e); } - bodyPlaceholders.put("{{note}}", applicationAmendmentRequest.getNote()); - sendEmail(applicationEntity, SystemEmailTemplatesEntity.SystemEmailTemplatesEntityTypeEnum.DOCUMENTATION_INTEGRATION_REQUEST, bodyPlaceholders, null,applicationAmendmentRequest.getId()); + + + bodyPlaceholders.put("{{note}}", applicationAmendmentRequestEntity.getNote()); + sendEmail(applicationEntity, SystemEmailTemplatesEntity.SystemEmailTemplatesEntityTypeEnum.DOCUMENTATION_INTEGRATION_REQUEST, bodyPlaceholders, null, + applicationAmendmentRequestEntity.getId()); + } + + public List getIdAndLabelFromResult(List> result) { + List formFieldResponses = new ArrayList<>(); + + for (Map item : result) { + AmendmentFormFieldResponse formFieldResponse = new AmendmentFormFieldResponse(); + formFieldResponse.setFieldId((String) item.get("id")); + + // Extract "label" value from the "settings" array + List> settings = (List>) item.get("settings"); + String label = settings.stream() + .filter(setting -> "label".equals(setting.get("name"))) + .map(setting -> (String) setting.get("value")) + .findFirst() + .orElse(""); // Default to empty string if not found + + if (label == null || label.trim().isEmpty()) { + continue; + } + + formFieldResponse.setLabel(label); // Set the label as fieldValue + formFieldResponses.add(formFieldResponse); + } + + return formFieldResponses; } public void sendApplicationFailureNotificationEmail(ApplicationAmendmentRequestEntity amendmentRequest) { 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 ea473da2..114ccd07 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 @@ -1803,4 +1803,10 @@ + + + + + diff --git a/src/main/resources/db/dump/update_system_email_template_for_updating_amendment_mail_notification_mail_03_12_2024_1.sql b/src/main/resources/db/dump/update_system_email_template_for_updating_amendment_mail_notification_mail_03_12_2024_1.sql new file mode 100644 index 00000000..3e4e8e30 --- /dev/null +++ b/src/main/resources/db/dump/update_system_email_template_for_updating_amendment_mail_notification_mail_03_12_2024_1.sql @@ -0,0 +1,26 @@ +UPDATE gepafin_schema.system_email_template +SET html_content = ' + +
+

RICHIESTA INTEGRAZIONE DOCUMENTALE

+

Buongiorno,

+

In riferimento alla domanda di concessione di Finanziamento agevolato a valere sul Fondo prestiti + {{call_name}} di cui al Protocollo n. {{protocol_number}} del + {{protocol_date}} e {{protocol_time}}, alla luce dell''attività istruttoria svolta, + segnaliamo quanto segue:

+
    +
  • {{form_dataInput}}
  • +
+

{{note}}

+

Vi invitiamo a fornire quanto sopra richiesto integrando la documentazione sia caricandola all''interno dello sportello + online {{platform_link}} che inviandola a mezzo PEC all''indirizzo + {{legal_mail}} entro e non oltre 10 giorni dal ricevimento della presente comunicazione, + precisando che, in caso di mancata ricezione nei termini indicati, saremo costretti a non prendere in considerazione la Vostra richiesta di finanziamento.

+

Vi informiamo che per la ricezione della PEC farà fede la ricevuta di avvenuta consegna che attesterà il buon esito + dell''invio. La documentazione trasmessa e le informazioni fornite saranno processate dall''istruttore assegnatario della pratica.

+

Distinti Saluti,

+

{{email_signature}}

+
+ + ' +WHERE "type" = 'DOCUMENTATION_INTEGRATION_REQUEST' AND "system" = true; \ No newline at end of file From 594f7f02e9897753eff59471b032a44ab28297cd Mon Sep 17 00:00:00 2001 From: rajesh Date: Wed, 4 Dec 2024 16:17:39 +0530 Subject: [PATCH 7/8] Resolved conflicts --- .../dao/EmailNotificationDao.java | 102 +++++++++++------- .../enums/RecipientTypeEnum.java | 3 +- .../db/changelog/db.changelog-1.0.0.xml | 6 ++ ...nt_mail_notification_mail_04_12_2024_1.sql | 26 +++++ 4 files changed, 96 insertions(+), 41 deletions(-) create mode 100644 src/main/resources/db/dump/update_system_email_template_for_updating_amendment_mail_notification_mail_04_12_2024_1.sql diff --git a/src/main/java/net/gepafin/tendermanagement/dao/EmailNotificationDao.java b/src/main/java/net/gepafin/tendermanagement/dao/EmailNotificationDao.java index 7a2f38ca..a3687292 100644 --- a/src/main/java/net/gepafin/tendermanagement/dao/EmailNotificationDao.java +++ b/src/main/java/net/gepafin/tendermanagement/dao/EmailNotificationDao.java @@ -1,27 +1,16 @@ package net.gepafin.tendermanagement.dao; import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; import net.gepafin.tendermanagement.constants.GepafinConstant; import net.gepafin.tendermanagement.entities.*; -import net.gepafin.tendermanagement.enums.EmailEntityTypeEnum; import net.gepafin.tendermanagement.enums.RecipientTypeEnum; -import net.gepafin.tendermanagement.enums.StatusTypeEnum; -import net.gepafin.tendermanagement.entities.*; -import net.gepafin.tendermanagement.model.request.ApplicationAmendmentRequest; import net.gepafin.tendermanagement.model.request.EmailConfig; import net.gepafin.tendermanagement.model.request.EmailLogRequest; import net.gepafin.tendermanagement.model.response.AmendmentFormFieldResponse; import net.gepafin.tendermanagement.model.response.SystemEmailTemplateResponse; -import net.gepafin.tendermanagement.repositories.ApplicationFormFieldRepository; -import net.gepafin.tendermanagement.repositories.ApplicationFormRepository; -import net.gepafin.tendermanagement.repositories.EmailLogRepository; -import net.gepafin.tendermanagement.repositories.HubRepository; -import net.gepafin.tendermanagement.service.ApplicationService; -import net.gepafin.tendermanagement.service.HubService; -import net.gepafin.tendermanagement.service.SystemEmailTemplatesService; -import net.gepafin.tendermanagement.service.UserService; +import net.gepafin.tendermanagement.repositories.*; +import net.gepafin.tendermanagement.service.*; import net.gepafin.tendermanagement.service.impl.EmailService; import net.gepafin.tendermanagement.service.impl.EmailServiceFactory; import net.gepafin.tendermanagement.util.DateTimeUtil; @@ -29,6 +18,7 @@ import net.gepafin.tendermanagement.util.Utils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; import java.time.LocalDateTime; @@ -74,6 +64,12 @@ public class EmailNotificationDao { @Autowired private ApplicationFormFieldRepository applicationFormFieldRepository; + @Autowired + private ApplicationEvaluationRepository applicationEvaluationRepository; + + @Value("${rinaldo_email}") + private String rinaldoEmail; + private void sendEmail(ApplicationEntity applicationEntity, SystemEmailTemplatesEntity.SystemEmailTemplatesEntityTypeEnum templateType, Map bodyPlaceholders, List additionalRecipients, Long amendmentId) { @@ -89,36 +85,60 @@ public class EmailNotificationDao { // bodyPlaceholders.put("{{legal_mail}}", legalMail); String subject = Utils.replacePlaceholders(systemEmailTemplateResponse.getSubject(), subjectPlaceholders); String body = Utils.replacePlaceholders(systemEmailTemplateResponse.getHtmlContent(), bodyPlaceholders); - UserEntity userEntity = userService.validateUser(applicationEntity.getUserId()); - List recipientEmails = getRecipientEmails(applicationEntity, userEntity, additionalRecipients); - EmailLogRequest emailLogRequest = emailLogDao.createEmailLogRequest(systemEmailTemplateResponse.getEmailScenario(), RecipientTypeEnum.BENEFICIARY, 1L, - Utils.listToCommaSeparatedString(recipientEmails), userEntity.getId(), applicationEntity.getId(), amendmentId, applicationEntity.getCall().getId()); - sendMail(applicationEntity.getHubId(), subject, body, recipientEmails, emailLogRequest); + sendEmails(applicationEntity, userEntity, additionalRecipients,amendmentId,systemEmailTemplateResponse,subject,body); } - private List getRecipientEmails(ApplicationEntity applicationEntity, UserEntity userEntity, List additionalRecipients) { + private void sendEmails(ApplicationEntity applicationEntity, UserEntity userEntity, List additionalRecipients,Long amendmentId,SystemEmailTemplateResponse systemEmailTemplateResponse,String subject,String body) { - List recipientEmails = new ArrayList<>(); + Optional applicationEvaluationEntity = applicationEvaluationRepository.findByApplicationIdAndIsDeletedFalse(applicationEntity.getId()); CompanyEntity company = companyService.validateCompany(applicationEntity.getCompanyId()); - // String companyEmail = company.getEmail(); - // String contactEmail = company.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()); - // } - // if (additionalRecipients != null) { - // recipientEmails.addAll(additionalRecipients); - // } + String companyEmail = company.getEmail(); + String contactEmail = company.getContactEmail(); - recipientEmails.add("piyush1.kag1@gmail.com"); - return recipientEmails; + if (companyEmail != null && !companyEmail.isEmpty()) { + EmailLogRequest emailLogRequest = emailLogDao.createEmailLogRequest(systemEmailTemplateResponse.getEmailScenario(), RecipientTypeEnum.COMPANY,company.getId() , + companyEmail, userEntity.getId(), applicationEntity.getId(), amendmentId, applicationEntity.getCall().getId()); + sendMail(applicationEntity.getHubId(), subject, body, List.of(companyEmail), emailLogRequest); + } + if (contactEmail != null && !contactEmail.isEmpty() && !contactEmail.equals(companyEmail)) { + EmailLogRequest emailLogRequest = emailLogDao.createEmailLogRequest(systemEmailTemplateResponse.getEmailScenario(), RecipientTypeEnum.COMPANY,company.getId(), + contactEmail, userEntity.getId(), applicationEntity.getId(), amendmentId, applicationEntity.getCall().getId()); + sendMail(applicationEntity.getHubId(), subject, body, List.of(contactEmail), emailLogRequest); + } + + if (userEntity.getBeneficiary().getEmail() != null) { + String beneficiaryEmail = userEntity.getBeneficiary().getEmail(); + EmailLogRequest emailLogRequest = emailLogDao.createEmailLogRequest(systemEmailTemplateResponse.getEmailScenario(), RecipientTypeEnum.BENEFICIARY,userEntity.getBeneficiary().getId() , + beneficiaryEmail, userEntity.getId(), applicationEntity.getId(), amendmentId, applicationEntity.getCall().getId()); + sendMail(applicationEntity.getHubId(), subject, body, List.of(beneficiaryEmail), emailLogRequest); + } + if(userEntity.getHub().getEmail() != null){ + String hubEmails = userEntity.getHub().getEmail(); + String[] hubEmailArray = hubEmails.split(","); + for (String hubEmail : hubEmailArray) { + hubEmail = hubEmail.trim(); + if (!hubEmail.isEmpty()) { + EmailLogRequest emailLogRequest = emailLogDao.createEmailLogRequest(systemEmailTemplateResponse.getEmailScenario(), RecipientTypeEnum.PROPERTIES,null, + hubEmail, userEntity.getId(), applicationEntity.getId(), amendmentId, applicationEntity.getCall().getId()); + sendMail(applicationEntity.getHubId(), subject, body, List.of(hubEmail), emailLogRequest); + } + } + } + if (rinaldoEmail != null) { + EmailLogRequest emailLogRequest = emailLogDao.createEmailLogRequest(systemEmailTemplateResponse.getEmailScenario(), RecipientTypeEnum.PROPERTIES,null , + rinaldoEmail, userEntity.getId(), applicationEntity.getId(), amendmentId, applicationEntity.getCall().getId()); + sendMail(applicationEntity.getHubId(), subject, body, List.of(rinaldoEmail), emailLogRequest); + } + if (applicationEvaluationEntity.isPresent()) { + Long preInstructorId = applicationEvaluationEntity.get().getUserId(); // Assuming UserEntity has an email field + UserEntity instructorUser = userService.validateUser(preInstructorId); + String preInstructorEmail = instructorUser.getEmail(); + if (preInstructorEmail != null && !preInstructorEmail.isEmpty()) { + EmailLogRequest emailLogRequest = emailLogDao.createEmailLogRequest(systemEmailTemplateResponse.getEmailScenario(), RecipientTypeEnum.INSTRUCTOR, instructorUser.getId(), + preInstructorEmail, userEntity.getId(), applicationEntity.getId(), amendmentId, applicationEntity.getCall().getId()); + sendMail(applicationEntity.getHubId(), subject, body, List.of(preInstructorEmail), emailLogRequest); + } + } } // // private String determineService(Long hubId) { @@ -135,6 +155,7 @@ public class EmailNotificationDao { bodyPlaceholders.put("{{protocol_number}}", applicationAmendmentRequestEntity.getProtocol().getProtocolNumber().toString()); bodyPlaceholders.put("{{protocol_date}}", DateTimeUtil.formatLocalDateTime(applicationAmendmentRequestEntity.getProtocol().getCreatedDate(), GepafinConstant.DD_MM_YYYY)); bodyPlaceholders.put("{{protocol_time}}", DateTimeUtil.parseLocalTimeToString(applicationAmendmentRequestEntity.getProtocol().getTime(), GepafinConstant.HH_MM_SS)); + bodyPlaceholders.put("{{response_days}}", applicationAmendmentRequestEntity.getResponseDays().toString()); try { // Retrieve forms and initialize required collections @@ -152,8 +173,9 @@ public class EmailNotificationDao { // Process allFormFields and generate bullet points for (AmendmentFormFieldResponse field : allFormFields) { // Build bullet points - bulletPoints.append(field.getLabel()); - bulletPoints.append("\n"); +// bulletPoints.append(field.getLabel()); + bulletPoints.append("
  • ").append(field.getLabel()).append("
  • "); + } // Add the generated bullet points to placeholders bodyPlaceholders.put("{{form_dataInput}}", bulletPoints.toString()); diff --git a/src/main/java/net/gepafin/tendermanagement/enums/RecipientTypeEnum.java b/src/main/java/net/gepafin/tendermanagement/enums/RecipientTypeEnum.java index c4f54175..8f656154 100644 --- a/src/main/java/net/gepafin/tendermanagement/enums/RecipientTypeEnum.java +++ b/src/main/java/net/gepafin/tendermanagement/enums/RecipientTypeEnum.java @@ -7,7 +7,8 @@ public enum RecipientTypeEnum { BENEFICIARY ("BENEFICIARY"), USER("USER"), COMPANY("COMPANY"), - PROPERTIES("PROPERTIES"); + PROPERTIES("PROPERTIES"), + INSTRUCTOR("INSTRUCTOR"); private String value; 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 114ccd07..ba7ce41c 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 @@ -1809,4 +1809,10 @@ path="db/dump/update_system_email_template_for_updating_amendment_mail_notification_mail_03_12_2024_1.sql"/> + + + + + diff --git a/src/main/resources/db/dump/update_system_email_template_for_updating_amendment_mail_notification_mail_04_12_2024_1.sql b/src/main/resources/db/dump/update_system_email_template_for_updating_amendment_mail_notification_mail_04_12_2024_1.sql new file mode 100644 index 00000000..564d855d --- /dev/null +++ b/src/main/resources/db/dump/update_system_email_template_for_updating_amendment_mail_notification_mail_04_12_2024_1.sql @@ -0,0 +1,26 @@ +UPDATE gepafin_schema.system_email_template +SET html_content = ' + +
    +

    RICHIESTA INTEGRAZIONE DOCUMENTALE

    +

    Buongiorno,

    +

    In riferimento alla domanda di concessione di Finanziamento agevolato a valere sul Fondo prestiti + {{call_name}} di cui al Protocollo n. {{protocol_number}} del + {{protocol_date}} e {{protocol_time}}, alla luce dell''attività istruttoria svolta, + segnaliamo quanto segue:

    +
      +
    • {{form_dataInput}}
    • +
    +

    {{note}}

    +

    Vi invitiamo a fornire quanto sopra richiesto integrando la documentazione sia caricandola all''interno dello sportello + online {{platform_link}} che inviandola a mezzo PEC all''indirizzo + bandi.gepafin@legalmail.it entro e non oltre {{response_days}} giorni dal ricevimento della presente comunicazione, + precisando che, in caso di mancata ricezione nei termini indicati, saremo costretti a non prendere in considerazione la Vostra richiesta di finanziamento.

    +

    Vi informiamo che per la ricezione della PEC farà fede la ricevuta di avvenuta consegna che attesterà il buon esito + dell''invio. La documentazione trasmessa e le informazioni fornite saranno processate dall''istruttore assegnatario della pratica.

    +

    Distinti Saluti,

    +

    {{email_signature}}

    +
    + + ' +WHERE "type" = 'DOCUMENTATION_INTEGRATION_REQUEST' AND "system" = true; \ No newline at end of file From 80c00760a868b4d61fee4e10e4067db18cdaf9fb Mon Sep 17 00:00:00 2001 From: rajesh Date: Wed, 4 Dec 2024 16:48:59 +0530 Subject: [PATCH 8/8] updated code --- .../gepafin/tendermanagement/dao/EmailNotificationDao.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/net/gepafin/tendermanagement/dao/EmailNotificationDao.java b/src/main/java/net/gepafin/tendermanagement/dao/EmailNotificationDao.java index a3687292..1b390556 100644 --- a/src/main/java/net/gepafin/tendermanagement/dao/EmailNotificationDao.java +++ b/src/main/java/net/gepafin/tendermanagement/dao/EmailNotificationDao.java @@ -79,7 +79,7 @@ public class EmailNotificationDao { SystemEmailTemplateResponse systemEmailTemplateResponse = systemEmailTemplatesService.retrieveTemplateByTypeAndCall(templateType, hubEntity, null); Map subjectPlaceholders = new HashMap<>(); - CompanyEntity company = companyService.validateCompany(applicationEntity.getCompanyId()); + CompanyEntity company = companyService.validateCompany(applicationEntity.getCompany().getId()); subjectPlaceholders.put("{{call_name}}", applicationEntity.getCall().getName()); subjectPlaceholders.put("{{company_name}}", company.getCompanyName()); // bodyPlaceholders.put("{{legal_mail}}", legalMail); @@ -91,7 +91,7 @@ public class EmailNotificationDao { private void sendEmails(ApplicationEntity applicationEntity, UserEntity userEntity, List additionalRecipients,Long amendmentId,SystemEmailTemplateResponse systemEmailTemplateResponse,String subject,String body) { Optional applicationEvaluationEntity = applicationEvaluationRepository.findByApplicationIdAndIsDeletedFalse(applicationEntity.getId()); - CompanyEntity company = companyService.validateCompany(applicationEntity.getCompanyId()); + CompanyEntity company = companyService.validateCompany(applicationEntity.getCompany().getId()); String companyEmail = company.getEmail(); String contactEmail = company.getContactEmail();