Esempio n. 1
0
        private void SaleGiftProcess(PSOperationType opt, string optname, SaleGiftStatus targetStatus)
        {
            List <int?> sysNoList = new List <int?>();

            sysNoList.Add(_saleGiftInfoVM.SysNo);

            _facade.BatchProcessSaleGift(sysNoList, opt, (obj, args) =>
            {
                if (args.Result.FailureRecords.Count == 0)
                {
                    if (opt == PSOperationType.SubmitAudit)
                    {
                        _facade.Load(_saleGiftInfoVM.SysNo, _saleGiftInfoVM, (obj1, args1) =>
                        {
                            _saleGiftInfoVM  = args1.Result;
                            this.DataContext = _saleGiftInfoVM;
                            SetControlByOperation();
                        });
                    }
                    else
                    {
                        _saleGiftInfoVM.Status = targetStatus;
                        SetControlByOperation();
                    }
                    //Window.Alert(string.Format("赠品活动-{0}成功!", optname));
                    Window.Alert(string.Format(ResSaleGiftMaitain.Msg_DealSuccess, optname));
                }
                else
                {
                    string msg = args.Result.FailureRecords.Join("\r\n") + Environment.NewLine;
                    Window.Alert(msg);
                }
            });
        }
Esempio n. 2
0
        public void SyncGiftStatus(int requestSysNo, SaleGiftStatus status)
        {
            DataCommand dataCommand = DataCommandManager.GetDataCommand("SaleGift_SyncGiftStatus");

            dataCommand.SetParameterValue("@RequestSysNo", requestSysNo);
            dataCommand.SetParameterValue("@Status", status);
            dataCommand.ExecuteNonQuery();
        }
Esempio n. 3
0
        public static void UpdateStatus(int sysNo, SaleGiftStatus status, string userName)
        {
            DataCommand cmd = DataCommandManager.GetDataCommand("SaleGift_UpdateSaleGiftStatus");

            cmd.SetParameterValue("@SysNo", sysNo);
            cmd.SetParameterValue("@Status", status);
            cmd.SetParameterValue("@EditUser", userName);
            cmd.ExecuteNonQuery();
        }
Esempio n. 4
0
        public List <SaleGiftInfo> GetGiftItemListByProductSysNo(int productSysNo, SaleGiftStatus status)
        {
            DataCommand cmd = DataCommandManager.GetDataCommand("SaleGift_GetGiftItemListByProductSysNo");

            cmd.SetParameterValue("@ProductSysNo", productSysNo);
            cmd.SetParameterValue("@Status", status);

            return(cmd.ExecuteEntityList <SaleGiftInfo>());
        }
Esempio n. 5
0
        private static void CheckStatusWhenUpdate(SalesGiftInfo info, string userfullname)
        {
            SaleGiftStatus resultStatus     = info.Status.Value;
            string         errorDescription = null;

            if (!CheckAndOperateStatus(PSOperationType.Edit, info.SysNo, info.Status.Value, out resultStatus, out errorDescription))
            {
                throw new BusinessException(errorDescription);
            }
            //如果当前状态是就绪状态,那么Check后应该是Init状态,所以需要更改为Init状态:就绪状态下一旦Upadate了,就要更新状态为Init

            if (resultStatus != info.Status)
            {
                GiftPromotionDA.UpdateGiftPromotionStatus(info.SysNo.Value, resultStatus, userfullname);
            }
        }
