/* * The Kuali Financial System, a comprehensive financial management system for higher education. * * Copyright 2005-2014 The Kuali Foundation * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package org.kuali.kfs.module.purap.document.validation.impl; import org.kuali.kfs.module.purap.PurapKeyConstants; import org.kuali.kfs.module.purap.PurapPropertyConstants; import org.kuali.kfs.module.purap.businessobject.PurApAccountingLine; import org.kuali.kfs.sys.businessobject.AccountingLine; import org.kuali.kfs.sys.document.validation.GenericValidation; import org.kuali.kfs.sys.document.validation.event.AttributedDocumentEvent; import org.kuali.rice.krad.util.GlobalVariables; public class PurchasingUpdateAccountingLineValidation extends GenericValidation { private AccountingLine updatedAccountingLine; public boolean validate(AttributedDocumentEvent event) { //this is necessary because sometimes this method is called for baseline accounts, should not be needed once baseline is removed if(updatedAccountingLine instanceof PurApAccountingLine) { return verifyAccountingLinePercent((PurApAccountingLine) updatedAccountingLine); }//else return true; } /** * Verifies that the accounting line percent is a whole number. * * @param purapAccountingLine the accounting line to be validated * @return boolean false if the accounting line percent is not a whole number. */ protected boolean verifyAccountingLinePercent(PurApAccountingLine purapAccountingLine) { // make sure it's a whole number if (purapAccountingLine.getAccountLinePercent().stripTrailingZeros().scale() > 0) { GlobalVariables.getMessageMap().putError(PurapPropertyConstants.ACCOUNTS, PurapKeyConstants.ERROR_PURCHASING_PERCENT_NOT_WHOLE, purapAccountingLine.getAccountLinePercent().toPlainString()); return false; } return true; } public AccountingLine getUpdatedAccountingLine() { return updatedAccountingLine; } public void setUpdatedAccountingLine(AccountingLine updatedAccountingLine) { this.updatedAccountingLine = updatedAccountingLine; } }