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.cam;
017    
018    import java.util.Currency;
019    import java.util.HashMap;
020    import java.util.Map;
021    
022    import org.kuali.rice.core.util.JSTLConstants;
023    import org.kuali.rice.kns.authorization.AuthorizationConstants.EditMode;
024    
025    
026    /**
027     * Global constants for CAMS.
028     */
029    public class CamsConstants extends JSTLConstants {
030        public static final String CAM_MODULE_CODE = "KFS-CAM";
031        public static final String[] MONTHS = { "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" };
032        public static final String SET_PERIOD_DEPRECIATION_AMOUNT_REGEX = "setperiod\\d.*depreciation\\damount";
033        public static final String GET_PERIOD_DEPRECIATION_AMOUNT_REGEX = "getperiod\\d.*depreciation\\damount";
034        public static final String CPTLAST_NBR_SEQ = "CPTLAST_NBR_SEQ";
035        public static final String DOCUMENT_NUMBER_PATH = "documentNumber";
036        public static final String DOCUMENT_PATH = "document";
037        public static final String DOC_HEADER_PATH = DOCUMENT_PATH + "." + DOCUMENT_NUMBER_PATH;
038        public static final String INQUIRY_URL = "inquiry.do";
039        public static final Currency CURRENCY_USD = Currency.getInstance("USD");
040        public static final String LOCATION_INFORMATION_SECTION_ID = "Location Information";
041    
042        public static class DateFormats {
043            public static final String MONTH_DAY_YEAR = "MM/dd/yyyy";
044            public static final String YEAR_MONTH_DAY = "yyyy-MM-dd";
045            public static final String MILITARY_TIME = "HH:mm:ss";
046            public static final String STANDARD_TIME = "hh:mm:ss";
047            public static final String YEAR_MONTH_DAY_NO_DELIMITER = "yyyyMMdd";
048            public static final String MILITARY_TIME_NO_DELIMITER = "HHmmss";
049        }
050    
051        public static class PermissionNames {
052            public static final String ADD_NEGATIVE_PAYMENTS = "Add Negative Payments";
053            public static final String RETIRE_MULTIPLE = "Retire Multiple";
054            public static final String OVERRIDE_CAPITALIZATION_LIMIT_AMOUNT = "Override CAPITALIZATION_LIMIT_AMOUNT";
055            public static final String RETIRE_NON_MOVABLE_ASSETS = "Retire Non-Movable Assets";
056            public static final String TRANSFER_NON_MOVABLE_ASSETS = "Transfer Non-Movable Assets";
057            public static final String USE_ACQUISITION_TYPE_NEW = "Use Acquisition Type \"New\"";
058            public static final String RAZE = "Raze";
059            public static final String MERGE = "Merge";
060            public static final String SEPARATE = "Separate";
061            public static final String USE_RESTRICTED_RETIREMENT_REASON = "Use Restricted Retirement Reason";
062            public static final String EDIT_WHEN_TAGGED_PRIOR_FISCAL_YEAR = "Edit When Tagged Prior Fiscal Year";
063            public static final String MAINTAIN_ASSET_LOCATION = "Maintain Asset Location";
064        }
065    
066        public static class RouteLevelNames {
067            public static final String EXTERNAL_TRANSFER = "ExternalTransfer";
068            public static final String PURCHASING = "Purchasing";
069            public static final String MANAGEMENT = "Management";
070            public static final String PLANT_FUND = "PlantFund";
071            public static final String BORROWER = "Borrower";
072        }
073    
074        public static class AssetActions {
075            public static final String LOAN = "loan";
076            public static final String LOAN_RETURN = "return";
077            public static final String LOAN_RENEW = "renew";
078            public static final String LOAN_TYPE = "loanType";
079            public static final String MERGE = "merge";
080            public static final String PAYMENT = "payment";
081            public static final String RETIRE = "retire";
082            public static final String SEPARATE = "separate";
083            public static final String TRANSFER = "transfer";
084            public static final String VIEW = "view";
085        }
086    
087        public static class StrutsActions {
088            public static final String ONE_UP = "../";
089            public static final String TRANSFER = "camsAssetTransfer.do";
090            public static final String EQUIPMENT_LOAN_OR_RETURN = "camsEquipmentLoanOrReturn.do";
091            public static final String PAYMENT = "camsAssetPayment.do";
092        }
093    
094        public static class DocumentTypeName {
095            // CAM doc
096            public static final String ASSET_DEPRECIATION = "DEPR";
097            public static final String ASSET_TRANSFER = "AT";
098            public static final String ASSET_EQUIPMENT_LOAN_OR_RETURN = "ELR";
099            public static final String ASSET_PAYMENT = "MPAY";
100            public static final String ASSET_RETIREMENT_GLOBAL = "ARG";
101            public static final String ASSET_ADD_GLOBAL = "AA";
102            public static final String ASSET_EDIT = "CASM";
103            public static final String ASSET_FABRICATION = "FR";
104            public static final String ASSET_LOCATION_GLOBAL = "ALOC";
105            public static final String ASSET_BARCODE_INVENTORY_ERROR = "BCIE";
106            // Below docTypes will be used for locking purposed only
107            public static final String ASSET_SEPARATE = "ASEP";
108            public static final String ASSET_PAYMENT_FROM_CAB = "MPAYCAB";
109            public static final String ASSET_FP_INQUIRY = "AFPINQ";
110            public static final String ASSET_PREQ_INQUIRY = "APREQINQ";
111            // Below used for view related document links 
112            public static final String COMPLEX_MAINTENANCE_DOC_BASE = "CAMM";
113        }
114    
115        public static class PaymentDocumentTypeCodes {
116            // These are the document type codes that payments are saved under when they are modified by assets. Note that not
117            // necessarily the documents themselves use these document type codes.
118            public static final String ASSET_GLOBAL_SEPARATE = "ASEP";
119            public static final String ASSET_RETIREMENT_MERGE = "AMRG";
120        }
121    
122        public static class Parameters {
123            public static final String DEPRECIATION_RUN_DATE_PARAMETER = "DEPRECIATION_RUN_DATE";
124            public static final String DEPRECIATION_CAMPUS_PLANT_FUND_OBJECT_SUB_TYPES = "DEPRECIATION_CAMPUS_PLANT_FUND_OBJECT_SUB_TYPE";
125            public static final String DEPRECIATION_ORGANIZATON_PLANT_FUND_SUB_OBJECT_TYPES = "DEPRECIATION_ORGANIZATON_PLANT_FUND_OBJECT_SUB_TYPE";
126            public static final String NON_DEPRECIABLE_FEDERALLY_OWNED_OBJECT_SUB_TYPES = "NON_DEPRECIABLE_FEDERALLY_OWNED_OBJECT_SUB_TYPES";
127            public static final String NON_DEPRECIABLE_NON_CAPITAL_ASSETS_STATUS_CODES = "NON_DEPRECIABLE_NON_CAPITAL_ASSET_STATUS_CODES";
128            public static final String FEDERAL_CONTRIBUTIONS_OBJECT_SUB_TYPES = "FEDERAL_CONTRIBUTIONS_OBJECT_SUB_TYPES";
129            public static final String FEDERAL_OWNED_OBJECT_SUB_TYPES = "FEDERAL_OWNED_OBJECT_SUB_TYPES";
130            public static final String VALID_INVENTROY_STATUS_CODE_CHANGE = "VALID_ASSET_STATUS_BY_PRIOR_ASSET_STATUS";
131            public static final String INVALID_INVENTROY_STATUS_CODE_CHANGE = "INVALID_ASSET_STATUS_BY_PRIOR_ASSET_STATUS";
132            public static final String CAPITAL_ASSET_STATUS_CODES = "CAPITAL_ASSET_STATUS_CODES";
133            public static final String RETIRED_STATUS_CODES = "RETIRED_STATUS_CODES";
134            public static final String EDITABLE_FIELDS_WHEN_TAGGED_PRIOR_FISCAL_YEAR = "EDITABLE_FIELDS_WHEN_TAGGED_PRIOR_FISCAL_YEAR";
135            public static final String OBJECT_SUB_TYPE_GROUPS = "OBJECT_SUB_TYPE_GROUPS";
136            public static final String INVALID_ASSET_STATUSES_BY_ACQUISITION_TYPE = "INVALID_ASSET_STATUSES_BY_ACQUISITION_TYPE";
137            public static final String VALID_ASSET_STATUSES_BY_ACQUISITION_TYPE = "VALID_ASSET_STATUSES_BY_ACQUISITION_TYPE";
138            public static final String INVALID_OBJECT_SUB_TYPES_BY_ACQUISITION_TYPE = "INVALID_OBJECT_SUB_TYPES_BY_ACQUISITION_TYPE";
139            public static final String VALID_OBJECT_SUB_TYPES_BY_ACQUISITION_TYPE = "VALID_OBJECT_SUB_TYPES_BY_ACQUISITION_TYPE";
140            public static final String MOVABLE_EQUIPMENT_OBJECT_SUB_TYPES = "MOVABLE_EQUIPMENT_OBJECT_SUB_TYPES";
141            public static final String NON_MOVABLE_EQUIPMENT_OBJECT_SUB_TYPES = "NON_MOVABLE_EQUIPMENT_OBJECT_SUB_TYPES";
142            public static final String CAPITALIZATION_LIMIT_AMOUNT = "CAPITALIZATION_LIMIT_AMOUNT";
143            public static final String DEFAULT_FABRICATION_ASSET_TYPE_CODE = "DEFAULT_FABRICATION_ASSET_TYPE";
144            public static final String DEFAULT_GAIN_LOSS_DISPOSITION_OBJECT_CODE = "DEFAULT_GAIN_LOSS_DISPOSITION_OBJECT_CODE";
145            public static final String MERGE_SEPARATE_RETIREMENT_REASONS = "MERGE_SEPARATE_RETIREMENT_REASONS";
146            public static final String RAZE_RETIREMENT_REASONS = "RAZE_RETIREMENT_REASONS";
147            public static final String CAPITAL_OBJECT_SUB_TYPES = "CAPITAL_OBJECT_SUB_TYPES";
148            public static final String BAR_CODE_ERROR_DOCUMENT_IGNORES_LOCKS = "IGNORES_LOCKS_IND";
149            public static final String MAX_NUMBER_OF_RECORDS_PER_DOCUMENT = "MAX_NUMBER_OF_RECORDS_PER_DOCUMENT";
150        }
151    
152        public static class Report {
153            public static final String REPORT_EXTENSION = "PDF";
154            public static final String FILE_PREFIX = "CAMS";
155        }
156    
157        public static class Depreciation {
158            public static final String TRANSACTION_DESCRIPTION = "Batch Depreciation Asset ";
159            public static final String DOCUMENT_DESCRIPTION = "Batch Depreciation Entry";
160            public static final String REPORT_FILE_NAME = "DEPRECIATION_REPORT";
161            public static final String DEPRECIATION_REPORT_TITLE = "Asset Depreciation Report - Statistics";
162            public static final String DEPRECIATION_BATCH = "DEPRECIATION BATCH - ";
163        }
164    
165        public static class BarCodeInventory {
166            public static final String FILE_TYPE_INDENTIFIER = "assetBarcodeInventoryInputFileType";
167            public static final String DATA_FILE_TYPE = "csv";
168            public static final String DATA_FILE_EXTENSION = ".csv";
169            public static final String DONE_FILE_EXTENSION = ".done";
170            public static final String BCI_MANUALLY_KEYED_CODE = "0";
171            public static final String BCI_SCANED_INTO_DEVICE = "1";
172        }
173    
174        public static class BarCodeInventoryError {
175            public static final String STATUS_CODE_ERROR = "E";
176            public static final String STATUS_CODE_CORRECTED = "C";
177            public static final String STATUS_CODE_DELETED = "D";
178            public static final String STATUS_CODE_ERROR_DESCRIPTION = "Error";
179            public static final String STATUS_CODE_CORRECTED_DESCRIPTION = "Corrected";
180            public static final String STATUS_CODE_DELETED_DESCRIPTION = "Deleted";
181            public static final String BAR_CODE_ERROR_DOCUMENT_IGNORES_LOCKS_NO = "N";
182    
183            public static final Map<String, String> statusDescription = new HashMap<String, String>();
184            static {
185                statusDescription.put(STATUS_CODE_CORRECTED, STATUS_CODE_CORRECTED_DESCRIPTION);
186                statusDescription.put(STATUS_CODE_DELETED, STATUS_CODE_DELETED_DESCRIPTION);
187                statusDescription.put(STATUS_CODE_ERROR, STATUS_CODE_ERROR_DESCRIPTION);
188            }
189        }
190    
191        public static class InventoryStatusCode {
192            public static final String CAPITAL_ASSET_ACTIVE_IDENTIFIABLE = "A";
193            public static final String CAPITAL_ASSET_ACTIVE_NON_ACCESSIBLE = "C";
194            public static final String CAPITAL_ASSET_UNDER_CONSTRUCTION = "U";
195            public static final String CAPITAL_ASSET_SURPLUS_EQUIPEMENT = "S";
196            public static final String CAPITAL_ASSET_RETIRED = "R";
197            public static final String NON_CAPITAL_ASSET_ACTIVE = "N";
198            public static final String NON_CAPITAL_ASSET_RETIRED = "O";
199            public static final String NON_CAPITAL_ASSET_ACTIVE_2003 = "D";
200            public static final String NON_CAPITAL_ASSET_RETIRED_2003 = "E";
201        }
202    
203        public static class AssetLocationTypeCode {
204            public static final String OFF_CAMPUS = "O";
205            public static final String BORROWER = "B";
206            public static final String BORROWER_STORAGE = "BS";
207            public static final String RETIREMENT = "R";
208        }
209    
210        public static class AssetRetirementGlobal {
211            public static final String ASSET_LOOKUPABLE_ID = "assetLookupable";
212            public static final String DOCUMENT_HEADER = "documentHeader";
213            public static final String SECTION_ID_ASSET_DETAIL_INFORMATION = "Asset Detail Information";
214            public static final String SECTION_ID_EXTERNAL_TRANSFER_OR_GIFT = "ExternalTransferOrGift";
215            public static final String SECTION_ID_AUCTION_OR_SOLD = "AuctionOrSold";
216            public static final String SECTION_ID_THEFT = "Theft";
217            public static final String SECTION_TARGET_ASSET_RETIREMENT_INFO = "Retirement Target Information";
218            public static final String DOCUMENT_TYPE_CODE = "ARG";
219            public static final String CAPITALIZATION_LINE_DESCRIPTION = "CAPITALIZATION_LINE_DESCRIPTION";
220            public static final String ACCUMULATED_DEPRECIATION_LINE_DESCRIPTION = "ACCUMULATED_DEPRECIATION_LINE_DESCRIPTION";
221            public static final String OFFSET_AMOUNT_LINE_DESCRIPTION = "OFFSET_AMOUNT_LINE_DESCRIPTION";
222            public static final String MERGE_AN_ASSET_DESCRIPTION = "Merge an Asset";
223        }
224    
225        public static class AssetRetirementReasonCode {
226            public static final String SOLD = "1";
227            public static final String GIFT = "6";
228            public static final String THEFT = "7";
229            public static final String EXTERNAL_TRANSFER = "9";
230            public static final String AUCTION = "A";
231            public static final String MERGED = "M";
232        }
233    
234        public static class RetirementLabel {
235            public static final String BUYER_DESCRIPTION = "Buyer Description";
236            public static final String SALE_PRICE = "Sale Price";
237            public static final String CASH_RECEIPT_FINANCIAL_DOCUMENT_NUMBER = "Cash Receipt Financial Document Number";
238            public static final String RETIREMENT_INSTITUTION_NAME = "Retirement Institution Name";
239            public static final String PAID_CASE_NUMBER = "Police Case Number";
240        }
241    
242        public static class Asset {
243            public static final String DEPRECIATION_METHOD_SALVAGE_VALUE_CODE = "SV";
244            public static final String DEPRECIATION_METHOD_STRAIGHT_LINE_CODE = "SL";
245            public static final String CONDITION_CODE_E = "E";
246            public static final String PRE_ASSET_TAGGING_FILE_TYPE_INDENTIFIER = "preAssetTaggingFileType";
247            public static final String VENDOR_NAME_CONSTRUCTED = "CONSTRUCTED";
248            public static final String ACQUISITION_TYPE_CODE_C = "C";
249            public static final String NON_TAGGABLE_ASSET = "N";
250            public static final int ASSET_MAXIMUM_NUMBER_OF_PAYMENT_DISPLAY = 10;
251            public static final String SECTION_ID_FABRICATION_INFORMATION = "fabricationInformation";
252            public static final String SECTION_ID_LAND_INFORMATION = "landInformation";
253            public static final String SECTION_ID_PAYMENT_INFORMATION = "paymentInformation";
254            public static final String SECTION_ID_PAYMENT_LOOKUP = "paymentLookup";
255            public static final String SECTION_ID_DOCUMENT_LOOKUP = "documentLookup";
256            public static final String SECTION_ID_DEPRECIATION_INFORMATION = "depreciationInformation";
257            public static final String SECTION_ID_MERGE_HISTORY = "mergeHistory";
258            public static final String SECTION_ID_HISTORY = "history";
259            public static final String SECTION_ID_RETIREMENT_INFORMATION = "retirementInformation";
260            public static final String SECTION_ID_EQUIPMENT_LOAN_INFORMATION = "equipmentLoanInformation";
261            public static final String SECTION_ID_WARRENTY = "warrenty";
262            public static final String SECTION_ID_REPAIR_HISTORY = "repairHistory";
263            public static final String COLLECTION_ID_ASSET_REPAIR_HISTORY = "assetRepairHistory";
264            public static final String SECTION_ID_COMPONENTS = "components";
265            public static final String SECTION_ID_LOAN_INFORMATION = "equipmentLoanInformation";
266            public static final String[] EDIT_DETAIL_INFORMATION_FIELDS = new String[] { CamsPropertyConstants.Asset.ASSET_DATE_OF_SERVICE, CamsPropertyConstants.Asset.CAMPUS_TAG_NUMBER, CamsPropertyConstants.Asset.GOVERNMENT_TAG_NUMBER, CamsPropertyConstants.Asset.NATIONAL_STOCK_NUMBER, CamsPropertyConstants.Asset.MANUFACTURER_NAME, CamsPropertyConstants.Asset.MANUFACTURER_MODEL_NUMBER, CamsPropertyConstants.Asset.SERIAL_NUMBER, CamsPropertyConstants.Asset.CAMPUS_TAG_NUMBER, CamsPropertyConstants.Asset.OLD_TAG_NUMBER, CamsPropertyConstants.Asset.TOTAL_COST_AMOUNT, CamsPropertyConstants.Asset.FEDERAL_CONTRIBUTION, CamsPropertyConstants.Asset.ASSET_DEPRECIATION_DATE, CamsPropertyConstants.Asset.FINANCIAL_OBJECT_SUB_TYP_CODE };
267            public static final String[] EDIT_ORGANIZATION_INFORMATION_FIELDS = new String[] { CamsPropertyConstants.AssetOrganization.ASSET_ORGANIZATION + "." + CamsPropertyConstants.AssetOrganization.ORGANIZATION_TAG_NUMBER, CamsPropertyConstants.Asset.ESTIMATED_SELLING_PRICE, CamsPropertyConstants.Asset.RECEIVE_DATE, CamsPropertyConstants.Asset.REPLACEMENT_AMOUNT };
268            public static final String[] FABRICATION_INFORMATION_FIELDS = new String[] { CamsPropertyConstants.Asset.ESTIMATED_FABRICATION_COMPLETION_DATE, CamsPropertyConstants.Asset.FABRICATION_ESTIMATED_RETENTION_YEARS, CamsPropertyConstants.Asset.FABRICATION_ESTIMATED_TOTAL_AMOUNT };
269            public static final String SECTION_TITLE_NO_PAYMENT = "- No payment exists for Capital Asset: ";
270        }
271    
272        public static class AssetPayment {
273            public static final String TRANSFER_PAYMENT_CODE_N = "N";
274            public static final String TRANSFER_PAYMENT_CODE_Y = "Y";
275            public static final String ASSET_PAYMENT_DIFFERENT_OBJECT_SUB_TYPE_CONFIRMATION_QUESTION = "AssetPaymentDifferentObjectSubTypeQuestion";
276        }
277    
278        public static class DepreciationConvention {
279            public static final String CREATE_DATE = "CD";
280            public static final String HALF_YEAR = "HY";
281            public static final String FULL_YEAR = "FY";
282        }
283    
284        public static class EquipmentLoanOrReturnEditMode extends EditMode {
285            public static final String DISPLAY_NEW_LOAN_TAB = "displayNewLoanTab";
286            public static final String DISPLAY_RETURN_LOAN_FIELDS_READ_ONLY = "displayReturnLoanFieldsReadOnly";
287        }
288    
289        public static class AssetGlobal {
290            public static final String CAPITAL_OBJECT_ACQUISITION_CODE_PARAM = "CAPITAL_OBJECT_ACQUISITION_CODES";
291            public static final String NON_NEW_ACQUISITION_GROUP_PARAM = "NON_NEW_ACQUISITION_CODES";
292            public static final String NEW_ACQUISITION_CODE_PARAM = "NEW_ACQUISITION_CODE";
293            public static final String FABRICATED_ACQUISITION_CODE = "FABRICATED_ACQUISITION_CODE";
294            public static final String PRE_TAGGING_ACQUISITION_CODE = "PRE_TAGGING_ACQUISITION_CODE";
295            public static final String PRE_TAGGING_ACQUISITION_TYPE_CODE = "P";
296            public static final String LINE_DESCRIPTION_PAYMENT = "Payment";
297            public static final String LINE_DESCRIPTION_PAYMENT_OFFSET = "Payment Offset";
298            public static final String SECTION_ID_ASSET_ACQUISITION_TYPE = "assetAcquisitionType";
299            public static final String SECTION_ID_ASSET_INFORMATION = "assetInformation";
300            public static final String SECTION_ID_RECALCULATE_SEPARATE_SOURCE_AMOUNT = "recalculateSeparateSourceAmount";
301        }
302    
303        public static class AssetSeparate {
304            public static final String CALCULATE_EQUAL_SOURCE_AMOUNTS_BUTTON = "calculateEqualSourceAmountsButton";
305            public static final String CALCULATE_SEPARATE_SOURCE_REMAINING_AMOUNT_BUTTON = "calculateSeparateSourceRemainingAmountButton";
306            public static final String SEPARATE_AN_ASSET_DESCRIPTION = "Separate an Asset";
307        }
308    
309        public static class GLPostingObjectCodeType {
310            public static final String CAPITALIZATION = "Capitalization";
311            public static final String ACCUMMULATE_DEPRECIATION = "Accummulate Depreciation";
312            public static final String OFFSET_AMOUNT = "Offset Amount";
313            public static final String INCOME = "Income";
314        }
315    
316        public static class Postable {
317            public static final String GL_BALANCE_TYPE_CODE_AC = "AC";
318        }
319    
320        public static class AssetTransfer {
321            public static final String DOCUMENT_TYPE_CODE = "AT";
322        }
323    
324    
325        public static class PreAssetTagging {
326            public static final String SECTION_ID_PREASSET_TAGGING_DETAIL = "Edit List of Pre-Asset Tagging Details";
327        }
328    
329        public static final String defaultLockingInformation = "-1";
330    }