private IEnumerator <PurchaseEventArgs> PurchaseProductCoroutine(string itemId) { if (this.purchasingState != PurchasingState.PurchasingWaiting) { throw new PurchasingException(PurchaseFailureReason.ExistingPurchasePending); } this.purchasingState = PurchasingState.Purchasing; this.purchaseFailureReason = PurchaseFailureReason.Unknown; this.purchaseEventArgs = null; this.controller.InitiatePurchase(itemId); while (this.purchasingState == PurchasingState.Purchasing) { yield return(default(PurchaseEventArgs)); } bool wasSuccessful = this.purchasingState == PurchasingState.PurchasingSucceeded; this.purchasingState = PurchasingState.PurchasingWaiting; if (wasSuccessful) { yield return(this.purchaseEventArgs); } else { throw new PurchasingException(this.purchaseFailureReason); } }
PurchaseProcessingResult IStoreListener.ProcessPurchase(PurchaseEventArgs e) { this.purchasingState = PurchasingState.PurchasingSucceeded; this.purchaseEventArgs = e; return(PurchaseProcessingResult.Complete); }
/// <summary> /// 修改采购单状态 /// </summary> /// <param name="purchasingID"></param> /// <param name="purchasingState"></param> public void PurchasingUpdate(Guid purchasingID, PurchasingState purchasingState) { PurchasingInfo pInfo = _purchasing.GetPurchasingById(purchasingID); if (purchasingState == PurchasingState.Deleted)//如果变删除状态 { //只允许删除采购中以前的状态和调价拒绝 if (pInfo.PurchasingState <= (int)PurchasingState.Purchasing || pInfo.PurchasingState == (int)PurchasingState.Refusing) { _purchasing.PurchasingUpdate(purchasingID, purchasingState, pInfo.PurchasingFilialeId); } } else { _purchasing.PurchasingUpdate(purchasingID, purchasingState, pInfo.PurchasingFilialeId); } }
/// <summary> /// 根据商品ID,供应商ID,仓库ID获取是否有该商品的采购记录 价格为-1是未定价,0为赠品 /// </summary> /// <param name="goodsID"></param> /// <param name="companyID"></param> /// <param name="warehouseID"></param> /// <param name="ptype"></param> /// <param name="pstate"></param> /// <returns></returns> public IList <PurchasingDetailInfo> GetPurchasingDetail(Guid goodsID, Guid companyID, Guid warehouseID, PurchasingType ptype, PurchasingState pstate) { var parms = new[] { new SqlParameter(PARM_GOODS_ID, SqlDbType.UniqueIdentifier), new SqlParameter(PARM_COMPANY_ID, SqlDbType.UniqueIdentifier), new SqlParameter(PARM_WAREHOUSEID, SqlDbType.UniqueIdentifier), new SqlParameter(PARM_PURCHASING_STATE, SqlDbType.Int), new SqlParameter(PARM_PURCHASING_TYPE, SqlDbType.Int) }; parms[0].Value = goodsID; parms[1].Value = companyID; parms[2].Value = warehouseID; parms[3].Value = (int)pstate; parms[4].Value = (int)ptype; var pList = new List <PurchasingDetailInfo>(); using (var rdr = SqlHelper.ExecuteReader(GlobalConfig.ERP_DB_NAME, true, SQL_SELECT_BY_COMPANYID_WAREHOUSEID_GOODSID, parms)) { while (rdr.Read()) { var pinfo = new PurchasingDetailInfo(rdr.GetGuid(0), rdr.GetGuid(1), rdr.GetString(2), rdr[3] == DBNull.Value ? "" : rdr.GetString(3), rdr.GetString(4), rdr.GetString(5), rdr.GetGuid(6), rdr[7] == DBNull.Value ? -1 : rdr.GetDecimal(7), rdr.GetDouble(8), rdr[9] == DBNull.Value ? 0 : rdr.GetDouble(9), rdr.GetInt32(10), rdr[11] == DBNull.Value ? null : rdr.GetString(11), rdr.GetGuid(12), rdr.IsDBNull(13) ? 0 : rdr.GetInt32(13), rdr.IsDBNull(14) ? 0 : Convert.ToDouble(rdr[14]), rdr.IsDBNull(15) ? 0 : Convert.ToInt32(rdr[15]), rdr.IsDBNull(16) ? 0 : Convert.ToInt32(rdr[16])) { CPrice = rdr[17] == DBNull.Value ? 0 : rdr.GetDecimal(17) }; pList.Add(pinfo); } } return(pList); }
void IStoreListener.OnPurchaseFailed(Product i, PurchaseFailureReason p) { this.purchasingState = PurchasingState.PurchasingFailed; this.purchaseFailureReason = p; }