//---------------------------------------------------------------------------------------------------------
            /// <summary>
            /// Получение финансирования уровня бюджета
            /// </summary>
            /// <param name="this">Интерфейс для определения финансирования по уровням бюджета</param>
            /// <param name="budget_financing">Уровень бюджета</param>
            /// <returns>Финансирование</returns>
            //---------------------------------------------------------------------------------------------------------
            public static Decimal GetBudgetFinancingOfType(this ICubeXBudgetFinancing @this, TBudgetFinancing budget_financing)
            {
                switch (budget_financing)
                {
                case TBudgetFinancing.Common: return(@this.Price);

                case TBudgetFinancing.Local: return(@this.PriceLocal);

                case TBudgetFinancing.Regional: return(@this.PriceRegional);

                case TBudgetFinancing.Federal: return(@this.PriceFederal);

                case TBudgetFinancing.Extra: return(@this.PriceExtra);

                default: return(0);
                }
            }
            //---------------------------------------------------------------------------------------------------------
            /// <summary>
            /// Получение совокупного финансирования по уровням бюджета
            /// </summary>
            /// <param name="this">Интерфейс для определения финансирования по уровням бюджета</param>
            /// <param name="budget_financing">Набор уровней бюджета</param>
            /// <returns>Совокупное финансирование</returns>
            //---------------------------------------------------------------------------------------------------------
            public static Decimal GetBudgetFinancingOfSet(this ICubeXBudgetFinancing @this, TBudgetFinancingSet budget_financing)
            {
                Decimal total = 0;

                if (budget_financing.IsFlagSet(TBudgetFinancingSet.Local))
                {
                    total += @this.PriceLocal;
                }
                if (budget_financing.IsFlagSet(TBudgetFinancingSet.Regional))
                {
                    total += @this.PriceRegional;
                }
                if (budget_financing.IsFlagSet(TBudgetFinancingSet.Federal))
                {
                    total += @this.PriceFederal;
                }
                if (budget_financing.IsFlagSet(TBudgetFinancingSet.Extra))
                {
                    total += @this.PriceExtra;
                }

                return(total);
            }