/*
* The Kuali Financial System, a comprehensive financial management system for higher education.
*
* Copyright 2005-2014 The Kuali Foundation
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.kuali.kfs.module.purap.service;
import java.util.List;
import org.kuali.kfs.module.purap.businessobject.PurchaseOrderSensitiveData;
import org.kuali.kfs.module.purap.businessobject.SensitiveData;
import org.kuali.kfs.module.purap.businessobject.SensitiveDataAssignment;
import org.kuali.kfs.module.purap.businessobject.SensitiveDataAssignmentDetail;
public interface SensitiveDataService {
public List<SensitiveData> getSensitiveDatasAssignedByRelatedDocId(Integer accountsPayablePurchasingDocumentLinkIdentifier);
/**
* Returns a sensitive data record associated with the given code.
* @param sensitiveDataCode the code of the sensitive data
* @return the sensitive data object with the give code
*/
public SensitiveData getSensitiveDataByCode(String sensitiveDataCode);
/**
* Returns all sensitive data records stored in the business object table.
* @return a list of all sensitive data objects
*/
public List<SensitiveData> getAllSensitiveDatas();
/**
* Gets all sensitive data entries assigned to the specified purchase order.
* @param poId the ID of the specified purchase order
* @return a list of sensitive data entries assigned to the PO
*/
public List<SensitiveData> getSensitiveDatasAssignedByPoId(Integer poId);
/**
* Gets all sensitive data entries assigned to the specified purchase order.
* @param reqId the ID of the requisition that's associated with the purchase order
* @return a list of sensitive data entries assigned to the PO
*/
public List<SensitiveData> getSensitiveDatasAssignedByReqId(Integer reqId);
/**
* Deletes all sensitive data entries assigned to the specified purchase order.
* @param poId the ID of the PO
*/
public void deletePurchaseOrderSensitiveDatas(Integer poId);
/**
* Saves the specified list of PurchaseOrderSensitiveData objects into the database.
* @param posds the PurchaseOrderSensitiveData objects to be saved
*/
public void savePurchaseOrderSensitiveDatas(List<PurchaseOrderSensitiveData> posds);
/**
* Gets the latest sensitive data assignment for the specified purchase order.
* @param poId the ID of the specified PO
* @return the latest sensitive data assignment for the PO
*/
public SensitiveDataAssignment getLastSensitiveDataAssignment(Integer poId);
/**
* Gets the latest sensitive data assignment ID for the specified purchase order.
* @param poId the ID of the specified PO
* @return the latest sensitive data assignment ID for the PO
*/
public Integer getLastSensitiveDataAssignmentId(Integer poId);
/**
* Saves the specified SensitiveDataAssignment object into the database.
* @param sda the SensitiveDataAssignment object to be saved
*/
public void saveSensitiveDataAssignment(SensitiveDataAssignment sda);
/**
* Gets the latest sensitive data assignment details for the specified purchase order.
* @param poId the ID of the specified PO
* @return the latest sensitive data assignment details for the PO
*/
public List<SensitiveDataAssignmentDetail> getLastSensitiveDataAssignmentDetails(Integer poId);
/**
* Saves the specified list of SensitiveDataAssignmentDetail objects into the database.
* @param sdads the SensitiveDataAssignmentDetail objects to be saved
*/
public void saveSensitiveDataAssignmentDetails(List<SensitiveDataAssignmentDetail> sdads);
//public void savePurchaseOrderSensitiveData(String poId, String reqId, String sensitiveDataCode);
//public void savePurchaseOrderSensitiveData(PurchaseOrderSensitiveData posd);
//public void saveSensitiveDataAssignment(String sdaId, String poId, String userId, Date date);
//public void saveSensitiveDataAssignmentDetail(String sdaId, String sensitiveDataCode);
//public void saveSensitiveDataAssignmentDetail(SensitiveDataAssignmentDetail sdad);
}