package com.topsun.posclient.sales.core.service.impl;
import java.util.ArrayList;
import java.util.List;
import com.topsun.posclient.common.POSException;
import com.topsun.posclient.common.service.impl.BaseServiceImpl;
import com.topsun.posclient.datamodel.PartSales;
import com.topsun.posclient.datamodel.Retail;
import com.topsun.posclient.datamodel.dto.RetailDTO;
import com.topsun.posclient.sales.core.SalesDataUtil;
import com.topsun.posclient.sales.core.dao.PartSaleDao;
import com.topsun.posclient.sales.core.service.IGoldTimeOutService;
/**
* 投资金条现货服务
*
* @author Dong
*
*/
public class GoldTimeOutServiceImpl extends SalesServiceImpl implements IGoldTimeOutService {
/**
* 零售数据访问
*/
private PartSaleDao partSaleDao = new PartSaleDao();
/* (non-Javadoc)
* @see com.topsun.posclient.sales.core.service.IGoldTimeOutService#saveGoldTimeOutData(com.topsun.posclient.datamodel.PartSales)
*/
public void saveGoldTimeOutData(PartSales partSales) throws POSException {
RetailDTO retailDTO = new RetailDTO();
Retail retail = convertPartSalesToRetail(partSales);
List<Retail> retailList = new ArrayList<Retail>();
retailList.add(retail);
retailDTO.setRetailList(retailList);
partSaleDao.saveRetailGoldTimeOut(retailDTO, partSales.getDocNum());//保存投资金条现货数据
}
/**
* 投资金条现货时,将零售信息转换成Retail
* @param partSales 销售信息
* @return
* @throws POSException
*/
private Retail convertPartSalesToRetail(PartSales partSales) throws POSException{
if(null == partSales){
return null;
}
//设置基本信息
Retail retail = SalesDataUtil.getRetailFromPartSales(partSales);
//设置明细
retail.setRetailMList(SalesDataUtil.getRetailMsFromPartSales(partSales));
//零售结算 拆分到每个商品的结算金额
retail.setRetailMPList(SalesDataUtil.calculateRetailMPList(partSales));
//零售结算 整单结算金额分配
retail.setRetailPList(SalesDataUtil.calculateRetailPList(partSales));
return retail;
}
}