Esempio n. 6
0
        public static void SubmitAudit(int promotionSysNo, string currentUserName)
        {
            SalesGiftInfo info = LoadGiftPromotionInfo(promotionSysNo);

            if (info.GiftRuleList != null && info.GiftRuleList.Count > 0)
            {
                foreach (var item in info.GiftRuleList)
                {
                    var productInfo = ProductService.GetProductBySysNo(item.ProductSysNo.Value);
                    if (null == productInfo || productInfo.SysNo <= 0)
                    {
                        throw new BusinessException(string.Format("赠品规则中,商品编号{0}不是有效的商品!", item.ProductSysNo.Value));
                    }
                    else if (productInfo.Status != ProductStatus.InActive_Show)
                    {
                        throw new BusinessException(string.Format("赠品规则中,只有上架不展示商品才能设置为赠品,商品编号{0}状态不是上架不展示商品!", item.ProductSysNo.Value));
                    }
                }
            }
            else
            {
                throw new BusinessException("请至少添加一项赠品规则!");
            }
            if (CheckGiftCompleted(info))
            {
                SaleGiftStatus resultStatus       = info.Status.Value;
                string         errorDescription   = null;
                string         successDescription = string.Empty;
                if (!CheckAndOperateStatus(PSOperationType.SubmitAudit, info.SysNo, info.Status.Value, out resultStatus, out errorDescription))
                {
                    throw new BusinessException(errorDescription);
                }
                //List<string> errorMsg = CheckGiftRules(info);
                //if (errorMsg.Count > 0)
                //{
                //    throw new BusinessException(string.Join(";", errorMsg));
                //}
                resultStatus = SaleGiftStatus.WaitingAudit;

                GiftPromotionDA.UpdateStatus(promotionSysNo, resultStatus, currentUserName);
            }
            else
            {
                string errorMsg = string.Format("赠品活动[{0}]信息不完整,无法提交审核!\r\n", promotionSysNo);
                throw new BusinessException(errorMsg);
            }
        }
Esempio n. 7
0
        public static void Stop(int promotionSysNo, string currentUserName)
        {
            SalesGiftInfo info = LoadGiftPromotionInfo(promotionSysNo);

            if (info == null)
            {
                throw new BusinessException(string.Format("活动[{0}]信息加载失败!", promotionSysNo));
            }

            SaleGiftStatus resultStatus     = info.Status.Value;
            string         errorDescription = null;

            if (!CheckAndOperateStatus(PSOperationType.Stop, info.SysNo, info.Status.Value, out resultStatus, out errorDescription))
            {
                throw new BusinessException(errorDescription);
            }
            GiftPromotionDA.UpdateStatus(promotionSysNo, resultStatus, currentUserName);
        }
Esempio n. 8
0
        private void DataGridCheckBoxAllCode_Click(object sender, RoutedEventArgs e)
        {
            CheckBox chk  = (CheckBox)sender;
            dynamic  rows = dgResult.ItemsSource;

            foreach (dynamic row in rows)
            {
                SaleGiftStatus status = SaleGiftStatus.Finish;
                Enum.TryParse <SaleGiftStatus>(row.Status.ToString(), out status);

                if (status == SaleGiftStatus.Init || status == SaleGiftStatus.Ready ||
                    status == SaleGiftStatus.Run || status == SaleGiftStatus.WaitingAudit)
                {
                    row.IsChecked = chk.IsChecked.Value;
                }
                else
                {
                    row.IsChecked = false;
                }
            }
        }
Esempio n. 9
0
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            bool           result      = false;
            var            data        = value as DynamicXml;
            string         para        = parameter.ToString().ToUpper();
            SaleGiftStatus status      = SaleGiftStatus.Finish;
            int            reqestSysNo = 0; //商家创建的商品不能复制新建

            int.TryParse(data["RequestSysNo"].ToString(), out reqestSysNo);
            Enum.TryParse <SaleGiftStatus>(data["Status"].ToString(), out status);

            if (para == "EDIT")
            {
                if (status == SaleGiftStatus.Init)
                {
                    result = true;
                }
            }
            else if (para == "MGT")
            {
                if (status == SaleGiftStatus.Init || status == SaleGiftStatus.Ready ||
                    status == SaleGiftStatus.Run || status == SaleGiftStatus.WaitingAudit)
                {
                    result = true;
                }
            }
            else if (para == "CNEW")
            {
                if ((status == SaleGiftStatus.Finish || status == SaleGiftStatus.Stoped ||
                     status == SaleGiftStatus.Void) && reqestSysNo == 0)
                {
                    result = true;
                }
            }

            return(result);
        }
