package cn.superdesk.uniorder.service.accounting.unified.customer;

import cn.superdesk.uniorder.dao.entity.accounting.unified.customer.AccountingUnifiedCustomer;
import cn.superdesk.uniorder.dao.entity.accounting.unified.customer.AccountingUnifiedCustomerOrder;
import cn.superdesk.uniorder.dao.entity.accounting.unified.customer.AccountingUnifiedCustomerOrderGoods;
import cn.superdesk.uniorder.dao.entity.base.UnifiedOrder;
import cn.superdesk.uniorder.dao.entity.base.UnifiedOrderGoods;
import cn.superdesk.uniorder.dto.vo.accounting.unified.customer.statement.CustomerStatementOfAccountDetailItemVo;
import cn.superdesk.uniorder.dto.vo.accounting.unified.customer.statement.CustomerStatementOfAccountDetailVo;

import java.util.List;

public interface AccountingUnifiedCustomerServiceCommon {

	/****************************************** 装箱 转换 start ******************************************/

	void convertUnifiedOrder2AccountingUnifiedCustomerOrder(AccountingUnifiedCustomerOrder accountingUnifiedCustomerOrder, UnifiedOrder unifiedOrder);

	void convertUnifiedOrderGoods2AccountingUnifiedCustomerOrderGoods(AccountingUnifiedCustomerOrderGoods accountingUnifiedCustomerOrderGoods, UnifiedOrderGoods unifiedOrderGoods, Long accountingUnifiedCustomerOrderId);

	/****************************************** 装箱 转换   end ******************************************/

	void checkAndFixAccountingUnifiedCustomerOfAccountingAmountOfQuantityOrder(AccountingUnifiedCustomer statementOfAccount);

	/****************************************** 对账单 详情 start ******************************************/

	CustomerStatementOfAccountDetailVo getCustomerStatementOfAccountDetailDimOrder2Goods(Long accountingOrderId);

	CustomerStatementOfAccountDetailVo getCustomerStatementOfAccountDetailDimGoods2Goods(Long accountingOrderId);

	/****************************************** 对账单 详情   end ******************************************/

	/****************************************** 对账单 详情 填充明细 OrderJoinGoods start ******************************************/

	List<CustomerStatementOfAccountDetailItemVo> getCustomerStatementOfAccountDetailFillItemDimOrder2Goods(Long accountingOrderId);

	List<CustomerStatementOfAccountDetailItemVo> getCustomerStatementOfAccountDetailFillItemDimGoods2Goods(Long accountingOrderId);

	/****************************************** 对账单 详情 填充明细 OrderJoinGoods   end ******************************************/
}
