/// <summary> /// fill checkedlistbox values with account codes /// </summary> /// <param name="AControl"></param> /// <param name="ALedgerNumber"></param> /// <param name="APostingOnly"></param> /// <param name="AExcludePosting"></param> /// <param name="AActiveOnly"></param> /// <param name="ABankAccountOnly"></param> /// <param name="AIndicateInactive">Determines whether or not to show inactive accounts as inactive</param> public static void InitialiseAccountList(ref TClbVersatile AControl, Int32 ALedgerNumber, bool APostingOnly, bool AExcludePosting, bool AActiveOnly, bool ABankAccountOnly, bool AIndicateInactive = false) { string CheckedMember = "CHECKED"; string DisplayMember = AAccountTable.GetAccountCodeShortDescDBName(); string ValueMember = AAccountTable.GetAccountCodeDBName(); DataTable Table = TDataCache.TMFinance.GetCacheableFinanceTable(TCacheableFinanceTablesEnum.AccountList, ALedgerNumber); DataView view = new DataView(Table); view.RowFilter = PrepareAccountFilter(APostingOnly, AExcludePosting, AActiveOnly, ABankAccountOnly); DataTable NewTable = view.ToTable(true, new string[] { ValueMember, DisplayMember, "a_account_type_c" }); NewTable.Columns.Add(new DataColumn(CheckedMember, typeof(bool))); //Highlight inactive Accounts if (!AActiveOnly && AIndicateInactive) { foreach (DataRow rw in NewTable.Rows) { if ((rw[AAccountTable.ColumnAccountActiveFlagId] != null) && (rw[AAccountTable.ColumnAccountActiveFlagId].ToString() == "False")) { rw[AAccountTable.ColumnAccountCodeShortDescId] = SharedConstants.INACTIVE_VALUE_WITH_QUALIFIERS + " " + rw[AAccountTable.ColumnAccountCodeShortDescId]; } } } AControl.Columns.Clear(); AControl.AddCheckBoxColumn("", NewTable.Columns[CheckedMember], 17, false); AControl.AddTextColumn(Catalog.GetString("Code"), NewTable.Columns[ValueMember], 90); AControl.AddTextColumn(Catalog.GetString("Account Description"), NewTable.Columns[DisplayMember], 200); AControl.DataBindGrid(NewTable, ValueMember, CheckedMember, ValueMember, false, true, false); }
/// <summary> /// fill checkedlistbox values with cost centre list /// </summary> /// <param name="AControl"></param> /// <param name="ALedgerNumber"></param> /// <param name="APostingOnly"></param> /// <param name="AExcludePosting"></param> /// <param name="AActiveOnly"></param> /// <param name="ALocalOnly">Local Costcentres only; otherwise foreign costcentres (ie from other legal entities) are included)</param> /// <param name="AIndicateInactive">Determines wether or not to indicate an account code as inactive</param> public static void InitialiseCostCentreList(ref TClbVersatile AControl, Int32 ALedgerNumber, bool APostingOnly, bool AExcludePosting, bool AActiveOnly, bool ALocalOnly, bool AIndicateInactive = false) { string CheckedMember = "CHECKED"; string DisplayMember = ACostCentreTable.GetCostCentreNameDBName(); string ValueMember = ACostCentreTable.GetCostCentreCodeDBName(); DataTable Table = TDataCache.TMFinance.GetCacheableFinanceTable(TCacheableFinanceTablesEnum.CostCentreList, ALedgerNumber); DataView view = new DataView(Table); view.RowFilter = PrepareCostCentreFilter(APostingOnly, AExcludePosting, AActiveOnly, ALocalOnly); DataTable NewTable = view.ToTable(true, new string[] { ValueMember, DisplayMember }); NewTable.Columns.Add(new DataColumn(CheckedMember, typeof(bool))); AControl.Columns.Clear(); AControl.AddCheckBoxColumn("", NewTable.Columns[CheckedMember], 17, false); AControl.AddTextColumn(Catalog.GetString("Code"), NewTable.Columns[ValueMember], 90); AControl.AddTextColumn(Catalog.GetString("Cost Centre Description"), NewTable.Columns[DisplayMember], 232); AControl.DataBindGrid(NewTable, ValueMember, CheckedMember, ValueMember, false, true, false); }
/// <summary> /// fill checkedlistbox values with cost centre list /// </summary> /// <param name="AControl"></param> /// <param name="ALedgerNumber"></param> /// <param name="APostingOnly"></param> /// <param name="AExcludePosting"></param> /// <param name="AActiveOnly"></param> /// <param name="AFieldOnly"></param> /// <param name="ADepartmentOnly"></param> /// <param name="APersonalOnly"></param> public static void InitialiseCostCentreList(ref TClbVersatile AControl, Int32 ALedgerNumber, bool APostingOnly, bool AExcludePosting, bool AActiveOnly, bool AFieldOnly, bool ADepartmentOnly, bool APersonalOnly) { string CheckedMember = "CHECKED"; string DisplayMember = ACostCentreTable.GetCostCentreNameDBName(); string ValueMember = ACostCentreTable.GetCostCentreCodeDBName(); //ACostCentreTable CostCentreTable = (ACostCentreTable) ACostCentreTable CostCentreTable = (ACostCentreTable)TDataCache.TMFinance.GetCacheableFinanceTable( TCacheableFinanceTablesEnum.CostCentreList, ALedgerNumber); Type TableType; DataTable LinkedCostCentres = TDataCache.TMFinance.GetBasedOnLedger( TCacheableFinanceTablesEnum.CostCentresLinkedToPartnerList, ALedgerTable.GetLedgerNumberDBName(), ALedgerNumber, out TableType); LinkedCostCentres.DefaultView.Sort = ACostCentreTable.GetCostCentreCodeDBName(); foreach (ACostCentreRow CostCentreRow in CostCentreTable.Rows) { // there can be several partners linked to a cost centre DataRowView[] LinkedCCs = LinkedCostCentres.DefaultView.FindRows(CostCentreRow[ACostCentreTable.GetCostCentreCodeDBName()].ToString()); bool DoNotShow = true; if (AFieldOnly) { DoNotShow = CostCentreRow.CostCentreType != "Foreign"; } else { foreach (DataRowView rv in LinkedCCs) { DataRow LinkedCC = rv.Row; if (APersonalOnly) { // personal costcentres are linked to a partner of type FAMILY if ((LinkedCC != null) && (LinkedCC[PPartnerTable.GetPartnerClassDBName()].ToString() == MPartnerConstants.PARTNERCLASS_FAMILY)) { DoNotShow = false; } } else if (ADepartmentOnly) { // department costcentres are a local costcentre, linked to no partner, or are not a unit, or UnitType != F if ((LinkedCC == null) || ((LinkedCC[PUnitTable.GetUnitTypeCodeDBName()].ToString() != MPartnerConstants.UNIT_TYPE_FIELD) && (LinkedCC[PPartnerTable.GetPartnerClassDBName()].ToString() != MPartnerConstants.PARTNERCLASS_FAMILY))) { DoNotShow = false; } } } } if (DoNotShow) { CostCentreRow.CostCentreName = "DONOTSHOW"; } } DataView view = new DataView(CostCentreTable); view.RowFilter = "(" + PrepareCostCentreFilter(APostingOnly, AExcludePosting, AActiveOnly, ADepartmentOnly) + ") AND NOT " + ACostCentreTable.GetCostCentreNameDBName() + "='DONOTSHOW'"; DataTable NewTable = view.ToTable(true, new string[] { ValueMember, DisplayMember }); NewTable.Columns.Add(new DataColumn(CheckedMember, typeof(bool))); AControl.Columns.Clear(); AControl.AddCheckBoxColumn("", NewTable.Columns[CheckedMember], 17, false); AControl.AddTextColumn(Catalog.GetString("Code"), NewTable.Columns[ValueMember], 60); AControl.AddTextColumn(Catalog.GetString("Cost Centre Description"), NewTable.Columns[DisplayMember], 200); AControl.DataBindGrid(NewTable, ValueMember, CheckedMember, ValueMember, false, true, false); }
/// <summary> /// fill checkedlistbox values with fees receivable list /// </summary> /// <param name="AControl"></param> /// <param name="ALedgerNumber"></param> public static void InitialiseFeesReceivableList(ref TClbVersatile AControl, Int32 ALedgerNumber) { string CheckedMember = "CHECKED"; string DisplayMember = AFeesReceivableTable.GetFeeDescriptionDBName(); string ValueMember = AFeesReceivableTable.GetFeeCodeDBName(); DataTable Table = TDataCache.TMFinance.GetCacheableFinanceTable(TCacheableFinanceTablesEnum.FeesReceivableList, ALedgerNumber); DataView view = new DataView(Table); DataTable NewTable = view.ToTable(true, new string[] { ValueMember, DisplayMember }); NewTable.Columns.Add(new DataColumn(CheckedMember, typeof(bool))); // this unseen column is used to order the table //(sorting using the 'CHECKED' column causes problems as sorting takes place as soon as a record is checked) NewTable.Columns.Add(new DataColumn("ORDER", typeof(bool))); AControl.Columns.Clear(); AControl.AddCheckBoxColumn("", NewTable.Columns[CheckedMember], 17, false); AControl.AddTextColumn(Catalog.GetString("Code"), NewTable.Columns[ValueMember], 100); AControl.AddTextColumn(Catalog.GetString("Cost Centre Description"), NewTable.Columns[DisplayMember], 228); AControl.DataBindGrid(NewTable, "ORDER DESC, " + ValueMember, CheckedMember, ValueMember, false, true, false); }