package com.engine.htsc.payment.service;

import weaver.conn.RecordSetDataSource;

import java.util.List;

public interface BxBudgetService {

    /**
     * 预算
     * @param requestId 流程编号
     * @param tableName 流程表名
     * @return 更新信息
     * @throws Exception 异常
     */
    String doBudgetAccount(String requestId, String tableName, String billStatus) throws Exception;

    /**
     * 预算接口,同步写入预算中间表
     *
     * @param requestMark   流程编号
     * @param billStatus    付款状态
     * @param budgetKmTable 预算科目表（dt8 or dt9）
     * @param mainTable     主表
     * @return 是否成功
     */
    boolean doBudgetMiddleTable(String requestMark, String billStatus,String fbizdate ,List<String> budgetKmTable, String mainTable);

    boolean dobugetModeUpdateYs(String requestId, String tableName );

    /**
     * 插入中间表
     *
     * @param fName      流程编号
     * @param billStatus 单据状态
     * @param mainTable  主表
     * @param rsd        外部数据源
     * @return 布尔
     */
    boolean insertBudgetMiddleTable(String fName, String billStatus,String fbizDate, List<String> budgetKmTable, String mainTable, RecordSetDataSource rsd) throws Exception;

    /**
     * 更新预算表
     *
     * @param fName      流程编号
     * @param billStatus 单据状态
     * @param mainTable  主表
     * @param rsd        外部数据源
     * @return 布尔
     */
    boolean updateBudgetMiddleTable(String fName, String billStatus, List<String> budgetKmTable, String mainTable, RecordSetDataSource rsd) throws Exception;

}
