Пример #1
0
        //我的罚款

        /*
         * 注意返回的模型类为IEnumerable<Borrow>,而非IEnumerable<Fine>
         */
        public ActionResult MyFine(Reader reader, string returnUrl)
        {
            if (reader.Id == 0)
            {
                return(RedirectToAction("Login", "Reader"));
            }
            else
            {
                borrowProcessor.ProcessShowFine(reader);
                IEnumerable <Borrow> borrows = repository.Borrows.Where(u => u.ReaderId == reader.Id && u.DateShouldBeReturn < DateTime.Now);
                FineViewModel        fv      = new FineViewModel(borrows);
                return(View(fv));
            }
        }
        protected override void CreatePopupActions()
        {
            PopupActionsList.Add(
                new JournalAction(
                    "Перейти в недовезённый заказ",
                    selectedItems => true,
                    selectedItems => true,
                    selectedItems =>
            {
                var selectedNodes = selectedItems.OfType <UndeliveredOrderJournalNode>();
                var selectedNode  = selectedNodes.FirstOrDefault();

                if (selectedNode != null)
                {
                    _gtkDlgOpener.OpenOrderDlg(this, selectedNode.OldOrderId);
                }
            }
                    )
                );

            PopupActionsList.Add(
                new JournalAction(
                    "Перейти в новый заказ",
                    selectedItems =>
            {
                var selectedNodes = selectedItems.OfType <UndeliveredOrderJournalNode>();
                var selectedNode  = selectedNodes.FirstOrDefault();

                return(selectedNode != null && selectedNode.NewOrderId > 0);
            },
                    selectedItems => true,
                    selectedItems =>
            {
                var selectedNodes = selectedItems.OfType <UndeliveredOrderJournalNode>();
                var selectedNode  = selectedNodes.FirstOrDefault();

                if (selectedNode != null)
                {
                    _gtkDlgOpener.OpenOrderDlg(this, selectedNode.NewOrderId);
                }
            }
                    )
                );

            PopupActionsList.Add(
                new JournalAction(
                    "Закрыть недовоз",
                    selectedItems =>
            {
                var selectedNodes = selectedItems.OfType <UndeliveredOrderJournalNode>();
                var selectedNode  = selectedNodes.FirstOrDefault();

                return(selectedNode != null && selectedNode.UndeliveryStatus != UndeliveryStatus.Closed && _canCloseUndeliveries);
            },
                    selectedItems => true,
                    selectedItems =>
            {
                var selectedNodes = selectedItems.OfType <UndeliveredOrderJournalNode>();
                var selectedNode  = selectedNodes.FirstOrDefault();

                if (selectedNode == null)
                {
                    return;
                }

                UndeliveredOrder undeliveredOrder = UoW.GetById <UndeliveredOrder>(selectedNode.Id);
                undeliveredOrder.Close(CurrentEmployee);
                UoW.Save(undeliveredOrder);
                UoW.Commit();
            }
                    )
                );

            PopupActionsList.Add(
                new JournalAction(
                    "Создать штраф",
                    selectedItems => true,
                    selectedItems => true,
                    selectedItems =>
            {
                var selectedNodes = selectedItems.OfType <UndeliveredOrderJournalNode>();
                var selectedNode  = selectedNodes.FirstOrDefault();

                if (selectedNode == null)
                {
                    return;
                }

                FineViewModel fineViewModel = new FineViewModel(
                    EntityUoWBuilder.ForCreate(),
                    UnitOfWorkFactory,
                    _undeliveryViewOpener,
                    _employeeService,
                    _driverEmployeeJournalFactory.CreateWorkingDriverEmployeeAutocompleteSelectorFactory(),
                    _employeeSettings,
                    _commonServices
                    );

                var undeliveredOrder           = UoW.GetById <UndeliveredOrder>(selectedNode.Id);
                fineViewModel.UndeliveredOrder = undeliveredOrder;
                fineViewModel.RouteList        = new RouteListItemRepository().GetRouteListItemForOrder(UoW, undeliveredOrder.OldOrder)?.RouteList;
                TabParent.AddSlaveTab(this, fineViewModel);
            }
                    )
                );
        }