/// <summary> /// Изменение значения наработки агрегата с момента установки /// </summary> public void ChangeComponentTSNSinseInstall() { if (_isStore) { return; } //если отсутствует наработка агрегата на момент установки //то дальнейшее расчитать нельзя Lifelength aircraftCurrent = GlobalObjects.CasEnvironment.Calculator.GetFlightLifelengthOnEndOfDay((Aircraft)_currentAircraft, dateTimePickerDateAsOf.Value); if ((aircraftCurrent.IsNullOrZero() && AircraftTCSNOnInstall.IsNullOrZero()) || (ComponentCurrentTSNCSN.IsNullOrZero() && ComponentTCSNOnInstall.IsNullOrZero())) { if (lifelengthViewerComponentTCSI.SystemCalculated) { //если данные в наработку с момента установеи вводила система, //а не пользователь, то их нужно обнулить ComponentTCSI = Lifelength.Null; } return; } if (ComponentTCSI.IsNullOrZero() || lifelengthViewerComponentTCSI.SystemCalculated) { //Если наработка агрегата с момента установки не введена или //введена системой, то её надо расчитать Lifelength temp; if (!aircraftCurrent.IsNullOrZero() && !AircraftTCSNOnInstall.IsNullOrZero()) { //если известна текущая наработка самолета и //наработка самолета на момент установки temp = new Lifelength(aircraftCurrent); temp.Substract(AircraftTCSNOnInstall); ComponentTCSI = temp; lifelengthViewerComponentCurrentTSNCSN.SystemCalculated = true; return; } if (!ComponentCurrentTSNCSN.IsNullOrZero() && !ComponentTCSNOnInstall.IsNullOrZero()) { //если известна текущая наработка агрегата и //наработка агрегата на момент установки temp = new Lifelength(ComponentCurrentTSNCSN); temp.Substract(ComponentTCSNOnInstall); ComponentTCSI = temp; lifelengthViewerComponentCurrentTSNCSN.SystemCalculated = true; return; } //иначе, наработку высчитать нельзя ComponentTCSI = Lifelength.Null; lifelengthViewerComponentCurrentTSNCSN.SystemCalculated = true; } }
public void CalculateLifeLength() { //изменение значения наработки агрегата на момент установки if (ComponentTCSNOnInstall.IsNullOrZero()) { return; //разбанить поля } //if (ComponentCurrentTSNCSN != Lifelength.Null) //{ // Lifelength tempLifelength = new Lifelength(ComponentCurrentTSNCSN); // tempLifelength.Substract(ComponentTCSNOnInstall); // ComponentTCSI = tempLifelength; //} Lifelength aircraftCurrentTSN = GlobalObjects.CasEnvironment.Calculator.GetCurrentFlightLifelength((Aircraft)_currentAircraft); Lifelength tempLifelength = null; //Расчитывание текущей наработки агрегата if (!ComponentTCSI.IsNullOrZero()) { tempLifelength = new Lifelength(ComponentTCSI); } else if (!AircraftTCSNOnInstall.IsNullOrZero() && _currentAircraft is Aircraft) { tempLifelength = new Lifelength(aircraftCurrentTSN); tempLifelength.Substract(AircraftTCSNOnInstall); } if (tempLifelength != null && !tempLifelength.IsNullOrZero()) { tempLifelength.Add(ComponentTCSNOnInstall); ComponentCurrentTSNCSN = tempLifelength; } else { ComponentCurrentTSNCSN = Lifelength.Null; } //расчет наработки с момента установки if (!ComponentTCSNOnInstall.IsNullOrZero() && !ComponentCurrentTSNCSN.IsNullOrZero()) { tempLifelength = new Lifelength(ComponentCurrentTSNCSN); tempLifelength.Substract(ComponentTCSNOnInstall); ComponentTCSI = tempLifelength; } else if (!AircraftTCSNOnInstall.IsNullOrZero() && !aircraftCurrentTSN.IsNullOrZero()) { tempLifelength = new Lifelength(aircraftCurrentTSN); tempLifelength.Substract(AircraftTCSNOnInstall); ComponentTCSI = tempLifelength; } else { ComponentTCSI = Lifelength.Null; } //расчет наработки самолета на момент установки if (!ComponentTCSI.IsNullOrZero()) { tempLifelength = new Lifelength(aircraftCurrentTSN); tempLifelength.Substract(ComponentTCSI); AircraftTCSNOnInstall = tempLifelength; } else if (!ComponentCurrentTSNCSN.IsNullOrZero() && !ComponentTCSNOnInstall.IsNullOrZero()) { Lifelength temp2 = new Lifelength(ComponentCurrentTSNCSN); temp2.Substract(ComponentTCSNOnInstall); tempLifelength = new Lifelength(aircraftCurrentTSN); tempLifelength.Substract(temp2); AircraftTCSNOnInstall = tempLifelength; } else { AircraftTCSNOnInstall = Lifelength.Null; } }