protected void btnAcceptRefund_Click(object sender, EventArgs e) { bool flag = true; string userName = HiContext.Current.Manager.UserName; string adminRemark = Globals.StripAllTags(this.txtAdminRemark.Text); int refundId = this.Page.Request.QueryString["RefundId"].ToInt(0); RefundInfo refundInfo = TradeHelper.GetRefundInfo(refundId); if (refundInfo == null) { this.ShowMsg("错误的退款申请信息", false); } else { OrderInfo orderInfo = OrderHelper.GetOrderInfo(refundInfo.OrderId); if (orderInfo == null) { this.ShowMsg("错误的订单信息", false); } else { decimal num = this.txtRefundMoney.Text.ToDecimal(0); if (num < decimal.Zero) { this.ShowMsg("退款金额必须大于等于0", false); } else { if (!refundInfo.IsServiceProduct) { GroupBuyInfo groupbuy = null; if (orderInfo.GroupBuyId > 0) { groupbuy = ProductBrowser.GetGroupBuy(orderInfo.GroupBuyId); } if (num > orderInfo.GetCanRefundAmount("", groupbuy, 0)) { this.ShowMsg("退款金额不能大于订单/商品最大金额", false); return; } } else if (num > refundInfo.RefundAmount) { this.ShowMsg("退款金额不能大于可退款总额", false); return; } if (refundInfo.HandleStatus != 0) { this.ShowMsg("退款状态不正确", false); } else if (refundInfo.IsServiceProduct || (!refundInfo.IsServiceProduct && OrderHelper.CanFinishRefund(orderInfo, refundInfo, num, false))) { RefundTypes refundType = refundInfo.RefundType; string userRemark = refundInfo.UserRemark; MemberInfo user = Users.GetUser(orderInfo.UserId); string text = ""; if (RefundHelper.IsBackReturn(orderInfo.Gateway) && refundInfo.RefundType == RefundTypes.BackReturn) { text = RefundHelper.SendRefundRequest(orderInfo, num, refundInfo.RefundOrderId, true); if (text == "") { if (OrderHelper.CheckRefund(orderInfo, refundInfo, num, userName, adminRemark, true, false)) { VShopHelper.AppPushRecordForOrder(orderInfo.OrderId, "", EnumPushOrderAction.OrderRefund); Messenger.OrderRefund(user, orderInfo, ""); this.ShowMsg("成功的完成退款并且已成功原路退回退款金额!", true, HttpContext.Current.Request.Url.ToString()); } } else { TradeHelper.SaveRefundErr(refundInfo.RefundId, text, true); this.ShowMsg("退款原路返回错误,错误信息" + text + ",请重新尝试!", false); } } else if (OrderHelper.CheckRefund(orderInfo, refundInfo, num, userName, adminRemark, true, false)) { Messenger.OrderRefund(user, orderInfo, ""); VShopHelper.AppPushRecordForOrder(orderInfo.OrderId, "", EnumPushOrderAction.OrderRefund); if (refundInfo.RefundType == RefundTypes.InBalance) { this.ShowMsg("成功确定了退款,退款金额已退回用户预付款帐号!", true, HttpContext.Current.Request.Url.ToString()); } else { this.ShowMsg("成功的完成了退款,请即时给用户退款", true, HttpContext.Current.Request.Url.ToString()); } } } } } } }
private void btnAcceptReturn_Click(object sender, EventArgs e) { int num = this.Page.Request["ReturnId"].ToInt(0); string text = Globals.StripAllTags(this.txtAdminShipAddress.Text); string adminShipTo = Globals.StripAllTags(this.txtAdminShipTo.Text); string adminCellPhone = Globals.StripAllTags(this.txtAdminCellPhone.Text); ReturnInfo returnInfo = TradeHelper.GetReturnInfo(num); string adminRemark = Globals.StripAllTags(this.txtAdminRemark.Text); string text2 = "退货"; if (returnInfo == null) { this.ShowMsg("售后信息错误!", false); } else { bool flag = false; if (returnInfo.AfterSaleType == AfterSaleTypes.OnlyRefund) { text2 = "退款"; flag = true; } string skuId = returnInfo.SkuId; OrderInfo orderInfo = TradeHelper.GetOrderInfo(returnInfo.OrderId); if (orderInfo == null) { this.ShowMsg("订单不存在!", false); } else if (!orderInfo.LineItems.ContainsKey(skuId)) { this.ShowMsg("订单中不存在要退货的商品!", false); } else { LineItemInfo lineItemInfo = orderInfo.LineItems[skuId]; decimal num2 = default(decimal); if (lineItemInfo.Status != LineItemStatus.ReturnApplied) { this.ShowMsg(text2 + "状态不正确.", false); } else if (!decimal.TryParse(this.txtRefundMoney.Text, out num2)) { this.ShowMsg("退款金额需为数字格式!", false); } else if (num2 < decimal.Zero) { this.ShowMsg("退款金额必须大于等于0", false); } else { if (this.UserStoreId != returnInfo.StoreId && returnInfo.StoreId >= 0) { if (flag) { if (orderInfo.IsStoreCollect && this.UserStoreId == 0) { this.ShowMsg("门店收的款,只能由门店进行退款确认处理!", false); return; } } else if (this.UserStoreId > 0) { this.ShowMsg("同意" + text2 + "只能由发货的店铺或者平台进行处理!", false); return; } } if (!flag && string.IsNullOrEmpty(text)) { this.ShowMsg("请输入平台收货地址,告之用户发货的地址和联系方式", false); } else { GroupBuyInfo groupbuy = null; if (orderInfo.GroupBuyId > 0) { groupbuy = ProductBrowser.GetGroupBuy(orderInfo.GroupBuyId); } decimal canRefundAmount = orderInfo.GetCanRefundAmount(skuId, groupbuy, 0); if (num2 > canRefundAmount) { this.ShowMsg("退款金额不能大于退货订单或者商品的金额!", false); } else if (flag) { RefundTypes refundType = returnInfo.RefundType; string userRemark = returnInfo.UserRemark; MemberInfo user = Users.GetUser(orderInfo.UserId); string text3 = ""; if (RefundHelper.IsBackReturn(orderInfo.Gateway) && returnInfo.RefundType == RefundTypes.BackReturn) { text3 = RefundHelper.SendRefundRequest(orderInfo, num2, returnInfo.RefundOrderId, false); if (text3 == "") { if (OrderHelper.AgreedReturns(num, num2, adminRemark, orderInfo, returnInfo.SkuId, text, adminShipTo, adminCellPhone, flag, false)) { if (flag) { VShopHelper.AppPushRecordForOrder(orderInfo.OrderId, returnInfo.SkuId, EnumPushOrderAction.OrderReturnConfirm); } else { VShopHelper.AppPushRecordForOrder(orderInfo.OrderId, returnInfo.SkuId, EnumPushOrderAction.OrderRefund); } Messenger.OrderRefund(user, orderInfo, returnInfo.SkuId); this.ShowMsg("成功的完成退款并且已成功原路退回退款金额!", true, HttpContext.Current.Request.Url.ToString()); } } else { TradeHelper.SaveRefundErr(num, text3, false); this.ShowMsg("退款原路返回错误,错误信息" + text3 + ",请重新尝试!", false); } } else if (OrderHelper.AgreedReturns(num, num2, adminRemark, orderInfo, returnInfo.SkuId, text, adminShipTo, adminCellPhone, flag, returnInfo.RefundType == RefundTypes.InBalance)) { if (flag) { VShopHelper.AppPushRecordForOrder(orderInfo.OrderId, returnInfo.SkuId, EnumPushOrderAction.OrderReturnConfirm); } else { VShopHelper.AppPushRecordForOrder(orderInfo.OrderId, returnInfo.SkuId, EnumPushOrderAction.OrderRefund); } Messenger.OrderRefund(user, orderInfo, returnInfo.SkuId); if (returnInfo.RefundType == RefundTypes.InBalance) { this.ShowMsg("成功确定了退款,退款金额已退回用户预付款帐号!", true, HttpContext.Current.Request.Url.ToString()); } else { this.ShowMsg("成功的完成了退款,请即时给用户退款", true, HttpContext.Current.Request.Url.ToString()); } } } else if (OrderHelper.AgreedReturns(num, num2, adminRemark, orderInfo, returnInfo.SkuId, text, adminShipTo, adminCellPhone, flag, false)) { VShopHelper.AppPushRecordForOrder(orderInfo.OrderId, returnInfo.SkuId, EnumPushOrderAction.OrderReturnConfirm); this.ShowMsg("成功的确认了售后", true, HttpContext.Current.Request.Url.ToString()); } else { this.ShowMsg("确认售后失败!", false); } } } } } }