package com.opentravelsoft.providers;
import java.util.Date;
import java.util.List;
import com.opentravelsoft.entity.Plan;
import com.opentravelsoft.entity.TourCost;
import com.opentravelsoft.entity.finance.Outcome;
import com.opentravelsoft.entity.product.Remind;
public interface OutcomeDao extends GenericDao<Outcome, Integer> {
/**
* 应付账款查询
*
* @param customerId
* @param tourNo
* @return
*/
public List<TourCost> getOwedList(Integer customerId, String tourNo);
/**
* 查找某一时间内对应供应商的应付帐款
*
* @param supplierType 提供产品类型
* @param supplierName 供应商名称
* @param kenCountryId 供应商所属国家
* @param kenCityId 供应上所属城市
* @param startDate 开始日期
* @param endDate 截止日期
* @return
*/
public List<TourCost> getSupplierOutcomeList(String supplierType,
String supplierName, String kenCountryId, String kenCityId,
Date startDate, Date endDate);
/**
* 应付帐款查询
*
* @param customerId 供应商ID
* @param startDate 开始日期
* @param endDate 截至日期
* @return
* @deprecated
*/
public List<TourCost> findBill(Integer customerId, Date startDate,
Date endDate);
/**
* 保存付款单
*
* @param billhead
* @param audit
* @return
*/
public int saveBill(Outcome billhead, String audit);
/**
* 付款单取消
*
* @param billheadId
* @return
*/
public int cancelBill(int billheadId);
/**
* 查询付款申请书(OP修改,OP审核,FR修改,FR审核)
*
* @param userId 申请人
* @param startDate
* @param endDate
* @param startOutDate
* @param endOutDate
* @param opAudited
* @param kenAudit
* @param kenPay
* @param frStartDate
* @param frEndDate
* @return
*/
public List<Outcome> getBillList(Integer userId, Date startDate,
Date endDate, Date startOutDate, Date endOutDate, boolean opAudited,
String kenAudit, String kenPay, Date frStartDate, Date frEndDate);
/**
* 实付账款查询
*
* @param userId
* @param startDate
* @param endDate
* @param register
* @return
*/
public List<Outcome> getBillList(Integer userId, Date startDate,
Date endDate, String register);
/**
* 实付登记
*
* @param outcomeIds
* @param uid
* @param billNo
* @param payDate
* @return
*/
public int factualRegister(int[] outcomeIds, Integer uid, String billNo,
Date payDate);
/**
* 账务审核付款申请书
*
* @param outcomeId
* @param uid
* @return
*/
public int auditingBill(Integer outcomeId, Integer uid);
/**
* 审核付款申请书--计调
*
* @param outcomeId
* @param uid
* @return
*/
public int opApproved(Integer outcomeId, Integer uid);
/**
* 财务读取申请书
*
* @param outcome
* @param uid
* @return
*/
public int frReadBill(Outcome outcome, Integer uid);
/**
* 财务修改付款申请书
*
* @param outcome
* @param uid
* @return
*/
public int frModifyBill(Outcome outcome, Integer uid);
/**
* 修改付款申请书--计调
*
* @param outcome
* @param uid
* @return
*/
public int opModifyBill(Outcome outcome, Integer uid);
/**
* 判断是否能审核付款申请书
*
* @param tourNo
* @param amount
* @return 返回0能,返回-1不能
*/
public int isAuciting(String tourNo, double amount);
/**
*
* @param teamId
* @param uid
* @param supplierId
* @return
*/
public List<Plan> getTourList(Integer teamId, Integer uid, Integer supplierId);
// -------------------------------------------------------------------------
/**
* 财务预警<br>
* 国内应付 (未读付款申请, 团出发前n天未付款申请)
*
* @param daynum
*
* @return
*/
public List<Remind> getOutcomeInBand(int daynum);
public List<Remind> getBillheadInBand();
// --------------------------------------------------------------------------
/**
* 付款申请书置位(打回计调操作)
*
* @param outcomeId
* @return
*/
public int opModifyPayReturn(int outcomeId);
/**
* 付款配送
*
* @param supplierId
* @param userId
* @param carryStatus
* @return
*/
List<Outcome> listParcels(String supplierId, Integer userId, short carryStatus);
/**
* 机票配送完成
*
* @param billhead
* @return
*/
int startParcel(Outcome billhead);
/**
* 开始机票配送
*
* @param billhead
* @return
*/
int completeParcel(Outcome billhead);
}