private void Filter(System.Object sender, EventArgs e) { DataView MyDataView = FMainDS.PcConference.DefaultView; String Filter = ""; if (!string.IsNullOrEmpty(txtConference.Text)) { Filter += FMainDS.PcConference.Columns[PPartnerTable.GetPartnerShortNameDBName()] + " LIKE '" + "%" + txtConference.Text + "%'"; } if (!string.IsNullOrEmpty(txtPrefix.Text)) { if (Filter != "") { Filter += " AND "; } Filter += FMainDS.PcConference.Columns[PcConferenceTable.GetOutreachPrefixDBName()] + " LIKE '" + txtPrefix.Text + "%'"; } MyDataView.RowFilter = Filter; grdConferences.DataSource = new DevAge.ComponentModel.BoundDataView(MyDataView); UpdateRecordNumberDisplay(); }
private DataTable GetInstalledSitesListTable(TDBTransaction AReadTransaction, string ATableName) { // Used eg. in New Partner Dialog. StringCollection RequiredColumns = new StringCollection(); RequiredColumns.Add(PPartnerLedgerTable.GetPartnerKeyDBName()); PPartnerLedgerTable TmpInstalledSitesDT = PPartnerLedgerAccess.LoadAll(RequiredColumns, AReadTransaction, null, 0, 0); if (TmpInstalledSitesDT.Rows.Count != 0) { TmpInstalledSitesDT.Columns.Remove(PPartnerLedgerTable.GetLastPartnerIdDBName()); TmpInstalledSitesDT.Columns.Add(PPartnerTable.GetPartnerShortNameDBName(), System.Type.GetType("System.String")); RequiredColumns = new StringCollection(); RequiredColumns.Add(PPartnerTable.GetPartnerShortNameDBName()); for (int Counter = 0; Counter <= TmpInstalledSitesDT.Rows.Count - 1; Counter += 1) { PPartnerTable PartnerDT = PPartnerAccess.LoadByPrimaryKey( TmpInstalledSitesDT[Counter].PartnerKey, RequiredColumns, AReadTransaction, null, 0, 0); TmpInstalledSitesDT[Counter][PPartnerTable.GetPartnerShortNameDBName()] = PartnerDT[0].PartnerShortName; } } return(TmpInstalledSitesDT); }
private void InitUserControlsManually() { // set controls in filter to default values ucoFilter.InitialiseUserControl(); // Hook up EventFilterChanged Event to be able to react to changed filter ucoFilter.EventFilterChanged += new TEventHandlerEventFilterChanged(this.EventFilterChanged); //grdEvent.AutoSizeCells(); // now the filter is initialized we can load the initial data LoadEventListData(); grdEvent.Columns.Clear(); grdEvent.AddTextColumn("Event Name", FEventTable.Columns[PPartnerTable.GetPartnerShortNameDBName()]); grdEvent.AddTextColumn("Event Code", FEventTable.Columns[PUnitTable.GetOutreachCodeDBName()]); grdEvent.AddTextColumn("Country", FEventTable.Columns[PCountryTable.GetCountryNameDBName()]); grdEvent.AddDateColumn("Start Date", FEventTable.Columns[PPartnerLocationTable.GetDateEffectiveDBName()]); grdEvent.AddDateColumn("End Date", FEventTable.Columns[PPartnerLocationTable.GetDateGoodUntilDBName()]); grdEvent.AddPartnerKeyColumn("Event Key", FEventTable.Columns[PPartnerTable.GetPartnerKeyDBName()]); grdEvent.AddTextColumn("Event Type", FEventTable.Columns[PUnitTable.GetUnitTypeCodeDBName()]); FEventTable.DefaultView.AllowDelete = false; FEventTable.DefaultView.AllowEdit = false; FEventTable.DefaultView.AllowNew = false; grdEvent.Selection.EnableMultiSelection = false; grdEvent.AutoResizeGrid(); grdEvent.Selection.SelectRow(1, true); }
private DataTable GetInstalledSitesListTable(TDBTransaction AReadTransaction, string ATableName) { // Used eg. in New Partner Dialog. StringCollection RequiredColumns = new StringCollection(); RequiredColumns.Add(PPartnerLedgerTable.GetPartnerKeyDBName()); PPartnerLedgerTable TmpInstalledSitesDT = PPartnerLedgerAccess.LoadAll(RequiredColumns, AReadTransaction, null, 0, 0); if (TmpInstalledSitesDT.Rows.Count != 0) { TmpInstalledSitesDT.Columns.Remove(PPartnerLedgerTable.GetLastPartnerIdDBName()); TmpInstalledSitesDT.Columns.Add(PPartnerTable.GetPartnerShortNameDBName(), System.Type.GetType("System.String")); RequiredColumns = new StringCollection(); RequiredColumns.Add(PPartnerTable.GetPartnerShortNameDBName()); for (int Counter = 0; Counter <= TmpInstalledSitesDT.Rows.Count - 1; Counter += 1) { PPartnerTable PartnerDT = PPartnerAccess.LoadByPrimaryKey( TmpInstalledSitesDT[Counter].PartnerKey, RequiredColumns, AReadTransaction, null, 0, 0); TmpInstalledSitesDT[Counter][PPartnerTable.GetPartnerShortNameDBName()] = PartnerDT[0].PartnerShortName; } } // As part of bug 5556 testing, checked if this DataTable contained any Added rows. It didn't, so there isn't an issue here. // Findings: DataTable summary: 1 rows; 0 Added, 0 deleted, 0 detached, 1 modified, 0 unchanged. Table name PPartnerLedger return(TmpInstalledSitesDT); }
private void LoadEventListData() { string CheckedMember = "CHECKED"; string ValueMember = PPartnerTable.GetPartnerKeyDBName(); string DisplayMember = PPartnerTable.GetPartnerShortNameDBName(); string EventCodeMember = PUnitTable.GetOutreachCodeDBName(); DataTable Table; Table = TRemote.MPartner.Partner.WebConnectors.GetEventUnits (ucoFilter.IncludeConferenceUnits, ucoFilter.IncludeOutreachUnits, ucoFilter.NameFilter, false, ucoFilter.CurrentAndFutureEventsOnly); DataView view = new DataView(Table); DataTable NewTable = view.ToTable(true, new string[] { DisplayMember, ValueMember, EventCodeMember }); NewTable.Columns.Add(new DataColumn(CheckedMember, typeof(bool))); clbEvent.Columns.Clear(); clbEvent.AddCheckBoxColumn("", NewTable.Columns[CheckedMember], 17, false); clbEvent.AddTextColumn(Catalog.GetString("Event Name"), NewTable.Columns[DisplayMember], 240); clbEvent.AddPartnerKeyColumn(Catalog.GetString("Partner Key"), NewTable.Columns[ValueMember], 100); // outreach/event code column only needed in case of displaying Outreaches if (ucoFilter.IncludeOutreachUnits) { clbEvent.AddTextColumn(Catalog.GetString("Event Code"), NewTable.Columns[EventCodeMember], 110); } clbEvent.DataBindGrid(NewTable, DisplayMember, CheckedMember, ValueMember, false, true, false); //TODO: only temporarily until settings file exists clbEvent.SetCheckedStringList(""); }
private void LoadDataGrid(bool AFirstTime) { FMainDS.PcConference.Clear(); FMainDS.PPartner.Clear(); FMainDS.Merge(TRemote.MConference.WebConnectors.GetConferences("", "")); if (FMainDS.PcConference.Rows.Count == FMainDS.PPartner.Rows.Count) { if (AFirstTime) { FMainDS.PcConference.Columns.Add(PPartnerTable.GetPartnerShortNameDBName(), Type.GetType("System.String")); FMainDS.PcConference.DefaultView.AllowNew = false; } for (int Counter = 0; Counter < FMainDS.PcConference.Rows.Count; ++Counter) { FMainDS.PcConference.Rows[Counter][PPartnerTable.GetPartnerShortNameDBName()] = FMainDS.PPartner.Rows[Counter][PPartnerTable.GetPartnerShortNameDBName()]; } } // sort order for grid DataView MyDataView = FMainDS.PcConference.DefaultView; MyDataView.Sort = "p_partner_short_name_c ASC"; grdConferences.DataSource = new DevAge.ComponentModel.BoundDataView(MyDataView); UpdateRecordNumberDisplay(); }
/// <summary> /// returns the site name of the current site key, /// which is stored in s_system_parameter /// /// </summary> /// <returns>void</returns> private String GetSiteName() { String ReturnValue = ""; string strSql; DataTable tab; long SiteKey = -1; PPartnerTable PartnerTable; strSql = "SELECT PUB_s_system_defaults.s_default_value_c " + "FROM PUB_s_system_defaults " + "WHERE PUB_s_system_defaults.s_default_code_c = 'SiteKey'"; tab = situation.GetDatabaseConnection().SelectDT(strSql, "table", situation.GetDatabaseConnection().Transaction); if (tab.Rows.Count > 0) { String SiteKeyString = Convert.ToString(tab.Rows[0]["s_default_value_c"]); try { SiteKey = Convert.ToInt64(SiteKeyString); } catch (Exception) { SiteKey = -1; } } PartnerTable = PPartnerAccess.LoadByPrimaryKey(SiteKey, situation.GetDatabaseConnection().Transaction); if (PartnerTable.Rows.Count > 0) { ReturnValue = (String)PartnerTable.Rows[0][PPartnerTable.GetPartnerShortNameDBName()]; } return(ReturnValue); }
/// <summary> /// Get the name for this Ledger /// </summary> public static string GetLedgerName(int ALedgerNumber) { #region Validate Arguments if (ALedgerNumber <= 0) { throw new EFinanceSystemInvalidLedgerNumberException(String.Format(Catalog.GetString( "Function:{0} - The Ledger number must be greater than 0!"), Utilities.GetMethodName(true)), ALedgerNumber); } #endregion Validate Arguments String ReturnValue = string.Empty; TDBTransaction ReadTransaction = null; DBAccess.GDBAccessObj.GetNewOrExistingAutoReadTransaction(IsolationLevel.ReadCommitted, TEnforceIsolationLevel.eilMinimum, ref ReadTransaction, delegate { String strSql = "SELECT p_partner_short_name_c FROM PUB_a_ledger, PUB_p_partner WHERE a_ledger_number_i=" + ALedgerNumber + " AND PUB_a_ledger.p_partner_key_n = PUB_p_partner.p_partner_key_n"; DataTable tab = DBAccess.GDBAccessObj.SelectDT(strSql, "GetLedgerName_TempTable", ReadTransaction); if (tab.Rows.Count > 0) { ReturnValue = Convert.ToString(tab.Rows[0][PPartnerTable.GetPartnerShortNameDBName()]); //"p_partner_short_name_c" } }); return(ReturnValue); }
/// <summary> /// get the number and name of the registration offices that the current user has access for /// </summary> /// <returns></returns> public static PPartnerTable GetRegistrationOffices() { bool NewTransaction; TDataBase db = DBAccess.Connect("GetRegistrationOffices"); TDBTransaction Transaction = db.GetNewOrExistingTransaction(IsolationLevel.ReadCommitted, out NewTransaction); PPartnerTable result = new PPartnerTable(); try { List <Int64> offices = GetRegistrationOfficeKeysOfUser(Transaction); StringCollection FieldList = new StringCollection(); FieldList.Add(PPartnerTable.GetPartnerKeyDBName()); FieldList.Add(PPartnerTable.GetPartnerShortNameDBName()); // get the short names of the registration offices foreach (Int64 OfficeKey in offices) { PPartnerTable partnerTable = PPartnerAccess.LoadByPrimaryKey(OfficeKey, FieldList, Transaction); result.Merge(partnerTable); } // remove unwanted columns List <string> ColumnNames = new List <string>(); foreach (DataColumn column in result.Columns) { ColumnNames.Add(column.ColumnName); } foreach (string columnName in ColumnNames) { if (!FieldList.Contains(columnName)) { result.Columns.Remove(columnName.ToString()); } } } finally { if (NewTransaction) { Transaction.Rollback(); } } result.DefaultView.Sort = PPartnerTable.GetPartnerKeyDBName(); return(result); }
/// <summary> /// Retrieves the Partner ShortName, the PartnerClass and PartnerStatus. /// </summary> /// <param name="APartnerKey">PartnerKey to identify the Partner.</param> /// <param name="APartnerShortName">Returns the ShortName.</param> /// <param name="APartnerClass">Returns the PartnerClass (FAMILY, ORGANISATION, etc).</param> /// <param name="APartnerStatus">Returns the PartnerStatus (eg. ACTIVE, DIED).</param> /// <param name="ATransaction">Open DB Transaction.</param> /// <returns>True if partner was found, otherwise false.</returns> public static Boolean RetrievePartnerShortName(Int64 APartnerKey, out String APartnerShortName, out TPartnerClass APartnerClass, out TStdPartnerStatusCode APartnerStatus, TDBTransaction ATransaction) { Boolean ReturnValue; StringCollection RequiredColumns; PPartnerTable PartnerTable; // initialise out Arguments APartnerShortName = ""; // Default. This is not really correct but the best compromise if PartnerKey is 0 or Partner isn't found since we have an enum here. APartnerClass = TPartnerClass.FAMILY; // Default. This is not really correct but the best compromise if PartnerKey is 0 or Partner isn't found since we have an enum here. APartnerStatus = TStdPartnerStatusCode.spscINACTIVE; if (APartnerKey != 0) { // only some fields are needed RequiredColumns = new StringCollection(); RequiredColumns.Add(PPartnerTable.GetPartnerShortNameDBName()); RequiredColumns.Add(PPartnerTable.GetPartnerClassDBName()); RequiredColumns.Add(PPartnerTable.GetStatusCodeDBName()); PartnerTable = PPartnerAccess.LoadByPrimaryKey(APartnerKey, RequiredColumns, ATransaction, null, 0, 0); if (PartnerTable.Rows.Count == 0) { ReturnValue = false; } else { // since we loaded by primary key there must just be one partner row APartnerShortName = PartnerTable[0].PartnerShortName; APartnerClass = SharedTypes.PartnerClassStringToEnum(PartnerTable[0].PartnerClass); APartnerStatus = SharedTypes.StdPartnerStatusCodeStringToEnum(PartnerTable[0].StatusCode); ReturnValue = true; } } else { // Return result as valid if Partner Key is 0. ReturnValue = true; } return(ReturnValue); }
private DataTable GetConferenceListTable(TDBTransaction AReadTransaction, string ATableName) { DataTable Table; DataColumn[] Key = new DataColumn[1]; // Used eg. Select Event Dialog Table = DBAccess.GetDBAccessObj(AReadTransaction).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.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 " + PPartnerTable.GetStatusCodeDBName() + " = 'ACTIVE' AND " + PPartnerTable.GetPartnerClassDBName() + " = 'UNIT' AND (" + PUnitTable.GetUnitTypeCodeDBName() + " LIKE '%CONF%' OR " + PUnitTable.GetUnitTypeCodeDBName() + " LIKE '%CONG%')" , ATableName, AReadTransaction); Key[0] = Table.Columns[PPartnerTable.GetPartnerKeyDBName()]; Table.PrimaryKey = Key; return(Table); }
/// <summary> /// This Procedure will get called when the event filter criteria are changed /// </summary> /// <param name="sender">The Object that throws this Event</param> /// <param name="e">Event Arguments. /// </param> /// <returns>void</returns> private void EventFilterChanged(System.Object sender, System.EventArgs e) { DataView view = new DataView(FOutreachUnitsTable); view.AllowNew = false; view.RowFilter = ucoFilter.GetFilterCriteria(); clbEvent.DataBindGrid( view.ToTable(), PPartnerTable.GetPartnerShortNameDBName(), "CHECKED", PPartnerTable.GetPartnerKeyDBName(), false, true, false); clbEvent.SetCheckedStringList(""); clbEvent.AutoStretchColumnsToFitWidth = true; clbEvent.AutoResizeGrid(); }
/// <summary> /// Retrieves the ShortName of a Partner. /// </summary> /// <param name="APartnerKey">PartnerKey of the Partner.</param> /// <param name="ATransaction">Database transaction to use.</param> /// <returns>ShortName of the specified Partner.</returns> private static string GetPartnerShortName(long APartnerKey, TDBTransaction ATransaction) { // Can't use TPartnerServerLookups from here: // TPartnerServerLookups.GetPartnerShortName(APartnerKey, out ShortName, out PartnerClass); PPartnerTable PartnerTable; var Columns = new StringCollection(); Columns.Add(PPartnerTable.GetPartnerKeyDBName()); Columns.Add(PPartnerTable.GetPartnerShortNameDBName()); PartnerTable = PPartnerAccess.LoadByPrimaryKey(APartnerKey, Columns, ATransaction); return(PartnerTable[0].PartnerShortName); }
/// <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)); }
/// <summary> /// Retrieves the short name of a partner. /// </summary> /// <param name="APartnerKey">Partner key</param> /// <param name="ASituation">The current report situation</param> /// <returns></returns> public static String GetPartnerShortName(Int64 APartnerKey, ref TRptSituation ASituation) { String ReturnValue; PPartnerTable table; StringCollection fields; ReturnValue = "N/A"; fields = new StringCollection(); fields.Add(PPartnerTable.GetPartnerShortNameDBName()); table = PPartnerAccess.LoadByPrimaryKey(APartnerKey, fields, ASituation.GetDatabaseConnection().Transaction); if (table.Rows.Count > 0) { ReturnValue = table[0].PartnerShortName; } return(ReturnValue); }
/// <summary> /// The screen has been shown /// </summary> private void RunOnceOnActivationManual() { // enable autofind in list for first character (so the user can press character to find list entry) this.clbAddress.AutoFindColumn = ((Int16)(1)); this.clbAddress.AutoFindMode = Ict.Common.Controls.TAutoFindModeEnum.FirstCharacter; clbAddress.SpecialKeys = ((SourceGrid.GridSpecialKeys)((((((SourceGrid.GridSpecialKeys.Arrows | SourceGrid.GridSpecialKeys.PageDownUp) | SourceGrid.GridSpecialKeys.Enter) | SourceGrid.GridSpecialKeys.Escape) | SourceGrid.GridSpecialKeys.Control) | SourceGrid.GridSpecialKeys.Shift))); string CheckedColumn = "CHECKED"; string ShortNameColumn = PPartnerTable.GetPartnerShortNameDBName(); string PartnerKeyColumn = PPartnerLocationTable.GetPartnerKeyDBName(); string PartnerClassColumn = PPartnerTable.GetPartnerClassDBName(); string TelephoneColumn = PPartnerLocationTable.GetTelephoneNumberDBName(); string LocationTypeColumn = PPartnerLocationTable.GetLocationTypeDBName(); DataTable NewTable = FPartnerSharingLocationDV.ToTable(true, new string[] { ShortNameColumn, PartnerKeyColumn, PartnerClassColumn, TelephoneColumn, LocationTypeColumn }); NewTable.Columns.Add(new DataColumn(CheckedColumn, typeof(bool))); clbAddress.Columns.Clear(); clbAddress.AddCheckBoxColumn("", NewTable.Columns[CheckedColumn], 17, false); clbAddress.AddTextColumn(Catalog.GetString("Name"), NewTable.Columns[ShortNameColumn], 240); clbAddress.AddPartnerKeyColumn(Catalog.GetString("Partner Key"), NewTable.Columns[PartnerKeyColumn], 90); clbAddress.AddTextColumn(Catalog.GetString("Partner Class"), NewTable.Columns[PartnerClassColumn], 90); clbAddress.AddTextColumn(Catalog.GetString("Telephone"), NewTable.Columns[TelephoneColumn], 130); clbAddress.AddTextColumn(Catalog.GetString("Location Type"), NewTable.Columns[LocationTypeColumn], 90); clbAddress.DataBindGrid(NewTable, ShortNameColumn, CheckedColumn, PartnerKeyColumn, false, true, false); // initialize list of checked items clbAddress.SetCheckedStringList(""); // this is just to avoid compiler warning from FMainDS being initialized but not used if (FMainDS.IsInitialized) { } }
/// <summary> /// Get the name for this Ledger /// </summary> public string GetLedgerName() { #region Validate Arguments if (FLedgerNumber <= 0) { throw new EFinanceSystemInvalidLedgerNumberException(String.Format(Catalog.GetString( "Function:{0} - The Ledger number must be greater than 0!"), Utilities.GetMethodName(true)), FLedgerNumber); } #endregion Validate Arguments String ReturnValue = string.Empty; TDBTransaction ReadTransaction = new TDBTransaction(); TDataBase db = DBAccess.Connect("GetLedgerName", FDataBase); db.ReadTransaction( ref ReadTransaction, delegate { String strSql = "SELECT p_partner_short_name_c FROM PUB_a_ledger, PUB_p_partner WHERE a_ledger_number_i=" + FLedgerNumber + " AND PUB_a_ledger.p_partner_key_n = PUB_p_partner.p_partner_key_n"; DataTable tab = db.SelectDT(strSql, "GetLedgerName_TempTable", ReadTransaction); if (tab.Rows.Count > 0) { ReturnValue = Convert.ToString(tab.Rows[0][PPartnerTable.GetPartnerShortNameDBName()]); //"p_partner_short_name_c" } }); if (FDataBase == null) { db.CloseDBConnection(); } return(ReturnValue); }
private void LoadEventListData() { string CheckedMember = "CHECKED"; string ValueMember = PPartnerTable.GetPartnerKeyDBName(); string DisplayMember = PPartnerTable.GetPartnerShortNameDBName(); string EventCodeMember = PUnitTable.GetOutreachCodeDBName(); FOutreachUnitsTable = TRemote.MPartner.Partner.WebConnectors.GetEventUnits(); FOutreachUnitsTable.Columns.Add(new DataColumn("CHECKED", typeof(bool))); clbEvent.Columns.Clear(); clbEvent.AddCheckBoxColumn("", FOutreachUnitsTable.Columns[CheckedMember], 17, false); clbEvent.AddTextColumn(Catalog.GetString("Event Name"), FOutreachUnitsTable.Columns[DisplayMember]); clbEvent.AddPartnerKeyColumn(Catalog.GetString("Partner Key"), FOutreachUnitsTable.Columns[ValueMember]); // outreach/event code column only needed in case of displaying Outreaches if (ucoFilter.IncludeOutreachUnits) { clbEvent.AddTextColumn(Catalog.GetString("Event Code"), FOutreachUnitsTable.Columns[EventCodeMember]); } EventFilterChanged(this, null); }
/// <summary> /// This report considers gifts given between the two specified dates, and can include all gifts or, if /// selected, those to a particular motivation, motivation detail or recipient. For the defined set of gifts /// and its total value, the donors are sorted into a list, starting with those who gave most, and showing /// the percentage that their gifts contributed to the total received (for this motivation or recipient, if /// specified) and the cumulative percentage, moving down the list starting with the top donor. /// </summary> /// <param name="ATotalAmount">Pre calculated value of the total gifts given with these parameters</param> /// <param name="ATopXPercent">Upper limit of the percentage to show in the report</param> /// <param name="ABottomXPercent">Lower limit of the percentage to show in the report</param> /// <param name="AExtract">true to use only partners from an extract</param> /// <param name="AExtractName">extract name</param> /// <param name="AStartDate">Start date of the gifts given</param> /// <param name="AEndDate">End date of the gifts given</param> /// <param name="ARecipientKey">Partner key of a specific recipient. If 0 then use all recipients</param> /// <param name="AMotivationGroup">Limit gifts to this motivation group. If % use all motivation groups</param> /// <param name="AMotivationDetail">Limit gifts to this motivation detail. If % use all motivation details</param> /// <returns></returns> private bool MakeTopDonor(decimal ATotalAmount, decimal ATopXPercent, decimal ABottomXPercent, bool AExtract, String AExtractName, DateTime AStartDate, DateTime AEndDate, Int64 ARecipientKey, String AMotivationGroup, String AMotivationDetail) { Int64 LedgerNumber = situation.GetParameters().Get("param_ledger_number_i").ToInt64(); String CurrencyType = situation.GetParameters().Get("param_currency").ToString(); StringBuilder SqlString = new StringBuilder(); SqlString.Append("SELECT DISTINCT "); SqlString.Append("gift.p_donor_key_n AS DonorKey, "); SqlString.Append(PPartnerTable.GetTableDBName() + "." + PPartnerTable.GetPartnerShortNameDBName() + " AS ShortName, "); SqlString.Append(PPartnerTable.GetTableDBName() + "." + PPartnerTable.GetPartnerClassDBName() + " AS PartnerClass, "); if (CurrencyType == "Base") { SqlString.Append("SUM(detail." + AGiftDetailTable.GetGiftAmountDBName() + ") AS Amount "); } else { SqlString.Append("SUM(detail." + AGiftDetailTable.GetGiftAmountIntlDBName() + ") AS Amount "); } SqlString.Append( " FROM " + AGiftTable.GetTableDBName() + " as gift, " + AGiftDetailTable.GetTableDBName() + " as detail, " + PPartnerTable.GetTableDBName() + ", " + AGiftBatchTable.GetTableDBName() + " "); if (AExtract) { SqlString.Append(", " + MExtractTable.GetTableDBName() + ", " + MExtractMasterTable.GetTableDBName()); SqlString.Append( " WHERE gift." + AGiftTable.GetDonorKeyDBName() + " = " + MExtractTable.GetTableDBName() + "." + MExtractTable.GetPartnerKeyDBName()); SqlString.Append( " AND " + MExtractTable.GetTableDBName() + "." + MExtractTable.GetExtractIdDBName() + " = " + MExtractMasterTable.GetTableDBName() + "." + MExtractMasterTable.GetExtractIdDBName()); SqlString.Append(" AND " + MExtractMasterTable.GetTableDBName() + "." + MExtractMasterTable.GetExtractNameDBName() + " = '"); SqlString.Append(AExtractName); SqlString.Append("' AND "); } else { SqlString.Append(" WHERE "); } SqlString.Append(" detail." + AGiftDetailTable.GetLedgerNumberDBName() + " = gift." + AGiftTable.GetLedgerNumberDBName()); SqlString.Append(" AND detail." + AGiftDetailTable.GetBatchNumberDBName() + " = gift." + AGiftTable.GetBatchNumberDBName()); SqlString.Append( " AND detail." + AGiftDetailTable.GetGiftTransactionNumberDBName() + " = gift." + AGiftTable.GetGiftTransactionNumberDBName()); SqlString.Append(" AND gift." + AGiftTable.GetDateEnteredDBName() + " BETWEEN '"); SqlString.Append(AStartDate.ToString("yyyy-MM-dd")); SqlString.Append("' AND '"); SqlString.Append(AEndDate.ToString("yyyy-MM-dd")); SqlString.Append("' AND gift." + AGiftTable.GetLedgerNumberDBName() + " = "); SqlString.Append(LedgerNumber.ToString()); SqlString.Append(" AND " + AGiftBatchTable.GetTableDBName() + "." + AGiftBatchTable.GetLedgerNumberDBName() + " = "); SqlString.Append(LedgerNumber.ToString()); SqlString.Append( " AND " + AGiftBatchTable.GetTableDBName() + "." + AGiftBatchTable.GetBatchNumberDBName() + " = gift." + AGiftTable.GetBatchNumberDBName()); SqlString.Append(" AND ( " + AGiftBatchTable.GetTableDBName() + "." + AGiftBatchTable.GetBatchStatusDBName() + " = 'Posted' OR "); SqlString.Append(AGiftBatchTable.GetTableDBName() + "." + AGiftBatchTable.GetBatchStatusDBName() + " = 'posted' ) "); SqlString.Append( " AND " + PPartnerTable.GetTableDBName() + "." + PPartnerTable.GetPartnerKeyDBName() + " = gift." + AGiftTable.GetDonorKeyDBName()); if (ARecipientKey != 0) { SqlString.Append(" AND detail." + AGiftDetailTable.GetRecipientKeyDBName() + " = "); SqlString.Append(ARecipientKey.ToString()); } if (AMotivationGroup != "%") { SqlString.Append(" AND detail." + AGiftDetailTable.GetMotivationGroupCodeDBName() + " LIKE '"); SqlString.Append(AMotivationGroup); SqlString.Append("' "); } if (AMotivationDetail != "%") { SqlString.Append(" AND detail." + AGiftDetailTable.GetMotivationDetailCodeDBName() + " LIKE '"); SqlString.Append(AMotivationDetail); SqlString.Append("' "); } SqlString.Append(" GROUP BY gift." + AGiftTable.GetDonorKeyDBName() + ", "); SqlString.Append(PPartnerTable.GetTableDBName() + "." + PPartnerTable.GetPartnerShortNameDBName() + ", "); SqlString.Append(PPartnerTable.GetTableDBName() + "." + PPartnerTable.GetPartnerClassDBName()); SqlString.Append(" ORDER BY Amount DESC"); DataTable Table = situation.GetDatabaseConnection().SelectDT(SqlString.ToString(), "table", situation.GetDatabaseConnection().Transaction, new OdbcParameter[] { }); decimal CummulativeAmount = 0; decimal TopAmount = ATotalAmount * ATopXPercent / 100; decimal BottomAmount = ATotalAmount * ABottomXPercent / 100; int NumColumns = 7; int ChildRow = 1; situation.GetResults().Clear(); for (int Counter = 0; Counter < Table.Rows.Count; ++Counter) { decimal CurrentAmount = Convert.ToDecimal(Table.Rows[Counter]["Amount"]); if (CurrentAmount < 0) { continue; } if ((CummulativeAmount <= TopAmount) && (CummulativeAmount >= BottomAmount)) { Int64 DonorKey = Convert.ToInt64(Table.Rows[Counter]["DonorKey"]); String ShortName = (String)Table.Rows[Counter]["ShortName"]; String PartnerClass = (String)Table.Rows[Counter]["PartnerClass"]; CummulativeAmount += CurrentAmount; // Transfer to results TVariant[] Header = new TVariant[NumColumns]; TVariant[] Description = { new TVariant(), new TVariant() }; TVariant[] Columns = new TVariant[NumColumns]; for (int Counter2 = 0; Counter2 < NumColumns; ++Counter2) { Header[Counter2] = new TVariant(); Columns[Counter2] = new TVariant(); } StringBuilder PartnerAddress = new StringBuilder(); PPartnerLocationRow AddressRow; if (Ict.Petra.Server.MReporting.MPartner.TRptUserFunctionsPartner.GetPartnerBestAddressRow(DonorKey, situation, out AddressRow)) { PLocationTable LocationTable = PLocationAccess.LoadByPrimaryKey(AddressRow.SiteKey, AddressRow.LocationKey, situation.GetDatabaseConnection().Transaction); if (LocationTable.Rows.Count > 0) { PLocationRow LocationRow = (PLocationRow)LocationTable.Rows[0]; PartnerAddress.Append(LocationRow.Locality); if (LocationRow.Locality.Length > 0) { PartnerAddress.Append(", "); } PartnerAddress.Append(LocationRow.StreetName); if (PartnerAddress.Length > 0) { PartnerAddress.Append(", "); } PartnerAddress.Append(LocationRow.Address3); if (PartnerAddress.Length > 0) { PartnerAddress.Append(", "); } PartnerAddress.Append(LocationRow.PostalCode); PartnerAddress.Append(" "); PartnerAddress.Append(LocationRow.City); if (LocationRow.County.Length > 0) { PartnerAddress.Append(", "); PartnerAddress.Append(LocationRow.County); } PartnerAddress.Append(", "); PartnerAddress.Append(LocationRow.CountryCode); } } Columns[0] = new TVariant(DonorKey.ToString("0000000000")); Columns[1] = new TVariant(PartnerClass); Columns[2] = new TVariant(ShortName); Columns[3] = new TVariant(CurrentAmount, "-#,##0.00;#,##0.00"); Columns[4] = new TVariant((CurrentAmount * 100 / ATotalAmount), "-#,##0.00;#,##0.00"); Columns[5] = new TVariant((CummulativeAmount * 100 / ATotalAmount), "-#,##0.00;#,##0.00"); Columns[6] = new TVariant(PartnerAddress.ToString()); situation.GetResults().AddRow(0, ChildRow++, true, 2, "", "", false, Header, Description, Columns); } else { CummulativeAmount += CurrentAmount; } } return(true); }
public static Boolean MergedPartnerDetails(Int64 AMergedPartnerPartnerKey, out String AMergedPartnerPartnerShortName, out TPartnerClass AMergedPartnerPartnerClass, out Int64 AMergedIntoPartnerKey, out String AMergedIntoPartnerShortName, out TPartnerClass AMergedIntoPartnerClass, out String AMergedBy, out DateTime AMergeDate) { TDBTransaction ReadTransaction; Boolean NewTransaction; StringCollection RequiredColumns; PPartnerTable MergedPartnerTable; PPartnerTable PartnerMergedIntoTable; PPartnerMergeTable PartnerMergeTable; Boolean ReturnValue = false; // Initialise out Arguments AMergedPartnerPartnerShortName = ""; AMergedPartnerPartnerClass = TPartnerClass.FAMILY; // Default. This is not really correct but the best compromise if PartnerKey is 0 or Partner isn't found since we have an enum here. AMergedIntoPartnerKey = -1; AMergedIntoPartnerShortName = ""; AMergedIntoPartnerClass = TPartnerClass.FAMILY; // Default. This is not really correct but the best compromise if PartnerKey is 0 or Partner isn't found since we have an enum here. AMergedBy = ""; AMergeDate = DateTime.MinValue; if (AMergedPartnerPartnerKey != 0) { /* * First we look up the Partner that was Merged to get some details of it. */ // only some fields are needed RequiredColumns = new StringCollection(); RequiredColumns.Add(PPartnerTable.GetPartnerShortNameDBName()); RequiredColumns.Add(PPartnerTable.GetStatusCodeDBName()); RequiredColumns.Add(PPartnerTable.GetPartnerClassDBName()); ReadTransaction = DBAccess.GDBAccessObj.GetNewOrExistingTransaction(IsolationLevel.ReadCommitted, TEnforceIsolationLevel.eilMinimum, out NewTransaction); try { MergedPartnerTable = PPartnerAccess.LoadByPrimaryKey( AMergedPartnerPartnerKey, RequiredColumns, ReadTransaction, null, 0, 0); if (MergedPartnerTable.Rows.Count == 0) { ReturnValue = false; } else { if (SharedTypes.StdPartnerStatusCodeStringToEnum( MergedPartnerTable[0].StatusCode) != TStdPartnerStatusCode.spscMERGED) { ReturnValue = false; } else { AMergedPartnerPartnerShortName = MergedPartnerTable[0].PartnerShortName; AMergedPartnerPartnerClass = SharedTypes.PartnerClassStringToEnum(MergedPartnerTable[0].PartnerClass); /* * Now we look up the Partner that was Merged in the PartnerMerge DB Table * to get the information about the Merged-Into Partner. */ PartnerMergeTable = PPartnerMergeAccess.LoadByPrimaryKey(AMergedPartnerPartnerKey, ReadTransaction); if (PartnerMergeTable.Rows.Count == 0) { /* * Although we didn't find the Merged Partner in the PartnerMerge * DB Table it is still a valid, Merged Partner, so we return true * in this case. */ ReturnValue = true; } else { /* * Now we look up the Merged-Into Partner to get some details of it. */ PartnerMergedIntoTable = PPartnerAccess.LoadByPrimaryKey( PartnerMergeTable[0].MergeTo, RequiredColumns, ReadTransaction, null, 0, 0); if (PartnerMergedIntoTable.Rows.Count == 0) { ReturnValue = false; } else { AMergedIntoPartnerKey = PartnerMergeTable[0].MergeTo; AMergedBy = PartnerMergeTable[0].MergedBy; AMergeDate = PartnerMergeTable[0].MergeDate.Value; AMergedIntoPartnerShortName = PartnerMergedIntoTable[0].PartnerShortName; AMergedIntoPartnerClass = SharedTypes.PartnerClassStringToEnum(PartnerMergedIntoTable[0].PartnerClass); ReturnValue = true; } } } } } finally { if (NewTransaction) { DBAccess.GDBAccessObj.CommitTransaction(); TLogging.LogAtLevel(7, "TPartnerServerLookups.MergedPartnerDetails: committed own transaction."); } } } return(ReturnValue); }
// Deletes the conference private void RemoveRecord(System.Object sender, EventArgs e) { FSelectedConferenceKey = (Int64)((DataRowView)grdConferences.SelectedDataRows[0]).Row[PcConferenceTable.GetConferenceKeyDBName()]; FSelectedConferenceName = (String)((DataRowView)grdConferences.SelectedDataRows[0]).Row[PPartnerTable.GetPartnerShortNameDBName()]; TDeleteConference.DeleteConference(FPetraUtilsObject.GetCallerForm(), FSelectedConferenceKey, FSelectedConferenceName); LoadDataGrid(false); }
/// <summary> /// get more details of the last gift of the partner /// </summary> /// <param name="APartnerKey"></param> /// <param name="ALastGiftDate"></param> /// <param name="ALastGiftAmount"></param> /// <param name="ALastGiftGivenToPartnerKey"></param> /// <param name="ALastGiftRecipientLedger"></param> /// <param name="ALastGiftCurrencyCode"></param> /// <param name="ALastGiftDisplayFormat"></param> /// <param name="ALastGiftGivenToShortName"></param> /// <param name="ALastGiftRecipientLedgerShortName"></param> /// <param name="ARestrictedOrConfidentialGiftAccessDenied"></param> /// <returns></returns> public static Boolean GetLastGiftDetails(Int64 APartnerKey, out DateTime ALastGiftDate, out decimal ALastGiftAmount, out Int64 ALastGiftGivenToPartnerKey, out Int64 ALastGiftRecipientLedger, out String ALastGiftCurrencyCode, out String ALastGiftDisplayFormat, out String ALastGiftGivenToShortName, out String ALastGiftRecipientLedgerShortName, out Boolean ARestrictedOrConfidentialGiftAccessDenied) { DataSet LastGiftDS; AGiftDetailTable GiftDetailDT; SGroupGiftTable GroupGiftDT; SUserGroupTable UserGroupDT; AGiftRow GiftDR; AGiftBatchRow GiftBatchDR; AGiftDetailRow GiftDetailDR; ACurrencyRow CurrencyDR; Int16 Counter; Boolean AccessToGift = false; DataRow[] FoundUserGroups; ALastGiftAmount = 0; ALastGiftCurrencyCode = ""; ALastGiftDisplayFormat = ""; ALastGiftDate = DateTime.MinValue; ALastGiftGivenToPartnerKey = 0; ALastGiftGivenToShortName = ""; ALastGiftRecipientLedger = 0; ALastGiftRecipientLedgerShortName = ""; ARestrictedOrConfidentialGiftAccessDenied = false; DateTime tmpLastGiftDate = ALastGiftDate; decimal tmpLastGiftAmount = ALastGiftAmount; Int64 tmpLastGiftGivenToPartnerKey = ALastGiftGivenToPartnerKey; Int64 tmpLastGiftRecipientLedger = ALastGiftRecipientLedger; String tmpLastGiftCurrencyCode = ALastGiftCurrencyCode; String tmpLastGiftDisplayFormat = ALastGiftDisplayFormat; String tmpLastGiftGivenToShortName = ALastGiftGivenToShortName; String tmpLastGiftRecipientLedgerShortName = ALastGiftRecipientLedgerShortName; Boolean tmpRestrictedOrConfidentialGiftAccessDenied = ARestrictedOrConfidentialGiftAccessDenied; if ((!UserInfo.GUserInfo.IsTableAccessOK(TTableAccessPermission.tapINQUIRE, AGiftTable.GetTableDBName()))) { // User hasn't got access to a_gift Table in the DB return(false); } // Set up temp DataSet LastGiftDS = new DataSet("LastGiftDetails"); LastGiftDS.Tables.Add(new AGiftTable()); LastGiftDS.Tables.Add(new AGiftBatchTable()); LastGiftDS.Tables.Add(new AGiftDetailTable()); LastGiftDS.Tables.Add(new ACurrencyTable()); LastGiftDS.Tables.Add(new PPartnerTable()); TDBTransaction Transaction = null; bool SubmissionOK = true; // Important: The IsolationLevel here needs to correspond with the IsolationLevel in the // Ict.Petra.Server.MPartner.Partner.UIConnectors.TPartnerEditUIConnector.LoadData Method // as otherwise the attempt of taking-out of a DB Transaction here will lead to Bug #4167! DBAccess.GDBAccessObj.GetNewOrExistingAutoTransaction(IsolationLevel.ReadCommitted, TEnforceIsolationLevel.eilMinimum, ref Transaction, ref SubmissionOK, delegate { try { try { AGiftAccess.LoadViaPPartner(LastGiftDS, APartnerKey, null, Transaction, StringHelper.InitStrArr(new String[] { "ORDER BY", AGiftTable.GetDateEnteredDBName() + " DESC" }), 0, 1); } catch (ESecurityDBTableAccessDeniedException) { // User hasn't got access to a_gift Table in the DB return; } catch (Exception ex) { throw ex; } if (LastGiftDS.Tables[AGiftTable.GetTableName()].Rows.Count == 0) { // Partner hasn't given any Gift so far return; } // Get the last gift GiftDR = ((AGiftTable)LastGiftDS.Tables[AGiftTable.GetTableName()])[0]; if (GiftDR.Restricted) { AccessToGift = false; GroupGiftDT = SGroupGiftAccess.LoadViaAGift( GiftDR.LedgerNumber, GiftDR.BatchNumber, GiftDR.GiftTransactionNumber, Transaction); UserGroupDT = SUserGroupAccess.LoadViaSUser(UserInfo.GUserInfo.UserID, Transaction); // Loop over all rows of GroupGiftDT for (Counter = 0; Counter <= GroupGiftDT.Rows.Count - 1; Counter += 1) { // To be able to view a Gift, ReadAccess must be granted if (GroupGiftDT[Counter].ReadAccess) { // Find out whether the user has a row in s_user_group with the // GroupID of the GroupGift row FoundUserGroups = UserGroupDT.Select(SUserGroupTable.GetGroupIdDBName() + " = '" + GroupGiftDT[Counter].GroupId + "'"); if (FoundUserGroups.Length != 0) { // Access to gift can be granted AccessToGift = true; continue; // don't evaluate further GroupGiftDT rows } } } } else { AccessToGift = true; } if (AccessToGift) { tmpLastGiftDate = GiftDR.DateEntered; // Console.WriteLine('GiftDR.LedgerNumber: ' + GiftDR.LedgerNumber.ToString + '; ' + // 'GiftDR.BatchNumber: ' + GiftDR.BatchNumber.ToString); // Load Gift Batch AGiftBatchAccess.LoadByPrimaryKey(LastGiftDS, GiftDR.LedgerNumber, GiftDR.BatchNumber, StringHelper.InitStrArr(new String[] { AGiftBatchTable.GetCurrencyCodeDBName() }), Transaction, null, 0, 0); if (LastGiftDS.Tables[AGiftBatchTable.GetTableName()].Rows.Count != 0) { GiftBatchDR = ((AGiftBatchRow)LastGiftDS.Tables[AGiftBatchTable.GetTableName()].Rows[0]); tmpLastGiftCurrencyCode = GiftBatchDR.CurrencyCode; // Get Currency ACurrencyAccess.LoadByPrimaryKey(LastGiftDS, GiftBatchDR.CurrencyCode, Transaction); if (LastGiftDS.Tables[ACurrencyTable.GetTableName()].Rows.Count != 0) { CurrencyDR = (ACurrencyRow)(LastGiftDS.Tables[ACurrencyTable.GetTableName()].Rows[0]); tmpLastGiftCurrencyCode = CurrencyDR.CurrencyCode; tmpLastGiftDisplayFormat = CurrencyDR.DisplayFormat; } else { tmpLastGiftCurrencyCode = ""; tmpLastGiftDisplayFormat = ""; } } else { // missing Currency tmpLastGiftCurrencyCode = ""; tmpLastGiftDisplayFormat = ""; } // Load Gift Detail AGiftDetailAccess.LoadViaAGift(LastGiftDS, GiftDR.LedgerNumber, GiftDR.BatchNumber, GiftDR.GiftTransactionNumber, StringHelper.InitStrArr(new String[] { AGiftDetailTable.GetGiftTransactionAmountDBName(), AGiftDetailTable.GetRecipientKeyDBName(), AGiftDetailTable. GetRecipientLedgerNumberDBName(), AGiftDetailTable.GetConfidentialGiftFlagDBName() }), Transaction, null, 0, 0); GiftDetailDT = (AGiftDetailTable)LastGiftDS.Tables[AGiftDetailTable.GetTableName()]; if (GiftDetailDT.Rows.Count != 0) { if (GiftDR.LastDetailNumber > 1) { // Gift is a Split Gift tmpLastGiftAmount = 0; for (Counter = 0; Counter <= GiftDetailDT.Rows.Count - 1; Counter += 1) { GiftDetailDR = (AGiftDetailRow)GiftDetailDT.Rows[Counter]; // Check for confidential gift and whether the current user is allowed to see it if (GiftDetailDR.ConfidentialGiftFlag) { if (!((UserInfo.GUserInfo.IsInGroup(SharedConstants.PETRAGROUP_FINANCE2)) || (UserInfo.GUserInfo.IsInGroup(SharedConstants.PETRAGROUP_FINANCE3)))) { // User isn't allowed to see the gift tmpRestrictedOrConfidentialGiftAccessDenied = true; tmpLastGiftAmount = 0; return; } } tmpLastGiftAmount = tmpLastGiftAmount + GiftDetailDR.GiftTransactionAmount; } tmpLastGiftGivenToShortName = ""; tmpLastGiftRecipientLedgerShortName = ""; tmpLastGiftGivenToPartnerKey = -1; tmpLastGiftRecipientLedger = -1; } else { // Gift isn't a Split Gift GiftDetailDR = (AGiftDetailRow)GiftDetailDT.Rows[0]; // Check for confidential gift and whether the current user is allowed to see it if (GiftDetailDR.ConfidentialGiftFlag) { if (!((UserInfo.GUserInfo.IsInGroup(SharedConstants.PETRAGROUP_FINANCE2)) || (UserInfo.GUserInfo.IsInGroup(SharedConstants.PETRAGROUP_FINANCE3)))) { // User isn't allowed to see the gift tmpRestrictedOrConfidentialGiftAccessDenied = true; return; } } tmpLastGiftAmount = GiftDetailDR.GiftTransactionAmount; tmpLastGiftGivenToPartnerKey = GiftDetailDR.RecipientKey; // Get Partner ShortName PPartnerAccess.LoadByPrimaryKey(LastGiftDS, GiftDetailDR.RecipientKey, StringHelper.InitStrArr(new String[] { PPartnerTable.GetPartnerShortNameDBName() }), Transaction, null, 0, 0); if (LastGiftDS.Tables[PPartnerTable.GetTableName()].Rows.Count != 0) { tmpLastGiftGivenToShortName = ((PPartnerRow)(LastGiftDS.Tables[PPartnerTable.GetTableName()].Rows[0])).PartnerShortName; } else { // missing Partner tmpLastGiftGivenToShortName = ""; } // Get rid of last record because we are about to select again into the same DataTable... LastGiftDS.Tables[PPartnerTable.GetTableName()].Rows.Clear(); // Get Recipient Ledger PPartnerAccess.LoadByPrimaryKey(LastGiftDS, GiftDetailDR.RecipientLedgerNumber, StringHelper.InitStrArr(new String[] { PPartnerTable.GetPartnerShortNameDBName() }), Transaction, null, 0, 0); if (LastGiftDS.Tables[PPartnerTable.GetTableName()].Rows.Count != 0) { tmpLastGiftRecipientLedgerShortName = ((PPartnerRow)(LastGiftDS.Tables[PPartnerTable.GetTableName()].Rows[0])).PartnerShortName; } else { // missing Ledger tmpLastGiftRecipientLedgerShortName = ""; } } } else { // missing Gift Detail tmpLastGiftAmount = 0; tmpLastGiftGivenToShortName = ""; tmpLastGiftRecipientLedgerShortName = ""; tmpLastGiftGivenToPartnerKey = -1; tmpLastGiftRecipientLedger = -1; } } else { // Gift is a restriced Gift and the current user isn't allowed to see it tmpRestrictedOrConfidentialGiftAccessDenied = true; } } finally { TLogging.LogAtLevel(7, "TGift.GetLastGiftDetails: committed own transaction."); } }); ALastGiftDate = tmpLastGiftDate; ALastGiftAmount = tmpLastGiftAmount; ALastGiftGivenToPartnerKey = tmpLastGiftGivenToPartnerKey; ALastGiftRecipientLedger = tmpLastGiftRecipientLedger; ALastGiftCurrencyCode = tmpLastGiftCurrencyCode; ALastGiftDisplayFormat = tmpLastGiftDisplayFormat; ALastGiftGivenToShortName = tmpLastGiftGivenToShortName; ALastGiftRecipientLedgerShortName = tmpLastGiftRecipientLedgerShortName; ARestrictedOrConfidentialGiftAccessDenied = tmpRestrictedOrConfidentialGiftAccessDenied; return(AccessToGift); }
private String PartnerShortName(Int64 partnerKey) { if (partnerKey > 0) { // Get Partner ShortName PPartnerTable pt = null; TDBTransaction Transaction = null; DBAccess.GDBAccessObj.GetNewOrExistingAutoReadTransaction(IsolationLevel.ReadCommitted, TEnforceIsolationLevel.eilMinimum, ref Transaction, delegate { pt = PPartnerAccess.LoadByPrimaryKey(partnerKey, StringHelper.InitStrArr(new String[] { PPartnerTable.GetPartnerShortNameDBName() }), Transaction, null, 0, 0); }); if (pt.Rows.Count == 1) { return(pt[0].PartnerShortName); } } return(""); }
private void Accept(System.Object sender, EventArgs e) { if (grdConferences.SelectedDataRows.Length == 1) { FSelectedConferenceKey = (Int64)((DataRowView)grdConferences.SelectedDataRows[0]).Row[PcConferenceTable.GetConferenceKeyDBName()]; FSelectedConferenceName = (String)((DataRowView)grdConferences.SelectedDataRows[0]).Row[PPartnerTable.GetPartnerShortNameDBName()]; if (!FIsModal) { ReloadNavigation(); } else { this.DialogResult = DialogResult.OK; this.Close(); } } }
public static SelectConferenceTDS GetConferences(String AConferenceName, String APrefix) { SelectConferenceTDS ResultTable = new SelectConferenceTDS(); PcConferenceTable ConferenceTable = new PcConferenceTable(); PcConferenceRow TemplateRow = (PcConferenceRow)ConferenceTable.NewRow(); TDBTransaction ReadTransaction; Boolean NewTransaction = false; if (APrefix == "*") { APrefix = ""; } if (AConferenceName == "*") { AConferenceName = ""; } else if (AConferenceName.EndsWith("*")) { AConferenceName = AConferenceName.Substring(0, AConferenceName.Length - 1); } TLogging.LogAtLevel(9, "TConferenceOptions.GetConferences called!"); TDataBase db = DBAccess.Connect("GetConferences"); ReadTransaction = db.GetNewOrExistingTransaction(IsolationLevel.RepeatableRead, out NewTransaction); try { /* Load data */ if (APrefix.Length > 0) { APrefix = APrefix.Replace('*', '%') + "%"; TemplateRow.OutreachPrefix = APrefix; StringCollection Operators = new StringCollection(); Operators.Add("LIKE"); ConferenceTable = PcConferenceAccess.LoadUsingTemplate(TemplateRow, Operators, null, ReadTransaction); } else { ConferenceTable = PcConferenceAccess.LoadAll(ReadTransaction); } } finally { if (NewTransaction) { ReadTransaction.Commit(); TLogging.LogAtLevel(7, "TConferenceOptions.GetConferences: committed own transaction."); } } String ShortName; TPartnerClass PartnerClass; foreach (PcConferenceRow ConferenceRow in ConferenceTable.Rows) { TPartnerServerLookups.GetPartnerShortName(ConferenceRow.ConferenceKey, out ShortName, out PartnerClass); if ((AConferenceName.Length > 0) && (!ShortName.StartsWith(AConferenceName, true, null))) { continue; } ResultTable.PcConference.ImportRow(ConferenceRow); DataRow NewRow = ResultTable.PPartner.NewRow(); NewRow[PPartnerTable.GetPartnerShortNameDBName()] = ShortName; NewRow[PPartnerTable.GetPartnerKeyDBName()] = ConferenceRow.ConferenceKey; ResultTable.PPartner.Rows.Add(NewRow); } return(ResultTable); }
public static DataTable GetEventUnits() { List <OdbcParameter> SqlParameterList = new List <OdbcParameter>(); DataColumn[] Key = new DataColumn[3]; DataTable Events = new DataTable(); if (TLogging.DL >= 9) { Console.WriteLine("GetEventUnits called!"); } TDBTransaction Transaction = null; DBAccess.GDBAccessObj.BeginAutoReadTransaction(IsolationLevel.ReadCommitted, ref Transaction, delegate { string SqlStmt = "SELECT DISTINCT " + PPartnerTable.GetPartnerShortNameDBName() + ", " + PPartnerTable.GetPartnerClassDBName() + ", " + PUnitTable.GetOutreachCodeDBName() + ", " + PCountryTable.GetTableDBName() + "." + PCountryTable.GetCountryNameDBName() + ", " + PPartnerLocationTable.GetTableDBName() + "." + PPartnerLocationTable.GetSiteKeyDBName() + ", " + PPartnerLocationTable.GetTableDBName() + "." + PPartnerLocationTable.GetLocationKeyDBName() + ", " + PPartnerLocationTable.GetTableDBName() + "." + PPartnerLocationTable.GetDateEffectiveDBName() + ", " + PPartnerLocationTable.GetTableDBName() + "." + PPartnerLocationTable.GetDateGoodUntilDBName() + ", " + PPartnerTable.GetTableDBName() + "." + PPartnerTable.GetPartnerKeyDBName() + ", " + PUnitTable.GetUnitTypeCodeDBName() + ", " + PUnitTable.GetUnitNameDBName() + " 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.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 " + PPartnerTable.GetStatusCodeDBName() + " = 'ACTIVE' " + " AND " + PPartnerTable.GetPartnerClassDBName() + " = 'UNIT' "; // sort rows according to name SqlStmt = SqlStmt + " ORDER BY " + PPartnerTable.GetPartnerShortNameDBName(); Events = DBAccess.GDBAccessObj.SelectDT(SqlStmt, "events", Transaction, SqlParameterList.ToArray()); Key[0] = Events.Columns[PPartnerTable.GetPartnerKeyDBName()]; Key[1] = Events.Columns[PPartnerLocationTable.GetSiteKeyDBName()]; Key[2] = Events.Columns[PPartnerLocationTable.GetLocationKeyDBName()]; Events.PrimaryKey = Key; }); return(Events); }
/// <summary> /// todoComment /// </summary> /// <param name="AGrid"></param> /// <param name="ASourceTable"></param> public void CreateColumns(TSgrdDataGrid AGrid, DataTable ASourceTable) { AGrid.AddPartnerKeyColumn("Site Key", ASourceTable.Columns[PPartnerLedgerTable.GetPartnerKeyDBName()], 75); AGrid.AddTextColumn("Site Name", ASourceTable.Columns[PPartnerTable.GetPartnerShortNameDBName()], 353); }
private void AcceptSelection(System.Object sender, EventArgs e) { DialogResult = DialogResult.Cancel; if (grdEvent.SelectedDataRows.Length == 1) { this.DialogResult = DialogResult.OK; FSelectedUnitName = (((DataRowView)grdEvent.SelectedDataRows[0]).Row[PPartnerTable.GetPartnerShortNameDBName()]).ToString(); FSelectedOutreachCode = (((DataRowView)grdEvent.SelectedDataRows[0]).Row[PUnitTable.GetOutreachCodeDBName()]).ToString(); String PartnerKey = ((DataRowView)grdEvent.SelectedDataRows[0]).Row[PPartnerTable.GetPartnerKeyDBName()].ToString(); FSelectedPartnerKey = Convert.ToInt64(PartnerKey); } this.Close(); }
private void PopulateLedgerDictionaries() { bool LedgerDictPrePopulated = (FLedgerNamesDict.Count > 0); if (LedgerDictPrePopulated && FLedgerNamesDict.ContainsKey(FLedgerNumber)) { return; } //Prepare a temp dictionaries for minimum time in lock Dictionary <int, string> LedgerNamesDictTemp = new Dictionary <int, string>(); Dictionary <int, string> LedgerCountryCodesDictTemp = new Dictionary <int, string>(); Dictionary <int, string> LedgerBaseCurrencyDictTemp = new Dictionary <int, string>(); //Take a backup for reversion purposes if error occurs Dictionary <int, string> LedgerNamesDictBackup = null; Dictionary <int, string> LedgerCountryCodesDictBackup = null; Dictionary <int, string> LedgerBaseCurrencyDictBackup = null; TDBTransaction Transaction = new TDBTransaction(); TDataBase db = DBAccess.Connect("PopulateLedgerDictionaries", FDataBase); try { db.ReadTransaction( ref Transaction, delegate { String strSql = "SELECT a_ledger_number_i, p_partner_short_name_c, a_country_code_c, a_base_currency_c" + " FROM PUB_a_ledger, PUB_p_partner" + " WHERE PUB_a_ledger.p_partner_key_n = PUB_p_partner.p_partner_key_n;"; DataTable ledgerData = db.SelectDT(strSql, "GetLedgerName_TempTable", Transaction); #region Validate Data if ((ledgerData == null) || (ledgerData.Rows.Count == 0)) { throw new EFinanceSystemDataTableReturnedNoDataException(String.Format(Catalog.GetString( "Function:{0} - Ledger and Partner data does not exist or could not be accessed!"), Utilities.GetMethodName(true))); } #endregion Validate Data int currentLedger = 0; string currentLedgerName = string.Empty; string currentLedgerCountryCode = string.Empty; string currentLedgerBaseCurrency = string.Empty; for (int i = 0; i < ledgerData.Rows.Count; i++) { currentLedger = Convert.ToInt32(ledgerData.Rows[i][ALedgerTable.GetLedgerNumberDBName()]); currentLedgerName = Convert.ToString(ledgerData.Rows[i][PPartnerTable.GetPartnerShortNameDBName()]); currentLedgerCountryCode = Convert.ToString(ledgerData.Rows[i][ALedgerTable.GetCountryCodeDBName()]); currentLedgerBaseCurrency = Convert.ToString(ledgerData.Rows[i][ALedgerTable.GetBaseCurrencyDBName()]); LedgerNamesDictTemp.Add(currentLedger, currentLedgerName); LedgerCountryCodesDictTemp.Add(currentLedger, currentLedgerCountryCode); LedgerBaseCurrencyDictTemp.Add(currentLedger, currentLedgerBaseCurrency); } bool lockEntered = false; try { if (FReadWriteLock.TryEnterWriteLock(10)) { lockEntered = true; if (LedgerDictPrePopulated) { //Backup dictionaries LedgerNamesDictBackup = new Dictionary <int, string>(FLedgerNamesDict); LedgerCountryCodesDictBackup = new Dictionary <int, string>(FLedgerCountryCodeDict); LedgerBaseCurrencyDictBackup = new Dictionary <int, string>(FLedgerBaseCurrencyDict); FLedgerNamesDict.Clear(); FLedgerCountryCodeDict.Clear(); FLedgerBaseCurrencyDict.Clear(); } FLedgerNamesDict = new Dictionary <int, string>(LedgerNamesDictTemp); FLedgerCountryCodeDict = new Dictionary <int, string>(LedgerCountryCodesDictTemp); FLedgerBaseCurrencyDict = new Dictionary <int, string>(LedgerBaseCurrencyDictTemp); } } finally { if (lockEntered) { FReadWriteLock.ExitWriteLock(); } } }); } catch (Exception ex) { if (LedgerNamesDictBackup != null) { FLedgerNamesDict = new Dictionary <int, string>(LedgerNamesDictBackup); FLedgerCountryCodeDict = new Dictionary <int, string>(LedgerCountryCodesDictBackup); FLedgerBaseCurrencyDict = new Dictionary <int, string>(LedgerBaseCurrencyDictBackup); } TLogging.LogException(ex, Utilities.GetMethodSignature()); throw; } if (FDataBase == null) { db.CloseDBConnection(); } }
private void LoadDataGrid() { List <long> HomeOfficeKeyList = new List <long>(); FMainDS.PcAttendee.Clear(); FMainDS.PmGeneralApplication.Clear(); FMainDS.PmShortTermApplication.Clear(); FMainDS.PPartner.Clear(); // populate dataset TRemote.MConference.Conference.WebConnectors.GetConferenceApplications(ref FMainDS, FPartnerKey); // Add all homeofficekeys to list as this column will be removed from dataset foreach (PcAttendeeRow Row in FMainDS.PcAttendee.Rows) { if (Row.IsHomeOfficeKeyNull() || (Row.HomeOfficeKey == 0)) { HomeOfficeKeyList.Add(((int)Row.PartnerKey / 1000000) * 1000000); } else { HomeOfficeKeyList.Add(Row.HomeOfficeKey); } } FMainDS.PcAttendee.Columns.Add(PPartnerTable.GetPartnerShortNameDBName(), Type.GetType("System.String")); FMainDS.PcAttendee.Columns.Add(PmShortTermApplicationTable.GetStFieldChargedDBName(), Type.GetType("System.String")); FMainDS.PcAttendee.Columns.Add(PmShortTermApplicationTable.GetStCurrentFieldDBName(), Type.GetType("System.String")); // This column is removed and readded with a different type. This allows the partner short name to be displayed rather than the partner key. FMainDS.PcAttendee.Columns.Remove(PcAttendeeTable.GetHomeOfficeKeyDBName()); FMainDS.PcAttendee.Columns.Add(PcAttendeeTable.GetHomeOfficeKeyDBName(), Type.GetType("System.String")); FMainDS.PcAttendee.DefaultView.AllowNew = false; for (int Counter = 0; Counter < FMainDS.PcAttendee.Rows.Count; ++Counter) { long PartnerKey = ((PcAttendeeRow)FMainDS.PcAttendee.Rows[Counter]).PartnerKey; long HomeOfficeKey = HomeOfficeKeyList[Counter]; long StFieldCharged = 0; long StConfirmedOption = 0; foreach (PmShortTermApplicationRow Row in FMainDS.PmShortTermApplication.Rows) { if (Row.PartnerKey == PartnerKey) { if (Row.IsStFieldChargedNull() || (Row.StFieldCharged == 0)) { if (Row.IsStCurrentFieldNull() || (Row.StCurrentField == 0)) { StFieldCharged = HomeOfficeKey; } else { StFieldCharged = Row.StCurrentField; } } else { StFieldCharged = Row.StFieldCharged; } if (Row.IsStCurrentFieldNull() || (Row.StConfirmedOption == 0)) { FMainDS.PcAttendee.Rows[Counter][PmShortTermApplicationTable.GetStCurrentFieldDBName()] = ((PcAttendeeRow)FMainDS.PcAttendee.Rows[Counter]).OutreachType; } else { StConfirmedOption = Row.StConfirmedOption; } break; } } int PartnersFound = 0; foreach (PPartnerRow Row in FMainDS.PPartner.Rows) { if (Row.PartnerKey == PartnerKey) { FMainDS.PcAttendee.Rows[Counter][PPartnerTable.GetPartnerShortNameDBName()] = Row.PartnerShortName; if (PartnersFound == 3) { break; } else { PartnersFound++; } } // display partner short name rather than the partner key if ((StFieldCharged != 0) && (Row.PartnerKey == StFieldCharged)) { FMainDS.PcAttendee.Rows[Counter][PmShortTermApplicationTable.GetStFieldChargedDBName()] = Row.PartnerShortName; if (PartnersFound == 3) { break; } else { PartnersFound++; } } // display partner short name rather than the partner key if ((StConfirmedOption != 0) && (Row.PartnerKey == StConfirmedOption)) { FMainDS.PcAttendee.Rows[Counter][PmShortTermApplicationTable.GetStCurrentFieldDBName()] = Row.PartnerShortName; if (PartnersFound == 3) { break; } else { PartnersFound++; } } // display partner short name rather than the partner key if ((HomeOfficeKey != 0) && (Row.PartnerKey == HomeOfficeKey)) { FMainDS.PcAttendee.Rows[Counter][PcAttendeeTable.GetHomeOfficeKeyDBName()] = Row.PartnerShortName; if (!(Row.PartnerShortName.Length > 0)) { } if (PartnersFound == 3) { break; } else { PartnersFound++; } } } } // sort order for grid DataView MyDataView = FMainDS.PcAttendee.DefaultView; MyDataView.Sort = "p_partner_short_name_c ASC"; grdAttendees.DataSource = new DevAge.ComponentModel.BoundDataView(MyDataView); }