public virtual void InsertRefundOrder(RefundOrder refundOrder) { if (refundOrder == null) { throw new ArgumentNullException("refundOrder"); } _refundOrderRepository.Insert(refundOrder); _eventPublisher.EntityInserted(refundOrder); }
public virtual void UpdateRefundOrder(RefundOrder refundOrder) { if (refundOrder == null) { throw new ArgumentNullException("refundOrder"); } _refundOrderRepository.Update(refundOrder); //event notification _eventPublisher.EntityUpdated(refundOrder); }
public ActionResult CreateOrUpdateReturnRequest(RefundOrderModel model) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageReturnRequests)) { return(AccessDeniedView()); } if (ModelState.IsValid) { if (model.RefundOrderId > 0) { var refundOrder = _refundOrderService.GetRefundOrderById(model.RefundOrderId); refundOrder.ReasonForRefund = model.ReasonForRefund; refundOrder.RefundAmount = model.RefundAmount; refundOrder.OperatorId = _workContext.CurrentCustomer.Id; refundOrder.OperatorEmail = _workContext.CurrentCustomer.Email; refundOrder.OperateTime = DateTime.Now; _refundOrderService.UpdateRefundOrder(refundOrder); string[] orderItemIds = model.ChoseOrderItemIds.TrimEnd(',').Split(','); var refundOrderItems = _refundOrderItemService.GetAllRefundOrderItems(model.OrderId); for (int i = 0; i < refundOrderItems.Count; i++) { _refundOrderItemService.DeleteRefundOrderItem(refundOrderItems[i]); } foreach (var item in orderItemIds) { RefundOrderItem refundorderItem = new RefundOrderItem(); refundorderItem.OrderId = model.OrderId; refundorderItem.OrderItemId = Convert.ToInt32(item); _refundOrderItemService.InsertRefundOrderItem(refundorderItem); SuccessNotification("修改退货请求成功"); } } else { RefundOrder refundOrder = new RefundOrder(); refundOrder.OrderId = model.OrderId; refundOrder.ReasonForRefund = model.ReasonForRefund; refundOrder.RefundAmount = model.RefundAmount; refundOrder.OperatorId = _workContext.CurrentCustomer.Id; refundOrder.OperatorEmail = _workContext.CurrentCustomer.Email; refundOrder.OperateTime = DateTime.Now; _refundOrderService.InsertRefundOrder(refundOrder); string[] orderItemIds = model.ChoseOrderItemIds.TrimEnd(',').Split(','); foreach (var item in orderItemIds) { RefundOrderItem refundorderItem = new RefundOrderItem(); refundorderItem.OrderId = model.OrderId; refundorderItem.OrderItemId = Convert.ToInt32(item); _refundOrderItemService.InsertRefundOrderItem(refundorderItem); } var order = _orderService.GetOrderById(model.OrderId); order.OrderStatus = OrderStatus.Complete; _orderService.UpdateOrder(order); SuccessNotification("添加退货请求成功"); } return(RedirectToAction("List")); } else { var orderItems = _orderService.GetAllOrderItems(model.OrderId, null, null, null, null, null, null); if (orderItems == null) { return(new HttpUnauthorizedResult()); } foreach (var item in orderItems) { SelectListItem selectItem = new SelectListItem(); selectItem.Selected = true; selectItem.Value = item.Id.ToString(); selectItem.Text = item.Product.Name; model.SelectList.Add(selectItem); } model.RefundAmount = 0; } return(View(model)); }
public static List <RefundOrder> Filter(string TextSearch, int Status, string RefundFee, string CreatedBy, string CreatedDate) { var list = new List <RefundOrder>(); var sql = new StringBuilder(); sql.AppendLine(String.Format("SELECT Ord.ID, Ord.CustomerName, Ord.CustomerPhone, Customer.Nick, Ord.CustomerID, Ord.Status, Ord.TotalPrice, Ord.TotalRefundFee, Ord.CreatedBy, Ord.CreatedDate, Ord.RefundNote, Ord.OrderSaleID, SUM(ISNULL(OrdDetail.Quantity, 0)) AS Quantity ")); sql.AppendLine(String.Format("FROM tbl_RefundGoods AS Ord")); sql.AppendLine(String.Format("INNER JOIN tbl_RefundGoodsDetails AS OrdDetail")); sql.AppendLine(String.Format("ON Ord.ID = OrdDetail.RefundGoodsID")); sql.AppendLine(String.Format("INNER JOIN tbl_Customer AS Customer")); sql.AppendLine(String.Format("ON Ord.CustomerID = Customer.ID")); sql.AppendLine(String.Format("WHERE 1 = 1")); if (Status > 0) { sql.AppendLine(String.Format(" AND Ord.Status = {0}", Status)); } if (RefundFee != "") { if (RefundFee == "yes") { sql.AppendLine(String.Format(" AND Ord.TotalRefundFee > 0")); } else { sql.AppendLine(String.Format(" AND Ord.TotalRefundFee = 0")); } } if (TextSearch != "") { string TextSearchName = '"' + TextSearch + '"'; sql.AppendLine(String.Format(" AND ( CONTAINS(Ord.CustomerName, '{1}') OR CONTAINS(Customer.Nick, '{1}') OR (Ord.CustomerPhone = '{0}') OR (convert(nvarchar, Ord.ID) = '{0}') OR (convert(nvarchar, Ord.OrderSaleID) = '{0}') OR (OrdDetail.SKU LIKE '{0}%') )", TextSearch, TextSearchName)); } if (CreatedBy != "") { sql.AppendLine(String.Format(" AND Ord.CreatedBy = '{0}'", CreatedBy)); } if (CreatedDate != "") { DateTime fromdate = DateTime.Today; DateTime todate = DateTime.Now; switch (CreatedDate) { case "today": fromdate = DateTime.Today; todate = DateTime.Now; break; case "yesterday": fromdate = fromdate.AddDays(-1); todate = DateTime.Today; break; case "beforeyesterday": fromdate = DateTime.Today.AddDays(-2); todate = DateTime.Today.AddDays(-1); break; case "week": int days = DateTime.Today.DayOfWeek == DayOfWeek.Sunday ? 7 : (int)DateTime.Today.DayOfWeek; fromdate = fromdate.AddDays(-days + 1); todate = DateTime.Now; break; case "thismonth": fromdate = new DateTime(fromdate.Year, fromdate.Month, 1); todate = DateTime.Now; break; case "lastmonth": var thismonth = new DateTime(fromdate.Year, fromdate.Month, 1); fromdate = thismonth.AddMonths(-1); todate = thismonth; break; case "7days": fromdate = DateTime.Today.AddDays(-6); todate = DateTime.Now; break; case "30days": fromdate = DateTime.Today.AddDays(-29); todate = DateTime.Now; break; } sql.AppendLine(String.Format(" AND (CONVERT(datetime, Ord.CreatedDate, 121) BETWEEN CONVERT(datetime, '{0}', 121) AND CONVERT(datetime, '{1}', 121))", fromdate.ToString(), todate.ToString())); } sql.AppendLine(String.Format("GROUP BY Ord.ID, Ord.CustomerName, Ord.CustomerPhone, Customer.Nick, Ord.CustomerID, Ord.Status, Ord.TotalPrice, Ord.TotalRefundFee, Ord.CreatedBy, Ord.CreatedDate, Ord.RefundNote, Ord.OrderSaleID")); sql.AppendLine(String.Format("ORDER BY Ord.ID DESC")); var reader = (IDataReader)SqlHelper.ExecuteDataReader(sql.ToString()); while (reader.Read()) { var entity = new RefundOrder(); entity.ID = Convert.ToInt32(reader["ID"]); entity.CustomerName = reader["CustomerName"].ToString(); entity.CustomerPhone = reader["CustomerPhone"].ToString(); entity.CustomerID = Convert.ToInt32(reader["CustomerID"]); entity.Nick = reader["Nick"].ToString(); entity.Status = Convert.ToInt32(reader["Status"]); entity.TotalPrice = Convert.ToInt32(reader["TotalPrice"]); entity.TotalRefundFee = Convert.ToInt32(reader["TotalRefundFee"]); entity.CreatedBy = reader["CreatedBy"].ToString(); entity.CreatedDate = Convert.ToDateTime(reader["CreatedDate"]); if (reader["RefundNote"] != DBNull.Value) { entity.RefundNote = reader["RefundNote"].ToString(); } if (reader["OrderSaleID"] != DBNull.Value) { entity.OrderSaleID = Convert.ToInt32(reader["OrderSaleID"]); } entity.Quantity = Convert.ToInt32(reader["Quantity"]); list.Add(entity); } reader.Close(); return(list); }
public virtual void DeleteRefundOrder(RefundOrder refundOrder) { throw new NotImplementedException(); }