예제 #1
0
        /// <summary>
        /// 换货确认按钮点击方法
        /// </summary>
        protected void ChangeButton_Click(object sender, EventArgs e)
        {
            OrderInfo order            = ButtoStart();
            int       startOrderStatus = order.OrderStatus;

            order.OrderStatus = (int)OrderStatus.Shipping;
            //更新商品库存数量
            ProductBLL.ChangeSendCountByOrder(order.Id, ChangeAction.Minus);
            ButtonEnd(order, Note.Text, OrderOperate.Change, startOrderStatus);
        }
예제 #2
0
        /// <summary>
        /// 发货
        /// </summary>
        protected void Ship()
        {
            bool   flag = true;
            string msg  = string.Empty;

            try
            {
                int      orderId        = RequestHelper.GetForm <int>("orderid");
                DateTime date           = RequestHelper.GetForm <DateTime>("date");
                string   shippingnumber = RequestHelper.GetForm <string>("shippingnumber");
                if (orderId <= 0)
                {
                    flag = false;
                    msg  = "请求参数错误";
                }
                if ((date - DateTime.Now).Days < 0)
                {
                    flag = false;
                    msg  = "配送日期不规范";
                }
                if (string.IsNullOrEmpty(shippingnumber))
                {
                    flag = false;
                    msg  = "配送单号不能为空";
                }
                OrderInfo order = OrderBLL.Read(orderId);
                if (order.OrderStatus == (int)OrderStatus.Shipping)
                {
                    int startOrderStatus = order.OrderStatus;
                    order.OrderStatus    = (int)OrderStatus.HasShipping;
                    order.ShippingNumber = shippingnumber;
                    order.ShippingDate   = date;
                    //更新商品库存数量
                    ProductBLL.ChangeSendCountByOrder(order.Id, ChangeAction.Plus);
                    OrderBLL.AdminUpdateOrderAddAction(order, "", (int)OrderOperate.Send, startOrderStatus);
                    flag = true;
                }
            }
            catch (Exception ex)
            {
                flag = false;
                msg  = ex.Message;
            }
            finally
            {
                Response.Clear();
                Response.Write(JsonConvert.SerializeObject(new { ok = flag, msg = msg }));
                Response.End();
            }
        }
예제 #3
0
        /// <summary>
        /// 审核按钮点击方法
        /// </summary>
        protected void CheckButton_Click(object sender, EventArgs e)
        {
            OrderInfo order = ButtoStart();

            #region  拼团单,未拼满或者拼团失败不能通过审核
            if (order.IsActivity == (int)OrderKind.GroupBuy)
            {
                var groupBuy = GroupBuyBLL.Read(order.FavorableActivityId);
                if (!(groupBuy.StartTime <= DateTime.Now && groupBuy.EndTime >= DateTime.Now && groupBuy.SignCount >= groupBuy.Quantity))
                {
                    ScriptHelper.Alert("拼团未成功,暂不能通过审核");
                }
            }
            #endregion
            int startOrderStatus = order.OrderStatus;

            //确认付款,收款时间
            order.PayDate = RequestHelper.DateNow;

            order.ShippingNumber = ShippingNumber.Text;
            order.ShippingDate   = Convert.ToDateTime(ShippingDate.Text);
            //更新商品库存数量
            ProductBLL.ChangeSendCountByOrder(order.Id, ChangeAction.Plus);

            //自提:现场审核提货,完成
            if (order.SelfPick == 1)
            {
                order.OrderStatus = (int)OrderStatus.ReceiveShipping;
                #region 提货码状态置为1(无效)
                PickUpCodeBLL.UsePickCodeByOrder(order.Id);
                #endregion
                #region 完成订单给分销商返佣
                //订单实际支付金额
                decimal paid_money = OrderBLL.ReadNoPayMoney(order);
                //购买人
                var user = UserBLL.Read(order.UserId);
                //购买者有推荐人 且 实际支付金额大于0才进行返佣
                if (user.Recommend_UserId > 0 && paid_money > 0)
                {
                    RebateBLL.RebateToDistributor(user, paid_money, order.Id);
                }
                #endregion
            }
            else
            {//配送:进入配货状态
                order.OrderStatus = (int)OrderStatus.Shipping;
            }
            ButtonEnd(order, Note.Text, OrderOperate.Check, startOrderStatus);
        }
