本文整理汇总了C#中TDBTransaction类的典型用法代码示例。如果您正苦于以下问题:C# TDBTransaction类的具体用法?C# TDBTransaction怎么用?C# TDBTransaction使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
TDBTransaction类属于命名空间,在下文中一共展示了TDBTransaction类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: CreateANewGiftBatchRow
/// <summary>
/// create a new batch with a consecutive batch number in the ledger
/// for call inside a server function
/// for performance reasons submitting (save the data in the database) is done later (not here)
/// </summary>
/// <param name="MainDS"></param>
/// <param name="Transaction"></param>
/// <param name="LedgerTable"></param>
/// <param name="ALedgerNumber"></param>
/// <param name="ADateEffective"></param>
/// <param name="AForceEffectiveDateToFit"></param>
/// <returns>the new gift batch row</returns>
public static AGiftBatchRow CreateANewGiftBatchRow(ref GiftBatchTDS MainDS,
ref TDBTransaction Transaction,
ref ALedgerTable LedgerTable,
Int32 ALedgerNumber,
DateTime ADateEffective,
bool AForceEffectiveDateToFit = true)
{
AGiftBatchRow NewRow = MainDS.AGiftBatch.NewRowTyped(true);
NewRow.LedgerNumber = ALedgerNumber;
LedgerTable[0].LastGiftBatchNumber++;
NewRow.BatchNumber = LedgerTable[0].LastGiftBatchNumber;
Int32 BatchYear, BatchPeriod;
// if DateEffective is outside the range of open periods, use the most fitting date
TFinancialYear.GetLedgerDatePostingPeriod(ALedgerNumber,
ref ADateEffective,
out BatchYear,
out BatchPeriod,
Transaction,
AForceEffectiveDateToFit);
NewRow.BatchYear = BatchYear;
NewRow.BatchPeriod = BatchPeriod;
NewRow.GlEffectiveDate = ADateEffective;
NewRow.ExchangeRateToBase = 1.0M;
NewRow.BatchDescription = "PLEASE ENTER A DESCRIPTION";
NewRow.BankAccountCode = TLedgerInfo.GetDefaultBankAccount(ALedgerNumber);
NewRow.BankCostCentre = TLedgerInfo.GetStandardCostCentre(ALedgerNumber);
NewRow.CurrencyCode = LedgerTable[0].BaseCurrency;
MainDS.AGiftBatch.Rows.Add(NewRow);
return NewRow;
}
示例2: GetFieldApplicationTypeListTable
private DataTable GetFieldApplicationTypeListTable(TDBTransaction AReadTransaction, string ATableName)
{
PtApplicationTypeRow template = new PtApplicationTypeTable().NewRowTyped(false);
template.AppFormType = "LONG FORM";
return PtApplicationTypeAccess.LoadUsingTemplate(template, AReadTransaction);
}
示例3: LoadAnalysisAttributes
private static void LoadAnalysisAttributes(AccountsPayableTDS AMainDS, Int32 ALedgerNumber, TDBTransaction ATransaction)
{
{ // Load via template...
AAnalysisAttributeRow TemplateRow = AMainDS.AAnalysisAttribute.NewRowTyped(false);
TemplateRow.LedgerNumber = ALedgerNumber;
TemplateRow.Active = true;
AAnalysisAttributeAccess.LoadUsingTemplate(AMainDS, TemplateRow, ATransaction);
}
AFreeformAnalysisAccess.LoadViaALedger(AMainDS, ALedgerNumber, ATransaction);
}
示例4: GetAccountingPeriodListTable
private DataTable GetAccountingPeriodListTable(TDBTransaction AReadTransaction, System.Int32 ALedgerNumber, string ATableName)
{
StringCollection FieldList = new StringCollection();
FieldList.Add(AAccountingPeriodTable.GetLedgerNumberDBName());
FieldList.Add(AAccountingPeriodTable.GetAccountingPeriodNumberDBName());
FieldList.Add(AAccountingPeriodTable.GetAccountingPeriodDescDBName());
FieldList.Add(AAccountingPeriodTable.GetPeriodStartDateDBName());
FieldList.Add(AAccountingPeriodTable.GetPeriodEndDateDBName());
return AAccountingPeriodAccess.LoadViaALedger(ALedgerNumber, FieldList, AReadTransaction);
}
示例5: GetBestAddress
/// find the current best address for the partner
public static bool GetBestAddress(Int64 APartnerKey,
out PLocationTable AAddress,
out string ACountryNameLocal,
TDBTransaction ATransaction)
{
AAddress = null;
ACountryNameLocal = "";
DataSet PartnerLocationsDS = new DataSet();
PartnerLocationsDS.Tables.Add(new PPartnerLocationTable());
PartnerLocationsDS.Tables.Add(new PCountryTable());
DataTable PartnerLocationTable = PartnerLocationsDS.Tables[PPartnerLocationTable.GetTableName()];
PCountryTable CountryTable = (PCountryTable)PartnerLocationsDS.Tables[PCountryTable.GetTableName()];
CountryTable.DefaultView.Sort = PCountryTable.GetCountryCodeDBName();
// add special column BestAddress and Icon
PartnerLocationTable.Columns.Add(new System.Data.DataColumn("BestAddress", typeof(Boolean)));
PartnerLocationTable.Columns.Add(new System.Data.DataColumn("Icon", typeof(Int32)));
// find all locations of the partner, put it into a dataset
PPartnerLocationAccess.LoadViaPPartner(PartnerLocationsDS, APartnerKey, ATransaction);
Ict.Petra.Shared.MPartner.Calculations.DeterminePartnerLocationsDateStatus(PartnerLocationsDS);
Ict.Petra.Shared.MPartner.Calculations.DetermineBestAddress(PartnerLocationsDS);
foreach (PPartnerLocationRow row in PartnerLocationTable.Rows)
{
// find the row with BestAddress = 1
if (Convert.ToInt32(row["BestAddress"]) == 1)
{
// we also want the post address, need to load the p_location table:
AAddress = PLocationAccess.LoadByPrimaryKey(row.SiteKey, row.LocationKey, ATransaction);
// watch out for empty country codes
if (AAddress[0].CountryCode.Trim().Length > 0)
{
if (CountryTable.DefaultView.Find(AAddress[0].CountryCode) == -1)
{
CountryTable.Merge(PCountryAccess.LoadByPrimaryKey(AAddress[0].CountryCode, ATransaction));
}
ACountryNameLocal = CountryTable[CountryTable.DefaultView.Find(AAddress[0].CountryCode)].CountryNameLocal;
}
break;
}
}
return AAddress != null;
}
示例6: GetUserListTable
private DataTable GetUserListTable(TDBTransaction AReadTransaction, string ATableName)
{
DataColumn LastAndFirstNameColumn;
DataTable TmpTable = SUserAccess.LoadAll(AReadTransaction);
// add column to display a combination of last and first name
LastAndFirstNameColumn = new DataColumn();
LastAndFirstNameColumn.DataType = System.Type.GetType("System.String");
LastAndFirstNameColumn.ColumnName = MSysManConstants.USER_LAST_AND_FIRST_NAME_COLUMNNAME;
LastAndFirstNameColumn.Expression = string.Format("{0} + ' ' + {1}", SUserTable.GetFirstNameDBName(), SUserTable.GetLastNameDBName());
TmpTable.Columns.Add(LastAndFirstNameColumn);
return TmpTable;
}
示例7: GetData
/// <summary>
/// Loads all available Ledgers and their names into a DataTable
///
/// </summary>
/// <returns>void</returns>
public static DataTable GetData(String ATableName, TDBTransaction AReadTransaction)
{
return DBAccess.GDBAccessObj.SelectDT(
String.Format(
"SELECT {0} AS LedgerNumber, {1} AS LedgerName FROM pub_{2}, pub_{3} " +
"WHERE pub_{2}.{4} = pub_{3}.{4} " + "AND pub_{2}.{5} = 1",
ALedgerTable.GetLedgerNumberDBName(),
PPartnerTable.GetPartnerShortNameDBName(),
ALedgerTable.GetTableDBName(),
PPartnerTable.GetTableDBName(),
PPartnerTable.GetPartnerKeyDBName(),
ALedgerTable.GetLedgerStatusDBName()),
ATableName,
AReadTransaction);
}
示例8: COUNT
/// <summary>
/// use the permissions of the user to get all offices that this user has permissions for
/// </summary>
/// <returns></returns>
private static List <Int64>GetRegistrationOfficeKeysOfUser(TDBTransaction ATransaction)
{
List <Int64>AllowedRegistrationOffices = new List <long>();
// get all offices that have registrations for this event
DataTable offices = DBAccess.GDBAccessObj.SelectDT(
String.Format("SELECT DISTINCT {0} FROM PUB_{1}",
PmShortTermApplicationTable.GetRegistrationOfficeDBName(),
PmShortTermApplicationTable.GetTableDBName()),
"registrationoffice", ATransaction);
// if there are no REG-... module permissions for anyone, allow all offices? this would help with a base database for testing?
Int32 CountRegModules =
Convert.ToInt32(DBAccess.GDBAccessObj.ExecuteScalar("SELECT COUNT(*) FROM " + SModuleTable.GetTableDBName() + " WHERE " +
SModuleTable.GetModuleIdDBName() + " LIKE 'REG-%'", ATransaction));
foreach (DataRow officeRow in offices.Rows)
{
Int64 RegistrationOffice = Convert.ToInt64(officeRow[0]);
try
{
if ((CountRegModules == 0) || TModuleAccessManager.CheckUserModulePermissions(String.Format("REG-{0:10}",
StringHelper.PartnerKeyToStr(RegistrationOffice))))
{
AllowedRegistrationOffices.Add(RegistrationOffice);
}
}
catch (ESecurityModuleAccessDeniedException)
{
// no permissions for this registration office
}
}
// the organizer has access to all attendees
if (AllowedRegistrationOffices.Count > MINIMUM_OFFICES_TO_BECOME_ORGANIZER)
{
AllowedRegistrationOffices = new List <long>();
foreach (DataRow officeRow in offices.Rows)
{
Int64 RegistrationOffice = Convert.ToInt64(officeRow[0]);
AllowedRegistrationOffices.Add(RegistrationOffice);
}
}
return AllowedRegistrationOffices;
}
示例9: GetOutreachListTable
private DataTable GetOutreachListTable(TDBTransaction AReadTransaction, string ATableName)
{
DataTable Table;
DataColumn[] Key = new DataColumn[1];
// Used eg. Select Event Dialog
Table = DBAccess.GDBAccessObj.SelectDT(
"SELECT DISTINCT " +
PPartnerTable.GetPartnerShortNameDBName() +
", " + PPartnerTable.GetPartnerClassDBName() +
", " + PUnitTable.GetOutreachCodeDBName() +
", " + PCountryTable.GetTableDBName() + "." + PCountryTable.GetCountryNameDBName() +
", " + PPartnerLocationTable.GetTableDBName() + "." + PPartnerLocationTable.GetDateEffectiveDBName() +
", " + PPartnerLocationTable.GetTableDBName() + "." + PPartnerLocationTable.GetDateGoodUntilDBName() +
", " + PPartnerTable.GetTableDBName() + "." + PPartnerTable.GetPartnerKeyDBName() +
", " + PUnitTable.GetUnitTypeCodeDBName() +
" FROM PUB." + PPartnerTable.GetTableDBName() +
", PUB." + PUnitTable.GetTableDBName() +
", PUB." + PLocationTable.GetTableDBName() +
", PUB." + PPartnerLocationTable.GetTableDBName() +
", PUB." + PCountryTable.GetTableDBName() +
" WHERE " +
PPartnerTable.GetTableDBName() + "." + PPartnerTable.GetPartnerKeyDBName() + " = " +
PUnitTable.GetTableDBName() + "." + PUnitTable.GetPartnerKeyDBName() + " AND " +
PPartnerTable.GetStatusCodeDBName() + " = 'ACTIVE' AND " +
PPartnerTable.GetTableDBName() + "." + PPartnerTable.GetPartnerKeyDBName() + " = " +
PPartnerLocationTable.GetTableDBName() + "." + PPartnerLocationTable.GetPartnerKeyDBName() + " AND " +
PLocationTable.GetTableDBName() + "." + PLocationTable.GetSiteKeyDBName() + " = " +
PPartnerLocationTable.GetTableDBName() + "." + PPartnerLocationTable.GetSiteKeyDBName() + " AND " +
PLocationTable.GetTableDBName() + "." + PLocationTable.GetLocationKeyDBName() + " = " +
PPartnerLocationTable.GetTableDBName() + "." + PPartnerLocationTable.GetLocationKeyDBName() + " AND " +
PCountryTable.GetTableDBName() + "." + PCountryTable.GetCountryCodeDBName() + " = " +
PLocationTable.GetTableDBName() + "." + PLocationTable.GetCountryCodeDBName() + " AND " +
PUnitTable.GetOutreachCodeDBName() + " <> '' AND (" +
PUnitTable.GetUnitTypeCodeDBName() + " NOT LIKE '%CONF%' AND " +
PUnitTable.GetUnitTypeCodeDBName() + " NOT LIKE '%CONG%')"
,
ATableName, AReadTransaction);
Key[0] = Table.Columns[PPartnerTable.GetPartnerKeyDBName()];
Table.PrimaryKey = Key;
return Table;
}
示例10: RunSpecialTreatment
/// <summary>
/// This method needs to be implemented by extracts that can't follow the default processing with just
/// one query.
/// </summary>
/// <param name="AParameters"></param>
/// <param name="ATransaction"></param>
/// <param name="AExtractId"></param>
protected override bool RunSpecialTreatment(TParameterList AParameters, TDBTransaction ATransaction, out int AExtractId)
{
AExtractId = -1;
if (AParameters.Get("param_sending_receiving").ToString() == "ReceivingField")
{
return ProcessReceivingFields(AParameters, ATransaction, out AExtractId);
}
else if (AParameters.Get("param_sending_receiving").ToString() == "SendingField")
{
return ProcessSendingFields(AParameters, ATransaction, out AExtractId);
}
else
{
return false;
}
}
示例11: GetFoundationOwnerListTable
private DataTable GetFoundationOwnerListTable(TDBTransaction AReadTransaction, string ATableName)
{
// Used in Foundation Details screen.
SUserTable TmpUserTable = new SUserTable();
TmpUserTable = (SUserTable)DBAccess.GDBAccessObj.SelectDT(TmpUserTable, "SELECT " + SUserTable.GetPartnerKeyDBName() + ',' +
SUserTable.GetUserIdDBName() + ',' +
SUserTable.GetFirstNameDBName() + ',' +
SUserTable.GetLastNameDBName() + ' ' +
"FROM PUB_" + SUserTable.GetTableDBName() + ' ' +
"WHERE " + SUserTable.GetPartnerKeyDBName() + " <> 0 " +
"AND " + SUserTable.GetUserIdDBName() +
" IN (SELECT " + SUserModuleAccessPermissionTable.GetUserIdDBName() + ' ' +
"FROM PUB_" + SUserModuleAccessPermissionTable.GetTableDBName() + ' ' +
"WHERE " + SUserModuleAccessPermissionTable.GetModuleIdDBName() +
" = 'DEVUSER')" + "AND " + SUserTable.GetRetiredDBName() +
" = FALSE", AReadTransaction, null, -1, -1);
SUserRow EmptyDR = TmpUserTable.NewRowTyped(false);
EmptyDR.PartnerKey = 0;
EmptyDR.UserId = "";
TmpUserTable.Rows.InsertAt(EmptyDR, 0);
return TmpUserTable;
}
示例12: LoadAll
/// <summary>
/// Passes Partner Address data as a DataSet to the caller. Loads all available
/// Addresses for the Partner.
///
/// </summary>
/// <param name="ADataSet">DataSet that holds a DataSet with a DataTable for the
/// Person</param>
/// <param name="APartnerKey">PartnerKey of the Partner for which Address data is to be
/// loaded</param>
/// <param name="AReadTransaction">Transaction for the SELECT statement
/// </param>
/// <returns>void</returns>
public static void LoadAll(DataSet ADataSet, Int64 APartnerKey, TDBTransaction AReadTransaction)
{
PLocationTable LocationDT;
PPartnerLocationTable PartnerLocationDT;
PPartnerLocationAccess.LoadViaPPartner(ADataSet, APartnerKey, AReadTransaction);
PLocationAccess.LoadViaPPartner(ADataSet, APartnerKey, AReadTransaction);
// Apply security
LocationDT = (PLocationTable)ADataSet.Tables[PLocationTable.GetTableName()];
PartnerLocationDT = (PPartnerLocationTable)ADataSet.Tables[PPartnerLocationTable.GetTableName()];
ApplySecurity(ref PartnerLocationDT, ref LocationDT);
// make sure that location specific fields in PartnerLocationDT get initialized
if (ADataSet.GetType() == typeof(PartnerEditTDS))
{
PartnerCodeHelper.SyncPartnerEditTDSPartnerLocation(LocationDT, (PartnerEditTDSPPartnerLocationTable)PartnerLocationDT);
}
if (TLogging.DL >= 9)
{
DebugLoadedDataset(ADataSet);
}
}
示例13: GetData
/// <summary>
/// Passes data as a Typed DataSet to the caller, containing a DataTable that corresponds with <paramref name="AIndivDataItem"></paramref>.
/// </summary>
/// <param name="APartnerKey">PartnerKey of the Person to load data for.</param>
/// <param name="AIndivDataItem">The Individual Data Item for which data should be returned.</param>
/// <param name="AReadTransaction">Open Database transaction.</param>
/// <returns>A Typed DataSet containing a DataTable that corresponds with <paramref name="AIndivDataItem"></paramref>.</returns>
private static IndividualDataTDS GetData(Int64 APartnerKey, TIndividualDataItemEnum AIndivDataItem, TDBTransaction AReadTransaction)
{
IndividualDataTDS IndividualDataDS = new IndividualDataTDS("IndividualData"); // create the IndividualDataTDS DataSet that will later be passed to the Client
IndividualDataTDSMiscellaneousDataTable MiscellaneousDataDT;
IndividualDataTDSMiscellaneousDataRow MiscellaneousDataDR;
#region Create 'Miscellaneous' DataRow
MiscellaneousDataDT = IndividualDataDS.MiscellaneousData;
MiscellaneousDataDR = MiscellaneousDataDT.NewRowTyped(false);
MiscellaneousDataDR.PartnerKey = APartnerKey;
MiscellaneousDataDT.Rows.Add(MiscellaneousDataDR);
#endregion
switch (AIndivDataItem)
{
case TIndividualDataItemEnum.idiSummary:
BuildSummaryData(APartnerKey, ref IndividualDataDS, AReadTransaction);
DetermineItemCounts(MiscellaneousDataDR, AReadTransaction);
break;
case TIndividualDataItemEnum.idiPersonalLanguages:
PmPersonLanguageAccess.LoadViaPPerson(IndividualDataDS, APartnerKey, AReadTransaction);
PLanguageTable LanguageTable = (PLanguageTable)TSharedDataCache.TMCommon.GetCacheableCommonTable(
TCacheableCommonTablesEnum.LanguageCodeList);
PLanguageRow LanguageRow;
foreach (IndividualDataTDSPmPersonLanguageRow PersonLanguageRow in IndividualDataDS.PmPersonLanguage.Rows)
{
LanguageRow = (PLanguageRow)LanguageTable.Rows.Find(new object[] { PersonLanguageRow.LanguageCode });
if (LanguageRow != null)
{
PersonLanguageRow.LanguageDescription = LanguageRow.LanguageDescription;
}
}
break;
case TIndividualDataItemEnum.idiSpecialNeeds:
PmSpecialNeedAccess.LoadByPrimaryKey(IndividualDataDS, APartnerKey, AReadTransaction);
break;
case TIndividualDataItemEnum.idiPreviousExperiences:
PmPastExperienceAccess.LoadViaPPerson(IndividualDataDS, APartnerKey, AReadTransaction);
break;
case TIndividualDataItemEnum.idiPersonalDocuments:
PmDocumentAccess.LoadViaPPerson(IndividualDataDS, APartnerKey, AReadTransaction);
break;
case TIndividualDataItemEnum.idiJobAssignments:
PmJobAssignmentAccess.LoadViaPPartner(IndividualDataDS, APartnerKey, AReadTransaction);
break;
case TIndividualDataItemEnum.idiLocalPersonnelData:
// TODO: Fix this so LocalPersonnelData can actually load some data
bool labelsAvailable;
TOfficeSpecificDataLabelsUIConnector OfficeSpecificDataLabelsUIConnector;
OfficeSpecificDataLabelsUIConnector = new TOfficeSpecificDataLabelsUIConnector(APartnerKey,
TOfficeSpecificDataLabelUseEnum.Personnel);
IndividualDataDS.Merge(OfficeSpecificDataLabelsUIConnector.GetDataLocalPartnerDataValues(APartnerKey, out labelsAvailable, false,
AReadTransaction));
break;
case TIndividualDataItemEnum.idiProgressReports:
PmPersonEvaluationAccess.LoadViaPPerson(IndividualDataDS, APartnerKey, AReadTransaction);
break;
case TIndividualDataItemEnum.idiCommitmentPeriods:
PmStaffDataAccess.LoadViaPPerson(IndividualDataDS, APartnerKey, AReadTransaction);
break;
case TIndividualDataItemEnum.idiPersonSkills:
PmPersonSkillAccess.LoadViaPPerson(IndividualDataDS, APartnerKey, AReadTransaction);
break;
case TIndividualDataItemEnum.idiPersonalAbilities:
PmPersonAbilityAccess.LoadViaPPerson(IndividualDataDS, APartnerKey, AReadTransaction);
break;
case TIndividualDataItemEnum.idiPassportDetails:
PmPassportDetailsAccess.LoadViaPPerson(IndividualDataDS, APartnerKey, AReadTransaction);
PCountryTable CountryTable = (PCountryTable)TSharedDataCache.TMCommon.GetCacheableCommonTable(
TCacheableCommonTablesEnum.CountryList);
PCountryRow CountryRow;
foreach (IndividualDataTDSPmPassportDetailsRow PassportRow in IndividualDataDS.PmPassportDetails.Rows)
//.........这里部分代码省略.........
示例14: BuildSummaryData
/// <summary>
/// Retrieves data that will be shown on the 'Overview' UserControl and adds it to <paramref name="AIndividualDataDS" />.
/// </summary>
/// <param name="APartnerKey">PartnerKey of the Person to load data for.</param>
/// <param name="AIndividualDataDS">Typed DataSet of Type <see cref="IndividualDataTDS" />. Needs to be instantiated already!</param>
/// <param name="AReadTransaction">Open Database transaction.</param>
/// <returns>void</returns>
private static void BuildSummaryData(Int64 APartnerKey, ref IndividualDataTDS AIndividualDataDS, TDBTransaction AReadTransaction)
{
string StrNotAvailable = Catalog.GetString("Not Available");
IndividualDataTDSSummaryDataTable SummaryDT;
IndividualDataTDSSummaryDataRow SummaryDR;
IndividualDataTDSMiscellaneousDataRow MiscellaneousDataDR = AIndividualDataDS.MiscellaneousData[0];
PPersonTable PPersonDT;
PPersonRow PersonDR = null;
PmPassportDetailsTable PassportDetailsDT;
PmStaffDataTable PmStaffDataDT;
PmStaffDataRow PmStaffDataDR = null;
PmJobAssignmentTable PmJobAssignmentDT = null;
PUnitTable PUnitDT = null;
PmJobAssignmentRow PmJobAssignmentDR;
IndividualDataTDSJobAssignmentStaffDataCombinedRow JobAssiStaffDataCombDR;
int JobAssiStaffDataCombKey = 0;
TCacheable CommonCacheable = new TCacheable();
TPartnerCacheable PartnerCacheable = new TPartnerCacheable();
string MaritalStatusDescr;
StringCollection PassportColumns;
string Nationalities;
PPartnerRelationshipTable PartnerRelationshipDT;
PPartnerTable PartnerDT;
PPartnerRow PartnerDR = null;
PLocationRow LocationDR;
PPartnerLocationRow PartnerLocationDR;
string PhoneNumber;
string PhoneExtension = String.Empty;
Int64 ChurchPartnerKey;
SummaryDT = new IndividualDataTDSSummaryDataTable();
SummaryDR = SummaryDT.NewRowTyped(false);
SummaryDR.PartnerKey = APartnerKey;
#region Person Info
PPersonDT = PPersonAccess.LoadByPrimaryKey(APartnerKey, AReadTransaction);
if (PPersonDT.Rows.Count == 1)
{
PersonDR = (PPersonRow)PPersonDT.Rows[0];
}
if (PersonDR != null)
{
SummaryDR.DateOfBirth = PersonDR.DateOfBirth;
SummaryDR.Gender = PersonDR.Gender;
MaritalStatusDescr = PartnerCodeHelper.GetMaritalStatusDescription(
@PartnerCacheable.GetCacheableTable, PersonDR.MaritalStatus);
if (MaritalStatusDescr != String.Empty)
{
MaritalStatusDescr = " - " + MaritalStatusDescr;
}
SummaryDR.MaritalStatus = PersonDR.MaritalStatus + MaritalStatusDescr;
}
else
{
SummaryDR.SetDateOfBirthNull();
SummaryDR.Gender = StrNotAvailable;
SummaryDR.MaritalStatus = StrNotAvailable;
}
#region Nationalities
PassportColumns = StringHelper.StrSplit(
PmPassportDetailsTable.GetDateOfIssueDBName() + "," +
PmPassportDetailsTable.GetDateOfExpirationDBName() + "," +
PmPassportDetailsTable.GetPassportNationalityCodeDBName() + "," +
PmPassportDetailsTable.GetMainPassportDBName(), ",");
PassportDetailsDT = PmPassportDetailsAccess.LoadViaPPerson(APartnerKey,
PassportColumns, AReadTransaction, null, 0, 0);
Nationalities = Ict.Petra.Shared.MPersonnel.Calculations.DeterminePersonsNationalities(
@CommonCacheable.GetCacheableTable, PassportDetailsDT);
if (Nationalities != String.Empty)
{
SummaryDR.Nationalities = Nationalities;
}
else
{
SummaryDR.Nationalities = StrNotAvailable;
}
#endregion
#region Phone and Email (from 'Best Address')
//.........这里部分代码省略.........
示例15: GenerateAdminFeeBatch
/// <summary>
/// Reads from the table holding all the fees charged for this month and generates a GL batch from it.
/// Relates to gl2150.p
/// </summary>
/// <param name="ALedgerNumber"></param>
/// <param name="APeriodNumber"></param>
/// <param name="APrintReport"></param>
/// <param name="ADBTransaction"></param>
/// <param name="AVerificationResult"></param>
/// <returns></returns>
private static bool GenerateAdminFeeBatch(int ALedgerNumber,
int APeriodNumber,
bool APrintReport,
TDBTransaction ADBTransaction,
ref TVerificationResultCollection AVerificationResult
)
{
bool IsSuccessful = false;
bool CreatedSuccessfully = false;
decimal TransactionAmount;
string DrAccountCode;
string DestCostCentreCode = string.Empty;
string DestAccountCode = string.Empty;
string FeeDescription = string.Empty;
decimal DrFeeTotal = 0;
bool DrCrIndicator = true;
//Error handling
string ErrorContext = String.Empty;
string ErrorMessage = String.Empty;
//Set default type as non-critical
TResultSeverity ErrorType = TResultSeverity.Resv_Noncritical;
/* Make a temporary table to hold totals for gifts going to
* each account. */
GLStewardshipCalculationTDSCreditFeeTotalTable CreditFeeTotalDT = new GLStewardshipCalculationTDSCreditFeeTotalTable();
//int x = CreditFeeTotalDT.Count;
/* Retrieve info on the ledger. */
ALedgerTable AvailableLedgers = ALedgerAccess.LoadByPrimaryKey(ALedgerNumber, ADBTransaction);
ALedgerRow LedgerRow = (ALedgerRow)AvailableLedgers.Rows[0];
try
{
/* Check that we have not closed all periods for the year yet.
* (Not at the provisional year end point) */
if (LedgerRow.ProvisionalYearEndFlag)
{
//Petra ErrorCode = GL0071
ErrorContext = Catalog.GetString("Generate Admin Fee Batch");
ErrorMessage = String.Format(Catalog.GetString(
"Cannot progress as Ledger {0} is at the provisional year-end point"), ALedgerNumber);
ErrorType = TResultSeverity.Resv_Critical;
throw new System.InvalidOperationException(ErrorMessage);
}
/* 0003 Finds for ledger base currency format, for report currency format */
ACurrencyTable CurrencyInfo = ACurrencyAccess.LoadByPrimaryKey(LedgerRow.BaseCurrency, ADBTransaction);
ACurrencyRow CurrencyRow = (ACurrencyRow)CurrencyInfo.Rows[0];
/* 0001 Extract number of decimal places */
string NumericFormat = CurrencyRow.DisplayFormat;
int NumDecPlaces = THelperNumeric.CalcNumericFormatDecimalPlaces(NumericFormat);
/* Create the journal to create the fee transactions in, if there are
* fees to charge.
* NOTE: if the date in the processed fee table is ? then that fee
* hasn't been processed. */
AProcessedFeeTable ProcessedFeeDataTable = new AProcessedFeeTable();
string sqlStmt = String.Format("SELECT * FROM {0} WHERE {1} = ? AND {2} = ? AND {3} IS NULL AND {4} <> 0 ORDER BY {5}, {6}",
AProcessedFeeTable.GetTableDBName(),
AProcessedFeeTable.GetLedgerNumberDBName(),
AProcessedFeeTable.GetPeriodNumberDBName(),
AProcessedFeeTable.GetProcessedDateDBName(),
AProcessedFeeTable.GetPeriodicAmountDBName(),
AProcessedFeeTable.GetFeeCodeDBName(),
AProcessedFeeTable.GetCostCentreCodeDBName()
);
OdbcParameter[] parameters = new OdbcParameter[2];
parameters[0] = new OdbcParameter("LedgerNumber", OdbcType.Int);
parameters[0].Value = ALedgerNumber;
parameters[1] = new OdbcParameter("PeriodNumber", OdbcType.Int);
parameters[1].Value = APeriodNumber;
DBAccess.GDBAccessObj.SelectDT(ProcessedFeeDataTable, sqlStmt, ADBTransaction, parameters, -1, -1);
if (ProcessedFeeDataTable.Count == 0)
{
if (TLogging.DebugLevel > 0)
{
TLogging.Log("No fees to charge were found");
AVerificationResult.Add(new TVerificationResult(Catalog.GetString("Admin Fee Batch"),
String.Format(Catalog.GetString("No admin fees charged in period {0}."), APeriodNumber),
TResultSeverity.Resv_Status));
}
IsSuccessful = true;
//.........这里部分代码省略.........