1 /*
2 * Copyright 2008 The Kuali Foundation
3 *
4 * Licensed under the Educational Community License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.opensource.org/licenses/ecl2.php
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16 package org.kuali.ole.integration.cam;
17
18 import java.util.List;
19
20 import org.kuali.ole.sys.document.AccountingDocument;
21 import org.kuali.rice.krad.document.Document;
22
23 public interface CapitalAssetManagementModuleService {
24 /**
25 * FP document eligible for asset lock when any of its accounting line is taken into CAB during CAB batch.
26 *
27 * @param accountingDocument
28 * @return
29 */
30 boolean isFpDocumentEligibleForAssetLock(AccountingDocument accountingDocument, String documentType);
31
32 /**
33 * Check and store AssetLocks if they are not locked by other blocking documents. Either store all of the asset locks or none of
34 * them being stored in case of dead lock. If any of the asset is blocked, the error message will be built including link(s) to
35 * the blocking document(s).
36 *
37 * @param capitalAssetNumbers
38 * @param documentNumber
39 * @param documentType
40 * @param additionalInformation
41 * @return return true if all of the asset locks can be granted.
42 */
43 boolean storeAssetLocks(List<Long> capitalAssetNumbers, String documentNumber, String documentType, String lockingInformation);
44
45 /**
46 * Delete AssetLocks by document number and lockingInfomation for PurAp doc only.
47 *
48 * @param documentNumber
49 * @param lockingInformation
50 */
51 void deleteAssetLocks(String documentNumber, String lockingInformation);
52
53
54 /**
55 * Check if the given document hold any asset locks.
56 *
57 * @param documentNumber
58 * @param lockingInformation
59 * @return
60 */
61 boolean isAssetLockedByCurrentDocument(String blockingDocumentNumber, String lockingInformation);
62
63 /**
64 * Check if the given asset Numbers are locked by other documents already.
65 *
66 * @param assetNumbers
67 * @param documentTypeName
68 * @param excludingDocumentNumber
69 * @return
70 */
71 boolean isAssetLocked(List<Long> assetNumbers, String documentTypeName, String excludingDocumentNumber);
72
73
74 /**
75 * Creates the locks for each asset on a documents
76 *
77 * @param document
78 */
79 public void generateCapitalAssetLock(Document document, String documentTypeNames);
80
81 /**
82 * Deletes the asset locks associated with a particular document
83 *
84 * @param document
85 */
86 public void deleteDocumentAssetLocks(Document document);
87
88 }