Search in sources :

Example 1 with PersistableBusinessObject

use of org.kuali.kfs.krad.bo.PersistableBusinessObject in project cu-kfs by CU-CommunityApps.

the class UserProcurementProfileLookupableHelperServiceImpl method getSearchResultsWithAcctCriteria.

private List<PersistableBusinessObject> getSearchResultsWithAcctCriteria(List<PersistableBusinessObject> searchResults, Map<String, String> newFieldValues) {
    List<PersistableBusinessObject> returnResults = new ArrayList<PersistableBusinessObject>();
    for (String profileId : getSelectedUsers(searchResults)) {
        newFieldValues.put("userProfileId", profileId);
        List<PersistableBusinessObject> searchResults1 = (List) getLookupService().findCollectionBySearch(FavoriteAccount.class, newFieldValues);
        for (PersistableBusinessObject pbo : searchResults1) {
            FavoriteAccount account = (FavoriteAccount) pbo;
            returnResults.add(buildUserProfile(account.getUserProcurementProfile(), account));
        }
    }
    sortList(returnResults);
    return returnResults;
}
Also used : PersistableBusinessObject(org.kuali.kfs.krad.bo.PersistableBusinessObject) FavoriteAccount(edu.cornell.kfs.sys.businessobject.FavoriteAccount) ArrayList(java.util.ArrayList) ArrayList(java.util.ArrayList) List(java.util.List)

Example 2 with PersistableBusinessObject

use of org.kuali.kfs.krad.bo.PersistableBusinessObject in project cu-kfs by CU-CommunityApps.

the class AccountReversionGlobal method generateGlobalChangesToPersist.

/**
 * @see org.kuali.kfs.kns.bo.GlobalBusinessObject#generateGlobalChangesToPersist() This creates a list of changes to be made to the
 *      existing and/or new Account Reversion records impacted by this global reversion.
 */
