package cn.superdesk.uniorder.dubbo.facade.accounting.operator;

import cn.superdesk.uniorder.common.rest.response.R;
import cn.superdesk.uniorder.common.security.dto.LoginSysUser;
import cn.superdesk.uniorder.dto.param.accounting.unified.operator.AccountingUnifiedOperatorQueryParam;
import cn.superdesk.uniorder.dto.vo.accounting.unified.operator.AccountingBillBaseVo;
import cn.superdesk.uniorder.dto.vo.accounting.unified.operator.AccountingBillVo;
import cn.superdesk.uniorder.dto.vo.accounting.unified.operator.AccountingUnifiedOperatorVo;

import java.util.List;

public interface DubboAccountingUnifiedOperatorService {

    String exportAccountSupplierList(AccountingUnifiedOperatorQueryParam param, LoginSysUser loginSysUser);
    String exportAccountList(AccountingUnifiedOperatorQueryParam param, LoginSysUser loginSysUser);
    String exportList(AccountingUnifiedOperatorQueryParam param, LoginSysUser loginSysUser);

    R<AccountingBillVo> getById(Long id);

    R<List<AccountingUnifiedOperatorVo>> getList(AccountingUnifiedOperatorQueryParam param);
    List<AccountingUnifiedOperatorVo> getAccountingList(AccountingUnifiedOperatorQueryParam param);

    R<AccountingBillBaseVo> getBaseBillInfo(Long billId);

    R<String> confirmBill(Long billId,String accountingOrderSn, Long userId);

    R<String> cancelBill(AccountingUnifiedOperatorQueryParam param, Long sysUserId);

    R<String> rejectBill(AccountingUnifiedOperatorQueryParam param, Long sysUserId);

    R<String> saveRemark(AccountingUnifiedOperatorQueryParam param, Long sysUserId);

    R<String> agreeReject(AccountingUnifiedOperatorQueryParam param, Long sysUserId);
}
