Ejemplo n.º 1
0
        /// <summary>
        /// Checks if a versatile CheckedListBox has at least one checked item.
        /// </summary>
        /// <param name="AClbVersatile">VersatileListBox Control that should be verified.</param>
        /// <returns>Null if if validation succeeded, otherwise a <see cref="TVerificationResult" />
        /// is returned that contains details about the problem.
        /// </returns>
        public static TVerificationResult ValidateCheckedListBoxVersatile(TClbVersatile AClbVersatile)
        {
            TVerificationResult ReturnValue = null;

            if (AClbVersatile.CheckedItemsCount == 0)
            {
                ReturnValue = new TVerificationResult(AClbVersatile.Name, ErrorCodes.GetErrorInfo(
                        CommonErrorCodes.ERR_INFORMATIONMISSING, StrItemNeedsToBeChecked));
            }

            return ReturnValue;
        }
Ejemplo n.º 2
0
        /// <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);
        }
Ejemplo n.º 3
0
        /// <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);
        }
Ejemplo n.º 4
0
        /// <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);
        }
Ejemplo n.º 5
0
        /// <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);
        }