예제 #1
0
 /// <summary>
 /// Функция считывает ресурсы при первичном чтении объекта из PLM и добавляет их в справочники
 /// </summary>
 /// <param name="obj">Объект PLM, из которого происходит чтение</param>
 /// <param name="strTask">Объект - структура задачи, в которую будут записаны ресурсы</param>
 public void AddResource(InfoObject obj, ref clTask strTask)
 {
     // Список трудовых ресурсов, входящих в текущую задачу из таблицы "Ресурсы:"
     var ResourcesTasks = obj.GetAttribute("Resources",
         AttributeDefBase.DataTypeEnum.CollectionOfElements);
     if (ResourcesTasks.CollectionElements.Count == 0) return;
     // Создание списка трудовых ресурсов для текущей задачи
     foreach (var resourc in ResourcesTasks.CollectionElements)
     {
         // Создание структуры трудовых ресурсов (для задачи)
         stResource strResource = new stResource();
         // Заполнение структуры stResource(ресурсы)
         strResource.objResurce = resourc.GetValue<InfoObject>("ResourceLink");
         strResource.responsible = IsRespUser(strTask, strResource.objResurce);
         strResource.unit = 1;
         // Проверка наличия ресурса в словаре ресурсов dictResource
         var gtRes = GetGTbyIO(strResource.objResurce);
         if (gtRes == null)
         {
             // Создание структуры трудовых ресурсов (для справочника)
             stResource elemResource = new stResource();
             elemResource.objResurce = strResource.objResurce;
             // Краткое название ресурса
             var shortName = strResource.GetResourceNamePLM();
             // Создание нового ресурса
             gtRes = this.GanttDiag.AddResource(shortName);
             // Задание календаря
             InfoObject resCalendar = strResource.objResurce.GetValue<InfoObject>("BasicCalendar");
             gtRes.CalendarKey = ParentHelper.GetCalendarKey(resCalendar);
             elemResource.Res = gtRes;
             // Запись нового ресурса в словарь ресурсов
             dictResource.Add(elemResource);
         }
         strResource.Res = gtRes;
         // Запись в список трудовых ресурсов в структуре strTask
         strTask.lResourceTask.Add(strResource);
     }
 }
예제 #2
0
        /// <summary>
        /// Функция считывает ресурсы из объекта ДГ и добавляет их в справочники
        /// </summary>
        /// <param name="obj">Объект PLM, из которого происходит чтение</param>
        /// <param name="strTask">Объект - структура задачи, в которую будут записаны ресурсы</param>
        public void TransferResources(GanttItem gt, ref clTask strTask)
        {
            if (gt.ItemType != GanttItemType.TaskItem) return;

            strTask.lResourceTask.Clear();
            var task = (TaskItem)gt;
            foreach (var resrel in task.Resources)
            {
                var resitem = resrel.Resource;
                // Создание структуры трудовых ресурсов (для задачи)
                stResource strResource = new stResource();
                strResource.Res = resitem;
                strResource.unit = 1;
                var ioRes = GetIObyGT(resitem);
                if (ioRes == null)
                {
                    // Создание структуры трудовых ресурсов (для справочника)
                    stResource elemResource = new stResource();
                    elemResource.Res = resitem;
                    elemResource.objResurce = null;
                    // Запись нового ресурса в словарь ресурсов
                    dictResource.Add(elemResource);
                }
                else
                {
                    strResource.responsible = IsRespUser(strTask, ioRes);
                }
                strResource.objResurce = ioRes;
                // Запись в список трудовых ресурсов в структуре strTask
                strTask.lResourceTask.Add(strResource);
            }
        }