001 /** 002 * Copyright 2004-2013 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.hr.time.timesummary; 017 018 import org.apache.commons.lang.StringUtils; 019 import org.json.simple.JSONValue; 020 import org.kuali.hr.lm.leaveSummary.LeaveSummaryRow; 021 022 import java.io.Serializable; 023 import java.math.BigDecimal; 024 import java.util.*; 025 026 public class TimeSummary implements Serializable { 027 private List<String> summaryHeader = new ArrayList<String>(); 028 private List<EarnGroupSection> sections = new ArrayList<EarnGroupSection>(); 029 private List<LeaveSummaryRow> maxedLeaveRows = new ArrayList<LeaveSummaryRow>(); 030 private List<BigDecimal> workedHours = new ArrayList<BigDecimal>(); 031 032 public List<String> getSummaryHeader() { 033 return summaryHeader; 034 } 035 public void setSummaryHeader(List<String> summaryHeader) { 036 this.summaryHeader = summaryHeader; 037 } 038 public List<EarnGroupSection> getSections() { 039 return sections; 040 } 041 public void setSections(List<EarnGroupSection> sections) { 042 this.sections = sections; 043 } 044 public List<BigDecimal> getWorkedHours() { 045 return workedHours; 046 } 047 public void setWorkedHours(List<BigDecimal> workedHours) { 048 this.workedHours = workedHours; 049 } 050 051 public String toJsonString() { 052 List<Map<String, Object>> earnGroupSections = new ArrayList<Map<String, Object>>(); 053 054 //Lets add a fake EarnGroupSection for worked hours!!! 055 Map<String, Object> workedHours = new HashMap<String, Object>(); 056 workedHours.put("totals", getWorkedHours()); 057 workedHours.put("earnGroup", "Worked Hours"); 058 workedHours.put("earnCodeSections", new HashMap<String, Object>()); 059 060 //Map<String, Object> workedHoursECS = new HashMap<String, Object>(); 061 //workedHoursECS.put("earnCode", ""); 062 ///workedHoursECS.put("desc", "Worked Hours"); 063 //workedHoursECS.put("totals", getWorkedHours()); 064 //workedHoursECS.put("isAmountEarnCode", earnCodeSection.getIsAmountEarnCode()); 065 066 for (EarnGroupSection earnGroupSection : this.sections) { 067 List<Map<String, Object>> earnCodeSections = new ArrayList<Map<String, Object>>(); 068 Map<String, Object> egs = new TreeMap<String, Object>(); 069 egs.put("earnGroup", earnGroupSection.getEarnGroup()); 070 egs.put("totals", earnGroupSection.getTotals()); 071 072 for (EarnCodeSection earnCodeSection : earnGroupSection.getEarnCodeSections()) { 073 Map<String, Object> ecs = new TreeMap<String, Object>(); 074 075 ecs.put("earnCode", earnCodeSection.getEarnCode()); 076 ecs.put("desc", earnCodeSection.getDescription()); 077 ecs.put("totals", earnCodeSection.getTotals()); 078 ecs.put("isAmountEarnCode", earnCodeSection.getIsAmountEarnCode()); 079 080 List<Map<String, Object>> assignmentRows = new ArrayList<Map<String, Object>>(); 081 for (AssignmentRow assignmentRow : earnCodeSection.getAssignmentsRows()) { 082 Map<String, Object> ar = new TreeMap<String, Object>(); 083 084 ar.put("descr", assignmentRow.getDescr()); 085 ar.put("assignmentKey", assignmentRow.getAssignmentKey()); 086 ar.put("cssClass", assignmentRow.getCssClass()); 087 ar.put("earnCode", earnCodeSection.getEarnCode()); 088 ecs.put("earnGroup", earnGroupSection.getEarnGroup()); 089 ecs.put("totals", earnGroupSection.getTotals()); 090 091 List<Map<String, Object>> assignmentColumns = new ArrayList<Map<String, Object>>(); 092 for (AssignmentColumn assignmentColumn : assignmentRow.getAssignmentColumns()) { 093 Map<String, Object> ac = new TreeMap<String, Object>(); 094 095 ac.put("cssClass", assignmentColumn.getCssClass()); 096 ac.put("amount", assignmentColumn.getAmount()); 097 ac.put("total", assignmentColumn.getTotal()); 098 ac.put("isWeeklyTotal", assignmentColumn.isWeeklyTotal()); 099 100 assignmentColumns.add(ac); 101 } 102 ar.put("assignmentColumns", assignmentColumns); 103 104 assignmentRows.add(ar); 105 } 106 ecs.put("assignmentRows", assignmentRows); 107 108 earnCodeSections.add(ecs); 109 } 110 egs.put("earnCodeSections", earnCodeSections); 111 earnGroupSections.add(egs); 112 } 113 earnGroupSections.add(workedHours); 114 115 return JSONValue.toJSONString(earnGroupSections); 116 } 117 public List<LeaveSummaryRow> getMaxedLeaveRows() { 118 return maxedLeaveRows; 119 } 120 public void setMaxedLeaveRows(List<LeaveSummaryRow> maxedLeaveRows) { 121 this.maxedLeaveRows = maxedLeaveRows; 122 } 123 124 }