コード例 #1
0
        public ActionResult Create(string shipmentOrderId)
        {
            var repairOrderViewModel = new RepairOrderViewModel
            {
                ShipmentOrderId = shipmentOrderId
            };

            return(View(repairOrderViewModel));
        }
コード例 #2
0
        public async Task <JsonResult> Create(RepairOrderViewModel request)
        {
            if (!ModelState.IsValid)
            {
                return(Json(false, data: ErrorToDictionary()));
            }

            var repairOrder = Mapper.Map <RepairOrderViewModel, RepairOrder>(request);

            var manager = new RepairOrderManager(User);
            var result  = await manager.CreateRepairOrder(repairOrder);

            if (result.Succeeded)
            {
                await UpdateShipmentOrderTotalAmount(request.ShipmentOrderId, repairOrder.TotalAmount);
            }
            return(Json(result));
        }
コード例 #3
0
        // GET: RepairOrder
        public ActionResult Index()
        {
            var repairOrders = db.GetAll();

            IDictionary <RepairOrderStatus, int> statusCount = new Dictionary <RepairOrderStatus, int>();

            statusCount.Add(RepairOrderStatus.Done, 0);
            statusCount.Add(RepairOrderStatus.Pending, 0);
            statusCount.Add(RepairOrderStatus.Underway, 0);
            statusCount.Add(RepairOrderStatus.WaitingForParts, 0);


            foreach (var repairOrder in repairOrders)
            {
                switch (repairOrder.Status)
                {
                case RepairOrderStatus.Done:
                    statusCount[RepairOrderStatus.Done]++;
                    break;

                case RepairOrderStatus.Pending:
                    statusCount[RepairOrderStatus.Pending]++;
                    break;

                case RepairOrderStatus.Underway:
                    statusCount[RepairOrderStatus.Underway]++;
                    break;

                case RepairOrderStatus.WaitingForParts:
                    statusCount[RepairOrderStatus.WaitingForParts]++;
                    break;

                default:
                    break;
                }
            }
            var model = new RepairOrderViewModel();

            model.RepairOrders = repairOrders;
            model.statusCount  = statusCount;
            return(View(model));
        }
