001/** 002 * Copyright 2004-2014 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 */ 016package org.kuali.kpme.tklm.leave.summary; 017 018import java.io.Serializable; 019import java.util.ArrayList; 020import java.util.HashMap; 021import java.util.List; 022import java.util.Map; 023 024import org.apache.commons.lang.StringUtils; 025import org.json.simple.JSONValue; 026import org.kuali.kpme.tklm.api.leave.summary.LeaveSummaryContract; 027 028public class LeaveSummary implements Serializable, LeaveSummaryContract { 029 030 private static final long serialVersionUID = -2080172473960132754L; 031 private List<LeaveSummaryRow> leaveSummaryRows = new ArrayList<LeaveSummaryRow>(); 032 private String ytdDatesString; 033 private String pendingDatesString; 034 private String note; 035 private boolean usageLimit; 036 private List<String> approvalHeaders = new ArrayList<String>(); 037 038 public LeaveSummary(LeaveSummary leaveSummary) { 039 leaveSummaryRows = leaveSummary.leaveSummaryRows; 040 ytdDatesString = leaveSummary.ytdDatesString; 041 pendingDatesString = leaveSummary.pendingDatesString; 042 note = leaveSummary.note; 043 approvalHeaders = leaveSummary.approvalHeaders; 044 } 045 046 public LeaveSummary() { 047 // TODO Auto-generated constructor stub 048 } 049 050 public List<LeaveSummaryRow> getLeaveSummaryRows() { 051 return leaveSummaryRows; 052 } 053 054 public LeaveSummaryRow getLeaveSummaryRowForAccrualCtgy(String accrualCategory) { 055 for (LeaveSummaryRow row : getLeaveSummaryRows()) { 056 if (StringUtils.equals(row.getAccrualCategory(), accrualCategory)) { 057 return row; 058 } 059 } 060 return null; 061 } 062 063 public void setLeaveSummaryRows(List<LeaveSummaryRow> leaveSummaryRows) { 064 this.leaveSummaryRows = leaveSummaryRows; 065 } 066 067 public String getYtdDatesString() { 068 return ytdDatesString; 069 } 070 071 public void setYtdDatesString(String ytdDatesString) { 072 this.ytdDatesString = ytdDatesString; 073 } 074 075 public String getPendingDatesString() { 076 return pendingDatesString; 077 } 078 079 public void setPendingDatesString(String pendingDatesString) { 080 this.pendingDatesString = pendingDatesString; 081 } 082 083 public String toJsonString() { 084 List<Map<String, Object>> acSections = new ArrayList<Map<String, Object>>(); 085 for(LeaveSummaryRow lsr : this.leaveSummaryRows) { 086 Map<String, Object> acs = new HashMap<String, Object>(); 087 088 acs.put("accrualCategory", lsr.getAccrualCategory()); 089 acs.put("periodUsage", lsr.getPendingLeaveRequests()); 090 acs.put("available", lsr.getLeaveBalance()); 091 acSections.add(acs); 092 } 093 return JSONValue.toJSONString(acSections); 094 } 095 096 public List<String> getApprovalHeaders() { 097 return approvalHeaders; 098 } 099 100 public void setApprovalHeaders(List<String> approvalHeaders) { 101 this.approvalHeaders = approvalHeaders; 102 } 103 104 public LeaveSummaryRow getLeaveSummaryRowForAccrualCategory( 105 String accrualCategoryId) { 106 for(LeaveSummaryRow lsr : leaveSummaryRows) { 107 if(StringUtils.equals(lsr.getAccrualCategoryId(),accrualCategoryId)) { 108 return lsr; 109 } 110 } 111 return null; 112 } 113 114 public String getNote() { 115 return note == null ? "" : note; 116 } 117 118 public void setNote(String note) { 119 this.note = note; 120 } 121 122 public boolean isUsageLimit() { 123 return usageLimit; 124 } 125 126 public void setUsageLimit(boolean usageLimit) { 127 this.usageLimit = usageLimit; 128 } 129 130 131}