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