/// <summary> /// 确认收货 /// </summary> /// <param name="ProductCommentId">评论ID</param> /// <returns></returns> public JsonResult UpdateReturnProductInfoSH(string ReturnOrderID, int ReturnStatus) { ReturnProductInfoModel model = new ReturnProductInfoModel(); var resultModel = new ResultModel(); if (!string.IsNullOrEmpty(ReturnOrderID)) { model.ReturnOrderID = ReturnOrderID; model.Receiver = UserInfo.CurrentUserName; model.ReturnStatus = ReturnStatus; model.DeliveryDate = DateTime.Now; var result = this._return_GoodsService.UpdateReturnProductInfoSH(model); var opera = string.Empty; opera += "确认收货 ReturnStatus=4, ReturnOrderID:" + model.ReturnOrderID + ",结果:" + result.IsValid; LogPackage.InserAC_OperateLog(opera, "确认收货"); resultModel = LogPackage.GetResulMessagest(result.IsValid, new List <string> { result.IsValid == true ? "Confirm received success" : "Confirm received failed" }); return(Json(resultModel, JsonRequestBehavior.AllowGet)); } else { resultModel = LogPackage.GetResulMessagest(false, new List <string> { "Confirm receipt ID is invalid" }); } return(Json(resultModel, JsonRequestBehavior.AllowGet)); }
public ActionResult Create(ReturnProductInfoModel model) { if (ModelState.IsValid) { ResultModel resultModel = new ResultModel(); model.UpdateTime = DateTime.Now; model.AuditUser = UserInfo.CurrentUserName; if (model.ReturnStatus == 2) { //通过,只修改退货表状态 resultModel = this._return_GoodsService.UpdateReturnProductInfo(model); } else if (model.ReturnStatus == 3) { model.RefundAmount = 0;//驳回不需要保存退款金额 //申请驳回 修改退货表状态 和 订单表 退款标识 修改成 已处理 和 订单明细表 退货状态 改成 审核未通过 resultModel = this._return_GoodsService.UpdateReturnProductInfoBH(model); } resultModel.Messages = new List <string> { resultModel.IsValid == true ? "Review success!" : "Review failed!" }; var opera = string.Empty; //opera += "修改状态UpdateTime:" + model.UpdateTime + ",ReturnStatus:" + model.ReturnStatus + ",ReturnOrderID:" + model.ReturnOrderID + ",ReturnText:" + model.ReturnText + ",RefundAmount" + model.RefundAmount + ",结果:" + result.IsValid; opera = string.Format("审核退换货记录:{0},操作结果:{1}", JsonConverts.ToJson(model), resultModel.Messages); LogPackage.InserAC_OperateLog(opera, "审核退换货记录"); return(Json(resultModel, JsonRequestBehavior.AllowGet)); } return(PartialView(model)); }
/// <summary> /// 取消退換貨 /// 黃主霞 2016-01-20 /// </summary> /// <param name="model">退换货记录模型</param> /// <param name="languageID">语言ID(默认繁体 4)</param> /// <returns>是否成功</returns> public ResultModel CancelReturnProductInfo(ReturnProductInfoModel model, int languageID = 4) { ResultModel result = new ResultModel(); var isReturn = _database.Db.OrderDetails.FindAllByOrderDetailsID(model.OrderDetailsID).Select(_database.Db.OrderDetails.IsReturn).ToScalarOrDefault(); if (isReturn != 1) //只有处于退款中才能进行取消退款操作 { result.IsValid = false; result.Messages = new List <string> { "订单处于无法取消状态" }; } else { base._database.Db.ReturnProductInfo.Delete(ReturnOrderID: model.ReturnOrderID); result.Data = _database.Db.OrderDetails.UpdateByOrderDetailsID(OrderDetailsID: model.OrderDetailsID, IsReturn: 0); if (result.Data > 0) { //修改订单退款状态 _database.Db.Order.UpdateByOrderID(OrderID: model.OrderID, RefundFlag: 0); result.Messages = new List <string> { CultureHelper.GetAPPLangSgring("MY_APPLICATION_HAS_BEEN_SUBMITTED", languageID) + "." }; } else { result.IsValid = false; result.Messages = new List <string> { CultureHelper.GetAPPLangSgring("ACCOUNT_MY_ORDERRETURNPRODUCT_FAIL", languageID) + "." }; } } return(result); }
/// <summary> /// 删除Return_Goods /// </summary> /// <param name="ProductCommentId">评论ID</param> /// <returns></returns> public JsonResult DeleteSP_ProductComment(string ReturnOrderID) { ReturnProductInfoModel model = new ReturnProductInfoModel(); var resultModel = new ResultModel(); if (!string.IsNullOrEmpty(ReturnOrderID)) { model.ReturnOrderID = ReturnOrderID; var result = this._return_GoodsService.DeleteReturnProductInfo(model); var opera = string.Empty; opera += "删除退换货记录 ReturnOrderID:" + model.ReturnOrderID + ",结果:" + result.IsValid; LogPackage.InserAC_OperateLog(opera, "修改退换货记录"); resultModel = LogPackage.GetResulMessagest(result.IsValid, new List <string> { result.IsValid == true ? "Delete success" : "Delete 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> /// 删除退换货记录 /// </summary> /// <param name="model">退货记录模型</param> /// <returns>是否删除成功</returns> /// wuyf public ResultModel DeleteReturnProductInfo(ReturnProductInfoModel model) { var result = new ResultModel(); using (var tx1 = _database.Db.BeginTransaction()) { try { tx1.ReturnProductInfo.Delete(ReturnOrderID: model.ReturnOrderID); tx1.OrderDetails.UpdateByOrderDetailsID(OrderDetailsID: model.OrderDetailsID, IsReturn: 0, Iscomment: 0); tx1.Commit(); result.IsValid = true; } catch (Exception ex) { tx1.Rollback(); result.IsValid = false; result.Messages = new List <string> { ex.Message }; } } return(result); }
/// <summary> /// 审核退换货记录(申请驳回) /// </summary> /// <param name="model">退货记录模型</param> /// <returns>是否修改成功</returns> /// wuyf public ResultModel UpdateReturnProductInfoBH(ReturnProductInfoModel model) { var result = new ResultModel(); using (var tx1 = _database.Db.BeginTransaction()) { try { //退款表 修改状态成(3) tx1.ReturnProductInfo.UpdateByReturnOrderID(ReturnOrderID: model.ReturnOrderID, ReturnText: model.ReturnText, RefundAmount: model.RefundAmount, ReturnStatus: model.ReturnStatus, AuditUser: model.AuditUser, UpdateTime: model.UpdateTime); //订单表 退款标识 修改成 已处理(2) //订单明细表 退货状态 改成 审核未通过(3) tx1.OrderDetails.UpdateByOrderDetailsID(OrderDetailsID: model.OrderDetailsID, IsReturn: 3); tx1.Commit(); IsStust(model); } catch (Exception ex) { tx1.Rollback(); result.IsValid = false; result.Messages.Add(ex.Message); } } 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> /// 收货退换货记录(收货) /// </summary> /// <param name="model">退货记录模型</param> /// <returns>是否修改成功</returns> /// wuyf public ResultModel UpdateReturnProductInfoSH(ReturnProductInfoModel model) { var result = new ResultModel() { Data = base._database.Db.ReturnProductInfo.UpdateByReturnOrderID(ReturnOrderID: model.ReturnOrderID, Receiver: model.Receiver, ReturnStatus: model.ReturnStatus, DeliveryDate: model.DeliveryDate) }; result.IsValid = result.Data > 0 ? true : false; return(result); }
/// <summary> /// 修改订单表退款状态 2 已完成 /// </summary> /// <param name="model"></param> /// <param name="tx1"></param> private void IsStust(ReturnProductInfoModel model) { //过滤掉自己和相同订单存在退款流程的未退款状态 var returnCount = _database.Db.ReturnProductInfo.GetCount(_database.Db.ReturnProductInfo.ReturnOrderID != model.ReturnOrderID && _database.Db.ReturnProductInfo.OrderID == model.OrderID && (_database.Db.ReturnProductInfo.ReturnStatus == 1 || _database.Db.ReturnProductInfo.ReturnStatus == 2 || _database.Db.ReturnProductInfo.ReturnStatus == 4)); //不存在,修改,存在不修改 if (returnCount == 0) { _database.Db.Order.UpdateByOrderID(OrderID: model.OrderID, RefundFlag: 2); } }
/// <summary> /// 审核退换货记录(通过) /// </summary> /// <param name="model">退货记录模型</param> /// <returns>是否修改成功</returns> /// wuyf public ResultModel UpdateReturnProductInfo(ReturnProductInfoModel model) { var result = new ResultModel() { Data = base._database.Db.ReturnProductInfo.UpdateByReturnOrderID(ReturnOrderID: model.ReturnOrderID, ReturnText: model.ReturnText, RefundAmount: model.RefundAmount, ReturnStatus: model.ReturnStatus, AuditUser: model.AuditUser, UpdateTime: model.UpdateTime) }; result.IsValid = result.Data > 0 ? true : false; return(result); }
/// <summary> /// 添加退换货记录 /// zhoub 20150820 /// </summary> /// <param name="model">退换货记录模型</param> /// <returns>是否成功</returns> public ResultModel AddReturnProductInfo(ReturnProductInfoModel model, int languageID) { ResultModel result = new ResultModel(); var isReturn = _database.Db.OrderDetails.FindAllByOrderDetailsID(model.OrderDetailsID).Select(_database.Db.OrderDetails.IsReturn).ToScalarOrDefault(); if (isReturn > 0) { result.IsValid = false; result.Messages = new List <string> { CultureHelper.GetAPPLangSgring("ACCOUNT_My_OrderReturnProductInfo_SaveErrorMessage", languageID) + "." }; } else { isReturn = _database.Db.Order.FindAllByOrderID(model.OrderID).Select(_database.Db.Order.OrderStatus).ToScalarOrDefault(); if (isReturn == 5) { _database.Db.ReturnProductInfo.Insert(model); result.Data = _database.Db.OrderDetails.UpdateByOrderDetailsID(OrderDetailsID: model.OrderDetailsID, IsReturn: 1); if (result.Data > 0) { //修改订单退款状态 _database.Db.Order.UpdateByOrderID(OrderID: model.OrderID, RefundFlag: 1); result.Messages = new List <string> { CultureHelper.GetAPPLangSgring("MY_APPLICATION_HAS_BEEN_SUBMITTED", languageID) + "." }; } else { result.IsValid = false; result.Messages = new List <string> { CultureHelper.GetAPPLangSgring("ACCOUNT_MY_ORDERRETURNPRODUCT_FAIL", languageID) + "." }; } } else { result.IsValid = false; result.Messages = new List <string> { CultureHelper.GetAPPLangSgring("ACCOUNT_MY_ORDERRETURNPRODUCT_FAIL", languageID) + "." }; } } return(result); }
/// <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> /// 用户申请撤消退换货记录 /// zhoub 20150815 /// </summary> /// <param name="model">退货记录模型</param> /// <returns>是否修改成功</returns> public ResultModel UndoReturnProductInfoBH(ReturnProductInfoModel model, int languageID) { var result = new ResultModel(); var info = _database.Db.ReturnProductInfo.FindAllByReturnOrderID(model.ReturnOrderID).ToList <ReturnProductInfoModel>(); model.ReturnStatus = 6; model.UpdateTime = DateTime.Now; model.OrderID = info[0].OrderID; model.OrderDetailsID = info[0].OrderDetailsID; if (info[0].ReturnStatus == 1 || info[0].ReturnStatus == 3) { using (var tx1 = _database.Db.BeginTransaction()) { try { //退款表 修改状态成(6) tx1.ReturnProductInfo.UpdateByReturnOrderID(ReturnOrderID: model.ReturnOrderID, ReturnStatus: model.ReturnStatus, UpdateTime: model.UpdateTime); //订单明细表 退货状态 改成 审核未通过(3) tx1.OrderDetails.UpdateByOrderDetailsID(OrderDetailsID: model.OrderDetailsID, IsReturn: 3); tx1.Commit(); IsStust(model); result.Messages.Add(CultureHelper.GetAPPLangSgring("ACCOUNT_RIGHTS_INDEX_UNDOSUCCESS", languageID) + "."); } catch (Exception ex) { tx1.Rollback(); result.IsValid = false; result.Messages.Add(CultureHelper.GetAPPLangSgring("ACCOUNT_RIGHTS_INDEX_UNDOERROR", languageID) + "."); } } } else { result.IsValid = false; result.Messages.Add(CultureHelper.GetAPPLangSgring("ACCOUNT_RIGHTS_INDEX_UNDOERROR", languageID) + "."); } 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> /// <returns></returns> public BackMessage GenerateList(OderModel model) { var result = new BackMessage(); result.status = 0; ExceptionLogModel exceptionLogModel = new ExceptionLogModel(); exceptionLogModel.ServiceName = "会员购物订单返现订单生成服务"; exceptionLogModel.CreateBy = "系统服务"; List <OrderDetails> orderDetails = _database.Db.OrderDetails.FindAll(_database.Db.OrderDetails.OrderID == model.OrderID).ToList <OrderDetails>(); int tuiCount = orderDetails.Count(x => x.IsReturn == 2);//是否有退款的订单明细 //if (model.RefundFlag != 0)//存在退款 //{ // orderDetails = orderDetails.FindAll(x => x.IsReturn == 3 || x.IsReturn == 0); //} // orderDetails = orderDetails.FindAll(x => x.IsReturn == 3 || x.IsReturn == 0); if (orderDetails != null) { List <ZJ_RebateInfo> zj_detils = new List <ZJ_RebateInfo>(); if (tuiCount == 0) { foreach (OrderDetails detail in orderDetails) { //商品返现金额= 销售价 * 数量 decimal tmoney = detail.SalesPrice * detail.Quantity; zj_detils.Add(FormartZJ_RebateInfo(tmoney, model, detail)); } } else { List <ReturnProductInfoModel> returnList = GetReturnProductListByOrderId(model.OrderID); foreach (OrderDetails detail in orderDetails) { // int yituiCount = returnList.Count(x => x.OrderDetailsID == detail.OrderDetailsID); ReturnProductInfoModel returndetail = returnList.Where(x => x.OrderDetailsID == detail.OrderDetailsID).FirstOrDefault(); if (returndetail != null) { int num = detail.Quantity - returndetail.ReturntNumber; if (num > 0) { decimal tmoney = detail.SalesPrice * num; //商品返现金额= 销售价 * 数量 zj_detils.Add(FormartZJ_RebateInfo(tmoney, model, detail)); } } else { //商品返现金额= 销售价 * 数量 decimal tmoney = detail.SalesPrice * detail.Quantity; zj_detils.Add(FormartZJ_RebateInfo(tmoney, model, detail)); } } } if (SetCashBackList(model, zj_detils)) { result.status = 1; } } else { exceptionLogModel.HandleId = model.OrderID; exceptionLogModel.Status = 1; exceptionLogModel.ResultType = 1; exceptionLogModel.Message = string.Format("处理订单【{0}】的返现订单生成失败,获取订单详情失败", model.OrderID); exceptionLogService.Add(exceptionLogModel); _logger.Error(typeof(ZJ_RebateService), string.Format("处理订单【{0}】的返现订单生成失败,获取订单详情失败", model.OrderID)); } return(result); }