package com.topsun.posclient.sales.ui.gold;
import java.math.BigDecimal;
import java.math.MathContext;
import java.util.List;
import com.topsun.posclient.common.AppConstants;
import com.topsun.posclient.datamodel.Item;
import com.topsun.posclient.datamodel.PartSales;
public class CommonFacade {
/**
* 判断物料组是否素金
*
* @param matklCode
* @return
*/
public static boolean isSuGold(String matklCode) {
if (null != matklCode && matklCode.startsWith("1")) {
return true;
} else {
return false;
}
}
/**
* 根据旧金物料组获取耗损比
*
* @param matklCode
* 物料编码
* @return
*/
public static BigDecimal getLossPoint(String matklCode) {
if (matklCode.startsWith("101")) {// 黄金
return new BigDecimal(0.01,new MathContext(1));
} else if (matklCode.startsWith("102")) {// 铂金
return new BigDecimal(0.12);
} else {
return new BigDecimal(0.00);
}
}
public static String getLossPointString(String matklCode) {
if (matklCode.startsWith("101")) {// 黄金
return "0.01";
} else if (matklCode.startsWith("102")) {// 铂金
return "0.12";
} else {
return "0.00";
}
}
/**
* 根据旧金物料组获取提炼费
*
* @param matklCode
* 物料编码
* @return
*/
public static BigDecimal getTLFee(String matklCode) {
if (matklCode.startsWith("101")) {// 黄金
return new BigDecimal(6.00);
} else if (matklCode.startsWith("102")) {// 铂金
return new BigDecimal(10.00);
} else {
return new BigDecimal(0.00);
}
}
/**
* 从PartSales中获取打印发票总张数
* @param partSales
* @return
*/
public static int getTotalPageFromPartSales(PartSales partSales) {
int totalPage = 0;
if (null == partSales || null == partSales.getItemList()
|| partSales.getItemList().size() == 0) {
return totalPage;
}
List<Item> itemList = partSales.getItemList();
//如果销售类型为换货
if(partSales.getSalesType() == AppConstants.SALES_TYPE_EXECHANGE){
for (int i = 0; i < itemList.size(); i++) {
// 换货时被换掉的单品不开票,直接显示在换购新品开票的发票下面
if (!itemList.get(i).getItemType().equals(AppConstants.ITEM_TYPE_RETURNED)) {
totalPage++;
}
}
}else{//非换货的情况只有旧金不开票,是显示在每个单品开票的下面
for (int i = 0; i < itemList.size(); i++) {
// 旧金不计算发票总页数
if (!itemList.get(i).getItemType().equals(AppConstants.ITEM_TYPE_OLDGOLD)) {
totalPage++;
}
}
}
return totalPage;
}
}