コード例 #1
0
        /// <summary>
        /// 退款按钮点击方法【不支持】
        /// </summary>
        protected void RefundButton_Click(object sender, EventArgs e)
        {
            OrderInfo order = ButtoStart();
            //余额处理
            decimal money = order.Balance;
            int     isCod = PayPlugins.ReadPayPlugins(order.PayKey).IsCod;

            if (order.OrderStatus == (int)OrderStatus.HasReturn && isCod == (int)BoolType.False)
            {
                money += OrderBLL.ReadNoPayMoney(order);
            }
            else if (order.OrderStatus == (int)OrderStatus.NoEffect && OrderActionBLL.ReadLast(order.Id, order.OrderStatus).StartOrderStatus == (int)OrderStatus.WaitCheck && isCod == (int)BoolType.False)
            {
                money += OrderBLL.ReadNoPayMoney(order);
            }
            if (money > 0)
            {
                var accountRecord = new UserAccountRecordInfo
                {
                    RecordType = (int)AccountRecordType.Money,
                    Money      = money,
                    Point      = 0,
                    Date       = DateTime.Now,
                    IP         = ClientHelper.IP,
                    Note       = "退还订单:" + order.OrderNumber + "的金额",
                    UserId     = order.UserId,
                    UserName   = order.UserName
                };
                UserAccountRecordBLL.Add(accountRecord);
            }
            //更新订单
            int startOrderStatus = order.OrderStatus;

            order.OrderStatus = (int)order.OrderStatus;
            order.Balance     = 0;
            order.CouponMoney = 0;
            order.IsRefund    = (int)BoolType.True;
            ButtonEnd(order, Note.Text, OrderOperate.Refund, startOrderStatus);
        }
コード例 #2
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);
        }