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.json.simple.JSONValue;
019    import org.kuali.hr.lm.leaveSummary.LeaveSummaryRow;
020    
021    import java.io.Serializable;
022    import java.math.BigDecimal;
023    import java.util.ArrayList;
024    import java.util.HashMap;
025    import java.util.List;
026    import java.util.Map;
027    
028    public class TimeSummary implements Serializable {
029            private List<String> summaryHeader = new ArrayList<String>();
030            private List<EarnGroupSection> sections = new ArrayList<EarnGroupSection>();
031            private List<LeaveSummaryRow> maxedLeaveRows = new ArrayList<LeaveSummaryRow>();
032            private List<BigDecimal> workedHours = new ArrayList<BigDecimal>();
033    
034            public List<String> getSummaryHeader() {
035                    return summaryHeader;
036            }
037            public void setSummaryHeader(List<String> summaryHeader) {
038                    this.summaryHeader = summaryHeader;
039            }
040            public List<EarnGroupSection> getSections() {
041                    return sections;
042            }
043            public void setSections(List<EarnGroupSection> sections) {
044                    this.sections = sections;
045            }
046            public List<BigDecimal> getWorkedHours() {
047                    return workedHours;
048            }
049            public void setWorkedHours(List<BigDecimal> workedHours) {
050                    this.workedHours = workedHours;
051            }
052    
053        public String toJsonString() {
054    
055            List<Map<String, Object>> earnCodeSections = new ArrayList<Map<String, Object>>();
056    
057            for (EarnGroupSection earnGroupSection : this.sections) {
058                for (EarnCodeSection earnCodeSection : earnGroupSection.getEarnCodeSections()) {
059                    Map<String, Object> ecs = new HashMap<String, Object>();
060    
061    
062                    ecs.put("earnCode", earnCodeSection.getEarnCode());
063                    ecs.put("desc", earnCodeSection.getDescription());
064                    ecs.put("totals", earnCodeSection.getTotals());
065                    ecs.put("isAmountEarnCode", earnCodeSection.getIsAmountEarnCode());
066    
067                    List<Map<String, Object>> assignmentRows = new ArrayList<Map<String, Object>>();
068                    for (AssignmentRow assignmentRow : earnCodeSection.getAssignmentsRows()) {
069    
070                        Map<String, Object> ar = new HashMap<String, Object>();
071    
072                        ar.put("assignmentKey", assignmentRow.getAssignmentKey());
073                        ar.put("descr", assignmentRow.getDescr());
074                        ar.put("cssClass", assignmentRow.getCssClass());
075                        ar.put("amount", assignmentRow.getAmount());
076                        ar.put("total", assignmentRow.getTotal());
077                        ar.put("amount", assignmentRow.getAmount());
078    
079                        assignmentRows.add(ar);
080                    }
081    
082                    ecs.put("assignmentRows", assignmentRows);
083                    ecs.put("earnGroup", earnGroupSection.getEarnGroup());
084                    ecs.put("totals", earnGroupSection.getTotals());
085    
086                    earnCodeSections.add(ecs);
087                }
088    
089            }
090    
091            return JSONValue.toJSONString(earnCodeSections);
092        }
093            public List<LeaveSummaryRow> getMaxedLeaveRows() {
094                    return maxedLeaveRows;
095            }
096            public void setMaxedLeaveRows(List<LeaveSummaryRow> maxedLeaveRows) {
097                    this.maxedLeaveRows = maxedLeaveRows;
098            }
099    
100    }