/// <summary> /// 检测是否允许出货 /// </summary> private bool CheckSaleEnvr() { int intErrCode = 0; bool result = false; try { this.tbProgressInfo.Dispatcher.Invoke(new Action(() => { // 正在检测设备状态... tbProgressInfo.Text = PubHelper.p_LangOper.GetStringBundle("Check_Device"); })); #region 检测是否允许出货 m_CheckSaleEnvirCode = BusinessEnum.ServerReason.Normal; m_CheckSaleEnvirCode = PubHelper.p_BusinOper.Device_CheckSaleEnvir_O2O(m_McdCode, m_PostKimmaCardNo, "2"); #endregion #region 报准备出货 string strSellStatus = string.Empty; string strNoSellReason = string.Empty; if (m_CheckSaleEnvirCode == BusinessEnum.ServerReason.Normal) { strSellStatus = "0";// 可吐货 } else { strSellStatus = "1";// 不能吐货 switch (m_CheckSaleEnvirCode) { case BusinessEnum.ServerReason.Err_NoStock: // 库存不足 strNoSellReason = "1"; m_ErrInfo = ""; break; case BusinessEnum.ServerReason.Err_GoodsExist: // 商品不存在 strNoSellReason = "0"; m_ErrInfo = ""; break; case BusinessEnum.ServerReason.Err_AsileStatus: // 货到故障 strNoSellReason = "2"; m_ErrInfo = ""; break; default: strNoSellReason = "3"; m_ErrInfo = ""; break; } } intErrCode = PubHelper.p_BusinOper.O2OServerOper.ConfirmSellInfo(m_BarCode, strSellStatus, strNoSellReason); bool blnIsSell = false; if (m_CheckSaleEnvirCode == BusinessEnum.ServerReason.Normal) { // 如果检测可以购买,但是提交吐货请求时出现故障,仍然暂停服务 if (intErrCode != 0) { m_ErrInfo = DictionaryHelper.Dictionary_TakeBarCode(intErrCode, m_CodeNum_Name); } else { blnIsSell = true; } } result = blnIsSell; #endregion } catch { result = false; } return(result); }
/// <summary> /// 执行条形码扫描业务(2015-08-10) /// </summary> private bool PostBarCode(out bool isFindBarCode) { bool result = false; isFindBarCode = false; string strBarCodeData = string.Empty; string strErrCode = string.Empty; try { int intErrCode = PubHelper.p_BusinOper.BarCodeOper.QueryBarCodeNum(out strBarCodeData, out strErrCode); if ((intErrCode == 0) && (!string.IsNullOrEmpty(strBarCodeData))) { if ((m_CodeLen == 0) || ((m_CodeLen > 0) && (strBarCodeData.Length == m_CodeLen))) { isFindBarCode = true; #region 寻到条形码 // 停止超时监控 StopMonOutTime(); m_BarCode = strBarCodeData; this.tbProgressInfo.Dispatcher.Invoke(new Action(() => { // 正在验证信息... tbProgressInfo.Text = PubHelper.p_LangOper.GetStringBundle("TakeSell_BarCode_Pay_Checking").Replace("{N}", m_CodeNum_Name); })); #region 提交请求 string _orderInfo = string.Empty;// 条形码内容|商品编号|商品数量|业务订单编号 intErrCode = PubHelper.p_BusinOper.O2OServerOper.QueryOrderInfo(strBarCodeData, out _orderInfo); switch (intErrCode) { case 0: // 提交成功 #region 解析相关数据 string[] hexOrderData = _orderInfo.Split('|'); if (hexOrderData.Length > 1) { if (hexOrderData[0] != m_BarCode) { intErrCode = 999; // 认为扫描出来的条形码信息和返回的条形码信息不一致 } else { m_McdCode = hexOrderData[1]; if (hexOrderData.Length >= 4) { m_PostKimmaCardNo = hexOrderData[3]; } else { m_PostKimmaCardNo = m_BarCode; } result = true; } } else { intErrCode = 99; } #endregion break; } #endregion if (intErrCode != 0) { m_ErrInfo = DictionaryHelper.Dictionary_TakeBarCode(intErrCode, m_CodeNum_Name); } #endregion } } } catch { isFindBarCode = false; result = false; } return(result); }