public List<PersistableBusinessObject> generateGlobalChangesToPersist() {
    List<PersistableBusinessObject> persistingChanges = new ArrayList<PersistableBusinessObject>();
    AccountReversionService accountReversionService = SpringContext.getBean(AccountReversionService.class);
    Map<String, AccountReversionGlobalDetail> detailsMap = this.rearrangeAccountReversionDetailsAsMap();
    for (AccountReversionGlobalAccount acctRevAccount : this.getAccountReversionGlobalAccounts()) {
        // 1. find that account reversion
        AccountReversion currAcctRev = accountReversionService.getByPrimaryId(this.getUniversityFiscalYear(), acctRevAccount.getChartOfAccountsCode(), acctRevAccount.getAccountNumber());
        if (ObjectUtils.isNull(currAcctRev)) {
            // If account reversion does not exist, then create it and its details.
            currAcctRev = new AccountReversion();
            currAcctRev.setUniversityFiscalYear(this.getUniversityFiscalYear());
            currAcctRev.setChartOfAccountsCode(acctRevAccount.getChartOfAccountsCode());
            currAcctRev.setAccountNumber(acctRevAccount.getAccountNumber());
            for (AccountReversionGlobalDetail globalDetail : this.getAccountReversionGlobalDetails()) {
                AccountReversionDetail revDetail = new AccountReversionDetail();
                revDetail.setAccountReversionCategoryCode(globalDetail.getAccountReversionCategoryCode());
                revDetail.setUniversityFiscalYear(currAcctRev.getUniversityFiscalYear());
                revDetail.setChartOfAccountsCode(currAcctRev.getChartOfAccountsCode());
                revDetail.setAccountNumber(currAcctRev.getAccountNumber());
                currAcctRev.addAccountReversionDetail(revDetail);
            }
        }
        // 2. update account reversion
        if (!StringUtils.isBlank(this.getBudgetReversionChartOfAccountsCode())) {
            currAcctRev.setBudgetReversionChartOfAccountsCode(this.getBudgetReversionChartOfAccountsCode());
        }
        if (!StringUtils.isBlank(this.getBudgetReversionAccountNumber())) {
            currAcctRev.setBudgetReversionAccountNumber(this.getBudgetReversionAccountNumber());
        }
        if (!StringUtils.isBlank(this.getCashReversionFinancialChartOfAccountsCode())) {
            currAcctRev.setCashReversionFinancialChartOfAccountsCode(this.getCashReversionFinancialChartOfAccountsCode());
        }
        if (!StringUtils.isBlank(this.getCashReversionAccountNumber())) {
            currAcctRev.setCashReversionAccountNumber(this.getCashReversionAccountNumber());
        }
        if (this.isCarryForwardByObjectCodeIndicator() != null) {
            currAcctRev.setCarryForwardByObjectCodeIndicator(this.isCarryForwardByObjectCodeIndicator().booleanValue());
        }
        if (this.isReversionActiveIndicator() != null) {
            currAcctRev.setActive(this.isReversionActiveIndicator().booleanValue());
        }
        // 3. now, go through each account reversion detail and update each of those
        for (AccountReversionDetail acctRevDetail : currAcctRev.getAccountReversionDetails()) {
            AccountReversionGlobalDetail changeDetail = detailsMap.get(acctRevDetail.getAccountReversionCategoryCode());
            if (changeDetail != null) {
                if (!StringUtils.isBlank(changeDetail.getAccountReversionCode())) {
                    acctRevDetail.setAccountReversionCode(changeDetail.getAccountReversionCode());
                }
                if (!StringUtils.isBlank(changeDetail.getAccountReversionObjectCode())) {
                    acctRevDetail.setAccountReversionObjectCode(changeDetail.getAccountReversionObjectCode());
                }
                if (this.isReversionActiveIndicator() != null) {
                    acctRevDetail.setActive(this.isReversionActiveIndicator().booleanValue());
                }
            }
        }
        currAcctRev.refreshNonUpdateableReferences();
        persistingChanges.add(currAcctRev);
    }
    return persistingChanges;
}
Also used : PersistableBusinessObject(org.kuali.kfs.krad.bo.PersistableBusinessObject) ArrayList(java.util.ArrayList) AccountReversionService(edu.cornell.kfs.coa.service.AccountReversionService)

Example 3 with PersistableBusinessObject

use of org.kuali.kfs.krad.bo.PersistableBusinessObject in project cu-kfs by CU-CommunityApps.

the class OrganizationGlobal method generateGlobalChangesToPersist.

@Override
public List<PersistableBusinessObject> generateGlobalChangesToPersist() {
    /*
         * The logic below is based on that from the AccountGlobal class.
         */
    List<PersistableBusinessObject> globalChanges = new ArrayList<PersistableBusinessObject>();
    BusinessObjectService boService = SpringContext.getBean(BusinessObjectService.class);
    for (OrganizationGlobalDetail detail : organizationGlobalDetails) {
        Organization org = boService.findByPrimaryKey(Organization.class, detail.getPrimaryKeys());
        if (org != null) {
            // ORGANIZATION MANAGER UNIVERSAL ID
            if (StringUtils.isNotBlank(organizationManagerUniversalId)) {
                org.setOrganizationManagerUniversalId(organizationManagerUniversalId);
            }
            // ORGANIZATION PHYSICAL CAMPUS CODE
            if (StringUtils.isNotBlank(organizationPhysicalCampusCode)) {
                org.setOrganizationPhysicalCampusCode(organizationPhysicalCampusCode);
            }
            // ORGANIZATION LINE 1 ADDRESS
            if (StringUtils.isNotBlank(organizationLine1Address)) {
                org.setOrganizationLine1Address(organizationLine1Address);
            }
            // ORGANIZATION LINE 2 ADDRESS
            if (StringUtils.isNotBlank(organizationLine2Address)) {
                org.setOrganizationLine2Address(organizationLine2Address);
            }
            // ORGANIZATION CITY NAME
            if (StringUtils.isNotBlank(organizationCityName)) {
                org.setOrganizationCityName(organizationCityName);
            }
            // ORGANIZATION STATE CODE
            if (StringUtils.isNotBlank(organizationStateCode)) {
                org.setOrganizationStateCode(organizationStateCode);
            }
            // ORGANIZATION ZIP CODE
            if (StringUtils.isNotBlank(organizationZipCode)) {
                org.setOrganizationZipCode(organizationZipCode);
            }
            // ORGANIZATION COUNTRY CODE
            if (StringUtils.isNotBlank(organizationCountryCode)) {
                org.setOrganizationCountryCode(organizationCountryCode);
            }
            globalChanges.add(org);
        }
    }
    return globalChanges;
}
Also used : PersistableBusinessObject(org.kuali.kfs.krad.bo.PersistableBusinessObject) Organization(org.kuali.kfs.coa.businessobject.Organization) ArrayList(java.util.ArrayList) BusinessObjectService(org.kuali.kfs.krad.service.BusinessObjectService)

