Esempio n. 1
0
        public virtual void InsertRefundOrder(RefundOrder refundOrder)
        {
            if (refundOrder == null)
            {
                throw new ArgumentNullException("refundOrder");
            }

            _refundOrderRepository.Insert(refundOrder);
            _eventPublisher.EntityInserted(refundOrder);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 5
0
 public virtual void DeleteRefundOrder(RefundOrder refundOrder)
 {
     throw new NotImplementedException();
 }