public ResultModel GetReturnProductInfo(SearchReturnProductInfoModel model) { var result = new ResultModel() { Data = new SimpleDataPagedList <ReturnProductInfoModel>(base._database.Db.ReturnProductInfo.All().Where(_database.Db.ReturnProductInfo.OrderDetailsID == model.OrderDetailsID && _database.Db.ReturnProductInfo.UserID == model.UserID), model.PagedIndex, model.PagedSize) }; return(result); }
/// <summary> /// 确认退款 /// </summary> /// <param name="ReturnOrderID">退款标识</param> /// <param name="ReturnStatus">退款状态</param> /// <returns></returns> public JsonResult UpdateReturnProductInfoTK(string ReturnOrderID, int ReturnStatus) { ReturnProductInfoModel model = new ReturnProductInfoModel(); var resultModel = new ResultModel(); if (!string.IsNullOrEmpty(ReturnOrderID)) { model.ReturnOrderID = ReturnOrderID; model.ReturnStatus = ReturnStatus; model.RefundPerson = UserInfo.CurrentUserName; model.RefundDate = DateTime.Now; //resultModel = this._return_GoodsService.UpdateReturnProductInfoTK(model); //修改退货表 状态 5已退款 //订单明细表 退货状态 改成 2已退款 //订单表 退款标识 修改成 已处理 //订单表 状态改成8交易关闭(需要判断订单明细表里的相关产品数据都是已经退款状态) //给退款用户的账户余额添加退款 费用 SearchReturnProductInfoModel spmodel = new SearchReturnProductInfoModel(); spmodel.ReturnOrderID = ReturnOrderID; spmodel.PagedIndex = 0; spmodel.PagedSize = 20; var result = this._return_GoodsService.GetReturnProductInfoList(spmodel); List <ReturnProductInfoModel> ds = result.Data; if (ds.Count > 0) { model = ds[0]; model.ReturnOrderID = ReturnOrderID; model.ReturnStatus = ReturnStatus; model.RefundPerson = UserInfo.CurrentUserName; model.RefundDate = DateTime.Now; } resultModel = this._return_GoodsService.UpdateReturnProductInfoTK(model); var opera = string.Empty; opera += "确认退款 ReturnStatus=5, ReturnOrderID:" + model.ReturnOrderID + ",结果:" + resultModel.IsValid; LogPackage.InserAC_OperateLog(opera, "修改退换货记录"); resultModel = LogPackage.GetResulMessagest(resultModel.IsValid, new List <string> { resultModel.IsValid == true ? "Confirm refund success" : "Confirm refund failed" }); return(Json(resultModel, JsonRequestBehavior.AllowGet)); } else { resultModel = LogPackage.GetResulMessagest(false, new List <string> { "Invalid return or change product record ID" }); } return(Json(resultModel, JsonRequestBehavior.AllowGet)); }
/// <summary> /// 列表Return_Goods /// </summary> /// <param name="model"></param> /// <returns></returns> public JsonResult List(SearchReturnProductInfoModel model) { //SearchAC_OperateLogModel logmodel = new SearchAC_OperateLogModel(); model.PagedIndex = model.PagedIndex == 0 ? 0 : model.PagedIndex; model.PagedSize = model.PagedSize == 0 ? 10 : model.PagedSize; model.LanguageID = ACultureHelper.GetLanguageID; //查询列表 var result = this._return_GoodsService.GetReturnProductInfoList(model); List <ReturnProductInfoModel> ds = result.Data; var data = new { rows = ds, total = result.Data.TotalCount, }; return(Json(data, JsonRequestBehavior.AllowGet)); }
/// <summary> /// Return_Goods加载数据 /// </summary> /// <param name="id"></param> /// <returns></returns> public ActionResult Create(string id) { ReturnProductInfoModel model = new ReturnProductInfoModel(); if (!string.IsNullOrEmpty(id)) { //查询列表 //List<Return_GoodsModel> result = this._return_GoodsService.GetReturn_GoodsById(id).Data; SearchReturnProductInfoModel model1 = new SearchReturnProductInfoModel(); model1.ReturnOrderID = id; model1.PagedIndex = 0; model1.PagedSize = 100; var result = this._return_GoodsService.GetReturnProductInfoList(model1); List <ReturnProductInfoModel> ds = result.Data; if (ds != null && ds.Count > 0) { model = ds[0]; } } return(PartialView(model)); }
/// <summary> /// 获取退换货记录和订单明细关联列表 /// </summary> /// <param name="model"></param> /// <returns></returns> /// wuyf public ResultModel GetReturnProductInfoOrderDetailsList(SearchReturnProductInfoModel model) { var tb = _database.Db.ReturnProductInfo; var where = new SimpleExpression(1, 1, SimpleExpressionType.Equal); // if (!string.IsNullOrEmpty(model.OrderID)) { //查询订单ID where = new SimpleExpression(where, tb.OrderID.Like(model.OrderID.Trim()), SimpleExpressionType.And); } dynamic cl; var query = tb .Query() .LeftJoin(_database.Db.OrderDetails, out cl).On(_database.Db.OrderDetails.OrderID == tb.OrderID) .Select( tb.ReturnOrderID, tb.OrderID, tb.UserID, tb.ProductId, tb.ProductSnapshotID, tb.ReturnType, tb.ReturnStatus, tb.TradeAmount, tb.RefundAmount, tb.ReturntNumber, tb.ReasonType, tb.Discription, tb.ReturnAddress, tb.ReceiverName, tb.ReceiverMobile, tb.ReceiverTel, tb.MerchantReturnAddress, tb.ReturnText, tb.CreateTime, tb.UpdateTime, tb.AuditUser, tb.Receiver, tb.DeliveryDate, tb.RefundPerson, tb.RefundDate, cl.IsReturn, cl.Quantity, cl.OrderDetailsID ) .Where(where) .OrderByCreateTimeDescending(); var result = new ResultModel { Data = new SimpleDataPagedList <ReturnProductInfoModel>(query, model.PagedIndex, model.PagedSize) }; return(result); }
/// <summary> /// 退换货记录(确认退款) /// </summary> /// <param name="model">退货记录模型</param> /// <returns>是否修改成功</returns> /// wuyf public ResultModel UpdateReturnProductInfoTK(ReturnProductInfoModel model) { //修改退货表 状态 5已退款 //订单明细表 退货状态 改成 2已退款 //订单表 退款标识 修改成 已处理 //订单表 状态改成8交易关闭(需要判断订单明细表里的相关产品数据都是已经退款状态) //给退款用户的账户余额添加退款 费用 var result = new ResultModel(); #region 订单表 状态改成8交易关闭(需要判断订单明细表里的相关产品数据都是已经退款状态) var bl = true;//是否把当前订单的状态改成 8已关闭 SearchReturnProductInfoModel srpm = new SearchReturnProductInfoModel(); srpm.OrderID = model.OrderID; srpm.PagedIndex = 0; srpm.PagedSize = 100; //获取退换货记录和订单明细关联列表 List <ReturnProductInfoModel> list = GetReturnProductInfoList(srpm).Data;// GetReturnProductInfoOrderDetailsList(srpm).Data; //订单明细 List <OrderDetails> orderDetails = _database.Db.OrderDetails.FindAll(_database.Db.OrderDetails.OrderID == model.OrderID).ToList <OrderDetails>(); //判断订单详情与退款记录条数是否一致(是一个订单多个商品,还是一个订单一个商品) var factoryCount = orderDetails.Count(); //if (list.Count == factoryCount) //{ // if (list.Count == 1) // { // ReturnProductInfoModel rpmodel = list[0];//只有一条数据时,订单明细主键和退货数量跟明细数量相等,订单表的状态可以改为 8已关闭 // //该订单商品已退完 // if (rpmodel.OrderDetailsID == model.OrderDetailsID && rpmodel.ReturntNumber < rpmodel.Quantity) // { // bl = false; // } // } // else // { // for (int i = 0; i < list.Count; i++) // { // ReturnProductInfoModel rpmodel1 = list[i]; // //ReturnProductInfoModel returndetail = returnList.Where(x => x.OrderDetailsID == detail.OrderDetailsID).FirstOrDefault(); // if ((rpmodel1.OrderDetailsID != model.OrderDetailsID && rpmodel1.IsReturn != 2) || (rpmodel1.OrderDetailsID == model.OrderDetailsID && rpmodel1.ReturntNumber < rpmodel1.Quantity))//状态 2 是已退款 // { // //退出循环,不修改订单状态 为 8交易关闭 // //该订单还有为退款的商品 // bl = false; break; // } // } // } //} //else //{ // bl = false; //} //zhoub 20160129 edit if (list.Count > 0) { //查找当前退款订单产品数量是否全部退完 ReturnProductInfoModel rpim = list.FindAll(a => a.OrderDetailsID == model.OrderDetailsID).FirstOrDefault(); if (rpim.ReturntNumber != rpim.Quantity) { bl = false; } //判断之前退款是否有未确认退款或是产品未全部退完的 for (int i = 0; i < list.Count; i++) { ReturnProductInfoModel rpmodel = list[i]; if (rpmodel.OrderDetailsID != model.OrderDetailsID) { if (rpmodel.IsReturn != 2 || rpmodel.ReturntNumber != rpmodel.Quantity) { bl = false; break; } } } } #endregion using (var tx1 = _database.Db.BeginTransaction()) { try { //退款表 修改状态成(5) tx1.ReturnProductInfo.UpdateByReturnOrderID(ReturnOrderID: model.ReturnOrderID, RefundPerson: model.RefundPerson, ReturnStatus: model.ReturnStatus, RefundDate: model.RefundDate); //订单明细表 退货状态 改成 2已退款 tx1.OrderDetails.UpdateByOrderDetailsID(OrderDetailsID: model.OrderDetailsID, IsReturn: 2); if (bl) { //订单表 订单状态 修改成 8已关闭 (需要判断订单明细表里的相关产品数据都是已经退款状态) tx1.Order.UpdateByOrderID(OrderID: model.OrderID, OrderStatus: 8); } #region 给用户账户充值金额,金额等于退款金额 srpm.ReturnOrderID = model.ReturnOrderID; //根据退款主键查询退款单子 //List<ReturnProductInfoModel> list1 = GetReturnProductInfoList(srpm).Data; //ReturnProductInfoModel rmodel = list[0]; ZJ_UserBalanceModel zjmodel = new ZJ_UserBalanceModel(); zjmodel.Account = model.Account; zjmodel.AddOrCutAmount = model.RefundAmount; zjmodel.AddOrCutType = 4; zjmodel.CreateBy = model.RefundPerson; zjmodel.IsDisplay = 1; zjmodel.Phone = model.Phone; zjmodel.RealName = model.RealName; zjmodel.Remark = "退货中的退款金额"; zjmodel.UserID = model.UserID; zjmodel.OrderNo = model.OrderID; UpdateZJ_UserBalance(zjmodel, tx1); #endregion tx1.Commit(); //订单表 退款标识 修改成 已处理(2) //tx1.Order.UpdateByOrderID(OrderID: model.OrderID, RefundFlag: 2); IsStust(model); } catch (Exception ex) { tx1.Rollback(); result.IsValid = false; result.Messages.Add(ex.Message); } } return(result); }
/// <summary> /// 获取退换货记录列表 /// </summary> /// <param name="parentId">父Id</param> /// <returns>退换货记录列表</returns> /// wuyf public ResultModel GetReturnProductInfoList(SearchReturnProductInfoModel model) { var tb = _database.Db.ReturnProductInfo; var where = new SimpleExpression(1, 1, SimpleExpressionType.Equal); // if (model.ReturnOrderID != null && !string.IsNullOrEmpty(model.ReturnOrderID.Trim())) { //主键 where = new SimpleExpression(where, tb.ReturnOrderID == model.ReturnOrderID, SimpleExpressionType.And); } if (!string.IsNullOrEmpty(model.OrderID)) { //查询订单ID where = new SimpleExpression(where, tb.OrderID.Like("%" + model.OrderID.Trim() + "%"), SimpleExpressionType.And); } if (model.UserID > 0) { //用户ID where = new SimpleExpression(where, tb.UserID == model.UserID, SimpleExpressionType.And); } if (model.Phone != null && !string.IsNullOrEmpty(model.Phone.Trim())) { //用户手机 where = new SimpleExpression(where, _database.Db.YH_User.Phone.Like("%" + model.Phone.Trim() + "%"), SimpleExpressionType.And); } if (model.Email != null && !string.IsNullOrEmpty(model.Email.Trim())) { //用户手机 where = new SimpleExpression(where, _database.Db.YH_User.Email.Like("%" + model.Email.Trim() + "%"), SimpleExpressionType.And); } if (model.ReturnStatus > 0) { //状态 (1:退款申请中(会员撤消操作),2:审核通过(用户发货(系统上不会体现),后台确认收货操作),3申请已驳回,4已收货(后台退款操作),5已退款,6申请已撤消) where = new SimpleExpression(where, tb.ReturnStatus == model.ReturnStatus, SimpleExpressionType.And); } if (model.ReturnType > 0) { //退换货类型 1退货,2换货,3返修 where = new SimpleExpression(where, tb.ReturnType == model.ReturnType, SimpleExpressionType.And); } dynamic cl, pc, mer, pro, detailsLang; var query = tb .Query() .LeftJoin(_database.Db.OrderDetails, out cl).On(_database.Db.OrderDetails.OrderDetailsID == tb.OrderDetailsID) .LeftJoin(_database.Db.OrderDetails_lang, out detailsLang).On(detailsLang.OrderDetailsID == cl.OrderDetailsID && detailsLang.LanguageID == model.LanguageID) .LeftJoin(_database.Db.YH_User, out pc).On(_database.Db.YH_User.UserID == tb.UserID) .LeftJoin(_database.Db.Product, out pro).On(pro.ProductId == tb.ProductId) .LeftJoin(_database.Db.YH_MerchantInfo, out mer).On(mer.MerchantID == pro.MerchantID) .Select( tb.ReturnOrderID.Distinct(), tb.OrderID, tb.UserID, tb.ProductId, tb.ProductSnapshotID, tb.ReturnType, tb.ReturnStatus, tb.TradeAmount, tb.RefundAmount, tb.ReturntNumber, tb.ReasonType, tb.Discription, tb.ReturnAddress, tb.ReceiverName, tb.ReceiverMobile, tb.ReceiverTel, tb.MerchantReturnAddress, tb.ReturnText, tb.CreateTime, tb.UpdateTime, tb.AuditUser, tb.Receiver, tb.DeliveryDate, tb.RefundPerson, tb.RefundDate, detailsLang.ProductName, cl.CostPrice, cl.SalesPrice, pc.Account, pc.Phone, pc.NickName, pc.RealName, pc.Email, cl.SkuName, cl.OrderDetailsID, cl.IsReturn, cl.Quantity, mer.ShopName ) .Where(where) .OrderByCreateTimeDescending(); var result = new ResultModel { Data = new SimpleDataPagedList <ReturnProductInfoModel>(query, model.PagedIndex, model.PagedSize) }; return(result); }