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.ar.businessobject; 017 018 import java.sql.Date; 019 import java.util.LinkedHashMap; 020 021 import org.apache.commons.lang.StringUtils; 022 import org.kuali.kfs.coa.businessobject.Chart; 023 import org.kuali.kfs.coa.businessobject.Organization; 024 import org.kuali.kfs.coa.service.ChartService; 025 import org.kuali.kfs.coa.service.OrganizationService; 026 import org.kuali.kfs.sys.context.SpringContext; 027 import org.kuali.rice.kns.bo.DocumentHeader; 028 import org.kuali.rice.kns.bo.PersistableBusinessObjectBase; 029 import org.kuali.rice.kns.service.DateTimeService; 030 031 /** 032 * @author Kuali Nervous System Team (kualidev@oncourse.iu.edu) 033 */ 034 public class AccountsReceivableDocumentHeader extends PersistableBusinessObjectBase { 035 036 private String documentNumber; 037 private String customerNumber; 038 private String processingChartOfAccountCode; 039 private String processingOrganizationCode; 040 private Date entryDate; 041 private String financialDocumentExplanationText; 042 043 private Customer customer; 044 private Chart processingChartOfAccount; 045 private Organization processingOrganization; 046 private DocumentHeader documentHeader; 047 048 /** 049 * Default constructor. 050 */ 051 public AccountsReceivableDocumentHeader() { 052 053 } 054 055 /** 056 * Gets the documentNumber attribute. 057 * 058 * @return Returns the documentNumber 059 * 060 */ 061 public String getDocumentNumber() { 062 return documentNumber; 063 } 064 065 /** 066 * Sets the documentNumber attribute. 067 * 068 * @param documentNumber The documentNumber to set. 069 * 070 */ 071 public void setDocumentNumber(String documentNumber) { 072 this.documentNumber = documentNumber; 073 } 074 075 076 /** 077 * Gets the customerNumber attribute. 078 * 079 * @return Returns the customerNumber 080 * 081 */ 082 public String getCustomerNumber() { 083 return customerNumber; 084 } 085 086 /** 087 * Sets the customerNumber attribute. 088 * 089 * @param customerNumber The customerNumber to set. 090 * 091 */ 092 public void setCustomerNumber(String customerNumber) { 093 this.customerNumber = null == customerNumber ? null : customerNumber.toUpperCase(); 094 } 095 096 /** 097 * Gets the processingChartOfAccountCode attribute. 098 * 099 * @return Returns the processingChartOfAccountCode 100 * 101 */ 102 public String getProcessingChartOfAccountCode() { 103 return processingChartOfAccountCode; 104 } 105 106 /** 107 * Sets the processingChartOfAccountCode attribute. 108 * 109 * @param processingChartOfAccountCode The processingChartOfAccountCode to set. 110 * 111 */ 112 public void setProcessingChartOfAccountCode(String processingChartOfAccountCode) { 113 this.processingChartOfAccountCode = processingChartOfAccountCode; 114 } 115 116 117 /** 118 * Gets the processingOrganizationCode attribute. 119 * 120 * @return Returns the processingOrganizationCode 121 * 122 */ 123 public String getProcessingOrganizationCode() { 124 return processingOrganizationCode; 125 } 126 127 /** 128 * Sets the processingOrganizationCode attribute. 129 * 130 * @param processingOrganizationCode The processingOrganizationCode to set. 131 * 132 */ 133 public void setProcessingOrganizationCode(String processingOrganizationCode) { 134 this.processingOrganizationCode = processingOrganizationCode; 135 } 136 137 138 /** 139 * Gets the entryDate attribute. 140 * 141 * @return Returns the entryDate 142 * 143 */ 144 public Date getEntryDate() { 145 return entryDate; 146 } 147 148 /** 149 * Sets the entryDate attribute. 150 * 151 * @param entryDate The entryDate to set. 152 * 153 */ 154 public void setEntryDate(Date entryDate) { 155 this.entryDate = entryDate; 156 } 157 158 159 /** 160 * Gets the financialDocumentExplanationText attribute. 161 * 162 * @return Returns the financialDocumentExplanationText 163 * 164 */ 165 public String getFinancialDocumentExplanationText() { 166 return financialDocumentExplanationText; 167 } 168 169 /** 170 * Sets the financialDocumentExplanationText attribute. 171 * 172 * @param financialDocumentExplanationText The financialDocumentExplanationText to set. 173 * 174 */ 175 public void setFinancialDocumentExplanationText(String financialDocumentExplanationText) { 176 this.financialDocumentExplanationText = financialDocumentExplanationText; 177 } 178 179 /** 180 * Gets the customer attribute. 181 * 182 * @return Returns the customer 183 * 184 */ 185 public Customer getCustomer() { 186 return customer; 187 } 188 189 /** 190 * Sets the customer attribute. 191 * 192 * @param customer The customer to set. 193 * @deprecated 194 */ 195 public void setCustomer(Customer customer) { 196 this.customer = customer; 197 } 198 199 /** 200 * Gets the processingChartOfAccount attribute. 201 * 202 * @return Returns the processingChartOfAccount 203 * 204 */ 205 public Chart getProcessingChartOfAccount() { 206 if(processingChartOfAccount==null) { 207 if(StringUtils.isNotBlank(getProcessingChartOfAccountCode())) { 208 processingChartOfAccount = SpringContext.getBean(ChartService.class).getByPrimaryId(getProcessingChartOfAccountCode()); 209 } 210 } 211 212 return processingChartOfAccount; 213 } 214 215 /** 216 * Sets the processingChartOfAccount attribute. 217 * 218 * @param processingChartOfAccount The processingChartOfAccount to set. 219 * @deprecated 220 */ 221 public void setProcessingChartOfAccount(Chart processingChartOfAccount) { 222 this.processingChartOfAccount = processingChartOfAccount; 223 } 224 225 /** 226 * Gets the processingOrganization attribute. 227 * 228 * @return Returns the processingOrganization 229 * 230 */ 231 public Organization getProcessingOrganization() { 232 if(processingOrganization==null) { 233 if(StringUtils.isNotBlank(getProcessingOrganizationCode()) && StringUtils.isNotBlank(getProcessingChartOfAccountCode())) { 234 processingOrganization = SpringContext.getBean(OrganizationService.class).getByPrimaryId(getProcessingChartOfAccountCode(), getProcessingOrganizationCode()); 235 } 236 } 237 238 return processingOrganization; 239 } 240 241 /** 242 * Sets the processingOrganization attribute. 243 * 244 * @param processingOrganization The processingOrganization to set. 245 * @deprecated 246 */ 247 public void setProcessingOrganization(Organization processingOrganization) { 248 this.processingOrganization = processingOrganization; 249 } 250 251 /** 252 * Gets the documentHeader attribute. 253 * @return Returns the documentHeader. 254 */ 255 public DocumentHeader getDocumentHeader() { 256 return documentHeader; 257 } 258 259 /** 260 * Sets the documentHeader attribute value. 261 * @param documentHeader The documentHeader to set. 262 * @deprecated 263 */ 264 public void setDocumentHeader(DocumentHeader documentHeader) { 265 this.documentHeader = documentHeader; 266 } 267 268 /** 269 * @see org.kuali.rice.kns.bo.BusinessObjectBase#toStringMapper() 270 */ 271 @SuppressWarnings("unchecked") 272 protected LinkedHashMap toStringMapper() { 273 LinkedHashMap m = new LinkedHashMap(); 274 m.put("documentNumber", this.documentNumber); 275 return m; 276 } 277 278 /** 279 * Get a string representation for processing organization 280 * @return 281 */ 282 public String getProcessingChartOfAccCodeAndOrgCode() { 283 String returnVal = getProcessingChartOfAccountCode() + "/" +getProcessingOrganizationCode(); 284 285 return returnVal; 286 } 287 288 /** 289 * Gets the documentStatus attribute. 290 * @return Returns the documentStatus. 291 */ 292 public String getDocumentStatus() { 293 return getDocumentHeader().getWorkflowDocument().getStatusDisplayValue(); 294 } 295 296 /** 297 * 298 * This method... 299 * @return 300 */ 301 public String getCreateDate() { 302 return SpringContext.getBean(DateTimeService.class).toDateString(getDocumentHeader().getWorkflowDocument().getCreateDate()); 303 } 304 305 /** 306 * 307 * This method... 308 * @return 309 */ 310 public String getInitiatorId() { 311 return getDocumentHeader().getWorkflowDocument().getInitiatorNetworkId(); 312 } 313 }