public static Coupon Load(int?sysNo) { Coupon info = null; DataCommand cmd = DataCommandManager.GetDataCommand("LoadCoupon"); cmd.SetParameterValue("@SysNo", sysNo); DataSet ds = cmd.ExecuteDataSet(); if (ds != null && ds.Tables.Count > 0) { DataTable dtMaster = ds.Tables[0]; if (dtMaster.Rows.Count > 0) { info = DataMapper.GetEntity <Coupon>(dtMaster.Rows[0]); info.DiscountRules = new List <CouponDiscountRule>(); info.BindRule = new CouponBindRule(); info.SaleRule = new CouponSaleRule(); info.SaleRule.ProductRange = new ProductRelation(); info.SaleRule.ProductRange.Products = new List <RelProduct>(); info.SaleRule.CustomerRange = new CustomerRelation(); info.SaleRule.CustomerRange.Customers = new List <RelCustomer>(); info.BindRule.ProductRange = new ProductRelation(); info.BindRule.ProductRange.Products = new List <RelProduct>(); DataTable dtDiscountRules = ds.Tables[1]; if (dtDiscountRules.Rows.Count > 0) { #region Coupon_DiscountRules的数据绑定 foreach (DataRow dr in dtDiscountRules.Rows) { CouponDiscountRule rule = new CouponDiscountRule(); if (dr["RulesType"].ToString().Trim().ToUpper() == "P") { rule.RulesType = CouponDiscountRuleType.Percentage; } else if (dr["RulesType"].ToString().Trim().ToUpper() == "D") { rule.RulesType = CouponDiscountRuleType.Discount; } rule.Value = decimal.Parse(dr["Value"].ToString().Trim()); rule.Amount = decimal.Parse(dr["Amount"].ToString().Trim()); info.DiscountRules.Add(rule); } #endregion } DataTable dtBindRule = ds.Tables[2]; if (dtBindRule.Rows.Count > 0) { #region Coupon_BindRules的数据绑定 DataRow dr = dtBindRule.Rows[0]; if (!string.IsNullOrEmpty(dr["BindCondition"].ToString())) { object bindConditionType; EnumCodeMapper.TryGetEnum(dr["BindCondition"], typeof(CouponsBindConditionType), out bindConditionType); info.BindRule.BindCondition = (CouponsBindConditionType)bindConditionType; } if (!string.IsNullOrEmpty(dr["ValidPeriod"].ToString())) { object validPeriod; EnumCodeMapper.TryGetEnum(dr["ValidPeriod"], typeof(CouponValidPeriodType), out validPeriod); info.BindRule.ValidPeriod = (CouponValidPeriodType)validPeriod; } if (!string.IsNullOrEmpty(dr["BindBeginDate"].ToString())) { info.BindRule.BindBeginDate = DateTime.Parse(dr["BindBeginDate"].ToString().Trim()); } if (!string.IsNullOrEmpty(dr["BindEndDate"].ToString())) { info.BindRule.BindEndDate = DateTime.Parse(dr["BindEndDate"].ToString().Trim()); } if (!string.IsNullOrEmpty(dr["AmountLimit"].ToString())) { info.BindRule.AmountLimit = decimal.Parse(dr["AmountLimit"].ToString().Trim()); } if (!string.IsNullOrEmpty(dr["LimitType"].ToString())) { if (dr["LimitType"].ToString().Trim().ToLower() == "A".ToLower()) { info.BindRule.ProductRange.ProductRangeType = ProductRangeType.All; } else { info.BindRule.ProductRange.ProductRangeType = ProductRangeType.Limit; } } else { info.BindRule.ProductRange.ProductRangeType = ProductRangeType.All; } #endregion } DataTable dtBindRuleItems = ds.Tables[3]; if (dtBindRuleItems.Rows.Count > 0) { #region Coupon_BindRuleItems的数据绑定 foreach (DataRow dr in dtBindRuleItems.Rows) { if (dr["RuleItemType"].ToString().Trim().ToUpper() == "I") { RelProduct product = new RelProduct(); if (!string.IsNullOrEmpty(dr["ItemDataSysNo"].ToString())) { product.ProductSysNo = int.Parse(dr["ItemDataSysNo"].ToString()); } if (!string.IsNullOrEmpty(dr["ProductID"].ToString())) { product.ProductID = dr["ProductID"].ToString(); } if (!string.IsNullOrEmpty(dr["ProductName"].ToString())) { product.ProductName = dr["ProductName"].ToString(); } if (!string.IsNullOrEmpty(dr["RelationType"].ToString())) { if (dr["RelationType"].ToString().Trim() == "Y") { info.BindRule.ProductRange.RelationType = RelationType.Y; } else { info.BindRule.ProductRange.RelationType = RelationType.N; } } if (!string.IsNullOrEmpty(dr["ProductStatus"].ToString())) { ProductStatus productStatus; if (Enum.TryParse <ProductStatus>(dr["ProductStatus"].ToString(), out productStatus)) { product.ProductStatus = EnumHelper.GetDescription(productStatus); } } info.BindRule.ProductRange.Products.Add(product); } } #endregion } DataTable dtSaleRules_Ex = ds.Tables[4]; if (dtSaleRules_Ex.Rows.Count > 0) { #region Coupon_SaleRules_Ex的数据绑定 DataRow dr = dtSaleRules_Ex.Rows[0]; if (!string.IsNullOrEmpty(dr["OrderAmountLimit"].ToString())) { info.SaleRule.OrderAmountLimit = decimal.Parse(dr["OrderAmountLimit"].ToString().Trim()); if (info.SaleRule.OrderAmountLimit == 0m) { info.SaleRule.OrderAmountLimit = null; } } if (!string.IsNullOrEmpty(dr["OrderMaxDiscount"].ToString())) { info.SaleRule.OrderMaxDiscount = decimal.Parse(dr["OrderMaxDiscount"].ToString().Trim()); } if (!string.IsNullOrEmpty(dr["CustomerMaxFrequency"].ToString())) { info.SaleRule.CustomerMaxFrequency = int.Parse(dr["CustomerMaxFrequency"].ToString()); } if (!string.IsNullOrEmpty(dr["MaxFrequency"].ToString())) { info.SaleRule.MaxFrequency = int.Parse(dr["MaxFrequency"].ToString()); } #endregion } DataTable dtSaleRules = ds.Tables[5]; if (dtSaleRules.Rows.Count > 0) { if (!string.IsNullOrEmpty(dtMaster.Rows[0]["ProductRangeType"].ToString())) { object productRangeType; EnumCodeMapper.TryGetEnum(dtMaster.Rows[0]["ProductRangeType"], typeof(ProductRangeType), out productRangeType); info.SaleRule.ProductRange.ProductRangeType = (ProductRangeType)productRangeType; } #region Coupon_SaleRules的数据绑定 foreach (DataRow dr in dtSaleRules.Rows) { if (dr["Type"].ToString().Trim().ToUpper() == "I") { RelProduct product = new RelProduct(); if (!string.IsNullOrEmpty(dr["ProductSysNo"].ToString())) { product.ProductSysNo = int.Parse(dr["ProductSysNo"].ToString()); } if (!string.IsNullOrEmpty(dr["ProductID"].ToString())) { product.ProductID = dr["ProductID"].ToString(); } if (!string.IsNullOrEmpty(dr["ProductName"].ToString())) { product.ProductName = dr["ProductName"].ToString(); } if (!string.IsNullOrEmpty(dr["RelationType"].ToString())) { if (dr["RelationType"].ToString().Trim() == "Y") { info.SaleRule.ProductRange.RelationType = RelationType.Y; } else { info.SaleRule.ProductRange.RelationType = RelationType.N; } } if (!string.IsNullOrEmpty(dr["ProductStatus"].ToString())) { ProductStatus productStatus; if (Enum.TryParse <ProductStatus>(dr["ProductStatus"].ToString(), out productStatus)) { product.ProductStatus = EnumHelper.GetDescription(productStatus); } } info.SaleRule.ProductRange.Products.Add(product); } } #endregion } DataTable dtSaleRulesCustomer = ds.Tables[6]; if (dtSaleRulesCustomer.Rows.Count > 0) { #region Coupon_SaleRulesCustomer的数据绑定 foreach (DataRow dr in dtSaleRulesCustomer.Rows) { RelCustomer customer = new RelCustomer(); //cs.Customer = new SampleObject(int.Parse(dr["CustomerSysNo"].ToString())); customer.CustomerSysNo = int.Parse(dr["CustomerSysNo"].ToString()); customer.CustomerID = string.IsNullOrEmpty(dr["CustomerID"].ToString()) ? null : dr["CustomerID"].ToString().Trim(); customer.CustomerName = string.IsNullOrEmpty(dr["CustomerName"].ToString()) ? null : dr["CustomerName"].ToString().Trim(); info.SaleRule.CustomerRange.Customers.Add(customer); info.SaleRule.CustomerRange.CustomerRangeType = CouponCustomerRangeType.Limit; } #endregion } else { info.SaleRule.CustomerRange.CustomerRangeType = CouponCustomerRangeType.All; } if (info != null && info.BindRule != null && info.BindRule.BindCondition == CouponsBindConditionType.None) { List <CouponCode> codes = LoadCouponCodes(info.SysNo); if (codes != null && codes.Count > 0) { info.CouponCodes = codes; if (codes[0].CodeType == CouponCodeType.Common) { info.GeneralCode = codes[0]; } else { string BatchCode = ""; for (int i = 0; i < codes.Count; i++) { if (i == codes.Count - 1) { BatchCode += codes[i].Code; } else { BatchCode += codes[i].Code + "\n"; } } info.ThrowInCodes = BatchCode; } } } if (info != null && (info.Status == CouponStatus.Run || info.Status == CouponStatus.Finish || info.Status == CouponStatus.Stoped)) { info.CouponCodes = LoadCouponCodes(info.SysNo); } } } return(info); }
private static void AddCoupon_BindRulesProduct(int couponsSysNo, string username, string relation, RelProduct product) { DataCommand cmd = DataCommandManager.GetDataCommand("AddCoupon_BindRulesProductCondition"); cmd.SetParameterValue("@CouponSysNo", couponsSysNo); cmd.SetParameterValue("@RuleItemType", "I"); cmd.SetParameterValue("@ItemDataSysNo", product.ProductSysNo); cmd.SetParameterValue("@RelationType", relation); cmd.SetParameterValue("@InUser", username); cmd.ExecuteNonQuery(); }