Пример #1
0
        /// <summary>
        /// 设置订单为作废状态并保存,同时保存订单商品信息
        /// </summary>
        protected void SaveCurrentSO()
        {
            SOStatusChangeInfo statusChangeInfo = new SOStatusChangeInfo
            {
                ChangeTime           = DateTime.Now,
                IsSendMailToCustomer = true,
                OldStatus            = CurrentSO.BaseInfo.Status,
                OperatorSysNo        = ServiceContext.Current.UserSysNo,
                OperatorType         = OperatorType,
                SOSysNo = SOSysNo,
                Status  = ToSoStatus
            };

            if (OperatorType == SOOperatorType.System)
            {
                CurrentSO.BaseInfo.Note = statusChangeInfo.Note = Note;
            }

            CurrentSO.BaseInfo.Status      = ToSoStatus;
            CurrentSO.StatusChangeInfoList = CurrentSO.StatusChangeInfoList ?? new List <SOStatusChangeInfo>();
            CurrentSO.StatusChangeInfoList.Add(statusChangeInfo);
            if (!SODA.UpdateSOForAbandon(CurrentSO))
            {
                BizExceptionHelper.Throw("SO_Abandon_SOStatus_Abandon");
            }

            //更新订单商品信息,是否要从订单商品中删除优惠券的记录?
            foreach (SOItemInfo item in CurrentSO.Items)
            {
                if (item.ProductType != SOProductType.Coupon)
                {
                    SODA.UpdateSOItemAmountInfo(item);
                }
            }
        }