Example 4 with PersistableBusinessObject

use of org.kuali.kfs.krad.bo.PersistableBusinessObject in project cu-kfs by CU-CommunityApps.

the class CuDisbursementVoucherNonResidentAlienInformationValidation method validate.

@Override
public boolean validate(AttributedDocumentEvent event) {
    LOG.debug("validate start");
    boolean isValid = true;
    DisbursementVoucherDocument document = (DisbursementVoucherDocument) accountingDocumentForValidation;
    DisbursementVoucherNonResidentAlienTax nonResidentAlienTax = document.getDvNonResidentAlienTax();
    DisbursementVoucherPayeeDetail payeeDetail = document.getDvPayeeDetail();
    Person financialSystemUser = GlobalVariables.getUserSession().getPerson();
    List<String> taxEditMode = this.getTaxEditMode();
    if (!payeeDetail.isDisbVchrAlienPaymentCode() || !this.hasRequiredEditMode(document, financialSystemUser, taxEditMode)) {
        return true;
    }
    MessageMap errors = GlobalVariables.getMessageMap();
    errors.addToErrorPath(KFSPropertyConstants.DOCUMENT);
    errors.addToErrorPath(KFSPropertyConstants.DV_NON_RESIDENT_ALIEN_TAX);
    /* income class code required */
    if (StringUtils.isBlank(nonResidentAlienTax.getIncomeClassCode())) {
        errors.putErrorWithoutFullErrorPath("DVNRATaxErrors", KFSKeyConstants.ERROR_REQUIRED, "Income class code");
        return false;
    }
    /* country code required, unless income type is nonreportable */
    if (StringUtils.isBlank(nonResidentAlienTax.getPostalCountryCode()) && !NRA_TAX_INCOME_CLASS_NON_REPORTABLE.equals(nonResidentAlienTax.getIncomeClassCode())) {
        errors.putErrorWithoutFullErrorPath("DVNRATaxErrors", KFSKeyConstants.ERROR_REQUIRED, "Country code");
        return false;
    }
    // income class is FELLOWSHIP
    if (nonResidentAlienTax.getIncomeClassCode().equals(NRA_TAX_INCOME_CLASS_FELLOWSHIP)) {
    // Place holder for logic related to the ICC
    }
    // income class is INDEPENDENT CONTRACTOR
    if (nonResidentAlienTax.getIncomeClassCode().equals(NRA_TAX_INCOME_CLASS_INDEPENDENT_CONTRACTOR)) {
    // Place holder for logic related to the ICC
    }
    // income class is ROYALTIES
    if (nonResidentAlienTax.getIncomeClassCode().equals(NRA_TAX_INCOME_CLASS_ROYALTIES)) {
    // Place holder for logic related to the ICC
    }
    // income class is NON_REPORTABLE
    if (nonResidentAlienTax.getIncomeClassCode().equals(NRA_TAX_INCOME_CLASS_NON_REPORTABLE)) {
        if ((nonResidentAlienTax.isForeignSourceIncomeCode()) || (nonResidentAlienTax.isIncomeTaxTreatyExemptCode()) || (nonResidentAlienTax.isTaxOtherExemptIndicator()) || (nonResidentAlienTax.isIncomeTaxGrossUpCode()) || (nonResidentAlienTax.isTaxUSAIDPerDiemIndicator()) || (nonResidentAlienTax.getTaxSpecialW4Amount() != null) || (nonResidentAlienTax.getReferenceFinancialDocumentNumber() != null) || (nonResidentAlienTax.getTaxNQIId() != null) || (nonResidentAlienTax.getPostalCountryCode() != null)) {
            String boxCode = "";
            if (nonResidentAlienTax.isForeignSourceIncomeCode()) {
                boxCode = "Foreign Source";
            }
            if (nonResidentAlienTax.isIncomeTaxTreatyExemptCode()) {
                boxCode = "Treaty Exempt";
            }
            if (nonResidentAlienTax.isTaxOtherExemptIndicator()) {
                boxCode = "Exempt Under Other Code";
            }
            if (nonResidentAlienTax.isIncomeTaxGrossUpCode()) {
                boxCode = "Gross Up Payment";
            }
            if (nonResidentAlienTax.isTaxUSAIDPerDiemIndicator()) {
                boxCode = "USAID Per Diem";
            }
            if (nonResidentAlienTax.getTaxSpecialW4Amount() != null) {
                boxCode = "Special W-4 Amount";
            }
            if (nonResidentAlienTax.getReferenceFinancialDocumentNumber() != null) {
                boxCode = "Reference Doc";
            }
            if (nonResidentAlienTax.getTaxNQIId() != null) {
                boxCode = "NQI Id";
            }
            if (nonResidentAlienTax.getPostalCountryCode() != null) {
                boxCode = "Country Code";
            }
            errors.putErrorWithoutFullErrorPath("DVNRATaxErrors", KFSKeyConstants.ERROR_DV_NON_REPORTABLE_ONLY, boxCode);
            return false;
        }
    }
    /* check tax rates */
    if (((nonResidentAlienTax.getFederalIncomeTaxPercent() == null) || (nonResidentAlienTax.getFederalIncomeTaxPercent().equals(KualiDecimal.ZERO))) && (nonResidentAlienTax.getIncomeClassCode().equals(NRA_TAX_INCOME_CLASS_NON_REPORTABLE))) {
        nonResidentAlienTax.setFederalIncomeTaxPercent(KualiDecimal.ZERO);
    } else {
        if (nonResidentAlienTax.getFederalIncomeTaxPercent() == null) {
            errors.putErrorWithoutFullErrorPath("DVNRATaxErrors", KFSKeyConstants.ERROR_REQUIRED, "Federal tax percent");
            return false;
        } else {
            // check Federal tax percent is in non-resident alien tax percent table for income class code
            NonResidentAlienTaxPercent taxPercent = new NonResidentAlienTaxPercent();
            taxPercent.setIncomeClassCode(nonResidentAlienTax.getIncomeClassCode());
            taxPercent.setIncomeTaxTypeCode(FEDERAL_TAX_TYPE_CODE);
            taxPercent.setIncomeTaxPercent(nonResidentAlienTax.getFederalIncomeTaxPercent());
            NonResidentAlienTaxPercent retrievedPercent = (NonResidentAlienTaxPercent) SpringContext.getBean(BusinessObjectService.class).retrieve(taxPercent);
            if (retrievedPercent == null) {
                errors.putErrorWithoutFullErrorPath("DVNRATaxErrors", KFSKeyConstants.ERROR_DV_INVALID_FED_TAX_PERCENT, new String[] { nonResidentAlienTax.getFederalIncomeTaxPercent().toString(), nonResidentAlienTax.getIncomeClassCode() });
                return false;
            }
        }
    }
    if (((nonResidentAlienTax.getStateIncomeTaxPercent() == null) || (nonResidentAlienTax.getStateIncomeTaxPercent().equals(KualiDecimal.ZERO))) && (nonResidentAlienTax.getIncomeClassCode().equals(NRA_TAX_INCOME_CLASS_NON_REPORTABLE))) {
        nonResidentAlienTax.setStateIncomeTaxPercent(KualiDecimal.ZERO);
    } else {
        if (nonResidentAlienTax.getStateIncomeTaxPercent() == null) {
            errors.putErrorWithoutFullErrorPath("DVNRATaxErrors", KFSKeyConstants.ERROR_REQUIRED, "State tax percent");
            return false;
        } else {
            // check State tax percent is in non-resident alien tax percent table for income class code
            NonResidentAlienTaxPercent taxPercent = new NonResidentAlienTaxPercent();
            taxPercent.setIncomeClassCode(nonResidentAlienTax.getIncomeClassCode());
            taxPercent.setIncomeTaxTypeCode(STATE_TAX_TYPE_CODE);
            taxPercent.setIncomeTaxPercent(nonResidentAlienTax.getStateIncomeTaxPercent());
            PersistableBusinessObject retrievedPercent = SpringContext.getBean(BusinessObjectService.class).retrieve(taxPercent);
            if (retrievedPercent == null) {
                errors.putErrorWithoutFullErrorPath("DVNRATaxErrors", KFSKeyConstants.ERROR_DV_INVALID_STATE_TAX_PERCENT, nonResidentAlienTax.getStateIncomeTaxPercent().toString(), nonResidentAlienTax.getIncomeClassCode());
                return false;
            } else {
                if ((!document.getDvNonResidentAlienTax().getIncomeClassCode().equals(NRA_TAX_INCOME_CLASS_ROYALTIES)) && (!document.getDvNonResidentAlienTax().getIncomeClassCode().equals(NRA_TAX_INCOME_CLASS_INDEPENDENT_CONTRACTOR))) {
                    // If fed tax rate is zero, the state tax rate should be zero.
                    if ((document.getDvNonResidentAlienTax().getFederalIncomeTaxPercent().equals(KualiDecimal.ZERO)) && (!document.getDvNonResidentAlienTax().getStateIncomeTaxPercent().isZero())) {
                        errors.putErrorWithoutFullErrorPath("DVNRATaxErrors", KFSKeyConstants.ERROR_DV_STATE_TAX_SHOULD_BE_ZERO);
                        return false;
                    }
                }
            }
        }
    }
    // the 4 check boxes (Foreign Source, Treaty Exempt, Gross Up Payment, Exempt Under Other Code) shall be mutual exclusive
    if (OneOrLessBoxesChecked(document)) {
        // if Foreign Source is checked
        if (nonResidentAlienTax.isForeignSourceIncomeCode()) {
            // Federal and State tax rate should be zero.
            if ((!nonResidentAlienTax.getFederalIncomeTaxPercent().equals(KualiDecimal.ZERO)) || (!nonResidentAlienTax.getStateIncomeTaxPercent().equals(KualiDecimal.ZERO))) {
                errors.putErrorWithoutFullErrorPath("DVNRATaxErrors", KFSKeyConstants.ERROR_DV_NRA_TAX_WHEN_CHECKED_FEDERAL_AND_STATE_TAXES_SHOULD_BE_ZERO, "Foreign Source");
                return false;
            }
            // No other items (mutual exclusiveness checking on USAID Per Diem and Special W-4 Amount are optional here since these are also ensured by their validation later)
            if ((nonResidentAlienTax.isTaxUSAIDPerDiemIndicator()) || (nonResidentAlienTax.getTaxSpecialW4Amount() != null) || (nonResidentAlienTax.getReferenceFinancialDocumentNumber() != null) || (nonResidentAlienTax.getTaxNQIId() != null)) {
                errors.putErrorWithoutFullErrorPath("DVNRATaxErrors", KFSKeyConstants.ERROR_DV_NRA_TAX_WHEN_CHECKED_CANNOT_HAVE_VALUE, "Foreign Source", "NQI Id, Reference Doc, USAID Per Diem, or Special W-4 Amount");
                return false;
            }
        }
        // if Treaty Exempt is checked
        if (nonResidentAlienTax.isIncomeTaxTreatyExemptCode()) {
            // No other items (mutual exclusiveness checking on USAID Per Diem and Special W-4 Amount are optional here since these are also ensured by their validation later)
            if ((nonResidentAlienTax.isTaxUSAIDPerDiemIndicator()) || (nonResidentAlienTax.getTaxSpecialW4Amount() != null) || (nonResidentAlienTax.getReferenceFinancialDocumentNumber() != null) || (nonResidentAlienTax.getTaxNQIId() != null)) {
                errors.putErrorWithoutFullErrorPath("DVNRATaxErrors", KFSKeyConstants.ERROR_DV_NRA_TAX_WHEN_CHECKED_CANNOT_HAVE_VALUE, "Treaty Exempt", "NQI Id, Reference Doc, USAID Per Diem, or Special W-4 Amount");
                return false;
            }
        }
        // if Gross Up Payment is checked
        if (nonResidentAlienTax.isIncomeTaxGrossUpCode()) {
            // NOTE: Also, state tax not allowed to be zero for income classes "R" and "I", however, this rule is already checked in the tax rate section, so no need to re-check
            if ((nonResidentAlienTax.getFederalIncomeTaxPercent().equals(KualiDecimal.ZERO))) {
                errors.putErrorWithoutFullErrorPath("DVNRATaxErrors", KFSKeyConstants.ERROR_DV_NRA_TAX_WHEN_CHECKED_FEDERAL_TAX_CANNOT_BE_ZERO, "Gross Up Payment");
                return false;
            }
            // No other items (mutual exclusiveness checking on USAID Per Diem and Special W-4 Amount are optional here since these are also ensured by their validation later)
            if ((nonResidentAlienTax.isTaxUSAIDPerDiemIndicator()) || (nonResidentAlienTax.getTaxSpecialW4Amount() != null) || (nonResidentAlienTax.getReferenceFinancialDocumentNumber() != null) || (nonResidentAlienTax.getTaxNQIId() != null)) {
                errors.putErrorWithoutFullErrorPath("DVNRATaxErrors", KFSKeyConstants.ERROR_DV_NRA_TAX_WHEN_CHECKED_CANNOT_HAVE_VALUE, "Gross Up Payment", "NQI Id, Reference Doc, USAID Per Diem, or Special W-4 Amount");
                return false;
            }
        }
        // if Exempt Under Other Code is checked
        if (nonResidentAlienTax.isTaxOtherExemptIndicator()) {
            // Federal and State tax rate should be zero.
            if (!(nonResidentAlienTax.getStateIncomeTaxPercent().equals(KualiDecimal.ZERO)) || !(nonResidentAlienTax.getFederalIncomeTaxPercent().equals(KualiDecimal.ZERO))) {
                errors.putErrorWithoutFullErrorPath("DVNRATaxErrors", KFSKeyConstants.ERROR_DV_NRA_TAX_WHEN_CHECKED_FEDERAL_AND_STATE_TAXES_SHOULD_BE_ZERO, "Exempt Under Other Code");
                return false;
            }
        }
        // if USAID Per Diem is checked
        if (nonResidentAlienTax.isTaxUSAIDPerDiemIndicator()) {
            // income class code should be fellowship
            if (!nonResidentAlienTax.getIncomeClassCode().equals(NRA_TAX_INCOME_CLASS_FELLOWSHIP)) {
                errors.putErrorWithoutFullErrorPath("DVNRATaxErrors", KFSKeyConstants.ERROR_DV_NRA_TAX_WHEN_CHECKED_SHOULD_BE_SELECTED, "USAID Per Diem", "Income Class Code : Fellowship");
                return false;
            }
            // Federal and State tax rate should be zero.
            if (!(nonResidentAlienTax.getStateIncomeTaxPercent().equals(KualiDecimal.ZERO)) || !(nonResidentAlienTax.getFederalIncomeTaxPercent().equals(KualiDecimal.ZERO))) {
                errors.putErrorWithoutFullErrorPath("DVNRATaxErrors", KFSKeyConstants.ERROR_DV_NRA_TAX_WHEN_CHECKED_FEDERAL_AND_STATE_TAXES_SHOULD_BE_ZERO, "USAID Per Diem");
                return false;
            }
            // Exempt Under Other Code should be checked; this will ensure the other 3 check boxes not checked due to mutual exclusiveness
            if (!nonResidentAlienTax.isTaxOtherExemptIndicator()) {
                errors.putErrorWithoutFullErrorPath("DVNRATaxErrors", KFSKeyConstants.ERROR_DV_NRA_TAX_WHEN_CHECKED_SHOULD_BE_SELECTED, "USAID Per Diem", "Exempt Under Other Code");
                return false;
            }
            // Special W-4 Amount shall have no value
            if (nonResidentAlienTax.getTaxSpecialW4Amount() != null) {
                errors.putErrorWithoutFullErrorPath("DVNRATaxErrors", KFSKeyConstants.ERROR_DV_NRA_TAX_WHEN_CHECKED_CANNOT_HAVE_VALUE, "USAID Per Diem", "Special W-4 Amount");
                return false;
            }
        }
        // if Special W-4 Amount is entered
        if (nonResidentAlienTax.getTaxSpecialW4Amount() != null) {
            // income class code should be fellowship
            if (!nonResidentAlienTax.getIncomeClassCode().equals(NRA_TAX_INCOME_CLASS_FELLOWSHIP)) {
                errors.putErrorWithoutFullErrorPath("DVNRATaxErrors", KFSKeyConstants.ERROR_DV_NRA_TAX_WHEN_CHECKED_SHOULD_BE_SELECTED, "Special W-4 Amount", "Income Class Code : Fellowship");
                return false;
            }
            // Federal and State tax rate should be zero.
            if (!(nonResidentAlienTax.getStateIncomeTaxPercent().equals(KualiDecimal.ZERO)) || !(nonResidentAlienTax.getFederalIncomeTaxPercent().equals(KualiDecimal.ZERO))) {
                errors.putErrorWithoutFullErrorPath("DVNRATaxErrors", KFSKeyConstants.ERROR_DV_NRA_TAX_WHEN_CHECKED_FEDERAL_AND_STATE_TAXES_SHOULD_BE_ZERO, "Special W-4 Amount");
                return false;
            }
            // Exempt Under Other Code should be checked; this will ensure the other 3 check boxes not checked due to mutual exclusiveness
            if (!nonResidentAlienTax.isTaxOtherExemptIndicator()) {
                errors.putErrorWithoutFullErrorPath("DVNRATaxErrors", KFSKeyConstants.ERROR_DV_NRA_TAX_WHEN_CHECKED_SHOULD_BE_SELECTED, "Special W-4 Amount", "Exempt Under Other Code");
                return false;
            }
            // USAID Per Diem should not be checked (mutual exclusive checking on USAID Per Diem here is optional since this is also ensured by validation on Special W-4 Amount above
            if ((nonResidentAlienTax.isTaxUSAIDPerDiemIndicator())) {
                errors.putErrorWithoutFullErrorPath("DVNRATaxErrors", KFSKeyConstants.ERROR_DV_NRA_TAX_WHEN_CHECKED_CANNOT_BE_SELECTED, "Special W-4 Amount", "USAID Per Diem");
                return false;
            }
        }
        // if NQI Id is entered
        if (nonResidentAlienTax.getTaxNQIId() != null) {
        }
        // if Reference Doc is entered
        if (nonResidentAlienTax.getReferenceFinancialDocumentNumber() != null) {
        }
    }
    if (validationType != "GENERATE") {
        // verify tax lines have been generated
        if ((nonResidentAlienTax.getFederalIncomeTaxPercent().isNonZero() || nonResidentAlienTax.getStateIncomeTaxPercent().isNonZero())) {
            if (StringUtils.isBlank(nonResidentAlienTax.getFinancialDocumentAccountingLineText())) {
                errors.putErrorWithoutFullErrorPath(KFSConstants.GENERAL_NRATAX_TAB_ERRORS, KFSKeyConstants.ERROR_DV_NRA_NO_TAXLINES_GENERATED);
                return false;
            }
        }
    }
    errors.removeFromErrorPath(KFSPropertyConstants.DV_NON_RESIDENT_ALIEN_TAX);
    errors.removeFromErrorPath(KFSPropertyConstants.DOCUMENT);
    return isValid;
}
Also used : PersistableBusinessObject(org.kuali.kfs.krad.bo.PersistableBusinessObject) DisbursementVoucherNonResidentAlienTax(org.kuali.kfs.fp.businessobject.DisbursementVoucherNonResidentAlienTax) DisbursementVoucherPayeeDetail(org.kuali.kfs.fp.businessobject.DisbursementVoucherPayeeDetail) NonResidentAlienTaxPercent(org.kuali.kfs.fp.businessobject.NonResidentAlienTaxPercent) Person(org.kuali.rice.kim.api.identity.Person) DisbursementVoucherDocument(org.kuali.kfs.fp.document.DisbursementVoucherDocument) MessageMap(org.kuali.kfs.krad.util.MessageMap) BusinessObjectService(org.kuali.kfs.krad.service.BusinessObjectService)

