/* * 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.sys.web.struts; import java.util.ArrayList; import java.util.List; import org.apache.commons.lang.StringUtils; import org.kuali.kfs.sys.KFSKeyConstants; import org.kuali.kfs.sys.businessobject.ElectronicPaymentClaim; import org.kuali.kfs.sys.context.SpringContext; import org.kuali.kfs.sys.service.ElectronicPaymentClaimingDocumentGenerationStrategy; import org.kuali.kfs.sys.service.ElectronicPaymentClaimingService; import org.kuali.rice.kim.api.identity.Person; import org.kuali.rice.kns.web.struts.form.KualiForm; import org.kuali.rice.krad.util.GlobalVariables; public class ElectronicFundTransferForm extends KualiForm { private List<ElectronicPaymentClaim> claims; private List<ElectronicPaymentClaimingDocumentGenerationStrategy> availableClaimingDocumentStrategies; private List<ElectronicPaymentClaimClaimedHelper> claimedByCheckboxHelpers; private String chosenElectronicPaymentClaimingDocumentCode; private String hasDocumentation; /** * Constructs a ElectronicFundTransferForm */ public ElectronicFundTransferForm() { claims = new ArrayList<ElectronicPaymentClaim>(); claimedByCheckboxHelpers = new ArrayList<ElectronicPaymentClaimClaimedHelper>(); } /** * Gets the availableClaimingDocumentStrategies attribute. * @return Returns the availableClaimingDocumentStrategies. */ public List<ElectronicPaymentClaimingDocumentGenerationStrategy> getAvailableClaimingDocumentStrategies() { return availableClaimingDocumentStrategies; } /** * Sets the availableClaimingDocumentStrategies attribute value. * @param availableClaimingDocumentStrategies The availableClaimingDocumentStrategies to set. */ public void setAvailableClaimingDocumentStrategies(List<ElectronicPaymentClaimingDocumentGenerationStrategy> availableClaimingDocuments) { this.availableClaimingDocumentStrategies = availableClaimingDocuments; } public boolean hasAvailableClaimingDocumentStrategies() { return availableClaimingDocumentStrategies !=null && !availableClaimingDocumentStrategies.isEmpty(); } /** * Gets the chosenElectronicPaymentClaimingDocumentCode attribute. * @return Returns the chosenElectronicPaymentClaimingDocumentCode. */ public String getChosenElectronicPaymentClaimingDocumentCode() { return chosenElectronicPaymentClaimingDocumentCode; } /** * Sets the chosenElectronicPaymentClaimingDocumentCode attribute value. * @param chosenElectronicPaymentClaimingDocumentCode The chosenElectronicPaymentClaimingDocumentCode to set. */ public void setChosenElectronicPaymentClaimingDocumentCode(String chosenElectronicPaymentClaimingDocumentCode) { this.chosenElectronicPaymentClaimingDocumentCode = chosenElectronicPaymentClaimingDocumentCode; } /** * Gets the claims attribute. * @return Returns the claims. */ public List<ElectronicPaymentClaim> getClaims() { return claims; } /** * Returns the claim at the specified index in the list of claims. * @param i index of the claim to return * @return the claim at the index */ public ElectronicPaymentClaim getClaim(int i) { while (claims.size() <= i) { claims.add(new ElectronicPaymentClaim()); } return claims.get(i); } /** * Puts an ElectronicPaymentClaim record in the claims array at a specified point * @param claim the claim to add * @param i the index in the list to add the record at */ public void setClaim(ElectronicPaymentClaim claim, int i) { while (claims.size() <= i) { claims.add(new ElectronicPaymentClaim()); } claims.add(i, claim); } /** * Sets the claims attribute value. * @param claims The claims to set. */ public void setClaims(List<ElectronicPaymentClaim> claims) { this.claims = claims; } /** * Gets the hasDocumentation attribute. * @return Returns the hasDocumentation. */ public String getHasDocumentation() { return hasDocumentation; } /** * Sets the hasDocumentation attribute value. * @param hasDocumentation The hasDocumentation to set. */ public void setHasDocumentation(String hasDocumentation) { this.hasDocumentation = hasDocumentation; } /** * Returns a boolean whether the user has stated that documentation exists for the claims about to be made or not * @return true if has documentation, false otherwise */ public boolean isProperlyDocumented() { return StringUtils.isNotBlank(this.hasDocumentation) && this.hasDocumentation.equals("Yep"); } /** * Returns whether the current user has administrative powers for Electronic Funds Transfer or not * @return true if administrative powers exist, false otherwise */ public boolean isAllowElectronicFundsTransferAdministration() { Person currentUser = GlobalVariables.getUserSession().getPerson(); return SpringContext.getBean(ElectronicPaymentClaimingService.class).isAuthorizedForClaimingElectronicPayment(currentUser, null); } /** * @return the key to the EFT documentation message */ public String getDocumentationMessageKey() { return KFSKeyConstants.ElectronicPaymentClaim.MESSAGE_EFT_CLAIMING_DOCUMENTATION; } /** * @return the key to the EFT document choice message */ public String getDocumentChoiceMessageKey() { return KFSKeyConstants.ElectronicPaymentClaim.MESSAGE_EFT_DOCUMENT_CHOICE; } /** * @return the key to the EFT "previously claimed" message for the table header */ public String getPreviouslyClaimedHeaderKey() { return KFSKeyConstants.ElectronicPaymentClaim.MESSAGE_EFT_PREVIOUSLY_CLAIMED_HEADER; } /** * @return the key to the EFT "claiming document number" message for the table header */ public String getClaimingDocumentNumberHeaderKey() { return KFSKeyConstants.ElectronicPaymentClaim.MESSAGE_EFT_CLAIMING_DOCUMENT_NUMBER_HEADER; } /** * Gets the claimedByCheckboxHelpers attribute. * @return Returns the claimedByCheckboxHelpers. */ public List<ElectronicPaymentClaimClaimedHelper> getClaimedByCheckboxHelpers() { return claimedByCheckboxHelpers; } /** * Sets the claimedByCheckboxHelpers attribute value. * @param claimedByCheckboxHelpers The claimedByCheckboxHelpers to set. */ public void setClaimedByCheckboxHelpers(List<ElectronicPaymentClaimClaimedHelper> claimedByCheckboxHelpers) { this.claimedByCheckboxHelpers = claimedByCheckboxHelpers; } /** * Sets the claimedHelper at the given index * @param claimedHelper the claimedCheckboxHelper to set * @param index where in the list it belongs */ public void setClaimedByCheckboxHelper(ElectronicPaymentClaimClaimedHelper claimedHelper, int index) { while (claimedByCheckboxHelpers.size() <= index) { claimedByCheckboxHelpers.add(new ElectronicPaymentClaimClaimedHelper()); } claimedByCheckboxHelpers.set(index, claimedHelper); } /** * @param index location in the list of ElectronicPaymentClaimClaimedHelpers to return the helper at * @return the ElectronicPaymentClaimClaimedHelper at the given location */ public ElectronicPaymentClaimClaimedHelper getClaimedByCheckboxHelper(int index) { while (claimedByCheckboxHelpers.size() <= index) { claimedByCheckboxHelpers.add(new ElectronicPaymentClaimClaimedHelper()); } return claimedByCheckboxHelpers.get(index); } }