/// <summary> /// 后台取消已付款为发货订单 /// </summary> /// <param name="orderCancelCauseId"> /// 订单编码 /// </param> /// <param name="cancelDescription"> /// 取消订单备注 /// </param> /// <param name="refund"> /// 退款对象 /// </param> /// <returns> /// 操作结果:0-订单状态异常,1-操作成功,2-已发货,3-订单已取消、损失或者作废,4-订单未付款 /// </returns> public int OrderCancelRefundByBackstage(int orderCancelCauseId, string cancelDescription, Aftersale_Refund refund) { var orderCancel = new Order_Cancel { OrderID = refund.OrderID, OrderCancelCauseID = orderCancelCauseId, Description = cancelDescription, EmployeeID = refund.EmployeeID }; return this.orderCancelDA.OrderCancelWithRefundByBackstage(orderCancel, refund); }
/// <summary> /// 后台取消已付款未发货订单 /// </summary> /// <param name="orderCancelCauseID"> /// 订单取消原因编码 /// </param> /// <param name="cancelDescription"> /// 订单取消备注 /// </param> /// <param name="refund"> /// 取消对象 /// </param> /// <returns> /// 操作状态 /// </returns> public int OrderCancelRefundByBackstage( int orderCancelCauseID, string cancelDescription, Aftersale_Refund refund) { var state = new OrderCancelService().OrderCancelRefundByBackstage( orderCancelCauseID, cancelDescription, refund); if (state == 1) { // 取消成功时,写订单修改日志 try { var orderStatusLogService = new OrderStatusLogService(); orderStatusLogService.Insert( new Order_Status_Log { EmployeeID = refund.EmployeeID, OrderID = refund.OrderID, Remark = cancelDescription, Status = 6 }, null); } catch (Exception exception) { TextLogger.Instance.Log( string.Format("后台取消订单--订单状态日志写入错误.(订单编码:{0},操作员编码:{1})", refund.OrderID, refund.EmployeeID), Category.Error, exception); } } return state; }
/// <summary> /// 后台取消已付款未发货订单 /// </summary> /// <param name="orderCancel"> /// 订单取消对象 /// </param> /// <param name="refund"> /// 售后退款对象 /// </param> /// <returns> /// 操作结果:0-订单状态异常,1-操作成功,2-已发货,3-订单已取消、损失或者作废,4-订单未付款 /// </returns> public int OrderCancelWithRefundByBackstage(Order_Cancel orderCancel, Aftersale_Refund refund) { /** Create Procedure sp_Order_Cancel_Refund @OrderID int, @OrderCancelCauseID int, @EmployeeID int = default, @UserID int =default, --后台操作,则为空 @CancelDescription ntext=default, @RefundMethodID int, --退款方式编号(1:退至虚拟账户,2:人工退款至指定帐号) @ActualRefundMoney float, --实际退款金额 @RefundDescription nvarchar(512)=default, @CreateTime datetime, @Result int output As * **/ var paras = new List<SqlParameter> { this.SqlServer.CreateSqlParameter( "OrderID", SqlDbType.Int, orderCancel.OrderID, ParameterDirection.Input), this.SqlServer.CreateSqlParameter( "OrderCancelCauseID", SqlDbType.Int, orderCancel.OrderCancelCauseID, ParameterDirection.Input), this.SqlServer.CreateSqlParameter( "EmployeeID", SqlDbType.Int, orderCancel.EmployeeID, ParameterDirection.Input), this.SqlServer.CreateSqlParameter( "CancelDescription", SqlDbType.NVarChar, orderCancel.Description, ParameterDirection.Input), this.SqlServer.CreateSqlParameter( "RefundMethodID", SqlDbType.Int, refund.RefundMethodID, ParameterDirection.Input), this.SqlServer.CreateSqlParameter( "ActualRefundMoney", SqlDbType.Float, refund.ActualRefundMoney, ParameterDirection.Input), this.SqlServer.CreateSqlParameter( "RefundDescription", SqlDbType.NVarChar, refund.RefundDescription, ParameterDirection.Input), this.SqlServer.CreateSqlParameter( "CreateTime", SqlDbType.DateTime, DateTime.Now, ParameterDirection.Input), this.SqlServer.CreateSqlParameter( "Result", SqlDbType.Int, null, ParameterDirection.Output) }; this.SqlServer.ExecuteNonQuery(CommandType.StoredProcedure, "sp_Order_Cancel_Refund", paras, null); return (int)paras.Find(p => p.ParameterName == "Result").Value; }