public ActionResult Create(string shipmentOrderId) { var repairOrderViewModel = new RepairOrderViewModel { ShipmentOrderId = shipmentOrderId }; return(View(repairOrderViewModel)); }
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)); }
// 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)); }
/// <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); }
/// <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; } } } }