001 /*
002 * Copyright 2011 The Kuali Foundation.
003 *
004 * Licensed under the Educational Community License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 * http://www.opensource.org/licenses/ecl2.php
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 * See the License for the specific language governing permissions and
014 * limitations under the License.
015 */
016 package org.kuali.kfs.module.purap.exception;
017
018 import java.io.Serializable;
019 import java.util.ArrayList;
020 import java.util.Iterator;
021 import java.util.List;
022
023 import org.apache.commons.lang.builder.ToStringBuilder;
024 import org.kuali.kfs.coa.businessobject.Account;
025
026
027 /**
028 * @author tdurkin
029 */
030 public class PaymentRequestInitializationValidationErrors implements Serializable {
031
032 // public List errorMessages = new ArrayList();
033 private List expiredAccounts = new ArrayList();
034 private List closedAccounts = new ArrayList();
035 private Integer purchaseOrderNumberToUse;
036 public boolean canAutoClosePO = false;
037
038 private List<PREQCreationFailure> PREQCreationFailures = new ArrayList<PREQCreationFailure>();
039
040 public void addPREQCreationFailure(String rejectReasonCode,
041 String extraDescription){
042
043 PREQCreationFailure rejectReason = new PREQCreationFailure();
044 rejectReason.setRejectReasonCode(rejectReasonCode);
045 rejectReason.setExtraDescription(extraDescription);
046 PREQCreationFailures.add(rejectReason);
047 }
048
049 public PREQCreationFailure[] getPREQCreationFailures(){
050 if (PREQCreationFailures.size() > 0){
051 PREQCreationFailure[] rejectReasons = new PREQCreationFailure[this.PREQCreationFailures.size()];
052 return this.PREQCreationFailures.toArray(rejectReasons);
053 }else {
054 return null;
055 }
056 }
057
058 public void addExpiredAccount(Account expiredAccount) {
059 expiredAccounts.add(new AccountContinuation(expiredAccount));
060 }
061
062 public void addClosedAccount(Account closedAccount) {
063 closedAccounts.add(new AccountContinuation(closedAccount));
064 }
065
066 public void addExpiredAccount(AccountContinuation expiredAccount) {
067 expiredAccounts.add(expiredAccount);
068 }
069
070 public void addClosedAccount(AccountContinuation closedAccount) {
071 closedAccounts.add(closedAccount);
072 }
073
074 public boolean isClosedAccountsValid() {
075 return this.isListMembersValid(closedAccounts);
076 }
077
078 public boolean isExpiredAccountsValid() {
079 return this.isListMembersValid(expiredAccounts);
080 }
081
082 public boolean isListMembersValid(List l) {
083 for (Iterator i = l.iterator(); i.hasNext();) {
084 AccountContinuation acctCont = (AccountContinuation) i.next();
085 if (acctCont.getReplacementAccountValid() == null || acctCont.getReplacementAccountValid().equals(Boolean.FALSE)) {
086 return false;
087 }
088 }
089 return true;
090 }
091
092 public Integer getPurchaseOrderNumberToUse() {
093 return purchaseOrderNumberToUse;
094 }
095
096 public void setPurchaseOrderNumberToUse(Integer purchaseOrderNumberToUse) {
097 this.purchaseOrderNumberToUse = purchaseOrderNumberToUse;
098 }
099
100 public boolean isCanAutoClosePO() {
101 return canAutoClosePO;
102 }
103
104 public void setCanAutoClosePO(boolean canAutoClosePO) {
105 this.canAutoClosePO = canAutoClosePO;
106 }
107
108 public class AccountContinuation implements Serializable {
109
110 private String accountFinancialChartOfAccountsCode;
111 private String accountAccountNumber;
112 private String replacementFinancialChartOfAccountsCode;
113 private String replacementAccountNumber;
114 private Boolean replacementAccountValid;
115
116 public AccountContinuation(Account account) {
117 this.accountFinancialChartOfAccountsCode = account.getChartOfAccountsCode();
118 this.accountAccountNumber = account.getAccountNumber();
119 this.replacementFinancialChartOfAccountsCode = account.getContinuationFinChrtOfAcctCd();
120 this.replacementAccountNumber = account.getContinuationAccountNumber();
121 }
122
123 public void setAccountFinancialChartOfAccountsCode(String accountFinancialChartOfAccountsCode) {
124 this.accountFinancialChartOfAccountsCode = accountFinancialChartOfAccountsCode;
125 }
126
127 public String getAccountFinancialChartOfAccountsCode() {
128 return accountFinancialChartOfAccountsCode;
129 }
130
131 public void setAccountAccountNumber(String accountAccountNumber) {
132 this.accountAccountNumber = accountAccountNumber;
133 }
134
135 public String getAccountAccountNumber() {
136 return accountAccountNumber;
137 }
138
139 public void setReplacementFinancialChartOfAccountsCode(String continuationFinancialChartOfAccountsCode) {
140 this.replacementFinancialChartOfAccountsCode = continuationFinancialChartOfAccountsCode;
141 }
142
143 public String getReplacementFinancialChartOfAccountsCode() {
144 return replacementFinancialChartOfAccountsCode;
145 }
146
147 public void setReplacementAccountNumber(String continuationAccountNumber) {
148 this.replacementAccountNumber = continuationAccountNumber;
149 }
150
151 public String getReplacementAccountNumber() {
152 return replacementAccountNumber;
153 }
154
155 public Boolean getReplacementAccountValid() {
156 return replacementAccountValid;
157 }
158
159 public void setReplacementAccountValid(Boolean replacementAccountValid) {
160 this.replacementAccountValid = replacementAccountValid;
161 }
162 }
163
164 public final class PREQCreationFailure {
165
166 private String rejectReasonCode;
167 private String extraDescription;
168
169 public String getExtraDescription() {
170 return extraDescription;
171 }
172 public void setExtraDescription(String extraDescription) {
173 this.extraDescription = extraDescription;
174 }
175 public String getRejectReasonCode() {
176 return rejectReasonCode;
177 }
178 public void setRejectReasonCode(String rejectReasonCode) {
179 this.rejectReasonCode = rejectReasonCode;
180 }
181
182 }
183 }