From 1b4b4fa3ccf51349774f694a83960a1db103a80f Mon Sep 17 00:00:00 2001 From: rajesh Date: Sat, 14 Dec 2024 12:11:10 +0530 Subject: [PATCH] Fixed application form issue --- .../tendermanagement/dao/ApplicationDao.java | 30 ++++++++++++++++--- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/src/main/java/net/gepafin/tendermanagement/dao/ApplicationDao.java b/src/main/java/net/gepafin/tendermanagement/dao/ApplicationDao.java index 1240aa90..8803d46d 100644 --- a/src/main/java/net/gepafin/tendermanagement/dao/ApplicationDao.java +++ b/src/main/java/net/gepafin/tendermanagement/dao/ApplicationDao.java @@ -455,8 +455,9 @@ public class ApplicationDao { if (applicationFormFieldEntities == null || applicationFormFieldEntities.isEmpty()) { applicationFormFieldEntity.setApplicationForm(applicationFormEntity); } else { + applicationFormFieldEntity.setApplicationForm(applicationFormEntity); for (ApplicationFormFieldEntity applicationFormFieldEntity1 : applicationFormFieldEntities) { - if (applicationFormFieldEntity1.getFieldId().equals(applicationFormFieldRequestBean.getFieldId())) { + if (applicationFormFieldEntity1.getFieldId().equals(applicationFormFieldRequestBean.getFieldId()) && checkIfRequestFieldIsDifferent(applicationFormFieldEntity1, applicationFormFieldRequestBean)) { applicationFormFieldEntity = applicationFormFieldEntity1; oldApplicationFormFieldData = Utils.getClonedEntityForData(applicationFormFieldEntity); if (applicationFormEntity.getForm().getId().equals(applicationFormEntity.getApplication().getCall().getInitialForm())) { @@ -464,8 +465,6 @@ public class ApplicationDao { } actionType = VersionActionTypeEnum.UPDATE; break; - } else { - applicationFormFieldEntity.setApplicationForm(applicationFormEntity); } } } @@ -495,7 +494,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();