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 017 package org.kuali.kfs.module.ec.businessobject; 018 019 import java.sql.Date; 020 import java.util.Collection; 021 import java.util.HashMap; 022 import java.util.LinkedHashMap; 023 import java.util.Map; 024 import java.util.Set; 025 026 import org.kuali.kfs.coa.businessobject.AccountingPeriod; 027 import org.kuali.kfs.integration.ec.EffortCertificationReport; 028 import org.kuali.kfs.module.ec.EffortPropertyConstants; 029 import org.kuali.kfs.module.ec.util.AccountingPeriodMonth; 030 import org.kuali.kfs.sys.KFSPropertyConstants; 031 import org.kuali.kfs.sys.businessobject.SystemOptions; 032 import org.kuali.rice.kns.bo.Inactivateable; 033 import org.kuali.rice.kns.bo.PersistableBusinessObjectBase; 034 import org.kuali.rice.kns.util.TypedArrayList; 035 036 /** 037 * Business Object for the Effort Certification Report Definition Table. 038 */ 039 public class EffortCertificationReportDefinition extends PersistableBusinessObjectBase implements EffortCertificationReport, Inactivateable { 040 041 private Integer universityFiscalYear; 042 private String effortCertificationReportNumber; 043 private String effortCertificationReportPeriodTitle; 044 private String effortCertificationReportPeriodStatusCode; 045 private Integer expenseTransferFiscalYear; 046 private String expenseTransferFiscalPeriodCode; 047 private String effortCertificationReportTypeCode; 048 private Date effortCertificationReportReturnDate; 049 private Integer effortCertificationReportBeginFiscalYear; 050 private String effortCertificationReportBeginPeriodCode; 051 private Integer effortCertificationReportEndFiscalYear; 052 private String effortCertificationReportEndPeriodCode; 053 private boolean active; 054 055 private SystemOptions options; 056 private SystemOptions reportBeginFiscalYear; 057 private SystemOptions reportEndFiscalYear; 058 private AccountingPeriod reportBeginPeriod; 059 private AccountingPeriod reportEndPeriod; 060 private SystemOptions expenseTransferYear; 061 private AccountingPeriod expenseTransferFiscalPeriod; 062 private EffortCertificationPeriodStatusCode effortCertificationPeriodStatusCode; 063 private EffortCertificationReportType effortCertificationReportType; 064 private Collection<EffortCertificationReportPosition> effortCertificationReportPositions; 065 066 private Map<Integer, Set<String>> reportPeriods; 067 068 /** 069 * Constructs a EffortCertificationReportDefinition.java. 070 */ 071 public EffortCertificationReportDefinition() { 072 super(); 073 effortCertificationReportPositions = new TypedArrayList(EffortCertificationReportPosition.class); 074 } 075 076 /** 077 * Gets the universityFiscalYear attribute. 078 * 079 * @return Returns the universityFiscalYear. 080 */ 081 public Integer getUniversityFiscalYear() { 082 return universityFiscalYear; 083 } 084 085 /** 086 * Sets the universityFiscalYear attribute value. 087 * 088 * @param universityFiscalYear The universityFiscalYear to set. 089 */ 090 public void setUniversityFiscalYear(Integer universityFiscalYear) { 091 this.universityFiscalYear = universityFiscalYear; 092 } 093 094 /** 095 * Gets the effortCertificationReportNumber attribute. 096 * 097 * @return Returns the effortCertificationReportNumber. 098 */ 099 public String getEffortCertificationReportNumber() { 100 return effortCertificationReportNumber; 101 } 102 103 /** 104 * Sets the effortCertificationReportNumber attribute value. 105 * 106 * @param effortCertificationReportNumber The effortCertificationReportNumber to set. 107 */ 108 public void setEffortCertificationReportNumber(String effortCertificationReportNumber) { 109 this.effortCertificationReportNumber = effortCertificationReportNumber; 110 } 111 112 /** 113 * Gets the effortCertificationReportPeriodTitle attribute. 114 * 115 * @return Returns the effortCertificationReportPeriodTitle. 116 */ 117 public String getEffortCertificationReportPeriodTitle() { 118 return effortCertificationReportPeriodTitle; 119 } 120 121 /** 122 * Sets the effortCertificationReportPeriodTitle attribute value. 123 * 124 * @param effortCertificationReportPeriodTitle The effortCertificationReportPeriodTitle to set. 125 */ 126 public void setEffortCertificationReportPeriodTitle(String effortCertificationReportPeriodTitle) { 127 this.effortCertificationReportPeriodTitle = effortCertificationReportPeriodTitle; 128 } 129 130 /** 131 * Gets the effortCertificationReportPeriodStatusCode attribute. 132 * 133 * @return Returns the effortCertificationReportPeriodStatusCode. 134 */ 135 public String getEffortCertificationReportPeriodStatusCode() { 136 return effortCertificationReportPeriodStatusCode; 137 } 138 139 /** 140 * Sets the effortCertificationReportPeriodStatusCode attribute value. 141 * 142 * @param effortCertificationReportPeriodStatusCode The effortCertificationReportPeriodStatusCode to set. 143 */ 144 public void setEffortCertificationReportPeriodStatusCode(String effortCertificationReportPeriodStatusCode) { 145 this.effortCertificationReportPeriodStatusCode = effortCertificationReportPeriodStatusCode; 146 } 147 148 /** 149 * Gets the expenseTransferFiscalYear attribute. 150 * 151 * @return Returns the expenseTransferFiscalYear. 152 */ 153 public Integer getExpenseTransferFiscalYear() { 154 return expenseTransferFiscalYear; 155 } 156 157 /** 158 * Sets the expenseTransferFiscalYear attribute value. 159 * 160 * @param expenseTransferFiscalYear The expenseTransferFiscalYear to set. 161 */ 162 public void setExpenseTransferFiscalYear(Integer expenseTransferFiscalYear) { 163 this.expenseTransferFiscalYear = expenseTransferFiscalYear; 164 } 165 166 /** 167 * Gets the expenseTransferFiscalPeriodCode attribute. 168 * 169 * @return Returns the expenseTransferFiscalPeriodCode. 170 */ 171 public String getExpenseTransferFiscalPeriodCode() { 172 return expenseTransferFiscalPeriodCode; 173 } 174 175 /** 176 * Sets the expenseTransferFiscalPeriodCode attribute value. 177 * 178 * @param expenseTransferFiscalPeriodCode The expenseTransferFiscalPeriodCode to set. 179 */ 180 public void setExpenseTransferFiscalPeriodCode(String expenseTransferFiscalPeriodCode) { 181 this.expenseTransferFiscalPeriodCode = expenseTransferFiscalPeriodCode; 182 } 183 184 /** 185 * Gets the effortCertificationReportTypeCode attribute. 186 * 187 * @return Returns the effortCertificationReportTypeCode. 188 */ 189 public String getEffortCertificationReportTypeCode() { 190 return effortCertificationReportTypeCode; 191 } 192 193 /** 194 * Sets the effortCertificationReportTypeCode attribute value. 195 * 196 * @param effortCertificationReportTypeCode The effortCertificationReportTypeCode to set. 197 */ 198 public void setEffortCertificationReportTypeCode(String effortCertificationReportTypeCode) { 199 this.effortCertificationReportTypeCode = effortCertificationReportTypeCode; 200 } 201 202 /** 203 * Gets the effortCertificationReportReturnDate attribute. 204 * 205 * @return Returns the effortCertificationReportReturnDate. 206 */ 207 public Date getEffortCertificationReportReturnDate() { 208 return effortCertificationReportReturnDate; 209 } 210 211 /** 212 * Sets the effortCertificationReportReturnDate attribute value. 213 * 214 * @param effortCertificationReportReturnDate The effortCertificationReportReturnDate to set. 215 */ 216 public void setEffortCertificationReportReturnDate(Date effortCertificationReportReturnDate) { 217 this.effortCertificationReportReturnDate = effortCertificationReportReturnDate; 218 } 219 220 /** 221 * Gets the effortCertificationReportBeginFiscalYear attribute. 222 * 223 * @return Returns the effortCertificationReportBeginFiscalYear. 224 */ 225 public Integer getEffortCertificationReportBeginFiscalYear() { 226 return effortCertificationReportBeginFiscalYear; 227 } 228 229 /** 230 * Sets the effortCertificationReportBeginFiscalYear attribute value. 231 * 232 * @param effortCertificationReportBeginFiscalYear The effortCertificationReportBeginFiscalYear to set. 233 */ 234 public void setEffortCertificationReportBeginFiscalYear(Integer effortCertificationReportBeginFiscalYear) { 235 this.effortCertificationReportBeginFiscalYear = effortCertificationReportBeginFiscalYear; 236 } 237 238 /** 239 * Gets the effortCertificationReportBeginPeriodCode attribute. 240 * 241 * @return Returns the effortCertificationReportBeginPeriodCode. 242 */ 243 public String getEffortCertificationReportBeginPeriodCode() { 244 return effortCertificationReportBeginPeriodCode; 245 } 246 247 /** 248 * Sets the effortCertificationReportBeginPeriodCode attribute value. 249 * 250 * @param effortCertificationReportBeginPeriodCode The effortCertificationReportBeginPeriodCode to set. 251 */ 252 public void setEffortCertificationReportBeginPeriodCode(String effortCertificationReportBeginPeriodCode) { 253 this.effortCertificationReportBeginPeriodCode = effortCertificationReportBeginPeriodCode; 254 } 255 256 /** 257 * Gets the effortCertificationReportEndFiscalYear attribute. 258 * 259 * @return Returns the effortCertificationReportEndFiscalYear. 260 */ 261 public Integer getEffortCertificationReportEndFiscalYear() { 262 return effortCertificationReportEndFiscalYear; 263 } 264 265 /** 266 * Sets the effortCertificationReportEndFiscalYear attribute value. 267 * 268 * @param effortCertificationReportEndFiscalYear The effortCertificationReportEndFiscalYear to set. 269 */ 270 public void setEffortCertificationReportEndFiscalYear(Integer effortCertificationReportEndFiscalYear) { 271 this.effortCertificationReportEndFiscalYear = effortCertificationReportEndFiscalYear; 272 } 273 274 /** 275 * Gets the effortCertificationReportEndPeriodCode attribute. 276 * 277 * @return Returns the effortCertificationReportEndPeriodCode. 278 */ 279 public String getEffortCertificationReportEndPeriodCode() { 280 return effortCertificationReportEndPeriodCode; 281 } 282 283 /** 284 * Sets the effortCertificationReportEndPeriodCode attribute value. 285 * 286 * @param effortCertificationReportEndPeriodCode The effortCertificationReportEndPeriodCode to set. 287 */ 288 public void setEffortCertificationReportEndPeriodCode(String effortCertificationReportEndPeriodCode) { 289 this.effortCertificationReportEndPeriodCode = effortCertificationReportEndPeriodCode; 290 } 291 292 /** 293 * Gets the expenseTransferFiscalPeriod attribute. 294 * 295 * @return Returns the expenseTransferFiscalPeriod. 296 */ 297 public AccountingPeriod getExpenseTransferFiscalPeriod() { 298 return expenseTransferFiscalPeriod; 299 } 300 301 /** 302 * Sets the expenseTransferFiscalPeriod attribute value. 303 * 304 * @param expenseTransferFiscalPeriod The expenseTransferFiscalPeriod to set. 305 */ 306 @Deprecated 307 public void setExpenseTransferFiscalPeriod(AccountingPeriod expenseTransferFiscalPeriod) { 308 this.expenseTransferFiscalPeriod = expenseTransferFiscalPeriod; 309 } 310 311 /** 312 * gets expenseTrasferYear 313 * @return 314 */ 315 public SystemOptions getExpenseTransferYear() { 316 return expenseTransferYear; 317 } 318 319 /** 320 * sets expenseTrasferYear attribute 321 * @param expenseTransferYear 322 */ 323 @Deprecated 324 public void setExpenseTransferYear(SystemOptions expenseTransferYear) { 325 this.expenseTransferYear = expenseTransferYear; 326 } 327 328 /** 329 * 330 * gets reportBeginFiscalYear attribute value 331 * @return 332 */ 333 public SystemOptions getReportBeginFiscalYear() { 334 return reportBeginFiscalYear; 335 } 336 337 /** 338 * 339 * sets the reportBeginFiscalYear attribute 340 * @param reportBeginFiscalYear 341 */ 342 @Deprecated 343 public void setReportBeginFiscalYear(SystemOptions reportBeginFiscalYear) { 344 this.reportBeginFiscalYear = reportBeginFiscalYear; 345 } 346 347 /** 348 * 349 * gets reportEndFiscalYear attribute 350 * @return 351 */ 352 public SystemOptions getReportEndFiscalYear() { 353 return reportEndFiscalYear; 354 } 355 356 /** 357 * 358 * sets reportEndFiscalYear attribute 359 * @param reportEndFiscalYear 360 */ 361 @Deprecated 362 public void setReportEndFiscalYear(SystemOptions reportEndFiscalYear) { 363 this.reportEndFiscalYear = reportEndFiscalYear; 364 } 365 366 /** 367 * 368 * gets reportBeginPeriod 369 * @return 370 */ 371 public AccountingPeriod getReportBeginPeriod() { 372 return reportBeginPeriod; 373 } 374 375 /** 376 * sets reportBeginFiscalPeriod 377 * This method... 378 * @param reportBeginPeriod 379 */ 380 @Deprecated 381 public void setReportBeginPeriod(AccountingPeriod reportBeginPeriod) { 382 this.reportBeginPeriod = reportBeginPeriod; 383 } 384 385 /** 386 * gets reporEndPeriod 387 * @return 388 */ 389 public AccountingPeriod getReportEndPeriod() { 390 return reportEndPeriod; 391 } 392 393 /** 394 * sets reportEndPeriod 395 * @param reportEndPeriod 396 */ 397 @Deprecated 398 public void setReportEndPeriod(AccountingPeriod reportEndPeriod) { 399 this.reportEndPeriod = reportEndPeriod; 400 } 401 402 /** 403 * Gets the effortCertificationPeriodStatusCode attribute. 404 * 405 * @return Returns the effortCertificationPeriodStatusCode. 406 */ 407 public EffortCertificationPeriodStatusCode getEffortCertificationPeriodStatusCode() { 408 return effortCertificationPeriodStatusCode; 409 } 410 411 /** 412 * Sets the effortCertificationPeriodStatusCode attribute value. 413 * 414 * @param effortCertificationPeriodStatusCode The effortCertificationPeriodStatusCode to set. 415 */ 416 @Deprecated 417 public void setEffortCertificationPeriodStatusCode(EffortCertificationPeriodStatusCode effortCertificationPeriodStatusCode) { 418 this.effortCertificationPeriodStatusCode = effortCertificationPeriodStatusCode; 419 } 420 421 /** 422 * Gets the effortCertificationReportType attribute. 423 * 424 * @return Returns the effortCertificationReportType. 425 */ 426 public EffortCertificationReportType getEffortCertificationReportType() { 427 return effortCertificationReportType; 428 } 429 430 /** 431 * Sets the effortCertificationReportType attribute value. 432 * 433 * @param effortCertificationReportType The effortCertificationReportType to set. 434 */ 435 @Deprecated 436 public void setEffortCertificationReportType(EffortCertificationReportType effortCertificationReportType) { 437 this.effortCertificationReportType = effortCertificationReportType; 438 } 439 440 /** 441 * Gets the effortCertificationReportPositions attribute. 442 * 443 * @return Returns the effortCertificationReportPositions. 444 */ 445 public Collection<EffortCertificationReportPosition> getEffortCertificationReportPositions() { 446 return effortCertificationReportPositions; 447 } 448 449 /** 450 * Sets the effortCertificationReportPositions attribute value. 451 * 452 * @param effortCertificationReportPositions The effortCertificationReportPositions to set. 453 */ 454 public void setEffortCertificationReportPositions(Collection<EffortCertificationReportPosition> effortCertificationReportPositions) { 455 this.effortCertificationReportPositions = effortCertificationReportPositions; 456 } 457 458 /** 459 * Gets the active attribute. 460 * 461 * @return Returns the active. 462 */ 463 public boolean isActive() { 464 return active; 465 } 466 467 /** 468 * Sets the active attribute value. 469 * 470 * @param active The active to set. 471 */ 472 public void setActive(boolean active) { 473 this.active = active; 474 } 475 476 /** 477 * Gets the options attribute. 478 * 479 * @return Returns the options. 480 */ 481 public SystemOptions getOptions() { 482 return options; 483 } 484 485 /** 486 * Sets the options attribute value. 487 * 488 * @param options The options to set. 489 */ 490 @Deprecated 491 public void setOptions(SystemOptions options) { 492 this.options = options; 493 } 494 495 /** 496 * @see org.kuali.rice.kns.bo.BusinessObjectBase#toStringMapper() 497 */ 498 protected LinkedHashMap toStringMapper() { 499 return new LinkedHashMap<String, String>(buildKeyMapForCurrentReportDefinition()); 500 } 501 502 /** 503 * build a primary key field map for the current report definition 504 * 505 * @return a primary key field map for the current report definition 506 */ 507 public Map<String, String> buildKeyMapForCurrentReportDefinition() { 508 return buildKeyMap(this.getUniversityFiscalYear(), this.getEffortCertificationReportNumber()); 509 } 510 511 /** 512 * build a primary key field map for a report definition from the given values 513 * 514 * @param universityFiscalYear the given fiscal year 515 * @param reportNumber the given report number 516 * @return a primary key field map for a report definition 517 */ 518 public static Map<String, String> buildKeyMap(Integer universityFiscalYear, String reportNumber) { 519 Map<String, String> primaryKeyMap = new HashMap<String, String>(); 520 521 String stringFiscalYear = (universityFiscalYear == null) ? "" : universityFiscalYear.toString(); 522 primaryKeyMap.put(KFSPropertyConstants.UNIVERSITY_FISCAL_YEAR, stringFiscalYear); 523 primaryKeyMap.put(EffortPropertyConstants.EFFORT_CERTIFICATION_REPORT_NUMBER, reportNumber); 524 525 return primaryKeyMap; 526 } 527 528 /** 529 * build all report periods map covered by the specified report definition 530 */ 531 public void buildReportPeriods() { 532 Integer beginYear = this.getEffortCertificationReportBeginFiscalYear(); 533 String beginPeriodCode = this.getEffortCertificationReportBeginPeriodCode(); 534 Integer endYear = this.getEffortCertificationReportEndFiscalYear(); 535 String endPeriodCode = this.getEffortCertificationReportEndPeriodCode(); 536 537 this.setReportPeriods(AccountingPeriodMonth.findAccountingPeriodsBetween(beginYear, beginPeriodCode, endYear, endPeriodCode)); 538 } 539 540 /** 541 * Gets the reportPeriods attribute. 542 * @return Returns the reportPeriods. 543 */ 544 public Map<Integer, Set<String>> getReportPeriods() { 545 if (reportPeriods == null) { 546 this.buildReportPeriods(); 547 } 548 return reportPeriods; 549 } 550 551 /** 552 * Sets the reportPeriods attribute value. 553 * @param reportPeriods The reportPeriods to set. 554 */ 555 public void setReportPeriods(Map<Integer, Set<String>> reportPeriods) { 556 this.reportPeriods = reportPeriods; 557 } 558 }