public static DataSet GetOneYearMonthGivingDataSet(Dictionary <String, TVariant> AParameters) { FDbAdapter = new TReportingDbAdapter(false); TLogging.SetStatusBarProcedure(WriteToStatusBar); DataSet ReturnDataSet = new DataSet(); // get recipients DataTable Recipients = TFinanceReportingWebConnector.RecipientGiftStatementRecipientTable(AParameters, FDbAdapter); if (FDbAdapter.IsCancelled || (Recipients == null)) { return(null); } DataTable Donors = new DataTable("Donors"); foreach (DataRow Row in Recipients.Rows) { // get donor information for each recipient Donors.Merge(TFinanceReportingWebConnector.OneYearMonthGivingDonorTable(AParameters, (Int64)Row["RecipientKey"], FDbAdapter)); if (FDbAdapter.IsCancelled) { return(null); } } ReturnDataSet.Tables.Add(Recipients); ReturnDataSet.Tables.Add(Donors); return((FDbAdapter.IsCancelled) ? null : ReturnDataSet); }
public static DataSet GetReportDataSet(String AReportType, Dictionary <String, TVariant> AParameters) { TLogging.SetStatusBarProcedure(WriteToStatusBar); DataSet ResultSet = null; FDbAdapter = new TReportingDbAdapter(true); // Uses a separate DB Connection. switch (AReportType) { /* Financial Development */ case "GiftsOverMinimum": ResultSet = TFinanceReportingWebConnector.GiftsOverMinimum(AParameters, FDbAdapter); break; default: TLogging.Log("GetDataSetThread unknown ReportType: " + AReportType); break; } FDbAdapter.CloseConnection(); if (FDbAdapter.IsCancelled) { ResultSet = null; } return(ResultSet); }
public static DataTable GetReportDataTable(String AReportType, Dictionary <String, TVariant> AParameters) { FDbAdapter = new TReportingDbAdapter(); TLogging.SetStatusBarProcedure(WriteToStatusBar); DataTable ResultTbl = null; switch (AReportType) { case "BalanceSheet": ResultTbl = TFinanceReportingWebConnector.BalanceSheetTable(AParameters, FDbAdapter); break; case "HOSA": ResultTbl = TFinanceReportingWebConnector.HosaGiftsTable(AParameters, FDbAdapter); break; case "Stewardship": ResultTbl = TFinanceReportingWebConnector.StewardshipTable(AParameters, FDbAdapter); break; case "IncomeExpense": ResultTbl = TFinanceReportingWebConnector.IncomeExpenseTable(AParameters, FDbAdapter); break; case "AFO": ResultTbl = TFinanceReportingWebConnector.AFOTable(AParameters, FDbAdapter); break; case "Executive Summary": ResultTbl = TFinanceReportingWebConnector.ExecutiveSummaryTable(AParameters, FDbAdapter); break; case "TrialBalance": ResultTbl = TFinanceReportingWebConnector.TrialBalanceTable(AParameters, FDbAdapter); break; case "GiftBatchDetail": ResultTbl = TFinanceReportingWebConnector.GiftBatchDetailTable(AParameters, FDbAdapter); break; case "RecipientTaxDeductPct": ResultTbl = TFinanceReportingWebConnector.RecipientTaxDeductPctTable(AParameters, FDbAdapter); break; default: TLogging.Log("GetDatatableThread unknown ReportType: " + AReportType); break; } return((FDbAdapter.IsCancelled) ? null : ResultTbl); }
public static DataTable GetReportDataTable(String AReportType, Dictionary <String, TVariant> AParameters) { TLogging.SetStatusBarProcedure(WriteToStatusBar); DataTable ResultTbl = null; switch (AReportType) { /* GL Reports */ case "BalanceSheet": FDbAdapter = new TReportingDbAdapter(true); // Uses a separate DB Connection. ResultTbl = TFinanceReportingWebConnector.BalanceSheetTable(AParameters, FDbAdapter); break; case "FieldGifts": FDbAdapter = new TReportingDbAdapter(true); // Uses a separate DB Connection. ResultTbl = TFinanceReportingWebConnector.KeyMinGiftsTable(AParameters, FDbAdapter); break; case "HOSA": FDbAdapter = new TReportingDbAdapter(true); // Uses a separate DB Connection. ResultTbl = TFinanceReportingWebConnector.HosaGiftsTable(AParameters, FDbAdapter); break; case "Stewardship": FDbAdapter = new TReportingDbAdapter(true); // Uses a separate DB Connection. ResultTbl = TFinanceReportingWebConnector.StewardshipTable(AParameters, FDbAdapter); break; case "Fees": FDbAdapter = new TReportingDbAdapter(true); // Uses a separate DB Connection. ResultTbl = TFinanceReportingWebConnector.FeesTable(AParameters, FDbAdapter); break; case "StewardshipForPeriod": FDbAdapter = new TReportingDbAdapter(true); // Uses a separate DB Connection. ResultTbl = TFinanceReportingWebConnector.StewardshipForPeriodTable(AParameters, FDbAdapter); break; case "IncomeExpense": FDbAdapter = new TReportingDbAdapter(true); // Uses a separate DB Connection. ResultTbl = TFinanceReportingWebConnector.IncomeExpenseTable(AParameters, FDbAdapter); break; case "AFO": FDbAdapter = new TReportingDbAdapter(true); // Uses a separate DB Connection. ResultTbl = TFinanceReportingWebConnector.AFOTable(AParameters, FDbAdapter); break; case "Executive Summary": FDbAdapter = new TReportingDbAdapter(true); // Uses a separate DB Connection. ResultTbl = TFinanceReportingWebConnector.ExecutiveSummaryTable(AParameters, FDbAdapter); break; case "TrialBalance": FDbAdapter = new TReportingDbAdapter(false); ResultTbl = TFinanceReportingWebConnector.TrialBalanceTable(AParameters, FDbAdapter); break; case "SurplusDeficit": FDbAdapter = new TReportingDbAdapter(true); // Uses a separate DB Connection. ResultTbl = TFinanceReportingWebConnector.SurplusDeficitTable(AParameters, FDbAdapter); break; /* Gift Reports */ case "GiftBatchDetail": FDbAdapter = new TReportingDbAdapter(true); // Uses a separate DB Connection. ResultTbl = TFinanceReportingWebConnector.GiftBatchDetailTable(AParameters, FDbAdapter); break; case "RecipientTaxDeductPct": FDbAdapter = new TReportingDbAdapter(true); // Uses a separate DB Connection. ResultTbl = TFinanceReportingWebConnector.RecipientTaxDeductPctTable(AParameters, FDbAdapter); break; case "FieldLeaderGiftSummary": FDbAdapter = new TReportingDbAdapter(true); // Uses a separate DB Connection. ResultTbl = TFinanceReportingWebConnector.FieldLeaderGiftSummary(AParameters, FDbAdapter); break; case "TotalGiftsThroughField": FDbAdapter = new TReportingDbAdapter(true); // Uses a separate DB Connection. ResultTbl = TFinanceReportingWebConnector.TotalGiftsThroughField(AParameters, FDbAdapter); break; case "MotivationResponse": FDbAdapter = new TReportingDbAdapter(true); // Uses a separate DB Connection. ResultTbl = TFinanceReportingWebConnector.MotivationResponse(AParameters, FDbAdapter); break; case "DonorGiftsToField": FDbAdapter = new TReportingDbAdapter(true); // Uses a separate DB Connection. ResultTbl = TFinanceReportingWebConnector.DonorGiftsToField(AParameters, FDbAdapter); break; case "GiftDestination": FDbAdapter = new TReportingDbAdapter(false); ResultTbl = TFinanceReportingWebConnector.GiftDestination(AParameters, FDbAdapter); break; case "TotalForRecipients": FDbAdapter = new TReportingDbAdapter(false); ResultTbl = TFinanceReportingWebConnector.TotalForRecipients(AParameters, FDbAdapter); break; /* Financial Development */ case "SYBUNT": FDbAdapter = new TReportingDbAdapter(true); // Uses a separate DB Connection. ResultTbl = TFinanceReportingWebConnector.SYBUNTTable(AParameters, FDbAdapter); break; case "GiftsOverMinimum": FDbAdapter = new TReportingDbAdapter(true); // Uses a separate DB Connection. ResultTbl = TFinanceReportingWebConnector.GiftsOverMinimum(AParameters, FDbAdapter); break; default: TLogging.Log("GetDatatableThread unknown ReportType: " + AReportType); break; } if (FDbAdapter != null) { FDbAdapter.CloseConnection(); if (FDbAdapter.IsCancelled) { ResultTbl = null; } } return(ResultTbl); }
public static DataSet GetRecipientGiftStatementDataSet(Dictionary <String, TVariant> AParameters) { string ReportType = AParameters["param_report_type"].ToString(); FDbAdapter = new TReportingDbAdapter(false); TLogging.SetStatusBarProcedure(WriteToStatusBar); DataSet ReturnDataSet = new DataSet(); // get recipients DataTable Recipients = TFinanceReportingWebConnector.RecipientGiftStatementRecipientTable(AParameters, FDbAdapter); if (FDbAdapter.IsCancelled || (Recipients == null)) { return(null); } DataTable RecipientTotals = new DataTable("RecipientTotals"); RecipientTotals.Columns.Add("PreviousYearTotal", typeof(decimal)); RecipientTotals.Columns.Add("CurrentYearTotal", typeof(decimal)); DataTable Donors = new DataTable("Donors"); foreach (DataRow Row in Recipients.Rows) { if (ReportType == "Complete") { // get year totals for recipient RecipientTotals.Merge(TFinanceReportingWebConnector.RecipientGiftStatementTotalsTable(AParameters, (Int64)Row["RecipientKey"], FDbAdapter)); } // get donor information for each recipient Donors.Merge(TFinanceReportingWebConnector.RecipientGiftStatementDonorTable(AParameters, (Int64)Row["RecipientKey"], FDbAdapter)); if (FDbAdapter.IsCancelled) { return(null); } } DataView View = new DataView(Donors); DataTable DistinctDonors = new DataTable(); if (View.Count > 0) { DistinctDonors = View.ToTable(true, "DonorKey"); } DataTable DonorAddresses = new DataTable("DonorAddresses"); if ((ReportType == "Complete") || (ReportType == "Donors Only")) { foreach (DataRow Row in DistinctDonors.Rows) { // get best address for each distinct donor DonorAddresses.Merge(TFinanceReportingWebConnector.RecipientGiftStatementDonorAddressesTable(Convert.ToInt64(Row["DonorKey"]), FDbAdapter)); if (FDbAdapter.IsCancelled) { return(null); } } } else { DonorAddresses.Merge(DistinctDonors); } // We only want distinct donors for this report (i.e. no more than one per recipient) if (ReportType == "Donors Only") { if (View.Count > 0) { DistinctDonors = View.ToTable(true, "DonorKey", "DonorName", "RecipientKey"); Donors.Clear(); Donors.Merge(DistinctDonors); } else // I should return an empty table with just columns, to keep the client happy: { DistinctDonors = new DataTable(); DistinctDonors.Columns.Add("DonorKey", typeof(Int64)); DistinctDonors.Columns.Add("DonorName", typeof(String)); DistinctDonors.Columns.Add("RecipientKey", typeof(Int64)); } } ReturnDataSet.Tables.Add(Recipients); ReturnDataSet.Tables.Add(RecipientTotals); ReturnDataSet.Tables.Add(Donors); ReturnDataSet.Tables.Add(DonorAddresses); return((FDbAdapter.IsCancelled) ? null : ReturnDataSet); }
/// main method public static void Main(string[] args) { TPetraServerConnector.Connect("../../etc/TestServer.config"); try { string OutputPath = TAppSettingsManager.GetValue("OutputPath", "../../delivery/GDPdU/data"); if (!Directory.Exists(OutputPath)) { Directory.CreateDirectory(OutputPath); } string SummaryCostCentres = TAppSettingsManager.GetValue("SummaryCostCentres", "4300S"); string IgnoreCostCentres = TAppSettingsManager.GetValue("IgnoreCostCentres", "xyz"); string IgnoreAccounts = TAppSettingsManager.GetValue("IgnoreAccounts", "4300S,GIFT"); string IncludeAccounts = TAppSettingsManager.GetValue("IncludeAccounts", "4310"); string FinancialYears = TAppSettingsManager.GetValue("FinancialYearNumber", "0"); string IgnoreTransactionsByReference = TAppSettingsManager.GetValue("IgnoreReference", "L1,L2,L3,L4,L5,L6,L7,L8,L9,L10,L11,L12"); int FirstFinancialYear = TAppSettingsManager.GetInt32("FirstFinancialYear", DateTime.Now.Year); int LedgerNumber = TAppSettingsManager.GetInt32("LedgerNumber", 43); char CSVSeparator = TAppSettingsManager.GetValue("CSVSeparator", ";")[0]; string NewLine = "\r\n"; string culture = TAppSettingsManager.GetValue("culture", "de-DE"); string ReportingCostCentres = TFinanceReportingWebConnector.GetReportingCostCentres(LedgerNumber, SummaryCostCentres, IgnoreCostCentres); //TLogging.Log("cost centres " + ReportingCostCentres); //TLogging.Log("accounts " + IncludeAccounts); if (TAppSettingsManager.GetBoolean("IgnorePersonCostCentres", true)) { ReportingCostCentres = TGDPdUExportAccountsAndCostCentres.WithoutPersonCostCentres(LedgerNumber, ReportingCostCentres); } IgnoreAccounts = TFinanceReportingWebConnector.GetReportingAccounts(LedgerNumber, IgnoreAccounts, IncludeAccounts); // set decimal separator, and thousands separator Ict.Common.Catalog.SetCulture(culture); List <string> CostCentresInvolved = new List <string>(); List <string> AccountsInvolved = new List <string>(); foreach (string FinancialYearString in FinancialYears.Split(new char[] { ',' })) { Int32 FinancialYear = Convert.ToInt32(FinancialYearString); string OutputPathForYear = Path.Combine(OutputPath, (FirstFinancialYear + FinancialYear).ToString()); if (!Directory.Exists(OutputPathForYear)) { Directory.CreateDirectory(OutputPathForYear); } TGDPdUExportWorkers.Export(OutputPathForYear, CSVSeparator, NewLine, LedgerNumber * 1000000, FirstFinancialYear + FinancialYear); TGDPdUExportTransactions.ExportGLTransactions(OutputPathForYear, CSVSeparator, NewLine, LedgerNumber, FinancialYear, ReportingCostCentres, IgnoreAccounts, IgnoreTransactionsByReference, ref CostCentresInvolved, ref AccountsInvolved); TGDPdUExportBalances.ExportGLBalances(OutputPathForYear, CSVSeparator, NewLine, LedgerNumber, FinancialYear, ReportingCostCentres, IgnoreAccounts); } TGDPdUExportAccountsAndCostCentres.ExportCostCentres(OutputPath, CSVSeparator, NewLine, LedgerNumber, CostCentresInvolved); TGDPdUExportAccountsAndCostCentres.ExportAccounts(OutputPath, CSVSeparator, NewLine, LedgerNumber, AccountsInvolved); } catch (Exception e) { TLogging.Log(e.ToString()); } if (TAppSettingsManager.GetValue("interactive", "true") == "true") { Console.WriteLine("Please press Enter to continue..."); Console.ReadLine(); } }