public static ShippingTemplateGroupMode GetShippingTemplateParam_RegionId(ShippingTemplateInfo shippingTemplateInfo, int provinceRegionId, int cityRegionid, int regionId) { ShippingTemplateGroupMode shippingTemplateGroupMode = null; if (shippingTemplateInfo.ModeGroup != null && shippingTemplateInfo.ModeGroup.Count > 0) { foreach (ShippingTemplateGroupInfo item in shippingTemplateInfo.ModeGroup) { if (item.ModeRegions != null && item.ModeRegions.Count > 0) { foreach (ShippingRegionInfo modeRegion in item.ModeRegions) { if (modeRegion.RegionId == regionId || modeRegion.RegionId == provinceRegionId || modeRegion.RegionId == cityRegionid) { shippingTemplateGroupMode = new ShippingTemplateGroupMode(); shippingTemplateGroupMode.DefaultNumber = item.DefaultNumber; shippingTemplateGroupMode.AddNumber = (item.AddNumber.HasValue ? item.AddNumber.Value : decimal.Zero); shippingTemplateGroupMode.DefaultPrice = item.Price; shippingTemplateGroupMode.AddPrice = (item.AddPrice.HasValue ? item.AddPrice.Value : decimal.Zero); return(shippingTemplateGroupMode); } } } } } return(shippingTemplateGroupMode); }
public static decimal CalcFreight_ShipppingTemplate(int regionId, int shippingTemplateId, int quantity = 1, decimal weight = default(decimal), decimal volume = default(decimal), decimal amount = default(decimal)) { decimal result = default(decimal); decimal num = default(decimal); decimal num2 = default(decimal); decimal num3 = default(decimal); decimal num4 = default(decimal); ShippingTemplateInfo shippingTemplateInfo = (ShippingTemplateInfo)HiCache.Get($"DataCache-ShippingModeInfoCacheKey-{shippingTemplateId}"); if (shippingTemplateInfo == null) { shippingTemplateInfo = new ShippingModeDao().GetShippingTemplate(shippingTemplateId, true); HiCache.Insert($"DataCache-ShippingModeInfoCacheKey-{shippingTemplateId}", shippingTemplateInfo, 1800); } if (shippingTemplateInfo != null) { if (shippingTemplateInfo.IsFreeShipping) { return(decimal.Zero); } num = shippingTemplateInfo.DefaultNumber; num2 = (shippingTemplateInfo.AddNumber.HasValue ? shippingTemplateInfo.AddNumber.Value : decimal.Zero); num3 = shippingTemplateInfo.Price; num4 = (shippingTemplateInfo.AddPrice.HasValue ? shippingTemplateInfo.AddPrice.Value : decimal.Zero); if (regionId > 0) { string fullPath = RegionHelper.GetFullPath(regionId, true); if (!string.IsNullOrEmpty(fullPath)) { string[] array = fullPath.Split(','); int num5 = 0; int num6 = 0; if (array.Length >= 2) { num5 = array[0].ToInt(0); num6 = array[1].ToInt(0); regionId = ((array.Length >= 3) ? array[2].ToInt(0) : 0); ShippingTemplateGroupMode shippingTemplateParam_RegionId = ShoppingProcessor.GetShippingTemplateParam_RegionId(shippingTemplateInfo, num5, num6, regionId); ShippingTemplateFreeGroupMode shippingTemplateFreeParam_RegionId = ShoppingProcessor.GetShippingTemplateFreeParam_RegionId(shippingTemplateInfo, num5, num6, regionId); if (shippingTemplateFreeParam_RegionId != null) { int conditionType = shippingTemplateFreeParam_RegionId.ConditionType; ConditionType conditionType2 = ConditionType.Number; if (conditionType == conditionType2.GetHashCode()) { if (quantity >= shippingTemplateFreeParam_RegionId.ConditionNumber.ToInt(0)) { return(decimal.Zero); } } else { int conditionType3 = shippingTemplateFreeParam_RegionId.ConditionType; conditionType2 = ConditionType.Amount; if (conditionType3 == conditionType2.GetHashCode()) { if (amount >= shippingTemplateFreeParam_RegionId.ConditionNumber.ToDecimal(0)) { return(decimal.Zero); } } else { int conditionType4 = shippingTemplateFreeParam_RegionId.ConditionType; conditionType2 = ConditionType.NumberAndAmount; if (conditionType4 == conditionType2.GetHashCode() && quantity >= shippingTemplateFreeParam_RegionId.ConditionNumber.Split('$')[0].ToInt(0) && amount >= shippingTemplateFreeParam_RegionId.ConditionNumber.Split('$')[1].ToDecimal(0)) { return(decimal.Zero); } } } } if (shippingTemplateParam_RegionId != null) { num = shippingTemplateParam_RegionId.DefaultNumber; num2 = shippingTemplateParam_RegionId.AddNumber; num3 = shippingTemplateParam_RegionId.DefaultPrice; num4 = shippingTemplateParam_RegionId.AddPrice; } } } } if (shippingTemplateInfo.ValuationMethod == ValuationMethods.Number) { result = ShoppingProcessor.CalcFreight(quantity, num3, num4, num, num2); } else if (shippingTemplateInfo.ValuationMethod == ValuationMethods.Volume) { result = ShoppingProcessor.CalcFreight(volume, num3, num4, num, num2); } else if (shippingTemplateInfo.ValuationMethod == ValuationMethods.Weight) { result = ShoppingProcessor.CalcFreight(weight, num3, num4, num, num2); } } return(result); }
private void BindControl(ShippingTemplateInfo modeItem) { if (SalesHelper.ShippingTemplateIsExistProdcutRelation(this.templateId)) { this.radValuationMethods.Enabled = false; if (modeItem.IsFreeShipping) { this.radIsFreeShipping.Enabled = false; } } this.txtModeName.Text = Globals.HtmlDecode(modeItem.TemplateName); if (modeItem.ValuationMethod == ValuationMethods.Number) { TextBox textBox = this.txtDefaultNumber; decimal num = modeItem.DefaultNumber; textBox.Text = num.ToString("f0"); TextBox textBox2 = this.txtAddNumber; object text; if (!modeItem.AddNumber.HasValue) { text = "0"; } else { num = modeItem.AddNumber.Value; text = num.ToString("f0"); } textBox2.Text = (string)text; } else if (modeItem.ValuationMethod == ValuationMethods.Volume) { this.txtDefaultNumber.Text = modeItem.DefaultNumber.F2ToString("f2"); this.txtAddNumber.Text = (modeItem.AddNumber.HasValue ? modeItem.AddNumber.Value.F2ToString("f2") : "0"); } else { this.txtDefaultNumber.Text = modeItem.DefaultNumber.F2ToString("f2"); this.txtAddNumber.Text = (modeItem.AddNumber.HasValue ? modeItem.AddNumber.Value.F2ToString("f2") : "0"); } if (modeItem.AddPrice.HasValue) { this.txtAddPrice.Text = modeItem.AddPrice.Value.F2ToString("f2"); } this.txtDefaultPrice.Text = modeItem.Price.F2ToString("f2"); this.radIsFreeShipping.SelectedIndex = (modeItem.IsFreeShipping ? 1 : 0); this.radValuationMethods.SelectedValue = modeItem.ValuationMethod; IList <ShippingTemplateGroupMode> list = new List <ShippingTemplateGroupMode>(); if (modeItem.ModeGroup != null && modeItem.ModeGroup.Count > 0) { foreach (ShippingTemplateGroupInfo item in modeItem.ModeGroup) { ShippingTemplateGroupMode shippingTemplateGroupMode = new ShippingTemplateGroupMode(); shippingTemplateGroupMode.AddNumber = (item.AddNumber.HasValue ? item.AddNumber.Value : decimal.Zero); shippingTemplateGroupMode.AddPrice = (item.AddPrice.HasValue ? item.AddPrice.Value : decimal.Zero); shippingTemplateGroupMode.DefaultNumber = item.DefaultNumber; shippingTemplateGroupMode.DefaultPrice = item.Price; StringBuilder stringBuilder = new StringBuilder(); StringBuilder stringBuilder2 = new StringBuilder(); foreach (ShippingRegionInfo modeRegion in item.ModeRegions) { stringBuilder.Append(modeRegion.RegionId + ","); stringBuilder2.Append(RegionHelper.GetFullRegion(modeRegion.RegionId, ",", true, 0).Split(',')[1] + ","); } if (!string.IsNullOrEmpty(stringBuilder.ToString())) { shippingTemplateGroupMode.RegionIds = stringBuilder.ToString().Substring(0, stringBuilder.ToString().Length - 1); } if (!string.IsNullOrEmpty(stringBuilder2.ToString())) { shippingTemplateGroupMode.RegionNames = stringBuilder2.ToString().Substring(0, stringBuilder2.ToString().Length - 1); } list.Add(shippingTemplateGroupMode); } } if (list != null && list.Count > 0) { this.hidRegionJson.Value = JsonHelper.GetJson(list); } IList <ShippingTemplateFreeGroupMode> list2 = new List <ShippingTemplateFreeGroupMode>(); if (modeItem.FreeGroup != null && modeItem.FreeGroup.Count > 0) { this.radHasFree.SelectedValue = true; foreach (ShippingTemplateFreeGroupInfo item2 in modeItem.FreeGroup) { ShippingTemplateFreeGroupMode shippingTemplateFreeGroupMode = new ShippingTemplateFreeGroupMode(); shippingTemplateFreeGroupMode.ConditionType = item2.ConditionType; shippingTemplateFreeGroupMode.ConditionNumber = item2.ConditionNumber; StringBuilder stringBuilder3 = new StringBuilder(); StringBuilder stringBuilder4 = new StringBuilder(); foreach (ShippingFreeRegionInfo modeRegion2 in item2.ModeRegions) { stringBuilder3.Append(modeRegion2.RegionId + ","); stringBuilder4.Append(RegionHelper.GetFullRegion(modeRegion2.RegionId, ",", true, 0).Split(',')[1] + ","); } if (!string.IsNullOrEmpty(stringBuilder3.ToString())) { shippingTemplateFreeGroupMode.RegionIds = stringBuilder3.ToString().Substring(0, stringBuilder3.ToString().Length - 1); } if (!string.IsNullOrEmpty(stringBuilder4.ToString())) { shippingTemplateFreeGroupMode.RegionNames = stringBuilder4.ToString().Substring(0, stringBuilder4.ToString().Length - 1); } list2.Add(shippingTemplateFreeGroupMode); } } if (list2 != null && list2.Count > 0) { this.hidFreeJson.Value = JsonHelper.GetJson(list2); } }