diff --git a/src/main/java/net/gepafin/tendermanagement/dao/ApplicationDao.java b/src/main/java/net/gepafin/tendermanagement/dao/ApplicationDao.java index 1240aa90..0feafec8 100644 --- a/src/main/java/net/gepafin/tendermanagement/dao/ApplicationDao.java +++ b/src/main/java/net/gepafin/tendermanagement/dao/ApplicationDao.java @@ -459,7 +459,7 @@ public class ApplicationDao { if (applicationFormFieldEntity1.getFieldId().equals(applicationFormFieldRequestBean.getFieldId())) { applicationFormFieldEntity = applicationFormFieldEntity1; oldApplicationFormFieldData = Utils.getClonedEntityForData(applicationFormFieldEntity); - if (applicationFormEntity.getForm().getId().equals(applicationFormEntity.getApplication().getCall().getInitialForm())) { + if (applicationFormEntity.getForm().getId().equals(applicationFormEntity.getApplication().getCall().getInitialForm()) && checkIfRequestFieldIsDifferent(applicationFormFieldEntity1, applicationFormFieldRequestBean)) { validateRequiredFields(applicationFormEntity.getForm(), applicationFormEntity.getApplication(), applicationFormFieldRequestBean.getFieldId()); } actionType = VersionActionTypeEnum.UPDATE; @@ -495,7 +495,30 @@ public class ApplicationDao { return applicationFormField; } - void updateDocumentDeletionStatus(ApplicationFormFieldEntity applicationFormFieldEntity, ApplicationFormFieldRequestBean applicationFormFieldRequestBean, FormEntity formEntity, List newDocumentIds, + private Boolean checkIfRequestFieldIsDifferent(ApplicationFormFieldEntity applicationFormFieldEntity, + ApplicationFormFieldRequestBean applicationFormFieldRequestBean) { + + // Retrieve the field values from both objects + String entityFieldValue = applicationFormFieldEntity.getFieldValue(); + Object requestFieldValue = applicationFormFieldRequestBean.getFieldValue(); + + // Check if both are null + if (entityFieldValue == null && requestFieldValue == null) { + return false; // No difference if both are null + } + + // Compare values + Boolean check = !Objects.equals(entityFieldValue, requestFieldValue); + + // Additional comparison if both are non-null + if (Boolean.TRUE.equals(check) && entityFieldValue != null && requestFieldValue != null) { + check = !entityFieldValue.equals(requestFieldValue.toString()); + } + + return check; + } + + void updateDocumentDeletionStatus(ApplicationFormFieldEntity applicationFormFieldEntity, ApplicationFormFieldRequestBean applicationFormFieldRequestBean, FormEntity formEntity, List newDocumentIds, List preInstructorDocumentId,boolean isPreInstructor) { if (newDocumentIds == null) { newDocumentIds = Collections.emptyList();