Exemple #1
0
        /// <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;
            // создаем все коллекции
        }
Exemple #2
0
 private static string GetStatusName(WorkPackageStatus status)
 {
     if (status == WorkPackageStatus.Open)
     {
         return("Open");
     }
     else if (status == WorkPackageStatus.Published)
     {
         return("Published");
     }
     else
     {
         return("Closed");
     }
 }
Exemple #3
0
        /// <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());
        }