Exemplo n.º 1
0
        public ActionResult GetCompetitionRow(OrderEditBlock block)
        {
            if (!Request.IsAjaxRequest())
            {
                return(ErrorPage()); //404
            }
            if (SessionManager.UserID == Guid.Empty)
            {
                return(new ContentResult {
                    Content = $"LogOutError"
                });
            }

            if (block == OrderEditBlock.UnitList)
            {
                return(View(ViewName("Order", "_Competition_UnitList_row"), new erp_OrderUnit()));
            }

            if (block == OrderEditBlock.TeamMember)
            {
                return(View(ViewName("Order", "_Competition_TeamMember_row"), new mgt_UserProfile()));
            }

            if (block == OrderEditBlock.OrderItem)
            {
                return(View(ViewName("Order", "_Competition_OrderItem_row"), new EditOrderDetail()));
            }

            return(ErrorPage()); //404
        }
Exemplo n.º 2
0
        public ActionResult GetCompetition(Guid id, OrderEditBlock block = OrderEditBlock.BasicInfo, bool isEditing = false, Guid?OrderDetailID = null)
        {
            if (block != OrderEditBlock.All && !Request.IsAjaxRequest())
            {
                return(ErrorPage()); //404
            }
            if (SessionManager.UserID == Guid.Empty)
            {
                return(new ContentResult {
                    Content = $"LogOutError"
                });
            }

            //訂單
            var order = service.GetView(id, ApplicationHelper.DefaultLanguage);

            //check必須是本人 (Admin可進入)
            if (SessionManager.AccountType == AccountType.Member && order.Order.CreateUser != SessionManager.UserID)
            {
                return(ErrorPage()); //404
            }

            //文章
            var itemModel = itemService.GetView(order.Order.ItemID.Value, ApplicationHelper.DefaultLanguage);

            if (itemModel == null)
            {
                return(ErrorPage());
            }

            //parent文章
            var parentItem = new ItemViewModel();

            if (itemModel.ParentID != Guid.Empty)
            {
                parentItem = itemService.GetView(itemModel.ParentID, ApplicationHelper.DefaultLanguage, DataLevel.VerySimple);
            }

            //篩選部門 for Admin
            if (itemModel.Item.cms_Structure.ContentTypes.HasValue((int)ContentType.Department) && !SessionManager.IsSuperManager)
            {
                if (SessionManager.AccountType == AccountType.Admin && !SessionManager.DepartmentIDs.Contains(itemModel.Item.DepartmentID.Value))
                {
                    return(ErrorPage()); //404
                }
            }

            //文章項目
            var orderItemStructure = itemModel.Item.cms_Structure.ChildStructures.FirstOrDefault(x => x.ItemTypes.HasValue((int)ItemType.OrderItem));
            var orderItems         = new List <ItemProductModel>();

            if (orderItemStructure != null)
            {
                //orderItems = itemService.GetSubOrderList(orderItemStructure.ID, item.Item.ID, ApplicationHelper.DefaultLanguage);
                orderItems = service.GetSubOrderList(order.Order.ItemID.Value);
            }

            // User個資(必填用任一CreateRole)
            var userModel = userService.GetView(order.Order.CreateUser, itemModel.Item.cms_ItemOrderRoleRelation.FirstOrDefault(x => x.ItemOrderRoleType == (int)ContentType.OrderCreateRole)?.mgt_Role);

            order.User                = userModel.User;
            order.UserProfile         = userModel.UserProfile;
            order.ItemViewModel       = itemModel;
            order.SubItemViewModel    = orderItems;
            order.ParentItemViewModel = parentItem;

            // 訂購商品前檢查-完成後可瀏覽 (Admin不檢查)
            var preCheck = new CiResult();

            if (SessionManager.AccountType == AccountType.Member)
            {
                preCheck = service.ItemPreCheck(SessionManager.UserID, itemModel.Item, checkStock: false, checkUser: false);
                if (!preCheck.IsSuccess)// && order.Order.OrderStatus == (int)OrderStatus.Editing
                {
                    SetAlertMessage(preCheck.Message, AlertType.error);
                    isEditing = false;
                }
            }
            else if (SessionManager.AccountType == AccountType.Admin)
            {
                preCheck.IsSuccess = true;
            }

            var editModel = new EditOrderViewModel
            {
                OrderViewModel = order,
                Block          = block,
                IsEditing      = isEditing,
                IsCheckSuccess = preCheck.IsSuccess,
                IsAdmin        = (SessionManager.AccountType == AccountType.Admin),
                OrderDetailID  = OrderDetailID == null ? Guid.Empty : OrderDetailID.Value
            };

            //取得可報名選手
            if (block == OrderEditBlock.DetailMember)
            {
                var orderDetail     = order.OrderDetails.FirstOrDefault(x => x.ID == OrderDetailID);
                var orderDetailItem = itemService.Get(orderDetail.ItemID);
                editModel.TeamMemberAssigns = userService.GetUserAssignToList(order.Order.CreateUser,//SessionManager.UserID
                                                                              noneItemID: order.Order.ItemID,
                                                                              butOrderDetailID: OrderDetailID,
                                                                              noneParentItemID: order.ParentItemViewModel.Item.ID,
                                                                              startBirthday: orderDetailItem.DateLimit);
            }


            string viewName = block == OrderEditBlock.All ? "Competition" : $"_Competition_{block.ToString()}";

            return(View(ViewName("Order", viewName), editModel));
        }