private void командаЗарегистрировать_ItemClick(System.Object sender, DevExpress.XtraBars.ItemClickEventArgs e) { if (!SaveCard()) { UIService.ShowError("Сохранение не удалось. Выполните сохранение вручную"); return; } KindsCardKind kind = Context.GetObject <KindsCardKind>(new Guid("AB801854-70AF-4B6C-AB48-1B59B5D11AA9")); DocsVision.BackOffice.ObjectModel.Task task = TaskService.CreateTask(kind); task.MainInfo.Name = "Проверка бухгалтерских документов " + Document.MainInfo.Name; task.Description = "Проверка бухгалтерских документов " + Document.MainInfo.Name; string content = "Вы назначены ответственным за первичную проверку бухгалтерских документов и выставление согласущего куратора."; content = content + ". Пожалуйста, отметьте в родительском документе сотрудника в поле Куратор и отправьте документ на согласование"; task.MainInfo.Content = content; task.MainInfo.Author = this.StaffService.GetCurrentEmployee(); task.MainInfo.StartDate = DateTime.Now; task.MainInfo.Priority = TaskPriority.Normal; task.Preset.AllowDelegateToAnyEmployee = true; TaskService.AddSelectedPerformer(task.MainInfo, Document.MainInfo.Registrar); //добавляем ссылку на родительскую карточку TaskService.AddLinkOnParentCard(task, TaskService.GetKindSettings(kind), this.Document); //добавляем ссылку на задание в карточку TaskListService.AddTask(this.Document.MainInfo.Tasks, task, this.Document); //создаем и сохраняем новый список заданий TaskList newTaskList = TaskListService.CreateTaskList(); Context.SaveObject <DocsVision.BackOffice.ObjectModel.TaskList>(newTaskList); //записываем в задание task.MainInfo.ChildTaskList = newTaskList; Context.SaveObject <DocsVision.BackOffice.ObjectModel.Task>(task); string oErrMessageForStart; bool CanStart = TaskService.ValidateForBegin(task, out oErrMessageForStart); if (CanStart) { TaskService.StartTask(task); StatesState oStartedState = StateService.GetStates(kind).FirstOrDefault(br => br.DefaultName == "Started"); task.SystemInfo.State = oStartedState; UIService.ShowMessage("Документ успешно отправлен пользователю " + Document.MainInfo.Registrar.DisplayString, "Отправка задания"); } else { UIService.ShowMessage(oErrMessageForStart, "Ошибка отправки задания"); } Context.SaveObject <DocsVision.BackOffice.ObjectModel.Task>(task); changeState("Is registered"); }
private void sendApproval(String role, StaffEmployee Performer, int performingType) { KindsCardKind kind = Context.GetObject <KindsCardKind>(new Guid("F841AEE1-6018-44C6-A6A6-D3BAE4A3439F")); // Задание на согласование фин.документов DocsVision.BackOffice.ObjectModel.Task task = TaskService.CreateTask(kind); task.MainInfo.Name = "Согласование бухгалтерских документов " + Document.MainInfo.Name; task.Description = "Согласование бухгалтерских документов " + Document.MainInfo.Name; string content = "Вы назначены " + role + " при согласовании бухгалтерских документов."; content = content + " Пожалуйста, отметьте свое решение кнопками Согласован или Не согласован и напишите соответствующий комментарий"; task.MainInfo.Content = content; task.MainInfo.Author = this.StaffService.GetCurrentEmployee(); task.MainInfo.StartDate = DateTime.Now; task.MainInfo.Priority = TaskPriority.Normal; task.Preset.AllowDelegateToAnyEmployee = true; TaskService.AddSelectedPerformer(task.MainInfo, Performer); BaseCardSectionRow taskRow = (BaseCardSectionRow)task.GetSection(new System.Guid("20D21193-9F7F-4B62-8D69-272E78E1D6A8"))[0]; taskRow["PerformanceType"] = performingType; addTaskRows(task); //добавляем ссылку на родительскую карточку TaskService.AddLinkOnParentCard(task, TaskService.GetKindSettings(kind), this.Document); //добавляем ссылку на задание в карточку TaskListService.AddTask(this.Document.MainInfo.Tasks, task, this.Document); //создаем и сохраняем новый список заданий TaskList newTaskList = TaskListService.CreateTaskList(); Context.SaveObject <DocsVision.BackOffice.ObjectModel.TaskList>(newTaskList); //записываем в задание task.MainInfo.ChildTaskList = newTaskList; Context.SaveObject <DocsVision.BackOffice.ObjectModel.Task>(task); string oErrMessageForStart; bool CanStart = TaskService.ValidateForBegin(task, out oErrMessageForStart); if (CanStart) { TaskService.StartTask(task); StatesState oStartedState = StateService.GetStates(kind).FirstOrDefault(br => br.DefaultName == "Started"); task.SystemInfo.State = oStartedState; UIService.ShowMessage("Документ успешно отправлен пользователю " + Performer.DisplayString, "Отправка задания"); } else { UIService.ShowMessage(oErrMessageForStart, "Ошибка отправки задания"); } Context.SaveObject <DocsVision.BackOffice.ObjectModel.Task>(task); }
/// <summary> /// Создать задание /// </summary> /// <param name="document"></param> /// <param name="kindId"></param> /// <param name="performers"></param> /// <param name="end"></param> /// <param name="taskName"></param> /// <param name="taskContent"></param> /// <returns></returns> public Task CreateTask(Document document, Guid kindId, List <StaffEmployee> performers, DateTime end, string taskName, string taskContent) { ITaskService TaskService = context.ObjectContext.GetService <ITaskService>(); ITaskListService TaskListService = context.ObjectContext.GetService <ITaskListService>(); IStaffService StaffService = context.ObjectContext.GetService <IStaffService>(); KindsCardKind kind = context.ObjectContext.GetObject <KindsCardKind>(kindId); Task task = TaskService.CreateTask(kind); try { TaskService.InitializeDefaults(task); task.MainInfo.Name = taskName; task.Description = taskName; task.MainInfo.Author = StaffService.GetCurrentEmployee(); task.MainInfo.StartDate = DateTime.Now; task.MainInfo.EndDate = end; task.MainInfo.Content = taskContent; //myTask.Preset.Completion.ReportRequired = false; foreach (StaffEmployee performer in performers) { TaskService.AddSelectedPerformer(task.MainInfo, performer); } TaskSetting taskSettings = TaskService.GetKindSettings(kind); //добавляем ссылку на родительскую карточку TaskService.AddLinkOnParentCard(task, taskSettings, document); //добавляем ссылку на задание в карточку TaskListService.AddTask(document.MainInfo.Tasks, task, document); //создаем и сохраняем новый список заданий TaskList newTaskList = TaskListService.CreateTaskList(); context.ObjectContext.SaveObject <TaskList>(newTaskList); //записываем в задание task.MainInfo.ChildTaskList = newTaskList; context.ObjectContext.SaveObject(task); context.ObjectContext.SaveObject(document); } catch (Exception ex) { throw new Exception("Во время создания задания произошла ошибка", ex); } return(task); }
private void sendTasks(String Performer) { try { //сохраняем карточку if (!SaveCard()) { UIService.ShowError("Сохранение не удалось. Выполните сохранение вручную"); return; } //this.Context.SaveObject(this.Document); Guid TaskKindID = new Guid("0F6C537B-9D75-43EC-9D91-B29C5F1B7C4D"); //айди типа задания на исполнение KindsCardKind kind = Context.GetObject <KindsCardKind>(TaskKindID); DocsVision.BackOffice.ObjectModel.Task oTask = this.TaskService.CreateTask(kind); TaskService.InitializeDefaults(oTask); //заполняем данные задания oTask.MainInfo.Author = this.StaffService.GetCurrentEmployee(); //текущий сотрудник //содержание задания oTask.MainInfo.Content = "Документ пришел Вам на исполнение/ознакомление"; oTask.MainInfo.StartDate = DateTime.Now; oTask.MainInfo.OnControl = false; oTask.MainInfo.Name = "Задание по бухгалтерскому документу " + this.Document.MainInfo.Name; oTask.Description = "Задание по бухгалтерскому документу " + this.Document.MainInfo.Name; //определяем важность oTask.MainInfo.Priority = TaskPriority.Normal; BaseCardSectionRow contractRow = (BaseCardSectionRow)this.Document.GetSection(new System.Guid("3997861D-4FF5-496A-B8A2-D16617DE91D7"))[0]; if (contractRow["ContractEnd"] != null) { oTask.MainInfo.EndDate = Convert.ToDateTime(contractRow["ContractEnd"]); } //добавляем исполнителя StaffEmployee oPerf = Context.GetObject <StaffEmployee>(new System.Guid(Performer));; TaskService.AddSelectedPerformer(oTask.MainInfo, oPerf); TaskSetting oTaskSetting = TaskService.GetKindSettings(kind); //добавляем ссылку на родительскую карточку TaskService.AddLinkOnParentCard(oTask, oTaskSetting, this.Document); //добавляем ссылку на задание в карточку TaskListService.AddTask(this.Document.MainInfo.Tasks, oTask, this.Document); //создаем и сохраняем новый список заданий TaskList newTaskList = TaskListService.CreateTaskList(); Context.SaveObject <DocsVision.BackOffice.ObjectModel.TaskList>(newTaskList); //записываем в задание oTask.MainInfo.ChildTaskList = newTaskList; Context.SaveObject <DocsVision.BackOffice.ObjectModel.Task>(oTask); Context.SaveObject <DocsVision.BackOffice.ObjectModel.Document>(this.Document); //MessageBox.Show("Документ готов, запускаем"); //запускаем задание на исполнение string oErrMessageForStart; bool CanStart = TaskService.ValidateForBegin(oTask, out oErrMessageForStart); if (CanStart) { //MessageBox.Show("Can start"); TaskService.StartTask(oTask); //MessageBox.Show("Изменяется состояние задания"); StatesState oStartedState = StateService.GetStates(Context.GetObject <KindsCardKind>(TaskKindID)).FirstOrDefault(br => br.DefaultName == "Started"); oTask.SystemInfo.State = oStartedState; UIService.ShowMessage("Документ успешно отправлен пользователю " + oPerf.ToString(), "Отправка задания"); } else { UIService.ShowMessage(oErrMessageForStart, "Ошибка отправки задания"); } Context.SaveObject <DocsVision.BackOffice.ObjectModel.Task>(oTask); } catch (System.Exception ex) { UIService.ShowError(ex); } }