예제 #4
0
        //供应商发货
        private void OrderSend()
        {
            string result = string.Empty;

            if (base.UserId <= 0)
            {
                ResponseHelper.Write("登录状态已过期,请重新登录");
                ResponseHelper.End();
            }

            DateTime shippingDate   = RequestHelper.GetForm <DateTime>("ShippingDate");
            string   shippingNumber = StringHelper.AddSafe(RequestHelper.GetForm <string>("ShippingNumber"));

            if (shippingDate < DateTime.Now.AddDays(-30))
            {
                ResponseHelper.Write("配送日期输入有误");
                ResponseHelper.End();
            }
            if (string.IsNullOrEmpty(shippingNumber))
            {
                ResponseHelper.Write("请输入配送单号");
                ResponseHelper.End();
            }

            int       orderId = RequestHelper.GetQueryString <int>("orderId");
            OrderInfo order   = OrderBLL.ReadByShopId(orderId, base.UserId);

            if (order.Id > 0)
            {
                int startOrderStatus = order.OrderStatus;

                order.OrderStatus    = (int)OrderStatus.HasShipping;
                order.ShippingNumber = shippingNumber;
                order.ShippingDate   = shippingDate;
                //更新商品库存数量
                ProductBLL.ChangeSendCountByOrder(order.Id, ChangeAction.Plus);
                OrderBLL.UserUpdateOrderAddAction(order, "供应商发货", (int)OrderOperate.Send, startOrderStatus);
            }
            else
            {
                result = "订单不存在或者您没有操作这个订单的权限";
            }
            ResponseHelper.Write(result);
            ResponseHelper.End();
        }
예제 #5
0
        /// <summary>
        /// 撤销按钮点击方法
        /// </summary>
        protected void BackButton_Click(object sender, EventArgs e)
        {
            OrderInfo order            = ButtoStart();
            int       startOrderStatus = order.OrderStatus;

            order.OrderStatus = OrderActionBLL.ReadLast(order.Id, order.OrderStatus).StartOrderStatus;
            //减去用户积分,积分为负数
            int sendPoint = 0;

            if (startOrderStatus == (int)OrderStatus.ReceiveShipping && order.IsActivity == (int)BoolType.False)
            {
                //sendPoint = -OrderBLL.ReadOrderSendPoint(order.Id);
                //根据订单付款金额全额返还积分
                sendPoint = -(int)Math.Floor(OrderBLL.ReadNoPayMoney(order));
            }
            if (startOrderStatus == (int)OrderStatus.HasShipping && order.OrderStatus == (int)OrderStatus.ReceiveShipping && order.IsActivity == (int)BoolType.False)//相当于收货确认
            {
                //sendPoint = OrderBLL.ReadOrderSendPoint(order.Id);
                //根据订单付款金额全额返还积分
                sendPoint = -(int)Math.Floor(OrderBLL.ReadNoPayMoney(order));
            }
            if (sendPoint != 0)
            {
                var accountRecord = new UserAccountRecordInfo
                {
                    RecordType = (int)AccountRecordType.Point,
                    Money      = 0,
                    Point      = sendPoint,
                    Date       = DateTime.Now,
                    IP         = ClientHelper.IP,
                    Note       = ShopLanguage.ReadLanguage("OrderBack").Replace("$OrderNumber", order.OrderNumber),
                    UserId     = order.UserId,
                    UserName   = order.UserName
                };
                UserAccountRecordBLL.Add(accountRecord);
            }

            //更新商品库存数量
            switch (startOrderStatus)
            {
            case (int)OrderStatus.WaitPay:
            case (int)OrderStatus.WaitCheck:
                if (order.OrderStatus == (int)OrderStatus.NoEffect)    //相当于取消操作
                {
                    ProductBLL.ChangeOrderCountByOrder(order.Id, ChangeAction.Minus);
                }
                break;

            case (int)OrderStatus.NoEffect:
                ProductBLL.ChangeOrderCountByOrder(order.Id, ChangeAction.Plus);
                break;

            case (int)OrderStatus.HasReturn:
                ProductBLL.ChangeOrderCountByOrder(order.Id, ChangeAction.Plus);
                ProductBLL.ChangeSendCountByOrder(order.Id, ChangeAction.Plus);
                break;

            case (int)OrderStatus.Shipping:
                if (order.OrderStatus == (int)OrderStatus.HasShipping)
                {
                    ProductBLL.ChangeSendCountByOrder(order.Id, ChangeAction.Plus);
                }
                break;

            case (int)OrderStatus.HasShipping:
                if (order.OrderStatus == (int)OrderStatus.Shipping)
                {
                    ProductBLL.ChangeSendCountByOrder(order.Id, ChangeAction.Minus);
                }
                if (order.OrderStatus == (int)OrderStatus.HasReturn)    //相当于退货确认操作
                {
                    ProductBLL.ChangeOrderCountByOrder(order.Id, ChangeAction.Minus);
                    ProductBLL.ChangeSendCountByOrder(order.Id, ChangeAction.Minus);
                }
                break;

            default:
                break;
            }
            //更新订单
            ButtonEnd(order, Note.Text, OrderOperate.Back, startOrderStatus);
        }