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    package org.kuali.kfs.module.ec;
017    
018    import java.util.ArrayList;
019    import java.util.List;
020    
021    import org.kuali.kfs.sys.KFSConstants;
022    import org.kuali.kfs.sys.KFSPropertyConstants;
023    import org.kuali.rice.core.util.JSTLConstants;
024    
025    /**
026     * General constants for the effort reporting module.
027     */
028    public class EffortConstants extends JSTLConstants {
029        
030        public static final String EFFORT_NAMESPACE_CODE = "KFS-EC";
031        
032        /**
033         * hold contants used by extract process
034         */
035        public class ExtractProcess {
036            public static final String EXPENSE_OBJECT_TYPE = "EXPENSE_OBJECT_TYPE";
037            
038            // the following constants used as the key of the statistics entries for the working progress report
039            public static final String NUM_BALANCES_READ = "numOfBalancesRead";
040            public static final String NUM_BALANCES_SELECTED = "numOfBalancesSelected";
041            public static final String NUM_CERTIFICATIONS_WRITTEN = "numOfCertificationWritten";
042            public static final String NUM_DETAIL_LINES_WRITTEN = "numOfDetailLineWritten";
043            public static final String NUM_EMPLOYEES_SELECTED = "numOfEmployees";
044    
045            public static final String NUM_ERRORS_FOUND = "numOfErrors";
046        }
047    
048        /**
049         * hold all system parameter names of effort reporting module
050         */
051        public class SystemParameters {
052            public static final String ACCOUNT_TYPE_CODE_BALANCE_SELECT = "ACCOUNT_TYPE_CODE_BALANCE_SELECT";
053            public static final String CREATE_FISCAL_YEAR = "CREATE_FISCAL_YEAR";
054            public static final String CREATE_REPORT_NUMBER = "CREATE_REPORT_NUMBER";
055            public static final String FEDERAL_AGENCY_TYPE_CODE = "FEDERAL_AGENCY_TYPE";
056    
057            public static final String FEDERAL_ONLY_BALANCE_IND = "FEDERAL_ONLY_BALANCE_IND";
058            public static final String RUN_FISCAL_YEAR = "RUN_FISCAL_YEAR";
059    
060            public static final String RUN_IND = "RUN_IND";
061            public static final String RUN_REPORT_NUMBER = "RUN_REPORT_NUMBER";
062            
063            public static final String FEDERAL_ONLY_ROUTE_IND = "FEDERAL_ONLY_ROUTE_IND";
064        }
065    
066        public static final String DASH_ACCOUNT_NUMBER = "-------";
067        public static final String DASH_CHART_OF_ACCOUNTS_CODE = "--";
068        public static final String DASH_POSITION_NUMBER = "--------";
069    
070        public static final String LABOR_OBJECT_SALARY_CODE = "S";
071        public static final String VALUE_SEPARATOR = ", ";
072    
073        public static final List<String> ELIGIBLE_BALANCE_TYPES_FOR_EFFORT_REPORT = getEeligibleBalanceTypesForEffortReport();
074    
075        private static final List<String> getEeligibleBalanceTypesForEffortReport() {
076            List<String> balanceTypeList = new ArrayList<String>();
077            balanceTypeList.add(KFSConstants.BALANCE_TYPE_ACTUAL);
078            balanceTypeList.add(KFSConstants.BALANCE_TYPE_A21);
079            
080            return balanceTypeList;
081        }
082        
083        public static final List<String> ELIGIBLE_COST_SHARE_SUB_ACCOUNT_TYPE_CODES = getEligibleCostShareSubAccountTypeCodes();
084        
085        private static final List<String> getEligibleCostShareSubAccountTypeCodes(){
086            List<String> costShareSubAccountTypeCodesList = new ArrayList<String>();
087            costShareSubAccountTypeCodesList.add(KFSConstants.SubAccountType.COST_SHARE);
088            return costShareSubAccountTypeCodesList;
089        }
090        
091        public static final List<String> ELIGIBLE_EXPENSE_SUB_ACCOUNT_TYPE_CODES = getEligibleExpenseSubAccountTypeCodes();
092        
093        private static final List<String> getEligibleExpenseSubAccountTypeCodes(){
094            List<String> expenseSubAccountTypeCodesList = new ArrayList<String>();
095            expenseSubAccountTypeCodesList.add(KFSConstants.SubAccountType.EXPENSE);
096            return expenseSubAccountTypeCodesList;
097        }
098        
099        public static final double PERCENT_LIMIT_OF_LINE_SALARY_CHANGE = 0.005;
100        public static final double AMOUNT_LIMIT_OF_TOTAL_SALARY_CHANGE = 0.009;
101    
102        public static final String EFFORT_DETAIL_IMPORT_ERRORS = "effortDetailImportError";
103        public static final String REQUIRED_IMPORT_FIELDS_ERRORS = "requiredImportFieldError";
104        public static final String DOCUMENT_PREFIX = "document.";
105    
106        public static final String EFFORT_CERTIFICATION_TAB_ERRORS = "newDetailLine.*,document.effortCertificationDetailLines*,document.summarizedDetailLines*";
107    
108        public static final String RECREATED_DOCUMENT_MESSAGE_KEY = "message.effort.recreatedDocumentMessage";
109    
110        public static final String GENERATE_EFFORT_CERTIFICATION_REPORT_DEFINITION_QUESTION_ID = "GenerateDefinitionQuestion";
111    
112        public static class EffortCertificationEditMode {        
113            public static final String DETAIL_TAB_ENTRY = "detailTabEntry";      
114            public static final String SUMMARY_TAB_ENTRY = "summaryTabEntry";
115        }
116        
117        public static final List<String> DETAIL_LINES_CONSOLIDATION_FILEDS = getDetailLinesConsolidationFields();
118        private static final List<String> getDetailLinesConsolidationFields() {
119            List<String> consolidationFields = new ArrayList<String>();
120            consolidationFields.add(KFSPropertyConstants.CHART_OF_ACCOUNTS_CODE);
121            consolidationFields.add(KFSPropertyConstants.ACCOUNT_NUMBER);
122            consolidationFields.add(KFSPropertyConstants.SUB_ACCOUNT_NUMBER);
123    
124            return consolidationFields;
125        }
126        
127        public static final List<String> DETAIL_LINES_GROUPING_FILEDS = getDetailLinesGroupingFields();
128        private static final List<String> getDetailLinesGroupingFields() {
129            List<String> groupingFields = new ArrayList<String>();
130            groupingFields.add(KFSPropertyConstants.CHART_OF_ACCOUNTS_CODE);
131            groupingFields.add(KFSPropertyConstants.ACCOUNT_NUMBER);
132            groupingFields.add(KFSPropertyConstants.SUB_ACCOUNT_NUMBER);
133            groupingFields.add(EffortPropertyConstants.NEW_LINE_INDICATOR);
134    
135            return groupingFields;
136        }
137        
138        public static final String SORT_DETAIL_LINE_BY_COLUMN_METHOD_NAME = "sortDetailLineByColumn";
139        
140        public static class EffortDocumentTypes {
141            public static final String EFFORT_CERTIFICATION_DOCUMENT = "ECD";
142        }
143    }