Пример #1
0
        /// <summary>
        /// todoComment
        /// </summary>
        /// <param name="APartnerInterestRow"></param>
        public void ProcessEditedRecord(out PPartnerInterestRow APartnerInterestRow)
        {
            // Exampel from EditRecord
            // InterestRow := (FMultiTableDS.PPartnerInterest.Rows.Find(
            // [FMultiTableDS.PPartner.Row[0].PartnerKey, FInterestNumber]) as PPartnerInterestRow);
            // [Finterest,FMulti...
            // this is the same always????
            APartnerInterestRow =
                ((PPartnerInterestRow)FMultiTableDS.PPartnerInterest.Rows.Find(new Object[] { FMultiTableDS.PPartner[0].PartnerKey, FInterestNumber }));

            // Call EndEdit on all DataRows that are editable in the Detail UserControl.
            // THIS IS ESSENTIAL!!! It makes the changes that the user has made permanent.
            if (APartnerInterestRow == null)
            {
                MessageBox.Show("TUCPartnerInterestsLogic.ProcessEditedRecord:  APartnerInterestRow is nil" + FInterest.ToString());
            }
            else
            {
                APartnerInterestRow.EndEdit();

                // New Address?
                if ((APartnerInterestRow.RowState == DataRowState.Added) && FIsRecordBeingAdded)
                {
                    FIsRecordBeingAdded = false;

                    // The 4GL Petra screen didn't set the StatusCode to active when a new Subscription was added.
                    // FMultiTableDS.PPartner.Row[0].StatusCode := 'ACTIVE';
                }
            }
        }
        private void ValidateDataDetailsManual(PPartnerInterestRow ARow)
        {
            TVerificationResultCollection VerificationResultCollection = FPetraUtilsObject.VerificationResultCollection;

            TSharedPartnerValidation_Partner.ValidatePartnerInterestManual(this, ARow, ref VerificationResultCollection,
                                                                           FValidationControlsDict, cmbPPartnerInterestInterestCategory.GetSelectedString());
        }
 private void GetDetailDataFromControlsManual(PPartnerInterestRow ARow)
 {
     if (ARow.RowState != DataRowState.Deleted)
     {
         if (!ARow.IsFieldKeyNull())
         {
             if (ARow.FieldKey == 0)
             {
                 ARow.SetFieldKeyNull();
             }
         }
     }
 }
 private void ShowDetailsManual(PPartnerInterestRow ARow)
 {
 }