Esempio n. 10
0
        /// <summary>
        /// 检查当前状态的下当前操作是否符合业务逻辑。同时也通过out参数返回操作后的状态
        /// </summary>
        /// <param name="operation">操作类型</param>
        /// <param name="curStatus">当前状态</param>
        /// <param name="resultStatus">操作后的状态</param>
        /// <returns>当前状态下本操作是否正确</returns>
        private static bool CheckAndOperateStatus(PSOperationType operation, int?sysNo, SaleGiftStatus?curStatus,
                                                  out SaleGiftStatus resultStatus, out string errorDescription)
        {
            resultStatus     = curStatus.HasValue ? curStatus.Value : SaleGiftStatus.Origin;
            errorDescription = null;
            bool checkPassResult = true;

            switch (operation)
            {
            case PSOperationType.Edit:
                if (curStatus != SaleGiftStatus.Origin)
                {
                    checkPassResult  = false;
                    errorDescription = string.Format("活动[{0}]编辑失败:只有初始状态可以进行编辑!本活动当前状态:{1}!", sysNo, curStatus.Value.GetDescription());
                }
                break;

            case PSOperationType.SubmitAudit:
                if (curStatus != SaleGiftStatus.Origin)
                {
                    checkPassResult  = false;
                    errorDescription = string.Format("活动[{0}]提交审核失败:只有初始状态可以提交审核!本活动当前状态:{1}!", sysNo, curStatus.Value.GetDescription());

                    break;
                }
                resultStatus = SaleGiftStatus.WaitingAudit;
                break;

            case PSOperationType.CancelAudit:
                if (curStatus != SaleGiftStatus.WaitingAudit && curStatus != SaleGiftStatus.Ready)
                {
                    checkPassResult  = false;
                    errorDescription = string.Format("活动[{0}]撤回失败:只有待审核状态和就绪状态可以取消审核!本活动当前状态:{1}!", sysNo, curStatus.Value.GetDescription());

                    break;
                }
                resultStatus = SaleGiftStatus.Origin;
                break;

            case PSOperationType.AuditApprove:
                if (curStatus != SaleGiftStatus.WaitingAudit)
                {
                    checkPassResult  = false;
                    errorDescription = string.Format("活动[{0}]审核通过失败:只有待审核状态可以审核通过!本活动当前状态:{1}!", sysNo, curStatus.Value.GetDescription());

                    break;
                }
                resultStatus = SaleGiftStatus.Ready;
                break;

            case PSOperationType.AuditRefuse:
                if (curStatus != SaleGiftStatus.WaitingAudit)
                {
                    checkPassResult  = false;
                    errorDescription = string.Format("活动[{0}]审核拒绝失败:只有待审核状态可以进行审核拒绝!本活动当前状态:{1}!", sysNo, curStatus.Value.GetDescription());

                    break;
                }
                resultStatus = SaleGiftStatus.Void;
                break;

            case PSOperationType.Stop:
                if (curStatus != SaleGiftStatus.Run)
                {
                    checkPassResult  = false;
                    errorDescription = string.Format("活动[{0}]提前终止失败:只有运行状态可以进行提前终止!本活动当前状态:{1}!", sysNo, curStatus.Value.GetDescription());

                    break;
                }
                resultStatus = SaleGiftStatus.Stoped;
                break;

            case PSOperationType.Void:
                //if (curStatus != SaleGiftStatus.Init && curStatus != SaleGiftStatus.WaitingAudit && curStatus != SaleGiftStatus.Ready)
                //{
                if (curStatus != SaleGiftStatus.Origin)
                {
                    checkPassResult  = false;
                    errorDescription = string.Format("活动[{0}]作废失败:只有初始、待审核、就绪状态可以进行作废!本活动当前状态:{1}!", sysNo, curStatus.Value.GetDescription());

                    break;
                }
                resultStatus = SaleGiftStatus.Void;
                break;
            }

            return(checkPassResult);
        }