Exemple #1
0
        public static decimal GetDeliveryFee(List <CartInfo> cartInfoList, AddressInfo addressInfo, DeliveryInfo deliveryInfo)
        {
            if (cartInfoList == null || deliveryInfo == null)
            {
                return(0);
            }

            var startStandards = deliveryInfo.StartStandards;
            var startFees      = deliveryInfo.StartFees;
            var addStandards   = deliveryInfo.AddStandards;
            var addFees        = deliveryInfo.AddFees;

            if (addressInfo != null)
            {
                var areaInfoList = AreaDao.GetAreaInfoList(deliveryInfo.Id);
                foreach (var areaInfo in areaInfoList)
                {
                    var cities = areaInfo.Cities.Split(',').ToList();
                    foreach (var city in cities)
                    {
                        if (!addressInfo.Location.Contains(city))
                        {
                            continue;
                        }

                        startStandards = areaInfo.StartStandards;
                        startFees      = areaInfo.StartFees;
                        addStandards   = areaInfo.AddStandards;
                        addFees        = areaInfo.AddFees;
                    }
                }
            }

            var count = 0;

            foreach (var cartInfo in cartInfoList)
            {
                if (cartInfo.IsDelivery)
                {
                    count += cartInfo.Count;
                }
            }

            var deliveryFee = startFees;

            if (count > startStandards)
            {
                var add = count - startStandards;
                if (addStandards > 0 && addFees > 0)
                {
                    deliveryFee += Math.Floor(Convert.ToDecimal(add / addStandards)) * addFees;
                }
            }

            return(deliveryFee);
        }
Exemple #2
0
        private void RptContents_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            if (e.Item.ItemType != ListItemType.Item && e.Item.ItemType != ListItemType.AlternatingItem)
            {
                return;
            }

            var deliveryInfo = (DeliveryInfo)e.Item.DataItem;

            var ltlDeliveryName   = (Literal)e.Item.FindControl("ltlDeliveryName");
            var ltlDeliveryType   = (Literal)e.Item.FindControl("ltlDeliveryType");
            var ltlStartStandards = (Literal)e.Item.FindControl("ltlStartStandards");
            var ltlStartFees      = (Literal)e.Item.FindControl("ltlStartFees");
            var ltlAddStandards   = (Literal)e.Item.FindControl("ltlAddStandards");
            var ltlAddFees        = (Literal)e.Item.FindControl("ltlAddFees");
            var rptAreas          = (Repeater)e.Item.FindControl("rptAreas");
            var ltlActions        = (Literal)e.Item.FindControl("ltlActions");

            ltlDeliveryName.Text = deliveryInfo.DeliveryName;
            ltlDeliveryType.Text = deliveryInfo.DeliveryType;

            ltlStartStandards.Text = deliveryInfo.StartStandards.ToString();
            ltlStartFees.Text      = deliveryInfo.StartFees.ToString("N2");
            ltlAddStandards.Text   = deliveryInfo.AddStandards.ToString();
            ltlAddFees.Text        = deliveryInfo.AddFees.ToString("N2");

            rptAreas.DataSource     = AreaDao.GetAreaInfoList(deliveryInfo.Id);
            rptAreas.ItemDataBound += RptAreas_ItemDataBound;
            rptAreas.DataBind();

            ltlActions.Text =
                $@"<a class=""m-r-10"" href=""{PageDeliveryAdd.GetRedirectUrl(_siteId, deliveryInfo.Id)}"">编 辑</a>
                    <a class=""m-r-10"" href=""{GetRedirectUrl(_siteId)}&up={true}&deliveryId={deliveryInfo.Id}"">上 升</a>
                    <a class=""m-r-10"" href=""{GetRedirectUrl(_siteId)}&down={true}&deliveryId={deliveryInfo.Id}"">下 降</a>
                    <a class=""m-r-10"" href=""javascript:;"" onclick=""{Utils.SwalWarning("删除运费",
                    $"此操作将删除运费“{deliveryInfo.DeliveryName}”,确定吗?", "取 消", "删 除",
                    $"location.href='{GetRedirectUrl(_siteId)}&delete={true}&deliveryId={deliveryInfo.Id}'")};return false;"">删 除</a>";
        }
        public void Page_Load(object sender, EventArgs e)
        {
            var request = SiteServer.Plugin.Context.GetCurrentRequest();

            _siteId     = request.GetQueryInt("siteId");
            _deliveryId = request.GetQueryInt("deliveryId");
            _areaId     = request.GetQueryInt("areaId");

            if (!request.AdminPermissions.HasSitePermissions(_siteId, Main.PluginId))
            {
                Response.Write("<h1>未授权访问</h1>");
                Response.End();
                return;
            }

            if (!string.IsNullOrEmpty(Request.QueryString["delete"]) &&
                !string.IsNullOrEmpty(Request.QueryString["idCollection"]))
            {
                var array = Request.QueryString["idCollection"].Split(',');
                var list  = array.Select(s => Utils.ParseInt(s)).ToList();
                OrderDao.Delete(list);
                LtlMessage.Text = Utils.GetMessageHtml("删除成功!", true);
            }
            if (!string.IsNullOrEmpty(Request.QueryString["addArea"]))
            {
                var areaInfo = new AreaInfo
                {
                    DeliveryId = _deliveryId
                };
                areaInfo.Id = AreaDao.Insert(areaInfo);
                Response.Redirect($@"{GetRedirectUrl(_siteId, _deliveryId)}");
                return;
            }
            if (!string.IsNullOrEmpty(Request.QueryString["removeArea"]))
            {
                AreaDao.Delete(_areaId);
                Response.Redirect($@"{GetRedirectUrl(_siteId, _deliveryId)}");
                return;
            }
            if (!string.IsNullOrEmpty(Request.QueryString["saveCities"]))
            {
                var areaInfo = AreaDao.GetAreaInfo(_areaId);
                areaInfo.Cities = Request.QueryString["selectedCities"];
                AreaDao.Update(areaInfo);
                Response.Redirect($@"{GetRedirectUrl(_siteId, _deliveryId)}");
                return;
            }

            if (IsPostBack)
            {
                return;
            }

            var deliveryInfo = DeliveryDao.GetDeliveryInfo(_deliveryId);

            TbDeliveryName.Text = deliveryInfo.DeliveryName;
            Utils.SelectListItems(DdlDeliveryType, deliveryInfo.DeliveryType);
            TbStartStandards.Text = deliveryInfo.StartStandards.ToString();
            TbStartFees.Text      = deliveryInfo.StartFees.ToString("N2");
            TbAddStandards.Text   = deliveryInfo.AddStandards.ToString();
            TbAddFees.Text        = deliveryInfo.AddFees.ToString("N2");

            RptAreas.DataSource     = AreaDao.GetAreaInfoList(_deliveryId);
            RptAreas.ItemDataBound += RptAreas_ItemDataBound;
            RptAreas.DataBind();

            BtnAreaAdd.Attributes.Add("onclick", $@"location.href = '{GetRedirectUrl(_siteId, _deliveryId)}&addArea={true}';return false;");

            if (!string.IsNullOrEmpty(Request.QueryString["areas"]) && !string.IsNullOrEmpty(Request.QueryString["areaId"]))
            {
                PhModalAreas.Visible = true;
                BtnAreas.Attributes.Add("onclick", $"location.href='{GetRedirectUrl(_siteId, _deliveryId)}&saveCities={true}&areaId={_areaId}&selectedCities=' + selectedCities.join(',');return false;");
            }
        }