private void ValidateDataManual(PSubscriptionRow ARow) { DataColumn ValidationColumn; DataColumn ValidationColumn2; TValidationControlsData ValidationControlsData; TValidationControlsData ValidationControlsData2; TVerificationResult VerificationResult = null; bool NoClearingOfVerificationResult = false; TVerificationResultCollection VerificationResultCollection = FPetraUtilsObject.VerificationResultCollection; if (!chkChangeReasonSubsGivenCode.Checked) { if (VerificationResultCollection.Contains(ARow.Table.Columns[PSubscriptionTable.ColumnReasonSubsGivenCodeId])) { VerificationResultCollection.Remove(ARow.Table.Columns[PSubscriptionTable.ColumnReasonSubsGivenCodeId]); } } if (!chkChangeStartDate.Checked) { if (VerificationResultCollection.Contains(ARow.Table.Columns[PSubscriptionTable.ColumnStartDateId])) { VerificationResultCollection.Remove(ARow.Table.Columns[PSubscriptionTable.ColumnStartDateId]); } } // if 'SubscriptionStatus' is CANCELLED or EXPIRED then 'Reason Ended' and 'End Date' must be set ValidationColumn = ARow.Table.Columns[PSubscriptionTable.ColumnSubscriptionStatusId]; if (FPetraUtilsObject.ValidationControlsDict.TryGetValue(ValidationColumn, out ValidationControlsData)) { if ((!ARow.IsSubscriptionStatusNull()) && ((ARow.SubscriptionStatus == "CANCELLED") || (ARow.SubscriptionStatus == "EXPIRED"))) { if (ARow.IsReasonSubsCancelledCodeNull() || (ARow.ReasonSubsCancelledCode == String.Empty)) { VerificationResult = new TScreenVerificationResult(new TVerificationResult(this, ErrorCodes.GetErrorInfo(PetraErrorCodes.ERR_SUBSCRIPTION_REASONENDEDMANDATORY_WHEN_EXPIRED)), ValidationColumn, ValidationControlsData.ValidationControl); } else if (ARow.IsDateCancelledNull()) { VerificationResult = new TScreenVerificationResult(new TVerificationResult(this, ErrorCodes.GetErrorInfo(PetraErrorCodes.ERR_SUBSCRIPTION_DATEENDEDMANDATORY_WHEN_EXPIRED)), ValidationColumn, ValidationControlsData.ValidationControl); } } else { // if 'SubscriptionStatus' is not CANCELLED or EXPIRED then 'Reason Ended' and 'End Date' must NOT be set if (chkChangeReasonSubsCancelledCode.Checked) { if ((ARow.IsReasonSubsCancelledCodeNull()) || (ARow.ReasonSubsCancelledCode == String.Empty)) { VerificationResult = new TScreenVerificationResult(new TVerificationResult(this, ErrorCodes.GetErrorInfo(PetraErrorCodes.ERR_SUBSCRIPTION_REASONENDEDSET_WHEN_ACTIVE)), ValidationColumn, ValidationControlsData.ValidationControl); } } else if (!chkChangeReasonSubsCancelledCode.Checked) { if (ARow.SubscriptionStatus != String.Empty) { VerificationResult = new TScreenVerificationResult(new TVerificationResult(this, ErrorCodes.GetErrorInfo(PetraErrorCodes.ERR_SUBSCRIPTION_REASONENDEDSET_WHEN_ACTIVE)), ValidationColumn, ValidationControlsData.ValidationControl); VerificationResult.OverrideResultText(Catalog.GetString( "Reason Ended must be cleared when a Subscription is made active.")); NoClearingOfVerificationResult = true; } } if ((!ARow.IsReasonSubsCancelledCodeNull()) && (ARow.ReasonSubsCancelledCode != String.Empty)) { VerificationResult = new TScreenVerificationResult(new TVerificationResult(this, ErrorCodes.GetErrorInfo(PetraErrorCodes.ERR_SUBSCRIPTION_REASONENDEDSET_WHEN_ACTIVE)), ValidationColumn, ValidationControlsData.ValidationControl); } else if (!ARow.IsDateCancelledNull()) { VerificationResult = new TScreenVerificationResult(new TVerificationResult(this, ErrorCodes.GetErrorInfo(PetraErrorCodes.ERR_SUBSCRIPTION_DATEENDEDSET_WHEN_ACTIVE)), ValidationColumn, ValidationControlsData.ValidationControl); } else if (!chkChangeDateCancelled.Checked) { if (ARow.SubscriptionStatus != String.Empty) { VerificationResult = new TScreenVerificationResult(new TVerificationResult(this, ErrorCodes.GetErrorInfo(PetraErrorCodes.ERR_SUBSCRIPTION_DATEENDEDSET_WHEN_ACTIVE)), ValidationColumn, ValidationControlsData.ValidationControl); VerificationResult.OverrideResultText(Catalog.GetString("Date Ended must be cleared when a Subscription is made active.")); } } else { if (!NoClearingOfVerificationResult) { VerificationResult = null; } } } // Handle addition/removal to/from TVerificationResultCollection VerificationResultCollection.Auto_Add_Or_AddOrRemove(this, VerificationResult, ValidationColumn); // perform checks that include 'Start Date' ---------------------------------------------------------------- if (chkChangeStartDate.Checked) { ValidationColumn = ARow.Table.Columns[PSubscriptionTable.ColumnStartDateId]; if (FPetraUtilsObject.ValidationControlsDict.TryGetValue(ValidationColumn, out ValidationControlsData)) { // 'Start Date' must not be later than 'Expiry Date' if (chkChangeExpiryDate.Checked) { ValidationColumn2 = ARow.Table.Columns[PSubscriptionTable.ColumnExpiryDateId]; if (FPetraUtilsObject.ValidationControlsDict.TryGetValue(ValidationColumn2, out ValidationControlsData2)) { VerificationResult = TDateChecks.FirstLesserOrEqualThanSecondDate (ARow.StartDate, ARow.ExpiryDate, ValidationControlsData.ValidationControlLabel, ValidationControlsData2.ValidationControlLabel, this, ValidationColumn, ValidationControlsData.ValidationControl); // Handle addition to/removal from TVerificationResultCollection VerificationResultCollection.Auto_Add_Or_AddOrRemove(this, VerificationResult, ValidationColumn); } } // 'Start Date' must not be later than 'Renewal Date' if (chkChangeRenewalDate.Checked) { ValidationColumn2 = ARow.Table.Columns[PSubscriptionTable.ColumnSubscriptionRenewalDateId]; if (FPetraUtilsObject.ValidationControlsDict.TryGetValue(ValidationColumn2, out ValidationControlsData2)) { VerificationResult = TDateChecks.FirstLesserOrEqualThanSecondDate (ARow.StartDate, ARow.SubscriptionRenewalDate, ValidationControlsData.ValidationControlLabel, ValidationControlsData2.ValidationControlLabel, this, ValidationColumn, ValidationControlsData.ValidationControl); // Handle addition to/removal from TVerificationResultCollection VerificationResultCollection.Auto_Add_Or_AddOrRemove(this, VerificationResult, ValidationColumn); } } // 'Start Date' must not be later than 'End Date' if (chkChangeDateCancelled.Checked) { ValidationColumn2 = ARow.Table.Columns[PSubscriptionTable.ColumnDateCancelledId]; if (FPetraUtilsObject.ValidationControlsDict.TryGetValue(ValidationColumn2, out ValidationControlsData2)) { VerificationResult = TDateChecks.FirstLesserOrEqualThanSecondDate (ARow.StartDate, ARow.DateCancelled, ValidationControlsData.ValidationControlLabel, ValidationControlsData2.ValidationControlLabel, this, ValidationColumn, ValidationControlsData.ValidationControl); // Handle addition to/removal from TVerificationResultCollection VerificationResultCollection.Auto_Add_Or_AddOrRemove(this, VerificationResult, ValidationColumn); } } // 'Start Date' must not be later than 'Notice Sent' if (chkChangeDateNoticeSent.Checked) { ValidationColumn2 = ARow.Table.Columns[PSubscriptionTable.ColumnDateNoticeSentId]; if (FPetraUtilsObject.ValidationControlsDict.TryGetValue(ValidationColumn2, out ValidationControlsData2)) { VerificationResult = TDateChecks.FirstLesserOrEqualThanSecondDate (ARow.StartDate, ARow.DateNoticeSent, ValidationControlsData.ValidationControlLabel, ValidationControlsData2.ValidationControlLabel, this, ValidationColumn, ValidationControlsData.ValidationControl); // Handle addition to/removal from TVerificationResultCollection VerificationResultCollection.Auto_Add_Or_AddOrRemove(this, VerificationResult, ValidationColumn); } } // 'Start Date' must not be later than 'First Sent' if (chkChangeFirstIssue.Checked) { ValidationColumn2 = ARow.Table.Columns[PSubscriptionTable.ColumnFirstIssueId]; if (FPetraUtilsObject.ValidationControlsDict.TryGetValue(ValidationColumn2, out ValidationControlsData2)) { VerificationResult = TDateChecks.FirstLesserOrEqualThanSecondDate (ARow.StartDate, ARow.FirstIssue, ValidationControlsData.ValidationControlLabel, ValidationControlsData2.ValidationControlLabel, this, ValidationColumn, ValidationControlsData.ValidationControl); // Handle addition to/removal from TVerificationResultCollection VerificationResultCollection.Auto_Add_Or_AddOrRemove(this, VerificationResult, ValidationColumn); } } // 'Start Date' must not be later than 'Last Date' if (chkChangeLastIssue.Checked) { ValidationColumn2 = ARow.Table.Columns[PSubscriptionTable.ColumnLastIssueId]; if (FPetraUtilsObject.ValidationControlsDict.TryGetValue(ValidationColumn2, out ValidationControlsData2)) { VerificationResult = TDateChecks.FirstLesserOrEqualThanSecondDate (ARow.StartDate, ARow.LastIssue, ValidationControlsData.ValidationControlLabel, ValidationControlsData2.ValidationControlLabel, this, ValidationColumn, ValidationControlsData.ValidationControl); // Handle addition to/removal from TVerificationResultCollection VerificationResultCollection.Auto_Add_Or_AddOrRemove(this, VerificationResult, ValidationColumn); } } } } // perform checks that include 'Date Renewed' ---------------------------------------------------------------- if (chkChangeRenewalDate.Checked) { ValidationColumn = ARow.Table.Columns[PSubscriptionTable.ColumnSubscriptionRenewalDateId]; if (FPetraUtilsObject.ValidationControlsDict.TryGetValue(ValidationColumn, out ValidationControlsData)) { // 'Date Renewed' must not be later than today VerificationResult = TDateChecks.FirstLesserOrEqualThanSecondDate (ARow.SubscriptionRenewalDate, DateTime.Today, ValidationControlsData.ValidationControlLabel, Catalog.GetString("Today's Date"), this, ValidationColumn, ValidationControlsData.ValidationControl); // Handle addition to/removal from TVerificationResultCollection VerificationResultCollection.Auto_Add_Or_AddOrRemove(this, VerificationResult, ValidationColumn); // 'Date Renewed' must not be later than 'Date Expired' if (chkChangeExpiryDate.Checked) { ValidationColumn2 = ARow.Table.Columns[PSubscriptionTable.ColumnExpiryDateId]; if (FPetraUtilsObject.ValidationControlsDict.TryGetValue(ValidationColumn2, out ValidationControlsData2)) { VerificationResult = TDateChecks.FirstLesserOrEqualThanSecondDate (ARow.SubscriptionRenewalDate, ARow.ExpiryDate, ValidationControlsData.ValidationControlLabel, ValidationControlsData2.ValidationControlLabel, this, ValidationColumn, ValidationControlsData.ValidationControl); // Handle addition to/removal from TVerificationResultCollection VerificationResultCollection.Auto_Add_Or_AddOrRemove(this, VerificationResult, ValidationColumn); } } // 'Date Renewed' must not be later than 'Date Notice Sent' if (chkChangeDateNoticeSent.Checked) { ValidationColumn2 = ARow.Table.Columns[PSubscriptionTable.ColumnDateNoticeSentId]; if (FPetraUtilsObject.ValidationControlsDict.TryGetValue(ValidationColumn2, out ValidationControlsData2)) { VerificationResult = TDateChecks.FirstLesserOrEqualThanSecondDate (ARow.SubscriptionRenewalDate, ARow.DateNoticeSent, ValidationControlsData.ValidationControlLabel, ValidationControlsData2.ValidationControlLabel, this, ValidationColumn, ValidationControlsData.ValidationControl); // Handle addition to/removal from TVerificationResultCollection VerificationResultCollection.Auto_Add_Or_AddOrRemove(this, VerificationResult, ValidationColumn); } } } } // 'Date Cancelled' must not be before today if (chkChangeDateCancelled.Checked) { ValidationColumn = ARow.Table.Columns[PSubscriptionTable.ColumnDateCancelledId]; if (FPetraUtilsObject.ValidationControlsDict.TryGetValue(ValidationColumn, out ValidationControlsData)) { VerificationResult = TDateChecks.FirstLesserOrEqualThanSecondDate (ARow.DateCancelled, DateTime.Today, ValidationControlsData.ValidationControlLabel, Catalog.GetString("Today's Date"), this, ValidationColumn, ValidationControlsData.ValidationControl); // Handle addition to/removal from TVerificationResultCollection VerificationResultCollection.Auto_Add_Or_AddOrRemove(this, VerificationResult, ValidationColumn); } } // 'First Sent' must not be later than 'Last Sent' if (chkChangeFirstIssue.Checked && chkChangeLastIssue.Checked) { ValidationColumn = ARow.Table.Columns[PSubscriptionTable.ColumnFirstIssueId]; if (FPetraUtilsObject.ValidationControlsDict.TryGetValue(ValidationColumn, out ValidationControlsData)) { ValidationColumn2 = ARow.Table.Columns[PSubscriptionTable.ColumnLastIssueId]; if (FPetraUtilsObject.ValidationControlsDict.TryGetValue(ValidationColumn2, out ValidationControlsData2)) { VerificationResult = TDateChecks.FirstLesserOrEqualThanSecondDate (ARow.FirstIssue, ARow.LastIssue, ValidationControlsData.ValidationControlLabel, ValidationControlsData2.ValidationControlLabel, this, ValidationColumn, ValidationControlsData.ValidationControl); // Handle addition to/removal from TVerificationResultCollection VerificationResultCollection.Auto_Add_Or_AddOrRemove(this, VerificationResult, ValidationColumn); } } } // 'First Sent' must not be later than today if (chkChangeFirstIssue.Checked) { ValidationColumn = ARow.Table.Columns[PSubscriptionTable.ColumnFirstIssueId]; if (FPetraUtilsObject.ValidationControlsDict.TryGetValue(ValidationColumn, out ValidationControlsData)) { VerificationResult = TDateChecks.FirstLesserOrEqualThanSecondDate (ARow.FirstIssue, DateTime.Today, ValidationControlsData.ValidationControlLabel, Catalog.GetString("Today's Date"), this, ValidationColumn, ValidationControlsData.ValidationControl); // Handle addition to/removal from TVerificationResultCollection VerificationResultCollection.Auto_Add_Or_AddOrRemove(this, VerificationResult, ValidationColumn); } } // 'Date Started' must not be later than 'First Sent' if (chkChangeFirstIssue.Checked && chkChangeStartDate.Checked) { ValidationColumn = ARow.Table.Columns[PSubscriptionTable.ColumnStartDateId]; if (FPetraUtilsObject.ValidationControlsDict.TryGetValue(ValidationColumn, out ValidationControlsData)) { ValidationColumn2 = ARow.Table.Columns[PSubscriptionTable.ColumnFirstIssueId]; if (FPetraUtilsObject.ValidationControlsDict.TryGetValue(ValidationColumn2, out ValidationControlsData2)) { VerificationResult = TDateChecks.FirstLesserOrEqualThanSecondDate (ARow.StartDate, ARow.FirstIssue, ValidationControlsData.ValidationControlLabel, ValidationControlsData2.ValidationControlLabel, this, ValidationColumn, ValidationControlsData.ValidationControl); // Handle addition to/removal from TVerificationResultCollection VerificationResultCollection.Auto_Add_Or_AddOrRemove(this, VerificationResult, ValidationColumn); } } } // 'Last Sent' must not be later than today if (chkChangeLastIssue.Checked) { ValidationColumn = ARow.Table.Columns[PSubscriptionTable.ColumnLastIssueId]; if (FPetraUtilsObject.ValidationControlsDict.TryGetValue(ValidationColumn, out ValidationControlsData)) { VerificationResult = TDateChecks.FirstLesserOrEqualThanSecondDate (ARow.LastIssue, DateTime.Today, ValidationControlsData.ValidationControlLabel, Catalog.GetString("Today's Date"), this, ValidationColumn, ValidationControlsData.ValidationControl); // Handle addition to/removal from TVerificationResultCollection VerificationResultCollection.Auto_Add_Or_AddOrRemove(this, VerificationResult, ValidationColumn); } } } }
private void ValidateDataManual(PSubscriptionRow ARow) { DataColumn ValidationColumn; TValidationControlsData ValidationControlsData; TVerificationResult VerificationResult = null; bool NoClearingOfVerificationResult = false; TVerificationResultCollection VerificationResultCollection = FPetraUtilsObject.VerificationResultCollection; if (!chkChangeReasonSubsGivenCode.Checked) { if (VerificationResultCollection.Contains(ARow.Table.Columns[PSubscriptionTable.ColumnReasonSubsGivenCodeId])) { VerificationResultCollection.Remove(ARow.Table.Columns[PSubscriptionTable.ColumnReasonSubsGivenCodeId]); } } if (!chkChangeStartDate.Checked) { if (VerificationResultCollection.Contains(ARow.Table.Columns[PSubscriptionTable.ColumnStartDateId])) { VerificationResultCollection.Remove(ARow.Table.Columns[PSubscriptionTable.ColumnStartDateId]); } } // if 'SubscriptionStatus' is CANCELLED or EXPIRED then 'Reason Ended' and 'End Date' must be set ValidationColumn = ARow.Table.Columns[PSubscriptionTable.ColumnSubscriptionStatusId]; if (FPetraUtilsObject.ValidationControlsDict.TryGetValue(ValidationColumn, out ValidationControlsData)) { if ((!ARow.IsSubscriptionStatusNull()) && ((ARow.SubscriptionStatus == "CANCELLED") || (ARow.SubscriptionStatus == "EXPIRED"))) { if (ARow.IsReasonSubsCancelledCodeNull() || (ARow.ReasonSubsCancelledCode == String.Empty)) { VerificationResult = new TScreenVerificationResult(new TVerificationResult(this, ErrorCodes.GetErrorInfo(PetraErrorCodes.ERR_SUBSCRIPTION_REASONENDEDMANDATORY_WHEN_EXPIRED)), ValidationColumn, ValidationControlsData.ValidationControl); } else if (ARow.IsDateCancelledNull()) { VerificationResult = new TScreenVerificationResult(new TVerificationResult(this, ErrorCodes.GetErrorInfo(PetraErrorCodes.ERR_SUBSCRIPTION_DATEENDEDMANDATORY_WHEN_EXPIRED)), ValidationColumn, ValidationControlsData.ValidationControl); } } else { // if 'SubscriptionStatus' is not CANCELLED or EXPIRED then 'Reason Ended' and 'End Date' must NOT be set if (chkChangeReasonSubsCancelledCode.Checked) { if ((ARow.IsReasonSubsCancelledCodeNull()) || (ARow.ReasonSubsCancelledCode == String.Empty)) { VerificationResult = new TScreenVerificationResult(new TVerificationResult(this, ErrorCodes.GetErrorInfo(PetraErrorCodes.ERR_SUBSCRIPTION_REASONENDEDSET_WHEN_ACTIVE)), ValidationColumn, ValidationControlsData.ValidationControl); } } else if (!chkChangeReasonSubsCancelledCode.Checked) { if (ARow.SubscriptionStatus != String.Empty) { VerificationResult = new TScreenVerificationResult(new TVerificationResult(this, ErrorCodes.GetErrorInfo(PetraErrorCodes.ERR_SUBSCRIPTION_REASONENDEDSET_WHEN_ACTIVE)), ValidationColumn, ValidationControlsData.ValidationControl); VerificationResult.OverrideResultText(Catalog.GetString( "Reason Ended must be cleared when a Subscription is made active.")); NoClearingOfVerificationResult = true; } } if ((!ARow.IsReasonSubsCancelledCodeNull()) && (ARow.ReasonSubsCancelledCode != String.Empty)) { VerificationResult = new TScreenVerificationResult(new TVerificationResult(this, ErrorCodes.GetErrorInfo(PetraErrorCodes.ERR_SUBSCRIPTION_REASONENDEDSET_WHEN_ACTIVE)), ValidationColumn, ValidationControlsData.ValidationControl); } else if (!ARow.IsDateCancelledNull()) { VerificationResult = new TScreenVerificationResult(new TVerificationResult(this, ErrorCodes.GetErrorInfo(PetraErrorCodes.ERR_SUBSCRIPTION_DATEENDEDSET_WHEN_ACTIVE)), ValidationColumn, ValidationControlsData.ValidationControl); } else if (!chkChangeDateCancelled.Checked) { if (ARow.SubscriptionStatus != String.Empty) { VerificationResult = new TScreenVerificationResult(new TVerificationResult(this, ErrorCodes.GetErrorInfo(PetraErrorCodes.ERR_SUBSCRIPTION_DATEENDEDSET_WHEN_ACTIVE)), ValidationColumn, ValidationControlsData.ValidationControl); VerificationResult.OverrideResultText(Catalog.GetString("Date Ended must be cleared when a Subscription is made active.")); } } else { if (!NoClearingOfVerificationResult) { VerificationResult = null; } } } // Handle addition/removal to/from TVerificationResultCollection VerificationResultCollection.Auto_Add_Or_AddOrRemove(this, VerificationResult, ValidationColumn); } }