/* * 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.exception; import java.io.Serializable; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import org.kuali.kfs.coa.businessobject.Account; public class PaymentRequestInitializationValidationErrors implements Serializable { // public List errorMessages = new ArrayList(); private List expiredAccounts = new ArrayList(); private List closedAccounts = new ArrayList(); private Integer purchaseOrderNumberToUse; public boolean canAutoClosePO = false; private List<PREQCreationFailure> PREQCreationFailures = new ArrayList<PREQCreationFailure>(); public void addPREQCreationFailure(String rejectReasonCode, String extraDescription){ PREQCreationFailure rejectReason = new PREQCreationFailure(); rejectReason.setRejectReasonCode(rejectReasonCode); rejectReason.setExtraDescription(extraDescription); PREQCreationFailures.add(rejectReason); } public PREQCreationFailure[] getPREQCreationFailures(){ if (PREQCreationFailures.size() > 0){ PREQCreationFailure[] rejectReasons = new PREQCreationFailure[this.PREQCreationFailures.size()]; return this.PREQCreationFailures.toArray(rejectReasons); }else { return null; } } public void addExpiredAccount(Account expiredAccount) { expiredAccounts.add(new AccountContinuation(expiredAccount)); } public void addClosedAccount(Account closedAccount) { closedAccounts.add(new AccountContinuation(closedAccount)); } public void addExpiredAccount(AccountContinuation expiredAccount) { expiredAccounts.add(expiredAccount); } public void addClosedAccount(AccountContinuation closedAccount) { closedAccounts.add(closedAccount); } public boolean isClosedAccountsValid() { return this.isListMembersValid(closedAccounts); } public boolean isExpiredAccountsValid() { return this.isListMembersValid(expiredAccounts); } public boolean isListMembersValid(List l) { for (Iterator i = l.iterator(); i.hasNext();) { AccountContinuation acctCont = (AccountContinuation) i.next(); if (acctCont.getReplacementAccountValid() == null || acctCont.getReplacementAccountValid().equals(Boolean.FALSE)) { return false; } } return true; } public Integer getPurchaseOrderNumberToUse() { return purchaseOrderNumberToUse; } public void setPurchaseOrderNumberToUse(Integer purchaseOrderNumberToUse) { this.purchaseOrderNumberToUse = purchaseOrderNumberToUse; } public boolean isCanAutoClosePO() { return canAutoClosePO; } public void setCanAutoClosePO(boolean canAutoClosePO) { this.canAutoClosePO = canAutoClosePO; } public class AccountContinuation implements Serializable { private String accountFinancialChartOfAccountsCode; private String accountAccountNumber; private String replacementFinancialChartOfAccountsCode; private String replacementAccountNumber; private Boolean replacementAccountValid; public AccountContinuation(Account account) { this.accountFinancialChartOfAccountsCode = account.getChartOfAccountsCode(); this.accountAccountNumber = account.getAccountNumber(); this.replacementFinancialChartOfAccountsCode = account.getContinuationFinChrtOfAcctCd(); this.replacementAccountNumber = account.getContinuationAccountNumber(); } public void setAccountFinancialChartOfAccountsCode(String accountFinancialChartOfAccountsCode) { this.accountFinancialChartOfAccountsCode = accountFinancialChartOfAccountsCode; } public String getAccountFinancialChartOfAccountsCode() { return accountFinancialChartOfAccountsCode; } public void setAccountAccountNumber(String accountAccountNumber) { this.accountAccountNumber = accountAccountNumber; } public String getAccountAccountNumber() { return accountAccountNumber; } public void setReplacementFinancialChartOfAccountsCode(String continuationFinancialChartOfAccountsCode) { this.replacementFinancialChartOfAccountsCode = continuationFinancialChartOfAccountsCode; } public String getReplacementFinancialChartOfAccountsCode() { return replacementFinancialChartOfAccountsCode; } public void setReplacementAccountNumber(String continuationAccountNumber) { this.replacementAccountNumber = continuationAccountNumber; } public String getReplacementAccountNumber() { return replacementAccountNumber; } public Boolean getReplacementAccountValid() { return replacementAccountValid; } public void setReplacementAccountValid(Boolean replacementAccountValid) { this.replacementAccountValid = replacementAccountValid; } } public final class PREQCreationFailure { private String rejectReasonCode; private String extraDescription; public String getExtraDescription() { return extraDescription; } public void setExtraDescription(String extraDescription) { this.extraDescription = extraDescription; } public String getRejectReasonCode() { return rejectReasonCode; } public void setRejectReasonCode(String rejectReasonCode) { this.rejectReasonCode = rejectReasonCode; } } }