/// <summary> /// Создает воздушное судно без дополнительной информации /// </summary> public Audit() { ItemId = -1; SmartCoreObjectType = SmartCoreType.Audit; CanClose = true; CanPublish = true; AuditItemsLoaded = false; Title = ""; CreateDate = OpeningDate = PublishingDate = ClosingDate = DateTime.Today; _status = WorkPackageStatus.Opened; // создаем все коллекции }
private static string GetStatusName(WorkPackageStatus status) { if (status == WorkPackageStatus.Open) { return("Open"); } else if (status == WorkPackageStatus.Published) { return("Published"); } else { return("Closed"); } }
/// <summary> /// Возвращает Закупочные ордера воздушного судна /// </summary> /// <param name="aircraft">Воздушное судно. При пережаче null вернет все Закупочные ордера</param> /// <param name="status">Фильтр статуса Закупочные ордера. (По умолчанию = WorkPackageStatus.All)</param> /// <param name="loadWorkPackageItems">Флаг загрузки элементов Закупочного ордера</param> /// <param name="includedAccessory">Задачи, которые должны содержать ордера (при передаче пустои коллекции запрос вернет 0 Закупочного ордера)</param> /// <returns></returns> public IList <PurchaseOrder> GetPurchaseOrders(Aircraft aircraft, WorkPackageStatus status = WorkPackageStatus.All, bool loadWorkPackageItems = false, IEnumerable <AbstractAccessory> includedAccessory = null) { var filters = new List <ICommonFilter>(); if (aircraft != null) { filters.Add(new CommonFilter <int>(PurchaseOrder.ParentTypeIdProperty, aircraft.SmartCoreObjectType.ItemId)); filters.Add(new CommonFilter <int>(PurchaseOrder.ParentIdProperty, aircraft.ItemId)); } if (status != WorkPackageStatus.All) { filters.Add(new CommonFilter <int>(PurchaseOrder.StatusProperty, (int)status)); } if (includedAccessory != null) { string filterString = ""; if (!includedAccessory.Any()) { filterString += "(PackageItemTypeId = 0 and PackageItemId in (0))"; } else { var subs = new Dictionary <int, string>(); foreach (var task in includedAccessory) { if (subs.ContainsKey(task.SmartCoreObjectType.ItemId)) { var s = subs[task.SmartCoreObjectType.ItemId]; if (s != "") { s += ", "; } s += task.ItemId; subs[task.SmartCoreObjectType.ItemId] = s; } else { subs.Add(task.SmartCoreObjectType.ItemId, task.ItemId.ToString()); } } filterString = ""; foreach (KeyValuePair <int, string> sub in subs) { if (filterString != "") { filterString += "\n or"; } filterString += $"(PackageItemTypeId = {sub.Key} and PackageItemId in ({sub.Value}))"; } } var purchaseRecordIn = $"{BaseQueries.GetSelectQueryColumnOnly<PurchaseRequestRecord>(PurchaseRequestRecord.ParentPackageIdProperty)} and {filterString}"; filters.Add(new CommonFilter <string>(BaseEntityObject.ItemIdProperty, FilterType.In, new[] { purchaseRecordIn })); } var collection = _loader.GetObjectListAll <PurchaseOrder>(filters.ToArray(), true); foreach (var rfq in collection) { //Обратная ссылка на родительский самолет _packageCore.SetParents(rfq); //загрузка элементов котировочного ордера (если требуется) if (loadWorkPackageItems) { LoadPurchaseOrderItems(rfq); } } return(collection.ToArray()); }