Пример #5
0
        /// <summary>
        /// Validates the Partner Interest screen data.
        /// </summary>
        /// <param name="AContext">Context that describes where the data validation failed.</param>
        /// <param name="ARow">The <see cref="DataRow" /> which holds the the data against which the validation is run.</param>
        /// <param name="AVerificationResultCollection">Will be filled with any <see cref="TVerificationResult" /> items if
        /// data validation errors occur.</param>
        /// <param name="AValidationControlsDict">A <see cref="TValidationControlsDict" /> containing the Controls that
        /// display data that is about to be validated.</param>
        /// <param name="AInterestCategory">The chosen interest category.</param>
        public static void ValidatePartnerInterestManual(object AContext, PPartnerInterestRow ARow,
            ref TVerificationResultCollection AVerificationResultCollection, TValidationControlsDict AValidationControlsDict,
            string AInterestCategory)
        {
            DataColumn ValidationColumn;
            DataColumn ValidationColumn2;
            DataColumn ValidationColumn3;
            TValidationControlsData ValidationControlsData;
            TValidationControlsData ValidationControlsData2;
            TValidationControlsData ValidationControlsData3;
            TVerificationResult VerificationResult = null;

            // Don't validate deleted DataRows
            if (ARow.RowState == DataRowState.Deleted)
            {
                return;
            }

            // remove possible previous columns from result collection
            ValidationColumn = ARow.Table.Columns[PPartnerInterestTable.ColumnLevelId];
            AVerificationResultCollection.Remove(ValidationColumn);
            ValidationColumn = ARow.Table.Columns[PPartnerInterestTable.ColumnInterestId];
            AVerificationResultCollection.Remove(ValidationColumn);

            // check that level is entered within valid range (depending on interest category)
            ValidationColumn = ARow.Table.Columns[PPartnerInterestTable.ColumnLevelId];

            if (AValidationControlsDict.TryGetValue(ValidationColumn, out ValidationControlsData))
            {
                PInterestCategoryTable CategoryTable;
                PInterestCategoryRow CategoryRow;
                int LevelRangeLow;
                int LevelRangeHigh;

                // check if level is within valid range (retrieve valid range from cached tables)
                CategoryTable = (PInterestCategoryTable)TSharedDataCache.TMPartner.GetCacheablePartnerTable(
                    TCacheablePartnerTablesEnum.InterestCategoryList);
                CategoryRow = (PInterestCategoryRow)CategoryTable.Rows.Find(new object[] { AInterestCategory });

                if ((CategoryRow != null)
                    && !ARow.IsLevelNull())
                {
                    LevelRangeLow = 0;
                    LevelRangeHigh = 0;

                    if (!CategoryRow.IsLevelRangeLowNull())
                    {
                        LevelRangeLow = CategoryRow.LevelRangeLow;
                    }

                    if (!CategoryRow.IsLevelRangeHighNull())
                    {
                        LevelRangeHigh = CategoryRow.LevelRangeHigh;
                    }

                    if ((!CategoryRow.IsLevelRangeLowNull()
                         && (ARow.Level < CategoryRow.LevelRangeLow))
                        || (!CategoryRow.IsLevelRangeHighNull()
                            && (ARow.Level > CategoryRow.LevelRangeHigh)))
                    {
                        VerificationResult = new TScreenVerificationResult(new TVerificationResult(AContext,
                                ErrorCodes.GetErrorInfo(PetraErrorCodes.ERR_VALUE_OUTSIDE_OF_RANGE,
                                    new string[] { ValidationControlsData.ValidationControlLabel, LevelRangeLow.ToString(), LevelRangeHigh.ToString() })),
                            ValidationColumn, ValidationControlsData.ValidationControl);

                        // Handle addition to/removal from TVerificationResultCollection
                        AVerificationResultCollection.Auto_Add_Or_AddOrRemove(AContext, VerificationResult, ValidationColumn);
                    }
                }
            }

            // check that at least one of interest, country or field is filled
            ValidationColumn = ARow.Table.Columns[PPartnerInterestTable.ColumnInterestId];

            if (AValidationControlsDict.TryGetValue(ValidationColumn, out ValidationControlsData))
            {
                ValidationColumn2 = ARow.Table.Columns[PPartnerInterestTable.ColumnCountryId];

                if (AValidationControlsDict.TryGetValue(ValidationColumn2, out ValidationControlsData2))
                {
                    ValidationColumn3 = ARow.Table.Columns[PPartnerInterestTable.ColumnFieldKeyId];

                    if (AValidationControlsDict.TryGetValue(ValidationColumn3, out ValidationControlsData3))
                    {
                        if ((ARow.IsInterestNull() || (ARow.Interest == String.Empty))
                            && (ARow.IsCountryNull() || (ARow.Country == String.Empty))
                            && (ARow.IsFieldKeyNull() || (ARow.FieldKey == 0)))
                        {
                            VerificationResult = new TScreenVerificationResult(new TVerificationResult(AContext,
                                    ErrorCodes.GetErrorInfo(PetraErrorCodes.ERR_INTEREST_NO_DATA_SET_AT_ALL, new string[] { })),
                                ValidationColumn, ValidationControlsData.ValidationControl);

                            // Handle addition to/removal from TVerificationResultCollection
                            AVerificationResultCollection.Auto_Add_Or_AddOrRemove(AContext, VerificationResult, ValidationColumn);
                        }
                    }
                }
            }

            // check that interest is filled if a category is set
            if (AInterestCategory != "")
            {
                ValidationColumn = ARow.Table.Columns[PPartnerInterestTable.ColumnInterestId];

                if (AValidationControlsDict.TryGetValue(ValidationColumn, out ValidationControlsData))
                {
                    if (ARow.IsInterestNull()
                        || (ARow.Interest == String.Empty))
                    {
                        VerificationResult = new TScreenVerificationResult(new TVerificationResult(AContext,
                                ErrorCodes.GetErrorInfo(PetraErrorCodes.ERR_INTEREST_NOT_SET, new string[] { AInterestCategory })),
                            ValidationColumn, ValidationControlsData.ValidationControl);

                        // Handle addition to/removal from TVerificationResultCollection
                        AVerificationResultCollection.Auto_Add_Or_AddOrRemove(AContext, VerificationResult, ValidationColumn);
                    }
                }
            }

            // 'Field' must be a valid UNIT partner (if set at all)
            ValidationColumn = ARow.Table.Columns[PPartnerInterestTable.ColumnFieldKeyId];

            if (AValidationControlsDict.TryGetValue(ValidationColumn, out ValidationControlsData))
            {
                if (!ARow.IsFieldKeyNull())
                {
                    VerificationResult = IsValidPartner(
                        ARow.FieldKey, new TPartnerClass[] { TPartnerClass.UNIT }, true, string.Empty,
                        AContext, ValidationColumn, ValidationControlsData.ValidationControl
                        );
                }

                // Since the validation can result in different ResultTexts we need to remove any validation result manually as a call to
                // AVerificationResultCollection.AddOrRemove wouldn't remove a previous validation result with a different
                // ResultText!

                // Handle addition to/removal from TVerificationResultCollection
                AVerificationResultCollection.Auto_Add_Or_AddOrRemove(AContext, VerificationResult, ValidationColumn);
            }
        }
        private void ValidateDataDetailsManual(PPartnerInterestRow ARow)
        {
            TVerificationResultCollection VerificationResultCollection = FPetraUtilsObject.VerificationResultCollection;

            TSharedPartnerValidation_Partner.ValidatePartnerInterestManual(this, ARow, ref VerificationResultCollection,
                FValidationControlsDict, cmbPPartnerInterestInterestCategory.GetSelectedString());
        }
 private void GetDetailDataFromControlsManual(PPartnerInterestRow ARow)
 {
     if (ARow.RowState != DataRowState.Deleted)
     {
         if (!ARow.IsFieldKeyNull())
         {
             if (ARow.FieldKey == 0)
             {
                 ARow.SetFieldKeyNull();
             }
         }
     }
 }
 private void ShowDetailsManual(PPartnerInterestRow ARow)
 {
 }
