Merge pull request #52 from Kitzanos/feature/GEPAFINBE-59
GEPAFINBE-59(The Admin must be able to link Form Field to Criteria)
This commit is contained in:
@@ -233,5 +233,6 @@ public class GepafinConstant {
|
|||||||
public static final String CANNOT_DELETE_COMPANY_WITH_APPLICATION_SUBMITT = "application.in.submit.status.cannot.delete.company";
|
public static final String CANNOT_DELETE_COMPANY_WITH_APPLICATION_SUBMITT = "application.in.submit.status.cannot.delete.company";
|
||||||
public static final String GET_USERS_SUCCESS_MSG = "get.users.success.msg";
|
public static final String GET_USERS_SUCCESS_MSG = "get.users.success.msg";
|
||||||
public static final String CANNOT_CREATE_BENEFICIARY_USER="cannot.create.beneficiary.user";
|
public static final String CANNOT_CREATE_BENEFICIARY_USER="cannot.create.beneficiary.user";
|
||||||
|
public static final String EVALUATIONCRITERIA_INVALID = "evaluationCriteria.invalid";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package net.gepafin.tendermanagement.dao;
|
package net.gepafin.tendermanagement.dao;
|
||||||
|
|
||||||
import java.io.ByteArrayInputStream;
|
|
||||||
import java.io.ByteArrayOutputStream;
|
import java.io.ByteArrayOutputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
@@ -23,10 +22,6 @@ import net.gepafin.tendermanagement.util.Utils;
|
|||||||
import org.h2.util.IOUtils;
|
import org.h2.util.IOUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.http.HttpHeaders;
|
|
||||||
import org.springframework.http.HttpStatus;
|
|
||||||
import org.springframework.http.MediaType;
|
|
||||||
import org.springframework.http.ResponseEntity;
|
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.util.StringUtils;
|
import org.springframework.util.StringUtils;
|
||||||
|
|
||||||
@@ -34,6 +29,7 @@ import net.gepafin.tendermanagement.config.Translator;
|
|||||||
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
||||||
import net.gepafin.tendermanagement.entities.CallEntity;
|
import net.gepafin.tendermanagement.entities.CallEntity;
|
||||||
import net.gepafin.tendermanagement.entities.CallTargetAudienceChecklistEntity;
|
import net.gepafin.tendermanagement.entities.CallTargetAudienceChecklistEntity;
|
||||||
|
import net.gepafin.tendermanagement.entities.CriteriaFormFieldEntity;
|
||||||
import net.gepafin.tendermanagement.entities.DocumentEntity;
|
import net.gepafin.tendermanagement.entities.DocumentEntity;
|
||||||
import net.gepafin.tendermanagement.entities.EvaluationCriteriaEntity;
|
import net.gepafin.tendermanagement.entities.EvaluationCriteriaEntity;
|
||||||
import net.gepafin.tendermanagement.entities.FaqEntity;
|
import net.gepafin.tendermanagement.entities.FaqEntity;
|
||||||
@@ -52,6 +48,7 @@ import net.gepafin.tendermanagement.model.request.LookUpDataReq;
|
|||||||
import net.gepafin.tendermanagement.model.request.UpdateCallRequestStep1;
|
import net.gepafin.tendermanagement.model.request.UpdateCallRequestStep1;
|
||||||
import net.gepafin.tendermanagement.repositories.CallRepository;
|
import net.gepafin.tendermanagement.repositories.CallRepository;
|
||||||
import net.gepafin.tendermanagement.repositories.CallTargetAudienceChecklistRepository;
|
import net.gepafin.tendermanagement.repositories.CallTargetAudienceChecklistRepository;
|
||||||
|
import net.gepafin.tendermanagement.repositories.CriteriaFormFieldRepository;
|
||||||
import net.gepafin.tendermanagement.repositories.DocumentRepository;
|
import net.gepafin.tendermanagement.repositories.DocumentRepository;
|
||||||
import net.gepafin.tendermanagement.repositories.EvaluationCriteriaRepository;
|
import net.gepafin.tendermanagement.repositories.EvaluationCriteriaRepository;
|
||||||
import net.gepafin.tendermanagement.repositories.FaqRepository;
|
import net.gepafin.tendermanagement.repositories.FaqRepository;
|
||||||
@@ -93,15 +90,22 @@ public class CallDao {
|
|||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private FaqService faqService;
|
private FaqService faqService;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private FlowDao flowDao;
|
private FlowDao flowDao;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private FormDao formDao;
|
private FormDao formDao;
|
||||||
|
|
||||||
@Value("${aws.s3.url.folder}")
|
@Value("${aws.s3.url.folder}")
|
||||||
private String s3Folder;
|
private String s3Folder;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private AmazonS3Service amazonS3Service;
|
private AmazonS3Service amazonS3Service;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private CriteriaFormFieldRepository criteriaFormFieldRepository;
|
||||||
|
|
||||||
public CallResponse createCallStep1(CreateCallRequestStep1 createCallRequest, Long userId) {
|
public CallResponse createCallStep1(CreateCallRequestStep1 createCallRequest, Long userId) {
|
||||||
UserEntity userEntity = userService.validateUser(userId);
|
UserEntity userEntity = userService.validateUser(userId);
|
||||||
createCallRequest.setRegionId(userEntity.getRoleEntity().getRegion().getId());
|
createCallRequest.setRegionId(userEntity.getRoleEntity().getRegion().getId());
|
||||||
@@ -208,6 +212,12 @@ public class CallDao {
|
|||||||
private void softDeleteEvaluationCriteria(EvaluationCriteriaEntity evaluationCriteriaEntity) {
|
private void softDeleteEvaluationCriteria(EvaluationCriteriaEntity evaluationCriteriaEntity) {
|
||||||
evaluationCriteriaEntity.setIsDeleted(true);
|
evaluationCriteriaEntity.setIsDeleted(true);
|
||||||
evaluationCriteriaRepository.save(evaluationCriteriaEntity);
|
evaluationCriteriaRepository.save(evaluationCriteriaEntity);
|
||||||
|
List<CriteriaFormFieldEntity> list = criteriaFormFieldRepository
|
||||||
|
.findByEvaluationCriteriaIdAndIsDeletedFalse(evaluationCriteriaEntity.getId())
|
||||||
|
.stream()
|
||||||
|
.peek(data -> data.setIsDeleted(Boolean.TRUE))
|
||||||
|
.toList();
|
||||||
|
criteriaFormFieldRepository.saveAll(list);
|
||||||
}
|
}
|
||||||
|
|
||||||
private EvaluationCriteriaEntity convertToEvaluationCriteriaEntity(EvaluationCriteriaReq criteriaReq,
|
private EvaluationCriteriaEntity convertToEvaluationCriteriaEntity(EvaluationCriteriaReq criteriaReq,
|
||||||
@@ -255,6 +265,7 @@ public class CallDao {
|
|||||||
private void softDeleteDocument(DocumentEntity documentEntity) {
|
private void softDeleteDocument(DocumentEntity documentEntity) {
|
||||||
documentEntity.setIsDeleted(true);
|
documentEntity.setIsDeleted(true);
|
||||||
documentRepository.save(documentEntity);
|
documentRepository.save(documentEntity);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private DocumentEntity convertToDocumentEntity(DocumentReq documentReq,Long sourceId) {
|
private DocumentEntity convertToDocumentEntity(DocumentReq documentReq,Long sourceId) {
|
||||||
|
|||||||
@@ -3,17 +3,21 @@ package net.gepafin.tendermanagement.dao;
|
|||||||
import net.gepafin.tendermanagement.config.Translator;
|
import net.gepafin.tendermanagement.config.Translator;
|
||||||
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
||||||
import net.gepafin.tendermanagement.entities.CallEntity;
|
import net.gepafin.tendermanagement.entities.CallEntity;
|
||||||
|
import net.gepafin.tendermanagement.entities.CriteriaFormFieldEntity;
|
||||||
import net.gepafin.tendermanagement.entities.EvaluationCriteriaEntity;
|
import net.gepafin.tendermanagement.entities.EvaluationCriteriaEntity;
|
||||||
import net.gepafin.tendermanagement.entities.LookUpDataEntity;
|
import net.gepafin.tendermanagement.entities.LookUpDataEntity;
|
||||||
import net.gepafin.tendermanagement.model.request.EvaluationCriteriaRequest;
|
import net.gepafin.tendermanagement.model.request.EvaluationCriteriaRequest;
|
||||||
import net.gepafin.tendermanagement.model.response.EvaluationCriteriaResponseBean;
|
import net.gepafin.tendermanagement.model.response.EvaluationCriteriaResponseBean;
|
||||||
|
import net.gepafin.tendermanagement.repositories.CriteriaFormFieldRepository;
|
||||||
import net.gepafin.tendermanagement.repositories.EvaluationCriteriaRepository;
|
import net.gepafin.tendermanagement.repositories.EvaluationCriteriaRepository;
|
||||||
import net.gepafin.tendermanagement.service.CallService;
|
import net.gepafin.tendermanagement.service.CallService;
|
||||||
import net.gepafin.tendermanagement.service.LookUpDataService;
|
import net.gepafin.tendermanagement.service.LookUpDataService;
|
||||||
import net.gepafin.tendermanagement.web.rest.api.errors.ResourceNotFoundException;
|
import net.gepafin.tendermanagement.web.rest.api.errors.ResourceNotFoundException;
|
||||||
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
|
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.dao.EmptyResultDataAccessException;
|
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
@@ -28,6 +32,9 @@ public class EvaluationCriteriaDao {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private LookUpDataService lookUpDataService;
|
private LookUpDataService lookUpDataService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private CriteriaFormFieldRepository criteriaFormFieldRepository;
|
||||||
|
|
||||||
public EvaluationCriteriaResponseBean createEvaluationCriteria(
|
public EvaluationCriteriaResponseBean createEvaluationCriteria(
|
||||||
EvaluationCriteriaRequest evaluationCriteriaRequest) {
|
EvaluationCriteriaRequest evaluationCriteriaRequest) {
|
||||||
EvaluationCriteriaEntity entity = convertEvaluationCriteriaRequestToEvaluationCriteriaEntity(
|
EvaluationCriteriaEntity entity = convertEvaluationCriteriaRequestToEvaluationCriteriaEntity(
|
||||||
@@ -55,6 +62,12 @@ public class EvaluationCriteriaDao {
|
|||||||
Translator.toLocale(GepafinConstant.EVALUATION_CRITERIA_NOT_FOUND)));
|
Translator.toLocale(GepafinConstant.EVALUATION_CRITERIA_NOT_FOUND)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public EvaluationCriteriaEntity validateEvaluationCriteria(Long id) {
|
||||||
|
return evaluationCriteriaRepository.findById(id)
|
||||||
|
.orElseThrow(() -> new ResourceNotFoundException(Status.NOT_FOUND,
|
||||||
|
Translator.toLocale(GepafinConstant.EVALUATION_CRITERIA_NOT_FOUND)));
|
||||||
|
}
|
||||||
|
|
||||||
public EvaluationCriteriaResponseBean updateEvaluationCriteria(Long id, EvaluationCriteriaRequest request) {
|
public EvaluationCriteriaResponseBean updateEvaluationCriteria(Long id, EvaluationCriteriaRequest request) {
|
||||||
EvaluationCriteriaEntity entity = evaluationCriteriaRepository.findById(id)
|
EvaluationCriteriaEntity entity = evaluationCriteriaRepository.findById(id)
|
||||||
.orElseThrow(() -> new ResourceNotFoundException(Status.NOT_FOUND,
|
.orElseThrow(() -> new ResourceNotFoundException(Status.NOT_FOUND,
|
||||||
@@ -64,12 +77,15 @@ public class EvaluationCriteriaDao {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void deleteEvaluationCriteria(Long id) {
|
public void deleteEvaluationCriteria(Long id) {
|
||||||
try {
|
|
||||||
evaluationCriteriaRepository.deleteById(id);
|
evaluationCriteriaRepository.deleteById(id);
|
||||||
} catch (EmptyResultDataAccessException e) {
|
EvaluationCriteriaEntity evaluationCriteriaEntity = validateEvaluationCriteria(id);
|
||||||
throw new ResourceNotFoundException(Status.NOT_FOUND,
|
evaluationCriteriaEntity.setIsDeleted(Boolean.TRUE);
|
||||||
Translator.toLocale(GepafinConstant.EVALUATION_CRITERIA_NOT_FOUND));
|
evaluationCriteriaRepository.save(evaluationCriteriaEntity);
|
||||||
}
|
List<CriteriaFormFieldEntity> list = criteriaFormFieldRepository.findByEvaluationCriteriaIdAndIsDeletedFalse(evaluationCriteriaEntity.getId())
|
||||||
|
.stream()
|
||||||
|
.peek(data -> data.setIsDeleted(Boolean.TRUE))
|
||||||
|
.toList();;
|
||||||
|
criteriaFormFieldRepository.saveAll(list);
|
||||||
}
|
}
|
||||||
|
|
||||||
private EvaluationCriteriaResponseBean convertEvaluationCriteriaEntityEvaluationCriteriaToResponseBean(
|
private EvaluationCriteriaResponseBean convertEvaluationCriteriaEntityEvaluationCriteriaToResponseBean(
|
||||||
|
|||||||
@@ -6,9 +6,9 @@ import net.gepafin.tendermanagement.entities.*;
|
|||||||
import net.gepafin.tendermanagement.model.request.*;
|
import net.gepafin.tendermanagement.model.request.*;
|
||||||
import net.gepafin.tendermanagement.model.response.ContentResponseBean;
|
import net.gepafin.tendermanagement.model.response.ContentResponseBean;
|
||||||
import net.gepafin.tendermanagement.model.response.FormResponseBean;
|
import net.gepafin.tendermanagement.model.response.FormResponseBean;
|
||||||
import net.gepafin.tendermanagement.model.response.VatNumberResponseBean;
|
|
||||||
import net.gepafin.tendermanagement.repositories.*;
|
import net.gepafin.tendermanagement.repositories.*;
|
||||||
import net.gepafin.tendermanagement.service.CallService;
|
import net.gepafin.tendermanagement.service.CallService;
|
||||||
|
import net.gepafin.tendermanagement.service.EvaluationCriteriaService;
|
||||||
import net.gepafin.tendermanagement.util.DateTimeUtil;
|
import net.gepafin.tendermanagement.util.DateTimeUtil;
|
||||||
import net.gepafin.tendermanagement.util.FieldValidator;
|
import net.gepafin.tendermanagement.util.FieldValidator;
|
||||||
import net.gepafin.tendermanagement.util.Utils;
|
import net.gepafin.tendermanagement.util.Utils;
|
||||||
@@ -22,9 +22,12 @@ import org.springframework.util.CollectionUtils;
|
|||||||
|
|
||||||
import java.text.MessageFormat;
|
import java.text.MessageFormat;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.LinkedHashMap;
|
import java.util.LinkedHashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.Optional;
|
||||||
|
import java.util.Set;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
@@ -54,12 +57,18 @@ public class FormDao {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private CallRepository callRepository;
|
private CallRepository callRepository;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private CriteriaFormFieldRepository criteriaFormFieldRepository;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private EvaluationCriteriaService evaluationCriteriaService;
|
||||||
|
|
||||||
public FormEntity saveFormEntity(FormEntity formEntity){
|
public FormEntity saveFormEntity(FormEntity formEntity){
|
||||||
formEntity=formRepository.save(formEntity);
|
formEntity=formRepository.save(formEntity);
|
||||||
return formEntity;
|
return formEntity;
|
||||||
}
|
}
|
||||||
|
|
||||||
public FormEntity convertFormRequestToFormEntity(Long callId,FormRequest formRequest){
|
public FormEntity convertFormRequestToFormEntity(Long callId,FormRequest formRequest) {
|
||||||
FormEntity formEntity=new FormEntity();
|
FormEntity formEntity=new FormEntity();
|
||||||
CallEntity callEntity=callService.getCallEntityById(callId);
|
CallEntity callEntity=callService.getCallEntityById(callId);
|
||||||
formEntity.setCall(callEntity);
|
formEntity.setCall(callEntity);
|
||||||
@@ -68,16 +77,29 @@ public class FormDao {
|
|||||||
formEntity=saveFormEntity(formEntity);
|
formEntity=saveFormEntity(formEntity);
|
||||||
return formEntity;
|
return formEntity;
|
||||||
}
|
}
|
||||||
public FormResponseBean convertFormEntityToFormResponseBean(FormEntity formEntity){
|
public FormResponseBean convertFormEntityToFormResponseBean(FormEntity formEntity) {
|
||||||
FormResponseBean formResponseBean=new FormResponseBean();
|
FormResponseBean formResponseBean=new FormResponseBean();
|
||||||
formResponseBean.setId(formEntity.getId());
|
formResponseBean.setId(formEntity.getId());
|
||||||
formResponseBean.setContent(Utils.convertJsonStringToList(formEntity.getContent(), ContentResponseBean.class));
|
formResponseBean.setContent(setContent(formEntity));
|
||||||
formResponseBean.setLabel(formEntity.getLabel());
|
formResponseBean.setLabel(formEntity.getLabel());
|
||||||
formResponseBean.setCallId(formEntity.getCall().getId());
|
formResponseBean.setCallId(formEntity.getCall().getId());
|
||||||
formResponseBean.setCallStatus(formEntity.getCall().getStatus());
|
formResponseBean.setCallStatus(formEntity.getCall().getStatus());
|
||||||
return formResponseBean;
|
return formResponseBean;
|
||||||
}
|
}
|
||||||
public FormResponseBean createForm(Long callId,FormRequest formRequest){
|
|
||||||
|
private List<ContentResponseBean> setContent(FormEntity formEntity) {
|
||||||
|
List<ContentResponseBean> contentList = Utils.convertJsonStringToList(formEntity.getContent(),
|
||||||
|
ContentResponseBean.class);
|
||||||
|
contentList.forEach(data -> {
|
||||||
|
List<Long> criteriaIds = criteriaFormFieldRepository
|
||||||
|
.findByCallIdAndFormIdAndFormFieldIdAndIsDeletedFalse(formEntity.getCall().getId(), formEntity.getId(), data.getId())
|
||||||
|
.stream().map(CriteriaFormFieldEntity::getEvaluationCriteriaId).toList();
|
||||||
|
data.setCriteria(criteriaIds);
|
||||||
|
});
|
||||||
|
return contentList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public FormResponseBean createForm(Long callId,FormRequest formRequest){
|
||||||
validateForm(formRequest);
|
validateForm(formRequest);
|
||||||
CallEntity callEntity=callService.validateCall(callId);
|
CallEntity callEntity=callService.validateCall(callId);
|
||||||
List<FlowDataEntity> flowDataEntities=flowDataRepository.findByCallId(callId);
|
List<FlowDataEntity> flowDataEntities=flowDataRepository.findByCallId(callId);
|
||||||
@@ -90,80 +112,145 @@ public class FormDao {
|
|||||||
callRepository.save(callEntity);
|
callRepository.save(callEntity);
|
||||||
}
|
}
|
||||||
FormEntity formEntity=convertFormRequestToFormEntity(callId,formRequest);
|
FormEntity formEntity=convertFormRequestToFormEntity(callId,formRequest);
|
||||||
|
validateAndSaveCriteriaFormField(callEntity, formEntity, formRequest.getContent());
|
||||||
return convertFormEntityToFormResponseBean(formEntity);
|
return convertFormEntityToFormResponseBean(formEntity);
|
||||||
}
|
}
|
||||||
public void validateForm(FormRequest formRequest){
|
|
||||||
|
private void validateAndSaveCriteriaFormField(CallEntity callEntity, FormEntity formEntity,
|
||||||
|
List<ContentRequestBean> contentResponseBeans) {
|
||||||
|
|
||||||
|
contentResponseBeans.forEach(content -> {
|
||||||
|
// Fetch existing records from the repository based on the call, form, and field ID
|
||||||
|
List<CriteriaFormFieldEntity> existingCriteriaFields = criteriaFormFieldRepository
|
||||||
|
.findByCallIdAndFormIdAndFormFieldIdAndIsDeletedFalse(callEntity.getId(), formEntity.getId(), content.getId());
|
||||||
|
|
||||||
|
// Extract existing evaluation criteria IDs into a set for quick lookup
|
||||||
|
Set<Long> existingEvaluationCriteriaIds = existingCriteriaFields.stream()
|
||||||
|
.map(CriteriaFormFieldEntity::getEvaluationCriteriaId)
|
||||||
|
.collect(Collectors.toSet());
|
||||||
|
|
||||||
|
// Get the criteria list (handling null as an empty list for uniformity)
|
||||||
|
List<Long> criteriaList = Optional.ofNullable(content.getCriteria()).orElse(Collections.emptyList());
|
||||||
|
|
||||||
|
// Filter and create new entries for criteria that are not already present
|
||||||
|
criteriaList.stream()
|
||||||
|
.filter(criteriaId -> !existingEvaluationCriteriaIds.contains(criteriaId))
|
||||||
|
.forEach(criteriaId -> createCriteriaFormField(callEntity, formEntity, content.getId(), criteriaId));
|
||||||
|
|
||||||
|
List<CriteriaFormFieldEntity> toBeDeleted = existingCriteriaFields.stream()
|
||||||
|
.filter(criteriaFormField -> !criteriaList.contains(criteriaFormField.getEvaluationCriteriaId()))
|
||||||
|
.peek(data->data.setIsDeleted(Boolean.TRUE))
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
if (!toBeDeleted.isEmpty()) {
|
||||||
|
criteriaFormFieldRepository.saveAll(toBeDeleted);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void createCriteriaFormField(CallEntity callEntity, FormEntity formEntity,
|
||||||
|
String formFieldId,Long evaluationCriteriaId) {
|
||||||
|
EvaluationCriteriaEntity evaluationCriteria = evaluationCriteriaService.validateEvaluationCriteria(evaluationCriteriaId);
|
||||||
|
if (Boolean.FALSE.equals(evaluationCriteria.getCall().getId().equals(callEntity.getId()))) {
|
||||||
|
throw new CustomValidationException(Status.VALIDATION_ERROR,
|
||||||
|
Translator.toLocale(GepafinConstant.EVALUATIONCRITERIA_INVALID));
|
||||||
|
}
|
||||||
|
CriteriaFormFieldEntity criteriaFormField = new CriteriaFormFieldEntity();
|
||||||
|
criteriaFormField.setCallId(callEntity.getId());
|
||||||
|
criteriaFormField.setFormId(formEntity.getId());
|
||||||
|
criteriaFormField.setFormFieldId(formFieldId);
|
||||||
|
criteriaFormField.setIsDeleted(Boolean.FALSE);
|
||||||
|
criteriaFormField.setEvaluationCriteriaId(evaluationCriteriaId);
|
||||||
|
criteriaFormFieldRepository.save(criteriaFormField);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void validateForm(FormRequest formRequest){
|
||||||
if(formRequest.getContent()==null || formRequest.getLabel()==null ){
|
if(formRequest.getContent()==null || formRequest.getLabel()==null ){
|
||||||
throw new CustomValidationException(Status.VALIDATION_ERROR, Translator.toLocale(GepafinConstant.REQUIRED_PARAMETER_NOT_FOUND_FOR_FORM));
|
throw new CustomValidationException(Status.VALIDATION_ERROR, Translator.toLocale(GepafinConstant.REQUIRED_PARAMETER_NOT_FOUND_FOR_FORM));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public FormResponseBean updateForm(Long formId, FormRequest formRequest,Boolean forceDeleteFlow){
|
|
||||||
ContentRequestBean contentRequestBean2=null;
|
public FormResponseBean updateForm(Long formId, FormRequest formRequest, Boolean forceDeleteFlow) {
|
||||||
String choosenField=null;
|
ContentRequestBean contentRequestBean2 = null;
|
||||||
FormEntity formEntity = validateForm(formId);
|
String choosenField = null;
|
||||||
callDao.validateUpdate(formEntity.getCall());
|
FormEntity formEntity = validateForm(formId);
|
||||||
List<ContentRequestBean> contentRequestBean = Utils.convertJsonStringToList(formEntity.getContent(), ContentRequestBean.class);
|
callDao.validateUpdate(formEntity.getCall());
|
||||||
for (ContentRequestBean contentRequestBean1 : contentRequestBean) {
|
List<ContentRequestBean> contentRequestBean = Utils.convertJsonStringToList(formEntity.getContent(),
|
||||||
FlowDataEntity flowDataEntity = flowDataRepository.findByFormIdAndChoosenField(formEntity.getId(), contentRequestBean1.getId());
|
ContentRequestBean.class);
|
||||||
if (flowDataEntity != null) {
|
for (ContentRequestBean contentRequestBean1 : contentRequestBean) {
|
||||||
choosenField = flowDataEntity.getChoosenField();
|
FlowDataEntity flowDataEntity = flowDataRepository.findByFormIdAndChoosenField(formEntity.getId(),
|
||||||
if (Boolean.TRUE.equals(contentRequestBean1.getId().equals(choosenField))) {
|
contentRequestBean1.getId());
|
||||||
contentRequestBean2 = contentRequestBean1;
|
if (flowDataEntity != null) {
|
||||||
break;
|
choosenField = flowDataEntity.getChoosenField();
|
||||||
}
|
if (Boolean.TRUE.equals(contentRequestBean1.getId().equals(choosenField))) {
|
||||||
}
|
contentRequestBean2 = contentRequestBean1;
|
||||||
}
|
break;
|
||||||
if (contentRequestBean2 != null) {
|
}
|
||||||
List<SettingRequestBean> settingRequestBeansDB = contentRequestBean2.getSettings();
|
}
|
||||||
for (ContentRequestBean contentRequestBeanRequest : formRequest.getContent()) {
|
}
|
||||||
if (contentRequestBeanRequest.getId().equals(contentRequestBean2.getId())) {
|
if (contentRequestBean2 != null) {
|
||||||
for (SettingRequestBean settingRequestBeanRequest : contentRequestBeanRequest.getSettings()) {
|
List<SettingRequestBean> settingRequestBeansDB = contentRequestBean2.getSettings();
|
||||||
for (SettingRequestBean settingRequestBeanDB : settingRequestBeansDB) {
|
for (ContentRequestBean contentRequestBeanRequest : formRequest.getContent()) {
|
||||||
if (settingRequestBeanRequest.getName().equals(settingRequestBeanDB.getName())) {
|
if (contentRequestBeanRequest.getId().equals(contentRequestBean2.getId())) {
|
||||||
if (!settingRequestBeanRequest.getValue().equals(settingRequestBeanDB.getValue())) {
|
for (SettingRequestBean settingRequestBeanRequest : contentRequestBeanRequest
|
||||||
if (Boolean.TRUE.equals(forceDeleteFlow)) {
|
.getSettings()) {
|
||||||
Utils.setIfUpdated(formEntity::getLabel, formEntity::setLabel, formRequest.getLabel());
|
for (SettingRequestBean settingRequestBeanDB : settingRequestBeansDB) {
|
||||||
Utils.setIfUpdated(formEntity::getContent, formEntity::setContent, setContentResponseBean(formRequest.getContent()));
|
if (settingRequestBeanRequest.getName().equals(settingRequestBeanDB.getName())) {
|
||||||
formEntity.setUpdatedDate(DateTimeUtil.DateServerToUTC(LocalDateTime.now()));
|
if (!settingRequestBeanRequest.getValue()
|
||||||
formEntity = saveFormEntity(formEntity);
|
.equals(settingRequestBeanDB.getValue())) {
|
||||||
List<FlowDataEntity> flowDataEntities = flowDataRepository.findByCallId(formEntity.getCall().getId());
|
if (Boolean.TRUE.equals(forceDeleteFlow)) {
|
||||||
List<FlowEdgesEntity> flowEdgesEntities = flowEdgesRepository.findByCallId(formEntity.getCall().getId());
|
Utils.setIfUpdated(formEntity::getLabel, formEntity::setLabel,
|
||||||
flowDataRepository.deleteAll(flowDataEntities);
|
formRequest.getLabel());
|
||||||
flowEdgesRepository.deleteAll(flowEdgesEntities);
|
Utils.setIfUpdated(formEntity::getContent, formEntity::setContent,
|
||||||
CallEntity callEntity = formEntity.getCall();
|
setContentResponseBean(formRequest.getContent()));
|
||||||
callEntity.setInitialForm(null);
|
formEntity.setUpdatedDate(
|
||||||
callEntity.setFinalForm(null);
|
DateTimeUtil.DateServerToUTC(LocalDateTime.now()));
|
||||||
callRepository.save(callEntity);
|
formEntity = saveFormEntity(formEntity);
|
||||||
return convertFormEntityToFormResponseBean(formEntity);
|
List<FlowDataEntity> flowDataEntities = flowDataRepository
|
||||||
} else {
|
.findByCallId(formEntity.getCall().getId());
|
||||||
throw new CustomValidationException(
|
List<FlowEdgesEntity> flowEdgesEntities = flowEdgesRepository
|
||||||
Status.BAD_REQUEST,
|
.findByCallId(formEntity.getCall().getId());
|
||||||
Translator.toLocale(GepafinConstant.UPDATING_FORM_VALUE_IMPACT_ON_FLOW, choosenField)
|
flowDataRepository.deleteAll(flowDataEntities);
|
||||||
);
|
flowEdgesRepository.deleteAll(flowEdgesEntities);
|
||||||
}
|
CallEntity callEntity = formEntity.getCall();
|
||||||
}
|
callEntity.setInitialForm(null);
|
||||||
else {
|
callEntity.setFinalForm(null);
|
||||||
Utils.setIfUpdated(formEntity::getLabel, formEntity::setLabel, formRequest.getLabel());
|
callRepository.save(callEntity);
|
||||||
Utils.setIfUpdated(formEntity::getContent, formEntity::setContent, setContentResponseBean(formRequest.getContent()));
|
return convertFormEntityToFormResponseBean(formEntity);
|
||||||
formEntity.setUpdatedDate(DateTimeUtil.DateServerToUTC(LocalDateTime.now()));
|
} else {
|
||||||
formEntity = saveFormEntity(formEntity);
|
throw new CustomValidationException(Status.BAD_REQUEST,
|
||||||
return convertFormEntityToFormResponseBean(formEntity);
|
Translator.toLocale(
|
||||||
}
|
GepafinConstant.UPDATING_FORM_VALUE_IMPACT_ON_FLOW,
|
||||||
}
|
choosenField));
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
}
|
Utils.setIfUpdated(formEntity::getLabel, formEntity::setLabel,
|
||||||
}
|
formRequest.getLabel());
|
||||||
}
|
Utils.setIfUpdated(formEntity::getContent, formEntity::setContent,
|
||||||
else {
|
setContentResponseBean(formRequest.getContent()));
|
||||||
Utils.setIfUpdated(formEntity::getLabel, formEntity::setLabel, formRequest.getLabel());
|
formEntity
|
||||||
Utils.setIfUpdated(formEntity::getContent, formEntity::setContent, setContentResponseBean(formRequest.getContent()));
|
.setUpdatedDate(DateTimeUtil.DateServerToUTC(LocalDateTime.now()));
|
||||||
formEntity.setUpdatedDate(DateTimeUtil.DateServerToUTC(LocalDateTime.now()));
|
formEntity = saveFormEntity(formEntity);
|
||||||
formEntity = saveFormEntity(formEntity);
|
return convertFormEntityToFormResponseBean(formEntity);
|
||||||
return convertFormEntityToFormResponseBean(formEntity);
|
}
|
||||||
}
|
}
|
||||||
return convertFormEntityToFormResponseBean(formEntity);
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
Utils.setIfUpdated(formEntity::getLabel, formEntity::setLabel, formRequest.getLabel());
|
||||||
|
Utils.setIfUpdated(formEntity::getContent, formEntity::setContent,
|
||||||
|
setContentResponseBean(formRequest.getContent()));
|
||||||
|
formEntity.setUpdatedDate(DateTimeUtil.DateServerToUTC(LocalDateTime.now()));
|
||||||
|
formEntity = saveFormEntity(formEntity);
|
||||||
|
validateAndSaveCriteriaFormField(formEntity.getCall(), formEntity, formRequest.getContent());
|
||||||
|
return convertFormEntityToFormResponseBean(formEntity);
|
||||||
|
}
|
||||||
|
return convertFormEntityToFormResponseBean(formEntity);
|
||||||
|
}
|
||||||
|
|
||||||
public FormEntity validateForm(Long formId) {
|
public FormEntity validateForm(Long formId) {
|
||||||
FormEntity formEntity = formRepository.findById(formId)
|
FormEntity formEntity = formRepository.findById(formId)
|
||||||
@@ -200,7 +287,10 @@ public class FormDao {
|
|||||||
return formResponseBeanList;
|
return formResponseBeanList;
|
||||||
}
|
}
|
||||||
public String setContentResponseBean(List<ContentRequestBean> contentRequestBeans){
|
public String setContentResponseBean(List<ContentRequestBean> contentRequestBeans){
|
||||||
return Utils.convertListToJsonString(contentRequestBeans);
|
String stringContentRequest = Utils.convertListToJsonString(contentRequestBeans);
|
||||||
|
List<ContentRequestBean> cloneContentRequestBeans = Utils.convertJsonStringToList(stringContentRequest, ContentRequestBean.class);
|
||||||
|
cloneContentRequestBeans.forEach(data->data.setCriteria(null));
|
||||||
|
return Utils.convertListToJsonString(cloneContentRequestBeans);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void validateFormField(List<ApplicationFormFieldRequestBean> applicationFormFieldRequestList, ApplicationEntity applicationEntity, FormEntity formEntity) {
|
public void validateFormField(List<ApplicationFormFieldRequestBean> applicationFormFieldRequestList, ApplicationEntity applicationEntity, FormEntity formEntity) {
|
||||||
|
|||||||
@@ -0,0 +1,24 @@
|
|||||||
|
package net.gepafin.tendermanagement.entities;
|
||||||
|
|
||||||
|
import jakarta.persistence.Column;
|
||||||
|
import jakarta.persistence.Entity;
|
||||||
|
import jakarta.persistence.Table;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Entity
|
||||||
|
@Table(name = "criteria_form_field")
|
||||||
|
@Data
|
||||||
|
public class CriteriaFormFieldEntity extends BaseEntity {
|
||||||
|
|
||||||
|
private Long callId;
|
||||||
|
|
||||||
|
private Long formId;
|
||||||
|
|
||||||
|
private String formFieldId;
|
||||||
|
|
||||||
|
private Long evaluationCriteriaId;
|
||||||
|
|
||||||
|
@Column(name ="IS_DELETED", nullable = false)
|
||||||
|
private Boolean isDeleted = false;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -13,6 +13,8 @@ public class ContentRequestBean {
|
|||||||
private String label;
|
private String label;
|
||||||
private List<SettingRequestBean> settings;
|
private List<SettingRequestBean> settings;
|
||||||
private Map<String,Object> validators;
|
private Map<String,Object> validators;
|
||||||
|
private List<Long> criteria;
|
||||||
|
private String dynamicData;
|
||||||
private Integer dbId;
|
private Integer dbId;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,5 +13,7 @@ public class ContentResponseBean {
|
|||||||
private String label;
|
private String label;
|
||||||
private List<SettingResponseBean> settings;
|
private List<SettingResponseBean> settings;
|
||||||
private Map<String,Object> validators;
|
private Map<String,Object> validators;
|
||||||
|
private List<Long> criteria;
|
||||||
|
private String dynamicData;
|
||||||
private Integer dbId;
|
private Integer dbId;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,17 @@
|
|||||||
|
package net.gepafin.tendermanagement.repositories;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
import net.gepafin.tendermanagement.entities.CriteriaFormFieldEntity;
|
||||||
|
|
||||||
|
@Repository
|
||||||
|
public interface CriteriaFormFieldRepository extends JpaRepository<CriteriaFormFieldEntity, Long>{
|
||||||
|
|
||||||
|
List<CriteriaFormFieldEntity> findByCallIdAndFormIdAndFormFieldIdAndIsDeletedFalse(Long callId, Long formId, String formFieldId);
|
||||||
|
|
||||||
|
List<CriteriaFormFieldEntity> findByEvaluationCriteriaIdAndIsDeletedFalse(Long evaluationCriteriaId);
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
package net.gepafin.tendermanagement.service;
|
package net.gepafin.tendermanagement.service;
|
||||||
|
|
||||||
import jakarta.servlet.http.HttpServletRequest;
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
|
import net.gepafin.tendermanagement.entities.EvaluationCriteriaEntity;
|
||||||
import net.gepafin.tendermanagement.model.request.EvaluationCriteriaRequest;
|
import net.gepafin.tendermanagement.model.request.EvaluationCriteriaRequest;
|
||||||
import net.gepafin.tendermanagement.model.response.EvaluationCriteriaResponseBean;
|
import net.gepafin.tendermanagement.model.response.EvaluationCriteriaResponseBean;
|
||||||
|
|
||||||
@@ -13,4 +14,6 @@ public interface EvaluationCriteriaService {
|
|||||||
public EvaluationCriteriaResponseBean updateEvaluationCriteria(HttpServletRequest request,Long id, EvaluationCriteriaRequest evaluationCriteriaRequest);
|
public EvaluationCriteriaResponseBean updateEvaluationCriteria(HttpServletRequest request,Long id, EvaluationCriteriaRequest evaluationCriteriaRequest);
|
||||||
|
|
||||||
public void deleteEvaluationCriteria(HttpServletRequest request,Long id);
|
public void deleteEvaluationCriteria(HttpServletRequest request,Long id);
|
||||||
|
|
||||||
|
public EvaluationCriteriaEntity validateEvaluationCriteria(Long id);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package net.gepafin.tendermanagement.service.impl;
|
|||||||
|
|
||||||
import jakarta.servlet.http.HttpServletRequest;
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import net.gepafin.tendermanagement.dao.EvaluationCriteriaDao;
|
import net.gepafin.tendermanagement.dao.EvaluationCriteriaDao;
|
||||||
|
import net.gepafin.tendermanagement.entities.EvaluationCriteriaEntity;
|
||||||
import net.gepafin.tendermanagement.model.request.EvaluationCriteriaRequest;
|
import net.gepafin.tendermanagement.model.request.EvaluationCriteriaRequest;
|
||||||
import net.gepafin.tendermanagement.model.response.EvaluationCriteriaResponseBean;
|
import net.gepafin.tendermanagement.model.response.EvaluationCriteriaResponseBean;
|
||||||
import net.gepafin.tendermanagement.service.EvaluationCriteriaService;
|
import net.gepafin.tendermanagement.service.EvaluationCriteriaService;
|
||||||
@@ -33,4 +34,9 @@ public class EvaluationCriteriaServiceImpl implements EvaluationCriteriaService
|
|||||||
public void deleteEvaluationCriteria(HttpServletRequest request,Long id) {
|
public void deleteEvaluationCriteria(HttpServletRequest request,Long id) {
|
||||||
evaluationCriteriaDao.deleteEvaluationCriteria(id);
|
evaluationCriteriaDao.deleteEvaluationCriteria(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EvaluationCriteriaEntity validateEvaluationCriteria(Long id) {
|
||||||
|
return evaluationCriteriaDao.validateEvaluationCriteria(id);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -72,7 +72,7 @@ public interface EvaluationCriteriaApi {
|
|||||||
@ExampleObject(value = ErrorConstants.UNAUTHORIZED_ERROR_EXAMPLE) }))
|
@ExampleObject(value = ErrorConstants.UNAUTHORIZED_ERROR_EXAMPLE) }))
|
||||||
})
|
})
|
||||||
@DeleteMapping(value = "/{id}", produces = MediaType.APPLICATION_JSON_VALUE)
|
@DeleteMapping(value = "/{id}", produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
ResponseEntity<Void> deleteEvaluationCriteria(HttpServletRequest request,
|
ResponseEntity<Response<Void>> deleteEvaluationCriteria(HttpServletRequest request,
|
||||||
@Parameter(description = "evaluation criteria id", required = true)
|
@Parameter(description = "evaluation criteria id", required = true)
|
||||||
@PathVariable("id") Long id);
|
@PathVariable("id") Long id);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -57,10 +57,10 @@ public class EvaluationCriteriaApiController implements EvaluationCriteriaApi {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Void> deleteEvaluationCriteria(HttpServletRequest request, Long id) {
|
public ResponseEntity<Response<Void>> deleteEvaluationCriteria(HttpServletRequest request, Long id) {
|
||||||
service.deleteEvaluationCriteria(request,id);
|
service.deleteEvaluationCriteria(request,id);
|
||||||
|
|
||||||
return ResponseEntity.status(HttpStatus.OK)
|
return ResponseEntity.status(HttpStatus.OK)
|
||||||
.header("Message", Translator.toLocale(GepafinConstant.EVALUATION_CRITERIA_DELETED_SUCCESSFULLY))
|
.body(new Response<>(null, Status.SUCCESS, Translator.toLocale(GepafinConstant.EVALUATION_CRITERIA_DELETED_SUCCESSFULLY)));
|
||||||
.build();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1101,6 +1101,44 @@
|
|||||||
<column name="country" value="Italy"/>
|
<column name="country" value="Italy"/>
|
||||||
</insert>
|
</insert>
|
||||||
</changeSet>
|
</changeSet>
|
||||||
|
|
||||||
|
<changeSet id="16-10-2024_2" author="Rajesh Khore">
|
||||||
|
|
||||||
|
<createTable tableName="criteria_form_field">
|
||||||
|
<column autoIncrement="true" name="id" type="INTEGER">
|
||||||
|
<constraints nullable="false" primaryKey="true"
|
||||||
|
primaryKeyName="criteria_form_field_pkey" />
|
||||||
|
</column>
|
||||||
|
<column name="call_id" type="INTEGER" />
|
||||||
|
<column name="form_id" type="INTEGER" />
|
||||||
|
<column name="form_field_id" type="varchar(255)" />
|
||||||
|
<column name="evaluation_criteria_id" type="INTEGER" />
|
||||||
|
<column name="IS_DELETED" type="BOOLEAN" defaultValueBoolean="true">
|
||||||
|
<constraints nullable="false"/>
|
||||||
|
</column>
|
||||||
|
<column name="created_date" type="TIMESTAMP WITHOUT TIME ZONE" />
|
||||||
|
<column name="updated_date" type="TIMESTAMP WITHOUT TIME ZONE" />
|
||||||
|
</createTable>
|
||||||
|
|
||||||
|
<addForeignKeyConstraint baseTableName="criteria_form_field"
|
||||||
|
baseColumnNames="call_id"
|
||||||
|
referencedTableName="call"
|
||||||
|
referencedColumnNames="id"
|
||||||
|
constraintName="fk_criteria_form_field_call_id"/>
|
||||||
|
|
||||||
|
<addForeignKeyConstraint baseTableName="criteria_form_field"
|
||||||
|
baseColumnNames="form_id"
|
||||||
|
referencedTableName="form"
|
||||||
|
referencedColumnNames="id"
|
||||||
|
constraintName="fk_criteria_form_field_form_id"/>
|
||||||
|
|
||||||
|
<addForeignKeyConstraint baseTableName="criteria_form_field"
|
||||||
|
baseColumnNames="evaluation_criteria_id"
|
||||||
|
referencedTableName="evaluation_criteria"
|
||||||
|
referencedColumnNames="id"
|
||||||
|
constraintName="fk_criteria_form_field_evaluation_criteria_id"/>
|
||||||
|
</changeSet>
|
||||||
|
|
||||||
<changeSet id="16-10-2024_1" author="Harish Bagora">
|
<changeSet id="16-10-2024_1" author="Harish Bagora">
|
||||||
<addColumn tableName="user_with_company">
|
<addColumn tableName="user_with_company">
|
||||||
<column name="is_deleted" type="BOOLEAN" defaultValueBoolean="false">
|
<column name="is_deleted" type="BOOLEAN" defaultValueBoolean="false">
|
||||||
|
|||||||
@@ -253,6 +253,8 @@ get_login_attempt_se_msg=Login attempts fetched successfully.
|
|||||||
application.in.submit.status.cannot.delete.company=The company cannot be deleted because there are active applications in the SUBMITTED status.
|
application.in.submit.status.cannot.delete.company=The company cannot be deleted because there are active applications in the SUBMITTED status.
|
||||||
get.users.success.msg = Successfully fetched users.
|
get.users.success.msg = Successfully fetched users.
|
||||||
cannot.create.beneficiary.user = Creation of a Beneficiary user is not allowed. Please assign the appropriate role.
|
cannot.create.beneficiary.user = Creation of a Beneficiary user is not allowed. Please assign the appropriate role.
|
||||||
|
evaluationCriteria.invalid=This evaluation criterion does not belong to the current call.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -250,4 +250,6 @@ application.in.submit.status.cannot.delete.company=Non
|
|||||||
|
|
||||||
get.users.success.msg = Utenti recuperati con successo
|
get.users.success.msg = Utenti recuperati con successo
|
||||||
cannot.create.beneficiary.user = La creazione di un utente beneficiario non è consentita. Si prega di assegnare il ruolo appropriato.
|
cannot.create.beneficiary.user = La creazione di un utente beneficiario non è consentita. Si prega di assegnare il ruolo appropriato.
|
||||||
|
evaluationCriteria.invalid=Questo criterio di valutazione non appartiene alla chiamata corrente.
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user