示例#1
0
        //найти все юсаджи и заменить на использование AircraftCore (Delete и Update)
        public void DeleteAircraft(int aircraftId)
        {
            var deletedAircraft = _aircrafts.GetItemById(aircraftId);

            if (deletedAircraft == null)
            {
                return;
            }

            _newKeeper.Delete(deletedAircraft, true);
            _aircrafts.Remove(deletedAircraft);
        }
示例#2
0
        /// <summary>
        /// Удаляет запись из рабочего пакета
        /// </summary>
        /// <param name="accessory"></param>
        /// <param name="rfq"></param>
        public void DeleteFromRequestForQuotation(Product accessory, RequestForQuotation rfq)
        {
            var rfqRecord =
                rfq.PackageRecords.FirstOrDefault(wpr => wpr.PackageItemId == accessory.ItemId &&
                                                  wpr.PackageItemType == accessory.SmartCoreObjectType);

            if (rfqRecord == null)
            {
                rfqRecord = _newLoader.GetObject <RequestForQuotationRecordDTO, RequestForQuotationRecord>(new List <Filter>()
                {
                    new Filter("PackageItemId", accessory.ItemId),
                    new Filter("PackageItemTypeId", accessory.SmartCoreObjectType.ItemId),
                    new Filter("ParentPackageId", rfq.ItemId)
                });
            }

            if (rfqRecord != null)
            {
                _newKeeper.Delete(rfqRecord);
            }
        }
示例#3
0
        /// <summary>
        /// Удаляет запись о выполнении директивы
        /// </summary>
        /// <param name="record"></param>
        public void Delete(MaintenanceCheckRecord record)
        {
            record.IsDeleted = true;
            _newKeeper.Save(record);

            // нужно обнулить математический аппарат объекта, которому принадлежит запись о выполнении
            // а также удалить выполнение директивы из коллекции выполнений директивы
            if (record.ParentCheck != null && record.ParentCheck.PerformanceRecords != null)
            {
                record.ParentCheck.PerformanceRecords.Remove(record);
            }

            var ddr = _casEnvironment.NewLoader.GetObjectListAll <DirectiveRecordDTO, DirectiveRecord>(new Filter("MaintenanceCheckRecordId", record.ItemId));

            if (ddr.Count <= 0)
            {
                return;
            }

            foreach (var directiveRecord in ddr)
            {
                _newKeeper.Delete(directiveRecord, true, false);
            }
        }
示例#4
0
        /// <summary>
        /// Удаление TransferRecord
        /// </summary>
        /// <param name="transferRecord"></param>
        public void Delete(TransferRecord transferRecord)
        {
            // Ограничение - если у агрегата только одна transfer record - мы не можем ее удалить ...
            // Добавление & удаление transfer record влияет на математический аппарат
            // Обнуляем математический аппарат
            if (transferRecord.ParentComponent != null)
            {
                if (transferRecord.ParentComponent.TransferRecords.Count == 1)
                {
                    throw new Exception("1153: Can not delete single transfer record");
                }

                if (transferRecord.ConsumableId > 0)
                {
                    //Поиск комплектующего, часть которого была перемещена данной записью
                    Entities.General.Accessory.Component fromConsumable = _componentCore.GetBaseComponentById(transferRecord.ConsumableId)
                                                                          ?? _componentCore.GetComponentById(transferRecord.ConsumableId);
                    if (fromConsumable != null)
                    {
                        //комплектующее найдено
                        //Проверка, находится ли то комплектующее, часть которого была перемещена
                        //на той же локации, с которой была перемещена данная часть
                        TransferRecord consumLocation = fromConsumable.TransferRecords.GetLast();
                        if (consumLocation != null &&
                            ((consumLocation.DestinationObjectType == SmartCoreType.BaseComponent &&
                              consumLocation.DestinationObjectId == transferRecord.FromBaseComponentId) ||
                             (consumLocation.DestinationObjectType == SmartCoreType.Aircraft &&
                              consumLocation.DestinationObjectId == transferRecord.FromAircraftId) ||
                             (consumLocation.DestinationObjectType == SmartCoreType.Store &&
                              consumLocation.DestinationObjectId == transferRecord.FromStoreId)))
                        {
                            //Если последняя точка назначения исходного комплектующего
                            //совпадает с отправной точкой данной части исходного комплектующего
                            //то необходимо удалить данную часть комплектующуго, а кол-во
                            //перемещенных единиц добавить к исходному комплектующему
                            transferRecord.ParentComponent.IsDeleted = true;
                            _newKeeper.Delete(transferRecord.ParentComponent, true, false);

                            fromConsumable.Quantity += transferRecord.ParentComponent.Quantity > 0
                                                                                                                   ? transferRecord.ParentComponent.Quantity
                                                                                                                   : 1;
                            _componentCore.Save(fromConsumable);
                        }
                        else
                        {
                            // Иначе, если не найдена последняя запись о перемещении
                            // исходного расходника или
                            // если исходный расходник был перемещен с отправной точки данной части
                            // то нужно произвести простой откат данной записи о перемещении

                            // Сохраняем запись
                            transferRecord.IsDeleted = true;
                            _newKeeper.Save(transferRecord);
                            transferRecord.ParentComponent.TransferRecords.Remove(transferRecord);

                            // Обновляем состояние объекта
                            _componentCore.SetDestinations(transferRecord.ParentComponent);

                            if (transferRecord.ParentComponent is BaseComponent)
                            {
                                _calculator.ResetMath((BaseComponent)transferRecord.ParentComponent);
                            }
                        }
                    }
                    else
                    {
                        // если исходный расходник не найден
                        // то нужно произвести простой откат данной записи о перемещении

                        // Сохраняем запись
                        transferRecord.IsDeleted = true;
                        _newKeeper.Save(transferRecord);
                        transferRecord.ParentComponent.TransferRecords.Remove(transferRecord);

                        // Обновляем состояние объекта
                        _componentCore.SetDestinations(transferRecord.ParentComponent);

                        if (transferRecord.ParentComponent is BaseComponent)
                        {
                            _calculator.ResetMath((BaseComponent)transferRecord.ParentComponent);
                        }
                    }
                }
                else
                {
                    // Сохраняем запись
                    transferRecord.IsDeleted = true;
                    _newKeeper.Save(transferRecord);
                    transferRecord.ParentComponent.TransferRecords.Remove(transferRecord);

                    // Обновляем состояние объекта
                    _componentCore.SetDestinations(transferRecord.ParentComponent);

                    if (transferRecord.ParentComponent is BaseComponent)
                    {
                        _calculator.ResetMath((BaseComponent)transferRecord.ParentComponent);
                    }
                }
            }
            else
            {
                throw new Exception("1000: Failed to specify tranfer record parent type");
            }
        }