/* 
    ETRI IntraPMS Project
    전자결재  ControllerInterface

    
*/


package com.etri.groupware.eda;
import java.util.*;

public interface EDAControllerInterface {

/*----------------------------------------------------------------- */
/**
 [메소드이름]: deleteLists<br>
 [기능]: 지정 사원에 저장되어 있는 문서를 삭제한다.<br>
 [파라미터]: String docID,String listID, String personID<br>
 [호출자] : EDADocumentServlet<br>
 */
/*--------------------------------------------------------------- */
	public EDAResultStatus deleteLists( String docID , String listID , String personID );

/*----------------------------------------------------------------- */
/**
 [메소드이름]: getDocument<br>
 [기능]: 시스템에 저장되어 있는 문서를 가져온다.<br>
 [파라미터]: String docID , String personID , String listID<br>
 [호출자] : EDADocumentServlet<br>
 */
/*--------------------------------------------------------------- */
	public ApprovalDocument getDocument( String docID , String personID , String listID ) throws Exception;
	
/*----------------------------------------------------------------- */
/**
 [메소드이름]: getDocumentListsDB<br>
 [기능]: 지정사원의 문서함을 가져온다.<br>
 [파라미터]: String personID , String listID<br>
 [호출자] : EDADController<br>
 */
/*--------------------------------------------------------------- */
	public ApprovalDocument[] getDocumentLists( String personID , String listID ) throws Exception;

/*----------------------------------------------------------------- */
/**
 [메소드이름]: getStartPanel<br>
 [기능]: 초기 메뉴에서 보여줄 문서를 가져온다.<br>
 [파라미터]: String personID <br>
 [호출자] : EDAStartPanelServlet<br>
 */
/*--------------------------------------------------------------- */
	public ApprovalDocument[] getStartPanel( String personID ) throws Exception;


/*----------------------------------------------------------------- */
/**
 [메소드이름]: processAbortApproval<br>
 [기능]: 지정 문서의 상신을 취소한다.<br>
 [파라미터]: ApprovalDocument document , String personID<br>
 [호출자] : EDADocumentServlet<br>
 */
/*--------------------------------------------------------------- */
	public EDAResultStatus processAbortApproval( ApprovalDocument document , String personID );
	
/*----------------------------------------------------------------- */
/**
 [메소드이름]: processObtainApproval<br>
 [기능]: 지정 문서를 결재한다.<br>
 [파라미터]: ApprovalDocument document , String personID , String description<br>
 [호출자] : EDADocumentServlet<br>
 */
/*--------------------------------------------------------------- */
	public EDAResultStatus processObtainApproval( ApprovalDocument document , String personID , String description);

/*----------------------------------------------------------------- */
/**
 [메소드이름]: processRaiseApproval<br>
 [기능]: 새로운 문서를 상신한다.<br>
 [파라미터]: ApprovalDocument document<br>
 [호출자] : EDASubmitServlet<br>
 */
/*--------------------------------------------------------------- */
	public EDAResultStatus processRaiseApproval( ApprovalDocument document );
	
/*----------------------------------------------------------------- */
/**
 [메소드이름]: processReturnApproval<br>
 [기능]: 지정 문서를 반려한다.<br>
 [파라미터]: ApprovalDocument document , String personID , String description<br>
 [호출자] : EDADocumentServlet<br>
 */
/*--------------------------------------------------------------- */
	public EDAResultStatus processReturnApproval( ApprovalDocument document , String personID , String description);

/*----------------------------------------------------------------- */
/**
 [메소드이름]: saveApprovalCourse<br>
 [기능]: 결재 경로를 저장한다.<br>
 [파라미터]: String personID , String courseName , ApprovalCourse[] course<br>
 [호출자] : EDAOptionServlet , EDASubmitServlet<br>
 */
/*--------------------------------------------------------------- */
	public EDAResultStatus saveApprovalCourse( String personID , String courseName , ApprovalCourse[] course );
	
/*----------------------------------------------------------------- */
/**
 [메소드이름]: loadApprovalCourse<br>
 [기능]: 해당 이름을 가지는 결재 경로를 가져온다.<br>
 [파라미터]: String personID , String courseName <br>
 [호출자] : EDAOptionServlet , EDASubmitServlet<br>
 */
/*--------------------------------------------------------------- */
	public ApprovalCourse[] loadApprovalCourse( String personID , String courseName ) throws Exception;
	
/*----------------------------------------------------------------- */
/**
 [메소드이름]: listApprovalCourse<br>
 [기능]: 해당 사원이 저장한 모든 결재 경로를 가져온다.<br>
 [파라미터]: String personID <br>
 [호출자] : EDAOptionServlet , EDASubmitServlet<br>
 */
/*--------------------------------------------------------------- */
	public Map listApprovalCourse ( String personID ) throws Exception;

/*----------------------------------------------------------------- */
/**
 [메소드이름]: deleteApprovalCourse<br>
 [기능]: 지정 결재 경로를 삭제한다.<br>
 [파라미터]: String personID , String courseName , ApprovalCourse[] course<br>
 [호출자] : EDAOptionServlet<br>
 */
/*--------------------------------------------------------------- */	
	public EDAResultStatus deleteApprovalCourse( String personID , String courseName , ApprovalCourse[] course );
	
/*----------------------------------------------------------------- */
/**
 [메소드이름]: searchDocumentLists<br>
 [기능]: 문서를 검색한다.<br>
 [파라미터]: SearchCondition searchClass<br>
 [호출자] : EDASearchServlet<br>
 */
/*--------------------------------------------------------------- */	
	public ApprovalDocument[] searchDocumentLists( SearchCondition searchClass ) throws Exception;

/*----------------------------------------------------------------- */
/**
 [메소드이름]: saveEDAOption<br>
 [기능]: 문서함 관리를 위한 Option을 설정한다.<br>
 [파라미터]: String personID , EDAOption optionClass<br>
 [호출자] : EDAOptionServlet<br>
 */
/*--------------------------------------------------------------- */	
	public EDAResultStatus saveEDAOption( String personID , EDAOption optionClass );

/*----------------------------------------------------------------- */
/**
 [메소드이름]: loadEDAOption<br>
 [기능]: 지정 사원의 Option을 가져온다.<br>
 [파라미터]: String personID <br>
 [호출자] : EDAOptionServlet<br>
 */
/*--------------------------------------------------------------- */	
	public EDAOption loadEDAOption( String personID ) throws Exception ;

}