コード例 #4
0
        /// <summary>
        /// Создает модель данных для представления списка заказов.
        /// </summary>
        /// <returns>Модель данных.</returns>
        public static RepairOrderViewModel CreateRepairOrderViewModel(SecurityToken token)
        {
            var model = new RepairOrderViewModel();

            model.OrderGrid = new DataGridDescriptor();
            model.OrderGrid.BeforeGridUpdateJsFunctionName = "BeforeUpdateRepairOrderGrid";
            model.OrderGrid.Name       = ControllerName;
            model.OrderGrid.Controller = ControllerName;
            model.OrderGrid.SearchInputs.Add(new ComboBoxSearchInput
            {
                Name          = "Фильтр",
                ComboBoxModel =
                    new AjaxComboBoxModel
                {
                    Property    = "FilterID",
                    Controller  = "AjaxRepairOrderFilterComboBox",
                    FirstIsNull = true
                }
            });
            model.OrderGrid.SearchInputs.Add(new ComboBoxSearchInput
            {
                Name          = "Пользователь",
                ComboBoxModel =
                    new AjaxComboBoxModel
                {
                    Property    = "UserID",
                    Controller  = "AjaxUserComboBox",
                    FirstIsNull = true
                }
            });
            model.OrderGrid.SearchInputs.Add(new ComboBoxSearchInput
            {
                Name          = "Статус",
                ComboBoxModel = new AjaxComboBoxModel
                {
                    Property    = "OrderStatusID",
                    Controller  = "AjaxOrderStatus",
                    FirstIsNull = true
                }
            });

            model.OrderGrid.SearchInputs.Add(new TextSearchInput {
                Id = "Name", Value = string.Empty, Name = "Имя"
            });
            model.OrderGrid.SearchInputs.Add(new HiddenSearchInput {
                Id = "CopyFromRepairOrderID"
            });

            model.OrderGrid.Columns.Add(new TextGridColumn {
                Name = "Номер", Id = "Number"
            });
            model.OrderGrid.Columns.Add(new TextGridColumn {
                Name = "Статус", Id = "StatusTitle"
            });
            model.OrderGrid.Columns.Add(new TextGridColumn {
                Name = "Дата", Id = "EventDate"
            });
            model.OrderGrid.Columns.Add(new TextGridColumn {
                Name = "Дата готовности", Id = "EventDateOfBeReady"
            });
            model.OrderGrid.Columns.Add(new TextGridColumn {
                Name = "Менеджер", Id = "ManagerFullName"
            });
            model.OrderGrid.Columns.Add(new TextGridColumn {
                Name = "Инженер", Id = "EngineerFullName"
            });
            model.OrderGrid.Columns.Add(new TextGridColumn {
                Name = "Клиент", Id = "ClientFullName"
            });
            model.OrderGrid.Columns.Add(new TextGridColumn {
                Name = "Устройство", Id = "DeviceTitle"
            });

            if (ProjectRoleSet.UserHasRole(token.User.ProjectRoleID, ProjectRoleSet.Engineer))
            {
                model.OrderGrid.Columns.Add(new TextGridColumn {
                    Name = "Неисправности", Id = "Defect"
                });
            }
            else
            {
                model.OrderGrid.Columns.Add(new TextGridColumn {
                    Name = "Суммы", Id = "Totals"
                });
            }


            if (token.User.ProjectRoleID == ProjectRoleSet.Admin.ProjectRoleID)
            {
                model.OrderGrid.DeleteButtonGridColumn = new DeleteButtonGridColumn {
                    QuestionText = "Вы точно хотите удалить заказ ", DataId = "Number"
                };
            }

            if (ProjectRoleSet.UserHasRole(token.User.ProjectRoleID, ProjectRoleSet.Admin, ProjectRoleSet.Manager))
            {
                model.OrderGrid.CreateButtonGrid = new CreateButtonGrid
                {
                    Name = "Создание заказа", FullScreen = true, NoDialogTitle = true
                };
            } //if

            model.OrderGrid.EditButtonGridColumn = new EditButtonGridColumn
            {
                FullScreen = true, NoDialogTitle = true
            };

            model.OrderGrid.ShowDetailsButtonColumn = new ShowDetailsButtonColumn
            {
                ToolTip = "Показать работы и запчасти", CallFunctionName = "showDetails"
            };
            model.OrderGrid.AutoLoad = true;

            model.OrderGrid.HasTableBorderedClass = true;
            model.OrderGrid.HasTableStripedClass  = false;

            model.WorkItemsGrid            = new DataGridDescriptor();
            model.WorkItemsGrid.Name       = WorkItemController.ControllerName;
            model.WorkItemsGrid.Controller = WorkItemController.ControllerName;
            model.WorkItemsGrid.SearchInputs.Add(new HiddenSearchInput {
                Id = "WorkItemRepairOrderID"
            });
            model.WorkItemsGrid.SearchInputs.Add(new TextSearchInput
            {
                Id = "WorkItemName", Value = string.Empty, Name = "Название"
            });

            model.WorkItemsGrid.Columns.Add(new TextGridColumn {
                Name = "Дата", Id = "WorkItemEventDate"
            });
            model.WorkItemsGrid.Columns.Add(new TextGridColumn {
                Name = "Описание", Id = "WorkItemTitle"
            });
            model.WorkItemsGrid.Columns.Add(new TextGridColumn {
                Name = "Инженер", Id = "WorkItemEngineerFullName"
            });
            model.WorkItemsGrid.Columns.Add(new TextGridColumn {
                Name = "Стоимость", Id = "WorkItemPrice"
            });

            model.WorkItemsGrid.DeleteButtonGridColumn = new DeleteButtonGridColumn
            {
                QuestionText = "Вы точно хотите удалить работу ",
                DataId       = "WorkItemTitle"
            };

            model.WorkItemsGrid.EditButtonGridColumn = new EditButtonGridColumn {
                Height = 400, Width = 500
            };
            model.WorkItemsGrid.CreateButtonGrid = new CreateButtonGrid
            {
                Name = "Создание выполненной работы", Height = 400, Width = 500
            };

            model.WorkItemsGrid.AutoLoad = false;

            model.WorkItemsGrid.HasTableBorderedClass = true;
            model.WorkItemsGrid.HasTableStripedClass  = true;

            model.DeviceItemsGrid            = new DataGridDescriptor();
            model.DeviceItemsGrid.Name       = DeviceItemController.ControllerName;
            model.DeviceItemsGrid.Controller = DeviceItemController.ControllerName;
            model.DeviceItemsGrid.SearchInputs.Add(new HiddenSearchInput {
                Id = "DeviceItemRepairOrderID"
            });
            model.DeviceItemsGrid.SearchInputs.Add(new TextSearchInput
            {
                Id = "DeviceItemName", Value = string.Empty, Name = "Название"
            });

            model.DeviceItemsGrid.Columns.Add(new TextGridColumn {
                Name = "Описание", Id = "DeviceItemTitle"
            });
            model.DeviceItemsGrid.Columns.Add(new TextGridColumn {
                Name = "Количество", Id = "DeviceItemCount"
            });
            model.DeviceItemsGrid.Columns.Add(new TextGridColumn {
                Name = "Себестоимость", Id = "DeviceItemCostPrice"
            });
            model.DeviceItemsGrid.Columns.Add(new TextGridColumn {
                Name = "Стоимость", Id = "DeviceItemPrice"
            });

            model.DeviceItemsGrid.DeleteButtonGridColumn = new DeleteButtonGridColumn
            {
                QuestionText = "Вы точно хотите удалить запчасть ",
                DataId       = "DeviceItemTitle"
            };

            model.DeviceItemsGrid.EditButtonGridColumn = new EditButtonGridColumn {
                Height = 450, Width = 550
            };
            model.DeviceItemsGrid.CreateButtonGrid = new CreateButtonGrid
            {
                Name = "Создание запчасти", Height = 450, Width = 550
            };

            model.DeviceItemsGrid.AutoLoad = false;

            model.DeviceItemsGrid.HasTableBorderedClass = true;
            model.DeviceItemsGrid.HasTableStripedClass  = true;

            model.Documents =
                RemontinkaServer.Instance.EntitiesFacade.GetCustomReportItems(token,
                                                                              DocumentKindSet.OrderReportDocument.DocumentKindID).Select(i => new RepairOrderDocumentModel
            {
                CustomReportID = i.CustomReportID,
                Title          = i.Title
            });

            model.DeviceTrademarkAutocompleteItems =
                RemontinkaServer.Instance.EntitiesFacade.GetAutocompleteItems(token,
                                                                              AutocompleteKindSet.DeviceTrademark.
                                                                              AutocompleteKindID).Select(
                    i => i.Title);

            model.DeviceOptionsAutocompleteItems =
                RemontinkaServer.Instance.EntitiesFacade.GetAutocompleteItems(token,
                                                                              AutocompleteKindSet.DeviceOptions.
                                                                              AutocompleteKindID).Select(
                    i => i.Title);
            model.DeviceAppearanceAutocompleteItems =
                RemontinkaServer.Instance.EntitiesFacade.GetAutocompleteItems(token,
                                                                              AutocompleteKindSet.DeviceAppearance.
                                                                              AutocompleteKindID).Select(
                    i => i.Title);
            return(model);
        }
