package com.goafanti.order.service;

import com.goafanti.common.model.TOrderBack;
import com.goafanti.common.model.TOrderBillNew;
import com.goafanti.common.model.TOrderNew;
import com.goafanti.common.model.TOrderRefund;
import com.goafanti.core.mybatis.page.Pagination;
import com.goafanti.order.bo.OrderListBo;

import java.util.List;
import java.util.Map;

public interface FundManageOrderService {
	
	/**
	 * 财务管理员查看所有未派单的订单
	 * @param order 与订单相关的查询条件
	 * @param pageNo
	 * @param PageSize
	 * @return
	 */
	Pagination<OrderListBo> allUnassignedOrder(OrderListBo order,Integer pageNo,Integer pageSize);
	/**
	 * 财务专员查看分配给自己的订单
	 * @param order
	 * @param pageNo
	 * @param pageSize
	 * @return
	 */
	Map<String, Object> financeList(OrderListBo order,Integer pageNo,Integer pageSize);
	

	/**
	 * 财务管理员分派订单给财务专员
	 * @param orderid 
	 * @param financeId
	 * @return
	 */
	Integer updateDistributionFinance(String orderid, String financeId, Integer approval);
	
	/**
	 * 财务专员驳回
	 * @param back
	 * @return
	 */
	Integer updateReject(TOrderBack back);
	
	/**
	 * 财务专员添加收款流水
	 * @param billNew
	 * @return
	 */
	Integer addReceiptsFlow(TOrderBillNew billNew, String contractNo);
	
	
	/**
	 * 财务专员审核退单数据
	 * @param refund
	 * @return
	 */
	Integer updateChangeRefund(TOrderRefund refund);
	
	/**
	 * 财务专员新增退单流水
	 * @param refund
	 * @return
	 */
	Integer addRefundFlow(TOrderBillNew billNew);
	
	/***
	 * 根据流水编号获得流水详情
	 * @param BillNo
	 * @return
	 */
	TOrderBillNew selectOneRefundFlow(String BillNo);
	/**
	 * 根据订单编号获得其流水数据
	 * @param orderNo
	 * @return
	 */
	List<TOrderBillNew> selectOneOrderAllRefundFlow(String orderNo);
	
	/**
	 * 财务专员校对
	 * @param orderNew
	 * @return
	 */
	Integer updateProofreading(TOrderNew orderNew);
	
	/**
	 * 修改订单编号
	 * @param orderNew
	 * @return
	 */
	int updateContractNo(TOrderNew orderNew);
	/**
	 * 财务特批审核
	 */
	int updateFinanceApproval(String orderNo, String remarks ,String aid);
	
}