Пример #9
0
        /// <summary>
        /// todoComment
        /// </summary>
        /// <param name="APartnerInterestRow"></param>
        public void ProcessEditedRecord(out PPartnerInterestRow APartnerInterestRow)
        {
            // Exampel from EditRecord
            // InterestRow := (FMultiTableDS.PPartnerInterest.Rows.Find(
            // [FMultiTableDS.PPartner.Row[0].PartnerKey, FInterestNumber]) as PPartnerInterestRow);
            // [Finterest,FMulti...
            // this is the same always????
            APartnerInterestRow =
                ((PPartnerInterestRow)FMultiTableDS.PPartnerInterest.Rows.Find(new Object[] { FMultiTableDS.PPartner[0].PartnerKey, FInterestNumber }));

            // Call EndEdit on all DataRows that are editable in the Detail UserControl.
            // THIS IS ESSENTIAL!!! It makes the changes that the user has made permanent.
            if (APartnerInterestRow == null)
            {
                MessageBox.Show("TUCPartnerInterestsLogic.ProcessEditedRecord:  APartnerInterestRow is nil" + FInterest.ToString());
            }
            else
            {
                APartnerInterestRow.EndEdit();

                // New Address?
                if ((APartnerInterestRow.RowState == DataRowState.Added) && FIsRecordBeingAdded)
                {
                    FIsRecordBeingAdded = false;

                    // The 4GL Petra screen didn't set the StatusCode to active when a new Subscription was added.
                    // FMultiTableDS.PPartner.Row[0].StatusCode := 'ACTIVE';
                }
            }
        }