public static RMARefundInfo Valid(int rmaRefundSysNo, LoginUser operateUser) { RMARefundInfo info = LoadWithRefundSysNo(rmaRefundSysNo, operateUser.SellerSysNo); if (info == null) { throw new BusinessException(L("未找到编号为【{0}】的退款单", rmaRefundSysNo)); } if (info.Status != RMARefundStatus.WaitingAudit) { throw new BusinessException(L("退款单不是“待审核”,不能审核通过")); } //info.Status = RMARefundStatus.WaitingRefund; info.Status = RMARefundStatus.Refunded; info.SOIncomeStatus = SOIncomeStatus.Origin; info.AuditUserSysNo = operateUser.UserSysNo; info.AuditUserName = operateUser.UserDisplayName; info.AuditDate = DateTime.Now; using (ITransaction ts = TransactionManager.Create()) { RMARefundDA.Update(info); //更新BankInfoStatus的为审核通过 RMARefundDA.AuditSOIncomeRefund(info.SysNo.Value, (int)info.OrderType, (int)RefundStatus.Refunded, operateUser.UserSysNo, operateUser.UserDisplayName); RMARefundDA.BatchUpdateRegisterRefundStatus(info.SysNo.Value, RMARefundStatus.WaitingRefund); //写入退款单 SOIncomeInfo soIncomeInfo = new SOIncomeInfo() { OrderType = SOIncomeOrderType.RO, OrderSysNo = info.SysNo, OrderAmt = -1 * info.CashAmt, IncomeStyle = SOIncomeOrderStyle.RO, IncomeAmt = -1 * info.CashAmt, PayAmount = -1 * info.CashAmt, InUserSysNo = operateUser.UserSysNo, InUserName = operateUser.UserDisplayName, Status = SOIncomeStatus.Origin, PointPay = info.PointPay, GiftCardPayAmt = info.GiftCardAmt, }; RMARefundDA.CreateRefundSOIncome(soIncomeInfo); ts.Complete(); } return(info); }