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; } }