コード例 #1
0
        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);
            }
        }
コード例 #2
0
        PurchaseProcessingResult IStoreListener.ProcessPurchase(PurchaseEventArgs e)
        {
            this.purchasingState   = PurchasingState.PurchasingSucceeded;
            this.purchaseEventArgs = e;

            return(PurchaseProcessingResult.Complete);
        }
コード例 #3
0
ファイル: Purchasing.cs プロジェクト: mkbiltek2019/ERP_6.0
        /// <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);
            }
        }
コード例 #4
0
        /// <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);
        }
コード例 #5
0
 void IStoreListener.OnPurchaseFailed(Product i, PurchaseFailureReason p)
 {
     this.purchasingState       = PurchasingState.PurchasingFailed;
     this.purchaseFailureReason = p;
 }