/// <summary> /// 取消提供帮助的订单 /// </summary> /// <param name="hid"></param> /// <param name="ispipei">单据是否已经匹配</param> /// <returns></returns> public int UpdateToCancle(int hid, int ispipei = 0) { int result = 0; List <LeaderAmountModel> leaderlist = MemberCapitalDetailDAL.GetLeaderamountListByOrderID(hid); using (TransactionScope scope = new TransactionScope()) { //更改订单状态 int rowcount = HelpeOrderDAL.UpdateStatus(hid, 3); if (rowcount < 1) { return(0); } //返还会员追加的资金 HelpeOrderModel model = HelpeOrderDAL.GetHelpOrderInfo(hid); rowcount = MemberCapitalDetailDAL.UpdateMemberStaticFreezeMoneyAndinster(model.MemberID, (0 - model.Amount), 1, model.MemberName, model.MemberPhone); //rowcount = MemberCapitalDetailDAL.UpdateMemberStaticCapital(model.MemberID, (0 - model.Amount), model.MemberName, model.MemberPhone); if (rowcount < 1) { return(0); } //插入会员资金变动日志 AmountChangeLogModel logmodel = new AmountChangeLogModel(); logmodel.MemberID = model.MemberID; logmodel.MemberName = model.MemberName; logmodel.MemberPhone = model.MemberPhone; logmodel.OrderCode = model.OrderCode; logmodel.OrderID = hid; logmodel.ProduceMoney = (0 - model.Amount); logmodel.Remark = "会员:" + model.MemberPhone + " 取消提供帮助,扣减静态冻结资金 " + model.Amount.ToString() + "元"; logmodel.Type = 1; rowcount = OperateLogDAL.AddAmountChangeLog(logmodel); if (rowcount < 1) { return(0); } if (model.Interest > 0) { //从账户扣减本次产生的利息 rowcount = MemberCapitalDetailDAL.UpdateStaticInterest(model.MemberID, (0 - model.Interest)); if (rowcount < 1) { return(0); } //插入日志 AmountChangeLogModel logmodel1 = new AmountChangeLogModel(); logmodel1.MemberID = model.MemberID; logmodel1.MemberName = model.MemberName; logmodel1.MemberPhone = model.MemberPhone; logmodel1.OrderCode = model.OrderCode; logmodel1.OrderID = hid; logmodel1.ProduceMoney = (0 - model.Amount); logmodel1.Remark = "会员:" + model.MemberPhone + " 取消提供帮助,扣减利息 " + model.Interest.ToString() + "元"; logmodel.Type = 4; rowcount = OperateLogDAL.AddAmountChangeLog(logmodel1); if (rowcount < 1) { return(0); } } //撤销对会员领导人的推荐奖和领导奖 if (leaderlist != null) { foreach (var item in leaderlist) { if (item.LType == 0) { rowcount = MemberCapitalDetailDAL.UpdateDynamicInterest(item.MemberID, (0 - item.Amount), item.MemberName, item.MemberPhone); } else if (item.LType == 1) { rowcount = MemberCapitalDetailDAL.UpdateMemberDynamicFreezeMoney(item.MemberID, (0 - item.Amount), item.MemberName, item.MemberPhone); } } } //更新会员统计信息 rowcount = MemberExtendInfoDAL.CancleHelperOrder(model.MemberID, hid); if (rowcount < 1) { return(0); } if (ispipei == 1)//该单已经匹配 { List <MatchOrderModel> matchs = MatchOrderDAL.GetMatchOrderInfo(hid, 0); rowcount = MatchOrderDAL.UpdateStatus(hid, 0);//更改状态为取消 if (rowcount < 1) { return(0); } foreach (var item in matchs)//更改接受帮助订单的状态 { rowcount = AcceptHelpOrderDAL.CancleOrderForHelp(item.AcceptOrderID, item.MatchedMoney); if (rowcount < 1) { return(0); } } } scope.Complete(); result = 1; } return(result); }
/// <summary> /// 更新状态为已取消(前端使用) /// </summary> /// <param name="aid"></param> /// <returns></returns> public int UpdateToCancle(int aid, int ispipei) { int result = 0; using (TransactionScope scope = new TransactionScope()) { //更改单据状态 int rowcount = AcceptHelpOrderDAL.UpdateStatus(aid, 3); if (rowcount < 1) { return(0); } //返还会员对应类型的资金 AcceptHelpOrderModel order = AcceptHelpOrderDAL.GetAcceptOrderInfo(aid); if (order.SourceType == 1)//静态资金 { rowcount = MemberCapitalDetailDAL.UpdateMemberStaticCapital(order.MemberID, order.Amount, order.MemberName, order.MemberPhone); } else if (order.SourceType == 2)//动态资金 { rowcount = MemberCapitalDetailDAL.UpdateMemberDynamicFunds(order.MemberID, order.Amount, order.MemberName, order.MemberPhone); } if (rowcount < 1) { return(0); } //插入会员资金变动日志 AmountChangeLogModel logmodel = new AmountChangeLogModel(); logmodel.MemberID = order.MemberID; logmodel.MemberName = order.MemberName; logmodel.MemberPhone = order.MemberPhone; logmodel.OrderCode = order.OrderCode; logmodel.OrderID = aid; logmodel.ProduceMoney = order.Amount; logmodel.Remark = "会员:" + order.MemberPhone + " 取消提供帮助,返还扣减的资金 " + order.Amount.ToString() + "元"; logmodel.Type = 5; rowcount = OperateLogDAL.AddAmountChangeLog(logmodel); if (rowcount < 1) { return(0); } if (ispipei > 0)//若已经匹配则取消对应单据的信息 { List <MatchOrderModel> matchs = MatchOrderDAL.GetMatchOrderInfo(0, aid); rowcount = MatchOrderDAL.UpdateStatus(0, aid);//更改状态为取消 if (rowcount < 1) { return(0); } foreach (var item in matchs)//更改接受帮助订单的状态 { rowcount = HelpeOrderDAL.CancleOrderForHelp(item.HelperOrderID, item.MatchedMoney); if (rowcount < 1) { return(0); } } } scope.Complete(); result = 1; } return(result); }