Example 5 with PersistableBusinessObject

use of org.kuali.kfs.krad.bo.PersistableBusinessObject in project cu-kfs by CU-CommunityApps.

the class CuAttachmentServiceImplTest method createAttachmentWithVirusInvalidFileSize.

@Test
public void createAttachmentWithVirusInvalidFileSize() throws Exception {
    PersistableBusinessObject pbo = setupPersistableBusinessObject();
    InputStream inputStream = setupInputStream(ATTACHMENT_TEST_FILE_PATH + File.separator + GOOD_FILE_NAME);
    setupExpectedException("invalid (non-positive) fileSize");
    attachmentService.createAttachment(pbo, GOOD_FILE_NAME, "txt", 0, inputStream, "txt");
}
Also used : PersistableBusinessObject(org.kuali.kfs.krad.bo.PersistableBusinessObject) BufferedInputStream(java.io.BufferedInputStream) FileInputStream(java.io.FileInputStream) InputStream(java.io.InputStream) Test(org.junit.Test)

Aggregations

PersistableBusinessObject (org.kuali.kfs.krad.bo.PersistableBusinessObject)21 ArrayList (java.util.ArrayList)7 Test (org.junit.Test)6 BufferedInputStream (java.io.BufferedInputStream)5 FileInputStream (java.io.FileInputStream)5 InputStream (java.io.InputStream)5 BusinessObjectService (org.kuali.kfs.krad.service.BusinessObjectService)4 FavoriteAccount (edu.cornell.kfs.sys.businessobject.FavoriteAccount)2 Maintainable (org.kuali.kfs.kns.maintenance.Maintainable)2 Note (org.kuali.kfs.krad.bo.Note)2 MessageMap (org.kuali.kfs.krad.util.MessageMap)2 WorkflowException (org.kuali.rice.kew.api.exception.WorkflowException)2 DummyAntiVirusServiceImpl (edu.cornell.cynergy.antivirus.service.DummyAntiVirusServiceImpl)1 AccountReversionService (edu.cornell.kfs.coa.service.AccountReversionService)1 UserProcurementProfile (edu.cornell.kfs.sys.businessobject.UserProcurementProfile)1 FileNotFoundException (java.io.FileNotFoundException)1 IOException (java.io.IOException)1 RemoteException (java.rmi.RemoteException)1 HashMap (java.util.HashMap)1 HashSet (java.util.HashSet)1