package kr.co.udapsoft.common.commonSign;

import java.sql.Connection;
import kr.co.hsnc.common.util.ValueObject;

/**
 * 결재 전결/반려 처리 Interface
 *
 * @author DaeJin Lee
 */
public interface CommonSignInterface {

    /**
     * 전자결재 Interface Call
     * @param connection
     * @param signDoc ( SYSTEM_TYPE, SYSTEM_ID )
     * @throws Exception
     */
    public void doCallSign(Connection connection, ValueObject signDoc) throws Exception;

    /**
     * 결재 시작
     * @param connection
     * @param signDoc ( SYSTEM_TYPE, SYSTEM_ID )
     */
    public void doStartSign(Connection connection, ValueObject signDoc) throws Exception;

    /**
     * 전자결재 전결 처리
     * @param connection
     * @param signDoc ( SYSTEM_TYPE, SYSTEM_ID )
     * @throws Exception
     */
    public void doFirstFinishSign(Connection connection, ValueObject signDoc) throws Exception;

    /**
     * 전자결재 전결 처리
     * @param connection
     * @param signDoc ( SYSTEM_TYPE, SYSTEM_ID )
     * @throws Exception
     */
    public void doFirstRejectSign(Connection connection, ValueObject signDoc) throws Exception;
    
    /**
     * 전자결재 전결 처리
     * @param connection
     * @param signDoc ( SYSTEM_TYPE, SYSTEM_ID )
     * @throws Exception
     */
    public void doFinishSign(Connection connection, ValueObject signDoc) throws Exception;

    /**
     * 전자결재 반려 처리
     * @param connection
     * @param signDoc ( SYSTEM_TYPE, SYSTEM_ID )
     * @throws Exception
     */
    public void doRejectSign(Connection connection, ValueObject signDoc) throws Exception;

    /**
     * 전자결재 취소 처리
     * @param connection
     * @param signDoc ( SYSTEM_TYPE, SYSTEM_ID )
     * @throws Exception
     */
    public void doCancelSign(Connection connection, ValueObject signDoc) throws Exception;
}