001: /*
002: * Copyright 2007 The Kuali Foundation.
003: *
004: * Licensed under the Educational Community License, Version 1.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/ecl1.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.module.labor;
017:
018: import java.util.ArrayList;
019: import java.util.HashMap;
020: import java.util.List;
021: import java.util.Map;
022:
023: import org.apache.commons.lang.StringUtils;
024: import org.kuali.core.service.DataDictionaryService;
025: import org.kuali.kfs.KFSConstants;
026: import org.kuali.kfs.KFSPropertyConstants;
027: import org.kuali.kfs.context.SpringContext;
028: import org.kuali.kfs.service.ParameterService;
029: import org.kuali.kfs.service.impl.ParameterConstants;
030: import org.kuali.module.gl.bo.OriginEntryFull;
031:
032: /**
033: * Global constancts for labor distribution.
034: */
035: public class LaborConstants {
036: public static class BalanceInquiries {
037: public static final String ANNUAL_BALANCE = "ACLN_ANNL_BAL_AMT";
038: public static final String BALANCE_TYPE_AC_AND_A21 = "AC&A2";
039: public static final String CONTRACT_GRANT_BB_AMOUNT = "CONTR_GR_BB_AC_AMT";
040: public static final String EMPLOYEE_FUNDING_EXPENSE_OBJECT_TYPE_CODE = "ES";
041: public static final String EMPLOYEE_FUNDING_NORMAL_OP_EXPENSE_OBJECT_TYPE_CODE = "EX";
042: public static final int laborHighValueObjectCode = 5000;
043: public static final int laborLowValueObjectCode = 2000;
044: public static final String LEDGER_ENTRY_LOOKUPABLE_FOR_EXPENSE_TRANSFER = "laborLedgerEntryForExpenseTransferLookupable";
045: public static final String UnknownPersonName = "* Unknown Name *";
046: }
047:
048: public static class BenefitExpenseTransfer {
049: public static final String LABOR_LEDGER_BENEFIT_CODE = "F";
050: }
051:
052: public static class DestinationNames {
053: public static final String LABOR_GL_ENTRY = "LD_LBR_GL_ENTRY_T";
054: public static final String LEDGER_BALANCE = "LD_LDGR_BAL_T";
055: public static final String LEDGER_ENRTY = "LD_LDGR_ENTR_T";
056: public static final String ORIGN_ENTRY = "LD_LBR_ORIGIN_ENTRY_T";
057: }
058:
059: public enum JournalVoucherOffsetType {
060: ACCRUAL("LJVA", "Accrual", "LLJV ACCRUALS OFFSET"), CASH(
061: "LJVC", "Cash", "LLJV CASH OFFSET"), ENCUMBRANCE(
062: "LJVE", "Encumbrance", "LLJV ENCUMBRANCE OFFSET"), NO_OFFSET(
063: "LLJV", "No Offset", "LABOR LEDGER JOUNAL VOUCHER");
064:
065: public String description;
066: public String longDescription;
067: public String typeCode;
068:
069: private JournalVoucherOffsetType(String typeCode,
070: String description, String longDescription) {
071: this .typeCode = typeCode;
072: this .description = description;
073: this .longDescription = longDescription;
074: }
075: }
076:
077: public static final class LABOR_LEDGER_PENDING_ENTRY_CODE {
078: public static final String BLANK_EMPL_ID = "-----------"; // Max length is 11 for this field
079: public static final String BLANK_OBJECT_CODE = "----"; // Max length is 4 for this field
080: public static final String BLANK_OBJECT_TYPE_CODE = "--"; // Max length is 4 for this field
081: public static final String BLANK_POSITION_NUMBER = "--------"; // Max length is 8 for this field
082: public static final String BLANK_PROJECT_STRING = "----------"; // Max length is 10 for this field
083: public static final String BLANK_SUB_ACCOUNT_NUMBER = "-----"; // Max length is 5 for this field
084: public static final String BLANK_SUB_OBJECT_CODE = "---"; // Max length is 3 for this field
085: public static final String LL_PE_OFFSET_STRING = "TP Generated Offset";
086: public static final int LLPE_DESCRIPTION_MAX_LENGTH = 40;
087: public static final String NO = "N";
088: public static final String YES = "Y";
089: }
090:
091: public static class LookupableBeanKeys {
092: static final public String CSF_TRACKER = "laborCalculatedSalaryFoundationTrackerLookupable";
093: static final public String PENDING_ENTRY = "laborPendingEntryLookupable";
094: }
095:
096: public static class ParameterGroups {
097: public static final String PAYROLL_ACCRUAL = "Labor.PayrollAccrual";
098: public static final String POSTER = "Labor.Poster";
099: public static final String YEAR_END = "Labor.YearEnd";
100: }
101:
102: public static class PayrollDocumentTypeCode {
103: public static final String ACCRUALS = "PAYA";
104: public static final String ACCRUALS_REVERSAL = "PAYN";
105:
106: public static final String CHECK_CANCELLATION = "PAYC";
107: public static final String ENCUMBRANCE = "PAYE";
108: public static final String EXPENSE_TRANSFER_BT = "BT";
109:
110: public static final String EXPENSE_TRANSFER_ET = "ET";
111: public static final String EXPENSE_TRANSFER_SACH = "SACH";
112: public static final String EXPENSE_TRANSFER_ST = "ST";
113:
114: public static final String EXPENSE_TRANSFER_YEBT = "YEBT";
115: public static final String EXPENSE_TRANSFER_YEST = "YEST";
116: public static final String HAND_DRAWN_CHECK = "HDRW";
117: public static final String NORMAL_PAY = "PAY";
118: public static final String OVERPAYMENT = "OPAY";
119: public static final String RETROACTIVE_ADJUSTMENT = "RETR";
120: }
121:
122: public static class Poster {
123: public static final String BALANCE_TYPES_NOT_PROCESSED = "SENT_TO_GL_BALANCE_TYPES";
124: public static final String OBJECT_CODES_NOT_PROCESSED = "SENT_TO_POSTER_OBJECT_CODES";
125: public static final String PERIOD_CODES_NOT_PROCESSED = "SENT_TO_GL_PERIOD_CODES";
126: }
127:
128: public static class SalaryExpenseTransfer {
129: public static final String BENEFIT_CLEARING_ACCOUNT_PARM_NM = "BENEFIT_CLEARING_ACCOUNT_NUMBER";
130: public static final String BENEFIT_CLEARING_CHART_PARM_NM = "BENEFIT_CLEARING_CHART_OF_ACCOUNTS";
131: public static final String LABOR_LEDGER_SALARY_CODE = "S";
132: public static final String SET_ADMIN_WORKGROUP_PARM_NM = "SALARY_EXPENSE_TRANSFER_ADMINISTRATORS_GROUP";
133: }
134:
135: public static class Scrubber {
136: public static final String ACCOUNT_FRINGE_EXCLUSION_PARAMETER = "ACCOUNTS_NOT_ACCEPTING_FRINGES_IND";
137: public static final String CONTINUATION_ACCOUNT_LOGIC_PARAMETER = "CONTINUATION_ACCOUNT_LOGIC_IND";
138: public static final String PARAMETER_GROUP = "LaborScrubberStep";
139: public static final String SUBFUND_WAGE_EXCLUSION_PARAMETER = "SUB_FUND_GROUPS_NOT_ACCEPTING_WAGES_IND";
140: public static final String SUSPENSE_ACCOUNT_LOGIC_PARAMETER = "SUSPENSE_ACCOUNT_LOGIC_IND";
141: public static final String SUSPENSE_ACCOUNT = "SUSPENSE_ACCOUNT";
142: public static final String SUSPENSE_CHART = "SUSPENSE_CHART";
143: public static final String CLOSED_FISCAL_PERIOD_BYPASS_BALANCE_TYPES = "CLOSED_FISCAL_PERIOD_BYPASS_BALANCE_TYPES";
144: public static final String CONTINUATION_ACCOUNT_BYPASS_ORIGINATION_CODES = "CONTINUATION_ACCOUNT_BYPASS_ORIGINATIONS";
145: public static final String CONTINUATION_ACCOUNT_BYPASS_DOCUMENT_TYPE_CODES = "CONTINUATION_ACCOUNT_BYPASS_DOCUMENT_TYPES";
146: public static final String NON_FRINGE_ACCOUNT_BYPASS_ORIGINATIONS = "NON_FRINGE_ACCOUNT_BYPASS_ORIGINATIONS";
147: public static final String NON_WAGE_SUB_FUND_BYPASS_ORIGINATIONS = "NON_WAGE_SUB_FUND_BYPASS_ORIGINATIONS";
148: }
149:
150: public static class TransactionGeneratorNames {
151: public static final String BENEFIT_ACCRUAL = "BENEFIT ACCRUAL";
152: public static final String BENEFIT_REVERSAL = "BENEFIT REVERSAL";
153: public static final String DISENCUMBRANCE = "DISENCUMBRANCE";
154: public static final String ENCUMBRANCE = "ENCUMBRANCE";
155: public static final String SALARY_ACCRUAL = "SALARY ACCRUAL";
156: public static final String SALARY_REVERSAL = "SALARY REVERSAL";
157: }
158:
159: public static class YearEnd {
160: public static final String FUND_GROUP_PROCESSED = "FUND_GROUPS";
161: public static final String OLD_FISCAL_YEAR = "FISCAL_YEAR_SELECTION";
162: public static final String ORIGINATION_CODE = "ORIGINATION";
163: public static final String SUB_FUND_GROUP_PROCESSED = "SUB_FUND_GROUPS";
164: }
165:
166: public static final String BASE_FUNDS_LOOKUP_HELPER_SRVICE_NAME = "BaseFundsLookupableHelperService";
167:
168: public static final String CSF_TRACKER_LOOKUP_HELPER_SRVICE_NAME = "laborCalculatedSalaryFoundationTrackerLookupableHelperService";
169:
170: public static final String CURRENT_FUNDS_LOOKUP_HELPER_SRVICE_NAME = "CurrentFundsLookupableHelperService";
171: public static final String DASHES_DELETE_CODE = "-";
172:
173: public static final String EMPLOYEE_LOOKUP_ERRORS = "document.employeeLookups";
174: public static final String EXPENSE_TRANSFER_ACCOUNTING_LINE_SERVIOCE_NAME = "expenseTransferAccountingLineService";
175: public static final String LABOR_INQUIRY_OPTIONS_SERVICE = "laborInquiryOptionsService";
176: public static final int LLCP_MAX_LENGTH = 294;
177: public static final String LONG_ROW_TABLE_INRUIRY_ACTION = "laborLongRowTableInquiry.do";
178: public static final Map<String, String> periodCodeMapping = new HashMap<String, String>();
179: private static String SPACE_TRANSACTION_DATE = null;
180:
181: static {
182: periodCodeMapping.put(KFSPropertyConstants.MONTH1_AMOUNT,
183: KFSConstants.MONTH1);
184: periodCodeMapping.put(KFSPropertyConstants.MONTH2_AMOUNT,
185: KFSConstants.MONTH2);
186: periodCodeMapping.put(KFSPropertyConstants.MONTH3_AMOUNT,
187: KFSConstants.MONTH3);
188: periodCodeMapping.put(KFSPropertyConstants.MONTH4_AMOUNT,
189: KFSConstants.MONTH4);
190: periodCodeMapping.put(KFSPropertyConstants.MONTH5_AMOUNT,
191: KFSConstants.MONTH5);
192: periodCodeMapping.put(KFSPropertyConstants.MONTH6_AMOUNT,
193: KFSConstants.MONTH6);
194: periodCodeMapping.put(KFSPropertyConstants.MONTH7_AMOUNT,
195: KFSConstants.MONTH7);
196: periodCodeMapping.put(KFSPropertyConstants.MONTH8_AMOUNT,
197: KFSConstants.MONTH8);
198: periodCodeMapping.put(KFSPropertyConstants.MONTH9_AMOUNT,
199: KFSConstants.MONTH9);
200: periodCodeMapping.put(KFSPropertyConstants.MONTH10_AMOUNT,
201: KFSConstants.MONTH10);
202: periodCodeMapping.put(KFSPropertyConstants.MONTH11_AMOUNT,
203: KFSConstants.MONTH11);
204: periodCodeMapping.put(KFSPropertyConstants.MONTH12_AMOUNT,
205: KFSConstants.MONTH12);
206: periodCodeMapping.put(KFSPropertyConstants.MONTH13_AMOUNT,
207: KFSConstants.MONTH13);
208: }
209:
210: public static List<String> consolidationAttributesOfOriginEntry() {
211: List<String> consolidationAttributes = new ArrayList<String>();
212:
213: consolidationAttributes
214: .add(KFSPropertyConstants.UNIVERSITY_FISCAL_YEAR);
215: consolidationAttributes
216: .add(KFSPropertyConstants.UNIVERSITY_FISCAL_PERIOD_CODE);
217:
218: consolidationAttributes
219: .add(KFSPropertyConstants.CHART_OF_ACCOUNTS_CODE);
220: consolidationAttributes
221: .add(KFSPropertyConstants.ACCOUNT_NUMBER);
222: consolidationAttributes
223: .add(KFSPropertyConstants.SUB_ACCOUNT_NUMBER);
224:
225: consolidationAttributes
226: .add(KFSPropertyConstants.FINANCIAL_BALANCE_TYPE_CODE);
227: consolidationAttributes
228: .add(KFSPropertyConstants.FINANCIAL_OBJECT_CODE);
229: consolidationAttributes
230: .add(KFSPropertyConstants.FINANCIAL_SUB_OBJECT_CODE);
231: consolidationAttributes
232: .add(KFSPropertyConstants.FINANCIAL_OBJECT_TYPE_CODE);
233:
234: consolidationAttributes
235: .add(KFSPropertyConstants.FINANCIAL_DOCUMENT_TYPE_CODE);
236: consolidationAttributes
237: .add(KFSPropertyConstants.DOCUMENT_NUMBER);
238: consolidationAttributes
239: .add(KFSPropertyConstants.ORGANIZATION_DOCUMENT_NUMBER);
240:
241: consolidationAttributes
242: .add(KFSPropertyConstants.FINANCIAL_SYSTEM_ORIGINATION_CODE);
243: consolidationAttributes.add(KFSPropertyConstants.PROJECT_CODE);
244: consolidationAttributes
245: .add(KFSPropertyConstants.ORGANIZATION_REFERENCE_ID);
246: consolidationAttributes
247: .add(KFSPropertyConstants.TRANSACTION_LEDGER_ENTRY_DESC);
248:
249: // Reference Document Type, Reference Origin Code, Reference Document Number, Reversal Date, and Encumbrance Update Code.
250: consolidationAttributes
251: .add(KFSPropertyConstants.REFERENCE_FINANCIAL_DOCUMENT_TYPE_CODE);
252: consolidationAttributes
253: .add(KFSPropertyConstants.REFERENCE_FINANCIAL_SYSTEM_ORIGINATION_CODE);
254: consolidationAttributes
255: .add(KFSPropertyConstants.REFERENCE_FINANCIAL_DOCUMENT_NUMBER);
256: consolidationAttributes
257: .add(KFSPropertyConstants.FINANCIAL_DOCUMENT_REVERSAL_DATE);
258: consolidationAttributes
259: .add(KFSPropertyConstants.TRANSACTION_ENCUMBRANCE_UPDT_CD);
260:
261: consolidationAttributes
262: .add(KFSPropertyConstants.TRANSACTION_DEBIT_CREDIT_CODE);
263: consolidationAttributes
264: .add(KFSPropertyConstants.TRANSACTION_LEDGER_ENTRY_AMOUNT);
265:
266: return consolidationAttributes;
267: }
268:
269: public static String getSpaceTransactionDate() {
270: if (SPACE_TRANSACTION_DATE == null) {
271: SPACE_TRANSACTION_DATE = StringUtils
272: .rightPad(
273: "",
274: SpringContext
275: .getBean(
276: DataDictionaryService.class)
277: .getAttributeSize(
278: OriginEntryFull.class,
279: KFSPropertyConstants.TRANSACTION_DATE),
280: ' ');
281: }
282: return SPACE_TRANSACTION_DATE;
283: }
284:
285: public static final String ANNUAL_CLOSING_DOCUMENT_TYPE_CODE = getAnnualClosingDocumentType();
286:
287: private static String getAnnualClosingDocumentType() {
288: return SpringContext
289: .getBean(ParameterService.class)
290: .getParameterValue(
291: ParameterConstants.GENERAL_LEDGER_BATCH.class,
292: KFSConstants.SystemGroupParameterNames.GL_ANNUAL_CLOSING_DOC_TYPE);
293: }
294:
295: public static final String[] ACCOUNT_FIELDS = {
296: KFSPropertyConstants.CHART_OF_ACCOUNTS_CODE,
297: KFSPropertyConstants.ACCOUNT_NUMBER };
298: }
|