Search in sources :

Example 1 with SecurityRequestRoleQualificationDetail

use of edu.cornell.kfs.ksr.businessobject.SecurityRequestRoleQualificationDetail in project cu-kfs by CU-CommunityApps.

the class SecurityRequestDocumentRule method isDocumentAttributesValid.

@Override
public boolean isDocumentAttributesValid(Document document, boolean validateRequired) {
    boolean success = true;
    SecurityRequestDocument securityRequestDocument = (SecurityRequestDocument) document;
    for (int i = 0; i < securityRequestDocument.getSecurityRequestRoles().size(); i++) {
        SecurityRequestRole securityRequestRole = securityRequestDocument.getSecurityRequestRoles().get(i);
        KimType tempTypeInfo = KimApiServiceLocator.getKimTypeInfoService().getKimType(securityRequestRole.getRoleInfo().getKimTypeId());
        if (!securityRequestRole.isActive()) {
            continue;
        } else if (!securityRequestRole.isQualifiedRole()) {
            continue;
        } else {
            String[] requiredQualifications = getRequiredQualificationsMap().get(tempTypeInfo.getServiceName());
            if (requiredQualifications != null && requiredQualifications.length > 0) {
                boolean qualsValid = true;
                boolean[] hasQuals = new boolean[requiredQualifications.length];
                for (SecurityRequestRoleQualification roleQualification : securityRequestRole.getRequestRoleQualifications()) {
                    Arrays.fill(hasQuals, false);
                    for (SecurityRequestRoleQualificationDetail qualDetail : roleQualification.getRoleQualificationDetails()) {
                        for (int j = requiredQualifications.length - 1; j >= 0; j--) {
                            if (requiredQualifications[j].equals(qualDetail.getAttributeName()) && StringUtils.isNotBlank(qualDetail.getAttributeValue())) {
                                hasQuals[j] = true;
                            }
                        }
                    }
                    for (boolean hasQual : hasQuals) {
                        qualsValid &= hasQual;
                    }
                }
                if (!qualsValid || securityRequestRole.getRequestRoleQualifications().size() == 0) {
                    success = false;
                    GlobalVariables.getMessageMap().putError(KSRPropertyConstants.SECURITY_REQUEST_DOC_REQUEST_ROLE + "[" + i + "].active", KSRKeyConstants.ERROR_SECURITY_REQUEST_DOC_QUALIFIER_MULTI_MISSING, new String[] { securityRequestRole.getRoleInfo().getName() });
                }
            } else if (securityRequestRole.getRequestRoleQualifications().size() == 0) {
                securityRequestRole.getRequestRoleQualifications().add(SpringContext.getBean(SecurityRequestDocumentService.class).buildRoleQualificationLine(securityRequestRole, null));
            }
        }
        for (int j = 0; j < securityRequestRole.getRequestRoleQualifications().size(); j++) {
            SecurityRequestRoleQualification requestRoleQualification = securityRequestRole.getRequestRoleQualifications().get(j);
            String typeId = securityRequestRole.getRoleInfo().getKimTypeId();
            KimType typeInfo = KimApiServiceLocator.getKimTypeInfoService().getKimType(typeId);
            String fieldKeyPrefix = KSRPropertyConstants.SECURITY_REQUEST_DOC_REQUEST_ROLE + "[" + i + "]." + KSRPropertyConstants.SECURITY_REQUEST_DOC_ROLE_QUAL + "[" + j + "].";
            success &= validateQualification(typeInfo, requestRoleQualification, fieldKeyPrefix);
        }
    }
    return super.isDocumentAttributesValid(document, validateRequired) && success;
}
Also used : KimType(org.kuali.kfs.kim.impl.type.KimType) SecurityRequestRoleQualificationDetail(edu.cornell.kfs.ksr.businessobject.SecurityRequestRoleQualificationDetail) SecurityRequestRoleQualification(edu.cornell.kfs.ksr.businessobject.SecurityRequestRoleQualification) SecurityRequestRole(edu.cornell.kfs.ksr.businessobject.SecurityRequestRole) SecurityRequestDocument(edu.cornell.kfs.ksr.document.SecurityRequestDocument)

Example 2 with SecurityRequestRoleQualificationDetail

use of edu.cornell.kfs.ksr.businessobject.SecurityRequestRoleQualificationDetail in project cu-kfs by CU-CommunityApps.

the class SecurityRequestDocumentServiceImpl method buildRoleQualificationLine.

public SecurityRequestRoleQualification buildRoleQualificationLine(SecurityRequestRole requestRole, Map<String, String> qualification) {
    SecurityRequestRoleQualification requestQualification = new SecurityRequestRoleQualification();
    requestQualification.setDocumentNumber(requestRole.getDocumentNumber());
    requestQualification.setRoleRequestId(requestRole.getRoleRequestId());
    KimType typeInfo = KSRUtil.getTypeInfoForRoleRequest(requestRole);
    List<KimTypeAttribute> typeAttributes = KSRUtil.getTypeAttributesForRoleRequest(requestRole);
    for (KimTypeAttribute attributeInfo : typeAttributes) {
        SecurityRequestRoleQualificationDetail requestQualificationDetail = new SecurityRequestRoleQualificationDetail();
        requestQualificationDetail.setDocumentNumber(requestRole.getDocumentNumber());
        requestQualificationDetail.setRoleRequestId(requestRole.getRoleRequestId());
        requestQualificationDetail.setQualificationId(requestRole.getNextQualificationId());
        requestQualificationDetail.setAttributeId(attributeInfo.getKimAttribute().getId());
        requestQualificationDetail.setRoleTypeId(typeInfo.getId());
        if ((qualification != null) && qualification.containsKey(attributeInfo.getKimAttribute().getAttributeName())) {
            requestQualificationDetail.setAttributeValue(qualification.get(attributeInfo.getKimAttribute().getAttributeName()));
        }
        requestQualification.getRoleQualificationDetails().add(requestQualificationDetail);
    }
    requestQualification.setQualificationId(requestRole.getNextQualificationId());
    requestRole.setNextQualificationId(requestRole.getNextQualificationId() + 1);
    return requestQualification;
}
Also used : KimType(org.kuali.kfs.kim.impl.type.KimType) SecurityRequestRoleQualificationDetail(edu.cornell.kfs.ksr.businessobject.SecurityRequestRoleQualificationDetail) KimTypeAttribute(org.kuali.kfs.kim.impl.type.KimTypeAttribute) SecurityRequestRoleQualification(edu.cornell.kfs.ksr.businessobject.SecurityRequestRoleQualification)

Aggregations

SecurityRequestRoleQualification (edu.cornell.kfs.ksr.businessobject.SecurityRequestRoleQualification)2 SecurityRequestRoleQualificationDetail (edu.cornell.kfs.ksr.businessobject.SecurityRequestRoleQualificationDetail)2 KimType (org.kuali.kfs.kim.impl.type.KimType)2 SecurityRequestRole (edu.cornell.kfs.ksr.businessobject.SecurityRequestRole)1 SecurityRequestDocument (edu.cornell.kfs.ksr.document.SecurityRequestDocument)1 KimTypeAttribute (org.kuali.kfs.kim.impl.type.KimTypeAttribute)1