diff --git a/src/main/java/net/gepafin/tendermanagement/constants/GepafinConstant.java b/src/main/java/net/gepafin/tendermanagement/constants/GepafinConstant.java index acf2e124..fcd7b57d 100644 --- a/src/main/java/net/gepafin/tendermanagement/constants/GepafinConstant.java +++ b/src/main/java/net/gepafin/tendermanagement/constants/GepafinConstant.java @@ -133,5 +133,6 @@ public class GepafinConstant { public static final String INITAL_AND_FINAL_FORM_CANNOT_NULL="initial.and.final.form.cannot.null"; public static final String APPLICATION_FORM_NOT_FOUND="application.form.not.found"; public static final String UPDATING_FORM_VALUE_IMPACT_ON_FLOW="updating.form.value.impact.on.flow"; + public static final String APPLICATION_IS_INCOMPLETE_MSG = "application.is.incomplete"; } diff --git a/src/main/java/net/gepafin/tendermanagement/dao/ApplicationDao.java b/src/main/java/net/gepafin/tendermanagement/dao/ApplicationDao.java index d6e5e77a..f8e86e7e 100644 --- a/src/main/java/net/gepafin/tendermanagement/dao/ApplicationDao.java +++ b/src/main/java/net/gepafin/tendermanagement/dao/ApplicationDao.java @@ -352,12 +352,26 @@ public class ApplicationDao { } - public void updateApplicationStatus(Long applicationId, ApplicationStatusTypeEnum status) { - ApplicationEntity applicationEntity = validateApplication(applicationId); - applicationEntity.setStatus(status.getValue()); - if(status.equals(ApplicationStatusTypeEnum.SUBMIT)) { - applicationEntity.setSubmissionDate(DateTimeUtil.DateServerToUTC(LocalDateTime.now())); - } - saveApplicationEntity(applicationEntity); - } + public void updateApplicationStatus(Long applicationId, ApplicationStatusTypeEnum status) { + ApplicationEntity applicationEntity = validateApplication(applicationId); + + if (status.equals(ApplicationStatusTypeEnum.SUBMIT)) { + CallEntity callEntity = applicationEntity.getCall(); + Long initialFormId = callEntity.getInitialForm(); + Long finalFormId = callEntity.getFinalForm(); +// if (initialFormId == null || finalFormId == null) { +// throw new CustomValidationException(Status.BAD_REQUEST, Translator.toLocale(GepafinConstant.APPLICATION_IS_INCOMPLETE_MSG)); +// } + ApplicationFormEntity initialApplicationForm = applicationFormRepository.findByApplicationIdAndFormId(applicationEntity.getId(), initialFormId); + ApplicationFormEntity finalApplicationForm = applicationFormRepository.findByApplicationIdAndFormId(applicationEntity.getId(), finalFormId); + if (initialApplicationForm == null || finalApplicationForm == null) { + throw new CustomValidationException(Status.BAD_REQUEST, Translator.toLocale(GepafinConstant.APPLICATION_IS_INCOMPLETE_MSG)); + } + applicationEntity.setStatus(ApplicationStatusTypeEnum.SUBMIT.getValue()); + applicationEntity.setSubmissionDate(DateTimeUtil.DateServerToUTC(LocalDateTime.now())); + } else { + applicationEntity.setStatus(status.getValue()); + } + saveApplicationEntity(applicationEntity); + } } diff --git a/src/main/resources/message_en.properties b/src/main/resources/message_en.properties index b0449f1e..560ae89a 100644 --- a/src/main/resources/message_en.properties +++ b/src/main/resources/message_en.properties @@ -169,3 +169,4 @@ application.form.not.found=Application form not found. updating.form.value.impact.on.flow=Updating this value of form {0} can make impact on flow. +application.is.incomplete = The application is incomplete. diff --git a/src/main/resources/message_it.properties b/src/main/resources/message_it.properties index 7b464832..18f8f5fa 100644 --- a/src/main/resources/message_it.properties +++ b/src/main/resources/message_it.properties @@ -162,4 +162,5 @@ action.required=Campo azione obbligatorio. call.not.published=La chiamata non č stata pubblicata. application.form.not.found=Modulo di domanda non trovato. -updating.form.value.impact.on.flow=L'aggiornamento di questo valore del modulo {0} puņ avere un impatto sul flusso. \ No newline at end of file +updating.form.value.impact.on.flow=L'aggiornamento di questo valore del modulo {0} puņ avere un impatto sul flusso. +application.is.incomplete = L'applicazione č incompleta.