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); } }); }
public void SyncGiftStatus(int requestSysNo, SaleGiftStatus status) { DataCommand dataCommand = DataCommandManager.GetDataCommand("SaleGift_SyncGiftStatus"); dataCommand.SetParameterValue("@RequestSysNo", requestSysNo); dataCommand.SetParameterValue("@Status", status); dataCommand.ExecuteNonQuery(); }
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(); }
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>()); }
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); } }
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); } }
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); }
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; } } }
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); }
/// <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); }