コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
            }
        }