private void doFillGoodsLogic(String scanCode) { //判断是否合法 主商品是否合法或者赠品是否合法 if (isIllegalProduct(scanCode)) { for (PerDoor d : doorList) { if (d.door == currentDoor) { if (isMainGoods(scanCode)) { //为主商品 //判断主商品是否存在 // if (!isExistingMainGoods(scanCode)) { //不是存在的主商品 //1.主商品放到临时变量中 2.判断刚刚是否扫过 if (tempMainCode.length() > 0) { //两个赠品的商品中 先扫了一个赠品,再扫了一个主商品,然后再扫一个不匹配的主商品,走到了这里 应该提示其扫描最后一个赠品 //1个赠品 //当前扫描的商品组合不正确, //请继续扫描赠品: //尖叫 if (tempSubCode1.length() > 0) { String lastSubName = getSubGoodsNameSub2(tempMainCode, tempSubCode1); String notice = "当前扫描的商品组合不正确,\n" + "请继续扫描赠品:\n" + lastSubName; showScanSuccessDialog(notice, 0); return; } //判断主商品是否包含赠品 包含赠品提示其继续扫描赠品 if (isHaveSubGoods(tempMainCode)) { if (tempSubCode1.length() == 0) { //由主商品获取两个赠品的名称 String subname = getSubGoodsNameMain(tempMainCode); String notice = "当前扫描的商品组合不正确,\n" + "请继续扫描赠品:\n" + subname; showScanSuccessDialog(notice, 0); //重复扫描的只有一个确定按钮 return; } if (tempSubCode1.length() > 0) { //已经扫过一个赠品和一个主商品 再次扫了一个主商品 showScanSuccessDialog("oneMain_oneSub_stillScanedMain", 0); return; } } String mainStr = "该商品已经添加过了,请扫描其他商品"; showScanSuccessDialog(mainStr, 0); //重复扫描的只有一个确定按钮 return; } else { //判断是否扫过临时赠品1.已经添加过一个赠品2.已经添加过两个赠品 if (tempSubCode1.length() > 0 && tempSubCode2.length() > 0) { //已经添加过两个赠品 //判断是否匹配 //判断是否可以关门,完成此门操作 tempSubCode1,tempSubCode2 if (isCompleteFill2(scanCode, tempSubCode1, tempSubCode2)) { //提示请关闭门子 提示主商品的名称 String mainGoodsName = checkGoodsNameMain(scanCode); String notice = mainGoodsName + " 扫描成功 \n" + "请关门"; showScanSuccessDialog(notice, 1); //保存 d.barcode = scanCode; //放入商品名称 d.title = checkGoodsNameMain(scanCode); d.goodsid = checkGoodsId(scanCode); d.image = getMainGoodsImage(mainTempBarcode); // isCanScan = false; initFillData(); //重置 resetTemp(); return; } else { //主商品扫描不正确,请扫描这两个赠品对应的主商品 //提示扫描 //当前扫描的商品组合不正确, //请继续扫描: //花鼠跳伞 String mainGoodsName = getMainGoodsNameBy2Sub(tempSubCode1, tempSubCode2); String notice = "当前扫描的商品组合不正确,\n" + "请继续扫描:\n" + mainGoodsName; showScanSuccessDialog(notice, 0); return; } } else if (tempSubCode1.length() > 0) { // if (isCompleteFill2(scanCode, tempSubCode1, "")) { Log.e(TAG, "tempSubCode1_length_maincoode_length"); //扫描完成,请关门 //王老吉 已扫描成功,请关闭盒子 String mainGoodsName = checkGoodsNameMain(scanCode); String notice = mainGoodsName + " 已扫描成功 \n" + "请关闭盒子"; showScanSuccessDialog(notice, 1); //保存 d.barcode = scanCode; //放入商品名称 d.title = checkGoodsNameMain(scanCode); d.goodsid = checkGoodsId(scanCode); d.image = getMainGoodsImage(scanCode); // isCanScan = false; initFillData(); //重置 resetTemp(); return; } if (isPartialMatch(scanCode, tempSubCode1, "")) { tempMainCode = scanCode; Log.e(TAG, "isPartialMatch_main: "); //提示扫描成功请扫描最后一个商品 //花鼠跳伞 已扫描成功, //请继续扫描赠品: //尖叫 String mainGoodsName = checkGoodsNameMain(tempMainCode); //根据主商品和另一个赠品获取另外一个赠品的名称 String lastSubName = getSubGoodsNameSub2(tempMainCode, tempSubCode1); String notice = mainGoodsName + " 已扫描成功 \n" + "请继续扫描赠品:\n" + lastSubName; //应该冻结窗口 showScanSuccessDialog(notice, 0); return; } //让其扫描最后一个指定的商品 // String relativeGoods = getRelativeGoodsBySubGoods(tempSubCode1); //??? //当前赠品对应的附属商品 String relativeGoods = getRelativeGoodsBySubGoods(tempSubCode1); String notice = "当前扫描的商品组合不正确,\n" + "请继续扫描:\n" + relativeGoods; showScanSuccessDialog(notice, 0); return; } else { //没有添加过任何赠品 //主商品 //判断是否包含赠品 if (isContainsSubGoods(scanCode)) { //XXX扫描成功请继续扫描XXX tempMainCode = scanCode; //花鼠跳散 已扫描成功, // 请继续扫描赠品: //纸巾和尖叫 //重扫 确定 String mainGoodsName = checkGoodsNameMain(scanCode); String subname = getSubGoodsNameMain(tempMainCode); String notice = mainGoodsName + " 已扫描成功,\n" + "请继续扫描赠品:\n" + subname; showScanSuccessDialog(notice, 0); } else { //保存,重置 //不包含赠品 // first line杜蕾斯避孕套3只至尊持久装 // second line成人情趣性用品 已扫描成功, // third line 请关闭盒子 //重新扫,确定 String mainGoodsName = checkGoodsNameMain(scanCode); String mainStr = mainGoodsName + "已扫描成功,\n请关门"; showScanSuccessDialog(mainStr, 1); //保存 d.barcode = scanCode; //放入商品名称 d.title = checkGoodsNameMain(scanCode); d.goodsid = checkGoodsId(scanCode); d.image = getMainGoodsImage(tempMainCode); // isCanScan = false; initFillData(); //重置 resetTemp(); //text // stopScan(); return; } } } } else { //主商品已经添加过了 String mainStr = "该商品已经添加过了,请扫描其他商品"; showScanSuccessDialog(mainStr, 0); return; } } else { //判断赠品是否合法 //判断赠品是否存在tempSubCode1 tempSubCode2 //判断是否完成isCompleteFill 三个参数来完成判断 //判断tempMainCode的状态 判断盒子中是否还需要继续补赠品 if (isStillNeedFillSubGoods(scanCode)) { if (tempMainCode.length() > 0) { //一个赠品一个主商品是否匹配 带两个赠品的参数 tempSubCode1,tempSubCode2 //判断赠品的情况 if (tempSubCode1.length() > 0) { //判断是否匹配 //该商品已添加过, //请继续扫描: //尖叫 if (tempSubCode1.equals(scanCode)) { //连续扫描了两个相同的赠品 //该商品已添加过了,\n请继续扫描:\n王老吉\n 或 花鼠跳伞和尖叫 // String relativeGoods = getRelativeGoodsBySubGoods(tempSubCode1); //获取另外一个赠品 String lastSubName = getSubGoodsNameSub2(tempMainCode, tempSubCode1); // String notice = "该商品已经添加过了,\n" + " 请继续扫描:\n" + lastSubName; showScanSuccessDialog(notice, 0); return; } if (isCompleteFill2(tempMainCode, tempSubCode1, scanCode)) { //XXX扫描成功请关门 //商品组合不正确,请扫描那个赠品 //获取另外一个赠品的名称的两种方法 // String sub2Name=getSubGoodsNameSub2(tempMainCode, tempSubCode1); // String sub2Name = getSubGoodsNameSub(scanCode); String notice = sub2Name + " 添加成功,\n" + "请关闭盒子"; showScanSuccessDialog(notice, 0); //保存 置空 tempMainCode d.barcode = tempMainCode; //放入商品名称 d.title = checkGoodsNameMain(tempMainCode); d.goodsid = checkGoodsId(tempMainCode); d.image = getMainGoodsImage(mainTempBarcode); // isCanScan = false; initFillData(); //重置 resetTemp(); return; } // String lastSubName = getSubGoodsNameSub2(tempMainCode, tempSubCode1); String notice = "当前扫描的商品组合不正确,\n" + "请继续扫描:\n" + lastSubName; showScanSuccessDialog(notice, 0); return; } else { //说明第一次扫赠品说明这个主商品需要两个赠品 //判断是否和这个主商品匹配 //判断是否是局部匹配 if (isCompleteFill2(tempMainCode, scanCode, "")) { //XXX扫描成功请关门 //商品组合不正确,请扫描那个赠品 //获取另外一个赠品的名称的两种方法 // String sub2Name=getSubGoodsNameSub2(tempMainCode, tempSubCode1); // String sub2Name = getSubGoodsNameSub(scanCode); String notice = sub2Name + " 添加成功,\n" + "请关闭盒子"; showScanSuccessDialog(notice, 1); //保存 置空 tempMainCode d.barcode = tempMainCode; //放入商品名称 d.title = checkGoodsNameMain(tempMainCode); d.goodsid = checkGoodsId(tempMainCode); d.image = getMainGoodsImage(mainTempBarcode); // isCanScan = false; initFillData(); //重置 resetTemp(); return; } else if (isPartialMatch(tempMainCode, scanCode, "")) { //局部匹配 tempSubCode1 = scanCode; //获取当前扫描的赠品的名称 String curSubName = getSubGoodsNameSub(tempSubCode1); // Log.e(TAG, "lastSubName_onemain_oneSub:" + curSubName); //明明扫的是尖叫 获取到的是纸巾名称 //最后一个商品的名称 String lastSubName = getSubGoodsNameSub2(tempMainCode, tempSubCode1); Log.e(TAG, "lastSubName: " + lastSubName); String notice = curSubName + " 已扫描成功 \n" + "请继续扫描赠品:\n" + lastSubName; showScanSuccessDialog(notice, 0); return; } else { //商品不匹配 提示其扫描这个主商品和这个赠品的对应的另外一个赠品 //当前赠品对应的主商品 //获取这个主商品的赠品 String subname = getSubGoodsNameMain(tempMainCode); String notice = "当前扫描的商品组合不正确,\n" + "请继续扫描赠品:\n" + subname; showScanSuccessDialog(notice, 0); return; } } } else { //没有添加过主商品只处理赠品 //1.判断赠品假如合法2.判断能不能放 //3.判断是否是赠品组合(主商品只包含一个赠品,主商品包含两个赠品) //判断以前有没有扫描过 // if (tempSubCode1.length() > 0 && tempSubCode2.length() > 0) { //该商品已经添加过了, //请继续扫描: //花鼠跳伞 //由两个赠品获取主商品名称 String mainGoodsName = getMainGoodsNameBy2Sub(tempSubCode1, tempSubCode2); String notice = "该商品已经添加过了,\n" + " 请继续扫描:\n" + mainGoodsName; showScanSuccessDialog(notice, 0); return; } else if (tempSubCode1.length() > 0) { //只添加过一个赠品, 判断当前这两个赠品是否匹配1.不匹配提示扫描 if (tempSubCode1.equals(scanCode)) { String relativeGoods = getRelativeGoodsBySubGoods(tempSubCode1); //获取相关商品 String notice = "该商品已经添加过了,\n" + "请继续扫描:\n" + relativeGoods; showScanSuccessDialog(notice, 0); return; } if (is2SubGoodsMatch(tempSubCode1, scanCode)) { //如果这两个赠品匹配 提示其扫描着两个赠品对应的主商品 tempSubCode2 = scanCode; //尖叫 已扫描成功, // 请继续扫描: //花鼠跳伞 String subName = getSubGoodsNameSub(scanCode); String mainGoodsName = getMainGoodsNameBy2Sub(tempSubCode1, tempSubCode2); String notice = subName + " 已扫描成功,\n" + " 请继续扫描:\n" + mainGoodsName; showScanSuccessDialog(notice, 0); return; } else { showScanSuccessDialog("unknown error please contact me", 0); return; } } else { //一个赠品也没添加过 //判断当前扫到的赠品是否可以放,并给出相应的提示 if (isScanedSubCanPut(scanCode)) { //查找与这个赠品相关的其他商品 tempSubCode1 = scanCode; String sub1Name = getSubGoodsNameSub(tempSubCode1); //纸巾 添加成功, //请继续扫描: //王老吉 //或 花鼠跳伞和尖叫 String relativeGoods = getRelativeGoodsBySubGoods(tempSubCode1); //判断王老吉是否已经添加过 // String notice = sub1Name + " 添加成功,\n" + "请继续扫描:" + " \n" + relativeGoods; showScanSuccessDialog(notice, 0); return; } else { //赠品重复,不可以放,给个提示让其扫描其他东西 //赠品不可以放进去 String subStr = "盒子中已有此赠品,请扫描其他商品"; showScanSuccessDialog(subStr, 0); return; } } } } else { String subStr = "该赠品的捆绑商品已经添加过了,\n请扫描其他商品"; showScanSuccessDialog(subStr, 0); } } } } } else { //请扫描合法的商品 //商品不合法 String mainStr = "商品不合法,请扫描合法的商品"; showScanSuccessDialog(mainStr, 0); } }
code
最新推荐文章于 2025-01-23 15:42:24 发布