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.pdp.web.struts; 017 018 import java.util.ArrayList; 019 import java.util.List; 020 import java.util.Map; 021 022 import javax.servlet.http.HttpServletRequest; 023 024 import org.apache.struts.action.ActionMapping; 025 import org.kuali.kfs.pdp.PdpPropertyConstants; 026 import org.kuali.kfs.pdp.businessobject.CustomerProfile; 027 import org.kuali.kfs.pdp.businessobject.DisbursementNumberFormatter; 028 import org.kuali.kfs.pdp.businessobject.DisbursementNumberRange; 029 import org.kuali.kfs.pdp.businessobject.FormatProcessSummary; 030 import org.kuali.kfs.sys.KFSPropertyConstants; 031 import org.kuali.rice.kns.util.KNSConstants; 032 import org.kuali.rice.kns.util.KualiInteger; 033 import org.kuali.rice.kns.web.format.CurrencyFormatter; 034 import org.kuali.rice.kns.web.format.Formatter; 035 import org.kuali.rice.kns.web.struts.form.KualiForm; 036 037 /** 038 * Struts Action Form for Format Checks/ACH 039 */ 040 public class FormatForm extends KualiForm { 041 042 private String campus; 043 private String paymentDate; 044 private String paymentTypes; 045 046 private FormatProcessSummary formatProcessSummary; 047 048 private List<CustomerProfile> customers; 049 private List<DisbursementNumberRange> ranges; 050 051 /** 052 * Constructs a FormatForm. 053 */ 054 public FormatForm() { 055 super(); 056 customers = new ArrayList<CustomerProfile>(); 057 ranges = new ArrayList<DisbursementNumberRange>(); 058 059 this.setFormatterType("range.lastAssignedDisbNbr", DisbursementNumberFormatter.class); 060 } 061 062 /** 063 * This method gets campus 064 * 065 * @return campus 066 */ 067 public String getCampus() { 068 return campus; 069 } 070 071 /** 072 * This method sets campus 073 * 074 * @param campus 075 */ 076 public void setCampus(String campus) { 077 this.campus = campus; 078 } 079 080 /** 081 * This method gets payment types 082 * 083 * @return paymentTypes 084 */ 085 public String getPaymentTypes() { 086 return paymentTypes; 087 } 088 089 /** 090 * This method sets paymentTypes 091 * 092 * @param paymentTypes 093 */ 094 public void setPaymentTypes(String paymentTypes) { 095 this.paymentTypes = paymentTypes; 096 } 097 098 /** 099 * This method gets customers 100 * 101 * @return customers 102 */ 103 public List<CustomerProfile> getCustomers() { 104 return customers; 105 } 106 107 /** 108 * This method sets customers 109 * 110 * @param customers 111 */ 112 public void setCustomers(List<CustomerProfile> customers) { 113 this.customers = customers; 114 } 115 116 /** 117 * This method retrieves a specific customer profile from the list, by index 118 * 119 * @param index the index of the customers to retrieve the customer profile from 120 * @return a CustomerProfile 121 */ 122 public CustomerProfile getCustomer(int index) { 123 if (index >= customers.size()) { 124 for (int i = customers.size(); i <= index; i++) { 125 customers.add(new CustomerProfile()); 126 } 127 } 128 return (CustomerProfile) customers.get(index); 129 } 130 131 /** 132 * This method sets a customer profile. 133 * 134 * @param key the index of the value 135 * @param value the new value 136 */ 137 public void setCustomer(int key, CustomerProfile value) { 138 customers.set(key, value); 139 } 140 141 142 /** 143 * This method gets the ranges. 144 * 145 * @return ranges list 146 */ 147 public List<DisbursementNumberRange> getRanges() { 148 return ranges; 149 } 150 151 /** 152 * This method sets ranges list. 153 * 154 * @param ranges 155 */ 156 public void setRanges(List<DisbursementNumberRange> ranges) { 157 this.ranges = ranges; 158 } 159 160 /** 161 * This method retrieves a specific disbursement number range from the list, by index 162 * 163 * @param index the index of the ranges to retrieve the disbursement number range from 164 * @return a DisbursementNumberRange 165 */ 166 public DisbursementNumberRange getRange(int index) { 167 if (index >= ranges.size()) { 168 for (int i = ranges.size(); i <= index; i++) { 169 ranges.add(new DisbursementNumberRange()); 170 } 171 } 172 return (DisbursementNumberRange) ranges.get(index); 173 } 174 175 /** 176 * This method gets the currency formated value of the total amount. 177 * 178 * @return the currency formated value of the total amount 179 */ 180 public String getCurrencyFormattedTotalAmount() { 181 return (String) new CurrencyFormatter().format(formatProcessSummary.getTotalAmount()); 182 } 183 184 /** 185 * This method gets the payment date. 186 * 187 * @return paymentDate 188 */ 189 public String getPaymentDate() { 190 return paymentDate; 191 } 192 193 /** 194 * This method sets the payment date. 195 * 196 * @param paymentDate 197 */ 198 public void setPaymentDate(String paymentDate) { 199 this.paymentDate = paymentDate; 200 } 201 202 /** 203 * This method gets the format process summary. 204 * 205 * @return formatProcessSummary 206 */ 207 public FormatProcessSummary getFormatProcessSummary() { 208 return formatProcessSummary; 209 } 210 211 /** 212 * This method sets the format process summary. 213 * 214 * @param formatProcessSummary 215 */ 216 public void setFormatProcessSummary(FormatProcessSummary formatProcessSummary) { 217 this.formatProcessSummary = formatProcessSummary; 218 } 219 220 /** 221 * @see org.apache.struts.action.ActionForm#reset(org.apache.struts.action.ActionMapping, javax.servlet.http.HttpServletRequest) 222 */ 223 @Override 224 public void reset(ActionMapping arg0, HttpServletRequest arg1) { 225 super.reset(arg0, arg1); 226 227 for (CustomerProfile customer : customers) { 228 customer.setSelectedForFormat(false); 229 } 230 } 231 }