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.purap.service;
017
018 import java.util.List;
019
020 import org.kuali.kfs.integration.purap.PurchasingAccountsPayableSensitiveData;
021 import org.kuali.kfs.module.purap.businessobject.PurchaseOrderSensitiveData;
022 import org.kuali.kfs.module.purap.businessobject.SensitiveData;
023 import org.kuali.kfs.module.purap.businessobject.SensitiveDataAssignment;
024 import org.kuali.kfs.module.purap.businessobject.SensitiveDataAssignmentDetail;
025
026 public interface SensitiveDataService {
027
028 public List<SensitiveData> getSensitiveDatasAssignedByRelatedDocId(Integer accountsPayablePurchasingDocumentLinkIdentifier);
029
030 /**
031 * Returns a sensitive data record associated with the given code.
032 * @param sensitiveDataCode the code of the sensitive data
033 * @return the sensitive data object with the give code
034 */
035 public SensitiveData getSensitiveDataByCode(String sensitiveDataCode);
036
037 /**
038 * Returns all sensitive data records stored in the business object table.
039 * @return a list of all sensitive data objects
040 */
041 public List<SensitiveData> getAllSensitiveDatas();
042
043 /**
044 * Gets all sensitive data entries assigned to the specified purchase order.
045 * @param poId the ID of the specified purchase order
046 * @return a list of sensitive data entries assigned to the PO
047 */
048 public List<SensitiveData> getSensitiveDatasAssignedByPoId(Integer poId);
049
050 /**
051 * Gets all sensitive data entries assigned to the specified purchase order.
052 * @param reqId the ID of the requisition that's associated with the purchase order
053 * @return a list of sensitive data entries assigned to the PO
054 */
055 public List<SensitiveData> getSensitiveDatasAssignedByReqId(Integer reqId);
056
057 /**
058 * Deletes all sensitive data entries assigned to the specified purchase order.
059 * @param poId the ID of the PO
060 */
061 public void deletePurchaseOrderSensitiveDatas(Integer poId);
062
063 /**
064 * Saves the specified list of PurchaseOrderSensitiveData objects into the database.
065 * @param posds the PurchaseOrderSensitiveData objects to be saved
066 */
067 public void savePurchaseOrderSensitiveDatas(List<PurchaseOrderSensitiveData> posds);
068
069 /**
070 * Gets the latest sensitive data assignment for the specified purchase order.
071 * @param poId the ID of the specified PO
072 * @return the latest sensitive data assignment for the PO
073 */
074 public SensitiveDataAssignment getLastSensitiveDataAssignment(Integer poId);
075
076 /**
077 * Gets the latest sensitive data assignment ID for the specified purchase order.
078 * @param poId the ID of the specified PO
079 * @return the latest sensitive data assignment ID for the PO
080 */
081 public Integer getLastSensitiveDataAssignmentId(Integer poId);
082
083 /**
084 * Saves the specified SensitiveDataAssignment object into the database.
085 * @param sda the SensitiveDataAssignment object to be saved
086 */
087 public void saveSensitiveDataAssignment(SensitiveDataAssignment sda);
088
089 /**
090 * Gets the latest sensitive data assignment details for the specified purchase order.
091 * @param poId the ID of the specified PO
092 * @return the latest sensitive data assignment details for the PO
093 */
094 public List<SensitiveDataAssignmentDetail> getLastSensitiveDataAssignmentDetails(Integer poId);
095
096 /**
097 * Saves the specified list of SensitiveDataAssignmentDetail objects into the database.
098 * @param sdads the SensitiveDataAssignmentDetail objects to be saved
099 */
100 public void saveSensitiveDataAssignmentDetails(List<SensitiveDataAssignmentDetail> sdads);
101
102 //public void savePurchaseOrderSensitiveData(String poId, String reqId, String sensitiveDataCode);
103 //public void savePurchaseOrderSensitiveData(PurchaseOrderSensitiveData posd);
104 //public void saveSensitiveDataAssignment(String sdaId, String poId, String userId, Date date);
105 //public void saveSensitiveDataAssignmentDetail(String sdaId, String sensitiveDataCode);
106 //public void saveSensitiveDataAssignmentDetail(SensitiveDataAssignmentDetail sdad);
107
108 }