/**
 * 
 */
package com.dhcc.finance.main.service;

import java.text.ParseException;
import java.util.List;

import com.dhcc.common.model.CurrencyMeta;
import com.dhcc.common.model.response.RestfulResponse;
import com.dhcc.finance.main.domain.CwBdGlorgbook;
import com.dhcc.finance.main.model.CwBdGlorgbookAndOther;
import com.dhcc.finance.main.model.CwBdGlorgbookLike;
import com.dhcc.finance.main.model.CwGlTransferWeb;
import com.github.pagehelper.PageInfo;

/**
 * @author hp
 *
 */
public interface CwBdGlorgbookService {

	/**
	 * @param pageNum
	 * @param pageSize
	 * @param navigatePages
	 * @return RestfulResponse<PageInfo<CwBdGlorgbookAndOther>,CurrencyMeta>
	 *@author huangpeng
	 * @param cwBdGlorgbookLike 
	 *@date 2019年3月30日 上午10:59:10
	 *@修改日志：
	 */
	RestfulResponse<PageInfo<CwBdGlorgbookAndOther>, CurrencyMeta> searchCwBdGlorgbookAndOther(CwBdGlorgbookLike cwBdGlorgbookLike, int pageNum,
			int pageSize, int navigatePages);

	/**
	 * @param pkGlorgbook
	 * @return RestfulResponse<Object,CurrencyMeta>
	 *@author huangpeng
	 *@date 2019年3月30日 上午11:52:36
	 *@修改日志：
	 */
	RestfulResponse<Object, CurrencyMeta> deleteCwBdGlorgbookByPk(String pkGlorgbook);

	/**
	 * @param cwBdGlorgbook
	 * @return RestfulResponse<Object,CurrencyMeta>
	 *@author huangpeng
	 *@date 2019年3月30日 下午1:29:06
	 *@修改日志：
	 */
	RestfulResponse<Object, CurrencyMeta> addCwBdGlorgbook(CwBdGlorgbook cwBdGlorgbook);

	/**
	 * @param cwBdGlorgbook
	 * @return RestfulResponse<Object,CurrencyMeta>
	 *@author huangpeng
	 * @throws ParseException 
	 *@date 2019年3月30日 下午2:55:49
	 *@修改日志：
	 */
	RestfulResponse<Object, CurrencyMeta> updateCwBdGlorgbook(CwBdGlorgbook cwBdGlorgbook, String pkCurrperiodBefore) throws ParseException;

	/**
	 * @return RestfulResponse<List<CwBdGlorgbook>,CurrencyMeta>
	 *@author huangpeng
	 *@date 2019年4月8日 上午11:52:59
	 *@修改日志：
	 */
	RestfulResponse<List<CwBdGlorgbook>, CurrencyMeta> searchCwBdGlorgbookAllData();
	/**
	 * Title: searchCwBdGlorgbookAllData <br/>  
	 * Description: TODO查询帐套今日新增数目和总数 <br/>
	 * @author lipeng 
	 * @return RestfulResponse<List<CwBdGlorgbook>,CurrencyMeta>
	 * @date 2019年7月5日 上午9:51:06
	 */
	RestfulResponse<Object, CurrencyMeta> searchCwBdGlorgbookNowDayNuANDSum();
	/**
	 * 功能描述
	 *@param xtzxmbh
	 *@param makeDate
	 *@param tradeCode
	 *@return RestfulResponse<Object,CurrencyMeta>
	 *@author huangpeng
	 *@date 2019年8月30日 上午9:39:34
	 *修改日志:
	 */
	RestfulResponse<Object, CurrencyMeta> selectCwBdGlorgbookIsCreate(String xtzxmbh, String makeDate, String tradeCode);
	/**
	 * 功能描述:批量校验多个子项目的制单日期是否在当前期间
	 * @param xtzxmbh
	 * @param makeDate
	 * @param tradeCode
	 * @return RestfulResponse<Object,CurrencyMeta>
	 *@author likai
	 *@data 2020年4月27日上午11:54:34
	 *修改日志
	 */
	RestfulResponse<Object, CurrencyMeta> batchCheckCwBdGlorgbookIsCreate(List<String> xtzxmbhs, String makeDate, String tradeCode);
	/**
	 * Title: searchBdGlorgbooksbyXTzxmbh <br/>  
	 * Description: TODO 跟据信托子项目编号查询帐套主键信息<br/>
	 * @author lipeng 
	 * @param xtzxmbh
	 * @return RestfulResponse<CwBdGlorgbook,CurrencyMeta>
	 * @date 2019年8月6日 上午11:34:29
	 */
	RestfulResponse<CwBdGlorgbook, CurrencyMeta> searchBdGlorgbooksbyXTzxmbh(String xtzxmbh);
	/**
	 * 功能描述  获取全部版本信息列表下拉框
	 *@param nameLike
	 *@param pageNum
	 *@param pageSize
	 *@param navigatePages
	 *@return RestfulResponse<PageInfo<CwBdGlorgbook>,CurrencyMeta>
	 *@author huangpeng
	 *@date 2019年8月28日 上午9:22:04
	 *修改日志:
	 */
	RestfulResponse<PageInfo<CwBdGlorgbook>, CurrencyMeta> searchCwBdGlorgbookForSelect(String nameLike,
			int pageNum, int pageSize, int navigatePages);
	/**
	 * 功能描述 校验:当前日期是否允许生成凭证(本地使用)
	 *@param xtzxmbh
	 *@param makeDate
	 *@return RestfulResponse<Object,CurrencyMeta>
	 *@author huangpeng
	 *@date 2019年8月30日 上午9:29:54
	 *修改日志:
	 */
	RestfulResponse<Object, CurrencyMeta> selectCwBdGlorgbookForLocal(String xtzxmbh, String makeDate);
	/**
	 * 功能描述
	 *@param nameLike
	 *@param period
	 *@param pageNum
	 *@param pageSize
	 *@param navigatePages
	 *@return RestfulResponse<PageInfo<CwBdGlorgbookAndOther>,CurrencyMeta>
	 *@author huangpeng
	 * @param userId 
	 * @param istransfer 
	 *@date 2019年10月4日 上午10:49:34
	 *修改日志:
	 */
	RestfulResponse<PageInfo<CwGlTransferWeb>, CurrencyMeta> searchCwBdGlorgbookofTransferDetail(String nameLike,
			String period, String userId, String istransfer, int pageNum, int pageSize, int navigatePages);
	/**
	 * 功能描述
	 *@param nameLike
	 *@param period
	 *@param userId
	 *@param pageNum
	 *@param pageSize
	 *@param navigatePages
	 *@return RestfulResponse<PageInfo<CwGlTransferWeb>,CurrencyMeta>
	 *@author huangpeng
	 *@date 2019年12月2日 下午9:45:30
	 *修改日志:
	 */
	RestfulResponse<PageInfo<CwGlTransferWeb>, CurrencyMeta> searchCwBdGlorgbookofSettle(String nameLike, String period,
			String userId, int pageNum, int pageSize, int navigatePages);

}