コード例 #5
0
        /// <summary>
        /// Инициализация данных контроллера.
        /// </summary>
        public override void Initialize()
        {
            _orderModel                           = ClientCore.Instance.CreateInstance <RepairOrderViewModel>();
            _orderModel.Orders                    = new ObservableCollection <RepairOrderItemModel>();
            _orderModel.CurrentWorkItems          = new ObservableCollection <WorkItemModel>();
            _orderModel.CurrentDeviceItems        = new ObservableCollection <DeviceItemModel>();
            _orderModel.CurrentOrderTimelineItems = new ObservableCollection <OrderTimelineModel>();
            _view = new RepairOrderView {
                DataContext = _orderModel
            };

            _paginatorController = new PaginatorController();
            _paginatorController.SetView(_view.paginatorPanel, MaxPages, ItemsPerPage);
            _paginatorController.PageChanged += PaginatorControllerPageChanged;

            _filterBox = new RepairOrderFilterComboBoxController();
            _filterBox.SetView(_view.filterBox, null, true, false);

            _userBox = new UserComboBoxController();
            _userBox.SetView(_view.userBox, null, true, true);

            _statusBox = new OrderStatusController();
            _statusBox.SetView(_view.statusBox, null, true, true);

            _nameBox = new TextBoxController();
            _nameBox.SetView(_view.nameBox);

            _view.listView.SelectionChanged += RepairOrderListSelectionChanged;
            _view.listView.MouseDoubleClick += ListViewOnMouseDoubleClick;

            _view.editOrderItem.Click   += (sender, args) => SelectedRepairOrderStartEdit();
            _view.deleteOrderItem.Click += (sender, args) => SelectedRepairOrderStartDelete();

            _view.createButton.Click += (sender, args) => RepairOrderStartCreate();

            _nameBox.Model.PressKey  += NameBoxOnPressKey;
            _view.updateButton.Click += (sender, args) => StartUpdateOrderList(1);

            _orderDataController = new RepairOrderDataController();
            _orderDataController.Initialize();
            _orderDataController.CreateModelSaved += OrderDataControllerCreateModelSaved;
            _orderDataController.EditModelSaved   += OrderDataControllerOnEditModelSaved;

            _workItemDataController = new WorkItemDataController();
            _workItemDataController.Initialize();
            _workItemDataController.CreateModelSaved += WorkItemDataControllerOnCreateModelSaved;
            _workItemDataController.EditModelSaved   += WorkItemDataControllerOnEditModelSaved;
            _view.editWorkItem.Click     += (sender, args) => SelectedWorkItemStartEdit();
            _view.createWorkButton.Click += (sender, args) => WorkItemStartCreate();

            _deviceItemDataController = new DeviceItemDataController();
            _deviceItemDataController.Initialize();
            _deviceItemDataController.CreateModelSaved += DeviceItemDataControllerOnCreateModelSaved;
            _deviceItemDataController.EditModelSaved   += DeviceItemDataControllerOnEditModelSaved;
            _view.editDeviceItem.Click     += (sender, args) => SelectedDeviceItemStartEdit();
            _view.createDeviceButton.Click += (sender, args) => DeviceItemStartCreate();

            _commentDataController = new CommentDataController();
            _commentDataController.Initialize();
            _commentDataController.CreateModelSaved += CommentDataControllerOnCreateModelSaved;
            _view.createCommentButton.Click         += (sender, args) => CommentStartCreate();

            StartUpdateOrderList(1);

            _customReportPreviewController = new CustomReportPreviewController();
            _customReportPreviewController.Initialize();

            StartPopulateReportList();

            if (ClientCore.Instance.AuthService.SecurityToken.User.ProjectRoleID == ProjectRoleSet.Engineer.ProjectRoleID)
            {
                _view.createButton.IsEnabled = false;

                foreach (var editFormControlModel in _orderDataController.GetEditFormControlModels())
                {
                    if (!StringComparer.OrdinalIgnoreCase.Equals(editFormControlModel.Id, "RepairOrderStatusID"))
                    {
                        editFormControlModel.ReadOnly = true;
                    }
                }
            }
        }