/// <summary> /// Detail 'Amount' must be positive or 0 /// </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> public static void ValidateApDocumentDetailManual(object AContext, AApDocumentDetailRow ARow, ref TVerificationResultCollection AVerificationResultCollection) { DataColumn ValidationColumn; TVerificationResult VerificationResult; // Don't validate deleted DataRows if (ARow.RowState == DataRowState.Deleted) { return; } // 'Detail Amount' must be positive or 0 ValidationColumn = ARow.Table.Columns[AApDocumentDetailTable.ColumnAmountId]; if (true) { VerificationResult = TNumericalChecks.IsPositiveOrZeroDecimal(ARow.IsAmountNull() ? 0 : ARow.Amount, String.Empty, AContext, ValidationColumn); // Handle addition/removal to/from TVerificationResultCollection AVerificationResultCollection.Auto_Add_Or_AddOrRemove(AContext, VerificationResult); } }
/// initialise some comboboxes private void BeforeShowDetailsManual(AApDocumentDetailRow ARow) { if (ARow == null) { return; } grdDetails.Columns[1].Width = pnlDetailGrid.Width - 380; // It doesn't really work having these here - grdDetails.Columns[0].Width = 90; // there's something else that overrides these settings. grdDetails.Columns[2].Width = 200; grdDetails.Columns[3].Width = 90; // if this document was already posted, then we need all account and cost centre codes, because old codes might have been used bool ActiveOnly = ("|POSTED|PARTPAID|PAID|".IndexOf("|" + FMainDS.AApDocument[0].DocumentStatus) < 0); FPetraUtilsObject.SuppressChangeDetection = true; TFinanceControls.InitialiseAccountList(ref cmbDetailAccountCode, ARow.LedgerNumber, true, false, ActiveOnly, false); TFinanceControls.InitialiseCostCentreList(ref cmbDetailCostCentreCode, ARow.LedgerNumber, true, false, ActiveOnly, false); FPetraUtilsObject.SuppressChangeDetection = false; EnableControls(); Decimal ExchangeRateToBase = 0; if (txtExchangeRateToBase.NumberValueDecimal.HasValue) { ExchangeRateToBase = txtExchangeRateToBase.NumberValueDecimal.Value; } if (ARow.IsAmountNull() || (ExchangeRateToBase == 0)) { txtDetailBaseAmount.NumberValueDecimal = null; } else { decimal DetailAmount = Convert.ToDecimal(ARow.Amount); DetailAmount /= ExchangeRateToBase; txtDetailBaseAmount.NumberValueDecimal = DetailAmount; } }
/// initialise some comboboxes private void BeforeShowDetailsManual(AApDocumentDetailRow ARow) { if (ARow == null) { return; } grdDetails.Columns[1].Width = pnlDetailGrid.Width - 380; // It doesn't really work having these here - grdDetails.Columns[0].Width = 90; // there's something else that overrides these settings. grdDetails.Columns[2].Width = 200; grdDetails.Columns[3].Width = 90; // if this document was already posted, then we need all account and cost centre codes, because old codes might have been used bool ActiveOnly = ("|POSTED|PARTPAID|PAID|".IndexOf("|" + FMainDS.AApDocument[0].DocumentStatus) < 0); FPetraUtilsObject.SuppressChangeDetection = true; TFinanceControls.InitialiseAccountList(ref cmbDetailAccountCode, ARow.LedgerNumber, true, false, ActiveOnly, false); TFinanceControls.InitialiseCostCentreList(ref cmbDetailCostCentreCode, ARow.LedgerNumber, true, false, ActiveOnly, false); FPetraUtilsObject.SuppressChangeDetection = false; EnableControls(); Decimal ExchangeRateToBase = 0; if (txtExchangeRateToBase.NumberValueDecimal.HasValue) { ExchangeRateToBase = txtExchangeRateToBase.NumberValueDecimal.Value; } if (ARow.IsAmountNull() || (ExchangeRateToBase == 0)) { txtDetailBaseAmount.NumberValueDecimal = null; } else { decimal DetailAmount = Convert.ToDecimal(ARow.Amount); DetailAmount /= ExchangeRateToBase; txtDetailBaseAmount.NumberValueDecimal = DetailAmount; } }