private void ValidateDataDetailsManual(GLBatchTDSATransactionRow ARow)
        {
            TVerificationResultCollection VerificationResultCollection = FPetraUtilsObject.VerificationResultCollection;

            TSharedFinanceValidation_GL.ValidateAllocationJournalDialog(this, ARow, rbtAmountOption.Checked, txtTotalAmount.NumberValueDecimal,
                                                                        ref VerificationResultCollection, FPetraUtilsObject.ValidationControlsDict);

            if (!FAnalysisAttributesLogic.AccountAnalysisAttributeCountIsCorrect(ARow.TransactionNumber, ARow.AccountCode, FMainDS))
            {
                DataColumn          ValidationColumn;
                TVerificationResult VerificationResult = null;
                object ValidationContext;

                ValidationColumn  = ARow.Table.Columns[ATransactionTable.ColumnAccountCodeId];
                ValidationContext = "unused because of OverrideResultText";

                // This code is only running because of failure, so cause an error to occur.
                VerificationResult = TStringChecks.StringMustNotBeEmpty("",
                                                                        ValidationContext.ToString(),
                                                                        this, ValidationColumn, null);
                VerificationResult.OverrideResultText(String.Format(Catalog.GetString(
                                                                        "A value must be entered for the 'Analysis Attribute' for the 'From Allocation's' Account Code {0}."),
                                                                    ARow.AccountCode));

                // Handle addition/removal to/from TVerificationResultCollection
                VerificationResultCollection.Auto_Add_Or_AddOrRemove(grdToAnalAttributes, VerificationResult, ValidationColumn, true);
            }

            String ValueRequiredForType;

            if (!FAnalysisAttributesLogic.AccountAnalysisAttributesValuesExist(ARow.TransactionNumber, ARow.AccountCode, FMainDS,
                                                                               out ValueRequiredForType))
            {
                DataColumn          ValidationColumn;
                TVerificationResult VerificationResult = null;
                object ValidationContext;

                ValidationColumn  = ARow.Table.Columns[ATransactionTable.ColumnAccountCodeId];
                ValidationContext = String.Format("Analysis code {0} for Account Code {1}",
                                                  ValueRequiredForType,
                                                  ARow.AccountCode);

                // This code is only running because of failure, so cause an error to occur.
                VerificationResult = TStringChecks.StringMustNotBeEmpty("",
                                                                        ValidationContext.ToString(),
                                                                        this, ValidationColumn, null);

                // Handle addition/removal to/from TVerificationResultCollection
                VerificationResultCollection.Auto_Add_Or_AddOrRemove(this, VerificationResult, ValidationColumn, true);
            }

            if ((VerificationResultCollection.Count == 0) && FValidateEverything)
            {
                ValidateEverything();
            }
        }
        private void ValidateDataDetailsManual(PDataLabelRow ARow)
        {
            // For this validation we have to validate the UsedBy data here in the manual code.
            // This is because it is not backed directly by a row in a data table.
            // Nor is the control associated with a column in any data table
            TVerificationResultCollection VerificationResultCollection = FPetraUtilsObject.VerificationResultCollection;
            DataColumn          ValidationColumn;
            TVerificationResult VerificationResult = null;

            // Personnel context is bound to be valid because it has no UsedBy UI
            if ((CurrentContext == Context.Partner) || (CurrentContext == Context.Application))
            {
                // The added column at the end of the table, which is a concatenated string of checkedListBox entries, must not be empty
                ValidationColumn   = ARow.Table.Columns[UsedByColumnOrdinal];
                VerificationResult = TStringChecks.StringMustNotBeEmpty(ARow[UsedByColumnOrdinal].ToString(),
                                                                        GUIUsedBy,
                                                                        this, ValidationColumn, clbUsedBy);

                if (VerificationResult != null)
                {
                    if (CurrentContext == Context.Partner)
                    {
                        VerificationResult.OverrideResultText(Catalog.GetString("You must check at least one box in the list of Partner classes."));
                    }
                    else if (CurrentContext == Context.Application)
                    {
                        VerificationResult.OverrideResultText(Catalog.GetString("You must check at least one box in the list of Application types."));
                    }
                }

                // Handle addition to/removal from TVerificationResultCollection.
                VerificationResultCollection.Auto_Add_Or_AddOrRemove(this, VerificationResult, ValidationColumn, false);
            }

            // Now call the central validation routine for the other verification tasks
            TSharedValidation_CacheableDataTables.ValidateLocalDataFieldSetup(this, ARow, ref VerificationResultCollection,
                                                                              FPetraUtilsObject.ValidationControlsDict);
        }
예제 #3
0
        private void ValidateDataDetailsManual(SSystemDefaultsRow ARow)
        {
            if (FShowingSysAdminCodes)
            {
                return;
            }

            TVerificationResultCollection verificationResults = FPetraUtilsObject.VerificationResultCollection;
            DataColumn          validationColumn   = ARow.Table.Columns[SSystemDefaultsTable.ColumnDefaultValueId];
            TVerificationResult verificationResult = null;

            // First we need to validate that there were no errors setting up the controls for this row
            if (!FControlsDataTable.Validate(ARow.DefaultValue, validationColumn, this, verificationResults))
            {
                // No point in carrying on with other validations because the controls are all messed up
                return;
            }

            // Individual rows can be validated to check that settings code values are ok.
            if (string.Compare(ARow.DefaultCode, SharedConstants.SYSDEFAULT_LOCALISEDCOUNTYLABEL, true) == 0)
            {
                Control[] validationControl = pnlValues.Controls.Find("cValue_0", true);

                if (validationControl.Length > 0)
                {
                    verificationResult = TStringChecks.StringMustNotBeEmpty(ARow.DefaultValue, "",
                                                                            this, validationColumn, validationControl[0]);

                    if (verificationResult != null)
                    {
                        verificationResult.OverrideResultText(CommonResourcestrings.StrSettingCannotBeEmpty);
                    }
                }

                verificationResults.Auto_Add_Or_AddOrRemove(this, verificationResult, validationColumn);
            }
        }